From 4bc5f66aa57174957843ff4caf0dc09559694efd Mon Sep 17 00:00:00 2001 From: Tim Allen Date: Thu, 9 Feb 2012 23:53:55 +1100 Subject: [PATCH] Update to v085r06 release. byuu says: Lots of debugger enhancements. Memory editor works for CPU-bus only, breakpoint editor does nothing yet. Tracing works, writes to 001-999 files sequentially. Stepping works, too. But only on the CPU. Added "privileged", which becomes "public" if DEBUGGER is defined, "private" otherwise. Meant so the debugger can stab deeply into the cores for state manipulation. Interface is guaranteed to be unstable and dependent upon the accuracy core. The about screen logo adds 100KB onto the source download (won't affect regular bsnes binaries), but too bad. I want some visual flair this time. --- bsnes/Makefile | 1 - bsnes/base/base.hpp | 12 +- bsnes/data/laevateinn.hpp | 3812 +++++++++++++++++++ bsnes/nall/image.hpp | 13 +- bsnes/phoenix/core/core.cpp | 11 + bsnes/phoenix/core/core.hpp | 2 + bsnes/snes/cpu/cpu.hpp | 9 +- bsnes/snes/cpu/mmio/mmio.hpp | 2 +- bsnes/snes/dsp/dsp.hpp | 2 +- bsnes/snes/ppu/mmio/mmio.cpp | 4 + bsnes/snes/ppu/ppu.hpp | 11 +- bsnes/snes/scheduler/scheduler.cpp | 4 + bsnes/snes/scheduler/scheduler.hpp | 1 + bsnes/snes/smp/memory/memory.cpp | 4 + bsnes/snes/smp/smp.cpp | 1 + bsnes/snes/smp/smp.hpp | 8 +- bsnes/ui-debugger/Makefile | 20 +- bsnes/ui-debugger/base.hpp | 4 + bsnes/ui-debugger/breakpoint/breakpoint.cpp | 26 + bsnes/ui-debugger/breakpoint/breakpoint.hpp | 18 + bsnes/ui-debugger/console/about.cpp | 36 + bsnes/ui-debugger/console/console.cpp | 74 +- bsnes/ui-debugger/console/console.hpp | 35 +- bsnes/ui-debugger/debugger/debugger.cpp | 61 + bsnes/ui-debugger/debugger/debugger.hpp | 31 + bsnes/ui-debugger/debugger/hook.cpp | 26 + bsnes/ui-debugger/interface/interface.cpp | 24 +- bsnes/ui-debugger/main.cpp | 12 +- bsnes/ui-debugger/memory/memory.cpp | 74 + bsnes/ui-debugger/memory/memory.hpp | 19 + bsnes/ui-debugger/video/video.cpp | 15 + 31 files changed, 4331 insertions(+), 41 deletions(-) create mode 100755 bsnes/data/laevateinn.hpp create mode 100755 bsnes/ui-debugger/breakpoint/breakpoint.cpp create mode 100755 bsnes/ui-debugger/breakpoint/breakpoint.hpp create mode 100755 bsnes/ui-debugger/console/about.cpp create mode 100755 bsnes/ui-debugger/debugger/debugger.cpp create mode 100755 bsnes/ui-debugger/debugger/debugger.hpp create mode 100755 bsnes/ui-debugger/debugger/hook.cpp create mode 100755 bsnes/ui-debugger/memory/memory.cpp create mode 100755 bsnes/ui-debugger/memory/memory.hpp diff --git a/bsnes/Makefile b/bsnes/Makefile index a33ba47d..f3453848 100755 --- a/bsnes/Makefile +++ b/bsnes/Makefile @@ -7,7 +7,6 @@ profile := accuracy ui := ui-debugger # options += console -options += debugger # compiler c := $(compiler) -std=gnu99 diff --git a/bsnes/base/base.hpp b/bsnes/base/base.hpp index 9b0835de..cd5a53ec 100755 --- a/bsnes/base/base.hpp +++ b/bsnes/base/base.hpp @@ -1,7 +1,7 @@ #ifndef BASE_HPP #define BASE_HPP -const char Version[] = "085.04"; +const char Version[] = "085.06"; #include #include @@ -39,14 +39,22 @@ template struct hook { } hook() {} + hook(const hook &hook) { callback = hook.callback; } hook(void *function) { callback = function; } hook(R (*function)(P...)) { callback = function; } template hook(R (C::*function)(P...), C *object) { callback = { function, object }; } template hook(R (C::*function)(P...) const, C *object) { callback = { function, object }; } template hook(const L& function) { callback = function; } - hook& operator=(const function &function) { callback = function; return *this; } + + hook& operator=(const hook& hook) { callback = hook.callback; return *this; } }; +#if defined(DEBUGGER) + #define privileged public +#else + #define privileged private +#endif + typedef int_t< 1> int1; typedef int_t< 2> int2; typedef int_t< 3> int3; diff --git a/bsnes/data/laevateinn.hpp b/bsnes/data/laevateinn.hpp new file mode 100755 index 00000000..b3746f38 --- /dev/null +++ b/bsnes/data/laevateinn.hpp @@ -0,0 +1,3812 @@ +uint8_t laevateinnLogo[121905] = { + 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,1,32,0,0,1,104,8,6,0,0,0,247,136,38, + 129,0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,0,0,0,4,103,65,77,65,0,0, + 177,142,124,251,81,147,0,0,0,32,99,72,82,77,0,0,122,37,0,0,128,131,0,0,249,255,0,0,128,233,0,0, + 117,48,0,0,234,96,0,0,58,152,0,0,23,111,146,95,197,70,0,1,219,167,73,68,65,84,120,218,236,253,119,152, + 100,215,117,222,11,255,246,62,161,114,85,231,220,51,61,57,103,12,114,14,36,2,193,28,36,81,129,162,2,149,124,229, + 251,73,150,174,172,123,45,75,126,244,93,203,178,37,75,178,44,90,209,164,40,81,34,197,12,18,32,0,34,199,193,0, + 147,83,247,116,206,93,93,93,185,234,196,189,239,31,85,51,24,128,32,197,128,72,246,122,158,126,122,166,186,234,156,83, + 59,188,123,173,119,37,81,187,239,125,188,26,98,10,137,18,146,55,131,68,226,22,255,242,224,4,31,248,143,79,240,86, + 144,255,1,244,0,255,127,224,111,129,191,4,54,3,231,129,63,251,46,175,245,21,96,14,56,2,124,28,24,5,2,224, + 52,176,23,184,23,216,222,252,187,15,104,192,0,20,208,14,180,129,184,14,228,81,48,218,65,100,33,92,128,160,23,184, + 237,251,252,158,117,96,6,216,4,252,28,176,3,200,1,78,243,153,126,5,168,189,9,231,231,131,192,6,192,2,126,23, + 248,123,224,16,240,54,32,211,124,246,231,154,99,56,12,172,109,142,101,25,120,7,112,79,115,156,199,128,46,96,13,112, + 13,240,123,205,107,143,0,133,230,56,76,0,235,128,241,230,123,119,1,207,3,155,119,238,163,239,193,23,48,61,221,188, + 218,171,35,251,6,223,216,61,107,178,42,63,116,34,155,160,147,105,44,0,209,9,134,9,118,20,226,2,18,199,32,19, + 129,214,18,200,24,44,118,73,57,211,166,84,185,38,132,54,163,81,64,124,119,55,20,2,195,247,80,190,191,58,248,171, + 178,10,64,63,140,18,54,79,216,13,64,43,24,123,192,182,32,17,66,26,104,23,141,3,183,79,66,111,20,186,93,41, + 123,124,132,182,85,248,76,196,180,239,245,60,231,220,161,214,142,96,241,255,248,61,116,52,14,74,125,199,247,246,147,105, + 54,223,251,207,180,220,251,25,172,213,169,88,149,85,0,250,225,17,221,52,125,210,32,135,193,238,128,84,30,58,5,244, + 43,88,35,97,16,24,112,160,191,98,199,122,150,251,250,187,138,61,93,169,83,139,179,241,3,83,51,179,59,96,26,207, + 137,152,169,140,40,253,135,255,73,213,144,72,253,237,77,0,45,4,82,26,152,145,40,174,214,4,158,71,128,32,4,236, + 213,41,89,149,85,0,250,225,208,120,2,96,17,140,50,36,98,66,116,197,96,77,168,245,6,27,54,123,66,110,204,167, + 50,107,179,241,84,231,98,212,200,208,149,78,248,29,237,178,218,213,75,110,100,148,173,217,229,153,29,97,248,152,128,103, + 77,88,52,93,39,236,125,236,107,44,93,125,27,202,52,17,175,0,66,66,26,24,177,56,218,169,81,203,103,25,57,252, + 56,239,172,85,120,252,208,163,164,42,165,213,73,89,149,85,0,250,65,151,0,72,0,187,64,62,6,113,3,250,226,176, + 205,210,122,47,66,236,200,153,246,186,137,150,206,129,165,77,27,90,229,186,158,72,58,41,201,196,124,124,43,198,145,227, + 211,180,125,249,158,218,187,87,138,103,58,225,17,15,30,76,194,177,9,88,238,242,92,117,205,125,159,229,212,229,55,224, + 89,54,232,240,2,234,16,88,54,88,22,193,242,2,147,143,126,149,59,206,30,69,140,156,226,241,192,167,79,107,20,223, + 53,107,180,42,171,0,180,42,111,69,137,3,62,216,87,64,187,11,59,12,184,218,133,203,207,39,90,182,77,172,219,208, + 163,183,15,196,90,59,99,162,95,57,224,148,136,138,12,211,101,120,254,201,231,184,250,220,248,220,53,120,135,52,60,236, + 193,83,14,140,236,129,242,28,168,218,37,54,157,22,2,109,152,4,150,141,85,175,48,116,234,24,222,217,227,44,31,126, + 156,133,82,30,5,92,160,170,245,234,148,172,202,42,0,189,53,197,6,142,211,112,237,14,54,205,42,247,95,209,38,34, + 96,172,129,30,23,110,0,110,155,138,197,47,159,61,112,217,218,112,109,38,154,76,199,241,125,77,101,113,133,186,116,137, + 181,165,152,40,20,201,62,252,130,247,225,197,236,240,32,250,81,23,30,52,225,72,20,22,142,129,59,1,108,107,242,72, + 8,129,147,72,129,20,36,10,57,182,61,245,32,226,241,175,179,185,94,229,108,224,147,93,213,116,94,19,209,128,48,4, + 58,13,162,40,208,1,160,245,42,0,173,202,107,43,17,224,33,94,140,141,201,1,7,128,202,183,249,140,4,211,131,117, + 26,222,54,223,59,240,54,245,193,187,186,230,74,211,20,231,75,164,242,138,164,89,39,19,9,49,91,211,156,154,205,211, + 245,240,243,249,31,175,212,143,217,240,144,11,143,104,56,101,64,241,147,16,246,53,65,79,92,0,22,207,101,207,3,159, + 167,115,252,28,189,195,39,48,125,143,17,173,145,171,83,245,154,138,0,188,153,25,236,143,255,111,130,187,62,128,221,26, + 193,180,77,188,10,232,239,194,27,249,102,148,213,181,243,22,56,33,82,64,43,141,128,181,86,96,99,83,43,217,242,178, + 159,237,64,6,12,5,9,7,186,23,174,189,188,99,232,186,253,144,93,166,152,155,39,52,107,36,45,73,38,222,206,241, + 51,203,36,30,58,154,191,171,82,127,214,128,127,9,224,115,2,158,47,65,254,72,3,119,88,15,172,0,109,205,251,77, + 250,30,251,191,242,15,12,158,60,140,233,185,63,48,167,240,91,1,128,252,220,18,230,191,251,57,190,116,160,151,242,47, + 254,12,143,254,237,39,8,125,7,157,150,72,67,34,132,120,203,174,239,85,121,139,136,75,35,58,186,11,56,215,60,61, + 76,26,241,61,23,248,150,24,4,109,144,79,9,57,91,59,114,186,242,84,127,75,250,221,239,184,150,165,130,199,225,179, + 227,100,11,101,142,141,47,208,114,236,92,237,71,235,181,243,62,60,166,225,97,31,70,226,224,215,155,38,223,94,224,102, + 160,175,105,126,117,94,48,195,86,229,141,3,162,48,192,171,148,153,253,220,39,121,254,115,159,164,255,207,126,159,53,191, + 252,127,225,190,227,131,136,182,40,182,48,9,235,26,241,22,98,222,86,53,160,183,152,186,42,129,98,243,255,123,155,192, + 240,110,224,110,224,125,192,65,240,21,76,249,90,61,125,197,244,228,11,149,39,143,120,231,23,114,244,36,76,126,241,253, + 239,226,224,109,55,48,93,46,176,195,169,123,166,82,10,48,52,100,108,104,53,33,214,6,70,6,68,186,121,143,36,141, + 20,3,86,249,157,55,149,214,96,2,245,241,17,82,191,249,49,126,251,178,62,30,252,185,159,36,56,122,146,72,82,144, + 202,72,132,148,171,0,180,42,175,157,74,158,108,114,67,135,155,154,143,251,162,137,166,5,100,5,60,17,117,235,95,217, + 255,252,137,231,22,159,92,116,203,50,202,217,51,79,115,249,222,65,62,241,55,255,133,142,159,252,137,248,145,84,219,80, + 5,110,143,194,135,37,188,199,129,235,99,176,235,122,232,235,130,68,30,228,170,145,245,230,20,125,225,64,10,3,170,149, + 50,222,151,62,77,225,206,3,212,126,238,39,249,235,191,250,59,148,91,195,72,75,120,147,155,103,171,0,244,22,151,11, + 218,201,2,112,31,240,32,240,0,120,45,48,234,194,215,59,85,240,249,29,223,120,248,208,241,7,158,115,236,161,29,76, + 61,51,130,63,126,158,119,255,231,143,217,87,63,248,143,221,227,63,242,227,151,63,148,234,254,192,188,48,63,22,192,47, + 75,248,185,24,124,64,194,117,243,176,201,129,54,7,236,101,16,106,117,184,223,212,27,217,242,61,114,159,251,123,254,224, + 215,63,202,115,55,239,162,246,241,191,68,151,43,184,118,136,142,201,55,165,14,187,10,64,63,64,11,48,108,254,30,2, + 178,224,250,66,140,251,82,62,210,165,220,175,111,250,242,163,39,31,253,187,111,248,201,29,219,8,85,129,83,247,126,134, + 193,190,8,63,251,233,63,177,14,124,246,239,186,30,185,237,242,125,159,217,216,241,246,175,182,118,254,200,73,97,253,156, + 134,159,181,225,199,21,220,169,224,178,121,88,51,3,153,115,13,48,146,149,75,78,226,87,55,63,123,85,190,31,205,248, + 2,196,20,39,199,168,254,246,47,51,117,112,128,23,126,225,35,116,29,59,73,152,20,68,51,18,195,120,243,108,251,85, + 18,250,45,174,130,155,52,74,92,196,64,238,132,72,28,98,123,32,82,6,43,166,117,2,104,245,161,214,175,130,197,200, + 215,190,158,251,219,185,185,204,109,191,241,145,216,181,155,54,51,253,220,33,18,99,51,188,237,230,183,113,217,13,255,204, + 3,95,254,188,125,254,145,39,218,78,141,140,183,77,14,207,173,237,158,205,30,88,27,250,51,105,56,111,194,176,130,241, + 89,152,93,128,101,160,96,66,197,6,119,1,130,16,148,209,220,0,171,154,210,155,3,140,172,48,192,43,23,73,126,225, + 31,232,187,231,179,100,223,249,35,28,186,246,22,54,189,235,3,116,181,197,168,85,87,1,104,85,190,7,147,75,52,249, + 31,11,228,46,136,204,67,70,65,71,10,122,5,12,248,208,158,128,24,208,82,211,186,199,133,78,29,141,13,4,134,109, + 4,147,11,222,63,255,201,39,98,238,237,215,176,251,250,189,200,184,201,233,71,191,64,207,192,90,62,116,199,157,204,95, + 113,37,199,159,57,204,212,11,47,36,138,249,108,226,212,236,210,96,231,124,97,103,219,124,33,107,46,101,23,98,42,156, + 181,27,152,55,227,55,126,22,134,97,217,130,194,58,168,70,192,115,33,176,65,201,85,205,232,205,35,190,71,199,231,62, + 201,103,63,247,73,158,250,147,255,196,47,125,236,215,121,215,135,126,178,113,116,173,2,208,170,124,167,38,86,20,164,15, + 86,39,196,103,161,43,6,131,186,81,227,107,115,29,134,10,210,30,200,71,51,173,37,83,70,74,17,25,9,186,59,147, + 173,67,221,150,238,50,69,44,147,17,59,77,67,72,175,74,110,250,12,167,31,94,161,119,247,78,118,92,125,3,238,204, + 56,179,11,103,176,218,58,185,226,242,13,108,90,223,203,244,240,56,194,194,240,188,82,139,151,93,105,145,217,202,250,197, + 147,147,110,253,228,104,41,62,183,180,210,230,123,75,9,21,206,217,48,19,194,76,0,179,157,176,16,192,130,3,203,239, + 132,90,5,130,55,39,251,240,195,107,162,229,39,206,243,251,191,245,11,124,226,227,127,200,244,196,249,85,0,90,149,111, + 109,102,105,26,9,166,221,192,187,32,102,67,151,128,53,26,214,89,13,208,217,90,74,36,55,102,215,172,233,245,183,108, + 204,68,55,14,68,186,134,58,89,159,18,152,182,65,38,145,36,21,73,160,113,241,106,101,242,217,34,147,19,243,20,125, + 65,247,224,6,218,163,54,165,209,195,164,59,123,145,145,78,170,217,5,170,179,11,88,118,11,194,173,48,57,50,77,204, + 142,99,72,65,203,134,30,99,199,85,59,227,66,136,120,113,33,219,179,112,122,118,235,194,185,37,71,143,206,151,219,114, + 139,185,120,105,101,49,230,121,51,17,24,14,224,76,59,140,45,193,220,46,40,218,224,85,65,197,86,167,245,77,35,51, + 147,163,171,38,216,170,124,235,211,202,1,118,131,116,32,146,131,150,40,108,240,225,160,134,253,158,97,172,243,182,111,31, + 140,220,124,85,231,186,171,46,139,237,219,181,149,174,222,86,18,134,143,187,188,64,173,176,66,189,158,167,90,46,82,90, + 89,96,113,198,225,252,200,12,11,139,115,84,42,21,52,154,186,231,113,199,157,55,35,60,147,249,177,73,2,165,145,94, + 72,173,92,226,212,233,103,57,121,102,129,68,42,131,45,43,172,223,48,196,145,103,198,153,158,157,97,227,166,245,108,220, + 188,150,125,119,94,38,115,55,86,226,227,243,115,241,220,66,177,123,102,198,223,102,78,228,170,241,231,143,45,117,230,151, + 198,82,112,86,192,169,8,156,155,131,73,96,73,64,77,129,10,87,167,120,85,86,1,232,205,169,245,132,52,106,68,239, + 130,104,4,186,13,88,175,97,91,8,251,253,100,122,175,185,127,199,154,246,119,95,149,105,191,249,114,187,189,187,7,83, + 24,248,65,141,218,114,142,114,177,74,173,152,101,121,113,145,233,137,44,83,19,5,242,185,2,158,23,224,123,62,8,69, + 123,71,59,123,246,110,231,236,185,83,204,206,76,49,48,48,64,16,212,241,157,58,197,124,141,83,167,39,152,153,207,99, + 24,6,61,61,25,182,110,216,134,38,228,236,240,89,234,53,135,177,225,57,166,207,205,146,157,88,162,163,43,142,116,86, + 216,56,48,128,215,37,197,226,166,174,100,112,195,254,228,236,249,197,65,253,204,11,187,219,199,206,78,119,248,222,176,132, + 19,33,28,43,193,185,71,96,97,23,212,98,205,162,30,171,230,217,42,0,173,202,155,68,106,192,187,193,176,26,209,201, + 155,3,184,50,132,203,107,241,196,22,174,61,56,212,255,222,107,91,218,247,14,200,120,103,154,170,227,178,56,126,26,171, + 226,227,107,147,92,169,192,252,248,20,115,99,43,44,47,151,240,3,23,173,3,12,35,74,166,37,138,97,71,232,237,237, + 225,178,131,251,104,105,73,176,148,27,101,165,48,75,60,33,72,216,38,181,98,153,51,39,167,153,157,171,98,88,38,187, + 246,13,176,255,192,46,38,207,45,114,236,216,57,240,99,152,34,32,244,53,169,68,146,241,51,227,84,115,109,184,190,75, + 118,230,44,67,27,6,8,22,179,184,161,195,208,149,91,173,232,29,63,222,85,24,47,116,142,223,255,220,38,243,201,39, + 246,245,122,245,51,54,28,10,225,153,235,225,204,52,228,98,16,60,191,10,66,171,0,180,42,111,172,214,163,128,61,64, + 90,136,72,0,253,66,235,253,2,110,168,152,230,149,165,131,187,55,164,223,182,163,165,123,231,128,72,102,98,84,150,179, + 20,23,75,132,118,18,95,105,130,208,34,59,49,202,244,217,17,148,19,16,141,9,6,7,44,42,53,240,189,24,169,84, + 146,104,90,209,183,166,151,173,155,119,83,173,214,153,158,158,102,112,112,128,149,149,121,226,49,73,173,84,228,236,153,9, + 102,23,92,214,172,31,228,186,27,119,208,213,157,230,228,145,179,156,56,122,14,161,109,148,167,48,36,40,237,17,232,50, + 209,152,65,177,178,140,101,69,113,106,117,70,199,203,236,217,188,159,82,54,207,241,7,159,164,173,183,155,129,157,59,197, + 246,95,123,111,122,225,3,55,167,143,127,254,145,181,173,143,62,188,121,200,247,54,85,225,145,78,120,110,16,166,179,80, + 75,128,94,117,223,175,2,208,170,188,1,18,0,189,192,207,64,52,167,245,122,19,110,242,17,111,31,235,235,61,160,110, + 220,215,53,176,175,203,108,77,197,17,37,141,99,69,209,173,237,76,230,28,202,203,130,173,125,157,84,230,158,69,85,23, + 88,55,216,70,185,88,162,144,175,83,42,7,152,81,73,215,64,156,150,76,43,155,182,109,32,153,206,48,62,58,207,83, + 79,29,2,2,238,120,251,245,12,116,247,18,4,46,163,99,203,100,75,1,7,175,219,205,101,151,239,161,179,35,201,241, + 231,143,112,234,216,73,146,169,52,197,66,158,100,44,192,13,20,117,87,19,104,137,176,99,8,229,35,76,77,75,164,21, + 237,4,76,143,143,113,229,213,87,209,222,223,201,161,67,71,88,122,228,41,226,137,35,108,220,185,143,107,255,175,95,138, + 21,127,244,253,219,167,254,248,127,116,182,157,60,54,152,130,161,50,60,121,13,156,42,195,202,213,224,63,180,186,28,86, + 1,104,85,94,63,105,7,182,130,140,66,186,10,155,13,184,169,140,184,227,252,229,59,47,107,185,110,107,162,45,29,65, + 40,73,45,189,134,192,202,4,167,142,79,250,247,62,241,141,232,141,7,47,19,63,241,206,43,200,207,60,71,57,59,73, + 107,122,144,220,92,153,153,233,105,12,43,164,107,160,157,68,107,154,150,246,46,246,236,217,137,235,132,60,245,196,17,158, + 63,124,140,82,185,204,174,93,27,105,107,109,165,94,54,120,225,217,51,44,45,213,185,233,174,119,48,56,212,74,123,71, + 23,99,167,71,120,254,217,23,216,180,126,13,249,124,157,82,14,82,137,54,42,110,133,114,181,130,10,45,76,51,130,37, + 192,182,21,137,136,6,83,226,122,112,236,244,121,174,184,230,50,2,35,224,244,209,83,184,229,128,83,79,61,195,209,67, + 207,178,227,170,155,197,158,63,255,175,93,147,159,250,236,53,211,159,248,68,255,160,231,110,240,225,27,54,60,245,23,48, + 245,235,224,127,101,117,89,172,2,208,170,188,246,210,10,252,21,200,86,104,173,194,126,19,222,158,179,172,155,231,110,56, + 176,99,224,170,117,182,169,29,202,178,133,149,160,63,116,62,243,76,221,120,224,193,194,76,44,94,252,240,31,254,135,77, + 63,118,215,94,251,196,67,95,66,121,154,109,91,110,225,241,71,30,36,191,56,67,166,61,195,192,218,181,40,203,164,115, + 160,143,189,7,14,50,63,183,192,151,63,127,63,227,195,83,248,65,72,58,147,226,186,27,174,194,176,52,167,78,159,32, + 183,92,226,246,119,223,141,213,210,202,82,193,67,137,26,143,63,246,48,251,118,239,197,64,114,238,236,51,248,129,139,20, + 96,154,2,165,60,16,17,194,208,37,147,180,137,89,18,97,10,68,194,64,59,117,202,245,5,206,159,63,198,222,93,187, + 112,75,101,150,230,178,8,105,83,118,2,158,254,250,151,24,31,57,205,59,126,225,23,227,139,183,222,180,237,153,127,247, + 219,157,187,167,198,58,99,144,88,129,111,252,58,76,206,128,119,100,117,121,172,2,208,91,215,166,81,12,245,167,248,104, + 204,36,94,15,222,116,143,39,104,212,245,249,40,200,53,208,86,134,131,6,188,103,50,154,184,173,240,174,221,107,217,176, + 70,156,158,245,48,74,34,104,157,122,161,218,57,242,47,225,96,62,111,44,173,221,144,254,137,191,253,179,142,157,87,174, + 181,135,31,252,2,169,100,23,117,87,241,141,175,63,64,177,176,196,174,45,107,104,233,236,166,26,73,17,177,108,118,221, + 120,51,185,5,135,251,62,251,48,147,19,179,8,13,65,205,231,170,59,111,97,243,229,87,240,232,87,63,67,33,183,192, + 141,31,248,8,166,213,201,99,143,223,199,187,127,228,102,14,223,243,5,246,93,117,128,181,93,67,60,248,185,127,33,12, + 67,236,72,132,13,59,58,41,29,117,113,67,129,182,5,161,31,96,96,99,199,45,132,37,136,89,54,150,105,226,4,62, + 197,133,25,178,109,105,182,236,187,140,74,253,49,98,65,149,221,215,220,196,218,66,200,163,159,249,60,255,244,7,255,149, + 219,126,226,131,226,214,207,252,69,231,151,127,241,223,95,183,239,200,243,86,43,24,2,30,252,67,152,248,3,112,31,88, + 221,159,171,0,244,86,20,215,11,217,179,181,141,191,89,147,134,115,43,111,202,103,60,2,194,133,150,50,92,110,192,123, + 78,183,244,222,185,242,246,253,125,139,97,9,239,203,71,195,93,203,197,149,205,229,106,37,89,173,24,85,116,98,106,203, + 118,251,170,79,252,81,116,211,238,1,49,124,228,27,196,218,7,153,31,30,231,200,83,143,97,101,210,92,119,235,53,152, + 134,137,136,167,73,122,16,198,147,212,42,240,249,79,124,146,233,233,81,226,210,100,185,234,209,218,155,228,250,119,222,206, + 204,244,34,217,51,103,185,250,182,187,17,45,29,252,239,63,249,115,222,255,225,119,49,125,242,24,27,247,236,102,104,112, + 3,15,127,249,171,204,231,107,24,74,210,217,155,34,149,72,160,252,0,219,180,16,66,161,209,4,174,70,9,69,58,147, + 33,168,58,180,102,146,172,84,106,24,210,96,126,126,129,237,3,91,217,188,125,43,51,195,39,153,62,119,148,93,55,125, + 16,251,125,119,243,240,61,247,242,197,191,254,43,110,184,253,38,222,243,201,191,74,125,237,55,126,239,234,161,123,191,104, + 12,128,136,195,253,127,14,19,191,10,222,189,172,22,183,95,5,160,183,160,8,165,121,108,99,43,75,231,86,136,190,137, + 22,176,160,209,147,61,6,86,20,54,90,240,246,231,83,233,183,141,92,182,182,79,59,14,137,35,147,206,221,83,211,167, + 19,232,9,5,201,10,172,29,219,185,43,115,197,159,255,135,104,95,166,34,150,142,61,65,88,79,241,220,11,143,48,55, + 114,130,205,219,46,99,221,206,109,84,107,53,226,189,27,33,48,56,126,232,16,55,223,125,19,159,251,248,167,152,25,61, + 135,21,53,113,11,62,90,187,236,58,120,45,86,75,154,35,159,253,59,118,238,191,150,68,219,102,254,244,79,255,148,157, + 251,182,210,158,12,9,173,14,98,177,56,227,195,167,153,60,55,73,24,104,122,6,51,244,182,165,113,156,0,29,64,196, + 18,72,20,66,8,66,109,162,181,162,165,189,29,199,42,35,181,207,218,129,126,22,151,22,49,172,24,11,51,227,108,222, + 190,147,234,202,50,209,120,148,51,71,30,229,192,141,119,80,169,228,152,57,113,130,35,143,60,70,53,95,227,93,127,242, + 159,18,255,24,56,87,69,30,184,79,117,128,154,129,7,126,23,38,62,2,254,111,209,232,171,190,42,171,0,244,150,17, + 165,225,234,15,110,229,239,31,158,98,164,230,191,105,190,104,72,131,120,222,3,182,11,253,121,196,174,177,173,91,7,172, + 84,20,207,180,216,92,115,22,82,232,23,60,152,171,192,238,225,237,91,219,238,252,227,255,51,221,221,150,19,249,108,157, + 225,163,11,44,156,58,139,142,150,185,250,237,55,210,187,102,19,179,217,58,235,182,239,167,88,11,249,234,151,191,200,93, + 239,126,39,143,124,241,203,204,158,62,135,29,143,147,207,175,32,137,144,110,177,184,230,230,59,152,124,246,16,118,44,32, + 185,237,0,255,248,231,159,33,29,137,112,249,21,91,177,35,9,102,22,230,233,145,146,179,199,39,88,41,86,24,90,223, + 67,166,45,74,87,111,23,83,99,203,24,40,44,41,8,3,31,35,158,64,99,128,14,8,8,73,182,183,82,93,154,39, + 157,78,81,172,214,73,36,227,148,139,203,184,129,199,250,237,91,25,31,27,167,191,191,155,147,207,61,206,45,239,125,39, + 15,212,139,36,39,22,88,56,241,12,45,189,157,252,236,223,254,89,236,239,223,247,225,203,15,28,58,164,18,16,58,112, + 95,15,204,232,102,141,234,55,242,208,88,149,85,0,250,174,68,123,33,230,134,22,254,231,250,22,14,159,204,190,169,158, + 109,29,240,73,16,6,68,235,66,196,172,142,148,236,137,39,24,173,72,10,94,24,24,96,215,97,221,83,91,215,94,254, + 142,255,250,163,157,29,93,54,197,34,60,241,224,163,228,38,230,24,236,235,224,218,155,238,68,117,116,48,182,82,99,247, + 238,93,228,230,10,124,225,239,255,137,107,111,189,129,201,225,97,78,28,122,148,68,36,66,177,6,181,186,65,34,226,178, + 102,251,110,162,49,201,137,227,135,216,115,203,29,124,233,11,159,167,184,56,201,157,239,127,39,61,237,157,140,13,79,48, + 122,234,44,108,217,196,137,23,70,24,92,219,199,198,109,189,136,48,164,88,113,153,95,88,70,10,69,212,50,241,116,136, + 52,37,94,224,227,7,26,215,169,211,223,223,15,78,21,45,52,107,214,111,96,102,114,148,254,158,118,102,103,103,89,179, + 115,43,177,229,28,137,68,27,197,106,141,220,194,20,215,188,251,71,120,232,111,254,28,195,142,114,254,169,199,25,220,188, + 133,31,255,244,223,165,255,238,166,187,46,191,126,106,162,106,64,54,132,242,255,128,149,95,162,145,203,241,70,200,157,192, + 41,88,237,107,191,10,64,223,165,248,154,63,248,217,221,124,242,183,30,37,246,38,33,163,3,26,133,222,45,208,30,4, + 150,86,126,88,169,106,217,153,18,118,232,144,174,149,45,31,118,63,188,161,171,247,186,255,240,190,238,205,61,67,148,115, + 33,247,221,251,56,243,147,75,92,181,111,43,123,174,28,162,158,238,97,97,185,194,222,77,67,76,159,25,231,51,159,254, + 10,67,107,186,104,75,68,120,226,203,247,97,9,15,55,2,249,233,10,145,120,10,83,21,184,236,178,131,76,15,31,98, + 253,238,237,28,125,126,134,217,23,142,177,123,215,102,246,237,219,193,82,110,153,227,143,62,66,186,173,155,71,30,121,1, + 133,98,223,101,123,8,205,26,38,146,167,159,126,26,161,37,201,148,77,213,115,41,87,20,194,0,67,132,40,213,208,130, + 34,81,155,84,71,23,245,90,149,206,174,62,140,120,130,120,58,195,114,190,64,93,197,24,216,186,157,217,99,103,216,116, + 217,181,28,125,242,235,92,255,142,237,236,184,253,29,156,190,231,11,68,8,121,244,179,127,207,135,126,245,223,115,213,199, + 255,180,229,217,119,126,224,224,245,129,59,173,97,54,1,199,174,3,231,93,52,26,47,190,94,230,180,160,209,2,105,8, + 56,182,138,21,171,0,244,93,147,209,126,200,205,7,123,137,189,237,114,106,247,188,64,50,116,222,112,46,72,52,65,168, + 42,68,96,65,190,69,235,101,39,183,236,22,183,182,69,141,88,192,11,102,44,49,220,18,111,217,245,203,239,200,28,88, + 183,153,226,66,137,175,127,229,81,102,22,23,185,226,170,131,236,191,238,50,220,120,156,249,133,49,54,246,244,50,117,102, + 152,47,125,238,33,12,13,151,95,125,5,79,220,255,16,94,165,66,36,146,96,58,183,130,17,51,8,252,26,157,131,189, + 180,24,14,11,229,34,210,90,195,243,247,127,129,174,182,118,174,185,237,42,234,213,37,14,61,248,32,182,25,99,114,106, + 150,243,227,243,188,253,230,27,105,233,109,69,136,62,190,113,207,131,228,203,30,189,157,237,40,175,68,60,22,197,205,150, + 145,134,36,26,19,4,190,34,172,215,240,92,151,100,71,55,70,97,9,199,41,211,187,102,136,82,181,72,111,79,47,185, + 185,101,54,238,216,72,177,99,28,183,84,99,219,142,203,24,126,225,105,118,222,240,46,102,78,30,71,207,12,163,170,121, + 30,254,204,95,243,206,95,253,247,156,254,165,159,239,27,255,211,63,187,122,8,198,235,144,253,29,152,52,32,124,130,70, + 195,198,215,235,176,24,4,54,208,168,185,157,92,197,139,85,0,250,174,57,151,186,199,169,107,174,71,143,57,140,158,120, + 1,255,77,96,211,251,192,101,90,251,235,96,62,2,19,3,211,139,165,178,179,62,26,139,216,60,222,25,239,248,137,15, + 94,203,173,91,118,144,159,94,228,254,135,30,165,180,156,103,247,142,141,92,113,235,1,114,126,146,194,236,50,157,145,8, + 165,185,105,238,255,234,19,44,231,86,184,235,125,111,103,122,114,150,236,204,50,118,36,194,74,197,195,175,128,142,249,216, + 150,205,150,13,107,169,150,230,232,236,216,194,3,247,61,142,233,229,217,125,219,173,88,173,157,60,125,207,61,88,245,34, + 185,178,199,212,76,158,206,84,156,43,174,222,67,188,175,135,67,247,60,196,249,115,211,180,175,93,71,166,205,164,152,45, + 227,122,53,66,101,82,173,213,24,236,238,164,82,244,33,240,241,156,58,118,75,15,201,150,12,142,227,144,238,236,98,170, + 88,160,181,163,139,252,228,28,245,250,38,122,182,236,99,250,244,17,6,247,188,141,153,153,5,170,217,105,246,222,113,39, + 135,254,106,132,104,194,98,105,250,28,71,238,253,28,63,250,91,255,70,254,229,211,207,109,237,125,238,153,27,44,152,172, + 192,202,151,160,240,31,223,0,243,235,83,171,56,177,10,64,223,215,151,172,85,57,115,203,173,76,207,79,161,151,151,223, + 112,0,114,128,187,33,148,141,190,127,83,221,229,242,242,241,115,11,93,253,253,107,185,243,134,237,28,216,219,207,92,174, + 192,177,195,231,153,155,42,177,123,247,102,246,94,127,13,243,139,57,168,101,145,229,28,178,179,147,251,31,58,198,236,82, + 137,221,7,54,211,221,191,134,175,252,195,23,176,67,240,112,112,235,62,166,157,164,84,175,208,219,31,37,29,171,98,70, + 58,56,127,106,140,194,236,18,173,3,61,108,220,212,205,217,135,31,32,63,151,101,197,181,152,207,151,241,116,145,187,110, + 123,15,61,59,246,113,244,249,195,28,127,238,24,101,4,87,239,219,128,63,49,73,162,127,55,231,166,142,18,143,72,44, + 21,18,79,39,41,151,74,88,126,26,211,55,128,16,51,211,69,186,93,18,250,54,237,221,189,148,36,116,173,233,39,63, + 55,204,224,222,91,137,45,230,41,85,86,216,182,107,23,147,135,159,102,251,29,31,160,99,215,30,166,158,123,142,142,214, + 22,142,63,253,36,155,118,109,225,154,223,253,88,114,228,67,35,251,118,149,115,35,37,24,91,7,181,35,224,101,120,125, + 88,105,5,44,241,237,59,209,174,202,42,0,253,235,11,73,107,34,134,201,71,15,94,206,173,247,126,237,77,241,76,115, + 192,104,3,132,252,65,100,125,238,244,233,176,163,199,54,222,113,240,6,220,162,195,217,137,19,140,156,153,103,253,166,126, + 54,31,220,199,82,190,68,220,180,152,31,155,96,221,224,32,207,29,58,66,118,49,71,34,30,227,134,235,175,225,209,71, + 159,32,168,87,144,134,164,232,128,235,75,66,29,176,156,93,228,178,45,173,88,145,24,133,178,203,201,99,47,96,9,159, + 3,187,247,48,123,126,130,241,241,25,10,165,144,133,114,13,79,5,220,176,239,74,174,121,251,141,204,204,143,243,212,231, + 239,35,87,118,233,93,59,64,202,148,4,153,52,35,51,57,188,208,37,149,177,80,190,38,29,79,82,107,113,209,66,35, + 180,194,150,6,134,48,201,116,247,176,188,84,33,221,217,141,31,84,105,27,218,74,233,228,11,248,165,69,186,55,239,101, + 114,244,20,235,55,109,66,159,51,88,26,61,78,255,182,45,204,140,156,34,148,146,238,246,14,158,253,210,61,92,251,225, + 31,99,226,195,239,238,47,126,252,111,174,72,192,153,93,48,119,24,178,255,9,72,188,198,243,83,5,222,9,252,6,171, + 49,72,171,0,244,42,240,46,132,33,19,93,221,124,218,178,89,241,189,55,172,29,136,15,220,14,44,131,169,160,219,132, + 161,69,51,222,150,234,77,27,87,237,90,131,95,90,98,97,197,229,204,232,44,169,22,131,45,91,215,177,82,45,210,158, + 106,225,220,11,71,88,191,110,29,163,99,83,156,59,55,73,221,117,185,254,198,107,40,23,74,204,143,76,96,138,144,58, + 154,92,197,64,72,141,83,89,161,45,105,145,140,154,216,137,14,142,157,28,70,121,21,134,134,122,49,60,135,83,103,207, + 145,173,4,148,28,73,221,115,88,219,222,198,53,183,221,130,39,3,30,253,199,127,162,92,172,178,88,169,112,199,193,189, + 212,22,166,168,213,234,156,159,24,39,17,129,84,202,164,86,242,177,132,69,91,103,148,122,177,142,48,4,182,52,49,13, + 139,74,185,142,176,162,216,81,129,87,168,33,19,29,116,12,109,165,180,56,78,251,142,107,73,183,117,224,84,43,172,217, + 178,141,133,201,115,180,68,147,108,234,236,97,120,108,134,190,129,77,172,20,203,44,12,31,103,237,135,111,52,143,125,249, + 129,173,87,207,77,237,43,194,209,1,200,223,7,129,249,26,3,67,216,156,171,202,235,0,118,171,0,244,67,32,86,24, + 144,235,238,230,119,58,58,152,155,159,123,67,159,229,19,192,46,200,4,176,51,64,238,249,106,202,236,187,226,134,237,36, + 133,65,185,230,113,106,116,158,122,32,217,185,103,16,39,8,232,203,100,152,30,25,37,98,88,168,80,113,246,236,56,97, + 40,73,38,227,108,217,184,134,71,30,126,12,225,73,66,9,139,213,34,136,86,68,80,98,176,39,131,16,73,218,59,186, + 40,149,92,150,231,150,104,111,73,16,77,70,56,59,60,74,97,217,165,162,13,102,23,151,232,73,89,236,220,187,145,68, + 87,146,199,62,255,53,102,39,150,88,88,42,177,101,221,26,218,18,154,211,249,5,230,151,125,156,74,157,222,182,56,134, + 45,201,86,28,234,46,116,244,180,177,232,47,162,77,11,165,13,34,241,20,147,75,43,180,246,174,193,76,216,216,174,139, + 87,117,137,247,108,36,91,88,193,173,20,72,181,245,81,201,205,211,214,222,67,108,126,138,154,83,198,111,73,18,233,74, + 113,100,248,40,151,93,113,45,165,185,57,182,239,216,197,147,59,55,181,85,231,166,182,153,176,81,192,120,59,20,186,94, + 7,243,235,12,171,29,62,86,1,232,85,18,13,104,165,249,191,59,58,152,158,159,123,67,120,160,0,216,12,108,4,171, + 2,67,17,184,242,1,219,220,25,63,56,24,217,209,217,142,19,106,78,141,44,49,53,190,200,190,131,67,4,129,164,22, + 132,196,80,120,133,34,93,93,253,156,56,113,22,215,215,84,42,21,174,223,127,128,153,233,41,230,103,22,64,167,240,13, + 73,197,201,97,186,43,108,93,147,36,157,73,178,82,170,210,218,217,199,185,115,19,68,132,198,178,34,228,235,30,11,203, + 53,2,199,96,62,159,197,196,101,215,206,77,236,186,124,43,39,158,121,146,177,211,147,76,45,215,48,165,224,138,141,189, + 44,206,156,97,227,101,59,89,250,198,8,218,13,72,153,54,75,69,151,137,133,89,10,117,197,134,76,55,42,12,48,19, + 73,132,29,199,136,165,176,18,6,161,17,39,146,72,224,213,92,66,167,140,76,117,17,233,88,71,80,88,38,210,190,6, + 59,209,142,178,76,82,109,93,248,229,28,6,81,58,18,9,86,86,86,24,30,59,203,229,251,47,35,234,4,180,29,92, + 99,14,63,104,108,220,171,194,221,10,142,157,134,210,92,35,214,244,53,3,159,12,141,70,0,171,230,215,42,0,189,106, + 98,75,193,51,155,55,243,201,19,199,223,176,103,248,101,96,7,100,52,236,42,10,246,159,236,74,116,95,181,126,19,117, + 223,228,204,236,44,99,83,89,118,109,92,79,151,105,83,93,41,83,143,39,201,23,138,132,74,51,183,144,37,183,82,161, + 238,134,196,226,22,107,215,246,243,252,115,207,163,148,137,231,43,166,150,151,209,166,77,198,172,115,235,53,151,115,242,236, + 44,126,42,201,66,54,79,49,151,39,110,71,112,125,200,45,85,169,249,38,78,221,163,176,178,194,205,215,238,98,231,190, + 173,76,143,141,115,252,133,147,12,143,45,163,3,147,104,218,192,165,68,79,87,15,78,32,25,29,31,165,163,163,133,72, + 36,205,212,217,19,244,118,181,81,169,215,137,39,186,112,131,58,50,30,131,104,156,192,138,16,104,159,194,74,145,129,238, + 22,108,211,196,115,202,68,188,58,177,76,59,70,190,138,174,150,136,165,219,81,161,67,44,213,66,224,213,105,233,236,97, + 246,204,89,34,194,102,105,108,146,197,158,33,182,116,247,179,255,170,45,252,195,96,186,123,247,100,126,187,9,131,117,152, + 106,17,56,81,33,94,19,13,69,105,152,209,154,204,42,62,172,2,208,247,203,253,24,198,75,207,48,17,188,113,1,137, + 221,192,219,32,226,55,58,90,92,118,38,30,223,52,176,111,187,140,26,38,103,198,102,153,43,58,164,50,22,173,29,38, + 132,146,114,121,133,206,53,3,228,242,14,133,74,149,192,119,240,85,132,82,117,145,171,175,216,69,185,88,100,97,33,71, + 46,95,197,247,171,140,77,76,33,77,155,15,254,232,213,180,183,218,228,75,30,118,42,206,202,194,28,6,224,32,169,150, + 92,28,79,224,7,146,185,236,60,91,54,12,178,117,219,58,68,16,48,114,102,154,231,207,205,19,81,81,76,229,208,215, + 213,70,251,230,13,68,35,113,30,252,204,3,216,194,161,103,176,143,177,209,60,166,17,161,167,53,73,110,57,139,136,167, + 177,220,4,177,136,69,44,147,38,16,26,21,106,178,243,51,208,151,193,10,125,180,1,97,117,9,51,22,129,104,2,183, + 84,37,154,105,69,105,133,178,227,84,61,159,214,181,189,56,118,43,149,165,9,16,130,211,39,78,209,51,212,199,230,129, + 94,50,87,110,139,205,77,62,53,216,7,107,210,112,52,121,93,143,211,241,43,219,161,250,42,207,103,212,192,123,122,137, + 194,159,158,186,216,131,109,85,222,34,0,36,66,31,180,70,232,111,61,115,90,74,180,52,95,23,240,177,45,197,83,195, + 105,230,10,54,166,161,241,124,159,161,161,117,252,175,206,78,98,217,236,235,110,223,39,128,118,104,9,97,79,89,136,253, + 75,67,67,157,3,125,61,156,30,31,70,210,78,61,95,98,235,254,65,60,81,198,140,183,80,203,105,100,80,103,110,170, + 140,235,9,28,207,163,238,64,34,149,102,211,230,33,158,125,242,41,234,53,143,68,186,149,192,119,217,180,113,136,233,233, + 28,189,61,173,148,42,69,66,34,40,165,241,74,43,24,34,77,222,245,169,187,33,102,96,145,93,92,32,22,179,217,180, + 174,159,84,58,198,217,115,195,156,56,54,131,242,19,24,17,131,206,76,72,207,218,78,90,218,123,120,232,75,223,96,126, + 126,133,158,158,40,21,191,200,200,194,18,59,214,246,210,106,249,148,242,5,202,158,75,34,221,2,97,128,157,138,227,4, + 33,137,104,140,229,233,89,156,245,157,4,202,193,204,164,240,43,57,68,221,71,71,186,112,148,32,82,93,70,91,22,102, + 44,129,246,125,132,25,167,111,231,65,206,31,57,73,172,59,73,189,144,229,196,11,135,232,28,90,207,142,45,59,152,146, + 207,244,174,81,106,75,21,186,71,94,200,21,150,126,227,185,240,33,165,95,213,192,68,71,10,150,170,62,31,1,188,85, + 124,120,139,105,64,226,146,51,67,235,111,77,198,188,142,224,115,255,137,86,44,67,53,74,58,104,141,25,137,112,109,95, + 31,219,179,175,111,126,152,6,38,192,156,134,62,19,246,12,183,182,110,180,183,247,202,217,233,69,164,72,115,108,228,60, + 107,122,227,180,91,9,92,55,68,91,130,48,208,120,245,144,229,165,44,210,202,80,174,130,235,20,217,190,181,135,202,74, + 129,226,138,75,36,146,34,48,67,178,185,34,61,241,24,187,175,218,198,99,207,159,100,239,182,1,234,94,29,101,36,16, + 50,66,185,28,195,49,60,108,51,32,87,9,169,73,159,125,235,186,233,236,78,115,234,220,4,199,143,156,163,94,49,216, + 50,180,150,120,220,199,169,251,108,221,188,145,83,135,142,114,250,244,52,233,214,20,157,61,93,156,56,57,65,95,107,134, + 84,139,32,29,137,145,155,206,147,43,213,105,221,49,72,117,105,5,225,25,216,82,147,72,26,212,202,5,74,249,25,44, + 11,12,67,16,202,40,166,246,9,107,115,196,226,105,38,199,102,105,235,233,38,38,77,210,153,36,243,231,79,179,118,235, + 62,156,76,27,178,90,163,61,109,176,60,91,162,183,31,114,97,157,195,241,72,251,213,149,250,78,19,182,234,138,63,251, + 217,138,95,252,143,175,193,92,221,13,68,86,1,232,117,17,249,90,236,126,45,5,136,55,70,121,125,37,240,145,151,60, + 74,8,28,217,188,229,117,127,174,57,96,188,193,253,108,211,49,123,215,242,166,13,237,174,136,178,130,226,232,124,141,137, + 185,101,54,111,28,196,169,214,136,69,18,228,139,53,234,174,67,97,165,132,33,13,180,8,8,117,29,116,141,193,254,78, + 74,249,2,201,88,6,169,35,184,149,0,165,5,151,239,31,226,206,107,215,83,171,133,140,205,150,9,181,135,246,3,74, + 85,143,26,101,12,195,162,80,87,228,114,69,214,36,91,217,186,126,128,74,81,113,228,217,89,170,213,40,123,47,223,192, + 238,61,237,84,75,33,189,131,59,89,200,213,121,230,217,83,164,18,146,189,123,214,178,176,156,39,8,108,90,210,22,201, + 136,164,88,83,76,46,174,176,48,51,71,186,181,3,35,18,199,173,86,241,106,14,241,168,137,227,212,88,94,92,194,173, + 150,168,151,114,104,183,138,10,61,138,217,5,76,29,176,56,61,205,242,236,12,97,173,68,52,18,165,86,40,99,20,231, + 233,104,109,161,230,133,132,190,198,201,151,88,158,93,228,150,107,246,225,108,236,140,157,128,173,54,28,4,214,108,7,235, + 5,26,197,221,134,95,133,159,49,224,126,26,45,145,86,193,231,45,206,1,105,41,26,10,145,126,125,253,8,134,161,191, + 37,248,0,72,165,112,98,49,78,89,22,117,223,127,221,80,190,4,166,108,104,63,251,167,6,82,91,11,67,182,204,21, + 10,248,85,55,44,158,56,231,236,218,191,62,222,22,141,9,207,169,32,140,56,213,186,143,101,155,132,94,136,129,196,113, + 107,4,94,157,246,182,4,17,203,96,33,191,66,168,20,129,22,44,231,74,68,146,130,237,155,187,232,138,105,134,122,186, + 153,205,86,17,134,133,143,166,226,107,204,168,71,224,184,104,124,210,41,69,87,123,134,207,63,114,152,145,169,42,217,108, + 137,116,91,138,150,13,67,140,207,140,210,155,137,17,181,202,28,121,106,4,203,15,184,249,166,61,228,10,75,44,47,231, + 73,164,186,104,77,43,80,146,217,229,58,21,108,38,70,70,160,126,43,201,76,6,191,94,129,168,73,128,160,173,53,73, + 110,49,75,210,110,35,84,154,168,22,141,14,32,245,58,181,220,50,150,10,88,30,31,165,51,38,48,149,34,157,105,97, + 242,204,11,108,236,111,103,228,228,9,90,99,157,196,82,6,227,231,206,49,184,161,143,95,251,141,159,230,19,191,249,103, + 131,3,211,43,87,167,97,100,16,150,214,193,98,203,171,56,87,47,52,181,159,85,239,215,15,0,9,253,189,130,80,163, + 135,245,119,175,65,89,134,230,252,82,140,175,31,111,197,54,191,25,124,0,204,32,96,182,171,151,199,110,184,140,205,76, + 17,190,150,124,148,33,16,121,23,255,153,121,52,216,41,24,148,182,177,109,177,61,222,94,10,125,188,154,230,170,195,167, + 244,181,42,112,39,135,122,35,97,221,51,237,136,77,165,230,80,119,5,145,168,141,82,26,83,154,132,174,34,12,13,58, + 90,218,169,151,235,56,117,15,199,245,89,42,20,81,166,207,186,53,93,156,58,125,142,53,215,237,166,61,29,50,53,94, + 71,102,58,200,57,117,164,97,163,188,24,78,221,99,219,150,1,114,115,115,36,99,146,122,201,32,105,11,118,95,213,133, + 165,5,143,127,245,97,202,150,73,255,80,146,222,169,4,235,162,105,222,127,215,78,18,241,20,71,142,157,37,145,76,98, + 133,1,177,136,77,190,92,35,87,241,137,198,50,44,205,44,82,92,204,17,239,104,195,117,106,16,106,194,32,164,163,53, + 69,118,120,140,206,140,32,40,231,105,109,15,176,35,49,34,82,80,90,156,167,51,19,227,228,209,179,248,67,29,132,190, + 166,165,181,149,233,169,97,34,134,69,111,58,205,226,114,137,100,87,27,237,49,131,211,207,31,231,234,155,174,226,182,95, + 125,159,253,248,127,252,196,142,187,43,222,213,30,156,125,26,10,55,128,27,127,149,166,44,191,10,62,63,56,0,244,61, + 129,144,10,27,149,114,190,23,11,78,128,231,55,62,40,191,205,231,181,227,211,122,199,229,220,114,211,32,248,175,97,76, + 116,212,132,99,89,170,207,204,243,28,68,4,116,85,226,86,207,76,44,98,230,243,130,203,207,12,115,192,113,228,61,109, + 233,84,34,106,154,245,114,133,68,50,73,174,92,197,215,6,81,105,162,128,192,15,81,74,18,4,10,195,20,184,174,71, + 185,226,178,82,113,8,12,131,206,238,65,182,236,220,197,220,169,231,169,215,61,44,83,35,13,131,154,235,226,6,130,56, + 54,149,165,69,174,189,241,0,43,203,51,100,90,90,153,93,206,210,27,85,252,232,29,87,115,195,45,123,120,250,201,163, + 12,182,230,241,80,140,206,79,115,126,120,153,229,214,58,219,74,91,145,211,231,169,121,33,65,8,237,209,128,90,5,38, + 22,11,84,93,69,75,170,149,236,66,145,243,231,199,217,158,138,160,188,42,166,157,34,116,125,210,9,155,145,92,158,226, + 114,156,72,202,194,169,228,81,161,143,82,38,197,66,133,150,142,54,234,149,2,203,217,44,173,201,4,182,109,2,22,174, + 87,34,211,102,227,87,163,76,205,231,88,187,111,3,229,92,150,217,153,37,174,62,176,149,133,15,94,219,62,241,183,15, + 237,29,130,189,192,248,121,152,223,253,166,229,36,86,229,13,5,160,151,130,144,250,215,193,231,251,229,128,196,119,130,93, + 2,225,121,80,246,112,188,215,112,201,121,33,86,205,191,48,208,73,9,221,217,184,108,61,47,163,12,78,140,115,121,174, + 160,179,160,139,29,29,70,171,52,241,132,192,215,6,78,40,240,131,0,132,65,168,160,230,6,248,210,34,212,14,97,88, + 193,113,13,20,49,140,88,130,236,236,28,207,158,56,204,87,30,120,150,119,223,184,19,66,133,34,69,16,113,240,189,50, + 86,24,163,86,169,113,112,111,134,158,78,205,200,249,42,158,105,176,88,45,242,254,219,182,113,227,141,251,120,228,248,56, + 71,79,77,144,136,117,82,43,215,56,184,125,11,191,245,43,123,89,88,28,231,190,135,143,112,236,252,18,189,3,253,12, + 181,37,136,69,5,147,179,37,114,249,18,177,84,138,68,196,162,88,23,12,159,27,103,243,246,117,84,86,150,200,152,38, + 129,231,19,248,46,149,98,157,165,133,101,50,97,28,211,180,0,19,203,142,224,212,139,4,142,133,20,33,203,75,203,196, + 227,54,34,8,233,78,119,49,154,205,163,18,96,135,17,90,204,8,139,75,75,108,221,190,133,236,114,129,254,181,29,92, + 125,231,205,60,246,208,185,245,3,19,179,151,197,225,248,60,228,55,128,243,253,164,76,132,77,243,107,21,128,126,0,1, + 232,69,16,18,175,41,248,124,199,167,156,212,20,170,38,165,186,137,149,146,4,175,209,178,211,9,139,200,87,38,200,129, + 225,67,91,28,6,71,205,68,107,109,46,199,205,139,133,170,173,9,231,77,17,9,123,218,109,223,13,81,82,80,115,53, + 1,6,86,196,32,12,21,1,10,95,73,28,213,232,187,5,18,199,215,56,129,96,38,91,224,200,240,24,185,66,25,37, + 35,60,118,124,152,95,184,235,50,42,85,240,80,132,161,70,121,117,218,146,46,215,223,114,61,95,252,234,97,42,53,147, + 66,121,158,171,118,173,231,242,61,219,152,61,63,193,200,211,199,137,201,22,150,75,5,122,6,91,120,247,123,222,70,123, + 52,164,191,67,163,61,77,189,22,97,114,102,153,254,116,130,106,96,144,47,231,233,110,73,163,109,139,154,83,197,83,154, + 209,243,147,120,181,18,94,181,128,114,91,49,16,212,42,21,220,80,83,173,56,196,226,38,97,50,164,232,172,16,73,196, + 80,126,29,191,90,34,30,143,145,95,46,210,217,213,142,235,86,137,69,34,8,211,192,182,18,232,160,206,192,96,55,11, + 217,9,178,133,42,81,203,98,108,100,134,13,219,183,179,233,67,55,181,204,252,193,167,246,12,193,30,15,198,70,27,90, + 208,247,108,61,105,26,9,168,171,113,63,63,160,0,212,0,33,121,33,39,226,101,127,120,125,173,110,83,106,22,10,17, + 62,127,184,135,247,113,156,104,169,134,146,175,1,8,69,12,196,112,158,42,88,26,186,149,45,215,140,214,189,212,45,181, + 122,169,191,234,157,243,193,46,180,199,214,183,116,219,17,199,113,176,19,54,78,45,192,247,3,220,48,192,22,22,142,227, + 161,100,148,98,65,81,200,149,184,108,219,16,229,98,141,108,190,196,249,169,41,234,129,203,109,119,221,198,35,79,62,195, + 120,182,192,216,146,162,82,171,98,40,31,29,196,112,41,243,158,119,30,96,41,95,226,252,116,1,167,88,227,198,171,215, + 178,119,251,58,254,215,23,159,64,27,22,182,52,153,95,158,227,224,181,59,184,237,214,171,201,196,77,202,203,115,56,85, + 56,125,122,150,182,182,24,109,109,235,89,90,92,97,37,167,217,176,113,13,182,97,51,54,91,160,98,40,180,33,41,172, + 20,88,158,159,195,112,107,204,207,205,146,238,237,195,148,146,88,52,69,177,148,39,98,67,220,78,96,199,99,148,253,2, + 58,244,41,23,86,144,192,226,252,50,155,214,15,225,84,170,24,177,4,117,215,33,226,219,40,167,128,163,11,116,117,118, + 50,61,58,207,198,93,235,88,156,89,198,52,206,177,229,109,123,197,99,95,124,118,157,119,110,228,50,27,142,47,195,74, + 245,251,208,130,70,128,5,126,112,34,115,47,180,251,190,180,163,136,15,108,7,10,64,180,249,218,109,66,80,3,254,127, + 64,43,200,19,64,7,176,95,32,42,32,109,13,69,208,25,96,14,212,156,144,106,141,148,220,22,190,10,1,160,90,191, + 1,227,45,52,66,135,47,49,135,244,27,112,238,216,166,98,44,151,160,240,143,231,25,92,124,237,146,83,235,192,50,68, + 109,232,94,50,69,111,143,172,235,43,115,225,41,87,115,196,132,181,174,157,88,23,137,199,168,20,115,152,106,128,114,169, + 140,138,40,100,16,226,25,18,169,34,248,182,197,220,202,40,145,192,71,134,1,110,16,16,218,138,80,123,220,125,235,205, + 12,172,93,207,195,135,158,192,117,66,166,86,106,212,61,129,210,38,117,127,133,91,175,92,199,182,141,235,248,155,207,60, + 207,242,138,195,205,151,247,115,231,141,59,8,48,145,113,139,231,78,206,177,110,176,139,247,189,255,26,246,31,216,141,54, + 193,119,92,12,51,198,244,226,18,115,139,85,140,68,18,148,79,38,99,114,228,236,57,118,238,186,3,175,84,197,50,12, + 240,192,50,4,150,116,152,157,203,179,169,51,197,236,196,4,177,182,86,132,147,37,244,28,150,43,144,72,24,20,202,117, + 218,13,16,150,73,40,12,106,78,128,169,161,88,88,161,144,207,34,157,18,113,101,131,39,241,66,80,210,164,156,119,88, + 211,27,67,198,45,10,181,10,45,221,105,38,78,158,101,115,75,130,214,247,92,223,58,247,159,71,246,174,133,61,53,24, + 27,129,185,189,223,163,22,228,208,112,189,191,85,0,72,240,205,137,178,33,141,96,215,43,105,148,253,213,96,244,129,92, + 0,121,4,44,31,34,239,1,227,253,52,98,133,47,92,39,214,32,223,77,31,34,151,131,84,160,115,166,140,251,82,38, + 2,95,99,106,37,114,90,7,49,33,150,93,59,146,141,168,176,74,248,253,171,13,226,141,31,239,55,6,124,46,136,101, + 194,211,251,246,96,222,55,135,255,26,45,18,191,177,80,82,22,244,22,44,187,115,171,171,151,173,192,59,18,192,88,96, + 136,181,180,167,109,173,4,146,8,190,239,98,68,108,44,219,100,114,97,146,245,29,237,248,41,201,161,83,195,108,236,234, + 197,162,68,169,236,82,117,52,245,42,172,233,105,227,238,187,174,227,239,62,251,69,214,12,117,147,27,89,96,169,84,66, + 186,62,158,27,210,55,144,225,166,171,247,144,205,213,120,250,216,48,91,182,36,121,239,59,118,33,148,197,3,143,156,96, + 102,106,137,24,54,43,139,33,209,222,237,24,9,69,80,145,232,48,192,208,14,51,195,141,54,207,74,91,72,71,34,173, + 50,251,247,108,98,97,106,12,167,226,35,147,73,132,43,81,94,149,164,29,101,102,114,142,205,125,187,201,231,87,200,228, + 86,136,25,38,90,249,56,1,84,29,15,179,34,136,26,130,138,227,208,209,223,141,31,56,104,173,240,253,144,66,161,72, + 92,56,216,118,128,16,6,85,167,2,72,42,101,7,217,103,82,173,46,51,20,31,228,233,51,227,108,90,51,200,233,103, + 159,99,205,174,203,121,114,99,223,134,129,243,115,7,34,112,44,7,185,58,56,177,239,97,174,14,243,230,46,187,161,94, + 166,221,12,2,105,16,43,96,252,58,136,182,6,125,21,5,236,63,7,233,131,229,8,50,129,38,213,9,209,18,180,216, + 208,33,26,101,181,69,243,154,34,124,209,244,180,37,196,107,96,9,80,218,87,41,80,45,102,195,159,35,45,112,208,250, + 240,86,207,125,112,9,38,254,30,130,239,119,231,254,248,27,11,64,111,44,248,64,195,37,63,190,117,59,127,240,252,243, + 156,207,46,189,234,93,15,170,192,31,129,56,8,137,58,244,120,97,16,27,10,229,168,15,167,36,132,117,73,138,76,204, + 244,157,0,219,74,162,148,196,138,25,60,125,122,150,106,181,196,250,193,54,74,51,211,129,59,54,73,164,175,197,172,59, + 121,132,53,128,227,135,204,78,101,121,231,59,175,35,26,79,226,155,9,182,110,106,103,206,181,176,45,3,223,146,4,58, + 228,142,155,174,34,30,143,113,232,244,56,233,4,252,244,135,175,198,204,68,121,232,171,243,140,158,90,226,230,245,189,108, + 218,210,199,200,82,158,175,125,250,51,56,239,184,145,253,251,215,32,178,14,245,108,141,137,169,105,100,50,129,17,212,49, + 227,81,106,142,230,242,29,107,89,219,187,158,143,255,229,103,136,217,22,130,8,17,4,81,108,166,70,39,152,223,182,6, + 43,26,101,250,220,8,109,49,147,88,196,98,178,94,161,221,183,136,56,6,21,17,48,187,148,195,76,164,72,196,37,10, + 141,109,90,44,45,46,211,223,17,197,245,92,164,105,226,251,1,166,105,224,120,14,110,208,56,221,205,192,97,118,116,78, + 205,44,150,197,157,7,7,197,194,232,4,246,149,187,83,203,231,231,118,117,195,182,16,206,253,41,56,135,248,206,235,70, + 95,168,251,220,10,108,105,254,255,205,96,62,133,151,252,187,187,9,54,117,48,222,222,0,3,179,15,18,26,210,37,104, + 233,129,136,130,88,8,93,10,218,234,13,16,137,26,154,238,0,58,60,136,185,208,186,212,232,194,107,215,65,42,137,148, + 45,81,211,76,181,27,153,116,43,73,219,22,178,37,110,215,45,195,202,248,4,90,41,171,144,138,70,77,5,195,139,139, + 166,58,57,86,221,83,175,216,105,173,142,181,193,212,171,69,154,152,63,172,224,115,193,6,245,108,155,223,236,235,101,83, + 118,233,85,215,130,4,144,23,24,37,77,204,144,36,83,17,225,91,43,238,24,130,73,67,211,89,71,91,85,203,48,133, + 150,40,45,48,12,240,74,94,232,77,158,87,221,91,215,90,132,161,190,245,196,72,184,211,136,232,115,182,52,116,61,46, + 92,71,83,171,6,4,129,203,219,111,191,150,19,203,57,58,187,50,244,245,174,97,75,79,63,253,201,144,163,243,37,6, + 54,15,178,177,183,13,87,216,76,45,151,249,185,15,221,202,96,91,43,15,30,26,102,106,118,146,159,124,255,21,12,118, + 39,0,159,237,7,215,114,71,165,204,67,135,206,240,130,146,236,31,138,48,159,203,147,243,125,44,171,149,208,119,49,35, + 30,137,68,156,253,59,215,178,178,88,162,119,176,143,201,98,153,122,221,167,63,29,37,34,76,74,181,42,103,71,167,25, + 234,76,178,48,62,67,172,173,133,68,34,138,167,53,133,82,141,132,29,161,46,52,232,40,217,197,60,201,161,118,10,43, + 43,152,194,160,82,170,19,25,108,167,92,173,16,248,1,82,8,132,144,4,74,162,13,19,97,219,148,124,135,43,194,186, + 119,246,159,159,50,102,7,127,204,138,71,193,78,217,204,36,173,129,158,138,191,222,134,150,20,100,243,160,163,223,169,163, + 178,201,121,116,189,193,128,115,1,116,90,26,38,145,184,12,100,103,195,237,16,217,12,81,175,209,164,50,19,133,120,0, + 45,1,244,3,253,17,232,213,144,240,33,234,67,187,111,209,90,4,171,22,137,70,172,206,174,132,234,104,137,120,221,153, + 136,234,107,183,253,100,218,112,181,166,181,107,128,150,206,62,58,122,162,100,50,17,146,241,56,81,163,5,105,36,209,70, + 17,219,174,97,153,41,86,170,113,142,63,119,26,249,169,79,234,76,224,23,98,176,160,161,178,8,218,121,149,8,123,243, + 135,22,124,154,98,40,197,244,129,203,24,56,125,154,136,239,191,234,9,170,105,67,26,62,196,170,40,35,29,181,23,12, + 237,159,83,66,47,40,65,107,104,72,225,106,139,184,97,97,154,6,158,82,12,30,59,18,252,70,165,194,61,118,82,119, + 158,154,100,99,37,176,166,90,147,74,70,219,132,81,215,40,63,164,86,170,177,125,91,55,109,3,41,138,217,113,166,38, + 167,184,245,230,247,112,253,190,62,22,31,253,18,207,157,112,56,120,112,7,17,91,242,252,212,50,201,100,140,237,123,182, + 114,98,116,146,104,107,47,107,247,71,248,203,7,79,50,50,159,67,71,12,58,91,219,185,253,242,157,220,118,211,110,142, + 29,158,225,72,49,65,217,247,177,12,19,35,16,32,21,53,167,206,186,161,94,122,58,51,140,158,155,64,218,38,137,76, + 11,139,217,89,54,247,15,161,180,34,17,77,50,57,189,200,250,190,118,68,168,41,230,202,68,35,22,210,128,82,205,163, + 43,16,184,82,35,164,77,110,185,76,119,103,10,161,37,82,107,170,85,15,207,83,212,106,53,84,24,98,154,38,94,16, + 18,4,10,164,69,44,153,196,215,96,91,166,184,9,170,71,254,238,254,136,252,229,59,98,209,164,36,155,238,75,233,202, + 228,128,7,29,59,97,124,59,248,198,119,184,241,101,147,47,249,223,188,49,1,136,94,227,190,114,8,100,9,204,86,136, + 104,72,26,208,26,64,135,134,30,7,58,13,232,50,161,39,132,148,215,40,102,215,225,24,180,228,108,145,172,181,182,89, + 254,154,193,104,106,219,58,187,107,235,70,57,180,109,155,76,116,117,138,104,212,198,52,20,49,91,99,104,141,22,105,36, + 33,82,7,168,48,68,249,17,194,48,66,72,13,109,186,248,9,7,233,183,177,48,86,228,236,51,95,231,133,127,190,63, + 232,62,125,50,123,64,135,103,227,240,180,47,196,67,62,204,174,211,58,216,218,164,23,222,98,0,244,230,2,31,104,148, + 231,40,119,118,17,219,190,131,125,199,142,190,234,215,31,214,90,204,106,148,138,26,37,85,113,79,43,244,9,132,88,17, + 154,80,41,45,221,58,196,132,198,140,69,113,206,142,168,173,243,203,86,214,142,74,237,150,217,183,152,45,187,160,118,106, + 109,158,206,150,68,89,229,13,39,180,240,117,157,253,91,118,147,232,72,227,10,143,227,71,207,49,113,126,148,31,185,177, + 155,66,220,160,187,183,147,205,125,237,132,150,199,240,216,12,87,238,221,78,61,168,208,211,222,205,174,246,36,247,124,227, + 81,254,249,171,207,51,91,174,33,12,31,17,154,124,234,179,143,241,238,183,93,197,31,254,219,219,153,152,56,199,83,15, + 204,16,77,117,224,133,11,36,4,84,20,236,191,108,23,158,231,83,174,186,132,134,65,224,185,116,180,36,169,86,242,100, + 58,90,49,132,201,217,19,231,216,177,161,151,104,60,73,53,95,194,72,68,73,197,108,242,185,18,43,249,42,177,206,24, + 134,101,81,47,7,20,11,14,182,105,99,89,30,85,87,129,54,240,61,15,161,12,208,16,134,10,195,176,168,212,125,218, + 210,9,132,72,50,231,4,34,3,229,253,185,229,250,125,159,255,134,61,112,215,141,70,216,151,140,150,231,232,137,67,71, + 180,145,31,230,231,1,227,95,1,31,1,252,20,175,95,239,121,113,137,217,87,5,174,3,115,25,98,45,208,38,160,189, + 21,90,52,116,27,13,237,102,64,65,191,7,93,158,160,213,137,154,73,63,30,139,217,93,157,102,56,212,111,235,161,129, + 72,106,235,6,99,239,222,93,70,219,192,26,209,218,217,73,38,149,66,16,82,175,22,168,101,243,248,117,151,208,87,4, + 21,141,175,5,210,168,32,209,104,165,64,40,180,89,193,76,152,8,43,67,49,43,41,63,242,156,90,186,255,1,167,242, + 212,211,133,200,114,121,225,54,152,141,194,233,80,136,163,14,156,10,17,83,81,173,202,31,3,45,94,5,13,232,200,235, + 11,64,111,62,240,185,168,5,133,33,79,31,56,192,142,211,167,176,95,229,252,176,64,19,134,144,53,148,126,94,6,202, + 214,48,44,108,163,38,125,5,90,9,29,8,76,219,162,92,171,211,123,98,76,183,131,113,175,101,177,117,122,182,208,94, + 241,206,250,16,169,71,229,134,211,99,19,178,187,59,70,190,110,99,38,51,12,244,102,48,204,56,185,149,2,29,107,44, + 54,175,143,66,105,145,186,97,51,56,56,64,75,20,42,174,102,247,182,45,12,118,166,17,212,104,137,181,162,29,201,173, + 183,222,196,143,158,26,99,105,161,78,58,157,161,230,154,156,158,153,226,51,15,63,201,137,209,113,254,228,255,252,32,142, + 243,2,174,204,16,143,165,8,209,8,2,34,150,162,86,15,89,90,174,163,181,160,94,172,209,221,154,32,102,42,106,190, + 131,23,64,91,60,69,97,165,198,218,222,78,22,23,115,68,45,131,164,13,181,88,138,124,169,78,91,166,14,18,66,5, + 165,98,64,79,87,138,48,200,17,120,62,165,146,131,82,26,165,154,155,68,107,180,214,184,190,135,29,77,81,11,193,43, + 23,116,4,194,8,136,202,100,62,124,230,208,113,99,109,187,37,11,130,84,139,38,238,129,241,88,195,243,248,109,23,183, + 4,114,192,187,128,206,215,208,13,78,243,250,57,16,251,192,168,64,36,128,216,97,65,194,214,180,133,176,198,128,109,192, + 122,23,58,106,208,153,53,232,46,116,180,182,6,3,125,241,204,150,13,102,199,230,33,177,249,178,125,180,111,218,104,196, + 58,219,101,178,165,21,75,36,46,49,222,52,42,112,169,45,173,80,45,228,241,106,53,36,33,162,153,24,174,12,133,22, + 2,67,75,2,237,35,34,18,43,222,142,83,55,89,58,57,198,202,163,247,184,197,123,238,91,142,140,78,207,38,52,227, + 25,56,175,96,220,145,114,174,36,141,25,59,12,103,187,181,42,181,161,131,231,128,9,160,244,214,226,128,222,188,224,115, + 129,140,206,117,118,243,55,111,123,59,153,175,222,131,241,42,46,194,37,165,131,107,97,161,210,150,122,82,85,92,218,12, + 149,117,163,134,233,59,1,50,98,72,211,48,16,150,141,51,126,92,111,41,86,228,162,132,32,226,132,151,175,168,115,46, + 188,32,97,104,74,249,155,111,247,139,65,49,140,235,101,207,176,167,23,23,200,180,40,158,126,230,52,165,37,201,7,126, + 242,110,90,35,37,194,48,141,76,117,176,101,83,59,200,0,203,136,176,177,63,133,214,117,164,178,209,198,50,129,17,98, + 248,109,252,252,135,63,74,217,180,241,204,58,170,170,57,117,116,130,209,145,191,224,200,68,150,31,253,157,79,240,222,253, + 235,137,214,86,168,233,126,180,21,98,72,77,181,144,195,21,105,170,149,144,106,197,37,42,108,18,134,32,22,139,80,168, + 87,113,61,69,79,107,7,249,124,153,174,206,118,132,101,225,185,30,49,91,34,165,65,165,90,160,86,47,17,139,199,177, + 172,8,181,170,143,235,132,160,53,174,227,82,173,214,137,217,18,199,11,209,65,136,144,2,75,218,4,94,128,17,161,145, + 152,187,82,213,113,136,78,65,196,221,188,217,76,34,88,10,20,197,88,44,161,107,245,88,25,172,143,55,72,219,111,239, + 85,122,223,32,191,117,52,79,251,104,229,85,39,158,85,211,180,138,131,60,7,70,8,209,168,20,45,10,186,18,74,247, + 74,232,69,211,229,193,128,7,67,43,146,161,74,79,107,135,222,183,59,97,239,217,26,233,216,185,93,30,216,178,141,158, + 53,253,116,180,247,33,69,180,121,213,0,8,209,58,68,43,7,80,132,126,136,83,174,80,206,47,35,188,34,190,82,96, + 74,66,105,128,2,83,128,169,65,10,141,101,219,120,86,154,249,165,50,163,95,254,186,170,220,123,111,53,250,252,241,92, + 186,86,63,223,213,104,254,122,74,193,152,50,228,156,134,124,183,210,213,245,97,224,58,90,171,58,47,150,169,125,85,247, + 222,155,20,124,36,223,75,61,112,161,249,94,227,9,109,207,101,97,243,22,254,219,232,40,163,103,207,188,154,3,172,127, + 10,106,63,23,132,211,194,13,245,147,155,219,212,238,146,151,150,5,87,4,166,33,61,51,66,197,149,172,29,158,162,29, + 56,19,143,178,207,241,231,227,65,120,216,131,49,23,6,214,87,235,42,81,15,245,189,107,135,228,201,241,37,242,11,211, + 74,162,228,23,255,225,94,238,121,226,24,29,109,30,239,253,237,95,2,87,178,166,205,192,146,146,208,215,152,26,148,14, + 240,132,129,52,53,132,38,10,65,96,215,233,222,121,128,132,175,41,101,115,56,134,207,76,253,36,50,97,208,167,109,150, + 202,43,124,237,148,207,71,175,184,130,201,229,89,98,233,20,113,13,201,214,4,139,229,10,181,64,17,56,117,162,113,131, + 192,52,145,70,4,215,171,18,132,154,76,50,65,189,86,103,114,114,154,214,100,138,74,190,136,33,162,216,162,74,93,88, + 44,149,20,27,226,6,66,249,20,234,14,29,42,13,150,69,32,45,10,133,26,209,142,40,158,14,240,180,137,36,64,154, + 10,39,80,180,119,246,82,158,93,193,46,84,132,134,212,177,238,54,59,181,166,93,82,243,88,200,57,132,158,27,54,220, + 10,255,250,98,211,29,49,42,31,222,192,232,137,195,175,10,216,248,77,18,59,11,98,47,24,181,70,220,87,42,2,109, + 115,130,22,67,138,238,152,102,67,160,244,134,26,172,45,27,244,122,93,45,45,198,150,237,233,250,250,181,137,158,235,175, + 180,46,191,250,160,232,29,218,68,220,74,54,129,198,107,130,141,131,82,30,34,84,8,165,192,48,17,134,129,10,60,74, + 133,101,156,82,25,28,15,67,105,124,35,64,10,11,48,16,10,4,10,211,16,88,241,24,165,186,203,243,39,198,152,249, + 198,131,97,237,222,135,138,61,83,75,115,107,97,202,128,147,2,94,240,225,84,8,243,62,84,66,165,188,130,70,175,208, + 72,182,211,52,226,217,94,147,195,255,77,170,148,124,215,38,185,105,104,202,117,131,39,207,165,190,169,12,235,119,180,144, + 180,38,33,37,31,187,235,29,124,74,41,142,15,159,123,117,76,48,224,48,232,15,47,85,131,54,224,137,152,197,254,177, + 162,246,5,58,162,66,165,13,137,51,59,205,166,21,175,230,131,231,137,192,90,231,233,211,30,60,35,165,88,118,37,107, + 211,62,103,133,98,192,175,185,93,29,53,167,124,176,37,145,237,50,195,181,119,175,247,141,53,102,63,67,91,214,179,182, + 51,133,242,67,82,182,137,144,146,80,11,132,48,80,65,136,41,52,104,208,194,64,104,133,22,81,140,84,11,45,166,69, + 75,166,135,170,91,226,252,223,252,21,3,235,123,200,46,45,162,86,66,114,75,14,247,157,26,230,198,61,131,12,15,143, + 113,249,213,7,233,239,239,226,137,135,14,81,114,5,158,103,210,154,138,18,137,74,202,78,185,65,88,155,38,166,109,224, + 148,170,96,4,164,162,49,180,144,13,198,32,240,137,167,146,148,234,101,92,47,196,48,36,65,16,82,173,59,8,36,65, + 8,94,160,48,140,8,16,160,53,24,166,129,86,30,160,72,180,164,8,135,71,117,199,114,77,30,49,236,232,226,142,205, + 70,151,225,224,36,35,172,61,114,162,180,51,84,199,125,152,78,130,243,175,45,106,239,238,181,232,206,24,120,234,123,6, + 157,11,191,195,134,185,103,196,32,102,65,70,64,103,18,6,12,88,167,96,157,214,116,215,66,221,145,179,228,96,126,235, + 186,238,244,181,87,166,214,221,118,139,53,180,255,0,109,125,253,36,162,9,26,141,159,125,52,146,80,151,26,166,19,205, + 138,16,186,81,23,66,27,141,240,10,25,132,56,203,57,156,124,145,192,245,208,194,71,9,159,64,42,108,47,5,34,68, + 154,130,72,52,129,39,108,166,39,23,56,253,232,99,122,241,190,251,234,177,19,199,178,61,117,127,178,3,206,1,195,72, + 70,208,98,212,215,122,78,64,201,129,224,113,224,61,26,166,121,125,58,130,252,64,0,144,105,104,170,174,228,211,79,117, + 50,151,183,137,88,223,219,208,133,74,97,72,201,143,223,253,78,254,241,171,247,112,244,85,210,132,4,141,72,219,94,224, + 231,78,47,19,184,65,16,66,45,229,134,165,104,189,70,218,93,10,218,20,35,161,41,103,91,133,142,24,129,122,18,33, + 142,99,136,101,195,70,201,90,184,16,129,219,163,179,227,173,183,153,134,185,46,214,18,141,218,49,125,112,255,70,54,236, + 18,100,29,133,19,4,216,34,138,208,32,48,27,105,47,82,162,9,137,232,16,95,25,104,17,34,9,49,100,43,161,142, + 162,133,194,138,90,204,44,207,209,179,166,133,236,82,1,35,19,161,51,235,50,59,186,204,211,19,83,116,182,152,116,182, + 182,18,105,137,96,104,193,244,228,34,133,90,136,29,137,147,180,45,132,17,176,92,171,209,22,111,193,182,77,74,181,50, + 150,105,18,145,38,217,165,28,137,100,26,195,240,240,125,31,76,80,65,72,177,82,35,22,75,130,10,240,92,31,59,26, + 37,240,67,10,165,42,126,79,11,90,52,180,102,67,10,124,191,17,174,175,77,129,187,88,81,158,130,83,219,55,25,109, + 221,157,72,81,161,245,169,99,229,107,151,139,15,75,205,215,93,56,187,5,234,223,174,52,135,247,158,117,184,63,181,5, + 81,169,126,207,139,50,13,226,86,48,218,32,226,65,42,215,160,121,134,162,176,41,132,141,14,12,229,161,223,237,104,235, + 52,246,239,79,198,47,219,27,93,119,195,126,235,250,253,91,232,239,24,68,98,161,81,132,40,66,85,67,104,1,72,132, + 12,154,247,145,23,217,29,33,77,36,2,237,123,132,133,2,197,210,50,190,83,193,8,105,104,59,161,64,10,19,33,21, + 102,74,19,216,105,178,217,42,231,159,124,150,153,175,223,235,170,39,159,46,116,46,21,103,246,193,168,13,231,20,156,85, + 112,62,148,204,213,52,133,184,214,78,11,4,9,96,180,73,142,27,188,126,57,113,111,249,212,151,11,224,243,143,223,39, + 248,188,28,132,62,252,142,187,1,94,21,16,18,77,210,238,44,80,116,2,98,16,68,32,23,13,89,138,230,178,193,90, + 51,168,200,144,231,107,113,158,73,36,76,95,149,194,147,113,173,39,59,4,229,41,41,29,52,241,16,174,75,73,33,54, + 184,42,26,109,209,162,98,184,242,175,254,247,33,14,94,115,53,7,111,222,77,170,173,23,93,175,67,165,136,212,10,80, + 4,42,68,72,141,8,0,105,130,112,145,42,64,34,8,13,19,45,192,194,199,17,37,60,25,80,175,251,152,50,78,36, + 19,101,253,174,24,213,179,30,143,156,154,225,221,215,238,102,231,154,126,142,29,27,103,169,172,8,84,149,116,84,17,141, + 71,88,40,214,49,68,2,91,154,164,19,113,150,86,150,72,71,99,72,37,41,22,74,212,3,72,91,54,182,33,113,195, + 0,41,37,139,133,50,131,177,52,182,105,82,42,215,72,201,4,142,227,99,91,49,234,174,143,235,249,104,4,90,43,76, + 41,48,165,198,64,112,104,50,43,135,147,105,177,123,87,15,126,80,163,235,208,169,194,129,201,149,135,77,248,188,7,143, + 9,88,252,57,80,83,175,176,176,47,144,194,159,122,247,58,182,3,206,119,145,72,16,208,168,146,40,64,60,3,137,46, + 104,87,208,173,161,39,10,107,21,108,168,194,166,9,201,250,234,250,53,93,173,55,220,156,28,186,253,22,123,224,224,54, + 186,6,250,137,26,177,198,167,117,136,14,61,180,172,163,209,13,62,69,112,17,128,16,2,113,9,101,33,53,72,29,224, + 215,29,138,185,37,130,74,30,194,56,182,106,107,104,77,162,138,145,180,9,173,12,149,130,207,216,115,231,89,122,232,33, + 183,250,192,131,249,216,212,220,194,122,173,231,18,48,34,224,76,0,195,10,166,21,228,138,80,233,85,248,109,155,218,208, + 107,91,201,156,88,196,91,172,124,91,208,17,151,104,124,171,0,244,26,129,207,165,32,4,188,106,32,244,203,192,7,47, + 57,85,206,65,48,39,200,107,197,66,87,33,91,233,180,236,101,31,206,200,152,124,50,210,106,231,163,243,110,126,113,119, + 135,255,111,71,11,234,63,7,218,5,12,101,202,248,160,8,141,116,45,192,137,39,164,83,13,196,154,238,30,222,113,227, + 94,84,34,137,236,221,140,118,43,184,99,103,208,78,1,105,134,8,161,64,75,2,109,160,81,104,29,66,24,130,159,195, + 84,30,138,4,161,174,179,152,159,229,217,167,143,147,157,112,9,253,16,105,91,236,220,63,200,14,175,151,199,14,157,103, + 114,165,198,117,251,47,227,11,95,251,26,11,101,72,89,38,173,73,131,188,83,161,92,9,105,77,165,176,76,240,156,26, + 82,74,52,130,114,217,37,87,172,19,213,146,88,139,77,60,158,160,86,113,136,68,44,170,181,128,186,235,97,1,126,168, + 113,253,16,203,182,9,148,64,55,141,15,21,42,164,173,209,66,19,49,36,65,224,51,177,52,45,250,111,56,32,156,154, + 71,234,169,163,197,131,185,242,55,20,124,78,193,227,54,44,236,132,96,188,49,190,223,82,220,122,128,252,46,58,138,57, + 64,1,140,27,32,42,161,189,14,91,76,56,32,97,83,21,250,114,208,95,237,77,119,26,119,222,210,214,255,238,119,219, + 187,14,238,166,167,187,239,197,130,122,90,65,232,190,168,210,75,129,198,110,150,44,22,141,121,145,205,26,50,58,104,2, + 147,198,64,163,3,159,90,62,71,181,144,39,244,61,148,148,88,113,15,195,20,40,146,84,43,41,150,94,56,173,86,238, + 255,107,103,249,137,103,202,242,252,84,182,37,8,167,6,224,172,132,17,13,83,33,76,187,176,216,1,165,4,184,213,102, + 16,225,105,224,39,223,191,3,239,195,123,80,227,121,156,223,127,148,241,103,102,144,188,114,63,52,221,32,213,169,1,87, + 208,104,91,109,3,191,14,148,127,24,1,232,181,2,159,151,131,208,7,222,113,55,119,172,228,48,151,150,190,39,155,56, + 108,14,242,151,154,150,126,243,52,209,221,154,98,0,103,215,19,30,201,132,65,46,132,225,120,38,154,45,38,35,229,167, + 41,187,31,61,216,205,246,243,5,162,245,144,58,40,165,116,208,231,135,174,4,229,24,22,237,153,148,216,183,206,198,155, + 29,65,119,15,96,244,121,205,218,209,141,133,44,66,191,17,243,97,68,80,134,36,212,33,66,107,164,214,232,242,28,42, + 55,134,213,127,128,197,149,2,133,98,145,160,102,224,86,61,28,63,143,233,38,41,45,151,233,27,104,99,123,161,151,115, + 195,19,60,119,252,28,75,43,57,20,6,61,233,54,12,83,242,194,201,83,172,31,88,135,109,248,24,182,65,173,236,17, + 139,197,240,67,152,203,21,241,180,69,80,13,40,152,117,44,59,130,161,170,152,210,66,152,17,60,165,176,100,35,70,193, + 241,21,150,29,65,171,11,44,178,64,235,16,83,154,212,252,144,68,50,70,185,232,48,212,191,14,119,121,153,190,67,71, + 151,175,170,235,71,52,124,46,3,143,231,96,225,73,8,175,249,22,188,197,26,26,45,150,87,190,67,126,71,54,41,224, + 69,48,92,136,71,160,91,194,70,9,59,44,216,191,4,187,178,157,173,61,246,45,55,166,215,190,251,174,200,198,107,175, + 164,191,127,8,3,7,133,36,84,1,154,0,83,6,77,156,177,65,11,2,195,69,96,33,154,126,86,173,21,66,132,205, + 140,44,141,198,70,160,144,58,36,112,234,212,242,121,220,90,5,75,8,146,169,52,117,223,101,100,58,203,249,163,167,117, + 238,240,11,202,59,114,156,158,201,217,122,79,213,153,26,128,51,18,134,53,156,15,13,57,42,18,246,12,117,63,231,250, + 97,61,222,116,159,141,2,22,80,4,6,219,162,176,191,135,112,190,140,217,147,36,104,143,243,56,141,250,218,127,13,220, + 8,204,3,159,166,17,41,30,3,102,129,25,224,87,155,224,35,224,251,246,24,155,111,85,240,169,56,146,79,63,253,218, + 128,207,75,64,200,48,88,115,227,77,188,251,139,95,32,230,121,223,181,203,246,2,255,19,52,255,45,27,155,65,143,192, + 138,13,79,164,82,166,111,133,70,217,135,227,53,105,84,122,126,108,155,90,99,12,163,86,28,222,237,134,20,32,136,194, + 34,154,163,49,211,138,104,188,158,146,231,244,137,104,210,238,234,74,82,169,46,99,85,210,88,179,35,4,218,67,121,69, + 164,169,209,161,64,138,6,151,16,202,16,169,12,164,150,168,208,199,93,94,164,92,122,148,129,206,61,124,227,235,207,50, + 188,120,158,254,158,22,70,14,159,193,78,70,113,189,42,239,184,227,61,108,220,220,13,127,253,87,220,55,58,205,231,30, + 126,154,181,45,22,25,225,145,73,165,56,61,179,130,167,45,226,49,11,59,34,40,148,203,88,42,130,64,80,40,87,8, + 35,81,220,154,130,138,199,162,95,96,77,127,111,147,12,215,72,51,66,185,82,37,145,137,226,169,0,169,163,40,165,9, + 252,0,167,238,160,1,211,50,26,174,99,203,196,178,77,102,167,230,88,58,62,172,110,28,159,154,217,21,232,39,92,248, + 178,5,143,215,97,241,167,32,188,254,91,140,127,23,240,251,192,31,127,7,0,228,0,237,32,111,4,99,14,98,2,186, + 227,176,197,130,125,62,236,27,131,77,51,189,237,125,153,15,190,51,115,195,207,127,212,216,186,125,23,70,83,95,80,65, + 0,74,54,10,226,153,54,10,137,175,13,164,110,120,35,5,96,104,11,180,68,160,154,161,124,32,154,142,109,45,20,129, + 14,49,5,248,213,42,94,169,220,56,44,148,193,233,177,9,61,252,194,201,202,200,195,207,80,123,230,233,200,186,170,195, + 0,200,76,163,118,40,2,124,13,117,5,66,66,135,161,180,208,37,39,161,160,104,129,31,64,181,8,197,86,168,215,165, + 168,215,162,150,155,142,219,33,125,113,162,90,32,164,226,191,41,197,127,190,100,204,126,189,73,25,156,164,81,35,91,54, + 249,33,221,244,250,25,175,2,248,188,37,1,232,34,225,252,116,39,179,121,155,168,245,218,114,245,194,247,89,90,191,129, + 71,222,243,94,222,255,133,207,97,122,223,127,160,226,116,99,114,235,183,69,140,243,149,76,36,107,44,57,254,12,148,31, + 245,116,240,95,119,119,232,61,55,244,178,248,27,79,179,59,212,76,54,22,208,121,91,235,207,163,25,5,174,15,131,242, + 109,245,96,62,190,41,99,81,171,135,24,122,5,51,63,140,162,225,110,87,194,66,9,19,161,5,82,11,180,240,17,218, + 68,8,65,173,86,197,114,3,130,202,12,71,31,125,132,103,158,62,195,228,226,89,174,189,102,39,243,163,179,44,44,58, + 184,70,141,88,58,193,237,119,126,152,193,182,36,167,206,255,22,95,123,246,40,31,190,114,63,189,182,196,48,235,200,116, + 146,142,238,54,108,83,19,6,18,47,52,136,199,108,10,217,28,190,180,193,142,35,92,31,25,72,156,176,74,177,90,38, + 147,140,83,116,92,76,59,78,88,115,80,97,128,52,76,234,78,195,68,137,68,34,56,110,13,105,68,16,194,0,67,99, + 219,54,42,12,56,117,126,146,53,35,147,185,125,240,100,21,190,160,225,73,15,150,254,13,132,179,205,77,242,74,114,35, + 112,217,37,218,231,43,29,16,186,249,249,24,68,90,27,7,126,79,0,107,34,176,211,135,253,39,96,199,200,64,79,223, + 192,143,191,47,254,158,143,252,132,216,186,101,55,160,80,65,133,80,7,200,166,9,21,24,33,146,8,50,144,72,84,67, + 213,69,19,52,1,72,42,137,144,52,52,30,169,80,104,20,18,133,1,72,44,1,213,252,10,203,179,179,172,100,151,56, + 119,118,148,211,195,227,12,143,78,213,219,202,245,177,141,90,119,237,187,246,42,203,72,197,140,138,97,136,98,224,235,48, + 244,162,241,233,169,181,153,66,61,93,23,166,23,56,245,48,146,205,151,109,215,95,1,42,17,168,75,200,9,88,12,96, + 209,132,145,13,112,54,168,122,43,39,191,58,170,73,88,252,247,167,166,249,167,135,39,94,98,110,5,151,104,147,226,18, + 109,231,213,38,167,205,183,34,248,252,227,83,175,15,248,92,16,203,113,56,53,180,1,235,3,239,228,125,99,15,17,126, + 31,173,240,140,230,98,223,234,43,189,231,150,1,103,204,85,110,252,217,69,253,216,92,153,251,128,63,245,5,110,41,160, + 227,182,53,24,15,76,243,44,40,3,150,251,160,232,151,189,37,13,45,201,124,241,64,97,50,223,174,135,6,8,98,53, + 100,52,131,54,35,40,229,129,110,122,80,154,43,37,208,26,17,154,52,104,93,3,59,146,68,219,53,122,12,77,245,252, + 189,204,62,241,53,198,202,6,27,182,237,230,142,159,186,129,92,161,64,164,213,192,110,171,224,215,231,217,177,115,31,215, + 238,189,10,127,41,135,44,251,120,105,151,157,123,55,49,249,213,51,244,39,210,8,83,80,173,215,73,71,226,44,101,107, + 212,125,3,43,30,37,112,93,16,62,174,112,49,66,73,110,197,193,232,76,128,168,147,208,30,85,101,82,114,5,118,84, + 129,23,16,134,62,177,72,28,223,53,209,166,66,168,0,180,66,74,3,97,180,147,61,123,154,235,97,198,133,167,52,60, + 187,17,22,127,20,212,201,239,194,109,14,32,163,38,36,44,4,166,64,52,74,227,185,192,14,136,182,195,218,0,174,181, + 224,114,9,67,71,97,232,204,186,129,193,117,31,249,96,236,23,126,242,67,108,24,218,222,216,154,170,4,90,32,37,104, + 109,162,164,70,8,129,208,2,161,53,200,176,89,112,71,160,181,70,135,10,132,64,27,18,33,100,67,79,17,23,66,221, + 4,66,55,12,191,153,185,5,22,230,231,177,165,36,217,219,207,149,107,214,115,203,123,83,36,146,201,184,29,139,239,209, + 134,13,72,12,36,47,50,72,46,245,114,177,197,171,214,90,10,117,23,191,82,68,45,206,18,22,115,202,169,213,241,207, + 77,121,198,200,100,85,79,206,151,39,78,141,228,218,43,149,175,217,53,111,101,33,30,47,236,94,219,17,78,254,221,243, + 252,237,51,211,111,88,33,254,183,12,0,73,169,169,56,6,255,244,116,199,235,10,62,23,36,230,212,57,219,191,158,23, + 222,21,103,207,224,10,142,255,189,15,93,10,184,29,112,37,152,83,85,109,28,93,126,105,43,24,5,65,103,12,131,139, + 33,105,234,65,112,175,145,98,73,134,122,36,153,11,102,103,78,206,175,223,179,101,139,97,184,14,66,216,104,105,54,106, + 249,43,208,170,233,71,17,128,144,104,45,176,8,27,175,197,146,208,35,80,78,133,117,25,205,239,255,230,79,243,223,63, + 241,0,95,254,155,47,208,189,126,45,45,237,25,122,58,225,206,159,234,32,48,210,140,29,127,134,31,185,170,157,167,14, + 173,176,84,14,249,233,219,110,66,21,171,104,39,32,154,49,240,202,37,226,182,73,169,90,163,84,171,34,236,8,126,189, + 78,24,134,168,208,199,50,13,132,18,184,158,71,161,84,35,21,181,9,125,15,41,44,252,80,96,95,168,146,41,26,62, + 22,199,181,65,123,196,164,66,40,27,33,5,149,208,35,117,126,182,218,11,163,46,156,201,64,182,23,212,210,165,135,68, + 243,247,191,118,52,84,158,93,196,88,168,49,125,182,160,83,19,53,158,7,43,14,173,29,176,14,184,70,194,109,163,176, + 251,112,103,111,91,219,135,223,17,253,165,255,227,167,216,178,110,91,99,187,171,202,139,228,178,80,104,125,1,232,27,222, + 43,137,113,81,235,65,92,40,252,41,144,23,163,99,197,37,241,61,141,185,185,168,81,104,77,107,75,43,61,221,61,205, + 218,217,151,178,136,23,156,242,206,139,196,182,208,132,190,143,87,173,18,120,46,202,115,233,242,60,252,132,129,183,113,29, + 138,77,50,97,69,176,238,136,68,199,231,115,209,111,252,243,231,218,35,217,201,68,119,133,152,6,217,107,74,230,239,59, + 71,223,201,197,215,45,23,238,45,13,64,2,248,226,225,54,166,87,108,98,182,122,253,239,47,64,187,138,175,62,209,133, + 216,235,179,99,160,72,16,126,111,10,169,110,146,156,134,37,209,190,250,166,217,215,52,194,231,1,54,55,189,12,247,1, + 251,108,195,73,251,225,116,38,208,163,39,159,24,222,51,122,203,158,214,13,17,137,112,125,116,52,104,156,194,77,125,89, + 8,217,44,89,39,80,8,164,14,145,40,28,105,160,34,73,100,196,198,8,3,54,182,69,249,179,223,253,8,95,253,198, + 211,252,197,23,158,225,204,211,19,108,191,233,74,118,245,95,137,191,178,64,75,238,8,190,214,28,159,154,226,231,255,237, + 47,176,53,99,240,197,47,61,65,213,138,96,248,14,9,45,176,60,159,217,66,141,64,130,170,151,137,70,19,248,42,36, + 12,66,108,9,210,48,208,90,81,171,59,180,36,91,0,141,129,129,235,213,73,136,20,74,132,23,249,49,47,208,8,35, + 36,105,106,162,86,156,72,92,82,172,102,105,203,22,139,2,198,108,152,93,6,239,31,128,247,210,136,208,213,77,222,226, + 159,128,31,5,254,27,141,246,58,175,36,243,127,113,138,243,13,173,199,254,8,36,21,244,107,216,103,194,149,57,56,240, + 92,38,186,185,252,182,235,91,126,254,119,255,31,118,108,219,117,209,35,39,116,136,16,47,166,96,94,244,226,11,209,124, + 253,197,72,33,33,26,154,143,66,53,56,33,33,64,74,228,203,154,117,138,38,128,9,209,0,166,104,44,142,16,16,40, + 191,241,94,193,37,224,3,82,27,160,20,129,23,80,43,22,168,151,75,104,223,107,120,205,164,164,174,53,194,87,68,34, + 16,8,139,225,137,37,142,220,255,117,74,95,255,146,187,113,98,101,166,99,185,244,164,47,197,115,166,214,121,103,169,34, + 70,191,112,134,4,112,249,37,252,100,0,180,93,98,154,138,75,158,64,252,48,3,144,210,130,170,39,177,140,55,174,107, + 147,20,154,32,148,60,63,209,198,206,129,2,175,85,184,86,212,146,252,250,87,199,249,23,26,245,97,46,40,235,27,220, + 208,191,75,50,231,193,153,158,137,229,153,195,143,30,107,25,186,243,42,33,170,69,140,116,10,161,26,17,221,90,92,136, + 49,105,28,195,18,8,165,198,71,55,204,17,213,56,173,165,246,9,253,10,66,86,121,247,157,251,184,245,246,203,152,171, + 175,161,84,5,127,101,154,72,249,56,9,237,240,201,167,207,179,239,134,155,216,217,223,78,121,110,154,179,217,60,42,106, + 96,213,29,66,219,68,116,245,241,182,91,15,96,164,18,4,149,10,231,207,141,112,242,228,41,108,211,38,240,124,44,219, + 38,150,136,19,6,30,149,154,75,50,150,64,185,1,74,131,235,42,180,18,132,126,8,177,0,95,5,68,13,3,33,52, + 133,124,158,190,150,30,150,103,150,216,228,185,89,5,99,38,228,74,160,254,170,65,24,95,228,39,198,129,71,129,39,155, + 174,226,87,138,229,105,3,214,129,156,109,100,157,175,51,96,155,13,187,43,112,224,217,72,100,187,250,192,29,157,55,124, + 244,253,198,222,125,7,104,111,25,36,84,46,26,7,137,66,72,235,69,187,182,233,78,191,0,60,151,174,72,253,34,50, + 33,164,184,228,35,226,21,15,213,11,181,81,181,166,193,9,105,133,209,220,246,141,178,133,205,164,92,21,226,59,37,220, + 90,21,183,90,195,119,29,164,166,241,94,173,145,82,225,27,30,190,7,163,39,199,56,252,181,7,116,237,193,135,217,60, + 189,236,109,119,152,83,232,99,190,33,206,34,113,3,45,6,129,150,13,232,218,10,184,127,4,161,120,233,183,99,17,194, + 12,184,123,193,179,32,12,64,249,47,139,169,250,161,35,161,141,55,65,62,171,16,188,230,32,24,26,130,143,20,61,238, + 184,100,146,21,208,171,180,174,41,86,2,33,142,116,184,122,199,210,61,71,187,135,247,108,236,218,220,219,134,84,33,88, + 54,66,169,139,39,150,210,205,152,90,13,218,104,20,61,147,74,35,84,136,8,131,134,166,36,37,129,80,4,53,133,37, + 124,54,12,118,34,186,119,146,127,254,211,104,97,242,213,19,101,162,235,54,242,209,95,253,21,152,59,193,76,161,140,87, + 171,96,187,62,182,109,114,224,174,91,184,249,199,126,134,100,162,163,177,165,66,31,183,84,228,191,253,225,127,229,196,147, + 135,73,70,163,32,124,148,104,84,223,241,125,240,35,26,69,64,168,66,156,186,79,52,102,33,165,137,105,90,13,86,68, + 131,198,34,91,152,165,199,238,167,101,116,165,214,171,24,13,27,26,80,229,243,77,183,240,119,218,62,217,111,186,226,255, + 75,35,182,175,67,192,65,75,112,139,167,217,55,97,152,67,11,183,222,216,187,235,223,124,36,114,227,109,183,17,179,227, + 64,149,144,21,16,2,67,91,13,186,70,7,23,13,189,75,181,150,11,187,86,107,253,178,230,10,151,232,12,23,114,43, + 46,1,41,33,154,237,203,47,124,166,169,237,8,33,64,105,132,214,104,215,39,112,61,188,106,21,223,119,80,65,13,165, + 21,82,9,162,182,133,214,18,33,12,234,142,199,244,232,212,202,249,103,158,173,231,30,122,34,33,142,156,74,116,85,125, + 99,176,57,148,181,198,50,234,36,212,251,129,109,2,28,1,69,9,5,11,106,10,92,1,74,188,148,120,118,4,228,226, + 176,124,225,189,2,138,187,193,139,64,88,7,21,252,176,1,208,15,131,104,91,162,198,138,236,124,102,129,157,175,240,247, + 28,212,206,74,206,248,33,15,175,159,173,245,157,251,242,179,215,247,254,252,237,49,103,114,140,193,205,59,81,58,64,43, + 133,48,26,133,190,80,141,83,212,84,178,1,224,34,36,148,33,161,80,8,37,65,75,164,144,24,202,68,11,77,205,157, + 33,230,117,147,220,112,5,207,191,112,138,106,172,206,199,126,249,231,177,109,131,122,60,67,49,48,192,243,177,162,54,183, + 252,196,7,185,254,157,119,83,170,58,100,179,83,8,199,37,101,26,68,186,58,120,255,135,127,132,225,23,78,18,11,37, + 117,63,192,48,13,148,1,90,11,66,165,9,181,7,66,82,171,55,178,186,209,18,207,13,208,134,194,16,18,165,45,234, + 8,188,186,75,102,116,54,31,133,17,31,166,11,224,118,2,73,94,204,204,22,52,130,228,254,238,21,180,159,11,81,232, + 191,14,70,7,116,20,225,74,27,222,181,160,185,102,118,247,214,190,173,255,207,111,37,223,119,247,123,72,68,108,80,121, + 116,152,3,33,144,58,14,202,108,84,87,150,77,72,191,164,146,187,18,23,186,247,234,139,224,35,94,118,95,160,145,70, + 113,129,43,186,128,53,66,188,168,246,104,221,12,74,108,2,91,216,32,166,67,207,163,144,93,194,171,214,136,72,3,80, + 120,74,224,123,138,48,208,100,179,139,12,143,142,177,148,91,97,118,126,145,229,233,133,133,100,32,196,254,116,50,189,115, + 239,118,77,44,174,114,235,7,68,189,61,99,25,129,209,237,213,85,71,44,212,202,46,231,67,170,101,229,85,92,191,90, + 169,251,245,252,138,175,114,139,158,44,150,125,233,163,162,26,221,56,154,240,58,97,57,218,0,160,172,1,19,6,140,11, + 200,234,134,133,155,141,67,97,63,132,23,28,43,122,21,128,222,250,98,8,65,169,30,242,84,197,127,69,3,79,129,78, + 135,58,107,194,33,19,214,25,79,12,175,27,191,109,231,102,34,17,74,238,41,182,109,223,214,168,193,32,4,58,84,77, + 30,186,97,138,53,56,135,176,201,75,152,141,214,209,161,192,8,65,201,198,194,143,155,105,130,68,18,17,239,96,243,110, + 147,3,215,223,128,21,145,248,165,37,100,162,143,147,211,57,252,100,156,15,253,155,95,97,219,21,151,113,242,153,103,9, + 150,39,57,55,50,130,244,32,25,143,178,249,242,253,244,110,222,75,223,64,55,213,241,5,194,80,225,41,143,132,25,197, + 196,196,247,61,164,33,16,1,4,190,38,176,66,98,182,133,101,198,240,194,42,49,105,83,117,92,42,218,162,54,187,172, + 251,242,249,121,224,188,132,229,35,160,206,54,53,160,75,221,232,15,210,136,83,121,185,172,7,210,141,154,201,253,21,56, + 40,224,206,179,177,216,245,241,95,251,216,192,7,254,237,207,152,189,237,27,208,97,136,242,139,96,248,72,17,111,92,81, + 104,180,104,128,164,86,118,195,172,21,193,69,176,160,105,46,93,170,25,139,139,252,144,190,200,241,160,117,243,35,47,155, + 77,253,34,183,115,1,188,164,110,0,22,90,81,171,84,241,195,16,105,155,248,42,100,37,191,130,171,26,190,76,180,192, + 72,217,108,219,187,157,3,233,20,109,157,93,100,90,90,183,155,182,73,16,58,72,195,215,150,180,69,163,40,137,5,40, + 67,19,52,41,122,31,240,240,21,56,110,72,165,88,164,146,91,160,90,206,227,187,10,157,247,244,232,249,113,49,49,114, + 142,147,199,143,121,198,153,243,181,158,98,173,218,129,206,103,96,33,10,75,22,76,73,120,54,132,103,255,35,44,29,132, + 48,250,61,174,247,215,182,55,60,224,155,175,108,41,26,97,35,42,119,85,94,58,96,66,10,178,17,131,187,191,205,219, + 254,12,130,43,4,51,30,28,238,172,232,125,39,191,114,120,240,237,191,253,177,88,109,121,153,51,103,207,178,105,203,38, + 164,33,47,122,107,80,154,64,4,104,209,152,112,137,1,170,113,44,107,173,80,4,104,12,124,105,147,72,116,99,41,1, + 190,75,71,199,26,148,89,37,12,29,172,84,148,231,30,61,198,11,231,103,249,149,223,252,117,182,238,185,154,165,241,73, + 142,126,253,97,238,190,121,35,235,46,91,203,200,209,17,138,133,69,178,227,22,189,107,215,178,121,93,31,207,156,62,127, + 209,235,92,119,234,196,205,24,50,116,73,183,37,41,4,30,166,105,96,26,18,203,50,65,90,136,64,99,73,197,210,242, + 10,21,97,161,71,243,245,54,152,212,48,62,15,149,71,155,91,217,123,153,137,245,74,43,233,99,192,251,33,150,135,141, + 6,220,92,135,91,206,174,25,56,184,247,47,255,168,231,250,183,223,10,202,71,5,117,144,117,148,233,131,136,53,202,180, + 106,141,32,4,35,68,8,137,194,126,9,67,114,193,84,185,148,152,109,240,34,26,201,37,164,180,190,100,94,181,190,120, + 137,11,36,117,131,211,126,209,12,187,152,34,34,4,241,116,146,88,50,70,168,124,164,212,116,172,29,64,88,241,134,163, + 1,205,139,81,57,170,121,139,0,180,198,178,98,104,146,194,215,160,117,163,252,170,8,21,130,16,101,149,16,161,137,192, + 192,68,145,136,106,82,177,22,68,79,95,19,156,2,180,46,136,203,220,27,81,126,137,165,229,37,123,124,100,218,158,56, + 53,217,50,115,242,201,190,167,78,205,110,159,159,153,11,47,203,174,100,175,242,130,62,95,136,26,90,63,245,52,84,204, + 239,129,19,186,250,181,4,160,6,248,152,104,241,202,196,77,96,10,204,64,173,130,80,115,172,12,192,52,37,248,138,223, + 249,219,211,0,252,39,224,237,47,91,232,33,176,9,24,211,212,29,193,112,20,14,103,14,79,110,63,241,232,195,155,111, + 189,245,38,150,28,147,233,249,60,107,6,50,8,25,34,60,139,128,128,80,106,164,54,208,1,152,90,96,8,133,47,2, + 66,83,161,5,72,101,96,198,90,32,29,33,20,1,194,20,72,93,69,134,10,204,8,94,16,97,105,185,204,175,253,246, + 255,197,208,230,54,116,101,30,63,63,131,95,25,103,236,120,129,84,170,131,45,155,182,50,54,55,66,169,94,34,162,53, + 45,157,173,20,164,75,155,25,69,184,146,80,155,248,202,71,138,16,229,42,44,173,209,134,79,77,185,216,97,28,195,53, + 208,194,2,17,103,108,101,12,153,233,192,158,95,40,70,97,44,132,57,19,188,193,151,141,71,4,248,228,43,152,94,31, + 3,254,45,68,231,96,83,4,238,40,192,93,243,219,55,236,184,227,31,254,170,109,211,222,3,40,85,110,212,163,110,210, + 169,66,73,180,16,141,252,57,104,166,138,54,204,167,70,113,29,129,18,242,165,4,242,37,218,80,35,133,228,165,38,21, + 82,188,196,116,19,205,247,93,228,122,208,223,212,148,243,2,191,36,45,11,129,141,41,227,23,175,161,155,238,251,134,229, + 118,137,215,243,130,141,215,44,183,34,132,110,130,84,67,147,19,6,141,239,170,26,190,46,37,53,161,50,26,26,93,104, + 225,185,43,56,37,7,191,80,196,113,243,132,74,161,101,0,66,178,113,168,159,221,59,118,224,127,232,78,113,244,244,130, + 248,252,23,191,36,191,241,207,159,235,219,148,203,109,237,210,97,183,130,72,47,84,206,164,187,56,157,238,194,250,46,58, + 28,191,102,0,244,175,129,207,139,32,36,127,168,65,72,235,198,26,141,26,130,34,48,50,87,102,231,207,220,207,169,137, + 70,193,203,141,52,90,198,116,188,194,68,41,80,207,106,22,44,120,161,187,194,222,209,175,30,233,155,218,190,33,217,223, + 189,150,176,179,11,45,42,24,161,196,23,17,164,12,145,218,65,41,19,141,68,73,3,36,72,97,98,162,145,26,234,42, + 70,164,109,29,218,72,17,18,109,20,118,11,125,192,68,135,54,74,187,188,237,157,183,99,10,141,90,153,99,250,201,71, + 153,57,245,12,111,223,218,66,107,68,50,90,158,103,161,146,96,253,198,253,28,25,27,195,72,182,146,74,119,17,53,50, + 248,218,197,51,66,2,45,64,248,16,106,44,71,18,145,113,194,208,165,90,211,84,188,16,171,37,192,54,5,185,170,207, + 249,108,133,93,137,20,125,149,106,46,132,169,40,172,168,102,224,97,178,185,198,50,205,177,41,188,108,108,126,17,248,101, + 136,102,97,115,12,238,152,129,119,46,222,124,213,238,187,255,231,31,37,215,110,217,76,232,151,144,82,54,188,84,13,134, + 254,130,241,132,190,36,81,245,34,81,252,175,122,59,5,82,128,80,47,227,116,154,38,154,104,106,57,23,201,231,75,212, + 163,23,95,19,40,173,26,102,156,108,0,141,210,186,17,30,213,52,238,68,211,101,166,185,96,214,93,2,110,23,59,125, + 53,126,139,230,231,27,32,212,128,35,37,18,8,17,34,133,66,234,8,110,177,68,41,55,131,235,44,162,194,70,235,116, + 221,76,71,141,68,50,8,105,48,59,151,227,216,225,167,56,250,196,115,228,15,31,14,183,100,151,10,183,132,225,84,43, + 234,217,16,166,5,184,115,210,224,233,76,47,75,118,20,227,187,220,203,230,171,15,62,226,59,2,159,183,44,8,105,144, + 82,96,197,76,172,240,251,44,80,105,75,44,41,248,171,165,58,127,12,224,134,23,193,135,75,52,158,11,114,164,233,74, + 94,75,163,0,205,54,168,77,195,25,19,158,106,63,182,188,254,248,163,231,246,246,191,175,95,202,176,68,104,24,16,74, + 180,89,65,134,38,82,69,81,210,71,75,8,80,205,69,220,168,19,44,125,144,169,86,204,206,126,132,180,48,0,77,72, + 104,40,12,173,144,8,108,161,17,202,3,41,240,234,30,231,78,62,207,80,74,146,136,36,168,135,2,179,189,141,84,95, + 39,83,243,179,172,219,119,57,164,251,41,151,42,196,81,132,36,208,162,134,208,149,198,169,110,219,84,106,5,236,84,26, + 180,198,112,53,1,18,199,171,147,74,38,89,56,63,227,222,136,161,188,92,33,154,168,57,57,96,97,9,106,91,175,238, + 230,137,159,218,2,213,0,210,22,249,71,231,248,155,191,31,249,38,205,231,23,4,177,5,205,198,40,220,62,13,119,79, + 255,216,123,15,252,212,255,250,147,72,71,50,142,242,29,164,97,18,170,0,169,5,82,24,232,70,78,250,75,72,226,11, + 224,163,255,213,67,228,82,80,225,18,142,232,69,13,233,155,61,100,47,242,68,23,249,34,241,210,251,138,151,93,227,69, + 222,232,165,69,244,245,75,72,111,31,173,26,209,214,186,25,230,173,208,72,83,54,25,251,16,130,16,175,190,76,117,165, + 68,173,84,68,251,145,134,6,108,6,104,43,133,105,25,56,78,192,209,199,159,231,248,253,79,233,236,227,207,184,169,165, + 197,202,94,29,228,214,192,76,2,206,134,112,50,128,19,81,56,87,131,250,54,33,249,188,48,176,3,255,187,46,217,250, + 170,1,144,18,160,132,73,104,200,239,186,4,235,91,9,132,44,75,82,174,133,124,249,177,57,180,254,254,34,33,226,17, + 131,191,252,202,20,255,114,50,247,29,189,255,15,128,231,155,38,199,85,64,23,168,17,88,72,192,179,173,138,109,35,15, + 28,91,179,124,251,21,29,3,177,40,53,203,192,51,92,162,4,160,147,40,34,23,205,12,68,67,77,215,90,19,72,192, + 22,68,187,251,17,102,10,2,129,209,12,156,107,228,41,53,242,201,132,50,192,148,84,189,18,86,58,65,203,250,181,100, + 23,134,9,170,33,45,109,45,12,14,12,16,90,25,18,91,214,147,216,178,155,186,87,229,212,240,9,132,165,17,210,199, + 10,67,162,50,141,210,49,20,1,142,237,81,244,202,72,25,65,38,45,180,97,161,2,143,186,23,232,245,231,167,117,183, + 143,253,180,239,122,17,205,18,176,92,4,239,100,87,140,93,215,246,64,45,96,97,161,198,244,179,217,151,228,120,125,12, + 248,37,136,102,53,155,162,112,251,18,220,189,252,145,247,31,248,217,143,255,69,36,99,27,232,192,105,144,202,8,164,52, + 27,0,163,245,75,65,231,82,96,121,249,38,255,22,135,234,203,65,72,55,181,157,11,17,208,23,92,246,226,18,144,186, + 8,52,151,120,194,94,84,142,244,55,1,20,90,55,211,60,94,10,112,23,238,117,33,250,186,81,73,160,25,151,45,27, + 166,152,20,33,161,239,226,87,203,148,86,86,168,87,138,232,192,66,26,62,210,118,49,173,22,16,113,150,23,151,57,249, + 216,51,122,226,95,190,236,196,142,159,92,217,164,84,238,58,88,176,97,76,193,48,48,225,55,126,230,4,20,43,141,96, + 126,173,208,24,250,66,100,208,119,169,1,133,230,171,83,130,61,16,223,95,144,206,91,1,132,76,195,32,84,1,127,250, + 233,251,57,55,49,254,186,223,63,74,163,92,194,245,192,205,192,127,111,188,230,8,24,213,112,168,115,108,101,231,225,199, + 143,180,245,127,232,46,105,251,80,55,163,104,21,160,241,209,70,216,136,105,1,12,45,65,105,148,33,168,98,17,105,111, + 67,180,182,17,202,176,113,34,53,131,25,181,8,9,180,198,212,141,2,21,210,84,60,248,229,71,57,176,251,74,174,120, + 207,207,224,44,157,34,168,186,152,210,196,136,8,140,88,43,178,109,51,136,56,95,248,235,191,101,252,228,56,41,195,66, + 227,16,183,163,120,142,34,12,11,152,102,140,152,145,198,11,138,88,145,58,166,78,17,170,8,102,44,193,252,217,97,125, + 101,177,110,22,34,166,209,234,82,54,149,88,240,208,57,27,252,142,71,231,248,210,135,30,192,2,126,63,231,242,239,231, + 107,23,83,47,126,190,201,249,204,195,230,8,220,145,131,187,202,63,251,35,251,127,228,47,254,75,52,35,3,180,47,26, + 109,254,154,192,162,155,224,160,105,132,41,188,28,92,132,248,230,141,46,148,254,166,224,195,11,57,237,66,235,151,106,42, + 223,230,122,92,226,134,191,232,194,215,47,94,77,41,133,144,47,166,105,232,151,152,117,77,83,238,2,184,73,9,234,66, + 90,136,213,236,117,214,76,111,65,131,87,167,88,204,81,45,21,209,117,69,160,52,194,210,216,73,3,100,7,229,130,199, + 248,179,99,156,252,250,87,66,241,248,179,229,182,133,133,236,229,48,18,131,51,26,198,53,204,186,48,29,194,130,130,82, + 28,234,62,4,223,0,222,71,163,204,201,247,181,167,180,120,243,116,171,184,0,66,198,155,22,124,66,254,247,23,190,240, + 134,128,207,75,198,9,184,31,184,6,248,91,96,3,228,115,112,188,21,142,156,249,210,161,141,35,55,95,213,185,185,179, + 27,25,104,124,67,99,74,15,41,20,74,54,226,130,100,8,82,24,248,158,137,209,210,65,180,123,35,202,202,160,49,27, + 166,25,141,124,178,6,51,18,130,82,72,21,131,64,176,105,176,131,99,135,238,199,176,174,165,181,117,39,86,107,2,31, + 23,63,212,232,64,50,127,122,156,39,238,125,152,67,247,63,74,90,138,70,175,119,51,66,32,162,104,211,196,240,52,182, + 229,163,85,21,233,196,176,68,12,175,150,35,18,143,82,168,197,25,152,92,168,119,67,165,40,85,116,200,146,185,0,61, + 159,132,210,147,160,254,40,239,145,202,123,204,240,98,35,116,23,248,8,240,107,16,93,130,205,86,3,124,238,142,255,230, + 175,238,187,245,255,253,141,120,4,80,126,163,220,169,104,166,168,92,64,16,45,154,197,183,4,8,169,95,22,11,252,82, + 142,231,229,4,179,184,84,59,121,41,17,211,244,84,125,11,210,79,136,70,116,243,203,194,8,26,227,254,82,79,219,75, + 52,160,230,139,2,113,193,94,123,17,188,46,128,83,216,224,134,132,14,9,61,135,122,169,68,113,101,137,192,119,209,161, + 143,25,49,136,91,3,120,161,102,230,204,48,211,15,254,189,95,123,228,201,146,30,158,91,94,239,185,11,29,48,35,96, + 84,193,49,13,231,12,200,22,161,166,193,217,6,193,68,147,236,183,105,212,20,50,249,254,115,1,222,116,113,64,129,217, + 200,97,122,121,176,177,16,224,171,111,50,165,95,23,17,134,65,94,133,124,234,11,95,96,250,117,6,31,69,35,144,46, + 70,163,44,232,102,26,233,25,208,232,125,53,3,236,2,47,7,227,10,14,245,143,230,183,63,245,215,247,93,179,230,247, + 126,206,138,6,117,234,129,129,86,54,134,80,4,194,71,107,129,106,146,158,166,105,16,73,165,27,190,36,175,142,33,156, + 198,30,242,66,68,224,161,107,101,66,191,134,87,201,33,162,109,196,122,183,177,125,251,126,122,51,41,102,39,158,161,112, + 206,35,32,206,163,79,78,48,63,179,132,196,163,180,180,140,80,62,137,164,69,72,140,74,13,100,110,89,235,90,41,52, + 106,126,32,67,165,137,72,115,70,154,150,159,106,161,175,175,149,195,195,139,236,223,179,155,244,153,17,239,186,154,55,18, + 192,233,152,169,83,25,211,204,107,130,19,75,80,218,14,252,51,141,158,84,191,220,228,198,42,192,30,16,183,65,44,11, + 27,5,220,177,40,197,187,210,127,240,127,31,184,241,215,255,157,109,170,58,218,23,40,67,130,244,154,113,80,13,243,228, + 98,154,213,5,66,247,21,192,231,82,205,67,136,70,106,197,203,65,225,165,154,211,139,92,207,43,154,109,151,182,108,121, + 217,53,190,245,53,95,38,82,54,92,250,151,106,79,82,54,146,97,195,128,192,173,83,40,229,169,22,11,232,48,68,106, + 136,153,49,140,68,27,185,21,143,227,79,62,194,210,253,159,173,89,79,189,176,216,86,114,38,58,27,241,85,35,192,68, + 8,115,10,22,53,100,79,64,165,27,194,103,129,187,155,196,127,132,239,188,27,170,6,2,33,47,86,87,12,223,42,0, + 4,141,196,148,80,188,20,105,76,169,185,98,107,137,123,15,183,163,20,223,115,251,157,239,158,219,146,180,6,1,43,95, + 254,34,91,38,198,217,247,58,220,83,2,75,128,182,164,204,133,58,122,94,233,164,103,10,243,46,41,195,119,5,42,20, + 13,247,6,18,168,131,154,6,95,75,81,87,112,44,173,244,99,181,47,62,211,250,229,142,142,109,215,255,236,221,118,79, + 74,53,74,154,41,129,173,3,66,35,68,94,112,211,74,129,242,11,184,5,141,33,163,16,4,44,229,114,84,10,121,234, + 217,101,130,252,50,125,109,49,90,50,146,32,221,65,208,222,142,21,73,144,236,105,103,125,122,27,102,118,25,137,226,176, + 59,195,202,228,36,137,100,138,54,43,202,178,142,113,106,122,130,182,153,69,255,250,124,57,59,224,7,11,113,33,22,163, + 176,108,8,173,2,33,187,39,165,222,248,181,232,194,154,229,32,176,215,72,35,156,93,92,52,110,155,95,206,103,224,89, + 15,238,71,136,168,237,135,69,109,136,99,29,154,202,101,77,239,212,85,52,114,194,135,128,110,144,46,180,120,176,85,195, + 205,5,203,184,115,224,79,254,223,3,7,127,241,151,237,80,23,9,67,11,41,45,132,40,53,245,198,104,195,236,121,169, + 114,211,124,77,55,184,147,151,113,65,151,186,217,47,104,27,175,8,16,23,52,155,75,226,122,94,66,66,211,136,5,122, + 185,105,166,47,189,230,183,57,92,47,130,84,211,92,212,77,206,220,144,141,64,2,167,84,196,205,47,83,169,148,1,133, + 105,128,29,143,17,10,155,217,185,44,195,79,62,64,238,159,254,177,212,121,98,106,122,72,233,51,86,131,72,62,235,195, + 152,104,244,124,47,246,129,51,6,126,28,244,87,163,49,18,157,221,120,90,83,93,156,67,124,71,13,59,53,90,52,146, + 159,109,173,25,170,23,41,211,104,42,208,253,45,64,232,45,19,9,29,40,193,238,161,42,2,248,234,115,237,160,244,235, + 2,66,129,109,33,142,156,228,87,199,199,95,183,78,1,178,169,234,206,24,50,86,86,225,86,83,176,91,6,186,37,36, + 244,116,179,157,184,209,212,142,44,8,60,40,10,88,70,32,3,152,239,134,115,185,191,190,39,253,249,167,158,239,237,184, + 251,230,72,98,221,58,145,140,42,210,26,173,48,133,111,134,184,161,135,225,88,218,43,141,170,108,181,196,204,236,10,142, + 17,149,55,92,153,22,29,122,137,184,15,201,168,141,45,91,9,172,110,66,105,160,52,120,118,10,203,52,48,34,73,252, + 232,0,166,91,162,119,211,54,156,51,179,36,13,155,66,96,48,63,124,42,188,241,252,228,242,21,138,145,36,28,11,225, + 180,175,245,148,7,203,74,163,109,84,255,166,144,3,63,175,195,131,103,142,157,221,184,54,157,202,220,95,25,201,108,243, + 194,115,30,60,99,192,161,182,254,164,173,114,94,205,174,135,185,205,126,35,15,242,62,224,134,102,120,194,143,131,84,208, + 41,225,50,1,111,91,138,152,215,117,253,241,239,238,184,252,23,127,222,86,170,130,129,68,75,5,194,71,72,187,225,48, + 208,47,166,79,188,4,129,180,108,242,42,250,197,236,214,75,114,192,47,132,254,93,40,167,193,203,226,12,47,18,196,23, + 254,205,203,210,45,46,209,166,46,37,182,95,9,232,46,60,128,66,94,124,14,217,4,64,133,68,233,16,83,138,6,177, + 236,186,84,107,53,202,165,50,65,181,78,52,128,84,50,130,138,155,20,29,201,169,211,211,76,220,123,79,24,60,240,245, + 98,215,88,118,118,87,168,207,72,120,193,131,163,65,35,177,55,107,65,117,26,252,253,52,226,203,114,141,67,141,13,169, + 12,195,137,164,80,82,234,149,74,25,163,176,194,203,113,59,108,174,85,129,192,23,18,87,154,36,125,135,117,229,69,226, + 245,18,31,240,29,30,66,211,10,220,250,86,210,128,190,149,56,190,100,215,80,35,224,254,245,0,33,37,4,237,142,195, + 214,231,15,115,150,215,183,102,74,40,132,136,43,221,166,67,125,205,68,103,199,135,229,64,111,111,91,189,86,243,157,122, + 232,170,0,63,187,18,132,245,64,73,8,19,80,76,42,157,141,66,77,66,84,64,123,23,120,45,167,231,157,249,211,255, + 32,103,26,113,159,165,184,166,12,212,155,165,233,49,192,182,33,101,64,107,31,68,134,219,82,97,251,13,63,101,173,73, + 116,136,208,55,49,77,129,157,105,67,68,18,248,178,145,48,170,149,9,97,163,57,158,145,178,32,30,101,112,219,110,110, + 215,81,148,107,114,239,95,126,42,120,207,240,228,249,205,240,148,3,79,213,225,152,11,211,157,141,234,124,110,69,32,52, + 156,117,53,195,118,160,94,216,11,91,188,98,105,207,59,90,205,206,104,160,190,161,224,249,0,22,91,93,41,242,131,105, + 181,101,155,17,164,29,197,194,209,101,206,185,33,155,27,156,151,72,65,139,223,72,173,120,239,25,219,184,105,211,159,252, + 222,154,235,62,246,75,82,133,85,208,18,100,179,96,24,97,83,49,49,26,69,249,95,209,181,45,154,193,123,92,244,40, + 137,87,40,179,113,177,20,199,43,104,63,23,189,102,23,180,156,151,113,5,175,164,53,105,253,114,127,241,37,247,19,23, + 32,175,17,115,45,180,194,192,71,5,62,181,178,131,91,171,18,184,46,6,146,184,105,163,91,82,20,203,14,211,35,243, + 156,121,246,176,94,254,198,131,161,56,123,182,178,109,185,54,218,14,39,128,19,202,146,39,156,64,141,36,52,75,75,80, + 63,11,250,61,52,42,116,206,211,136,171,26,107,237,224,241,84,11,37,41,177,131,64,187,166,201,5,191,182,201,133,72, + 250,6,248,164,128,127,0,126,58,244,185,166,48,203,110,223,229,164,87,165,30,54,180,37,131,75,139,137,252,0,0,208, + 235,13,66,17,219,230,75,95,249,50,255,146,91,126,93,137,241,58,240,81,173,217,233,135,241,10,172,217,248,177,119,110, + 221,253,159,126,51,173,242,53,60,215,197,247,2,242,75,57,10,75,89,150,167,23,244,194,233,179,106,244,204,176,151,31, + 159,13,168,212,84,111,161,236,183,57,129,104,7,107,109,131,52,116,149,38,231,193,148,110,180,127,154,145,141,212,163,245, + 6,236,209,144,142,128,25,89,41,135,75,167,199,213,134,43,182,26,90,134,152,137,52,210,238,110,198,13,129,161,84,163, + 22,22,70,115,163,74,2,12,182,237,223,71,199,166,237,156,56,57,74,223,216,112,105,3,60,235,192,191,120,112,164,31, + 86,218,193,171,209,136,95,42,104,248,61,40,222,13,213,101,152,78,195,17,17,114,40,150,87,41,87,235,113,11,198,239, + 7,255,151,198,10,180,188,127,29,173,255,237,26,62,254,63,78,210,255,236,34,9,160,3,100,26,90,3,216,39,225,142, + 115,173,137,155,7,254,231,31,174,189,233,71,62,140,14,43,47,70,36,95,0,11,117,129,39,17,77,160,145,223,12,16, + 77,240,81,77,19,234,149,57,152,198,86,18,151,16,216,47,183,192,190,213,78,123,49,243,253,165,87,187,96,71,189,36, + 53,227,194,103,84,216,12,60,84,16,134,4,245,26,94,181,138,235,120,184,174,143,235,120,148,138,21,38,39,102,57,113, + 242,44,249,145,145,124,109,108,216,88,51,189,16,235,207,215,228,53,224,90,48,229,55,0,253,89,97,136,83,102,204,156, + 147,213,32,31,13,149,235,210,200,20,27,107,2,201,87,104,116,202,8,34,49,38,146,25,153,9,3,21,85,10,91,11, + 30,235,236,71,6,138,71,42,69,190,4,124,148,70,221,165,5,224,243,13,109,148,27,74,139,244,53,189,180,21,190,243, + 180,140,183,100,50,234,5,16,18,2,238,57,244,218,128,144,101,154,204,205,207,243,240,217,179,175,122,47,164,239,68,110, + 0,246,104,68,8,102,44,217,47,147,244,161,50,85,132,104,20,62,239,93,115,177,129,138,0,109,184,97,57,182,148,155, + 167,84,46,48,55,57,195,212,145,243,250,240,225,243,186,120,110,152,182,220,124,108,112,41,223,209,227,40,47,2,217,16, + 106,33,152,6,164,198,132,104,31,110,105,137,22,93,47,92,87,171,230,90,243,229,20,200,132,52,162,200,148,133,107,229, + 81,50,142,150,233,70,65,117,45,64,70,16,82,52,220,189,97,163,240,86,119,119,130,175,252,253,255,98,125,205,91,84, + 112,220,133,227,253,176,176,17,152,4,18,23,52,187,38,121,158,131,224,48,20,63,0,101,11,22,203,161,50,214,128,251, + 36,184,127,0,252,12,240,92,214,225,127,254,151,163,252,233,159,159,228,243,192,26,176,108,232,146,112,64,195,237,165,76, + 250,166,171,254,254,207,7,118,220,245,126,130,160,210,228,182,196,69,23,117,131,179,109,186,219,149,122,17,124,94,142,28, + 77,32,144,151,124,238,229,222,39,248,102,207,214,69,254,134,11,37,68,248,166,207,139,75,180,35,165,94,212,172,94,130, + 87,47,139,148,110,120,220,26,122,170,239,57,84,74,121,220,74,25,252,128,149,149,60,181,186,71,173,238,49,49,51,207, + 226,66,14,17,181,105,235,235,19,189,169,184,144,221,163,82,31,63,175,231,22,171,34,13,177,8,12,152,224,25,161,110, + 11,74,94,86,66,182,0,139,253,144,107,129,66,20,106,43,224,183,130,142,0,134,231,97,132,74,186,161,86,82,8,162, + 129,230,72,189,194,223,185,245,139,49,87,203,52,34,244,79,241,98,70,154,126,153,17,201,15,50,0,93,0,161,157,107, + 27,154,208,107,1,66,134,97,240,216,225,231,8,85,248,134,124,191,11,147,106,130,206,215,124,237,19,34,195,26,72,147, + 80,55,203,104,200,11,252,132,194,32,66,95,215,122,6,187,12,118,108,184,18,110,54,133,86,174,88,204,206,49,50,113, + 46,58,118,236,68,244,208,163,79,182,183,221,247,116,251,246,149,122,175,9,98,12,54,157,123,207,245,131,215,255,226,7, + 101,101,201,229,228,253,79,166,75,237,129,29,218,26,17,79,224,218,81,180,138,96,5,22,58,149,68,199,163,4,42,96, + 121,110,129,165,133,121,226,153,86,58,186,218,105,207,100,240,171,121,206,61,244,164,190,22,202,33,20,53,184,6,141,34, + 97,247,2,31,2,62,69,163,72,124,51,187,9,23,216,10,234,75,80,253,29,224,12,240,80,243,111,21,224,43,143,206, + 243,196,163,243,252,52,208,11,177,42,12,41,184,90,195,45,243,107,123,174,61,248,169,143,15,108,184,246,122,17,6,43, + 32,12,228,203,0,230,37,32,112,233,198,208,47,117,155,95,52,161,46,252,214,23,198,95,95,108,22,248,45,61,99,188, + 88,84,76,124,139,200,233,134,199,170,1,112,250,146,32,67,33,68,3,24,47,137,235,185,16,6,129,144,132,161,71,62, + 151,35,240,235,24,82,98,196,98,116,13,38,72,181,180,17,73,164,185,222,176,65,92,48,140,68,139,2,74,78,145,133, + 233,49,157,31,57,23,45,28,25,94,59,251,220,217,94,255,220,240,101,198,212,120,49,94,243,243,169,70,137,141,89,5, + 147,9,56,239,194,68,2,22,175,129,146,15,117,242,75,238,79,212,202,193,94,26,93,68,222,171,53,89,183,254,138,222, + 217,239,62,236,240,7,8,128,46,130,208,80,21,165,5,95,123,174,237,85,3,33,211,182,25,93,92,228,216,185,179,111, + 216,119,107,244,73,64,27,160,23,166,39,148,210,10,67,217,205,8,87,209,108,164,217,104,54,168,181,143,212,38,194,139, + 162,133,73,64,136,22,43,72,233,209,211,221,70,79,247,219,184,238,138,183,227,124,244,39,204,111,124,250,203,107,206,252, + 218,239,180,110,207,86,253,197,107,14,36,223,251,27,255,70,182,36,44,18,125,49,214,118,246,198,23,142,62,128,29,109, + 69,71,99,120,120,216,118,20,75,219,84,133,205,137,211,195,148,11,62,137,136,69,75,58,73,173,94,225,216,209,89,186, + 210,105,34,169,52,231,102,43,92,15,105,19,54,25,176,105,14,130,105,40,181,53,171,233,253,241,255,199,222,123,199,217, + 117,149,247,222,223,181,214,46,167,77,239,51,234,93,150,229,38,119,227,130,11,54,166,183,64,2,132,155,158,155,155,114, + 19,82,222,220,36,55,164,151,123,19,146,144,16,72,66,239,197,16,192,96,3,198,5,92,112,151,44,201,234,189,204,140, + 166,207,169,187,172,181,222,63,214,62,103,70,178,76,53,224,228,230,240,25,70,26,143,102,206,217,251,236,103,63,207,239, + 249,21,224,143,178,77,214,141,89,255,166,178,59,234,126,154,70,17,112,67,54,134,126,20,7,94,212,32,156,115,185,92, + 183,104,184,249,208,170,193,243,174,250,196,191,244,173,190,248,50,108,163,138,240,36,66,52,64,228,78,103,17,47,46,26, + 103,217,64,157,214,117,180,68,157,139,185,62,207,212,129,137,197,27,119,78,103,55,115,150,85,186,109,117,98,205,85,187, + 61,189,131,82,226,244,231,213,114,57,51,72,207,167,167,175,223,5,22,26,139,242,218,16,129,223,250,54,99,156,10,222, + 10,39,129,80,214,208,233,123,116,174,217,36,88,123,129,224,86,29,164,54,9,166,166,231,75,227,71,78,244,207,239,219, + 97,15,222,247,96,90,127,124,71,173,180,125,247,100,123,61,62,90,114,145,205,135,44,28,247,225,96,193,218,221,126,163, + 54,125,14,152,19,60,83,103,247,92,63,254,195,251,1,53,98,201,121,43,29,31,211,21,33,103,96,255,61,111,189,124, + 159,32,142,89,121,223,189,252,182,214,92,147,157,4,153,93,32,63,140,77,152,118,107,102,155,56,70,66,67,237,60,80, + 179,141,90,135,80,113,166,55,148,160,20,88,135,232,42,171,176,82,96,165,118,30,54,217,165,97,17,104,93,67,232,58, + 200,54,124,227,113,205,45,151,240,15,95,190,176,112,223,3,59,226,107,126,243,141,254,72,103,137,100,190,1,185,10,51, + 149,105,82,145,71,149,58,192,179,104,35,25,159,52,140,87,38,136,139,9,253,171,206,103,243,134,165,132,62,64,140,65, + 161,141,71,101,106,146,131,251,15,226,13,15,138,79,31,216,191,244,245,85,115,99,55,248,17,220,187,28,182,141,192,88, + 12,177,202,58,155,187,178,99,122,3,11,102,242,100,119,220,45,56,119,248,128,22,7,74,53,96,73,0,55,106,120,217, + 193,229,131,231,110,249,216,187,187,214,95,124,9,54,106,32,68,30,43,34,231,111,36,220,138,221,102,184,138,92,188,137, + 18,153,233,232,25,51,130,104,205,79,246,244,177,107,113,135,100,237,130,153,252,162,175,137,197,223,243,108,139,233,140,213, + 236,192,158,133,21,250,130,127,116,214,79,88,155,165,124,45,220,130,132,144,168,112,33,167,212,0,198,198,11,99,165,176, + 88,171,179,151,102,73,12,72,235,35,72,49,105,5,147,54,208,73,66,187,47,9,150,119,18,45,191,90,172,185,230,26, + 191,62,55,221,49,182,107,95,199,232,35,79,174,60,252,213,175,111,233,220,115,96,186,189,90,31,247,45,143,214,225,54, + 11,143,126,18,170,159,226,59,231,253,252,63,91,128,206,94,132,196,247,84,132,82,223,167,119,98,130,45,247,222,195,174, + 195,135,152,1,150,224,200,127,202,1,160,4,217,65,251,65,110,196,4,206,136,126,171,243,216,58,37,199,71,203,211,83, + 167,134,134,151,12,187,145,208,58,252,71,202,44,87,70,100,74,105,107,17,86,58,155,11,235,185,39,41,37,86,73,18, + 98,60,17,208,102,122,88,114,254,11,213,93,245,32,247,115,231,93,32,210,106,131,88,37,132,94,142,106,165,138,232,132, + 178,178,28,62,28,19,37,154,160,179,159,254,245,231,50,176,124,21,158,95,192,164,41,90,71,8,83,67,11,69,34,243, + 116,116,117,112,225,149,23,242,190,15,255,35,159,255,244,237,197,79,191,231,195,23,108,126,244,233,158,75,97,169,117,24, + 196,3,157,176,255,167,160,246,199,217,177,123,20,199,126,187,57,27,201,200,186,162,235,129,159,202,10,212,195,160,82,232, + 15,224,242,20,110,28,95,59,180,241,198,79,125,168,115,249,249,91,72,245,60,248,46,10,71,154,28,66,164,153,227,181, + 124,198,150,203,97,48,98,225,224,46,234,86,22,182,87,11,38,241,52,71,163,179,21,163,51,199,59,151,205,243,237,55, + 170,198,208,36,97,187,95,223,36,19,102,4,199,69,40,182,3,184,155,223,172,48,24,176,38,243,139,150,217,18,64,160, + 172,113,186,54,112,185,243,88,210,164,65,92,171,81,47,59,255,104,173,19,4,41,90,167,40,83,68,161,232,44,104,250, + 46,185,128,117,87,94,46,143,191,233,21,237,247,127,230,193,246,79,189,243,125,43,94,54,118,212,95,6,79,106,216,94, + 128,234,237,223,170,176,62,71,215,192,127,26,71,196,102,17,146,194,102,152,208,119,94,132,172,16,164,185,28,35,59,119, + 114,197,237,159,39,111,12,59,23,241,28,118,186,98,192,239,3,219,112,36,65,47,187,59,152,31,80,1,74,220,239,174, + 181,195,100,114,252,196,220,177,29,187,24,94,178,2,97,107,24,145,58,118,136,113,184,135,64,96,108,130,69,35,133,135, + 161,233,13,227,184,47,210,10,148,104,160,100,66,234,41,214,174,91,71,185,81,19,161,215,78,213,215,20,138,37,198,199, + 171,60,250,200,54,150,173,232,98,235,145,58,221,93,195,44,239,31,164,179,167,15,47,223,129,53,18,25,71,46,132,79, + 133,24,225,82,30,148,17,164,24,76,221,163,88,232,226,205,191,240,38,110,120,213,203,212,39,223,253,158,21,159,251,135, + 247,118,95,51,57,63,220,3,125,83,112,199,107,97,215,32,84,150,227,12,229,107,14,219,225,15,178,215,189,59,27,207, + 60,32,132,92,5,134,115,112,89,12,47,217,183,105,213,197,183,124,234,125,189,203,55,158,143,73,107,40,17,100,57,242, + 58,235,48,228,66,202,232,226,35,185,128,49,187,85,251,34,1,167,104,229,179,55,11,9,88,163,51,32,219,91,52,107, + 89,7,190,159,229,60,181,198,182,197,74,245,69,242,136,5,89,70,246,217,52,123,41,133,200,182,139,194,58,206,143,22, + 230,180,78,205,117,112,205,140,52,50,251,16,72,77,154,157,119,103,169,130,177,52,42,53,26,51,83,212,27,53,210,56, + 205,70,190,172,177,242,2,194,66,1,63,240,137,26,121,118,238,59,202,190,109,247,219,209,199,183,210,216,179,71,148,199, + 102,204,202,122,163,220,41,196,169,196,218,186,2,17,130,250,63,60,211,236,77,103,55,229,114,230,201,182,234,12,44,168, + 105,88,47,255,95,43,64,205,34,116,238,138,197,192,244,183,47,66,34,8,16,81,196,11,254,253,179,12,236,219,235,132, + 125,103,153,249,39,178,207,255,148,97,22,167,50,238,196,0,11,190,116,207,21,6,158,100,39,249,173,160,173,160,33,181, + 173,31,221,185,219,94,118,203,75,132,53,166,101,116,229,248,42,10,147,70,40,21,128,244,1,141,182,137,243,162,17,46, + 201,3,44,82,231,193,8,140,156,101,112,164,141,75,131,13,164,73,157,242,92,204,67,15,60,206,252,220,36,151,95,122, + 62,107,215,174,160,88,204,161,60,176,182,65,121,126,10,85,169,208,72,52,86,10,148,231,161,2,31,63,204,17,230,66, + 2,223,119,215,140,116,214,15,73,18,51,208,211,193,255,252,131,63,226,241,23,223,218,254,133,223,249,211,75,214,221,253, + 245,226,114,80,83,160,207,133,167,87,66,35,204,198,175,147,184,248,223,197,111,240,216,53,154,171,10,130,27,107,150,155, + 14,111,94,125,233,77,183,189,191,127,197,218,205,232,180,214,26,65,164,179,248,194,74,147,169,192,207,94,206,133,56,109, + 249,125,246,49,11,50,31,30,177,136,202,99,159,85,22,33,207,32,26,182,186,38,33,206,218,21,181,48,166,69,187,34, + 41,213,105,207,72,234,133,231,99,23,255,47,43,68,210,40,119,3,144,174,240,234,184,65,163,86,163,92,158,163,62,63, + 143,72,98,60,95,225,135,62,202,247,177,210,39,137,148,173,156,154,177,213,99,227,118,238,233,189,118,247,3,247,137,104, + 199,94,81,152,170,138,245,64,55,152,130,107,56,119,199,176,59,21,2,13,107,67,107,163,203,120,166,101,154,0,82,208, + 101,168,21,161,252,135,144,196,160,79,66,50,13,137,2,221,6,38,255,29,222,156,255,211,121,66,127,55,69,200,203,229, + 56,176,115,39,87,126,227,235,44,159,157,33,250,22,109,101,115,58,239,203,62,6,112,182,24,17,240,24,112,14,206,169, + 59,120,142,230,102,237,126,118,26,90,102,187,96,122,108,235,211,141,196,146,23,214,115,70,85,66,225,171,144,79,127,228, + 195,28,63,122,132,13,235,55,177,124,217,10,186,250,122,232,25,232,195,207,133,88,12,198,166,104,147,58,189,144,1,191, + 212,206,192,224,48,189,253,3,84,171,49,255,244,143,239,226,154,23,188,136,91,94,116,51,158,151,144,196,17,82,64,210, + 136,153,155,47,115,226,228,65,198,198,78,33,60,203,224,72,63,249,124,193,21,0,1,158,242,8,124,159,182,182,54,134, + 134,151,81,104,239,67,36,33,210,88,140,173,177,229,194,11,89,253,185,127,13,222,243,91,127,112,65,250,174,79,38,171, + 225,88,12,199,191,2,141,52,27,189,62,176,8,232,92,1,188,26,100,10,3,70,112,117,108,121,229,244,85,151,92,116, + 235,135,255,185,99,100,197,26,76,82,119,29,139,177,45,60,70,32,78,207,16,62,91,9,18,11,89,94,205,172,180,103, + 22,22,113,186,176,243,180,53,252,25,197,230,204,175,53,173,53,178,175,25,173,91,106,246,211,192,232,214,182,75,62,19, + 44,183,32,116,54,216,72,225,230,193,38,25,81,10,231,243,147,26,226,90,157,70,173,74,220,168,18,69,53,226,70,21, + 33,44,129,239,33,60,159,52,150,156,56,94,225,232,193,99,181,249,221,187,27,237,247,63,24,200,125,135,130,100,182,66, + 1,228,250,236,61,42,28,198,72,12,102,206,245,92,5,13,107,141,181,253,205,198,167,154,221,84,253,236,254,146,45,69, + 80,78,174,49,13,156,178,80,141,33,50,48,61,15,83,109,48,215,11,115,33,148,143,66,61,5,109,255,95,42,64,139, + 139,144,177,130,59,31,239,122,198,2,68,10,65,152,207,115,106,231,14,158,254,226,23,184,241,12,117,242,183,43,12,205, + 105,189,169,217,122,12,120,41,46,155,106,34,239,49,178,166,235,116,123,134,239,226,97,149,32,56,50,79,105,54,98,210, + 221,85,102,67,152,50,7,142,214,211,68,231,67,233,33,50,165,110,84,171,114,226,232,81,174,191,250,42,2,9,141,202, + 56,251,198,14,178,107,187,160,167,127,128,222,193,97,186,122,251,200,23,218,177,36,36,38,226,158,59,238,99,207,83,123, + 152,153,153,97,116,116,140,185,185,42,71,70,15,49,246,249,67,228,11,1,70,67,181,82,229,232,209,227,212,235,17,155, + 207,219,68,119,119,55,185,208,163,16,180,57,230,109,62,143,239,7,24,109,41,22,74,72,161,152,157,158,34,74,43,180, + 151,150,99,180,101,98,242,40,137,31,19,180,181,211,104,31,100,20,186,215,67,91,3,188,82,246,198,155,4,30,204,94, + 247,18,224,93,32,135,160,119,26,46,73,45,55,206,94,188,121,243,245,31,127,111,71,223,146,37,152,196,209,219,164,148, + 216,166,230,234,180,49,122,225,236,61,147,193,252,29,30,123,219,12,116,124,38,194,97,207,98,217,193,153,22,28,205,247, + 208,34,43,141,38,222,228,222,51,178,21,143,241,12,177,170,112,124,42,137,0,149,73,59,146,212,97,110,81,76,163,86, + 165,209,40,147,36,26,147,106,172,181,40,165,176,169,100,102,102,134,19,199,71,57,118,98,130,157,59,247,114,236,248,41, + 100,117,126,230,188,82,33,90,221,211,57,220,86,216,32,68,222,103,170,187,67,38,94,81,200,70,106,195,80,217,106,181, + 74,106,36,22,221,102,73,54,8,21,172,71,41,26,141,72,128,37,73,18,102,102,102,169,149,231,173,72,82,163,163,216, + 138,114,205,20,162,52,237,168,39,245,30,99,230,219,161,81,66,197,37,204,84,17,59,46,96,34,133,19,243,78,228,186, + 215,131,19,29,110,169,249,255,78,1,106,22,161,11,86,85,104,196,146,59,31,239,166,16,58,62,143,167,20,115,105,202, + 216,191,127,134,23,239,221,203,23,207,4,27,191,71,204,166,11,167,163,249,236,242,118,126,227,95,110,194,143,191,55,254, + 144,95,244,121,234,111,31,231,182,143,238,226,34,80,121,8,44,228,166,106,243,42,142,171,228,242,33,214,24,148,242,136, + 116,76,127,95,39,157,165,28,82,198,116,248,37,122,123,139,68,81,66,35,174,113,108,207,78,142,239,243,105,111,239,101, + 104,213,8,119,221,253,21,118,60,250,4,235,86,173,97,205,218,53,116,118,94,68,71,103,27,158,132,66,49,159,69,5, + 123,104,35,8,253,128,98,161,8,194,210,136,106,84,231,202,196,181,6,243,229,121,230,102,102,80,126,192,232,248,20,113, + 108,41,182,117,209,223,219,195,240,210,110,10,109,167,8,75,121,196,84,157,180,10,239,254,147,191,182,249,247,125,226,212, + 229,240,120,4,251,5,84,101,118,23,254,100,134,3,45,1,254,5,100,27,244,77,194,229,192,203,107,27,214,92,114,213, + 135,255,173,187,119,201,8,54,169,158,54,224,74,41,91,163,137,88,148,225,105,91,91,36,123,58,59,78,52,61,155,23, + 157,51,217,244,87,126,54,85,250,162,31,112,230,205,228,204,181,254,217,100,23,207,144,99,100,120,212,153,52,128,214,118, + 13,164,48,196,113,76,60,87,67,232,148,180,214,32,169,55,144,218,162,109,138,13,5,129,167,176,74,50,51,61,203,238, + 221,123,8,253,60,70,67,24,22,216,180,105,13,23,110,217,72,177,148,35,95,12,71,132,204,140,254,241,92,51,37,53, + 18,31,161,82,129,172,57,199,196,36,15,86,97,68,226,104,29,89,113,183,214,217,177,196,73,76,181,82,197,88,75,221, + 24,170,149,6,149,153,121,102,78,78,48,119,114,106,228,196,169,25,166,143,157,196,142,159,74,194,153,217,122,119,165,86, + 95,153,234,153,165,82,236,193,232,47,47,133,59,103,224,232,39,224,25,254,161,175,195,5,184,252,72,30,70,255,224,227, + 149,235,117,56,103,73,153,3,39,67,142,76,228,201,5,146,84,107,222,251,185,207,114,233,225,195,180,63,199,219,44,211, + 4,144,51,159,25,15,136,98,227,188,130,191,83,80,206,64,116,235,74,62,253,209,93,92,14,129,130,254,41,24,106,44, + 27,46,204,140,30,163,99,213,114,148,114,152,64,26,55,144,104,164,72,157,21,110,172,113,114,83,75,41,148,116,149,186, + 136,19,131,177,53,190,246,185,207,177,103,207,62,126,241,45,111,194,164,53,151,248,160,4,82,248,120,34,64,42,167,239, + 202,229,10,72,225,183,214,199,113,212,160,32,61,74,61,93,84,243,21,74,29,1,8,129,151,11,185,236,186,23,160,241, + 57,126,226,20,251,159,62,200,216,214,61,120,187,83,134,7,214,177,97,213,18,238,254,250,109,76,124,232,19,245,159,129, + 253,117,248,186,133,237,13,168,188,22,248,52,240,53,96,56,43,62,157,158,232,139,12,87,10,99,95,145,174,91,121,245, + 21,159,124,207,72,223,250,245,50,142,43,120,50,231,138,135,52,45,213,248,66,195,35,154,104,24,167,105,181,206,204,8, + 196,182,188,128,108,139,107,179,240,181,211,199,46,187,160,56,111,226,58,103,99,80,115,58,217,145,179,224,66,103,122,8, + 61,243,214,229,176,186,184,94,35,154,153,164,94,111,96,180,37,244,3,16,6,63,244,73,227,6,105,146,50,51,17,51, + 63,55,75,165,90,38,142,35,250,250,122,233,239,239,115,189,149,108,254,44,139,177,22,157,38,88,19,101,214,35,210,165, + 117,24,133,145,21,164,148,24,43,49,198,98,237,188,3,186,149,36,206,250,17,37,133,99,109,43,133,47,125,58,218,58, + 0,232,22,2,213,43,241,215,120,8,225,48,56,163,45,245,70,131,185,114,217,223,123,120,212,63,188,255,88,251,103,31, + 120,108,32,124,242,233,85,255,173,82,169,97,205,182,1,56,177,226,89,70,49,239,71,149,74,111,127,8,198,62,218,66, + 62,208,108,89,51,207,209,169,54,82,157,240,222,207,222,198,232,145,35,167,241,79,158,75,78,195,216,193,57,102,254,247, + 253,116,221,58,194,145,216,176,118,67,59,81,79,248,109,38,225,69,88,83,209,227,158,247,238,227,45,110,19,212,158,194, + 114,17,120,189,47,122,221,203,212,196,137,35,116,119,22,104,235,233,70,8,73,16,248,228,11,69,180,214,40,229,147,106, + 23,195,172,178,14,193,96,16,158,160,179,189,13,165,36,183,222,114,11,161,95,64,11,133,205,6,122,223,243,201,249,65, + 43,149,52,8,3,80,1,214,24,76,220,192,15,2,226,70,29,109,36,90,120,24,98,44,134,90,101,150,198,241,132,161, + 165,171,89,181,118,41,171,86,172,70,235,6,163,19,163,28,218,55,198,87,239,126,136,7,31,222,77,106,50,127,245,108, + 115,155,89,136,240,23,25,173,225,223,64,118,74,87,124,48,246,21,102,227,218,107,206,255,204,7,151,245,110,216,168,76, + 92,193,19,57,119,36,68,218,210,120,157,185,144,90,40,62,226,204,170,115,218,96,109,23,173,226,77,179,81,90,228,241, + 35,190,53,144,116,218,182,235,204,247,114,147,213,124,214,81,254,76,230,245,25,203,108,173,53,243,115,179,152,114,25,139, + 98,126,174,78,185,50,1,194,80,173,206,81,174,76,18,71,17,129,234,164,171,171,157,129,254,126,218,218,138,72,153,117, + 70,38,33,77,45,36,29,8,153,96,101,156,193,82,11,59,41,119,191,55,40,105,48,40,172,245,17,158,1,34,103,134, + 111,3,60,147,45,44,172,192,147,18,155,166,136,108,27,39,132,192,170,4,29,107,76,170,144,66,160,13,72,233,33,164, + 164,191,167,151,21,195,195,228,110,189,149,187,174,189,150,143,253,228,47,10,83,54,162,238,249,202,19,66,182,37,241,217, + 237,56,188,192,249,57,252,103,125,24,235,66,248,82,173,249,192,23,110,99,255,145,35,63,80,254,78,45,214,200,175,28, + 101,223,87,142,242,49,224,87,87,149,88,213,29,224,125,135,5,8,37,184,254,64,5,11,109,17,108,0,46,232,186,233, + 170,193,145,139,207,147,113,35,98,114,124,140,84,8,186,186,7,200,181,117,208,214,222,197,216,232,56,35,75,70,72,227, + 6,81,20,145,234,148,142,174,110,242,97,59,237,165,46,230,171,53,62,247,229,111,208,221,185,151,180,222,160,94,143,64, + 74,130,66,30,229,41,194,48,164,45,151,167,179,179,157,68,167,228,139,5,218,74,69,138,249,60,197,66,145,238,174,46, + 60,9,90,71,72,153,18,228,44,197,98,14,52,76,143,141,211,63,146,107,165,57,12,14,141,176,100,201,74,116,3,54, + 156,191,137,47,118,22,115,15,190,243,67,171,207,171,214,174,242,224,104,8,179,95,132,185,50,240,49,129,236,245,101,255, + 116,106,175,16,198,190,162,177,105,205,117,151,125,252,253,75,187,55,92,40,83,51,139,240,3,164,86,32,26,88,97,90, + 68,189,103,52,55,77,173,150,149,173,228,136,133,235,126,209,72,181,88,166,145,117,54,38,43,26,226,140,17,204,158,225, + 233,179,184,8,157,205,60,236,89,73,140,103,233,150,78,251,183,214,221,48,186,251,250,72,219,114,164,137,100,223,177,157, + 124,226,195,159,68,199,13,222,252,230,215,177,106,233,74,2,31,60,63,135,16,160,83,141,78,235,88,233,54,124,86,11, + 39,94,85,83,46,128,205,10,44,10,139,2,180,43,58,210,2,1,22,15,99,99,132,108,128,245,17,228,240,164,205,190, + 22,46,104,213,178,96,75,99,12,82,72,180,53,72,17,34,164,235,55,53,218,33,211,153,191,184,240,45,211,26,190,242, + 129,79,113,232,95,62,208,120,203,169,169,173,5,120,172,34,228,169,113,163,245,209,179,148,246,245,128,55,113,4,122,151, + 130,209,63,26,183,193,31,104,151,5,4,158,59,9,239,255,236,103,56,114,226,200,15,252,119,202,69,7,58,0,142,29, + 172,112,240,96,139,215,243,29,109,191,2,240,115,176,92,193,181,243,249,240,226,117,63,251,230,110,161,192,39,193,183,30, + 181,83,167,40,4,57,114,237,29,108,222,178,133,251,238,189,135,250,241,83,248,74,224,133,62,29,221,61,116,13,47,161, + 212,214,131,151,239,225,227,255,248,143,124,241,142,123,92,23,147,36,8,33,9,115,1,133,66,1,129,32,159,203,19,248, + 10,172,161,82,174,210,213,221,73,62,95,160,171,171,135,174,174,46,70,70,70,104,47,21,9,67,143,36,137,72,211,136, + 92,33,199,208,224,32,29,157,93,172,169,230,88,190,102,53,42,231,131,174,97,162,8,43,37,235,54,46,97,253,95,255, + 145,188,239,134,235,134,143,252,247,223,186,98,213,161,227,187,18,216,185,18,230,254,28,100,81,138,254,138,229,10,105,236, + 203,103,214,175,188,238,202,207,125,100,121,247,234,117,152,120,14,165,50,110,143,48,217,152,37,159,209,172,159,222,9,101, + 209,128,173,137,71,156,177,164,18,103,124,77,46,98,173,216,22,31,200,46,96,194,173,49,236,76,133,215,217,138,82,211, + 235,199,88,123,58,23,168,201,206,166,153,122,154,21,176,22,43,209,25,138,161,36,126,177,11,207,192,11,110,186,150,203, + 175,125,1,79,111,219,202,201,163,71,153,173,86,88,190,116,8,33,12,70,155,140,116,154,249,159,73,137,149,25,243,219, + 164,46,138,71,8,82,157,96,173,197,243,36,58,115,4,240,60,39,136,85,66,161,173,197,26,131,20,22,41,36,18,31, + 35,220,88,230,150,112,205,110,83,162,17,88,233,82,86,180,141,64,198,40,233,226,180,149,108,35,159,239,230,169,253,199, + 248,216,187,255,129,238,47,126,117,242,102,109,158,204,195,93,26,238,233,78,162,99,69,72,54,61,219,212,240,197,127,50, + 108,185,85,112,254,13,130,164,241,159,167,8,89,32,231,43,106,145,225,215,254,246,171,28,57,49,246,67,127,14,205,4, + 207,37,192,123,61,201,197,61,57,60,251,173,187,181,82,78,209,85,142,131,198,108,180,188,2,91,218,126,230,245,171,122, + 47,63,223,75,102,38,65,130,18,18,171,83,230,167,38,9,11,5,122,6,7,121,205,143,191,17,226,136,204,113,222,141, + 24,70,32,85,129,147,71,143,241,158,127,125,31,249,92,1,109,44,54,116,54,238,97,24,80,200,135,180,149,74,228,195, + 28,190,239,49,95,158,99,249,242,141,116,119,119,211,104,68,88,11,245,122,141,253,251,247,209,211,211,203,208,208,32,109, + 109,109,116,116,245,99,45,76,76,213,153,156,170,113,240,192,9,252,251,190,201,170,117,43,216,180,105,21,253,131,195,96, + 12,169,174,33,76,204,181,55,191,146,167,254,199,193,254,147,191,249,123,75,3,232,172,64,110,8,122,99,195,21,70,155, + 151,77,175,92,118,205,165,183,125,100,217,192,234,13,232,164,150,225,25,11,70,239,54,51,18,179,226,153,91,46,123,26, + 5,206,62,203,46,115,113,78,215,194,184,214,210,128,101,69,200,62,99,228,90,92,184,236,194,38,236,89,116,95,205,63, + 159,46,209,176,103,248,155,137,69,100,200,38,118,212,44,122,210,209,38,210,24,233,9,206,187,228,82,54,108,58,135,71, + 30,124,136,173,59,246,48,52,208,198,178,101,75,65,27,140,78,81,153,190,204,100,111,30,65,224,2,8,108,83,162,225, + 88,214,70,91,135,235,89,147,21,70,137,18,62,40,87,40,181,209,174,32,10,139,20,214,141,240,38,205,206,65,22,92, + 153,141,245,158,113,131,180,47,115,228,138,93,236,59,122,138,79,125,226,227,76,124,246,206,198,117,19,83,135,54,195,55, + 35,196,189,6,30,182,216,99,159,132,250,215,112,132,211,51,81,223,59,1,207,11,225,241,47,89,172,129,11,110,250,207, + 81,132,154,197,39,74,52,175,253,253,251,185,235,209,177,31,217,115,17,56,191,149,39,82,195,223,157,170,125,219,39,190, + 186,232,241,33,95,73,1,5,81,104,235,92,245,154,151,21,66,155,160,149,79,67,164,88,235,238,70,42,244,93,116,142, + 54,8,153,137,112,173,6,227,236,163,132,244,104,212,26,252,217,31,255,9,211,83,243,25,224,232,86,183,74,42,10,197, + 2,237,165,18,197,66,129,48,8,176,6,242,185,18,82,122,36,137,97,217,178,229,244,244,244,162,148,34,77,19,164,10, + 8,130,144,66,62,143,151,145,15,131,48,68,74,137,167,20,137,182,236,223,115,152,93,79,109,103,205,154,117,92,117,237, + 53,20,59,219,73,227,42,96,56,122,236,168,144,224,75,40,25,88,171,225,82,99,237,205,135,206,93,125,237,77,183,125, + 164,127,233,186,115,176,105,109,209,78,235,116,132,199,32,90,23,108,243,179,64,60,163,112,60,91,186,197,89,87,235,54, + 235,128,132,57,115,239,213,234,100,68,115,164,177,218,145,15,197,162,228,138,179,128,211,207,64,144,172,104,241,121,206,70, + 108,180,103,254,173,89,192,44,152,180,129,31,6,188,224,198,27,168,204,76,179,111,223,14,14,31,31,37,80,138,37,67, + 131,46,5,181,105,105,111,116,134,217,184,191,43,33,49,194,18,71,177,11,160,12,36,198,24,148,82,173,231,178,160,204, + 23,72,97,220,22,12,135,43,45,144,61,101,11,196,51,50,165,224,231,105,203,117,113,104,106,142,79,127,232,147,236,252, + 228,109,233,198,99,167,38,95,1,219,242,240,64,3,30,76,176,59,45,76,142,65,250,55,217,43,219,250,108,29,144,16, + 224,133,240,196,157,238,80,252,71,47,66,139,139,207,171,255,215,55,184,251,241,241,231,197,115,138,128,53,22,46,195,185, + 200,61,235,8,86,77,169,147,226,131,208,190,146,182,171,72,152,43,161,181,34,17,18,41,36,133,82,27,197,174,46,12, + 2,161,156,233,150,149,2,76,118,113,74,15,33,139,252,223,191,250,99,190,246,213,123,41,22,219,169,79,79,35,84,118, + 199,204,238,132,82,74,10,133,2,82,72,76,106,89,187,102,57,3,3,3,228,11,121,164,20,164,105,74,20,53,0,40, + 22,115,88,43,72,82,237,18,208,133,179,44,73,18,67,181,218,32,200,21,40,22,187,8,59,187,56,114,248,4,135,143, + 126,140,235,111,186,142,53,27,86,115,228,232,97,182,125,233,75,141,107,161,145,192,144,148,226,74,140,189,113,199,138,161, + 11,174,251,224,59,123,151,174,91,139,73,235,136,51,182,86,139,35,142,229,194,226,170,213,251,156,214,113,156,134,241,156, + 93,169,116,186,233,87,51,53,116,17,6,100,79,239,169,16,34,43,68,153,145,153,213,167,249,61,139,51,87,237,167,133, + 197,219,103,84,25,113,166,6,77,136,211,10,174,177,22,217,180,4,201,248,78,214,106,48,150,82,103,59,23,94,122,21, + 229,185,89,158,124,236,17,158,124,106,39,171,151,47,167,187,179,205,69,47,25,247,111,77,86,52,173,176,167,61,133,36, + 77,241,148,122,70,113,182,214,180,70,86,105,2,172,0,109,53,40,137,49,41,82,8,164,20,228,253,128,92,208,203,225, + 137,25,62,246,217,207,240,244,71,63,155,172,218,119,96,236,23,96,127,39,60,213,128,135,53,60,81,128,19,171,161,250, + 105,119,180,190,163,197,13,255,89,138,208,243,177,248,156,129,237,240,30,224,167,127,250,28,254,249,68,133,79,127,249,232, + 179,118,77,18,40,207,207,113,108,114,138,145,13,27,8,81,228,186,186,240,61,31,161,20,86,184,145,196,98,91,156,22, + 132,194,104,139,231,151,184,255,158,123,249,220,103,110,167,175,119,144,169,233,153,86,212,142,177,6,41,37,249,124,158,70, + 212,160,92,46,211,213,217,201,242,85,43,25,26,30,65,41,133,214,6,79,73,180,214,88,4,129,31,16,167,41,129,167, + 72,180,211,34,133,65,224,198,34,9,243,149,57,162,169,41,124,21,16,4,138,193,193,62,180,213,124,254,115,183,115,197, + 216,69,28,63,126,136,244,224,177,134,15,121,3,91,164,177,151,110,239,41,157,123,225,251,254,161,103,243,133,87,97,226, + 8,35,125,20,49,173,128,10,177,136,216,144,137,106,91,113,196,44,26,139,22,37,139,158,141,168,124,118,236,198,44,152, + 248,44,170,23,130,166,188,99,49,190,100,91,106,249,211,126,214,179,36,92,156,253,132,202,236,215,125,235,228,139,211,210, + 80,155,5,106,145,135,144,177,150,182,246,78,174,185,225,197,156,56,124,128,29,79,62,70,173,86,101,96,176,15,169,124, + 172,78,156,187,163,116,157,139,196,137,117,141,160,101,51,219,244,36,58,19,104,151,82,160,132,201,18,83,156,216,213,243, + 218,200,231,138,196,218,112,224,224,17,30,189,253,54,115,244,246,59,162,129,227,99,227,111,128,61,109,240,84,140,216,170, + 177,187,12,28,59,9,51,47,1,93,248,46,232,45,222,226,19,246,31,185,8,89,32,23,40,162,248,249,87,124,22,23, + 161,16,184,126,77,7,87,252,220,70,110,89,219,193,7,255,113,123,139,85,157,224,108,75,11,2,147,130,198,218,116,207, + 99,123,184,234,134,155,17,74,33,132,114,162,200,236,205,216,244,45,151,44,164,58,120,97,59,123,119,238,224,207,255,244, + 47,73,34,77,20,149,169,71,141,76,81,237,70,135,56,142,137,26,17,197,66,158,217,217,89,134,6,7,89,189,122,53, + 141,200,225,7,82,9,132,114,129,119,66,42,16,130,124,24,56,193,100,26,187,205,145,213,132,228,240,60,143,158,238,110, + 166,166,103,104,52,34,246,238,61,200,206,157,154,205,231,111,102,233,210,21,60,245,212,46,190,126,199,109,220,34,17,90, + 179,66,193,154,93,133,112,237,198,127,249,63,93,47,184,238,70,97,235,17,66,129,146,198,189,182,197,235,110,177,144,154, + 213,74,156,104,74,48,90,235,47,113,70,247,97,22,9,65,57,109,252,18,139,198,161,179,93,33,11,0,180,131,36,68, + 51,135,203,90,215,41,44,170,116,14,12,62,163,152,136,51,54,110,167,81,240,237,183,125,255,58,185,140,125,134,98,191, + 181,224,104,254,44,157,50,178,98,53,3,67,67,236,222,241,20,7,143,29,99,184,127,128,66,224,101,231,72,103,218,56, + 155,253,59,183,26,73,146,52,27,197,221,77,168,249,209,122,89,158,70,201,128,92,88,66,19,80,158,139,120,242,129,135, + 217,245,239,95,76,204,35,143,151,71,102,231,38,46,132,189,121,216,26,193,182,58,98,143,192,158,28,133,242,11,32,249, + 213,246,46,78,116,13,210,35,37,187,231,103,88,89,153,65,68,141,51,209,181,179,23,160,211,138,208,151,93,21,61,255, + 122,65,18,61,255,139,80,171,243,137,29,230,243,124,44,62,139,31,73,61,197,11,37,111,186,164,159,6,112,17,206,119, + 163,153,52,80,21,66,251,82,76,247,167,230,216,206,219,190,56,63,251,203,63,219,222,81,116,209,58,153,41,51,11,216, + 165,27,208,173,1,233,121,76,141,141,242,119,255,247,239,153,24,159,33,151,203,51,53,51,77,106,82,87,160,76,243,46, + 168,80,158,66,42,247,230,27,24,24,68,41,73,16,40,146,36,117,108,0,169,8,139,33,90,55,215,213,58,99,201,186, + 255,102,141,197,106,139,198,141,114,189,61,221,204,206,206,49,56,56,192,142,157,219,184,247,190,123,88,182,108,13,155,206, + 217,64,190,161,77,91,66,65,194,186,157,146,96,201,219,255,184,235,186,87,191,65,17,213,48,126,8,178,140,178,153,6, + 158,179,103,168,59,178,176,205,152,68,89,1,70,184,162,156,145,17,207,228,215,44,12,84,153,207,134,205,112,35,97,207, + 88,179,139,69,225,128,205,95,103,22,105,195,154,155,173,133,84,141,69,102,138,11,237,203,25,124,159,211,177,44,193,89, + 85,206,139,190,195,216,102,176,32,173,32,196,133,232,101,50,239,203,108,28,212,110,175,122,238,150,203,232,29,26,100,235, + 163,143,210,219,86,160,187,187,27,116,236,54,174,210,224,206,16,45,240,185,169,133,107,210,15,22,176,49,197,252,124,72, + 181,86,101,108,239,54,83,126,106,135,174,60,242,68,213,223,181,127,236,2,99,143,117,192,9,224,64,2,59,234,206,184, + 96,172,13,91,126,0,244,23,195,2,83,195,107,197,230,193,1,117,56,78,210,131,198,144,235,236,229,64,154,176,244,200, + 211,36,90,63,171,168,215,59,27,223,202,11,224,241,59,50,96,250,198,231,119,17,122,62,143,93,223,242,121,27,203,124, + 93,179,29,24,233,207,51,244,91,231,19,76,69,148,254,113,7,179,149,36,78,60,113,40,128,71,151,60,250,228,250,237, + 159,252,218,5,87,255,212,155,149,17,211,8,225,2,121,164,112,111,71,163,53,202,186,214,186,50,59,207,7,223,251,126, + 118,237,216,69,28,69,8,145,32,36,36,105,236,52,142,40,60,207,157,242,40,138,16,88,186,187,58,25,25,25,161,17, + 213,17,66,226,251,30,105,170,73,146,132,102,250,152,203,145,119,22,31,82,186,11,192,24,67,163,17,83,44,134,24,13, + 82,105,122,186,187,9,131,60,66,88,246,31,218,203,232,201,113,102,166,102,233,152,153,211,61,16,110,131,92,254,207,126, + 39,184,229,231,127,73,88,61,143,246,173,179,165,208,165,140,163,96,22,21,133,179,24,132,53,49,27,187,80,114,172,93, + 232,140,22,219,170,158,54,102,137,38,85,81,180,144,102,113,154,48,93,156,54,146,185,159,233,10,123,26,55,176,70,163, + 60,31,225,133,153,98,158,211,114,220,23,35,207,86,44,162,1,180,86,238,238,247,138,111,119,13,157,153,174,209,98,124, + 187,215,43,132,187,38,13,22,132,143,240,21,198,90,6,135,151,115,221,139,122,120,236,129,251,56,120,232,48,43,150,47, + 67,90,131,78,154,192,57,24,235,50,227,23,119,108,98,17,160,142,128,219,190,248,37,238,255,200,199,245,155,70,103,234, + 75,97,34,132,109,30,60,154,192,46,13,39,4,76,24,152,150,80,233,117,170,119,198,128,13,61,35,28,237,25,22,210, + 198,166,45,204,228,170,64,136,207,79,159,119,233,183,165,173,240,108,69,232,137,47,91,182,222,101,241,195,111,107,252,246, + 95,197,231,251,120,148,218,124,46,188,117,41,23,254,252,6,30,186,114,128,183,129,169,106,59,38,148,120,172,31,182,237, + 254,195,63,153,62,180,103,39,82,228,49,153,49,149,37,197,24,231,88,100,165,162,49,55,199,71,223,243,30,226,90,68, + 169,212,65,165,214,32,54,134,84,27,124,207,71,41,15,164,32,213,174,147,73,163,132,98,190,68,79,103,47,7,247,31, + 68,9,69,224,5,8,43,240,164,162,144,203,103,120,129,115,220,83,158,36,181,9,81,26,97,208,104,171,209,104,82,82, + 240,140,243,32,178,146,92,46,164,191,127,128,165,35,203,81,184,0,196,113,66,241,69,48,252,194,235,188,55,252,206,111, + 8,146,170,243,50,178,30,210,26,164,204,66,126,229,226,150,66,186,213,176,84,8,225,33,240,129,16,107,189,150,105,152, + 108,117,42,58,139,220,177,153,69,109,19,59,106,154,218,122,24,60,180,144,24,164,91,231,11,201,233,213,40,179,226,192, + 229,198,91,33,17,82,144,70,117,202,19,167,152,31,27,165,50,126,146,104,242,20,233,236,12,186,86,197,54,195,250,172, + 205,46,186,208,197,22,101,161,197,86,200,5,172,78,200,236,87,44,40,231,91,133,192,178,224,55,36,178,96,78,43,90, + 126,207,2,167,231,50,210,71,120,190,27,155,76,132,213,117,210,198,28,141,218,4,158,109,112,197,37,151,81,204,151,120, + 252,209,173,212,27,41,126,88,112,63,35,43,232,74,137,236,6,34,90,36,204,230,50,194,26,205,155,127,242,21,252,194, + 255,252,25,188,82,206,134,16,9,24,77,224,113,3,247,43,120,226,48,28,30,132,185,17,208,62,139,12,233,173,37,112, + 218,170,103,232,171,82,99,158,245,227,172,29,208,217,138,16,60,255,58,161,255,44,197,71,2,149,147,85,118,254,212,189, + 116,92,220,199,69,219,166,248,6,144,51,214,8,37,231,45,118,98,201,177,195,51,31,253,173,183,182,255,247,15,189,55, + 236,110,47,98,90,35,8,40,1,149,249,89,190,248,233,219,104,43,150,8,194,144,125,251,15,80,40,148,90,249,214,190, + 23,16,37,49,82,10,124,207,167,45,95,96,227,134,141,220,244,162,155,40,21,139,28,58,112,144,167,119,238,98,104,104, + 152,222,222,94,226,36,65,74,141,82,210,249,14,103,23,180,84,206,129,49,73,157,57,173,82,30,86,24,18,163,9,189, + 0,99,52,74,41,58,58,58,73,211,148,106,165,202,204,244,36,199,144,94,233,77,175,84,191,247,215,127,156,217,136,153, + 204,144,75,101,0,111,102,237,102,4,167,231,172,187,24,229,197,227,202,226,116,27,219,180,171,48,77,252,102,241,154,91, + 60,99,196,113,205,136,229,76,97,168,205,112,35,97,89,180,165,202,222,99,133,54,124,47,164,49,63,79,189,58,75,195, + 90,60,207,119,5,48,12,145,126,128,244,60,60,47,64,249,185,204,175,91,101,171,109,88,112,247,182,78,203,150,61,167, + 166,62,94,176,32,1,81,205,239,21,22,132,6,145,96,77,226,182,97,90,211,168,167,36,141,8,157,38,160,83,116,154, + 160,20,40,225,196,201,198,8,206,219,188,153,142,82,59,15,62,248,16,23,92,176,153,174,238,78,82,157,58,75,143,172, + 35,115,55,22,78,103,61,91,139,77,234,92,243,202,91,213,238,37,75,75,91,255,226,29,35,107,118,236,223,220,1,7, + 19,56,30,194,252,17,72,255,12,231,16,250,19,56,83,57,128,224,251,232,78,188,111,211,17,62,47,139,208,127,4,192, + 249,91,22,157,156,135,40,249,168,188,231,200,138,117,205,204,35,19,236,124,100,66,108,132,224,103,160,24,91,150,234,212, + 92,154,131,181,39,160,120,255,254,125,234,186,167,119,112,213,21,87,161,117,234,140,57,37,212,231,102,121,232,222,123,200, + 133,1,231,157,119,9,191,244,171,191,157,141,88,13,18,157,32,4,164,169,118,126,49,64,71,169,141,43,175,188,138,203, + 47,191,12,33,36,213,106,157,161,145,37,244,246,246,243,212,182,167,16,66,48,60,50,66,154,166,232,38,111,196,146,233, + 205,92,247,97,140,193,247,125,247,166,213,6,229,123,153,133,105,198,164,149,130,92,46,207,192,96,63,213,234,44,155,54, + 175,229,111,222,241,215,162,173,61,143,77,51,210,27,11,192,110,19,225,104,25,58,103,238,132,153,68,124,209,90,62,89, + 4,183,152,86,113,49,42,115,17,68,182,210,39,220,159,23,214,241,130,133,173,90,211,155,199,102,27,42,87,188,52,146, + 5,162,162,200,254,134,12,80,133,28,197,48,135,95,244,153,154,156,194,88,67,33,204,19,71,17,38,106,184,130,128,2, + 2,60,79,162,60,137,242,37,158,167,50,16,223,98,140,64,72,31,229,185,104,63,33,165,219,236,53,253,160,141,37,19, + 108,145,38,17,113,28,147,164,13,162,168,130,213,105,182,197,116,60,48,79,228,8,252,2,161,151,35,110,104,166,166,102, + 152,157,155,102,174,54,65,84,143,178,85,190,102,199,142,237,92,121,213,21,173,232,105,41,188,214,117,189,32,204,93,136, + 10,50,22,26,213,26,231,92,124,161,232,123,207,219,219,238,251,179,183,95,60,242,249,187,109,31,80,131,59,95,10,251, + 246,67,244,1,92,142,88,9,231,2,177,49,137,184,81,72,106,194,146,96,159,219,88,158,197,69,200,26,184,240,69,63, + 218,34,212,44,62,245,72,243,218,223,123,254,23,159,179,105,254,199,222,191,139,173,119,28,166,109,46,230,10,231,129,227, + 165,144,31,128,238,105,24,206,195,106,15,206,155,131,139,239,246,212,57,201,27,95,218,253,143,127,244,251,106,245,178,149, + 24,147,56,113,32,150,168,90,225,169,199,30,69,38,49,47,184,230,26,62,245,233,59,56,114,228,56,202,47,160,211,20, + 165,36,105,154,98,173,37,77,52,109,197,60,151,92,114,49,87,94,121,5,214,66,154,26,108,38,84,244,130,128,11,183, + 92,196,222,189,123,57,124,248,48,43,86,174,196,36,177,3,174,165,192,195,203,88,183,238,46,154,166,105,182,69,81,206, + 151,90,138,140,105,11,105,10,81,20,227,123,138,246,206,18,191,246,214,95,163,163,179,3,155,214,79,67,102,69,203,112, + 43,251,63,35,51,112,52,91,23,55,85,18,139,41,130,217,158,222,54,67,129,155,104,188,144,8,171,78,147,97,156,222, + 1,217,204,59,121,193,176,127,161,11,50,89,244,241,98,31,48,231,182,108,179,11,19,25,16,148,250,233,180,121,30,248, + 198,215,137,170,53,206,219,120,14,165,66,158,188,23,146,154,132,88,87,73,106,154,200,90,132,84,153,255,15,72,169,48, + 169,118,91,69,213,202,115,59,29,196,182,26,157,197,30,88,107,49,198,253,59,87,44,148,243,254,17,1,141,40,98,174, + 58,195,244,244,33,198,70,79,186,227,236,251,116,119,119,209,213,217,73,208,231,152,238,107,215,175,33,77,83,234,245,26, + 129,159,253,62,165,178,209,107,1,220,151,82,34,68,182,17,203,10,118,163,94,161,191,163,141,151,255,213,219,114,183,231, + 131,75,249,196,157,178,31,152,150,66,189,205,216,189,1,212,255,21,23,48,80,1,142,77,28,197,122,62,151,44,93,70, + 49,151,107,117,231,205,71,156,234,239,189,0,45,46,66,79,126,197,109,199,126,84,43,122,55,118,73,162,72,243,154,255, + 245,13,238,121,226,249,91,124,154,50,12,223,157,36,241,83,174,169,102,7,200,198,190,89,191,109,223,172,15,228,87,65, + 167,134,190,192,37,63,172,50,176,110,10,86,31,47,230,151,151,175,187,112,96,203,127,251,153,224,69,47,127,25,97,32, + 51,191,98,139,20,6,29,215,217,189,253,41,26,213,42,231,158,179,129,201,137,105,62,251,185,59,220,77,52,78,29,153, + 76,90,180,78,17,66,225,41,197,198,13,27,185,225,134,27,72,146,20,157,9,13,201,124,117,76,166,13,218,176,97,3, + 39,78,156,96,122,122,138,246,142,14,146,36,193,243,188,86,209,81,74,225,123,62,22,75,24,230,78,187,147,42,41,73, + 83,157,17,24,107,76,207,76,240,147,111,121,35,107,214,175,194,196,53,7,160,47,6,123,79,91,90,57,194,159,148,106, + 1,111,22,103,168,220,173,92,100,163,145,97,44,52,173,80,23,143,89,139,137,118,180,182,88,66,184,49,47,91,136,45, + 116,69,214,100,79,193,169,188,155,58,168,38,171,24,229,64,92,99,60,194,98,39,87,95,247,34,62,127,219,109,188,227, + 159,222,197,213,87,92,134,77,18,74,109,5,186,251,122,233,236,234,34,151,207,101,5,195,98,181,198,88,75,16,8,68, + 170,177,54,117,4,71,99,92,184,99,166,162,183,139,214,248,70,184,174,211,104,65,212,72,152,153,157,97,98,124,130,180, + 150,16,199,117,188,64,82,106,47,177,116,168,159,174,238,118,194,156,27,249,82,29,56,177,170,214,164,105,140,64,100,57, + 242,142,211,149,218,20,223,247,179,162,227,116,97,14,71,116,12,121,79,10,82,99,80,158,79,172,99,66,47,228,250,223, + 249,149,240,35,19,99,151,108,185,123,43,61,198,114,80,96,126,205,178,175,2,141,71,112,38,124,6,248,234,232,1,182, + 206,141,211,155,47,160,179,194,96,172,37,244,20,47,60,127,133,99,219,159,165,96,124,199,134,100,63,106,158,80,171,248, + 196,134,87,61,143,139,143,205,10,207,16,112,37,120,69,232,152,128,174,45,16,10,144,167,32,167,160,87,66,183,20,244, + 24,203,176,133,37,51,176,108,174,32,135,14,175,236,239,111,187,225,230,210,85,175,127,179,220,124,233,133,4,94,1,155, + 156,194,164,22,43,2,84,230,5,124,96,247,110,162,74,153,101,75,151,225,249,57,30,120,232,235,28,63,57,138,31,230, + 136,35,131,49,154,36,137,81,217,93,111,201,146,165,188,228,37,47,67,8,137,214,6,41,21,82,42,226,56,113,155,21, + 107,144,74,18,197,17,253,3,253,76,76,78,50,57,57,73,119,119,55,58,91,163,54,127,22,214,226,7,65,246,51,220, + 155,27,4,105,170,1,131,54,49,213,250,60,55,220,124,61,151,92,117,25,38,174,184,81,71,102,106,245,236,130,63,29, + 58,56,195,102,35,179,134,16,173,113,141,108,3,40,22,81,110,154,32,242,217,155,254,211,229,23,217,103,105,155,200,146, + 163,52,160,145,210,100,18,23,223,121,130,139,69,72,141,176,173,142,200,8,141,176,150,32,231,243,186,183,188,145,77,155, + 214,50,126,242,56,133,192,99,226,212,56,99,123,198,17,66,146,207,23,80,50,160,84,106,163,171,187,7,41,37,81,84, + 35,12,36,133,98,17,233,41,167,50,207,70,48,79,9,7,196,167,138,153,185,89,198,199,199,49,22,38,38,198,25,27, + 27,5,97,89,58,50,204,234,21,195,20,139,75,16,170,9,44,187,206,197,24,137,181,6,99,146,214,177,116,161,149,174, + 139,107,18,16,83,215,250,180,58,85,215,1,137,204,192,222,44,12,79,214,245,237,81,220,160,51,95,224,53,127,250,7, + 193,39,254,215,219,46,185,252,222,237,116,91,24,21,232,255,105,217,63,0,241,57,110,60,3,96,162,86,97,162,86,57, + 237,28,228,124,197,21,254,48,42,239,60,134,190,231,2,244,163,44,66,22,200,7,146,70,244,252,46,62,38,43,60,123, + 64,14,66,113,37,44,77,224,252,60,108,106,64,151,113,240,100,62,133,190,26,116,54,160,189,177,172,191,39,89,190,188, + 45,190,96,93,225,220,87,190,70,94,125,238,58,70,250,7,92,102,130,174,145,234,4,41,2,16,26,33,52,73,189,194, + 145,189,187,153,61,53,78,127,223,0,105,106,40,215,98,238,252,202,61,68,137,110,145,118,149,244,48,104,164,112,42,242, + 107,174,185,150,158,238,62,170,213,42,74,121,45,224,209,243,92,17,106,94,228,72,137,54,134,158,158,30,198,198,198,208, + 90,227,251,62,113,28,103,186,176,212,141,6,8,148,148,142,187,34,5,214,100,133,201,151,204,204,205,115,209,197,231,113, + 243,173,55,162,147,154,219,250,100,119,221,103,51,142,63,19,57,88,144,88,44,30,85,78,231,250,180,92,126,196,194,144, + 181,96,193,209,140,10,48,173,177,102,1,164,182,8,227,10,101,101,118,154,156,47,241,252,16,25,128,80,138,211,242,115, + 178,223,34,113,199,95,120,25,39,74,39,156,179,229,2,84,8,147,227,99,108,188,96,51,36,142,115,19,71,41,213,106, + 149,249,249,10,251,247,63,77,181,86,165,86,109,96,109,64,106,52,65,62,231,214,212,97,64,62,23,162,68,70,50,52, + 144,36,17,66,64,177,173,64,161,144,99,227,57,107,232,235,235,166,88,204,163,141,161,158,38,78,63,5,72,233,35,164, + 69,72,183,217,84,173,132,215,172,208,24,155,141,113,162,213,145,25,52,86,187,142,71,74,153,121,253,100,99,104,182,62, + 151,6,12,26,172,32,214,13,250,187,186,120,205,159,254,126,112,199,111,191,109,203,197,15,238,138,11,150,114,44,168,236, + 183,28,95,147,221,42,158,205,95,171,22,120,217,120,44,206,74,67,248,174,45,89,127,216,69,168,89,124,106,13,205,107, + 126,239,254,231,101,241,105,190,244,113,16,47,133,48,129,193,58,156,155,131,203,27,112,201,231,61,54,219,13,203,58,54, + 109,88,139,10,115,178,109,176,223,43,14,244,169,225,213,43,68,247,134,245,44,93,185,134,82,190,23,80,36,204,128,174, + 96,117,136,81,138,84,54,240,76,17,37,60,180,46,51,57,54,74,84,157,163,167,173,136,137,99,194,98,23,59,118,238, + 99,215,222,131,72,233,99,18,231,100,40,148,69,38,144,232,148,11,46,184,136,145,165,203,152,171,84,156,130,218,44,208, + 242,141,113,178,11,132,112,64,179,204,86,199,214,50,56,56,232,248,66,66,180,64,103,165,36,113,156,16,248,97,166,145, + 106,70,12,91,2,63,68,155,26,221,189,93,188,248,101,183,32,133,37,205,182,46,205,78,166,181,133,130,69,110,132,11, + 43,240,197,199,244,116,165,148,93,64,212,178,191,54,234,13,140,73,241,2,133,239,231,51,69,183,201,138,141,62,61,4, + 80,184,146,37,22,17,21,149,144,8,147,80,158,42,35,165,68,169,60,97,91,9,145,203,163,194,124,11,204,118,227,161, + 68,216,180,213,137,89,107,209,169,97,253,230,75,240,194,93,140,31,59,196,146,158,54,71,233,203,41,242,249,78,250,250, + 186,193,46,37,77,99,210,52,65,199,16,197,17,73,154,146,36,49,198,106,226,56,194,87,110,52,245,51,87,130,32,116, + 254,74,190,231,57,145,177,49,164,73,138,167,4,158,231,103,128,52,40,105,157,32,213,64,170,117,70,207,200,172,52,76, + 179,112,103,93,163,176,142,74,145,166,89,23,156,58,199,4,41,51,247,129,12,7,202,60,177,155,61,160,198,16,39,49, + 3,125,3,220,248,231,127,152,123,248,87,254,191,139,46,216,126,120,202,90,38,58,160,254,183,48,121,5,216,194,179,92, + 27,255,62,210,205,231,66,159,103,51,5,253,158,60,161,23,23,33,107,224,194,155,127,48,69,104,113,241,121,229,239,126, + 131,175,111,61,245,188,235,120,74,56,141,215,227,16,52,160,91,194,234,28,92,106,224,170,195,176,121,199,133,231,46,217, + 244,171,63,81,120,217,173,47,99,160,103,192,129,182,162,105,146,41,1,141,38,198,152,121,140,54,72,5,82,134,46,251, + 93,128,103,4,216,8,140,97,110,252,56,181,242,20,109,197,54,172,129,212,104,144,130,47,221,249,32,243,243,49,97,62, + 135,240,193,232,4,147,26,148,231,81,44,229,185,224,188,243,169,55,234,20,138,153,37,71,118,199,109,105,159,132,116,171, + 253,51,174,119,41,37,97,16,158,230,141,99,12,4,65,136,177,169,75,35,213,22,79,42,180,244,48,66,18,155,136,87, + 191,246,37,132,161,64,235,4,37,189,76,104,9,70,8,148,16,11,155,31,107,29,231,166,85,22,100,6,248,106,36,41, + 88,207,221,91,69,132,65,96,200,35,172,65,89,3,196,68,213,41,170,115,83,180,229,115,232,32,68,230,219,80,65,9, + 229,23,90,64,175,21,26,105,23,118,97,182,137,237,88,199,142,46,22,59,137,171,13,60,37,49,58,166,58,125,202,17, + 23,189,128,32,215,70,144,43,160,2,31,25,184,115,34,132,116,204,243,102,183,104,45,171,214,109,34,138,99,78,156,58, + 202,96,95,31,113,220,192,87,162,101,221,33,149,64,90,137,10,45,126,46,0,2,132,40,44,216,189,102,224,126,146,141, + 178,198,58,207,30,112,96,180,209,238,247,89,109,80,74,162,164,66,42,55,198,217,236,123,108,230,138,208,202,32,147,14, + 103,210,58,93,24,149,141,205,70,63,145,173,227,197,34,19,126,131,176,25,193,85,100,185,101,86,58,59,14,43,208,81, + 194,210,229,67,164,127,246,191,58,182,254,244,111,93,113,254,228,220,108,21,230,45,60,60,47,68,185,240,44,23,255,233, + 29,233,115,84,128,22,23,161,31,20,48,221,196,124,234,177,225,53,191,119,255,243,174,248,88,96,30,104,3,245,50,104, + 159,129,85,121,184,72,192,165,71,225,162,3,195,35,171,54,254,218,207,181,253,198,207,191,89,245,118,14,0,25,167,195, + 58,203,4,157,1,192,50,107,79,221,159,5,18,149,113,80,82,48,6,105,5,66,106,102,39,198,168,204,76,161,178,107, + 39,49,134,48,95,224,233,93,251,120,224,193,71,200,229,242,88,44,73,154,96,113,188,144,56,142,185,250,234,107,241,125, + 143,70,189,142,167,20,86,186,213,185,53,6,43,37,202,115,227,88,148,38,40,207,195,164,89,14,185,82,173,55,107,189, + 94,207,214,199,153,12,32,3,173,211,36,109,201,50,130,192,99,124,106,156,235,111,186,156,190,254,126,146,184,134,151,141, + 122,205,206,71,102,12,240,150,162,92,186,55,190,182,180,156,139,17,6,105,125,192,50,63,55,138,141,35,2,191,157,160, + 208,129,10,18,231,101,44,36,214,8,138,109,29,232,218,60,42,53,216,184,70,101,118,30,153,243,9,219,58,200,21,123, + 16,94,9,33,60,76,22,33,217,12,2,180,100,90,55,173,81,133,18,181,40,225,11,183,223,197,45,55,191,136,182,66, + 142,52,170,161,107,117,170,229,6,101,41,240,194,0,21,4,120,190,115,144,244,131,0,233,41,132,82,110,181,109,13,27, + 54,110,100,91,181,204,212,116,153,238,142,34,164,177,99,107,219,5,203,179,56,141,241,60,229,36,31,89,81,55,214,102, + 76,118,213,234,38,69,86,224,148,146,11,86,105,86,32,133,211,229,185,163,230,176,42,87,180,28,165,192,99,193,122,196, + 66,75,231,101,140,235,142,132,114,91,75,99,22,114,140,28,30,232,192,112,163,227,172,19,202,18,102,149,200,126,183,163, + 78,164,115,49,235,55,108,98,230,143,127,123,100,255,255,252,131,235,214,197,102,84,195,216,209,192,219,51,16,167,137,176, + 150,249,124,192,124,16,32,173,37,159,106,202,129,231,98,204,4,207,109,1,250,65,142,99,205,226,211,72,12,175,254,221, + 231,23,230,211,180,214,120,41,136,9,40,120,48,226,193,230,18,92,53,1,151,62,220,217,190,33,247,250,91,187,223,240, + 255,253,154,88,179,226,28,208,13,108,60,237,66,3,133,204,138,131,68,102,109,252,2,101,159,214,197,189,248,0,74,9, + 213,185,57,42,51,83,232,196,96,53,248,94,182,209,193,227,158,123,31,100,106,118,146,124,169,3,107,154,124,29,73,18, + 199,44,95,177,156,222,222,30,26,141,6,237,165,118,124,169,136,162,24,47,155,255,91,9,161,82,18,134,33,66,72,82, + 145,144,36,77,162,161,211,139,197,218,16,71,13,167,128,111,42,240,133,68,102,172,92,97,161,92,153,165,171,43,207,5, + 231,159,139,77,19,60,233,157,238,134,218,234,58,50,37,185,200,36,180,214,145,41,143,31,62,142,50,150,145,165,125,104, + 13,74,5,120,70,83,173,205,145,154,6,186,86,165,216,149,71,133,237,164,4,24,169,240,130,54,74,93,35,124,234,67, + 31,228,130,13,231,176,97,205,106,106,233,12,245,233,57,226,234,28,42,232,33,87,234,70,5,42,187,168,220,69,107,16, + 104,44,66,73,148,181,116,13,143,48,93,174,240,206,119,253,43,151,95,186,133,75,46,56,159,48,40,96,51,191,101,157, + 52,72,226,42,66,204,99,90,84,33,129,31,230,200,23,10,228,11,69,84,24,112,222,69,91,216,250,205,7,169,213,26, + 116,20,242,206,61,50,203,100,107,130,189,89,127,114,122,240,97,38,18,150,25,174,70,147,40,152,241,157,68,43,46,58, + 219,46,105,183,73,211,214,249,73,35,101,86,220,105,173,192,23,19,12,23,127,246,60,119,99,106,110,24,157,175,145,114, + 231,196,72,76,10,73,146,18,132,57,114,249,60,190,239,147,234,20,164,64,153,2,74,5,92,255,250,215,243,213,195,71, + 87,86,254,250,221,87,23,96,255,140,16,147,123,124,239,212,80,156,152,59,215,47,231,238,117,75,200,197,9,22,75,212, + 168,146,79,52,4,242,185,47,64,63,168,34,20,20,125,230,107,9,111,120,30,21,159,230,203,57,23,72,193,239,131,158, + 58,108,204,193,149,21,184,242,126,212,102,251,202,155,6,95,243,135,111,245,207,187,224,82,55,92,153,26,146,4,45,93, + 210,128,27,50,196,34,81,35,139,20,214,42,187,91,101,122,40,233,220,232,116,163,78,101,106,18,27,215,51,149,182,227, + 199,4,97,64,173,150,240,248,227,187,16,82,16,69,13,103,189,137,91,151,231,243,121,150,142,44,101,118,102,22,63,8, + 24,236,31,68,167,14,227,105,110,179,172,181,153,118,201,117,94,105,156,128,117,56,131,49,6,99,45,137,54,148,218,219, + 153,58,213,112,220,34,207,207,108,64,4,198,186,87,161,4,204,205,159,226,101,215,223,154,113,12,229,66,113,21,153,118, + 201,90,164,205,46,46,148,147,38,52,191,142,199,212,196,36,127,253,39,127,206,235,127,236,101,220,250,146,27,48,8,114, + 126,129,163,99,71,232,234,76,41,132,41,181,169,57,188,182,24,194,118,68,152,39,5,130,246,94,242,157,3,252,201,95, + 189,157,151,191,244,22,174,190,246,114,122,250,186,104,68,85,210,250,113,210,234,4,190,151,35,95,106,71,22,243,8,207, + 203,52,87,142,123,172,177,228,10,69,174,190,230,106,226,242,44,91,183,110,101,223,211,59,89,187,118,29,171,87,174,166, + 189,171,45,243,172,209,200,236,60,10,161,48,198,146,212,42,36,181,26,85,53,67,174,80,32,44,182,177,97,253,6,118, + 110,125,146,80,121,174,131,177,110,205,110,108,243,220,36,173,237,94,83,24,108,22,5,38,234,212,180,228,18,45,81,109, + 230,223,212,204,184,215,153,38,183,169,225,18,194,97,84,74,41,7,174,167,174,232,45,246,187,118,92,48,147,177,225,131, + 214,249,215,70,131,117,227,153,39,20,82,250,156,56,118,146,71,30,125,146,217,217,10,197,82,7,113,234,92,17,139,82, + 153,216,243,101,174,163,157,74,190,83,153,82,238,220,155,42,141,11,114,198,110,219,106,236,212,61,74,154,163,3,221,20, + 147,52,27,83,93,167,103,197,247,65,68,252,110,139,144,49,112,209,247,138,9,41,1,165,0,121,231,33,222,254,190,29, + 220,115,100,254,121,131,243,120,192,86,8,87,65,135,129,145,8,46,12,224,5,79,192,101,135,46,58,103,213,213,111,251, + 205,220,77,183,190,132,130,10,177,73,12,194,67,202,16,43,3,55,70,145,102,155,6,90,2,70,219,132,69,133,61,205, + 200,202,98,192,164,96,83,230,167,166,209,81,132,176,6,147,106,164,200,129,48,4,65,158,199,30,223,197,209,99,163,89, + 158,151,165,16,134,164,58,37,142,35,86,173,88,65,224,5,196,141,4,129,108,17,7,155,250,159,230,22,68,91,227,120, + 27,25,15,136,76,221,78,147,109,108,28,95,168,84,44,146,38,49,158,39,50,31,99,31,163,13,185,32,96,98,242,36, + 55,223,122,61,155,206,63,7,19,71,144,173,248,23,2,134,229,34,43,13,15,211,50,252,113,24,152,37,101,195,166,245, + 188,229,167,222,204,206,173,59,248,192,191,126,136,55,188,233,21,148,43,227,124,237,158,187,217,180,97,21,43,87,44,161, + 183,111,144,242,244,12,86,149,233,232,233,197,43,228,177,218,240,226,87,190,10,21,132,116,182,133,220,113,215,55,24,30, + 232,101,203,69,231,208,81,10,49,105,132,174,55,168,68,117,100,181,64,190,173,132,44,228,241,51,233,8,128,82,30,58, + 142,232,40,42,94,250,226,23,50,55,51,207,209,35,199,217,190,107,27,198,26,114,69,159,66,49,79,160,60,172,5,223, + 15,41,149,218,41,22,10,228,194,34,86,8,226,122,131,36,113,30,203,75,70,150,114,96,255,62,150,44,29,65,74,157, + 101,185,11,172,116,36,64,99,178,77,85,54,146,138,150,232,55,163,14,88,209,74,181,16,66,100,227,58,45,110,77,166, + 241,200,192,125,215,197,164,38,201,156,10,36,210,247,22,156,32,141,113,124,41,211,84,214,139,133,200,33,75,107,75,38, + 1,99,171,88,227,179,100,89,63,93,189,215,179,103,247,33,238,190,231,126,238,184,235,94,150,159,154,173,188,30,100,5, + 194,57,72,61,33,170,195,74,140,165,16,201,56,49,43,192,218,165,253,28,236,235,66,87,170,174,248,26,251,109,141,129, + 212,203,87,108,226,185,42,66,82,193,137,189,238,239,3,155,3,103,215,9,103,221,255,63,131,148,228,75,84,106,137,62, + 127,128,169,191,122,132,187,102,35,30,255,1,22,150,115,28,79,135,47,0,215,1,131,208,138,13,241,128,163,184,236,247, + 141,64,63,168,97,232,172,194,6,9,215,9,184,101,14,110,250,90,33,127,149,255,214,95,89,241,75,255,242,14,111,203, + 249,151,184,187,154,6,33,83,172,172,162,69,138,176,2,165,113,130,165,22,249,77,52,47,203,150,36,193,178,192,203,16, + 214,32,173,161,60,53,73,101,118,26,29,71,88,171,29,160,168,20,169,177,120,65,145,143,124,228,223,217,181,239,32,66, + 185,55,162,146,146,70,163,193,242,101,203,24,26,26,162,81,143,72,226,24,223,243,25,25,30,161,163,163,163,181,209,106, + 90,115,10,225,124,166,155,212,27,99,109,230,247,99,81,205,55,167,148,8,4,73,28,81,40,228,220,29,93,187,72,159, + 74,121,150,21,43,135,185,238,69,87,67,90,205,236,49,112,41,7,210,100,177,55,205,77,140,187,176,164,16,206,12,29, + 119,193,10,64,73,159,153,201,41,94,112,229,69,212,171,101,142,30,59,65,169,163,141,70,82,101,205,138,213,236,221,123, + 132,147,227,19,44,93,178,20,133,161,94,153,67,160,221,230,40,215,70,163,81,65,165,13,174,190,250,18,166,167,78,241, + 228,227,219,104,52,160,189,171,159,160,24,184,245,115,98,168,215,42,164,141,134,203,140,80,14,232,23,82,49,123,106,20, + 91,155,65,40,139,239,91,6,135,135,24,26,30,166,212,222,70,88,200,17,132,1,18,231,201,164,181,102,126,126,158,217, + 217,121,198,199,79,49,57,57,73,189,94,35,142,234,40,41,41,22,157,217,255,216,216,40,93,93,93,24,92,87,226,232, + 0,166,101,231,138,16,142,46,161,53,82,73,247,125,198,32,61,183,20,176,89,247,104,23,235,227,50,230,183,109,158,39, + 200,86,236,11,139,3,22,165,125,216,211,178,202,68,171,104,181,206,107,147,243,36,5,210,115,14,11,82,66,152,83,44, + 95,57,204,13,55,92,201,245,55,94,137,215,91,244,106,115,243,114,249,212,60,23,91,42,235,96,95,175,177,15,105,120, + 200,8,246,140,64,121,87,185,202,147,161,207,234,66,64,109,182,66,96,53,117,105,241,148,68,158,225,198,8,240,226,55, + 252,236,115,87,128,90,69,200,19,156,218,111,216,244,181,71,73,139,48,94,8,232,233,201,35,197,233,133,200,97,15,224, + 121,64,168,136,235,154,131,255,223,55,136,63,187,143,156,117,145,189,143,253,8,10,80,115,217,171,128,30,240,11,78,30, + 177,202,131,75,5,188,164,10,183,30,201,5,87,140,190,244,166,245,55,252,243,223,119,188,254,167,222,76,33,144,152,36, + 1,27,33,189,196,109,147,132,231,114,233,49,8,210,86,139,221,60,80,34,147,83,52,137,59,198,106,87,72,140,70,232, + 148,70,121,142,249,217,105,116,26,97,172,70,91,199,225,72,77,138,16,1,115,229,132,127,123,223,71,168,214,27,24,43, + 104,107,111,7,99,220,232,181,108,153,3,142,149,135,239,135,128,96,96,104,136,190,254,62,7,122,74,143,32,112,1,131, + 152,172,0,9,209,42,100,162,73,39,206,86,232,82,56,223,231,35,71,14,35,149,32,137,99,138,133,18,38,49,204,205, + 157,226,197,47,190,14,105,106,84,102,167,168,205,206,81,47,207,81,153,159,162,94,157,195,152,212,109,210,50,81,169,176, + 26,27,87,136,203,179,196,181,121,132,73,128,20,233,183,51,63,51,71,18,31,103,213,138,33,226,196,99,247,222,131,116, + 118,118,210,217,81,164,127,160,135,83,167,198,121,240,129,135,24,30,90,66,87,103,23,229,242,60,198,166,40,31,6,6, + 6,216,187,243,105,186,58,66,134,6,186,233,235,237,101,108,108,150,221,251,14,82,141,27,228,242,57,242,94,232,88,193, + 113,76,163,82,6,163,81,158,68,6,62,243,83,147,212,231,103,200,229,115,8,105,209,58,198,104,75,144,11,201,5,1, + 133,92,142,66,230,137,93,42,21,233,104,111,163,152,47,208,214,94,194,243,157,128,180,86,175,49,61,53,205,228,169,9, + 124,223,167,82,169,80,107,212,41,149,10,24,173,23,121,240,100,55,58,165,88,236,53,100,164,235,58,117,147,37,173,84, + 171,224,104,171,91,27,43,247,217,197,229,144,69,243,8,68,102,60,118,250,67,46,26,197,154,221,206,153,141,192,2,77, + 34,4,235,186,87,173,13,105,26,145,36,13,58,219,10,92,124,249,37,98,228,165,47,149,135,86,13,201,3,135,14,89, + 127,186,220,200,195,148,128,83,169,16,83,5,168,30,135,180,227,212,12,175,59,118,138,251,246,159,224,156,64,114,168,191, + 131,208,242,172,5,232,185,143,102,22,160,60,75,254,155,39,217,122,223,1,62,210,87,224,231,94,187,158,210,149,195,12, + 175,232,32,150,2,153,24,172,208,164,13,152,154,134,162,136,40,253,221,67,76,111,61,197,200,143,24,231,105,184,15,5, + 20,151,195,146,8,46,16,112,241,60,156,51,26,248,107,219,111,189,161,239,210,183,254,98,113,253,149,87,73,95,42,116, + 50,143,80,2,37,52,86,65,34,20,2,137,167,21,34,177,88,37,137,125,80,26,148,21,167,3,74,66,96,141,118,46, + 131,25,200,40,17,36,245,58,243,83,51,217,70,202,160,141,118,88,2,96,137,41,20,123,121,228,177,237,76,78,78,227, + 135,62,104,133,231,249,164,113,196,234,213,171,29,142,22,248,20,10,5,199,245,16,34,219,130,168,12,60,150,72,37,145, + 218,44,128,224,144,37,97,58,44,161,121,193,232,196,141,15,66,74,230,231,231,105,107,203,83,106,43,33,165,228,228,169, + 19,68,141,121,172,142,168,204,78,162,27,13,140,105,218,196,106,188,208,163,26,85,9,148,71,80,232,68,8,69,125,110, + 154,250,236,56,202,104,12,150,56,200,97,165,194,47,212,8,114,134,250,20,68,94,68,255,96,129,199,182,143,17,230,125, + 36,18,29,87,56,119,211,42,60,47,228,67,31,191,141,203,46,187,140,203,175,188,136,180,94,167,82,63,76,231,224,74, + 150,175,63,159,253,71,118,178,102,249,32,158,74,57,111,211,48,147,83,115,28,62,60,198,212,232,36,3,3,61,244,247, + 116,211,221,213,78,206,247,169,207,205,209,72,26,116,122,18,235,73,234,177,162,77,248,142,252,137,113,196,195,84,18,40, + 15,79,41,180,72,29,142,150,73,83,124,169,72,109,138,231,229,51,128,55,68,73,143,52,49,204,205,205,83,175,71,204, + 150,231,24,24,236,115,199,189,25,211,179,136,155,36,90,148,240,108,21,46,29,46,36,69,115,92,166,101,38,223,148,84, + 156,206,161,114,93,171,181,214,1,255,176,40,117,195,182,64,108,33,84,166,219,91,48,34,91,176,4,177,153,7,146,251, + 253,22,227,10,28,18,171,33,78,12,105,84,163,83,5,188,236,149,183,50,122,197,150,194,214,79,126,97,237,161,15,255, + 123,199,154,153,202,64,151,181,253,99,240,192,74,216,117,94,170,167,147,84,39,41,208,54,58,67,223,138,126,234,249,80, + 72,125,118,38,208,115,218,1,53,47,42,105,45,231,31,223,199,184,78,121,186,150,80,121,108,140,187,62,187,143,158,221, + 211,4,93,33,141,130,79,41,12,184,243,253,17,223,252,178,34,248,210,33,214,238,220,207,97,183,214,38,0,238,255,33, + 117,64,159,7,174,117,99,22,243,160,166,161,93,194,50,31,46,77,224,230,10,188,100,2,174,180,47,185,97,253,133,239, + 254,219,254,23,252,214,175,230,6,151,175,20,202,196,96,211,214,93,199,10,133,144,62,194,42,164,49,72,147,186,187,91, + 203,250,32,91,129,90,155,201,1,12,214,68,164,81,13,145,52,16,94,136,231,121,152,70,141,217,137,113,210,168,6,164, + 104,147,130,132,52,50,40,44,97,33,135,80,37,62,240,193,127,103,223,129,195,248,97,128,49,78,159,21,4,30,203,150, + 45,167,90,169,129,21,52,26,17,181,90,13,63,240,233,233,235,101,96,112,8,132,179,147,80,202,61,23,231,51,166,50, + 8,78,46,152,97,129,19,152,10,65,144,11,73,117,194,216,232,40,131,195,67,248,126,224,240,159,48,196,90,216,191,255, + 8,86,75,134,135,187,48,196,120,120,40,27,184,215,232,105,194,246,62,60,47,71,90,47,51,59,121,138,70,45,97,199, + 246,221,28,63,54,202,190,61,71,169,206,59,182,116,154,166,212,203,243,148,242,10,27,25,6,122,122,40,21,139,200,64, + 129,74,209,113,66,79,95,39,171,86,175,224,115,159,189,131,123,239,254,38,231,172,63,151,174,174,18,213,202,44,131,67, + 75,216,187,247,0,158,167,241,130,132,52,54,20,115,221,244,247,119,225,231,19,198,167,78,113,228,240,40,163,99,115,212, + 106,154,82,123,39,57,63,196,214,34,230,39,103,152,175,84,233,236,40,33,209,120,153,191,182,219,248,25,60,101,240,173, + 1,5,49,17,49,113,43,93,85,10,141,18,174,75,77,211,24,41,161,173,84,164,183,183,155,174,206,118,210,36,201,116, + 95,114,193,161,17,50,108,48,91,193,227,54,163,10,133,146,178,21,61,237,198,68,167,217,50,34,3,168,165,200,70,173, + 108,89,209,106,172,79,143,153,118,133,200,129,230,82,40,100,214,237,168,236,239,74,122,40,169,50,204,73,128,72,51,135, + 2,145,25,215,137,22,93,66,102,22,33,113,163,74,177,144,99,221,11,46,147,225,181,151,183,237,139,107,75,226,61,135, + 134,59,45,189,30,132,17,164,101,79,69,126,46,72,87,87,26,102,122,178,204,236,112,15,86,10,34,99,8,172,165,106, + 29,65,245,229,63,241,243,63,216,2,52,166,83,118,102,23,247,36,208,126,188,76,238,206,67,188,225,222,195,236,220,41, + 40,141,119,65,94,49,88,158,102,197,244,24,135,126,136,5,104,67,86,120,78,2,151,128,151,64,123,2,43,115,112,137, + 132,155,107,112,235,168,20,215,153,27,174,89,119,193,223,253,69,207,101,191,251,214,252,208,234,213,194,166,113,203,50,162, + 57,199,187,109,146,104,193,170,34,235,40,76,198,217,240,154,35,142,196,89,74,152,6,113,163,76,220,168,33,133,192,15, + 243,72,229,99,146,152,185,233,9,162,90,5,97,82,140,118,65,115,113,154,34,45,46,19,94,73,70,199,230,249,208,71, + 254,157,36,117,93,68,154,26,210,56,102,227,198,13,36,73,194,220,220,92,166,160,150,45,196,105,96,104,136,225,37,195, + 173,77,138,88,36,136,212,214,224,121,30,94,118,135,116,44,95,71,114,84,153,131,98,189,81,103,122,106,138,129,129,193, + 108,125,235,188,127,218,218,59,177,214,227,240,161,19,84,171,101,86,172,90,138,78,12,74,248,72,101,192,131,124,251,48, + 158,42,18,85,167,137,27,117,254,230,255,188,147,201,169,83,12,14,247,80,43,215,153,155,158,228,196,241,221,236,218,177, + 139,137,137,73,150,45,31,33,213,41,97,40,8,60,223,17,0,173,67,231,140,142,200,229,60,182,92,180,133,35,135,143, + 240,165,47,222,65,190,208,198,224,96,15,194,54,200,229,122,216,182,237,73,86,172,26,68,39,9,214,72,18,211,160,88, + 240,24,234,233,163,187,179,11,107,53,71,78,28,100,239,129,157,104,19,145,247,3,146,56,101,122,126,150,206,142,130,27, + 19,173,117,219,46,43,16,190,202,64,122,72,172,192,88,31,172,135,20,22,107,98,140,9,176,54,196,52,77,245,173,117, + 198,111,153,20,36,73,19,140,209,100,203,242,86,209,144,139,198,34,145,37,158,52,61,168,149,116,93,167,20,77,157,150, + 69,121,94,203,199,89,8,199,106,106,222,48,220,8,230,131,53,25,21,99,209,184,101,221,54,78,54,59,46,139,35,58, + 54,237,177,141,197,247,252,12,163,84,25,83,218,117,106,142,24,155,153,193,42,247,164,141,53,164,141,152,161,129,62,214, + 222,112,173,55,187,102,121,223,190,125,251,151,250,211,229,145,18,116,91,99,101,155,239,55,172,49,245,168,30,235,246,241, + 89,202,147,243,92,121,98,154,59,78,206,240,115,39,103,88,118,114,134,77,191,249,59,63,128,17,236,91,60,252,172,184, + 236,29,173,131,158,228,226,245,43,137,236,217,55,79,5,96,89,86,144,158,227,9,145,41,160,221,253,124,239,167,160,211, + 194,18,13,235,125,56,127,10,46,60,226,123,235,195,235,175,237,191,240,87,126,62,127,238,141,215,202,48,12,177,105,140, + 142,235,25,203,212,158,150,180,41,165,2,19,103,231,218,57,20,54,205,38,69,179,213,198,96,211,24,147,212,72,163,138, + 107,171,189,16,47,95,34,149,57,60,19,83,157,155,165,58,95,70,24,157,141,102,218,109,169,210,166,5,171,32,244,11, + 60,245,212,195,76,77,207,160,188,144,212,52,28,5,223,88,114,185,28,214,66,169,216,70,24,134,173,118,61,8,67,226, + 40,33,110,36,142,222,47,100,118,103,204,146,47,140,88,72,121,200,116,67,198,51,196,73,130,242,90,217,20,244,246,244, + 44,240,75,178,21,176,214,41,74,9,122,123,135,120,234,169,253,168,32,224,133,87,93,76,117,126,194,129,233,132,120,66, + 96,26,53,66,36,183,221,241,21,250,123,114,188,254,199,94,73,154,70,136,53,110,75,103,116,157,19,199,39,57,116,236, + 20,245,40,69,121,30,154,58,164,26,79,231,28,48,171,4,136,0,173,45,82,214,120,227,155,95,194,19,79,236,228,206, + 47,221,201,241,99,199,120,193,213,151,177,254,220,45,60,112,191,230,248,145,41,134,6,122,137,117,140,23,186,142,207,75, + 99,58,218,36,29,237,221,12,175,232,160,161,83,230,230,170,108,219,181,155,217,233,121,82,93,103,229,202,129,204,195,56, + 243,104,150,62,130,16,85,112,145,53,182,150,162,210,4,207,52,0,67,148,122,238,70,35,82,20,34,19,238,186,68,82, + 99,156,83,163,144,153,53,171,36,27,129,132,235,60,180,3,124,129,214,185,114,203,129,102,188,82,214,233,224,196,170,22, + 78,147,74,180,70,173,166,45,73,22,163,172,252,108,3,37,23,162,119,50,115,163,172,163,163,21,71,100,172,93,228,104, + 32,90,9,25,206,184,126,65,38,35,51,246,126,115,175,105,5,212,107,117,132,240,184,244,214,23,137,213,87,94,214,247, + 240,251,62,118,229,248,251,63,189,124,117,181,177,170,163,214,184,39,129,251,47,132,3,59,231,107,181,234,124,205,46,113, + 114,37,214,3,179,207,229,26,254,185,126,212,129,45,192,255,206,10,197,115,253,56,4,28,6,127,47,140,0,151,249,112, + 249,20,156,183,211,87,107,210,27,175,27,188,234,127,252,66,112,249,139,110,32,231,123,24,93,67,235,90,70,18,92,164, + 79,60,51,241,160,229,18,191,144,224,233,128,66,199,227,48,81,133,56,170,101,197,37,193,15,11,168,176,128,80,62,218, + 122,212,202,83,212,102,167,145,214,162,211,20,147,17,204,146,40,118,73,150,190,203,137,210,90,241,232,227,219,72,98,77, + 16,122,104,60,164,108,160,132,79,28,167,132,97,136,181,150,40,138,92,8,97,38,32,77,146,36,139,219,1,109,221,22, + 38,77,93,145,243,148,202,182,52,11,236,89,4,156,56,126,2,207,247,233,31,26,0,11,61,189,189,45,127,161,133,196, + 5,129,84,146,36,53,12,141,172,225,209,71,118,179,100,112,136,53,171,123,73,162,42,194,72,68,90,3,155,176,111,247, + 110,234,243,243,188,225,13,47,162,94,157,65,144,67,83,201,216,185,57,134,87,140,48,180,124,136,36,169,64,154,3,36, + 158,116,121,33,90,104,231,25,40,66,23,29,100,83,26,81,149,139,46,218,196,154,213,171,184,227,75,95,229,95,255,245, + 189,92,180,101,23,107,86,159,203,158,29,219,25,236,27,6,17,115,226,228,60,163,51,101,218,58,67,218,243,237,116,149, + 138,180,151,138,4,34,33,239,215,25,238,210,76,79,205,80,141,34,210,52,6,225,186,8,41,221,152,114,114,116,156,79, + 127,230,118,110,121,237,107,57,127,195,16,186,92,37,170,186,124,52,165,12,130,26,70,72,132,8,50,198,53,248,74,144, + 26,237,28,2,172,113,221,135,176,173,209,215,100,95,211,90,59,135,69,156,48,24,32,77,12,94,224,57,6,181,21,40, + 229,116,120,58,43,140,142,62,101,23,34,118,140,105,221,240,36,194,17,21,155,140,104,235,70,54,151,31,183,128,31,25, + 187,40,245,3,131,54,73,214,253,56,125,153,151,101,192,11,156,31,146,64,57,83,53,33,50,61,95,147,34,144,82,155, + 159,165,61,23,240,162,223,249,101,127,255,77,55,173,120,234,79,255,166,123,217,99,79,13,116,67,127,29,238,91,3,79, + 143,192,84,29,210,31,8,15,232,7,241,240,128,227,192,19,56,215,181,231,74,102,150,41,119,69,8,221,22,174,138,225, + 199,238,246,197,101,83,87,93,212,251,226,223,248,53,117,253,139,111,33,244,60,76,218,192,234,104,65,108,105,113,41,18, + 139,131,229,22,100,218,88,161,178,194,211,76,182,52,78,65,173,35,162,242,28,166,81,113,216,143,159,71,228,219,32,44, + 97,132,135,50,160,27,101,202,83,167,28,215,71,39,217,29,70,56,47,31,41,145,194,195,24,167,171,154,158,169,179,227, + 233,189,248,185,208,17,5,147,20,129,197,247,20,133,124,17,173,83,188,76,94,209,244,239,177,205,162,150,69,242,72,41, + 241,60,143,70,189,209,98,222,106,227,86,193,173,13,77,150,47,222,136,234,244,233,94,4,206,200,94,107,221,42,64,158, + 231,161,124,223,69,189,56,110,49,131,35,203,185,253,43,95,231,205,111,120,9,61,29,69,44,9,73,109,26,99,12,79, + 62,177,141,205,155,55,146,36,77,95,194,8,95,228,92,241,147,130,122,162,241,101,72,177,80,36,170,215,81,162,136,69, + 160,213,52,158,103,65,75,140,141,81,184,149,184,53,146,168,214,160,152,151,188,238,199,110,229,208,161,81,190,252,149,175, + 115,247,93,15,18,122,138,11,183,172,162,171,167,200,71,63,248,97,187,245,51,95,73,214,244,150,76,111,88,50,229,190, + 222,176,184,126,141,58,247,210,243,185,240,130,117,12,245,20,24,26,30,160,222,112,91,31,33,36,202,83,153,154,220,210, + 222,86,98,207,206,221,236,255,242,111,38,151,222,112,149,186,241,77,175,147,203,70,122,168,85,230,193,72,148,113,26,183, + 200,102,242,153,76,49,239,216,201,105,54,138,201,214,104,212,196,120,76,162,209,166,105,117,226,198,42,173,93,103,105,180, + 113,239,169,44,245,212,117,56,246,180,104,103,215,58,45,176,233,155,93,145,75,69,37,115,175,116,203,4,169,156,59,163, + 181,26,147,69,48,139,204,123,201,104,235,54,182,210,69,55,233,108,116,84,202,91,40,106,198,56,220,72,169,140,63,229, + 192,109,149,17,34,211,52,193,206,204,112,206,133,107,89,254,137,119,182,63,242,79,31,184,236,224,59,63,208,179,162,17, + 47,1,238,11,225,225,126,56,122,171,11,167,108,93,207,63,20,12,168,55,27,123,150,3,221,192,191,2,61,197,14,46, + 237,29,33,18,226,25,24,16,192,41,160,19,23,228,183,18,231,177,211,200,100,16,223,207,71,195,49,153,101,27,44,53, + 112,235,126,120,113,254,247,126,123,240,173,239,123,167,60,103,195,58,72,106,24,19,211,116,201,19,50,19,141,46,10,150, + 91,28,24,215,76,62,48,25,2,36,5,72,171,177,105,132,169,149,137,42,179,68,213,50,146,132,32,8,81,249,118,200, + 119,160,113,6,240,202,104,170,83,99,36,213,10,214,56,51,47,164,92,224,142,180,230,118,67,24,150,216,246,212,65,62, + 119,251,151,209,8,226,212,117,50,82,24,148,244,24,28,28,162,90,173,146,36,73,166,94,135,52,141,105,111,47,81,106, + 239,96,112,112,8,47,195,17,140,214,204,77,207,16,6,65,203,106,85,52,59,59,107,241,149,211,143,149,43,101,186,187, + 187,168,84,202,140,143,143,83,42,149,220,27,46,73,48,64,172,83,154,214,23,82,57,142,75,163,30,115,96,223,97,46, + 187,228,18,226,164,138,16,154,3,123,199,248,240,135,190,192,181,215,189,16,223,115,223,175,132,139,148,110,254,222,32,200, + 243,192,3,223,228,228,196,52,203,55,174,198,16,97,76,13,79,88,20,37,192,199,11,156,53,171,181,26,37,125,172,17, + 238,98,53,150,246,206,18,151,92,118,46,43,87,13,211,168,205,179,122,213,114,188,98,158,169,39,118,233,155,31,223,62, + 126,109,165,177,115,253,220,252,211,203,79,142,77,136,237,79,199,251,238,190,87,124,253,129,111,122,135,15,159,82,34,223, + 70,190,187,141,192,47,96,82,71,53,182,56,147,181,158,222,62,214,12,173,48,171,62,250,133,164,99,219,46,238,186,239, + 126,83,238,108,147,203,54,110,20,18,141,212,25,195,93,57,156,78,96,178,205,149,204,54,84,11,162,204,214,184,147,145, + 244,154,197,164,89,128,90,235,115,165,144,202,59,205,92,77,74,47,219,106,57,224,218,102,226,81,129,43,46,82,218,108, + 11,237,181,164,46,94,107,228,118,62,220,82,101,110,147,25,77,180,233,229,228,249,62,65,224,103,108,124,215,121,57,44, + 203,100,210,25,215,77,53,77,236,90,64,186,84,25,171,27,164,53,52,226,10,202,19,172,186,241,133,42,58,127,67,223, + 222,71,30,29,41,205,213,122,67,80,101,152,223,12,101,1,73,4,44,125,219,219,158,191,5,104,60,251,119,219,128,23, + 3,251,129,92,86,68,244,247,241,145,56,182,131,232,114,78,132,235,36,172,46,231,219,59,123,175,186,74,245,118,117,183, + 14,238,66,116,174,204,76,157,108,139,7,198,162,216,149,197,198,222,2,11,38,193,52,230,73,107,243,196,245,42,58,137, + 241,124,69,144,43,161,114,29,200,92,59,86,6,174,179,209,154,168,60,77,52,63,135,53,41,137,78,91,119,134,36,137, + 51,31,95,137,18,78,45,237,7,37,62,253,153,47,179,99,247,94,132,39,73,83,227,46,62,157,98,181,165,183,183,159, + 32,240,93,17,3,226,36,194,247,61,148,39,201,23,139,12,12,12,18,134,1,74,10,226,70,131,153,217,25,74,109,165, + 204,145,207,1,210,2,119,65,75,41,169,215,234,76,79,79,211,209,222,65,20,69,84,170,21,242,249,60,73,146,32,148, + 114,14,50,217,103,173,181,83,170,251,146,131,7,142,114,244,240,9,70,134,251,24,25,233,167,222,136,249,236,109,247,242, + 133,219,239,181,227,147,147,246,170,107,46,22,70,39,89,132,112,132,16,62,18,69,41,95,96,106,42,226,111,255,224,239, + 141,61,62,97,251,87,111,20,29,221,157,40,13,54,13,156,207,178,202,116,75,77,2,103,6,176,198,113,138,242,5,73, + 18,209,222,86,224,188,205,235,81,50,65,134,30,39,31,221,101,58,30,223,177,43,116,180,175,47,21,224,169,101,112,112, + 147,182,199,214,77,206,141,182,109,219,53,123,242,142,187,204,211,79,110,15,170,94,222,107,95,177,78,180,183,119,96,83, + 221,186,80,251,134,134,197,209,71,182,177,98,116,44,218,56,95,157,62,118,239,55,27,219,43,149,220,240,69,151,200,246, + 146,71,156,206,131,240,90,248,152,204,58,3,107,51,183,1,227,120,60,77,140,167,233,119,36,165,204,162,178,29,251,76, + 41,185,16,13,155,45,10,164,204,198,160,236,66,111,74,6,29,107,221,165,152,98,44,86,184,116,18,229,57,221,97,115, + 141,191,248,103,54,109,81,140,209,25,55,75,162,148,199,212,212,12,199,142,31,39,73,52,93,93,189,20,10,237,88,235, + 225,41,191,165,49,107,254,91,23,86,96,22,109,218,50,66,43,26,169,242,206,21,179,49,199,242,13,171,233,186,233,166, + 210,131,79,63,61,28,30,31,239,233,0,149,56,190,208,124,47,196,67,111,123,219,243,119,4,107,221,9,50,240,250,1, + 96,45,240,170,53,43,145,97,232,248,41,223,75,125,148,146,122,185,98,211,19,39,79,73,184,175,23,66,190,124,199,245, + 255,120,205,182,115,47,253,139,63,41,189,241,205,63,142,34,70,39,213,150,8,112,97,173,105,221,217,207,236,11,108,54, + 79,59,115,246,24,29,85,208,245,26,186,81,93,24,159,188,128,48,95,64,132,29,224,231,29,144,104,65,144,146,68,21, + 170,243,115,45,221,148,144,2,171,29,17,77,103,134,237,205,45,135,20,130,70,148,178,119,239,33,151,78,33,83,144,10, + 147,56,64,51,142,99,170,149,50,29,157,157,24,107,168,204,149,209,58,37,232,238,106,49,97,141,209,132,97,128,213,134, + 122,189,230,180,77,74,182,212,211,58,251,221,178,201,164,21,144,36,9,149,74,133,122,189,78,177,88,92,192,30,22,105, + 102,141,78,177,169,135,111,37,229,104,134,35,39,142,114,238,218,77,220,123,223,253,172,95,183,132,253,123,70,57,116,100, + 154,141,107,86,26,241,137,207,148,111,31,110,235,120,249,79,189,74,216,250,52,146,46,172,6,45,171,36,54,101,100,100, + 41,175,8,84,188,241,35,95,168,238,253,242,131,118,246,103,222,216,177,226,199,110,240,11,237,17,34,138,177,186,13,76, + 1,107,99,16,117,132,72,200,231,139,236,217,125,152,157,187,246,242,19,111,122,5,181,250,28,113,84,7,163,240,108,129, + 40,74,45,48,7,236,177,240,144,15,186,14,29,30,116,23,160,167,4,35,75,27,233,186,232,225,167,55,158,124,108,247, + 198,219,207,253,226,138,252,141,47,40,92,116,227,229,172,94,210,139,213,41,65,201,67,191,248,74,255,240,227,91,103,214, + 192,225,203,82,91,63,252,193,207,45,253,244,99,59,151,109,250,213,159,204,95,126,213,5,248,141,50,73,156,100,9,166, + 54,99,60,123,25,197,126,193,186,214,247,61,148,148,36,81,228,248,62,86,144,232,20,79,153,150,32,217,225,52,167,167, + 184,182,44,245,237,98,91,219,76,47,47,133,147,50,89,73,20,167,25,111,200,203,206,143,110,42,104,157,5,136,92,196, + 1,178,78,30,210,209,217,133,69,242,205,111,62,198,39,15,221,206,154,213,235,184,224,130,243,105,235,110,39,95,244,40, + 20,10,248,210,221,112,146,216,121,133,59,174,216,130,127,139,38,64,89,75,206,226,88,231,147,83,12,15,247,240,186,143, + 189,179,248,201,63,252,203,203,226,15,124,161,125,9,20,186,193,36,176,29,168,63,247,5,200,146,9,13,5,207,85,148, + 152,201,112,160,49,224,43,253,125,204,108,62,151,174,158,30,12,180,192,211,239,92,233,26,144,236,217,107,87,125,234,179, + 243,231,192,19,85,152,235,133,137,87,157,56,57,245,165,159,253,239,151,60,246,181,123,251,127,230,183,127,157,243,206,57, + 7,72,177,182,138,209,73,214,146,11,240,146,108,26,203,185,243,29,213,137,230,231,169,215,103,93,38,148,21,110,87,32, + 12,129,231,225,23,125,100,62,135,48,29,238,46,164,18,231,110,152,132,232,234,44,38,213,104,75,118,23,116,109,182,214, + 137,203,231,82,77,63,22,141,31,230,217,179,239,48,7,15,31,192,147,57,103,195,160,117,6,110,250,104,171,105,36,41, + 189,65,72,17,231,37,236,251,33,190,23,18,4,5,164,80,212,171,53,68,175,3,64,157,209,216,194,69,161,117,38,139, + 200,18,19,92,70,188,3,45,171,149,10,213,122,149,238,30,103,47,234,186,51,55,22,26,1,158,239,17,39,154,36,181, + 28,63,58,74,95,119,23,202,179,76,207,215,185,239,193,157,204,205,84,233,94,210,77,116,106,55,47,129,220,248,59,62, + 24,223,221,217,21,220,242,186,91,69,50,119,10,148,135,79,9,105,37,29,29,17,43,194,180,214,3,79,119,79,78,29, + 159,249,171,127,24,217,122,207,215,206,89,250,43,111,236,93,118,233,133,120,34,135,174,213,92,232,30,10,67,74,148,148, + 89,189,98,132,191,248,155,247,50,173,125,126,230,45,47,67,86,29,238,148,164,30,179,115,53,177,44,75,203,243,33,250, + 123,168,253,24,204,215,225,100,59,120,62,20,2,231,203,189,114,185,54,23,13,111,219,121,201,161,109,59,55,125,249,179, + 159,95,90,184,229,134,252,245,175,125,57,27,58,218,88,127,227,53,60,254,206,15,229,245,116,57,74,225,209,165,240,68, + 207,211,251,207,219,241,43,127,188,233,99,111,120,197,240,205,191,240,122,213,91,8,73,234,21,148,13,157,75,161,15,202, + 198,32,36,146,16,223,151,236,216,190,23,223,111,99,243,133,231,17,37,51,152,40,65,105,133,39,116,230,9,21,128,20, + 232,36,109,185,73,186,162,147,96,154,182,45,74,181,240,31,33,157,231,135,77,45,86,57,5,190,78,242,116,246,14,80, + 77,43,40,147,34,18,75,98,157,24,217,36,206,176,77,91,183,1,13,124,144,194,167,191,119,128,87,189,252,165,236,220, + 181,155,183,191,227,159,249,219,183,255,189,61,167,123,64,247,118,180,201,225,85,171,200,47,25,22,157,157,29,98,253,198, + 245,116,46,233,161,20,122,4,197,144,124,144,119,72,145,1,235,187,27,87,65,135,40,235,209,16,208,217,83,228,13,239, + 248,43,245,129,246,190,115,27,239,254,104,178,58,110,28,10,225,72,179,0,137,231,16,227,117,107,232,36,114,219,158,231, + 120,125,46,129,39,30,124,132,244,193,71,184,165,179,147,183,175,90,197,202,222,94,82,192,51,250,59,250,57,218,83,20, + 199,79,177,6,236,131,80,94,15,187,125,40,123,48,254,234,56,62,245,228,7,62,116,229,223,125,249,171,203,250,94,245, + 178,252,117,175,125,37,215,93,117,57,249,176,132,181,115,78,179,147,6,88,34,226,122,149,202,220,20,245,202,73,108,195, + 93,176,94,16,226,169,28,72,139,23,128,231,229,240,189,65,87,144,189,6,72,141,16,121,182,62,190,27,79,39,172,94, + 94,114,153,88,102,33,165,50,77,210,204,103,199,3,163,157,225,148,181,72,229,243,212,246,167,169,215,27,72,175,13,171, + 117,102,239,96,49,110,209,66,189,81,71,72,153,97,64,30,185,92,142,32,8,73,226,196,197,23,27,67,26,39,196,73, + 66,20,69,132,97,216,178,90,245,148,215,242,126,110,102,72,181,214,237,88,226,56,162,80,200,19,199,206,211,198,233,151, + 60,71,48,139,99,132,176,196,137,165,90,174,51,50,52,76,20,53,40,181,117,113,223,55,30,165,222,104,112,222,249,231, + 50,174,149,72,160,182,57,181,243,143,253,245,187,218,30,235,42,117,95,114,203,229,34,173,52,32,81,24,25,227,21,75, + 200,124,71,156,50,179,195,74,238,106,183,116,151,30,217,121,249,232,127,251,189,45,135,174,190,116,101,215,155,94,221,177, + 250,178,245,180,11,73,28,91,82,91,192,143,35,6,7,218,184,238,234,139,237,29,127,255,47,186,61,158,151,175,253,201, + 215,72,223,143,105,152,148,106,181,134,128,192,56,83,8,249,112,198,1,219,3,122,35,232,21,16,245,194,220,78,56,209, + 7,251,125,216,190,14,182,172,62,56,122,209,158,119,126,120,237,55,110,255,218,240,137,87,190,164,125,203,207,254,184,232, + 127,221,43,75,179,239,254,80,169,13,142,196,240,100,14,30,187,34,73,175,222,247,161,219,94,240,222,39,182,158,115,245, + 111,252,82,120,229,69,235,208,209,156,179,242,208,30,66,120,248,138,140,119,229,156,12,254,252,143,255,214,252,196,229,87, + 214,174,121,229,11,67,127,197,144,111,83,13,73,197,157,79,98,132,245,91,145,211,218,58,111,33,79,132,46,11,77,8, + 140,145,11,221,144,112,238,142,214,6,36,86,211,222,222,197,195,95,127,154,233,250,94,70,54,44,165,171,179,68,87,80, + 164,80,242,240,177,232,68,99,116,66,170,147,44,214,59,193,10,227,168,4,82,113,225,249,235,249,231,119,253,61,31,248, + 192,199,236,204,59,62,208,120,113,66,88,127,124,167,152,130,186,133,153,3,158,31,197,189,237,121,57,212,87,202,15,244, + 250,221,93,189,150,124,65,106,15,225,231,124,26,113,34,210,68,136,40,182,162,166,181,80,57,161,148,178,178,160,125,142, + 118,150,250,151,159,106,116,10,199,200,193,211,139,52,42,223,119,167,34,21,65,146,176,121,231,3,168,36,250,129,140,100, + 194,97,56,44,153,157,101,199,19,79,224,175,92,201,165,235,215,49,154,47,226,39,201,183,237,186,140,231,225,123,62,5, + 224,239,129,235,161,241,135,112,100,43,84,27,48,113,17,28,222,52,54,118,241,142,127,254,215,141,31,253,200,39,134,63, + 245,194,23,22,110,250,137,31,231,250,155,46,101,160,171,155,164,82,229,212,177,253,68,245,58,58,173,97,68,10,66,226, + 217,60,8,65,24,8,148,50,120,42,36,8,123,17,170,4,54,198,120,21,148,232,228,201,39,182,242,207,127,247,65,254, + 247,31,253,12,86,85,80,34,135,162,66,108,155,137,74,11,138,116,99,28,111,68,10,73,146,194,182,167,158,206,146,33, + 88,72,86,0,140,73,65,26,146,164,129,53,9,81,92,199,247,21,160,49,54,205,70,170,148,122,189,158,229,77,185,181, + 124,144,249,251,52,199,5,167,144,23,45,207,104,128,192,119,49,47,190,231,103,29,83,102,33,225,172,11,221,198,204,243, + 65,107,142,30,58,72,169,173,216,2,84,133,16,116,116,180,211,209,217,65,26,43,84,216,41,82,24,53,240,196,249,213, + 70,238,208,31,252,237,69,79,21,255,96,213,249,215,93,33,146,169,57,18,157,71,22,3,212,208,128,210,219,15,207,43, + 196,30,35,152,53,214,238,29,210,118,71,116,239,195,23,159,120,232,209,243,199,206,95,183,180,235,229,47,111,95,253,162, + 43,68,79,41,79,82,241,41,91,201,171,111,125,161,221,248,190,79,234,218,63,124,216,124,106,223,17,239,210,95,253,111, + 114,229,186,62,130,66,160,44,120,10,100,10,66,122,138,255,91,12,185,38,78,145,245,152,62,87,140,204,19,80,253,125, + 56,180,31,78,85,97,175,128,39,206,133,245,201,209,209,115,103,254,225,223,206,125,236,190,251,87,207,14,247,23,151,64, + 93,193,116,10,251,82,56,96,224,248,42,24,239,222,121,160,250,185,95,255,223,23,236,251,169,215,151,222,240,166,91,241, + 61,75,28,37,120,228,144,120,136,32,161,30,85,217,176,121,35,231,93,112,142,173,124,240,227,250,196,231,190,24,249,55, + 191,48,237,252,137,87,230,58,214,12,8,17,105,116,212,128,36,1,153,102,17,105,46,225,213,26,144,66,97,132,108,197, + 221,139,204,122,54,53,26,105,37,82,248,8,242,12,140,172,225,61,63,253,139,201,13,105,61,153,238,235,150,141,174,110, + 149,95,187,214,27,220,184,94,244,175,24,97,201,146,126,58,219,114,132,129,165,16,148,48,217,150,20,43,136,26,41,190, + 87,224,23,126,225,151,229,189,203,55,22,239,251,179,191,49,151,159,154,176,23,65,57,130,167,72,147,29,140,77,233,116, + 108,170,207,64,91,234,80,133,86,146,116,152,33,88,6,2,235,188,208,187,50,71,160,74,30,182,106,41,247,42,225,188, + 236,213,139,151,174,19,205,20,200,239,235,67,41,66,157,226,237,124,128,115,230,38,233,200,212,228,223,207,22,172,23,120, + 20,184,52,91,199,55,181,90,2,56,31,248,48,176,105,118,150,63,59,118,156,253,198,80,238,237,117,140,228,111,225,3, + 98,165,196,171,84,216,116,242,36,95,7,206,3,86,128,249,18,212,150,194,120,10,71,20,28,29,129,83,23,71,81,165, + 125,207,30,253,224,231,110,247,63,249,149,123,195,121,191,32,214,174,94,74,163,122,16,17,73,156,223,118,128,17,78,135, + 19,248,142,206,46,101,72,174,212,133,42,118,160,101,10,94,29,37,251,184,247,158,199,245,47,191,241,231,163,11,182,108, + 244,94,250,170,43,132,49,57,68,90,192,36,51,36,38,33,73,13,198,56,98,159,109,234,115,16,72,79,50,51,23,241, + 177,143,127,142,249,114,29,169,194,150,126,168,169,138,22,210,97,11,195,35,195,84,202,101,146,36,33,78,92,183,146,203, + 231,40,20,74,228,139,37,250,250,250,91,152,78,46,151,35,151,203,157,230,78,208,36,162,57,16,186,70,163,222,192,90, + 71,74,108,235,232,68,8,209,50,44,203,96,119,60,47,192,232,148,167,182,61,201,146,165,75,90,155,65,169,20,129,23, + 226,41,143,48,204,49,55,53,46,250,247,238,58,220,109,184,67,195,99,157,81,194,145,7,30,239,143,54,109,236,24,94, + 61,76,18,205,33,61,143,234,227,59,35,182,239,123,82,89,30,46,88,142,90,24,175,101,231,165,215,216,147,157,39,38, + 231,167,238,126,64,60,177,125,87,219,76,247,176,223,183,118,25,129,151,208,222,214,43,78,126,253,97,214,142,77,84,139, + 251,143,206,222,245,245,251,189,249,225,165,126,189,28,137,182,199,183,141,118,194,55,107,176,111,255,210,222,248,134,151,92, + 140,89,210,203,138,147,211,244,68,9,51,64,21,208,171,151,216,125,133,48,233,105,196,179,210,152,227,53,56,32,224,64, + 9,78,20,199,39,199,242,251,143,28,42,193,99,10,30,213,112,34,7,101,13,211,26,38,11,80,63,55,74,228,177,71, + 159,108,187,251,192,201,226,208,5,231,139,190,238,18,58,78,193,170,44,119,76,18,248,121,180,240,101,253,174,251,88,87, + 139,166,234,59,247,28,63,126,215,125,241,201,169,185,92,95,111,191,144,253,93,210,10,139,48,54,211,214,57,50,163,208, + 110,60,246,164,135,20,94,198,168,118,157,144,242,220,6,214,74,103,96,56,48,178,18,253,196,86,125,209,238,253,51,107, + 103,202,187,87,158,60,245,116,251,142,93,19,115,247,220,95,59,246,149,187,211,167,190,118,31,15,60,252,184,183,239,216, + 184,56,49,17,83,77,61,252,124,158,66,123,59,126,222,177,216,173,110,176,225,220,13,162,235,186,203,229,103,246,238,146, + 246,196,68,60,12,71,19,120,60,133,135,44,60,98,224,9,31,30,43,192,163,1,60,18,102,31,121,120,196,135,199,61, + 216,25,194,174,188,235,22,191,33,224,94,223,218,237,135,172,157,217,244,182,183,25,245,146,21,231,56,127,145,239,241,67, + 72,1,65,192,188,73,97,251,253,12,206,79,209,151,97,54,63,140,2,180,18,120,181,214,148,38,39,41,38,9,7,187, + 58,91,6,234,223,174,0,125,3,216,12,228,129,29,96,127,22,226,131,48,171,225,164,128,131,22,14,247,192,177,243,77, + 58,179,124,116,212,124,253,11,119,228,239,124,234,80,126,217,69,235,24,236,107,39,137,28,211,85,18,226,7,41,82,20, + 193,20,201,183,43,194,206,14,180,42,146,98,240,85,192,189,119,61,200,87,222,244,179,213,181,227,39,167,110,253,223,191, + 218,182,124,245,106,169,100,55,245,250,52,81,189,74,28,107,180,112,185,230,82,169,69,32,166,196,247,124,246,29,28,227, + 246,59,238,67,27,151,81,165,141,201,120,59,182,101,222,174,60,197,64,127,63,73,146,16,134,97,139,88,88,200,231,105, + 107,239,192,243,3,6,7,7,169,84,42,204,205,205,209,222,222,222,250,190,166,61,135,148,110,11,150,38,9,245,122,157, + 90,173,70,28,199,88,225,128,74,99,140,219,130,9,129,54,218,89,148,134,1,7,15,236,227,228,137,227,12,15,15,83, + 40,20,1,137,209,6,147,26,124,207,35,159,11,153,26,61,70,207,238,221,227,253,134,251,45,60,2,204,245,214,27,109, + 187,190,241,80,95,99,243,154,210,200,234,97,172,81,212,183,29,142,147,199,182,61,225,195,19,59,96,186,0,105,23,148, + 171,48,30,9,14,43,193,145,94,152,30,56,62,158,238,190,243,238,226,131,251,15,149,114,131,35,98,120,195,57,76,157, + 154,162,246,224,35,199,122,96,219,218,249,250,232,182,187,31,236,248,242,216,104,225,220,70,116,178,95,235,7,124,216,183, + 175,171,20,7,107,6,201,21,67,70,67,159,205,135,79,49,3,204,0,135,54,44,231,67,29,121,57,210,209,97,143,143, + 79,197,1,148,115,112,202,194,97,96,79,0,79,120,240,100,93,136,163,58,80,245,131,66,216,47,26,155,92,15,179,21, + 24,19,48,177,222,82,111,63,116,212,191,247,193,199,59,146,145,149,254,202,117,43,193,68,24,237,52,88,88,75,123,87, + 7,163,247,127,179,209,55,53,191,61,128,123,219,106,141,253,114,235,174,74,245,174,175,219,164,26,133,114,100,73,40,59, + 219,178,248,69,7,40,123,74,183,54,175,205,121,64,168,166,215,143,51,169,55,194,45,37,242,249,2,39,103,102,100,124, + 223,67,39,74,136,175,74,248,98,9,158,88,1,79,175,77,210,189,235,102,203,199,87,30,25,157,146,143,110,175,142,223, + 253,141,248,208,61,247,153,167,190,122,143,61,240,228,14,230,199,103,68,106,60,225,229,138,104,1,75,150,143,112,201,43, + 95,204,214,208,43,28,222,177,163,115,56,210,70,194,9,3,79,3,251,103,225,216,1,56,49,14,39,230,225,196,180,251, + 56,94,132,99,2,14,249,176,199,135,157,13,120,58,129,35,67,48,247,215,160,223,248,182,183,225,9,249,125,64,197,82, + 210,240,2,134,70,15,145,28,218,201,88,117,158,149,63,34,211,176,26,112,245,161,67,220,118,242,36,226,242,203,88,210, + 209,65,242,221,2,212,192,0,104,237,214,132,149,125,48,154,194,118,3,143,117,193,133,111,49,233,165,7,238,252,220,249, + 31,219,241,224,234,235,255,248,55,11,215,94,117,1,113,89,59,169,187,9,176,214,195,47,6,228,218,219,209,170,13,132, + 36,39,75,124,225,75,119,114,255,79,255,82,114,235,248,132,255,200,138,165,253,43,55,111,86,66,150,72,210,136,90,99, + 14,99,5,214,74,200,172,54,155,160,176,187,187,73,60,21,114,114,116,130,212,56,150,181,209,169,115,198,75,77,166,60, + 119,164,182,52,77,169,214,106,52,50,15,231,92,46,68,8,168,55,26,89,102,151,243,140,158,154,158,98,110,110,142,129, + 129,129,5,155,212,108,164,211,70,163,50,207,155,52,117,164,198,106,181,130,231,251,36,113,130,206,120,63,90,107,242,249, + 60,169,209,68,81,196,83,219,183,227,73,65,165,90,161,84,106,39,8,66,26,245,26,105,154,96,140,231,112,138,92,136, + 17,228,51,130,123,213,131,71,19,40,108,158,156,11,182,255,250,159,95,227,255,253,255,238,63,247,134,23,210,144,70,130, + 75,201,121,8,196,91,193,222,13,118,9,212,102,45,117,96,178,33,196,49,15,14,92,147,166,7,199,239,184,247,138,39, + 239,121,96,237,209,87,221,218,21,172,88,45,165,146,149,78,109,190,14,204,223,92,111,28,89,115,108,236,188,46,216,149, + 194,148,5,253,226,137,57,246,221,189,29,5,36,229,6,201,162,243,159,79,13,129,48,70,9,56,1,244,129,93,14,141, + 163,48,30,193,196,90,144,135,193,204,251,210,188,125,197,32,7,106,49,155,142,79,48,15,209,52,28,233,132,57,5,199, + 151,193,161,225,67,199,175,121,236,55,254,232,162,175,253,226,79,12,190,224,167,94,169,2,79,19,55,98,132,214,116,117, + 21,232,190,228,60,191,190,247,120,84,128,29,177,146,7,75,218,12,218,153,249,205,245,127,251,216,150,185,207,127,229,156, + 220,143,191,108,73,223,107,94,150,207,181,21,33,174,97,50,224,88,217,108,3,108,29,7,72,169,192,57,88,26,231,221, + 108,132,32,169,85,24,222,114,190,216,147,15,252,161,70,50,223,64,108,75,5,147,214,216,64,64,187,133,158,60,12,110, + 132,193,77,38,237,53,19,211,131,241,196,116,87,125,247,225,82,237,243,95,27,56,224,121,67,71,6,7,11,233,178,193, + 112,186,183,35,23,172,90,233,47,61,247,60,30,127,237,107,6,30,250,208,39,94,116,101,172,27,10,198,139,48,243,105, + 136,62,212,215,205,96,123,27,7,14,30,109,221,252,127,215,65,28,81,46,107,36,174,200,232,53,197,214,240,254,253,48, + 161,133,36,108,212,8,14,63,206,227,227,71,88,251,28,225,72,223,239,163,22,69,60,241,205,135,185,229,242,203,232,250, + 30,139,144,7,12,131,57,8,213,21,80,59,8,147,9,28,154,23,114,247,10,107,47,93,118,124,226,202,135,126,227,109, + 91,202,191,242,203,3,183,254,216,11,105,164,117,148,113,166,233,165,206,78,164,215,71,66,153,128,28,159,249,216,167,120, + 232,215,126,179,114,203,196,116,53,133,98,254,130,11,242,189,67,75,49,186,76,101,126,28,27,57,5,181,54,41,70,91, + 252,64,185,13,136,118,43,82,109,44,105,170,217,127,240,176,75,193,96,193,71,88,32,72,181,65,41,71,92,75,226,20, + 107,156,245,66,18,167,248,126,64,177,88,36,31,58,249,130,231,121,142,207,83,169,180,186,35,173,77,198,204,21,89,2, + 170,201,220,236,154,210,15,141,214,154,98,91,137,40,170,103,250,38,183,190,215,58,37,151,207,241,248,147,79,114,248,208, + 97,150,45,91,74,165,82,71,14,73,192,9,92,141,78,73,211,8,131,34,150,109,52,82,81,144,216,206,216,193,242,39, + 21,124,221,3,177,121,114,142,253,191,246,167,215,242,119,165,190,153,184,33,187,93,60,149,120,11,240,242,204,175,169,238, + 220,41,237,16,212,235,214,30,30,133,153,72,136,163,157,214,238,185,161,145,108,153,253,216,231,54,77,75,217,222,5,219, + 53,108,87,176,47,129,61,171,140,89,38,92,103,187,207,135,248,162,106,196,37,7,198,91,55,175,33,224,224,34,166,188, + 56,203,242,35,155,108,116,7,232,70,246,30,241,172,68,90,129,201,58,247,127,129,244,245,48,85,133,39,187,221,181,118, + 228,170,36,57,122,236,29,31,184,242,246,3,251,55,92,249,91,191,144,31,233,233,163,81,157,69,10,205,210,27,94,16, + 158,250,212,87,250,243,113,154,151,150,195,8,177,211,90,187,35,132,39,194,83,83,23,215,254,254,253,151,237,251,210,125, + 155,251,222,242,250,129,190,235,174,240,115,93,3,136,70,13,97,83,36,22,147,166,238,153,25,157,73,187,36,224,12,225, + 172,110,48,178,106,5,187,54,172,239,74,158,220,62,4,20,123,44,7,31,2,221,11,19,75,224,112,23,132,51,144,143, + 17,5,129,237,244,160,216,14,133,18,44,85,105,122,142,62,126,124,40,61,126,220,31,0,111,30,218,27,208,115,89,46, + 223,145,211,4,13,33,86,230,172,93,86,129,29,63,37,68,237,215,63,245,46,214,94,123,13,47,125,201,143,243,197,47, + 221,115,26,141,166,150,25,252,93,189,232,152,126,207,82,140,102,247,55,170,35,186,142,236,100,213,232,17,118,192,115,182, + 114,127,46,120,67,68,17,247,126,243,97,174,187,252,50,58,59,58,90,196,188,239,5,240,14,192,182,67,180,27,78,46, + 179,102,182,140,56,26,192,209,107,103,235,149,187,255,234,237,47,188,179,144,239,187,233,213,215,17,71,51,20,114,125,248, + 133,54,12,49,129,24,224,99,239,127,55,123,126,229,183,199,95,90,105,60,29,184,147,176,118,217,11,175,42,42,124,234, + 177,38,169,205,227,153,186,179,68,85,202,217,36,32,72,18,237,232,241,64,16,228,72,146,148,39,183,62,69,35,74,240, + 61,129,177,41,24,213,98,164,57,129,161,19,192,234,212,129,195,133,66,129,48,8,72,19,195,124,92,163,119,64,58,14, + 84,163,65,173,90,35,23,132,217,136,119,198,5,39,197,105,120,16,64,18,199,36,73,12,130,76,107,102,90,65,127,179, + 179,179,220,127,255,55,72,210,148,249,185,121,226,40,198,247,67,146,36,38,142,99,226,36,194,226,145,198,101,148,138,137, + 124,169,68,172,125,235,8,9,169,239,64,233,123,37,232,181,147,51,122,247,175,252,246,213,39,7,10,225,53,80,21,160, + 119,0,247,1,31,3,126,43,3,56,243,110,148,215,255,2,211,55,88,91,85,112,60,22,98,91,27,118,77,187,49,69, + 11,199,37,236,170,194,120,23,140,213,97,123,10,166,46,101,237,27,195,189,122,133,239,157,150,95,158,19,130,227,99,83, + 20,234,17,241,183,120,47,136,51,254,44,206,120,223,231,28,152,109,39,160,254,98,56,44,97,38,129,227,35,48,154,255, + 210,3,47,186,227,196,196,69,235,127,253,87,74,87,93,184,14,157,206,227,15,245,49,223,221,217,63,56,54,57,130,49, + 185,57,24,87,80,109,131,113,33,196,254,146,181,187,114,251,14,93,89,253,253,191,188,120,124,211,186,181,226,101,47,238, + 94,243,226,27,188,222,193,110,68,92,65,103,90,178,38,107,217,136,24,35,20,34,219,156,182,21,187,105,223,114,65,169, + 241,228,246,21,121,88,90,135,253,151,64,101,22,204,16,152,149,144,252,37,84,126,222,90,49,5,199,43,32,102,92,154, + 111,41,129,135,45,116,20,192,203,131,44,66,73,66,31,141,122,95,10,131,218,109,196,70,243,136,184,108,45,203,239,126, + 16,174,125,5,27,54,110,56,173,0,125,39,55,251,239,234,130,180,22,166,106,85,198,100,76,199,98,178,220,243,236,209, + 136,34,190,254,205,135,121,225,229,151,225,117,118,226,125,7,27,178,179,233,198,196,130,67,162,189,20,170,59,176,251,231, + 161,170,133,240,175,141,211,206,47,252,237,187,175,28,216,60,84,218,114,241,58,114,94,63,34,168,33,100,59,31,124,199, + 59,25,251,173,223,61,126,83,212,248,134,134,29,22,86,207,230,139,107,87,95,122,190,80,212,209,181,50,164,150,84,7, + 88,45,209,52,220,109,86,40,84,38,85,208,169,65,169,54,118,239,61,194,201,147,167,92,168,96,22,146,103,50,55,69, + 175,233,189,108,93,56,93,189,94,199,247,61,230,203,179,228,146,156,219,194,120,30,214,172,68,24,67,212,168,97,172,118, + 235,220,38,246,211,202,102,207,248,24,89,122,130,1,231,49,29,69,206,134,213,104,116,154,102,221,86,66,24,6,60,249, + 196,99,148,231,102,41,21,243,36,105,76,35,106,100,99,90,246,243,165,159,177,101,53,185,80,226,11,105,45,90,148,64, + 252,155,235,28,244,159,194,216,46,248,134,133,198,218,153,185,67,29,149,249,110,43,217,17,26,202,87,184,84,52,74,25, + 126,88,207,126,178,6,118,3,111,133,72,193,216,46,107,167,27,176,39,20,194,171,75,17,89,109,170,239,242,189,244,173, + 198,38,161,214,141,195,64,163,187,131,111,44,25,224,65,125,58,101,67,41,201,73,33,248,229,131,39,158,181,0,125,55, + 239,153,28,240,9,208,183,194,76,55,108,77,161,218,13,241,181,219,246,218,79,253,202,111,111,25,253,221,95,45,189,230, + 213,55,83,236,21,212,134,58,58,205,216,228,50,31,250,234,112,98,24,146,97,40,111,149,226,64,155,182,147,33,28,44, + 193,246,252,206,189,151,204,236,220,123,254,163,159,248,236,170,244,69,215,247,174,127,205,139,228,218,149,61,4,113,13,83, + 49,52,82,1,94,128,210,9,74,164,104,37,17,166,74,215,85,23,4,99,239,249,208,170,53,150,115,12,60,5,84,125, + 176,126,118,179,62,226,206,129,109,128,126,218,9,181,211,155,161,113,24,102,134,64,238,2,209,6,98,0,60,1,97,234, + 146,96,58,178,17,234,212,56,182,118,29,80,124,247,135,225,143,222,10,66,127,247,13,195,119,116,96,133,196,0,115,149, + 154,243,167,201,188,75,44,207,223,71,45,138,56,255,155,15,115,217,196,4,137,82,24,241,253,149,74,15,184,0,116,55, + 140,167,214,62,0,124,249,134,137,241,39,119,254,233,59,235,185,96,53,109,61,189,88,217,205,71,255,242,159,152,252,141, + 223,60,246,130,168,113,183,134,219,45,236,139,161,48,191,102,99,199,138,181,27,193,84,80,113,29,163,45,41,22,45,42, + 24,17,103,33,115,26,99,82,164,213,40,233,168,246,123,246,29,165,92,174,226,43,233,66,246,204,226,188,115,219,18,204, + 98,33,77,83,2,223,35,151,11,240,125,137,177,41,65,224,19,6,62,2,75,163,94,39,201,212,210,14,247,113,96,119, + 83,41,45,113,98,198,32,8,9,124,31,107,13,141,70,131,184,17,145,100,192,116,212,104,224,7,62,211,211,211,60,245, + 212,54,2,223,233,146,242,249,128,56,142,136,227,40,187,176,61,60,149,209,249,133,64,6,62,210,247,91,117,206,7,113, + 151,235,50,181,128,49,11,95,71,240,193,37,154,119,74,195,253,101,152,237,7,126,26,120,109,214,253,248,139,72,107,217, + 104,68,135,139,48,140,34,152,94,109,237,169,138,54,115,13,41,210,137,149,35,252,159,229,67,220,213,81,34,1,62,219, + 221,142,106,196,200,40,125,198,71,162,159,219,119,114,0,236,3,251,110,168,247,193,222,58,220,81,144,226,246,31,47,215, + 31,158,250,139,127,152,189,235,182,187,40,118,15,209,253,194,171,75,115,176,82,192,112,55,132,99,192,161,165,195,220,38, + 68,218,6,211,35,240,84,10,183,11,120,111,63,188,103,195,161,163,159,233,123,247,251,31,249,230,27,127,105,226,115,255, + 252,49,115,232,100,3,89,232,193,107,11,65,214,145,194,195,218,34,58,205,147,214,35,86,92,184,145,227,171,151,142,36, + 112,142,129,37,101,8,206,119,16,3,53,22,34,149,197,233,98,109,0,29,67,242,147,16,255,6,68,18,170,19,48,189, + 27,78,204,57,238,220,110,11,147,135,65,231,0,101,191,143,137,229,219,147,11,21,158,209,84,230,43,46,127,92,8,254, + 163,60,186,162,136,223,125,240,33,126,126,199,14,26,158,71,34,229,247,84,54,69,182,153,59,8,108,133,164,29,142,104, + 248,106,27,124,101,237,55,183,239,251,210,255,125,39,141,134,229,206,95,255,221,200,254,238,31,61,125,121,170,191,20,195, + 103,44,60,233,9,81,152,130,165,237,55,95,87,234,236,25,164,17,107,146,52,197,88,13,162,225,140,226,61,7,24,75, + 233,10,137,182,77,27,77,143,67,135,142,208,204,55,183,100,248,79,214,13,37,73,66,146,164,45,169,72,163,81,207,100, + 68,34,35,34,6,180,181,181,99,45,52,26,13,106,149,106,150,7,238,182,93,77,75,6,33,197,130,129,89,22,84,87, + 44,21,169,215,235,206,80,107,33,34,47,243,149,150,60,244,208,131,212,170,85,4,130,192,15,72,181,161,209,168,19,69, + 81,246,124,220,129,51,198,32,172,34,159,47,34,60,217,58,250,33,112,0,248,128,251,179,46,193,244,180,101,207,148,177, + 59,13,140,190,11,226,165,89,231,211,147,73,113,78,102,255,238,91,61,20,48,213,222,70,90,40,112,220,83,226,51,253, + 221,76,251,222,247,124,145,124,175,227,123,30,120,63,240,215,208,232,130,253,210,218,47,74,33,62,241,242,114,253,75,242, + 247,255,252,208,151,254,244,29,182,227,156,243,68,226,201,162,128,124,0,42,41,20,184,125,203,38,246,158,187,156,82,33, + 180,195,16,23,224,148,132,173,53,248,130,17,226,125,67,240,111,215,78,204,222,214,255,183,239,127,228,209,31,255,31,227, + 95,123,251,187,147,137,163,167,80,165,30,76,24,144,40,67,138,65,164,138,174,66,55,118,195,186,194,60,172,148,176,172, + 13,242,191,8,172,206,54,201,143,103,29,219,183,42,12,205,73,96,30,56,1,118,214,221,48,180,1,27,60,7,174,23, + 223,242,225,123,1,113,220,224,166,237,15,242,249,193,181,212,242,37,22,242,35,254,227,60,94,114,232,48,162,82,225,223, + 55,111,102,214,247,191,43,29,153,205,222,76,63,9,124,57,251,218,79,64,227,23,225,64,10,247,244,65,223,145,119,254, + 115,225,75,95,249,106,91,241,177,39,183,173,132,111,212,225,126,31,118,10,65,155,176,118,233,177,32,24,217,252,162,23, + 10,73,149,212,206,97,109,140,180,206,30,65,10,133,209,100,118,12,174,250,184,20,76,69,20,165,28,61,54,234,128,229, + 36,93,176,118,205,56,64,77,187,141,166,104,49,73,19,210,196,145,202,42,213,170,91,183,183,181,163,148,200,54,37,134, + 66,46,143,144,146,56,137,1,129,31,248,24,227,152,177,2,233,214,238,153,71,241,244,244,36,113,220,64,27,77,163,209, + 192,247,125,60,223,103,247,238,61,236,221,179,151,92,232,236,52,172,181,78,31,100,52,229,242,28,185,92,216,26,197,154, + 26,51,63,231,163,23,4,222,173,187,238,59,112,38,85,43,129,74,22,206,209,140,188,94,36,133,250,158,186,109,63,155, + 79,127,20,157,122,243,245,189,23,184,1,26,67,150,253,158,176,243,137,224,248,185,150,35,39,223,247,241,43,230,191,122, + 95,223,160,231,111,51,105,116,18,72,162,98,158,40,244,68,161,183,221,70,199,39,17,181,136,28,216,54,136,231,96,188, + 108,237,108,4,71,66,33,182,143,88,54,143,76,78,159,55,255,222,143,174,63,249,233,47,172,60,122,243,245,35,93,175, + 127,121,113,233,166,85,120,73,21,146,136,156,77,233,187,226,82,111,223,237,95,27,190,18,150,166,80,186,9,102,207,201, + 158,91,31,80,254,46,143,173,92,4,206,243,131,44,64,57,47,96,235,216,17,46,57,180,131,142,90,5,59,178,241,91, + 197,60,63,175,31,22,88,61,49,201,173,15,63,204,23,151,46,37,254,14,95,134,5,84,232,81,236,43,210,103,45,61, + 217,129,175,10,193,234,40,173,111,159,168,238,202,195,23,150,206,150,39,244,99,79,134,30,236,52,176,53,132,99,57,104, + 84,45,189,18,122,231,151,246,119,174,88,51,140,52,9,126,45,160,62,171,72,26,9,90,217,204,46,193,137,65,37,158, + 243,151,22,128,244,40,87,235,204,204,149,93,146,106,83,95,151,233,181,50,143,52,164,116,185,95,22,50,37,123,22,131, + 99,45,149,114,153,84,59,100,67,107,87,68,38,167,166,24,28,26,66,27,227,236,53,117,150,25,134,6,147,105,172,180, + 38,78,98,166,166,167,41,228,29,97,177,214,136,90,69,236,145,71,31,161,88,44,58,83,45,207,195,88,67,181,90,165, + 167,187,135,70,189,65,146,56,47,37,151,129,5,58,241,72,101,129,138,81,207,32,126,236,3,30,2,54,101,221,139,121, + 142,222,220,103,43,6,63,170,71,4,204,66,114,200,114,242,133,80,158,23,156,28,18,98,155,57,62,90,170,11,113,164, + 164,228,158,57,109,26,43,227,152,251,26,117,139,49,46,162,121,209,207,104,119,31,81,25,198,231,173,157,17,66,28,70, + 200,199,74,66,172,108,159,47,159,87,253,212,231,46,57,244,229,187,207,219,127,203,13,131,171,95,249,226,96,205,121,107, + 177,74,177,246,178,45,124,165,191,171,199,156,154,89,146,66,231,18,24,237,118,93,12,41,240,89,92,224,230,143,66,153, + 254,172,191,179,232,7,220,115,226,32,159,223,245,8,55,103,99,216,127,228,135,197,121,10,13,87,107,60,182,123,15,243, + 89,31,247,237,94,149,1,122,54,13,176,230,61,175,227,252,70,210,122,67,4,161,199,145,253,19,54,120,203,39,103,195, + 122,250,88,13,14,27,183,217,153,42,192,108,9,210,237,32,87,128,104,128,39,134,151,132,125,67,75,64,38,164,182,76, + 156,206,145,16,147,106,237,178,211,180,51,244,210,194,173,197,141,209,4,126,200,190,253,123,153,154,158,35,8,115,89,170, + 230,162,43,202,100,209,127,214,233,194,76,150,233,222,244,152,9,130,160,149,243,21,199,49,24,75,173,90,229,216,209,163, + 244,245,15,144,102,244,123,41,165,43,70,153,69,131,84,46,158,55,141,83,78,157,154,96,233,210,17,170,181,90,203,14, + 116,219,142,29,140,79,76,48,60,56,224,114,231,27,53,230,230,202,88,107,153,157,157,161,90,173,96,76,63,158,231,161, + 73,51,103,65,73,42,13,54,244,229,217,238,182,31,199,197,35,249,217,197,250,159,237,225,3,211,238,195,62,12,243,203, + 44,187,114,214,30,77,65,21,125,191,241,84,28,215,255,16,204,137,185,50,183,140,79,225,183,121,207,90,68,219,220,71, + 60,111,237,68,206,218,233,26,28,138,29,227,120,247,134,249,242,11,231,63,249,239,91,14,124,241,43,75,182,95,123,69, + 207,218,55,252,88,176,246,242,43,232,219,120,78,208,56,245,64,78,65,104,23,185,202,248,217,53,48,138,243,109,87,207, + 135,2,84,244,3,238,61,126,128,247,239,126,148,206,31,192,221,232,71,253,40,0,159,92,24,165,190,109,225,66,128,240, + 37,42,149,173,55,129,39,5,81,123,142,193,246,208,60,89,79,103,111,128,249,0,120,59,216,139,221,156,204,52,216,21, + 78,241,59,90,124,122,207,169,143,188,237,15,150,47,191,98,11,253,131,253,12,181,15,225,217,105,114,170,141,184,58,141, + 64,99,108,232,50,161,132,15,66,16,4,121,142,30,61,73,28,155,86,212,110,147,249,108,157,149,139,43,26,210,81,252, + 109,43,194,215,109,183,234,181,58,245,122,157,48,12,241,148,34,214,9,167,38,38,168,84,42,207,72,220,212,38,235,156, + 204,194,10,190,94,143,40,151,43,204,205,151,201,231,10,132,97,200,212,204,12,199,30,127,188,209,38,165,138,226,216,239, + 234,233,116,73,17,137,38,137,28,151,105,102,118,150,254,106,149,66,62,159,153,162,25,148,210,120,42,38,202,73,121,182, + 134,100,183,227,209,240,42,254,115,63,60,96,7,176,20,226,99,16,231,129,210,77,87,146,91,49,200,137,127,250,184,123, + 207,125,155,72,225,69,155,103,91,130,180,8,243,7,160,218,14,51,41,140,182,193,246,77,213,218,218,202,151,190,182,246, + 216,157,247,174,20,155,206,41,92,52,57,121,12,216,173,96,38,6,83,57,227,186,142,29,190,195,16,252,80,199,85,239, + 217,138,207,251,118,63,250,221,173,201,254,131,62,222,149,97,59,133,111,83,133,172,113,24,71,11,143,48,22,180,107,147, + 143,2,189,142,153,195,49,224,66,224,114,96,5,216,105,167,66,121,248,146,169,153,158,177,191,122,215,229,251,61,57,242, + 228,210,161,206,210,133,23,22,251,183,44,83,165,117,151,176,118,237,106,74,254,12,245,90,68,16,228,29,94,163,53,66, + 10,142,30,61,74,162,173,75,218,104,122,49,11,167,126,55,194,100,91,48,183,138,39,179,224,108,90,105,68,113,140,78, + 83,252,192,39,8,3,202,243,21,102,166,167,221,184,102,108,43,230,87,9,73,98,210,140,5,237,108,65,165,116,88,144, + 167,60,242,249,2,113,148,224,43,159,189,251,246,243,170,169,169,169,109,61,221,249,131,97,208,45,148,114,91,81,79,97, + 234,49,198,58,32,60,142,35,114,97,136,20,206,49,47,77,53,167,166,230,145,58,80,153,171,18,157,96,123,178,21,187, + 197,241,125,150,0,23,253,144,47,130,31,5,54,180,248,186,210,75,6,24,122,221,141,144,21,160,239,118,172,44,0,79, + 128,190,2,166,82,167,191,218,39,161,175,0,203,55,26,189,212,108,223,30,26,152,180,82,238,212,198,140,111,2,179,129, + 103,26,52,75,135,193,177,251,71,85,128,206,44,62,207,199,49,202,126,171,78,229,123,120,236,199,153,223,255,222,115,244, + 28,115,192,71,129,123,178,150,251,106,168,156,11,79,104,152,29,134,39,71,82,179,70,31,58,177,180,118,232,68,127,249, + 51,12,29,232,40,141,60,116,238,218,174,53,175,185,53,184,238,166,11,32,73,49,54,64,72,69,189,150,242,244,206,253, + 68,105,130,239,41,23,5,148,113,126,180,113,186,32,165,188,214,129,145,66,97,172,35,11,166,105,74,20,69,72,169,240, + 85,72,146,164,212,234,53,202,213,50,169,78,152,153,157,164,189,171,141,36,73,145,210,169,223,61,33,208,169,198,42,231, + 114,23,248,30,74,73,106,229,50,126,143,199,241,153,9,186,79,30,169,94,232,137,233,199,69,184,52,78,34,82,29,19, + 120,121,106,166,1,194,144,36,49,141,70,204,220,220,60,133,124,17,37,4,66,26,142,29,29,101,223,137,99,108,136,202, + 210,66,177,12,185,95,3,249,151,89,94,195,226,115,248,24,206,61,204,240,255,200,35,77,73,171,245,239,235,71,152,108, + 34,159,131,218,90,168,165,48,49,9,135,114,144,87,66,72,35,101,162,181,174,134,16,165,223,98,252,249,97,99,101,222, + 243,181,248,216,179,108,63,100,118,119,236,18,66,230,133,224,45,198,216,243,129,186,227,129,144,126,31,7,240,95,221,29, + 153,151,63,7,179,254,195,89,39,4,112,23,152,79,193,140,15,79,213,224,160,231,172,96,123,124,232,25,128,21,75,231, + 42,91,230,31,120,242,226,175,76,79,175,191,232,218,75,242,29,57,139,173,67,222,11,24,155,172,48,54,117,18,223,115, + 62,65,206,22,214,37,17,52,237,51,28,33,217,189,106,99,156,249,124,24,6,132,97,64,20,53,16,66,81,42,181,161, + 148,199,204,236,44,81,163,129,84,146,233,233,41,150,44,91,146,117,47,26,161,157,19,162,148,210,129,210,198,1,219,243, + 115,51,4,74,146,6,146,147,199,14,218,159,47,151,119,14,167,246,120,151,79,71,156,212,58,203,179,51,148,74,61,228, + 194,128,164,94,195,90,147,217,126,164,40,207,167,90,174,112,252,248,113,70,79,142,146,120,130,137,134,9,82,23,21,215, + 61,233,204,192,158,193,253,91,130,147,94,180,159,229,61,225,101,56,133,230,191,30,103,219,78,153,236,184,41,208,71,161, + 50,0,21,191,144,231,112,103,59,246,196,216,183,223,60,253,40,10,80,201,15,184,231,135,92,124,100,230,222,159,1,14, + 167,223,16,178,55,153,196,41,225,113,40,189,88,46,68,174,96,109,151,18,162,77,11,33,127,25,140,6,61,6,113,27, + 204,231,96,190,243,123,188,113,158,194,81,253,159,2,126,253,57,124,157,198,117,69,86,64,60,235,136,101,51,195,112,244, + 8,248,41,108,5,118,151,96,118,243,190,35,165,135,62,243,232,154,87,252,220,139,136,235,179,228,148,199,145,147,135,152, + 169,214,9,50,202,157,102,33,218,89,156,102,21,75,43,194,215,121,240,116,48,54,54,70,181,90,109,121,243,52,85,237, + 113,146,64,98,153,158,158,166,86,173,17,71,17,190,239,172,52,13,206,228,160,201,51,82,74,209,219,211,231,120,64,149, + 10,29,149,114,125,189,101,42,134,184,88,176,169,177,41,81,37,38,31,54,144,38,193,24,75,45,170,227,123,1,149,74, + 5,157,166,204,204,204,112,252,248,9,82,29,225,135,57,142,7,65,190,2,61,237,208,86,1,249,123,110,59,116,26,248, + 41,178,177,108,219,25,199,50,1,254,12,120,159,27,121,255,235,241,109,138,145,93,116,60,237,162,209,239,249,52,222,122, + 29,65,142,175,30,219,199,251,127,136,197,71,0,181,52,161,166,19,33,114,69,100,154,218,102,225,153,119,237,119,216,13, + 109,83,80,58,7,228,28,36,155,17,73,44,212,176,181,233,197,21,99,214,104,240,27,144,134,142,137,57,147,192,142,10, + 60,249,155,48,62,233,138,18,179,223,67,27,255,33,215,181,112,103,118,17,60,87,175,183,201,48,77,192,46,117,192,97, + 122,24,234,26,234,17,20,86,165,44,253,234,63,189,179,247,241,115,251,58,95,112,233,38,76,108,216,189,247,8,105,234, + 17,72,141,16,6,107,85,43,21,193,117,60,38,51,46,115,0,178,51,47,183,248,190,79,189,94,119,172,232,32,32,159, + 119,78,134,113,28,19,71,49,22,195,252,220,28,113,20,97,180,195,125,48,6,154,60,164,204,116,44,8,67,250,251,7, + 24,30,25,228,224,241,147,204,167,135,180,208,182,77,66,187,110,196,62,97,145,52,85,232,84,210,214,214,78,146,66,165, + 92,161,90,173,50,49,49,65,28,39,116,117,117,209,221,221,197,201,209,19,144,164,32,172,48,66,120,202,90,85,5,241, + 101,156,213,174,127,150,110,39,231,192,218,211,58,225,175,3,247,2,111,248,175,26,243,159,3,148,255,231,29,15,242,240, + 248,177,31,218,88,5,153,255,206,212,73,222,246,228,221,246,47,58,251,81,167,142,52,145,120,175,12,61,33,172,246,96, + 163,116,221,120,232,65,69,99,103,165,213,195,147,112,237,216,11,175,61,239,188,23,92,42,102,39,39,244,215,239,123,208, + 118,60,189,119,242,74,120,56,114,222,190,247,127,22,198,151,131,249,48,176,231,123,120,158,163,192,205,25,56,253,214,231, + 104,46,22,103,220,153,194,236,2,27,135,121,207,25,116,223,127,237,236,204,242,175,188,245,207,207,143,254,244,119,243,183, + 190,248,6,14,29,61,134,109,8,116,62,71,98,26,88,76,11,136,110,146,16,91,157,86,182,189,114,49,44,130,70,163, + 225,142,117,62,79,24,134,204,206,206,82,46,87,156,197,134,175,72,146,132,90,181,138,213,198,113,90,105,70,234,209,202, + 187,87,202,3,41,41,150,74,188,232,133,55,178,173,187,163,248,205,219,62,222,251,210,24,211,83,179,70,229,114,4,185, + 60,169,182,120,40,124,223,39,159,207,145,38,186,37,219,104,111,107,99,249,178,229,204,151,231,169,233,24,109,61,18,161, + 66,109,211,188,15,222,83,124,119,225,147,54,187,81,213,255,235,218,253,207,81,128,238,31,61,252,67,41,60,249,69,179, + 251,91,64,204,3,249,218,60,203,106,243,210,130,122,28,194,14,24,66,136,203,140,181,87,31,18,226,130,253,109,249,145, + 178,231,7,75,202,149,202,154,68,79,117,89,27,142,14,14,44,187,244,207,254,160,125,96,73,55,131,186,206,242,95,253, + 73,238,248,200,167,186,238,251,235,127,41,93,19,107,171,161,190,23,238,15,97,214,251,62,218,205,49,224,175,113,174,89, + 127,225,73,46,15,60,102,107,9,223,143,10,165,153,240,33,113,196,187,221,174,48,217,115,96,70,193,145,18,76,174,28, + 157,136,126,251,247,254,62,191,231,104,196,145,99,147,248,158,33,53,202,229,145,147,182,58,158,230,248,181,240,57,91,163, + 91,75,28,199,148,203,142,151,211,214,214,70,163,209,200,64,233,6,82,58,161,105,28,199,212,106,245,108,156,115,193,132, + 126,150,57,238,140,254,21,65,16,16,197,17,59,158,126,26,99,44,231,93,118,177,124,104,244,196,242,13,247,126,99,180, + 61,49,137,78,35,27,9,45,146,58,200,176,68,154,56,158,82,169,88,68,72,183,137,51,198,80,106,43,177,102,205,90, + 158,220,177,29,163,13,13,107,187,36,44,139,160,227,56,84,58,157,24,242,59,46,244,2,199,222,205,204,40,254,235,241, + 31,185,0,61,151,128,113,83,165,108,179,121,61,7,108,2,177,20,188,13,142,89,95,24,135,194,171,193,111,146,160,170, + 80,208,208,51,15,189,1,172,173,90,123,213,232,186,85,151,180,255,204,27,251,46,95,191,138,64,133,236,123,236,137,222, + 59,191,124,207,210,104,215,238,116,175,151,250,235,38,142,146,51,147,40,105,200,123,138,159,124,243,171,248,55,196,208,67, + 127,250,206,23,92,13,83,198,137,230,182,11,168,174,201,166,176,239,181,110,220,11,188,124,207,4,159,127,242,4,151,159, + 55,196,108,57,250,174,139,80,179,8,158,4,190,8,252,21,142,108,55,147,225,77,109,144,171,67,239,140,16,61,95,90, + 186,169,237,156,45,215,51,58,238,115,228,248,52,50,144,36,137,70,170,44,86,165,25,137,44,23,46,189,166,129,188,51, + 17,211,84,170,85,26,141,70,22,1,227,183,204,198,92,18,134,32,8,2,146,56,166,50,63,15,38,75,212,108,30,33, + 65,43,39,94,74,69,177,80,32,73,19,142,28,57,194,255,207,222,123,135,89,118,149,87,222,191,189,247,57,231,158,155, + 43,231,234,234,156,179,164,86,4,101,129,4,152,12,6,27,99,123,28,39,224,48,51,30,143,103,252,217,51,223,140,199, + 51,159,51,99,112,24,27,27,147,49,89,36,33,161,156,67,119,171,115,206,149,211,205,39,237,189,191,63,206,173,150,192, + 2,36,1,99,140,123,63,79,61,221,93,93,85,125,251,222,123,214,121,223,245,174,119,173,92,87,137,242,186,205,217,227, + 247,63,86,144,214,46,34,173,49,132,202,104,75,28,57,248,217,44,149,197,69,234,141,6,158,151,161,217,108,210,221,213, + 69,24,134,148,203,101,214,172,88,193,179,179,115,76,98,187,87,192,166,12,140,30,131,233,127,15,145,126,137,96,146,144, + 50,217,241,165,107,248,159,33,0,9,65,44,101,123,177,51,253,33,101,96,29,136,60,56,11,224,204,129,19,67,126,53, + 20,5,116,91,232,7,134,60,232,79,192,79,131,121,83,190,81,66,191,130,238,105,232,173,92,187,107,100,231,127,255,181, + 114,247,64,39,34,104,130,54,108,126,211,141,220,116,251,13,234,196,185,115,234,200,193,189,228,85,128,20,14,73,98,112, + 157,2,245,133,38,175,121,253,107,249,235,135,158,90,118,252,190,39,110,90,13,81,11,58,250,224,184,7,51,7,161,54, + 10,201,203,29,235,206,84,2,94,243,11,159,230,139,127,246,166,139,32,244,82,72,104,128,101,109,0,218,0,44,127,222, + 196,194,1,21,66,191,7,27,191,226,23,87,230,111,255,247,106,108,104,45,141,153,67,84,195,6,70,105,156,184,157,217, + 69,202,249,44,129,207,82,37,180,196,9,201,118,96,95,179,209,32,12,67,114,217,108,170,70,214,154,102,179,73,171,213, + 66,42,117,209,86,181,213,10,8,162,224,185,239,109,47,168,218,118,210,156,239,251,228,242,121,42,149,69,130,8,206,158, + 159,167,114,104,143,185,206,198,250,110,225,150,26,137,80,69,55,139,17,128,150,72,55,213,251,88,99,218,85,86,10,214, + 75,153,230,35,3,3,84,54,175,227,161,39,22,203,151,53,163,181,192,198,60,156,252,63,48,189,30,108,242,50,110,124, + 230,210,53,252,207,3,128,44,16,73,7,227,120,104,27,176,97,102,130,53,243,51,116,130,188,17,252,50,228,37,116,132, + 208,211,132,78,153,182,246,125,10,6,99,24,170,194,80,5,122,106,80,182,2,133,227,96,188,140,66,73,101,141,206,156, + 23,248,135,6,250,51,183,189,241,181,114,239,209,147,100,78,9,58,203,37,138,133,28,88,75,214,81,172,28,234,99,253, + 138,59,72,116,148,142,138,157,212,3,39,209,134,188,178,188,253,63,190,71,125,248,220,111,174,115,79,156,114,135,211,229, + 233,131,26,246,77,193,161,41,184,224,164,147,178,248,229,84,67,243,149,128,87,255,226,167,249,244,255,126,3,215,108,30, + 120,158,37,198,55,30,221,110,55,151,196,117,189,164,226,174,9,96,61,233,206,205,210,81,192,60,120,53,24,108,193,234, + 249,141,151,117,6,54,161,85,15,9,235,53,226,200,160,156,28,56,96,147,22,178,221,34,89,1,86,183,163,163,121,46, + 129,2,1,81,146,80,111,181,240,252,44,70,107,114,185,60,214,10,170,213,26,113,162,201,250,25,172,77,201,230,74,165, + 70,171,217,34,49,49,74,40,208,34,13,202,75,119,60,48,218,162,163,4,29,197,100,253,12,243,19,83,120,135,142,55, + 71,33,156,87,73,167,107,98,154,129,69,43,131,175,138,40,55,3,38,117,89,108,182,34,206,157,187,64,177,80,166,187, + 171,139,32,9,81,142,195,134,21,107,216,31,132,254,215,159,222,187,250,85,113,184,83,192,222,22,44,220,7,209,203,105, + 167,18,224,230,239,182,148,183,160,228,243,242,183,196,37,96,248,129,2,32,11,120,214,112,213,133,195,220,239,120,220,214, + 90,20,73,109,65,90,40,36,48,80,134,49,9,43,37,140,58,48,92,135,190,42,20,103,161,107,54,235,117,68,35,195, + 133,100,100,89,174,184,98,76,245,173,24,19,163,171,150,211,209,211,73,177,163,156,110,118,43,69,44,211,55,127,80,171, + 80,175,213,240,179,89,28,165,40,148,10,196,81,8,113,72,61,142,9,230,170,104,29,35,73,205,206,93,79,146,245,179, + 40,2,86,12,117,241,150,255,249,91,153,191,253,221,63,94,151,28,56,56,182,51,8,119,108,183,28,205,167,142,120,187, + 45,236,86,82,158,190,222,218,230,110,107,41,191,68,18,121,113,49,224,15,126,247,62,94,241,177,119,18,235,23,190,247, + 246,1,159,108,19,171,246,121,109,133,126,129,159,23,164,0,228,100,160,179,9,93,131,151,191,194,25,218,182,138,147,143, + 29,34,168,158,163,101,23,241,113,113,18,137,176,41,73,108,141,109,175,107,136,212,74,213,202,52,5,68,164,235,20,73, + 162,169,213,27,216,118,75,230,186,94,234,19,100,210,118,76,107,147,110,180,43,39,213,22,181,35,132,93,215,35,245,210, + 75,227,168,181,182,88,163,201,250,89,226,176,133,178,10,226,128,150,76,172,128,74,54,54,121,153,56,196,194,224,185,14, + 65,16,210,108,77,161,209,41,178,10,67,179,213,96,247,238,221,172,92,177,130,209,177,101,88,107,112,81,108,216,118,25, + 7,102,23,123,174,57,126,116,121,6,122,59,64,173,120,153,213,140,37,157,156,46,126,19,217,255,82,142,54,154,225,142, + 110,166,87,172,164,162,155,200,122,149,75,40,244,3,6,64,202,90,118,206,95,96,38,181,103,204,207,195,72,6,54,40, + 216,94,133,45,23,96,197,184,82,189,141,145,193,162,90,191,42,59,118,197,78,53,184,102,149,216,177,106,37,203,87,173, + 160,220,217,133,239,101,83,155,137,139,44,81,59,18,24,131,115,113,15,250,249,102,151,75,69,118,59,128,205,88,116,28, + 161,117,66,216,74,91,138,11,231,207,113,106,124,130,78,87,210,211,231,179,126,243,10,126,249,189,255,69,158,56,125,54, + 119,244,177,167,151,127,233,222,71,7,157,131,199,183,94,153,36,59,6,225,158,121,99,191,250,6,56,124,3,52,110,125, + 57,207,216,254,73,248,127,239,193,253,47,183,242,66,100,208,111,189,132,31,213,72,43,35,87,164,22,152,57,153,93,38, + 122,251,55,99,215,133,124,241,83,159,194,209,22,87,5,88,225,160,141,66,182,125,127,165,109,87,60,8,172,208,88,76, + 154,220,106,185,216,110,93,140,207,53,134,40,142,72,146,24,33,5,197,124,30,37,37,58,73,40,149,74,72,36,58,49, + 224,166,62,63,214,154,139,217,235,162,45,76,76,55,229,45,157,61,157,136,87,222,80,248,203,187,238,46,28,17,210,179, + 73,154,202,42,132,161,165,107,132,24,60,199,75,109,67,144,88,145,134,234,157,60,125,28,99,34,86,44,91,145,166,104, + 184,14,174,163,158,167,106,74,95,237,151,187,8,41,72,69,164,241,203,2,49,139,35,125,20,14,227,157,101,60,213,65, + 62,10,33,142,46,161,195,15,10,0,233,118,27,49,3,110,63,244,87,97,179,15,87,87,96,215,177,172,191,97,230,242, + 237,131,125,215,93,235,93,253,202,235,88,179,125,19,165,222,18,121,229,165,218,14,27,164,235,5,82,131,105,160,69,234, + 25,147,218,73,60,103,7,170,137,46,10,234,150,198,192,105,252,111,123,103,201,182,121,138,182,185,186,231,103,41,118,66, + 223,208,8,213,90,149,35,135,14,179,231,248,41,134,122,106,140,246,117,50,188,105,140,91,119,109,161,246,75,191,152,121, + 246,196,185,129,3,127,254,119,221,225,223,127,182,60,134,21,85,8,71,225,200,239,66,252,44,223,217,224,234,155,193,56, + 248,248,94,54,150,125,222,252,238,157,200,246,243,243,219,164,102,101,153,23,57,121,11,128,159,3,114,105,21,217,63,239, + 137,78,205,180,208,45,67,247,186,173,92,119,227,235,169,125,240,12,149,112,150,192,81,184,194,34,76,106,84,33,105,71, + 177,96,211,88,222,246,126,185,92,210,9,33,176,58,173,94,178,217,44,66,8,162,40,192,152,152,108,214,79,213,208,82, + 48,60,60,140,239,103,73,146,246,247,88,211,190,37,200,118,224,161,105,71,28,65,43,174,99,61,75,95,247,144,152,188, + 234,186,85,231,158,120,128,188,83,67,40,7,99,4,113,4,202,203,33,133,139,53,1,88,75,179,25,144,241,28,60,207, + 97,106,106,18,41,29,150,141,44,163,49,62,201,166,179,231,230,242,112,38,129,217,41,72,142,72,69,67,170,151,93,119, + 44,73,27,50,128,76,162,23,105,58,103,113,165,143,148,169,243,163,74,82,7,130,53,203,86,177,80,173,50,117,242,2, + 59,234,141,75,40,241,143,9,64,121,160,7,196,30,200,59,66,172,114,225,106,107,237,43,15,185,206,229,181,31,185,125, + 108,215,123,126,193,219,186,107,7,5,191,128,192,96,147,8,155,36,216,168,73,34,65,40,16,142,66,90,209,78,249,20, + 40,218,126,53,230,121,250,76,153,82,182,22,241,92,27,110,211,59,190,18,2,164,109,103,102,181,69,120,23,91,32,65, + 169,84,230,138,171,175,98,205,154,21,60,249,232,67,156,58,91,101,168,167,27,217,10,105,105,135,141,203,70,184,233,35, + 31,112,255,71,125,126,107,246,43,15,84,122,225,228,28,92,16,176,176,234,101,220,121,35,96,213,103,246,19,172,237,166, + 33,37,203,129,199,218,119,225,23,123,1,185,41,160,203,101,208,33,96,232,116,71,87,231,53,87,46,48,53,115,23,83, + 93,87,176,241,21,111,166,59,83,230,207,63,240,159,136,131,121,144,18,35,44,74,184,23,239,250,75,155,239,75,207,162, + 227,40,116,98,46,198,246,64,170,11,106,54,91,212,42,21,178,126,6,199,145,200,172,79,146,36,244,245,245,165,213,81, + 28,167,49,64,24,172,144,88,253,156,235,165,235,58,105,61,106,28,148,113,168,53,102,216,177,109,61,6,205,179,135,246, + 34,164,33,137,13,198,10,84,152,96,12,56,34,133,101,171,53,137,134,90,35,198,74,69,237,236,41,180,84,12,156,31, + 215,87,52,235,39,13,236,137,224,194,70,72,30,24,93,205,254,114,23,222,119,145,174,98,73,165,13,253,115,51,116,36, + 213,54,24,127,103,240,249,134,91,134,181,184,214,50,222,217,73,112,227,181,76,30,60,130,57,113,230,82,67,246,253,2, + 160,63,250,54,101,109,51,189,67,11,23,58,178,176,85,89,123,243,20,220,120,124,211,218,45,215,253,222,255,40,239,188, + 245,6,124,105,208,113,128,14,43,41,123,96,69,138,37,66,98,101,59,66,214,166,246,17,72,137,177,23,67,61,219,9, + 195,233,189,74,182,163,126,133,32,229,52,172,120,222,202,65,59,232,181,237,153,188,68,188,166,111,24,147,2,89,28,209, + 81,46,243,202,91,110,227,240,190,189,84,90,13,114,210,165,228,251,140,31,59,66,169,220,201,141,255,254,87,220,103,238, + 126,112,77,127,98,183,52,97,207,29,80,217,242,50,7,41,122,166,193,51,255,225,43,84,141,97,61,105,192,225,75,109, + 27,22,193,13,211,232,218,254,227,221,203,243,242,217,73,222,117,29,60,112,230,28,11,250,77,12,94,254,42,222,229,6, + 252,221,95,252,54,173,160,138,235,186,36,137,198,145,41,249,156,130,143,196,74,133,213,105,76,139,213,150,48,8,113,93, + 23,207,243,176,214,82,171,86,218,57,94,57,28,199,161,218,168,224,185,46,25,207,107,155,216,123,116,150,59,218,160,37, + 16,74,181,127,103,211,169,24,128,208,68,205,6,25,167,196,236,220,60,55,221,112,3,29,221,163,196,145,226,216,241,227, + 204,205,156,64,234,10,88,7,209,158,214,117,117,119,131,116,168,44,214,169,53,3,2,3,207,30,216,207,234,74,189,89, + 134,227,45,56,148,129,133,86,177,195,30,236,234,19,57,99,172,80,223,157,178,199,2,83,3,35,156,211,33,5,179,72, + 189,29,120,253,162,192,231,121,63,67,36,9,189,133,28,135,175,186,12,175,191,151,209,125,135,113,106,245,75,64,244,189, + 6,160,95,250,54,127,89,1,246,65,190,2,91,115,240,198,211,112,243,145,219,111,89,247,142,63,255,3,119,221,232,114, + 108,179,130,177,22,225,8,148,77,121,3,35,5,70,202,246,82,81,42,241,183,198,192,146,110,101,201,64,253,249,4,0, + 96,133,69,44,177,1,82,128,89,186,203,155,246,59,34,229,36,210,175,177,207,17,7,109,13,140,149,233,198,85,198,245, + 89,189,122,19,179,227,103,56,119,250,4,103,107,167,88,187,118,45,147,227,211,92,117,195,205,60,118,245,174,158,214,131, + 143,111,20,66,172,18,214,158,107,119,151,47,249,124,1,56,163,13,111,79,43,153,139,250,167,151,2,64,46,136,24,84, + 11,156,161,145,117,170,115,205,47,242,208,177,143,114,251,214,25,30,57,244,121,206,235,55,177,122,215,143,242,46,41,249, + 196,223,254,1,243,115,51,120,174,135,54,17,74,164,201,168,8,137,182,18,108,130,104,123,53,47,217,180,46,69,47,87, + 43,85,146,68,35,16,23,199,239,67,3,67,164,118,169,9,181,90,21,221,219,151,6,13,168,231,216,55,108,74,108,59, + 74,165,9,28,78,234,237,99,90,130,133,201,5,118,237,220,198,19,79,28,228,250,107,223,194,248,244,9,14,60,251,21, + 38,39,199,201,100,4,165,130,123,113,234,134,6,71,56,184,174,67,84,111,209,105,76,64,26,199,51,61,12,225,233,124, + 153,80,185,228,237,247,136,119,177,134,172,202,144,213,14,53,251,124,255,156,244,125,243,237,192,231,249,199,104,131,210,134, + 103,86,45,103,95,87,39,87,29,56,74,120,246,60,74,107,226,54,117,112,233,124,31,91,176,67,169,195,223,144,15,175, + 220,15,175,58,245,186,215,174,251,213,191,121,159,232,233,42,162,163,10,66,88,144,10,109,21,70,180,147,60,165,32,165, + 118,108,187,164,79,53,32,75,117,134,64,164,241,51,237,23,223,216,165,132,13,217,230,122,82,228,145,242,27,151,45,49, + 75,127,175,210,76,236,165,22,36,245,46,37,17,26,43,45,210,66,190,144,197,118,117,35,19,203,93,119,223,207,211,207, + 222,197,149,215,94,203,198,29,87,208,243,250,59,178,71,30,124,124,237,86,107,215,71,130,61,79,88,234,127,202,115,254, + 195,47,134,187,185,146,212,198,242,245,164,177,38,19,164,158,198,75,174,139,47,22,128,18,72,52,204,150,224,216,192,189, + 159,155,152,188,252,142,209,210,213,239,225,209,83,159,226,154,141,115,60,113,230,243,156,27,191,150,177,157,63,194,47,13, + 12,242,249,143,252,37,123,246,62,141,20,22,75,26,51,100,219,185,244,32,48,38,193,90,8,163,8,41,4,158,151,193, + 207,248,56,82,165,211,179,196,16,6,17,58,209,20,11,121,180,78,173,56,150,252,160,51,110,6,107,45,137,214,237,205, + 248,212,156,94,41,133,116,124,34,109,209,113,136,43,18,106,243,9,165,206,44,215,94,181,149,135,31,57,206,216,234,43, + 25,25,219,197,225,67,15,115,248,192,3,212,234,227,72,17,162,128,140,155,198,205,234,86,132,159,203,209,104,70,194,166, + 11,196,241,95,10,73,179,107,152,46,109,172,254,30,250,241,41,43,24,16,121,38,169,34,173,37,80,105,142,154,43,51, + 72,94,154,70,62,19,70,152,98,158,71,174,189,156,179,27,86,211,113,232,56,131,211,83,232,182,141,238,165,243,93,0, + 208,35,223,226,226,136,83,102,198,247,96,109,3,118,29,223,117,217,138,159,252,195,223,17,61,93,101,140,105,130,171,210, + 182,202,74,84,27,8,46,142,157,77,123,74,99,211,88,153,148,93,110,79,184,172,109,195,144,2,43,144,164,230,235,90, + 132,169,203,95,123,26,102,144,72,68,202,175,90,211,30,99,139,246,224,169,189,81,213,206,155,50,194,32,210,102,36,205, + 170,151,146,66,111,15,65,164,185,253,142,219,249,195,223,251,35,238,249,210,221,220,252,218,87,177,237,182,155,249,108,199, + 31,246,111,91,92,92,81,177,162,119,28,59,225,130,254,78,133,255,210,50,105,54,229,196,46,122,74,91,82,129,225,67, + 192,239,242,210,244,40,115,144,236,133,115,49,60,120,93,210,24,249,226,123,255,237,171,78,118,255,81,207,198,109,239,228, + 174,147,159,225,138,145,179,140,85,239,229,153,201,141,120,189,87,243,174,95,93,199,138,187,254,134,175,126,234,111,105,180, + 2,132,148,56,9,196,42,193,8,75,70,120,72,3,58,140,145,89,73,198,177,132,141,58,65,210,66,40,65,198,207,128, + 53,40,71,209,217,213,141,177,150,36,14,201,122,57,180,73,176,50,211,30,4,216,244,102,34,210,40,232,40,73,109,85, + 131,32,192,69,129,136,105,73,203,212,228,52,229,142,65,110,188,97,29,247,62,178,155,254,161,27,217,124,249,205,44,223, + 176,133,67,251,30,231,236,241,251,16,97,72,33,91,64,121,150,196,26,140,114,105,136,212,144,204,2,21,107,56,219,168, + 176,58,55,74,168,147,239,225,157,85,82,23,169,78,90,58,46,15,175,95,143,149,18,247,185,250,238,37,29,169,13,82, + 27,206,151,75,156,191,122,39,199,163,152,177,74,133,76,43,160,171,25,162,171,181,75,104,242,114,94,167,109,223,130,32, + 61,12,76,67,41,7,171,38,4,171,58,111,184,38,179,97,213,10,48,205,20,80,218,166,232,152,212,10,73,146,182,93, + 98,169,52,21,150,56,14,9,91,13,130,160,133,20,2,141,197,241,92,116,98,81,72,208,130,68,107,162,88,227,58,30, + 82,72,180,17,120,249,84,60,39,17,8,37,41,20,10,40,183,61,186,183,96,147,118,176,158,72,91,51,99,45,210,202, + 182,103,177,73,135,249,74,82,232,233,160,50,49,193,47,252,236,59,120,255,251,63,205,196,228,56,155,55,111,224,254,171, + 174,206,215,191,242,229,101,74,138,161,78,99,15,255,123,104,13,240,237,61,102,50,164,155,216,51,164,155,216,75,220,153, + 36,93,57,249,125,224,115,192,79,1,231,95,68,69,37,73,87,49,118,66,101,23,236,14,97,232,142,250,212,216,95,253, + 254,111,92,206,47,255,169,191,105,251,79,115,207,225,15,177,189,251,36,55,47,123,146,7,46,92,160,150,187,158,87,220, + 241,111,89,177,250,50,62,251,177,223,227,248,161,221,100,29,7,37,178,41,99,227,8,140,4,65,76,54,83,38,91,44, + 34,125,65,206,115,200,56,170,205,163,9,242,249,34,202,245,104,5,1,190,239,163,148,67,98,82,32,87,74,33,244,146, + 252,65,145,201,248,152,212,166,158,140,167,144,74,225,185,89,154,145,69,182,34,102,231,38,24,27,27,229,134,107,87,241, + 204,254,61,148,114,59,65,141,176,121,251,32,99,195,27,56,114,240,75,204,77,95,192,247,32,239,187,52,98,80,237,16, + 178,165,214,232,193,233,51,52,130,26,201,247,48,222,91,34,168,217,8,81,116,232,238,234,72,23,109,173,229,187,53,163, + 112,218,161,134,177,82,244,118,119,211,227,56,228,187,58,185,112,239,35,168,90,253,18,162,188,212,231,211,125,161,242,21, + 40,130,156,135,14,11,203,38,10,217,238,93,183,220,146,150,249,246,185,221,33,33,192,10,145,190,184,34,45,215,177,154, + 168,213,96,126,118,146,70,179,70,28,181,104,5,13,116,3,226,88,179,88,173,208,106,182,208,218,48,51,53,211,246,37, + 22,136,88,210,213,213,197,220,194,2,70,74,138,165,14,234,173,58,177,78,245,42,43,87,143,210,223,223,71,169,80,162, + 183,183,143,108,169,4,82,161,218,83,155,165,164,80,129,104,175,40,216,180,220,247,50,116,118,247,112,235,171,174,101,122, + 98,138,193,129,53,172,127,253,237,153,217,175,124,121,100,153,49,163,46,20,159,133,214,239,125,135,234,37,3,172,252,14, + 32,37,218,237,217,223,167,220,25,47,230,126,126,57,152,24,22,12,226,172,143,157,219,185,48,31,253,207,63,248,13,255, + 199,223,243,159,217,113,245,59,121,236,208,215,152,169,60,197,173,91,15,113,120,98,146,131,19,55,144,95,249,42,254,197, + 191,219,206,51,247,125,132,7,238,251,4,179,231,79,145,83,2,235,103,168,89,77,214,201,128,86,72,235,16,197,150,86, + 37,38,151,41,224,186,46,205,122,147,222,222,62,242,249,220,197,22,55,73,98,130,32,32,159,47,96,180,126,78,6,97, + 12,142,163,200,102,253,148,196,206,229,48,198,144,36,9,174,43,137,163,144,106,181,198,252,124,149,129,161,94,214,173,201, + 112,234,196,5,58,75,155,152,171,79,147,47,174,231,138,171,7,57,121,226,49,142,236,189,27,130,38,42,159,67,40,41, + 45,8,167,253,156,53,90,117,30,108,125,127,46,222,45,133,49,148,84,36,250,123,107,97,38,172,69,91,139,136,34,230, + 10,5,158,184,241,26,42,247,63,134,170,84,47,161,202,75,1,160,167,190,197,221,217,3,37,160,171,5,67,206,182,157, + 133,13,91,54,129,14,46,146,194,66,166,160,35,68,58,38,215,180,35,94,130,128,51,71,78,18,183,90,156,60,123,138, + 133,197,5,130,32,68,89,133,53,6,63,147,105,231,139,91,134,7,135,211,133,73,199,161,163,51,79,28,133,12,143,118, + 164,137,161,113,68,198,43,210,217,81,38,137,99,22,91,117,22,39,35,38,130,128,3,218,82,238,232,164,171,167,143,190, + 129,65,186,122,123,17,106,41,35,93,94,220,137,2,75,161,92,162,114,161,198,202,85,3,212,226,212,200,97,211,77,215, + 240,245,193,254,126,59,49,181,78,8,49,16,88,59,223,13,137,255,45,238,143,75,169,1,115,164,33,121,223,174,170,89, + 11,252,87,224,20,112,125,58,69,252,182,99,54,63,173,52,169,97,29,11,190,144,137,76,146,9,62,246,222,255,132,174, + 84,217,126,199,91,25,191,48,198,223,223,251,113,110,222,58,75,199,232,151,120,236,236,49,90,185,155,185,234,246,247,176, + 249,218,215,242,204,131,159,102,247,61,95,100,122,230,48,142,178,8,153,39,50,9,36,1,50,48,68,6,130,36,70,38, + 10,165,28,6,7,7,47,26,142,165,94,215,105,162,234,18,32,165,55,25,139,227,166,162,66,221,30,203,63,55,154,119, + 145,82,18,199,49,11,243,243,20,242,121,124,63,203,200,64,63,213,217,211,212,235,46,165,66,39,243,205,10,34,238,100, + 213,170,219,232,239,26,228,192,179,119,179,24,206,209,240,60,215,166,97,154,50,223,150,122,124,47,189,151,104,131,127,0, + 148,11,133,111,200,129,255,94,31,11,120,73,194,92,46,71,207,29,55,113,100,255,17,70,246,29,226,18,61,253,34,1, + 232,53,223,60,94,78,171,31,254,2,100,25,178,13,200,55,202,157,94,185,88,120,238,242,124,190,27,95,59,31,70,27, + 141,43,4,11,211,179,92,56,115,158,7,191,126,31,197,114,39,195,163,203,72,104,209,55,214,137,142,90,116,119,116,81, + 89,92,36,54,17,142,43,40,230,75,36,113,76,152,196,20,75,229,52,143,42,138,40,148,10,228,11,57,16,22,87,102, + 41,116,20,210,246,75,150,49,214,210,108,133,204,207,92,96,118,234,2,67,195,35,44,223,184,1,148,215,78,134,16,44, + 169,26,189,76,6,43,37,86,196,44,46,84,33,137,25,91,53,74,112,221,174,238,250,39,191,176,62,3,107,198,224,204, + 155,160,146,255,54,79,212,19,164,86,171,223,137,100,94,178,136,248,98,187,10,250,207,124,251,152,153,32,125,206,133,0, + 37,16,242,140,180,42,145,33,182,85,229,99,127,241,223,57,55,127,154,31,121,235,47,16,103,255,35,159,223,255,247,108, + 236,219,205,109,203,14,112,114,102,154,51,19,219,241,58,47,231,234,215,255,18,219,175,123,3,207,62,248,9,30,255,234, + 199,169,213,171,180,156,136,134,209,120,65,11,191,208,194,46,54,81,178,128,155,117,241,51,62,158,227,34,132,162,209,106, + 162,164,75,24,68,196,113,140,231,101,80,109,65,160,235,58,237,73,153,38,155,205,34,5,248,190,79,24,134,105,204,15, + 16,199,17,173,102,147,74,173,2,18,54,111,238,99,239,254,35,52,163,245,248,110,158,102,18,208,170,75,74,29,107,217, + 113,117,7,15,62,249,89,106,179,23,164,133,108,29,188,127,3,226,119,193,126,183,245,201,146,37,111,196,115,137,171,159, + 4,62,109,204,247,12,220,190,45,233,221,54,116,107,109,219,72,183,181,92,216,127,248,18,186,188,152,215,109,241,5,62, + 169,83,182,69,168,52,106,94,230,11,37,225,56,18,99,211,81,174,160,173,223,177,96,49,24,171,81,82,208,170,55,88, + 152,159,97,239,222,39,201,21,92,54,110,94,77,179,213,162,148,201,224,23,50,72,147,33,142,34,202,229,18,133,114,137, + 68,39,68,65,64,33,155,37,155,203,167,252,141,209,228,140,143,114,36,137,73,72,76,130,18,138,140,78,91,2,233,164, + 161,125,133,130,79,169,109,200,30,55,42,204,140,95,160,111,120,20,107,4,86,56,136,139,194,69,7,199,247,113,154,25, + 38,46,156,33,142,12,110,206,101,228,77,175,247,206,127,242,11,171,54,88,187,206,192,83,143,65,229,67,192,193,111,226, + 111,2,224,215,72,179,180,95,236,69,178,68,115,126,1,184,163,253,125,47,52,244,93,34,251,115,105,5,160,141,148,122, + 10,165,164,73,136,51,18,220,22,247,125,238,125,212,79,158,227,245,239,254,77,70,175,255,89,78,158,126,128,227,143,127, + 134,203,86,76,112,229,80,200,145,241,195,204,85,174,194,27,216,192,43,223,248,107,92,126,205,235,248,244,223,253,79,78, + 28,60,128,54,14,213,100,150,48,108,161,100,6,33,4,189,189,189,228,115,89,194,32,196,216,212,27,104,41,1,99,201, + 196,222,201,56,23,125,130,148,227,160,148,66,57,10,207,115,46,102,143,45,249,18,197,113,68,181,182,136,227,123,40,199, + 5,19,177,110,93,31,143,63,117,150,56,92,75,206,87,72,63,33,137,93,92,217,143,162,72,35,140,29,4,93,198,210, + 177,8,78,25,162,151,91,49,136,54,232,76,146,186,215,205,145,186,40,22,121,241,170,244,239,89,53,100,45,197,56,230, + 224,214,13,212,138,5,244,254,195,112,137,23,122,249,99,248,54,24,137,66,62,143,116,36,214,36,41,255,44,100,26,73, + 35,20,182,173,235,17,198,18,54,27,180,90,117,250,6,123,232,40,21,105,197,85,188,188,79,169,179,139,170,205,49,61, + 49,137,104,70,148,10,69,206,94,152,160,214,104,176,56,51,67,78,185,244,12,150,24,24,30,192,43,228,241,51,62,120, + 30,158,35,113,76,130,176,6,169,45,113,24,166,21,142,209,72,145,198,254,10,99,81,2,206,158,62,73,161,212,65,190, + 208,209,142,45,94,26,249,75,220,140,79,33,219,73,88,63,68,179,17,82,206,185,172,223,181,139,61,163,195,189,27,207, + 93,88,174,161,191,23,198,143,67,252,4,223,24,209,211,108,223,89,95,234,182,181,109,183,110,187,72,247,195,14,240,15, + 87,62,18,82,143,146,159,77,43,160,76,40,101,102,210,203,40,199,177,88,147,42,140,115,46,236,221,243,5,78,76,236, + 225,214,183,252,75,174,190,225,237,68,3,235,121,224,200,215,233,170,62,195,43,86,213,136,230,191,204,179,103,158,161,82, + 190,153,222,225,43,233,91,185,139,243,71,143,80,82,62,137,81,44,198,18,43,211,74,181,163,163,3,173,45,173,86,72, + 62,159,199,109,139,21,151,44,91,93,215,35,81,26,167,13,50,182,237,23,148,198,252,152,246,126,24,228,218,124,80,163, + 209,32,10,35,146,208,208,106,132,184,82,162,154,130,245,235,11,60,253,196,17,124,103,53,184,10,229,184,84,171,115,220, + 126,199,107,56,59,189,215,137,235,139,93,2,74,205,182,47,244,2,47,111,23,76,3,171,219,207,239,111,241,141,246,173, + 255,40,109,144,5,147,104,122,87,47,103,119,111,55,157,247,62,204,194,37,16,122,249,0,100,128,169,70,5,109,52,158, + 16,8,41,150,214,183,144,207,11,249,22,54,193,36,33,97,28,18,26,136,172,67,182,208,65,172,5,159,253,224,231,147, + 252,145,51,81,249,194,68,131,102,43,156,179,194,132,81,8,88,65,162,77,67,39,40,87,234,70,214,167,81,40,120,153, + 238,110,183,212,215,231,169,254,190,172,237,239,247,220,145,97,89,88,214,75,71,111,7,165,124,14,207,53,160,35,146,176, + 133,176,144,81,10,27,133,156,57,126,130,141,219,46,79,31,156,18,24,155,234,31,51,121,31,213,82,216,216,112,104,239, + 1,54,94,185,133,209,177,85,176,126,99,62,60,119,97,181,130,205,85,184,240,255,192,228,8,232,85,237,202,36,79,170, + 247,153,253,46,248,129,165,29,165,107,218,96,246,205,23,79,79,90,113,185,2,10,129,177,185,89,37,164,193,161,16,180, + 208,174,36,214,14,89,215,82,153,57,206,199,255,228,215,56,254,208,125,220,244,182,159,101,195,214,215,177,184,112,45,247, + 159,122,136,13,229,211,108,31,29,103,166,254,73,162,243,67,228,106,147,88,199,208,148,139,120,162,128,105,37,120,74,210, + 217,217,73,198,203,224,56,46,133,66,234,19,20,133,81,202,233,56,146,32,104,145,205,230,47,102,205,107,157,242,63,218, + 24,146,86,3,109,76,234,17,148,205,166,70,102,237,141,251,88,74,106,139,115,120,202,210,242,44,218,10,178,89,201,101, + 59,243,60,189,247,16,61,93,215,80,79,90,116,44,203,112,249,117,155,25,191,115,64,6,231,143,229,114,80,168,131,219, + 1,65,129,151,182,127,190,180,186,28,144,250,119,247,112,209,115,251,31,253,8,32,14,35,114,133,60,111,186,241,90,62, + 122,239,195,232,75,32,244,242,0,40,11,198,206,204,196,81,148,168,76,214,77,53,55,214,182,137,222,182,74,217,10,48, + 49,113,171,133,175,92,58,253,60,25,229,227,10,159,7,247,61,203,194,71,63,95,191,221,154,195,89,216,35,211,106,249, + 31,12,136,108,172,177,113,3,170,13,244,248,148,171,57,216,21,195,64,4,61,11,66,246,93,200,251,69,53,220,159,111, + 140,141,22,114,107,87,120,107,118,108,21,195,171,150,211,219,85,34,136,91,116,151,60,166,43,11,84,234,243,148,139,93, + 232,68,163,149,64,197,22,33,92,158,125,234,9,146,19,231,216,125,224,36,251,190,248,69,198,182,111,167,153,207,58,79, + 192,218,87,10,110,139,45,139,30,220,223,7,115,222,243,218,176,230,119,121,39,13,129,219,72,45,68,119,242,141,230,235, + 30,105,124,143,134,188,128,129,5,207,235,108,42,71,120,90,32,149,34,81,2,97,5,73,96,112,85,1,215,141,217,247, + 244,231,57,120,224,49,118,94,117,19,55,191,254,103,24,89,255,54,206,206,157,224,220,133,167,232,244,142,210,223,125,138, + 145,174,57,114,202,39,104,25,172,87,33,10,22,200,229,11,100,243,57,130,176,133,163,36,158,151,65,8,73,156,196,56, + 110,6,99,37,141,70,64,177,20,130,205,33,109,26,241,19,39,1,137,78,240,253,18,54,106,96,13,132,97,152,106,130, + 28,143,140,231,17,4,33,100,28,162,160,6,139,22,175,100,104,36,62,197,142,60,163,67,49,227,51,135,160,80,96,197, + 134,213,204,84,3,236,64,159,154,131,222,2,140,72,40,253,66,106,24,247,146,193,125,201,210,228,205,252,96,198,244,232, + 36,161,92,200,243,230,27,175,37,119,223,195,44,84,47,129,208,63,0,160,225,111,65,66,251,41,49,104,179,96,250,143, + 159,106,86,166,23,51,197,229,253,34,229,129,12,234,226,186,68,58,148,55,70,147,232,4,37,5,133,124,142,64,39,8, + 44,173,243,231,185,202,154,233,28,220,19,192,23,61,24,247,47,6,0,191,240,157,77,131,106,64,209,131,46,15,122,58, + 172,233,95,85,111,246,36,71,78,245,53,142,156,26,108,222,245,64,255,184,159,29,126,106,221,218,1,239,53,183,248,59, + 111,184,154,213,195,221,148,18,216,247,204,30,174,187,249,150,116,132,172,193,120,30,135,190,254,40,147,79,62,203,168,117, + 136,109,76,56,95,227,236,221,247,49,236,23,196,99,219,119,12,179,111,223,43,110,208,201,100,3,78,159,132,106,247,243, + 110,164,115,237,73,213,119,115,98,210,77,249,183,124,83,27,118,30,232,6,53,9,61,2,70,79,249,217,174,138,78,112, + 19,75,36,93,26,58,65,201,4,132,197,146,128,149,56,190,143,164,202,67,247,126,138,221,123,30,231,234,27,223,200,43, + 110,125,11,254,208,143,48,94,27,231,236,133,103,248,250,222,251,241,243,46,30,5,116,24,145,152,0,215,47,2,6,161, + 68,187,186,209,237,236,120,77,162,227,116,162,169,53,73,152,16,169,22,202,247,144,210,193,90,73,28,181,200,203,12,126, + 156,2,163,177,10,84,134,70,28,227,88,40,228,114,32,114,44,52,4,93,210,210,172,47,162,242,69,106,21,65,71,38, + 203,193,201,167,25,222,122,13,221,197,65,230,206,61,66,105,216,99,143,155,25,92,21,135,235,68,106,198,54,245,157,84, + 11,182,13,54,89,82,239,159,191,36,141,81,250,65,63,113,146,208,93,200,179,251,198,235,232,190,247,33,184,4,66,223, + 8,64,31,248,22,37,164,74,51,183,26,2,170,250,194,249,248,212,83,187,245,200,138,55,56,152,56,229,128,158,95,48, + 11,129,17,130,216,26,60,47,131,206,103,72,26,49,213,48,34,123,252,92,50,10,167,99,120,170,12,251,143,64,237,99, + 60,103,216,245,66,21,195,43,65,172,5,57,148,218,187,122,58,245,141,206,73,33,202,69,107,187,243,48,212,31,180,54, + 13,237,221,123,217,227,135,14,109,121,255,167,191,216,187,235,221,111,146,239,124,237,143,112,126,226,32,179,179,85,122,74, + 101,172,178,60,113,207,3,204,60,248,12,189,137,203,162,14,72,124,23,139,164,208,140,233,118,51,116,92,117,19,95,157, + 154,237,223,49,113,110,99,14,150,73,56,114,20,226,28,255,48,66,247,187,45,203,91,164,30,64,180,43,161,227,41,247, + 211,45,96,163,145,106,237,25,100,222,152,180,183,21,130,52,173,194,74,164,18,196,38,85,121,199,38,65,90,75,62,231, + 19,53,230,248,218,231,254,150,189,143,125,157,181,87,95,207,214,203,110,98,164,176,145,185,74,158,124,182,129,113,154,232, + 208,65,24,151,222,174,62,60,55,131,209,22,235,62,71,154,10,169,48,86,224,42,139,2,148,240,49,38,70,27,23,43, + 20,249,194,16,35,99,221,212,227,41,26,141,42,74,7,100,140,164,228,122,52,99,152,175,213,241,114,57,98,109,137,162, + 38,217,2,56,56,100,45,8,109,153,156,156,166,111,104,25,107,174,184,153,153,185,113,156,224,8,59,95,113,35,95,191, + 255,80,169,126,124,207,72,6,186,207,130,243,63,32,105,188,192,243,109,218,36,115,12,252,27,224,198,246,215,252,83,242, + 130,214,73,66,35,159,227,236,13,215,176,101,223,97,226,83,103,47,45,181,46,1,144,255,173,91,7,13,76,41,56,210, + 169,147,43,206,61,252,104,39,111,125,61,98,105,157,93,152,180,245,18,233,116,74,27,155,218,48,196,26,27,197,248,174, + 143,240,74,20,206,94,168,23,82,223,151,115,171,160,245,44,240,249,239,240,160,124,176,99,160,71,65,111,134,240,46,168, + 29,2,177,222,90,153,128,147,133,156,65,236,206,97,247,223,26,69,215,109,59,124,120,215,23,255,243,255,90,243,191,142, + 158,45,188,225,221,63,198,153,163,103,233,185,246,74,238,253,244,167,169,60,180,155,46,55,71,147,16,47,159,101,106,106, + 156,201,133,89,150,245,13,144,201,56,12,58,25,250,55,110,80,227,19,231,122,214,65,103,5,188,46,104,244,145,106,127, + 158,127,7,254,174,198,180,164,41,132,197,118,235,85,77,63,50,157,176,198,194,245,161,114,214,158,21,194,83,82,32,77, + 106,76,2,169,162,215,216,37,11,1,129,209,237,142,55,106,33,133,164,232,100,104,206,30,229,145,79,61,203,222,47,127, + 148,101,3,43,112,154,51,8,25,99,28,7,43,12,153,124,7,224,209,106,134,228,114,170,29,1,38,241,60,31,19,4, + 109,11,15,133,112,125,66,4,58,49,100,173,139,137,67,74,189,131,172,94,117,3,129,219,160,90,25,167,114,254,12,141, + 241,83,152,218,60,133,172,194,218,132,230,194,28,126,206,197,68,9,113,224,35,203,30,177,142,152,159,169,51,189,80,97, + 227,13,175,39,50,157,248,225,35,244,173,88,77,82,188,6,151,191,17,9,168,12,168,4,196,23,218,213,230,11,157,1, + 224,39,219,191,38,255,68,47,52,155,36,116,231,114,76,189,98,23,149,66,30,111,223,161,75,32,4,56,175,248,22,127, + 81,1,115,4,102,90,112,160,27,206,78,236,217,55,92,175,7,94,54,171,48,70,183,149,207,207,191,83,165,147,176,44, + 138,140,149,148,186,122,120,252,169,103,233,156,156,152,151,112,214,194,236,57,208,111,0,254,11,112,250,59,60,176,165,26, + 107,105,204,58,1,182,3,244,97,208,191,13,225,126,108,173,46,228,116,36,196,153,110,163,79,188,91,39,175,248,218,7, + 62,116,197,99,103,207,117,154,205,91,188,147,251,15,138,234,19,251,88,153,47,19,232,128,40,171,104,85,107,184,40,114, + 217,28,243,205,6,211,181,58,203,178,9,3,67,131,84,148,83,210,58,233,117,33,191,31,22,178,237,187,239,104,187,90, + 89,154,132,137,23,104,13,94,10,225,246,252,11,168,0,69,3,27,4,98,71,75,80,170,72,97,173,54,36,198,166,123, + 113,109,107,18,251,60,204,23,168,212,39,210,154,182,108,161,133,194,82,118,75,216,56,224,216,137,71,232,236,232,99,96, + 96,3,70,70,132,166,198,192,80,47,74,57,24,29,227,58,94,106,28,143,192,104,157,146,200,113,140,149,14,210,86,72, + 140,143,16,121,226,56,34,227,123,24,221,162,94,159,33,215,177,154,129,238,229,244,119,93,65,188,174,194,252,212,41,42, + 211,39,80,139,231,112,231,199,105,53,102,201,72,151,164,161,193,248,160,20,245,230,44,214,19,248,189,35,196,149,3,140, + 22,230,161,112,25,39,78,156,134,179,135,227,66,26,85,168,151,146,80,95,8,128,254,93,58,37,164,183,205,163,253,83, + 142,100,182,198,16,7,17,3,91,54,176,63,159,195,63,116,148,124,165,246,207,58,90,200,121,226,219,0,128,77,187,134, + 51,57,56,161,247,29,216,122,238,240,177,194,134,203,55,162,105,181,151,77,219,190,199,82,34,218,134,89,38,163,136,48, + 36,174,67,50,49,75,95,20,77,27,56,231,67,245,44,216,113,210,176,191,255,240,2,83,161,239,212,194,40,158,139,251, + 217,2,201,39,173,153,217,134,172,205,41,103,194,96,39,110,215,58,56,118,207,253,215,254,233,179,7,6,244,53,55,136, + 45,195,163,84,234,53,50,217,12,213,133,58,253,221,61,248,29,61,244,234,144,90,189,70,208,10,113,98,139,109,181,104, + 10,81,86,176,49,20,98,75,217,90,115,12,90,18,188,30,200,180,65,48,216,14,205,24,162,10,36,175,2,51,198,115, + 49,210,170,61,53,179,223,226,34,81,109,238,98,22,56,75,26,53,61,4,185,0,6,21,182,107,193,245,212,28,86,40, + 209,246,225,65,182,141,226,45,218,166,254,58,142,148,104,169,72,172,193,74,75,98,12,194,26,12,6,35,19,172,107,8, + 165,32,223,223,67,215,96,63,245,202,28,174,3,25,233,18,71,33,174,163,136,194,144,140,159,26,146,213,226,56,117,20, + 48,22,35,211,113,187,140,12,210,19,132,162,69,70,120,120,246,44,3,250,20,241,252,8,85,49,66,226,244,163,253,101, + 184,67,187,24,28,189,28,25,207,19,213,207,241,232,221,159,39,172,30,167,25,79,192,180,71,103,103,9,108,72,84,247, + 200,196,45,138,242,12,34,51,64,192,48,167,15,252,111,26,166,34,4,162,96,176,221,125,224,191,29,90,255,235,155,158, + 179,159,110,243,60,147,252,240,100,193,139,118,75,118,104,213,24,238,216,8,93,135,142,81,46,22,200,122,223,56,15,210, + 198,180,29,37,126,200,1,168,247,219,220,173,207,64,18,195,84,6,142,118,206,207,205,28,190,231,190,222,181,151,111,148, + 26,131,176,18,99,44,82,138,246,226,168,196,85,14,145,23,161,28,69,53,137,48,71,143,7,101,152,146,48,81,131,214, + 191,39,93,59,200,127,15,30,120,210,174,138,214,89,211,186,160,205,169,33,169,108,2,203,234,136,29,215,108,189,92,174, + 29,26,33,10,154,36,36,204,78,204,179,122,221,90,138,217,60,213,122,149,176,217,66,70,134,178,85,224,88,198,122,250, + 216,219,219,159,143,38,206,95,230,166,180,250,122,139,93,48,136,18,216,142,246,150,255,188,129,113,9,51,207,192,220,143, + 64,179,149,238,113,133,203,161,121,103,26,251,99,103,193,22,33,185,21,204,70,176,109,87,1,100,27,132,154,237,22,204, + 73,253,1,18,43,68,224,88,27,238,21,34,179,104,141,202,180,13,121,76,123,186,40,108,90,13,25,44,113,18,131,146, + 23,183,213,109,123,41,216,160,144,196,72,45,17,81,150,206,82,23,157,69,143,218,92,72,62,91,66,99,112,165,67,33, + 151,197,113,93,220,140,135,148,18,173,19,60,215,193,106,75,66,136,84,46,54,17,224,36,68,73,66,98,19,108,220,162, + 39,43,88,53,50,78,61,58,205,212,130,195,228,162,207,108,216,71,160,198,176,249,101,228,186,183,113,213,237,195,60,240, + 241,223,68,196,51,76,78,78,18,199,13,146,160,202,217,83,139,76,29,254,26,195,253,62,13,255,90,166,39,231,184,98, + 213,58,30,184,230,21,153,167,31,184,111,249,21,176,173,14,7,222,10,117,7,226,223,121,222,107,124,45,124,15,13,58, + 126,176,142,27,39,88,4,147,27,215,242,112,108,233,126,228,32,151,111,88,131,20,130,158,142,46,98,223,225,212,112,192, + 234,249,35,63,212,32,228,204,124,7,222,194,135,69,11,135,58,224,232,153,47,126,105,108,226,39,223,92,28,232,43,163, + 19,221,118,62,20,24,99,17,6,114,194,197,58,14,67,165,46,142,213,90,168,233,153,192,75,141,167,102,124,136,127,227, + 121,63,59,7,252,53,112,231,119,113,39,17,192,161,116,34,162,255,212,232,133,6,204,42,41,131,174,108,14,207,90,180, + 209,92,152,155,98,205,242,149,4,58,161,53,59,75,173,81,163,209,168,147,203,231,201,10,197,162,74,200,27,67,180,110, + 149,247,224,236,196,104,167,160,39,31,155,43,124,75,3,172,159,3,207,73,219,176,166,130,57,7,166,61,152,12,82,35, + 179,200,73,53,116,83,37,104,154,212,43,32,114,97,254,38,168,89,72,198,65,151,161,181,3,90,25,72,202,160,175,4, + 179,10,120,28,90,89,107,231,91,82,182,158,208,137,103,164,159,238,102,37,150,68,164,249,92,210,128,86,233,230,191,35, + 36,198,104,210,42,41,5,39,129,76,197,78,137,64,138,182,119,180,142,241,4,20,179,69,60,223,167,22,215,136,147,144, + 56,118,208,198,224,122,30,25,63,131,49,138,36,136,136,194,16,75,130,144,14,117,147,80,84,26,47,80,216,102,72,100, + 251,121,252,252,50,78,214,106,140,20,38,25,235,213,108,236,155,195,154,113,206,205,238,231,196,124,15,83,199,135,201,116, + 108,102,211,150,171,56,183,239,126,84,62,67,103,79,23,171,151,239,224,150,215,102,153,159,158,103,114,188,14,225,97,154, + 11,243,140,150,11,220,246,186,183,115,239,153,211,35,171,206,156,190,170,8,199,5,204,172,129,137,78,176,141,118,165,171, + 190,7,220,91,234,109,109,47,70,87,127,203,246,200,90,164,146,66,57,202,10,243,127,79,194,232,0,115,51,21,166,39, + 22,184,229,202,157,88,11,113,162,193,194,189,59,251,104,57,30,187,118,239,35,225,135,51,167,195,217,245,29,190,224,49, + 104,85,225,120,14,246,116,60,245,244,166,211,247,63,189,110,224,45,183,99,68,170,17,86,58,139,164,133,69,145,144,32, + 133,193,149,30,78,208,192,204,205,68,18,170,57,104,124,1,204,31,180,73,216,165,22,175,249,93,60,240,12,112,21,169, + 10,246,6,96,30,226,24,230,134,140,158,58,120,116,223,134,96,120,84,29,189,48,73,103,95,47,245,86,64,92,173,147, + 247,179,20,10,57,18,155,208,208,33,129,182,104,161,72,170,13,122,123,202,202,125,235,155,74,214,186,229,217,106,125,32, + 142,66,194,74,213,122,81,152,196,54,164,30,104,225,90,73,41,137,66,181,184,216,234,136,194,86,103,28,71,202,232,166, + 50,118,209,215,186,233,98,181,132,64,195,84,11,230,69,10,70,129,133,105,9,51,2,230,151,193,76,4,243,71,161,238, + 131,235,66,102,194,24,47,191,118,141,44,47,44,18,214,235,72,87,33,141,193,152,212,168,40,117,55,209,32,76,123,83, + 61,141,82,150,8,16,169,58,221,74,151,68,26,172,136,17,194,16,39,233,96,160,209,104,97,149,68,138,84,152,105,219, + 62,220,73,18,227,72,213,22,150,90,180,246,208,45,133,173,215,241,125,23,137,33,50,33,94,71,15,197,254,107,145,249, + 14,78,212,207,115,118,122,150,130,188,64,89,158,98,176,212,228,21,131,14,54,57,203,68,235,28,135,91,57,206,61,61, + 207,79,255,244,187,24,29,217,198,211,251,31,97,106,246,12,202,184,108,94,191,138,254,101,99,220,249,217,221,204,197,69, + 70,135,70,217,250,227,255,218,123,248,189,191,179,233,117,213,249,27,170,48,177,6,30,126,4,22,159,1,251,197,231,77, + 12,95,238,49,192,244,194,12,29,29,57,162,56,249,14,0,132,152,24,215,120,158,123,49,125,246,255,246,153,254,166,106, + 192,72,201,167,124,88,238,72,250,18,243,67,211,134,126,51,0,127,219,179,46,37,163,167,66,216,223,209,106,157,62,254, + 55,31,28,91,127,253,43,253,114,159,151,78,188,108,2,2,148,204,160,114,25,162,106,19,167,88,162,88,109,208,129,142, + 73,199,249,118,241,185,201,207,119,38,235,218,15,76,61,239,207,75,21,207,211,192,47,183,63,159,125,30,169,123,11,4, + 121,56,219,1,199,87,46,204,108,123,242,196,190,158,140,246,40,248,89,202,142,34,235,251,104,87,80,181,17,249,21,3, + 12,244,118,210,104,53,177,113,194,220,212,52,51,187,199,185,108,213,70,209,33,60,146,82,55,90,88,132,53,34,177,198, + 109,186,16,4,1,42,189,248,157,32,12,243,73,98,168,36,26,27,37,152,32,180,45,221,50,68,129,201,86,234,177,91, + 173,5,162,82,105,9,173,181,103,146,200,105,52,22,125,99,230,114,48,147,129,211,26,142,135,112,18,33,93,97,205,170, + 9,199,235,222,118,245,53,156,250,210,157,132,214,96,100,90,221,72,1,86,166,147,48,97,212,146,137,118,26,84,36,68, + 154,72,138,76,189,149,72,117,89,54,129,66,182,132,182,130,88,235,116,130,102,64,40,65,156,36,237,148,12,80,66,97, + 116,186,43,39,29,151,196,24,164,8,145,97,140,13,242,180,132,64,197,30,243,139,211,60,244,192,123,217,114,217,13,116, + 140,141,162,115,131,196,238,8,13,189,129,11,211,103,136,142,29,166,171,40,24,27,113,48,245,115,252,220,187,175,103,93, + 95,157,39,30,254,51,194,240,24,219,7,71,169,212,138,28,222,115,132,83,135,87,242,166,31,123,7,95,254,200,71,72, + 14,31,100,96,229,70,46,220,254,134,238,71,63,254,215,87,95,13,115,13,88,240,97,119,3,154,57,190,55,171,20,19, + 139,21,94,123,197,90,74,133,252,119,4,33,99,140,181,63,96,54,171,145,235,112,202,110,162,247,177,125,63,156,45,216, + 99,47,98,124,12,180,20,156,148,112,40,127,255,189,27,14,127,253,254,209,235,222,113,135,208,214,96,149,65,227,165,102, + 244,74,33,132,32,227,123,72,215,33,178,246,37,197,168,23,219,147,142,114,202,63,177,145,84,41,188,240,60,78,224,120, + 155,200,245,248,198,45,243,126,72,234,112,65,195,190,85,179,139,151,77,214,102,186,54,93,245,10,89,12,67,50,170,192, + 140,12,81,197,28,43,55,109,100,104,205,10,156,98,150,32,9,137,130,16,105,45,217,66,47,245,147,19,248,89,72,116, + 11,141,70,234,20,61,77,75,80,148,2,161,99,172,16,20,164,2,207,65,102,221,37,79,52,81,149,90,25,101,149,103, + 133,155,196,113,46,49,150,80,107,148,1,211,10,160,214,52,157,211,211,13,255,236,177,185,176,82,155,30,17,226,168,197, + 84,34,216,220,88,191,161,99,217,134,245,84,63,246,145,84,151,211,54,230,90,138,72,22,214,98,132,2,37,73,255,233, + 212,9,50,137,13,70,75,144,62,74,106,76,18,98,146,152,108,54,67,24,54,137,147,0,65,202,33,105,13,185,108,39, + 90,39,169,17,125,123,9,53,181,47,81,88,19,145,36,9,17,14,81,208,174,146,154,9,73,125,150,82,118,142,112,230, + 62,138,93,43,144,129,68,235,136,196,106,178,217,18,178,184,134,11,245,44,181,51,17,181,70,133,91,54,94,205,35,247, + 222,201,198,177,38,221,197,49,162,102,158,137,164,130,191,90,48,25,87,201,184,176,101,203,229,60,248,137,207,18,52,37, + 35,171,54,240,208,246,237,203,123,247,236,185,126,21,76,159,133,218,74,56,42,32,204,182,227,154,95,46,36,40,128,86, + 204,93,79,29,231,95,253,232,237,20,115,89,162,56,254,118,247,189,31,188,201,153,235,48,151,47,147,60,182,239,135,114, + 90,230,108,126,17,61,116,8,201,65,184,96,16,79,246,52,195,13,39,255,224,247,203,43,175,92,95,30,90,54,132,49, + 25,140,10,145,194,162,28,23,161,28,28,199,165,148,117,201,27,243,146,28,115,239,109,143,98,111,32,221,193,122,8,120, + 42,173,194,184,21,24,35,221,249,249,237,209,110,26,175,216,136,8,82,75,8,41,5,225,125,7,236,225,217,218,124,3, + 246,116,88,246,244,30,62,190,108,124,221,198,190,53,157,157,92,168,205,211,179,125,61,87,223,124,61,110,46,131,113,4, + 185,98,30,71,41,38,206,158,37,14,90,108,186,122,39,31,63,240,33,234,170,68,62,91,0,107,240,4,100,61,135,188, + 54,132,128,201,180,109,72,196,115,153,101,75,30,57,153,216,193,70,6,100,130,239,40,148,77,16,82,146,104,144,221,5, + 220,222,188,76,214,174,47,26,179,181,248,165,135,246,44,47,31,56,180,238,199,9,23,38,161,152,189,102,123,214,201,8, + 194,48,198,207,58,109,240,73,35,101,172,105,71,239,200,4,35,20,82,120,88,171,48,177,192,234,152,56,106,18,199,117, + 50,74,144,207,101,233,44,118,160,148,64,8,155,154,134,197,17,174,114,136,181,161,21,182,200,229,178,40,165,136,162,40, + 181,93,69,16,39,26,147,24,116,18,35,176,233,186,134,147,163,190,88,167,195,87,188,229,103,95,203,192,96,23,113,28, + 34,76,130,52,169,105,153,227,148,153,152,147,124,238,171,123,25,159,126,156,43,182,230,56,118,110,145,226,250,87,17,200, + 83,28,57,118,138,153,133,73,74,125,17,214,134,228,76,68,227,224,103,89,59,186,130,135,74,46,141,184,138,51,221,98, + 195,117,183,136,207,157,155,88,251,115,115,83,183,102,211,61,252,135,214,97,79,91,152,95,132,166,110,143,234,159,95,13, + 191,148,115,102,124,154,63,254,240,157,252,226,91,95,69,169,144,251,118,32,244,131,7,64,34,37,172,127,104,73,232,23, + 3,251,58,29,133,46,14,10,158,54,150,21,157,79,61,51,240,212,95,254,237,198,219,126,227,151,92,55,163,211,241,173, + 112,144,210,65,58,10,157,196,116,117,22,201,186,110,219,98,254,219,191,105,124,82,187,139,92,251,223,242,218,119,175,32, + 29,127,47,145,225,23,99,120,107,195,221,236,126,219,213,100,60,7,225,58,24,207,97,112,172,143,161,223,255,124,184,23, + 142,187,240,240,198,74,107,205,125,7,14,118,30,187,252,106,119,231,245,87,112,245,107,95,133,151,205,165,62,214,66,32, + 76,140,176,130,254,129,33,166,207,157,167,111,69,63,21,23,62,253,241,79,4,87,117,14,76,140,40,213,202,11,37,202, + 25,95,120,70,91,143,36,84,74,218,80,91,217,178,86,33,5,197,40,168,106,173,109,36,85,102,198,58,217,166,116,164, + 201,122,194,31,232,43,228,123,123,138,185,82,103,169,156,119,133,34,65,52,234,216,48,192,201,186,236,220,190,131,207,52, + 131,242,157,23,78,101,87,68,161,94,117,229,14,113,122,110,254,226,126,138,16,92,180,187,16,237,63,91,97,145,210,66, + 146,144,104,77,28,6,228,178,138,109,219,215,176,115,231,6,6,7,250,89,190,124,53,205,38,60,240,192,19,68,113,66, + 20,69,88,107,209,73,154,15,102,109,66,146,164,6,244,105,56,161,67,46,155,199,81,46,129,14,169,213,2,114,37,15, + 43,99,172,208,104,13,141,106,147,122,117,134,164,187,132,49,25,164,128,216,90,4,25,180,245,249,223,239,251,3,62,251, + 165,123,121,219,107,199,24,240,135,137,206,62,192,200,174,215,80,11,86,80,218,182,140,214,228,126,142,31,219,199,80,209, + 208,229,58,76,28,121,152,142,242,28,17,167,56,51,211,203,224,192,24,121,109,96,235,86,255,35,247,126,109,219,59,160, + 80,196,174,183,112,48,134,67,83,105,209,59,57,13,181,24,194,206,151,89,170,92,152,154,227,125,159,248,10,255,242,109, + 175,254,39,7,66,63,212,99,248,229,47,226,139,22,83,222,37,249,5,107,207,157,135,7,59,96,244,204,135,63,222,115, + 244,214,107,135,151,111,94,78,38,223,131,240,28,60,215,195,145,30,49,134,216,106,98,215,83,34,245,20,194,182,57,155, + 111,30,193,215,72,125,148,243,109,82,90,191,192,164,107,137,80,92,250,92,235,169,19,108,253,177,63,97,247,117,235,185, + 80,240,177,203,122,25,60,62,193,44,216,5,88,40,73,113,176,104,236,225,222,61,251,214,53,174,189,105,224,198,31,123, + 39,137,14,48,109,163,117,4,104,41,17,214,160,74,29,248,3,9,65,163,202,174,155,47,35,249,244,167,247,190,101,252, + 100,3,40,170,116,75,221,145,96,36,68,6,90,54,157,110,77,89,88,84,208,20,233,194,68,70,67,46,134,76,12,158, + 62,66,182,226,120,229,179,29,221,195,251,7,7,135,157,161,193,242,178,190,65,183,47,223,75,172,96,172,91,240,234,157, + 235,57,209,95,114,31,218,119,76,252,233,246,157,226,209,15,126,100,137,12,189,152,151,150,122,46,153,52,5,68,184,72, + 35,48,73,72,49,235,242,138,155,174,225,182,219,94,201,166,77,107,40,20,178,104,29,226,120,89,246,236,57,77,24,5, + 68,113,154,59,18,197,26,41,51,8,35,48,164,153,97,126,166,221,138,216,152,40,12,41,20,242,212,91,13,130,88,147, + 49,160,109,4,186,65,172,21,81,51,166,213,146,248,8,116,220,66,40,69,44,92,156,156,207,211,207,62,195,125,15,222, + 69,94,249,100,84,39,121,191,128,27,79,83,158,184,11,71,75,142,78,187,148,70,54,51,58,230,33,22,158,37,8,103, + 48,174,230,208,161,51,172,217,212,65,159,189,158,82,239,54,130,112,158,203,86,95,205,201,181,55,149,255,122,247,23,182, + 118,28,220,189,106,103,189,181,107,53,28,207,194,129,24,14,78,193,97,5,167,47,164,34,209,208,121,25,111,246,241,233, + 121,254,236,19,95,229,23,223,254,42,138,249,236,119,228,132,46,157,255,11,0,52,255,34,191,240,33,160,15,90,87,194, + 65,3,247,14,158,155,26,222,243,71,239,237,44,253,206,111,229,50,190,38,155,45,80,46,101,80,66,18,217,24,183,152, + 71,45,27,245,245,225,227,217,16,252,155,64,190,234,121,165,244,18,152,212,73,85,176,159,123,9,99,85,155,104,114,137, + 102,242,171,123,56,6,76,57,138,13,214,162,64,14,9,242,218,82,114,32,211,165,49,61,235,151,131,202,226,196,97,10, + 131,82,96,219,53,153,149,14,177,213,20,122,122,177,81,196,230,109,91,184,48,50,224,150,78,76,22,45,20,3,48,115, + 105,118,151,246,192,22,192,203,66,38,129,121,224,209,4,206,56,16,9,200,56,80,80,144,247,133,40,88,232,238,76,162, + 193,177,217,137,179,149,217,137,206,211,251,232,61,151,43,244,62,211,213,215,39,58,186,243,163,235,199,252,98,206,119,94, + 185,113,187,200,116,244,184,217,98,153,201,233,185,148,116,54,105,194,136,84,41,63,99,76,140,181,6,87,248,68,97,204, + 202,229,67,252,198,175,255,75,182,108,92,1,54,33,138,18,162,86,12,196,40,233,50,59,51,135,239,231,9,163,6,202, + 241,240,132,106,251,100,91,176,54,245,90,106,171,160,43,149,10,165,82,137,122,195,16,39,1,82,1,184,8,225,96,73, + 147,48,144,138,133,74,19,163,178,104,33,17,38,196,8,129,181,25,190,240,169,123,136,155,10,95,41,102,79,44,128,238, + 161,123,32,198,149,103,136,231,224,194,211,179,68,227,231,89,185,186,159,242,138,141,116,13,140,112,254,244,9,78,79,45, + 32,131,26,29,180,144,241,33,186,202,89,84,255,50,70,54,111,96,230,71,222,236,76,158,61,85,126,232,209,251,202,143, + 60,122,215,242,213,39,246,110,223,105,146,211,157,112,32,129,103,38,96,183,129,83,59,97,177,6,177,247,18,11,162,243, + 211,115,188,255,227,151,64,232,159,204,20,108,233,60,145,146,192,118,21,44,28,21,226,41,215,218,209,206,47,62,52,248, + 212,234,79,109,187,230,23,127,222,169,45,44,96,35,7,71,129,16,22,47,227,209,185,105,75,46,184,235,222,225,2,12, + 20,225,248,40,180,158,239,187,236,1,79,146,202,173,95,108,95,255,66,239,182,237,137,22,245,52,126,106,192,71,108,149, + 214,222,120,24,113,249,131,163,3,93,255,250,218,45,128,64,75,137,37,73,53,52,86,32,177,160,5,170,157,79,223,85, + 238,66,74,151,248,242,29,195,247,156,248,242,254,72,8,119,118,217,80,39,91,55,149,71,134,150,201,206,76,54,62,188, + 119,95,179,116,255,253,23,182,65,103,132,141,52,156,146,80,237,2,49,14,202,3,71,88,155,113,32,167,5,29,210,210, + 215,1,195,87,192,232,21,205,122,223,98,179,222,213,56,127,178,120,240,192,147,189,143,143,173,222,184,113,219,206,206,219, + 55,174,227,238,191,249,36,103,206,78,226,100,50,237,69,223,246,30,152,76,147,79,165,6,75,68,54,47,120,219,219,223, + 72,189,94,101,102,102,134,254,190,94,132,208,224,136,52,58,25,143,241,241,25,164,244,145,78,140,21,85,140,141,144,210, + 18,69,26,99,12,82,42,98,157,16,5,33,66,8,226,56,68,74,129,54,45,170,213,6,249,108,9,95,229,9,194,42, + 74,65,146,68,84,26,139,212,77,3,43,19,124,1,190,155,101,247,238,125,124,245,174,123,208,72,106,113,131,103,15,159, + 226,252,226,38,186,199,58,81,73,196,196,220,34,187,118,173,101,245,152,33,227,183,72,58,60,76,118,136,51,213,5,182, + 223,242,106,238,251,227,15,179,102,125,63,214,137,105,212,22,41,134,103,144,11,130,78,127,3,185,194,50,198,222,244,11, + 52,238,248,113,239,252,222,199,134,62,243,192,157,125,35,123,239,91,179,179,190,176,173,11,182,37,240,164,134,253,187,225, + 108,17,230,55,65,180,159,23,31,113,187,4,66,191,240,182,87,81,42,92,2,161,127,84,0,250,173,23,249,133,173,116, + 212,205,40,232,9,107,199,107,130,7,187,12,253,231,223,251,151,217,71,58,10,235,95,249,83,111,144,141,197,102,26,27, + 44,5,50,134,193,45,235,220,211,66,140,89,107,215,122,176,111,1,90,30,207,173,44,36,237,10,40,251,18,30,240,18, + 80,133,164,41,21,243,160,174,130,114,21,214,10,184,38,177,246,154,61,142,186,108,207,170,141,203,6,174,190,76,14,246, + 244,3,150,216,73,144,218,32,100,6,131,64,137,246,35,176,26,161,65,228,178,20,125,151,107,127,250,39,250,159,90,179, + 166,227,242,237,59,221,205,87,94,33,7,6,250,241,148,2,145,97,174,81,235,254,47,111,253,137,98,249,203,95,93,92, + 14,235,76,90,13,86,130,174,156,126,56,159,73,134,39,170,97,54,209,205,94,168,248,150,201,4,142,251,144,55,208,165, + 5,253,121,33,6,242,198,142,45,179,108,89,125,230,76,240,145,102,115,235,202,222,219,123,243,139,117,250,154,77,78,233, + 136,166,35,145,56,68,113,219,78,22,137,84,6,99,45,90,27,86,173,92,201,232,112,7,199,142,31,96,177,209,162,191, + 103,144,114,49,135,213,17,137,129,153,233,89,194,216,67,71,154,160,25,163,117,76,34,99,4,14,142,82,132,65,11,107, + 92,28,71,96,180,69,107,75,146,88,28,233,225,170,136,66,206,39,104,52,83,123,85,44,73,28,179,48,211,64,73,69, + 147,26,245,106,130,176,17,7,142,28,229,45,239,124,35,171,214,174,38,95,40,208,221,81,102,213,202,110,30,127,226,107, + 116,84,78,179,110,101,142,19,167,78,81,77,178,116,14,150,168,31,127,132,19,39,190,192,230,155,111,227,177,199,31,230, + 83,159,123,128,119,47,191,149,238,145,45,212,235,17,65,116,146,188,62,75,71,253,36,121,14,80,173,116,18,184,27,88, + 189,227,54,130,237,183,58,11,103,158,233,125,234,177,207,117,116,223,251,197,209,229,11,211,91,123,96,127,2,79,207,195, + 211,111,134,83,175,72,205,79,227,23,107,195,122,126,122,142,247,125,252,43,252,203,183,191,250,18,8,253,99,2,208,111, + 191,20,77,66,27,136,28,104,97,57,28,193,151,70,19,237,156,248,159,127,168,30,42,103,215,94,251,250,183,136,168,122, + 6,27,43,84,162,232,218,190,220,185,176,105,213,160,222,127,124,125,219,246,116,166,10,250,239,218,213,79,22,216,192,119, + 182,86,48,237,15,153,2,160,152,6,25,167,252,76,126,27,244,44,194,38,7,174,31,151,188,242,220,192,200,202,198,142, + 173,165,155,70,134,193,8,62,255,39,31,226,186,55,188,154,245,87,109,66,219,24,107,52,162,157,154,97,37,88,43,81, + 70,98,173,68,72,197,77,183,190,138,155,110,123,109,38,93,116,139,176,198,164,22,22,38,160,59,239,243,250,255,248,43, + 29,119,223,119,223,192,170,86,184,50,132,21,37,152,94,86,240,26,215,254,206,91,57,114,190,198,226,175,127,212,58,25, + 87,111,74,52,43,180,73,230,33,248,40,44,92,111,57,171,172,205,70,136,161,38,200,85,54,46,141,9,102,14,206,84, + 122,175,236,233,228,45,219,119,176,122,120,144,175,29,220,195,133,153,69,140,147,5,41,177,73,76,36,99,148,200,98,2, + 203,201,99,167,184,238,154,215,176,108,85,63,205,0,142,31,62,199,252,220,34,35,195,125,4,65,68,101,113,30,215,45, + 179,56,191,136,159,201,17,71,146,70,163,74,198,151,248,25,159,68,71,88,155,32,132,135,231,101,136,99,112,28,31,97, + 20,229,130,139,235,89,164,155,38,126,26,12,94,198,101,97,174,202,212,133,26,142,239,208,217,53,72,177,84,226,95,239, + 188,140,92,71,169,189,165,223,78,26,181,146,7,190,250,36,193,66,200,232,96,204,230,245,203,153,89,116,104,212,170,68, + 97,139,93,215,92,201,195,15,31,226,191,253,225,167,89,140,28,238,255,242,39,120,203,143,175,162,232,119,81,149,155,168, + 216,117,212,90,169,101,71,201,158,98,212,59,77,101,106,15,161,222,66,121,232,42,226,119,110,119,155,55,189,97,240,209, + 251,239,238,203,220,243,169,53,151,205,143,111,238,130,13,9,60,213,5,71,3,56,223,130,249,22,132,241,139,0,162,241, + 153,121,222,251,137,175,240,115,111,185,149,174,66,238,82,202,233,63,6,0,245,190,140,111,10,129,255,15,170,151,195,238, + 10,176,170,169,197,233,255,244,135,60,214,146,107,118,188,253,102,105,91,85,130,160,2,133,50,133,55,189,161,103,126,255, + 239,109,40,192,218,105,56,243,21,88,252,111,237,159,147,5,254,15,208,249,45,52,28,73,123,244,222,9,162,9,238,83, + 224,143,65,105,10,186,61,232,3,134,93,88,101,96,203,161,156,191,109,239,154,13,99,219,215,95,38,70,50,9,173,184, + 142,107,50,20,206,204,241,224,255,249,48,65,229,141,108,191,237,26,52,139,168,56,1,229,161,201,34,173,196,72,137,176, + 81,106,178,166,117,59,58,90,96,81,72,233,32,150,242,233,117,194,117,87,95,197,3,183,221,56,52,243,185,175,12,118, + 10,54,212,45,199,15,159,93,12,30,251,47,159,215,255,106,253,16,191,1,140,253,250,79,51,246,181,199,40,61,178,151, + 66,250,248,205,221,16,174,135,112,25,214,137,97,110,26,244,181,63,254,182,242,132,163,168,157,153,32,235,101,217,62,180, + 140,85,195,203,248,155,175,125,153,163,11,149,180,66,145,16,11,137,65,35,177,92,56,63,142,137,13,97,208,164,92,234, + 229,198,155,174,103,252,252,105,46,156,63,207,137,35,231,168,53,91,148,74,5,114,121,143,86,171,73,18,71,120,202,69, + 181,165,157,158,155,199,203,164,177,58,73,172,145,42,38,8,234,100,28,15,199,247,136,146,16,17,164,137,24,253,189,125, + 108,218,124,5,235,214,173,160,111,176,135,98,169,132,114,220,52,230,89,199,36,173,58,66,73,140,86,168,140,225,228,193, + 11,220,249,247,15,115,235,149,189,140,207,88,38,38,103,240,179,89,100,70,160,114,61,124,242,238,125,124,232,131,79,17, + 219,60,142,155,240,212,83,95,100,126,113,130,155,110,254,49,150,173,186,145,200,207,18,20,251,72,138,61,232,214,10,26, + 245,167,41,101,46,48,160,38,89,152,57,78,203,221,72,166,107,35,234,45,219,85,237,230,55,247,62,250,192,103,58,7, + 191,242,209,209,85,243,211,59,58,224,176,128,61,6,246,238,131,147,62,204,119,180,239,109,223,110,247,112,106,122,158,123, + 190,254,36,111,127,235,109,196,65,240,131,55,134,151,75,130,211,31,82,0,122,185,126,199,191,10,246,189,80,217,6,207, + 84,128,229,141,186,158,252,205,255,126,243,151,159,217,179,110,251,123,126,202,31,30,44,18,53,91,148,111,186,193,187,240, + 55,31,93,95,56,123,97,151,134,99,151,195,193,253,16,149,219,163,245,163,164,118,120,226,121,31,103,64,172,2,121,1, + 252,13,144,143,82,109,98,95,19,134,29,88,230,195,88,13,70,23,97,240,28,12,76,45,27,232,17,107,175,204,245,101, + 186,168,207,46,226,118,65,156,5,145,40,10,194,195,209,154,167,62,254,85,148,231,177,229,198,109,152,164,133,21,46,137, + 214,120,74,99,117,64,101,126,30,41,92,202,93,253,128,131,69,182,251,61,139,21,150,176,85,33,137,19,10,221,195,236, + 250,137,31,237,57,240,185,175,12,189,2,177,198,40,177,34,214,102,241,213,199,38,235,61,199,38,77,2,12,61,190,15, + 198,103,196,49,144,66,8,222,97,173,249,20,216,38,72,3,29,64,127,0,114,213,101,59,212,198,177,17,190,246,251,127, + 198,154,142,110,116,28,208,159,205,241,234,203,118,113,246,174,47,147,56,30,194,58,56,66,18,91,131,116,4,71,143,29, + 199,154,52,251,188,85,171,34,112,25,89,53,198,208,178,101,140,173,88,164,220,55,200,163,143,62,205,161,67,7,169,54, + 230,112,132,67,198,201,18,39,49,186,73,154,124,42,36,142,43,144,74,160,140,193,10,77,98,18,58,187,58,89,179,110, + 5,155,54,111,100,205,186,181,12,13,15,145,205,57,24,27,166,22,32,6,76,146,164,105,35,78,123,173,195,182,141,234, + 85,7,239,253,203,223,224,169,19,71,40,117,110,228,240,196,113,150,173,42,49,49,222,224,236,217,179,52,131,152,179,147, + 139,44,38,77,148,235,33,181,79,87,214,99,252,228,147,124,224,240,1,54,111,121,45,175,188,253,205,116,47,91,142,113, + 61,34,53,74,152,93,206,108,120,6,79,239,102,48,123,148,188,152,226,216,228,50,146,194,46,74,29,235,176,111,251,101, + 167,250,138,59,70,239,187,251,115,195,197,175,126,120,227,206,122,101,103,55,236,9,225,225,8,30,219,2,167,239,132,240, + 150,111,83,101,91,32,115,248,36,79,62,186,151,61,219,214,254,192,105,110,172,182,120,113,130,211,158,16,255,176,97,145, + 243,114,191,177,9,252,28,216,223,129,234,245,240,76,12,97,95,146,204,21,62,249,185,27,158,120,122,239,142,158,159,121, + 91,207,21,119,220,72,255,166,85,28,124,215,219,6,103,255,251,31,94,221,13,251,59,224,194,126,152,105,144,138,11,51, + 41,143,195,29,224,132,224,27,200,157,132,156,16,162,179,0,35,218,218,81,23,70,66,24,173,193,232,108,70,13,85,151, + 143,118,71,27,54,20,135,175,186,194,221,184,124,132,43,202,30,95,255,139,123,161,101,209,229,60,117,211,164,172,125,92, + 153,37,16,146,216,9,232,52,134,7,63,242,25,138,3,93,44,91,191,10,27,7,184,142,38,104,85,169,77,77,18,6, + 45,84,38,71,161,88,66,122,105,59,102,1,132,33,104,86,153,60,119,18,147,64,20,132,92,121,237,101,242,145,203,86, + 13,5,79,159,24,113,16,87,186,66,196,85,107,199,31,135,202,27,160,89,252,202,35,145,0,91,149,82,72,229,48,26, + 71,252,120,74,184,103,67,88,225,192,242,102,111,79,103,207,142,77,157,29,253,253,68,158,143,49,150,68,1,73,200,246, + 101,99,108,26,26,100,247,248,56,158,244,17,86,146,88,141,116,28,206,157,31,103,97,190,194,208,96,153,90,163,73,117, + 113,14,227,196,116,116,245,48,48,54,200,107,86,142,113,203,107,111,229,217,189,123,121,240,222,251,121,248,193,71,153,56, + 63,133,148,30,57,183,128,227,42,194,168,65,173,17,226,251,14,125,125,93,172,90,179,156,173,91,183,177,117,219,22,134, + 151,13,166,182,171,198,16,235,132,80,71,169,37,172,77,121,162,116,12,105,177,54,245,132,178,6,92,47,195,158,199,143, + 241,249,79,61,194,181,175,249,121,250,10,27,89,49,154,165,48,178,154,199,38,79,240,245,103,31,192,77,36,82,101,80, + 94,54,141,36,180,13,50,142,207,112,255,86,140,8,153,158,188,155,143,188,255,62,198,86,92,201,229,55,188,145,225,245, + 151,33,61,151,68,46,71,139,229,28,174,236,161,211,28,98,77,247,121,102,91,179,204,206,174,193,45,109,39,91,90,71, + 231,143,254,170,92,188,229,142,222,175,124,254,131,221,93,119,127,113,213,85,113,99,101,1,74,49,124,169,4,167,247,131, + 254,78,237,152,186,247,9,214,61,178,7,97,127,0,5,209,75,202,248,31,70,0,250,249,31,187,227,101,127,115,40,4, + 227,90,219,229,159,189,183,50,219,10,247,84,97,222,135,115,219,79,158,62,53,254,159,254,215,229,15,127,242,139,171,86, + 190,243,71,75,249,85,171,229,190,130,191,188,175,30,12,7,144,149,164,194,195,129,182,14,104,64,144,47,35,70,98,107, + 215,74,88,150,129,158,196,218,254,58,140,205,73,70,167,187,75,189,254,214,141,197,190,107,175,202,110,189,254,58,57,184, + 97,61,157,93,93,228,60,15,18,77,117,110,150,51,219,78,179,247,177,253,100,108,142,156,91,38,12,99,84,70,226,34, + 8,181,65,139,58,185,88,242,200,231,191,194,200,202,159,69,217,144,96,161,202,92,181,78,88,115,112,165,196,198,81,218, + 178,184,217,54,87,4,104,77,88,91,64,154,4,172,96,126,250,2,163,203,71,89,249,230,215,246,237,121,250,143,187,175, + 210,102,27,208,237,192,116,11,38,59,225,212,28,156,171,192,124,193,152,16,27,155,12,216,115,32,26,208,225,195,234,16, + 58,162,203,118,12,12,44,31,201,0,204,218,132,185,249,10,29,253,69,140,78,200,36,17,55,239,184,156,221,231,63,77, + 228,104,18,43,48,214,128,181,44,86,235,156,60,115,129,161,129,14,226,32,2,5,149,185,84,76,209,217,219,143,142,35, + 28,79,114,249,149,219,185,226,202,29,252,196,79,253,24,251,246,28,224,137,199,158,230,240,225,163,8,145,142,224,215,174, + 219,201,43,175,191,150,117,27,214,208,211,221,129,200,120,96,53,38,14,208,137,69,27,1,66,33,80,32,36,66,164,27, + 249,105,46,156,68,155,36,213,39,161,48,49,188,247,15,255,128,53,27,174,99,243,85,111,34,23,204,176,125,85,7,103, + 90,189,108,191,106,43,123,239,251,56,81,165,65,44,45,218,196,16,249,184,210,16,198,85,170,181,2,93,221,157,108,223, + 178,21,76,194,249,201,3,220,245,201,67,44,95,249,74,118,92,119,7,157,99,43,9,173,193,235,221,202,124,180,146,218, + 236,110,86,230,206,177,206,123,154,201,197,25,234,254,86,156,100,140,114,223,213,116,253,202,118,121,250,85,111,239,250,240, + 159,254,215,87,190,227,216,222,74,25,14,206,193,248,209,212,219,233,219,15,55,180,70,54,91,63,144,23,169,37,221,16, + 216,244,188,63,255,176,0,145,243,59,191,246,238,151,255,221,74,98,90,17,61,119,63,206,211,173,176,57,11,39,214,193, + 124,0,39,70,44,123,226,221,7,118,46,238,254,205,205,161,159,233,93,158,36,167,53,92,80,16,68,164,251,92,127,159, + 246,231,170,19,49,96,148,122,85,148,232,91,166,50,238,234,70,95,87,201,27,91,150,203,237,220,84,232,189,242,106,247, + 170,237,155,233,31,91,70,33,95,64,160,177,38,65,199,49,81,171,133,43,28,10,249,78,174,184,126,23,123,158,217,71, + 216,140,73,132,139,41,42,78,76,143,179,170,220,75,81,56,52,109,64,62,91,96,238,228,9,230,206,156,162,80,204,80, + 169,212,121,252,201,61,124,240,125,127,205,205,175,190,142,119,253,228,59,8,91,33,174,159,180,125,28,52,205,197,69,90, + 243,139,88,29,162,227,244,197,159,157,156,224,182,55,189,195,255,223,79,28,219,250,245,3,7,123,152,158,93,219,91,173, + 47,174,176,204,101,96,82,192,73,13,135,106,112,2,107,103,14,64,115,17,148,11,125,2,198,166,17,197,145,87,189,106, + 48,167,28,180,209,204,218,128,189,19,11,220,177,236,10,154,245,5,194,176,197,182,21,43,184,122,205,58,30,56,121,140, + 68,185,169,233,153,84,4,81,200,161,163,39,184,250,170,205,184,78,10,14,214,66,101,118,22,79,42,114,165,46,180,128, + 132,4,97,45,221,125,93,220,248,170,91,185,254,230,155,105,181,26,24,157,0,134,92,161,128,114,50,64,132,77,52,38, + 137,48,86,35,5,40,71,130,78,9,122,179,148,45,212,78,154,21,50,181,106,148,86,97,181,197,205,149,249,226,167,238, + 228,171,247,220,207,143,189,231,15,241,187,122,112,170,83,152,150,192,196,9,157,221,253,244,116,140,50,62,127,20,199,1, + 45,35,146,88,224,186,89,92,229,210,106,213,152,153,75,144,86,179,124,120,140,203,119,172,38,138,66,90,213,89,206,237, + 254,40,97,243,42,220,225,109,248,189,61,72,153,195,25,188,141,115,141,115,148,155,79,49,82,154,160,170,90,76,235,38, + 51,147,5,230,239,188,11,142,236,182,203,42,139,13,9,201,210,82,243,146,31,211,203,145,120,188,148,243,188,148,170,212, + 120,236,123,120,161,54,72,227,190,151,28,58,127,104,42,160,197,234,119,97,122,32,37,34,140,232,49,150,67,41,113,28, + 119,192,244,2,84,90,112,202,194,238,14,88,39,130,176,23,152,116,225,169,24,42,187,218,252,79,51,125,98,101,221,218, + 222,86,146,92,190,251,230,235,111,189,252,103,127,212,95,121,229,101,116,118,15,80,46,22,17,184,24,83,131,216,98,194, + 6,70,91,148,148,72,161,144,210,96,116,140,112,44,107,215,175,99,120,120,132,202,153,89,180,74,149,136,98,237,0,182, + 179,135,218,145,11,20,157,28,74,11,178,70,179,255,177,61,100,55,174,226,11,239,255,115,90,159,248,66,243,109,245,32, + 56,60,61,145,63,123,219,171,51,43,150,151,83,235,83,37,105,213,106,212,230,22,176,173,16,107,12,2,7,169,52,97, + 88,161,103,112,132,255,250,145,191,235,90,172,78,117,77,78,76,177,239,254,251,147,175,126,226,51,11,165,221,7,207,111, + 105,197,43,251,97,163,129,19,9,28,158,128,83,82,136,166,180,118,5,208,51,49,48,210,189,245,149,215,148,209,49,74, + 41,138,197,28,143,157,121,140,27,47,187,140,92,38,75,37,105,209,211,108,242,214,43,94,193,222,11,231,168,4,17,24, + 139,81,2,141,228,196,153,51,233,84,80,72,28,41,72,140,1,163,89,24,159,34,9,5,229,254,126,140,6,173,99,140, + 8,81,34,53,148,205,102,51,72,229,97,173,198,152,8,171,147,182,177,25,96,28,4,10,33,52,90,167,213,158,20,96, + 218,161,201,194,62,39,180,177,88,148,80,8,165,8,170,1,127,249,23,31,76,35,169,29,135,140,205,97,18,7,215,19, + 184,40,92,153,165,123,104,152,83,103,159,197,87,5,164,236,68,136,0,76,66,18,122,40,207,18,199,77,90,58,199,248, + 220,4,129,182,148,187,202,20,250,124,60,71,160,226,99,36,103,26,52,167,71,233,27,217,4,57,65,208,53,68,93,189, + 158,227,115,251,25,245,206,112,244,145,255,195,153,15,223,213,124,91,99,97,124,8,78,231,225,104,4,79,184,112,170,148, + 210,129,47,171,98,88,2,18,251,188,95,29,210,165,105,219,150,144,44,217,201,214,158,167,103,211,237,143,239,213,70,255, + 210,73,248,70,7,136,127,214,28,208,11,189,88,178,141,206,165,116,80,54,25,192,124,8,199,28,200,218,244,115,149,63, + 133,232,227,41,127,196,111,183,65,8,33,68,108,173,51,186,125,179,115,213,107,95,77,78,129,112,92,146,184,137,49,18, + 169,34,148,178,88,157,65,57,233,2,37,218,193,160,17,78,130,49,6,183,203,163,88,234,164,170,23,201,40,135,34,1, + 117,163,25,216,186,134,163,231,39,232,52,30,74,122,148,242,125,124,237,107,15,17,253,201,159,52,55,62,125,224,244,6, + 56,225,128,245,79,78,108,56,116,247,189,171,150,253,226,207,72,176,152,48,160,58,63,67,43,104,34,19,129,81,14,70, + 217,246,210,173,67,125,113,138,98,169,72,127,95,137,254,254,78,182,109,223,225,220,246,227,111,239,125,228,254,71,122,159, + 253,212,157,43,159,249,234,189,23,54,207,45,142,142,192,186,12,92,136,173,157,5,70,34,40,231,118,236,40,143,109,89, + 35,34,211,196,35,139,239,120,156,91,152,227,240,228,4,87,141,142,225,196,17,213,102,157,145,114,47,55,172,219,204,157, + 187,159,190,184,21,47,5,28,60,116,156,133,169,10,185,140,160,110,67,132,54,233,135,99,89,152,157,34,182,49,221,3, + 253,8,52,173,122,19,37,21,158,239,35,165,194,232,180,181,82,202,37,165,59,20,194,166,246,159,82,24,76,210,74,237, + 91,93,63,37,151,133,76,173,65,5,36,54,193,36,9,74,42,172,80,72,191,192,61,95,254,18,207,236,222,67,222,207, + 227,187,14,82,104,10,94,157,130,235,96,19,23,233,186,116,116,14,225,56,30,142,167,176,198,65,138,12,218,36,88,101, + 16,142,192,34,152,157,95,192,40,15,47,170,147,143,93,172,22,24,207,67,10,69,193,153,71,133,211,156,157,216,143,59, + 186,158,190,213,155,241,115,93,36,93,59,152,138,214,51,123,236,110,251,182,198,194,248,6,184,43,128,251,66,56,161,96, + 162,158,190,255,146,59,190,139,247,181,253,38,16,58,3,124,186,125,225,188,166,77,110,223,73,234,91,253,76,27,116,30, + 2,238,227,59,135,47,188,220,51,7,140,243,226,133,151,255,44,0,232,155,79,41,181,38,13,247,66,232,183,53,68,69, + 224,179,237,23,115,24,120,36,5,44,83,178,118,174,12,7,131,63,122,255,225,207,52,170,27,95,249,175,126,70,118,142, + 173,32,235,58,184,145,70,203,24,227,104,192,199,42,131,197,32,172,147,218,149,138,4,240,208,54,193,70,17,69,199,197, + 203,88,20,2,89,151,228,189,94,26,165,18,83,173,152,250,226,52,227,251,247,210,119,112,207,244,174,106,229,41,15,30, + 138,5,207,198,144,235,181,188,250,244,103,191,208,177,248,99,111,237,45,120,14,213,233,243,52,26,243,196,26,92,225,161, + 188,12,210,245,168,86,99,76,61,166,191,71,81,89,152,160,220,55,64,98,21,150,26,189,93,157,188,225,77,111,225,142, + 55,190,174,124,232,208,193,242,189,31,248,208,216,222,79,126,121,124,228,236,248,248,58,107,23,59,64,237,67,248,157,175, + 188,118,56,239,186,196,129,1,109,176,137,197,10,151,251,14,29,96,219,200,74,50,218,33,116,35,22,27,243,220,180,97, + 51,15,31,57,200,124,162,209,113,140,231,42,46,156,155,228,194,133,25,214,172,30,36,177,49,174,21,40,229,146,96,16, + 34,161,190,56,131,181,33,221,125,253,228,114,89,234,245,26,65,101,145,92,62,139,235,151,16,202,193,46,205,118,69,234, + 21,36,226,144,168,89,37,136,106,56,158,2,161,176,184,32,228,115,222,223,74,34,176,200,118,66,71,210,108,242,129,15, + 252,13,6,131,192,69,57,89,116,70,227,183,170,248,202,96,148,139,245,36,57,183,128,175,114,228,242,89,146,40,33,8, + 44,202,85,196,196,248,94,9,37,37,36,134,176,90,37,204,250,84,106,46,197,66,9,98,8,26,53,180,235,145,205,100, + 240,11,45,42,23,30,101,234,248,179,228,122,70,217,120,229,245,20,186,6,88,179,122,7,254,189,127,63,23,193,83,45, + 184,127,57,204,45,19,66,127,170,220,203,121,225,80,196,126,203,41,152,32,245,87,202,72,73,40,21,179,97,131,147,213, + 89,222,3,124,0,184,11,248,125,210,72,160,159,109,87,58,191,218,254,222,190,118,107,244,239,128,155,219,85,79,208,6, + 136,137,239,227,69,219,221,6,186,195,237,235,42,119,9,128,190,69,135,246,60,17,225,82,170,68,0,188,11,248,205,246, + 215,156,1,115,6,38,98,184,175,79,27,191,242,103,127,55,243,208,157,95,91,165,110,191,165,47,127,245,102,127,100,245, + 58,58,70,87,146,207,57,148,221,58,94,94,98,93,23,171,12,18,9,70,128,91,96,113,186,78,208,168,50,176,58,79, + 44,66,166,106,57,166,171,13,62,252,135,127,106,221,163,251,155,43,26,141,122,179,177,104,182,199,102,122,165,225,233,8, + 190,14,60,222,99,153,88,128,162,6,213,247,204,225,222,163,255,237,79,110,244,254,159,127,87,8,91,53,112,50,248,126, + 129,102,173,202,196,161,99,236,254,234,67,230,192,35,123,76,77,9,249,147,191,253,107,114,231,101,27,113,43,53,242,229, + 158,84,200,168,53,134,58,174,48,108,219,184,142,173,255,223,255,155,63,255,171,239,89,243,213,143,125,110,249,103,62,244, + 145,41,177,239,208,244,179,153,226,240,239,95,127,117,65,64,234,241,99,36,65,173,137,167,60,158,61,127,138,199,78,29, + 225,218,21,43,73,154,243,52,77,72,87,161,155,235,86,175,229,179,207,238,70,41,31,7,65,16,180,56,53,51,193,198, + 205,99,228,27,49,218,21,88,145,178,30,70,91,48,134,218,252,34,58,140,233,27,25,166,80,42,209,168,24,154,139,45, + 16,33,126,54,79,198,207,130,84,104,44,113,28,17,53,234,36,65,19,235,8,156,76,14,161,60,140,21,237,8,238,118, + 44,135,84,8,44,24,139,116,61,238,185,251,30,158,120,236,9,164,204,32,165,32,155,207,32,20,41,32,73,11,86,227, + 56,2,63,171,200,100,28,162,40,198,36,186,189,100,107,137,163,152,197,133,5,114,126,22,207,245,48,81,196,252,252,2, + 185,124,158,90,189,138,239,250,56,174,131,18,1,45,233,226,185,46,130,132,110,223,229,193,187,63,196,23,62,255,127,184, + 229,77,239,166,35,174,165,51,17,168,10,168,127,26,244,96,255,24,79,245,175,16,70,27,123,252,133,232,75,33,136,132, + 130,36,194,181,150,3,213,89,94,101,18,46,36,14,127,14,188,17,56,72,234,69,21,183,39,181,223,188,44,189,20,70, + 240,173,184,160,239,231,201,2,203,219,143,173,126,9,128,94,26,65,119,152,52,217,50,76,117,64,118,11,212,119,192,179, + 139,80,45,195,254,142,243,147,155,26,127,249,161,13,115,127,197,202,135,123,75,253,193,198,45,101,59,208,159,17,29,174, + 83,30,232,35,55,188,140,114,247,32,94,28,81,244,5,34,59,192,193,67,167,56,126,244,0,141,146,203,236,252,130,205, + 29,57,95,95,57,63,55,181,78,71,147,131,105,16,197,148,132,170,77,237,82,15,145,146,196,179,247,130,190,28,130,34, + 60,174,160,167,250,55,31,41,63,45,212,21,93,111,185,53,27,5,33,167,31,123,218,94,248,250,61,65,241,240,201,249, + 177,122,60,190,25,154,53,232,120,242,151,127,125,153,255,191,254,123,199,166,87,94,43,164,93,32,147,247,16,202,69,10, + 23,99,85,59,23,62,97,120,176,151,127,241,43,191,232,206,252,204,59,71,190,242,229,123,71,234,95,249,58,179,211,19, + 212,23,150,81,236,44,145,4,9,245,70,3,148,131,80,138,47,237,126,130,109,163,99,100,29,159,36,105,161,116,204,173, + 219,118,240,236,133,115,140,87,234,40,41,8,195,144,233,249,25,172,35,200,40,73,160,4,137,146,88,29,227,41,7,172, + 192,2,173,90,157,233,11,227,244,13,15,81,236,236,38,172,212,168,86,22,152,175,84,210,197,87,44,137,209,32,5,210, + 88,60,199,161,88,236,38,155,43,160,73,3,28,219,126,176,96,117,250,103,210,120,25,41,21,79,60,254,20,81,148,224, + 184,25,132,84,72,7,144,22,215,19,64,130,78,82,71,183,32,108,17,197,17,142,147,73,237,65,180,190,104,186,6,16, + 132,1,58,73,200,21,10,212,27,117,102,103,102,25,28,24,68,72,65,38,147,65,74,73,20,4,216,36,0,82,23,131, + 171,175,216,204,71,62,243,73,123,240,247,126,253,194,45,94,166,208,137,136,19,172,206,183,51,198,102,162,144,215,75,41, + 173,49,198,55,198,10,251,141,224,51,23,54,217,216,92,224,125,115,147,252,86,28,114,167,73,216,108,45,3,207,123,159, + 186,207,187,145,62,159,19,250,65,57,75,2,94,143,139,41,54,151,0,232,197,32,247,147,237,143,165,243,46,176,59,161, + 218,7,135,154,112,182,9,207,248,176,108,196,176,98,217,84,117,5,83,15,143,54,160,187,9,158,150,66,170,82,209,9, + 189,140,87,211,113,113,206,147,185,8,71,121,113,28,220,22,132,11,34,136,26,142,53,81,65,155,105,7,14,39,112,50, + 134,243,110,90,25,55,27,208,234,128,186,128,214,211,96,63,6,60,0,250,55,97,60,17,226,254,162,181,170,241,215,127, + 59,113,242,99,31,31,115,132,16,157,141,86,109,5,204,122,112,74,167,9,203,181,28,140,244,93,152,190,242,200,207,191, + 231,242,125,111,123,195,178,235,126,226,93,106,205,154,49,92,39,64,100,36,42,159,65,74,175,221,96,42,172,209,244,229, + 242,252,196,219,222,193,59,223,240,22,158,121,244,81,190,252,185,59,89,190,97,37,171,214,108,32,182,233,174,87,94,249, + 140,207,47,178,255,220,5,174,26,25,193,177,9,149,70,147,114,161,196,91,174,185,129,191,248,234,151,48,194,144,203,120, + 140,12,244,19,155,4,199,145,100,28,149,242,52,142,147,2,134,49,36,73,130,227,186,52,235,117,198,207,158,161,119,112, + 132,76,103,39,29,74,48,55,53,65,18,181,82,133,183,214,88,11,137,177,168,92,14,199,203,130,112,48,86,98,72,23, + 139,133,181,169,159,52,169,1,155,148,233,37,153,36,73,10,8,72,252,76,150,66,190,72,83,202,118,76,147,32,142,45, + 81,108,72,76,186,221,239,186,46,73,148,18,239,82,74,146,36,193,247,125,76,146,198,122,87,106,21,138,249,34,139,11, + 139,20,139,69,242,185,2,90,27,28,199,197,201,8,130,184,129,235,150,105,180,52,190,245,184,124,199,21,162,246,232,3, + 185,245,173,74,171,19,188,6,244,199,208,251,223,32,122,255,252,68,156,205,20,116,165,123,72,202,48,178,66,63,55,188, + 86,82,49,93,91,224,134,233,227,68,223,52,85,250,167,120,17,119,0,215,180,129,200,254,19,251,63,56,63,8,15,66, + 183,251,218,61,16,91,88,92,9,213,6,156,179,176,55,130,14,13,189,121,40,21,193,193,88,97,23,171,66,67,78,66, + 183,133,46,1,142,72,189,202,38,85,106,92,21,3,139,81,58,18,159,143,160,53,15,73,23,152,22,169,195,98,134,116, + 195,127,233,109,57,11,81,100,237,241,30,168,249,176,119,172,25,244,164,77,7,45,155,38,131,76,59,48,23,65,104,161, + 75,194,241,13,245,214,153,217,191,254,232,149,15,126,229,222,245,15,223,126,71,247,142,183,222,33,215,109,26,65,84,18, + 28,39,75,54,87,38,147,205,164,182,111,66,160,77,21,28,151,93,215,95,199,182,203,183,112,230,252,25,246,29,220,71, + 161,51,143,209,17,113,93,35,4,60,116,228,0,155,187,251,192,64,236,74,162,86,139,109,67,163,236,88,177,146,39,78, + 30,98,229,216,8,91,214,175,79,39,227,158,32,231,102,144,198,208,50,26,29,155,116,148,174,210,216,29,132,32,168,55, + 24,191,112,158,254,225,81,114,165,18,157,194,80,153,153,78,101,12,142,3,198,16,145,128,235,226,120,89,180,85,169,143, + 180,48,169,254,199,74,108,234,68,157,166,112,96,0,69,127,255,0,74,165,127,151,36,22,99,12,142,114,240,51,30,142, + 82,40,149,69,57,62,249,66,23,202,113,241,51,25,146,40,38,12,195,52,231,204,113,112,92,23,225,56,132,129,197,74, + 73,179,213,36,155,201,50,63,63,79,33,95,164,179,195,35,73,18,188,140,143,227,103,8,2,131,163,4,73,43,98,197, + 224,50,38,95,125,91,215,251,238,127,40,249,209,249,133,100,23,220,146,128,73,224,193,159,131,211,155,38,79,4,159,136, + 154,230,129,242,16,195,78,6,169,35,148,77,249,65,7,251,79,18,108,190,213,185,177,253,235,103,191,203,106,104,105,216, + 249,66,64,102,127,88,1,104,105,130,22,181,127,63,0,230,35,208,250,21,104,77,164,137,170,103,22,83,253,172,176,109, + 240,112,193,77,192,183,144,117,64,68,16,89,104,212,32,30,2,83,77,61,124,226,205,96,159,4,142,181,53,20,29,47, + 80,70,183,109,103,109,111,90,29,157,109,193,164,3,174,74,57,0,109,32,9,32,89,3,166,15,56,11,141,22,84,18, + 56,219,3,7,123,199,39,47,155,248,171,191,222,246,196,103,63,181,102,239,107,95,213,179,253,45,175,87,171,55,172,32, + 9,38,168,26,131,159,41,146,237,200,33,10,185,118,230,87,140,231,43,214,174,91,199,202,213,154,237,235,54,242,166,55, + 190,158,143,124,232,99,60,249,212,51,236,62,190,159,67,43,86,177,105,108,25,113,220,34,1,188,48,224,214,157,59,57, + 120,234,16,171,215,172,96,160,167,11,97,3,80,18,225,56,120,198,160,181,67,100,108,58,209,146,138,36,138,145,164,173, + 85,24,71,204,205,78,147,205,46,35,83,44,211,227,231,169,204,205,210,172,86,17,90,227,229,114,148,251,250,17,78,134, + 37,27,75,113,241,109,151,86,57,75,138,104,107,210,102,172,88,204,97,109,130,209,18,207,243,200,102,51,52,37,40,9, + 81,20,34,133,139,69,80,234,236,70,58,138,56,138,200,102,179,196,113,140,214,26,165,84,90,169,73,121,145,23,66,164, + 45,89,28,197,76,76,142,35,133,160,84,42,209,106,74,6,6,71,72,10,1,34,8,136,234,17,141,36,98,120,120,136, + 210,27,223,236,220,249,236,177,209,35,7,158,44,190,182,217,236,44,65,201,194,125,231,172,57,54,54,119,161,22,55,107, + 118,117,190,155,185,234,36,65,18,179,81,8,250,237,15,103,202,196,171,219,215,199,233,151,43,237,187,245,38,138,115,243, + 204,61,179,7,233,121,208,174,16,83,45,149,133,40,38,250,30,78,224,156,31,196,39,209,182,201,106,128,65,176,14,68, + 127,0,252,113,187,133,115,129,63,7,70,160,50,3,236,39,141,232,185,162,253,241,31,219,147,1,159,139,33,128,223,192, + 65,125,43,194,220,1,150,129,249,91,8,126,25,2,213,254,89,91,128,25,210,165,198,101,109,128,44,195,226,126,216,31, + 195,249,24,158,29,130,77,195,115,149,157,83,127,251,137,29,207,124,254,171,107,142,190,225,182,158,245,111,125,181,187,114, + 205,90,146,102,196,66,117,1,145,115,201,117,116,145,45,150,144,202,193,152,8,33,160,163,167,200,237,111,126,45,55,189, + 238,102,14,238,63,194,103,62,246,247,156,219,189,159,245,118,8,33,12,137,128,40,106,177,186,187,135,203,86,172,98,221, + 230,245,120,133,44,178,25,33,148,2,165,80,66,224,42,23,235,88,172,11,113,172,193,145,8,157,102,139,121,74,224,9, + 145,146,192,158,143,113,93,202,67,163,100,59,155,136,56,193,201,122,8,199,35,209,2,229,40,140,142,145,194,166,244,15, + 50,245,38,146,22,97,204,197,59,97,162,99,44,38,181,246,48,49,25,79,160,51,18,209,212,40,149,250,25,107,12,185, + 114,9,39,227,161,16,184,174,139,159,205,18,180,90,237,133,216,24,199,203,224,56,110,186,110,34,36,81,16,81,169,86, + 208,70,51,206,56,153,140,143,239,101,9,234,77,108,62,38,215,161,40,117,15,147,13,13,141,100,134,142,216,208,187,235, + 26,198,215,45,239,248,204,163,143,94,251,234,19,71,11,253,208,23,192,215,250,97,207,191,105,85,231,163,86,213,24,224, + 66,251,117,206,192,15,85,5,180,116,252,246,175,43,218,215,5,75,96,241,29,226,33,230,129,207,190,230,86,110,253,139, + 247,49,98,52,221,83,147,56,174,228,136,84,56,24,6,50,62,61,129,166,231,175,62,72,183,16,20,30,120,152,137,103, + 246,124,67,48,196,203,105,0,157,127,10,79,234,82,117,212,106,127,44,69,52,47,137,190,158,4,150,50,238,159,31,106, + 247,114,9,195,214,243,166,27,75,158,212,223,172,164,205,167,178,130,56,134,153,69,88,172,192,25,23,246,245,192,83,125, + 11,149,203,170,31,248,228,246,103,63,245,149,181,123,126,228,166,190,45,239,120,131,179,105,229,106,104,105,42,141,73,234, + 153,25,242,133,34,133,114,23,210,247,1,131,214,45,148,35,216,190,125,19,59,118,94,193,189,95,254,60,207,254,221,157, + 44,235,236,69,39,9,6,77,220,108,240,218,107,175,167,123,243,102,18,29,227,96,113,164,72,163,119,132,197,113,21,82, + 186,237,40,30,131,20,14,38,1,109,45,153,124,129,82,87,55,202,203,96,68,59,198,71,72,220,108,17,149,181,152,196, + 64,34,80,210,1,13,66,56,128,193,202,84,246,96,76,123,13,67,210,142,39,2,180,69,161,210,93,181,56,162,90,173, + 224,245,141,162,45,8,71,161,172,73,205,253,51,89,92,225,145,241,4,198,164,36,112,54,227,35,164,160,22,133,88,171, + 83,0,138,116,218,24,73,136,147,152,102,171,73,146,36,184,174,199,208,192,32,218,196,100,101,142,108,174,68,100,13,89, + 223,163,51,59,12,197,132,70,165,197,138,158,126,146,183,190,205,127,108,207,158,203,183,220,125,87,231,170,36,234,76,160, + 83,194,83,29,48,62,10,225,89,248,161,143,59,94,58,183,181,193,231,2,16,89,251,130,23,251,125,82,242,176,82,124, + 162,148,101,199,96,31,119,36,9,228,124,252,229,203,16,210,50,166,20,214,106,132,227,177,44,219,193,178,63,122,47,18, + 139,174,207,209,251,145,143,193,227,79,131,235,96,58,74,72,235,178,99,235,14,68,154,197,242,195,3,64,223,170,109,19, + 63,0,143,193,73,249,171,216,135,217,10,84,26,112,46,3,251,243,240,244,182,106,237,138,234,135,62,119,213,163,247,62, + 177,254,203,183,221,80,188,254,213,55,137,213,43,135,41,169,12,141,185,57,26,243,21,178,29,93,100,59,75,72,191,136, + 72,210,84,83,237,86,185,252,134,87,240,236,87,31,198,54,83,99,144,136,4,17,135,20,115,5,162,201,121,154,11,117, + 148,167,41,229,178,184,74,97,132,64,184,18,29,130,39,37,74,164,36,178,245,124,188,108,150,76,190,3,161,92,172,0, + 217,22,52,98,116,170,243,65,180,45,72,12,2,157,42,193,5,88,155,90,146,24,97,48,50,13,128,182,109,112,19,104, + 50,25,15,129,197,65,129,181,212,155,17,101,45,209,56,88,233,226,181,127,180,151,201,82,200,228,136,117,3,207,241,176, + 94,134,168,221,134,229,50,62,137,142,241,114,57,18,99,8,195,16,107,45,9,9,142,118,112,179,46,51,115,211,56,174, + 162,175,175,15,89,149,68,42,71,190,3,176,17,210,228,32,235,210,211,81,38,104,54,169,87,155,100,174,187,81,29,237, + 237,91,179,248,249,191,207,111,173,84,251,124,24,136,224,129,81,56,57,2,141,14,48,179,255,12,128,40,211,254,117,117, + 179,69,156,36,212,129,74,251,243,79,9,201,111,43,197,61,158,67,36,21,125,82,226,39,58,29,98,104,131,49,49,82, + 66,164,12,214,106,60,35,48,42,4,66,116,146,96,149,160,244,51,255,130,235,127,238,23,136,177,36,214,66,163,194,143, + 190,253,29,92,121,197,46,126,235,143,222,135,251,183,31,33,8,130,111,107,56,232,112,233,124,79,42,180,98,90,21,197, + 13,152,173,67,197,131,115,49,28,47,66,227,138,241,137,210,39,246,61,187,218,121,251,155,157,125,199,78,225,74,24,234, + 235,101,100,104,144,122,101,145,74,109,145,66,161,76,161,80,70,102,60,84,226,82,204,22,216,120,227,149,156,251,194,61, + 116,228,92,76,168,49,86,18,88,141,188,48,203,252,133,41,250,215,14,97,17,184,25,15,35,210,85,136,200,137,16,82, + 224,23,20,210,113,17,174,151,110,246,91,121,209,58,35,69,151,54,202,144,122,69,199,34,37,129,211,225,187,70,152,246, + 215,90,213,94,64,77,37,123,50,141,64,73,199,191,89,47,101,229,148,33,140,99,180,38,21,132,90,157,2,149,149,96, + 28,130,40,68,155,164,29,145,108,200,23,10,56,97,72,181,90,197,245,50,72,157,78,200,60,99,169,215,235,88,107,113, + 93,151,32,10,48,85,131,159,241,89,88,88,160,84,42,145,113,61,230,231,231,112,28,69,169,92,38,136,67,92,225,18, + 134,17,126,33,79,38,87,32,12,66,202,155,54,139,153,129,158,225,123,62,253,247,165,93,39,78,246,116,194,64,19,30, + 184,10,246,1,51,42,29,120,252,80,182,97,255,144,211,176,108,8,163,116,170,9,156,22,146,91,51,62,139,58,161,0, + 20,172,109,79,2,237,139,191,243,106,131,105,214,254,1,23,100,162,128,213,171,86,242,193,247,255,41,51,191,244,139,204, + 252,241,251,89,248,224,71,49,173,214,11,254,116,121,9,62,190,55,156,149,38,85,10,23,149,100,205,166,149,113,73,136, + 57,13,39,45,156,93,180,4,87,190,242,122,110,121,213,237,220,241,250,55,179,126,199,229,156,188,48,197,157,95,185,155, + 19,39,207,32,173,67,115,113,158,11,103,142,48,57,113,154,160,50,139,9,106,92,126,227,117,168,190,46,90,145,193,117, + 50,104,12,218,104,220,70,200,153,61,7,73,34,77,173,25,208,10,99,164,116,177,66,225,248,57,220,124,17,167,88,66, + 100,243,224,100,48,109,127,35,33,213,18,149,136,21,162,93,253,144,122,69,27,129,163,21,50,17,105,116,128,85,96,28, + 172,149,169,49,91,170,45,111,127,127,250,125,133,114,39,94,214,71,170,52,220,208,117,60,16,26,217,38,128,116,148,160, + 112,81,174,194,113,20,74,41,92,215,37,12,3,132,16,248,190,79,171,149,110,80,105,109,240,50,25,124,223,191,248,152, + 16,208,10,90,196,73,76,162,19,78,159,60,197,252,252,60,97,24,50,55,55,71,189,94,187,168,101,74,172,166,21,70, + 169,239,134,114,80,40,58,186,250,112,223,245,19,197,7,111,190,113,215,241,76,230,45,46,252,152,129,87,39,176,106,13, + 100,71,254,9,143,222,95,238,141,114,137,182,72,218,124,145,252,62,92,11,81,24,98,26,139,244,174,89,197,150,247,255, + 111,86,61,121,63,215,255,236,187,209,126,134,228,155,8,236,75,0,244,61,122,97,11,215,110,165,244,23,191,65,199,215, + 223,199,201,95,251,9,62,150,246,220,158,128,210,98,185,84,216,250,186,219,157,184,85,35,142,99,70,71,151,243,198,183, + 189,157,91,94,243,90,38,166,23,248,179,63,255,32,71,14,159,38,235,23,48,113,200,212,212,89,230,166,206,209,89,42, + 50,118,249,118,154,77,141,171,124,12,224,68,26,7,48,243,77,206,236,63,65,189,209,98,110,122,134,185,137,105,130,70, + 11,199,91,90,56,109,3,133,77,39,88,130,52,27,222,144,242,48,73,219,15,218,146,170,168,149,213,56,58,74,53,63, + 8,18,36,186,237,196,8,233,254,151,112,74,224,116,32,156,34,80,64,73,31,109,210,189,48,99,192,26,141,181,6,163, + 65,73,23,136,48,218,146,201,102,113,92,15,209,254,58,99,82,49,98,46,151,67,169,148,173,75,18,141,53,134,142,142, + 14,178,217,180,104,183,198,162,28,69,43,108,17,4,45,140,78,56,119,246,44,73,146,10,25,167,166,166,9,131,16,129, + 68,73,7,137,32,10,67,28,169,80,66,225,58,25,58,243,157,12,189,246,77,238,161,159,250,233,181,247,12,15,189,166, + 9,239,116,224,13,30,108,207,64,231,111,129,204,241,195,181,224,249,98,222,175,223,111,225,162,5,116,16,18,53,42,244, + 175,91,205,235,254,252,253,44,127,226,126,214,252,234,191,161,176,115,219,69,224,185,212,130,125,23,199,180,73,234,210,255, + 243,47,136,223,118,43,145,54,184,74,17,158,28,103,52,213,16,117,88,24,74,6,122,74,67,107,87,96,226,38,160,136, + 162,22,17,134,193,193,1,182,110,187,156,255,241,187,239,229,243,159,189,155,155,110,122,5,175,187,227,70,214,108,94,65, + 216,106,82,57,119,150,45,187,182,49,241,240,51,152,200,226,40,133,147,24,34,215,144,23,25,78,61,117,16,191,183,3, + 183,84,32,50,1,97,16,208,170,53,200,117,116,224,186,30,202,115,145,34,165,211,141,16,8,156,116,149,130,148,7,18, + 194,164,122,31,218,58,37,82,165,143,112,188,20,112,144,128,70,7,13,230,102,43,60,187,247,49,142,28,57,194,209,19, + 199,169,84,106,28,61,122,146,102,43,193,207,56,56,42,105,147,214,138,32,0,147,104,92,39,65,8,75,161,80,166,88, + 238,32,8,26,120,153,12,82,73,226,40,194,113,20,229,114,153,106,181,138,209,134,140,239,224,121,30,97,54,36,73,146, + 139,130,71,173,53,213,106,21,155,203,33,149,195,233,51,167,88,189,106,53,126,214,103,97,110,17,37,93,84,94,161,28, + 7,19,39,32,13,158,227,166,109,32,22,153,24,134,215,110,161,241,158,213,93,247,126,225,179,215,238,120,248,161,238,101, + 214,14,68,112,207,182,212,76,111,250,42,184,100,75,255,253,186,78,130,144,136,144,242,250,53,116,254,254,239,99,103,39, + 248,179,233,169,75,0,244,114,80,253,249,228,119,63,233,86,242,248,31,124,20,241,135,31,7,173,113,114,25,114,198,178, + 28,60,3,253,17,12,251,91,54,229,187,123,186,48,205,22,105,60,160,193,145,134,218,194,34,73,28,80,44,148,56,120, + 232,60,31,254,232,151,248,252,231,190,196,101,215,109,227,71,223,248,35,92,181,115,39,133,129,46,198,46,95,207,249,199, + 14,162,146,20,40,194,56,198,119,125,50,145,160,118,118,150,161,237,61,196,113,11,172,165,58,59,75,109,126,17,229,58, + 160,210,145,186,163,36,142,151,69,121,62,158,231,225,185,46,74,201,148,10,34,181,221,176,34,109,205,194,102,131,218,204, + 2,23,206,79,50,49,62,207,131,143,238,225,200,177,115,140,79,157,231,212,233,99,52,90,1,202,73,223,54,89,63,79, + 46,87,194,81,146,40,10,8,227,38,89,225,130,200,131,53,56,78,68,146,52,241,157,44,158,235,163,164,68,88,112,149, + 11,14,184,142,139,231,198,116,118,116,210,106,181,112,164,67,208,12,40,20,10,180,90,45,146,36,65,41,133,227,56,68, + 97,72,144,196,20,50,30,245,122,141,169,169,41,186,186,123,8,90,49,70,27,250,7,7,241,179,89,50,94,134,56,12, + 193,88,50,153,12,74,57,36,38,70,9,129,151,47,211,241,174,127,225,31,94,187,97,235,236,39,63,214,185,165,86,237, + 143,161,95,192,67,255,17,206,84,161,53,115,233,109,254,253,3,162,48,194,132,115,80,200,210,95,94,117,9,128,94,44, + 223,182,84,170,6,221,69,196,181,27,80,218,48,215,126,242,150,3,178,61,61,144,142,195,212,147,199,152,157,175,16,64, + 193,194,138,166,80,203,54,189,243,237,57,229,56,36,66,97,173,69,160,81,54,66,135,117,226,86,29,19,69,224,68,72, + 33,169,198,134,175,220,245,8,143,221,187,155,107,175,187,154,55,191,237,181,108,217,188,138,153,195,231,17,115,53,66,98, + 76,148,208,116,35,138,110,142,233,125,39,176,89,65,71,119,145,156,155,33,227,103,81,66,96,226,136,56,136,16,114,73, + 152,232,34,165,139,227,56,184,109,0,114,92,23,99,12,65,24,50,55,49,201,204,169,227,212,166,78,227,235,136,142,174, + 46,170,147,1,31,252,139,191,162,34,11,72,71,225,59,138,124,161,204,115,121,209,32,132,38,142,66,130,32,100,97,113, + 154,14,20,88,31,33,13,158,151,106,132,48,144,201,228,176,218,16,133,17,174,235,144,245,211,132,184,180,210,18,248,126, + 22,185,180,162,17,37,20,75,69,106,213,218,197,10,72,72,73,20,199,52,91,45,178,94,150,233,233,105,124,207,167,80, + 44,209,108,212,153,153,158,97,96,100,20,33,52,94,198,67,34,72,116,132,148,160,156,20,132,132,176,136,80,179,252,154, + 235,229,252,216,138,177,199,255,238,3,165,45,199,143,246,20,161,59,134,251,11,112,120,13,84,138,96,47,5,55,127,31, + 79,162,73,18,141,231,94,2,160,23,77,48,119,237,92,5,63,125,11,167,119,172,34,142,147,23,236,159,109,62,71,249, + 61,127,65,117,166,34,61,232,49,176,198,172,95,55,180,252,218,43,68,208,172,3,42,157,120,91,129,213,22,97,4,7, + 14,28,228,252,249,115,56,174,0,155,96,145,248,210,39,136,52,95,186,231,94,238,185,255,126,110,186,237,149,12,121,89, + 174,232,30,196,183,224,8,65,172,35,60,153,26,238,139,4,142,61,245,8,61,158,143,182,2,63,159,167,216,221,135,223, + 145,238,118,57,202,65,154,42,96,48,66,210,136,19,90,173,58,173,234,34,73,216,162,90,93,32,151,132,12,122,134,53, + 195,14,121,175,139,76,161,72,166,152,167,171,203,39,138,29,132,80,8,173,211,165,84,155,198,246,8,33,104,181,90,100, + 188,12,66,89,154,149,25,60,4,161,1,33,124,242,66,96,100,3,39,155,101,100,120,37,231,78,61,75,43,104,144,203, + 117,147,196,26,207,115,201,248,89,130,86,61,53,63,75,12,89,223,167,218,38,151,93,215,33,142,19,176,233,106,137,144, + 146,48,12,241,253,44,26,195,249,137,243,140,58,203,144,74,176,88,153,71,184,146,238,238,30,100,46,135,146,50,173,180, + 68,186,80,155,113,61,12,26,35,32,105,54,233,30,24,70,255,187,95,239,220,247,137,15,95,179,242,235,247,116,13,192, + 64,12,95,237,135,167,223,7,115,185,84,164,112,233,124,159,207,37,0,250,78,0,84,206,177,242,55,223,78,97,199,42, + 28,11,241,124,125,105,10,253,15,201,61,33,57,143,37,1,47,3,195,13,88,237,92,113,69,103,174,171,19,130,26,200, + 182,157,131,117,8,91,134,56,178,8,225,18,90,139,176,94,234,179,108,19,12,49,214,1,215,129,88,107,190,252,149,251, + 209,38,130,155,111,229,142,181,27,104,132,53,116,20,17,37,13,172,7,11,103,166,216,212,157,165,91,47,18,197,134,160, + 57,195,98,237,60,21,105,137,98,1,26,242,158,70,235,24,132,196,24,131,82,208,145,243,232,202,185,100,59,193,179,46, + 33,9,129,114,208,78,30,145,43,19,213,27,36,42,139,138,45,74,90,180,1,99,82,0,18,237,134,84,107,67,172,45, + 174,155,65,68,33,34,73,136,84,145,122,224,80,84,6,109,2,2,58,200,229,251,200,250,62,142,227,226,58,146,172,159, + 67,39,233,184,189,213,170,147,203,103,169,87,91,180,146,136,124,190,192,212,204,20,65,216,74,205,207,172,33,227,186,196, + 90,163,141,165,25,180,200,250,62,137,73,24,31,63,207,200,208,8,249,98,129,218,226,44,185,172,143,82,233,22,189,178, + 110,10,100,66,181,157,52,221,116,191,77,9,162,48,0,41,232,121,231,187,114,199,135,134,183,206,125,226,227,229,245,81, + 152,159,7,103,5,60,81,134,185,16,180,250,103,52,37,187,4,64,63,128,199,91,49,64,199,174,245,80,105,164,201,16, + 124,139,119,164,35,241,166,23,217,120,126,134,253,144,179,48,90,135,145,149,175,185,53,231,180,219,47,41,82,247,63,105, + 53,166,109,73,225,251,62,153,76,134,40,1,41,69,106,229,209,206,113,183,128,163,20,56,18,18,143,71,158,221,203,174, + 177,21,120,128,107,72,205,200,200,112,238,248,105,114,45,232,89,110,41,120,154,66,162,233,83,146,4,151,216,180,72,226, + 4,69,38,37,161,29,133,227,121,233,191,101,12,88,13,137,37,116,125,76,174,3,223,203,144,241,114,248,249,2,181,230, + 34,97,164,177,194,71,155,182,72,13,153,122,253,8,145,114,58,194,162,117,128,235,100,105,181,2,162,56,192,136,50,21, + 221,192,247,52,106,209,18,75,129,240,179,32,60,194,168,65,54,107,113,148,68,39,169,124,192,81,30,113,148,144,205,101, + 169,84,43,184,142,147,90,223,11,73,28,199,72,41,105,180,90,169,37,145,76,249,32,107,12,25,207,35,20,33,179,243, + 179,105,101,41,139,84,22,22,112,29,7,87,185,36,50,78,167,45,142,69,74,217,110,69,83,98,91,202,116,89,55,170, + 69,244,188,226,6,103,118,112,112,213,254,15,126,192,221,50,53,237,89,40,238,134,39,94,7,231,207,64,216,184,116,25, + 92,2,160,127,12,242,199,2,255,225,240,57,242,111,255,159,237,139,239,219,16,108,2,8,18,78,44,212,132,73,55,244, + 87,200,177,177,190,161,93,59,132,14,67,116,98,176,194,34,164,66,0,113,156,198,221,44,44,204,147,196,26,219,94,198, + 20,136,180,221,17,6,172,192,24,11,66,227,8,135,179,115,21,158,188,112,134,155,150,175,34,14,170,24,9,42,148,12, + 100,75,28,57,126,150,229,43,150,83,246,154,248,82,35,66,11,73,130,114,219,91,238,90,161,68,146,122,60,199,33,56, + 14,82,57,168,92,1,215,203,64,182,76,156,205,164,73,176,6,66,147,86,79,218,90,148,112,144,82,161,173,69,24,157, + 174,122,0,190,239,183,219,81,75,172,35,170,139,85,220,36,194,201,100,72,156,14,90,97,3,234,211,148,186,7,137,202, + 125,8,225,97,76,189,29,131,220,194,115,51,24,99,145,56,180,90,1,253,3,93,56,142,75,165,86,193,115,93,162,56, + 68,170,244,249,114,93,151,36,73,136,227,228,226,90,147,163,20,158,239,81,169,84,112,84,202,109,37,218,32,133,32,231, + 231,8,140,65,250,105,84,184,54,26,199,49,40,153,142,253,149,82,24,107,80,66,160,91,1,229,101,43,136,126,254,95, + 143,238,251,240,7,95,189,230,196,241,238,28,244,41,184,127,59,156,116,160,230,94,42,132,46,1,208,247,227,44,245,249, + 9,233,242,36,22,116,71,158,241,31,185,138,133,235,55,227,198,9,147,201,119,96,3,60,23,142,156,103,230,247,63,67, + 0,153,44,140,6,176,62,185,106,87,111,247,72,31,81,216,192,81,109,245,133,0,163,53,73,28,33,133,192,243,188,246, + 184,184,13,64,162,173,57,54,242,121,44,84,170,157,49,74,114,215,222,103,184,106,120,57,217,172,143,209,9,194,104,178, + 34,131,34,203,185,169,144,174,117,62,166,217,66,198,2,233,132,184,133,44,20,58,49,38,3,218,34,173,70,74,129,227, + 185,72,223,71,171,12,137,148,36,194,1,225,96,69,130,32,6,41,169,214,154,52,234,77,92,223,193,42,7,129,76,221, + 17,17,8,37,72,18,147,106,114,172,70,11,77,117,161,134,215,168,113,228,232,126,190,254,236,125,76,157,59,77,148,127, + 146,155,239,248,89,250,139,5,138,197,50,177,142,136,162,0,172,37,151,203,131,149,228,243,121,130,32,32,10,67,186,58, + 59,152,157,157,65,199,49,38,142,113,189,12,113,18,183,129,39,125,129,172,16,88,1,65,20,81,173,215,112,149,199,204, + 236,44,66,64,185,212,193,92,98,112,28,143,193,193,65,162,56,253,191,248,89,15,129,65,72,69,18,235,139,45,115,90, + 57,41,140,209,200,254,97,17,254,155,95,233,127,236,99,31,190,113,211,99,143,116,15,64,95,8,247,70,176,231,231,97, + 190,4,102,242,18,102,92,2,160,239,25,25,15,108,219,181,142,205,221,69,186,194,152,226,80,23,211,55,108,225,102,207, + 101,98,160,19,25,166,214,3,223,241,248,30,162,210,196,79,127,102,65,192,170,10,172,236,186,225,218,172,227,8,116,144, + 182,46,44,45,142,26,67,18,133,56,40,58,203,29,233,218,65,156,70,1,89,107,177,86,60,103,79,1,233,132,77,10, + 140,167,56,51,53,205,67,135,14,242,234,203,47,35,172,46,160,140,129,48,98,89,103,63,11,103,23,176,43,251,16,109, + 19,121,169,66,12,46,153,108,23,38,155,71,27,131,176,26,129,193,96,137,218,160,107,149,192,90,147,250,157,144,238,132, + 105,35,105,133,49,219,119,172,231,192,193,99,180,106,6,63,151,79,125,161,69,42,102,140,163,4,221,230,86,98,27,179, + 103,239,93,76,157,58,196,98,165,130,146,154,108,214,165,57,255,56,159,252,192,89,150,13,172,38,138,82,71,71,219,222, + 130,15,154,1,126,54,143,16,130,124,46,155,146,197,94,134,124,46,143,49,154,140,231,81,15,154,44,9,31,4,224,184, + 46,218,104,162,56,198,247,50,52,27,77,188,76,170,251,153,155,155,195,113,92,148,227,50,55,59,75,119,119,55,89,149, + 218,128,184,142,76,247,221,108,2,66,166,147,53,241,60,208,23,2,27,71,184,142,67,199,187,127,42,255,100,111,239,229, + 43,239,252,92,215,6,75,111,29,242,235,224,201,16,102,22,190,117,200,234,165,115,9,128,94,26,248,12,116,21,248,87, + 255,225,141,172,29,234,166,22,167,187,74,54,78,24,176,22,147,68,47,108,248,251,2,39,171,44,247,43,203,33,16,111, + 132,206,22,172,136,203,229,222,101,87,110,151,54,142,192,36,8,153,102,179,99,83,151,108,107,12,70,8,252,76,106,69, + 33,180,65,182,243,183,82,140,50,207,245,130,128,181,26,109,64,185,89,30,56,122,152,171,182,110,199,117,92,116,28,99, + 147,24,215,117,209,161,195,190,3,211,236,220,186,130,36,94,76,147,37,52,196,205,4,229,45,201,12,219,252,146,53,41, + 207,34,117,234,120,212,254,207,10,36,72,197,108,181,198,186,45,59,248,236,47,254,42,15,125,253,1,62,243,233,47,240, + 200,227,79,48,61,61,155,174,116,136,244,255,35,69,186,160,42,5,196,225,44,211,179,139,248,170,140,159,45,147,201,58, + 100,85,1,226,26,141,234,73,10,165,30,226,8,48,26,107,192,38,134,70,189,134,21,6,173,99,114,126,17,41,4,171, + 86,172,224,232,177,163,132,73,8,22,60,207,5,225,98,77,250,28,104,163,145,66,16,132,1,25,207,35,142,99,178,126, + 26,63,61,61,61,157,182,139,90,115,226,216,49,70,199,198,200,102,179,40,41,200,249,153,246,243,107,47,62,183,66,164, + 196,186,84,2,48,8,99,241,129,177,215,254,136,123,168,92,88,155,124,226,19,222,246,40,206,135,105,248,228,195,155,224, + 204,187,33,248,219,75,216,113,9,128,190,11,122,135,0,216,91,206,241,200,131,251,137,155,209,119,178,75,249,246,252,143, + 171,40,158,159,227,149,224,52,83,151,198,97,239,138,171,59,70,214,175,33,138,67,162,168,69,198,207,97,172,139,144,2, + 99,211,181,3,229,58,184,174,131,148,18,41,68,106,99,33,190,177,245,122,110,196,102,112,141,69,187,25,206,87,170,60, + 121,248,48,183,108,221,66,171,85,1,13,73,20,147,203,229,56,121,230,12,189,3,29,12,150,2,164,78,64,91,76,80, + 195,77,124,28,79,97,52,88,218,91,241,8,208,54,213,199,72,129,65,128,112,81,46,44,212,22,232,90,182,21,63,231, + 115,251,235,110,231,213,175,186,133,147,103,79,243,133,59,191,194,103,63,115,39,199,143,159,161,217,76,87,63,148,235,34, + 99,133,75,142,76,33,143,167,92,60,199,193,87,25,28,89,194,45,130,227,8,114,25,129,117,115,52,72,39,128,74,57, + 100,125,15,35,98,36,26,109,210,231,37,155,203,210,221,213,197,133,201,113,148,146,132,73,76,20,133,40,169,144,202,185, + 8,32,66,136,180,146,65,18,4,1,74,130,14,2,38,38,38,88,54,186,140,36,78,24,191,112,129,174,238,238,148,195, + 91,106,251,218,207,174,49,9,82,181,95,15,13,74,9,176,2,97,65,132,17,91,110,184,77,44,244,12,44,123,252,175, + 254,50,187,177,86,237,85,80,94,132,175,254,71,56,161,33,108,94,154,144,93,2,160,151,123,44,176,239,212,52,242,143, + 238,252,174,109,25,52,80,78,171,170,172,132,145,89,88,230,222,112,77,33,155,245,9,170,77,116,16,33,179,37,44,2, + 71,74,130,56,73,167,96,206,243,114,167,236,18,215,163,17,66,126,67,11,38,132,196,8,77,198,74,180,21,68,158,195, + 151,119,63,197,229,171,86,83,114,50,52,117,147,172,85,96,4,29,165,97,246,236,57,67,247,53,35,228,141,64,146,16, + 55,154,104,55,192,233,44,145,40,23,35,36,82,39,8,97,144,10,72,156,212,149,82,25,12,160,173,75,66,134,124,169, + 64,28,199,24,18,164,53,172,94,179,138,95,249,15,255,150,119,255,228,187,120,248,225,71,249,216,71,63,197,3,247,63, + 68,171,213,32,227,122,196,65,72,98,193,235,44,180,195,84,61,148,35,200,248,46,249,98,145,140,159,37,12,2,124,64, + 219,0,233,74,164,74,53,62,249,206,78,226,150,65,152,84,39,53,56,52,196,236,252,28,205,48,160,157,74,125,177,130, + 115,29,7,173,77,10,28,214,98,140,166,86,171,226,103,92,242,249,18,205,48,96,110,97,30,41,211,240,196,106,165,130, + 171,20,214,164,156,85,169,92,198,242,60,159,35,33,218,228,123,186,123,102,173,193,90,8,171,117,122,183,236,80,103,255, + 237,175,15,220,245,161,191,45,222,112,252,136,219,1,98,6,238,250,87,112,34,130,214,225,75,24,114,9,128,94,42,240, + 44,192,255,207,222,123,199,89,118,223,245,221,239,95,57,229,246,185,211,103,103,123,209,54,173,122,177,154,37,119,185,202, + 13,8,37,33,129,0,126,72,131,39,161,132,36,15,36,36,144,74,66,66,28,74,32,4,176,41,46,184,55,92,100,201, + 234,171,174,149,86,219,251,238,236,244,91,79,249,149,231,143,115,103,180,54,205,96,9,21,239,239,245,154,151,118,71,187, + 51,103,239,156,243,185,223,242,41,156,2,126,128,111,186,203,250,75,143,4,42,80,23,176,105,57,174,76,95,246,186,107, + 20,244,33,183,72,235,113,69,201,129,116,30,151,231,136,193,59,50,8,132,20,197,140,199,14,222,149,165,196,15,38,226, + 43,96,4,133,113,188,207,13,62,84,156,238,119,249,232,93,119,243,247,223,248,38,66,151,98,113,96,37,97,20,211,239, + 84,121,250,217,62,235,215,150,169,55,60,42,239,35,58,179,184,216,67,185,4,57,216,94,31,35,83,84,37,38,144,67, + 24,47,176,54,3,21,146,187,18,41,154,80,123,180,47,200,139,86,40,50,3,222,180,169,15,149,120,251,123,110,231,205, + 111,125,3,15,222,247,8,31,252,221,63,228,161,7,31,37,138,67,74,81,137,32,136,72,211,28,143,32,42,5,24,231, + 17,40,36,18,147,91,242,204,162,148,64,105,89,16,6,131,128,74,84,193,135,130,220,230,56,60,81,28,177,121,203,86, + 30,127,226,113,20,25,90,234,162,85,146,174,208,153,5,33,198,20,192,157,166,41,129,214,24,227,72,243,20,132,164,159, + 37,164,54,167,159,244,9,195,128,86,171,77,225,40,154,227,128,90,163,134,84,18,55,88,48,40,169,17,82,23,44,174, + 11,218,178,94,123,153,117,211,107,104,254,248,63,173,60,252,209,143,94,127,197,151,63,175,134,189,143,13,124,165,4,251, + 183,192,82,5,252,69,29,217,69,0,250,166,42,149,73,10,13,215,142,231,177,124,86,192,19,32,231,138,66,104,58,219, + 185,99,100,227,206,93,216,212,146,244,59,8,233,138,42,198,23,27,163,94,175,11,222,161,68,145,12,97,141,89,157,251, + 60,199,50,94,49,79,24,84,65,120,140,42,102,53,101,35,80,42,230,107,7,158,100,219,206,77,188,97,199,165,244,150, + 90,8,227,176,57,172,25,154,224,228,241,51,124,224,171,79,112,235,171,119,113,199,117,83,216,164,199,252,236,25,98,29, + 81,206,45,54,201,88,204,12,102,104,136,145,53,101,130,64,35,188,4,165,153,157,159,71,72,69,183,211,197,171,25,234, + 141,26,82,87,112,94,33,149,194,225,73,147,28,137,224,198,91,111,230,85,55,221,196,129,125,251,249,202,151,190,202,51, + 207,60,195,220,220,18,74,4,100,169,37,233,91,42,165,50,161,87,68,198,147,24,143,49,142,60,205,80,113,9,107,29, + 100,142,37,215,37,40,85,208,81,8,162,152,243,76,76,140,50,58,210,228,212,233,110,81,149,12,44,69,140,205,65,20, + 91,49,47,32,140,35,140,49,56,147,99,58,150,48,138,152,95,92,160,223,79,152,28,155,196,26,67,179,217,196,123,79, + 169,92,66,105,69,16,40,226,114,92,172,227,157,35,203,51,132,176,3,198,53,104,173,7,111,4,158,60,203,168,40,73, + 237,111,127,79,233,228,244,248,117,230,247,63,80,155,204,237,68,79,138,207,143,35,30,250,53,231,230,43,224,22,120,101, + 229,182,95,4,160,231,241,40,10,95,103,65,17,18,118,252,121,158,41,165,160,34,168,183,96,172,113,211,117,213,122,163, + 129,107,183,240,214,160,66,129,84,2,225,5,46,203,200,211,180,136,151,246,126,96,71,81,188,227,66,65,144,91,25,64, + 23,174,132,172,154,181,163,36,18,65,104,138,90,174,87,141,249,208,253,95,99,247,186,45,108,40,197,44,119,91,104,23, + 146,229,142,169,181,27,105,239,123,154,95,248,149,79,32,126,244,157,212,134,234,220,125,239,62,226,44,229,71,190,235,38, + 134,71,3,226,126,196,51,71,231,105,68,109,42,227,13,50,93,66,232,136,131,7,159,162,185,118,43,222,11,22,102,206, + 211,91,156,163,212,104,82,105,142,82,173,84,10,95,34,95,120,10,101,105,23,240,236,216,179,149,75,118,108,227,220,153, + 179,60,244,208,163,124,229,139,119,113,238,244,108,17,76,24,4,148,42,37,172,205,8,203,37,114,60,229,64,23,179,111, + 40,230,58,78,128,41,82,53,34,165,137,163,136,32,214,92,126,249,30,218,189,22,110,169,69,154,24,210,36,91,229,4, + 33,4,65,84,48,116,196,32,230,71,56,143,233,247,9,131,16,37,36,75,75,11,56,107,145,82,210,239,247,168,155,58, + 81,20,130,244,88,107,168,86,171,72,41,144,97,136,179,30,231,138,24,162,149,159,197,10,113,209,123,240,221,140,145,215, + 191,49,58,63,57,124,89,247,215,254,111,125,211,242,98,121,9,175,55,194,67,85,152,237,129,41,93,196,148,87,30,0, + 125,171,206,117,9,133,153,188,164,176,164,204,95,128,235,139,139,55,191,81,7,35,91,46,223,173,36,96,50,131,183,25, + 74,23,43,102,37,21,153,45,230,22,82,73,156,119,232,32,24,168,203,47,92,189,251,63,245,13,60,126,16,56,232,49, + 20,179,26,25,132,204,183,219,124,224,11,159,231,159,221,241,86,156,42,24,214,74,20,38,242,223,247,198,55,241,95,126, + 111,150,159,254,165,207,33,34,232,38,57,161,81,28,88,106,177,123,199,4,71,143,44,115,234,200,44,127,247,221,55,242, + 222,219,47,195,36,243,232,234,40,235,199,199,120,228,153,253,116,83,197,182,29,59,49,198,50,127,110,134,246,210,34,181, + 122,131,218,80,131,168,92,69,6,33,86,120,172,119,164,38,69,34,153,88,59,206,29,27,238,224,181,175,123,45,143,63, + 246,36,95,250,226,157,28,63,114,140,36,55,84,170,117,84,168,177,222,147,103,6,99,220,96,123,101,168,196,101,164,119, + 144,59,172,51,232,82,5,41,2,166,214,172,99,235,37,219,185,251,174,175,17,170,128,36,179,160,6,100,1,231,49,185, + 41,12,213,100,97,65,43,133,24,48,206,29,89,158,211,106,183,240,206,17,134,154,90,173,86,204,216,36,76,6,147,184, + 208,208,235,118,169,213,235,133,188,68,20,145,67,193,96,213,239,157,199,13,126,47,165,198,25,73,214,74,41,95,114,185, + 92,248,7,63,182,57,251,205,255,169,183,207,156,143,60,52,143,193,253,13,56,190,5,146,228,34,174,188,178,0,40,191, + 106,43,187,119,175,35,252,163,175,145,165,127,53,248,176,20,9,25,215,3,163,47,212,245,1,79,8,17,119,188,31,213, + 245,198,232,212,13,87,107,156,197,101,25,206,228,56,95,2,81,112,115,140,205,201,77,134,180,6,165,195,1,35,167,168, + 118,132,144,120,107,89,33,37,174,14,94,133,0,161,144,182,72,109,74,5,32,37,42,7,77,200,67,71,14,242,91,95, + 249,10,239,186,246,90,148,51,72,163,201,101,78,173,164,248,238,55,190,129,95,248,208,23,104,231,61,100,73,145,89,205, + 231,246,158,225,179,15,157,70,6,37,162,192,243,31,62,242,101,234,53,197,229,27,70,153,61,177,200,153,182,227,145,189, + 79,241,203,191,254,33,182,238,220,205,187,223,253,110,94,253,170,203,8,69,74,107,110,158,197,249,121,42,245,58,245,225, + 97,42,141,6,129,214,184,193,63,194,58,75,106,218,132,21,197,77,183,93,207,171,110,186,154,131,7,14,112,223,221,15, + 243,181,59,247,226,241,148,43,49,46,246,180,187,93,202,141,152,176,20,145,38,9,222,43,2,29,32,101,72,174,37,113, + 92,34,183,112,233,165,87,242,212,83,79,211,107,181,105,14,213,200,242,28,33,130,98,16,237,252,234,155,128,146,18,239, + 92,17,83,173,60,233,128,240,24,230,41,51,51,231,200,243,140,181,211,107,73,251,125,150,151,150,145,82,18,132,30,209, + 233,80,138,75,128,28,180,93,32,69,161,204,119,190,144,204,56,114,188,18,4,82,144,167,25,181,141,155,200,255,201,143, + 173,127,246,183,126,227,246,245,135,142,78,148,97,84,194,157,167,224,224,20,180,215,95,92,144,189,124,1,72,0,121,163, + 194,210,27,174,96,230,138,77,152,177,6,183,106,197,231,119,174,227,183,191,244,56,31,253,218,211,228,105,206,115,89,151, + 127,246,113,20,121,222,55,12,90,176,244,5,122,1,159,5,209,246,190,9,172,173,108,217,212,28,222,52,141,181,6,147, + 119,11,93,151,208,131,135,195,144,244,186,224,236,128,241,60,96,227,14,134,209,120,183,218,126,121,127,1,40,249,194,185, + 112,229,239,32,5,94,120,148,3,229,21,46,138,248,236,19,251,104,150,154,220,182,117,19,89,146,162,51,75,191,103,216, + 56,58,194,119,191,246,10,126,247,11,119,147,57,5,58,35,20,49,24,141,15,114,140,78,57,179,232,249,177,247,127,133, + 225,102,133,110,39,101,177,221,38,115,22,21,132,156,252,218,131,60,242,200,19,188,241,182,27,121,215,59,223,202,174,221, + 59,9,53,244,187,61,58,237,54,81,185,68,115,116,132,70,99,4,175,36,214,219,66,217,142,45,60,138,156,103,199,206, + 75,216,121,217,101,220,254,246,183,240,229,47,124,145,189,247,61,200,236,217,89,134,202,117,92,167,133,75,3,164,183,164, + 38,165,60,52,76,181,90,47,50,169,180,0,231,41,5,17,239,121,199,59,57,124,248,89,158,120,226,9,162,114,137,165, + 229,22,97,28,145,13,88,210,114,16,249,147,101,57,30,79,54,72,96,245,56,58,221,54,181,106,13,99,114,58,221,22, + 229,82,153,229,229,101,148,82,52,135,155,88,107,73,210,148,40,140,7,175,125,209,26,15,56,163,3,141,158,197,11,135, + 247,2,169,21,89,158,32,106,227,200,31,253,137,177,187,255,240,119,94,189,235,129,251,135,214,195,104,15,190,252,42,120, + 236,10,88,72,193,70,23,49,230,229,1,64,57,48,178,123,61,122,231,58,90,151,109,228,245,113,200,201,209,58,34,55, + 8,99,73,115,203,244,112,149,159,255,222,219,248,123,175,187,156,234,151,30,71,126,237,105,236,159,83,17,57,138,16,194, + 179,131,141,215,11,241,118,36,129,118,113,237,81,73,136,245,125,239,119,174,123,219,219,199,100,185,140,233,246,240,46,65, + 137,0,208,197,128,217,249,85,63,100,6,156,151,40,12,137,226,136,86,183,187,26,123,188,34,205,88,253,62,82,146,187, + 65,219,229,61,184,98,107,230,5,228,206,226,60,200,64,243,249,71,246,178,113,120,132,201,106,68,110,122,4,68,180,231, + 123,188,113,247,30,22,151,58,124,244,190,135,16,97,8,34,35,84,93,80,224,92,97,89,177,216,207,152,235,167,68,90, + 34,117,128,34,2,169,209,58,36,113,57,127,252,185,187,249,220,157,143,112,219,173,215,112,199,219,223,192,158,93,91,168, + 148,98,156,49,204,30,63,193,114,121,137,161,137,9,170,181,234,192,243,87,161,131,16,132,162,211,233,179,124,254,12,179, + 199,207,176,182,82,133,117,235,56,221,77,169,135,49,177,82,132,8,186,121,194,162,135,185,153,57,186,75,109,198,54,111, + 33,8,36,105,150,99,109,78,24,106,190,255,251,190,143,143,125,252,227,124,249,43,119,2,30,107,114,180,208,171,131,107, + 103,115,226,48,36,51,6,169,21,74,74,76,150,23,0,222,106,83,12,174,60,83,83,147,68,97,206,242,242,50,14,71, + 115,120,152,74,69,145,101,57,229,178,94,5,33,6,111,16,206,186,98,254,230,67,112,133,246,77,106,79,154,56,74,81, + 157,202,59,223,19,155,55,189,254,234,195,191,248,31,27,91,242,108,196,66,53,132,7,159,130,153,61,96,194,151,216,67, + 191,79,202,213,88,171,111,43,0,74,128,141,19,67,252,236,15,188,129,70,28,98,7,15,85,131,34,139,107,221,244,8, + 86,73,82,99,25,118,30,219,251,250,154,37,51,142,204,164,76,13,87,113,223,123,27,188,238,114,26,95,126,2,113,247, + 62,220,5,64,180,18,45,123,30,88,203,11,231,247,187,242,3,108,65,213,123,191,149,56,222,210,124,219,235,171,18,75, + 150,165,152,220,13,86,236,186,216,222,164,93,178,126,175,24,184,202,66,12,89,138,53,229,114,9,63,200,137,89,1,32, + 107,221,170,254,85,136,98,85,239,133,192,27,139,240,14,137,194,121,143,8,20,210,58,188,55,44,187,156,15,221,123,55, + 223,123,235,45,12,199,18,155,231,160,36,173,185,14,223,121,221,13,44,47,182,248,220,254,131,184,178,4,111,209,54,192, + 88,80,202,18,72,80,14,228,64,29,39,40,252,155,17,16,149,202,248,146,198,163,120,248,209,253,156,58,113,134,93,219, + 54,114,203,205,215,113,217,229,187,24,106,12,145,217,140,133,153,25,210,110,74,165,54,68,218,233,49,115,242,0,199,15, + 28,96,230,228,9,226,126,159,114,98,112,78,210,64,49,57,189,113,176,66,79,200,77,142,202,12,205,80,179,182,92,99, + 46,77,153,57,124,24,61,220,164,50,62,78,230,45,206,11,78,159,62,201,79,252,228,63,33,205,219,124,233,75,119,35, + 69,165,160,38,136,140,40,14,169,196,53,58,221,14,90,10,188,45,242,230,65,160,85,17,1,237,188,35,205,51,150,150, + 150,169,85,235,8,4,189,110,159,48,234,162,164,162,82,9,200,243,156,48,140,6,250,48,199,74,136,136,243,2,114,9, + 42,196,147,35,29,84,194,144,78,107,137,209,106,153,239,251,233,127,166,62,181,110,253,246,189,63,246,99,149,43,186,189, + 138,4,213,129,175,46,195,236,8,188,36,82,88,87,172,69,126,41,8,200,40,66,59,95,241,0,180,178,72,206,128,145, + 177,6,191,250,99,119,176,126,98,168,48,154,186,96,78,99,160,248,92,246,156,115,255,159,91,45,25,7,38,133,225,42, + 35,223,115,43,63,248,218,203,80,95,126,2,238,222,135,72,115,202,20,17,181,103,120,97,27,113,89,128,156,16,48,226, + 96,115,112,217,158,53,205,203,182,8,159,27,112,41,185,145,72,157,82,81,10,188,34,239,247,17,198,34,80,24,28,126, + 197,255,199,56,172,43,66,6,87,164,2,82,62,39,192,47,214,243,190,16,203,242,220,127,5,130,64,72,188,240,56,47, + 201,133,227,208,226,57,62,255,248,227,124,199,245,55,19,136,20,200,201,156,193,119,3,190,247,213,111,96,222,165,220,115, + 228,32,58,172,32,115,65,136,199,34,17,82,16,170,1,120,123,135,240,30,233,50,74,58,100,124,168,73,110,114,132,16, + 140,141,77,17,149,74,156,154,79,249,228,103,239,229,190,251,30,229,170,61,59,216,126,201,70,58,237,22,237,185,46,237, + 217,46,102,185,79,144,101,148,176,172,169,104,148,86,36,78,226,50,75,106,12,221,165,46,206,187,194,31,218,164,69,155, + 3,216,180,79,83,8,106,181,26,11,189,148,238,169,179,232,161,17,42,245,58,231,103,23,233,245,230,249,169,159,252,127, + 88,156,159,101,239,195,71,8,75,101,124,224,41,87,99,66,95,8,116,157,119,3,98,165,34,205,114,50,99,232,167,9, + 121,158,34,148,196,26,75,28,197,76,140,79,33,165,160,221,106,19,4,33,82,104,84,173,134,181,133,231,145,82,43,222, + 73,133,59,54,62,199,32,200,189,65,89,69,37,12,57,53,59,203,235,223,250,90,92,214,229,109,127,255,7,248,125,45, + 215,126,242,239,255,240,107,223,105,221,9,7,79,206,192,124,11,220,139,61,16,18,131,89,232,191,14,67,238,148,154,186, + 51,47,9,81,219,11,10,64,110,0,44,149,102,149,205,175,187,156,137,155,119,225,203,17,157,110,250,252,212,127,3,32, + 154,24,174,97,191,231,86,14,189,254,114,110,253,195,175,177,243,209,195,0,172,249,27,120,1,123,16,28,131,113,11,235, + 135,94,251,186,166,142,171,248,100,25,155,38,120,111,138,76,46,89,100,16,228,121,134,181,69,24,160,29,16,221,60,43, + 186,172,1,24,15,124,130,254,172,90,235,66,113,170,117,5,143,104,69,84,169,156,67,11,137,11,35,30,58,122,144,241, + 198,16,119,92,118,13,174,215,162,143,225,140,93,34,50,1,223,119,213,141,196,157,156,7,79,159,192,198,101,148,15,17, + 214,227,188,199,42,129,86,133,69,170,181,6,231,114,242,212,50,115,110,142,56,148,132,74,50,111,78,49,57,53,65,189, + 90,161,169,20,213,126,206,137,251,31,135,99,103,41,41,133,75,114,74,174,0,70,169,36,198,58,218,185,135,52,71,90, + 135,177,22,99,29,153,207,200,172,41,146,58,132,7,45,80,229,18,149,114,131,70,189,1,65,192,194,177,19,44,204,204, + 34,77,151,233,250,14,36,1,71,143,156,224,250,235,246,240,175,254,229,63,229,39,127,242,223,176,255,192,9,234,67,99, + 52,74,195,88,99,16,84,233,13,50,168,60,158,48,12,81,74,209,207,82,4,144,101,25,222,58,206,156,57,131,115,48, + 58,54,70,104,45,189,118,135,44,203,49,206,80,171,214,169,84,42,171,213,167,247,162,72,232,144,186,48,52,179,69,74, + 108,146,37,84,107,21,46,185,100,43,38,203,9,189,164,50,58,202,130,84,177,178,174,44,64,71,20,113,226,238,69,126, + 208,235,192,191,15,52,127,168,53,53,138,153,226,43,106,6,228,47,120,145,61,69,252,46,59,215,177,118,231,90,198,111, + 217,77,216,168,144,37,25,100,230,121,111,62,141,177,96,44,253,225,58,63,243,67,111,34,253,185,15,242,244,249,165,23, + 244,37,22,131,170,110,73,16,134,158,241,69,88,51,114,235,205,37,133,199,152,12,211,239,34,113,40,21,163,116,128,247, + 22,147,167,5,104,120,135,148,69,128,173,214,130,56,14,87,163,108,87,212,217,95,255,157,10,209,164,64,192,128,211,178, + 242,103,11,41,130,3,225,9,148,66,58,65,174,224,11,143,61,194,80,28,115,203,142,29,200,180,133,72,29,121,218,39, + 182,154,247,190,234,213,52,158,126,156,135,79,31,165,235,10,143,105,97,4,210,41,2,87,172,178,5,158,32,140,40,7, + 33,81,28,83,173,68,140,55,26,76,84,235,76,148,171,76,15,141,80,46,197,200,64,97,133,67,57,143,76,243,130,81, + 237,13,185,243,128,66,234,136,126,55,37,21,150,196,103,232,40,160,50,90,165,54,50,78,169,89,163,57,49,78,117,104, + 136,176,90,163,218,28,162,92,46,83,169,148,209,97,200,77,173,46,79,63,245,12,79,60,246,4,39,143,159,167,22,55, + 57,123,102,134,94,111,43,107,166,70,249,133,127,247,207,249,231,63,253,139,204,205,166,3,110,133,39,75,83,148,146,88, + 231,208,186,104,169,188,119,72,138,100,144,94,210,39,14,66,148,86,44,183,22,169,86,43,40,41,105,181,150,41,85,43, + 69,180,144,43,140,203,74,165,18,74,169,194,187,9,81,196,71,231,14,44,232,72,50,59,115,158,75,182,111,165,222,168, + 97,156,1,169,184,247,11,95,98,71,158,207,122,56,235,161,29,131,123,49,1,200,15,182,191,255,88,7,252,143,64,81, + 161,224,139,188,84,236,102,181,80,223,130,24,65,74,86,254,190,6,42,151,111,66,150,66,244,45,187,177,149,24,49,61, + 194,26,41,241,89,142,233,190,240,236,8,153,229,44,70,1,235,55,79,210,56,191,244,130,127,191,22,240,8,34,2,223, + 12,54,108,104,214,247,236,146,152,156,60,233,99,6,201,12,222,151,65,106,172,205,72,147,94,97,52,54,0,24,231,44, + 74,105,148,214,131,77,23,23,12,161,87,139,157,1,40,13,214,204,95,103,140,54,0,31,239,113,90,32,188,39,180,130, + 80,132,244,69,202,239,63,240,85,114,109,184,117,227,86,84,219,98,8,200,164,71,59,203,219,118,238,225,198,75,182,178, + 104,19,210,126,177,173,114,12,146,36,6,241,205,165,48,42,18,53,148,162,28,86,8,156,34,80,2,103,50,2,97,240, + 89,23,111,53,90,106,188,150,248,40,32,32,66,100,142,126,150,179,220,239,211,241,45,214,111,219,204,216,218,81,202,163, + 21,234,245,10,149,90,140,142,2,84,160,137,74,85,74,213,26,81,185,134,10,162,98,219,132,39,199,211,24,170,115,243, + 173,183,112,243,205,55,113,238,212,57,158,120,252,25,14,60,251,52,135,14,157,96,251,182,141,108,219,182,149,127,243,175, + 127,134,159,255,185,95,98,102,118,17,98,137,212,186,104,193,188,31,204,128,32,12,195,162,133,28,56,34,58,239,73,179, + 156,115,231,207,227,61,108,222,180,165,104,7,251,69,102,189,53,57,173,214,50,206,123,106,213,106,33,135,65,226,173,67, + 73,9,40,156,181,228,54,225,234,107,47,7,60,161,14,217,127,240,8,207,124,252,19,230,125,112,220,194,33,13,75,245, + 193,140,243,197,60,95,144,138,223,213,154,0,255,146,99,106,107,51,119,254,91,40,3,4,56,199,145,127,242,118,110,202, + 51,130,245,227,116,181,42,18,150,60,248,44,255,27,103,67,104,231,217,255,134,43,56,176,247,96,49,176,125,1,223,89, + 98,96,220,251,178,135,145,112,203,214,161,161,169,113,92,178,68,210,235,146,103,25,82,41,52,26,33,4,73,210,37,75, + 250,72,10,73,65,161,245,26,172,214,87,124,120,46,104,189,86,128,198,251,1,39,104,133,22,61,16,78,14,28,134,86, + 127,14,210,121,156,176,24,41,138,12,83,173,233,248,156,143,221,127,15,83,81,149,45,19,83,164,73,15,103,12,185,201, + 136,195,136,102,20,209,240,1,42,168,226,130,128,92,21,32,134,243,152,44,69,82,124,47,233,37,248,140,92,21,98,88, + 165,4,50,0,173,3,194,160,132,150,154,204,89,82,233,88,204,61,243,2,206,217,148,182,75,72,178,46,75,157,121,174, + 10,134,217,50,53,65,92,142,201,242,148,52,201,177,253,20,33,66,234,245,128,72,6,5,209,82,106,172,179,8,169,138, + 170,33,77,16,192,228,218,49,38,55,76,114,211,242,13,28,126,246,32,207,30,58,129,240,134,29,59,118,242,19,63,245, + 15,249,255,126,246,223,178,216,235,145,229,22,41,53,72,129,177,150,64,42,162,168,68,179,57,196,210,114,11,99,115,172, + 241,228,121,78,160,53,173,78,139,243,179,231,24,29,29,195,121,8,130,238,160,237,114,116,41,194,22,203,229,74,97,215, + 33,11,187,146,80,75,206,158,59,195,214,237,91,152,90,55,69,158,166,200,184,194,39,254,248,19,108,63,113,124,110,4, + 158,78,224,72,31,250,127,60,24,246,190,88,51,160,42,240,159,2,205,146,128,202,75,113,13,159,30,125,246,91,255,42, + 227,117,42,66,224,211,28,159,190,184,163,45,151,27,234,27,199,153,188,110,27,203,247,238,127,65,1,40,4,169,165,168, + 230,206,143,235,230,112,69,73,143,119,166,240,44,70,96,156,163,44,11,73,64,175,219,42,230,63,190,40,199,133,4,33, + 10,63,157,80,235,1,25,81,172,90,76,172,180,87,43,230,100,171,237,217,170,107,98,17,203,190,194,158,46,100,98,18, + 163,5,214,21,32,18,137,128,212,102,252,225,125,247,242,206,91,110,102,107,115,24,233,28,38,10,200,180,68,100,14,97, + 5,169,80,120,3,202,22,58,52,37,36,210,5,8,173,87,149,250,198,59,34,33,9,195,34,250,199,8,193,114,158,243, + 236,249,25,90,253,62,105,32,201,227,128,32,174,162,194,26,178,222,164,108,42,212,228,48,253,190,225,206,187,30,224,190, + 251,247,114,249,21,151,177,125,219,54,70,70,134,48,121,70,123,169,67,191,123,140,114,173,70,169,86,163,90,175,161,195, + 16,164,196,123,71,38,61,69,253,97,193,164,196,213,144,61,87,95,193,214,254,37,28,218,255,52,15,61,250,8,227,163, + 99,188,251,59,223,198,175,188,255,183,177,126,32,252,85,1,165,40,70,8,65,158,229,140,141,142,16,232,128,165,165,37, + 210,52,197,25,143,113,142,94,191,207,169,51,103,136,227,18,163,195,99,152,44,167,211,110,175,254,12,236,192,132,191,82, + 41,3,18,233,100,65,127,200,51,110,190,229,70,114,107,64,41,78,159,62,203,227,31,248,160,249,30,56,156,195,227,14, + 78,255,79,48,159,124,177,159,240,32,36,148,138,242,138,156,231,165,6,64,66,61,15,99,32,99,95,244,33,219,215,129, + 131,117,76,188,246,114,166,30,60,64,108,220,11,242,238,179,226,41,52,7,82,128,94,74,83,221,203,218,4,120,18,107, + 81,113,140,116,150,168,84,198,153,140,164,215,43,252,119,156,67,106,133,27,112,160,165,210,132,97,225,197,44,132,94,5, + 155,21,48,130,129,47,180,95,177,140,125,78,167,228,87,53,99,69,236,178,178,128,183,24,105,139,4,119,227,80,50,228, + 88,210,227,255,124,233,203,220,176,105,59,87,109,222,204,84,165,76,32,32,215,6,35,28,194,57,20,30,159,231,132,74, + 227,124,142,14,10,101,184,80,122,80,81,72,156,146,28,95,110,113,236,208,97,150,140,97,161,223,199,5,138,209,169,9, + 26,149,6,54,243,136,92,130,233,17,42,77,164,21,198,42,130,32,102,116,122,10,25,6,28,62,182,200,129,3,119,51, + 49,218,96,207,165,219,88,51,57,140,146,158,206,226,121,58,11,179,180,162,152,82,181,78,181,57,76,185,82,33,212,193, + 192,56,3,44,186,176,6,17,150,168,164,184,236,218,107,217,190,123,55,167,78,28,229,202,252,42,246,92,246,0,247,61, + 240,16,82,69,104,161,73,179,140,56,138,139,193,179,135,225,102,147,114,169,68,183,223,163,221,43,236,102,187,73,31,235, + 28,71,143,29,199,89,201,154,169,73,100,36,105,181,90,24,107,168,84,138,90,83,105,73,92,138,9,101,192,169,83,167, + 216,125,217,78,70,199,70,233,231,125,170,213,33,62,241,177,223,99,253,51,79,204,143,192,83,25,60,149,195,210,20,248, + 247,240,226,144,237,34,224,30,41,57,174,36,218,191,116,73,217,175,72,49,170,207,12,193,166,9,22,174,217,198,254,251, + 159,125,65,128,127,80,1,249,186,243,109,5,199,151,191,248,133,195,31,188,241,117,155,198,234,13,113,166,164,74,205,43, + 246,68,107,174,190,92,236,186,118,13,209,112,25,99,115,220,64,107,36,173,69,200,24,239,51,180,202,10,107,10,21,124, + 67,235,245,28,8,201,193,122,94,2,94,174,12,159,221,215,189,163,121,81,216,189,202,66,201,129,195,227,133,196,121,129, + 208,154,101,39,249,204,254,125,124,245,232,1,118,142,141,115,249,212,90,214,77,140,83,46,151,8,181,38,116,2,97,13, + 206,122,180,214,16,134,244,157,101,169,223,99,118,97,145,99,115,51,156,92,158,39,183,30,21,197,56,161,200,173,165,42, + 171,72,25,98,157,196,107,72,76,78,40,161,84,9,139,217,150,113,24,160,223,206,104,84,98,42,186,142,12,60,231,206, + 156,231,248,241,47,49,52,92,225,138,43,119,179,97,253,52,181,114,136,49,57,11,243,231,105,45,204,17,149,202,148,199, + 70,168,150,107,148,75,53,132,18,88,145,98,189,197,122,143,77,19,164,128,205,219,182,178,105,203,22,174,186,250,58,62, + 251,185,207,243,155,191,245,127,121,252,177,125,120,36,18,79,160,66,150,150,150,72,210,144,48,138,105,54,135,9,162,136, + 126,175,143,71,146,152,148,124,113,158,44,55,244,210,46,107,166,166,136,227,152,165,197,37,242,204,210,28,86,164,73,66, + 24,133,180,250,203,72,13,55,223,124,19,206,90,34,29,115,250,212,121,30,249,205,223,202,239,192,31,204,97,175,135,19, + 215,65,246,134,23,241,25,56,43,4,215,135,209,115,109,250,69,0,250,27,110,197,172,99,232,245,87,176,254,225,67,168, + 220,62,239,85,144,2,22,193,159,132,249,146,20,119,111,74,211,220,61,252,204,6,15,245,10,76,44,127,230,158,201,103, + 66,53,126,248,250,43,71,174,252,169,31,175,142,111,223,36,122,102,22,235,52,113,10,50,116,56,45,64,36,131,97,178, + 64,122,119,129,254,75,174,130,80,209,183,13,124,158,145,69,237,228,60,98,176,13,43,64,106,64,54,241,30,225,124,65, + 58,19,96,241,104,83,36,107,248,80,145,56,203,3,167,143,179,247,212,113,154,97,133,169,70,147,201,161,49,214,84,203, + 12,87,75,212,107,67,100,166,207,241,153,25,78,44,204,114,116,113,150,142,40,134,172,129,40,242,182,116,146,3,25,90, + 41,98,165,48,253,62,11,221,46,94,64,20,197,140,143,143,19,148,11,51,51,75,225,225,147,154,132,133,158,39,10,3, + 164,132,90,115,132,166,30,35,207,83,246,62,116,148,135,246,30,100,227,186,81,118,108,219,88,164,99,152,140,94,119,153, + 243,201,34,101,25,51,90,110,82,30,31,161,92,175,160,148,198,51,240,215,150,146,196,230,72,33,104,140,84,248,222,31, + 248,30,222,126,199,219,248,212,39,63,205,239,254,223,15,242,228,147,251,233,27,139,117,142,118,183,131,214,133,24,182,214, + 168,81,42,149,232,245,122,88,231,48,194,51,215,158,163,125,184,205,252,252,28,155,55,109,97,120,120,152,110,167,131,214, + 138,74,41,70,24,199,233,153,83,188,243,221,239,96,104,164,70,154,100,148,170,53,62,244,187,191,206,182,39,30,62,51, + 10,15,36,240,112,11,22,62,51,40,88,95,140,83,1,126,55,8,56,73,193,253,185,8,64,47,198,201,12,126,227,4, + 242,71,223,202,154,247,127,26,242,231,127,241,216,7,74,208,203,157,223,39,224,140,46,102,126,229,88,48,86,246,172,153, + 202,236,166,252,238,189,59,14,221,255,247,46,219,123,199,235,54,237,252,225,247,68,235,39,183,145,36,139,72,221,66,136, + 18,74,12,161,85,4,184,162,130,17,69,122,198,10,17,110,117,45,63,48,172,119,190,104,187,164,82,95,103,170,190,194, + 7,186,112,139,38,87,62,47,37,129,82,88,99,11,251,213,48,194,11,232,144,115,176,53,195,254,185,211,72,233,9,164, + 36,210,49,74,200,194,188,203,122,172,20,232,56,90,77,39,213,170,200,55,43,151,43,68,113,140,113,150,147,167,79,19, + 199,37,198,199,39,24,105,142,96,115,203,236,204,44,113,28,175,234,245,162,40,30,236,44,86,248,75,57,214,22,60,29, + 173,3,132,16,28,63,50,199,129,103,142,49,60,82,101,231,246,205,108,218,184,150,161,64,98,178,140,179,217,121,92,111, + 137,122,28,81,175,84,24,106,142,16,68,85,242,129,161,91,110,7,196,186,44,71,7,146,239,249,219,223,199,219,223,254, + 46,30,221,251,24,95,251,218,125,124,225,11,95,230,192,161,99,244,147,132,32,10,152,155,93,40,30,0,165,138,156,54, + 239,80,66,225,242,156,153,153,51,100,105,159,203,47,191,156,145,145,113,242,60,163,221,105,211,237,119,216,184,105,3,59, + 119,238,32,207,13,97,24,114,248,196,49,30,248,63,191,145,127,63,236,207,225,254,18,28,59,5,217,223,126,49,239,253, + 48,68,42,93,204,125,46,2,208,139,119,68,146,49,127,249,102,178,31,125,43,27,223,255,105,196,243,12,66,26,232,22, + 221,88,79,67,63,0,150,64,214,60,65,8,165,150,96,88,121,177,109,58,207,110,46,127,248,179,183,126,245,193,71,47, + 189,228,39,126,108,232,134,215,95,67,175,107,7,3,77,129,51,5,229,95,14,252,160,221,138,6,98,208,146,173,216,77, + 92,104,211,186,2,60,43,195,106,121,65,53,116,97,43,183,226,105,227,7,131,43,233,197,170,127,142,212,18,99,45,178, + 172,81,66,32,45,24,36,198,175,204,47,67,74,186,200,143,151,10,226,74,9,111,29,165,114,133,48,138,200,178,12,188, + 39,51,57,213,160,134,150,146,110,167,179,250,61,3,173,139,7,92,22,210,143,64,5,104,45,139,239,53,96,25,39,73, + 138,14,52,113,80,162,57,60,133,195,210,89,94,228,179,95,184,151,102,57,224,150,203,118,49,185,110,140,242,196,8,153, + 23,164,237,54,115,237,22,203,115,115,148,42,13,106,35,35,148,107,197,247,206,93,97,248,111,129,110,183,69,20,135,220, + 124,219,141,188,250,53,175,230,71,254,193,63,224,222,123,31,230,163,127,252,97,238,249,218,221,164,105,70,20,70,196,113, + 68,158,164,244,147,4,231,61,222,21,18,142,86,123,137,125,251,246,177,109,155,97,100,100,140,126,191,199,240,112,131,183, + 189,237,205,224,29,89,106,208,181,144,79,125,224,119,184,250,240,129,99,117,184,191,7,251,2,104,189,19,120,138,63,61, + 243,125,33,225,192,3,35,192,7,148,226,159,43,77,224,95,30,98,124,245,163,111,185,230,149,140,65,200,220,144,172,27, + 163,191,126,140,161,71,14,33,158,71,82,252,50,48,63,88,135,43,10,233,199,97,240,195,96,110,133,36,135,37,7,231, + 114,56,83,130,214,250,229,142,220,255,213,123,26,231,70,199,106,27,47,221,69,232,11,207,228,187,238,126,128,99,39,207, + 34,6,98,157,21,95,232,213,56,154,193,44,200,57,55,208,39,125,189,80,245,27,65,103,229,215,95,71,106,84,18,47, + 7,105,139,198,162,17,84,163,50,177,10,9,133,70,152,66,218,81,12,155,1,45,81,113,128,197,146,216,34,157,162,86, + 169,33,164,32,77,19,58,157,46,253,94,15,132,96,100,120,152,90,165,86,180,70,222,23,219,62,32,138,162,85,66,95, + 1,176,158,104,144,131,22,69,17,66,72,180,214,40,169,176,206,98,156,71,5,17,149,114,141,250,208,48,253,133,101,204, + 233,89,78,31,58,68,167,213,166,17,86,168,13,213,32,16,228,182,24,236,247,151,151,232,245,150,17,18,202,165,26,82, + 72,36,32,10,50,19,198,89,146,44,33,42,133,236,218,189,157,55,191,249,245,220,116,211,171,24,30,110,210,233,180,201, + 147,140,230,240,8,65,16,210,239,245,113,110,197,255,71,18,6,17,173,86,139,209,209,81,192,241,93,127,235,93,76,77, + 142,131,135,40,8,120,250,208,97,238,253,167,255,108,249,245,237,206,87,114,248,84,31,158,222,9,201,8,48,14,140,81, + 144,0,199,6,191,127,161,63,246,42,201,63,14,34,114,254,108,171,97,33,64,13,136,173,43,213,180,82,197,27,66,16, + 40,182,93,178,149,219,110,187,141,64,235,130,157,63,208,38,66,225,101,37,131,129,182,223,63,63,43,39,21,86,95,249, + 0,180,10,66,235,199,72,166,71,105,60,114,248,121,3,161,229,98,11,198,32,114,144,14,133,58,126,18,216,58,184,249, + 142,64,22,193,2,48,99,161,179,49,55,254,236,87,31,168,60,99,178,198,37,55,92,33,165,15,185,235,174,123,57,120, + 248,40,98,0,38,43,244,255,21,32,185,16,100,86,254,255,159,85,13,21,22,18,254,235,51,197,6,21,149,23,69,154, + 59,222,35,7,10,203,220,22,41,167,94,60,247,103,133,150,232,80,23,214,164,120,132,119,104,41,16,174,48,0,203,141, + 25,196,240,20,128,40,133,160,90,173,82,46,149,9,244,192,169,144,130,252,87,42,149,208,90,175,138,58,181,46,182,124, + 5,248,20,198,97,122,224,229,236,188,65,234,34,128,81,8,129,14,66,74,66,161,150,58,12,151,42,204,157,56,203,201, + 253,135,56,183,52,143,174,151,41,85,170,68,74,131,119,164,105,135,110,167,67,191,157,130,49,4,90,19,69,1,171,92, + 5,37,16,194,96,93,15,176,172,93,183,134,155,111,186,145,27,111,184,145,237,219,183,211,239,247,72,146,62,214,153,130, + 57,237,4,90,6,228,198,144,36,61,188,201,121,247,187,223,206,21,87,237,128,65,36,80,88,42,243,191,126,225,23,217, + 114,231,93,7,198,225,179,33,220,181,31,230,126,0,120,255,224,227,127,0,7,129,47,3,159,166,160,95,4,64,243,5, + 186,207,127,58,8,216,43,20,241,159,215,17,92,4,160,23,25,132,54,140,147,172,29,165,241,232,17,132,115,207,27,0, + 137,11,0,168,69,225,57,189,117,101,27,1,124,28,92,0,157,42,204,120,33,102,167,156,203,179,135,159,172,63,124,250, + 196,208,182,215,223,166,31,121,120,31,79,238,219,143,80,23,182,96,69,98,231,133,192,115,97,69,115,97,160,222,133,31, + 127,250,166,27,124,222,249,34,73,85,8,132,82,88,1,70,128,21,2,43,5,97,28,17,14,0,76,10,129,242,130,72, + 40,68,110,136,229,74,52,51,40,165,136,194,16,147,229,148,202,101,132,148,88,99,168,148,43,40,161,80,74,209,104,52, + 40,149,74,88,107,169,84,42,88,235,6,179,30,189,26,127,180,34,176,181,222,129,42,72,131,82,250,2,248,84,64,16, + 134,4,129,98,105,126,150,10,138,166,138,8,132,100,118,97,129,243,11,45,250,25,116,146,156,70,115,132,48,8,144,94, + 144,246,251,180,91,139,116,218,45,156,51,68,81,68,168,117,193,107,18,30,188,45,76,225,140,193,88,203,80,179,206,174, + 221,59,185,245,214,155,217,115,217,110,202,229,98,91,54,55,191,136,16,146,40,10,177,38,225,59,223,115,7,111,127,251, + 27,73,122,11,72,47,168,87,235,220,255,216,227,124,246,103,255,117,255,246,36,185,207,194,231,42,176,223,9,145,255,170, + 82,76,3,63,2,188,9,248,126,224,106,224,243,131,22,105,106,80,17,189,16,231,83,82,241,184,148,127,46,219,249,34, + 0,189,84,64,104,221,74,37,228,94,112,0,154,7,126,163,248,188,123,15,116,219,48,155,75,185,52,226,125,172,159,61, + 54,246,200,153,51,213,67,185,212,199,142,159,64,72,113,65,11,245,167,65,230,27,103,60,23,126,254,194,57,209,133,109, + 218,133,25,90,43,119,97,33,128,245,104,161,80,40,66,161,80,20,159,119,214,19,40,141,68,146,231,150,204,88,156,144, + 196,229,242,64,246,225,168,86,170,200,193,48,58,12,2,130,32,32,142,34,148,146,228,121,70,28,199,212,106,85,140,177, + 3,208,41,230,88,90,7,5,165,96,48,181,16,74,34,6,67,115,41,5,10,77,32,66,156,144,24,239,144,145,66,85, + 35,252,82,155,138,0,161,5,37,17,19,82,97,98,221,86,206,39,57,15,62,254,52,210,72,42,81,68,169,22,162,180, + 36,79,83,146,126,143,246,242,18,38,205,9,132,64,171,16,169,10,223,231,98,192,47,138,65,184,203,144,26,214,111,90, + 203,141,55,189,138,55,221,126,59,91,54,95,194,210,252,34,103,207,158,225,166,87,93,197,143,255,216,15,147,167,139,96, + 115,148,144,232,176,196,175,252,187,255,192,165,15,63,122,116,29,124,33,128,175,61,4,179,191,43,21,135,227,146,248,77, + 107,185,213,123,70,6,85,112,23,248,42,176,133,194,30,230,133,114,230,252,152,122,249,1,208,183,93,44,143,234,38,180, + 174,216,196,241,31,125,11,27,222,255,25,68,254,55,19,168,82,46,64,200,127,12,90,239,113,238,201,28,106,107,2,61, + 162,62,123,119,248,137,122,109,109,80,10,3,147,101,5,176,32,240,190,96,224,202,11,218,178,11,129,71,107,189,170,156, + 255,198,1,245,159,2,222,213,135,188,16,105,226,11,177,176,116,30,133,67,88,135,87,106,85,68,236,115,87,128,3,160, + 116,0,74,174,182,94,74,106,130,32,64,169,34,125,52,75,83,2,29,144,36,9,165,184,132,214,138,52,77,72,211,180, + 16,122,42,133,247,130,44,203,73,146,132,32,8,208,90,19,134,65,241,239,92,105,135,69,49,73,243,78,16,149,34,172, + 183,32,61,149,177,81,146,133,14,121,110,136,69,70,100,37,73,63,99,97,102,158,181,87,238,161,149,24,172,136,176,132, + 60,246,212,126,70,134,26,172,95,55,141,240,130,180,103,88,236,205,210,154,59,79,169,54,68,125,116,146,74,165,178,250, + 58,20,129,140,30,164,163,159,180,208,82,50,54,222,224,123,254,238,119,113,199,187,222,198,125,119,223,69,123,105,142,3, + 71,15,49,82,47,209,172,55,136,202,53,62,240,193,63,66,253,209,71,58,55,192,137,4,142,155,162,186,85,223,139,183, + 239,77,19,191,222,89,186,20,130,207,139,190,172,223,198,91,176,63,31,132,210,191,113,16,26,36,103,240,105,224,59,160, + 229,225,145,60,55,245,105,76,253,54,19,15,237,151,97,83,73,133,244,133,133,201,96,169,245,117,21,205,115,225,133,110, + 117,229,126,97,149,115,33,0,93,88,49,201,65,98,132,148,5,168,136,193,12,200,225,177,24,130,32,40,218,160,193,106, + 57,8,66,178,52,69,7,10,99,114,170,229,18,206,121,50,103,9,162,66,185,111,141,161,221,110,19,40,141,22,10,188, + 164,215,235,83,173,86,17,162,112,23,140,99,63,72,251,240,171,177,67,118,85,205,47,16,190,144,91,40,89,128,159,147, + 30,161,5,46,207,145,74,16,160,9,157,194,78,79,211,59,115,142,97,33,73,69,70,213,90,206,45,156,166,218,94,203, + 214,233,181,180,150,231,217,126,229,53,148,71,154,236,123,252,81,206,157,122,130,169,241,49,214,173,157,70,135,138,126,218, + 162,179,60,71,119,160,120,175,53,139,205,89,16,197,3,6,127,49,124,87,74,226,69,78,158,47,16,215,20,175,127,251, + 107,49,73,194,241,99,199,120,230,137,39,57,113,98,158,196,30,227,127,252,231,255,225,254,89,97,183,90,115,176,205,192, + 242,102,56,42,156,59,231,112,173,164,176,46,243,23,193,231,226,22,236,47,104,199,44,201,250,81,146,117,99,212,31,61, + 140,176,127,245,178,242,155,105,193,78,3,95,24,108,41,174,0,62,3,236,46,90,179,100,20,18,15,147,75,129,222,113, + 79,16,14,173,26,143,249,175,39,25,94,88,201,60,231,25,237,255,84,229,179,82,233,92,88,45,93,248,241,245,105,171, + 98,0,72,2,37,139,217,77,173,86,43,42,22,87,228,198,107,173,6,118,20,121,81,53,88,91,248,47,11,177,202,221, + 41,149,98,164,144,4,65,72,24,22,237,88,173,86,195,24,67,191,223,71,41,73,28,199,197,182,107,144,193,181,178,5, + 91,189,14,85,72,116,133,148,148,162,98,132,170,131,194,196,204,216,156,64,23,100,199,186,214,4,145,38,208,10,149,24, + 178,32,96,100,122,154,110,167,79,88,210,236,220,185,133,53,227,147,52,26,67,156,157,61,207,189,123,31,194,8,207,244, + 154,117,133,87,146,77,201,210,132,94,183,69,175,189,140,201,82,162,149,175,39,20,82,42,112,133,246,12,1,206,228,120, + 111,24,30,29,102,219,246,173,12,53,71,152,157,95,196,40,201,99,179,11,242,72,107,185,46,97,93,19,182,70,176,206, + 64,195,129,232,64,222,1,227,193,141,83,240,197,190,10,108,186,216,130,253,233,25,208,255,243,230,171,191,109,209,87,100, + 134,254,186,49,146,181,99,127,173,153,208,55,3,64,25,133,53,236,235,128,155,128,215,0,87,2,107,192,47,10,161,148, + 16,235,231,2,125,197,93,81,52,94,216,119,20,55,134,251,51,222,63,47,36,27,94,72,58,252,198,13,217,10,224,92, + 184,166,247,43,119,224,5,159,135,98,168,28,4,1,81,84,36,83,224,158,179,170,202,243,252,185,121,141,16,168,129,110, + 80,14,4,158,90,43,226,48,162,92,42,35,101,1,52,65,16,124,29,96,73,41,87,179,207,86,190,215,55,94,183,146, + 18,169,116,145,243,165,53,90,43,172,115,120,201,192,210,86,66,160,49,173,14,195,97,136,245,25,97,102,72,90,61,212, + 88,19,89,169,113,254,236,121,54,78,79,81,27,169,177,216,91,230,247,127,255,35,254,254,223,254,80,254,216,159,124,213, + 30,234,180,148,42,69,76,140,142,82,46,151,17,206,224,242,140,164,215,97,105,126,142,164,215,65,74,77,24,132,133,79, + 211,224,7,106,125,1,150,198,26,28,158,106,181,198,246,93,59,120,211,91,222,44,118,191,229,109,106,118,235,246,210,231, + 218,253,241,175,204,205,111,236,153,108,211,56,108,170,193,100,0,85,1,162,11,121,0,249,44,248,71,128,141,23,1,232, + 79,207,128,38,38,38,94,54,120,241,66,181,212,246,205,55,96,190,244,56,225,190,111,45,174,112,197,34,227,194,27,96, + 35,240,11,23,252,126,199,5,189,239,97,48,161,247,125,19,5,206,13,98,120,86,103,60,74,14,18,82,159,3,20,117, + 1,251,249,194,10,231,66,160,249,70,55,197,231,42,158,194,33,80,12,188,94,87,190,222,74,85,149,37,105,225,43,228, + 45,185,181,196,113,188,250,178,135,97,76,150,37,148,203,17,74,23,132,201,96,112,45,74,235,1,232,20,21,79,24,134, + 69,64,160,16,171,243,22,231,28,229,114,153,52,43,28,33,117,16,20,195,231,193,133,25,87,248,236,228,185,193,5,97, + 209,18,250,34,31,76,42,141,115,144,5,33,182,20,147,246,51,116,172,17,145,167,153,88,22,14,31,165,126,233,165,204, + 182,150,56,126,242,4,179,251,186,252,187,159,248,41,191,227,145,39,91,63,14,103,37,36,119,254,250,31,76,252,247,15, + 126,124,116,244,134,43,131,55,220,254,70,110,188,114,55,99,205,42,206,27,146,52,37,109,119,56,215,61,74,80,174,48, + 52,220,164,54,84,71,69,49,129,150,216,188,216,70,122,33,48,214,147,166,61,132,16,92,178,101,138,75,127,252,135,249, + 161,31,252,62,238,189,255,193,240,19,31,250,232,244,175,126,225,243,19,151,156,56,185,237,38,184,98,2,30,15,96,239, + 89,120,188,15,199,190,23,218,7,94,58,62,96,47,157,25,80,24,134,47,151,107,245,47,220,23,86,200,231,1,212,11, + 65,5,252,44,240,79,225,207,21,2,230,20,65,137,63,225,189,247,96,149,49,70,72,141,25,0,14,23,144,249,86,77, + 199,248,122,210,225,74,43,243,141,159,91,153,15,93,56,59,90,169,128,132,120,78,200,170,68,49,68,214,74,81,173,86, + 87,205,182,210,52,93,5,193,32,8,232,118,187,24,107,193,187,98,230,19,132,8,160,239,60,195,205,38,149,74,5,147, + 23,128,83,46,151,87,1,111,229,250,87,6,214,174,184,217,176,198,224,188,71,5,1,38,207,65,136,2,180,156,37,140, + 66,156,47,172,107,81,2,57,40,216,28,133,206,45,43,149,105,27,199,132,14,232,121,143,207,13,165,249,54,173,83,167, + 104,14,53,249,157,223,251,48,159,253,253,15,154,239,59,63,159,222,10,173,20,142,59,152,191,3,230,111,233,244,183,61, + 244,39,247,142,125,248,43,247,133,31,216,185,69,190,229,29,111,17,55,191,234,106,54,76,142,162,149,34,115,57,73,210, + 102,230,84,155,133,185,136,122,115,152,90,189,73,20,215,48,190,104,73,133,0,169,139,64,73,99,251,216,110,66,41,82, + 220,254,198,27,120,211,235,110,224,208,177,127,170,63,242,161,15,79,126,241,211,159,27,93,247,216,227,151,236,236,116,174, + 24,134,7,26,112,87,0,143,77,194,185,114,81,20,95,60,43,0,228,47,142,202,120,62,94,131,112,48,239,249,183,20, + 100,196,191,236,43,182,1,3,46,4,87,206,140,209,202,96,84,177,14,183,182,80,186,75,33,7,91,46,40,244,97,254, + 235,170,158,11,183,98,43,45,149,187,192,162,99,5,152,164,148,24,91,228,207,23,218,44,177,10,94,206,58,242,126,74, + 189,81,35,12,3,74,165,136,110,183,95,8,73,139,80,44,82,147,19,170,194,5,208,218,132,114,169,76,181,90,98,104, + 104,168,104,159,2,137,28,204,145,86,218,172,149,108,245,149,225,55,23,108,239,140,41,18,73,181,214,104,253,28,123,90, + 74,137,70,144,217,156,168,28,23,222,217,214,96,28,72,47,17,97,192,49,151,33,90,30,180,39,183,57,97,187,205,204, + 99,143,179,254,85,215,81,171,14,83,93,88,238,93,9,157,54,4,22,38,34,8,45,148,70,192,191,13,220,205,198,243, + 208,147,135,236,211,79,254,119,243,133,177,33,185,254,230,107,130,247,220,113,135,216,190,117,35,181,122,165,152,115,101,57, + 115,167,79,51,119,118,134,90,189,201,208,96,104,141,42,108,79,156,181,104,41,7,105,181,134,44,105,225,17,108,89,63, + 198,79,255,212,63,98,246,135,254,142,190,251,203,119,79,28,250,131,15,15,143,125,234,51,211,235,178,108,189,133,225,58, + 124,41,40,110,147,231,221,189,230,132,16,124,94,74,162,151,217,222,77,95,196,224,111,97,144,61,120,1,203,192,239,3, + 191,53,152,3,125,83,253,239,115,173,154,143,140,177,161,247,244,40,188,52,86,30,216,149,42,167,152,191,200,231,82,64, + 47,168,124,86,54,75,23,174,227,197,64,114,113,97,251,182,98,249,90,128,128,194,89,183,250,224,59,239,72,211,148,94, + 175,75,20,133,84,42,101,22,22,22,11,16,9,20,105,154,21,32,87,76,131,190,174,178,202,141,65,34,209,58,88,157, + 37,73,41,139,54,234,2,64,52,198,224,6,243,158,149,107,14,130,160,152,177,24,51,240,20,95,177,25,113,88,99,81, + 97,1,186,89,106,8,101,64,28,71,44,215,107,252,201,221,247,177,165,92,162,84,10,176,222,226,45,124,229,143,62,68, + 180,102,154,242,230,237,165,223,58,125,202,212,148,10,250,121,190,45,200,51,43,173,113,147,222,186,141,144,55,65,93,5, + 193,109,16,204,205,46,229,159,248,227,47,166,31,104,103,225,219,238,120,135,172,5,158,141,155,214,51,50,82,39,10,53, + 185,201,232,46,157,167,187,52,71,189,57,76,99,100,132,82,185,134,212,26,235,5,43,221,110,241,227,114,88,215,199,164, + 142,70,89,241,246,59,222,72,239,246,55,4,15,126,226,115,155,190,248,190,127,216,120,125,167,157,133,112,252,17,152,75, + 161,255,124,62,120,49,240,39,66,114,94,8,94,110,217,244,223,246,0,228,129,72,73,30,84,146,57,254,108,13,205,159, + 247,194,157,165,208,127,245,129,95,229,175,94,91,251,98,162,139,242,222,175,12,7,157,181,88,191,162,118,151,120,111,113, + 206,15,120,65,254,207,229,4,5,90,99,173,35,179,41,184,175,31,151,121,231,86,245,86,197,223,187,160,234,27,128,88, + 154,166,56,103,201,178,12,41,19,194,48,36,205,50,148,86,148,227,24,188,39,233,39,69,72,98,150,17,13,196,168,54, + 55,12,53,134,6,3,242,66,130,177,242,245,86,42,177,114,185,24,82,155,60,95,53,81,211,90,127,93,219,168,180,198, + 91,135,113,133,234,62,237,39,3,43,211,2,124,115,147,161,140,32,170,84,89,123,227,53,36,79,31,163,18,104,84,4, + 65,47,97,107,86,38,157,235,114,199,149,215,4,217,149,215,12,103,70,144,228,150,110,150,144,184,54,39,90,139,254,104, + 55,53,203,115,11,44,206,207,243,182,172,231,95,131,15,255,46,248,47,124,229,158,124,230,242,43,213,134,91,111,208,15, + 238,125,148,102,179,196,174,93,219,25,31,29,198,228,133,60,163,179,180,64,187,181,72,165,58,68,115,100,156,32,174,160, + 244,115,206,141,120,7,162,208,240,121,44,214,244,137,133,226,213,239,125,23,31,255,216,167,135,143,127,248,143,182,109,133, + 53,195,16,206,64,127,246,175,112,175,253,101,167,2,220,163,95,158,143,242,183,61,0,5,74,210,109,117,249,254,133,54, + 135,94,12,0,116,30,161,240,74,73,164,215,224,4,94,184,1,232,20,182,173,5,109,71,252,185,43,120,231,139,249,141, + 240,224,132,28,232,187,184,224,255,23,155,45,53,144,118,172,240,129,164,44,196,160,94,21,153,92,248,162,85,11,130,162, + 98,169,148,203,24,99,200,179,140,74,165,138,119,158,60,45,6,201,231,207,159,103,124,108,12,45,53,253,126,151,56,46, + 97,109,78,191,223,93,173,12,86,218,176,110,183,139,28,180,103,43,109,151,25,16,27,87,255,77,206,225,114,143,213,26, + 179,50,243,202,29,65,24,144,123,67,63,237,145,230,93,84,185,66,88,110,224,119,239,96,254,236,25,154,89,74,179,84, + 163,30,164,88,44,198,88,60,1,78,121,188,4,89,142,208,97,9,53,57,41,188,44,5,29,239,57,221,235,241,216,147, + 143,219,108,255,227,217,171,33,120,131,181,250,171,191,244,203,233,145,74,32,174,127,235,237,234,231,255,213,191,226,212,47, + 189,159,55,191,243,173,220,254,166,55,178,97,106,2,157,165,100,54,161,215,94,162,215,94,34,46,149,169,52,134,9,226, + 50,97,169,134,14,138,71,201,228,30,47,5,194,91,156,203,41,137,136,225,45,27,57,5,149,237,69,66,143,254,183,192, + 195,207,235,122,70,18,73,73,153,151,31,241,241,219,26,128,60,80,137,67,126,243,179,15,114,232,204,220,139,118,25,66, + 12,36,9,185,27,108,127,28,97,20,15,34,101,190,222,110,227,27,231,86,43,15,112,150,21,38,235,74,107,124,158,35, + 7,131,95,9,127,106,118,100,76,65,62,92,221,168,249,98,104,92,138,99,164,145,171,179,155,44,203,138,234,42,12,177, + 206,210,104,52,232,180,59,197,32,217,57,90,157,54,227,163,99,116,58,93,178,44,167,86,171,161,117,80,248,74,43,69, + 167,211,193,90,75,189,94,39,138,99,202,23,108,197,46,188,30,127,129,207,245,133,28,40,147,231,228,89,182,218,190,9, + 20,50,181,132,161,194,106,73,180,118,18,211,110,49,179,208,98,56,44,19,90,139,201,186,8,219,67,9,6,255,254,16, + 155,129,145,2,71,70,37,210,92,90,41,177,254,218,107,212,93,101,229,245,99,143,154,219,156,87,183,122,252,190,255,244, + 43,221,127,241,91,31,168,150,206,204,38,63,236,236,210,131,255,249,183,74,255,243,247,63,86,222,244,246,215,68,183,188, + 245,118,118,109,216,136,179,69,234,109,175,219,163,211,238,34,164,162,92,169,50,52,60,76,92,107,12,6,238,131,159,13, + 197,155,67,150,246,40,13,8,16,226,121,54,42,147,80,252,220,121,121,178,174,181,248,38,6,176,94,136,87,36,0,5, + 74,114,126,169,195,175,124,252,158,23,251,82,68,97,77,33,73,243,108,176,249,178,95,183,126,191,208,120,236,194,141,88, + 33,43,176,72,245,156,220,66,172,204,89,46,96,76,127,35,41,49,207,243,213,25,204,202,124,103,69,201,94,171,213,240, + 222,211,233,116,200,178,98,254,179,242,255,148,86,197,60,202,88,250,189,62,105,154,49,52,52,132,177,197,26,62,8,10, + 131,177,44,203,8,195,112,181,101,76,211,20,165,53,81,20,173,126,223,149,107,88,81,213,139,32,40,18,63,6,169,31, + 22,86,171,55,49,232,29,51,151,97,41,252,137,164,128,160,62,132,13,74,156,57,55,79,61,205,9,130,136,72,43,148, + 183,8,111,139,167,61,136,8,61,4,222,146,134,142,52,55,52,156,224,77,55,222,166,127,119,126,81,76,30,63,154,238, + 128,238,206,126,178,212,56,117,46,105,192,137,38,254,216,110,208,189,211,11,235,246,255,234,71,182,253,218,135,62,191,97, + 252,246,215,69,111,127,215,59,216,181,121,35,18,75,154,116,192,102,244,151,231,232,46,207,19,86,134,168,214,170,84,135, + 234,232,48,196,91,71,47,203,232,236,223,239,47,131,118,6,61,1,246,223,82,240,197,190,85,187,212,50,112,191,84,252, + 162,210,168,151,169,232,67,39,165,242,95,8,60,65,158,17,89,59,88,133,190,114,54,102,43,213,207,175,127,250,254,23, + 179,250,1,16,218,58,167,115,235,173,64,104,165,48,3,34,226,133,91,172,11,43,134,149,7,248,194,85,188,86,186,0, + 145,85,169,131,127,14,136,6,9,15,43,132,192,21,146,224,202,223,245,222,19,68,17,146,194,42,35,77,83,196,96,61, + 190,2,122,121,158,175,242,123,242,44,39,142,34,154,205,38,105,150,50,51,151,16,40,141,51,150,48,140,104,54,203,116, + 187,93,172,181,12,13,13,81,169,20,6,102,43,213,207,115,4,199,231,24,217,43,215,185,250,206,254,13,215,30,234,0, + 165,4,137,183,164,38,69,101,80,139,74,32,53,190,18,163,55,213,233,44,204,211,95,92,32,76,44,85,52,35,213,58, + 145,214,160,52,62,235,19,121,131,18,30,167,138,8,160,82,14,187,119,95,169,62,114,234,36,255,208,26,91,129,100,10, + 191,15,184,179,15,143,74,200,53,172,191,26,174,222,62,223,185,254,238,15,124,124,215,255,252,228,159,76,172,123,211,107, + 195,219,239,120,27,187,119,108,36,150,96,178,132,220,102,244,91,243,116,150,102,40,45,86,89,187,126,19,165,210,16,79, + 28,61,65,250,208,195,189,13,112,58,133,153,12,50,1,12,125,139,55,141,2,122,192,31,234,96,53,212,242,101,9,64, + 139,163,227,127,209,251,50,42,203,16,199,15,83,81,154,106,20,21,171,217,139,213,207,243,141,65,133,127,179,181,200,149, + 182,228,2,87,196,213,85,246,224,172,0,193,202,92,200,88,75,150,103,148,227,210,234,223,231,207,40,201,173,181,95,71, + 62,52,198,20,45,214,160,10,209,58,160,215,235,173,206,110,194,48,252,58,80,200,178,172,112,47,140,99,194,32,192,56, + 135,25,84,72,65,89,19,14,192,107,121,185,181,186,142,95,1,62,231,28,225,192,7,104,5,120,130,32,40,4,173,131, + 86,111,229,123,58,107,49,214,226,173,45,102,71,82,22,57,97,74,17,138,194,167,40,136,53,214,184,194,168,222,56,4, + 158,225,13,27,17,155,54,211,106,183,56,115,226,56,159,190,243,43,92,177,121,11,187,166,167,25,174,213,200,136,145,73, + 6,202,145,75,143,119,41,87,111,216,204,3,155,182,198,31,59,122,176,247,110,107,235,17,76,8,40,171,66,175,119,92, + 192,225,12,14,68,240,212,91,224,154,155,91,189,171,30,253,208,167,182,253,241,231,191,60,246,241,27,175,41,95,255,166, + 215,113,205,158,61,140,52,106,64,27,233,37,189,78,135,94,187,71,80,26,229,253,255,241,151,217,50,191,56,171,225,89, + 3,167,114,72,119,125,139,237,146,167,144,246,252,11,29,240,172,148,148,95,206,0,244,23,201,15,132,16,24,33,216,55, + 119,158,208,123,174,153,156,166,30,69,171,67,194,151,123,245,243,27,159,121,128,163,231,22,94,244,203,177,66,8,39,165, + 80,30,172,53,8,41,86,3,9,87,230,49,43,60,153,11,213,241,43,109,145,16,130,64,7,132,65,56,112,31,20,44, + 181,90,36,105,178,250,103,87,248,54,223,56,83,242,222,147,36,9,161,14,8,148,94,101,91,175,104,192,210,52,45,228, + 11,131,207,25,99,80,90,17,199,49,73,146,32,7,127,206,24,75,187,221,38,73,82,148,210,12,15,15,147,166,41,73, + 146,16,69,17,149,106,117,149,39,116,225,28,107,101,48,141,128,204,24,88,201,70,27,208,10,156,115,88,99,176,74,34, + 188,165,174,52,10,137,183,158,92,128,177,25,101,25,18,7,1,253,110,11,39,5,165,106,137,203,110,188,142,153,229,121, + 62,253,135,31,92,122,168,86,209,217,186,245,213,87,109,187,148,219,54,108,2,219,199,5,142,52,119,228,121,198,27,111, + 121,141,252,108,84,105,250,220,149,166,142,62,91,190,62,239,165,85,88,246,208,139,225,204,60,28,140,97,198,195,254,18, + 60,122,11,92,117,77,171,183,231,233,207,221,181,229,107,95,184,107,242,163,219,54,85,119,220,114,179,184,241,198,43,217, + 186,101,35,81,37,226,248,92,139,255,253,239,126,146,214,7,254,168,117,19,60,154,194,163,17,204,236,1,103,249,214,34, + 186,106,192,71,164,226,215,180,38,126,153,235,237,245,55,243,184,134,74,145,36,9,123,103,206,112,205,196,154,151,61,8, + 5,74,50,187,220,125,137,84,63,224,149,20,102,144,199,190,210,130,173,156,231,136,133,114,53,177,211,185,231,126,191,2, + 64,165,82,9,29,232,213,53,249,138,126,235,194,170,105,5,92,190,145,45,29,199,49,12,86,231,113,28,99,140,89,229, + 243,36,73,66,150,101,171,85,138,16,130,126,82,172,227,123,221,238,115,178,139,82,137,82,41,166,217,28,161,84,42,175, + 126,191,21,64,188,112,139,247,156,164,196,13,218,61,57,248,40,180,95,43,219,58,187,210,98,42,133,196,33,241,244,77, + 94,132,57,170,112,224,68,233,201,92,74,181,86,98,106,106,130,109,27,54,50,57,62,78,185,28,115,229,213,187,249,103, + 143,61,232,174,127,246,96,251,232,179,79,199,159,61,114,84,61,178,126,147,104,148,34,122,121,215,39,121,207,118,50,39, + 95,117,253,205,242,159,252,227,31,86,111,254,142,247,86,62,252,145,79,85,62,243,207,126,252,198,239,94,94,232,89,200, + 186,112,207,56,156,186,15,22,215,64,123,4,78,59,120,42,128,173,87,193,206,43,28,123,142,62,123,116,231,221,207,30, + 93,251,137,15,124,184,220,216,48,173,171,99,195,114,225,216,73,179,246,228,217,243,223,9,15,123,248,140,135,71,66,104, + 111,124,158,238,153,223,209,26,67,65,128,125,133,3,80,49,190,87,82,146,90,251,178,7,161,11,171,159,35,103,231,95, + 2,205,23,3,134,113,225,137,140,179,5,33,111,181,109,242,3,23,65,143,16,138,21,73,156,181,102,181,34,82,74,21, + 51,163,129,190,42,140,34,98,91,72,30,86,102,40,23,146,26,87,102,44,23,182,117,74,107,162,32,92,213,128,93,56, + 35,42,170,167,149,245,127,33,82,93,94,90,34,10,67,70,199,70,49,166,216,144,85,202,85,226,56,94,117,67,92,249, + 58,0,206,219,85,194,30,40,172,117,200,65,108,178,247,14,99,115,132,20,88,87,84,117,129,14,144,206,15,0,78,17, + 73,79,20,72,140,82,244,83,67,158,230,140,12,85,152,94,51,194,182,29,219,216,180,125,51,81,169,136,146,206,109,74, + 47,111,177,110,253,8,59,223,125,199,240,167,254,227,47,219,255,98,77,247,157,182,191,116,239,129,167,105,67,84,3,166, + 192,30,17,68,95,242,95,27,254,251,255,224,45,162,119,226,253,220,241,234,75,248,204,85,219,26,31,253,202,3,55,222, + 1,202,67,156,194,23,119,192,201,113,48,1,44,204,193,114,2,199,203,240,88,14,15,108,133,93,219,96,107,222,239,79, + 183,247,31,26,207,246,67,13,206,85,224,217,12,30,1,30,11,225,204,231,192,206,62,15,131,231,95,15,66,190,58,88, + 187,243,237,0,64,171,55,169,16,47,123,16,10,148,228,196,220,50,255,253,37,80,253,200,1,32,42,231,188,114,6,227, + 37,88,139,210,133,77,134,117,190,16,66,122,0,183,106,82,182,82,65,88,187,226,52,168,233,39,253,213,200,158,114,92, + 194,187,162,154,114,23,180,50,23,174,189,47,156,237,24,99,40,85,170,3,50,227,0,12,7,171,246,48,8,80,170,144, + 216,22,12,103,69,146,244,241,222,19,199,49,253,164,143,247,20,145,205,81,12,136,85,250,192,74,139,24,4,33,73,210, + 71,135,146,56,138,113,206,99,140,69,41,143,84,69,88,99,160,53,121,102,200,93,159,40,10,16,88,130,32,6,95,24, + 154,73,41,233,247,123,116,146,46,211,235,183,113,217,149,87,176,235,210,73,154,67,18,69,72,234,13,137,73,208,94,17, + 34,137,116,128,142,52,239,125,199,155,184,235,127,255,150,56,63,187,112,126,18,238,122,7,156,0,170,22,106,30,26,151, + 122,54,29,62,55,115,233,71,62,252,209,202,143,191,117,138,118,251,52,127,247,125,63,192,151,47,191,97,234,19,239,255, + 213,87,191,57,75,76,6,231,170,5,240,180,119,3,71,192,222,83,84,51,157,75,96,38,135,103,162,194,113,117,172,2, + 99,213,34,63,242,188,129,51,227,48,235,160,253,24,216,127,241,188,220,192,33,82,169,87,4,248,252,149,1,232,149,0, + 66,97,24,240,236,161,67,4,103,231,185,134,23,135,59,145,3,235,10,0,114,30,242,178,148,121,5,225,164,144,82,201, + 16,111,61,94,8,4,69,91,226,188,43,204,213,97,96,105,186,146,152,250,28,49,49,205,178,213,121,141,28,56,24,22, + 182,30,174,72,85,85,10,86,140,205,190,193,95,122,165,82,113,74,81,138,99,122,189,222,160,106,241,180,187,221,162,170, + 137,34,164,42,230,81,73,146,160,6,109,185,119,80,169,214,88,88,88,164,20,198,171,121,101,245,122,189,168,148,150,151, + 7,2,219,18,56,137,53,14,200,9,2,133,195,98,93,78,16,104,164,15,80,65,76,183,215,34,233,165,148,203,133,65, + 126,28,133,244,122,29,146,92,48,181,118,45,183,223,188,155,157,59,182,83,137,99,108,178,64,150,245,232,199,160,100,76, + 77,14,227,115,199,252,249,57,14,30,61,194,211,207,236,231,238,251,31,33,201,145,22,102,45,220,99,225,222,160,160,8, + 197,22,154,33,92,247,247,50,155,254,193,175,255,201,213,223,243,213,241,202,223,249,222,157,124,215,119,220,192,77,215,190, + 153,127,121,238,224,240,129,63,248,244,158,61,112,99,15,22,53,28,59,12,73,21,242,157,144,204,21,233,39,253,95,131, + 126,6,51,215,66,16,13,186,162,37,200,230,32,255,106,16,184,207,72,197,130,27,36,226,126,43,15,171,82,104,165,94, + 81,46,139,127,45,34,226,133,32,116,245,196,20,141,40,126,89,128,144,7,114,60,151,126,97,47,159,132,23,53,182,214, + 3,45,48,61,88,172,88,63,55,153,154,116,127,160,75,2,95,8,30,157,69,42,139,195,226,68,134,20,1,160,159,99, + 15,15,88,109,43,131,97,6,9,170,105,154,210,237,245,208,97,161,100,247,30,114,155,23,22,172,43,149,208,160,197,91, + 5,161,129,236,220,230,134,174,237,98,108,1,50,214,59,116,16,96,156,165,213,237,16,5,69,164,78,16,20,155,42,173, + 52,81,41,38,208,97,177,129,27,172,247,251,253,62,81,20,97,173,45,140,225,195,16,103,60,46,7,235,13,65,168,209, + 129,68,74,141,201,13,89,102,16,164,4,2,130,64,98,93,136,115,138,126,63,37,142,45,219,47,217,202,158,203,47,99, + 106,253,24,97,212,71,164,51,244,211,24,194,18,65,60,74,144,37,156,57,113,130,47,127,249,94,190,116,247,221,28,217, + 255,172,239,159,62,237,242,86,151,27,44,173,239,86,122,46,18,242,73,227,221,193,16,142,29,131,52,2,49,5,97,2, + 179,35,96,126,36,237,155,255,249,196,241,171,14,189,118,199,80,126,250,113,76,247,126,242,236,188,127,6,134,119,194,107, + 203,48,12,28,113,176,32,96,113,35,156,222,10,167,247,194,252,113,72,26,66,184,159,10,163,172,3,249,15,228,153,187, + 196,57,150,148,226,95,198,101,132,41,94,255,146,82,223,242,61,243,74,147,142,255,181,153,208,43,32,244,200,204,89,174, + 126,153,84,66,58,10,88,126,234,56,159,187,247,41,190,213,77,196,183,122,28,176,6,242,6,44,74,239,231,107,34,207, + 188,84,37,107,93,193,109,241,224,68,113,203,121,10,79,26,37,2,172,179,171,36,197,149,70,206,11,6,214,167,197,170, + 60,73,18,170,213,234,64,237,110,10,112,241,30,59,224,232,10,64,12,92,8,205,10,25,208,59,210,204,80,42,151,209, + 50,192,38,253,213,25,146,14,3,74,149,50,194,250,194,170,85,7,104,21,210,168,55,128,149,149,126,78,150,166,212,234, + 117,226,184,96,113,175,172,214,87,54,119,133,252,162,184,0,33,21,94,56,180,10,9,116,76,150,118,73,109,138,195,208, + 79,18,70,170,99,92,190,231,50,118,239,222,196,80,67,131,207,112,189,51,228,46,162,92,170,162,136,56,125,126,129,7, + 31,122,148,135,191,120,15,247,222,251,0,237,67,207,158,127,167,243,226,53,208,108,20,65,145,167,198,224,17,97,205,163, + 25,60,49,139,56,50,142,207,239,4,223,0,95,133,228,237,112,184,13,159,15,32,248,187,80,251,245,223,249,218,149,191, + 184,212,209,239,124,245,110,126,228,123,222,34,62,89,154,174,253,183,15,124,114,247,20,118,203,8,180,154,208,217,2,115, + 163,5,24,61,213,133,189,111,131,103,119,121,191,52,158,103,238,7,117,192,175,232,128,255,145,165,133,252,5,79,252,10, + 5,143,23,21,128,86,64,40,177,150,135,103,206,188,44,64,168,36,37,127,231,143,239,226,99,238,165,113,43,252,12,248, + 119,64,138,16,169,243,194,247,123,125,74,104,130,48,32,80,197,107,233,188,67,136,98,51,229,165,89,29,32,251,129,183, + 143,25,200,46,16,197,0,214,73,48,206,162,164,36,138,35,108,226,209,66,224,6,62,60,43,44,99,49,200,85,151,162, + 152,217,36,64,32,21,153,49,36,105,178,170,176,95,33,51,166,73,2,214,83,138,34,156,43,170,176,44,179,152,60,33, + 77,18,26,245,6,89,150,145,231,249,42,137,113,197,107,202,185,162,133,244,88,16,154,60,55,228,166,88,193,91,45,72, + 83,75,210,79,200,146,62,195,163,13,110,126,245,213,92,118,217,38,234,117,112,121,139,180,231,169,149,27,120,17,178,208, + 106,243,244,147,251,216,251,213,175,241,209,79,126,129,103,79,46,32,109,137,53,19,147,184,205,219,199,190,60,59,107,190, + 103,121,222,173,135,52,135,253,105,225,130,123,95,13,102,103,241,253,35,96,195,193,48,247,35,192,195,144,254,12,28,233, + 195,87,134,96,226,187,22,186,67,255,245,195,15,109,126,253,235,47,83,55,110,232,81,249,225,55,197,15,204,44,199,229, + 205,67,53,35,237,216,253,135,78,241,224,153,37,187,246,224,169,43,47,207,179,107,55,194,14,15,95,217,15,15,237,113, + 238,204,127,201,179,236,45,66,176,3,248,80,209,44,191,92,177,65,92,80,120,189,96,33,175,223,178,22,236,229,2,66, + 229,40,224,158,167,142,241,241,123,247,189,116,230,81,131,159,172,245,222,13,85,70,184,227,134,91,56,127,234,56,39,79, + 157,98,126,113,1,235,28,106,176,90,71,136,162,101,49,22,196,96,51,38,4,114,32,236,92,49,154,95,145,56,204,46, + 204,23,85,135,181,69,5,165,20,62,207,87,239,38,99,12,65,24,174,126,222,172,16,26,173,193,243,28,119,72,43,133, + 183,174,16,60,70,17,245,198,16,189,110,159,40,140,137,194,8,194,152,102,163,73,185,84,194,154,156,94,191,143,181,142, + 40,140,144,82,17,4,186,176,243,144,128,40,130,13,165,16,100,89,138,201,45,222,27,22,151,22,169,148,170,220,122,203, + 205,92,127,243,46,42,117,135,164,143,233,89,170,97,21,33,60,7,159,58,206,99,251,246,99,204,97,166,226,156,93,99, + 53,254,160,157,210,177,33,168,156,222,153,131,84,202,195,34,155,88,23,252,198,248,26,110,60,188,47,122,151,115,53,9, + 210,67,107,45,116,52,69,100,114,95,8,62,161,20,39,164,226,113,224,90,147,39,55,57,119,208,192,87,182,192,212,107, + 114,51,242,192,190,83,195,19,165,53,212,70,207,242,254,127,249,86,198,194,243,184,126,159,115,157,173,60,125,90,168,143, + 124,234,145,225,79,30,57,54,180,235,192,209,137,215,56,214,120,24,202,225,75,175,247,254,68,201,123,115,39,80,113,150, + 205,121,202,17,196,75,118,93,190,220,237,253,69,29,223,243,14,56,207,59,0,125,35,8,93,245,18,157,9,73,41,249, + 111,127,124,23,47,37,3,182,213,85,59,176,102,88,249,31,253,185,31,36,112,158,179,167,207,243,228,190,131,60,241,196, + 1,158,126,250,8,231,206,44,176,208,89,160,155,247,11,195,116,64,106,81,196,15,11,129,148,226,185,8,6,241,220,102, + 107,176,59,195,251,226,123,72,165,80,131,129,179,31,172,236,173,115,152,34,178,162,120,109,132,64,105,133,51,6,41,6, + 18,16,231,7,9,164,125,250,253,136,56,46,209,168,15,13,64,199,144,39,41,222,121,162,168,112,163,9,131,136,36,201, + 16,162,79,181,82,37,10,74,228,62,195,120,135,55,197,32,189,223,239,210,235,181,25,159,104,240,250,107,175,227,154,43, + 119,210,108,150,112,174,143,235,41,194,64,98,179,148,71,246,222,207,222,251,30,65,36,125,214,142,198,92,186,103,148,201, + 24,194,160,201,77,87,93,198,19,159,219,75,32,21,129,14,232,245,251,204,31,120,134,109,59,118,211,122,251,119,213,14, + 127,250,195,155,182,155,124,171,131,198,211,48,127,100,0,250,29,33,120,36,8,87,95,176,223,6,46,201,210,214,4,60, + 147,195,179,187,83,119,205,127,251,181,7,154,187,214,191,87,92,219,60,67,205,159,101,230,76,153,251,246,206,185,110,119, + 33,247,113,69,93,187,103,90,230,175,218,36,79,158,216,61,245,135,191,253,169,215,124,167,65,73,104,117,161,245,155,48, + 255,223,87,122,231,36,1,41,249,86,114,87,180,14,8,165,228,149,120,158,55,53,252,115,32,116,246,37,55,152,126,41, + 86,63,223,136,69,165,190,53,89,43,161,90,215,172,95,223,228,146,109,183,241,29,239,126,35,189,94,198,249,243,203,28, + 58,126,150,199,158,216,199,190,125,207,112,226,212,25,102,103,103,233,116,123,197,170,94,7,40,93,84,24,214,121,148,28, + 172,218,189,31,100,204,131,23,133,95,141,148,10,132,68,249,130,173,236,173,99,121,121,169,168,182,6,51,155,162,109,242, + 148,74,33,194,67,160,20,81,41,38,203,115,148,82,196,113,72,28,5,148,74,49,54,203,11,189,21,80,138,203,68,81, + 145,128,154,229,25,198,228,116,187,109,194,40,164,52,112,56,236,251,156,118,171,205,182,205,235,216,181,115,61,59,118,108, + 64,71,2,159,167,100,253,46,81,88,69,88,120,230,169,103,57,250,204,83,44,159,63,202,166,137,42,215,108,158,102,88, + 65,31,129,109,39,16,119,184,114,235,56,13,105,232,231,21,146,204,80,170,8,94,123,251,237,124,255,223,254,219,56,169, + 120,232,115,31,171,237,52,249,176,134,210,62,144,191,9,174,60,104,9,127,60,77,248,62,10,61,85,213,123,22,138,185, + 156,14,32,90,130,224,53,55,111,23,87,239,18,132,153,225,177,19,146,255,245,191,62,213,25,222,123,236,204,22,108,39, + 131,176,23,4,149,71,26,209,248,219,127,234,7,43,251,191,247,13,245,79,253,223,63,185,246,61,112,220,194,145,119,66, + 235,198,129,230,11,88,245,64,250,235,156,8,120,214,26,126,90,134,175,152,213,251,11,2,64,207,13,166,205,75,111,48, + 45,37,255,249,99,119,243,82,179,159,29,100,71,121,128,48,199,229,169,67,250,12,227,60,173,110,159,178,74,169,6,138, + 242,150,113,182,93,178,134,119,188,241,122,122,153,103,113,185,199,204,217,57,158,126,230,48,143,61,185,159,253,135,79,114, + 244,228,97,58,221,101,146,126,66,55,77,87,13,194,180,214,232,32,64,135,18,231,115,108,238,8,116,132,240,2,155,102, + 140,142,12,163,177,180,59,61,140,19,152,44,47,120,63,130,130,91,100,45,181,106,21,237,61,141,161,38,121,47,1,231, + 10,65,129,205,129,194,30,67,233,0,99,115,66,17,20,148,1,239,168,85,202,131,86,78,146,39,41,189,212,18,84,43, + 252,173,191,251,119,120,253,171,175,98,241,244,179,180,151,207,97,115,11,178,132,14,170,156,61,113,130,3,143,239,133,229, + 57,46,223,56,198,186,29,187,136,108,135,60,239,208,77,5,58,140,144,218,227,130,156,53,235,70,169,197,138,161,250,90, + 110,188,241,90,94,247,218,107,185,100,219,86,166,166,198,217,251,212,126,78,8,74,14,154,6,234,59,65,253,123,112,43, + 117,196,144,115,104,10,81,104,27,8,32,246,176,193,193,182,131,181,234,200,123,223,179,142,178,106,243,248,137,26,63,250, + 51,127,96,222,61,51,127,250,45,112,46,131,57,9,202,230,249,154,225,185,220,63,254,201,47,175,249,225,159,121,79,252, + 75,143,31,31,59,249,216,129,61,83,176,41,132,103,95,15,89,157,111,221,123,85,2,111,177,150,131,210,242,155,175,32, + 254,207,11,2,64,5,8,73,18,107,94,50,51,33,161,36,203,173,46,127,231,240,105,254,22,47,238,234,253,27,183,96, + 235,138,119,224,60,130,190,233,206,219,133,222,105,182,143,94,70,63,53,24,23,16,226,193,165,96,139,253,149,140,37,37, + 37,40,85,42,76,79,87,185,241,150,93,228,230,29,116,251,134,153,185,101,102,231,218,204,205,206,179,180,208,97,110,118, + 145,67,135,15,242,196,83,143,49,59,127,142,94,43,39,75,66,156,205,232,185,148,74,53,30,196,225,8,100,32,105,12, + 213,201,50,7,222,19,69,33,81,20,22,121,240,214,210,235,39,40,175,177,61,195,216,240,36,54,207,81,104,132,83,164, + 73,74,46,28,97,12,113,37,68,40,64,73,74,213,42,30,65,110,44,66,132,76,172,27,231,85,183,188,138,43,174,190, + 154,230,112,19,103,251,184,74,147,172,211,33,10,97,105,126,150,39,31,250,2,233,204,73,182,143,196,108,219,53,68,228, + 123,100,221,54,125,93,69,69,138,168,98,177,193,16,157,4,206,156,237,112,190,167,248,161,31,122,31,59,118,92,205,244, + 250,41,234,83,67,52,27,53,234,181,26,181,99,39,232,70,81,216,79,250,227,33,140,70,16,156,129,188,53,232,82,175, + 133,85,251,210,62,176,4,141,26,108,159,129,45,126,199,198,242,214,181,195,56,99,249,195,63,121,138,205,51,243,11,111, + 132,51,125,184,211,193,163,190,16,171,190,102,23,92,245,216,177,153,106,88,169,197,239,248,225,55,203,131,63,122,112,98, + 26,63,145,64,105,14,90,125,158,31,243,231,18,240,3,38,231,247,47,240,120,186,8,64,47,19,16,82,129,102,249,83, + 247,33,206,46,80,127,137,189,248,75,224,71,160,229,224,240,68,43,61,254,197,159,253,207,99,71,222,246,198,96,237,101, + 151,49,189,101,51,107,38,155,84,130,10,206,148,16,190,87,188,243,187,0,239,37,194,123,92,158,161,165,160,57,164,24, + 25,31,65,134,235,64,86,128,106,241,158,110,61,203,115,243,204,156,159,225,244,241,147,156,59,125,134,133,197,5,22,151, + 22,57,112,240,8,7,15,30,165,223,205,9,196,40,82,25,202,129,193,26,75,185,84,42,152,206,229,10,90,199,248,33, + 65,185,20,161,164,160,217,24,90,181,103,53,38,47,12,208,188,199,102,20,13,12,26,29,133,12,141,55,25,30,31,102, + 199,158,29,236,217,115,41,107,38,199,208,10,200,115,76,190,128,144,154,201,233,13,152,126,151,175,253,201,39,57,247,212, + 35,108,31,42,179,253,146,181,52,117,15,210,22,97,92,33,168,213,105,59,152,79,60,179,11,17,199,206,205,179,212,17, + 120,93,195,196,13,202,205,38,135,15,31,98,219,246,181,172,221,48,129,73,83,114,147,80,174,196,196,113,232,252,50,101, + 89,176,158,245,135,128,227,131,155,94,81,100,116,101,69,155,35,43,208,20,176,105,6,198,235,155,135,85,197,58,206,46, + 88,14,239,61,216,251,91,112,198,195,147,192,231,66,120,58,131,97,15,211,18,182,145,137,94,167,103,217,181,125,130,211, + 235,215,214,237,137,147,227,10,170,15,193,121,247,60,154,143,85,188,231,173,214,240,81,165,137,46,2,208,95,13,132,174, + 154,88,67,227,69,2,161,220,57,54,125,249,209,213,160,192,151,218,121,12,150,22,224,225,245,48,58,250,196,209,185,51, + 79,252,218,244,113,21,12,221,63,61,217,172,110,24,11,118,95,125,169,26,90,187,46,104,108,89,175,171,155,214,211,156, + 154,162,28,7,196,74,128,177,24,11,121,90,184,41,138,164,131,84,41,82,46,35,84,33,157,104,140,72,26,195,35,92, + 178,163,9,110,119,161,53,203,45,75,203,93,14,30,60,202,145,67,39,201,82,79,146,246,73,211,62,46,55,132,81,136, + 7,180,46,17,148,234,228,22,112,14,147,246,65,72,194,40,64,202,98,125,223,235,117,25,30,25,97,253,166,205,148,235, + 85,42,165,50,35,163,195,140,142,14,17,70,65,65,114,204,19,114,103,201,16,132,74,162,163,18,249,82,139,71,239,187, + 135,199,239,254,28,81,119,150,119,92,191,141,122,4,157,158,229,124,94,165,151,151,56,191,208,99,190,183,68,39,243,88, + 57,198,82,94,195,232,26,178,38,112,222,210,179,125,230,22,12,19,149,17,102,230,219,172,179,125,16,69,182,89,179,217, + 192,53,234,42,155,57,95,45,193,120,31,42,191,3,173,234,224,117,207,40,76,193,84,241,95,113,2,2,15,37,1,106, + 98,44,64,100,158,115,231,19,162,153,197,246,58,88,202,225,176,131,19,37,232,100,80,22,144,59,240,125,107,92,102,202, + 212,42,150,160,86,14,129,161,8,74,29,16,191,8,254,249,2,11,1,100,121,14,66,62,151,219,125,17,128,190,89,16, + 58,205,213,19,211,47,26,8,189,148,207,233,98,88,121,80,67,191,12,79,108,133,41,97,243,9,119,226,228,100,126,226, + 100,57,189,251,145,242,18,140,207,73,57,121,118,98,108,124,97,199,182,70,237,242,75,163,137,93,219,88,187,101,3,155, + 54,173,103,120,184,73,41,174,33,133,192,186,20,99,83,242,172,143,115,16,170,24,41,52,74,4,152,172,208,120,153,172, + 131,119,41,91,54,142,178,109,227,40,89,154,145,228,9,72,135,207,13,43,89,238,65,92,103,106,211,118,116,92,1,163, + 193,40,208,2,148,24,176,25,87,212,108,114,208,108,12,118,61,222,227,141,199,153,12,225,138,73,70,16,133,32,115,206, + 30,62,204,157,95,252,10,15,63,242,4,103,142,159,98,251,250,73,154,18,126,251,147,79,208,233,91,90,189,46,34,170, + 224,130,58,34,26,162,52,212,164,57,220,68,42,69,234,50,140,77,17,153,65,24,143,42,135,32,83,122,249,50,139,173, + 5,188,243,120,103,9,116,68,164,20,163,55,222,24,62,113,224,200,228,171,113,219,37,76,157,128,217,93,131,139,156,3, + 190,60,184,242,16,220,24,44,43,56,85,130,229,212,48,153,101,57,11,243,243,100,89,38,6,149,140,5,92,225,51,128, + 22,16,166,160,109,185,92,174,212,170,120,221,193,24,231,11,168,198,103,3,144,123,62,89,64,10,216,232,28,39,165,124, + 197,120,41,235,237,215,125,255,95,250,135,118,190,234,7,94,222,255,202,183,252,244,243,240,22,244,194,16,202,230,193,111, + 129,238,52,28,122,22,78,54,10,141,82,213,65,173,4,97,0,113,21,38,112,110,211,248,217,153,141,253,179,51,107,231, + 190,242,181,169,115,48,186,175,82,26,90,90,51,94,141,47,217,16,213,182,92,34,215,93,186,135,77,91,55,177,110,221, + 52,227,99,163,212,235,53,4,10,172,7,161,81,218,16,153,20,163,20,221,238,50,253,36,37,75,250,56,151,99,173,195, + 24,139,205,179,2,95,148,38,51,125,122,173,46,37,81,65,72,139,84,249,64,28,43,112,214,32,132,71,72,5,126,224, + 130,236,44,48,176,214,208,234,185,192,196,52,229,169,135,30,228,83,159,248,20,159,252,212,167,121,246,192,81,134,134,39, + 153,94,179,129,67,39,159,198,165,9,65,24,144,89,75,158,24,188,235,208,28,73,89,187,62,160,81,30,161,155,229,100, + 157,22,82,116,113,222,19,251,18,37,221,192,102,14,173,61,129,43,234,17,225,11,78,212,137,163,135,57,125,242,60,187, + 174,186,150,15,127,244,19,35,87,183,150,54,150,97,106,1,246,255,22,152,54,69,60,242,123,41,34,109,90,224,247,22, + 18,139,103,134,224,248,249,179,201,150,174,117,186,82,18,68,165,216,38,105,55,174,192,90,9,19,14,18,9,163,10,198, + 150,160,22,143,143,212,167,39,154,28,63,118,142,116,102,174,39,97,182,15,221,119,130,255,199,23,51,247,94,220,10,232, + 226,249,230,78,13,168,131,61,6,189,59,160,167,96,113,22,196,99,32,42,69,193,29,55,160,238,97,36,132,241,13,48, + 181,9,166,124,183,191,38,59,120,124,124,249,224,241,137,51,220,53,118,66,136,230,61,81,84,203,214,175,47,169,177,97, + 61,178,101,61,83,91,215,203,203,118,109,102,108,98,140,198,240,48,205,161,97,170,113,137,122,189,74,181,86,34,203,250, + 180,219,203,244,218,93,132,19,104,237,112,206,14,12,226,193,59,129,24,36,138,131,197,123,135,31,176,154,11,242,163,67, + 72,141,64,22,149,17,142,180,215,102,97,118,142,179,167,207,114,255,67,123,185,239,206,59,217,251,240,227,28,63,187,132, + 138,43,132,229,17,82,99,153,61,123,130,56,138,9,75,53,82,91,200,62,42,245,18,120,139,53,150,180,227,153,63,181, + 136,14,219,68,97,76,88,170,224,194,12,143,32,245,41,65,20,144,91,139,164,132,233,105,78,159,56,195,236,185,25,146, + 36,97,98,108,138,160,52,130,109,14,171,126,107,169,82,134,138,5,245,243,192,177,193,235,254,159,40,24,209,6,248,73, + 232,141,194,177,97,56,80,189,247,153,43,230,111,223,58,62,62,218,160,182,102,72,204,47,117,101,29,46,205,225,53,2, + 142,10,216,162,96,247,41,168,238,186,118,103,60,210,28,227,211,31,250,34,122,105,113,94,192,153,26,180,38,46,42,47, + 46,2,208,203,237,136,193,59,178,2,95,3,255,191,128,219,193,46,64,126,51,116,54,193,57,7,7,90,16,59,168,9, + 104,56,24,26,130,177,49,152,188,202,251,41,155,36,19,201,193,131,163,173,3,126,125,251,158,251,39,62,14,245,135,95, + 123,121,227,150,171,183,115,250,204,25,162,184,74,84,170,17,150,107,140,78,174,97,124,106,13,229,74,153,56,14,8,180, + 164,26,23,170,119,235,61,181,122,131,122,179,129,8,229,192,59,68,130,144,8,28,72,69,183,219,165,215,107,113,234,216, + 9,150,206,157,243,51,39,79,249,7,159,120,74,238,59,112,136,217,147,231,124,127,118,209,170,86,175,119,14,66,83,10, + 227,70,173,76,106,5,88,139,80,14,41,53,94,120,82,239,233,165,93,148,201,176,174,224,135,15,53,74,180,211,37,12, + 61,70,154,67,152,220,226,130,0,85,46,225,28,228,72,172,51,120,145,177,220,159,229,236,188,102,236,116,149,161,230,48, + 59,118,78,17,4,17,227,169,101,253,166,13,162,127,252,72,12,84,5,4,255,230,130,215,219,83,172,225,37,176,17,204, + 83,136,153,53,248,253,147,179,11,39,239,253,227,189,35,111,251,161,215,168,87,191,243,186,177,47,30,254,68,242,174,212, + 6,99,240,118,15,109,15,141,253,48,218,222,62,93,126,243,13,91,229,204,124,143,19,31,185,167,255,42,56,145,195,233, + 16,250,209,197,219,249,34,0,189,220,193,104,69,54,145,20,31,190,10,118,67,145,170,144,92,1,203,17,156,217,14,114, + 166,224,171,149,50,168,43,168,105,239,135,71,97,207,180,144,175,171,70,225,149,207,148,101,245,251,47,27,87,233,166,136, + 158,177,44,165,158,185,36,229,236,217,3,28,58,184,143,249,133,54,70,123,124,32,144,66,210,79,18,148,86,108,222,188, + 133,241,137,137,66,212,42,29,169,21,28,56,126,26,209,109,229,242,228,114,110,103,23,242,74,107,174,107,78,157,79,226, + 229,180,31,56,223,159,0,53,14,98,24,178,33,208,147,80,250,96,40,235,255,7,166,3,11,161,42,106,169,32,44,177, + 156,230,180,230,23,64,158,69,135,33,90,6,196,145,165,189,176,72,167,221,98,114,98,146,198,218,245,244,18,207,240,112, + 132,245,9,190,163,72,178,140,52,77,16,10,194,40,70,14,53,88,78,187,60,240,208,19,32,61,111,122,243,107,216,188, + 97,29,37,229,137,167,70,196,113,24,222,0,19,10,170,18,22,30,24,188,198,155,129,27,7,211,171,57,96,10,191,224, + 225,137,9,120,228,177,47,62,59,253,145,117,83,147,111,189,121,157,154,123,223,237,27,126,227,55,190,84,190,177,151,196, + 101,200,14,197,98,88,93,119,201,200,119,124,231,107,75,91,166,199,248,226,167,191,66,248,232,35,115,21,216,239,225,228, + 83,144,253,48,133,19,217,197,115,17,128,94,17,71,14,192,72,20,115,35,18,240,21,176,91,192,238,131,252,36,116,46, + 133,185,46,200,114,145,139,126,44,241,174,63,148,36,85,113,102,97,108,169,213,85,165,164,77,89,9,226,178,100,114,56, + 226,202,75,154,56,225,49,182,137,203,99,146,158,167,211,109,23,246,24,66,160,116,134,74,79,23,158,212,222,209,11,135, + 249,224,71,190,148,223,126,240,196,177,29,48,43,224,148,132,101,93,16,138,151,129,150,4,35,6,131,88,15,83,33,92, + 95,113,178,57,57,62,65,218,238,98,114,83,240,139,140,65,74,129,86,10,139,193,25,139,5,226,74,141,13,187,47,229, + 240,193,195,156,58,125,134,36,201,24,29,29,195,227,73,211,4,173,53,181,90,13,169,11,211,251,70,163,62,8,69,244, + 116,243,28,235,50,142,30,57,193,214,13,235,9,117,200,229,55,220,200,129,63,250,88,93,88,51,166,160,218,1,121,15, + 184,0,56,5,236,40,218,95,12,176,31,210,237,176,223,193,151,111,117,102,205,199,127,247,206,87,255,210,177,29,181,27, + 110,189,90,92,250,125,183,140,223,249,208,147,195,59,154,147,249,141,215,174,141,174,223,51,42,17,130,15,127,250,65,158, + 250,95,31,105,189,23,30,205,224,33,13,103,95,3,182,126,241,150,189,8,64,175,244,10,105,229,244,6,160,212,25,110, + 250,131,205,134,93,58,63,107,175,109,119,79,84,181,126,56,52,230,138,238,153,214,149,109,162,168,28,22,218,45,105,5, + 34,151,184,229,28,1,4,206,17,200,30,85,105,104,148,12,178,92,48,161,133,112,3,235,12,137,179,146,188,30,115,221, + 134,166,217,112,240,68,47,128,167,172,20,95,180,206,159,116,208,11,161,107,33,233,22,193,208,94,129,80,176,93,194,88, + 207,178,115,253,154,77,196,74,112,244,200,17,58,221,46,89,154,225,133,64,75,13,14,188,5,111,29,175,186,246,122,38, + 39,38,56,127,110,150,164,215,47,116,103,67,67,148,202,21,26,205,26,245,122,131,48,12,240,94,144,101,57,74,6,104, + 21,32,132,70,5,10,111,224,244,233,25,150,91,29,180,244,76,175,89,195,147,97,16,250,190,25,235,67,115,59,232,255, + 8,217,138,51,207,255,11,60,58,248,245,187,192,189,19,22,246,193,131,26,134,223,149,25,185,247,75,79,237,121,252,208, + 252,216,174,107,214,234,155,223,124,165,170,52,135,181,79,13,95,190,251,44,95,123,226,4,242,161,131,203,223,105,204,3, + 17,124,214,194,35,21,104,109,0,54,92,188,69,47,2,208,183,211,113,83,19,44,252,192,247,50,188,126,154,143,252,246, + 31,224,238,123,200,190,93,208,50,208,206,123,89,190,152,27,166,26,49,105,175,143,196,163,40,188,168,133,87,40,43,200, + 148,47,108,223,125,48,136,193,25,152,224,83,248,66,75,29,82,25,169,49,186,99,93,176,240,197,199,101,3,150,188,231, + 96,9,14,244,33,17,224,215,20,196,74,4,48,3,242,68,209,242,204,220,234,205,204,153,78,107,104,242,170,87,149,135, + 170,77,22,22,23,201,77,78,102,114,28,5,243,186,211,110,177,48,187,128,179,142,44,73,217,181,99,7,195,35,163,84, + 42,85,116,80,100,95,25,155,208,79,250,88,55,176,166,149,122,160,247,76,168,86,27,68,165,42,253,196,113,238,252,121, + 238,186,235,46,174,187,250,74,238,191,239,126,150,250,125,37,96,212,193,72,0,186,83,152,205,83,5,222,116,1,0,181, + 128,115,96,99,56,157,195,23,21,44,222,12,87,181,142,159,189,116,230,248,217,173,7,84,80,127,186,81,169,45,90,167, + 77,43,177,219,124,222,121,3,254,145,10,124,34,133,47,215,224,244,221,96,211,65,251,252,170,139,183,229,69,0,250,118, + 168,130,134,223,242,70,26,183,221,76,84,175,97,146,84,76,13,15,249,33,240,206,24,43,133,200,109,175,103,79,37,37, + 174,220,115,9,174,223,66,249,28,235,44,120,135,82,18,229,29,214,131,68,161,181,92,181,0,89,177,252,80,74,33,188, + 70,212,37,211,87,108,211,251,27,149,198,37,203,221,77,185,247,123,114,232,89,56,103,161,55,13,70,2,243,141,42,98, + 215,70,39,239,123,106,209,195,145,117,48,183,113,238,252,154,92,7,229,230,208,48,181,90,157,86,187,77,16,6,131,88, + 159,12,49,54,73,111,178,87,8,95,131,8,173,131,129,149,71,66,150,103,196,113,132,64,144,13,162,154,181,10,16,97, + 225,85,148,36,9,185,113,68,253,132,126,214,102,124,188,193,198,141,27,24,159,152,96,253,244,26,191,8,153,129,146,132, + 178,5,245,143,120,110,19,118,225,249,18,112,5,240,17,72,167,224,168,45,10,203,39,202,176,99,35,92,177,193,230,235, + 174,88,88,26,77,11,32,115,1,28,17,112,103,14,119,213,225,248,207,67,246,137,111,24,114,95,60,23,1,232,149,59, + 164,110,212,217,247,246,55,211,125,235,155,217,150,36,120,239,105,59,207,142,64,115,165,16,116,189,79,74,176,56,109,252, + 242,209,99,167,39,237,27,174,195,7,2,47,13,129,26,228,194,11,240,88,180,1,37,3,132,44,124,36,44,30,55,8, + 6,76,7,126,67,42,207,152,110,14,241,7,245,242,200,174,94,186,125,60,55,42,47,102,185,79,90,56,180,23,206,4, + 208,146,73,154,29,58,122,150,42,180,135,224,128,18,28,191,172,181,188,225,107,231,79,143,150,154,77,149,180,179,65,212, + 50,228,105,74,191,223,39,12,2,192,145,246,83,162,56,162,223,235,145,244,43,69,245,99,12,81,20,144,101,41,2,49, + 8,106,84,244,122,125,230,231,231,209,90,83,42,101,196,177,230,250,235,174,226,134,27,174,102,168,86,248,16,110,219,182, + 149,3,149,170,179,221,142,18,160,67,16,215,1,179,65,72,62,136,164,6,138,106,108,64,146,237,0,219,33,95,128,249, + 47,192,210,142,98,179,245,132,128,33,7,163,162,248,112,18,78,117,225,208,90,56,255,31,33,255,196,197,219,242,34,0, + 125,59,12,163,37,16,215,106,168,95,254,207,44,76,77,48,209,235,147,196,49,86,41,68,171,229,127,231,137,167,57,224, + 61,255,16,250,30,63,55,10,173,39,79,30,243,56,35,164,119,40,99,81,94,22,188,65,4,74,134,69,150,186,51,120, + 81,176,156,189,0,239,192,230,41,161,20,133,133,173,115,108,27,30,97,121,98,93,229,39,23,186,219,94,27,48,246,234, + 212,109,158,118,254,42,233,253,129,4,246,37,240,116,150,230,199,55,156,155,95,152,128,252,12,28,55,158,199,54,165,189, + 109,15,28,124,106,77,239,234,107,170,81,8,214,130,247,57,120,75,165,20,22,238,140,170,204,210,210,18,103,207,158,197, + 218,124,53,39,205,121,71,191,215,45,140,236,189,165,181,188,76,187,221,65,74,77,185,92,102,120,116,140,184,18,115,237, + 181,123,184,241,166,27,8,66,129,119,6,139,103,108,205,26,49,51,54,90,237,119,59,149,10,52,129,248,111,9,217,186, + 87,107,102,133,64,175,12,247,133,160,159,38,171,175,177,162,160,62,255,30,216,159,131,37,15,45,11,50,40,200,161,161, + 7,50,72,246,64,118,28,220,177,139,183,230,69,0,122,37,159,128,98,215,126,28,120,24,248,114,158,19,255,247,247,35, + 173,165,7,188,15,120,167,16,252,215,52,67,29,61,193,247,131,114,208,80,48,18,10,21,157,93,108,139,204,59,148,42, + 30,46,33,61,82,136,194,224,204,155,129,255,52,131,225,115,33,173,112,194,23,90,46,57,176,65,115,158,106,213,115,245, + 149,235,248,204,254,131,165,195,81,163,244,39,50,29,191,50,207,214,223,108,237,37,187,172,189,162,238,121,54,133,71,12, + 236,157,135,163,14,22,44,236,45,121,191,249,182,163,135,71,254,200,166,91,231,155,35,177,203,29,65,16,82,142,202,104, + 37,137,74,37,116,16,225,40,92,18,17,208,238,180,240,120,22,151,150,57,55,115,22,53,240,59,170,84,170,140,143,79, + 48,50,58,86,132,22,106,205,80,189,198,21,151,239,33,12,21,144,35,148,67,0,19,35,77,122,107,55,132,231,142,29, + 107,108,131,181,93,24,218,229,221,236,118,107,253,169,11,42,32,6,32,116,161,101,139,184,0,240,123,224,158,1,183,9, + 204,229,208,203,129,125,192,26,224,244,197,118,235,34,0,189,18,43,29,53,248,200,129,135,128,95,6,142,80,172,143,73, + 18,120,228,177,213,63,191,56,0,169,53,192,111,128,170,195,154,30,220,164,165,186,233,161,90,48,189,239,124,143,133,118, + 194,186,50,248,92,224,165,4,21,129,243,56,145,129,0,233,229,32,56,112,197,5,177,176,129,45,174,199,147,251,24,35, + 36,187,166,107,12,37,22,167,5,115,26,245,105,17,14,127,1,221,188,50,79,166,111,79,211,141,215,122,191,85,194,250, + 30,124,193,22,46,168,135,114,184,115,155,177,35,239,62,121,50,252,23,231,231,182,46,73,45,99,1,101,95,38,172,6, + 4,177,64,26,138,181,251,248,48,97,57,226,158,7,238,69,15,12,243,165,80,12,213,154,140,143,143,179,113,227,70,198, + 199,199,87,141,238,179,44,199,59,75,24,6,104,161,177,54,195,81,68,92,87,171,21,154,235,55,201,199,249,234,208,46, + 216,100,96,179,135,179,151,102,105,251,75,20,86,28,223,76,187,43,191,97,238,118,225,231,46,158,139,0,244,138,57,126, + 240,67,73,6,15,199,255,6,22,6,31,127,217,89,6,222,11,250,16,76,117,224,213,177,16,119,252,65,168,111,254,61, + 236,72,48,55,199,137,83,103,217,176,107,109,49,244,21,133,188,66,10,89,44,204,133,3,235,87,99,148,189,16,72,33, + 46,176,36,47,172,95,173,205,153,152,24,165,82,138,232,11,192,56,34,47,72,201,196,3,81,84,123,84,168,218,219,109, + 191,249,221,150,114,232,92,71,120,206,106,56,105,138,124,244,53,151,24,63,125,117,224,38,254,68,209,200,77,78,223,38, + 116,151,123,164,243,93,34,89,12,154,159,126,118,63,198,89,186,253,30,34,145,40,37,25,106,12,179,118,237,90,38,39, + 39,209,90,51,55,55,143,247,131,156,51,15,222,103,124,228,35,127,204,238,221,151,177,118,237,52,195,35,117,20,160,149, + 230,242,171,46,229,87,62,72,253,102,216,185,6,110,152,131,147,59,224,192,15,22,94,76,95,87,101,30,0,210,139,183, + 225,69,0,250,118,4,30,63,0,158,47,1,63,55,40,241,191,217,179,161,0,160,82,38,196,250,16,110,18,222,191,229, + 127,135,209,109,31,13,228,8,94,146,167,57,39,207,205,195,101,91,16,178,91,0,138,16,43,145,96,224,197,64,219,229, + 7,96,35,193,23,15,183,240,224,10,89,59,206,121,214,173,157,98,100,180,206,177,249,101,2,10,206,144,146,162,136,241, + 9,34,62,150,155,225,237,222,172,189,21,182,58,24,61,11,39,171,112,62,16,60,161,189,191,242,170,220,108,249,114,16, + 52,144,18,239,40,90,60,29,20,154,89,41,56,114,252,88,145,119,95,174,96,237,202,160,92,112,250,244,25,206,156,57, + 75,16,4,40,165,8,195,16,107,29,165,82,76,165,82,103,97,33,225,228,169,5,154,205,50,235,214,79,176,123,247,78, + 166,215,108,224,29,111,124,43,7,126,232,168,254,191,127,248,123,219,222,215,90,190,182,6,15,108,47,218,195,60,185,160, + 146,81,60,71,74,188,216,82,93,4,160,111,139,147,15,110,248,50,80,1,126,1,248,234,224,255,93,251,77,180,6,51, + 192,15,0,187,10,150,239,142,208,251,215,57,120,221,199,75,149,43,63,22,139,17,107,50,148,137,200,172,101,223,193,83, + 184,219,175,47,36,93,66,12,4,254,174,248,74,131,141,216,10,223,90,8,57,120,240,139,100,213,213,105,137,51,148,99, + 69,163,22,194,156,35,80,69,112,33,222,128,213,164,169,231,93,239,253,110,17,156,56,84,239,223,251,181,161,16,234,1, + 168,25,200,182,121,206,59,56,59,105,109,187,12,62,149,66,56,233,240,72,148,10,112,182,224,79,7,90,35,132,196,120, + 143,10,52,214,89,150,150,151,49,253,156,198,80,131,122,189,78,173,86,163,82,169,18,199,37,202,229,50,72,73,84,138, + 209,58,34,77,4,207,62,125,154,82,216,100,114,124,61,165,178,228,231,255,245,207,240,131,7,247,71,199,239,252,210,240, + 229,133,46,76,253,18,112,248,207,120,93,35,224,141,23,31,142,139,0,244,237,112,222,77,33,64,45,1,223,55,248,248, + 171,156,7,11,200,168,44,195,174,42,188,245,172,224,45,255,167,92,218,253,181,32,46,121,103,80,190,224,252,122,1,7, + 14,159,33,51,30,137,7,87,4,31,10,236,32,190,65,32,6,182,26,43,109,13,12,76,237,253,115,21,129,115,142,56, + 150,52,234,49,74,8,130,160,132,183,57,121,238,169,70,37,222,247,227,63,192,123,190,243,187,248,147,127,251,239,195,62, + 68,10,74,77,144,83,133,71,78,23,88,28,242,190,87,177,206,116,33,208,222,226,172,199,75,191,90,69,57,15,222,90, + 164,80,68,81,192,248,240,36,235,166,166,105,84,170,212,107,53,162,184,72,99,245,64,16,4,120,239,72,115,75,24,150, + 80,90,83,175,87,217,118,201,22,182,109,221,194,190,167,158,225,240,145,131,212,155,195,28,59,120,144,184,120,41,228,95, + 84,229,164,192,191,161,96,73,171,139,183,232,69,0,122,41,156,215,189,128,63,0,199,95,221,59,216,82,236,148,255,65, + 193,109,217,80,134,55,158,144,226,237,255,169,84,185,236,105,233,149,50,109,132,139,240,94,35,149,65,4,130,227,39,230, + 152,95,88,102,178,38,138,21,188,119,56,225,138,172,120,231,89,137,133,6,135,144,131,49,235,74,37,228,28,194,21,195, + 233,176,172,24,27,174,17,42,141,183,144,102,25,245,106,147,31,249,123,63,196,59,223,115,19,67,13,205,182,233,233,220, + 20,224,40,50,16,187,129,253,133,139,96,167,38,72,34,103,157,87,69,58,42,20,241,63,198,185,34,181,195,67,41,42, + 209,108,52,217,181,107,23,107,166,214,80,45,87,240,222,145,231,57,214,88,188,240,56,231,177,174,216,118,149,162,18,227, + 19,147,172,89,211,228,234,171,118,35,4,60,187,255,41,102,102,230,168,86,135,248,195,15,255,49,115,167,79,249,38,194, + 88,188,141,192,95,79,225,11,244,103,101,118,61,53,152,7,133,23,111,253,139,0,244,82,56,175,127,137,93,143,27,180, + 108,145,16,101,188,223,217,22,220,242,191,170,181,221,251,4,74,231,30,79,9,43,50,188,43,188,252,132,146,204,156,91, + 224,212,137,51,108,188,98,29,125,91,184,25,22,98,11,177,106,30,38,86,36,175,162,0,31,111,61,110,80,25,121,231, + 81,94,80,14,67,166,166,70,233,118,30,166,20,72,46,221,115,25,87,94,117,25,141,122,141,102,99,132,201,169,113,246, + 251,126,222,43,170,12,57,68,65,238,235,128,40,131,172,120,196,168,208,249,113,124,36,112,72,100,33,173,16,16,232,128, + 209,145,81,46,217,114,9,107,166,166,89,55,189,22,129,160,159,244,73,173,67,106,93,52,141,82,226,115,67,58,96,70, + 215,170,130,13,235,135,184,245,182,155,112,38,231,216,177,147,76,142,79,179,115,199,30,158,120,242,81,190,118,255,221,236, + 12,117,214,200,178,37,160,149,130,249,135,252,249,142,133,154,130,45,109,46,222,250,23,1,232,165,112,174,123,9,94,211, + 192,178,163,166,97,243,211,65,180,249,113,108,232,51,135,245,113,97,24,166,52,94,166,224,21,82,4,36,253,132,19,167, + 206,227,175,90,11,62,7,4,14,3,34,44,160,200,249,1,15,72,172,14,156,157,119,184,66,147,138,214,10,239,53,4, + 33,67,205,58,245,106,153,239,120,247,247,176,126,243,6,114,155,51,185,102,146,161,102,5,103,115,116,92,97,48,85,18, + 150,98,163,103,33,244,66,12,133,80,90,111,93,239,33,29,84,157,7,229,65,120,135,84,69,250,170,86,154,229,229,37, + 146,94,66,187,221,102,168,222,64,107,77,84,142,144,82,16,133,1,214,58,80,138,204,230,56,239,89,106,45,243,232,99, + 251,112,214,176,107,215,22,54,109,154,162,82,174,35,101,196,254,103,75,140,140,76,17,47,119,140,134,89,96,126,25,204, + 201,191,164,197,242,131,121,144,189,120,251,95,4,160,23,251,76,191,4,193,39,7,206,123,31,199,48,124,88,138,70,99, + 98,138,106,59,97,110,118,17,35,250,8,47,145,212,80,58,67,136,132,4,203,211,71,23,200,165,2,215,67,16,23,187, + 103,167,17,94,34,164,29,12,157,45,120,139,16,197,0,88,138,128,48,16,72,37,232,186,58,123,15,180,104,140,172,225, + 167,127,250,199,144,170,142,115,33,213,74,133,52,239,144,89,143,146,30,19,202,192,21,69,141,110,23,12,98,74,5,214, + 196,66,16,189,38,235,157,251,92,216,168,38,65,165,44,179,30,18,139,117,138,229,86,155,36,205,88,88,94,34,77,83, + 180,86,72,45,169,132,49,163,245,33,226,82,137,40,42,81,169,84,137,74,37,26,205,38,205,161,6,22,203,236,242,18, + 159,251,220,253,220,253,149,199,185,100,251,122,118,239,94,207,244,134,53,188,254,246,155,121,231,99,111,227,225,95,248,69, + 43,160,21,66,119,30,236,255,230,185,104,158,63,235,100,20,118,29,53,10,191,160,139,231,34,0,189,168,45,207,75,13, + 128,6,251,43,7,100,77,155,102,54,77,89,183,126,19,235,214,173,167,155,46,49,115,126,129,78,59,37,79,83,84,160, + 80,50,228,233,103,14,147,244,37,129,45,33,209,8,233,80,72,156,8,112,88,36,96,109,62,232,194,4,58,208,132,129, + 166,155,123,14,29,155,227,201,103,102,88,232,69,68,141,105,140,212,68,161,38,75,22,233,46,11,170,149,53,104,145,16, + 136,58,93,21,199,182,88,238,53,60,68,39,161,83,7,35,240,253,204,35,246,120,228,143,244,58,79,254,102,197,93,149, + 196,34,200,19,137,246,197,171,236,125,97,207,90,252,90,224,12,116,178,30,121,63,39,140,66,172,177,32,36,185,177,212, + 235,117,166,38,167,104,12,53,104,14,15,81,111,52,232,119,251,236,123,230,0,135,142,28,96,100,180,206,117,175,186,134, + 207,125,250,19,220,14,139,1,204,247,160,183,13,252,251,191,201,7,164,51,168,148,46,174,230,47,2,208,139,118,142,191, + 196,174,103,133,176,88,21,162,155,195,204,30,47,230,245,226,210,244,227,179,79,210,104,196,76,174,153,100,203,166,75,8, + 180,32,237,119,88,110,167,204,207,44,112,232,232,57,206,47,100,108,24,109,128,237,227,101,134,243,57,194,150,240,214,225, + 144,168,160,76,138,164,159,195,249,249,22,231,102,206,114,236,76,151,197,126,128,46,13,227,43,49,185,146,148,202,101,146, + 52,33,77,36,198,12,102,73,153,7,235,104,197,97,220,130,177,113,216,24,194,104,13,22,13,116,173,231,24,130,115,192, + 206,203,181,72,74,185,205,19,17,7,222,231,120,231,8,163,8,6,22,32,141,70,131,126,63,161,92,174,224,140,69,139, + 194,34,68,135,1,90,43,66,231,201,179,156,131,7,15,161,165,162,82,46,177,231,242,203,24,25,155,64,139,128,44,73, + 8,84,157,51,103,102,88,56,122,156,221,136,89,131,63,13,116,142,81,108,187,196,55,241,58,91,96,248,226,35,112,17, + 128,94,204,243,95,94,98,215,99,128,49,224,31,120,223,13,224,244,136,245,51,147,222,154,185,32,210,237,118,155,229,103, + 59,184,92,80,175,133,76,77,78,176,105,235,86,110,121,245,109,52,68,198,3,79,156,96,97,195,36,181,74,64,84,146, + 4,65,68,137,162,95,234,244,115,206,47,182,57,126,182,197,249,165,140,110,30,96,9,208,165,117,136,90,72,46,13,173, + 222,34,218,164,180,250,45,188,21,144,137,34,129,79,131,166,2,14,108,37,16,167,161,118,21,236,202,96,23,112,62,130, + 94,7,14,43,207,19,61,33,214,253,161,100,251,178,242,101,209,55,132,50,196,169,98,160,12,20,110,137,65,72,110,44, + 105,146,16,71,49,66,20,219,50,173,52,121,110,8,195,16,188,99,180,89,101,120,120,132,201,137,73,74,149,8,169,60, + 206,11,130,82,5,39,52,79,221,247,128,255,206,126,119,121,13,254,132,135,147,25,244,254,3,112,146,111,110,203,213,5, + 110,5,110,227,162,252,226,34,0,189,72,103,221,75,176,37,44,1,11,144,141,195,233,10,226,200,173,214,93,249,180,204, + 71,141,112,88,43,144,66,145,36,41,71,79,156,224,196,185,179,4,58,100,203,212,52,71,142,214,24,170,55,80,90,82, + 46,69,52,135,70,9,17,116,90,139,24,15,72,69,230,4,137,51,232,168,76,165,86,67,137,5,44,65,161,13,243,17, + 206,20,137,24,38,233,19,12,146,127,58,253,46,86,120,2,33,25,91,183,65,252,110,173,217,188,178,189,184,117,28,110, + 238,65,55,128,243,18,154,66,136,94,46,232,156,80,58,244,97,5,37,28,214,22,2,8,235,44,74,42,162,40,38,10, + 2,112,30,225,60,54,55,244,243,156,82,169,132,146,154,168,28,51,49,49,65,189,86,99,168,209,160,217,28,70,75,137, + 193,144,123,67,154,36,212,202,53,70,199,155,44,60,60,107,111,183,98,57,192,207,121,88,60,15,230,125,131,1,243,55, + 219,86,245,41,12,203,236,197,86,236,34,0,189,24,231,255,188,68,175,235,36,228,7,224,140,240,126,223,245,38,191,254, + 163,165,112,244,180,9,16,206,34,149,71,200,128,220,231,228,105,130,49,134,39,158,125,150,103,15,41,130,40,64,133,138, + 90,181,70,37,170,163,162,128,48,10,152,24,159,68,75,133,205,60,90,104,42,101,79,191,221,163,50,236,209,21,141,18, + 17,129,42,33,92,177,150,215,178,80,206,219,204,97,179,4,21,105,142,30,60,76,103,185,207,252,218,13,149,163,207,44, + 70,27,225,218,0,70,92,241,12,107,229,253,90,9,161,206,93,230,227,40,10,171,134,110,167,131,203,139,73,139,117,142, + 126,63,41,248,62,182,32,73,214,42,17,227,35,195,140,142,140,48,54,62,78,185,92,70,8,65,20,69,132,97,136,195, + 97,188,47,88,222,30,134,155,37,94,115,235,141,92,113,217,78,246,239,154,214,159,124,232,222,230,219,230,59,99,14,38, + 214,66,244,86,200,155,127,141,215,123,255,96,30,148,93,4,162,139,0,244,55,121,222,248,18,188,166,21,50,226,251,96, + 217,195,201,9,231,103,174,116,62,61,165,227,72,248,46,206,25,50,35,33,16,8,161,48,153,65,160,232,91,79,47,233, + 33,140,163,211,239,17,171,101,84,84,38,140,42,232,176,74,163,90,71,88,143,12,32,199,18,7,154,82,169,134,14,66, + 132,119,40,85,100,135,57,60,120,133,113,10,37,28,19,195,35,28,56,116,138,167,247,237,227,181,175,187,141,255,241,203, + 129,123,8,22,79,104,61,229,188,92,103,181,150,21,33,92,57,64,46,161,117,59,170,134,161,75,81,222,131,85,56,71, + 225,196,40,11,167,67,147,27,194,32,64,41,73,20,6,84,74,101,134,26,13,162,32,32,237,247,169,54,26,232,64,99, + 173,33,8,227,85,7,199,169,201,9,110,189,237,58,46,217,58,141,20,150,235,111,186,154,167,254,209,251,234,135,126,238, + 63,239,188,4,174,204,225,217,99,112,164,249,215,216,45,236,24,84,159,103,185,200,146,190,8,64,127,131,231,170,151,224, + 53,57,10,95,227,65,10,69,38,4,182,42,165,143,131,136,110,210,41,18,75,157,7,227,16,210,162,101,128,49,133,221, + 134,0,92,46,177,94,18,232,18,181,48,160,18,56,122,243,243,140,148,107,84,26,53,148,10,64,74,226,161,6,42,8, + 200,250,73,33,4,149,26,132,32,8,11,20,244,214,161,132,103,238,252,121,164,150,188,238,117,175,165,90,21,172,153,26, + 13,207,93,115,203,229,95,61,115,60,156,154,92,167,174,189,226,90,230,44,72,161,169,212,74,220,184,116,134,207,124,242, + 19,136,68,18,171,8,21,12,70,194,206,35,4,72,37,49,214,32,148,198,98,49,121,70,175,219,69,107,77,181,90,197, + 230,25,137,183,84,42,101,180,86,244,147,62,151,94,186,155,55,190,225,54,154,67,1,206,119,81,129,32,235,119,120,239, + 251,126,132,223,253,220,87,214,245,239,127,248,234,0,30,109,195,185,195,208,9,254,26,149,140,184,160,45,63,199,75,111, + 67,122,17,128,94,129,231,223,188,68,175,75,22,109,129,159,7,183,224,157,168,199,37,182,148,202,246,169,118,87,9,153, + 35,2,1,46,66,122,131,215,33,66,245,17,89,134,114,154,76,10,82,219,65,228,41,36,26,235,202,172,153,154,64,201, + 152,40,168,34,20,212,26,85,2,93,162,159,244,208,218,33,116,128,84,17,74,122,2,157,17,8,65,154,90,38,39,167, + 216,188,101,29,155,55,77,115,234,244,49,198,71,167,24,25,25,99,120,100,93,105,118,110,158,157,107,215,177,102,184,78, + 47,43,172,99,227,200,147,14,130,14,51,233,49,94,96,242,124,224,69,45,176,214,21,50,11,33,200,83,135,23,109,210, + 180,143,33,35,138,67,74,165,152,80,23,154,176,21,213,126,160,2,170,37,73,179,161,49,166,139,214,18,239,11,185,199, + 80,179,204,238,31,127,95,229,228,119,255,200,206,109,206,93,106,224,169,3,208,221,86,24,63,254,181,78,147,98,25,176, + 27,248,247,20,12,199,139,85,209,69,0,122,65,206,31,189,68,175,203,1,13,176,35,48,223,176,156,152,232,180,58,253, + 114,117,180,26,196,136,32,34,174,134,196,186,138,182,146,118,183,67,43,179,100,42,64,228,154,177,48,227,93,239,184,137, + 237,107,70,233,217,18,103,90,57,194,149,169,54,70,136,75,21,84,160,9,227,152,78,59,33,38,70,0,214,88,140,109, + 81,171,86,24,170,15,17,70,138,93,59,118,16,87,34,230,230,103,249,204,103,238,100,105,97,137,55,189,233,117,100,166, + 207,252,252,28,89,102,9,130,18,201,32,215,203,11,48,182,136,127,86,74,209,79,123,8,61,16,205,14,56,64,98,96, + 134,239,189,39,203,50,242,44,3,231,232,245,82,164,10,112,192,232,200,24,198,58,242,60,3,4,129,214,236,125,248,49, + 214,174,159,224,242,203,183,35,101,177,206,199,65,158,165,92,121,219,109,60,181,115,251,164,219,247,204,118,9,147,33,156, + 121,166,224,115,126,75,175,191,167,16,20,87,46,206,133,46,2,208,11,117,190,239,37,124,109,39,33,63,4,103,34,120, + 102,93,183,119,110,36,10,70,71,118,236,164,147,245,176,174,143,237,59,172,140,73,236,60,86,122,84,73,97,179,14,183, + 223,176,153,159,253,123,155,137,84,10,229,6,169,108,98,41,225,228,24,186,60,73,88,153,192,137,6,157,174,225,247,255, + 224,83,204,205,45,115,242,216,97,254,249,79,255,191,28,58,116,152,251,239,123,136,230,72,147,153,153,51,68,113,68,146, + 88,164,8,145,42,230,240,225,83,44,183,114,218,157,30,149,106,153,82,57,194,59,79,158,231,8,37,145,66,226,133,160, + 214,168,179,116,182,93,180,92,131,217,207,138,53,170,49,6,231,28,222,23,45,89,24,6,24,239,56,122,226,24,75,75, + 75,108,88,191,145,141,27,55,161,117,33,205,16,194,35,68,192,87,239,188,135,233,233,73,214,172,25,193,56,131,24,24, + 240,215,26,13,162,87,93,85,93,220,247,204,244,16,140,151,32,88,15,185,184,120,123,95,4,160,151,250,249,249,29,91, + 191,181,86,73,10,122,189,132,67,199,78,174,38,156,246,6,239,160,1,127,125,23,62,75,145,111,254,67,133,33,226,177, + 181,130,179,99,237,206,142,153,209,80,215,74,17,129,170,16,170,18,105,234,24,31,242,44,247,115,172,208,228,181,30,83, + 163,107,8,114,205,222,199,78,145,5,150,141,107,107,132,13,141,170,70,104,175,200,243,148,74,217,48,180,174,70,179,17, + 240,129,15,126,17,242,148,7,30,188,143,61,151,95,205,210,167,238,164,159,229,180,147,121,42,165,33,182,111,221,77,167, + 187,196,114,107,137,71,31,125,156,115,231,218,68,113,25,17,44,34,148,69,135,33,185,183,164,105,138,146,18,235,29,185, + 177,168,32,192,121,139,214,154,44,203,96,80,25,173,176,161,87,0,41,183,14,235,115,132,23,204,204,207,34,148,164,90, + 171,50,210,28,37,12,61,198,88,148,22,156,57,59,207,222,189,143,243,174,119,223,142,183,14,63,16,211,134,129,100,250, + 150,87,169,153,223,252,192,240,48,212,13,4,107,249,139,229,24,23,207,69,0,122,73,156,31,187,255,179,223,210,223,47, + 151,75,220,119,223,94,110,185,245,157,171,159,251,238,65,217,254,216,96,142,176,226,126,250,87,121,71,94,81,197,183,33, + 13,133,56,27,59,78,78,119,251,189,195,46,173,135,185,32,119,125,124,45,192,235,128,106,125,152,225,177,6,97,92,129, + 60,195,233,46,198,78,112,223,125,207,240,197,131,135,185,100,119,137,218,80,7,212,12,167,207,156,36,77,186,236,216,178, + 129,127,243,255,253,4,27,55,77,49,50,220,96,100,104,156,123,238,185,143,137,137,105,208,37,130,40,166,89,213,156,63, + 187,72,107,185,195,249,185,89,188,128,135,30,121,4,80,236,218,185,147,165,86,225,96,152,231,22,131,35,75,115,178,52, + 37,203,83,180,214,224,41,204,200,212,115,96,99,173,69,74,185,218,142,57,239,87,171,35,231,138,225,250,201,211,167,233, + 245,82,46,191,116,15,235,214,173,71,107,61,168,162,44,173,78,191,176,154,5,148,84,32,37,198,231,108,189,226,82,230, + 154,181,154,91,108,55,83,40,125,165,136,150,126,65,206,27,47,62,54,23,1,232,249,58,85,251,173,237,58,132,117,148, + 221,215,79,8,110,43,230,55,84,129,255,10,156,31,252,186,207,115,62,65,249,55,1,72,10,120,24,76,15,102,180,243, + 135,174,108,47,207,124,117,126,182,174,70,214,160,93,68,63,237,35,101,128,86,101,210,110,70,156,27,226,72,112,170,53, + 71,223,247,152,152,108,32,207,72,74,19,163,76,111,220,76,175,103,57,112,114,14,239,20,79,63,123,134,179,231,186,172, + 157,30,167,94,21,132,186,196,194,210,89,30,122,244,49,78,159,63,199,184,24,98,98,106,140,36,57,195,236,220,89,42, + 149,33,54,109,222,204,179,7,247,243,192,131,247,48,221,29,193,121,69,210,179,40,209,199,88,135,49,22,155,27,112,48, + 212,24,98,126,113,97,80,233,72,130,32,36,203,50,164,44,92,25,165,112,40,165,177,174,168,140,242,60,71,41,85,152, + 232,75,197,242,242,34,243,139,11,76,79,175,41,116,109,58,196,139,136,32,136,17,74,129,43,190,142,160,240,179,30,25, + 109,34,170,149,42,139,237,241,16,42,103,64,156,42,162,164,47,2,208,69,0,122,233,158,11,227,90,254,90,0,228,253, + 159,250,26,43,70,100,43,118,15,45,224,43,3,16,42,81,48,117,71,41,72,111,127,225,215,6,198,192,183,97,209,10, + 177,127,93,150,31,158,154,111,109,156,31,153,10,162,40,34,176,142,146,6,157,27,50,81,168,219,51,23,112,248,196,34, + 39,103,151,216,176,105,8,189,183,69,127,169,11,137,35,150,130,169,225,33,150,206,157,102,235,230,38,190,127,156,114,216, + 163,81,83,216,20,186,189,20,227,44,141,161,26,179,179,51,132,90,18,137,152,245,235,54,80,169,85,185,246,186,203,121, + 226,233,251,184,251,222,47,241,244,211,251,208,170,138,223,185,7,173,53,173,238,50,198,24,194,64,67,110,169,150,203,68, + 113,140,77,0,239,17,12,236,95,61,197,38,204,250,34,169,195,129,212,98,144,146,225,177,206,98,93,138,22,154,118,167, + 77,146,37,4,161,64,168,16,188,98,121,185,75,158,231,32,36,14,129,146,10,165,4,214,89,150,189,11,37,212,98,8, + 143,131,248,217,23,104,118,252,211,23,31,155,191,124,52,113,241,37,120,233,28,65,161,77,154,0,190,8,28,5,182,3, + 123,254,146,143,75,129,203,129,0,223,75,225,217,80,240,192,119,47,47,28,12,14,62,109,246,31,57,202,242,226,18,42, + 112,136,114,142,174,26,116,41,64,135,101,156,141,57,188,255,8,219,71,21,35,21,201,98,199,18,148,170,148,43,37,74, + 33,216,108,129,157,219,198,56,115,232,46,204,242,51,76,52,43,56,159,163,180,160,181,180,204,200,200,16,185,201,72,186, + 125,230,231,150,144,42,100,211,166,9,46,191,98,51,165,82,132,146,101,112,33,206,164,180,58,139,228,89,142,201,114,242, + 44,39,75,51,140,117,40,169,16,222,83,45,151,169,213,106,68,97,56,112,201,231,185,132,14,60,90,235,194,255,200,217, + 255,191,189,55,15,146,44,59,175,251,126,247,222,183,230,90,123,117,109,221,93,189,47,211,131,30,204,210,192,12,177,11, + 6,33,130,32,77,82,166,68,195,33,129,4,69,74,54,35,108,81,98,72,38,195,132,21,150,195,225,176,197,144,130,52, + 29,148,40,155,146,76,64,65,90,129,85,32,9,96,176,204,0,179,47,61,189,77,239,93,189,212,94,149,149,251,91,238, + 226,63,94,246,0,8,1,3,96,134,164,12,76,158,142,138,138,232,204,172,170,124,121,227,188,239,126,247,59,231,96,116, + 94,52,166,17,4,65,136,117,133,43,163,31,4,164,73,74,110,50,150,110,221,228,206,242,90,17,43,141,195,106,7,86, + 160,173,163,107,139,248,69,59,176,224,31,98,72,64,67,124,155,202,104,21,248,220,160,89,125,237,123,32,175,147,14,61, + 226,220,45,141,248,242,209,180,251,213,191,209,106,172,244,182,26,92,190,241,50,23,206,93,228,230,237,37,122,237,109,186, + 93,135,113,154,209,160,196,75,55,218,4,85,159,233,168,205,230,214,38,205,78,147,64,132,4,50,166,229,199,252,238,191, + 127,130,243,151,215,153,240,50,38,188,30,41,45,140,77,8,114,159,74,28,144,226,104,247,52,123,22,231,216,119,116,47, + 111,121,248,1,68,232,168,213,107,56,87,70,250,1,202,47,230,122,250,253,4,147,107,116,154,99,181,195,104,71,41,46, + 19,123,62,229,40,24,156,98,57,130,208,7,97,113,194,96,156,6,225,6,22,172,134,220,228,32,239,58,56,10,148,10, + 25,169,141,81,10,107,24,93,228,153,42,101,200,18,205,210,213,6,74,21,75,92,72,176,100,32,60,66,43,173,43,10, + 75,163,192,149,138,10,242,207,253,107,136,225,22,236,7,186,26,130,194,80,231,171,20,230,245,63,69,113,90,230,190,195, + 157,35,7,222,3,157,147,206,157,239,195,243,7,123,189,147,123,43,229,217,139,8,181,186,177,196,78,179,196,214,102,13, + 188,6,50,72,169,170,58,47,118,251,236,252,181,26,7,22,119,113,231,220,26,221,213,179,116,243,189,140,149,170,148,168, + 48,58,162,8,186,91,160,199,136,199,171,44,63,187,66,185,84,97,125,189,69,73,167,28,61,124,136,249,137,69,14,44, + 78,115,234,129,123,168,213,203,128,102,110,102,2,103,18,162,168,134,114,146,70,99,27,207,11,200,146,12,173,13,189,94, + 15,99,13,158,39,208,218,160,133,37,203,50,58,157,14,8,129,49,166,120,159,178,120,167,58,207,64,184,194,138,213,57, + 36,130,114,185,202,194,204,28,81,24,98,157,197,243,36,82,21,179,205,58,55,220,185,179,140,179,135,94,73,251,80,190, + 162,219,92,102,188,215,105,1,155,29,232,253,44,184,15,51,156,102,30,18,208,16,175,250,33,245,129,255,7,120,43,69, + 148,204,93,147,172,111,70,27,120,59,184,16,58,73,161,60,111,151,132,176,66,250,202,137,30,185,145,180,58,61,172,200, + 208,46,99,211,180,184,157,106,254,241,239,126,145,191,245,254,123,120,231,67,251,161,26,3,77,164,55,193,187,222,249,1, + 22,230,15,50,165,110,178,185,125,145,140,132,67,71,70,153,156,156,68,246,124,42,163,37,198,103,107,236,158,154,224,212, + 91,78,48,49,81,198,217,14,66,195,7,127,252,199,248,228,39,30,229,169,167,159,38,10,2,218,237,22,213,106,141,36, + 73,73,211,140,36,73,16,82,48,57,53,73,84,46,115,103,229,14,150,98,230,199,1,158,231,21,122,48,99,94,177,232, + 16,131,198,51,22,172,113,4,129,79,92,42,84,243,206,26,114,173,145,158,135,64,160,148,160,209,216,38,77,19,124,79, + 96,172,66,18,211,90,90,33,110,117,219,2,182,29,244,119,81,56,30,14,49,36,160,33,190,7,252,52,240,19,192,19, + 131,187,118,192,183,118,80,13,176,14,166,94,88,143,54,234,190,49,70,91,223,19,49,198,129,181,109,180,177,56,23,163, + 2,139,245,53,159,124,244,44,207,188,120,139,221,187,103,56,116,120,140,67,11,83,212,107,109,234,11,33,75,91,207,179, + 122,227,50,89,175,203,242,102,204,244,244,4,181,186,207,248,220,12,165,114,141,217,189,99,220,127,114,150,209,233,58,56, + 9,248,160,51,198,167,39,248,231,255,236,127,229,23,126,254,111,115,249,234,18,189,44,101,187,181,131,29,196,237,36,3, + 151,198,173,157,109,148,231,35,165,194,225,80,210,67,155,98,0,209,31,52,156,139,237,150,43,236,98,1,207,11,144,158, + 164,86,174,18,120,10,37,7,30,214,131,92,69,229,43,132,146,8,225,13,46,142,68,160,145,100,172,222,106,210,3,95, + 64,41,6,191,199,95,156,197,198,232,112,185,14,9,232,135,13,201,96,91,246,78,224,89,96,135,226,196,204,251,166,173, + 89,9,180,131,237,0,54,102,250,173,190,243,227,200,90,129,24,244,85,144,10,103,2,140,235,33,124,31,75,153,91,89, + 206,202,173,45,158,91,234,17,184,171,40,207,65,52,69,165,62,198,226,158,89,142,239,153,39,40,69,108,53,183,88,223, + 218,225,186,189,138,146,17,60,99,248,220,103,29,229,72,49,59,63,203,190,125,139,28,61,122,15,179,51,33,187,15,44, + 242,214,71,30,230,220,203,87,144,73,194,198,214,6,113,24,147,244,19,250,253,62,97,28,209,207,18,154,173,22,210,83, + 131,137,103,129,211,69,211,217,57,135,26,76,71,91,7,74,250,72,36,129,23,18,135,33,161,31,130,83,148,203,37,162, + 56,194,104,135,31,201,98,230,40,213,196,113,140,231,21,77,109,15,9,120,172,145,114,14,198,143,195,180,134,242,93,253, + 214,144,128,134,4,52,196,247,8,67,161,196,126,25,248,53,160,1,108,125,211,227,191,10,246,175,67,223,65,183,158,219, + 76,6,2,161,114,156,17,88,235,33,132,69,73,141,209,6,163,66,156,144,248,57,196,158,163,54,82,161,82,153,97,98, + 215,36,181,177,17,42,21,71,111,167,207,185,11,231,89,93,91,102,179,177,77,179,185,137,116,22,233,43,178,212,130,246, + 17,46,39,174,88,164,231,51,90,155,224,239,254,242,207,243,139,31,249,48,207,61,253,44,22,104,118,90,196,186,68,191, + 215,199,58,135,167,20,221,126,151,92,107,242,60,47,234,27,103,177,182,168,114,140,49,4,65,128,239,251,197,228,52,69, + 142,189,51,130,122,165,198,216,232,24,66,72,74,229,50,81,185,130,148,30,65,24,19,134,1,202,43,198,30,234,245,42, + 158,95,2,231,112,169,98,237,218,10,127,242,249,47,176,0,210,129,151,22,38,144,194,127,229,220,109,136,33,1,13,241, + 61,33,7,222,11,60,10,252,51,96,134,98,34,186,15,28,43,66,119,50,5,189,58,46,19,206,33,132,1,225,144,162, + 140,19,41,214,36,40,1,206,106,164,176,164,38,71,152,18,19,81,133,242,72,68,63,111,177,115,169,69,171,113,135,78, + 163,73,39,181,164,182,143,39,3,112,17,34,16,120,65,113,196,45,194,24,79,122,8,149,224,16,172,110,36,116,58,154, + 151,47,92,228,244,75,103,200,45,228,198,224,229,26,231,123,36,73,31,41,69,17,52,168,53,89,94,76,58,69,81,132, + 49,26,41,213,43,83,208,214,218,34,185,213,82,16,82,224,227,73,15,171,161,82,45,17,132,33,97,28,33,253,0,49, + 232,138,9,225,136,162,144,99,199,143,131,133,139,231,175,114,250,249,179,156,127,249,44,243,147,7,153,226,139,29,96,51, + 130,238,24,184,128,161,136,116,72,64,67,188,38,56,138,38,234,223,1,62,62,40,251,19,32,130,158,7,235,39,181,219, + 156,205,211,217,155,24,229,91,64,152,65,12,188,68,8,131,20,26,235,4,82,56,66,149,147,52,239,208,182,101,178,92, + 225,76,137,82,181,74,125,122,138,78,71,226,59,77,57,14,112,78,17,198,49,35,99,163,148,226,16,63,18,84,226,49, + 38,198,166,200,109,70,189,50,202,47,254,194,127,193,191,253,131,255,131,237,198,54,65,101,12,144,228,90,19,197,33,214, + 26,180,30,68,66,15,100,22,206,21,249,207,190,31,144,164,41,97,24,17,69,33,58,215,69,106,171,18,4,65,64,41, + 42,225,6,178,140,60,211,4,126,81,37,1,120,126,64,181,90,193,138,132,82,20,209,106,237,240,135,31,251,18,215,175, + 44,225,203,136,95,252,165,95,224,137,175,127,157,165,223,163,237,96,93,65,183,207,95,156,187,225,196,112,121,14,9,232, + 141,64,64,119,19,50,182,128,83,192,20,112,186,24,31,218,30,15,131,246,131,165,48,189,209,77,74,86,170,162,242,81, + 69,195,215,90,240,60,31,79,80,104,165,140,132,176,140,8,170,76,78,140,16,71,49,129,31,82,42,151,145,162,208,89, + 5,161,162,94,169,50,179,107,134,137,137,73,28,14,39,13,158,240,80,8,226,146,224,145,135,239,71,216,46,173,110,78, + 92,25,33,51,133,61,172,181,57,73,226,80,170,176,227,112,20,138,119,156,35,80,30,105,47,65,248,30,126,20,227,71, + 49,206,8,20,130,114,88,34,183,57,185,179,36,58,167,28,151,145,30,72,233,104,55,155,148,226,152,82,165,130,51,57, + 59,141,62,78,100,228,229,140,79,253,135,79,83,138,75,188,253,221,239,226,161,83,135,9,227,18,238,209,62,1,100,18, + 82,13,230,189,124,247,25,171,215,243,217,12,49,36,160,55,84,37,180,14,236,20,125,213,178,47,68,252,114,158,151,190, + 214,151,37,127,208,233,16,66,97,140,123,197,248,235,174,221,133,4,130,80,224,156,161,92,41,225,123,146,40,10,8,131, + 128,192,87,72,169,136,162,144,74,165,68,224,251,197,105,150,148,120,74,18,68,49,161,10,169,87,75,28,62,62,77,37, + 86,124,229,203,79,178,111,225,94,222,254,240,187,121,244,241,79,225,251,1,86,23,106,119,165,84,49,84,168,53,82,74, + 164,82,228,70,227,121,62,115,51,211,136,129,126,203,24,131,53,134,192,15,232,38,224,140,38,12,67,170,213,26,213,82, + 137,145,250,40,56,208,58,71,98,73,91,77,16,29,250,253,62,219,166,207,187,223,243,54,62,240,193,247,49,58,85,197, + 101,109,176,134,104,106,156,185,169,41,161,215,215,221,247,18,203,51,196,144,128,222,208,149,141,25,124,72,187,40,74,154, + 18,223,26,21,156,2,71,65,156,7,239,33,8,182,161,156,20,102,91,71,34,231,30,74,60,127,98,203,6,56,12,190, + 39,9,195,136,110,183,251,138,202,28,4,214,22,19,200,89,146,208,100,7,33,4,181,106,141,44,203,25,31,31,35,46, + 197,72,225,176,78,179,211,106,80,142,74,4,126,128,53,154,137,169,41,132,130,169,201,136,131,251,22,200,82,201,179,79, + 159,69,103,57,247,221,119,148,185,133,159,231,133,211,143,227,132,36,85,26,1,36,73,242,202,239,191,75,132,206,83,164, + 24,86,183,214,241,157,0,235,240,252,16,148,96,164,28,226,17,146,181,13,58,213,244,58,29,226,32,160,213,106,146,166, + 41,165,94,137,76,103,88,44,113,24,80,45,141,16,71,117,118,205,206,50,58,91,67,247,183,49,82,32,156,34,8,66, + 162,169,113,225,214,215,69,34,165,192,14,71,16,135,4,52,68,209,60,29,144,75,31,216,11,140,23,167,234,126,8,234, + 223,12,134,159,75,224,54,192,104,208,17,216,117,80,83,66,212,183,157,219,19,192,108,9,102,29,28,234,195,177,203,176, + 248,25,231,38,115,44,146,162,250,81,74,49,49,49,65,154,166,228,121,142,181,208,235,246,72,242,12,223,243,200,179,46, + 253,110,74,171,212,33,10,183,185,117,243,22,190,239,227,251,62,113,92,98,116,108,132,133,185,57,234,181,58,155,91,107, + 204,206,142,112,248,224,62,230,231,75,52,183,55,184,118,169,199,72,117,146,227,199,15,82,29,243,216,189,56,202,169,251, + 30,225,107,79,63,131,31,22,39,89,189,94,239,149,247,92,88,108,0,72,20,2,157,102,120,126,0,14,242,44,67,42, + 133,116,146,241,145,17,118,207,237,197,89,139,201,52,82,120,40,165,216,181,107,154,241,137,9,132,242,176,194,81,41,133, + 72,25,163,115,88,222,218,192,184,62,218,43,92,151,60,167,88,156,159,231,214,160,240,169,84,171,194,53,155,195,133,55, + 36,160,97,181,3,133,26,126,180,56,30,142,238,133,154,129,81,11,147,41,212,227,193,103,101,192,106,232,118,97,219,66, + 170,160,228,57,119,208,194,67,43,112,20,41,199,111,213,170,187,26,39,79,142,239,126,251,59,188,195,205,166,252,242,239, + 253,139,65,165,99,233,118,187,56,231,136,227,152,169,169,105,70,71,198,169,86,43,180,90,109,182,54,55,201,210,28,165, + 36,198,88,38,38,38,25,31,31,71,8,193,216,232,56,165,82,137,145,209,58,66,8,210,44,195,152,140,118,103,155,61, + 123,223,74,175,189,77,210,117,28,62,186,64,165,86,193,201,140,92,167,148,234,227,156,58,245,16,143,62,246,85,124,79, + 210,75,122,56,91,88,108,216,111,138,98,86,8,164,149,248,161,95,24,145,57,135,181,14,207,8,154,107,155,244,194,62, + 211,115,62,115,51,187,144,82,226,43,69,16,248,148,43,101,164,82,224,64,105,200,123,25,81,92,194,23,10,229,2,164, + 243,9,188,24,145,129,240,4,183,175,95,38,105,236,184,0,108,144,36,246,16,223,16,1,15,49,36,160,55,20,238,78, + 50,123,192,75,224,111,195,136,15,115,33,44,90,88,20,176,96,96,174,11,99,41,120,10,80,96,21,180,125,216,12,5, + 105,28,69,229,164,159,204,239,204,206,28,204,254,171,159,155,147,11,123,228,76,125,130,189,229,50,89,175,203,187,75,49, + 31,255,216,199,217,222,217,65,74,133,49,150,110,183,83,184,4,58,75,158,231,248,254,60,167,30,58,69,165,92,45,44, + 44,40,230,112,188,193,132,178,214,26,157,21,196,36,164,194,247,124,114,33,209,54,225,220,185,11,28,63,190,159,131,139, + 123,153,158,142,192,43,38,108,180,201,10,159,103,107,185,255,161,147,148,75,1,137,205,209,90,23,91,75,99,64,12,200, + 71,41,180,115,168,200,43,172,93,179,194,55,8,41,200,76,142,31,68,196,165,128,208,247,233,247,250,196,97,132,147,10, + 223,47,114,226,115,173,9,130,8,63,10,81,190,135,23,23,199,249,189,180,79,175,101,72,147,46,43,55,110,112,231,153, + 103,89,253,253,63,104,237,190,179,114,221,192,182,78,83,253,171,195,101,56,36,160,55,114,229,51,11,226,131,80,217,130, + 61,62,220,39,225,254,46,28,219,169,148,23,178,67,123,199,163,251,78,148,107,71,78,4,37,63,166,84,46,145,246,58, + 180,87,238,216,213,149,101,221,104,181,92,98,80,87,111,222,82,135,222,247,62,239,248,219,222,33,150,87,183,105,111,236, + 208,189,122,19,155,167,228,121,70,28,149,193,53,6,149,5,24,171,139,74,8,65,224,71,92,191,126,157,213,149,85,14, + 29,60,196,209,163,71,41,87,202,164,105,97,155,161,117,142,231,121,248,129,196,247,138,35,115,132,67,121,1,121,98,232, + 39,9,207,60,119,150,253,123,23,8,60,176,178,136,242,81,158,194,232,156,76,119,57,118,124,15,19,83,35,92,188,118, + 3,103,45,131,248,46,148,87,84,65,74,41,100,16,98,125,15,145,101,28,83,158,59,172,84,190,183,84,182,143,26,237, + 223,240,148,10,203,17,74,74,60,169,16,82,14,12,235,65,121,1,129,167,240,124,69,169,82,65,202,0,47,240,137,3, + 159,180,159,240,167,159,254,18,219,43,55,104,127,245,139,122,241,241,39,239,236,109,182,159,5,254,204,193,21,32,29,97, + 120,90,53,36,160,55,68,185,227,8,162,144,221,129,79,158,229,76,2,199,65,25,152,84,112,111,0,111,111,194,195,75, + 243,147,71,43,63,243,51,19,199,62,248,99,222,222,147,135,9,203,21,154,205,14,237,141,6,59,155,29,182,219,93,58, + 51,123,81,38,15,246,197,37,158,126,242,41,174,108,231,196,205,62,222,197,139,120,94,21,163,193,58,133,242,3,74,149, + 18,83,227,19,220,188,121,3,161,36,32,145,72,148,80,69,206,86,210,197,26,135,53,134,75,151,47,210,238,180,216,189, + 123,55,51,51,51,175,24,201,131,64,9,137,177,57,18,133,117,96,140,35,240,67,242,76,115,229,210,45,110,222,92,230, + 208,225,5,64,224,164,196,57,81,168,218,173,101,116,162,194,193,67,123,57,127,249,26,129,167,200,180,198,9,65,113,16, + 47,113,210,99,26,120,176,215,79,222,150,235,205,195,206,173,214,178,180,17,109,111,143,236,175,215,247,255,47,229,242,88, + 224,251,228,14,82,163,137,131,10,202,247,17,74,81,169,214,112,56,2,79,17,74,69,88,170,224,132,38,105,174,177,249, + 242,6,249,205,149,124,242,210,153,237,61,27,203,87,74,198,60,101,225,177,28,94,168,192,74,2,230,129,225,202,28,18, + 208,27,130,127,146,132,99,15,156,100,233,63,123,23,55,63,243,103,92,6,21,192,116,14,143,4,240,254,51,146,71,58, + 31,120,239,222,247,127,244,127,8,14,221,123,47,141,173,45,46,157,187,204,213,203,55,105,108,247,72,181,33,213,144,234, + 62,89,102,168,84,66,46,95,188,204,167,62,249,71,244,186,9,187,23,231,241,164,34,112,32,68,76,238,43,82,154,8, + 153,48,59,51,70,240,66,128,243,4,185,51,4,25,72,2,82,211,39,239,25,98,47,194,218,20,227,52,102,217,176,181, + 189,77,179,217,100,110,110,142,122,189,142,239,251,72,63,196,106,31,163,53,224,240,132,197,104,141,211,150,220,120,156,63, + 127,135,253,7,23,17,50,47,230,145,133,4,5,78,88,188,48,228,240,225,227,216,79,125,1,35,61,82,37,177,18,170, + 6,142,89,97,223,150,233,230,3,253,254,157,133,60,187,162,224,98,238,220,149,20,26,26,246,239,233,245,126,236,17,193, + 67,87,54,55,162,242,174,24,105,37,189,230,54,196,49,165,145,81,68,183,139,236,103,208,107,131,238,89,215,221,209,213, + 205,181,254,194,214,102,123,180,211,109,84,90,173,59,10,46,89,56,173,225,180,129,107,93,104,229,96,134,42,248,33,1, + 253,224,117,138,95,243,235,29,202,247,249,92,24,112,95,241,63,117,3,15,89,248,169,143,73,222,51,246,119,126,105,242, + 239,255,227,223,164,219,94,231,11,159,253,20,55,110,238,208,110,129,192,129,44,178,176,76,174,89,95,95,35,138,74,108, + 110,44,243,248,227,143,209,235,167,56,41,217,105,117,200,115,69,224,28,34,239,80,246,60,2,127,140,52,239,179,231,224, + 49,68,240,53,210,212,224,2,129,81,6,231,122,88,13,89,174,49,174,77,20,248,104,13,89,154,211,15,19,148,148,180, + 90,45,198,199,199,25,31,31,167,62,50,74,28,151,17,66,160,117,142,186,187,205,234,91,148,15,75,55,111,209,108,118, + 168,215,67,44,22,196,55,196,165,8,193,201,55,221,67,232,41,166,149,112,187,16,118,183,148,233,35,90,111,28,205,147, + 235,37,99,46,230,112,33,131,139,22,150,20,108,196,144,165,112,201,215,58,255,112,171,125,167,215,237,207,245,183,215,199, + 76,24,134,185,16,194,58,135,148,210,73,132,8,172,37,74,211,60,72,211,166,103,244,154,7,235,2,86,44,172,89,184, + 237,224,102,14,203,211,176,179,1,217,39,128,95,228,91,199,25,134,24,18,208,255,175,33,74,175,207,182,92,4,62,171, + 183,111,243,123,79,61,207,63,128,192,135,125,62,188,235,179,240,246,234,223,251,149,201,127,240,27,191,202,141,171,215,248, + 202,87,94,164,223,55,40,95,96,85,134,115,18,97,171,24,151,147,230,109,234,213,10,198,88,46,156,63,67,171,221,64, + 170,8,139,230,250,205,37,238,187,255,17,212,104,153,40,48,4,34,197,237,180,8,101,64,109,126,150,127,244,143,254,59, + 158,121,254,12,159,250,211,79,225,2,1,58,71,80,38,10,21,34,75,200,50,131,211,125,4,105,97,16,102,52,173,86, + 139,157,157,29,58,157,14,225,218,26,181,106,157,90,181,74,185,92,70,122,10,43,0,89,184,43,110,108,111,177,190,182, + 201,216,216,158,226,116,203,13,196,163,88,208,154,197,253,251,248,201,35,135,242,159,184,177,212,155,108,119,151,125,99,206, + 225,220,121,13,47,167,112,217,192,114,79,136,102,197,247,147,11,158,111,30,74,250,108,88,123,117,196,185,158,112,238,217, + 178,205,166,43,121,54,37,122,189,210,160,133,228,238,222,23,92,209,208,207,5,108,3,171,6,182,51,104,4,208,201,161, + 215,133,254,4,216,125,224,250,3,226,17,195,222,207,144,128,126,160,8,40,42,189,190,31,32,235,4,255,242,119,249,123, + 183,151,69,6,19,62,220,127,11,30,156,248,200,223,156,254,165,223,252,135,60,245,245,103,121,233,165,203,116,123,25,16, + 162,240,16,50,68,231,25,142,46,97,232,97,173,67,9,201,157,59,183,232,118,59,100,38,67,170,0,33,12,155,55,175, + 163,154,219,16,180,192,53,168,69,41,39,142,204,51,191,231,0,99,115,135,136,199,39,105,172,174,242,147,63,185,204,51, + 103,95,194,151,96,16,56,151,83,169,84,49,214,145,155,188,232,7,89,203,206,206,78,49,115,99,12,198,24,194,32,228, + 70,118,3,107,45,227,227,227,76,79,79,179,123,247,110,194,40,34,205,50,250,73,206,202,234,38,135,143,238,25,76,88, + 187,66,115,38,36,96,217,53,62,198,125,202,211,83,141,237,29,7,143,167,240,105,13,23,34,216,172,67,247,113,200,43, + 74,33,222,249,30,236,252,110,158,250,250,99,212,94,62,223,115,112,195,193,173,42,132,14,162,154,84,190,21,66,8,163, + 95,225,15,1,244,193,88,72,51,72,98,208,135,193,252,11,112,15,243,141,184,35,201,55,38,159,135,228,51,36,160,31, + 44,200,215,227,242,235,179,178,118,147,223,252,151,255,154,143,64,148,192,225,28,30,217,60,116,226,224,207,253,198,175,169, + 39,190,246,36,79,62,113,13,99,115,60,15,132,208,88,171,112,70,32,148,68,121,61,44,22,129,160,219,233,210,106,183, + 104,236,52,0,131,167,124,156,235,48,26,231,132,233,69,222,60,57,202,190,153,128,241,218,24,206,131,157,214,13,46,175, + 53,104,232,29,30,126,211,65,254,218,143,190,135,231,94,58,143,47,125,172,211,72,207,32,125,159,192,243,169,40,0,73, + 224,135,180,90,173,87,44,82,181,214,68,81,52,240,232,129,181,181,53,54,54,54,72,210,148,137,201,73,162,40,6,33, + 88,91,109,96,173,3,103,80,210,199,57,112,206,98,141,198,143,61,250,187,38,252,68,200,173,192,217,23,36,60,51,15, + 107,255,70,74,247,246,19,111,102,227,194,75,200,44,163,49,62,65,82,171,211,154,156,98,230,229,243,220,4,115,13,204, + 135,32,107,67,251,183,172,161,193,55,220,32,7,213,15,191,9,116,129,167,129,69,224,71,128,165,193,247,97,94,251,144, + 128,126,240,241,75,31,121,29,87,217,99,102,117,157,95,185,179,194,29,24,173,194,61,107,130,19,39,63,250,235,99,171, + 235,91,156,63,123,155,94,218,163,20,71,248,170,168,180,172,203,208,166,141,18,10,167,61,228,192,21,48,73,50,218,221, + 30,105,102,200,116,70,73,194,104,181,198,63,252,200,125,188,247,68,149,216,211,108,172,246,249,202,217,62,59,193,4,170, + 94,193,90,203,243,47,60,198,98,188,195,91,222,188,143,145,145,17,250,205,62,82,21,199,234,89,174,169,214,106,72,9, + 158,244,81,202,43,60,155,141,161,84,46,83,169,86,201,178,194,203,89,12,254,85,171,85,60,63,32,207,53,206,245,9, + 188,136,173,237,54,105,146,17,132,114,64,62,174,16,171,90,240,163,0,87,45,75,131,107,201,162,55,211,254,223,193,157, + 149,146,131,135,142,32,174,188,12,89,134,52,6,97,12,106,144,29,47,191,169,202,113,20,105,33,235,223,230,18,255,253, + 193,115,135,194,138,33,1,253,112,226,247,254,245,235,122,121,90,220,161,131,16,22,82,184,71,189,255,253,187,71,238,63, + 36,31,251,15,143,210,235,121,120,94,136,39,61,28,26,156,5,103,17,214,67,103,96,156,198,247,36,78,56,180,161,232, + 215,72,69,20,251,216,118,198,252,212,40,15,28,153,227,230,245,13,158,191,154,144,149,246,50,119,244,65,14,223,115,148, + 201,93,19,40,4,43,43,151,184,126,229,22,15,190,243,4,123,15,236,225,236,51,103,65,130,176,30,54,203,6,166,96, + 150,192,131,206,118,131,44,203,16,66,20,67,130,90,227,28,248,97,80,36,150,122,133,29,71,165,82,193,247,124,156,133, + 208,143,104,182,123,36,105,70,169,84,193,9,133,47,60,172,21,24,157,162,100,64,85,6,22,231,114,1,89,2,246,143, + 40,28,29,255,122,145,4,246,231,178,45,26,138,75,135,4,244,67,137,207,190,206,215,59,160,4,245,16,142,174,195,137, + 221,63,255,145,145,243,23,174,176,182,182,142,241,71,16,66,33,149,162,82,138,241,148,44,242,175,140,64,27,75,175,155, + 146,154,46,73,218,167,221,237,98,17,56,1,163,99,227,32,2,116,154,16,171,132,229,118,74,26,31,225,3,127,243,151, + 153,152,170,145,247,91,172,173,109,114,230,250,50,141,164,204,198,250,50,129,159,115,242,205,39,120,230,241,39,9,85,5, + 157,75,172,72,104,54,27,4,65,72,71,119,208,218,226,73,133,239,251,84,42,85,148,146,148,203,17,189,94,15,207,243, + 8,195,152,153,153,57,42,229,10,121,166,65,129,182,119,27,207,170,16,183,74,139,115,2,41,68,161,118,247,21,42,146, + 78,64,238,64,43,112,31,2,82,99,153,121,246,73,110,165,9,211,98,72,31,67,2,26,226,219,226,208,235,40,239,5, + 144,129,216,134,154,133,197,246,145,195,123,153,159,147,207,127,246,243,100,198,225,185,14,190,95,71,201,136,114,80,101,106, + 87,141,133,221,147,84,106,33,89,63,163,185,222,226,233,211,231,232,119,83,180,211,168,80,129,113,84,188,93,152,216,177, + 222,91,166,35,160,62,86,97,178,60,143,114,25,79,61,253,12,91,43,13,178,84,210,74,250,84,203,147,92,93,185,68, + 111,189,203,123,31,184,151,127,229,123,224,4,78,40,180,215,67,153,14,42,23,244,122,61,130,32,68,72,69,181,90,29, + 28,187,27,164,204,240,60,143,192,47,51,55,187,155,122,173,74,150,247,7,114,10,31,129,193,23,6,231,2,140,5,165, + 114,44,2,105,65,24,131,72,19,166,186,253,60,42,52,108,205,25,48,255,19,69,143,40,185,126,153,7,128,138,148,124, + 42,8,96,72,68,67,2,26,226,91,209,150,30,145,213,175,137,132,4,133,133,170,145,66,9,235,194,185,201,73,121,249, + 226,101,218,237,30,113,20,160,164,135,179,41,190,215,231,192,161,69,142,31,219,207,200,120,25,235,108,145,242,112,104,158, + 202,68,137,63,250,227,47,83,142,74,96,53,213,74,181,176,39,45,89,214,150,187,108,54,20,123,38,234,92,249,234,139, + 180,31,155,165,39,186,132,186,77,144,135,104,171,241,71,3,150,238,40,206,45,189,192,209,153,58,227,19,85,150,119,114, + 202,153,198,225,145,43,3,54,37,8,2,106,181,26,97,24,99,140,193,247,139,192,192,66,51,22,16,199,49,99,99,99, + 120,158,79,174,19,242,92,35,16,228,66,17,87,71,40,197,37,148,76,144,194,34,40,60,125,208,22,157,58,242,141,173, + 84,194,70,10,59,189,66,209,143,30,92,159,10,69,21,53,255,212,19,44,191,239,175,146,6,193,240,164,106,72,64,67, + 220,197,71,103,142,243,179,27,151,25,207,122,175,105,128,45,7,234,8,36,14,175,211,211,87,94,190,140,242,60,156,53, + 88,28,81,232,113,207,241,67,156,122,232,40,82,229,8,50,24,52,114,51,221,231,240,161,93,28,59,184,200,234,202,50, + 165,56,160,94,171,162,148,32,247,12,73,174,185,178,180,197,131,239,62,73,125,116,25,151,165,140,150,43,180,123,29,124, + 153,178,103,102,140,23,47,95,66,101,227,184,102,29,229,239,112,96,62,230,246,198,38,130,26,46,47,99,92,15,200,145, + 210,209,233,116,169,84,106,232,220,144,231,57,165,82,209,24,15,195,136,133,133,57,170,213,50,89,150,98,29,88,235,8, + 67,137,231,251,76,78,77,17,4,62,66,244,193,89,156,182,197,73,158,12,57,119,254,69,154,171,171,122,15,244,203,144, + 254,54,216,63,248,118,100,125,229,18,251,148,226,64,171,201,189,195,101,55,36,160,33,6,8,74,188,48,58,207,149,181, + 75,223,119,163,51,5,126,6,152,118,206,51,16,172,151,170,126,203,130,176,22,169,20,2,69,28,150,89,92,88,196,147, + 138,60,239,35,144,40,21,35,164,35,211,41,130,156,131,251,23,248,202,87,193,87,18,223,243,208,38,35,55,61,146,212, + 240,153,39,110,241,115,63,254,22,222,245,224,28,143,95,110,211,82,146,204,102,216,238,37,222,250,222,15,178,123,254,24, + 51,174,71,232,174,225,162,113,142,239,61,193,19,79,223,194,85,115,112,10,165,21,8,131,82,138,56,138,209,185,70,8, + 73,28,199,4,65,64,28,151,168,86,107,212,106,181,65,83,218,97,140,197,243,124,162,40,70,231,25,83,211,35,8,101, + 192,88,76,63,3,17,129,11,56,123,238,34,127,252,241,63,230,100,179,149,0,125,3,250,167,129,3,128,255,31,53,203, + 28,189,151,207,51,201,127,156,121,54,196,144,128,222,176,240,157,229,98,105,148,207,188,198,215,63,2,226,158,194,178,198, + 107,132,161,159,106,13,121,70,218,207,81,194,35,80,62,206,88,176,14,233,192,100,6,252,194,172,171,72,123,176,108,53, + 54,177,54,71,56,65,154,100,180,123,13,182,183,54,8,163,18,207,157,89,225,242,218,14,71,78,236,99,185,213,97,114, + 143,100,241,222,119,176,122,166,194,242,165,47,242,230,135,238,33,223,184,205,234,166,225,143,255,244,28,159,127,236,121,202, + 126,133,220,119,8,145,160,80,4,65,9,223,247,9,163,176,120,207,190,55,248,30,16,69,37,198,199,39,8,163,0,173, + 53,214,25,148,44,30,215,58,103,98,178,198,225,67,243,96,179,226,125,8,159,44,151,156,62,125,142,47,125,245,113,242, + 181,6,211,189,254,182,133,13,160,87,5,222,253,29,8,70,80,184,63,150,135,203,110,72,64,67,20,208,206,176,55,30, + 99,79,101,130,165,206,230,247,253,122,67,49,16,103,64,110,6,177,111,173,5,147,145,166,9,158,12,105,119,119,184,185, + 124,131,197,197,147,56,99,16,202,2,41,166,216,231,208,234,102,188,248,210,121,12,154,94,191,152,201,105,181,154,228,185, + 197,154,156,181,141,156,63,250,183,79,242,235,127,171,205,59,102,203,4,113,139,252,230,13,246,250,9,155,145,229,147,159, + 252,18,95,127,106,155,11,75,61,158,56,127,150,70,99,135,48,10,144,89,140,144,2,233,65,24,132,32,10,151,194,32, + 14,176,214,81,42,69,212,235,35,76,78,78,83,173,86,48,38,35,203,82,130,32,66,160,240,124,31,107,53,7,22,23, + 152,26,175,14,124,131,34,214,55,119,120,241,197,23,120,252,107,95,39,40,133,252,149,83,15,57,62,247,39,77,7,155, + 10,146,79,83,196,75,203,87,185,102,18,24,3,194,225,242,27,18,208,27,29,119,239,212,247,141,237,125,77,4,212,150, + 66,72,207,19,46,203,197,213,141,77,185,92,190,78,144,118,209,14,202,229,49,114,157,240,252,139,167,57,126,104,31,147, + 99,37,12,125,4,6,97,4,206,40,190,254,245,115,92,190,118,131,219,43,183,105,52,91,108,109,55,232,180,91,8,2, + 156,53,136,32,231,183,63,251,20,126,205,240,142,251,247,145,52,250,60,250,244,10,103,111,238,32,130,58,126,181,66,101, + 98,23,227,251,29,51,59,107,52,90,25,125,155,225,153,140,216,31,108,245,242,140,177,209,113,2,63,196,31,196,221,140, + 140,140,50,54,54,70,20,21,113,58,214,25,60,95,146,101,41,190,23,99,173,102,100,180,206,187,222,241,118,60,20,91, + 141,38,75,183,87,57,247,242,117,158,121,246,52,229,146,207,135,62,252,55,184,244,135,31,179,94,150,165,2,210,14,152, + 127,69,49,3,244,221,16,1,31,102,56,205,60,36,160,55,56,4,144,59,195,92,121,244,53,85,65,117,235,156,201,114, + 235,131,243,251,61,179,182,182,78,217,246,201,140,99,107,171,205,158,189,123,184,112,225,26,159,253,220,151,248,233,159,248, + 81,170,181,10,189,78,151,141,141,109,158,127,238,28,159,249,179,175,113,107,229,14,107,27,183,89,91,109,97,140,69,72, + 137,213,2,132,69,90,65,187,175,248,39,255,215,83,252,206,39,47,209,111,182,89,152,223,195,254,163,199,40,141,132,220, + 92,90,162,183,233,216,53,61,195,177,197,7,89,187,149,176,153,172,128,167,208,46,67,106,139,26,184,31,214,106,117,162, + 40,38,12,66,198,199,199,41,151,43,120,202,199,216,188,200,228,114,142,48,12,177,6,42,149,42,239,127,255,251,201,211, + 148,39,191,118,158,229,149,117,94,190,188,196,205,213,6,251,14,237,227,167,254,243,247,49,187,48,198,153,141,85,83,118, + 100,14,242,17,112,255,61,133,116,226,187,85,64,171,131,94,208,80,185,62,36,160,33,28,56,241,218,171,160,65,126,151, + 213,155,183,76,143,24,191,18,211,75,183,72,251,45,148,39,152,156,28,231,209,199,30,231,197,179,103,88,152,159,195,88, + 199,141,155,183,89,89,91,163,213,110,115,231,206,29,26,141,6,157,78,7,59,176,50,13,35,133,144,30,253,110,15,207, + 179,24,171,216,218,106,33,149,32,26,169,241,210,153,23,185,179,124,7,173,29,199,143,159,96,114,98,158,218,68,153,217, + 221,19,108,159,93,69,249,22,141,69,225,35,132,71,28,151,136,162,136,145,122,141,106,165,78,41,174,32,133,135,0,66, + 63,160,223,55,132,97,136,195,17,197,30,71,14,29,100,109,121,153,23,159,221,102,117,117,149,102,227,38,211,149,113,254, + 202,187,223,197,125,111,59,202,254,185,17,154,253,148,222,157,213,108,10,183,165,97,167,14,230,191,230,123,107,48,219,193, + 86,109,133,225,148,243,144,128,134,64,91,195,76,121,148,71,38,247,115,102,227,234,171,222,193,239,162,75,113,218,35,192, + 74,208,213,118,91,175,244,175,194,238,41,106,35,37,180,150,108,110,110,209,237,182,153,155,153,97,103,167,193,213,107,87, + 11,77,86,146,113,103,101,149,126,210,39,75,83,180,214,133,68,98,16,103,227,7,1,8,247,74,198,151,64,32,85,113, + 124,255,252,115,207,17,4,1,74,42,74,213,152,245,245,117,54,183,182,152,155,157,225,200,145,35,220,190,125,155,86,171, + 53,168,164,44,190,231,177,111,223,62,74,113,76,20,132,248,42,0,109,169,148,35,74,213,18,142,194,204,222,58,135,242, + 37,83,19,147,52,26,219,92,188,116,145,94,179,195,228,216,24,111,122,211,73,14,29,63,192,209,147,71,168,151,75,144, + 229,228,105,134,235,119,50,96,83,194,78,0,38,227,123,27,236,20,131,30,208,20,176,54,92,176,67,2,26,2,180,115, + 220,63,50,207,135,118,150,17,121,255,187,222,201,45,80,5,215,131,36,130,230,92,24,245,140,203,217,106,111,178,211,131, + 188,229,33,21,212,70,98,110,175,88,202,113,17,63,188,177,177,78,179,221,38,73,179,194,28,62,207,49,198,224,156,195, + 243,60,162,40,34,240,125,210,44,41,102,114,156,0,44,14,144,74,18,122,17,224,176,214,96,172,161,84,142,73,146,62, + 253,126,194,216,232,4,15,191,245,17,190,252,229,175,208,75,250,68,129,79,173,82,163,215,233,161,211,156,190,239,83,171, + 86,193,194,86,150,97,221,24,86,138,66,32,170,36,129,10,216,220,220,66,231,154,90,173,198,248,200,24,7,247,204,114, + 228,196,62,118,31,95,68,8,135,236,39,133,177,124,150,35,114,99,92,97,149,145,255,83,176,191,13,196,223,207,53,167, + 80,185,247,134,203,111,72,64,111,248,126,144,179,180,252,144,237,209,5,126,118,253,210,119,37,32,1,164,224,214,161,99, + 97,61,180,174,147,27,77,214,234,99,243,12,151,6,8,37,72,117,200,214,214,22,58,47,140,224,173,45,146,33,140,27, + 164,82,72,31,165,160,84,42,17,197,49,74,41,90,173,29,250,73,31,107,45,82,202,226,53,20,61,154,48,12,105,53, + 119,144,82,146,235,156,102,163,133,153,53,248,190,143,231,121,204,207,47,176,127,255,126,110,221,188,197,161,195,135,11,31, + 232,48,26,228,128,5,148,75,49,149,114,25,37,20,81,169,140,23,12,166,118,132,32,215,57,253,94,239,149,252,46,229, + 251,220,243,192,125,28,56,92,39,205,83,252,220,71,56,139,139,28,237,126,15,63,147,133,64,30,92,62,184,46,253,239, + 243,186,95,26,46,189,33,1,13,81,64,89,67,119,100,134,79,55,151,185,152,118,94,245,148,198,0,19,192,143,66,106, + 160,61,233,92,111,97,124,146,43,171,55,9,125,129,13,44,214,64,183,219,5,1,149,82,25,231,138,237,158,213,182,72, + 14,117,16,199,17,97,24,146,231,57,253,126,31,173,53,89,158,14,162,142,93,33,6,149,30,142,194,72,172,215,235,97, + 29,8,91,184,19,250,158,143,148,146,36,73,104,54,155,128,96,223,226,62,78,61,120,10,223,247,209,86,147,231,154,36, + 77,17,206,20,166,241,82,18,148,98,130,48,192,243,10,2,202,117,142,195,225,251,62,130,66,49,47,156,164,159,228,128, + 195,211,57,82,75,50,15,124,17,177,121,233,26,193,173,149,190,131,158,6,243,87,129,105,190,255,44,174,187,150,28,191, + 51,232,9,13,49,36,160,55,46,1,57,199,154,10,185,49,115,148,201,27,207,188,106,63,227,110,254,87,12,166,11,201, + 136,54,253,227,243,115,110,105,107,83,88,157,0,69,76,177,67,22,238,126,73,70,24,68,248,94,128,117,22,207,83,8, + 100,97,113,234,28,217,192,62,35,205,138,78,138,214,69,190,123,81,156,200,65,85,82,228,122,149,226,26,221,110,151,90, + 173,198,236,204,44,35,35,163,120,158,95,228,171,87,171,56,99,144,82,208,107,119,48,206,21,141,114,229,21,57,91,65, + 132,19,18,173,13,46,24,100,121,13,72,64,73,137,118,20,118,28,56,242,164,199,250,237,219,184,227,51,8,153,162,189, + 132,160,84,231,198,229,43,172,254,246,239,247,38,175,93,61,99,224,106,94,84,129,188,214,52,10,31,248,101,224,183,248, + 222,142,241,135,24,18,208,15,45,164,213,148,227,17,62,84,153,228,129,206,198,119,125,254,121,208,109,216,246,250,189,141, + 55,151,131,188,245,35,111,15,190,252,165,47,225,97,145,24,156,28,156,147,185,98,186,56,8,130,34,59,29,135,20,96, + 156,165,215,110,99,181,65,15,178,213,7,188,131,148,2,73,17,117,46,165,71,28,197,120,94,192,248,248,36,211,187,118, + 177,184,103,145,106,173,74,28,71,228,70,147,38,9,206,90,130,48,64,122,62,141,78,151,181,149,85,70,171,53,198,198, + 199,169,212,234,120,190,87,152,207,75,85,228,120,41,129,16,2,147,229,131,0,67,135,144,5,225,41,223,103,121,109,21, + 157,38,248,165,0,43,224,153,207,127,145,139,191,250,209,230,220,153,243,79,1,159,13,224,89,160,125,138,215,55,229,252, + 163,192,28,240,145,225,18,28,18,208,27,186,23,52,168,110,62,62,190,135,127,223,217,224,213,82,198,51,224,199,32,159, + 133,213,28,174,30,184,117,103,123,249,173,239,216,181,118,239,253,92,60,127,6,169,187,8,43,144,74,34,165,122,133,124, + 172,213,3,55,68,65,158,166,224,28,218,232,34,81,75,74,140,45,26,195,175,40,207,157,96,126,126,158,125,251,15,48, + 57,53,205,232,232,24,113,24,163,60,143,164,159,144,101,26,135,165,86,175,129,20,116,27,219,52,207,158,177,245,151,47, + 232,122,187,205,246,169,183,121,106,106,90,226,64,56,1,6,226,56,36,14,35,180,213,131,30,147,64,121,170,56,113,19, + 18,103,45,206,15,176,113,136,240,28,55,207,94,224,201,223,255,152,238,254,223,255,110,101,177,217,121,86,194,159,120,240, + 165,18,220,250,29,200,99,160,198,107,183,55,137,40,172,87,135,24,18,208,112,43,102,13,155,165,81,110,76,29,224,193, + 245,43,40,190,253,124,75,6,204,20,237,160,181,12,206,238,186,113,237,202,200,129,197,169,83,15,63,40,199,106,37,46, + 157,62,77,171,213,66,10,65,185,84,166,90,175,131,128,78,167,69,174,51,148,49,248,214,129,47,65,72,242,60,43,42, + 16,107,200,179,12,68,153,61,187,15,240,240,155,223,204,222,61,11,88,9,61,155,163,60,15,172,165,151,116,169,142,84, + 9,2,159,78,179,73,114,237,101,166,175,93,237,239,191,116,121,115,87,171,181,58,225,156,150,48,243,137,222,214,252,86, + 104,101,28,9,130,48,64,57,137,22,142,204,104,140,209,24,35,193,249,4,94,72,106,83,148,7,81,57,70,167,9,165, + 235,55,220,215,255,155,207,247,150,63,241,137,173,250,230,246,245,89,120,30,120,76,195,243,22,86,62,10,217,39,135,75, + 102,136,33,1,253,249,193,1,129,53,28,157,56,192,223,238,53,57,248,42,91,177,12,120,17,90,192,185,32,201,158,59, + 113,230,194,190,47,76,239,157,61,114,252,30,118,239,154,225,133,211,47,176,116,115,169,200,80,239,52,177,198,224,156,69, + 231,57,218,128,239,135,4,202,199,26,73,166,29,58,207,41,197,101,14,239,187,135,99,71,143,113,248,240,65,194,48,164, + 211,238,224,210,28,101,12,81,217,71,196,33,213,168,130,202,53,205,103,158,118,19,47,189,212,222,187,124,123,121,38,77, + 46,120,112,94,195,245,4,144,112,106,223,203,23,223,219,169,141,237,73,246,29,19,65,77,225,252,16,89,13,113,78,160, + 6,65,131,214,9,116,214,39,72,122,148,117,134,60,123,75,215,158,125,170,25,94,187,182,154,102,217,149,121,56,235,224, + 124,14,23,114,184,49,2,173,223,2,51,36,159,33,134,4,244,250,118,92,238,59,61,208,119,134,127,55,177,200,111,188, + 10,1,5,69,21,148,95,133,27,26,158,88,88,186,113,240,216,153,211,245,211,39,223,84,246,75,1,15,63,242,86,22, + 118,47,176,178,186,70,191,215,67,8,65,191,223,163,223,235,97,133,71,169,82,67,73,1,90,83,158,171,48,63,191,192, + 145,35,71,153,158,222,5,194,144,244,59,244,186,93,132,148,152,80,225,171,128,40,12,72,218,93,242,243,215,221,244,11, + 207,108,159,188,117,243,70,93,235,139,14,94,178,240,146,129,107,1,108,38,224,57,88,58,218,106,53,103,190,252,232,91, + 239,60,245,244,108,30,70,126,88,42,17,150,203,104,157,129,49,88,231,112,206,162,180,182,113,158,217,82,146,228,81,187, + 181,86,178,246,162,131,11,182,248,186,146,193,198,94,232,124,5,242,39,249,54,182,27,67,12,49,36,160,239,187,216,121, + 213,7,79,116,183,190,235,15,89,0,82,216,185,3,207,9,152,185,247,185,167,107,237,170,255,192,141,125,135,35,95,120, + 220,115,248,24,39,142,221,75,158,229,104,173,49,185,38,244,3,180,40,82,48,42,81,137,122,181,74,185,84,38,42,197, + 244,147,132,84,247,49,182,56,202,15,189,128,220,106,188,56,198,96,216,57,119,134,125,47,157,110,237,191,181,116,173,154, + 36,207,105,120,206,193,121,3,75,26,54,28,244,207,130,253,47,129,23,32,233,67,163,174,243,211,99,237,198,140,107,23, + 39,229,118,160,130,184,27,6,248,205,217,90,6,50,1,43,6,174,8,184,133,16,59,35,74,245,207,104,109,223,9,156, + 7,110,48,148,81,12,49,36,160,191,80,24,227,136,59,13,150,10,130,121,213,50,202,130,25,131,91,91,240,133,216,104, + 255,109,95,121,204,69,205,238,125,183,79,190,165,98,29,120,198,17,120,1,97,84,122,101,32,209,15,36,206,228,131,19, + 41,73,187,219,161,213,239,224,135,33,42,240,240,157,79,53,174,128,146,100,121,74,239,218,117,70,95,120,186,127,224,252, + 217,165,201,110,247,37,11,79,25,120,38,134,43,171,208,168,64,58,3,238,14,112,109,240,119,37,208,156,135,179,55,225, + 90,9,226,210,64,132,110,41,28,29,131,111,67,36,61,48,9,244,35,33,186,7,14,29,200,211,195,251,221,212,196,8, + 75,95,250,26,246,250,173,225,194,24,98,72,64,127,225,228,99,29,251,234,17,215,30,121,136,23,146,14,82,124,103,133, + 152,39,37,75,221,46,201,115,207,166,191,226,220,149,77,248,211,64,91,115,234,217,231,146,169,102,251,77,23,223,252,224, + 164,155,157,23,65,232,147,27,141,118,14,43,101,17,113,227,10,162,19,18,148,23,225,5,138,32,80,68,113,132,148,18, + 50,141,185,190,68,233,233,39,251,251,47,156,185,189,171,213,56,39,29,207,26,120,110,16,129,188,118,24,250,159,6,142, + 81,72,27,238,18,138,1,38,129,189,144,158,133,116,22,26,255,219,128,120,74,158,98,97,116,140,155,141,6,169,214,175, + 156,254,5,20,121,92,231,129,119,252,200,91,168,253,212,143,99,146,62,38,246,169,47,175,13,9,104,136,33,1,253,101, + 32,183,150,15,28,159,231,161,125,179,69,64,240,171,118,146,4,120,30,239,217,217,225,127,190,114,57,249,187,112,169,15, + 105,136,219,58,116,249,226,234,200,157,219,167,206,47,238,95,216,62,113,50,142,23,22,240,3,133,242,61,60,21,160,42, + 101,132,44,68,167,65,224,19,122,30,158,16,36,157,54,237,75,231,92,240,228,83,189,189,55,174,223,158,236,118,206,75, + 120,206,192,139,249,128,120,22,161,87,3,187,243,77,149,216,119,130,164,104,152,127,124,64,64,191,246,158,119,114,100,113, + 47,255,227,255,249,251,223,242,188,24,248,111,7,63,75,249,62,86,128,233,37,72,5,54,207,135,219,174,33,134,4,244, + 151,5,37,4,89,154,146,234,239,238,92,83,141,34,170,74,241,135,192,12,36,31,129,171,13,104,229,176,58,213,235,222, + 24,63,247,210,253,203,183,150,14,95,157,157,223,149,238,222,29,245,162,72,154,56,22,34,12,113,206,81,169,85,104,182, + 90,168,141,117,29,111,108,234,218,198,122,251,158,181,181,149,145,52,189,12,60,111,224,197,92,138,75,210,186,85,191,176, + 63,181,21,10,85,249,119,83,239,127,59,210,24,13,124,198,148,122,245,215,56,203,43,83,145,67,12,49,36,160,191,92, + 184,239,247,201,119,165,19,64,21,244,255,11,107,143,192,19,10,150,4,188,176,187,213,188,103,161,213,60,144,93,186,48, + 154,64,156,249,126,77,123,94,221,89,43,124,104,187,60,111,199,90,247,98,104,43,88,6,174,89,196,229,28,119,57,129, + 245,178,117,189,17,176,222,224,215,189,158,106,196,216,194,132,108,136,33,134,4,244,195,86,57,1,91,192,117,176,191,14, + 173,231,161,155,192,178,134,211,22,166,34,107,43,1,132,54,77,71,101,154,78,57,80,18,54,44,108,73,72,53,244,50, + 216,150,176,237,227,218,14,250,115,96,253,111,170,78,134,110,130,67,12,9,104,136,87,45,136,238,110,112,170,96,34,104, + 93,131,206,12,220,186,13,106,18,68,25,162,118,209,118,17,9,244,125,72,19,48,62,216,147,160,159,6,171,129,121,94, + 187,196,97,136,33,254,178,33,220,176,180,30,98,136,33,254,19,65,14,47,193,16,67,12,241,159,10,255,31,228,61,54, + 41,71,79,28,213,0,0,0,0,73,69,78,68,174,66,96,130, +}; diff --git a/bsnes/nall/image.hpp b/bsnes/nall/image.hpp index 92870d3f..986aabc3 100755 --- a/bsnes/nall/image.hpp +++ b/bsnes/nall/image.hpp @@ -2,6 +2,7 @@ #define NALL_IMAGE_HPP #include +#include #include #include #include @@ -45,6 +46,8 @@ struct image { inline void allocate(unsigned width, unsigned height); inline void clear(uint64_t color); inline bool load(const string &filename); +//inline bool loadBMP(const uint8_t *data, unsigned size); + inline bool loadPNG(const uint8_t *data, unsigned size); inline void scale(unsigned width, unsigned height, interpolation op); inline void transform(bool endian, unsigned depth, uint64_t alphaMask, uint64_t redMask, uint64_t greenMask, uint64_t blueMask); inline void alphaBlend(uint64_t alphaColor); @@ -392,9 +395,9 @@ bool image::loadBMP(const string &filename) { return true; } -bool image::loadPNG(const string &filename) { +bool image::loadPNG(const uint8_t *pngData, unsigned pngSize) { png source; - if(source.decode(filename) == false) return false; + if(source.decode(pngData, pngSize) == false) return false; allocate(source.info.width, source.info.height); const uint8_t *sp = source.data; @@ -451,6 +454,12 @@ bool image::loadPNG(const string &filename) { return true; } +bool image::loadPNG(const string &filename) { + filemap map; + if(map.open(filename, filemap::mode::read) == false) return false; + return loadPNG(map.data(), map.size()); +} + } #endif diff --git a/bsnes/phoenix/core/core.cpp b/bsnes/phoenix/core/core.cpp index e2ee6e04..8d202602 100755 --- a/bsnes/phoenix/core/core.cpp +++ b/bsnes/phoenix/core/core.cpp @@ -16,6 +16,17 @@ static bool OS_quit = false; Window Window::None; +//Color +//===== + +uint32_t Color::rgb() const { + return (255 << 24) + (red << 16) + (green << 8) + (blue << 0); +} + +uint32_t Color::rgba() const { + return (alpha << 24) + (red << 16) + (green << 8) + (blue << 0); +} + //Geometry //======== diff --git a/bsnes/phoenix/core/core.hpp b/bsnes/phoenix/core/core.hpp index 8fcbf378..9c8d3d22 100755 --- a/bsnes/phoenix/core/core.hpp +++ b/bsnes/phoenix/core/core.hpp @@ -43,6 +43,8 @@ enum : unsigned { struct Color { uint8_t red, green, blue, alpha; + uint32_t rgb() const; + uint32_t rgba() const; inline Color() : red(0), green(0), blue(0), alpha(255) {} inline Color(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha = 255) : red(red), green(green), blue(blue), alpha(alpha) {} }; diff --git a/bsnes/snes/cpu/cpu.hpp b/bsnes/snes/cpu/cpu.hpp index 2ae80ae2..3cd9a8f4 100755 --- a/bsnes/snes/cpu/cpu.hpp +++ b/bsnes/snes/cpu/cpu.hpp @@ -25,7 +25,7 @@ struct CPU : public Processor, public CPUcore, public PPUcounter { CPU(); ~CPU(); -private: +privileged: #include "dma/dma.hpp" #include "memory/memory.hpp" #include "mmio/mmio.hpp" @@ -134,11 +134,10 @@ private: static void Enter(); void op_step(); -public: struct Debugger { - hook op_exec; - hook op_read; - hook op_write; + hook op_exec; + hook op_read; + hook op_write; } debugger; }; diff --git a/bsnes/snes/cpu/mmio/mmio.hpp b/bsnes/snes/cpu/mmio/mmio.hpp index 01cb2d1d..f2cd7712 100755 --- a/bsnes/snes/cpu/mmio/mmio.hpp +++ b/bsnes/snes/cpu/mmio/mmio.hpp @@ -2,7 +2,7 @@ public: uint8 mmio_read(unsigned addr); void mmio_write(unsigned addr, uint8 data); -private: +privileged: void mmio_power(); void mmio_reset(); diff --git a/bsnes/snes/dsp/dsp.hpp b/bsnes/snes/dsp/dsp.hpp index ee0e54f0..a80b38e6 100755 --- a/bsnes/snes/dsp/dsp.hpp +++ b/bsnes/snes/dsp/dsp.hpp @@ -14,7 +14,7 @@ struct DSP : public Processor { DSP(); ~DSP(); -private: +privileged: //global registers enum global_reg_t { r_mvoll = 0x0c, r_mvolr = 0x1c, diff --git a/bsnes/snes/ppu/mmio/mmio.cpp b/bsnes/snes/ppu/mmio/mmio.cpp index 302f74f8..5995c57a 100755 --- a/bsnes/snes/ppu/mmio/mmio.cpp +++ b/bsnes/snes/ppu/mmio/mmio.cpp @@ -31,6 +31,8 @@ uint16 PPU::get_vram_address() { } uint8 PPU::vram_read(unsigned addr) { + debugger.vram_read(addr); + if(regs.display_disable || vcounter() >= (!regs.overscan ? 225 : 240)) { return vram[addr]; } @@ -38,6 +40,8 @@ uint8 PPU::vram_read(unsigned addr) { } void PPU::vram_write(unsigned addr, uint8 data) { + debugger.vram_write(addr, data); + if(regs.display_disable || vcounter() >= (!regs.overscan ? 225 : 240)) { vram[addr] = data; } diff --git a/bsnes/snes/ppu/ppu.hpp b/bsnes/snes/ppu/ppu.hpp index ba50f572..08acf4b0 100755 --- a/bsnes/snes/ppu/ppu.hpp +++ b/bsnes/snes/ppu/ppu.hpp @@ -21,7 +21,7 @@ struct PPU : public Processor, public PPUcounter { PPU(); ~PPU(); -private: +privileged: uint32 *surface; uint32 *output; @@ -58,6 +58,15 @@ private: friend class PPU::Window; friend class PPU::Screen; friend class Video; + + struct Debugger { + hook vram_read; + hook oam_read; + hook cgram_read; + hook vram_write; + hook oam_write; + hook cgram_write; + } debugger; }; extern PPU ppu; diff --git a/bsnes/snes/scheduler/scheduler.cpp b/bsnes/snes/scheduler/scheduler.cpp index e7549501..0576eee5 100755 --- a/bsnes/snes/scheduler/scheduler.cpp +++ b/bsnes/snes/scheduler/scheduler.cpp @@ -13,6 +13,10 @@ void Scheduler::exit(ExitReason reason) { co_switch(host_thread); } +void Scheduler::debug() { + exit(ExitReason::DebuggerEvent); +} + void Scheduler::init() { host_thread = co_active(); thread = cpu.thread; diff --git a/bsnes/snes/scheduler/scheduler.hpp b/bsnes/snes/scheduler/scheduler.hpp index 335d8e9c..764e179a 100755 --- a/bsnes/snes/scheduler/scheduler.hpp +++ b/bsnes/snes/scheduler/scheduler.hpp @@ -8,6 +8,7 @@ struct Scheduler : property { void enter(); void exit(ExitReason); + void debug(); void init(); Scheduler(); diff --git a/bsnes/snes/smp/memory/memory.cpp b/bsnes/snes/smp/memory/memory.cpp index 391324c4..b03f0be8 100755 --- a/bsnes/snes/smp/memory/memory.cpp +++ b/bsnes/snes/smp/memory/memory.cpp @@ -181,6 +181,8 @@ void SMP::op_io() { } uint8 SMP::op_read(uint16 addr) { + debugger.op_read(addr); + add_clocks(12); uint8 r = op_busread(addr); add_clocks(12); @@ -189,6 +191,8 @@ uint8 SMP::op_read(uint16 addr) { } void SMP::op_write(uint16 addr, uint8 data) { + debugger.op_write(addr, data); + add_clocks(24); op_buswrite(addr, data); cycle_edge(); diff --git a/bsnes/snes/smp/smp.cpp b/bsnes/snes/smp/smp.cpp index 84c5e616..90cfb1fb 100755 --- a/bsnes/snes/smp/smp.cpp +++ b/bsnes/snes/smp/smp.cpp @@ -39,6 +39,7 @@ void SMP::enter() { scheduler.exit(Scheduler::ExitReason::SynchronizeEvent); } + debugger.op_exec(regs.pc); op_step(); } } diff --git a/bsnes/snes/smp/smp.hpp b/bsnes/snes/smp/smp.hpp index fe9260b1..6313fb2a 100755 --- a/bsnes/snes/smp/smp.hpp +++ b/bsnes/snes/smp/smp.hpp @@ -18,7 +18,7 @@ struct SMP : public Processor, public SMPcore { SMP(); ~SMP(); -private: +privileged: #include "memory/memory.hpp" #include "timing/timing.hpp" @@ -50,6 +50,12 @@ private: static void Enter(); friend class SMPcore; + + struct Debugger { + hook op_exec; + hook op_read; + hook op_write; + } debugger; }; extern SMP smp; diff --git a/bsnes/ui-debugger/Makefile b/bsnes/ui-debugger/Makefile index 1074e747..4bdd9d61 100755 --- a/bsnes/ui-debugger/Makefile +++ b/bsnes/ui-debugger/Makefile @@ -1,7 +1,10 @@ -include $(snes)/Makefile -name := bsnes-debugger +options += debugger -ui_objects := ui-main ui-interface ui-console ui-video +include $(snes)/Makefile +name := laevateinn + +ui_objects := ui-main ui-interface ui-debugger ui-console +ui_objects += ui-video ui-memory ui-breakpoint ui_objects += phoenix ruby ui_objects += $(if $(call streq,$(platform),win),resource) @@ -28,8 +31,11 @@ objects := $(patsubst %,obj/%.o,$(objects)) obj/ui-main.o: $(ui)/main.cpp $(call rwildcard,$(ui)/) obj/ui-interface.o: $(ui)/interface/interface.cpp $(call rwildcard,$(ui)/*) +obj/ui-debugger.o: $(ui)/debugger/debugger.cpp $(call rwildcard,$(ui)/*) obj/ui-console.o: $(ui)/console/console.cpp $(call rwildcard,$(ui)/*) obj/ui-video.o: $(ui)/video/video.cpp $(call rwildcard,$(ui)/*) +obj/ui-memory.o: $(ui)/memory/memory.cpp $(call rwildcard,$(ui)/*) +obj/ui-breakpoint.o: $(ui)/breakpoint/breakpoint.cpp $(call rwildcard,$(ui)/*) obj/ruby.o: ruby/ruby.cpp $(call rwildcard,ruby/*) $(call compile,$(rubyflags)) @@ -54,8 +60,8 @@ install: ifeq ($(platform),x) install -D -m 755 out/$(name) $(DESTDIR)$(prefix)/bin/$(name) mkdir -p ~/.config/$(name) - install -D -m 644 data/$(name).png $(DESTDIR)$(prefix)/share/pixmaps/$(name).png - install -D -m 644 data/$(name).desktop $(DESTDIR)$(prefix)/share/applications/$(name).desktop +# install -D -m 644 data/$(name).png $(DESTDIR)$(prefix)/share/pixmaps/$(name).png +# install -D -m 644 data/$(name).desktop $(DESTDIR)$(prefix)/share/applications/$(name).desktop cp data/cheats.xml ~/.config/$(name)/cheats.xml chmod 777 ~/.config/$(name) ~/.config/$(name)/cheats.xml endif @@ -63,6 +69,6 @@ endif uninstall: ifeq ($(platform),x) rm $(DESTDIR)$(prefix)/bin/$(name) - rm $(DESTDIR)$(prefix)/share/pixmaps/$(name).png - rm $(DESTDIR)$(prefix)/share/applications/$(name).desktop +# rm $(DESTDIR)$(prefix)/share/pixmaps/$(name).png +# rm $(DESTDIR)$(prefix)/share/applications/$(name).desktop endif diff --git a/bsnes/ui-debugger/base.hpp b/bsnes/ui-debugger/base.hpp index b486e6f1..6bf37354 100755 --- a/bsnes/ui-debugger/base.hpp +++ b/bsnes/ui-debugger/base.hpp @@ -19,8 +19,12 @@ using namespace phoenix; using namespace ruby; #include "interface/interface.hpp" +#include "debugger/debugger.hpp" #include "console/console.hpp" #include "video/video.hpp" +#include "memory/memory.hpp" +#include "breakpoint/breakpoint.hpp" +extern uint8_t laevateinnLogo[121905]; struct Application { bool quit; diff --git a/bsnes/ui-debugger/breakpoint/breakpoint.cpp b/bsnes/ui-debugger/breakpoint/breakpoint.cpp new file mode 100755 index 00000000..33a2dad0 --- /dev/null +++ b/bsnes/ui-debugger/breakpoint/breakpoint.cpp @@ -0,0 +1,26 @@ +#include "../base.hpp" +BreakpointEditor *breakpointEditor = nullptr; + +BreakpointEntry::BreakpointEntry() { + enable.setText("Enable"); + addr.setFont(application->monospaceFont); + data.setFont(application->monospaceFont); + type.append("Read", "Write", "Exec"); + source.append("CPU-Bus", "APU-Bus", "VRAM", "OAM", "CGRAM"); + + append(enable, {0, 0}, 5); + append(addr, {50, 0}, 5); + append(data, {25, 0}, 5); + append(type, {0, 0}, 5); + append(source, {0, 0}); +} + +BreakpointEditor::BreakpointEditor() { + setTitle("Breakpoint Editor"); + + layout.setMargin(5); + for(auto &bp : breakpoint) layout.append(bp, {0, 0}, 5); + append(layout); + + setGeometry({800, 600, layout.minimumGeometry().width, layout.minimumGeometry().height - 5}); +} diff --git a/bsnes/ui-debugger/breakpoint/breakpoint.hpp b/bsnes/ui-debugger/breakpoint/breakpoint.hpp new file mode 100755 index 00000000..b7777eef --- /dev/null +++ b/bsnes/ui-debugger/breakpoint/breakpoint.hpp @@ -0,0 +1,18 @@ +struct BreakpointEntry : HorizontalLayout { + CheckBox enable; + LineEdit addr; + LineEdit data; + ComboBox type; + ComboBox source; + + BreakpointEntry(); +}; + +struct BreakpointEditor : Window { + VerticalLayout layout; + BreakpointEntry breakpoint[5]; + + BreakpointEditor(); +}; + +extern BreakpointEditor *breakpointEditor; diff --git a/bsnes/ui-debugger/console/about.cpp b/bsnes/ui-debugger/console/about.cpp new file mode 100755 index 00000000..58abb79b --- /dev/null +++ b/bsnes/ui-debugger/console/about.cpp @@ -0,0 +1,36 @@ +#include +AboutWindow *aboutWindow = nullptr; + +AboutWindow::AboutWindow() { + setTitle("About Laevateinn"); + setResizable(false); + + layout.setMargin(10); + canvas.setSize({288, 360}); + title.setFont("Sans, 16, Bold"); + title.setText("Laevateinn"); + version.setFont("Sans, 8, Bold"); + version.setText({"bsnes/debugger v", Version}); + + layout.append(canvas, {288, 360}); + layout.append(titleLayout, {~0, 0}); + titleLayout.append(titleL, {~0, 0}); + titleLayout.append(title, {0, 0}); + titleLayout.append(titleR, {~0, 0}); + layout.append(versionLayout, {~0, 0}); + versionLayout.append(versionL, {~0, 0}); + versionLayout.append(version, {0, 0}); + versionLayout.append(versionR, {~0, 0}); + append(layout); +} + +void AboutWindow::show() { + setVisible(); + setGeometry({800, 64, layout.minimumGeometry().width, layout.minimumGeometry().height}); + + image logo(0, 32, 255u << 24, 255u << 16, 255u << 8, 255u << 0); + logo.loadPNG(laevateinnLogo, sizeof laevateinnLogo); + logo.alphaBlend(backgroundColor().rgb()); + canvas.setImage(logo); + canvas.update(); +} diff --git a/bsnes/ui-debugger/console/console.cpp b/bsnes/ui-debugger/console/console.cpp index 6c41f7a9..b31e999d 100755 --- a/bsnes/ui-debugger/console/console.cpp +++ b/bsnes/ui-debugger/console/console.cpp @@ -1,9 +1,11 @@ #include "../base.hpp" ConsoleWindow *consoleWindow = nullptr; +#include "about.cpp" + ConsoleWindow::ConsoleWindow() { - setTitle({"Console - bsnes v", Version}); - setGeometry({64, 650, 800, 400}); + setTitle({"Console - Laevateinn v", Version}); + setGeometry({64, 650, 640, 400}); setMenuVisible(); menuEmulation.setText("&Emulation"); @@ -17,19 +19,47 @@ ConsoleWindow::ConsoleWindow() { menuEmulationSeparator, menuEmulationSynchronizeAudio, menuEmulationMuteAudio); append(menuEmulation); + menuDebug.setText("&Debug"); + menuDebugCPU.setText("CPU"); + menuDebugCPU.setChecked(debugger->flags.debugCPU); + menuDebugSMP.setText("SMP"); + menuDebugSMP.setChecked(debugger->flags.debugSMP); + menuDebugSMP.setEnabled(false); + menuDebug.append(menuDebugCPU, menuDebugSMP); + append(menuDebug); + + menuTracer.setText("&Tracer"); + menuTracerEnable.setText("Enable"); + menuTracerMask.setText("Mask"); + menuTracerMask.setEnabled(false); + menuTracerMaskReset.setText("Reset Mask"); + menuTracerMaskReset.setEnabled(false); + menuTracer.append(menuTracerEnable, menuTracerMask, menuTracerMaskReset); + append(menuTracer); + menuWindows.setText("&Windows"); - menuWindowsVideo.setText("Video"); - menuWindows.append(menuWindowsVideo); + menuWindowsVideoWindow.setText("Video"); + menuWindowsMemoryEditor.setText("Memory Editor"); + menuWindowsBreakpointEditor.setText("Breakpoint Editor"); + menuWindows.append(menuWindowsVideoWindow, menuWindowsMemoryEditor, menuWindowsBreakpointEditor); append(menuWindows); + menuHelp.setText("&Help"); + menuHelpAbout.setText("About ..."); + menuHelp.append(menuHelpAbout); + append(menuHelp); + layout.setMargin(5); runButton.setText("Run"); stepButton.setText("Step"); + clearButton.setText("Clear"); console.setFont(application->monospaceFont); layout.append(commandLayout, {~0, 0}, 5); commandLayout.append(runButton, {80, ~0}, 5); - commandLayout.append(stepButton, {80, ~0}); + commandLayout.append(stepButton, {80, ~0}, 5); + commandLayout.append(spacer, {~0, 0}); + commandLayout.append(clearButton, {80, ~0}); layout.append(console, {~0, ~0}); append(layout); @@ -53,10 +83,42 @@ ConsoleWindow::ConsoleWindow() { audio.set(Audio::Synchronize, menuEmulationSynchronizeAudio.checked()); }; - menuWindowsVideo.onActivate = [&] { + menuDebugCPU.onToggle = [&] { debugger->flags.debugCPU = menuDebugCPU.checked(); }; + menuDebugSMP.onToggle = [&] { debugger->flags.debugSMP = menuDebugSMP.checked(); }; + + menuTracerEnable.onToggle = [&] { debugger->tracerEnable(menuTracerEnable.checked()); }; + + menuWindowsVideoWindow.onActivate = [&] { videoWindow->setVisible(); videoWindow->setFocused(); }; + + menuWindowsMemoryEditor.onActivate = [&] { + memoryEditor->update(); + memoryEditor->setVisible(); + memoryEditor->setFocused(); + }; + + menuWindowsBreakpointEditor.onActivate = [&] { + breakpointEditor->setVisible(); + breakpointEditor->setFocused(); + }; + + menuHelpAbout.onActivate = [&] { aboutWindow->show(); }; + + runButton.onActivate = [&] { + if(debugger->flags.paused == true) debugger->resume(); + else debugger->suspend(); + }; + + stepButton.onActivate = [&] { + debugger->flags.step = true; + debugger->resume(); + }; + + clearButton.onActivate = [&] { + console.setText(""); + }; } void ConsoleWindow::print(const string &text) { diff --git a/bsnes/ui-debugger/console/console.hpp b/bsnes/ui-debugger/console/console.hpp index 4c2f35b5..f36faba0 100755 --- a/bsnes/ui-debugger/console/console.hpp +++ b/bsnes/ui-debugger/console/console.hpp @@ -7,13 +7,29 @@ struct ConsoleWindow : Window { CheckItem menuEmulationSynchronizeAudio; CheckItem menuEmulationMuteAudio; + Menu menuDebug; + CheckItem menuDebugCPU; + CheckItem menuDebugSMP; + + Menu menuTracer; + CheckItem menuTracerEnable; + CheckItem menuTracerMask; + Item menuTracerMaskReset; + Menu menuWindows; - Item menuWindowsVideo; + Item menuWindowsVideoWindow; + Item menuWindowsMemoryEditor; + Item menuWindowsBreakpointEditor; + + Menu menuHelp; + Item menuHelpAbout; VerticalLayout layout; HorizontalLayout commandLayout; Button runButton; Button stepButton; + Widget spacer; + Button clearButton; TextEdit console; void print(const string &text); @@ -21,4 +37,21 @@ struct ConsoleWindow : Window { ConsoleWindow(); }; +struct AboutWindow : Window { + VerticalLayout layout; + Canvas canvas; + HorizontalLayout titleLayout; + Widget titleL; + Label title; + Widget titleR; + HorizontalLayout versionLayout; + Widget versionL; + Label version; + Widget versionR; + + void show(); + AboutWindow(); +}; + extern ConsoleWindow *consoleWindow; +extern AboutWindow *aboutWindow; diff --git a/bsnes/ui-debugger/debugger/debugger.cpp b/bsnes/ui-debugger/debugger/debugger.cpp new file mode 100755 index 00000000..7604156a --- /dev/null +++ b/bsnes/ui-debugger/debugger/debugger.cpp @@ -0,0 +1,61 @@ +#include "../base.hpp" +Debugger *debugger = nullptr; + +#include "hook.cpp" + +void Debugger::run() { + if(flags.paused == true) { + usleep(2000); + return; + } + + if(memoryEditor->autoRefresh.checked()) memoryEditor->update(); + SNES::system.run(); +} + +void Debugger::echo(const string &text) { + consoleWindow->print(text); +} + +void Debugger::resume() { + flags.paused = false; + consoleWindow->runButton.setText("Stop"); + consoleWindow->stepButton.setEnabled(false); +} + +void Debugger::suspend() { + flags.paused = true; + consoleWindow->runButton.setText("Run"); + consoleWindow->stepButton.setEnabled(true); +} + +void Debugger::tracerEnable(bool state) { + if(state == false) { + print("Tracer disabled\n"); + fpTracer.close(); + return; + } + + //try not to overwrite existing traces: scan from 001-999. + //if all files exist, use 000, even if it overwrites another log. + unsigned n = 1; + do { + if(file::exists({ interface->baseName, "-", decimal<3, '0'>(n), ".log" }) == false) break; + } while(++n <= 999); + + string filename = { interface->baseName, "-", decimal<3, '0'>(n), ".log" }; + if(fpTracer.open(filename, file::mode::write) == false) return; + print("Tracing to ", filename, "\n"); +} + +Debugger::Debugger() { + flags.paused = true; + flags.step = false; + + flags.debugCPU = true; + flags.debugSMP = false; + + SNES::cpu.debugger.op_exec = { &Debugger::cpu_op_exec, this }; + SNES::cpu.debugger.op_read = { &Debugger::cpu_op_read, this }; + SNES::cpu.debugger.op_write = { &Debugger::cpu_op_write, this }; +} diff --git a/bsnes/ui-debugger/debugger/debugger.hpp b/bsnes/ui-debugger/debugger/debugger.hpp new file mode 100755 index 00000000..d36a4a47 --- /dev/null +++ b/bsnes/ui-debugger/debugger/debugger.hpp @@ -0,0 +1,31 @@ +struct Debugger { + struct Flags { + bool paused; //do not run emulation when true; set when breakpoint is hit + bool step; //break on the next instruction from any processor + + bool debugCPU; + bool debugSMP; + } flags; + + void run(); + void echo(const string &text); + void resume(); //start running until breakpoint is reached + void suspend(); //stop running as soon as possible + void tracerEnable(bool); + + //S-CPU + void cpu_op_exec(uint24 addr); + void cpu_op_read(uint24 addr); + void cpu_op_write(uint24 addr, uint8 data); + + Debugger(); + + file fpTracer; + + template void print(Args&&... args) { + string text(std::forward(args)...); + echo(text); + } +}; + +extern Debugger *debugger; diff --git a/bsnes/ui-debugger/debugger/hook.cpp b/bsnes/ui-debugger/debugger/hook.cpp new file mode 100755 index 00000000..c4d54459 --- /dev/null +++ b/bsnes/ui-debugger/debugger/hook.cpp @@ -0,0 +1,26 @@ +void Debugger::cpu_op_exec(uint24 addr) { + if(flags.debugCPU == false) return; + + char text[512]; + if(fpTracer.open() || flags.step) { + SNES::cpu.disassemble_opcode(text, addr); + } + + if(fpTracer.open()) { + fpTracer.print(text, "\n"); + } + + if(flags.step) { + flags.step = false; + print(text, "\n"); + suspend(); + consoleWindow->stepButton.setFocused(); + SNES::scheduler.debug(); + } +} + +void Debugger::cpu_op_read(uint24 addr) { +} + +void Debugger::cpu_op_write(uint24 addr, uint8 data) { +} diff --git a/bsnes/ui-debugger/interface/interface.cpp b/bsnes/ui-debugger/interface/interface.cpp index a4c81daa..d0ad830f 100755 --- a/bsnes/ui-debugger/interface/interface.cpp +++ b/bsnes/ui-debugger/interface/interface.cpp @@ -9,7 +9,7 @@ bool Interface::loadCartridge(const string &filename) { if(SNES::cartridge.loaded()) { saveMemory(); SNES::cartridge.unload(); - consoleWindow->print("Cartridge unloaded\n"); + debugger->print("Cartridge unloaded\n"); } fileName = filename; @@ -26,8 +26,9 @@ bool Interface::loadCartridge(const string &filename) { delete[] data; videoWindow->setTitle(notdir(baseName)); SNES::video.generate(SNES::Video::Format::RGB24); - consoleWindow->print({"Loaded ", fileName, "\n", markup, "\n"}); + debugger->print("Loaded ", fileName, "\n"); loadMemory(); + debugger->print(markup, "\n"); return true; } @@ -38,7 +39,7 @@ void Interface::loadMemory() { uint8_t *data; unsigned size; if(file::read(filename, data, size)) { - consoleWindow->print({"Loaded ", filename, "\n"}); + debugger->print("Loaded ", filename, "\n"); memcpy(memory.data, data, min(memory.size, size)); delete[] data; } @@ -50,7 +51,7 @@ void Interface::saveMemory() { if(memory.size == 0) continue; string filename = { baseName, memory.id }; if(file::write(filename, memory.data, memory.size)) { - consoleWindow->print({"Saved ", filename, "\n"}); + debugger->print("Saved ", filename, "\n"); } } } @@ -58,6 +59,7 @@ void Interface::saveMemory() { //hires is always true for accuracy core //overscan is ignored for the debugger port void Interface::videoRefresh(const uint32_t *data, bool hires, bool interlace, bool overscan) { + data += 8 * 1024; //skip NTSC overscan compensation uint32_t *output = videoWindow->canvas.data(); if(interlace == false) { @@ -98,12 +100,12 @@ int16_t Interface::inputPoll(bool port, SNES::Input::Device device, unsigned ind case SNES::Input::JoypadID::Down: return keyboardState[(unsigned)phoenix::Keyboard::Scancode::Down]; case SNES::Input::JoypadID::Left: return keyboardState[(unsigned)phoenix::Keyboard::Scancode::Left]; case SNES::Input::JoypadID::Right: return keyboardState[(unsigned)phoenix::Keyboard::Scancode::Right]; - case SNES::Input::JoypadID::B: return keyboardState[(unsigned)phoenix::Keyboard::Scancode::B]; - case SNES::Input::JoypadID::A: return keyboardState[(unsigned)phoenix::Keyboard::Scancode::A]; - case SNES::Input::JoypadID::Y: return keyboardState[(unsigned)phoenix::Keyboard::Scancode::Y]; - case SNES::Input::JoypadID::X: return keyboardState[(unsigned)phoenix::Keyboard::Scancode::X]; - case SNES::Input::JoypadID::L: return keyboardState[(unsigned)phoenix::Keyboard::Scancode::L]; - case SNES::Input::JoypadID::R: return keyboardState[(unsigned)phoenix::Keyboard::Scancode::R]; + case SNES::Input::JoypadID::B: return keyboardState[(unsigned)phoenix::Keyboard::Scancode::Z]; + case SNES::Input::JoypadID::A: return keyboardState[(unsigned)phoenix::Keyboard::Scancode::X]; + case SNES::Input::JoypadID::Y: return keyboardState[(unsigned)phoenix::Keyboard::Scancode::A]; + case SNES::Input::JoypadID::X: return keyboardState[(unsigned)phoenix::Keyboard::Scancode::S]; + case SNES::Input::JoypadID::L: return keyboardState[(unsigned)phoenix::Keyboard::Scancode::D]; + case SNES::Input::JoypadID::R: return keyboardState[(unsigned)phoenix::Keyboard::Scancode::C]; case SNES::Input::JoypadID::Select: return keyboardState[(unsigned)phoenix::Keyboard::Scancode::Apostrophe]; case SNES::Input::JoypadID::Start: return keyboardState[(unsigned)phoenix::Keyboard::Scancode::Return]; } @@ -118,7 +120,7 @@ string Interface::path(SNES::Cartridge::Slot slot, const string &hint) { } void Interface::message(const string &text) { - consoleWindow->print({text, "\n"}); + debugger->print(text, "\n"); } Interface::Interface() { diff --git a/bsnes/ui-debugger/main.cpp b/bsnes/ui-debugger/main.cpp index 0283f26f..55dff78e 100755 --- a/bsnes/ui-debugger/main.cpp +++ b/bsnes/ui-debugger/main.cpp @@ -32,13 +32,17 @@ Application::Application(int argc, char **argv) { string filename; if(argc >= 2) filename = argv[1]; - if(!file::exists(filename)) filename = "/media/sdb1/root/cartridges/SNES - Archived/zelda_us.sfc"; + if(!file::exists(filename)) filename = "/media/sdb1/root/cartridges/Laevateinn/The Legend of Zelda - A Link to the Past (US).sfc"; if(!file::exists(filename)) filename = DialogWindow::fileOpen(Window::None, "", "SNES images (*.sfc)"); if(!file::exists(filename)) return; interface = new Interface; + debugger = new Debugger; consoleWindow = new ConsoleWindow; + aboutWindow = new AboutWindow; videoWindow = new VideoWindow; + memoryEditor = new MemoryEditor; + breakpointEditor = new BreakpointEditor; videoWindow->setVisible(); consoleWindow->setVisible(); @@ -54,15 +58,19 @@ Application::Application(int argc, char **argv) { while(quit == false) { OS::processEvents(); - SNES::system.run(); + debugger->run(); } interface->saveMemory(); } Application::~Application() { + delete breakpointEditor; + delete memoryEditor; delete videoWindow; + delete aboutWindow; delete consoleWindow; + delete debugger; delete interface; } diff --git a/bsnes/ui-debugger/memory/memory.cpp b/bsnes/ui-debugger/memory/memory.cpp new file mode 100755 index 00000000..b94ab083 --- /dev/null +++ b/bsnes/ui-debugger/memory/memory.cpp @@ -0,0 +1,74 @@ +#include "../base.hpp" +MemoryEditor *memoryEditor = nullptr; + +MemoryEditor::MemoryEditor() { + setTitle("Memory Editor"); + setGeometry({640, 64, 485, 255}); + + gotoLabel.setText("Goto:"); + gotoAddress.setFont(application->monospaceFont); + source.append("CPU-Bus", "APU-Bus", "VRAM", "OAM", "CGRAM"); + autoRefresh.setText("Auto"); + updateButton.setText("Update"); + editor.setFont(application->monospaceFont); + editor.setColumns(16); + editor.setRows(16); + + layout.setMargin(5); + layout.append(controlLayout, {~0, 0}, 5); + controlLayout.append(gotoLabel, {0, 0}, 5); + controlLayout.append(gotoAddress, {100, 0}, 5); + controlLayout.append(source, {0, 0}, 5); + controlLayout.append(spacer, {~0, 0}); + controlLayout.append(autoRefresh, {0, 0}, 5); + controlLayout.append(updateButton, {80, 0}); + layout.append(editor, {~0, ~0}); + append(layout); + + gotoAddress.onChange = gotoAddress.onActivate = [&] { + editor.setOffset(hex(gotoAddress.text())); + editor.update(); + }; + + updateButton.onActivate = { &MemoryEditor::update, this }; + + source.onChange = { &MemoryEditor::selectSource, this }; + editor.onRead = { &MemoryEditor::read, this }; + editor.onWrite = { &MemoryEditor::write, this }; + + selectSource(); +} + +uint8_t MemoryEditor::read(unsigned addr) { + if(SNES::cartridge.loaded() == false) return 0x00; + if(source.selection() == 0) { + return SNES::bus.read(addr & 0xffffff); + } + return 0x00; +} + +void MemoryEditor::write(unsigned addr, uint8_t data) { + if(SNES::cartridge.loaded() == false) return; + if(source.selection() == 0) { + SNES::cartridge.rom.write_protect(false); + SNES::bus.write(addr & 0xffffff, data); + SNES::cartridge.rom.write_protect(true); + return; + } +} + +void MemoryEditor::selectSource() { + editor.setOffset(0); + switch(source.selection()) { + case 0: editor.setLength(16 * 1024 * 1024); break; + case 1: editor.setLength(64 * 1024); break; + case 2: editor.setLength(64 * 1024); break; + case 3: editor.setLength(544); break; + case 4: editor.setLength(512); break; + } + update(); +} + +void MemoryEditor::update() { + editor.update(); +} diff --git a/bsnes/ui-debugger/memory/memory.hpp b/bsnes/ui-debugger/memory/memory.hpp new file mode 100755 index 00000000..3725f82f --- /dev/null +++ b/bsnes/ui-debugger/memory/memory.hpp @@ -0,0 +1,19 @@ +struct MemoryEditor : Window { + VerticalLayout layout; + HorizontalLayout controlLayout; + Label gotoLabel; + LineEdit gotoAddress; + ComboBox source; + Widget spacer; + CheckBox autoRefresh; + Button updateButton; + HexEdit editor; + + uint8_t read(unsigned addr); + void write(unsigned addr, uint8_t data); + void selectSource(); + void update(); + MemoryEditor(); +}; + +extern MemoryEditor *memoryEditor; diff --git a/bsnes/ui-debugger/video/video.cpp b/bsnes/ui-debugger/video/video.cpp index 625c26bb..447c6e20 100755 --- a/bsnes/ui-debugger/video/video.cpp +++ b/bsnes/ui-debugger/video/video.cpp @@ -12,6 +12,21 @@ VideoWindow::VideoWindow() { layout.append(canvas, {~0, ~0}); append(layout); + image logo(0, 32, 255u << 24, 255u << 16, 255u << 8, 255u << 0); + logo.loadPNG(laevateinnLogo, sizeof laevateinnLogo); + logo.alphaBlend(0x000000); + + unsigned cx = (512 - logo.width) / 2, cy = (480 - logo.height) / 2; + for(unsigned y = 0; y < logo.height; y++) { + uint32_t *dp = canvas.data() + (y + cy) * 512 + cx; + const uint32_t *sp = (const uint32_t*)logo.data + y * logo.width; + for(unsigned x = 0; x < logo.width; x++) { + *dp++ = *sp++; + } + } + + canvas.update(); + canvas.onMouseLeave = [&] { setStatusText(""); };