From fb62e68a33004b275a904c8ce1f7db736235086c Mon Sep 17 00:00:00 2001 From: Dianne Hackborn <> Date: Tue, 24 Mar 2009 18:36:53 -0700 Subject: Automated import from //branches/donutburger/...@140818,140818 --- NOTICE | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 NOTICE diff --git a/NOTICE b/NOTICE new file mode 100644 index 0000000..1f00f30 --- /dev/null +++ b/NOTICE @@ -0,0 +1,14 @@ +Copyright (c) 2004-2006 Sonic Network Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + -- cgit v1.2.3 From dd6a86e856c5c595e1704e0411bd1ac07e9b1dc0 Mon Sep 17 00:00:00 2001 From: Jean-Michel Trivi <> Date: Tue, 24 Mar 2009 18:46:05 -0700 Subject: Automated import from //branches/donutburger/...@140867,140867 --- arm-wt-22k/lib_src/jet.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/arm-wt-22k/lib_src/jet.c b/arm-wt-22k/lib_src/jet.c index ed7d465..cc180af 100644 --- a/arm-wt-22k/lib_src/jet.c +++ b/arm-wt-22k/lib_src/jet.c @@ -26,11 +26,10 @@ *---------------------------------------------------------------------------- */ -//FIXME: remove debug flag for release -#define LOG_NDEBUG 0 +//#define LOG_NDEBUG 0 #define LOG_TAG "JET_C" -#define DEBUG_JET +//#define DEBUG_JET #include "eas_data.h" #include "eas_smf.h" @@ -38,7 +37,6 @@ #include "eas_host.h" #include "eas_report.h" -#include /* default configuration */ static const S_JET_CONFIG jetDefaultConfig = -- cgit v1.2.3 From 50c44e336c3eb69e148ea6e77c94f85e13cb5d81 Mon Sep 17 00:00:00 2001 From: Jean-Michel Trivi <> Date: Tue, 24 Mar 2009 19:04:18 -0700 Subject: Automated import from //branches/donutburger/...@140964,140964 --- arm-wt-22k/lib_src/wt_22khz.c | 26132 ++++++++++++++++++++++------------------ 1 file changed, 14720 insertions(+), 11412 deletions(-) diff --git a/arm-wt-22k/lib_src/wt_22khz.c b/arm-wt-22k/lib_src/wt_22khz.c index 9a06051..0593dca 100644 --- a/arm-wt-22k/lib_src/wt_22khz.c +++ b/arm-wt-22k/lib_src/wt_22khz.c @@ -1,12 +1,12 @@ -/*---------------------------------------------------------------------------- - * - * Filename: C:\Sonic\Trunk\EASLib\WTLibrary\wt_22khz.c - * Source: C:\Sonic\Trunk\Wavetables\agere_wt_rev6.dls - * CmdLine: -w C:\Sonic\Trunk\EASLib\WTLibrary\wt_22khz.c -l C:\Sonic\Trunk\EASLib\WTLibrary\wt_22khz.log -d 0 -c C:\Sonic\Trunk\Wavetables\agere_wt_rev6.dls -w -l -d -c C:\Sonic\Trunk\Wavetables\agere_wt_rev6.dls - * Purpose: Wavetable sound libary - * - * Copyright (c) 2006 Sonic Network Inc. - +/*---------------------------------------------------------------------------- + * + * Filename: wt_200k_G.c + * Source: wt_200k_G.dls + * CmdLine: -w wt_200k_G.c -l wt_200k_G.log -ce -cf wt_200k_G.dls -w -l -ce -cf wt_200k_G.dls + * Purpose: Wavetable sound libary + * + * Copyright (c) 2009 Sonic Network Inc. + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -18,11406 +18,14714 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - *---------------------------------------------------------------------------- - * Revision Control: - * $Revision: 311 $ - * $Date: 2006-09-13 15:37:50 -0700 (Wed, 13 Sep 2006) $ - *---------------------------------------------------------------------------- -*/ - -#include "eas_sndlib.h" - -/*---------------------------------------------------------------------------- - * Articulations - *---------------------------------------------------------------------------- -*/ -const S_ARTICULATION eas_articulations[] = -{ - { /* articulation 0 */ - { 32767, 30725, 0, 30725 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 1 */ - { 32767, 26863, 0, 26863 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 2 */ - { 32767, 30484, 0, 30668 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 3 */ - { 32767, 26439, 0, 26439 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 4 */ - { 32767, 0, 32767, 32715 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 5 */ - { 32767, 21333, 0, 21333 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 6 */ - { 32767, 31882, 0, 31938 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 7 */ - { 32767, 32663, 32767, 32663 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 8 */ - { 32767, 0, 32767, 0 }, - { 32767, 1902, 0, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 9 */ - { 32767, 32349, 0, 32349 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 10 */ - { 32767, 0, 32767, 17213 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, -1 - }, - { /* articulation 11 */ - { 32767, 32072, 0, 32072 }, - { 32767, 761, 0, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, -56 - }, - { /* articulation 12 */ - { 32767, 23749, 0, 23749 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 56 - }, - { /* articulation 13 */ - { 32767, 32010, 0, 32010 }, - { 32767, 761, 0, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, -31 - }, - { /* articulation 14 */ - { 9511, 21333, 0, 21333 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 56 - }, - { /* articulation 15 */ - { 32767, 31844, 0, 31844 }, - { 32767, 761, 0, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, -6 - }, - { /* articulation 16 */ - { 32767, 32123, 0, 32194 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 56 - }, - { /* articulation 17 */ - { 32767, 31730, 0, 31730 }, - { 32767, 761, 0, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 6 - }, - { /* articulation 18 */ - { 32767, 31391, 0, 31391 }, - { 32767, 951, 0, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 31 - }, - { /* articulation 19 */ - { 32767, 31964, 0, 31964 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 25 - }, - { /* articulation 20 */ - { 32767, 31056, 0, 31056 }, - { 32767, 951, 0, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 63 - }, - { /* articulation 21 */ - { 32767, 32289, 0, 32271 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, -37 - }, - { /* articulation 22 */ - { 19021, 31882, 0, 31911 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, -37 - }, - { /* articulation 23 */ - { 32767, 31988, 0, 32032 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, -37 - }, - { /* articulation 24 */ - { 32767, 0, 32767, 32663 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 12 - }, - { /* articulation 25 */ - { 32767, 31352, 0, 31352 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, -25 - }, - { /* articulation 26 */ - { 32767, 0, 32767, 32663 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 25 - }, - { /* articulation 27 */ - { 32767, 31817, 0, 31781 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, -25 - }, - { /* articulation 28 */ - { 32767, 30725, 0, 30725 }, - { 32767, 95, 0, 0 }, - 0, 0, 951, 240, 0, 0, 0, 0, -56 - }, - { /* articulation 29 */ - { 32767, 32230, 0, 32218 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, -37 - }, - { /* articulation 30 */ - { 32767, 26439, 0, 26439 }, - { 32767, 3804, 0, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 50 - }, - { /* articulation 31 */ - { 32767, 23749, 0, 23749 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, -50 - }, - { /* articulation 32 */ - { 32767, 29434, 0, 29434 }, - { 32767, 3804, 0, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, -50 - }, - { /* articulation 33 */ - { 32767, 30240, 0, 30234 }, - { 32767, 3804, 0, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, -44 - }, - { /* articulation 34 */ - { 32767, 32558, 0, 32558 }, - { 32767, 254, 0, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 25 - }, - { /* articulation 35 */ - { 32767, 0, 32767, 32663 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, -63 - }, - { /* articulation 36 */ - { 3804, 23749, 0, 23749 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, -63 - }, - { /* articulation 37 */ - { 32767, 23749, 0, 23749 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, -59 - }, - { /* articulation 38 */ - { 32767, 30725, 0, 30725 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 50 - }, - { /* articulation 39 */ - { 32767, 28809, 0, 28809 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 44 - }, - { /* articulation 40 */ - { 1902, 30725, 0, 30725 }, - { 32767, 380, 0, 0 }, - 0, 0, 951, -100, 0, 0, 0, 0, 44 - }, - { /* articulation 41 */ - { 32767, 9042, 0, 9042 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 25 - }, - { /* articulation 42 */ - { 32767, 29889, 0, 29889 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 63 - }, - { /* articulation 43 */ - { 32767, 30240, 0, 30234 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 63 - }, - { /* articulation 44 */ - { 19021, 19970, 0, 19970 }, - { 951, 32767, 32767, 0 }, - 0, 0, 951, 100, 0, 0, 0, 0, -25 - }, - { /* articulation 45 */ - { 3804, 17213, 0, 17213 }, - { 951, 32767, 32767, 0 }, - 0, 0, 951, 500, 0, 0, 0, 0, -25 - }, - { /* articulation 46 */ - { 32767, 17213, 0, 17213 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, -56 - }, - { /* articulation 47 */ - { 32767, 30725, 0, 30725 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, -56 - }, - { /* articulation 48 */ - { 32767, 0, 32767, 0 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 49 */ - { 32767, 31180, 0, 31180 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 50 */ - { 19021, 31964, 0, 32071 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 51 */ - { 32767, 29669, 0, 29669 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 52 */ - { 32767, 31742, 0, 31352 }, - { 32767, 294, 0, 0 }, - 0, 0, 951, 0, 10000, 7121, 0, 0, 0 - }, - { /* articulation 53 */ - { 32767, 32558, 0, 26439 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 54 */ - { 32767, 32349, 0, 26439 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 55 */ - { 32767, 32072, 0, 32072 }, - { 32767, 95, 0, 0 }, - 0, 34, 989, 0, 2400, 9521, 0, 0, 0 - }, - { /* articulation 56 */ - { 32767, 30234, 0, 30234 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 11738, 0, 16, 0 - }, - { /* articulation 57 */ - { 32767, 32349, 0, 30073 }, - { 32767, 634, 0, 0 }, - 0, 34, 951, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 58 */ - { 32767, 31730, 0, 31476 }, - { 32767, 634, 0, 0 }, - 0, 34, 951, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 59 */ - { 32767, 32418, 0, 25329 }, - { 32767, 95, 0, 0 }, - 0, 34, 989, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 60 */ - { 32767, 32052, 0, 31964 }, - { 32767, 634, 0, 0 }, - 0, 34, 951, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 61 */ - { 32767, 31938, 0, 31938 }, - { 32767, 634, 0, 0 }, - 0, 34, 951, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 62 */ - { 9511, 32663, 18820, 23749 }, - { 1902, 57, 13107, 0 }, - 0, 0, 989, 0, 6000, 5535, 0, 4, 0 - }, - { /* articulation 63 */ - { 32767, 31754, 0, 31730 }, - { 32767, 1902, 0, 0 }, - 0, 52, 989, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 64 */ - { 127, 32686, 3811, 32349 }, - { 95, 38, 32767, 0 }, - 0, 0, 989, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 65 */ - { 4755, 32663, 3566, 28809 }, - { 3804, 32767, 32767, 0 }, - 0, 0, 989, 100, 0, 11919, 0, 0, 0 - }, - { /* articulation 66 */ - { 32767, 31935, 0, 31935 }, - { 32767, 335, 0, 0 }, - 0, 17, 989, 0, 7000, 9023, 0, 0, 0 - }, - { /* articulation 67 */ - { 32767, 31391, 0, 31391 }, - { 32767, 335, 0, 0 }, - 0, 2, 951, 0, 7000, 9023, 0, 0, 0 - }, - { /* articulation 68 */ - { 32767, 32628, 6208, 31935 }, - { 380, 95, 0, 0 }, - 0, 0, 989, 0, 3840, 8302, 0, 8, 0 - }, - { /* articulation 69 */ - { 32767, 32072, 0, 32171 }, - { 32767, 380, 0, 0 }, - 0, 0, 989, 0, 5000, 8321, 0, 0, 0 - }, - { /* articulation 70 */ - { 32767, 31935, 0, 31935 }, - { 32767, 380, 0, 0 }, - 0, 0, 951, 0, 5000, 7934, 0, 0, 0 - }, - { /* articulation 71 */ - { 32767, 32117, 0, 30685 }, - { 32767, 63, 0, 0 }, - 0, 17, 989, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 72 */ - { 32767, 32245, 0, 23749 }, - { 32767, 1902, 0, 0 }, - 0, 172, 989, 0, 1000, 11107, 0, 0, 0 - }, - { /* articulation 73 */ - { 32767, 32663, 6208, 31935 }, - { 95, 95, 0, 0 }, - 0, 34, 1622, 0, 3560, 8834, 1, 8, 0 - }, - { /* articulation 74 */ - { 32767, 32362, 0, 26439 }, - { 32767, 190, 0, 0 }, - 0, 17, 989, 0, 6000, 9907, 0, 0, 0 - }, - { /* articulation 75 */ - { 32767, 32245, 0, 23749 }, - { 32767, 63, 0, 0 }, - 0, 17, 989, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 76 */ - { 32767, 31730, 18820, 9042 }, - { 32767, 32767, 32767, 0 }, - 0, 17, 989, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 77 */ - { 32767, 32715, 128, 32168 }, - { 32767, 127, 0, 0 }, - 0, 0, 989, 0, 0, 11920, 0, 8, 0 - }, - { /* articulation 78 */ - { 32767, 32072, 0, 32072 }, - { 32767, 67, 0, 0 }, - 3, 0, 572, 0, 5000, 5535, 0, 0, 0 - }, - { /* articulation 79 */ - { 3804, 32663, 18820, 23749 }, - { 32767, 2024, 0, 0 }, - 10, 34, 1008, -30, 0, 0, 0, 0, 0 - }, - { /* articulation 80 */ - { 19021, 32663, 18820, 23749 }, - { 761, 95, 0, 0 }, - 0, 34, 989, 0, 4473, 7131, 0, 8, 0 - }, - { /* articulation 81 */ - { 1902, 32628, 6208, 32171 }, - { 634, 38, 16384, 0 }, - 0, 0, 989, 0, 2987, 7877, 0, 12, 0 - }, - { /* articulation 82 */ - { 32767, 32593, 0, 31935 }, - { 32767, 95, 0, 0 }, - 0, 0, 1162, 0, 4053, 7930, 2, 12, 0 - }, - { /* articulation 83 */ - { 380, 32684, 6208, 31935 }, - { 32767, 112, 0, 0 }, - 0, 0, 989, 0, 0, 8887, 0, 0, 0 - }, - { /* articulation 84 */ - { 19021, 32663, 18820, 23749 }, - { 1268, 95, 0, 0 }, - 0, 34, 989, 0, 5113, 7981, 0, 4, 0 - }, - { /* articulation 85 */ - { 1902, 32663, 6208, 30725 }, - { 1902, 127, 0, 0 }, - 0, 34, 989, 0, 3500, 7877, 0, 5, 0 - }, - { /* articulation 86 */ - { 1902, 32663, 6208, 30725 }, - { 1268, 95, 0, 0 }, - 0, 34, 951, 0, 4773, 8355, 0, 5, 0 - }, - { /* articulation 87 */ - { 476, 32663, 10809, 31935 }, - { 32767, 32767, 32767, 0 }, - 0, 34, 989, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 88 */ - { 3804, 32663, 18820, 30234 }, - { 32767, 32767, 32767, 0 }, - 0, 34, 989, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 89 */ - { 7608, 32663, 18820, 17213 }, - { 2536, 261, 0, 0 }, - 0, 34, 989, 0, 1200, 11690, 0, 4, 0 - }, - { /* articulation 90 */ - { 32767, 32468, 15076, 30234 }, - { 32767, 32767, 32767, 0 }, - 0, 36, 2183, 0, 0, 11919, 1, 0, 0 - }, - { /* articulation 91 */ - { 32767, 0, 32767, 32663 }, - { 380, 32767, 32767, 0 }, - 0, 0, 989, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 92 */ - { 32767, 31391, 0, 31391 }, - { 32767, 634, 0, 0 }, - 0, 0, 989, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 93 */ - { 32767, 0, 32767, 31742 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 989, 0, -2375, 11920, 0, 0, 0 - }, - { /* articulation 94 */ - { 3804, 0, 32767, 31730 }, - { 1902, 127, 0, 0 }, - 0, 0, 989, 0, 1200, 9121, 0, 8, 0 - }, - { /* articulation 95 */ - { 32767, 32663, 15076, 30725 }, - { 1902, 634, 0, 0 }, - 0, 0, 989, 0, 4133, 10925, 0, 0, 0 - }, - { /* articulation 96 */ - { 32767, 32558, 128, 30725 }, - { 32767, 634, 0, 0 }, - 0, 34, 989, 0, 6000, 8321, 0, 0, 0 - }, - { /* articulation 97 */ - { 3804, 0, 32767, 30725 }, - { 32767, 32767, 32767, 0 }, - 0, 34, 989, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 98 */ - { 32767, 32558, 0, 23749 }, - { 1268, 190, 13107, 0 }, - 0, 34, 989, 0, 3200, 8321, 0, 0, 0 - }, - { /* articulation 99 */ - { 32767, 0, 32767, 0 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 989, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 100 */ - { 32767, 32072, 0, 23749 }, - { 32767, 1087, 0, 0 }, - 0, 34, 989, 0, 8187, 5535, 0, 5, 0 - }, - { /* articulation 101 */ - { 32767, 32558, 0, 29434 }, - { 32767, 190, 7667, 0 }, - 5, 0, 989, 0, 6053, 5535, 0, 5, 0 - }, - { /* articulation 102 */ - { 32767, 32663, 18820, 23749 }, - { 1902, 95, 0, 0 }, - 0, 0, 989, 0, 2700, 9852, 0, 0, 0 - }, - { /* articulation 103 */ - { 32767, 32663, 18820, 23749 }, - { 32767, 1268, 0, 0 }, - 0, 52, 951, 0, 2500, 10490, 1, 8, 0 - }, - { /* articulation 104 */ - { 32767, 32663, 23493, 23749 }, - { 32767, 380, 0, 0 }, - 0, 34, 988, 0, 4000, 10223, 1, 4, 0 - }, - { /* articulation 105 */ - { 32767, 32663, 18820, 23749 }, - { 32767, 126, 7667, 0 }, - 0, 0, 989, 0, 1813, 9154, 0, 0, 0 - }, - { /* articulation 106 */ - { 32767, 31730, 0, 31730 }, - { 32767, 380, 0, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 107 */ - { 32767, 31180, 0, 30484 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 11690, 0, 0, 0 - }, - { /* articulation 108 */ - { 32767, 30725, 0, 30725 }, - { 32767, 380, 0, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 109 */ - { 32767, 32349, 18820, 27897 }, - { 32767, 95, 0, 0 }, - 12, 34, 951, 0, 3000, 10223, 0, 0, 0 - }, - { /* articulation 110 */ - { 32767, 32349, 18820, 27897 }, - { 32767, 63, 0, 0 }, - 12, 34, 951, 0, 1900, 10031, 0, 0, 0 - }, - { /* articulation 111 */ - { 32767, 32663, 18820, 26439 }, - { 32767, 63, 0, 0 }, - 12, 34, 988, 0, 1000, 11107, 0, 0, 0 - }, - { /* articulation 112 */ - { 32767, 32663, 18820, 26439 }, - { 32767, 63, 0, 0 }, - 12, 34, 988, 0, 2000, 11107, 0, 0, 0 - }, - { /* articulation 113 */ - { 32767, 32505, 0, 26439 }, - { 32767, 190, 0, 0 }, - 0, 17, 989, 0, 4000, 8321, 0, 0, 0 - }, - { /* articulation 114 */ - { 32767, 31832, 19893, 9042 }, - { 32767, 476, 0, 0 }, - 0, 34, 1452, 0, 0, 11919, 0, 0, 0 - }, - { /* articulation 115 */ - { 19021, 32072, 23493, 9042 }, - { 32767, 32767, 32767, 0 }, - 0, 34, 1355, 0, 0, 11877, 1, 0, 0 - }, - { /* articulation 116 */ - { 32767, 32468, 0, 23749 }, - { 32767, 190, 0, 0 }, - 0, 34, 989, 0, 3500, 9023, 0, 0, 0 - }, - { /* articulation 117 */ - { 32767, 17213, 23493, 0 }, - { 32767, 32767, 32767, 0 }, - 0, 17, 1521, 0, 0, 10925, 1, 0, 0 - }, - { /* articulation 118 */ - { 32767, 32505, 0, 26439 }, - { 32767, 190, 0, 0 }, - 0, 52, 989, 0, 3200, 8721, 0, 4, 0 - }, - { /* articulation 119 */ - { 3804, 32663, 18820, 23749 }, - { 32767, 32767, 32767, 0 }, - 0, 34, 989, 0, 0, 0, 1, 0, 0 - }, - { /* articulation 120 */ - { 9511, 32663, 18820, 25329 }, - { 32767, 32767, 32767, 0 }, - 0, 34, 989, 0, 0, 11877, 0, 8, 0 - }, - { /* articulation 121 */ - { 32767, 32663, 18820, 23749 }, - { 32767, 32, 0, 0 }, - 0, 17, 989, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 122 */ - { 32767, 32558, 0, 23749 }, - { 32767, 380, 0, 0 }, - 0, 34, 989, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 123 */ - { 32767, 32663, 18820, 23749 }, - { 32767, 24, 0, 0 }, - 0, 17, 989, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 124 */ - { 32767, 30725, 0, 30725 }, - { 32767, 761, 0, 0 }, - 0, 0, 989, 0, 3000, 10223, 0, 8, 0 - }, - { /* articulation 125 */ - { 127, 0, 32767, 32349 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 1522, 0, 0, 11423, 4, 0, 0 - }, - { /* articulation 126 */ - { 951, 32422, 0, 32387 }, - { 32767, 19, 0, 0 }, - 0, 0, 989, 0, 0, 11423, 0, 0, 0 - }, - { /* articulation 127 */ - { 391, 0, 0, 31180 }, - { 190, 32767, 32767, 0 }, - 0, 0, 989, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 128 */ - { 32767, 30725, 0, 30725 }, - { 32767, 761, 0, 0 }, - 0, 0, 989, 1200, 0, 0, 0, 0, 0 - }, - { /* articulation 129 */ - { 32767, 31730, 0, 31935 }, - { 32767, 380, 0, 0 }, - 0, 0, 989, 50, 0, 0, 0, 0, 0 - }, - { /* articulation 130 */ - { 32767, 32072, 0, 32072 }, - { 32767, 19021, 0, 0 }, - 0, 0, 989, 0, 4700, 7769, 0, 0, 0 - }, - { /* articulation 131 */ - { 32767, 30073, 0, 30073 }, - { 32767, 32767, 0, 0 }, - 0, 0, 989, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 132 */ - { 32767, 32558, 32767, 32558 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 951, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 133 */ - { 32767, 32663, 18820, 17213 }, - { 32767, 190, 0, 0 }, - 10, 34, 951, 0, 2000, 10696, 0, 0, 0 - }, - { /* articulation 134 */ - { 32767, 32663, 10809, 17213 }, - { 32767, 190, 0, 0 }, - 12, 34, 982, 0, 0, 10910, 0, 0, 0 - }, - { /* articulation 135 */ - { 32767, 32663, 18820, 17213 }, - { 32767, 190, 0, 0 }, - 10, 34, 951, 0, 1200, 10218, 0, 0, 0 - }, - { /* articulation 136 */ - { 32767, 32663, 18820, 17213 }, - { 32767, 190, 0, 0 }, - 10, 34, 951, 0, 1100, 9525, 0, 0, 0 - }, - { /* articulation 137 */ - { 19021, 32558, 18820, 23749 }, - { 32767, 19, 0, 0 }, - 10, 34, 988, 0, 2000, 10962, 0, 0, 0 - }, - { /* articulation 138 */ - { 32767, 32349, 18820, 23749 }, - { 19021, 634, 0, 0 }, - 10, 32, 1008, 0, 1200, 10090, 0, 0, 0 - }, - { /* articulation 139 */ - { 2536, 0, 32767, 27897 }, - { 1902, 380, 0, 0 }, - 7, 34, 988, 0, 1620, 8933, 0, 0, 0 - }, - { /* articulation 140 */ - { 32767, 32349, 10809, 23749 }, - { 32767, 380, 0, 0 }, - 7, 34, 988, 0, 2200, 8994, 0, 0, 0 - }, - { /* articulation 141 */ - { 32767, 32663, 15076, 23749 }, - { 32767, 1902, 0, 0 }, - 10, 34, 982, 0, 2500, 9525, 0, 0, 0 - }, - { /* articulation 142 */ - { 32767, 32663, 15076, 23749 }, - { 32767, 190, 0, 0 }, - 10, 34, 951, 0, 1500, 11423, 0, 0, 0 - }, - { /* articulation 143 */ - { 32767, 32663, 18820, 23749 }, - { 32767, 1902, 0, 0 }, - 9, 34, 982, 0, 1500, 9521, 0, 0, 0 - }, - { /* articulation 144 */ - { 3804, 0, 32767, 28809 }, - { 32767, 32767, 32767, 0 }, - 0, 0, 1521, 0, 0, 9521, 0, 0, 0 - }, - { /* articulation 145 */ - { 32767, 32558, 0, 23749 }, - { 32767, 19021, 0, 0 }, - 0, 17, 989, 0, 5000, 10223, 0, 0, 0 - }, - { /* articulation 146 */ - { 32767, 32663, 18820, 23749 }, - { 32767, 63, 0, 0 }, - 10, 34, 951, 0, 1500, 9907, 0, 0, 0 - }, - { /* articulation 147 */ - { 32767, 32698, 11682, 23749 }, - { 32767, 1902, 0, 0 }, - 0, 34, 951, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 148 */ - { 32767, 32072, 0, 32072 }, - { 32767, 380, 0, 0 }, - 0, 17, 989, 0, 3440, 9260, 0, 0, 0 - }, - { /* articulation 149 */ - { 32767, 30234, 0, 30725 }, - { 32767, 1902, 0, 0 }, - 0, 17, 989, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 150 */ - { 32767, 31730, 0, 30725 }, - { 32767, 380, 0, 0 }, - 0, 17, 989, 0, 4000, 7823, 0, 0, 0 - }, - { /* articulation 151 */ - { 32767, 32558, 3566, 23749 }, - { 783, 32767, 32767, 0 }, - 100, 0, 1522, 500, 0, 11877, 0, 0, 0 - }, - { /* articulation 152 */ - { 32767, 32663, 18820, 17213 }, - { 32767, 1902, 0, 0 }, - 8, 34, 989, -22, 0, 0, 0, 0, 0 - }, - { /* articulation 153 */ - { 19021, 29007, 6784, 23749 }, - { 32767, 1902, 0, 0 }, - 0, 34, 951, 0, 5000, 9521, 1, 0, 0 - }, - { /* articulation 154 */ - { 32767, 32558, 0, 31935 }, - { 1902, 254, 16384, 0 }, - 0, 52, 989, 0, 3627, 10547, 0, 5, 0 - }, - { /* articulation 155 */ - { 3804, 0, 32767, 23749 }, - { 1902, 1902, 0, 0 }, - 0, 34, 989, 27, 0, 11919, 0, 0, 0 - }, - { /* articulation 156 */ - { 32767, 0, 32767, 31730 }, - { 76, 66, 10092, 0 }, - 5, 0, 989, 0, 8007, 5535, 0, 8, 0 - }, - { /* articulation 157 */ - { 32767, 32468, 0, 29434 }, - { 32767, 127, 0, 0 }, - 0, 52, 989, 0, 2500, 9032, 0, 0, 0 - }, - { /* articulation 158 */ - { 9511, 32663, 10809, 25329 }, - { 32767, 32767, 32767, 0 }, - 0, 34, 989, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 159 */ - { 19021, 32558, 18820, 23749 }, - { 32767, 190, 0, 0 }, - 10, 34, 988, 0, 2600, 9513, 0, 0, 0 - }, - { /* articulation 160 */ - { 32767, 32106, 9568, 23749 }, - { 2348, 391, 0, 0 }, - 10, 52, 980, 0, 6500, 9023, 0, 0, 0 - }, - { /* articulation 161 */ - { 32767, 32558, 0, 26439 }, - { 32767, 63, 0, 0 }, - 0, 34, 989, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 162 */ - { 3804, 0, 32767, 31730 }, - { 32767, 76, 0, 0 }, - 0, 0, 989, 0, 6000, 6503, 0, 4, 0 - }, - { /* articulation 163 */ - { 3804, 0, 32767, 30725 }, - { 32767, 63, 0, 0 }, - 0, 34, 989, 0, 1500, 11107, 0, 4, 0 - }, - { /* articulation 164 */ - { 32767, 32072, 15076, 17213 }, - { 32767, 1268, 0, 0 }, - 0, 0, 951, 0, 2000, 10223, 0, 0, 0 - }, - { /* articulation 165 */ - { 32767, 32558, 0, 23749 }, - { 32767, 380, 0, 0 }, - 0, 34, 989, 0, 3000, 9366, 0, 0, 0 - }, - { /* articulation 166 */ - { 32767, 32663, 18820, 23749 }, - { 1902, 127, 10879, 0 }, - 0, 0, 989, 0, 6000, 7121, 0, 4, 0 - }, - { /* articulation 167 */ - { 32767, 32505, 0, 26439 }, - { 32767, 21, 0, 0 }, - 0, 52, 989, 0, 3500, 6236, 0, 5, 0 - }, - { /* articulation 168 */ - { 32767, 32505, 0, 26439 }, - { 32767, 190, 0, 0 }, - 0, 52, 989, 0, 2800, 7121, 0, 0, 0 - }, - { /* articulation 169 */ - { 32767, 32418, 0, 29434 }, - { 32767, 127, 0, 0 }, - 0, 52, 989, 0, 2100, 9626, 0, 0, 0 - }, - { /* articulation 170 */ - { 32767, 32349, 0, 30234 }, - { 32767, 127, 0, 0 }, - 0, 52, 989, 0, 3000, 9626, 0, 0, 0 - }, - { /* articulation 171 */ - { 32767, 32288, 0, 28400 }, - { 32767, 127, 0, 0 }, - 0, 52, 989, 0, 1000, 9032, 0, 0, 0 - }, - { /* articulation 172 */ - { 32767, 32072, 0, 28809 }, - { 32767, 127, 0, 0 }, - 0, 52, 989, 0, 1000, 9032, 0, 0, 0 - }, - { /* articulation 173 */ - { 3804, 32072, 15076, 17213 }, - { 32767, 1268, 0, 0 }, - 0, 52, 991, 0, 0, 11107, 0, 8, 0 - }, - { /* articulation 174 */ - { 32767, 32349, 15076, 23749 }, - { 7608, 147, 0, 0 }, - 0, 0, 989, 0, 4500, 9521, 0, 8, 0 - }, - { /* articulation 175 */ - { 32767, 32663, 18820, 23749 }, - { 32767, 95, 0, 0 }, - 0, 0, 989, 0, 2000, 8321, 0, 8, 0 - }, - { /* articulation 176 */ - { 32767, 32715, 128, 29669 }, - { 32767, 1729, 0, 0 }, - 0, 0, 989, 0, 6000, 7823, 0, 8, 0 - }, - { /* articulation 177 */ - { 19021, 32448, 0, 31882 }, - { 32767, 95, 0, 0 }, - 0, 0, 989, 0, 4500, 7121, 0, 8, 0 - }, - { /* articulation 178 */ - { 32767, 32560, 3646, 32107 }, - { 32767, 190, 0, 0 }, - 0, 0, 989, 0, 4000, 8321, 0, 8, 0 - }, - { /* articulation 179 */ - { 32767, 32602, 13644, 26439 }, - { 32767, 63, 0, 0 }, - 12, 34, 988, 0, 2000, 11107, 0, 0, 0 - }, - { /* articulation 180 */ - { 19021, 30484, 0, 23749 }, - { 32767, 1902, 0, 0 }, - 0, 0, 989, 0, 5000, 8321, 1, 0, 0 - }, - { /* articulation 181 */ - { 261, 32466, 0, 31938 }, - { 32767, 634, 0, 0 }, - 0, 34, 951, 0, 0, 0, 0, 0, 0 - }, - { /* articulation 182 */ - { 32767, 32418, 0, 31742 }, - { 2348, 39, 0, 0 }, - 0, 34, 989, 0, 3600, 7121, 0, 4, 0 - }, - { /* articulation 183 */ - { 32767, 32090, 0, 32090 }, - { 32767, 634, 0, 0 }, - 0, 34, 951, 0, 0, 0, 0, 0, 0 - } -}; /*end Articulations */ - -/*---------------------------------------------------------------------------- - * Regions - *---------------------------------------------------------------------------- -*/ -const S_WT_REGION eas_regions[] = -{ - { { 0, 27, 27 }, -2868, 16422, 0, 0, 78, 0 }, /* region 0 */ - { { 0, 28, 28 }, -3568, 32767, 0, 0, 36, 0 }, /* region 1 */ - { { 0, 29, 29 }, -4553, 32767, 0, 0, 28, 1 }, /* region 2 */ - { { 0, 30, 30 }, -4853, 32767, 0, 0, 28, 2 }, /* region 3 */ - { { 0, 31, 31 }, -3868, 23197, 0, 0, 45, 3 }, /* region 4 */ - { { 1536, 32, 32 }, -3200, 20675, 0, 0, 134, 4 }, /* region 5 */ - { { 1537, 33, 33 }, -3703, 20675, 792, 879, 47, 5 }, /* region 6 */ - { { 1537, 34, 34 }, -3803, 16422, 792, 879, 47, 6 }, /* region 7 */ - { { 0, 35, 35 }, -4968, 32767, 0, 0, 79, 7 }, /* region 8 */ - { { 0, 36, 36 }, -4968, 32767, 0, 0, 79, 7 }, /* region 9 */ - { { 0, 37, 37 }, -4051, 18426, 0, 0, 50, 8 }, /* region 10 */ - { { 0, 38, 38 }, -4151, 23197, 0, 0, 12, 9 }, /* region 11 */ - { { 0, 39, 39 }, -4668, 23197, 0, 0, 37, 10 }, /* region 12 */ - { { 0, 40, 40 }, -4151, 23197, 0, 0, 12, 4 }, /* region 13 */ - { { 1, 41, 41 }, -5855, 26028, 798, 993, 42, 11 }, /* region 14 */ - { { 257, 42, 42 }, -4200, 26028, 4288, 7488, 4, 12 }, /* region 15 */ - { { 1, 43, 43 }, -5755, 26028, 798, 993, 42, 13 }, /* region 16 */ - { { 257, 44, 44 }, -4400, 26028, 4288, 7488, 4, 14 }, /* region 17 */ - { { 1, 45, 45 }, -5755, 26028, 798, 993, 42, 15 }, /* region 18 */ - { { 257, 46, 46 }, -4600, 26028, 4288, 7488, 4, 16 }, /* region 19 */ - { { 1, 47, 47 }, -5455, 26028, 798, 993, 42, 17 }, /* region 20 */ - { { 1, 48, 48 }, -5355, 26028, 798, 993, 42, 18 }, /* region 21 */ - { { 1, 49, 49 }, -5200, 16422, 1294, 5778, 5, 19 }, /* region 22 */ - { { 1, 50, 50 }, -5255, 26028, 798, 993, 42, 20 }, /* region 23 */ - { { 1, 51, 51 }, -5268, 16422, 6592, 9921, 3, 21 }, /* region 24 */ - { { 1, 52, 52 }, -5600, 32767, 1294, 5778, 5, 22 }, /* region 25 */ - { { 1, 53, 53 }, -5418, 14636, 6592, 9921, 3, 23 }, /* region 26 */ - { { 0, 54, 54 }, -5751, 26028, 0, 0, 35, 24 }, /* region 27 */ - { { 1, 55, 55 }, -5300, 32767, 1294, 5778, 5, 25 }, /* region 28 */ - { { 0, 56, 56 }, -7255, 32767, 0, 0, 88, 26 }, /* region 29 */ - { { 1, 57, 57 }, -5700, 32767, 1294, 5778, 5, 27 }, /* region 30 */ - { { 1, 58, 58 }, -7053, 23197, 0, 166, 110, 28 }, /* region 31 */ - { { 1, 59, 59 }, -5968, 16422, 6592, 9921, 3, 29 }, /* region 32 */ - { { 1, 60, 60 }, -6453, 23197, 432, 582, 60, 30 }, /* region 33 */ - { { 1, 61, 61 }, -6853, 16422, 432, 582, 60, 30 }, /* region 34 */ - { { 1, 62, 62 }, -7253, 20675, 432, 582, 60, 31 }, /* region 35 */ - { { 1, 63, 63 }, -7353, 23197, 432, 582, 60, 32 }, /* region 36 */ - { { 1, 64, 64 }, -7953, 23197, 432, 582, 60, 33 }, /* region 37 */ - { { 0, 65, 65 }, -7555, 32767, 0, 0, 10, 34 }, /* region 38 */ - { { 0, 66, 66 }, -7955, 20675, 0, 0, 10, 34 }, /* region 39 */ - { { 512, 67, 67 }, -7155, 18426, 0, 0, 88, 35 }, /* region 40 */ - { { 512, 68, 68 }, -7755, 18426, 0, 0, 88, 35 }, /* region 41 */ - { { 0, 69, 69 }, -7755, 32767, 0, 0, 83, 36 }, /* region 42 */ - { { 0, 70, 70 }, -6855, 21900, 0, 0, 83, 37 }, /* region 43 */ - { { 769, 71, 71 }, -6355, 23197, 0, 1226, 31, 38 }, /* region 44 */ - { { 769, 72, 72 }, -6955, 26028, 0, 1226, 31, 38 }, /* region 45 */ - { { 1024, 73, 73 }, -7955, 32767, 0, 0, 18, 39 }, /* region 46 */ - { { 1024, 74, 74 }, -8455, 32767, 0, 0, 18, 40 }, /* region 47 */ - { { 1, 75, 75 }, -7900, 23197, 0, 31, 136, 41 }, /* region 48 */ - { { 0, 76, 76 }, -10455, 23197, 0, 0, 131, 42 }, /* region 49 */ - { { 0, 77, 77 }, -10055, 23197, 0, 0, 131, 43 }, /* region 50 */ - { { 0, 78, 78 }, -8853, 16422, 0, 0, 86, 44 }, /* region 51 */ - { { 0, 79, 79 }, -10253, 16422, 0, 0, 86, 45 }, /* region 52 */ - { { 1281, 80, 80 }, -6300, 13045, 209, 230, 100, 46 }, /* region 53 */ - { { 1281, 81, 81 }, -6400, 16422, 209, 230, 100, 47 }, /* region 54 */ - { { 0, 82, 82 }, -8455, 20675, 0, 0, 84, 48 }, /* region 55 */ - { { 0, 83, 83 }, -8900, 32767, 0, 0, 9, 49 }, /* region 56 */ - { { 1, 84, 84 }, -8400, 23197, 0, 10294, 2, 50 }, /* region 57 */ - { { 0, 85, 85 }, -9655, 32767, 0, 0, 132, 4 }, /* region 58 */ - { { 0, 86, 86 }, -9068, 16422, 0, 0, 20, 51 }, /* region 59 */ - { { 32769, 87, 87 }, -9168, 32767, 1335, 1603, 20, 52 }, /* region 60 */ - { { 1, 12, 43 }, -3055, 23197, 920, 1383, 26, 53 }, /* region 61 */ - { { 32769, 44, 96 }, -5060, 18426, 885, 1176, 33, 53 }, /* region 62 */ - { { 1, 12, 48 }, -3461, 18426, 1148, 1514, 22, 54 }, /* region 63 */ - { { 32769, 49, 96 }, -6253, 16422, 1347, 1420, 25, 54 }, /* region 64 */ - { { 1, 33, 56 }, -5600, 26028, 1064, 1170, 34, 55 }, /* region 65 */ - { { 1, 57, 72 }, -6000, 26028, 930, 1014, 41, 55 }, /* region 66 */ - { { 32769, 73, 108 }, -7600, 26028, 726, 826, 49, 55 }, /* region 67 */ - { { 1, 36, 96 }, -7600, 20675, 635, 735, 55, 56 }, /* region 68 */ - { { 32769, 97, 108 }, -10108, 13045, 0, 31, 136, 56 }, /* region 69 */ - { { 1, 36, 96 }, -7600, 14636, 635, 735, 55, 0 }, /* region 70 */ - { { 32769, 97, 108 }, -10108, 13045, 0, 31, 136, 0 }, /* region 71 */ - { { 1, 36, 83 }, -6006, 13045, 838, 922, 44, 57 }, /* region 72 */ - { { 1, 84, 93 }, -8406, 14636, 209, 230, 100, 57 }, /* region 73 */ - { { 32769, 94, 108 }, -10108, 13045, 0, 31, 136, 57 }, /* region 74 */ - { { 1, 36, 83 }, -6006, 13045, 838, 922, 44, 58 }, /* region 75 */ - { { 1, 84, 93 }, -8406, 13045, 209, 230, 100, 58 }, /* region 76 */ - { { 32769, 94, 108 }, -10108, 13045, 0, 31, 136, 58 }, /* region 77 */ - { { 1, 21, 56 }, -5595, 23197, 1064, 1170, 34, 59 }, /* region 78 */ - { { 1, 57, 72 }, -5995, 23197, 930, 1014, 41, 59 }, /* region 79 */ - { { 32769, 73, 108 }, -7598, 23197, 726, 826, 49, 59 }, /* region 80 */ - { { 1, 12, 83 }, -6006, 16422, 838, 922, 44, 60 }, /* region 81 */ - { { 1, 84, 93 }, -8406, 16422, 209, 230, 100, 60 }, /* region 82 */ - { { 32769, 94, 108 }, -10108, 16422, 0, 31, 136, 60 }, /* region 83 */ - { { 1, 24, 83 }, -6006, 16422, 838, 922, 44, 61 }, /* region 84 */ - { { 1, 84, 93 }, -8406, 16422, 209, 230, 100, 61 }, /* region 85 */ - { { 32769, 94, 108 }, -10108, 16422, 0, 31, 136, 61 }, /* region 86 */ - { { 1, 12, 83 }, -6020, 16422, 0, 83, 123, 62 }, /* region 87 */ - { { 1, 84, 90 }, -8482, 16422, 0, 20, 142, 62 }, /* region 88 */ - { { 32769, 91, 108 }, -9101, 16422, 6, 20, 143, 62 }, /* region 89 */ - { { 1, 48, 75 }, -7241, 20675, 419, 460, 73, 63 }, /* region 90 */ - { { 32769, 76, 108 }, -9690, 18426, 254, 264, 98, 63 }, /* region 91 */ - { { 32769, 36, 84 }, -7755, 16422, 0, 2775, 13, 64 }, /* region 92 */ - { { 32769, 12, 108 }, -6655, 23197, 30, 276, 97, 65 }, /* region 93 */ - { { 0, 12, 60 }, -7914, 26028, 0, 0, 11, 66 }, /* region 94 */ - { { 32768, 61, 96 }, -7914, 26028, 0, 0, 11, 67 }, /* region 95 */ - { { 1, 12, 65 }, -7053, 16422, 23, 10953, 1, 68 }, /* region 96 */ - { { 32769, 66, 108 }, -7755, 20675, 11, 11753, 0, 68 }, /* region 97 */ - { { 1, 12, 35 }, -5355, 16422, 2869, 3778, 8, 69 }, /* region 98 */ - { { 1, 36, 48 }, -6555, 20675, 2869, 3778, 8, 69 }, /* region 99 */ - { { 32769, 49, 72 }, -6555, 20675, 2869, 3778, 8, 70 }, /* region 100 */ - { { 1, 16, 55 }, -6224, 20675, 1045, 1119, 38, 71 }, /* region 101 */ - { { 32769, 56, 96 }, -6718, 20675, 907, 963, 43, 71 }, /* region 102 */ - { { 1, 16, 53 }, -5994, 29204, 1140, 1479, 23, 72 }, /* region 103 */ - { { 1, 54, 70 }, -7171, 29204, 726, 812, 52, 72 }, /* region 104 */ - { { 32769, 71, 108 }, -7788, 29204, 718, 748, 53, 72 }, /* region 105 */ - { { 1, 12, 65 }, -7053, 16422, 23, 10953, 1, 73 }, /* region 106 */ - { { 32769, 66, 108 }, -7755, 20675, 11, 11753, 0, 73 }, /* region 107 */ - { { 1, 16, 54 }, -5727, 20675, 5362, 5461, 6, 74 }, /* region 108 */ - { { 1, 55, 63 }, -5851, 26028, 1362, 1454, 24, 74 }, /* region 109 */ - { { 32769, 64, 108 }, -6744, 16422, 311, 366, 85, 74 }, /* region 110 */ - { { 1, 16, 48 }, -4798, 20675, 1132, 1301, 27, 75 }, /* region 111 */ - { { 32769, 49, 108 }, -5988, 20675, 1099, 1184, 32, 75 }, /* region 112 */ - { { 1, 21, 68 }, -8458, 20675, 87, 2170, 14, 76 }, /* region 113 */ - { { 1, 69, 82 }, -8960, 20675, 120, 2167, 15, 76 }, /* region 114 */ - { { 32769, 83, 108 }, -10160, 20675, 376, 2041, 16, 76 }, /* region 115 */ - { { 1, 12, 65 }, -7053, 16422, 23, 10953, 1, 77 }, /* region 116 */ - { { 32769, 66, 108 }, -7755, 20675, 11, 11753, 0, 77 }, /* region 117 */ - { { 32769, 55, 108 }, -7368, 20675, 0, 477, 72, 78 }, /* region 118 */ - { { 32769, 36, 96 }, -6900, 14636, 101, 151, 113, 79 }, /* region 119 */ - { { 1, 24, 83 }, -6020, 13045, 0, 83, 123, 80 }, /* region 120 */ - { { 1, 84, 90 }, -8482, 13045, 0, 20, 142, 80 }, /* region 121 */ - { { 32769, 91, 108 }, -9101, 13045, 6, 20, 143, 80 }, /* region 122 */ - { { 1, 12, 65 }, -7053, 16422, 23, 10953, 1, 81 }, /* region 123 */ - { { 32769, 66, 108 }, -7755, 20675, 11, 11753, 0, 81 }, /* region 124 */ - { { 1, 12, 65 }, -7053, 16422, 23, 10953, 1, 82 }, /* region 125 */ - { { 32769, 66, 108 }, -7755, 20675, 11, 11753, 0, 82 }, /* region 126 */ - { { 1, 12, 65 }, -7053, 16422, 23, 10953, 1, 83 }, /* region 127 */ - { { 32769, 66, 108 }, -7755, 20675, 11, 11753, 0, 83 }, /* region 128 */ - { { 1, 24, 83 }, -6020, 13045, 0, 83, 123, 84 }, /* region 129 */ - { { 1, 84, 90 }, -8482, 13045, 0, 20, 142, 84 }, /* region 130 */ - { { 32769, 91, 108 }, -9101, 13045, 6, 20, 143, 84 }, /* region 131 */ - { { 1, 12, 65 }, -7053, 16422, 23, 10953, 1, 85 }, /* region 132 */ - { { 32769, 66, 108 }, -7755, 20675, 11, 11753, 0, 85 }, /* region 133 */ - { { 1, 12, 65 }, -7053, 16422, 23, 10953, 1, 86 }, /* region 134 */ - { { 32769, 66, 108 }, -7755, 20675, 11, 11753, 0, 86 }, /* region 135 */ - { { 1, 12, 62 }, -7053, 16422, 23, 10953, 1, 87 }, /* region 136 */ - { { 32769, 63, 108 }, -7755, 20675, 11, 11753, 0, 87 }, /* region 137 */ - { { 1, 12, 62 }, -7053, 16422, 23, 10953, 1, 88 }, /* region 138 */ - { { 32769, 63, 108 }, -7755, 16422, 11, 11753, 0, 88 }, /* region 139 */ - { { 1, 24, 79 }, -6020, 13045, 0, 83, 123, 89 }, /* region 140 */ - { { 1, 80, 90 }, -8482, 13045, 0, 20, 142, 89 }, /* region 141 */ - { { 32769, 91, 108 }, -9101, 13045, 6, 20, 143, 89 }, /* region 142 */ - { { 1, 12, 65 }, -7053, 13045, 23, 10953, 1, 90 }, /* region 143 */ - { { 32769, 66, 108 }, -7755, 16422, 11, 11753, 0, 90 }, /* region 144 */ - { { 32768, 36, 84 }, -7500, 20675, 0, 0, 21, 91 }, /* region 145 */ - { { 32769, 36, 96 }, -8855, 20675, 1482, 1613, 19, 92 }, /* region 146 */ - { { 32769, 12, 108 }, -7538, 20675, 0, 3911, 7, 93 }, /* region 147 */ - { { 32769, 12, 108 }, -7538, 20675, 0, 3911, 7, 94 }, /* region 148 */ - { { 32769, 12, 108 }, -7538, 20675, 0, 3911, 7, 95 }, /* region 149 */ - { { 32769, 12, 108 }, -7538, 20675, 0, 3911, 7, 96 }, /* region 150 */ - { { 32769, 12, 108 }, -7538, 14636, 0, 3911, 7, 97 }, /* region 151 */ - { { 32769, 12, 96 }, -4366, 32767, 818, 1033, 39, 98 }, /* region 152 */ - { { 32769, 36, 84 }, -8568, 18426, 0, 293, 95, 99 }, /* region 153 */ - { { 32769, 12, 96 }, -6020, 26028, 0, 83, 122, 100 }, /* region 154 */ - { { 32769, 12, 96 }, -6020, 20675, 0, 83, 122, 101 }, /* region 155 */ - { { 1, 12, 83 }, -6020, 13045, 0, 83, 122, 102 }, /* region 156 */ - { { 1, 84, 90 }, -8482, 13045, 0, 20, 144, 102 }, /* region 157 */ - { { 32769, 91, 108 }, -9101, 13045, 6, 20, 145, 102 }, /* region 158 */ - { { 32769, 36, 108 }, -8570, 32767, 472, 491, 71, 103 }, /* region 159 */ - { { 32769, 36, 108 }, -8570, 20675, 472, 491, 71, 104 }, /* region 160 */ - { { 1, 12, 72 }, -6012, 7336, 2, 86, 121, 105 }, /* region 161 */ - { { 1, 73, 101 }, -8500, 8231, 2, 22, 140, 105 }, /* region 162 */ - { { 32769, 102, 108 }, -9683, 20675, 173, 183, 107, 105 }, /* region 163 */ - { { 1, 21, 96 }, -7768, 13045, 477, 507, 70, 106 }, /* region 164 */ - { { 32769, 97, 108 }, -9683, 13045, 173, 183, 107, 107 }, /* region 165 */ - { { 32769, 12, 108 }, -7771, 16422, 477, 507, 70, 108 }, /* region 166 */ - { { 1, 12, 53 }, -4971, 16422, 388, 541, 65, 109 }, /* region 167 */ - { { 32769, 54, 60 }, -5949, 11626, 473, 560, 62, 109 }, /* region 168 */ - { { 32769, 36, 72 }, -5949, 16422, 473, 560, 62, 110 }, /* region 169 */ - { { 1, 48, 58 }, -7053, 16422, 356, 402, 80, 111 }, /* region 170 */ - { { 1, 59, 65 }, -7574, 16422, 514, 548, 64, 111 }, /* region 171 */ - { { 1, 66, 78 }, -8174, 16422, 505, 529, 68, 111 }, /* region 172 */ - { { 32769, 79, 96 }, -9233, 16422, 178, 191, 106, 111 }, /* region 173 */ - { { 1, 55, 60 }, -7053, 16422, 356, 402, 80, 112 }, /* region 174 */ - { { 1, 61, 69 }, -7574, 16422, 514, 548, 64, 112 }, /* region 175 */ - { { 1, 70, 79 }, -8174, 16422, 505, 529, 68, 112 }, /* region 176 */ - { { 32769, 80, 108 }, -9233, 16422, 178, 191, 106, 112 }, /* region 177 */ - { { 1, 16, 82 }, -8029, 23197, 180, 206, 103, 113 }, /* region 178 */ - { { 32769, 83, 108 }, -7240, 18426, 3, 44, 128, 113 }, /* region 179 */ - { { 32769, 21, 108 }, -8869, 20675, 483, 515, 69, 114 }, /* region 180 */ - { { 1, 21, 89 }, -7205, 18426, 3, 45, 127, 115 }, /* region 181 */ - { { 32769, 90, 108 }, -9101, 10362, 6, 20, 145, 115 }, /* region 182 */ - { { 1, 21, 42 }, -4686, 20675, 0, 180, 108, 116 }, /* region 183 */ - { { 1, 43, 51 }, -5286, 23197, 0, 127, 117, 116 }, /* region 184 */ - { { 1, 52, 58 }, -6292, 26028, 0, 71, 124, 116 }, /* region 185 */ - { { 1, 59, 68 }, -7468, 23197, 0, 36, 133, 116 }, /* region 186 */ - { { 32769, 69, 108 }, -8574, 20675, 0, 19, 146, 116 }, /* region 187 */ - { { 1, 21, 89 }, -7199, 20675, 3, 45, 127, 117 }, /* region 188 */ - { { 32769, 90, 108 }, -9101, 14636, 6, 20, 145, 117 }, /* region 189 */ - { { 1, 21, 46 }, -5651, 26028, 236, 340, 89, 118 }, /* region 190 */ - { { 1, 47, 71 }, -6563, 20675, 824, 885, 46, 118 }, /* region 191 */ - { { 1, 72, 88 }, -7907, 18426, 719, 747, 54, 118 }, /* region 192 */ - { { 1, 89, 93 }, -8876, 16422, 83, 99, 119, 118 }, /* region 193 */ - { { 32769, 94, 108 }, -9689, 16422, 173, 183, 107, 118 }, /* region 194 */ - { { 1, 60, 71 }, -7205, 16422, 0, 42, 129, 119 }, /* region 195 */ - { { 1, 72, 78 }, -7903, 16422, 0, 28, 138, 119 }, /* region 196 */ - { { 32769, 79, 96 }, -8405, 16422, 0, 21, 141, 119 }, /* region 197 */ - { { 1, 48, 65 }, -6316, 11626, 0, 70, 125, 120 }, /* region 198 */ - { { 1, 66, 79 }, -7724, 14636, 0, 31, 135, 120 }, /* region 199 */ - { { 32769, 80, 96 }, -8030, 11626, 0, 26, 139, 120 }, /* region 200 */ - { { 1, 16, 44 }, -5868, 14636, 163, 254, 99, 121 }, /* region 201 */ - { { 1, 45, 51 }, -6418, 16422, 261, 393, 82, 121 }, /* region 202 */ - { { 1, 52, 58 }, -7333, 18426, 190, 229, 101, 121 }, /* region 203 */ - { { 1, 59, 66 }, -8100, 18426, 168, 193, 105, 121 }, /* region 204 */ - { { 1, 67, 70 }, -8576, 18426, 138, 157, 112, 121 }, /* region 205 */ - { { 1, 71, 80 }, -9103, 18426, 166, 180, 109, 121 }, /* region 206 */ - { { 32769, 81, 108 }, -10074, 18426, 135, 151, 114, 121 }, /* region 207 */ - { { 32769, 12, 96 }, -5004, 23197, 570, 719, 56, 122 }, /* region 208 */ - { { 1, 12, 48 }, -5868, 14636, 163, 254, 99, 123 }, /* region 209 */ - { { 1, 49, 54 }, -6418, 16422, 261, 393, 82, 123 }, /* region 210 */ - { { 1, 55, 63 }, -7333, 18426, 190, 229, 101, 123 }, /* region 211 */ - { { 1, 64, 70 }, -8100, 18426, 168, 193, 105, 123 }, /* region 212 */ - { { 1, 71, 75 }, -8576, 18426, 138, 157, 112, 123 }, /* region 213 */ - { { 1, 76, 82 }, -9103, 18426, 166, 180, 109, 123 }, /* region 214 */ - { { 32769, 83, 108 }, -10074, 18426, 135, 151, 114, 123 }, /* region 215 */ - { { 32770, 36, 84 }, -7200, 29204, 0, 0, 0, 124 }, /* region 216 */ - { { 32770, 36, 84 }, -7600, 8231, 0, 0, 0, 125 }, /* region 217 */ - { { 32770, 36, 84 }, -7200, 20675, 0, 0, 0, 126 }, /* region 218 */ - { { 32769, 36, 84 }, -6000, -24285, 1294, 5778, 5, 127 }, /* region 219 */ - { { 32769, 36, 84 }, -6555, 29204, 798, 993, 42, 128 }, /* region 220 */ - { { 32769, 36, 84 }, -6855, 20675, 798, 993, 42, 129 }, /* region 221 */ - { { 32769, 36, 84 }, -7755, 29204, 798, 993, 42, 130 }, /* region 222 */ - { { 32768, 36, 84 }, -8155, 32767, 0, 0, 130, 131 }, /* region 223 */ - { { 32768, 36, 84 }, -6555, 20675, 0, 0, 87, 132 }, /* region 224 */ - { { 1, 24, 62 }, -7000, 23197, 286, 333, 91, 133 }, /* region 225 */ - { { 1, 63, 66 }, -7364, 26028, 297, 335, 90, 133 }, /* region 226 */ - { { 1, 67, 72 }, -7722, 23197, 368, 399, 81, 133 }, /* region 227 */ - { { 32769, 73, 96 }, -8310, 23197, 116, 138, 116, 133 }, /* region 228 */ - { { 1, 24, 48 }, -5141, 23197, 309, 447, 74, 134 }, /* region 229 */ - { { 1, 49, 56 }, -6266, 26028, 211, 283, 96, 134 }, /* region 230 */ - { { 1, 57, 63 }, -7000, 26028, 286, 333, 91, 134 }, /* region 231 */ - { { 32769, 64, 84 }, -7722, 23197, 368, 399, 81, 134 }, /* region 232 */ - { { 1, 24, 56 }, -6266, 29204, 211, 283, 96, 135 }, /* region 233 */ - { { 1, 57, 63 }, -7000, 29204, 286, 333, 91, 135 }, /* region 234 */ - { { 1, 64, 69 }, -7722, 29204, 368, 399, 81, 135 }, /* region 235 */ - { { 32769, 70, 96 }, -8310, 29204, 116, 138, 116, 135 }, /* region 236 */ - { { 1, 24, 68 }, -7722, 18426, 368, 399, 81, 136 }, /* region 237 */ - { { 1, 69, 76 }, -8310, 26028, 116, 138, 116, 136 }, /* region 238 */ - { { 32769, 77, 108 }, -8758, 23197, 127, 144, 115, 136 }, /* region 239 */ - { { 1, 24, 82 }, -7613, 23197, 389, 422, 77, 137 }, /* region 240 */ - { { 32769, 83, 108 }, -8764, 26028, 146, 163, 111, 137 }, /* region 241 */ - { { 1, 12, 58 }, -6898, 29204, 386, 436, 75, 138 }, /* region 242 */ - { { 32769, 59, 96 }, -7371, 26028, 290, 328, 92, 138 }, /* region 243 */ - { { 1, 12, 58 }, -6898, 16422, 386, 436, 75, 139 }, /* region 244 */ - { { 32769, 59, 96 }, -7371, 18426, 290, 328, 92, 139 }, /* region 245 */ - { { 1, 12, 48 }, -6898, -28771, 386, 436, 75, 140 }, /* region 246 */ - { { 32769, 49, 84 }, -7371, 29204, 290, 328, 92, 140 }, /* region 247 */ - { { 1, 12, 60 }, -5453, 20675, 314, 430, 76, 141 }, /* region 248 */ - { { 32769, 61, 84 }, -6553, 18426, 263, 324, 93, 141 }, /* region 249 */ - { { 1, 24, 60 }, -6553, 16422, 263, 324, 93, 142 }, /* region 250 */ - { { 1, 61, 70 }, -7669, 20675, 279, 311, 94, 142 }, /* region 251 */ - { { 32769, 71, 96 }, -8098, 23197, 179, 204, 104, 142 }, /* region 252 */ - { { 1, 24, 84 }, -8483, 20675, 191, 211, 102, 143 }, /* region 253 */ - { { 32769, 85, 108 }, -9683, 20675, 92, 102, 118, 143 }, /* region 254 */ - { { 1, 21, 69 }, -6553, 13045, 263, 324, 93, 144 }, /* region 255 */ - { { 1, 70, 94 }, -7669, 20675, 279, 311, 94, 144 }, /* region 256 */ - { { 1, 95, 96 }, -8098, -24285, 179, 204, 104, 144 }, /* region 257 */ - { { 32769, 97, 108 }, -9683, -24285, 173, 183, 107, 144 }, /* region 258 */ - { { 1, 16, 55 }, -8100, 20675, 168, 193, 105, 145 }, /* region 259 */ - { { 1, 56, 74 }, -8576, 26028, 138, 157, 112, 145 }, /* region 260 */ - { { 32769, 75, 96 }, -10074, 26028, 135, 151, 114, 145 }, /* region 261 */ - { { 1, 24, 72 }, -8098, 26028, 179, 204, 104, 146 }, /* region 262 */ - { { 1, 73, 85 }, -8483, 20675, 191, 211, 102, 146 }, /* region 263 */ - { { 32769, 86, 108 }, -9683, 18426, 92, 102, 118, 146 }, /* region 264 */ - { { 32769, 36, 108 }, -7730, 18426, 1839, 1901, 17, 147 }, /* region 265 */ - { { 32769, 24, 108 }, -7273, 20675, 494, 534, 66, 148 }, /* region 266 */ - { { 32769, 12, 108 }, -7273, 20675, 494, 534, 66, 149 }, /* region 267 */ - { { 32769, 24, 108 }, -7273, 20675, 494, 534, 66, 150 }, /* region 268 */ - { { 1, 36, 60 }, -4900, 5193, 2, 22, 140, 151 }, /* region 269 */ - { { 32769, 61, 84 }, -6083, 20675, 173, 183, 107, 151 }, /* region 270 */ - { { 32769, 24, 96 }, -6553, 14636, 263, 324, 93, 152 }, /* region 271 */ - { { 32769, 36, 96 }, -7730, 26028, 1839, 1901, 17, 153 }, /* region 272 */ - { { 32769, 24, 108 }, -7273, 20675, 494, 534, 66, 154 }, /* region 273 */ - { { 1, 24, 58 }, -7851, 14636, 0, 29, 137, 155 }, /* region 274 */ - { { 32769, 59, 96 }, -7851, 14636, 0, 29, 137, 155 }, /* region 275 */ - { { 1, 12, 83 }, -6020, 13045, 0, 83, 122, 156 }, /* region 276 */ - { { 1, 84, 90 }, -8482, 13045, 0, 20, 144, 156 }, /* region 277 */ - { { 32769, 91, 108 }, -9101, 13045, 6, 20, 145, 156 }, /* region 278 */ - { { 1, 21, 42 }, -4663, 26028, 1047, 1229, 30, 157 }, /* region 279 */ - { { 1, 43, 48 }, -5456, 29204, 1138, 1253, 29, 157 }, /* region 280 */ - { { 1, 49, 53 }, -5845, 26028, 559, 651, 57, 157 }, /* region 281 */ - { { 1, 54, 60 }, -6732, 26028, 508, 563, 61, 157 }, /* region 282 */ - { { 1, 61, 65 }, -7080, 32767, 819, 864, 48, 157 }, /* region 283 */ - { { 1, 66, 70 }, -6866, 26942, 981, 1032, 40, 157 }, /* region 284 */ - { { 1, 71, 76 }, -8166, 26028, 790, 814, 51, 157 }, /* region 285 */ - { { 1, 77, 82 }, -8766, 26028, 592, 609, 58, 157 }, /* region 286 */ - { { 1, 83, 87 }, -9517, 23197, 543, 554, 63, 157 }, /* region 287 */ - { { 1, 88, 96 }, -10071, 18426, 601, 609, 59, 157 }, /* region 288 */ - { { 32769, 97, 108 }, -10566, 18426, 523, 529, 67, 157 }, /* region 289 */ - { { 1, 48, 69 }, -6313, 14636, 0, 70, 125, 158 }, /* region 290 */ - { { 1, 70, 79 }, -7724, 18426, 0, 31, 135, 158 }, /* region 291 */ - { { 32769, 80, 96 }, -8030, 14636, 0, 26, 139, 158 }, /* region 292 */ - { { 1, 36, 72 }, -7134, 29204, 0, 87, 120, 159 }, /* region 293 */ - { { 32769, 73, 96 }, -7960, 29204, 0, 54, 126, 159 }, /* region 294 */ - { { 32769, 36, 96 }, -7730, 26028, 1839, 1901, 17, 160 }, /* region 295 */ - { { 32769, 12, 96 }, -4372, 32767, 818, 1033, 39, 161 }, /* region 296 */ - { { 32769, 12, 108 }, -7538, 20675, 0, 3911, 7, 162 }, /* region 297 */ - { { 32769, 12, 108 }, -7538, 20675, 0, 3911, 7, 163 }, /* region 298 */ - { { 32769, 36, 108 }, -8570, 26028, 472, 491, 71, 164 }, /* region 299 */ - { { 32769, 12, 96 }, -5004, 29204, 570, 719, 56, 165 }, /* region 300 */ - { { 1, 12, 83 }, -6020, 13045, 0, 83, 122, 166 }, /* region 301 */ - { { 1, 84, 90 }, -8482, 13045, 0, 20, 144, 166 }, /* region 302 */ - { { 32769, 91, 108 }, -9101, 13045, 6, 20, 145, 166 }, /* region 303 */ - { { 1, 21, 46 }, -5651, 32767, 236, 340, 89, 167 }, /* region 304 */ - { { 1, 47, 75 }, -6563, 26028, 824, 885, 46, 167 }, /* region 305 */ - { { 1, 76, 84 }, -7907, 23197, 719, 747, 54, 167 }, /* region 306 */ - { { 1, 85, 93 }, -8876, 20675, 83, 99, 119, 167 }, /* region 307 */ - { { 32769, 94, 108 }, -9689, 20675, 173, 183, 107, 167 }, /* region 308 */ - { { 1, 21, 46 }, -5651, 26028, 236, 340, 89, 168 }, /* region 309 */ - { { 1, 47, 71 }, -6563, 20675, 824, 885, 46, 168 }, /* region 310 */ - { { 1, 72, 88 }, -7907, 18426, 719, 747, 54, 168 }, /* region 311 */ - { { 1, 89, 93 }, -8876, 16422, 83, 99, 119, 168 }, /* region 312 */ - { { 32769, 94, 108 }, -9689, 16422, 173, 183, 107, 168 }, /* region 313 */ - { { 1, 21, 45 }, -4663, 26028, 1047, 1229, 30, 169 }, /* region 314 */ - { { 1, 46, 51 }, -5456, 29204, 1138, 1253, 29, 169 }, /* region 315 */ - { { 1, 52, 54 }, -5845, 26028, 559, 651, 57, 169 }, /* region 316 */ - { { 1, 55, 63 }, -6732, 26028, 508, 563, 61, 169 }, /* region 317 */ - { { 1, 64, 68 }, -7080, 32767, 819, 864, 48, 169 }, /* region 318 */ - { { 1, 69, 73 }, -6866, 26942, 981, 1032, 40, 169 }, /* region 319 */ - { { 1, 74, 79 }, -8166, 26028, 790, 814, 51, 169 }, /* region 320 */ - { { 1, 80, 88 }, -8766, 23197, 592, 609, 58, 169 }, /* region 321 */ - { { 1, 89, 99 }, -10071, 18426, 601, 609, 59, 169 }, /* region 322 */ - { { 32769, 100, 108 }, -10566, 18426, 523, 529, 67, 169 }, /* region 323 */ - { { 1, 21, 45 }, -4663, 26028, 1047, 1229, 30, 170 }, /* region 324 */ - { { 1, 46, 51 }, -5456, 29204, 1138, 1253, 29, 170 }, /* region 325 */ - { { 1, 52, 54 }, -5845, 26028, 559, 651, 57, 170 }, /* region 326 */ - { { 1, 55, 63 }, -6732, 26028, 508, 563, 61, 170 }, /* region 327 */ - { { 1, 64, 68 }, -7080, 32767, 819, 864, 48, 170 }, /* region 328 */ - { { 1, 69, 73 }, -6866, 26942, 981, 1032, 40, 170 }, /* region 329 */ - { { 1, 74, 79 }, -8166, 26028, 790, 814, 51, 170 }, /* region 330 */ - { { 1, 80, 88 }, -8766, 23197, 592, 609, 58, 170 }, /* region 331 */ - { { 1, 89, 99 }, -10071, 18426, 601, 609, 59, 171 }, /* region 332 */ - { { 32769, 100, 108 }, -10566, 18426, 523, 529, 67, 172 }, /* region 333 */ - { { 32769, 36, 108 }, -8570, 20675, 472, 491, 71, 173 }, /* region 334 */ - { { 32769, 12, 108 }, -7730, 20675, 1839, 1901, 17, 174 }, /* region 335 */ - { { 1, 12, 44 }, -5868, 18426, 163, 254, 99, 175 }, /* region 336 */ - { { 1, 45, 51 }, -6418, 20675, 261, 393, 82, 175 }, /* region 337 */ - { { 1, 52, 58 }, -7333, 23197, 190, 229, 101, 175 }, /* region 338 */ - { { 1, 59, 66 }, -8100, 23197, 168, 193, 105, 175 }, /* region 339 */ - { { 1, 67, 70 }, -8576, 23197, 138, 157, 112, 175 }, /* region 340 */ - { { 1, 71, 80 }, -9103, 23197, 166, 180, 109, 175 }, /* region 341 */ - { { 32769, 81, 108 }, -10074, 23197, 135, 151, 114, 175 }, /* region 342 */ - { { 1, 12, 65 }, -7053, 16422, 23, 10953, 1, 176 }, /* region 343 */ - { { 32769, 66, 108 }, -7755, 20675, 11, 11753, 0, 176 }, /* region 344 */ - { { 1, 12, 48 }, -4798, 29204, 1132, 1301, 27, 177 }, /* region 345 */ - { { 32769, 49, 108 }, -5988, 29204, 1099, 1184, 32, 177 }, /* region 346 */ - { { 1, 12, 83 }, -7241, 20675, 419, 460, 73, 178 }, /* region 347 */ - { { 32769, 84, 108 }, -10123, 20675, 0, 31, 136, 178 }, /* region 348 */ - { { 1, 55, 60 }, -7053, 18426, 356, 402, 80, 179 }, /* region 349 */ - { { 1, 61, 69 }, -7574, 18426, 514, 548, 64, 179 }, /* region 350 */ - { { 1, 70, 79 }, -8174, 18426, 505, 529, 68, 179 }, /* region 351 */ - { { 32769, 80, 108 }, -9233, 23197, 178, 191, 106, 179 }, /* region 352 */ - { { 32769, 36, 96 }, -7730, -24285, 1839, 1901, 17, 180 }, /* region 353 */ - { { 1, 12, 83 }, -6006, 16422, 838, 922, 44, 181 }, /* region 354 */ - { { 1, 84, 93 }, -8406, 18426, 209, 230, 100, 181 }, /* region 355 */ - { { 32769, 94, 108 }, -10108, 16422, 0, 31, 136, 181 }, /* region 356 */ - { { 1, 12, 56 }, -5595, 23197, 1064, 1170, 34, 182 }, /* region 357 */ - { { 1, 57, 72 }, -5995, 23197, 930, 1014, 41, 182 }, /* region 358 */ - { { 32769, 73, 108 }, -7598, 23197, 726, 826, 49, 182 }, /* region 359 */ - { { 32769, 24, 108 }, -7600, 23197, 635, 735, 55, 56 }, /* region 360 */ - { { 1, 36, 83 }, -6006, 13045, 838, 922, 44, 183 }, /* region 361 */ - { { 1, 84, 93 }, -8406, 13045, 209, 230, 100, 183 }, /* region 362 */ - { { 32769, 94, 108 }, -10108, 13045, 0, 31, 136, 183 } /* region 363 */ -}; /* end Regions */ - -/*---------------------------------------------------------------------------- - * Programs - *---------------------------------------------------------------------------- -*/ -const S_PROGRAM eas_programs[] = -{ - { 7864320, 0 } /* program 0 */ -}; /* end Programs */ - -/*---------------------------------------------------------------------------- - * Banks - *---------------------------------------------------------------------------- -*/ -const S_BANK eas_banks[] = -{ - { /* bank 0 */ - 30976, - { - 279, 314, 304, 324, 190, 309, 78, 183, - 90, 75, 361, 72, 70, 68, 118, 65, - 188, 180, 113, 255, 181, 290, 195, 198, - 111, 108, 178, 103, 101, 201, 209, 259, - 63, 61, 296, 152, 208, 300, 154, 155, - 174, 170, 169, 167, 143, 166, 164, 98, - 138, 136, 134, 132, 151, 150, 298, 94, - 240, 242, 246, 293, 244, 140, 129, 120, - 237, 225, 233, 229, 262, 250, 248, 253, - 160, 159, 299, 265, 272, 295, 119, 334, - 161, 156, 335, 343, 336, 149, 93, 301, - 347, 127, 87, 148, 354, 357, 297, 276, - 125, 123, 81, 345, 116, 106, 147, 96, - 273, 268, 267, 266, 360, 274, 349, 271, - 84, 224, 146, 223, 222, 221, 220, 219, - 145, 353, 218, 269, 153, 217, 92, 216 - } - } -}; /* end Banks */ - -/*---------------------------------------------------------------------------- - * Samples - *---------------------------------------------------------------------------- -*/ - -const EAS_SAMPLE eas_samples[] = -{ - 0, -1, -7, -18, -16, 3, 6, -18, -29, -21, 6, 6, -12, -10, -10, -2, - 4, 15, 21, 14, 4, 9, 29, 27, 15, 9, 13, 20, 0, -21, -11, 3, - -11, -37, -36, -7, 11, -4, -26, -23, -4, 15, -4, -15, -11, -10, -1, 9, - 23, 15, 8, 6, 24, 35, 19, 14, 6, 17, 10, -15, -26, -7, -1, -23, - -40, -24, 4, 10, -16, -25, -13, 11, 10, -14, -15, -12, -6, 1, 19, 22, - 6, 7, 15, 40, 31, 22, 7, 7, 15, 5, -22, -21, -5, -9, -33, -32, - -15, 5, -4, -19, -20, 1, 17, -4, -15, -11, -12, -4, 9, 27, 13, 7, - 11, 32, 44, 30, 14, 2, 7, 9, -8, -25, -18, -9, -19, -30, -21, -4, - 2, -10, -21, -13, 15, 8, -11, -13, -16, -12, 0, 20, 24, 9, 9, 19, - 44, 47, 25, 6, 2, 11, -1, -21, -27, -19, -17, -20, -23, -17, -5, -5, - -14, -20, 0, 15, -4, -7, -17, -17, -8, 7, 25, 18, 7, 11, 31, 54, - 41, 14, -1, 10, 3, -14, -27, -29, -21, -16, -16, -18, -17, -11, -10, -16, - -16, 10, 6, -3, -9, -19, -16, -2, 18, 27, 16, 8, 19, 45, 54, 29, - 5, 6, 4, -9, -18, -29, -30, -18, -10, -9, -14, -20, -12, -13, -17, -5, - 12, 7, 2, -16, -22, -13, 8, 25, 23, 12, 11, 32, 53, 48, 17, 9, - 9, -7, -16, -24, -37, -28, -12, -4, -2, -18, -21, -18, -23, -17, 7, 11, - 10, -4, -16, -22, -7, 21, 28, 18, 9, 20, 43, 55, 37, 11, 11, 1, - -14, -17, -31, -34, -21, -10, 4, -2, -20, -23, -26, -29, -3, 6, 13, 8, - -5, -23, -27, 7, 28, 27, 15, 12, 32, 48, 50, 24, 9, 8, -12, -19, - -26, -37, -35, -19, 3, 6, -12, -21, -31, -38, -17, 6, 4, 14, 6, -8, - -35, -15, 19, 26, 21, 7, 23, 43, 52, 42, 14, 9, -2, -16, -21, -25, - -33, -33, -4, 13, 3, -13, -30, -47, -37, 1, 6, 7, 12, 6, -15, -31, - -1, 22, 30, 14, 9, 37, 48, 50, 26, 8, 6, -11, -22, -22, -25, -45, - -22, 13, 15, 1, -22, -43, -56, -21, 7, 6, 10, 15, -7, -25, -21, 7, - 28, 21, 2, 25, 47, 53, 39, 11, 10, 1, -20, -22, -18, -37, -42, 2, - 15, 15, -8, -32, -57, -48, -9, 9, 5, 14, 8, -14, -20, -13, 17, 33, - 8, 9, 37, 52, 55, 25, 7, 8, -11, -23, -15, -23, -47, -20, 12, 21, - 10, -23, -50, -57, -31, 2, 10, 9, 11, -8, -10, -18, -3, 30, 22, 1, - 22, 45, 57, 45, 11, 11, 0, -23, -22, -16, -36, -36, -6, 15, 18, -3, - -43, -56, -49, -21, 5, 11, 12, -2, -8, -9, -15, 12, 31, 9, 10, 34, - 48, 60, 29, 16, 10, -17, -24, -21, -27, -31, -17, 5, 14, 12, -22, -50, - -48, -41, -9, 7, 13, -1, -8, -2, -11, -5, 26, 19, 6, 21, 37, 55, - 49, 25, 22, -5, -20, -24, -26, -29, -23, -9, 8, 13, -1, -41, -48, -47, - -30, -3, 12, 7, -12, -2, 1, -8, 10, 20, 11, 16, 26, 40, 54, 42, - 36, 7, -13, -18, -26, -29, -26, -14, -2, 7, 8, -18, -45, -48, -45, -19, - 6, 11, -10, -8, 5, -7, 2, 12, 17, 15, 16, 23, 45, 55, 48, 27, - -7, -12, -18, -30, -31, -17, -5, -3, 4, 5, -24, -40, -50, -38, -8, 8, - 1, -13, 1, -1, 3, 8, 15, 18, 15, 15, 28, 52, 59, 47, 9, -9, - -10, -25, -40, -29, -3, -5, -13, 1, 3, -26, -47, -53, -23, -2, 5, -11, - -6, 4, 6, 10, 10, 19, 11, 13, 15, 42, 61, 61, 32, 3, -5, -12, - -35, -43, -14, 1, -16, -13, 9, -1, -33, -57, -46, -19, -3, -1, -16, -2, - 5, 15, 6, 17, 9, 5, 9, 26, 54, 65, 52, 21, 3, -6, -21, -48, - -33, -4, -7, -22, -2, 18, -4, -47, -58, -33, -11, 2, -13, -15, 3, 16, - 15, 9, 15, -1, 5, 14, 48, 66, 65, 37, 23, 2, -11, -42, -48, -20, - -4, -23, -18, 18, 19, -17, -61, -52, -27, -2, -5, -24, -7, 9, 20, 14, - 18, 2, -3, 7, 34, 63, 68, 50, 37, 19, -9, -25, -49, -38, -14, -14, - -28, 6, 25, 9, -40, -62, -45, -17, 3, -21, -16, -3, 12, 18, 18, 10, - -6, 0, 16, 56, 69, 63, 43, 38, 2, -20, -42, -44, -33, -14, -25, -10, - 22, 18, -11, -55, -57, -37, -3, -10, -26, -10, 2, 17, 21, 20, -3, -2, - 5, 39, 67, 73, 56, 47, 22, -17, -35, -43, -36, -28, -18, -20, 9, 22, - 8, -33, -56, -53, -26, -2, -23, -24, -11, 4, 23, 30, 4, -3, 0, 27, - 60, 71, 69, 58, 43, -6, -35, -43, -35, -36, -27, -18, -2, 19, 17, -9, - -41, -51, -45, -10, -12, -31, -21, -9, 8, 33, 17, 0, 2, 8, 50, 69, - 75, 70, 64, 16, -31, -47, -35, -32, -34, -25, -14, 10, 16, 5, -26, -42, - -50, -32, -8, -22, -31, -22, -8, 22, 32, 7, 6, 4, 28, 63, 69, 71, - 78, 43, -20, -51, -41, -23, -34, -30, -22, 2, 13, 9, -10, -31, -45, -44, - -21, -19, -27, -36, -26, 2, 29, 24, 12, 11, 13, 45, 69, 68, 81, 70, - 6, -47, -52, -28, -23, -27, -26, -14, 11, 10, -2, -18, -33, -43, -34, -25, - -22, -36, -44, -14, 14, 29, 27, 22, 18, 29, 60, 65, 71, 86, 41, -32, - -57, -41, -23, -22, -22, -24, -4, 10, 0, -11, -21, -31, -37, -37, -29, -29, - -53, -33, -3, 16, 33, 31, 27, 23, 46, 64, 65, 85, 71, -4, -48, -47, - -31, -20, -15, -15, -19, 1, 0, -5, -14, -21, -26, -40, -39, -28, -51, -50, - -18, 4, 26, 38, 36, 30, 32, 61, 64, 70, 80, 31, -35, -43, -40, -25, - -19, -6, -17, -11, 0, -6, -11, -17, -15, -31, -47, -39, -45, -62, -34, -8, - 12, 36, 38, 41, 37, 51, 65, 60, 71, 56, -7, -36, -38, -35, -27, -11, - -5, -17, -8, -8, -9, -17, -13, -20, -37, -47, -50, -62, -49, -16, 1, 25, - 34, 43, 53, 49, 62, 58, 62, 65, 22, -23, -31, -34, -35, -19, -3, -8, - -18, -7, -4, -14, -17, -9, -27, -40, -56, -68, -64, -27, -4, 9, 28, 37, - 54, 60, 61, 59, 54, 63, 43, -1, -25, -23, -37, -28, -8, 4, -10, -15, - -3, -7, -26, -15, -11, -29, -51, -71, -71, -49, -8, 5, 14, 30, 48, 66, - 68, 63, 51, 56, 51, 18, -18, -20, -25, -39, -23, -5, 3, -13, -6, -5, - -21, -28, -10, -18, -43, -67, -78, -64, -25, 1, 8, 15, 38, 60, 75, 74, - 58, 54, 57, 28, -7, -18, -8, -31, -34, -15, 4, -2, -4, 0, -15, -32, - -21, -8, -28, -57, -77, -75, -44, -12, 6, 8, 20, 49, 68, 77, 71, 53, - 61, 41, 3, -18, -4, -14, -36, -28, -7, 1, 7, 6, -8, -34, -35, -16, - -15, -41, -66, -75, -59, -31, -4, 10, 11, 31, 56, 72, 85, 63, 58, 55, - 14, -17, -10, -1, -24, -30, -22, -6, 11, 16, 9, -27, -43, -27, -15, -26, - -53, -63, -66, -46, -21, 3, 13, 15, 40, 63, 83, 78, 60, 67, 38, -9, - -20, 4, -7, -23, -25, -22, 6, 24, 20, -8, -48, -43, -24, -16, -39, -55, - -57, -57, -36, -10, 9, 11, 22, 50, 73, 88, 71, 65, 59, 14, -24, -9, - -3, -15, -18, -31, -14, 25, 28, 10, -36, -56, -41, -21, -29, -48, -47, -51, - -50, -26, -2, 11, 6, 30, 57, 82, 83, 69, 65, 35, -12, -16, -3, -10, - -12, -21, -26, 11, 33, 26, -7, -56, -54, -32, -26, -41, -39, -37, -52, -41, - -16, 5, 7, 11, 37, 72, 91, 78, 66, 55, 11, -19, -14, -15, -9, -7, - -19, -8, 22, 30, 13, -32, -62, -44, -31, -34, -40, -29, -40, -46, -29, -8, - 2, 1, 18, 49, 84, 86, 72, 67, 39, -6, -21, -25, -16, 2, -6, -12, - 6, 23, 18, -7, -51, -56, -39, -33, -41, -30, -24, -41, -36, -17, -8, -5, - 7, 32, 66, 84, 78, 75, 58, 20, -15, -29, -33, 2, 4, -1, 1, 11, - 17, 4, -27, -56, -46, -36, -37, -39, -22, -24, -38, -23, -16, -16, -7, 18, - 46, 72, 82, 81, 72, 44, -1, -25, -41, -18, 14, 8, 10, 0, 5, 2, - -11, -40, -50, -42, -38, -37, -33, -11, -27, -26, -20, -22, -13, 0, 31, 52, - 73, 82, 80, 61, 26, -16, -37, -40, 0, 18, 17, 12, -5, -8, -10, -21, - -41, -43, -44, -36, -35, -20, -12, -23, -14, -32, -21, -12, 15, 38, 58, 76, - 82, 72, 46, 4, -26, -41, -23, 14, 25, 18, 2, -23, -18, -14, -29, -35, - -45, -42, -35, -29, -15, -19, -3, -23, -32, -19, -1, 27, 40, 67, 81, 76, - 61, 26, -11, -33, -36, -6, 28, 28, 13, -15, -38, -19, -20, -26, -36, -46, - -35, -32, -20, -21, -4, -4, -28, -25, -16, 13, 31, 49, 74, 79, 69, 48, - 8, -16, -33, -21, 7, 33, 24, 5, -32, -38, -22, -21, -22, -41, -43, -32, - -25, -23, -16, 6, -9, -29, -28, -5, 20, 39, 58, 75, 71, 60, 22, 0, - -18, -27, -10, 16, 30, 15, -14, -49, -34, -19, -16, -27, -43, -31, -25, -27, - -24, -1, 7, -15, -32, -22, 3, 28, 50, 61, 67, 59, 38, 13, 5, -17, - -16, -3, 21, 23, 3, -34, -49, -28, -17, -19, -34, -34, -18, -26, -32, -16, - 14, 6, -23, -34, -11, 14, 44, 54, 56, 60, 44, 25, 18, 2, -18, -9, - 3, 21, 9, -14, -45, -39, -24, -22, -28, -32, -18, -17, -36, -30, 5, 21, - -5, -31, -27, 1, 30, 56, 46, 50, 47, 32, 29, 20, -4, -9, -9, 4, - 10, -2, -28, -38, -31, -33, -26, -26, -19, -9, -24, -38, -11, 24, 10, -17, - -36, -14, 14, 48, 49, 37, 43, 39, 33, 32, 11, 1, -5, -11, -6, -3, - -16, -29, -28, -40, -38, -27, -20, -6, -11, -31, -29, 15, 22, 0, -25, -25, - 2, 31, 51, 38, 35, 41, 41, 34, 27, 8, 6, -7, -20, -14, -7, -20, - -19, -34, -52, -35, -23, -11, -5, -18, -33, -5, 26, 5, -11, -27, -11, 17, - 43, 43, 30, 29, 46, 45, 38, 17, 6, 2, -22, -27, -16, -16, -18, -18, - -53, -48, -23, -19, -3, -10, -21, -19, 18, 12, -6, -20, -21, 6, 29, 42, - 31, 23, 37, 54, 48, 31, 13, 13, -13, -31, -25, -16, -16, -11, -38, -62, - -33, -28, -7, -3, -12, -17, 6, 16, 2, -11, -17, -5, 15, 35, 34, 25, - 23, 44, 55, 41, 22, 14, 2, -29, -32, -23, -11, -13, -18, -60, -50, -32, - -16, -6, -11, -4, 3, 11, 3, -1, -14, -8, 5, 20, 39, 31, 24, 26, - 54, 57, 37, 16, 8, -19, -32, -27, -17, -17, -17, -36, -58, -40, -32, -11, - -11, -2, 6, 10, 2, 0, -4, -12, 1, 8, 33, 42, 26, 17, 35, 63, - 53, 26, 6, -9, -27, -30, -25, -17, -23, -24, -47, -51, -38, -17, -11, -6, - 12, 17, 8, -8, -1, -10, -7, 4, 18, 40, 33, 18, 22, 49, 70, 46, - 12, -11, -16, -23, -27, -19, -28, -26, -36, -50, -48, -31, -13, -13, 10, 20, - 21, 0, -6, -1, -7, 3, 15, 32, 40, 24, 17, 31, 58, 67, 28, -2, - -21, -14, -31, -18, -24, -33, -33, -49, -49, -41, -18, -20, -2, 20, 23, 19, - -12, -7, -2, -3, 10, 22, 33, 37, 21, 23, 39, 72, 51, 10, -17, -18, - -20, -29, -17, -33, -36, -49, -48, -47, -24, -16, -15, 11, 24, 30, 6, -12, - -2, -2, -1, 18, 29, 35, 27, 25, 25, 56, 63, 23, -5, -19, -14, -23, - -21, -21, -38, -52, -54, -40, -32, -15, -23, -7, 18, 31, 22, -2, -7, 3, - 0, 12, 21, 34, 31, 28, 22, 35, 66, 40, 2, -19, -19, -15, -21, -16, - -30, -60, -62, -42, -33, -18, -18, -22, 4, 29, 29, 14, -2, -4, 5, 6, - 16, 28, 36, 24, 29, 26, 52, 49, 14, -13, -24, -19, -14, -15, -17, -53, - -75, -54, -32, -18, -11, -26, -18, 18, 28, 25, 13, -6, 4, 13, 9, 17, - 37, 24, 28, 33, 37, 49, 26, 1, -19, -26, -16, -11, -7, -33, -77, -71, - -45, -15, -8, -18, -30, 1, 25, 21, 26, 3, 5, 17, 14, 11, 33, 27, - 17, 34, 38, 42, 33, 6, -11, -28, -22, -12, -3, -16, -60, -81, -62, -25, - -2, -14, -27, -17, 20, 18, 24, 18, 6, 16, 21, 12, 24, 28, 12, 26, - 44, 42, 35, 13, -5, -21, -31, -18, -2, -2, -42, -77, -76, -47, -10, -6, - -22, -24, 4, 16, 18, 25, 18, 18, 24, 20, 20, 32, 14, 11, 40, 49, - 41, 21, -6, -13, -27, -28, -5, 5, -18, -59, -79, -63, -30, -6, -11, -28, - -11, 8, 10, 23, 27, 17, 24, 25, 25, 28, 19, 8, 25, 47, 46, 27, - -5, -15, -18, -33, -20, -5, -3, -35, -70, -66, -51, -22, -7, -21, -19, -3, - 6, 17, 29, 26, 23, 28, 25, 32, 23, 14, 11, 39, 50, 38, 3, -19, - -10, -21, -29, -12, -3, -12, -55, -65, -56, -42, -14, -10, -23, -11, -3, 10, - 23, 32, 26, 28, 28, 35, 29, 22, 13, 18, 41, 43, 18, -16, -18, -14, - -29, -21, -11, -8, -32, -61, -52, -52, -30, -11, -18, -16, -10, 2, 22, 35, - 30, 25, 32, 34, 40, 27, 19, 11, 23, 39, 32, -1, -22, -14, -22, -23, - -14, -11, -17, -45, -52, -51, -51, -22, -17, -19, -17, -10, 11, 35, 39, 29, - 26, 34, 43, 43, 27, 16, 12, 25, 31, 18, -13, -20, -19, -22, -12, -14, - -15, -28, -44, -47, -53, -33, -15, -22, -24, -20, 5, 27, 38, 31, 21, 27, - 46, 51, 40, 18, 8, 13, 23, 24, 3, -21, -22, -22, -8, -9, -22, -26, - -31, -40, -51, -44, -17, -15, -26, -31, -10, 24, 35, 37, 25, 21, 42, 57, - 53, 30, 11, 7, 11, 21, 12, -11, -23, -25, -12, 0, -18, -32, -31, -30, - -45, -46, -26, -13, -25, -39, -25, 15, 36, 29, 25, 20, 37, 58, 63, 46, - 15, 3, -2, 19, 16, -2, -19, -25, -23, 4, -4, -31, -36, -29, -32, -43, - -37, -17, -16, -39, -43, -2, 34, 31, 21, 17, 30, 62, 67, 62, 27, 9, - -9, 3, 26, 8, -18, -26, -26, -5, 9, -23, -44, -33, -26, -33, -40, -28, - -12, -30, -52, -24, 23, 33, 15, 14, 22, 54, 75, 68, 47, 14, -9, -12, - 19, 23, -12, -20, -20, -13, 11, -6, -40, -41, -19, -23, -34, -34, -14, -13, - -48, -48, 4, 35, 23, 7, 13, 40, 77, 78, 57, 31, -3, -18, 3, 27, - 7, -24, -19, -16, 1, 5, -29, -49, -28, -13, -26, -34, -26, -4, -30, -57, - -24, 22, 30, 6, 7, 31, 63, 86, 68, 42, 10, -19, -13, 15, 25, -10, - -22, -14, -7, 6, -11, -45, -40, -14, -24, -35, -31, -12, -8, -51, -44, -2, - 29, 11, -1, 22, 47, 74, 78, 49, 25, -8, -26, -4, 26, 12, -16, -19, - -11, -1, -1, -28, -45, -22, -13, -29, -29, -23, -1, -26, -55, -26, 14, 20, - -3, 13, 39, 63, 80, 61, 33, 8, -22, -25, 10, 22, -1, -14, -15, -7, - -1, -14, -37, -26, -13, -25, -28, -26, -2, -5, -48, -44, -7, 18, 3, 9, - 30, 49, 71, 70, 45, 23, -13, -33, -5, 22, 11, -7, -17, -14, -6, -8, - -29, -29, -15, -19, -26, -31, -15, 6, -25, -52, -30, 7, 7, 2, 21, 40, - 60, 67, 52, 33, 7, -29, -19, 16, 22, 4, -8, -15, -11, -6, -23, -24, - -10, -11, -23, -27, -22, 1, 0, -34, -45, -14, 2, 1, 15, 35, 52, 62, - 49, 36, 21, -16, -26, 1, 20, 12, -7, -10, -20, -10, -19, -28, -9, -8, - -15, -26, -27, -11, 2, -15, -41, -34, -10, -7, 6, 32, 48, 56, 51, 35, - 26, 1, -24, -10, 15, 18, 2, -9, -17, -18, -11, -32, -6, 2, -9, -18, - -22, -17, -3, -2, -21, -34, -26, -13, -8, 20, 47, 53, 52, 38, 24, 5, - -14, -15, 9, 14, 4, -6, -14, -21, -14, -28, -22, 12, 0, -10, -23, -24, - -13, 2, -10, -23, -34, -26, -13, 4, 39, 58, 51, 45, 28, 6, -9, -11, - 3, 17, 7, -3, -10, -18, -15, -22, -35, 2, 18, 2, -11, -23, -20, -1, - 0, -15, -24, -39, -25, -6, 17, 52, 56, 47, 35, 6, -10, -8, 0, 13, - 13, -2, -9, -13, -13, -25, -43, -16, 21, 19, -3, -21, -25, -10, 2, -5, - -14, -30, -40, -13, -1, 34, 58, 51, 44, 18, -10, -9, -2, 6, 12, 7, - -7, -12, -12, -18, -40, -33, 9, 32, 19, -9, -23, -15, 1, 3, -9, -18, - -40, -28, -4, 7, 47, 59, 49, 24, 1, -13, -5, 1, 10, 11, 5, -12, - -12, -15, -35, -42, -9, 23, 33, 9, -22, -24, -5, 1, -5, -12, -30, -40, - -7, -3, 22, 56, 58, 35, 11, -12, -9, -5, -1, 7, 13, -4, -13, -13, - -25, -43, -29, 10, 34, 32, -6, -27, -8, 3, -5, -13, -22, -40, -18, -3, - -1, 37, 61, 46, 23, -5, -13, -4, -4, -7, 12, 14, -10, -18, -22, -34, - -35, -10, 22, 39, 23, -15, -14, 5, 3, -8, -15, -36, -23, -1, -7, 14, - 51, 57, 37, 8, -13, -7, -2, -14, -6, 20, 3, -21, -26, -27, -30, -27, - 1, 28, 36, 7, -10, 0, 5, -8, -14, -30, -29, -3, -10, -5, 31, 56, - 46, 19, -7, -10, 3, -11, -21, 9, 19, -10, -30, -29, -19, -24, -20, 10, - 35, 29, 8, -1, 5, -2, -13, -28, -33, -3, -1, -13, 12, 49, 55, 31, - -1, -12, 2, -3, -26, -2, 21, 2, -28, -34, -21, -17, -29, -12, 23, 34, - 19, 6, 7, 4, -4, -23, -40, -10, 7, -12, -2, 34, 55, 36, 8, -10, - 1, 3, -19, -18, 15, 15, -10, -33, -30, -9, -19, -25, 4, 32, 30, 16, - 11, 10, 3, -15, -35, -27, 9, -4, -10, 16, 52, 42, 12, -7, -6, 4, - -6, -21, -2, 17, 0, -20, -41, -13, -9, -31, -16, 18, 34, 23, 14, 9, - 10, -7, -26, -34, -3, 10, -10, 2, 42, 51, 16, -8, -11, -2, -2, -11, - -9, 9, 2, -8, -36, -31, 3, -23, -30, -1, 27, 27, 23, 15, 18, 3, - -17, -31, -19, 8, 1, -4, 24, 51, 30, -11, -16, -6, -3, -5, -10, 3, - 1, -10, -22, -41, -4, -6, -29, -18, 12, 25, 26, 23, 20, 11, -10, -21, - -27, -4, 7, 0, 13, 41, 40, 3, -24, -11, -1, -2, -3, 5, 5, -14, - -15, -35, -20, 0, -19, -24, -4, 11, 23, 31, 24, 16, -3, -13, -23, -14, - 2, 3, 18, 32, 38, 21, -20, -29, -5, -2, 0, 5, 11, -14, -22, -25, - -26, -3, -11, -26, -11, -2, 8, 32, 34, 24, 2, -8, -16, -13, 1, 1, - 10, 31, 31, 33, 1, -36, -22, 0, 0, 8, 18, -3, -27, -22, -22, -10, - -9, -24, -16, -5, -16, 16, 40, 34, 8, -3, -13, -12, 1, 1, 3, 30, - 30, 24, 18, -28, -35, -13, -2, 6, 19, 10, -25, -28, -15, -9, -10, -19, - -20, -3, -15, -8, 27, 42, 25, 1, -14, -18, 7, 9, -1, 19, 37, 19, - 23, -10, -41, -26, -9, 2, 20, 19, -17, -35, -21, 0, -9, -18, -20, -7, - -8, -24, 6, 37, 43, 14, -10, -22, 3, 18, 4, 6, 36, 23, 16, 4, - -32, -37, -19, -3, 17, 27, 0, -37, -34, -3, 7, -17, -27, -19, -1, -20, - -13, 17, 44, 35, 2, -22, -9, 19, 20, 2, 26, 32, 15, 5, -17, -40, - -29, -9, 10, 28, 17, -23, -41, -21, 9, -2, -27, -30, -5, -7, -21, -4, - 27, 47, 27, -14, -21, 11, 29, 14, 15, 32, 20, 4, -11, -31, -38, -15, - 2, 22, 22, -3, -32, -34, -6, 8, -13, -38, -19, 0, -16, -14, 6, 37, - 39, 11, -18, -4, 25, 25, 16, 24, 27, 7, -10, -24, -38, -25, 0, 12, - 23, 8, -16, -31, -23, 0, 0, -27, -33, -2, -9, -16, -11, 17, 41, 32, - 5, -15, 12, 25, 24, 21, 27, 14, -4, -21, -31, -29, -4, 9, 19, 9, - -9, -19, -25, -10, -5, -15, -38, -13, -6, -13, -17, -1, 30, 36, 27, -2, - 2, 20, 24, 25, 24, 19, 2, -16, -32, -29, -13, 8, 18, 16, -6, -13, - -21, -15, -14, -13, -26, -22, -6, -11, -14, -14, 11, 30, 37, 17, 1, 13, - 20, 23, 24, 21, 5, -10, -32, -31, -15, 0, 17, 22, -3, -15, -17, -11, - -15, -19, -23, -22, -8, -8, -13, -18, -8, 18, 40, 38, 12, 12, 15, 21, - 23, 24, 7, -9, -22, -34, -19, -6, 11, 30, 9, -17, -20, -16, -11, -22, - -30, -27, -8, -7, -10, -19, -16, -2, 32, 52, 31, 17, 16, 13, 21, 19, - 19, -9, -17, -30, -25, -7, 3, 29, 25, -9, -21, -20, -11, -14, -29, -37, - -14, 2, -5, -14, -22, -12, 13, 50, 49, 27, 23, 15, 13, 9, 18, 7, - -22, -22, -28, -11, -5, 19, 35, 13, -20, -24, -18, -8, -22, -38, -31, 2, - 3, -6, -26, -22, -3, 38, 56, 42, 34, 21, 12, 6, 11, 17, -15, -24, - -20, -15, -6, 9, 29, 29, -4, -28, -23, -14, -13, -30, -39, -16, 9, 6, - -12, -33, -16, 19, 57, 49, 41, 30, 13, 4, -1, 6, -4, -27, -21, -13, - -6, 2, 12, 34, 12, -24, -24, -20, -16, -24, -38, -33, 2, 12, -2, -30, - -31, 2, 45, 59, 46, 41, 24, 8, -3, -6, 1, -15, -25, -16, -3, 5, - 2, 21, 28, -11, -26, -23, -18, -20, -32, -40, -14, 14, 11, -10, -40, -20, - 30, 60, 55, 42, 34, 15, 6, -12, -12, -4, -19, -21, -9, 8, 4, 10, - 28, 6, -25, -22, -20, -22, -29, -38, -27, 5, 16, 4, -24, -39, 12, 51, - 61, 51, 41, 27, 10, -7, -25, -9, -10, -17, -15, 0, 9, 5, 21, 15, - -13, -27, -17, -21, -23, -38, -33, -11, 10, 6, -4, -38, -17, 36, 55, 55, - 45, 35, 21, 4, -27, -25, -2, -10, -14, -13, 3, 5, 14, 16, 0, -24, - -21, -18, -22, -36, -39, -17, -3, 5, 3, -15, -28, 16, 50, 53, 52, 43, - 29, 13, -14, -36, -10, -1, -15, -15, -6, 6, 5, 13, 4, -11, -24, -17, - -18, -27, -43, -18, -12, -7, 4, 3, -17, -4, 38, 53, 52, 48, 41, 23, - 0, -31, -30, 2, -7, -14, -13, -5, 3, 11, 7, -4, -21, -25, -21, -19, - -39, -23, -9, -19, -8, 5, -1, -10, 24, 46, 48, 46, 44, 32, 10, -18, - -37, -7, 0, -12, -14, -13, -4, 8, 9, 1, -16, -29, -28, -17, -33, -31, - -6, -21, -21, -4, 12, 3, 13, 41, 46, 44, 46, 44, 20, -7, -36, -27, - 6, -3, -18, -21, -12, 2, 12, 6, -5, -27, -36, -21, -20, -34, -12, -8, - -29, -16, 11, 15, 10, 28, 47, 46, 41, 45, 35, 5, -24, -30, -5, 3, - -14, -26, -16, -7, 7, 8, -3, -18, -39, -32, -16, -28, -26, -8, -23, -26, - 0, 19, 16, 20, 42, 55, 45, 38, 39, 20, -11, -24, -13, -2, -6, -25, - -22, -7, -5, 13, 0, -11, -36, -41, -20, -16, -29, -16, -14, -28, -12, 13, - 17, 15, 32, 50, 57, 41, 38, 30, 2, -14, -9, -3, -3, -19, -33, -10, - -7, 7, 7, -13, -30, -42, -28, -13, -17, -26, -14, -22, -15, 7, 19, 15, - 26, 46, 59, 51, 34, 33, 12, -7, -11, -4, -5, -13, -38, -23, -3, 3, - 15, -7, -32, -45, -34, -21, -11, -27, -25, -21, -19, -1, 13, 15, 22, 37, - 53, 62, 46, 34, 15, -2, 0, -4, -8, -9, -34, -38, -8, 4, 17, 3, - -25, -50, -44, -26, -12, -13, -32, -24, -20, -7, 11, 18, 17, 33, 50, 65, - 57, 41, 24, 0, 5, 5, -9, -11, -25, -44, -25, -1, 17, 13, -18, -42, - -51, -33, -20, -7, -27, -29, -23, -16, 0, 14, 14, 28, 48, 60, 66, 51, - 34, 4, 0, 15, -3, -14, -20, -35, -37, -12, 12, 27, -7, -37, -50, -40, - -29, -15, -15, -30, -24, -15, -7, 6, 17, 25, 46, 59, 68, 63, 43, 20, - -6, 14, 10, -8, -20, -30, -34, -22, -2, 24, 15, -30, -49, -49, -37, -28, - -15, -26, -28, -18, -11, -7, 7, 27, 42, 58, 70, 70, 53, 35, 4, 0, - 18, -1, -15, -32, -31, -26, -12, 12, 28, -4, -44, -53, -44, -39, -25, -23, - -28, -19, -11, -12, -16, 13, 42, 56, 71, 71, 57, 45, 23, -3, 10, 11, - -6, -27, -35, -25, -22, -1, 23, 17, -29, -54, -46, -44, -39, -29, -28, -21, - -15, -15, -26, -12, 39, 57, 70, 73, 60, 49, 41, 13, 1, 11, 0, -16, - -32, -25, -15, -14, 10, 23, -5, -48, -46, -42, -49, -43, -31, -24, -15, -13, - -24, -32, 18, 59, 71, 77, 67, 57, 47, 33, 3, 5, 5, -9, -23, -33, - -16, -14, -5, 17, 12, -29, -44, -35, -50, -57, -43, -30, -18, -11, -22, -39, - -9, 44, 68, 82, 69, 61, 49, 42, 18, 5, 5, -8, -12, -26, -14, -7, - -9, 5, 16, -6, -36, -32, -42, -62, -55, -39, -29, -15, -14, -34, -30, 20, - 59, 82, 79, 66, 58, 45, 38, 9, 1, -7, -11, -16, -19, -3, -6, -6, - 9, 5, -22, -32, -32, -58, -70, -56, -42, -24, -16, -25, -39, -9, 41, 72, - 86, 73, 65, 46, 40, 30, -4, -7, -14, -12, -20, -3, 4, -5, 1, 8, - -9, -27, -25, -40, -67, -67, -55, -38, -24, -17, -25, -28, 16, 61, 81, 82, - 71, 60, 37, 42, 17, -14, -17, -11, -13, -8, 10, 2, -2, 1, -1, -17, - -20, -26, -54, -69, -70, -58, -34, -25, -16, -23, -9, 37, 70, 87, 80, 68, - 44, 38, 39, -5, -27, -19, -12, -6, 13, 10, 4, 1, 1, -5, -19, -20, - -37, -59, -71, -71, -54, -35, -17, -9, -20, 11, 49, 80, 86, 72, 54, 36, - 45, 23, -25, -34, -16, -9, 11, 17, 8, 5, -4, -2, -15, -19, -26, -50, - -69, -77, -71, -51, -29, -7, -11, -6, 26, 64, 87, 78, 60, 40, 42, 45, - 2, -38, -34, -12, 10, 24, 10, 11, 3, -1, -6, -20, -16, -31, -61, -81, - -80, -69, -41, -16, -5, -8, 10, 47, 81, 86, 70, 44, 36, 48, 32, -21, - -48, -31, -3, 24, 24, 10, 15, 0, 2, -17, -21, -18, -45, -81, -87, -80, - -57, -33, -11, -6, 2, 30, 74, 86, 77, 55, 34, 42, 48, 13, -39, -50, - -20, 15, 34, 14, 16, 12, 4, -5, -26, -16, -19, -64, -92, -91, -65, -43, - -26, -12, -1, 16, 47, 83, 76, 66, 40, 33, 45, 33, -8, -52, -41, -5, - 32, 30, 15, 25, 13, 8, -22, -28, -11, -34, -85, -101, -86, -52, -36, -25, - -13, 15, 32, 69, 80, 69, 52, 32, 37, 39, 19, -30, -54, -24, 10, 38, - 25, 25, 22, 18, -6, -35, -20, -14, -59, -98, -99, -68, -41, -30, -23, 5, - 28, 52, 74, 67, 59, 43, 32, 35, 32, -2, -47, -38, -13, 23, 33, 31, - 26, 27, 16, -29, -37, -15, -33, -80, -104, -89, -54, -35, -31, -11, 17, 42, - 63, 68, 60, 59, 37, 27, 33, 22, -28, -37, -26, 3, 32, 38, 30, 25, - 30, -3, -41, -29, -23, -55, -90, -98, -76, -39, -32, -21, 4, 36, 52, 61, - 61, 63, 48, 24, 28, 34, -10, -31, -29, -14, 15, 37, 37, 28, 31, 19, - -27, -40, -24, -38, -69, -95, -96, -60, -32, -26, -10, 19, 45, 53, 58, 59, - 58, 29, 23, 39, 14, -21, -25, -23, 1, 27, 43, 34, 34, 21, 0, -36, - -32, -31, -49, -84, -102, -83, -41, -22, -19, -1, 35, 49, 52, 53, 56, 39, - 23, 34, 33, -3, -23, -22, -10, 17, 36, 36, 39, 26, 8, -16, -34, -29, - -36, -61, -93, -95, -58, -26, -18, -11, 22, 48, 53, 53, 51, 41, 31, 33, - 37, 16, -15, -24, -14, 4, 29, 34, 41, 32, 8, -7, -19, -28, -30, -54, - -83, -101, -76, -40, -20, -21, 1, 36, 54, 55, 44, 33, 32, 35, 36, 30, - 7, -26, -19, -5, 22, 36, 37, 37, 15, -3, -5, -15, -24, -43, -75, -94, - -87, -47, -29, -25, -14, 26, 48, 62, 49, 29, 23, 35, 45, 38, 19, -16, - -28, -7, 10, 29, 32, 38, 23, -2, -10, -6, -12, -28, -67, -90, -98, -59, - -32, -28, -25, 3, 43, 56, 59, 25, 16, 24, 46, 43, 31, 0, -31, -14, - 5, 25, 29, 32, 29, 6, -13, -6, -3, -8, -49, -85, -97, -75, -31, -30, - -30, -12, 31, 50, 61, 40, 12, 14, 34, 53, 43, 20, -23, -20, -3, 21, - 29, 23, 24, 15, -10, -8, -1, 2, -25, -75, -98, -92, -42, -31, -35, -24, - 14, 41, 50, 49, 22, 11, 20, 45, 52, 39, 0, -26, -12, 9, 35, 25, - 18, 14, 1, -13, -6, 4, 3, -49, -89, -102, -61, -27, -30, -27, -4, 34, - 46, 46, 32, 17, 13, 26, 47, 50, 29, -19, -22, -4, 30, 37, 15, 7, - 7, -5, -10, -4, 9, -20, -72, -100, -86, -41, -33, -31, -16, 18, 43, 34, - 32, 27, 23, 15, 31, 47, 48, 9, -24, -16, 12, 43, 25, -2, 0, 9, - -9, -15, 2, 8, -40, -87, -99, -69, -37, -31, -19, 6, 38, 35, 25, 31, - 35, 26, 18, 36, 49, 40, -10, -22, -9, 29, 40, 6, -12, 6, 6, -16, - -11, 9, -6, -61, -95, -90, -58, -35, -26, -5, 23, 36, 18, 21, 36, 41, - 28, 22, 38, 52, 23, -17, -17, 7, 39, 21, -12, -13, 16, -8, -22, -5, - 6, -25, -77, -93, -79, -46, -30, -11, 15, 36, 22, 5, 29, 47, 47, 24, - 22, 41, 48, 7, -15, -4, 22, 33, 6, -23, 4, 8, -21, -15, -1, -5, - -49, -79, -92, -71, -43, -20, 11, 31, 29, 4, 16, 40, 55, 41, 22, 31, - 50, 25, -9, -2, 8, 23, 16, -17, -6, 8, -10, -15, -6, -4, -29, -56, - -80, -86, -61, -42, 0, 30, 33, 12, 2, 24, 47, 55, 37, 28, 39, 40, - 4, -1, 6, 6, 16, -4, -13, 1, -2, -9, -11, -11, -21, -35, -55, -82, - -80, -64, -24, 27, 36, 23, 3, 10, 35, 61, 55, 40, 35, 35, 19, 6, - 12, 4, 1, 3, -12, -3, -2, -4, -4, -14, -23, -30, -37, -58, -83, -84, - -58, 8, 37, 33, 11, 3, 20, 46, 62, 55, 50, 28, 16, 12, 15, 9, - -4, -9, -9, -4, -5, -7, 2, -7, -28, -35, -31, -36, -67, -90, -86, -23, - 28, 38, 25, 5, 13, 34, 58, 58, 69, 50, 15, 10, 20, 16, -3, -14, - -14, -2, 1, -12, -3, 3, -20, -36, -39, -26, -46, -81, -98, -61, 6, 27, - 30, 16, 12, 25, 50, 57, 66, 74, 31, 4, 16, 21, 8, -13, -21, -10, - 8, -5, -11, 6, -8, -31, -40, -29, -30, -66, -93, -84, -22, 17, 22, 26, - 16, 20, 43, 56, 56, 70, 60, 17, 8, 18, 15, -10, -26, -21, 6, 7, - -12, -1, 1, -20, -33, -34, -31, -51, -79, -92, -52, -6, 9, 19, 23, 21, - 40, 57, 59, 60, 72, 43, 17, 13, 18, 3, -23, -32, -5, 14, -7, -11, - 7, -12, -26, -31, -37, -46, -66, -85, -67, -21, -5, 3, 16, 22, 37, 54, - 59, 55, 60, 58, 30, 16, 13, 11, -15, -34, -23, 9, 7, -12, -2, -4, - -19, -16, -31, -49, -64, -76, -72, -35, -12, -14, 0, 15, 34, 53, 60, 58, - 53, 57, 43, 30, 18, 12, -4, -27, -28, -8, 14, -3, -9, -2, -13, -9, - -17, -49, -66, -70, -69, -44, -15, -19, -11, 2, 21, 53, 64, 68, 55, 48, - 44, 36, 28, 15, -1, -18, -23, -19, -4, 5, -3, 1, -9, -7, -1, -35, - -70, -74, -70, -50, -21, -14, -22, -7, -1, 39, 66, 77, 69, 46, 38, 36, - 38, 22, 5, -12, -16, -12, -17, -8, -5, 2, 1, -6, 5, -13, -64, -78, - -73, -60, -31, -14, -17, -16, -10, 7, 61, 79, 81, 57, 38, 28, 32, 24, - 9, -4, -10, -4, -11, -20, -13, -2, 11, 4, 4, -2, -41, -76, -76, -69, - -43, -22, -12, -17, -14, -14, 25, 74, 92, 79, 47, 31, 26, 26, 11, 3, - -5, 0, 0, -20, -26, -11, 9, 14, 9, 4, -24, -61, -76, -74, -53, -30, - -13, -8, -12, -25, -8, 51, 90, 93, 63, 42, 21, 18, 13, 6, 2, 1, - 8, -12, -30, -27, -2, 14, 18, 11, -13, -48, -68, -79, -70, -44, -19, -2, - -5, -21, -31, 18, 77, 100, 81, 55, 29, 7, 8, 6, 7, 4, 14, 0, - -26, -34, -13, 9, 16, 17, 1, -35, -58, -70, -82, -62, -29, -2, 1, -14, - -36, -15, 50, 89, 95, 71, 46, 5, -6, 4, 11, 3, 11, 14, -12, -31, - -22, -2, 8, 16, 16, -15, -53, -56, -80, -81, -41, -5, 9, -3, -30, -34, - 17, 73, 97, 86, 63, 25, -12, -6, 11, 13, 1, 15, 4, -19, -25, -5, - 2, 9, 19, 10, -39, -48, -61, -95, -67, -17, 12, 8, -23, -43, -9, 49, - 85, 91, 76, 50, 1, -23, 2, 22, 5, 2, 14, -5, -23, -12, 0, -2, - 13, 17, -15, -48, -43, -83, -88, -38, 5, 17, -11, -41, -28, 27, 67, 83, - 82, 65, 29, -21, -18, 21, 19, -7, 3, 6, -8, -14, 1, 0, 0, 13, - 2, -34, -42, -59, -99, -63, -12, 17, 0, -35, -42, 1, 53, 69, 79, 72, - 53, -1, -34, 2, 32, 3, -8, 1, 2, -2, -3, 8, -2, 3, 7, -18, - -40, -39, -76, -81, -35, 9, 17, -22, -46, -24, 34, 59, 68, 74, 66, 27, - -26, -22, 31, 24, -10, -11, 0, 14, 1, 5, 8, -5, -2, -10, -34, -35, - -48, -77, -59, -13, 20, -4, -37, -35, 8, 47, 55, 68, 74, 49, -4, -34, - 10, 39, 1, -13, -11, 14, 14, 3, 20, 6, -9, -14, -29, -37, -28, -56, - -66, -42, 9, 9, -25, -38, -14, 27, 45, 54, 72, 61, 21, -25, -14, 31, - 19, -10, -15, -2, 22, 6, 22, 24, -4, -20, -28, -38, -24, -28, -54, -57, - -20, 14, -10, -29, -26, 2, 29, 39, 61, 66, 39, -6, -25, 16, 30, 0, - -16, -8, 12, 13, 18, 38, 10, -20, -36, -34, -31, -16, -33, -56, -42, 0, - 0, -21, -22, -12, 11, 25, 49, 68, 53, 14, -20, -3, 29, 15, -11, -12, - 3, 13, 13, 42, 34, -12, -39, -37, -27, -22, -18, -44, -50, -21, 3, -12, - -15, -18, -5, 9, 27, 60, 60, 32, -6, -12, 21, 25, -4, -12, -2, 7, - 8, 33, 53, 8, -37, -41, -25, -22, -16, -27, -47, -34, -10, -10, -15, -15, - -15, -5, 5, 41, 63, 44, 12, -11, 10, 32, 10, -14, -8, 8, 5, 19, - 53, 34, -24, -43, -25, -14, -15, -19, -35, -35, -20, -12, -8, -14, -17, -19, - -13, 19, 55, 53, 22, -8, 4, 31, 26, -8, -13, 6, 10, 7, 39, 50, - -2, -41, -31, -10, -13, -23, -31, -33, -24, -15, -7, -13, -16, -22, -23, -6, - 38, 55, 34, 1, -1, 23, 34, 9, -18, -3, 14, 9, 20, 51, 24, -28, - -37, -6, 2, -20, -30, -27, -21, -22, -6, -12, -17, -21, -32, -27, 9, 49, - 43, 12, -4, 14, 34, 24, -9, -12, 12, 19, 13, 30, 37, -3, -35, -15, - 12, -10, -31, -30, -15, -18, -13, -3, -19, -20, -31, -35, -17, 28, 44, 22, - 0, 7, 28, 27, 5, -15, 1, 20, 20, 17, 28, 19, -21, -23, 12, 8, - -22, -32, -20, -8, -15, 0, -13, -23, -25, -43, -36, 4, 37, 30, 11, 4, - 22, 28, 15, 0, -10, 9, 23, 14, 11, 24, 5, -21, 2, 17, -8, -27, - -27, -7, -10, -6, -1, -20, -26, -39, -53, -20, 23, 36, 17, 7, 14, 28, - 16, 12, -3, 2, 19, 16, 2, 14, 19, -8, -5, 17, 4, -15, -26, -10, - -4, -12, 1, -8, -23, -38, -58, -41, 0, 29, 23, 11, 16, 21, 15, 9, - 11, -6, 11, 20, 4, 3, 24, 5, -5, 10, 17, -6, -15, -15, 6, -15, - -8, 0, -11, -37, -54, -56, -24, 13, 29, 12, 15, 20, 19, 6, 16, 5, - -2, 10, 11, -3, 22, 18, 0, 6, 20, 10, -6, -12, 1, -6, -23, 0, - 1, -23, -56, -60, -43, -10, 19, 22, 15, 22, 18, 6, 11, 17, -2, -5, - 10, 4, 7, 23, 1, 3, 16, 22, 5, -1, 0, 5, -21, -14, 6, -6, - -46, -64, -54, -29, 1, 17, 18, 24, 25, 10, 1, 17, 9, -8, -1, 15, - 6, 20, 11, 2, 14, 25, 16, 9, 5, 7, -11, -26, -5, 4, -27, -62, - -62, -40, -17, 8, 11, 21, 29, 17, -2, 10, 17, -8, -16, 6, 13, 11, - 15, 3, 8, 24, 26, 14, 12, 12, 4, -26, -15, 1, -12, -50, -64, -48, - -27, -10, 5, 8, 32, 31, 1, -1, 18, 0, -23, -6, 18, 14, 11, 5, - 3, 17, 35, 25, 16, 18, 14, -11, -27, -8, -6, -30, -55, -53, -36, -20, - -5, 5, 14, 43, 13, -6, 11, 11, -22, -22, 7, 19, 13, 10, 1, 7, - 30, 36, 22, 23, 23, 6, -28, -20, -6, -23, -43, -49, -43, -29, -19, 3, - 1, 34, 29, -4, 3, 13, -13, -32, -3, 20, 14, 11, 5, 2, 23, 42, - 34, 22, 23, 21, -13, -26, -14, -19, -32, -38, -43, -32, -29, -6, 4, 16, - 35, 9, -4, 11, 0, -33, -22, 9, 13, 12, 9, 3, 14, 35, 47, 34, - 23, 27, 8, -22, -19, -16, -30, -29, -42, -33, -32, -23, 4, 9, 24, 20, - -1, 3, 10, -20, -36, -5, 13, 9, 11, 8, 8, 21, 43, 48, 27, 22, - 23, -7, -25, -20, -28, -25, -31, -36, -28, -33, -8, 11, 14, 14, 6, -8, - 7, -5, -39, -25, 7, 14, 9, 10, 12, 15, 29, 55, 41, 23, 22, 9, - -12, -23, -28, -24, -23, -34, -26, -31, -21, 9, 19, 9, 1, -3, -1, 7, - -32, -38, -9, 13, 11, 9, 11, 14, 21, 46, 53, 32, 24, 12, -2, -16, - -26, -24, -17, -34, -33, -25, -24, -4, 17, 14, -3, -4, -7, 3, -13, -46, - -25, 2, 17, 5, 8, 12, 18, 32, 56, 38, 29, 15, 8, -4, -22, -30, - -14, -22, -42, -25, -15, -10, 6, 17, 1, -5, -7, -10, -2, -38, -37, -7, - 15, 9, 2, 8, 21, 26, 43, 44, 29, 18, 7, 12, -9, -25, -24, -11, - -35, -43, -17, -5, 3, 10, 9, -3, -3, -23, -9, -23, -45, -22, 7, 15, - 2, 4, 17, 33, 31, 45, 35, 23, 8, 17, 6, -16, -26, -14, -20, -48, - -27, -2, 6, 11, 9, -1, 6, -15, -28, -18, -39, -32, -7, 11, 7, 6, - 7, 33, 30, 31, 41, 27, 7, 13, 24, -3, -18, -22, -9, -40, -41, -10, - 4, 9, 17, 3, 5, -4, -37, -29, -29, -35, -19, 1, 10, 3, 7, 25, - 41, 19, 31, 32, 13, 5, 27, 14, -6, -19, -12, -23, -48, -22, 7, 8, - 16, 11, 1, 6, -29, -46, -32, -32, -20, -5, 7, 4, 3, 21, 43, 32, - 15, 29, 16, 8, 19, 26, 3, -9, -22, -13, -42, -37, -8, 11, 14, 25, - 9, 4, -17, -50, -44, -30, -25, -14, -1, 11, 1, 18, 36, 41, 12, 14, - 18, 14, 15, 20, 17, 6, -14, -18, -27, -39, -19, 5, 12, 24, 27, 8, - -13, -49, -53, -32, -27, -19, -12, 7, 7, 12, 31, 43, 26, 2, 8, 14, - 22, 13, 17, 18, 6, -17, -26, -36, -28, -6, 14, 25, 35, 20, -6, -42, - -57, -37, -23, -23, -20, 0, 9, 8, 25, 41, 40, 7, -4, 1, 23, 21, - 14, 22, 20, -2, -24, -34, -31, -13, 8, 24, 37, 33, 8, -32, -62, -44, - -20, -22, -27, -9, 9, 7, 16, 31, 42, 20, -10, -13, 10, 26, 7, 13, - 25, 18, -11, -35, -39, -20, 0, 17, 37, 37, 19, -17, -58, -55, -26, -18, - -25, -21, 0, 14, 12, 20, 38, 35, 0, -19, -9, 24, 19, 3, 21, 31, - 17, -24, -42, -30, -3, 13, 34, 42, 28, -2, -45, -62, -38, -22, -19, -20, - -12, 12, 17, 11, 29, 42, 18, -16, -20, 3, 24, 2, 4, 26, 36, 0, - -38, -45, -13, 12, 27, 41, 34, 14, -27, -62, -55, -30, -19, -15, -16, -2, - 18, 11, 14, 37, 31, -6, -22, -12, 15, 10, -10, 12, 36, 30, -19, -46, - -33, 11, 24, 28, 35, 28, -5, -44, -65, -44, -23, -11, -9, -8, 5, 14, - 10, 25, 37, 14, -17, -18, -2, 14, -7, -6, 23, 43, 10, -33, -38, -9, - 24, 24, 28, 30, 11, -21, -57, -61, -39, -12, -5, -5, -3, 7, 10, 17, - 31, 30, -3, -20, -14, 6, 1, -16, 2, 38, 38, -5, -30, -24, 13, 25, - 21, 28, 15, 1, -34, -64, -62, -23, 0, 2, -1, -1, 5, 14, 24, 33, - 14, -12, -23, -4, 7, -18, -18, 18, 43, 25, -9, -22, -2, 21, 19, 24, - 20, 11, -13, -47, -69, -46, -7, 5, 6, -1, -4, 9, 21, 31, 25, 5, - -15, -20, 3, -8, -33, -7, 29, 37, 20, -10, -10, 9, 15, 17, 14, 12, - 1, -23, -55, -70, -30, 5, 13, 2, -8, -1, 15, 25, 30, 15, -1, -20, - -8, -3, -31, -28, 8, 31, 41, 15, -6, 0, 9, 14, 12, 9, 8, -10, - -28, -63, -55, -12, 17, 11, -7, -13, 8, 22, 26, 19, 9, -7, -13, -5, - -23, -39, -10, 17, 41, 38, 8, 0, 5, 7, 12, 5, 7, -6, -8, -39, - -60, -35, 7, 19, 6, -10, -6, 15, 26, 22, 15, 9, -8, -13, -24, -45, - -29, -1, 29, 48, 30, 2, 6, 5, 9, 5, -1, -5, -4, -13, -51, -51, - -16, 20, 13, 0, -11, 7, 25, 22, 18, 17, 10, -8, -22, -50, -43, -13, - 15, 46, 42, 16, 7, 8, 7, 7, -1, -6, -10, -4, -27, -45, -36, 5, - 16, 7, -5, -5, 20, 22, 19, 19, 22, 7, -15, -43, -62, -29, 3, 35, - 43, 27, 11, 9, 8, 4, 2, -9, -13, -7, -15, -30, -43, -16, 12, 13, - 4, -8, 12, 24, 17, 16, 24, 25, -3, -38, -72, -52, -9, 25, 42, 30, - 21, 8, 14, 4, 6, -3, -13, -12, -13, -18, -36, -34, 3, 14, 9, -9, - 5, 26, 18, 13, 26, 34, 13, -31, -69, -68, -16, 19, 35, 29, 22, 6, - 16, 3, 2, 6, -5, -15, -20, -19, -21, -34, -17, 8, 16, -2, -3, 24, - 27, 16, 23, 34, 32, -10, -56, -80, -45, 6, 29, 29, 22, 10, 14, 13, - -4, 6, 7, -8, -27, -27, -18, -20, -28, -8, 14, 8, -7, 11, 29, 21, - 17, 25, 35, 16, -36, -77, -67, -14, 25, 30, 22, 11, 10, 19, 5, 2, - 6, 5, -18, -34, -25, -13, -23, -19, 4, 13, 0, 7, 24, 32, 24, 22, - 31, 30, -12, -62, -76, -41, 9, 28, 24, 15, 6, 18, 16, 6, 6, 7, - -7, -32, -37, -16, -18, -24, -8, 11, 7, 7, 20, 31, 35, 25, 24, 33, - 9, -40, -72, -58, -16, 17, 27, 16, 6, 10, 22, 12, 8, 8, 2, -23, - -43, -26, -16, -24, -18, 2, 6, 7, 21, 29, 36, 32, 21, 27, 22, -21, - -57, -67, -38, -4, 26, 21, 9, 3, 18, 25, 18, 10, 2, -11, -42, -36, - -24, -27, -23, -9, 5, 2, 17, 32, 42, 36, 27, 18, 25, -2, -39, -58, - -51, -27, 11, 27, 11, 1, 9, 24, 25, 21, 5, -8, -31, -37, -30, -33, - -24, -15, 0, -2, 13, 31, 48, 47, 33, 15, 18, 10, -27, -50, -52, -44, - -12, 21, 21, 5, -1, 13, 33, 30, 16, -6, -26, -39, -33, -35, -28, -20, - -10, -8, 4, 27, 51, 61, 45, 21, 13, 14, -11, -39, -40, -44, -36, 1, - 25, 16, 1, 2, 27, 40, 28, 3, -22, -38, -38, -32, -33, -21, -18, -14, - -8, 18, 50, 66, 60, 27, 7, 12, -3, -31, -36, -37, -46, -27, 18, 26, - 5, -3, 8, 35, 43, 16, -14, -36, -43, -32, -32, -25, -16, -23, -14, 6, - 46, 64, 74, 49, 9, 4, 7, -23, -37, -34, -41, -44, -8, 31, 19, -5, - 0, 21, 47, 33, -2, -33, -43, -43, -32, -29, -14, -22, -23, -6, 34, 62, - 75, 71, 30, 0, 8, -13, -37, -34, -35, -45, -34, 18, 31, 5, -5, 7, - 35, 44, 12, -23, -45, -49, -40, -29, -18, -18, -27, -15, 22, 57, 74, 80, - 57, 15, 4, -1, -39, -34, -34, -40, -46, -4, 25, 13, -3, 2, 22, 44, - 25, -10, -38, -44, -50, -34, -20, -14, -31, -21, 5, 47, 63, 81, 76, 38, - 8, 9, -30, -45, -35, -36, -43, -20, 9, 14, 5, 3, 7, 36, 32, 3, - -32, -43, -50, -40, -28, -13, -24, -28, -2, 35, 56, 73, 86, 58, 23, 21, - -10, -49, -45, -33, -39, -25, -3, 5, 5, 8, 5, 18, 32, 17, -19, -45, - -49, -41, -35, -22, -19, -31, -12, 28, 52, 59, 76, 74, 41, 31, 10, -39, - -58, -41, -32, -27, -5, -3, 3, 8, 8, 10, 24, 22, -4, -39, -52, -42, - -35, -30, -18, -28, -22, 20, 53, 52, 60, 73, 62, 43, 31, -18, -56, -61, - -35, -28, -9, -6, -3, 3, 9, 10, 12, 18, 8, -23, -53, -50, -31, -35, - -24, -28, -26, 3, 48, 55, 52, 59, 66, 57, 46, 7, -37, -67, -53, -24, - -11, -4, -6, 0, 3, 13, 10, 7, 10, -6, -38, -58, -36, -30, -30, -26, - -26, -11, 33, 60, 56, 49, 59, 67, 58, 32, -15, -58, -69, -34, -14, -8, - -6, 1, -4, 7, 8, 2, 4, 4, -21, -54, -49, -30, -30, -28, -29, -18, - 13, 53, 60, 50, 44, 63, 61, 49, 11, -33, -71, -49, -19, -9, -10, 5, - 2, -1, 4, -1, 4, 5, -5, -38, -55, -40, -28, -21, -25, -26, -2, 40, - 61, 56, 39, 53, 66, 54, 33, -4, -55, -63, -29, -18, -12, 3, 11, -4, - -4, -9, -3, 4, 4, -18, -49, -49, -35, -18, -18, -25, -16, 24, 51, 60, - 42, 43, 66, 57, 42, 21, -23, -63, -44, -26, -18, -10, 13, 9, -8, -18, - -17, 5, 5, -4, -35, -47, -42, -24, -11, -20, -21, 5, 36, 56, 53, 37, - 60, 59, 40, 34, 11, -34, -52, -33, -21, -15, 1, 21, 2, -19, -33, -10, - 8, 3, -20, -42, -41, -33, -14, -16, -18, -7, 21, 43, 54, 39, 47, 61, - 44, 31, 27, -4, -41, -47, -28, -23, -9, 11, 15, -9, -34, -34, 1, 10, - -2, -30, -38, -34, -18, -15, -17, -10, 10, 27, 43, 42, 42, 53, 54, 36, - 24, 14, -15, -42, -36, -32, -22, 1, 13, 7, -26, -48, -24, 11, 10, -14, - -35, -32, -19, -16, -15, -11, 5, 18, 31, 34, 41, 48, 51, 46, 28, 26, - 8, -26, -36, -33, -35, -12, 7, 12, -8, -45, -47, -9, 13, 5, -24, -32, - -17, -14, -16, -11, 6, 14, 20, 26, 27, 47, 49, 49, 34, 25, 22, -6, - -31, -27, -39, -30, -10, 13, 6, -28, -57, -31, -3, 12, -7, -28, -19, -8, - -21, -18, -2, 18, 17, 17, 19, 34, 47, 53, 42, 34, 30, 13, -22, -20, - -30, -44, -32, -4, 15, -7, -45, -49, -18, 4, 10, -14, -18, 0, -11, -26, - -7, 15, 23, 10, 10, 20, 34, 51, 49, 38, 41, 30, -8, -28, -15, -39, - -47, -28, 5, 10, -26, -55, -34, -9, 10, 3, -13, -4, 1, -21, -19, 3, - 25, 13, 5, 9, 18, 36, 54, 39, 40, 46, 16, -27, -17, -23, -47, -47, - -18, 9, -2, -47, -51, -23, 0, 4, 0, 1, 9, -11, -20, -9, 20, 23, - 4, 2, 8, 20, 45, 46, 38, 53, 41, -13, -30, -19, -36, -52, -40, -9, - 5, -23, -53, -35, -6, 4, 3, 6, 10, 5, -16, -17, 6, 30, 12, 0, - -4, 9, 32, 47, 43, 55, 57, 16, -27, -30, -28, -44, -52, -31, -6, -8, - -43, -43, -15, -1, -1, 8, 10, 13, 2, -18, -11, 21, 23, 6, -5, 0, - 19, 33, 41, 56, 67, 44, -5, -34, -35, -32, -46, -47, -27, -7, -30, -44, - -23, -2, -2, 3, 7, 14, 18, -1, -19, 4, 20, 16, -5, -9, 10, 27, - 30, 46, 65, 63, 26, -22, -42, -34, -41, -46, -40, -18, -25, -39, -28, -4, - 1, -1, 5, 10, 24, 19, -8, -6, 11, 20, 4, -13, 2, 22, 24, 36, - 59, 70, 51, 5, -39, -39, -43, -47, -45, -31, -30, -39, -33, -7, 1, -2, - 1, 4, 19, 25, 5, -5, 1, 12, 13, -12, -12, 18, 25, 21, 46, 68, - 69, 36, -17, -39, -44, -51, -43, -33, -35, -41, -38, -15, 8, 0, 0, 0, - 13, 26, 19, 5, 0, -1, 10, -2, -14, 5, 25, 19, 29, 54, 71, 59, - 9, -31, -43, -56, -50, -32, -38, -47, -42, -26, 8, 10, -3, -3, 7, 20, - 23, 16, 8, -5, 3, 2, -17, -6, 22, 20, 18, 40, 66, 71, 37, -13, - -36, -52, -61, -38, -32, -47, -51, -38, -7, 19, 6, -6, 4, 14, 19, 21, - 19, 2, -5, 0, -13, -12, 14, 21, 13, 27, 53, 71, 57, 12, -25, -42, - -61, -54, -33, -38, -52, -50, -22, 13, 17, -4, 1, 16, 17, 19, 25, 11, - -2, -2, -11, -18, 6, 21, 15, 18, 43, 66, 67, 34, -7, -30, -49, -58, - -42, -36, -42, -54, -36, -2, 20, 4, -4, 11, 16, 17, 26, 17, 4, 1, - -8, -22, -8, 17, 16, 17, 27, 55, 66, 48, 10, -25, -36, -49, -52, -42, - -39, -47, -46, -18, 13, 14, -1, 3, 13, 19, 27, 18, 2, 5, 1, -14, - -17, 6, 13, 16, 26, 44, 64, 54, 27, -15, -30, -33, -49, -50, -43, -44, - -45, -30, -1, 13, 3, 6, 10, 22, 30, 21, 3, 2, 2, -3, -18, -9, - 8, 11, 23, 35, 55, 58, 37, 1, -25, -18, -33, -51, -48, -46, -41, -30, - -17, 6, 3, 7, 9, 16, 30, 27, 9, 3, 3, 1, -10, -18, 0, 3, - 12, 37, 46, 52, 40, 15, -23, -16, -14, -39, -48, -48, -45, -31, -20, -7, - 1, 4, 14, 13, 21, 26, 16, 2, 1, 1, 1, -16, -12, 1, 5, 29, - 50, 47, 39, 21, -11, -21, -3, -23, -41, -45, -47, -37, -21, -13, -6, 1, - 16, 20, 22, 22, 18, 10, 2, 1, 6, -7, -16, -10, 0, 16, 51, 53, - 38, 22, -1, -21, -1, -4, -30, -41, -45, -45, -28, -13, -13, -8, 13, 24, - 26, 15, 13, 15, 8, -4, 1, -2, -11, -15, -11, 2, 40, 56, 44, 21, - 1, -16, -10, 5, -16, -32, -38, -41, -36, -22, -14, -15, 4, 24, 32, 18, - 7, 14, 14, 4, -2, -1, -8, -12, -15, -6, 24, 50, 51, 28, 1, -13, - -14, 4, 1, -18, -31, -35, -36, -33, -21, -21, -5, 19, 38, 23, 3, 5, - 17, 15, 2, -3, -7, -8, -18, -14, 12, 39, 50, 35, 2, -14, -14, -3, - 6, -6, -24, -27, -32, -40, -25, -22, -12, 8, 35, 34, 10, 2, 5, 19, - 9, -6, -4, -3, -15, -18, 4, 30, 42, 40, 13, -17, -16, -7, 3, 5, - -14, -21, -24, -41, -37, -23, -18, -1, 22, 37, 17, 4, -1, 11, 17, 1, - -7, -4, -12, -22, -6, 24, 35, 33, 25, -7, -26, -15, 2, 14, 3, -16, - -19, -33, -42, -27, -23, -10, 15, 28, 27, 8, 2, 5, 20, 11, -4, -6, - -7, -19, -11, 17, 31, 26, 25, 6, -24, -25, -6, 11, 14, -3, -13, -25, - -39, -33, -23, -17, 7, 19, 26, 19, 4, 1, 15, 14, -1, -5, -10, -14, - -22, 8, 33, 28, 20, 16, -13, -26, -17, 9, 22, 5, -8, -18, -37, -35, - -28, -23, -4, 12, 16, 28, 12, 1, 12, 18, 3, -2, -9, -10, -27, -10, - 29, 34, 18, 16, 2, -26, -29, -3, 27, 19, -4, -10, -29, -36, -30, -29, - -12, 9, 3, 18, 21, 7, 12, 17, 3, -2, -7, -7, -19, -26, 15, 36, - 21, 12, 9, -15, -30, -18, 19, 30, 6, -5, -21, -32, -25, -29, -22, 6, - 0, 3, 20, 14, 12, 18, 12, 0, -9, -12, -9, -26, -4, 31, 28, 11, - 10, -6, -24, -29, 3, 35, 19, -3, -15, -26, -19, -23, -31, -6, 4, -7, - 13, 19, 17, 20, 18, 9, -9, -19, -5, -17, -20, 16, 34, 18, 9, 0, - -16, -25, -10, 30, 29, 3, -10, -19, -19, -16, -29, -19, 3, -9, -5, 13, - 21, 24, 16, 13, 1, -23, -14, -12, -19, -2, 28, 21, 8, 1, -11, -23, - -19, 16, 41, 14, -8, -13, -9, -13, -18, -27, -4, -5, -12, -1, 19, 31, - 18, 10, 16, -20, -22, -13, -14, -12, 18, 26, 12, 4, -4, -17, -18, -1, - 38, 31, -5, -14, -7, -7, -14, -24, -13, -3, -13, -12, 7, 30, 34, 14, - 18, -5, -33, -18, -10, -14, 1, 19, 14, 6, -8, -13, -15, -2, 19, 40, - 8, -13, -9, -4, -8, -18, -20, -9, -14, -16, -7, 22, 37, 23, 16, 10, - -26, -28, -13, -9, -5, 14, 14, 9, -9, -17, -13, -1, 8, 31, 26, -6, - -10, -4, -2, -12, -19, -11, -11, -17, -12, 6, 34, 29, 15, 16, -7, -35, - -25, -9, -6, 8, 14, 12, 1, -15, -14, 3, 10, 19, 29, 8, -10, -9, - 1, -7, -20, -10, -9, -17, -17, -1, 30, 35, 18, 15, 5, -28, -33, -17, - -6, -4, 8, 13, 5, -14, -19, 1, 14, 14, 20, 17, 0, -8, -2, -3, - -14, -18, -9, -12, -18, -6, 21, 37, 26, 7, 10, -13, -33, -24, -6, -2, - 0, 9, 11, -5, -19, -7, 16, 18, 13, 18, 11, -2, -6, -3, -6, -22, - -10, -11, -16, -11, 17, 34, 32, 9, 9, 2, -26, -30, -14, -2, -5, 3, - 8, 3, -16, -12, 8, 21, 13, 13, 15, 2, -3, -5, -5, -20, -16, -8, - -16, -20, 6, 32, 34, 14, -4, 6, -12, -26, -20, -7, -6, -4, 4, 7, - -2, -15, 1, 17, 15, 9, 15, 10, 0, -3, -7, -15, -22, -4, -7, -19, - -7, 29, 36, 20, -6, -1, 0, -17, -19, -12, -9, -7, -1, 2, 6, -3, - -8, 10, 18, 9, 8, 21, 4, -2, -8, -13, -20, -12, -2, -16, -14, 14, - 39, 26, -3, -17, 1, -6, -16, -12, -7, -9, -9, 0, 3, 11, -3, 0, - 15, 13, 3, 19, 12, -8, -6, -14, -19, -16, 0, -6, -17, 3, 33, 35, - 5, -18, -9, 1, -15, -11, -8, -8, -16, -8, 1, 15, 15, 3, 11, 19, - 2, 12, 26, 0, -10, -13, -21, -11, 1, -1, -18, -2, 23, 35, 17, -12, - -21, -2, -8, -9, -8, -9, -12, -17, -5, 10, 22, 8, 7, 18, 7, -1, - 23, 13, -13, -19, -23, -14, 5, 2, -15, -13, 17, 30, 22, -3, -24, -7, - -2, -9, -6, -10, -8, -21, -19, 5, 22, 22, 13, 15, 13, -3, 11, 18, - -4, -20, -28, -20, 4, 11, -10, -18, 6, 26, 17, 3, -20, -12, -2, -11, - -7, -8, -8, -16, -27, -7, 19, 30, 21, 19, 15, 4, 3, 18, 2, -17, - -33, -24, 0, 17, 1, -16, -6, 24, 19, 5, -17, -18, 1, -8, -12, -7, - -11, -10, -22, -14, 10, 29, 29, 32, 23, 13, 0, 9, 6, -12, -28, -36, - -7, 13, 12, -8, -17, 12, 24, 6, -10, -20, 1, 1, -13, -9, -12, -16, - -20, -17, 0, 21, 27, 31, 35, 20, 7, 0, 2, -13, -19, -37, -19, 8, - 18, 9, -16, -9, 20, 11, -2, -25, -13, 8, -4, -16, -13, -18, -23, -17, - 0, 14, 29, 27, 43, 35, 17, -1, -4, -13, -22, -29, -31, -2, 17, 20, - -5, -21, 6, 16, 5, -16, -25, 4, 11, -12, -17, -20, -27, -19, -2, 13, - 26, 27, 36, 46, 32, 7, -8, -18, -26, -25, -32, -16, 12, 26, 11, -18, - -11, 4, 13, -1, -27, -12, 14, 2, -21, -23, -31, -26, -11, 10, 24, 30, - 29, 43, 50, 24, -4, -16, -34, -28, -28, -27, -1, 27, 24, -5, -21, -12, - 6, 16, -13, -28, 1, 13, -9, -23, -33, -32, -18, 2, 24, 34, 33, 34, - 50, 49, 12, -11, -34, -37, -28, -25, -14, 14, 28, 10, -10, -25, -9, 21, - 15, -27, -15, 12, 2, -18, -33, -36, -24, -7, 13, 30, 39, 42, 35, 54, - 36, 1, -29, -45, -35, -26, -17, -1, 20, 19, 2, -23, -30, 1, 30, -5, - -32, 1, 7, -8, -27, -37, -25, -12, -1, 23, 37, 51, 38, 41, 49, 16, - -15, -41, -40, -31, -21, -11, 4, 19, 15, -8, -33, -19, 22, 20, -21, -13, - 2, -6, -17, -36, -32, -11, -8, 9, 28, 48, 54, 36, 48, 30, 3, -30, - -41, -34, -24, -15, -6, 2, 17, 8, -19, -37, 0, 31, 3, -20, -6, -4, - -7, -31, -35, -9, -3, -4, 16, 37, 62, 44, 41, 33, 13, -11, -36, -39, - -29, -21, -11, -11, 6, 14, -2, -28, -24, 15, 22, -5, -10, -11, -10, -20, - -35, -13, 2, -5, 2, 21, 55, 64, 46, 37, 19, 2, -23, -36, -28, -23, - -17, -18, -17, 10, 11, -12, -32, -7, 23, 16, -7, -14, -17, -8, -27, -23, - 1, 1, 0, 6, 31, 63, 60, 46, 21, 7, -12, -29, -24, -18, -24, -23, - -27, -11, 11, 5, -16, -19, 11, 21, 4, -9, -21, -15, -17, -30, -5, 7, - 2, -1, 9, 48, 65, 59, 30, 13, -4, -25, -19, -6, -22, -33, -32, -31, - -3, 7, -3, -20, -4, 14, 11, -1, -11, -19, -13, -20, -16, 9, 7, 2, - -3, 27, 60, 69, 44, 12, 7, -18, -20, 1, -4, -35, -38, -34, -22, -9, - 4, -2, -11, 8, 8, 2, -6, -19, -23, -14, -16, 3, 13, 2, 2, 12, - 47, 65, 62, 22, 10, -3, -21, -9, 9, -17, -46, -40, -34, -23, -6, 4, - -1, 3, 7, 2, -4, -13, -25, -18, -11, -4, 18, 3, -2, 5, 30, 58, - 66, 39, 12, 9, -10, -18, 8, 5, -41, -49, -38, -33, -18, -4, 2, 7, - 8, 2, -7, -12, -18, -23, -12, -6, 18, 15, -8, 0, 21, 44, 62, 48, - 22, 14, 7, -16, -7, 18, -18, -52, -44, -42, -32, -18, -1, 12, 10, 6, - -8, -20, -11, -18, -19, -10, 14, 24, 2, -5, 14, 34, 57, 51, 27, 19, - 20, -1, -13, 15, -1, -42, -45, -49, -38, -28, -15, 13, 19, 10, -1, -23, - -16, -11, -24, -10, 6, 21, 14, -5, 3, 24, 48, 58, 29, 17, 24, 18, - -6, 4, 8, -28, -38, -46, -50, -36, -29, 3, 22, 15, 4, -18, -31, -7, - -20, -17, 5, 11, 18, 4, -2, 15, 37, 58, 35, 11, 26, 31, 11, -2, - 6, -13, -32, -39, -55, -45, -38, -17, 21, 23, 11, -10, -31, -18, -11, -25, - 1, 9, 14, 15, 0, 7, 26, 49, 49, 13, 10, 33, 26, 8, 4, -5, - -25, -35, -46, -53, -41, -35, 5, 24, 17, 0, -25, -26, -14, -24, -9, 6, - 5, 17, 6, 6, 20, 38, 55, 30, 3, 25, 38, 18, 10, -4, -16, -30, - -42, -51, -46, -41, -16, 21, 23, 14, -16, -30, -16, -17, -17, 0, 2, 12, - 16, 3, 17, 28, 46, 49, 14, 13, 39, 30, 17, 4, -9, -20, -38, -49, - -50, -50, -34, 4, 21, 20, 4, -29, -23, -15, -15, -8, -3, 7, 19, 8, - 9, 26, 35, 47, 29, 6, 29, 35, 26, 13, -5, -18, -29, -42, -49, -51, - -50, -16, 11, 23, 18, -17, -34, -14, -15, -9, -10, -2, 17, 14, 5, 21, - 33, 44, 38, 14, 23, 37, 30, 20, 6, -8, -26, -34, -47, -52, -54, -34, - 0, 16, 19, 5, -29, -20, -13, -10, -9, -10, 4, 19, 11, 13, 29, 37, - 36, 22, 22, 39, 32, 23, 10, 2, -18, -32, -40, -54, -56, -49, -23, 8, - 17, 11, -15, -26, -11, -13, -9, -15, -11, 14, 17, 10, 23, 34, 36, 24, - 21, 35, 42, 26, 12, 2, -4, -23, -31, -47, -57, -50, -33, -7, 17, 11, - -2, -18, -12, -12, -11, -10, -21, -6, 18, 19, 21, 33, 35, 28, 23, 34, - 51, 40, 12, -2, 1, -9, -27, -43, -59, -53, -39, -23, 4, 15, 1, -10, - -14, -9, -8, -10, -22, -18, 5, 19, 16, 27, 34, 28, 23, 27, 47, 53, - 27, -3, -4, -1, -13, -33, -53, -57, -45, -31, -13, 14, 4, -4, -11, -9, - -9, -11, -19, -28, -16, 10, 24, 23, 35, 24, 26, 26, 38, 60, 44, 2, - -13, -3, -5, -19, -44, -58, -49, -33, -26, 1, 14, 1, -4, -5, 0, -7, - -14, -29, -26, -11, 20, 27, 30, 32, 21, 27, 34, 59, 58, 22, -11, -10, - -6, -10, -29, -55, -53, -38, -34, -16, 12, 9, -5, -8, 5, 1, -16, -31, - -32, -28, 0, 26, 26, 33, 23, 24, 33, 49, 61, 37, 3, -15, -8, -11, - -19, -43, -56, -44, -34, -25, -2, 17, 5, -11, 2, 12, -2, -23, -32, -35, - -23, 14, 26, 27, 35, 23, 32, 45, 58, 47, 19, -5, -9, -10, -16, -27, - -46, -48, -41, -34, -18, 11, 20, -6, -10, 12, 9, -18, -34, -38, -29, -7, - 17, 27, 32, 30, 30, 46, 52, 51, 28, 6, -8, -9, -15, -24, -32, -41, - -45, -40, -30, -1, 23, 10, -12, 2, 17, -2, -31, -39, -32, -18, -6, 18, - 29, 38, 32, 45, 54, 54, 33, 11, 2, -9, -11, -19, -32, -33, -41, -45, - -40, -18, 16, 19, 2, -6, 13, 12, -20, -43, -35, -21, -18, -5, 21, 35, - 36, 46, 58, 52, 38, 17, 9, -5, -9, -13, -29, -32, -28, -41, -43, -36, - 0, 22, 18, -4, -3, 17, 2, -33, -43, -25, -18, -16, 4, 27, 38, 47, - 64, 57, 40, 18, 10, 5, -7, -10, -22, -39, -24, -30, -42, -39, -22, 13, - 28, 14, -9, 3, 17, -16, -51, -36, -17, -23, -18, 8, 35, 50, 66, 68, - 43, 23, 12, 13, -1, -11, -17, -32, -27, -22, -40, -38, -37, -10, 22, 34, - 1, -10, 8, 6, -39, -48, -27, -19, -25, -10, 18, 49, 66, 78, 54, 26, - 17, 16, 3, -7, -15, -25, -29, -12, -32, -37, -35, -28, 3, 38, 26, -7, - -4, 11, -15, -46, -42, -26, -23, -24, -2, 34, 66, 81, 70, 30, 19, 21, - 10, -5, -11, -25, -29, -12, -20, -37, -33, -39, -17, 25, 46, 6, -11, 2, - 0, -29, -44, -41, -30, -27, -17, 12, 58, 79, 84, 46, 19, 22, 19, 2, - -7, -26, -35, -12, -1, -29, -33, -39, -36, 3, 46, 31, -11, -6, -1, -14, - -38, -46, -39, -32, -22, -5, 40, 76, 88, 64, 23, 22, 30, 12, -8, -20, - -39, -22, 0, -13, -29, -33, -43, -20, 24, 49, 13, -12, 2, -6, -26, -45, - -45, -39, -32, -15, 19, 68, 85, 77, 32, 22, 35, 27, 0, -18, -36, -38, - -6, 3, -17, -29, -44, -37, -2, 40, 34, -8, -6, 3, -18, -44, -47, -44, - -43, -21, 3, 49, 76, 80, 53, 21, 35, 39, 15, -18, -35, -42, -23, 2, - -3, -19, -33, -42, -23, 16, 46, 16, -8, 2, -6, -37, -45, -47, -51, -33, - -8, 31, 68, 74, 66, 33, 35, 45, 36, -3, -33, -40, -34, -7, 5, -8, - -18, -35, -39, -13, 32, 32, 3, -1, 5, -26, -46, -50, -52, -44, -20, 15, - 59, 68, 69, 50, 32, 42, 48, 21, -26, -42, -42, -24, 2, 2, -8, -20, - -38, -35, 6, 33, 17, -2, 5, -6, -41, -55, -57, -46, -33, -6, 40, 64, - 62, 63, 45, 38, 54, 40, -4, -42, -50, -40, -11, 6, -2, -8, -24, -41, - -19, 17, 28, 10, 0, 1, -26, -52, -64, -51, -40, -23, 19, 54, 56, 61, - 60, 38, 52, 55, 24, -30, -50, -47, -27, 4, 8, -6, -11, -30, -36, -6, - 19, 25, 4, 1, -9, -38, -64, -61, -42, -36, 0, 44, 55, 51, 66, 50, - 49, 62, 46, -5, -48, -51, -40, -11, 11, 4, -14, -15, -36, -25, 1, 19, - 15, -1, -2, -18, -53, -69, -48, -42, -20, 21, 51, 45, 56, 62, 51, 60, - 59, 23, -32, -53, -49, -28, 5, 17, -12, -18, -22, -32, -12, 9, 20, 1, - -6, -5, -29, -70, -62, -48, -32, 2, 36, 45, 44, 62, 62, 60, 64, 47, - -10, -45, -54, -42, -11, 21, 5, -19, -18, -23, -20, -1, 15, 4, -6, -2, - -6, -51, -72, -57, -44, -13, 19, 40, 41, 51, 65, 66, 69, 63, 14, -32, - -47, -50, -30, 10, 14, -12, -16, -18, -16, -14, 7, 8, -6, -8, -1, -21, - -65, -67, -54, -29, 1, 26, 38, 44, 53, 69, 77, 73, 37, -17, -41, -46, - -37, -10, 13, -1, -11, -14, -14, -10, -6, 9, -5, -6, -11, -3, -43, -67, - -68, -42, -15, 12, 27, 40, 47, 65, 80, 83, 55, 7, -34, -43, -34, -22, - -5, 2, -3, -2, -13, -10, -11, 3, -2, -4, -13, -5, -15, -51, -72, -63, - -31, -3, 16, 29, 42, 55, 78, 91, 68, 25, -11, -40, -32, -22, -21, -9, - -1, 8, -1, -19, -11, -3, 1, -5, -11, -12, -3, -29, -58, -70, -48, -18, - 6, 15, 35, 50, 68, 89, 84, 37, 11, -27, -38, -19, -20, -23, -8, 10, - 18, -10, -19, -8, 4, 0, -11, -14, -7, -20, -42, -63, -60, -37, -4, 7, - 23, 41, 67, 82, 90, 53, 19, -4, -34, -23, -20, -31, -22, 5, 25, 8, - -17, -20, 0, 10, -5, -20, -9, -12, -31, -47, -60, -53, -26, -3, 12, 32, - 58, 81, 85, 70, 27, 9, -19, -26, -19, -28, -31, -8, 24, 21, -2, -26, - -11, 14, 10, -20, -18, -8, -24, -33, -53, -56, -44, -23, 3, 22, 44, 77, - 85, 74, 40, 17, -3, -21, -21, -24, -36, -25, 11, 22, 15, -13, -28, 5, - 23, 0, -28, -12, -19, -26, -42, -56, -48, -39, -17, 12, 34, 62, 84, 73, - 52, 26, 9, -12, -21, -22, -31, -30, -1, 15, 16, 6, -25, -14, 23, 19, - -17, -21, -13, -24, -34, -54, -44, -39, -36, -9, 27, 46, 79, 79, 59, 38, - 16, -2, -17, -25, -25, -27, -10, 5, 10, 15, -4, -24, 5, 29, 5, -24, - -18, -19, -28, -48, -50, -35, -38, -28, 10, 33, 62, 82, 62, 46, 27, 4, - -8, -23, -24, -25, -15, -3, 0, 8, 6, -12, -9, 22, 25, -6, -21, -22, - -28, -45, -53, -39, -30, -37, -11, 20, 43, 75, 66, 53, 41, 10, -8, -16, - -25, -23, -15, -2, -4, -5, 4, 1, -7, 8, 29, 19, -9, -21, -24, -42, - -55, -48, -30, -31, -19, 5, 23, 61, 74, 58, 53, 26, -7, -11, -18, -25, - -14, 0, 1, -16, -8, 4, 0, 3, 20, 28, 11, -16, -19, -38, -58, -55, - -35, -27, -16, -1, 5, 32, 63, 61, 56, 44, 3, -17, -13, -22, -19, -4, - 5, -8, -21, -6, 7, 8, 12, 25, 25, 2, -17, -26, -54, -64, -47, -32, - -11, 5, 3, 16, 40, 60, 58, 56, 26, -16, -19, -16, -20, -8, 0, -4, - -20, -22, 1, 12, 9, 17, 30, 20, -2, -15, -42, -68, -57, -44, -19, 11, - 6, 10, 19, 42, 58, 58, 45, 6, -23, -18, -13, -13, -3, -3, -10, -26, - -14, 9, 15, 12, 26, 27, 10, -7, -25, -61, -68, -54, -36, 10, 15, 13, - 16, 19, 42, 55, 52, 31, -9, -25, -18, -15, -7, -3, -9, -23, -26, -2, - 15, 19, 19, 26, 18, 7, -10, -41, -72, -60, -51, -8, 25, 22, 20, 13, - 19, 45, 51, 44, 19, -15, -28, -15, -7, -4, -9, -19, -28, -14, 6, 18, - 18, 24, 22, 12, 1, -17, -55, -67, -56, -35, 19, 33, 30, 20, 9, 23, - 44, 48, 39, 6, -22, -25, -9, -8, -9, -15, -29, -21, -3, 10, 16, 20, - 23, 13, 7, -4, -31, -63, -61, -50, -11, 33, 37, 30, 12, 7, 24, 44, - 48, 28, -4, -28, -14, -4, -14, -14, -27, -27, -8, 5, 13, 15, 19, 19, - 11, 3, -12, -44, -64, -58, -31, 17, 40, 39, 24, 8, 3, 30, 46, 42, - 16, -18, -21, -6, -16, -18, -26, -32, -15, 1, 6, 10, 10, 15, 12, 10, - -3, -23, -51, -63, -50, -4, 34, 41, 33, 17, -4, 10, 35, 42, 32, 5, - -15, -8, -10, -18, -21, -30, -22, 0, 3, -2, -2, 6, 5, 4, 3, -7, - -25, -45, -45, -18, 25, 33, 32, 21, 7, 8, 20, 30, 31, 20, 3, -7, - -10, -14, -17, -23, -29, -12, 6, -2, -11, -11, -4, 2, 3, -7, -10, -27, - -33, -21, 13, 27, 23, 19, 8, 15, 17, 18, 21, 23, 19, 2, -12, -10, - -9, -15, -27, -28, -2, 9, -8, -18, -17, -4, 9, -6, -7, -10, -17, -13, - 2, 21, 20, 14, 4, 15, 25, 15, 11, 14, 19, 13, -13, -17, -6, -5, - -20, -36, -23, 4, 6, -18, -28, -20, 6, 6, 0, 3, 5, 5, 28, 31, - 31, 49, 55, 35, 11, 27, 26, 4, 7, 11, 31, 54, 38, 26, 34, 35, - 20, -10, -32, -43, -47, -43, -20, -7, -37, -55, -62, -61, -63, -34, -21, -35, - -28, -10, 15, 24, 23, 5, -31, -38, -6, 23, 19, 15, 24, 20, 31, 57, - 54, 28, 13, 33, 20, 1, 4, 17, 38, 44, 33, 31, 43, 36, 10, -14, - -34, -53, -53, -46, -22, -22, -38, -46, -54, -60, -58, -29, -25, -39, -29, -12, - 11, 25, 27, 6, -31, -33, -3, 27, 32, 21, 13, 16, 38, 60, 53, 26, - 18, 28, 11, -2, 8, 26, 37, 34, 36, 42, 47, 31, 6, -14, -41, -61, - -54, -49, -26, -30, -41, -40, -44, -54, -48, -23, -28, -41, -33, -7, 14, 26, - 29, 3, -32, -27, 6, 33, 35, 18, 5, 21, 45, 61, 49, 25, 30, 22, - 0, -5, 9, 37, 39, 27, 33, 47, 50, 31, 1, -22, -51, -65, -59, -45, - -31, -40, -36, -29, -35, -49, -41, -28, -39, -44, -26, -8, 6, 27, 31, -5, - -31, -18, 14, 33, 31, 17, 4, 25, 48, 57, 45, 32, 27, 9, -6, -5, - 14, 43, 36, 29, 39, 51, 50, 31, 0, -32, -65, -73, -62, -37, -36, -46, - -36, -23, -26, -37, -32, -35, -46, -42, -22, -11, 2, 30, 28, -8, -29, -12, - 22, 33, 32, 15, 4, 25, 49, 58, 50, 36, 20, 2, -9, -3, 21, 43, - 37, 32, 44, 55, 53, 33, -7, -42, -67, -72, -64, -43, -43, -46, -35, -17, - -17, -24, -31, -40, -47, -39, -18, -15, 0, 33, 22, -14, -22, 5, 29, 29, - 28, 11, 7, 23, 49, 54, 50, 37, 13, -6, -11, -6, 25, 44, 38, 26, - 40, 57, 54, 28, -12, -48, -70, -73, -66, -43, -43, -43, -29, -12, -15, -16, - -32, -48, -51, -38, -24, -19, 4, 31, 12, -16, -14, 21, 34, 24, 24, 13, - 10, 27, 49, 53, 53, 33, 6, -9, -16, -4, 33, 48, 37, 24, 45, 61, - 54, 23, -15, -60, -76, -76, -60, -48, -45, -38, -26, -11, -3, -5, -33, -49, - -52, -35, -25, -21, 7, 24, 1, -15, -1, 34, 30, 23, 29, 17, 5, 26, - 49, 55, 53, 26, -3, -16, -16, 4, 38, 43, 33, 33, 49, 59, 45, 19, - -18, -63, -78, -79, -58, -50, -39, -31, -21, -11, -2, -3, -30, -49, -51, -35, - -29, -20, 8, 12, -10, -11, 17, 37, 27, 29, 29, 13, 2, 33, 56, 55, - 38, 18, -7, -19, -17, 13, 40, 42, 33, 35, 52, 58, 40, 10, -28, -68, - -84, -78, -56, -47, -36, -30, -17, -7, 5, -4, -30, -49, -51, -34, -30, -18, - 10, 1, -18, -9, 30, 39, 26, 32, 28, 9, 7, 38, 51, 45, 35, 16, - -13, -28, -11, 27, 41, 41, 34, 45, 58, 54, 29, 7, -33, -69, -80, -78, - -59, -43, -31, -24, -15, -3, 9, -4, -29, -51, -51, -33, -27, -8, 8, -13, - -24, -1, 40, 41, 29, 31, 22, 7, 15, 46, 48, 38, 33, 11, -19, -28, - -7, 26, 42, 36, 39, 54, 54, 48, 20, 3, -39, -68, -79, -78, -54, -37, - -32, -27, -16, 5, 11, -6, -31, -50, -49, -33, -24, -3, -3, -29, -26, 13, - 44, 36, 30, 32, 17, 7, 28, 43, 37, 31, 28, 4, -17, -27, -5, 24, - 46, 43, 48, 56, 50, 41, 20, -1, -47, -64, -82, -78, -48, -35, -34, -26, - -14, 6, 9, -10, -31, -46, -43, -33, -21, 1, -16, -38, -15, 24, 38, 35, - 44, 33, 10, 15, 37, 43, 30, 22, 18, 4, -20, -29, 0, 30, 43, 48, - 54, 52, 46, 35, 19, -9, -41, -60, -83, -73, -44, -29, -37, -27, -12, 6, - 8, -10, -28, -45, -43, -25, -9, -3, -33, -43, -4, 32, 35, 37, 49, 24, - 7, 26, 47, 35, 17, 11, 14, 3, -21, -30, 6, 30, 44, 60, 56, 44, - 37, 33, 15, -11, -40, -63, -82, -61, -36, -33, -39, -26, -13, 0, 4, -9, - -29, -42, -37, -18, -7, -13, -39, -34, 2, 30, 34, 45, 49, 16, 11, 37, - 45, 26, 11, 8, 9, -1, -26, -25, 17, 31, 46, 62, 52, 42, 29, 26, - 15, -12, -45, -64, -71, -48, -34, -35, -33, -27, -16, 1, 2, -10, -23, -41, - -32, -12, -6, -29, -46, -28, 12, 26, 36, 54, 43, 10, 23, 52, 43, 18, - -2, 5, 5, -7, -25, -11, 19, 22, 49, 61, 50, 40, 24, 20, 15, -10, - -47, -62, -62, -45, -34, -30, -30, -23, -16, -6, -1, -8, -25, -38, -29, -9, - -10, -39, -42, -19, 5, 23, 48, 57, 33, 7, 32, 57, 39, 8, -7, 3, - -2, -16, -16, 1, 20, 22, 48, 55, 46, 39, 17, 16, 17, -9, -48, -58, - -54, -40, -37, -28, -26, -22, -23, -5, 2, -11, -28, -37, -27, -10, -18, -44, - -35, -18, 3, 31, 54, 52, 25, 13, 45, 61, 29, -4, -10, 0, -5, -16, - -8, 4, 21, 21, 50, 54, 45, 31, 4, 20, 18, -15, -43, -48, -48, -39, - -33, -28, -25, -22, -21, 0, -1, -19, -29, -29, -22, -11, -29, -42, -30, -17, - 3, 38, 61, 46, 24, 25, 53, 58, 20, -10, -9, -5, -16, -12, 4, 11, - 22, 17, 48, 51, 43, 16, 2, 18, 13, -15, -35, -46, -43, -38, -31, -23, - -27, -24, -13, 3, -8, -25, -29, -27, -22, -18, -36, -38, -31, -19, 6, 46, - 60, 36, 24, 33, 56, 44, 10, -8, -9, -12, -24, -7, 14, 23, 18, 11, - 45, 47, 39, 13, 5, 16, 1, -19, -22, -39, -45, -45, -31, -20, -24, -16, - -6, -3, -19, -24, -25, -26, -22, -24, -39, -35, -25, -13, 8, 54, 64, 36, - 29, 41, 56, 36, 5, -12, -11, -14, -26, -6, 24, 33, 7, 12, 45, 44, - 30, 13, 10, 17, -4, -17, -16, -34, -46, -50, -30, -20, -23, -12, 1, -11, - -26, -27, -24, -21, -19, -34, -48, -32, -23, -10, 13, 66, 65, 33, 32, 48, - 55, 25, 0, -8, -1, -18, -36, -4, 40, 33, -1, 17, 37, 35, 25, 10, - 14, 10, -13, -15, -9, -26, -46, -51, -32, -18, -15, -4, 3, -17, -31, -28, - -25, -20, -26, -48, -48, -27, -20, -13, 19, 71, 61, 28, 33, 56, 50, 12, - -8, -2, 5, -24, -41, 2, 52, 29, -1, 24, 36, 26, 16, 14, 19, 6, - -19, -12, 1, -21, -49, -50, -28, -12, -3, 2, -2, -25, -32, -29, -24, -14, - -31, -61, -44, -17, -15, -9, 28, 72, 61, 25, 38, 61, 41, 7, -7, 4, - 3, -32, -36, 9, 45, 21, 4, 30, 33, 15, 11, 18, 17, -1, -18, -7, - -4, -22, -47, -45, -24, -6, 2, 5, -7, -27, -34, -28, -21, -14, -42, -69, - -40, -11, -16, -3, 41, 68, 53, 29, 48, 61, 32, 0, -5, 8, 2, -33, - -28, 9, 31, 16, 16, 34, 22, 0, 10, 24, 10, -9, -19, -6, -8, -26, - -38, -34, -20, -10, 1, 11, -9, -33, -31, -32, -25, -18, -50, -65, -40, -15, - -8, 13, 47, 65, 50, 33, 54, 62, 24, -2, 2, 12, -6, -31, -20, 12, - 21, 10, 28, 34, 9, -5, 20, 20, -2, -13, -10, -4, -18, -33, -26, -16, - -19, -14, 6, 8, -14, -31, -32, -29, -29, -31, -51, -69, -47, -12, 2, 21, - 49, 56, 43, 45, 62, 54, 16, -2, 7, 9, -13, -22, -4, 12, 7, 13, - 37, 33, 7, -4, 23, 9, -8, -8, -2, -8, -33, -38, -7, -1, -22, -19, - 11, 7, -21, -29, -29, -29, -31, -32, -55, -80, -49, -7, 16, 31, 43, 45, - 44, 56, 66, 45, 12, 2, 10, 3, -18, -13, 7, 9, -2, 17, 38, 22, - 1, 5, 17, 4, -14, -12, -1, -11, -43, -38, 6, 5, -22, -15, 12, 0, - -23, -26, -28, -31, -32, -36, -60, -82, -46, 3, 24, 35, 38, 41, 46, 59, - 62, 41, 13, -1, 3, -6, -18, 3, 22, 2, -9, 20, 36, 18, 10, 7, - 4, -5, -17, -9, -2, -18, -55, -30, 17, 6, -20, -10, 6, -5, -16, -26, - -32, -27, -30, -42, -69, -84, -41, 13, 31, 42, 37, 38, 45, 63, 65, 41, - 12, 3, 1, -18, -10, 23, 27, -2, -12, 17, 36, 26, 13, 4, -2, -5, - -14, -14, -11, -26, -54, -19, 21, 8, -16, -8, 6, -7, -20, -30, -33, -24, - -33, -50, -74, -82, -32, 18, 34, 42, 38, 34, 50, 69, 58, 34, 16, 7, - -9, -29, -2, 41, 32, -7, -15, 11, 34, 30, 9, 2, -3, -7, -23, -21, - -15, -30, -52, -10, 18, 10, -8, -4, 5, -4, -25, -33, -26, -22, -42, -59, - -79, -72, -20, 23, 36, 41, 37, 34, 54, 74, 53, 22, 17, 15, -17, -34, - 10, 52, 37, -8, -11, 12, 33, 23, 8, 4, -1, -16, -31, -25, -18, -38, - -49, -3, 19, 11, -4, 0, 7, -8, -34, -31, -19, -26, -52, -62, -79, -55, - -7, 23, 41, 47, 41, 33, 61, 75, 43, 22, 21, 13, -26, -33, 17, 58, - 39, -6, -8, 13, 27, 10, 5, 13, -2, -32, -43, -32, -19, -38, -36, -3, - 12, 4, 4, 13, 6, -22, -41, -31, -13, -33, -59, -71, -76, -35, 2, 20, - 39, 53, 47, 39, 60, 62, 37, 26, 22, 5, -33, -29, 26, 64, 40, 0, - -5, 12, 21, 8, 16, 10, -13, -39, -49, -37, -25, -41, -30, -6, 9, 9, - 13, 23, 0, -30, -44, -26, -13, -45, -67, -76, -68, -20, 10, 19, 39, 55, - 50, 46, 57, 50, 37, 30, 16, -3, -34, -22, 34, 65, 40, 13, -2, 6, - 19, 12, 21, 5, -23, -49, -52, -38, -33, -36, -24, -9, 10, 12, 25, 23, - -11, -29, -43, -27, -21, -55, -73, -77, -50, -2, 19, 19, 35, 59, 59, 49, - 45, 40, 36, 27, 4, -10, -24, -12, 31, 59, 44, 22, -5, 4, 19, 20, - 12, -4, -27, -52, -50, -45, -39, -24, -23, -13, 16, 20, 30, 15, -16, -28, - -37, -30, -36, -64, -79, -73, -28, 17, 24, 14, 36, 65, 68, 45, 33, 39, - 40, 22, -2, -5, -11, -11, 28, 58, 57, 20, -13, 0, 27, 23, 1, -15, - -35, -58, -55, -52, -39, -20, -22, -9, 20, 29, 30, 10, -15, -31, -39, -32, - -48, -72, -86, -59, -4, 27, 19, 17, 44, 77, 69, 31, 26, 40, 38, 14, - -6, 0, 1, -11, 26, 67, 62, 10, -18, 6, 31, 20, -5, -22, -44, -66, - -61, -50, -31, -17, -24, -7, 24, 34, 31, 3, -17, -31, -36, -40, -61, -73, - -76, -46, 11, 34, 20, 22, 56, 83, 60, 22, 24, 46, 32, 5, -4, 9, - 0, -8, 31, 73, 53, 0, -13, 16, 28, 14, -15, -31, -51, -74, -64, -43, - -25, -22, -25, -1, 30, 37, 20, -2, -20, -36, -39, -55, -69, -75, -69, -32, - 21, 36, 22, 31, 63, 76, 50, 22, 25, 49, 29, 3, 4, 9, 2, 0, - 43, 74, 37, -8, -1, 28, 24, 8, -22, -42, -65, -80, -60, -31, -25, -31, - -24, 8, 41, 37, 10, -3, -22, -40, -45, -60, -69, -69, -55, -15, 32, 37, - 25, 42, 72, 70, 37, 21, 32, 41, 20, 5, 15, 8, 0, 9, 46, 62, - 26, -7, 8, 28, 21, 4, -29, -53, -79, -82, -57, -25, -27, -32, -21, 14, - 48, 35, -1, -7, -24, -44, -52, -70, -69, -60, -38, 1, 34, 33, 32, 57, - 70, 58, 34, 26, 31, 31, 16, 14, 14, 3, 8, 25, 47, 47, 18, -2, - 13, 25, 19, -2, -33, -64, -87, -83, -53, -24, -29, -32, -17, 21, 46, 27, - -4, -12, -30, -51, -61, -73, -60, -46, -17, 9, 25, 32, 47, 69, 61, 48, - 41, 30, 26, 24, 18, 24, 15, 2, 14, 37, 42, 34, 17, 9, 19, 20, - 11, -7, -35, -79, -97, -79, -45, -21, -29, -33, -12, 26, 43, 27, -3, -15, - -43, -58, -66, -69, -52, -37, -2, 16, 24, 38, 61, 72, 56, 43, 41, 32, - 28, 22, 22, 26, 12, 1, 23, 45, 34, 21, 8, 17, 22, 19, 4, -18, - -47, -93, -97, -70, -40, -29, -33, -22, -5, 24, 44, 19, -6, -23, -53, -60, - -74, -63, -41, -20, 10, 18, 19, 40, 70, 70, 47, 41, 43, 37, 27, 14, - 24, 32, 10, 1, 29, 44, 27, 12, 7, 28, 32, 9, -11, -27, -56, -100, - -94, -64, -43, -38, -31, -7, 0, 27, 41, 11, -7, -35, -60, -62, -75, -54, - -29, -5, 17, 22, 14, 46, 80, 72, 46, 42, 44, 42, 24, 16, 31, 32, - 9, 4, 33, 45, 22, 5, 8, 41, 34, 0, -22, -36, -69, -100, -92, -65, - -40, -44, -25, 0, 5, 28, 36, 4, -12, -50, -64, -64, -68, -46, -19, 2, - 25, 28, 19, 44, 72, 67, 46, 45, 44, 39, 21, 21, 38, 29, 1, 9, - 39, 39, 13, -4, 9, 54, 41, -11, -38, -51, -76, -91, -92, -65, -44, -47, - -17, 12, 11, 21, 27, 6, -24, -59, -65, -67, -61, -40, -17, 8, 31, 26, - 20, 49, 74, 65, 45, 48, 47, 36, 25, 28, 36, 25, 5, 19, 42, 28, - 6, -2, 21, 56, 27, -22, -45, -62, -83, -92, -84, -65, -49, -37, -8, 15, - 16, 22, 23, -1, -38, -65, -66, -65, -51, -35, -15, 20, 42, 26, 25, 51, - 70, 60, 45, 52, 47, 25, 25, 39, 33, 24, 16, 31, 37, 14, 3, 2, - 33, 55, 14, -35, -55, -67, -84, -88, -84, -68, -47, -28, -1, 17, 22, 24, - 17, -14, -54, -66, -64, -61, -46, -32, -10, 26, 45, 24, 29, 52, 66, 57, - 49, 56, 41, 16, 29, 46, 31, 22, 24, 37, 30, 12, -1, 5, 40, 39, - 1, -41, -63, -72, -89, -89, -77, -62, -48, -17, 5, 13, 26, 31, 10, -29, - -62, -64, -65, -54, -41, -25, -4, 32, 52, 29, 32, 55, 61, 55, 56, 57, - 35, 17, 33, 40, 28, 27, 37, 36, 26, 14, -3, 13, 41, 22, -13, -45, - -65, -78, -90, -87, -70, -56, -47, -12, 9, 18, 35, 27, -5, -41, -63, -61, - -65, -52, -37, -17, 5, 35, 52, 34, 38, 55, 58, 53, 60, 54, 31, 21, - 33, 34, 30, 35, 40, 32, 29, 15, -4, 18, 30, 11, -25, -53, -69, -85, - -91, -82, -66, -54, -36, -7, 6, 20, 40, 19, -17, -52, -63, -60, -65, -50, - -32, -11, 9, 34, 50, 40, 46, 51, 56, 60, 60, 50, 28, 23, 33, 33, - 31, 40, 43, 38, 38, 13, -6, 13, 19, -2, -34, -57, -78, -91, -85, -73, - -63, -55, -28, -1, 6, 26, 39, 13, -28, -56, -61, -55, -61, -43, -27, -13, - 12, 38, 48, 49, 54, 46, 52, 64, 64, 48, 27, 22, 28, 33, 36, 44, - 42, 39, 44, 15, -3, 10, 6, -19, -46, -60, -81, -92, -83, -73, -52, -44, - -22, -5, 5, 38, 37, -6, -41, -55, -54, -49, -53, -45, -28, -9, 19, 41, - 47, 56, 57, 41, 56, 69, 64, 42, 26, 23, 27, 36, 39, 44, 39, 48, - 53, 12, -4, 2, -8, -33, -61, -72, -84, -87, -80, -73, -49, -36, -12, -5, - 9, 42, 24, -15, -44, -50, -51, -51, -51, -45, -26, -4, 20, 40, 47, 64, - 58, 38, 61, 71, 55, 37, 32, 23, 30, 34, 39, 50, 43, 58, 53, 9, - 4, -3, -27, -49, -71, -79, -79, -79, -82, -70, -44, -26, -7, -5, 16, 36, - 9, -18, -40, -47, -49, -45, -42, -43, -20, 1, 21, 40, 53, 72, 54, 36, - 64, 66, 41, 30, 36, 26, 28, 31, 44, 57, 48, 62, 45, 13, 3, -14, - -47, -65, -77, -87, -78, -71, -75, -68, -43, -16, -2, -1, 18, 20, -4, -18, - -37, -46, -50, -36, -39, -46, -15, 7, 23, 41, 62, 72, 49, 41, 69, 59, - 33, 29, 38, 24, 28, 31, 52, 59, 49, 61, 45, 21, 2, -31, -64, -73, - -78, -89, -79, -71, -77, -62, -36, -8, 3, 5, 15, 5, -10, -17, -34, -49, - -50, -27, -37, -43, -12, 14, 25, 45, 67, 68, 48, 48, 64, 48, 27, 33, - 41, 25, 24, 32, 64, 66, 51, 62, 41, 21, -7, -43, -77, -81, -83, -87, - -74, -71, -77, -54, -29, -1, 7, 13, 12, -6, -9, -18, -38, -54, -44, -21, - -37, -41, -8, 16, 28, 53, 73, 61, 46, 52, 60, 35, 25, 34, 38, 20, - 25, 42, 73, 62, 60, 58, 39, 22, -19, -54, -85, -88, -95, -88, -65, -69, - -73, -47, -22, 3, 14, 15, -5, -14, -6, -23, -42, -52, -34, -19, -42, -38, - 0, 18, 30, 62, 76, 61, 49, 52, 49, 26, 23, 34, 33, 22, 21, 50, - 78, 68, 66, 47, 40, 22, -23, -66, -95, -102, -97, -74, -61, -77, -68, -36, - -12, 9, 15, 13, -18, -14, -5, -31, -50, -44, -21, -25, -49, -25, 8, 16, - 30, 70, 82, 56, 45, 55, 39, 21, 25, 31, 24, 21, 28, 64, 81, 68, - 64, 47, 44, 15, -30, -77, -101, -104, -96, -71, -66, -76, -53, -22, -9, 6, - 22, 10, -22, -15, -13, -38, -48, -32, -9, -33, -49, -14, 10, 11, 37, 77, - 85, 51, 44, 48, 30, 18, 21, 26, 16, 21, 36, 71, 76, 73, 68, 48, - 35, 4, -38, -81, -103, -109, -91, -67, -71, -69, -40, -15, -12, 3, 23, 7, - -23, -17, -24, -41, -45, -24, -11, -46, -46, -1, 10, 8, 49, 84, 83, 48, - 50, 48, 27, 16, 18, 20, 14, 26, 44, 72, 75, 82, 71, 47, 26, -6, - -45, -80, -107, -110, -88, -70, -69, -58, -28, -9, -12, 2, 23, 2, -21, -19, - -35, -38, -33, -13, -17, -50, -35, 8, 9, 10, 57, 89, 74, 45, 52, 41, - 24, 15, 11, 14, 13, 22, 54, 72, 74, 86, 72, 41, 13, -14, -47, -86, - -113, -111, -88, -72, -67, -42, -18, -11, -11, 2, 18, -2, -17, -27, -44, -37, - -28, -12, -26, -49, -22, 9, 3, 21, 69, 87, 63, 46, 49, 36, 24, 13, - 11, 11, 8, 26, 64, 68, 76, 89, 74, 38, 3, -17, -44, -86, -117, -114, - -86, -65, -58, -38, -19, -7, 0, 8, 9, -5, -20, -37, -45, -29, -19, -15, - -36, -39, -10, 6, 4, 33, 79, 81, 55, 48, 42, 30, 23, 10, 13, 10, - 3, 27, 62, 60, 76, 88, 68, 30, -5, -21, -49, -89, -120, -115, -81, -54, - -46, -34, -14, -1, 7, 9, 1, -6, -18, -45, -52, -29, -16, -17, -35, -36, - -12, 5, 11, 47, 81, 72, 53, 51, 39, 28, 24, 9, 13, 7, 5, 36, - 57, 55, 82, 90, 62, 31, -10, -29, -55, -91, -121, -115, -76, -47, -38, -34, - -13, 1, 13, 9, -4, -9, -17, -49, -56, -26, -9, -12, -33, -40, -17, 12, - 25, 57, 71, 62, 52, 50, 35, 22, 21, 14, 11, -2, 10, 41, 50, 48, - 85, 87, 66, 29, -15, -34, -64, -97, -121, -108, -73, -43, -37, -28, -7, 7, - 16, 6, -7, -5, -15, -59, -56, -19, -4, -14, -37, -42, -10, 21, 38, 66, - 63, 57, 52, 49, 28, 22, 28, 16, 5, -3, 22, 47, 38, 45, 79, 85, - 68, 23, -16, -34, -70, -100, -122, -107, -62, -39, -38, -25, -4, 15, 18, 2, - -3, 0, -27, -70, -51, -17, -3, -16, -44, -40, -1, 27, 45, 67, 57, 54, - 48, 39, 17, 18, 28, 17, 3, -3, 27, 49, 37, 42, 69, 86, 66, 16, - -17, -37, -72, -99, -117, -101, -55, -39, -36, -24, 1, 20, 13, 4, 4, -5, - -46, -74, -43, -9, -4, -28, -49, -33, 6, 33, 63, 68, 54, 53, 49, 33, - 18, 21, 24, 15, 7, 9, 33, 42, 35, 39, 70, 85, 55, 10, -16, -40, - -75, -98, -113, -92, -47, -38, -35, -21, 1, 21, 15, 8, 7, -14, -62, -70, - -30, -11, -15, -34, -49, -23, 9, 39, 64, 58, 51, 56, 42, 20, 16, 19, - 16, 16, 4, 13, 40, 46, 33, 31, 65, 83, 49, 3, -24, -41, -73, -98, - -105, -77, -45, -41, -30, -13, 7, 19, 12, 13, 8, -26, -68, -61, -22, -14, - -25, -38, -40, -18, 12, 47, 68, 59, 49, 51, 42, 19, 17, 17, 12, 13, - 5, 18, 41, 47, 26, 26, 67, 78, 44, -2, -31, -47, -71, -97, -96, -67, - -44, -42, -29, -11, 13, 21, 13, 17, 8, -34, -68, -54, -17, -18, -36, -43, - -35, -12, 14, 50, 69, 56, 49, 44, 35, 16, 13, 17, 13, 13, 6, 27, - 46, 50, 24, 28, 66, 64, 28, 0, -25, -49, -75, -99, -87, -54, -42, -38, - -28, -8, 20, 19, 11, 17, 1, -41, -62, -49, -18, -27, -41, -39, -29, -8, - 15, 55, 73, 55, 42, 42, 33, 16, 12, 12, 9, 6, 14, 40, 52, 48, - 21, 31, 60, 50, 23, 0, -32, -60, -76, -90, -73, -44, -39, -36, -32, 1, - 29, 20, 6, 13, -3, -41, -53, -43, -21, -34, -47, -38, -22, -2, 22, 54, - 65, 49, 38, 42, 32, 17, 12, 7, 6, 3, 21, 48, 53, 42, 24, 39, - 53, 38, 15, -3, -38, -65, -76, -85, -59, -36, -35, -40, -26, 15, 26, 12, - 6, 10, -12, -40, -49, -33, -26, -41, -53, -36, -12, 5, 28, 50, 61, 46, - 34, 37, 31, 20, 12, 1, 0, 5, 32, 53, 56, 41, 23, 39, 48, 35, - 13, -10, -44, -72, -81, -79, -50, -27, -34, -41, -18, 20, 27, 12, 5, 1, - -19, -36, -40, -22, -34, -50, -55, -33, -3, 14, 33, 52, 54, 35, 27, 36, - 37, 25, 7, -13, 1, 19, 41, 50, 50, 38, 32, 43, 41, 32, 6, -17, - -46, -69, -79, -75, -43, -20, -34, -38, -8, 23, 26, 12, 6, -8, -23, -30, - -30, -23, -46, -56, -52, -29, 6, 23, 35, 44, 47, 31, 25, 33, 40, 26, - -4, -22, 3, 28, 39, 40, 50, 40, 28, 34, 37, 28, 0, -22, -50, -70, - -81, -72, -34, -22, -36, -33, 2, 24, 25, 12, 4, -15, -24, -26, -25, -23, - -46, -56, -50, -24, 10, 33, 36, 40, 35, 21, 25, 43, 47, 25, -13, -25, - 11, 40, 36, 40, 56, 38, 27, 31, 33, 24, -4, -24, -53, -71, -80, -59, - -34, -27, -31, -27, 8, 24, 25, 17, 2, -22, -25, -26, -19, -24, -51, -58, - -40, -9, 14, 37, 36, 35, 27, 14, 28, 48, 46, 19, -19, -24, 18, 40, - 29, 41, 50, 29, 29, 27, 33, 18, -12, -29, -53, -71, -75, -48, -33, -32, - -25, -14, 13, 24, 19, 17, 2, -25, -28, -28, -18, -28, -55, -59, -30, -3, - 20, 41, 34, 24, 15, 15, 36, 49, 39, 17, -17, -17, 22, 41, 33, 45, - 38, 26, 30, 24, 27, 10, -11, -34, -58, -70, -66, -38, -32, -36, -21, -2, - 14, 28, 19, 14, 0, -25, -29, -28, -17, -30, -57, -51, -22, 3, 23, 39, - 34, 15, 11, 17, 38, 46, 39, 15, -18, -14, 27, 40, 37, 45, 32, 28, - 30, 29, 28, 1, -16, -38, -55, -65, -62, -37, -31, -34, -17, 9, 18, 27, - 18, 9, -1, -22, -35, -29, -17, -32, -57, -45, -17, 15, 30, 30, 25, 8, - 10, 19, 35, 46, 37, 4, -19, -8, 31, 33, 33, 42, 28, 22, 24, 29, - 23, -6, -21, -43, -54, -59, -55, -32, -34, -39, -10, 19, 30, 25, 9, 2, - -2, -20, -38, -30, -23, -41, -51, -35, -12, 24, 32, 22, 12, 8, 16, 23, - 32, 48, 33, 1, -16, 0, 29, 30, 33, 36, 24, 23, 22, 33, 14, -14, - -20, -42, -55, -50, -44, -27, -38, -41, -3, 31, 35, 23, 5, -2, -4, -15, - -34, -33, -38, -47, -40, -26, -3, 31, 31, 9, 2, 13, 14, 20, 38, 53, - 27, -6, -14, 11, 30, 23, 32, 28, 25, 22, 24, 32, 5, -20, -26, -45, - -49, -40, -36, -37, -48, -40, 8, 40, 37, 16, -3, -6, -2, -9, -27, -42, - -52, -48, -32, -21, 8, 39, 28, -2, -5, 13, 17, 23, 40, 45, 19, -4, - -3, 18, 15, 19, 33, 30, 29, 22, 21, 22, 0, -17, -27, -46, -48, -33, - -31, -38, -53, -33, 23, 43, 31, 11, -7, -5, -3, -8, -26, -49, -59, -48, - -25, -14, 15, 41, 23, -8, -6, 11, 10, 26, 49, 41, 12, 0, 10, 19, - 4, 22, 31, 25, 25, 24, 20, 12, -4, -10, -37, -50, -37, -23, -26, -43, - -55, -18, 34, 41, 28, 10, -9, -6, -3, -8, -27, -57, -62, -37, -15, -8, - 24, 44, 23, -10, -6, 3, 8, 39, 55, 30, 12, 11, 20, 8, 3, 27, - 26, 20, 21, 24, 19, -1, -10, -14, -42, -47, -25, -14, -28, -49, -50, -5, - 38, 38, 23, 9, -11, -9, -1, -5, -33, -64, -59, -34, -14, -2, 32, 49, - 17, -11, -6, -2, 11, 46, 46, 19, 16, 23, 24, -3, 3, 29, 29, 16, - 17, 22, 11, -12, -12, -18, -50, -43, -15, -11, -30, -53, -38, 10, 31, 31, - 25, 3, -16, -3, 3, -8, -41, -67, -53, -24, -14, 3, 35, 46, 17, -2, - -7, -9, 16, 49, 41, 20, 22, 34, 21, -5, 5, 31, 29, 12, 14, 18, - 8, -22, -17, -20, -52, -38, -13, -19, -32, -48, -25, 11, 23, 29, 26, 1, - -14, 1, 1, -18, -47, -60, -47, -31, -11, 13, 45, 39, 8, -2, -2, -11, - 16, 43, 35, 25, 34, 40, 18, -7, 6, 34, 28, 14, 7, 11, 2, -23, - -25, -29, -51, -30, -11, -24, -38, -40, -15, 9, 18, 29, 32, -1, -10, 0, - -9, -27, -48, -52, -46, -30, -2, 27, 47, 30, 10, 7, -6, -15, 12, 35, - 28, 30, 45, 42, 19, -4, 11, 29, 21, 6, 1, 3, -3, -27, -31, -34, - -40, -22, -18, -31, -35, -30, -18, 5, 19, 32, 28, -9, -7, 1, -14, -30, - -42, -45, -47, -28, 7, 38, 45, 23, 14, 20, -2, -24, 7, 32, 30, 37, - 43, 41, 22, 7, 18, 22, 14, 4, -7, 4, -7, -36, -37, -37, -27, -15, - -26, -34, -34, -29, -18, 4, 19, 31, 20, -4, 0, -3, -21, -32, -37, -41, - -40, -25, 14, 49, 44, 18, 19, 25, -1, -19, 5, 26, 35, 38, 46, 41, - 18, 18, 16, 13, 12, 2, -5, -3, -23, -44, -37, -32, -20, -20, -33, -28, - -32, -32, -16, 1, 17, 31, 17, -2, 2, -3, -22, -33, -39, -40, -34, -23, - 15, 56, 44, 15, 27, 23, -4, -14, 2, 22, 38, 37, 48, 40, 25, 24, - 15, 11, 2, -2, -3, -15, -31, -40, -37, -33, -17, -17, -28, -29, -41, -34, - -7, 1, 13, 31, 17, -2, 4, 1, -20, -35, -47, -37, -24, -10, 22, 52, - 38, 26, 35, 26, -2, -9, 4, 23, 40, 38, 46, 39, 32, 31, 16, 2, - -7, -8, -2, -21, -38, -44, -38, -31, -18, -15, -29, -35, -45, -32, -1, -3, - 4, 30, 16, 3, 8, 4, -20, -42, -48, -30, -17, -8, 21, 49, 41, 30, - 38, 23, -2, -5, 1, 21, 35, 37, 44, 40, 40, 33, 17, 1, -13, -10, - -9, -35, -41, -41, -39, -33, -19, -12, -27, -40, -48, -28, -4, -10, 10, 28, - 15, 9, 12, 5, -24, -43, -43, -23, -18, 0, 26, 47, 43, 35, 40, 20, - -1, 1, 4, 20, 28, 37, 42, 42, 46, 31, 22, 8, -17, -15, -15, -42, - -41, -37, -44, -37, -16, -13, -33, -41, -41, -20, -11, -17, 10, 18, 13, 16, - 17, 1, -24, -38, -38, -27, -21, 9, 29, 46, 44, 43, 38, 18, 3, 6, - 6, 12, 19, 38, 41, 47, 44, 28, 29, 11, -26, -25, -27, -45, -39, -39, - -48, -41, -18, -13, -33, -38, -36, -21, -19, -14, 13, 11, 11, 26, 17, -6, - -25, -32, -32, -35, -14, 21, 31, 38, 49, 49, 34, 19, 13, 10, 4, 9, - 20, 37, 41, 45, 39, 29, 35, 6, -28, -28, -35, -43, -37, -42, -50, -44, - -20, -20, -37, -37, -27, -16, -23, -11, 10, 5, 17, 36, 16, -16, -23, -21, - -33, -38, -5, 23, 28, 35, 55, 55, 31, 17, 18, 12, 3, 4, 21, 33, - 41, 45, 31, 32, 39, 3, -29, -35, -41, -40, -38, -45, -55, -45, -26, -31, - -36, -26, -22, -22, -29, 1, 9, -1, 24, 39, 8, -19, -17, -14, -32, -34, - 5, 29, 29, 35, 58, 51, 32, 29, 23, 11, 1, 6, 29, 37, 38, 36, - 24, 43, 39, -2, -32, -44, -45, -36, -36, -45, -55, -51, -37, -35, -30, -22, - -20, -32, -24, 6, 2, 3, 30, 36, 3, -17, -16, -18, -29, -24, 10, 31, - 25, 34, 58, 44, 33, 37, 26, 8, 5, 10, 37, 36, 35, 29, 22, 47, - 36, -6, -36, -51, -49, -34, -38, -48, -58, -53, -46, -42, -24, -23, -22, -32, - -13, 4, -7, 8, 35, 30, 6, -14, -20, -19, -21, -20, 14, 34, 29, 43, - 52, 37, 39, 43, 24, 8, 7, 15, 45, 33, 36, 24, 25, 43, 25, -10, - -39, -53, -47, -34, -39, -53, -56, -54, -56, -42, -21, -23, -29, -25, -5, 1, - -10, 12, 35, 27, 7, -14, -25, -19, -11, -10, 13, 31, 37, 44, 42, 37, - 45, 44, 24, 14, 13, 24, 40, 28, 35, 23, 31, 35, 15, -16, -38, -53, - -45, -37, -48, -56, -54, -63, -63, -40, -23, -24, -27, -19, 3, 1, -11, 14, - 33, 24, 5, -16, -28, -17, -6, -1, 15, 38, 39, 38, 29, 36, 54, 42, - 20, 20, 19, 32, 38, 30, 31, 23, 33, 23, -1, -17, -35, -44, -43, -47, - -51, -51, -56, -71, -67, -45, -28, -23, -23, -13, 12, -1, -15, 15, 33, 20, - -2, -22, -25, -17, -3, 10, 24, 46, 44, 31, 26, 41, 53, 42, 23, 23, - 26, 39, 37, 32, 24, 28, 36, 11, -7, -19, -38, -39, -37, -49, -54, -51, - -62, -76, -68, -51, -28, -19, -21, 1, 22, -3, -11, 14, 25, 16, -5, -25, - -25, -15, -2, 20, 36, 51, 42, 19, 19, 43, 58, 43, 25, 21, 35, 46, - 41, 34, 17, 26, 33, 5, -15, -25, -39, -34, -37, -55, -50, -49, -69, -80, - -67, -50, -31, -18, -12, 12, 17, -5, -5, 14, 17, 6, -15, -27, -22, -14, - 3, 37, 49, 48, 40, 22, 22, 36, 51, 44, 29, 22, 42, 49, 41, 29, - 16, 29, 31, -9, -30, -33, -35, -29, -38, -55, -45, -54, -79, -80, -65, -51, - -34, -16, -2, 18, 18, 5, 7, 8, 6, 3, -19, -21, -22, -19, 12, 51, - 53, 48, 39, 22, 18, 36, 46, 42, 35, 31, 44, 46, 42, 31, 24, 35, - 21, -25, -39, -33, -30, -24, -41, -53, -47, -60, -81, -81, -63, -53, -40, -14, - 6, 24, 20, 8, 7, 0, -1, -4, -21, -23, -29, -16, 30, 60, 55, 50, - 37, 19, 19, 35, 43, 46, 37, 29, 43, 49, 43, 32, 27, 31, 13, -35, - -46, -36, -26, -28, -44, -52, -47, -65, -84, -84, -68, -49, -27, 0, 10, 15, - 19, 15, 9, -3, -10, -16, -20, -26, -28, -2, 41, 59, 62, 56, 37, 16, - 15, 31, 43, 50, 42, 30, 41, 49, 49, 38, 28, 23, 5, -42, -55, -42, - -21, -22, -40, -49, -54, -71, -86, -81, -62, -44, -21, 5, 17, 16, 25, 23, - 0, -13, -17, -17, -24, -32, -21, 15, 45, 58, 66, 52, 33, 15, 9, 35, - 42, 44, 44, 36, 38, 50, 52, 40, 28, 16, -11, -48, -60, -43, -22, -21, - -40, -53, -58, -78, -90, -79, -61, -42, -9, 14, 15, 16, 22, 21, -4, -20, - -21, -19, -30, -31, -10, 26, 54, 63, 69, 51, 33, 12, 13, 40, 42, 45, - 42, 33, 36, 53, 57, 44, 24, 3, -24, -53, -63, -45, -21, -15, -39, -57, - -63, -78, -89, -76, -55, -34, 3, 18, 9, 16, 21, 15, -8, -26, -28, -25, - -32, -24, 4, 34, 56, 67, 75, 48, 22, 7, 23, 44, 39, 40, 40, 35, - 40, 59, 59, 44, 18, -6, -31, -54, -58, -44, -20, -13, -43, -63, -69, -80, - -88, -71, -48, -21, 12, 16, 12, 18, 13, 6, -12, -27, -32, -30, -34, -20, - 13, 46, 63, 74, 73, 40, 15, 13, 39, 46, 33, 32, 35, 36, 48, 58, - 61, 43, 16, -13, -36, -57, -62, -41, -22, -16, -42, -66, -73, -79, -85, -65, - -38, -7, 13, 9, 7, 16, 11, -2, -18, -36, -39, -26, -25, -16, 21, 53, - 64, 74, 68, 36, 19, 22, 38, 44, 32, 28, 32, 38, 52, 60, 56, 43, - 13, -25, -39, -54, -52, -35, -30, -27, -46, -70, -79, -80, -79, -58, -26, 3, - 15, 6, 0, 12, 6, -8, -27, -45, -39, -17, -16, -13, 28, 57, 67, 71, - 57, 37, 22, 25, 41, 46, 29, 24, 34, 44, 56, 55, 52, 44, 7, -27, - -38, -48, -44, -35, -31, -29, -46, -77, -83, -73, -70, -48, -15, 6, 9, 1, - 1, 9, -3, -20, -41, -48, -30, -5, -14, -9, 39, 63, 70, 66, 47, 36, - 25, 32, 40, 43, 26, 21, 36, 47, 59, 50, 49, 35, 0, -26, -36, -44, - -41, -36, -35, -33, -50, -79, -79, -66, -63, -36, -8, 6, -3, -9, 2, 3, - -13, -30, -49, -46, -18, -2, -15, 4, 42, 58, 65, 61, 50, 38, 28, 37, - 40, 38, 28, 30, 38, 48, 50, 42, 46, 28, -3, -28, -37, -36, -36, -39, - -36, -37, -59, -79, -69, -62, -52, -24, -2, 3, -12, -11, 4, -5, -29, -42, - -53, -39, -12, -4, -4, 14, 37, 52, 63, 58, 50, 37, 34, 37, 36, 37, - 38, 36, 35, 47, 46, 44, 42, 18, -7, -30, -34, -32, -34, -41, -37, -45, - -66, -74, -64, -57, -36, -12, 1, -8, -23, -7, 6, -18, -39, -49, -53, -29, - -5, -1, 10, 19, 30, 46, 59, 58, 50, 36, 37, 37, 32, 40, 46, 38, - 34, 44, 42, 41, 36, 9, -9, -27, -29, -26, -34, -40, -40, -56, -69, -66, - -56, -46, -22, -7, -7, -19, -21, 3, 1, -35, -48, -53, -49, -22, -3, 12, - 23, 18, 22, 46, 66, 59, 47, 38, 43, 35, 30, 46, 51, 39, 33, 41, - 37, 42, 24, 2, -8, -22, -23, -24, -33, -39, -50, -66, -69, -59, -49, -31, - -13, -10, -17, -25, -16, 1, -17, -50, -55, -58, -42, -17, -1, 20, 31, 14, - 15, 48, 70, 59, 42, 38, 45, 33, 33, 51, 53, 36, 35, 37, 36, 37, - 12, 0, -9, -16, -18, -22, -33, -42, -59, -67, -62, -52, -40, -20, -11, -15, - -23, -23, -11, -3, -28, -51, -59, -61, -38, -14, 4, 26, 30, 10, 18, 53, - 71, 56, 40, 42, 45, 32, 34, 53, 52, 37, 36, 32, 37, 32, 10, -3, - -10, -10, -11, -17, -31, -46, -62, -63, -54, -44, -30, -14, -14, -23, -27, -22, - -11, -11, -35, -51, -65, -59, -32, -11, 11, 29, 25, 8, 24, 63, 73, 51, - 38, 46, 44, 29, 34, 51, 51, 39, 34, 27, 34, 23, 3, -5, -9, -6, - -10, -18, -33, -51, -66, -60, -50, -35, -20, -10, -21, -33, -29, -17, -9, -20, - -39, -55, -71, -57, -26, -7, 11, 23, 22, 11, 35, 70, 71, 46, 39, 48, - 42, 29, 33, 51, 47, 38, 31, 28, 35, 17, 0, -12, -7, 0, -4, -15, - -36, -56, -67, -56, -42, -26, -15, -12, -29, -36, -28, -15, -13, -25, -40, -58, - -70, -49, -23, -6, 8, 19, 17, 18, 49, 76, 66, 40, 42, 49, 39, 25, - 35, 51, 43, 40, 30, 31, 32, 15, -1, -14, -7, 1, -2, -17, -40, -59, - -61, -51, -38, -21, -10, -17, -34, -35, -28, -18, -17, -24, -40, -64, -65, -40, - -18, -8, 5, 13, 17, 31, 61, 75, 60, 41, 43, 47, 34, 20, 36, 47, - 43, 41, 31, 32, 26, 7, -7, -16, -6, 0, -3, -22, -44, -60, -56, -47, - -34, -19, -8, -20, -39, -40, -27, -18, -20, -29, -44, -63, -56, -38, -23, -11, - 4, 14, 21, 42, 65, 71, 59, 45, 42, 34, 21, 20, 42, 48, 44, 41, - 31, 34, 24, 6, -10, -20, -11, 4, 0, -20, -48, -57, -47, -39, -30, -17, - -4, -24, -43, -40, -26, -19, -24, -29, -45, -59, -51, -37, -25, -14, 3, 15, - 27, 51, 72, 76, 61, 44, 38, 23, 12, 21, 43, 46, 45, 40, 31, 35, - 21, 5, -17, -22, -13, 3, 1, -24, -51, -52, -43, -37, -28, -8, -7, -38, - -46, -36, -21, -21, -31, -33, -45, -51, -47, -40, -30, -13, 4, 14, 33, 60, - 76, 76, 61, 47, 30, 16, 8, 20, 40, 45, 48, 37, 37, 37, 22, 3, - -19, -20, -10, 4, -6, -30, -49, -44, -41, -38, -23, -1, -14, -41, -44, -36, - -22, -26, -35, -33, -45, -52, -48, -40, -32, -9, 6, 18, 35, 65, 85, 80, - 62, 46, 24, 6, -1, 23, 41, 48, 45, 31, 42, 40, 23, -6, -21, -15, - -6, 0, -13, -31, -44, -41, -38, -32, -15, 0, -22, -40, -41, -36, -24, -31, - -28, -32, -46, -49, -47, -43, -30, -6, 9, 19, 46, 77, 87, 77, 61, 42, - 18, -2, -7, 22, 39, 51, 41, 32, 43, 35, 13, -18, -18, -10, -5, -8, - -21, -29, -39, -42, -41, -23, -3, -3, -32, -39, -38, -34, -31, -35, -23, -32, - -46, -50, -51, -46, -26, 0, 12, 20, 54, 87, 91, 72, 60, 38, 13, -10, - -11, 24, 44, 52, 43, 39, 45, 34, 2, -19, -8, -1, -8, -19, -19, -25, - -35, -42, -39, -17, 7, -7, -38, -36, -36, -37, -37, -31, -20, -34, -49, -53, - -50, -43, -19, 6, 10, 25, 66, 91, 84, 67, 60, 36, 1, -18, -10, 27, - 48, 52, 42, 42, 38, 25, -3, -18, -5, -2, -13, -22, -24, -28, -35, -45, - -35, -4, 14, -17, -41, -36, -33, -35, -41, -29, -20, -38, -51, -54, -46, -33, - -14, 6, 14, 37, 74, 87, 76, 65, 64, 29, -9, -22, -7, 23, 52, 55, - 46, 42, 25, 17, -5, -12, -4, -3, -17, -25, -33, -36, -33, -39, -30, 5, - 12, -25, -37, -33, -34, -42, -41, -25, -22, -41, -52, -53, -40, -25, -10, 11, - 21, 43, 72, 78, 74, 69, 58, 15, -13, -15, -4, 22, 54, 58, 53, 41, - 15, 6, -2, -1, -3, -6, -18, -24, -42, -40, -29, -32, -20, 13, 8, -25, - -35, -34, -29, -42, -43, -27, -27, -42, -51, -50, -30, -14, -5, 17, 26, 46, - 70, 72, 72, 69, 48, 2, -13, -9, -3, 19, 55, 59, 53, 30, 1, -1, - 5, 8, -7, -15, -19, -25, -48, -45, -31, -28, -10, 15, 1, -24, -35, -35, - -22, -37, -43, -36, -35, -41, -47, -45, -18, -6, -1, 24, 32, 51, 65, 65, - 67, 63, 37, -3, -13, -9, 1, 29, 54, 60, 50, 18, -4, -4, 13, 9, - -10, -15, -17, -30, -54, -47, -29, -20, -8, 4, -8, -15, -29, -35, -21, -37, - -43, -46, -37, -33, -48, -39, -10, 3, 13, 31, 34, 54, 56, 57, 63, 56, - 32, -3, -16, -6, 14, 38, 48, 53, 40, 11, -3, 1, 6, -2, -11, -9, - -11, -28, -54, -54, -29, -8, 2, -8, -16, -13, -27, -31, -21, -32, -45, -54, - -36, -27, -44, -33, 1, 16, 25, 29, 39, 56, 48, 51, 57, 48, 22, 3, - -14, 0, 22, 39, 42, 46, 36, 7, -7, 0, 0, -3, -8, -8, -15, -34, - -50, -49, -27, -3, 0, -15, -14, -16, -28, -26, -21, -34, -56, -55, -32, -30, - -41, -23, 8, 20, 31, 33, 45, 53, 38, 42, 54, 40, 18, -3, -9, 14, - 33, 37, 34, 34, 27, 8, -5, -1, -9, -3, -1, -8, -19, -35, -43, -42, - -28, -7, 1, -18, -13, -17, -29, -24, -21, -34, -55, -52, -34, -30, -26, -9, - 15, 28, 28, 32, 55, 50, 29, 38, 45, 35, 17, -3, -1, 18, 36, 40, - 27, 24, 19, 0, -5, -1, -14, -7, -2, -12, -20, -30, -40, -42, -25, -5, - -5, -24, -14, -16, -25, -20, -26, -38, -52, -49, -35, -31, -13, 8, 16, 28, - 29, 42, 57, 40, 23, 32, 35, 30, 12, -5, 9, 22, 40, 38, 19, 17, - 16, -1, -9, -7, -12, -6, -5, -13, -18, -29, -39, -39, -18, -3, -19, -26, - -11, -18, -24, -19, -30, -40, -51, -45, -30, -24, 0, 19, 22, 28, 36, 49, - 54, 41, 22, 30, 31, 26, 10, 2, 10, 26, 43, 28, 14, 16, 7, -6, - -12, -9, -9, -5, -12, -19, -16, -29, -35, -34, -8, -8, -35, -20, -7, -26, - -23, -23, -30, -39, -53, -38, -25, -12, 11, 24, 24, 29, 47, 50, 48, 36, - 20, 29, 24, 15, 5, 8, 12, 32, 40, 21, 17, 11, 0, -3, -15, -14, - -7, -4, -13, -17, -16, -28, -31, -23, -6, -20, -37, -15, -12, -29, -22, -28, - -30, -38, -54, -34, -20, -4, 21, 33, 24, 33, 50, 45, 40, 33, 27, 28, - 14, 8, 8, 11, 11, 30, 33, 26, 20, -1, -8, -4, -17, -16, -2, -7, - -22, -20, -20, -26, -26, -15, -10, -27, -35, -12, -19, -31, -21, -23, -23, -42, - -57, -31, -11, 9, 35, 33, 23, 39, 53, 47, 40, 31, 31, 21, 10, 9, - 11, 10, 13, 26, 35, 33, 13, -11, -10, -4, -19, -22, 3, -2, -28, -26, - -16, -21, -24, -12, -12, -31, -34, -17, -27, -34, -25, -17, -19, -48, -59, -29, - -2, 27, 46, 26, 22, 43, 54, 44, 38, 30, 29, 16, 6, 15, 15, 6, - 9, 22, 36, 37, 9, -20, -10, -5, -21, -21, 2, -5, -29, -31, -18, -11, - -17, -11, -15, -32, -34, -23, -30, -30, -25, -15, -22, -52, -50, -17, 9, 36, - 42, 26, 29, 50, 53, 40, 33, 32, 27, 14, 7, 9, 7, 4, 12, 22, - 36, 36, 3, -27, -16, -9, -20, -21, -1, -12, -31, -27, -13, -12, -18, -12, - -17, -33, -39, -29, -34, -35, -23, -7, -25, -55, -42, -10, 20, 43, 40, 27, - 33, 51, 51, 37, 34, 31, 21, 9, 8, 5, 2, 11, 16, 18, 34, 35, - 3, -22, -17, -16, -20, -17, -7, -20, -32, -28, -14, -12, -10, -8, -17, -34, - -41, -35, -34, -31, -19, -8, -27, -48, -29, -4, 26, 50, 44, 32, 37, 50, - 49, 40, 36, 22, 11, 11, 12, 5, 3, 14, 12, 13, 34, 37, 9, -23, - -24, -16, -21, -16, -17, -30, -27, -27, -20, -10, -10, -9, -18, -39, -46, -42, - -35, -31, -14, -9, -33, -42, -19, 1, 36, 55, 41, 32, 46, 55, 47, 35, - 32, 18, 6, 7, 9, -2, 7, 17, 8, 13, 34, 32, 10, -22, -27, -14, - -20, -21, -26, -31, -23, -27, -22, -6, -5, -11, -21, -39, -46, -46, -37, -30, - -14, -12, -33, -31, -8, 6, 41, 55, 40, 38, 54, 57, 39, 30, 33, 17, - 2, 1, 4, 7, 14, 14, -2, 11, 37, 31, 11, -26, -30, -16, -20, -18, - -21, -27, -32, -28, -12, 0, -4, -11, -23, -40, -46, -43, -33, -26, -16, -15, - -29, -19, -1, 13, 44, 58, 41, 49, 68, 59, 36, 28, 36, 18, -9, -9, - 4, 17, 20, 7, -6, 18, 36, 22, -1, -30, -26, -19, -25, -26, -31, -35, - -33, -21, -3, -8, -10, -14, -24, -40, -45, -43, -35, -20, -18, -20, -22, -12, - 0, 15, 48, 58, 41, 58, 77, 57, 30, 27, 33, 7, -23, -16, 11, 23, - 21, 2, -5, 24, 33, 10, -10, -24, -19, -25, -37, -30, -30, -34, -29, -14, - -5, -16, -8, -8, -26, -50, -47, -41, -30, -16, -25, -24, -14, -6, 3, 23, - 50, 51, 49, 69, 81, 56, 29, 33, 30, -2, -29, -14, 15, 26, 18, 2, - -1, 31, 28, 0, -20, -21, -21, -32, -43, -34, -33, -36, -23, -4, -8, -20, - -8, -11, -25, -44, -41, -39, -32, -17, -30, -22, -4, 1, 6, 31, 48, 47, - 63, 80, 82, 52, 31, 38, 23, -13, -33, -11, 20, 29, 14, -1, 9, 34, - 19, -12, -26, -13, -23, -46, -46, -38, -39, -35, -24, -3, -7, -17, -15, -16, - -25, -45, -37, -37, -33, -26, -36, -20, 5, 3, 4, 32, 42, 50, 76, 83, - 75, 49, 34, 36, 17, -24, -33, -12, 23, 32, 10, 1, 23, 30, 7, -17, - -22, -8, -27, -49, -50, -42, -38, -28, -18, -3, -8, -13, -14, -15, -24, -43, - -35, -33, -29, -27, -34, -15, 16, 8, 5, 32, 43, 62, 84, 84, 73, 53, - 40, 30, 6, -26, -34, -15, 25, 28, 8, 9, 38, 27, -4, -26, -21, -12, - -33, -54, -47, -48, -38, -21, -14, -2, -3, -11, -25, -18, -26, -32, -34, -34, - -29, -31, -35, -10, 18, 11, 7, 33, 47, 68, 83, 81, 71, 58, 42, 20, - -5, -25, -36, -15, 23, 23, 7, 20, 40, 21, -14, -35, -21, -16, -40, -58, - -52, -52, -31, -11, -9, -6, -1, -15, -26, -15, -29, -31, -36, -31, -29, -36, - -32, -4, 17, 8, 15, 36, 48, 66, 77, 83, 77, 59, 38, 9, -11, -20, - -34, -12, 22, 20, 14, 33, 39, 16, -22, -36, -23, -21, -40, -56, -52, -47, - -24, -10, -4, 3, 1, -17, -22, -18, -28, -26, -32, -30, -32, -30, -22, 1, - 15, 15, 27, 42, 52, 62, 75, 85, 80, 59, 35, 1, -16, -20, -35, -12, - 18, 17, 18, 40, 34, 5, -34, -38, -27, -28, -42, -60, -58, -48, -18, -4, - 0, 3, -4, -18, -20, -22, -35, -29, -27, -34, -42, -28, -12, 3, 8, 19, - 31, 40, 45, 60, 75, 79, 76, 62, 37, -2, -20, -22, -31, -11, 13, 15, - 31, 43, 27, 0, -28, -33, -36, -37, -43, -58, -61, -47, -13, 1, 1, 3, - -5, -12, -17, -25, -36, -27, -25, -39, -45, -24, 1, 0, 8, 25, 43, 45, - 42, 57, 76, 76, 73, 60, 37, -8, -25, -22, -25, -6, 9, 21, 41, 41, - 15, -6, -18, -33, -48, -40, -38, -57, -64, -46, -6, 9, -4, 1, -1, -9, - -18, -28, -33, -24, -27, -42, -45, -18, 2, 3, 13, 31, 49, 43, 37, 60, - 74, 68, 68, 60, 30, -12, -28, -23, -19, -8, 5, 26, 48, 37, 11, -12, - -17, -37, -54, -40, -41, -58, -65, -42, 5, 12, -8, 0, 2, -6, -22, -29, - -30, -28, -37, -44, -42, -9, 6, 7, 17, 33, 44, 42, 40, 61, 72, 57, - 63, 61, 24, -16, -34, -21, -15, -12, 3, 31, 47, 28, 7, -10, -15, -43, - -51, -38, -45, -61, -61, -31, 10, 8, -3, 6, 5, -8, -24, -27, -28, -31, - -44, -42, -29, -3, 6, 10, 24, 40, 44, 45, 46, 57, 62, 56, 65, 56, - 16, -13, -32, -18, -12, -10, 11, 32, 39, 25, 6, -10, -19, -48, -44, -38, - -49, -63, -61, -19, 12, 3, 4, 6, 3, -9, -25, -26, -27, -38, -46, -39, - -18, 1, 12, 20, 29, 33, 36, 49, 47, 54, 59, 49, 63, 51, 8, -12, - -25, -18, -18, -6, 20, 33, 28, 19, 4, -9, -27, -43, -41, -45, -55, -64, - -51, -13, 7, -3, 0, 7, 3, -12, -28, -27, -33, -46, -51, -33, -10, -5, - 15, 31, 34, 26, 32, 47, 51, 53, 47, 50, 61, 41, 1, -8, -12, -21, - -20, 5, 27, 29, 16, 13, 8, -9, -28, -40, -40, -44, -55, -62, -40, -8, - 5, -2, 4, 11, 4, -15, -26, -26, -37, -49, -47, -27, -8, -3, 22, 45, - 38, 22, 34, 47, 55, 52, 39, 44, 58, 32, 2, 0, -7, -25, -21, 10, - 29, 30, 9, 0, 0, -7, -26, -38, -40, -53, -61, -53, -30, -5, 1, -2, - 5, 10, 3, -18, -25, -33, -43, -51, -46, -20, -10, -8, 26, 52, 35, 19, - 32, 47, 56, 46, 33, 44, 48, 20, 10, 11, -7, -29, -20, 15, 35, 28, - 2, -9, -8, -6, -26, -32, -36, -54, -64, -52, -22, 1, 3, 2, 3, 15, - 2, -22, -24, -34, -41, -45, -39, -19, -9, 1, 35, 57, 37, 18, 27, 46, - 52, 41, 37, 44, 40, 18, 16, 13, -7, -29, -14, 23, 36, 17, -6, -17, - -2, 1, -24, -38, -43, -59, -62, -44, -22, -4, 7, 2, 5, 16, -2, -24, - -27, -36, -43, -48, -37, -20, -5, 14, 40, 52, 36, 20, 26, 43, 46, 40, - 41, 42, 28, 19, 19, 9, -4, -21, -10, 27, 32, 10, -6, -16, -4, -5, - -14, -37, -48, -59, -58, -36, -24, -1, 13, -3, 7, 16, -5, -19, -32, -38, - -46, -43, -32, -22, -7, 22, 49, 57, 37, 22, 20, 37, 41, 36, 46, 41, - 21, 19, 16, 9, -2, -25, -9, 27, 24, 8, -12, -11, -2, -9, -10, -39, - -51, -59, -59, -35, -21, 2, 15, -5, 10, 11, -12, -19, -35, -39, -46, -35, - -29, -26, -5, 37, 60, 53, 36, 26, 19, 33, 37, 33, 48, 41, 18, 17, - 19, 11, -8, -23, -3, 30, 21, -5, -14, -2, -6, -9, -9, -42, -59, -64, - -54, -33, -16, 6, 14, 0, 15, 4, -14, -17, -35, -45, -46, -33, -27, -22, - 2, 42, 56, 49, 37, 26, 19, 26, 23, 36, 58, 44, 11, 8, 23, 10, - -7, -15, 3, 26, 12, -10, -8, 3, -10, -7, -13, -46, -58, -60, -57, -40, - -11, 9, 9, 3, 13, -6, -12, -17, -42, -53, -45, -28, -23, -14, 11, 49, - 60, 49, 40, 27, 14, 16, 13, 43, 62, 46, 6, 8, 22, 7, -9, -10, - 11, 23, 4, -17, 2, 6, -6, -7, -21, -51, -58, -58, -55, -38, -12, 12, - 10, 13, 1, -15, -7, -14, -47, -62, -45, -29, -19, -2, 21, 51, 63, 46, - 37, 31, 16, 0, 4, 43, 64, 43, 6, 9, 24, 4, -15, -2, 14, 9, - -9, -15, 14, 7, -11, -10, -29, -53, -54, -57, -48, -35, -9, 13, 9, 11, - -5, -6, -2, -22, -57, -60, -39, -24, -11, 5, 30, 52, 62, 49, 42, 38, - 11, -9, 7, 45, 61, 44, 10, 15, 21, -4, -15, 3, 13, 1, -13, -9, - 13, 7, -9, -13, -32, -51, -53, -56, -44, -35, -9, 15, 11, 7, -8, 0, - -2, -34, -65, -56, -31, -24, -7, 20, 37, 49, 56, 47, 47, 39, -3, -16, - 12, 40, 53, 45, 16, 23, 17, -7, -8, 7, 8, -5, -12, -7, 7, 7, - -4, -17, -38, -56, -60, -50, -37, -33, -8, 7, 9, 0, -6, 7, -8, -47, - -71, -50, -25, -23, 0, 33, 41, 46, 52, 53, 54, 35, -6, -9, 13, 32, - 50, 48, 23, 25, 13, -4, -3, 0, -1, -7, -7, -8, 3, 6, -3, -22, - -41, -55, -62, -46, -30, -24, -5, 0, 5, 2, 3, 10, -20, -57, -69, -41, - -19, -16, 5, 37, 47, 46, 49, 54, 58, 29, -4, -6, 7, 21, 49, 49, - 24, 24, 12, -2, -5, -9, 0, 0, -10, -15, 2, 8, -4, -23, -42, -57, - -66, -43, -22, -16, -11, -8, 3, 5, 7, 4, -28, -61, -61, -36, -19, -11, - 10, 45, 51, 43, 46, 52, 54, 26, 3, -8, -3, 15, 52, 48, 27, 30, - 15, -1, -9, -14, 0, -2, -15, -17, -2, -1, -5, -23, -37, -62, -64, -34, - -17, -15, -19, -8, 4, 7, 8, -8, -37, -55, -50, -33, -19, -5, 16, 49, - 54, 44, 45, 52, 53, 32, 3, -12, -5, 14, 46, 46, 38, 34, 21, 6, - -13, -21, -2, -3, -18, -19, -14, -9, -2, -14, -44, -74, -56, -26, -15, -16, - -18, -6, -1, 7, 6, -20, -43, -48, -35, -32, -24, 1, 23, 51, 54, 41, - 42, 52, 49, 32, 3, -14, -5, 19, 42, 47, 43, 38, 27, 10, -18, -19, - -5, -7, -18, -27, -23, -9, 2, -8, -51, -75, -41, -19, -15, -13, -15, -11, - -5, 10, 1, -30, -37, -40, -30, -33, -24, 6, 30, 49, 49, 45, 43, 52, - 39, 24, 7, -10, -7, 12, 33, 44, 48, 43, 36, 7, -29, -18, -6, -14, - -23, -36, -32, -12, 2, -16, -60, -65, -27, -22, -22, -9, -6, -14, -6, 11, - -10, -38, -35, -27, -26, -35, -15, 18, 39, 47, 48, 51, 55, 51, 28, 22, - 13, -5, -6, 5, 27, 46, 57, 49, 39, 1, -29, -12, -7, -15, -28, -48, - -39, -11, -1, -28, -61, -51, -22, -30, -22, -3, -4, -21, -6, 8, -23, -45, - -29, -18, -27, -32, -11, 24, 44, 40, 46, 56, 61, 44, 17, 18, 19, 1, - -11, -2, 24, 48, 57, 54, 45, 2, -27, -12, -11, -18, -32, -49, -41, -16, - -10, -32, -47, -33, -25, -34, -13, 6, -5, -24, -13, -4, -29, -43, -29, -18, - -25, -21, -1, 25, 44, 40, 49, 67, 60, 31, 12, 18, 24, -2, -18, -5, - 22, 45, 62, 65, 46, -5, -21, -12, -12, -17, -36, -57, -48, -23, -15, -29, - -35, -28, -33, -31, -3, 12, -16, -32, -12, -19, -36, -33, -25, -22, -29, -10, - 14, 30, 41, 35, 51, 73, 57, 27, 16, 21, 14, -4, -12, -2, 21, 41, - 62, 71, 43, -7, -12, -19, -22, -23, -46, -57, -51, -35, -20, -17, -22, -26, - -37, -27, 7, 12, -24, -31, -14, -29, -34, -30, -22, -20, -21, 2, 15, 26, - 40, 45, 55, 66, 52, 28, 20, 17, 10, -1, -12, -4, 21, 43, 65, 74, - 39, 1, -9, -25, -27, -24, -45, -61, -55, -43, -22, -9, -12, -24, -32, -26, - 9, 7, -25, -31, -30, -40, -31, -26, -19, -20, -11, 14, 18, 27, 45, 54, - 52, 61, 49, 33, 24, 15, 5, 0, -14, -2, 24, 44, 62, 67, 37, 12, - -9, -30, -29, -33, -49, -66, -58, -51, -25, -2, -6, -19, -31, -24, 6, 3, - -21, -37, -43, -42, -31, -25, -17, -19, -5, 15, 19, 30, 52, 56, 45, 54, - 52, 38, 22, 11, 8, 0, -16, 2, 27, 44, 63, 60, 34, 16, -10, -25, - -31, -38, -55, -68, -62, -53, -18, 5, -2, -17, -31, -16, 5, -4, -22, -43, - -50, -38, -32, -21, -16, -11, 8, 10, 19, 32, 60, 60, 43, 46, 51, 37, - 24, 13, 8, -6, -17, 4, 32, 52, 56, 52, 39, 23, -5, -23, -41, -48, - -64, -65, -63, -57, -14, 9, 3, -18, -28, -9, 0, -11, -25, -47, -53, -38, - -30, -19, -11, 0, 10, 11, 23, 42, 66, 60, 42, 49, 53, 36, 24, 20, - 9, -17, -18, 3, 39, 59, 49, 41, 39, 26, 1, -24, -53, -59, -70, -61, - -66, -58, -12, 17, 7, -20, -26, -7, -7, -16, -30, -51, -60, -45, -26, -11, - -5, 5, 8, 10, 23, 48, 66, 55, 40, 48, 48, 33, 30, 25, 2, -21, - -15, 10, 41, 51, 44, 37, 41, 27, 6, -28, -60, -65, -70, -63, -70, -55, - -6, 21, 1, -20, -15, -2, -15, -24, -32, -54, -66, -45, -22, -8, 6, 13, - 5, 15, 31, 51, 64, 58, 41, 42, 44, 35, 36, 29, 0, -20, -9, 14, - 43, 53, 46, 39, 39, 24, 7, -33, -69, -75, -73, -70, -75, -46, 4, 17, - -2, -18, -6, 3, -18, -32, -38, -61, -65, -39, -17, -2, 10, 10, 5, 19, - 33, 55, 61, 54, 39, 40, 41, 41, 40, 30, -6, -25, -6, 22, 44, 48, - 42, 42, 37, 23, 11, -42, -73, -77, -75, -74, -75, -39, 4, 8, -5, -15, - 1, -1, -30, -33, -38, -69, -66, -40, -14, 3, 16, 8, 5, 21, 39, 60, - 59, 48, 40, 38, 39, 42, 42, 30, -8, -20, 0, 26, 48, 51, 48, 43, - 29, 21, 1, -47, -70, -80, -83, -80, -70, -25, 0, -2, -9, -6, 9, -7, - -29, -33, -49, -72, -59, -29, -3, 3, 11, 6, 14, 27, 47, 61, 54, 47, - 43, 34, 42, 45, 39, 21, -10, -17, 4, 29, 53, 54, 47, 39, 29, 22, - -11, -53, -70, -83, -86, -77, -61, -19, -6, -7, -12, -2, 9, -14, -29, -35, - -61, -70, -54, -25, -8, 2, 11, 8, 17, 27, 54, 60, 50, 45, 42, 40, - 43, 39, 35, 18, -9, -7, 8, 28, 55, 56, 49, 32, 30, 15, -21, -53, - -71, -88, -87, -74, -45, -12, -11, -15, -14, 6, 12, -12, -30, -48, -66, -60, - -44, -18, -8, 5, 13, 15, 21, 31, 51, 57, 48, 43, 42, 40, 43, 37, - 29, 16, -3, -1, 7, 35, 60, 54, 38, 26, 29, 5, -30, -54, -72, -93, - -87, -69, -34, -14, -19, -25, -12, 13, 6, -17, -37, -56, -66, -49, -38, -18, - -11, 1, 17, 24, 26, 32, 47, 52, 50, 49, 45, 39, 40, 33, 32, 13, - 4, 3, 3, 47, 65, 52, 29, 27, 20, -5, -35, -56, -76, -90, -79, -63, - -27, -17, -26, -24, 0, 12, -2, -16, -33, -61, -61, -42, -33, -17, -16, -6, - 22, 30, 25, 29, 45, 50, 46, 53, 41, 37, 37, 33, 28, 17, 15, 2, - 15, 54, 64, 46, 21, 25, 9, -12, -39, -58, -77, -87, -75, -46, -21, -23, - -34, -24, 9, 9, -7, -17, -40, -67, -53, -33, -27, -22, -26, -4, 34, 34, - 25, 27, 46, 44, 52, 59, 37, 30, 35, 32, 26, 25, 16, 2, 30, 62, - 57, 33, 19, 17, -7, -25, -43, -58, -80, -82, -64, -36, -26, -26, -33, -17, - 11, 4, -9, -18, -45, -62, -44, -30, -24, -28, -29, 5, 38, 32, 25, 30, - 48, 41, 53, 57, 35, 28, 26, 27, 31, 29, 14, 12, 47, 63, 48, 35, - 24, 4, -19, -32, -46, -55, -76, -77, -58, -31, -30, -33, -36, -8, 12, -4, - -9, -22, -51, -57, -30, -23, -27, -40, -31, 18, 36, 31, 30, 33, 39, 36, - 56, 51, 32, 27, 20, 24, 39, 30, 16, 29, 55, 53, 43, 36, 21, -5, - -28, -39, -45, -55, -71, -70, -47, -27, -35, -36, -25, -2, 1, -4, -6, -23, - -48, -48, -25, -16, -25, -46, -23, 24, 30, 35, 34, 29, 33, 37, 51, 41, - 30, 21, 12, 27, 47, 33, 19, 38, 51, 43, 39, 36, 15, -17, -35, -35, - -42, -55, -68, -62, -45, -33, -40, -36, -19, -5, -4, -3, -6, -24, -47, -38, - -17, -13, -37, -48, -13, 26, 30, 36, 32, 27, 29, 36, 48, 38, 27, 9, - 5, 34, 47, 31, 30, 49, 47, 36, 38, 28, 11, -21, -32, -32, -47, -56, - -60, -54, -40, -39, -42, -31, -12, -5, -7, -1, -4, -21, -39, -28, -11, -13, - -45, -42, -2, 23, 25, 42, 33, 26, 26, 33, 44, 34, 20, 1, 5, 36, - 47, 38, 40, 47, 37, 35, 38, 20, 1, -23, -26, -35, -49, -56, -55, -48, - -40, -46, -42, -28, -12, -12, -10, 2, -6, -25, -32, -25, -13, -22, -43, -30, - 5, 18, 24, 45, 35, 29, 21, 27, 39, 28, 16, 2, 9, 39, 40, 44, - 55, 45, 25, 31, 34, 15, -1, -18, -25, -41, -49, -50, -52, -46, -42, -48, - -40, -23, -9, -18, -13, 9, -1, -24, -27, -22, -14, -30, -41, -26, 8, 15, - 25, 40, 36, 26, 15, 26, 35, 21, 11, 2, 17, 44, 37, 54, 63, 37, - 16, 31, 27, 12, -3, -12, -24, -45, -47, -46, -45, -40, -44, -55, -40, -17, - -12, -22, -7, 19, -2, -22, -24, -15, -17, -36, -36, -11, 16, 10, 17, 38, - 43, 25, 15, 25, 26, 14, 7, 2, 25, 39, 38, 63, 67, 30, 16, 25, - 18, 14, -5, -9, -26, -43, -45, -47, -42, -38, -52, -57, -35, -14, -22, -27, - 0, 23, -5, -24, -22, -12, -21, -40, -31, 1, 19, 6, 11, 35, 44, 22, - 18, 28, 14, 4, 4, 11, 32, 34, 38, 70, 68, 22, 18, 17, 15, 17, - 0, -10, -31, -45, -43, -42, -34, -36, -62, -61, -25, -11, -28, -29, 3, 25, - -3, -26, -15, -12, -28, -34, -21, 9, 17, 2, 10, 31, 40, 24, 23, 28, - 5, -3, 6, 19, 35, 33, 42, 72, 59, 22, 22, 12, 17, 17, 2, -11, - -31, -40, -40, -36, -28, -40, -66, -57, -18, -15, -32, -22, 9, 22, -3, -23, - -8, -12, -31, -32, -12, 18, 15, -1, 9, 25, 36, 26, 27, 20, -7, -5, - 12, 23, 29, 33, 45, 70, 48, 25, 20, 8, 16, 9, 4, -11, -33, -39, - -37, -34, -30, -46, -65, -50, -23, -22, -30, -19, 13, 22, -4, -21, -6, -15, - -32, -28, -3, 18, 9, 0, 9, 21, 30, 28, 30, 12, -14, -1, 17, 19, - 27, 41, 51, 63, 35, 28, 22, 12, 10, 6, 9, -14, -31, -36, -31, -27, - -38, -49, -62, -48, -29, -25, -27, -13, 13, 13, -3, -9, -9, -21, -30, -20, - 4, 12, 4, 5, 12, 19, 27, 33, 29, 6, -12, 2, 21, 17, 31, 45, - 54, 55, 31, 31, 25, 14, 3, 5, 11, -14, -27, -33, -24, -27, -41, -49, - -63, -53, -37, -26, -22, -7, 11, 8, 0, -3, -14, -19, -27, -14, 8, 5, - 2, 9, 12, 20, 25, 31, 18, 0, -6, 8, 20, 14, 27, 43, 59, 48, - 24, 28, 25, 14, 2, 8, 6, -15, -26, -30, -16, -28, -44, -53, -61, -58, - -37, -27, -21, -4, 8, 3, 1, -2, -18, -21, -24, -11, 3, -4, 3, 15, - 17, 20, 22, 29, 15, 3, -2, 8, 17, 18, 30, 46, 56, 40, 21, 29, - 26, 14, -1, 5, 4, -6, -22, -29, -13, -27, -46, -51, -62, -61, -37, -28, - -14, 2, 7, 0, 5, -2, -16, -17, -19, -10, -7, -9, 11, 20, 22, 18, - 17, 25, 19, 4, -1, 10, 19, 25, 32, 44, 53, 36, 19, 29, 24, 10, - -4, 5, 4, -2, -22, -24, -13, -31, -48, -56, -63, -60, -40, -31, -11, 8, - 8, 2, 8, -6, -20, -17, -12, -10, -20, -12, 14, 30, 26, 10, 14, 24, - 24, -1, -7, 12, 25, 27, 30, 40, 52, 34, 17, 28, 24, 7, -9, 1, - 8, 3, -20, -20, -16, -33, -53, -59, -62, -61, -47, -29, -5, 15, 5, 1, - 9, -8, -20, -14, -5, -12, -30, -11, 20, 37, 25, 10, 19, 25, 19, -5, - -2, 18, 28, 26, 29, 41, 49, 31, 20, 30, 24, 1, -8, 4, 10, 3, - -17, -12, -18, -40, -57, -61, -62, -59, -48, -23, 0, 18, 5, 5, 12, -9, - -19, -9, -2, -20, -37, -7, 25, 39, 23, 11, 25, 26, 10, -10, 5, 23, - 24, 26, 30, 40, 42, 27, 23, 31, 18, -7, -5, 2, 7, -1, -10, -10, - -22, -45, -59, -63, -62, -58, -45, -21, -1, 17, 10, 13, 7, -18, -21, -5, - -3, -27, -38, -7, 26, 38, 21, 20, 31, 23, 0, -9, 15, 25, 21, 28, - 33, 35, 35, 29, 28, 31, 12, -5, 0, 0, 4, 0, -3, -14, -27, -48, - -57, -69, -66, -61, -40, -19, 1, 16, 13, 16, -3, -18, -17, -4, -9, -30, - -33, -1, 24, 35, 28, 34, 31, 16, -4, -2, 22, 29, 20, 27, 38, 33, - 30, 30, 31, 33, 9, 1, -3, -7, 2, 6, -1, -22, -31, -50, -61, -74, - -67, -52, -34, -25, 1, 19, 21, 14, -8, -18, -14, -10, -14, -27, -26, -5, - 21, 35, 38, 40, 31, 12, -1, 5, 22, 29, 19, 31, 41, 28, 30, 28, - 31, 28, 12, 7, -13, -11, -2, 13, -5, -26, -32, -52, -67, -80, -65, -46, - -34, -26, 2, 15, 25, 9, -8, -14, -16, -10, -18, -25, -25, -9, 20, 37, - 46, 35, 26, 10, 7, 8, 18, 27, 18, 31, 39, 25, 29, 29, 34, 26, - 20, 2, -18, -10, -5, 12, -9, -22, -31, -48, -74, -79, -66, -42, -34, -22, - -1, 14, 25, 13, -6, -19, -16, -8, -19, -22, -21, -5, 21, 41, 51, 32, - 25, 14, 19, 13, 14, 21, 21, 32, 34, 26, 26, 30, 32, 25, 25, -3, - -19, -13, -2, 8, -12, -24, -32, -46, -75, -79, -67, -43, -33, -18, -7, 12, - 25, 18, 0, -23, -13, -7, -23, -18, -15, -4, 21, 48, 51, 27, 27, 23, - 22, 12, 12, 19, 22, 28, 28, 28, 28, 31, 28, 23, 28, -3, -20, -22, - -5, 0, -14, -23, -28, -50, -78, -81, -63, -44, -34, -19, -14, 10, 25, 18, - -6, -19, -5, -11, -30, -17, -8, 2, 21, 54, 45, 25, 28, 33, 25, 9, - 12, 21, 26, 23, 24, 33, 37, 35, 20, 23, 32, -1, -21, -25, -12, -11, - -12, -19, -27, -53, -78, -79, -55, -42, -31, -26, -18, 12, 24, 13, -9, -12, - 0, -20, -33, -13, 1, 6, 26, 55, 38, 25, 33, 45, 26, 7, 13, 21, - 26, 16, 18, 38, 44, 33, 14, 25, 30, 4, -24, -32, -21, -18, -19, -19, - -25, -54, -79, -78, -53, -43, -29, -28, -20, 6, 20, 12, -3, 0, -3, -35, - -28, 1, 9, 8, 25, 46, 34, 30, 37, 44, 19, 13, 20, 17, 20, 12, - 18, 49, 49, 23, 13, 28, 33, 3, -34, -37, -28, -30, -21, -10, -26, -57, - -77, -74, -52, -40, -25, -32, -22, 3, 17, 12, 3, 8, -15, -40, -18, 10, - 10, 4, 32, 39, 27, 38, 48, 39, 11, 18, 28, 17, 15, 5, 23, 61, - 46, 21, 23, 35, 26, -3, -31, -37, -39, -38, -23, -3, -29, -60, -74, -68, - -58, -37, -27, -35, -22, -7, 15, 23, 14, 8, -27, -41, -6, 19, 14, 9, - 35, 31, 31, 48, 54, 35, 11, 27, 26, 4, 7, 11, 31, 54, 38, 25, - 34, 35, 20, -10, 19, 3, -8, -45, 64, -15, -41, 23, 40, -58, 22, 29, - -27, -28, 42, -36, 21, -12, -19, 39, -14, 3, -18, 32, -27, 18, -8, -43, - 43, 25, -52, 6, 19, 13, -7, -50, 55, 5, -46, -22, 94, -53, -33, 35, - 27, -45, -2, 20, 19, -30, -23, 47, 8, -58, 5, 76, -67, -22, 42, 30, - -54, 8, 23, 11, -51, 3, 47, -33, -7, 5, 27, -33, 34, -35, 17, 4, - -26, 5, 17, -30, 33, 5, -29, -5, 44, -18, -50, 60, -33, 10, -5, 10, - -7, 1, -5, 19, -36, 3, 37, -17, -51, 52, 37, -64, 9, 4, 37, -44, - -13, 25, 45, -75, -9, 79, -34, -57, 53, 24, -59, 18, 22, -3, -24, 10, - -2, 18, -53, 29, 35, -20, -43, 37, 18, -17, -31, 8, 45, -49, 8, 11, - 9, -23, 30, -24, -22, 29, 14, -43, 27, 13, -22, -1, 2, 22, -37, 5, - -5, 38, -43, 6, 36, -21, -20, 20, 0, -5, -27, 27, 21, -53, 4, 52, - -2, -84, 70, 5, -29, -19, 36, -6, -8, -12, 3, 35, -32, -25, 48, 6, - -60, 49, 4, -27, -13, 31, -15, -9, -4, 31, -13, -25, 29, 12, -34, -6, - 30, -41, 36, -23, 6, 31, -30, 0, 17, -45, 47, -5, -47, 19, 28, -8, - -30, 27, -6, 15, -54, 34, 21, -27, -9, 25, 3, -45, 26, 27, -52, 22, - 20, -29, 34, -46, 22, 40, -69, -27, 108, -49, -54, 69, -11, -3, -18, 3, - 15, -12, -23, 29, -8, 4, -23, 50, -38, -8, 33, -32, -2, 26, -27, 12, - 13, -39, 56, -31, -22, 28, 2, -39, 54, -20, -36, 51, -6, -34, 15, 2, - 1, 2, -36, 42, 2, -10, -39, 64, -36, -16, 24, 1, -1, -18, -10, 54, - -27, -54, 80, -18, -61, 51, 27, -76, 64, -30, -1, 9, -19, 24, 13, -29, - -13, 49, -18, -46, 43, 6, -47, 42, -28, 14, 18, -18, 2, 14, -39, 25, - 16, -58, 33, 29, -49, 16, 41, -62, 43, -17, -17, 25, -10, -28, 41, -5, - -30, 27, 14, -53, 27, 35, -63, 16, 30, 0, -30, -10, 22, 31, -57, 0, - 68, -59, 2, 37, -30, 6, -3, -19, 35, -29, 1, 20, 22, -68, 33, 39, - -71, 21, 27, -22, -1, 3, 0, 18, -16, -13, 17, 4, -37, 44, -15, -26, - 48, -29, -11, 34, -25, -4, 25, -48, 43, 4, -49, 28, 42, -72, 7, 59, - -36, -28, 45, -9, -28, 25, -19, 23, -9, -40, 47, 18, -85, 78, -2, -53, - 39, -17, 2, 14, -36, 10, 63, -78, 17, 59, -66, -8, 54, -49, 14, 1, - 5, 2, -18, 16, -12, 30, -58, 22, 53, -83, 17, 79, -84, 19, 17, -34, - 44, -33, -27, 82, -62, -19, 91, -93, 22, 49, -51, -25, 48, -12, -6, 1, - -2, -1, 22, -32, -1, 59, -78, 12, 58, -49, -26, 70, -40, -8, 16, -8, - 12, 10, -65, 74, -1, -97, 90, 0, -56, 23, 25, -17, 11, -23, 14, 9, - -24, -31, 77, -41, -48, 95, -38, -46, 59, -1, -57, 49, -33, 19, 18, -46, - 34, 31, -79, 47, 11, -38, 10, 19, -14, -10, 26, -29, 28, -17, -27, 48, - -15, -51, 78, -14, -73, 64, 12, -55, 29, 3, -24, 52, -65, 26, 50, -75, - -5, 81, -76, 0, 42, -6, -26, 10, 18, -14, 4, -24, 33, 2, -69, 61, - 43, -101, 40, 54, -73, 22, 18, -41, 44, -19, -43, 94, -69, -13, 65, -26, - -46, 35, 24, -34, -2, 23, -13, 6, -19, 4, 38, -56, 14, 40, -37, -19, - 66, -57, -9, 50, -47, 21, 6, -31, 55, -34, -50, 98, -44, -47, 44, 28, - -51, 6, 31, -3, -34, 8, 11, 6, -18, -27, 78, -48, -28, 55, -2, -60, - 57, -37, 14, 15, -48, 49, 22, -96, 74, 23, -83, 36, 18, -17, -25, 41, - -12, -4, -2, 1, 9, -14, -18, 36, 12, -77, 54, 32, -67, 20, 38, -67, - 61, -53, 32, 21, -60, 27, 41, -74, 27, 33, -30, -6, 22, -1, -30, 20, - 1, -4, -22, 9, 8, 37, -65, 18, 61, -69, -3, 37, -19, -15, 15, -16, - 57, -78, 20, 66, -67, -27, 76, -37, -16, 11, 11, -5, -18, 10, 16, -5, - -38, 36, 9, -20, -32, 73, -41, -36, 62, -33, -9, 34, -41, 35, -7, -40, - 65, -35, -26, 33, 2, -43, 42, -4, -9, 5, -11, 19, -10, -16, 11, 16, - -28, -9, 41, 2, -70, 67, -3, -55, 23, 33, -26, 6, -29, 43, 16, -85, - 51, 28, -54, 7, 27, -9, 2, -18, 27, -4, -42, 31, 10, -19, -9, 18, - 8, -24, -3, 45, -57, 25, 0, -7, 15, -28, 10, 33, -46, -6, 52, -36, - -15, 46, -29, -4, 12, -14, 34, -57, 16, 40, -41, 3, 16, 8, -32, 16, - 15, -17, -27, 47, -30, -1, 14, -5, 16, -17, -33, 70, -44, -42, 84, -34, - -27, 18, 15, 3, -20, -22, 55, -35, -22, 31, 10, -11, -27, 27, 13, -28, - -10, 41, -21, -3, -22, 41, -21, -13, 6, 34, -68, 46, 25, -65, 50, -21, - -1, 10, -33, 34, 1, -43, 58, -34, -2, 13, 8, -25, 0, -2, 34, -29, - -26, 45, -12, 4, -34, 32, 15, -54, 17, 53, -76, 41, 4, -17, 13, -26, - 13, 31, -47, 1, 52, -53, 11, 8, 14, -31, -7, 19, 30, -60, 26, 27, - -22, -10, 0, 18, -13, -24, 52, -38, -17, 68, -60, 26, -9, -25, 41, -29, - -8, 40, -25, -9, 26, -28, 15, -9, -3, 11, -21, -1, 44, -47, 19, 0, - 3, -14, -12, 38, -22, -23, 37, -10, -13, 9, -6, 21, -14, -39, 61, -4, - -68, 60, 6, -43, 28, -14, 21, -22, -13, 36, -7, -40, 46, -14, -5, -18, - 20, 22, -49, 22, 10, -18, 21, -30, 9, 34, -54, 19, 22, -34, 27, 7, - -45, 30, 0, -20, 23, -23, 29, -10, -21, 25, 3, -23, -1, 5, 16, -33, - 14, 25, -21, -11, 16, 3, -22, 5, 6, 32, -73, 27, 62, -72, 5, 26, - -21, 30, -37, 4, 40, -45, 5, 18, -18, -1, 12, -3, 0, -18, 28, -8, - -14, 11, -11, 13, -15, -3, 27, -17, -30, 65, -45, -5, 28, -25, 1, 20, - -36, 38, -11, -20, 35, -23, -20, 27, 11, -42, 13, 17, 1, -25, 20, 10, - -33, 10, 6, -7, 9, -26, 40, -3, -63, 74, -30, -11, 10, -10, 5, 17, - -47, 53, -10, -47, 29, 31, -45, 4, 16, 14, -15, -33, 40, -11, -3, -10, - 2, 18, -20, 9, 22, -44, 19, 20, -42, 25, -5, -11, 25, -25, -3, 47, - -63, 28, 20, -42, 7, 39, -41, 2, 13, 10, -24, -8, 41, -26, -1, -13, - 9, 42, -60, 0, 61, -54, -4, 19, -6, 11, -19, -13, 52, -37, -26, 66, - -38, -30, 49, -18, -11, 5, 7, 10, -30, 4, 17, 2, -12, -15, 38, -19, - -20, 30, -16, -23, 38, -13, -16, 29, -22, 26, -17, -35, 62, -30, -35, 51, - -16, -27, 40, -16, 3, -8, -4, 9, 4, -26, 11, 20, -11, -38, 56, -19, - -29, 31, 7, -39, 17, 10, 6, -8, -41, 45, 26, -79, 36, 42, -58, 21, - 6, -10, 7, -19, 17, -1, -15, -12, 53, -22, -32, 24, 25, -59, 24, 22, - -36, 10, 18, -27, 44, -45, 0, 42, -45, -2, 30, -27, 12, 23, -38, 13, - 5, 4, -4, -20, 1, 43, -27, -36, 43, 14, -51, 12, 40, -41, 5, 18, - -11, -1, -5, -11, 53, -56, -29, 91, -41, -45, 57, -7, -18, -3, -4, 29, - -20, -19, 20, 26, -57, 31, 17, -22, -13, 28, -31, 3, 36, -33, 9, 17, - -39, 42, -9, -54, 58, 6, -69, 44, 30, -50, 24, 3, -17, 9, -20, 17, - 8, -23, 1, 46, -50, 1, 27, 1, -49, 37, 5, -17, 4, -5, 7, 18, - -55, 39, 36, -85, 37, 48, -63, 5, 27, -13, -6, -4, 5, 24, -26, -12, - 42, -25, -34, 33, 20, -33, -13, 29, -2, 7, -34, 12, 37, -50, 1, 47, - -46, -1, 56, -54, -18, 59, -35, -6, 12, -16, 20, -2, -27, 43, -12, -34, - 22, 25, -41, -7, 43, -20, -18, 19, -1, 1, -6, -20, 54, -55, -12, 67, - -24, -56, 56, -8, -12, -7, -3, 16, 20, -48, 20, 32, -46, 8, 23, -17, - -38, 54, 1, -34, 2, 30, -1, -21, -18, 38, -14, -35, 41, 3, -36, 19, - 22, -45, 40, -32, 12, 12, -26, 2, 35, -54, 34, 14, -25, -30, 47, 10, - -53, 24, 13, -4, -18, 3, 5, 27, -61, 38, 15, -39, 6, 40, -36, 0, - 2, -6, 28, -40, 7, 46, -37, -30, 59, -21, -29, 6, 48, -55, 12, 30, - -21, -6, 5, -2, 1, -14, -7, 46, -41, -4, 35, -8, -33, 29, -20, 26, - -31, -10, 63, -46, -4, 12, 7, -11, -15, 26, -14, -22, 54, -47, 12, 9, - -1, -8, -7, -8, 41, -12, -60, 77, -21, -26, 11, 13, 1, -26, -9, 59, - -45, -16, 38, -3, -27, -1, 28, -8, -19, 11, 20, -41, 34, -23, 22, -20, - -9, 6, 51, -79, 40, 18, -40, 23, -5, -19, 13, 2, 3, -4, -35, 71, - -39, 5, -30, 33, 6, -29, -3, 38, -29, -5, 18, -9, -4, -11, 16, 15, - -32, -14, 77, -83, 30, 10, -10, -19, 20, 15, -17, -19, 29, 7, -32, 6, - -1, 14, -14, -6, 5, 36, -58, 47, -18, -14, 4, 8, 8, -24, -15, 60, - -36, -20, 43, -32, 3, -2, 1, 9, -5, -8, 30, -33, 6, 6, 2, -12, - -11, 24, 1, -22, 9, 34, -61, 25, 11, -5, -18, -1, 38, -19, -33, 49, - -19, -21, 18, -7, 1, 5, -4, -3, 13, -30, 25, -5, -12, 2, 8, 17, - -37, 0, 50, -38, -26, 40, -15, 7, -24, 31, -11, -8, 6, -6, -3, 1, - 9, -8, 6, -20, 25, 0, -21, 7, 22, -48, 29, -4, 10, -22, 7, 22, - -9, -34, 45, -15, -31, 30, -2, 0, -30, 46, -18, -6, -17, 31, -6, -7, - -21, 8, 45, -47, -7, 31, -17, -11, 25, -20, 17, -30, 47, -38, -2, 5, - 16, -36, 24, -2, 3, -7, 6, 10, -23, 5, -11, 35, -42, 17, 0, 21, - -35, 11, 16, -18, -15, 36, -24, -3, 9, 5, 13, -49, 36, -11, -2, -14, - 37, -32, 13, -1, 0, -2, -2, -8, 17, -11, -21, 30, -1, -1, -41, 72, - -65, 14, 14, 12, -41, 21, 4, 15, -32, -1, 25, -9, -18, 3, 29, -38, - 35, -22, 14, -20, 16, -6, -6, -13, 29, -4, -17, 7, 14, -6, -38, 54, - -32, 3, -16, 36, -39, 42, -40, 36, -22, -13, 17, 14, -36, 12, 23, -25, - 6, -25, 53, -33, -12, 5, 37, -46, 6, 20, 9, -53, 52, -16, -22, 24, - -9, 10, -17, 12, -20, 48, -73, 40, 18, -30, -20, 52, -34, 11, -6, 0, - 1, -15, 24, -16, 16, -30, 44, -27, -10, 0, 34, -52, 24, 3, 2, -6, - 12, -25, 35, -38, -14, 72, -73, 7, 31, 15, -50, 20, 12, -5, -25, 23, - 3, -10, -9, 15, 9, -41, 28, 6, -5, -36, 44, -13, 10, -19, 2, 14, - -10, -29, 56, -27, -35, 58, -19, -27, 17, 16, -30, 10, -7, 15, -12, -3, - 11, 18, -30, -13, 38, -17, -16, 3, 32, -37, 23, -24, 30, -12, -26, 40, - -14, -52, 59, 12, -55, 16, 35, -20, -30, 39, -24, 21, -26, 12, 13, -10, - -19, 23, 2, -35, 17, 33, -30, -17, 39, -15, 12, -53, 50, -13, -25, 2, - 50, -42, -1, 25, -22, 6, -5, 3, -4, 2, -18, 39, -25, -3, 1, 29, - -57, 22, 26, -22, -18, 34, -10, -10, -11, 13, 31, -77, 46, 23, -22, -35, - 61, -24, -13, 7, -3, 0, 4, -24, 27, 12, -50, 35, 13, -19, -37, 69, - -46, -4, 13, 5, -8, 6, -25, 40, -26, -13, 38, -12, -28, 21, 22, -57, - 40, -15, 11, -19, 4, 19, 9, -36, 3, 42, -35, -30, 46, 0, -50, 59, - -26, 9, -16, 12, -10, 10, -33, 44, -8, -29, 8, 42, -43, -6, 26, -19, - 14, -30, 34, 4, -21, -17, 49, -31, -24, 34, 14, -53, 32, 13, -26, 12, - -22, 26, -3, -22, -11, 66, -59, 0, 43, -27, -23, 42, -32, 7, -7, 11, - 9, -19, -1, 15, 16, -58, 43, 1, -32, 11, 36, -44, 18, 0, 4, -4, - -7, -22, 50, -22, -44, 67, -14, -43, 37, 2, -32, 15, 7, 8, -22, -1, - 14, 19, -43, 0, 40, -30, -14, 28, 10, -32, 11, 1, 21, -33, -9, 31, - 15, -72, 61, 4, -40, 21, 14, -37, 22, 4, -4, -9, 5, -8, 23, -16, - -22, 35, -24, 0, 12, 3, -17, 15, 2, -10, -6, -8, 21, 7, -58, 40, - 43, -75, 25, 28, -25, -18, 28, -15, 6, -5, -4, 22, -5, -39, 37, 1, - -30, 12, 23, -27, -8, 34, -22, 0, -12, 15, 10, -28, 2, 45, -45, -9, - 36, -22, -7, 13, -7, 6, 2, -18, 17, 10, -34, 9, 18, -22, -1, 22, - -9, -17, 23, -1, -22, 21, -20, 20, -17, -6, 38, -33, -18, 55, -32, -21, - 26, -5, -9, 5, -8, 16, 9, -47, 36, 11, -36, -3, 38, -7, -48, 44, - -2, -11, 2, -16, 15, 11, -36, 33, -3, -18, 9, 19, -46, 26, -1, -11, - 20, -24, 12, 16, -16, -17, 37, -32, -6, 13, 13, -33, 25, 14, -27, 8, - 1, -18, 22, -5, -15, 32, -46, 37, -2, -19, -13, 38, -32, 8, 2, -4, - 15, -12, -4, 19, -25, -10, 37, -19, -11, -10, 57, -54, 19, -17, 18, 3, - -18, -9, 27, -6, -36, 57, -23, -21, 14, 11, -23, 32, -53, 56, -24, -5, - -3, 11, -16, 16, -7, -20, 17, 11, -3, -31, 42, -33, 14, -6, -2, -8, - 39, -56, 48, -21, -20, 30, -8, -20, 12, 15, -32, 41, -36, 29, -25, 14, - -22, 22, -19, 9, 4, 10, -31, 17, 11, -14, -1, -7, 17, -16, 6, -18, - 64, -88, 47, 6, -20, -5, 22, -13, 18, -28, 2, 25, -19, -10, -3, 29, - -23, 11, -22, 39, -25, 13, -27, 20, -2, -18, 15, -3, 3, 9, -17, -8, - 38, -57, 35, 1, -9, -24, 43, -32, 30, -30, -3, 19, -3, -21, 12, 14, - -12, 2, -5, 11, -37, 37, -3, -13, -4, 10, 11, -4, -38, 41, -9, -27, - 37, -37, 16, 17, -7, -15, 22, -40, 33, -2, -16, 4, 3, 8, -4, -20, - 21, -3, -10, 8, -26, 37, -21, 8, 0, -3, -3, 0, -8, 20, -15, -32, - 54, -10, -26, 17, -12, 10, 24, -71, 51, 3, -21, 9, -3, 17, -22, 2, - 15, -21, -11, 39, -25, 11, -27, 28, 3, -11, -26, 45, -43, 24, 7, -39, - 47, -24, -15, 27, -13, -15, 35, -27, 15, -17, 9, 0, -7, 0, 4, -9, - 13, -3, -16, 28, -29, 21, -23, 11, -4, 10, -30, 64, -63, 13, 28, -30, - 16, -13, 0, 25, -39, -2, 53, -40, 5, -19, 41, -25, -6, -3, 37, -40, - 6, 8, 0, 6, -34, 32, 4, -27, 13, 15, -34, 52, -63, 40, -5, -22, - 5, 24, -32, 22, 11, -26, 14, -22, 26, -21, 10, -8, 5, -10, 46, -66, - 44, -20, 14, -7, -27, 23, 30, -53, 24, 10, -37, 44, -40, 21, -11, 3, - 6, 20, -47, 27, 5, -2, -18, -4, 29, -13, -20, 27, 9, -47, 43, -37, - 55, -62, 14, 33, -13, -28, 24, -9, 23, -35, -4, 32, -14, -13, 28, -10, - -30, 46, -43, 43, -46, 13, 13, -10, 7, -3, -20, 39, -19, -19, 14, -15, - 39, -31, -10, 25, 2, -34, 41, -35, 15, -4, -3, 22, -18, -27, 46, -1, - -36, 10, -4, 42, -56, 13, 31, -19, -18, 28, -29, 27, -32, 24, 10, -44, - 20, 32, -32, -17, 32, -13, 13, -35, 20, 32, -53, 20, 9, -16, 16, -36, - 39, -3, -33, 43, -26, 2, 2, 2, -17, 24, -22, 14, -3, -12, 31, -28, - -8, 26, -29, 19, -4, -15, 33, -39, 22, 16, -37, 6, 17, -4, -13, -12, - 37, 9, -65, 34, 25, -27, -9, 7, 5, 10, -36, 45, -11, -41, 42, -6, - -21, 7, -5, 31, -5, -57, 62, -12, -15, -16, 23, 4, -24, 12, 26, -35, - -11, 44, -25, -8, -1, -4, 28, -11, -37, 61, -48, 23, -1, -30, 29, -8, - -2, 6, -19, 18, 15, -41, 30, -4, -11, -11, 28, -10, -4, -37, 81, -45, - -43, 61, -19, 1, -11, 0, 31, -30, -25, 68, -43, -11, 0, 27, -1, -33, - -7, 77, -54, -30, 44, -6, -5, -14, 17, -6, -10, 6, 30, -68, 50, -16, - 5, 5, -30, 30, 26, -69, 36, 8, -34, 37, -28, 11, 0, -1, 9, 1, - -41, 53, -22, -24, 23, 5, -9, -11, 12, 28, -61, 28, 36, -68, 51, -33, - 25, -6, -26, 7, 53, -65, 2, 47, -25, -23, 17, 20, -4, -51, 38, 29, - -67, 31, 1, 22, -35, -8, 40, -9, -46, 47, -13, -8, 5, -15, 37, -27, - -20, 45, -16, -45, 59, -37, 19, -6, 2, 1, -11, -3, 34, -42, 0, 33, - -30, 16, -13, 13, 2, -23, 18, -5, -26, 43, -24, 15, -26, 4, 35, -15, - -62, 64, 19, -75, 50, -8, 8, -14, -12, 31, -19, -30, 45, -10, -12, -10, - 36, 3, -53, 14, 45, -37, -22, 42, -25, 21, -36, 21, 37, -61, 5, 47, - -49, 19, -4, 5, 1, -12, 7, 3, -11, 2, 18, -28, 13, -4, 18, -13, - -20, 33, -22, -8, 21, -12, -10, 24, -9, 2, -27, 15, 33, -41, -18, 56, - -40, 9, -5, 6, 20, -44, 11, 39, -35, -22, 50, -7, -36, -6, 41, -10, - -30, 15, 20, -22, 7, -11, 16, 6, -51, 59, -21, -26, 24, 12, -24, 8, - -7, 12, 3, -36, 27, 18, -42, 22, 9, -22, 11, -2, 15, -40, 38, -13, - -16, 8, 24, -33, 15, -13, 4, 23, -42, 17, 30, -34, -5, 28, -22, 11, - -23, 30, -14, -28, 37, 12, -46, 11, 31, -23, -12, -7, 36, -17, -6, -4, - 25, -18, 4, -29, 53, -48, 4, 24, -9, -21, 30, -1, -20, 2, -13, 51, - -51, -1, 39, -23, -18, 33, -23, 3, 3, 2, -13, 11, 4, -13, 15, -14, - -3, 1, 24, -53, 55, -24, -17, 36, -1, -49, 45, -7, -12, -2, -4, 24, - -23, 1, 6, 23, -51, 30, -8, 14, -29, 17, 12, -9, -21, 21, 1, 3, - -32, 21, 30, -59, 27, 25, -21, -26, 36, -24, 16, -23, 15, 10, -15, 11, - -11, -3, 14, 1, -30, 32, -24, 27, -25, 10, -12, 29, -33, 7, -5, 25, - -29, 14, 15, -42, 20, 18, -27, 1, 21, -19, 17, -18, 2, 19, -12, -34, - 47, -21, -6, 9, -2, 14, -32, 32, -23, 14, -21, 21, 0, -13, -8, 42, - -35, -19, 33, 4, -34, 23, -5, -6, 22, -31, 21, -8, -5, -3, 15, -22, - 10, 2, 7, -17, 11, 3, -10, 2, -1, -2, -9, 25, -20, 11, -18, 17, - -3, -12, 2, 9, -1, -10, 5, 0, 15, -40, 36, -5, -28, 16, 24, -34, - 16, -1, 13, -32, 11, 9, 5, -26, 5, 32, -32, 4, -1, 29, -38, 8, - 7, -6, 5, -2, -5, 18, -26, -2, 39, -42, 0, 26, 2, -43, 45, -30, - 20, -11, -6, -3, 16, -7, -6, 3, 12, -13, 5, -7, -21, 47, -29, -11, - 9, 36, -45, 8, 0, 22, -28, -7, 32, -22, -9, 20, 12, -40, 24, -8, - 14, -28, 10, 9, 12, -29, 15, -7, 15, -23, 5, 14, -24, 12, 8, 4, - -38, 36, -4, -7, -30, 47, -13, -24, 16, 23, -46, 29, -3, -10, 20, -43, - 35, 0, -4, -30, 47, -18, -21, 16, 19, -35, 11, 19, -21, -11, 27, -12, - -9, 16, -21, 23, -32, 30, 3, -22, -15, 51, -38, -1, -2, 11, 15, -28, - -1, 16, 13, -42, 23, 4, -6, -32, 61, -24, -35, 34, 29, -55, 4, 13, - 9, -6, -26, 35, -6, -11, -11, 19, -6, -3, -15, 43, -41, 4, 22, -1, - -34, 18, 15, -35, 18, -1, 23, -35, 18, -2, -9, 1, 10, -18, 17, -18, - 21, -8, -17, 24, -1, -20, -7, 26, -11, 6, -33, 42, 0, -40, 9, 46, - -48, -6, 24, 13, -39, 8, 41, -43, 3, 6, 6, -7, -6, -8, 42, -37, - -11, 39, -16, -26, 25, 3, -24, 9, 11, 6, -34, 17, 14, -12, -22, 20, - 0, 14, -38, 27, 10, -37, 22, -1, -5, -7, 11, 4, -3, -29, 38, -5, - -26, 4, 20, -17, 6, 2, 11, -17, -10, 40, -49, 10, 26, -8, -24, 11, - 12, 5, -36, 21, 20, -22, -29, 28, 30, -30, -24, 31, 25, -70, 39, 4, - -16, 3, 9, -13, 16, -26, 23, 19, -46, 1, 29, 6, -37, 8, 27, -8, - -33, 36, -24, 5, 14, -8, -8, 1, 4, 15, -27, -11, 44, -38, 6, 12, - -3, -12, 20, -17, 16, -35, 28, -4, 0, -13, 8, 23, -24, -16, 28, 11, - -58, 48, 6, -39, 11, 24, -9, -8, -25, 42, -16, -14, 12, 2, 13, -31, - 6, 26, -10, -48, 64, -22, -21, 6, 28, -15, -11, -2, 22, -30, 11, 15, - -25, 13, 2, -1, -7, -4, 6, 17, -37, 17, 0, 1, 14, -23, 4, 16, - -23, 6, 12, -31, 30, 6, -18, -25, 45, -7, -20, -15, 44, -38, 9, 22, - -37, 24, 6, -20, 14, -17, -8, 44, -27, -22, 16, 30, -33, -18, 20, 31, - -50, 11, 27, -21, -4, -3, 26, -15, -24, 15, 20, -27, 16, -12, 9, 5, - -24, 3, 26, -27, 5, 15, -19, 9, -9, 26, -25, -5, 10, -4, -6, 31, - -45, 18, 24, -23, -23, 27, -3, 2, -18, 9, 13, -18, 19, -17, 7, -1, - -24, 31, 5, -49, 31, 32, -40, -7, 10, 14, -12, -12, 5, 21, -30, 25, - -12, 4, -18, 9, 11, -13, -20, 37, -8, -3, -13, -3, 33, -21, -32, 44, - -7, -22, 28, -24, 5, 12, -19, 2, 6, 2, -16, 11, 10, -6, -23, 31, - -25, 7, 6, -16, 18, 1, -35, 40, -9, -18, 12, 4, -2, -25, 20, 19, - -16, -35, 46, -14, -8, -3, -1, 24, -12, -25, 26, -4, -6, 3, -12, 20, - -24, 18, 9, -20, -2, 18, -13, -1, -16, 8, 26, -35, 12, 10, -11, 6, - 2, -30, 46, -43, 16, 6, 1, -20, 26, -18, 8, -13, 9, -3, 3, 1, - -25, 29, 13, -50, 12, 41, -47, 15, 14, -12, 2, -3, -1, 14, -25, -3, - 26, -23, 19, -35, 41, -5, -23, -1, 31, -30, 8, -15, 32, -29, -7, 22, - 10, -35, 12, 6, -2, 20, -50, 36, 7, -17, -4, -1, 7, 2, -21, 19, - -12, 1, 28, -25, -5, 9, -3, -12, 32, -45, 16, 21, 0, -43, 21, 28, - -19, -38, 45, -15, -8, 28, -43, 39, -12, -23, 13, 19, -39, 23, -3, 17, - -32, 6, 20, -5, -32, 23, 8, -15, -1, 11, 9, -28, 5, 20, -18, -6, - 9, -18, 50, -50, -8, 49, -30, -5, -4, 14, -19, 28, -21, 2, 4, 11, - -20, 6, 3, -5, -24, 54, -34, -14, 26, -4, -2, -16, 5, 20, -23, 1, - 6, -9, 32, -37, 1, 25, -22, -8, 31, -6, -37, 31, 0, 3, -37, 24, - 25, -27, -20, 27, 1, 4, -26, 13, 3, -14, 12, -6, 6, -3, -6, 18, - -14, -27, 38, 5, -36, 14, 13, -22, 26, -13, -22, 36, -23, -5, 3, 18, - -12, -23, 31, -5, -24, 23, -15, 17, -7, -23, 20, 6, -4, -19, 20, -8, - 15, -32, 13, 17, -30, 17, 13, -19, -8, 4, 24, -18, -29, 36, 7, -21, - -20, 28, 13, -17, -31, 36, -9, -7, 7, 6, -9, -4, 7, -6, 10, -32, - 41, -26, 12, -10, -12, 35, -10, -39, 36, -9, -7, 7, 6, -9, -4, 11, - -14, 5, -7, 9, -13, 24, -27, 4, 14, 7, -31, 19, -14, 17, -5, -34, - 57, -31, -7, -6, 28, -15, -11, 2, 25, -21, -14, 15, 18, -35, 12, 1, - 9, -20, -2, 32, -37, 26, -17, 7, 1, -10, -18, 54, -37, -16, 23, 11, - -13, -23, 34, -5, -16, -10, 25, -28, 30, -10, -7, -5, 18, -24, 25, -24, - 18, -11, 0, 3, -19, 34, -12, -12, 2, 3, -13, 32, -37, 20, 4, -6, - -25, 29, -3, -2, -11, -2, 28, -38, 18, 7, -5, -7, 0, -4, 21, -36, - 30, -19, 25, -29, -15, 48, -11, -43, 33, 33, -64, 17, 26, -12, -18, 9, - -1, 18, -33, 23, -13, 21, -18, -13, 18, -2, -20, 20, 6, -15, 4, -12, - 28, -27, 1, 10, -5, 3, 0, -17, 15, 17, -30, 2, 5, -8, 17, -11, - -2, 9, -20, 23, -27, 23, -10, -3, 7, -3, -25, 31, 9, -28, -9, 30, - -5, -28, 15, 29, -36, -9, 29, -11, -20, 33, -27, 21, -14, -12, 21, -3, - -9, -2, 12, -5, -27, 27, 7, -20, -11, 32, -9, -15, -1, 9, 20, -42, - 12, 9, -4, 3, -6, -3, 6, 0, -12, 15, -25, 27, -6, -6, -6, 6, - -2, -4, 5, 9, -20, 12, 8, -17, -10, 30, -12, -24, 25, -15, 18, -21, - 21, -8, -6, -9, 12, -6, 15, -33, 26, 8, -32, 13, 21, -12, -28, 20, - 11, -6, -28, 27, 11, -21, -10, 22, -1, -11, -7, 24, -12, -27, 35, -8, - 0, -20, 23, -10, 9, -30, 32, -15, 3, -7, 6, -2, 10, -17, 1, 8, - -4, -5, -3, 14, -9, 1, -11, 18, -13, 15, -33, 22, 14, -32, 11, 9, - -1, -17, 14, 0, -3, -16, 29, -21, -4, -1, 28, -24, -2, -11, 41, -25, - -23, 24, 6, -18, -13, 37, -21, -2, -4, 29, -40, 11, 12, 4, -25, 12, - -9, 23, -17, -14, 27, -2, -26, 9, 18, -14, -1, -15, 29, -18, -4, 5, - 12, -26, 18, -3, -7, 3, 13, -10, -25, 44, -38, 11, 8, -2, -25, 28, - -9, 12, -13, -13, 10, 27, -53, 19, 16, -4, -20, 12, 12, -21, 5, 12, - 3, -35, 22, 8, 0, -28, 18, 16, -25, -3, 9, 8, -3, -19, 8, 24, - -34, -4, 38, -16, -30, 29, -1, -2, -25, 28, -1, -21, 11, 10, -18, -1, - 10, 1, -7, 0, 1, -7, 15, -15, -5, 16, 2, -22, 8, 0, -1, 26, - -34, -22, 56, -26, -11, 12, 9, -9, -9, 4, 7, -8, -1, 8, 0, -21, - 10, 19, -8, -25, 17, 10, -18, 3, -4, 26, -15, -29, 30, 9, -46, 36, - 12, -33, 1, 18, -2, -16, 4, 16, -10, -16, 11, 2, 8, -19, 5, 1, - 10, -21, 20, -8, -1, -3, 1, 7, -19, 7, 11, -12, 5, 5, -26, 29, - -11, -5, -2, 12, -13, 9, -22, 23, 3, -20, 4, 17, -16, -13, 17, 15, - -16, -34, 37, -5, 8, -32, 23, 17, -36, -2, 36, -25, -4, 28, -18, -20, - 15, 4, 7, -12, -24, 43, -19, 0, -11, 25, -9, -12, -7, 10, -1, 11, - -2, -12, 13, -27, 30, -9, -15, 8, 17, -28, 18, -9, 3, 7, -8, -10, - 16, -26, 35, -22, -10, 37, -35, 1, 11, 11, -19, -2, 9, 17, -37, 11, - 10, 9, -16, -12, 27, -11, -22, 16, 24, -48, 25, -1, -3, 4, -20, 13, - 39, -72, 34, 1, 2, -6, 4, -1, -8, 2, -8, 18, -10, -1, -5, 19, - -30, 5, 30, -16, -26, 36, -26, 3, 21, -27, 10, 4, -10, 0, -4, 15, - 9, -41, 32, -11, 2, -11, 15, -3, -7, -8, 16, -3, -21, 23, -2, -9, - -4, -2, 20, -5, -37, 49, -20, -6, -9, 17, 17, -36, -8, 40, -24, -5, - 3, 8, 5, -12, -6, 15, 2, -27, 28, -4, -23, 16, 5, -1, -26, 29, - 11, -38, 22, -12, -8, 38, -34, -3, 10, 4, -2, -5, -8, 24, -16, -20, - 21, 1, -7, 11, -7, -4, -15, 15, 15, -21, -6, 10, -1, 17, -45, 23, - 29, -42, 2, 18, -5, -6, -1, 22, -20, -19, 16, 21, -20, -18, 23, 2, - 5, -41, 36, 10, -34, 12, 12, -25, 11, 1, 6, -6, -11, 20, -11, 10, - -11, -12, 13, 8, -21, 5, -1, 14, 3, -26, 5, 27, -39, 18, 7, -27, - 34, -20, 13, -20, 7, -4, 25, -23, -16, 7, 47, -35, -29, 37, 10, -35, - 4, 12, -1, 0, -15, 25, -23, -12, 35, 7, -51, 28, -1, 16, -33, 5, - 27, -21, 2, -5, 13, -3, 0, -20, 27, -30, 8, 16, -4, -13, 14, -15, - 19, -12, -6, 8, -9, 19, -27, 4, 20, -9, -12, 21, -37, 41, -22, 1, - 1, 13, -33, 20, 14, -30, -2, 22, 21, -51, 3, 38, -7, -35, 17, 6, - 11, -43, 33, 9, -36, 10, 31, -24, -13, 16, -6, 24, -36, -1, 16, 19, - -45, 20, 11, 2, -30, 31, -21, -14, 29, -4, -12, 3, -6, 9, 15, -37, - 20, -4, 8, -18, 12, -7, 17, -8, -12, -9, 23, 8, -28, 1, 29, -19, - -18, 27, -2, -8, -28, 44, -4, -36, 15, 33, -30, -13, 13, 14, -20, -7, - 25, -11, -5, -8, 21, -1, -8, -37, 50, 1, -53, 27, 28, -21, -10, 4, - 16, -24, 10, 6, -12, 0, 2, 6, 1, -13, 2, 21, -26, 3, 13, -19, - 10, 9, -18, -3, 22, -18, -1, -2, 14, -1, -23, 21, -6, -2, -9, 20, - 5, -35, 1, 34, -21, -16, 22, 1, -8, -5, 1, 18, -12, -23, 18, 5, - -17, -7, 37, -6, -35, 6, 47, -44, -7, 20, 5, -10, -23, 35, -6, -12, - -12, 39, -27, -10, 9, 21, -21, -6, 2, 5, 1, 6, -28, 17, 20, -31, - -3, 15, 7, -26, 31, -40, 43, -32, 23, -19, 11, -22, 26, -6, -1, -25, - 33, 2, -25, -7, 9, 26, -16, -30, 29, 20, -47, 13, 16, -9, -19, 18, - 23, -32, -17, 32, 21, -38, -13, 14, 43, -66, 19, 23, 5, -50, 47, -20, - 2, -11, 22, -5, -6, -21, 4, 38, -15, -32, 12, 35, -35, -4, 7, 18, - -17, -1, -7, 6, 5, 0, 0, -7, 0, -8, 21, -10, 5, -28, 30, 3, - -17, -29, 57, -16, -17, -10, 28, -9, -20, 26, -12, 3, -20, 27, -3, -7, - -42, 65, -9, -45, -3, 63, -33, -11, -6, 28, -17, -1, -6, 6, 7, -12, - 0, 25, -21, -30, 54, -9, -37, 1, 28, 7, -42, 18, 11, 17, -46, 24, - -9, 27, -38, 22, -20, 23, -21, 11, -6, 42, -71, 20, 32, -11, -43, 44, - -3, -4, -27, 12, 24, -8, -18, -8, 30, -19, -23, 44, -8, -30, 0, 45, - -39, 0, -1, 28, -16, -17, -15, 44, -13, -11, -13, 36, -24, -11, 12, 17, - -30, 8, 17, -10, -18, 9, 22, -18, -15, 3, 25, -25, 11, -6, 5, 7, - -18, -3, 15, -1, -17, 8, 28, -32, -17, 36, 8, -41, 12, 7, 13, -22, - -14, 18, 41, -57, -1, 25, 10, -40, 18, 11, -8, -23, 25, -16, 37, -45, - 17, 10, 2, -60, 64, -15, -3, -16, 22, -9, 9, -27, 30, -7, -21, 3, - 20, -10, 6, -12, 15, -19, 14, -19, 3, 22, -8, -29, 37, -28, 29, -26, - 11, -15, 15, -17, 21, -26, 18, 5, -5, -11, 2, 16, -10, -10, -5, 29, - -30, 4, 3, 18, -21, 4, 1, 8, -13, -10, 1, 40, -35, -26, 44, 5, - -38, 8, 30, -24, 0, -1, 0, 12, -18, -1, 18, -8, -28, 39, -18, 24, - -35, 24, -36, 46, -41, 12, -3, 24, -37, 31, -28, 32, -16, 2, -27, 39, - -34, 7, 24, -19, -6, 14, -10, -1, 14, -16, -4, 25, -26, -4, 8, 22, - -40, 33, -30, 22, -15, 36, -63, 39, 1, 10, -54, 36, 9, 5, -51, 49, - -13, 5, -7, -7, 15, -9, -10, 2, 12, -18, 6, 3, 18, -29, 9, 10, - -10, 1, -20, 20, -3, -1, -13, 21, -26, 41, -36, 2, 23, -23, -10, 39, - -41, 17, -10, 8, 7, -13, 23, -54, 66, -26, -50, 54, 17, -66, 59, -46, - 30, -10, 6, -8, -18, 19, 16, -32, 12, 6, -2, 3, -36, 33, -6, -7, - 12, -16, 6, 14, -21, 14, 16, -58, 37, 3, 0, -35, 44, -16, 17, -38, - 28, -14, 25, -45, 28, -21, 32, -31, 11, 17, -24, 11, 5, -24, 18, -6, - -3, 0, -3, 21, -33, 24, 20, -78, 66, -8, -24, 3, 17, -14, 24, -41, - 34, -25, 27, -32, 17, -5, 13, -26, 28, -29, 22, -8, -16, 33, -30, 2, - 25, -27, 1, 31, -36, -7, 31, -8, -12, -5, 17, -7, 5, -26, 32, 1, - -18, -16, 27, -7, -10, 2, 21, -42, 30, -3, -19, 33, -40, 19, 6, -13, - -5, 17, -10, 28, -63, 40, 6, -10, -9, 7, -3, 12, -20, -1, 17, -1, - -6, -14, 18, 1, -19, 12, 5, -9, -2, -14, 33, -3, -44, 51, -17, -6, - -16, 36, -35, 29, -31, 31, -24, 15, -23, 33, -35, 20, -4, -1, -19, 27, - -1, -29, 25, 1, -20, 25, -23, -13, 62, -50, -18, 43, -20, 1, -4, 16, - -18, 4, -16, 36, -42, 42, -42, 38, -28, 9, -10, 31, -40, 30, -39, 30, - 8, -28, 11, 9, -7, -6, -8, 10, 22, -36, -5, 26, 4, -41, 30, 12, - -11, -10, -14, 37, -29, 3, -6, 9, -5, 15, -30, 40, -26, 12, -25, 25, - -21, -12, 46, -17, -39, 47, 7, -57, 45, -14, 1, -13, 21, -21, 14, -7, - 7, -11, 18, -34, 25, 7, -28, 22, 1, -12, 11, -24, 4, 38, -44, 17, - 2, -12, 19, -17, 0, 9, 17, -55, 29, 3, 3, -27, 48, -38, 16, -17, - 24, -19, 26, -49, 29, 9, -18, -25, 50, 2, -31, -20, 43, -3, -35, 23, - 13, -34, 9, 20, -15, -8, 29, -37, 29, -21, 4, -8, 36, -52, 29, -8, - 6, -18, 35, -34, 22, -21, 10, 5, -11, -13, 35, -26, -3, 12, -17, 13, - 1, -12, -4, 24, -18, -6, 18, -7, -13, 17, -4, -30, 48, -41, 10, 34, - -39, -22, 73, -48, -12, 12, 22, -14, -31, 18, 29, -17, -21, 22, -3, -8, - -12, 25, -11, 13, -41, 36, -3, -2, -27, 37, -6, -36, 17, 18, -7, -10, - 4, -5, 10, -21, 13, 15, -21, 2, -1, -5, 8, -1, -16, 29, -24, 14, - -18, 26, -24, 17, -26, 21, -18, 24, -49, 82, -52, -11, 36, -22, -17, 30, - -21, 1, 1, -1, 8, -2, -7, 2, 17, -9, -36, 37, -5, -15, -4, 27, - -20, 11, -31, 46, -18, -13, -11, 58, -67, 19, -4, 40, -43, 9, -14, 41, - -32, -16, 46, -19, -13, 5, -5, 6, 2, -16, 10, -9, 18, -13, 3, 24, - -37, 11, 1, 0, -8, -9, 28, -1, -41, 40, -10, 6, -13, 1, -11, 30, - -28, -10, 30, 1, -36, 17, 28, -54, 51, -24, 1, -6, 6, -12, 33, -48, - 23, 18, -17, -23, 27, 11, -23, -13, 27, -7, -1, -24, 35, 3, -48, 35, - 8, -20, -3, 3, 16, -11, 8, -35, 32, 7, -27, -22, 81, -85, 36, -7, - 16, -16, 2, 0, 13, -28, 12, -16, 24, 6, -25, -14, 47, -15, -25, 3, - 37, -41, -5, 32, -25, 11, 6, -16, 25, -34, 14, 8, 13, -52, 30, 6, - 13, -56, 56, -27, 13, -11, -6, 16, -12, -1, 18, -40, 18, 19, -13, -11, - 7, -2, 9, 10, -39, 9, 46, -48, -18, 59, -32, -3, 14, -10, 10, -13, - 10, -13, 14, -11, -10, 5, 31, -43, 10, 23, -16, 3, -29, 50, -23, -19, - 16, 15, -19, 3, -20, 39, -19, -14, -6, 54, -44, -12, 18, 30, -56, 28, - -15, 22, -16, -15, 31, -8, -9, -1, 1, 1, 2, -8, 9, 10, -43, 41, - -9, 8, -48, 62, -30, -9, 13, 6, -24, 32, -31, 8, -4, 16, -27, 27, - -19, -1, -6, 37, -40, 14, -3, 0, 25, -59, 34, 18, -18, -21, 17, 13, - -11, -8, -11, 43, -40, 1, 6, 24, -37, 10, 14, -4, -12, -2, 17, 11, - -40, 10, 16, 17, -51, 24, 14, -4, -31, 22, 18, -32, 15, -24, 46, -38, - 9, 2, -2, 14, -15, -12, 15, 3, -28, 29, -7, -6, 13, -7, -6, 2, - 3, -17, 28, -28, -9, 37, -17, 0, 3, 10, -19, -5, 19, -17, 12, -25, - 30, -19, 8, -27, 49, -15, -27, 9, 10, 7, -31, 6, 30, -12, -45, 41, - 24, -42, -1, 28, -2, -38, 29, -18, 23, -4, -43, 35, 26, -54, 23, 7, - 6, -30, 17, -14, 32, -40, 24, -13, 17, -15, -11, 16, 16, -20, -26, 47, - -10, -26, -6, 41, -19, -22, 36, -41, 33, 5, -32, 12, 28, -51, 19, 27, - -40, 7, 35, -34, 9, -22, 42, -20, -15, -3, 43, -55, 15, 23, -10, -11, - 3, 14, -32, 31, -26, 21, 7, -44, 15, 40, -22, -41, 54, -17, -17, 8, - -6, 10, 11, -17, -6, 15, -2, -20, 31, -19, 4, -17, 22, 0, 2, -36, - 39, 0, -31, 23, -38, 59, -15, -29, -13, 69, -50, -22, 43, -11, -16, 0, - 16, -9, -10, 13, 5, -8, -18, 27, -8, -2, -12, 13, -1, -16, 16, -18, - 27, -11, -19, 39, -28, -26, 28, 36, -85, 72, -40, 24, -10, 0, -9, 30, - -29, -11, 22, -13, -7, 23, -10, -14, 6, 13, -15, 22, -31, 12, 0, 0, - -3, -15, 19, 14, -21, -22, 27, 35, -72, 36, -3, 18, -54, 50, -29, 38, - -47, 14, 19, -11, -25, 27, 9, -23, -2, 2, 16, -6, -24, 22, 10, -27, - 7, 16, -30, 11, 24, -40, 31, -28, 29, 1, -28, 7, 17, 3, -45, 40, - -11, -7, 4, 19, -45, 24, 24, -50, 48, -35, 11, 9, -12, -14, 30, -23, - 8, 7, -15, -7, 53, -59, 13, 5, 15, -46, 49, -48, 57, -36, -20, 34, - 1, -10, -15, 15, 20, -36, -9, 35, 6, -39, 7, 14, 27, -81, 70, -21, - 5, -22, 21, -6, 1, -13, 19, -19, 4, -10, 35, -43, 31, -3, -7, -15, - 40, -56, 33, -1, -33, 51, -35, -2, 24, -18, 5, 0, 4, -16, 10, -6, - 9, -28, 37, -38, 45, -35, 0, 37, -38, 7, 19, -32, 3, 17, -2, -23, - 19, 15, -23, 5, -2, 13, 1, -37, 8, 59, -80, 26, 13, 15, -31, -8, - 30, -7, -7, -19, 22, -2, -9, -2, 12, -7, 3, 1, -25, 47, -53, 35, - -5, -27, 21, 15, -25, 13, -24, 42, -41, 19, 2, -13, 1, 23, -40, 37, - -45, 46, -8, -41, 44, -11, -17, 23, -9, -20, 22, -3, -15, 22, -23, 19, - -7, 2, -34, 65, -56, 7, 28, -8, -37, 37, 3, -8, -34, 39, -11, 9, - -29, 6, 35, -14, -49, 48, 5, -25, 5, -25, 66, -47, -9, 28, -7, -12, - 0, 17, -20, -2, 21, -12, -23, 54, -50, 20, 7, -20, 7, -2, 3, 4, - -26, 26, -6, -14, 15, -3, -10, 12, -10, -4, 23, -33, 14, -12, 38, -55, - 36, 0, -6, -5, 0, -4, 7, 0, -14, 2, 8, -11, 13, 5, -33, 41, - 4, -62, 40, 8, -6, -8, -31, 52, -4, -44, 25, 20, -18, -24, 32, -11, - -9, -4, 30, -37, 34, -31, 7, 30, -29, -14, 28, -10, -9, 6, 0, -5, - 14, -9, -3, -2, 10, -22, 29, -22, -2, 6, -5, 16, -25, 6, 27, -19, - -9, -11, 29, -13, -5, -6, 16, 5, -20, -1, 30, -20, -8, 7, -8, -2, - 3, 14, -9, -24, 35, -7, -14, -12, 32, -5, -18, -15, 35, -7, -13, -1, - -4, 27, -20, -30, 58, -15, -29, 9, 15, -16, -3, 1, 4, 5, -4, -11, - 17, 3, -29, 28, -10, -18, 20, -7, -2, 4, 2, -17, 22, -3, -31, 23, - 23, -32, -14, 34, -3, -14, -13, 11, 21, -26, -16, 36, -7, -13, 15, -8, - -3, -1, -11, 15, -8, -4, -4, 24, -21, 1, 11, 3, -22, 5, 15, -24, - 0, 37, -31, 7, -18, 15, 16, -15, -19, 26, 0, -10, -26, 31, 6, -19, - -6, 21, -19, 20, -13, -3, 13, -2, -32, 24, 2, -8, -10, 36, -29, -10, - 19, 10, -25, 5, -9, 31, -23, -21, 21, 26, -25, -9, -5, 35, -17, -34, - 17, 42, -44, -11, 30, 11, -40, 18, 8, -6, -11, 11, -26, 39, -18, -23, - 37, -12, -32, 45, -8, -22, 5, 16, -15, -10, 6, 17, -15, -3, 9, -22, - 41, -22, -25, 29, 5, -30, 6, 12, 17, -32, 7, 20, -26, 9, 9, -10, - 7, -17, 10, 11, -16, -7, 12, 5, -4, -26, 25, 24, -46, -4, 50, -39, - -11, 8, 35, -36, 2, -9, 33, -7, -22, -26, 76, -37, -41, 33, 28, -43, - 14, 6, 2, -8, 2, -20, 34, -19, -2, -4, 15, -6, -23, 28, -3, -32, - 33, -16, 7, -11, 14, 9, -10, -30, 35, -25, 17, -14, 1, 14, 12, -38, - 16, 15, -7, -30, 15, 18, -24, -6, 47, -38, 6, 7, -9, -2, -3, 1, - 12, -8, -23, 20, 35, -47, -14, 51, -9, -48, 19, 20, 0, -25, -2, 20, - 16, -29, -25, 60, -17, -23, -8, 31, -4, -30, 12, 20, -14, -4, -1, 17, - -11, -9, 7, 7, -17, 1, -12, 25, -5, -20, 15, 19, -29, 2, 5, 11, - -19, -18, 31, 1, -27, 18, -17, 51, -53, -2, 29, 4, -37, 17, 11, -11, - -23, 41, -17, -10, 13, -4, -8, 18, -27, 17, 1, -19, -7, 51, -37, -28, - 53, 4, -47, 5, 18, 17, -32, -8, 14, 36, -46, 3, 11, 11, -24, 4, - 0, 16, -7, -26, 25, 20, -44, 7, 20, -12, 2, -14, 4, 33, -38, 1, - 8, 20, -34, -12, 61, -46, -19, 44, -10, -4, -18, 12, 12, -8, -26, 16, - 22, 2, -51, 18, 53, -56, -5, 30, -9, -22, 32, -11, -18, 18, 13, -25, - -7, 8, 9, 3, -20, 1, 32, -27, -9, 5, 19, -20, -13, 18, 8, 3, - -35, 22, 31, -47, -2, 16, -8, 15, -10, -22, 54, -20, -23, -6, 51, -52, - -13, 48, -23, -11, 28, -30, 38, -6, -50, 28, 33, -58, 2, 34, 16, -53, - -1, 55, -13, -42, 15, 23, -7, -33, 13, 21, -14, -6, 2, -2, 27, -43, - 27, 11, -19, -16, 26, -16, -4, 16, -17, 1, 20, -17, 8, -17, 6, 26, - -25, -24, 40, -13, 6, -14, -14, 29, 3, -32, -5, 46, -21, -28, 38, -30, - 6, 28, -47, 3, 65, -67, -5, 61, -34, -27, 31, 12, -30, -7, 11, 19, - 0, -43, 18, 47, -52, -20, 52, -14, -9, -10, -5, 55, -45, -29, 55, 16, - -83, 28, 36, -23, 6, -8, -13, 37, -17, -30, 32, -9, -6, 10, -19, 16, - 4, 9, -35, 22, -1, -17, 3, 8, 10, -10, -21, 40, -27, -5, 16, -6, - -27, 47, -23, -26, 48, -18, -19, 14, -1, -9, 5, 1, -20, 58, -57, -14, - 55, -16, -40, 37, -6, 11, -19, -22, 43, 2, -55, 27, 37, -38, -29, 58, - -6, -11, -22, 4, 26, -7, -67, 67, 21, -56, 19, 15, -5, 0, 2, -41, - 37, 10, -65, 49, 8, 1, -19, 1, 9, 8, -20, -9, 22, -14, -3, 4, - -1, 13, -6, -11, 15, -8, -15, 13, 16, -38, 14, 24, -39, 20, 9, -17, - 14, -15, 7, 3, -12, -3, 30, -25, -24, 43, -1, -40, 18, 17, 0, -22, - -14, 31, 20, -68, 35, 32, -43, -9, 35, -16, 4, 2, -35, 35, 27, -81, - 40, 31, -21, -30, 29, -12, 13, 10, -42, 26, 17, -33, -1, 16, 12, -29, - 6, 4, 21, -27, -9, 39, -6, -54, 40, -14, 15, -4, -17, 20, 4, -18, - -4, 23, -24, -3, 30, -41, 15, 17, -4, -29, 19, 4, -9, -10, 12, 17, - -21, -7, 26, -19, -17, 17, 3, 1, -3, -30, 47, 16, -62, -4, 68, -29, - -54, 43, -1, -4, 20, -42, 22, 34, -32, -43, 63, -12, -26, 8, -6, 10, - 22, -66, 55, 25, -65, 15, 9, 21, -22, -28, 36, 5, -16, -51, 102, -49, - -12, 6, 21, -12, -23, 24, -15, 11, -14, -8, 31, 4, -53, 64, -35, 13, - -28, 23, -23, 22, -16, 13, -22, 23, 27, -51, -8, 41, 6, -66, 36, 13, - 4, -26, 7, 11, 9, -34, 0, 35, -21, -15, 10, 34, -57, 60, -69, 60, - -22, 1, -27, 27, 14, -27, 1, -13, 35, -2, -51, 36, 35, -49, 5, -1, - 31, -42, 25, -26, 34, -7, -60, 98, -46, -22, -1, 49, -45, -2, 10, 26, - -33, 25, -36, 37, -19, 4, -3, -7, 9, 7, -8, -29, 48, -23, 0, -33, - 45, 0, -23, -16, 47, -7, -31, -9, 38, -2, -36, 18, -8, 43, -55, 16, - -1, 41, -72, 54, -35, 24, 4, -46, 47, -11, 6, -40, 24, 10, 8, -38, - 16, 16, 24, -98, 80, 2, -28, -28, 44, 11, -47, 31, -7, 35, -42, -25, - 41, 12, -64, 34, 14, -2, -21, 24, -14, 11, -3, -24, 22, -28, 46, -51, - 38, -22, 35, -40, 2, 11, 22, -48, 23, -9, 34, -35, -24, 52, -7, -37, - 9, 36, -21, 0, -32, 61, -44, 6, -1, -16, 41, -28, 19, -37, 49, -11, - -38, -8, 65, -53, 9, -21, 59, -37, 8, -33, 59, -13, -80, 67, 19, -39, - -28, 70, -21, -25, -3, 23, 17, -29, -44, 83, -41, 0, -23, 53, -27, -12, - 21, -19, 21, -21, 13, -4, -12, -5, 38, -58, 34, 10, -22, -16, 47, -8, - -39, 19, 12, 4, -46, 39, -24, 48, -69, 45, -18, 10, -5, -2, -4, 10, - -5, 7, -17, -3, 20, 0, -40, 26, 40, -64, 11, 34, 1, -49, 11, 35, - -22, -14, -32, 98, -47, -37, 9, 76, -70, -8, 7, 63, -92, 56, -49, 77, - -64, 2, 41, -28, -25, 37, 0, -26, 35, -40, 16, 3, 14, -46, 22, 18, - -6, -9, -11, 22, 26, -44, -46, 94, -60, 18, -37, 69, -33, 5, -20, 42, - -32, -20, 24, -1, -10, -12, 39, -31, 13, 1, 9, -47, 42, -26, 39, -73, - 48, 48, -73, -13, 56, 14, -78, 38, 11, 12, -50, 8, 39, 3, -79, 73, - 2, -25, -17, 23, 27, -58, 26, -37, 67, -49, 11, -12, 62, -82, 64, -41, - 3, 26, -17, -45, 55, -4, -22, 10, -2, 38, -54, 8, 5, 47, -79, 7, - 54, -7, -64, 41, 49, -73, 29, -24, 54, -51, -4, 14, 33, -84, 82, -46, - 17, -25, 57, -44, -2, 11, 8, 15, -66, 46, 19, -25, -44, 58, 10, -38, - -23, 77, -48, -3, -12, 24, 24, -70, 37, 21, -15, -48, 81, -66, 44, -29, - 6, 4, 9, -30, 31, -24, 5, 19, -51, 34, 21, 11, -92, 78, 19, -44, - -54, 104, -47, -8, -19, 29, 45, -78, 6, 55, -11, -75, 66, -10, 8, -38, - 24, 10, 4, -57, 66, -20, -25, 20, 6, 9, -71, 100, -60, -6, 8, 28, - -37, 29, -42, 78, -58, -22, 42, 10, -69, 34, 33, -36, 29, -54, 81, -54, - 0, 7, 1, -19, 22, -14, 4, -3, 32, -13, -59, 86, -54, 4, 0, 21, - -35, 43, -68, 91, -31, -53, 38, 48, -72, -15, 50, 3, -11, -72, 96, -1, - -49, -23, 81, -21, -57, 15, 63, -67, 5, 25, -27, 34, -48, 49, -26, 12, - -33, 66, -73, 14, 35, -20, -27, 45, -24, 12, -12, 0, 24, -50, 33, -26, - 45, -65, 47, -7, -4, -9, 19, -19, -2, 15, -17, 30, -39, 25, 2, -3, - -57, 109, -86, 10, 14, 31, -53, 7, 32, 5, -44, -20, 84, -35, -34, -6, - 99, -97, 1, 23, 40, -65, 15, 9, 36, -45, -22, 55, 4, -55, -3, 73, - -80, 63, -49, 28, 2, -10, -19, 24, -13, 8, 1, -15, 5, 22, -4, -57, - 72, -41, 16, -45, 76, -57, 30, -26, 38, -16, -34, 32, 12, -53, 22, 47, - -46, -4, 6, 45, -65, 32, -21, 45, -44, -22, 69, -44, -16, 29, 19, -59, - 40, -7, 42, -77, 39, -4, 29, -74, 27, 38, -12, -60, 69, 7, -32, 1, - -9, 50, -56, -15, 19, 47, -75, 44, 5, -22, 27, -7, -22, 0, 23, -30, - 1, 4, 33, -44, 29, -24, 57, -67, 17, 18, 4, -59, 32, 48, -72, 28, - -2, 13, -10, -21, 16, 58, -117, 85, -14, -5, -34, 21, 29, -27, -20, 31, - 23, -49, 16, -14, 51, -74, 24, 38, -38, -16, 56, -33, -7, 3, 0, 36, - -80, 49, 23, -19, -48, 76, -61, 43, -41, 27, -11, 23, -30, 8, 3, 15, - -14, -22, 16, 3, 15, -39, 11, 38, -13, -70, 88, -41, 2, 4, -30, 80, - -84, 15, 37, -6, -61, 58, -19, 27, -72, 64, -6, -16, -30, 59, -21, -21, - -12, 44, 22, -101, 78, -10, -16, -11, 20, -21, 31, -36, 37, -18, -20, 46, - -24, -23, 10, 21, -36, 32, -38, 68, -50, 12, -6, 19, -33, 14, -16, 20, - -11, -14, 47, -59, 56, -14, -27, 5, 29, -43, 49, -96, 106, -35, -41, 28, - 35, -30, -29, 37, 12, -11, -58, 79, -31, -16, -11, 43, -13, -25, 3, 71, - -76, -13, 64, -39, 3, -45, 66, -13, -1, -45, 80, -40, 6, -29, 26, -12, - 6, -19, 21, -4, 9, 0, -37, 44, -28, 11, -22, 19, 7, 1, -45, 60, - -13, -42, 32, -16, 31, -50, 35, 10, -22, -23, 60, -62, 21, -2, 39, -49, - -4, 24, 30, -53, -23, 66, -33, 2, -34, 69, -33, -10, 7, 24, -51, 28, - 0, 9, -24, -3, 38, -24, -16, -9, 68, -81, 38, -16, 35, -34, -4, 16, - 20, -43, 10, 7, -3, 14, -30, 38, -39, 38, -20, -12, -20, 78, -79, 22, - -4, 44, -48, -6, 37, -2, -25, -24, 60, -41, 15, -30, 50, -43, 7, 9, - 27, -64, 45, 5, -15, -17, 1, 49, -56, 3, -11, 69, -78, 37, -5, 38, - -60, 26, -2, 9, -51, 53, -20, -3, 9, -1, 38, -74, 40, 6, -13, -54, - 69, -24, 6, -22, 31, 0, -17, 12, -13, 8, -9, 20, -53, 56, -27, 29, - -63, 41, 8, 11, -73, 59, 15, -25, -21, -1, 61, -69, 10, 17, 28, -59, - 34, -14, 32, -54, 17, 22, -11, -47, 63, 7, -56, 46, -28, 50, -96, 60, - 2, 0, -37, 36, -11, 15, -38, 41, -19, -31, 46, -12, -25, 9, 49, -67, - 47, -48, 51, -30, -15, 23, 19, -43, 8, 17, 4, -11, -29, 54, -48, 38, - -28, 10, -9, 38, -48, 27, -47, 55, 3, -59, 22, 41, -5, -59, 38, 5, - 31, -101, 72, 11, -36, -18, 54, -25, -1, -30, 54, -28, -34, 61, -27, 13, - -46, 55, -21, -10, -21, 52, -34, -8, 30, -21, 20, -11, -21, 22, -2, -46, - 79, -84, 60, -9, 13, -57, 51, 2, -16, -38, 34, 15, -23, -7, -6, 53, - -38, -22, 29, 23, -63, 65, -34, -21, 34, -7, -19, -8, 24, 13, -8, -63, - 110, -56, -8, -37, 79, -56, -3, -3, 62, -57, 19, 9, 8, -20, -29, 27, - 13, -28, -19, 79, -80, 58, -31, 24, -16, -35, 46, 0, -52, 36, 21, -29, - 16, -23, 26, -29, 38, -42, 26, -41, 60, -29, -16, -4, 42, 7, -85, 53, - 47, -54, -29, 67, -53, 39, -58, 45, -5, 5, -37, 61, -56, 27, 17, -40, - 1, 15, 17, -43, 19, 4, 30, -49, 12, -1, 49, -64, -27, 96, -41, -47, - 45, 8, -38, 35, -50, 74, -81, 54, -14, 24, -64, 57, -5, -25, -19, 27, - 16, -27, 4, 16, 2, -25, 26, -31, 22, -35, 56, -54, 0, 55, -23, -29, - 9, 38, -38, 12, -41, 74, -28, -29, -3, 61, -71, 36, -32, 43, -19, -14, - 21, 0, -10, -19, 32, -42, 20, 11, 23, -94, 107, -13, -53, 5, 35, -17, - -11, -25, 32, 40, -76, 29, 32, -9, -65, 80, -42, 6, -22, 42, -27, -2, - 10, -2, 13, -41, 32, 10, -17, -26, 53, -50, 40, -42, 30, -19, 41, -50, - 33, -20, -1, 40, -67, 8, 29, 15, -58, 25, 32, 15, -81, 46, 14, -8, - -51, 24, 40, -44, 17, 10, 2, -26, 47, -68, 49, -49, 50, -27, -3, -20, - 84, -62, -32, 52, 12, -52, 0, 42, -30, 24, -47, 45, -16, 11, -51, 74, - -47, -9, 45, -19, -18, -5, 41, -39, 11, -33, 56, -20, -14, -8, 64, -85, - 60, -23, -13, -3, 33, -20, -25, 57, -34, 2, -23, 42, -21, 3, -49, 85, - -35, -27, 1, 54, -34, -31, 24, 15, 6, -45, 54, -30, 12, -27, 40, -61, - 39, 1, -5, -18, 17, 14, 7, -33, -27, 83, -44, -40, 21, 66, -82, 32, - -7, 33, -54, 27, 3, 2, -13, -15, 52, -57, 14, 14, -6, -27, 54, -45, - 23, -11, 16, -27, 27, -33, -3, 36, -46, 47, -15, -8, -7, 67, -93, 12, - 34, 17, -73, 32, 15, 29, -44, -17, 47, 2, -40, -31, 81, -43, 3, -24, - 52, -32, 4, 1, 20, -48, 20, 40, -68, 23, 14, 19, -64, 46, -8, 17, - -48, 55, -29, 23, -59, 48, -2, -27, 11, 1, 21, -30, 25, -24, 29, -41, - 21, 0, -15, -17, 64, -47, 1, 31, -22, 2, -11, 22, -56, 69, -53, 32, - -30, 31, -16, 32, -68, 29, 42, -39, -49, 80, 17, -74, 17, 0, 55, -88, - 25, 29, 14, -72, 56, 0, 0, -33, 20, 5, -34, 35, -33, 45, -37, 23, - -9, 10, -54, 67, -22, -13, -15, 41, -14, -16, 8, 0, 19, -51, 56, -51, - 39, -20, 19, -34, 26, -18, 19, -31, 23, 0, 12, -31, 7, 45, -65, 22, - 4, 24, -73, 74, -13, -34, 18, 23, -16, -25, -2, 40, 5, -84, 76, -4, - 6, -74, 75, -7, -10, -51, 60, -13, 0, -45, 50, 18, -57, 20, 21, -7, - -26, 47, -51, 28, -19, 12, -13, 3, -1, 20, -23, 1, 28, -18, 3, -41, - 67, -72, 34, -11, 33, -47, 47, -9, -20, -2, 28, -21, -27, 11, 26, -15, - -25, 57, -44, 46, -67, 49, -5, -30, 1, 42, -36, -9, 22, 7, -13, -34, - 67, -29, -16, -26, 84, -49, -21, -11, 77, -53, -43, 62, 0, -3, -32, 23, - 13, -5, -69, 88, -42, 7, -17, 37, -35, 27, -6, -13, -11, 31, -17, -28, - 45, -17, 8, -32, 41, -48, 39, -35, 41, -16, -28, 41, -3, -13, -26, 23, - 12, -22, -50, 104, -57, 9, -28, 67, -53, -7, 0, 45, -41, -22, 50, -8, - -21, -9, 38, -19, -18, -2, 55, -76, 38, -12, 39, -49, -14, 64, -24, -45, - 25, 50, -66, 23, -15, 32, -36, 32, -46, 44, -14, 2, -16, 22, -7, -11, - 14, -28, 21, 4, -10, -18, 63, -66, 30, -20, 36, -35, -16, 26, 12, -37, - 6, 50, -35, -15, 6, 48, -64, 4, 12, 46, -85, 33, 12, 25, -49, -11, - 77, -53, -18, 19, 29, -41, -1, 3, 39, -70, 55, -6, -1, -23, 38, -22, - -12, 1, -11, 36, -39, 5, 15, 33, -55, 32, -8, 6, -37, 39, -32, 4, - 27, -23, 11, -1, 10, -28, 19, -24, 52, -69, 27, 21, 11, -72, 52, 17, - -35, -13, 16, 33, -44, 4, 19, 18, -60, 13, 35, 12, -93, 82, 9, -35, - -20, 26, 40, -74, 14, 18, 28, -66, 37, 4, 9, -43, 34, -15, 17, -35, - 38, -11, -14, 14, -5, 2, -36, 54, -35, 2, 1, 29, -35, 9, -4, 24, - -32, -5, 31, -19, -17, 28, 34, -86, 49, 13, -16, -52, 71, -29, 3, -30, - 51, -1, -36, 6, 25, 4, -75, 56, 10, -21, -18, 37, -16, 17, -53, 60, - -7, -38, -9, 63, -18, -70, 67, 1, -19, -32, 50, -20, 11, -23, 24, -10, - -3, -21, 32, -26, 7, 12, -19, 35, -29, 26, -41, 32, -22, 14, -43, 41, - 7, -16, -24, 57, -20, -35, 25, 7, -11, -20, 31, -18, 10, -34, 44, -7, - -22, -9, 49, -33, -18, 26, -4, 12, -63, 51, 11, -16, -40, 80, -28, -37, - 5, 61, -78, 22, 16, -3, -10, -5, 26, -8, -2, -43, 68, -42, -24, 39, - 11, -31, 15, -9, 18, -20, -1, 7, -17, 26, -30, 31, -31, 42, -28, -1, - -15, 49, -51, -2, 26, 3, -12, -11, 7, 22, -9, -51, 70, -27, -14, -13, - 53, -37, -12, 9, 44, -57, -14, 51, -6, -27, -10, 60, -55, 2, 14, 18, - -45, 32, -19, 29, -27, -12, 31, 14, -54, 17, 41, -62, 51, -40, 40, -40, - 12, -8, 28, -39, 16, 10, 10, -46, 37, 12, -42, 17, -4, 2, -17, 35, - -34, 38, -30, 21, -6, -36, 36, 13, -56, 14, 53, -36, -13, -1, 61, -64, - 7, -3, 54, -63, 5, 14, 34, -67, 10, 46, -27, -18, 26, 20, -41, 14, - -13, 40, -66, 20, 38, -34, -11, 39, -16, 11, -26, 7, 28, -58, 26, 0, - 30, -61, 44, 11, -30, -17, 66, -40, -33, 35, 6, -21, -2, 9, 16, -13, - -39, 79, -71, 27, 9, -9, -29, 28, 4, -17, 1, 14, 2, -20, -2, 16, - 24, -67, 20, 37, -4, -80, 75, 18, -46, 2, 10, 25, -31, -28, 43, 19, - -75, 59, -13, 14, -40, 29, 7, -22, -20, 44, -20, -16, 10, 32, -21, -42, - 61, -19, -29, 12, 39, -55, 32, -4, 0, -2, -24, 40, -19, -38, 34, 22, - -33, 11, -3, 31, -49, 21, -16, 40, -54, 12, 29, -19, -8, 17, 17, -52, - 28, 22, -39, -2, 45, -42, 23, -46, 51, 11, -68, 26, 55, -34, -44, 45, - 9, -19, -43, 57, -16, -5, -9, 40, -24, -12, 8, 29, -54, -4, 50, -37, - 0, 11, 7, -4, 0, -25, 57, -62, 19, 18, -7, -22, 12, 19, -27, 9, - -5, 15, -19, 2, 15, 4, -45, 36, -5, 8, -48, 60, -13, -35, 36, -19, - 21, -24, -7, 23, -24, -22, 73, -58, -5, 34, 25, -71, 19, 30, 0, -43, - -4, 50, -9, -21, -21, 69, -28, -46, 24, 29, -45, 12, 3, 21, -13, -28, - 47, -9, -37, 21, 22, -46, 21, 8, -1, -32, 42, -22, 14, -27, 19, 16, - -29, 3, 17, -1, -39, 28, 21, -42, 8, 47, -45, 2, -16, 50, -20, -54, - 50, 9, -25, -12, 41, -29, 8, -3, -5, -13, 25, -16, 19, -30, 15, 15, - -2, -52, 38, 38, -69, 12, 37, 9, -54, 10, 36, 5, -79, 27, 57, -35, - -40, 48, 21, -41, 13, -3, 10, -29, 4, 18, 4, -50, 52, 1, -28, -6, - 41, -25, -22, 34, -22, 10, -5, 3, -6, -1, 2, 26, -48, 24, 12, 5, - -54, 36, 18, -32, -6, -3, 48, -28, -21, 22, 35, -63, 6, 43, -28, -27, - 42, -7, -22, 6, 21, 8, -56, 31, 23, -10, -73, 76, 18, -49, -26, 70, - -21, -23, -8, 35, 0, -42, 7, 42, -26, -28, 47, -31, 0, 13, 11, -25, - 14, -6, 10, -13, -26, 40, -14, -5, -8, 42, -36, 1, 15, -10, -34, 47, - -24, 5, -22, 38, 14, -39, -10, 53, -26, -67, 72, 0, -15, -25, 29, 19, - -29, -25, 50, -14, -31, 10, 42, -44, -24, 81, -40, -32, 12, 45, -41, -5, - -1, 47, -27, -54, 54, 32, -64, 4, 26, 1, -1, -41, 44, 4, -22, -22, - 47, -30, 7, 5, 3, -37, 45, 1, -53, 44, -1, -20, 7, 12, -13, 9, - -23, 26, -2, -47, 32, 37, -61, 6, 42, 0, -25, -43, 76, -23, -38, -10, - 73, -24, -57, 47, 45, -70, 3, 19, 7, -19, -8, 10, 24, -12, -36, 66, - -60, -1, 50, -32, -19, 8, 26, 2, -44, 11, 53, -42, -26, 20, 42, -52, - 14, 16, -26, -11, 42, -41, 16, 16, -23, 13, 1, -6, 17, -18, -41, 71, - -39, -23, 40, 13, -30, 2, 19, 0, -39, 10, 24, -15, -25, 12, 66, -81, - 6, 47, 9, -69, 12, 47, -9, -36, -27, 76, 9, -107, 58, 53, -68, 19, - -10, 39, -49, 8, 14, -11, -17, 21, 18, -25, -17, 47, -4, -48, 32, -9, - -4, -3, 8, -5, 29, -40, 13, 14, -31, 24, 7, -48, 27, 37, -61, 22, - 15, 7, -46, 17, 10, 22, -45, -9, 56, 1, -73, 43, 34, -51, -15, 40, - 2, -47, 35, 8, 27, -87, 31, 86, -94, -27, 67, 10, -44, -15, 43, 11, - -46, 6, 9, 33, -71, 35, 26, -30, -18, 37, -18, -9, 20, -15, 1, 5, - 9, -2, -23, -11, 50, -42, -3, 24, 6, -21, 17, -5, -8, 11, -26, 24, - -19, -9, 33, 22, -78, 38, 44, -48, -53, 80, 6, -66, 14, 36, 8, -37, - -15, 66, -24, -75, 87, -14, -27, -10, 45, -12, -38, 13, 33, 7, -67, 20, - 75, -55, -67, 85, 8, -52, -11, 45, -10, 13, -34, 12, 26, -36, 7, -1, - -1, -7, 23, -27, 18, 15, -12, -28, 27, -6, 9, -52, 40, 26, -50, 3, - 51, -10, -71, 67, 10, -59, 4, 56, -27, -20, -19, 58, 6, -81, 38, 49, - -39, -39, 47, 14, -25, -40, 54, -2, -20, -38, 82, -25, -51, 44, 24, -60, - 8, 51, -47, -2, 6, 22, 9, -34, -20, 78, -56, -25, 36, 19, -49, 17, - 32, -50, 44, -29, 4, -11, 14, 3, -13, -11, 19, 13, -24, 28, -32, 33, - -37, 39, -61, 119, -76, 120, -70, 99, -122, 89, -113, 91, -123, 122, -123, 77, - 86, -116, 6, -118, 123, -23, 64, -93, 17, 24, -125, 124, -125, 124, -24, -12, - 56, 87, -54, 38, -91, 64, -2, -41, 126, -127, 20, 8, -48, -62, 127, -128, - 88, -43, -18, 86, -100, 44, -32, -26, 71, -13, 6, 51, -33, -50, 106, -59, - 33, 5, -20, 69, -56, 54, -48, -6, 38, -5, -38, 35, -1, 12, -1, 4, - 23, -56, 19, -7, 5, -4, 31, -38, 3, -12, -9, -25, -7, 24, -32, 17, - -21, -22, 24, -20, 6, -18, 0, -15, 5, -16, 15, 3, 2, -10, 3, 27, - -31, 37, -12, 32, -5, 2, -21, 27, -14, 20, -8, 5, 15, -7, -11, 20, - -37, 7, -23, 17, -22, 11, -14, 8, -44, 39, -52, 26, 3, 14, -10, 51, - -45, 29, -19, 19, -3, 41, -21, 46, -23, 10, 16, -25, 3, 7, -30, 19, - -9, -5, -1, 1, -19, 1, -24, -23, 51, -48, -10, 17, -34, -38, 60, -71, - 26, -43, 65, -59, 70, -26, 61, -51, 63, -51, 42, -25, 58, -36, 31, 10, - -14, -9, 8, -18, 8, 4, 8, 7, 31, -52, 39, -53, 53, -56, 24, 11, - 1, -20, -8, -32, -18, -10, -25, 4, 1, 37, -37, 42, -42, 53, -57, 52, - -18, 30, 11, 20, -52, 55, -61, 56, -50, 24, -26, 38, -42, 36, -1, -43, - 58, -46, 6, 18, -35, 31, -36, 28, -55, 55, -98, 52, -41, 26, -24, 48, - -31, 48, -26, 30, 19, -17, 23, -8, 13, 15, 19, -7, -23, 41, -36, 20, - -39, 65, -64, 66, -38, -9, 7, -14, -10, -3, 6, 15, -19, -40, 53, -67, - -11, -12, -25, 23, -11, -12, 46, -48, 39, -20, 20, -14, 31, -54, 71, -25, - 2, -8, -5, -9, 1, 7, 27, 17, -14, 43, -31, 27, 11, -33, 20, -2, - -33, 45, -38, 17, -9, -11, -17, -22, -19, 20, -25, 4, 29, -35, 14, -17, - 1, -7, 19, 2, 16, 32, -3, -17, 4, 0, -9, 17, 5, -8, 52, -32, - 40, -39, -5, -18, 14, -21, 31, 10, -17, 8, -34, -7, 1, -44, 7, 10, - -8, -6, -18, -25, -1, -19, 16, -29, 62, 6, 9, 21, 0, -14, 4, 5, - 20, 13, 27, -1, 18, -5, 21, -31, 11, 2, -9, -4, 21, -27, 8, -21, - -28, -19, 14, -12, 5, -20, 20, -36, 4, -18, -27, -4, -4, 15, 4, 48, - -7, -11, 20, -6, 7, 20, 1, 20, 0, 35, -35, 28, -37, 7, -43, 21, - -22, 23, -18, 12, -22, -13, -20, -11, 7, 23, -10, 19, -18, 17, -41, 4, - -16, -8, 21, 11, -4, 10, 30, -24, 32, -15, 15, -13, 28, -5, 38, -10, - 0, -22, -13, -12, 24, -18, 30, -7, 4, -16, 27, -28, -3, -1, 18, -14, - 31, -24, -3, -13, -19, -36, -2, -31, 9, -2, -12, 17, 12, -50, 46, -49, - 43, -15, 13, 22, 15, -25, 10, -8, -6, 14, -2, 24, 15, 9, 17, -13, - 5, 14, -15, 7, 20, 4, 4, 18, -16, 3, -47, 31, -46, 19, -24, 5, - -19, -1, -42, 14, -44, 18, -7, -1, 15, 9, -35, 32, -44, 39, -46, 23, - -16, 36, -25, 45, -34, 32, -8, 10, 5, 28, 0, 12, 11, 3, 20, -23, - 6, -8, 16, 7, 17, -19, 32, -44, 3, -8, -21, -8, -5, 2, -29, 2, - -3, -19, -14, 3, 7, -23, 10, 1, 3, 8, 13, -44, 20, 21, -16, 23, - 3, 5, 10, -11, 32, -11, 13, -7, 30, 4, 16, -7, -6, -7, 14, -40, - 4, -16, -26, 3, -1, 0, -6, 5, -50, 37, -27, 18, -16, -14, 6, -1, - -4, -15, 8, -12, 14, 9, -22, 42, -10, 23, -11, 36, -15, 13, 30, 1, - 47, -20, 33, -14, -12, 1, -20, -9, -9, -11, -13, 7, -37, 25, -47, 14, - -13, 4, -12, 9, -32, 18, -48, -1, -35, -1, -7, 35, -20, 53, -4, 34, - -7, 13, 19, 9, 30, 6, 45, -22, 23, -18, -6, -1, 3, -30, 14, -15, - 9, -39, 10, -33, -13, -24, 10, 14, 14, -10, 2, -34, -4, -20, -21, -14, - 40, -10, 17, -14, 28, -17, 37, -26, 69, -15, 38, 2, 21, -25, 37, -61, - 13, -9, 5, -17, 18, -41, 22, -57, -1, -9, -13, 24, -10, 38, -5, 8, - -16, -2, 1, 12, -25, -2, -13, 2, 2, -16, -19, 32, -30, 22, 20, -4, - 12, 11, -17, 19, -17, -3, 20, -33, 65, -27, 32, -14, 8, -8, 13, -19, - 9, -2, 7, 33, -40, 18, -18, -18, 6, -23, -11, -11, -28, 4, -11, -15, - -14, -8, -5, 34, -6, 19, 1, -3, 9, -1, 5, 5, 14, -11, 40, -3, - 18, -20, 16, -7, 2, -5, 9, -16, 9, -17, 0, -17, 4, -17, -3, 3, - 8, -14, -19, 12, -21, -7, 1, -2, -8, 16, 3, -6, 35, -23, 33, -13, - 11, 12, 3, -7, 26, -11, 19, -18, 23, -22, 39, -49, 39, -50, 11, -38, - 26, -29, 10, -6, -22, 15, -8, 15, -37, 36, -43, 39, -43, 18, -26, 1, - 11, 4, -2, 9, 7, 2, 7, 19, 1, 1, -4, 16, -5, 16, -9, -3, - 4, -4, -1, -17, 0, 11, 16, -27, 12, -15, 15, -3, 0, 10, -3, -5, - 12, -13, -7, -13, -31, -1, -3, -17, 15, -31, 25, -10, 15, -1, 2, 4, - 10, 7, 32, -13, 7, -22, 2, -10, 16, 1, -15, 19, -24, 16, -18, -12, - 18, -9, 9, 24, -8, 8, 11, 0, -31, 17, -55, 21, -43, 40, -40, 29, - -54, 44, -34, 22, 11, 16, 7, 19, 21, -6, 2, -7, -16, 22, 0, -1, - -4, 5, -8, 26, -42, 4, -6, -21, 35, -16, 8, 0, -22, -13, 11, -31, - 7, -28, 4, 17, -12, -18, -2, -23, 23, -1, 19, 34, 7, 7, 35, -19, - 11, -8, -17, 8, 4, 16, -16, -13, 9, -15, -5, -1, -6, 7, 3, 11, - 1, -7, -24, 21, -31, 36, -3, -10, 8, 2, -17, 12, -24, 6, -3, 9, - 15, 3, 13, -8, -13, -3, 6, -19, 14, -33, 16, -17, -5, -31, 3, -29, - 24, -7, -6, 35, -20, -5, 34, -20, 25, -3, 10, 25, 8, 14, -13, 0, - 1, 17, -33, 51, -38, 45, -32, 39, -3, -2, -24, 3, -18, 14, -4, -44, - 2, -25, -15, -2, -23, 3, -2, -2, 20, -14, 8, -10, -4, 21, 11, -13, - 32, -4, 8, 19, -16, -2, -2, -2, 14, -2, -1, 27, -26, 20, 11, -13, - 10, -3, -7, 12, -13, -3, -30, -16, 10, -26, -3, -10, -2, -9, 15, -17, - 1, -2, -7, 14, -8, 12, -3, -1, 2, 47, -26, 22, -19, 16, 2, 13, - -3, 21, -10, 22, -32, 43, -24, 16, 0, 5, -2, 12, -44, -12, 1, -26, - 1, -36, 5, 2, 9, -17, 20, -37, 14, -9, -5, 6, -3, -13, 23, -19, - 25, -33, 6, 17, 10, 19, 15, -4, 12, 5, -9, 33, -20, 26, -9, 11, - -2, 11, -21, -7, -13, -4, -8, -12, 0, -10, -9, 8, -33, 9, -26, 8, - 6, -8, 12, 7, -8, 0, 7, -16, 25, -8, 27, 12, 0, 9, -9, 4, - -17, 14, -16, 11, -8, 18, -2, 4, 2, -20, -18, 22, -16, -5, 3, -24, - 13, -10, -12, -10, 2, -16, 33, -15, 21, -15, -4, -19, 29, -22, 18, 2, - 20, 12, 18, -22, -7, -16, 7, -19, 14, 1, -17, 33, -22, 38, -8, 3, - -3, 21, -17, 51, -43, 15, -22, -23, -6, -12, -14, 14, 9, 6, 4, -31, - 3, -16, -14, 22, -22, 5, 13, -25, 17, -2, -18, 7, 1, 5, 36, -16, - 23, 4, -15, 29, -20, 10, 1, 24, 17, 16, -4, -16, -37, -11, 1, -33, - 27, -36, 17, -22, 2, -33, 16, -29, 32, -7, 24, -12, 14, -12, 22, -16, - 15, -20, 19, 9, 14, 12, -1, -24, 13, -6, -1, 32, -19, 24, 12, -26, - 4, -31, -38, 18, -16, -13, 3, -14, -1, 11, -15, 15, 0, -2, 30, -6, - 35, -23, 10, -35, 5, -14, 17, -21, 20, 4, 7, 8, -5, -15, 20, -25, - 26, 6, -3, 3, 5, -24, 26, -35, 4, 0, -6, 13, -23, 8, -25, 1, - -2, 9, 3, 17, 4, 0, 13, -15, 3, -21, -16, 4, -5, -10, 11, -2, - 7, 23, -22, 25, -19, 18, 25, -9, 14, -21, -7, 11, -24, 22, -12, -7, - 6, 9, -33, 11, -20, 2, -9, 2, 3, -13, 12, -15, 23, -21, 16, -16, - -2, 8, 13, -12, 18, -10, 16, -12, 20, -18, 18, -1, 21, -21, 20, -30, - -6, 10, -2, 13, -6, -15, 6, 2, -1, 1, -19, 9, -15, -3, -11, 0, - -5, 1, 5, 1, -4, -8, 1, -16, 23, 0, -23, 2, 8, -6, 38, -4, - 2, 13, -17, 31, -4, -8, 22, -14, 0, 12, -22, 7, -7, 11, 4, -4, - -12, -9, -22, 2, -17, -17, -11, 7, -17, 19, -24, 9, -8, -6, 29, -4, - 10, 4, 4, 23, -1, 9, -6, -12, 23, 16, -6, 33, -29, 12, -7, -10, - 17, -4, -18, 21, 0, -14, -2, -20, -21, 10, -28, 5, -18, -4, 0, -11, - 1, 5, -17, 3, 9, 20, 6, 1, -7, 2, -7, 3, 9, -22, 29, 6, - -1, 25, -10, 6, -1, 4, 12, 18, -13, 28, -11, 6, -15, -14, -22, -7, - 5, -14, 1, -16, -12, -5, 5, -9, 4, -1, -14, 21, -10, -5, 0, -17, - -7, 2, -10, 6, 11, 1, 37, -17, 6, 21, -24, 41, 2, 23, 0, 10, - -18, 16, -26, 14, -21, -19, 18, -9, -14, -1, -9, -14, -3, -7, -10, 7, - -7, 19, -11, 15, -25, -3, -6, 2, 8, -10, 4, 12, -3, 11, -2, -2, - 5, 31, -9, 39, -21, 14, -23, 18, -16, -1, -3, -6, 0, 22, -9, -5, - -17, -4, -12, 2, -3, -7, 10, -10, 7, -20, -19, -10, 0, -14, 32, -15, - -18, 13, -9, 2, 17, -14, 6, 36, -9, 28, 1, 0, 17, -10, 5, 17, - -8, 12, -2, 3, 2, -22, -6, -14, 6, 8, -11, -14, 2, -23, 25, -35, - 3, -18, 1, -14, 22, -1, -12, -7, -9, 13, -4, 12, 4, -3, 18, 0, - 1, 8, -14, 14, -2, 1, 17, -3, -14, 35, -17, 19, -14, -6, 1, -9, - 18, -17, -4, -13, -2, -14, 10, -10, -6, 0, 3, 5, -12, -13, -3, -6, - -6, 11, -13, -7, 13, -2, 6, 13, -7, 11, -5, 23, 1, 29, -17, 23, - -10, 18, -16, 12, -20, 10, 7, -9, -5, -21, -9, 5, -13, -2, 0, -15, - -11, 3, 0, -18, 5, -25, -2, 3, -2, -3, 4, 8, 14, -7, 15, 4, - 8, 19, 9, 11, 7, -3, 14, -11, 1, 15, -35, 3, 3, -10, -16, 0, - -15, 2, 3, -12, 27, -23, 32, -15, 10, -14, 3, -27, 10, -15, 12, -24, - 7, 2, 9, -2, -2, -1, 3, 1, 1, 8, -4, 0, 6, -6, 1, 1, - -1, 8, -11, 31, -27, 13, 4, -3, 5, -1, 0, 2, 9, 0, 12, -31, - 4, -27, 1, -25, 20, -21, -14, 12, -14, 0, -5, -23, 18, -1, 15, 19, - -5, 20, -8, 14, -7, 16, 3, 0, 8, 10, 0, -8, -10, 3, -8, 9, - -12, 4, 15, -6, 2, -12, -29, -3, -16, -11, 35, -18, -1, -28, 7, -12, - 0, 7, -5, 22, 10, 10, -4, 6, -13, 21, -23, 20, 8, -13, 11, 15, - -6, -6, -22, -1, 3, 14, 7, 11, -27, 12, -17, -12, 8, -15, 3, -8, - 12, -12, 5, -30, 12, -18, 9, -2, 3, 4, 15, 1, 5, -9, 0, -8, - 24, -2, 21, 5, -4, -4, 14, -15, 0, -1, 3, 17, -5, 13, -19, -10, - -4, -6, -4, -7, 18, -27, 8, 1, -12, -21, -13, 1, -9, 11, 1, -3, - -1, 22, -21, 9, 6, -3, 20, -2, 17, 7, -12, 1, 4, 4, -9, 9, - -20, 24, 7, -9, -3, -7, -6, 10, 7, 3, 9, -2, -3, -4, 1, -19, - -8, -16, 0, -12, 0, -25, 4, -22, 10, -9, 0, -3, 15, -1, 8, 11, - -15, 10, 13, 1, 22, -5, 15, 1, 24, 6, 0, -6, 5, 5, 10, 8, - -1, -11, -14, 3, -31, 2, -22, -4, -8, -15, -2, -31, -12, 6, -7, 5, - 2, 3, -4, 19, 3, 4, 7, 7, -8, 31, -6, 26, 1, -2, 2, -3, - -10, -4, -4, 9, 3, 12, -16, 16, -9, -1, 5, 4, -7, 13, -17, 0, - -11, -13, -22, 1, -9, 4, -7, 7, -10, 5, -1, -6, -3, -21, 7, -10, - 18, -3, 1, -7, -11, 11, -8, 12, 20, 3, 13, 16, -1, 3, 13, -3, - 23, 16, -3, 15, -14, 12, -6, -8, -28, 0, -33, 4, -11, -12, -13, -21, - -17, -16, -5, -12, 16, -7, 15, -6, -5, 3, -9, 21, 17, 13, 14, 11, - 21, -12, 31, -18, 7, 12, 8, 9, 7, 1, -3, -7, -14, 17, -35, -10, - -2, -18, -8, -10, -20, -22, 2, -10, -3, 1, -1, 4, -5, 11, -20, 11, - -6, 27, 7, 18, 8, -1, 2, 3, 11, -9, 5, 5, -7, 29, -6, 20, - -21, 23, -15, 19, -19, 2, -22, 11, -26, -7, -10, -30, -1, -3, -6, 15, - -22, 16, -7, -9, -2, -7, -5, 11, 17, -13, 2, 8, -5, 6, 27, -6, - 12, -6, 4, 15, 3, 14, -3, -12, 11, -2, 6, 5, 4, -6, -12, 0, - -32, 2, -22, 22, -12, -5, -7, -11, -7, 6, -1, -3, -3, -16, 2, -1, - 0, 0, -7, -2, 1, 12, -4, 5, 20, 1, 16, -2, 14, -1, 19, 8, - 29, -8, 7, -14, -2, 3, -13, 8, -40, 22, -18, 2, -14, -8, -11, -8, - 12, -21, -1, -10, -12, -6, -4, -14, 6, -19, 7, 14, 1, 11, 11, -11, - 25, 1, 14, -5, 31, 0, 22, 4, 1, 3, 6, -3, 4, -2, -20, -7, - -26, 1, -12, -7, -10, 2, -1, -5, -7, -8, -10, 6, -7, -6, 10, -17, - 6, 3, 15, -8, 15, -7, 12, 1, 9, -4, -2, 10, 9, -1, 10, -4, - 9, -8, 17, 0, -13, -7, -2, -11, 3, -2, -15, -4, -11, -5, -9, 1, - 8, -10, 8, -8, -6, -18, 21, -19, 26, -19, -1, -11, 10, 4, 12, -10, - 16, -10, 17, 8, 13, -1, 17, 1, 5, -1, 11, -8, 9, 16, -17, 3, - -26, -17, -14, 6, -17, 4, -20, 0, -1, -6, -4, 2, -15, 13, -3, -1, - 0, -2, -8, 11, 7, -3, -8, 5, 14, -1, 28, -19, 13, -4, 8, 1, - 11, 7, 6, -8, -2, -13, -10, -22, 6, 11, -1, -1, -5, -13, 18, 3, - -10, 9, -17, -8, 9, -9, 1, -17, -4, -16, 18, -6, 15, -10, 17, 5, - 0, -5, 0, -11, 12, 15, 4, 8, 5, -4, 0, -2, 3, -17, -2, -1, - 11, -6, -7, 2, -33, 23, -6, -1, -2, -2, -1, -8, 3, -29, -2, -34, - 16, -3, 16, 1, 10, -12, 23, 0, -3, 16, 12, 19, 23, -1, 8, -26, - 16, -32, 26, -13, 2, -11, 5, -1, -15, -9, -16, 7, -6, 14, -15, 5, - -10, -7, -9, -9, 6, -17, 13, 18, -5, -3, -4, -4, -18, 28, -6, 13, - 17, 24, -2, 9, -14, 1, -11, 7, 17, 1, -15, 10, -23, -4, -12, 5, - -20, 17, -10, 6, 0, -9, 4, -8, -15, 6, -16, 7, 9, 3, 6, -12, - -17, 0, 4, 13, 22, -4, 10, -8, 7, -12, 5, 5, 1, 11, 2, 10, - -3, -2, 3, -10, -5, -7, -4, -18, 17, -2, -14, -16, -7, -10, -3, 6, - -1, 14, -11, 15, -18, 2, -6, 0, -1, 0, 20, -17, 1, 6, 2, 6, - 12, -3, 7, 25, -5, 17, -14, 0, -6, 0, -2, -5, -1, -10, 8, 2, - -9, -19, -7, -17, 5, 3, -7, 4, -15, -5, 9, -12, -1, -5, 3, -5, - 26, -2, 3, -4, 5, 3, 7, 10, 5, 6, 6, 26, -17, 0, -1, 3, - -3, 10, -7, -7, -9, 11, -18, 0, -16, -6, -5, 3, 7, -14, -14, 0, - -21, 14, -8, -1, -12, 2, 1, 2, -3, -1, -3, 18, 5, 5, 9, 12, - 7, 18, 8, 5, -25, 16, -15, 16, -7, 9, -22, 1, 14, -13, -5, 2, - -6, -8, 13, -17, 6, -16, 1, -5, -14, -6, -6, -15, -2, 9, -9, -18, - 15, -19, 12, 7, 4, 8, 14, 15, 6, 10, -3, 9, -7, 23, -17, 21, - -20, 7, 0, -9, 8, -10, 1, 4, 2, 3, -9, -9, -15, -6, -21, -16, - -6, 0, -11, 19, -8, -9, 5, -6, 0, 5, 14, 7, 1, 12, 8, 7, - -5, 12, 8, -4, 19, 4, -7, 2, 3, -12, -8, -1, 0, 5, 7, -5, - -8, -22, -8, -21, -2, -9, 10, -20, 13, -6, 8, -17, -9, -6, 2, 5, - 8, 6, -3, 10, -9, -2, 15, -6, 20, 7, 11, 10, -3, -4, -8, 25, - -25, 18, -12, 17, -6, 20, -22, -1, -17, -10, 5, -10, 9, -13, -9, -6, - 10, -25, -5, -2, -5, 13, 2, -5, -8, -10, 11, -27, 10, -4, 11, 0, - 33, -4, 10, -14, 1, 12, -2, 27, -8, 6, 11, 9, -12, -4, -10, -13, - 12, 5, 1, -10, -14, -15, -8, -7, -9, 3, -5, 10, 3, -11, -12, -13, - -3, -3, 3, 2, 9, 17, -6, 25, -3, -3, -8, 19, 3, 30, -10, 12, - -22, 7, -5, -10, -3, 21, -8, 12, 6, -5, -13, -13, -9, -9, -1, -23, - 13, -17, 15, -22, -11, -18, 8, -14, 20, 1, 4, -5, 3, 3, 5, 11, - 1, 2, 27, 1, 10, -7, -8, -2, -2, 7, -1, 17, -5, 24, -7, 5, - -10, -20, -6, 5, -4, -5, -1, -18, -5, -14, -1, -20, 1, 7, -7, 12, - -4, -2, -4, 2, 8, 0, 7, 1, 6, -2, 18, -5, -7, 4, 3, -2, - 13, 4, 0, 2, -3, 2, -10, -6, 1, -6, 6, -7, -3, -21, -2, -12, - 5, -1, -9, 7, -3, 13, 5, 5, -8, 0, -8, 19, -5, 13, 13, -7, - 3, 0, -10, 0, -8, 20, -8, 13, -20, -5, -7, 3, 5, -7, 2, -5, - -4, -14, 11, -23, -13, 2, -1, 12, 13, 5, -6, 23, -9, 9, -6, -9, - 18, -13, 16, -3, -7, -17, 3, -13, 12, -9, 4, 0, 0, 13, -18, -1, - 3, -13, 20, -5, 1, -20, 15, -23, 18, -4, -8, 5, -7, 16, 4, 6, - -3, 7, -21, 19, -17, -7, 9, 5, 3, -5, -3, -16, -9, 25, -9, 12, - -5, 10, -5, 9, -4, -6, -3, 4, 10, -2, 11, -12, -2, -14, 8, -23, - -5, 0, -8, 9, -2, -11, -3, -9, 9, 2, 2, 4, -5, 7, 11, -16, - 0, -6, 7, 6, 25, 5, 6, -4, 3, 4, 3, 2, -8, -3, 5, -1, - -11, -4, -9, -3, -15, 10, -12, -5, 11, -4, -7, 6, -29, -5, 6, 11, - 3, 9, -18, 13, -14, 19, -1, -2, 4, 5, 12, 1, 5, -8, 3, 1, - 20, -6, 2, 3, -16, 10, -10, -18, -11, -7, -7, 9, -4, -8, 9, -15, - 13, -13, -3, -7, 3, 8, 11, -6, -16, 1, -8, 20, 4, 15, -5, -3, - 11, -5, 6, 0, -5, 10, 13, 0, -6, -11, 0, 11, -11, 10, -7, -8, - 1, 16, -9, 2, -22, -9, 0, 4, 5, -12, -22, 2, -8, -8, 14, -16, - 0, 13, 0, 9, -7, 2, -1, 7, 8, -3, -3, 2, 15, 5, 10, -7, - 12, -4, 22, -4, -3, -12, -2, -15, 8, -2, -22, 7, -10, 5, 12, -20, - -9, -11, -2, -12, 2, -9, 5, -3, 11, 7, -9, 4, -4, 24, -7, 21, - -15, -3, 2, 14, -1, 5, 18, -12, 13, 3, 5, -10, -11, 0, -8, -2, - -4, 2, -15, 9, -10, -16, -9, -7, 0, -1, 3, -8, -10, 5, -8, 4, - -3, 8, -2, 20, 1, 6, -4, -9, 4, 14, 7, -1, 3, -5, 18, -7, - 20, -6, -10, 8, 1, -2, 3, -4, -5, -3, -6, 0, -16, -7, 12, 0, - -17, 4, -31, -7, 1, 1, -4, 8, -11, 6, -1, 11, -5, -7, -4, 2, - 4, 15, -3, 21, -5, 20, 3, -12, 21, -1, 10, 5, 6, -20, -1, -18, - 2, 3, -4, -5, -1, 6, -2, -11, -17, -15, -13, 0, 6, -18, 7, -18, - 7, -7, 6, 7, -10, 18, 16, 2, -1, 3, -11, 6, 14, 1, 15, -2, - 29, -8, 17, -14, 2, -19, 12, 8, -6, -1, -23, 6, -11, 7, -19, -18, - 0, 1, -8, -8, -4, -20, 8, -8, 4, 10, -12, 13, 0, 18, -10, -3, - -4, 6, 4, 17, 7, -2, 18, -9, 14, -10, -4, -11, 4, 3, 23, -17, - -6, -2, -7, -7, 9, -10, 1, 2, -4, -14, -7, -6, -8, -4, 7, 2, - -3, 3, 0, 13, -10, -4, -9, -6, 18, 11, -4, 16, -8, -4, 1, -1, - 7, 3, 3, 3, 10, -15, -2, -9, 9, 0, 2, 2, -9, 12, -7, 0, - -23, -7, -19, 2, -1, 0, 4, -15, 7, 3, -3, 0, 9, -12, 19, 4, - 8, -13, -6, 5, -1, 14, 10, 9, 13, -3, 16, -18, 13, -18, 7, -10, - 13, -6, -11, -3, 7, -23, -6, -11, -21, 9, -1, 4, -3, -16, 0, -12, - 7, 14, -5, 15, 0, 6, -5, -3, -9, 9, 4, 10, 4, -2, -7, 10, - -1, 10, -6, -14, 15, -4, 13, -4, -4, -14, 5, -2, 4, -9, 3, -14, - 2, 3, -10, -1, -9, 0, 3, -6, 12, -16, 0, 4, 10, -25, 6, -5, - 2, 8, 3, -2, -4, 15, 4, 7, 2, -1, -6, 10, 11, 2, -2, -14, - 6, -3, 0, -3, -9, -10, 1, -1, -15, 9, -29, 9, -10, 7, -3, -3, - -10, -2, 14, 4, -6, 0, 1, 12, 4, 18, -15, 19, 1, 15, 1, 1, - 3, -10, 8, -1, 7, -30, 8, -19, -2, -5, -9, -10, 0, -1, 6, -4, - -12, 1, -18, 10, -1, -12, 2, 7, 12, 11, 0, -4, -1, 6, 10, 17, - -8, 1, -12, 5, -2, 1, -7, -1, 4, 3, -3, -1, -18, 8, -9, 0, - -2, 8, -12, 12, 7, -5, -2, -16, -7, 9, -5, 11, -9, -4, 3, 1, - -9, -1, -2, -6, 7, 12, 0, -8, 9, -10, 3, 0, 2, -3, 11, 14, - 4, 3, -12, 3, -3, 2, 12, -4, -2, -2, 9, -21, -5, -28, -6, -10, - 6, 7, -6, -3, -24, 7, -11, 10, 0, 8, 13, 10, 6, -7, -2, -5, - 7, -1, 9, 18, -2, 12, -4, 7, -26, 13, -6, 19, 6, 6, -5, -16, - -6, -8, -18, -2, 1, -11, 3, 4, -16, -8, -10, -3, 2, -3, 5, 5, - 0, 11, 0, -14, 0, 1, 14, 11, 13, 0, -2, 5, -1, -4, -2, -4, - 5, 21, 3, 14, -5, -22, 5, -11, -3, -6, -3, -11, 0, -5, -13, -10, - -18, 3, 9, -10, 2, 3, -11, 11, -11, 5, -19, 23, -1, 20, 18, 4, - -3, -6, 9, 4, -3, 8, 4, 6, 2, 5, -14, -6, -3, 2, -6, -4, - -3, -11, 0, -5, 0, -21, -2, -10, 11, 5, -4, -5, -5, -8, 10, -10, - 4, -1, 6, 12, 9, 2, 8, -20, 8, -2, 11, -11, 1, -4, 5, 6, - -6, 6, -14, 14, 4, -2, 12, -3, -10, 8, -5, -15, -9, -1, 5, 8, - -3, 0, -23, -9, -11, 4, -12, 3, -4, 4, 1, 15, -12, 3, 13, 2, - 5, 8, -8, 7, 11, -3, 17, -11, 5, 3, 19, 13, 3, -11, -11, -2, - -9, -7, -4, -24, -1, -17, -3, -17, 0, -15, 2, -1, -5, -4, 3, 2, - 2, 11, -4, 3, -6, 11, 8, 3, 6, 3, 7, 7, 6, -6, 2, 0, - 14, 14, 3, 8, -6, 4, -3, 6, -13, -2, -9, -4, 5, -13, -5, -21, - -1, -6, -1, -5, -14, 8, -7, 5, -7, -17, -11, 7, 3, 20, 7, 1, - -3, 4, 5, 14, -3, 5, 3, 10, 8, 6, -6, -2, 6, 3, 7, -6, - -3, -3, -6, -1, -27, -11, -17, 0, 11, 7, 1, -7, -9, -13, 5, -11, - 0, -10, 15, 2, 5, -2, -5, 1, 6, 6, -6, -5, 6, 2, 5, 3, - 10, -16, 11, 8, 18, 3, 13, -11, 7, 5, -7, -6, -20, 15, -1, 10, - -1, -13, -17, -11, -3, -13, -4, -14, -3, -2, -6, 6, -28, 9, -8, 10, - 0, 12, -2, 10, 9, 1, 3, -6, 5, 17, 24, 18, 3, 4, -9, -4, - 2, -8, -4, -2, -11, 1, -8, -12, -9, -10, 5, 0, -7, -9, 7, -18, - 6, -10, -12, -1, -1, 13, 1, 18, 2, -3, 4, 3, 3, -3, 3, 10, - 9, 7, 5, -8, -7, 0, 3, -7, 7, -2, -2, 5, -10, 2, -5, -3, - -1, 4, 1, -2, -10, 4, -9, -5, -12, -18, 3, 6, -3, 3, -15, -1, - -13, 6, -2, 8, 0, 8, 16, -2, 17, -4, 8, 3, 23, -1, 11, -8, - 10, -4, -5, -3, -13, -2, -1, -2, 2, -9, -13, -13, -2, -11, -2, -20, - -5, 0, 3, 2, -1, -10, 1, 8, 3, 9, 6, 4, -3, 13, 3, 4, - 11, 2, 11, 8, -2, -1, -2, -2, -2, -1, -21, -1, -14, 8, 6, -8, - -10, 2, -16, 4, -3, -1, -10, 7, -1, 4, -4, -12, 3, -2, 13, 2, - -3, -9, -2, 6, -7, 8, -8, -5, 12, 7, 8, -3, 6, -1, 16, 0, - 7, -8, 3, -7, -1, 0, -6, -4, -8, 6, -1, 4, -19, 2, -3, -8, - -3, -12, 4, -6, 2, -7, 1, -13, 2, 9, -1, 17, -19, 3, -3, 23, - 9, 6, 3, 6, 6, -5, 11, -11, 1, 0, -5, 6, -6, -4, -5, -7, - 3, -4, -14, -9, -7, -1, 5, -11, 4, -19, 14, -4, 3, 4, 2, 0, - 9, -2, -3, 2, -2, 10, 15, -3, 14, -6, -4, 6, 1, -8, 11, -9, - 4, 3, -9, 2, 2, -2, 2, -2, -9, -2, -2, 1, -6, -6, -22, -16, - -10, 12, 0, 5, -8, -2, -4, -2, 5, -1, 7, 7, 9, 1, 7, 6, - -1, 10, 11, 5, -3, 8, 1, -1, 8, -15, -6, -10, 12, 0, 2, -5, - -9, -12, -7, -4, -14, -4, 0, -1, 5, -7, -8, -12, 0, 2, 16, -3, - 11, -4, 16, 11, 2, -3, 2, 8, -1, 7, -13, 4, -3, -1, 3, -10, - -2, -11, 3, 2, 3, -7, -10, -5, -10, 12, -8, 5, -7, 15, 1, -10, - 7, -16, 1, 3, 4, -5, 7, -7, 4, -2, -1, -8, 0, -2, 17, 10, - -2, 6, -5, 3, 10, -7, 2, -3, 4, 5, 5, -3, -8, -8, -1, 1, - 7, -5, -11, -2, -10, -4, -15, -7, -10, -2, 2, -4, -10, -8, 0, 2, - 6, 3, 2, 3, 10, 14, 8, 7, 3, 5, -5, 20, -6, -1, -2, 0, - 1, -2, -2, -8, 3, -3, 10, -14, 3, -3, -2, 0, -5, 0, -15, 4, - -2, 0, 4, -7, 3, -8, 7, -14, -2, -6, 4, 2, 3, -10, -2, 5, - -3, 12, -2, -5, -9, 1, 4, 1, 11, -12, 15, 5, 20, 10, -5, 1, - 5, 3, -13, 6, -16, 5, 1, -5, -8, -3, -14, -6, -2, -5, -8, -17, - -9, 3, -6, -2, -3, -3, 1, 14, 2, 4, 5, 3, 8, 7, 12, 0, - 11, 4, 16, 2, -3, -9, -1, 1, -1, -3, -6, -14, 4, -6, 2, -14, - -9, -11, -1, 0, 0, -5, -6, -10, 5, -5, 2, -3, 2, 2, 17, -2, - -1, -3, 3, 11, 1, 10, 2, 7, 6, 5, -5, -3, -3, -2, 7, 2, - 1, -18, -5, -2, -3, -5, 0, -2, 0, 8, -9, -10, -15, -7, -2, -1, - 6, -8, 16, -10, 13, -4, 2, -4, 4, 7, 9, 6, -5, -2, 8, -1, - 11, -6, -1, 5, 8, 0, 9, -20, 0, -9, 4, -3, 1, -4, -11, 2, - -6, 0, -12, 0, 1, 5, -2, 1, -7, -4, 3, -1, -10, 3, -3, 7, - 4, 8, -9, -6, -10, 0, 0, 2, -4, 6, 9, 10, 2, 0, -1, 2, - 14, 3, 7, -7, 2, -2, -2, -6, -9, 2, -3, 6, -3, -7, -9, -10, - -2, 2, -1, -11, 2, 1, 7, -4, -7, -19, 3, -1, 6, 6, 6, 6, - 0, 6, 7, 3, -1, 3, 8, 3, 4, -10, -5, -7, 5, -4, -14, 2, - -8, 5, -2, 2, -16, -4, -11, 2, 4, -1, 2, -1, 0, 5, 4, -12, - 3, 9, 7, 13, -3, -7, 2, 6, -1, 7, -1, -1, 5, -5, 7, -11, - -9, -13, 2, 5, 2, -2, -7, 5, 4, -4, -2, -15, -4, 3, 0, 0, - -5, 2, -7, -1, 9, -2, -1, 5, 1, 1, -4, -5, -4, 6, 8, 7, - -5, 4, -7, 4, 0, 1, -6, -5, -2, 5, -1, 0, 1, 1, 3, 9, - -4, -2, -4, -9, -1, 4, -17, 1, -13, 11, -1, 6, -9, -1, 5, 1, - 8, -3, 4, -5, 1, 7, -5, 1, -3, 5, 3, 4, -7, -11, -7, 1, - 5, -13, 11, -11, 1, 3, 6, -9, 6, -5, -7, 4, -13, 5, -7, 10, - 5, 6, -15, -1, 6, 4, 18, -7, -7, -3, -4, 2, -5, 3, -4, 9, - -4, 3, 3, -3, -10, 0, -1, 2, 5, -3, 7, 3, 2, -6, -11, -2, - -1, 4, -5, 4, -5, 0, -5, 5, -5, -4, 2, 4, 2, 5, -8, -13, - -3, 0, -1, -2, 4, 6, 9, 1, 3, -7, -1, 1, 12, 1, 1, -1, - -5, -1, 2, -8, -9, -7, -2, 3, 10, -6, -7, -12, -7, -4, -5, 6, - 0, 10, 5, 7, -4, -2, -8, 10, 5, 9, 4, -1, -1, -1, -1, -1, - -2, -3, 3, 9, -2, 9, -14, -13, -8, -10, 1, 1, 3, 3, 1, -3, - -12, -5, -7, 1, 6, 6, -2, -7, -3, -3, 2, 2, 4, -9, 14, 8, - 11, -3, 5, -11, 1, -1, 5, 3, 8, 2, 8, -2, -6, -13, -10, 0, - 4, 3, 4, -3, -9, 1, -5, -5, -6, 1, -2, 2, -10, -6, -15, 1, - -5, 4, -1, 2, 2, 4, 10, 4, 2, -13, 0, 4, 8, 17, 2, 5, - 4, 2, -6, 5, -5, 0, 8, -2, -1, -5, -4, -5, -1, -5, -4, -5, - 0, 0, 1, -9, -15, -3, -12, 1, -1, -7, 10, 2, 5, -1, 2, -6, - 2, 2, 10, 10, -1, 2, -2, 4, 5, 0, -6, 12, 5, 3, -1, -8, - -8, -4, -4, 3, -11, 0, -1, -1, 0, -2, -14, -6, -9, 2, 1, 7, - -4, 3, -1, 0, -3, 1, 2, 7, 5, 4, 3, -2, -3, 1, 6, -1, - 6, -11, 7, 2, -6, 2, -4, 0, 2, 3, -7, -9, 3, 0, 4, -6, - 0, -21, 0, -5, -1, 0, -1, 1, -6, -1, -1, 0, -7, 5, 7, -2, - 8, -4, -1, 3, 9, -6, 10, -6, 7, 9, 10, 9, -6, 5, -14, 6, - -5, 1, 2, -3, 0, -9, -10, -14, -2, -3, 6, -8, -15, 3, -9, 0, - -3, 0, -6, -1, 3, 9, 10, 3, 3, -10, 6, 1, 3, -1, 9, 12, - 4, 4, -9, -7, -5, 8, 6, 1, 1, -4, -5, -5, -1, -11, -3, -4, - 1, -1, 1, -10, -7, -2, -3, -4, -3, -6, 11, 5, 3, 2, -8, -5, - -2, 3, 9, 13, 5, 4, 4, 0, -5, -1, -5, 9, 2, 3, -9, -4, - 3, -6, 2, 1, -9, 5, -2, 3, -2, -9, -8, -15, -5, -3, 3, -13, - 11, 6, -3, 1, -6, -6, -1, 6, 4, 6, 7, 1, 5, 0, 8, -6, - 7, 2, 6, 2, -5, 0, -3, -1, 3, -7, -1, -3, 5, 7, 6, -18, - -10, -11, -7, -3, 10, -4, 3, -4, -8, -5, -12, -3, -4, 12, 10, 2, - -4, 6, 3, 1, 2, 0, -3, 3, 7, 7, -5, 2, -4, 1, 3, 11, - 2, 3, 4, -2, -7, -5, -17, -11, 4, -3, 5, -7, -7, -6, -1, -8, - -5, -5, 1, 7, 1, 2, -1, -9, 7, 1, 7, 3, 3, 6, 9, 6, - 1, -6, -4, 2, 5, 7, 4, -2, 1, 3, -11, -1, -16, -2, -6, 1, - 3, -8, -15, -11, 4, -1, 9, -2, -5, 0, 6, 0, -7, 0, -8, 4, - 2, 6, 2, 0, 2, 6, 2, -2, 4, -2, 4, 14, 2, 2, -6, -6, - -3, 4, -4, -1, -4, 1, -3, -6, -1, -13, -1, -2, 7, -8, -7, -10, - 0, 4, 3, -8, -3, 1, 4, 6, 4, 6, -3, 5, 3, 4, 0, 6, - 1, 4, 7, -3, -10, 8, -1, 9, -1, 1, -11, -7, -3, -3, -6, -8, - -9, -6, 1, -3, -6, -6, -5, 0, 0, 2, -3, 0, 6, 4, 3, 2, - 7, 4, 11, 14, 5, -1, -5, 1, -2, 7, 3, 0, 1, 2, -5, -7, - -10, -12, -10, -5, -5, -6, -6, -9, 1, -8, -2, -1, -9, 1, 8, 2, - -5, -2, -5, 0, 5, 6, 6, 7, 8, 10, 2, 0, -3, -1, 2, 13, - 3, 0, -6, 0, 1, -3, 0, -12, -2, 4, -4, 4, -8, -11, -1, -2, - 1, -1, 2, -12, 3, -6, 1, -12, -7, -7, 3, 0, 9, 0, 1, 6, - 1, -1, 2, 1, 2, 8, 9, -3, -1, 0, 7, 3, 8, -1, -4, -1, - 1, 3, -9, -1, -17, -3, -2, -4, -4, -3, -4, -6, -11, -15, -2, -5, - 6, 10, 1, 3, -1, -3, 13, 7, 1, 6, 4, 4, 9, 5, -3, -5, - 9, 3, 5, -3, 1, -3, 3, 0, -7, -5, -7, 0, -5, 0, -1, -15, - -11, -4, -5, -10, 2, -7, 5, -4, 1, -9, 2, 1, 8, 7, 10, 2, - 2, 0, 4, 3, -2, 0, 4, 2, 6, 8, -2, 4, 4, -2, 5, -3, - -6, 3, -3, -5, -9, -8, -11, -5, -1, -1, -5, -7, -5, -8, 0, -3, - 5, -7, 11, 1, 0, 2, -3, -1, 3, 9, 6, -3, 8, 1, 11, 2, - 8, -3, -3, 6, 2, 1, 2, -7, -3, -2, -4, -8, -3, -3, 5, -10, - -10, -4, -12, -2, 3, -5, 3, -6, -8, -2, 5, -3, 0, 1, 4, 8, - 4, 5, 0, 4, 8, 1, 7, -3, 0, 3, 4, 4, -5, -2, -7, -3, - 0, 5, -5, -9, 3, -2, -1, -2, -5, -1, -4, -3, -11, -4, -5, -6, - 0, 5, 0, -5, 5, 3, 8, -1, 3, 3, 2, 5, 7, -4, 3, 1, - 3, 10, 2, -7, 1, 0, 6, -4, -3, -5, -7, -2, -4, -3, -6, 0, - -10, 4, -6, -4, -7, -2, 1, -4, -1, -3, -1, 2, 6, 2, 4, -2, - 2, 4, 2, 5, -3, 4, 2, 1, 0, 8, -3, 2, 5, -5, 3, -5, - -2, 5, -5, 3, -1, -4, -3, 4, -10, -5, -7, -4, -4, 0, 0, -7, - -1, -1, 2, 1, -2, -12, -4, -1, 0, 4, -5, 2, 0, 3, 12, 11, - 3, 11, -1, -3, 6, -6, 1, 1, 7, 6, -7, -1, -7, -4, -4, -7, - -8, -1, -6, -6, -2, -3, -5, 0, -4, 8, -7, 1, 4, -3, 6, 1, - -7, 3, 5, 6, 5, 13, 2, 2, -4, 4, -3, 1, 4, -4, 2, -3, - -10, -10, -7, -2, -2, -2, 0, -6, -2, 1, -3, -4, -2, -5, -2, 7, - 1, 6, -5, 6, -1, -1, 2, -3, 4, 11, 2, -1, 2, -7, -5, 8, - 0, 3, -3, -5, -1, -2, 3, 1, -4, 4, 7, 0, 2, 3, -3, 0, - 1, -5, -15, -5, -3, 1, 3, -3, -11, -4, -7, 1, -2, -1, -1, 0, - 1, 1, -5, -1, 3, -2, 7, 1, -4, -1, 0, 4, 5, 3, 3, -1, - 8, 11, 1, 4, 1, -5, 7, -6, -4, -2, -4, -2, 3, -8, -3, -13, - -6, 3, -3, -7, -4, -7, 3, 3, -3, 2, -1, 1, -4, -2, -2, -5, - 1, 11, 9, -2, 6, -3, 7, 7, 1, 1, -7, 2, -3, 1, 4, -4, - -4, 5, 1, 0, -3, -6, 2, -3, 0, -8, -12, -6, -2, -3, 6, -1, - -9, 0, -1, 1, 3, -2, -1, 0, 1, 6, 0, -3, 5, 1, 6, 1, - -1, 4, 1, 7, -3, -1, -1, -4, 4, 14, -1, -1, 2, -4, -1, -6, - -8, -8, -3, -2, 2, -9, -5, -7, -12, 5, 0, -3, -4, -3, 5, 4, - 3, -2, -6, 4, 7, 3, 5, 7, -3, 8, 0, -5, -1, -1, 11, 10, - 3, 4, -8, -3, -3, 1, -3, 0, -4, -3, 1, -7, -8, -16, -7, -6, - -2, 3, -7, -2, 1, -4, 0, -5, -5, 1, 5, 10, 5, 0, 3, 0, - 1, 13, 0, 5, 9, 6, 8, -1, -4, 0, -3, 6, 4, -4, 0, -3, - -15, -2, -12, -15, -3, -6, 2, 1, -3, -4, -9, -9, -3, -3, -2, 3, - 4, 9, 0, 2, 1, 2, 14, 5, 3, 8, 2, 7, 4, -4, -4, -1, - -9, 9, -5, -1, -7, -10, -2, -7, -4, 0, -5, 2, 5, 1, 0, -5, - -5, -1, -1, -3, 4, -8, 5, 3, -4, 4, -5, -3, 9, 4, 8, 0, - 0, 2, 0, -2, 0, -2, -7, 12, -1, 5, -4, 2, -3, 0, 2, -2, - -4, -2, 2, -5, 3, -7, -9, -4, -3, -2, -6, -6, -2, -6, -1, -7, - -8, 1, 3, 6, 10, 4, 5, 0, 5, 8, 1, 3, 8, 5, 11, 12, - -7, 4, 0, -3, 2, -1, -8, -7, -4, -2, -6, -9, -6, -13, -4, -1, - 0, -9, -5, -3, -4, -2, 3, 1, 1, 9, 4, 2, 6, -1, 3, 6, - 2, 0, -3, 3, 2, 6, 3, -1, -4, 4, 1, 2, 2, -5, -8, -1, - -3, -1, -9, -4, 1, -5, 5, -7, -4, 0, 3, -10, 3, -3, -5, 1, - 5, 4, 1, -5, 1, -5, 4, 1, -6, 0, 5, 8, 8, 1, 6, 0, - 3, 4, 2, -3, 1, -3, -3, 3, -10, -6, -8, -2, -1, -3, -6, -6, - -5, -6, -6, -5, 5, -3, 5, 6, -2, -1, -1, -4, 6, -2, 6, 6, - 2, 12, 8, -2, 3, -6, -2, 5, 4, -3, -2, -5, -4, -7, -6, 1, - -5, 2, 2, 0, 1, -7, 0, -4, -2, -1, -2, -5, 7, -5, -2, -3, - -2, -3, 4, 4, 9, 0, 1, 1, -5, -3, -4, -4, 4, 3, 6, 1, - -2, -2, -7, 4, 1, 1, -3, 3, -1, 2, 0, -7, 0, 0, -1, -3, - -2, -1, -5, -2, -3, -8, -5, -5, -1, 5, 5, 2, 2, -3, 4, 3, - 4, 6, 3, -1, 10, -4, -3, -2, -3, 0, -4, 0, -2, -2, 0, 2, - -5, -2, -5, -9, 8, -2, -1, -1, -3, -3, -2, -6, 2, 1, 2, 9, - 0, 1, 4, -5, 2, 4, -6, -1, 2, -1, 6, 3, 0, -5, -3, -1, - 0, 3, -3, 0, -6, -2, -3, -4, -2, 0, 3, 2, 2, 0, -10, 1, - -6, -5, -1, -2, 5, 3, 6, -2, -6, -1, -3, 2, 4, 1, -1, 0, - 1, 1, 3, -1, 5, -1, 7, 6, 1, -2, 0, -6, -2, -2, -8, -2, - -2, -3, -5, -5, -8, -3, -1, 5, -3, 1, 2, 1, 2, -3, -2, -3, - 2, 6, 2, 6, 0, 0, -2, 9, -1, 3, -2, 3, 0, 0, 0, -6, - -6, -1, -5, -7, 1, -3, -6, 2, -2, -1, -5, -2, 1, 4, 2, 2, - -3, -1, 6, -2, 2, 4, -3, 2, 2, 2, -3, 1, 0, -4, 2, -1, - -2, 3, 1, 1, -1, -5, -8, -2, -5, 0, 1, -6, 3, -4, 2, 3, - -6, 3, 0, 2, -2, -1, -4, -2, -4, 4, 0, -3, 0, -6, -3, 10, - -3, 3, 0, 4, 7, 3, 0, 5, 1, 5, 1, -3, -2, 0, -6, 3, - -1, -7, -5, -7, -1, -2, -2, -2, -3, -2, 2, -2, -1, -3, -3, 2, - -2, -6, -3, -3, 4, 3, 2, 0, -1, 5, 5, 8, 2, 2, -2, 4, - 0, 5, -5, -3, -1, -3, -3, -6, -4, -2, 3, 0, -2, -2, -5, 5, - -1, 3, -1, -1, -3, 0, 0, -5, -4, -3, -2, 5, 0, -4, -4, 1, - 2, 6, 0, -3, -1, 2, 3, 7, -3, 0, -4, -2, 4, 3, 0, 1, - 3, -3, 1, -7, -4, 0, 1, 1, -4, -4, -4, -9, -1, -2, -3, -2, - -3, -3, 4, 3, -1, -4, 2, 4, 4, 3, 2, -1, 0, 9, -1, 4, - 2, 7, -1, 6, -2, -2, -5, -1, -9, -2, -2, -6, -1, -1, 1, -8, - -6, -5, -1, -1, 1, -4, -5, 3, 1, 5, 3, -3, 0, -2, 7, 0, - 1, -2, 3, -1, 5, -1, -5, 7, -1, 3, 2, -5, -6, -2, 4, 2, - -1, -3, -1, -1, -1, -1, -2, -4, 1, -5, 3, -1, -3, -5, 2, 6, - -6, -1, -5, -4, 4, -1, -1, -2, -1, 2, 0, 3, 1, 4, 2, 7, - -1, 2, 0, -2, 1, 4, -5, -3, -7, -2, 0, -1, -1, -3, 0, 0, - -2, -6, 2, -4, 2, -4, 1, -7, -2, -1, 5, 3, -2, -7, -4, 1, - 6, 4, 5, 1, 4, 0, 5, 1, -1, 2, 0, -3, -3, -5, -6, 3, - -1, 5, -1, -2, 1, 1, 4, 2, -6, -3, -4, -3, 2, -2, -8, -3, - -6, -4, -2, -11, 0, 0, 1, 6, -3, -2, 1, 2, 10, 8, 4, -2, - -1, 2, 2, 1, -2, 3, 1, 5, 3, -1, 0, -4, 4, -7, -2, -7, - -8, -4, -3, -2, -7, -7, -3, -1, 5, -2, 0, -7, 2, -1, 3, 1, - 4, 6, 5, 8, 3, 2, -1, 3, -3, 0, 0, -5, -1, 1, 1, -5, - -3, -2, 6, 4, 5, -4, -8, -4, -3, -2, -5, -4, -4, -4, 2, -3, - -2, -4, -4, -4, 6, 1, 0, 1, 3, 3, 5, 2, 1, 0, 6, 2, - -1, 1, -3, -3, 2, -1, 0, 1, 3, 1, 4, -4, -5, -10, -8, 1, - -6, -3, -4, -6, -3, 0, 2, -3, -1, 2, 0, 8, 1, 4, 4, 3, - 6, 3, 1, 3, 5, 1, 2, -4, -7, -3, -3, 3, 0, -7, -5, 0, - -3, -1, -2, -4, 0, -5, 1, -6, -1, -5, -3, 1, 4, -1, -3, 3, - 3, 5, -1, -2, 2, -1, 2, 1, -1, -5, 5, 1, 2, 2, -4, 0, - -1, 3, 0, -2, -1, 2, 1, 5, 4, -3, -5, 0, -2, -2, -6, -3, - -3, -4, -1, -5, -4, -1, -2, 0, 2, -2, -6, -3, 1, 1, 1, -1, - 3, 4, 7, 2, 3, 4, -1, 7, 2, 3, 1, -1, 1, -2, 0, -4, - -5, -6, 0, -2, -7, -2, -5, -5, 1, -4, -5, -5, 3, -1, 1, 2, - -2, 0, 1, 4, 1, -4, 2, 2, 0, 9, 2, 0, 4, 3, 1, 2, - -4, -2, -4, 3, -4, -2, -6, 0, -1, 5, 2, -4, 0, -4, -4, -1, - -5, -4, -7, -3, 1, 0, -2, -1, -5, 1, 0, -1, 0, 2, 4, 0, - 3, -2, 1, 2, 6, 0, 1, 5, 0, 3, 3, 2, -5, -2, 1, 5, - 2, -2, -5, -9, 0, -6, -1, -6, -7, -5, -4, 0, -2, -5, -3, 2, - -2, 3, 2, 0, 9, 2, 0, 4, -3, 4, 5, 8, 6, -2, -4, -1, - 0, -2, -2, 1, -5, 2, -5, -1, -4, -3, -4, 0, -2, -7, -3, -1, - 0, -1, 0, -6, 3, -2, 5, 2, -1, -2, 1, 0, 1, -1, -3, 2, - 3, 1, 2, -4, -3, -1, 5, 5, 3, -4, 0, 1, 2, 5, -5, 1, - -5, 2, -2, 2, -4, -3, 0, -4, -3, -9, -7, -4, 2, -2, 1, -6, - -3, 0, 1, 5, 1, -5, 0, 0, 2, 1, 2, 0, 6, 4, 6, 3, - 2, 3, 1, -2, -2, -9, -4, -1, 4, 0, -1, -5, -8, -5, -4, 0, - -4, -1, -3, 0, 0, -4, -3, -1, 1, 2, 0, -2, -3, 1, 3, 2, - 3, 3, 0, 8, 2, 7, -1, 3, -2, 4, 0, 0, 1, -4, 5, -1, - -3, -3, -6, -4, 2, 1, -5, -4, -7, -4, -4, -7, -2, -10, 1, 0, - 1, -3, 4, -2, 5, 2, 1, -3, -1, 2, 8, 4, 5, 0, 1, 4, - 5, 2, 2, -2, 1, -4, 0, -3, -3, -1, 0, 2, -4, -4, -5, -1, - -7, 0, -4, -5, -1, -3, 2, -2, 0, 3, 0, 2, 0, 1, -2, 2, - 4, -1, 0, -3, -1, 1, 3, 2, -3, 2, 0, 2, 2, -1, 2, -2, - -3, 0, 0, -2, 2, -2, 4, -3, -6, -7, -6, 2, -1, -4, -1, -7, - -1, -3, 3, -1, 0, -2, 2, 2, -3, 3, -4, 5, 7, 6, 3, 1, - -1, 6, 2, 1, 0, -1, -1, 1, -3, 1, -3, -5, -5, -3, -8, -3, - -11, -1, -1, 0, -8, -2, -5, 3, 4, 0, 1, -2, 2, 0, 6, 4, - 1, 4, 1, 5, 0, 0, 1, 2, 5, 0, 1, -10, 0, -5, 2, 0, - -6, -6, -2, -2, 2, -3, 0, -4, 2, -4, 1, -3, -4, 1, -2, 2, - 1, -2, 0, 3, 2, -3, -1, -5, -3, 4, 2, 3, -1, 4, 1, 5, - -1, 2, -3, 2, -3, 0, -3, -2, 1, 1, 5, 1, -2, -5, 1, -1, - -4, -3, -7, 0, -5, -4, -4, 0, -4, 4, 0, -1, 1, -8, 1, 0, - 9, 1, 2, -2, 5, 5, 1, 6, -1, 6, 3, 1, 1, -2, -2, -4, - -3, -2, -3, -7, -4, -4, -1, -3, -8, -1, -8, 4, -5, 0, -3, 1, - 0, 4, -1, 0, 1, 3, 3, 4, -4, 6, -2, 2, 5, 4, -3, 4, - -3, 5, 0, -4, 0, 0, -1, 0, -4, -4, 3, -1, -2, -4, -8, -9, - -5, -4, 4, -4, 1, -4, 1, 1, -1, -1, -1, 3, 2, 3, 0, 1, - 2, 1, 5, 3, 1, 0, 5, 3, 3, 0, -5, -4, -2, 5, 0, -2, - -5, -2, -6, -2, -5, -8, -2, 1, -1, -3, -7, -8, -6, 0, 4, 7, - -2, 7, -1, 7, 3, 2, -5, 0, 2, 0, 1, -3, 2, 2, 3, 3, - -3, 0, -2, 3, -1, -1, -4, -6, -2, -3, 4, -4, 0, -4, 6, -2, - -6, -2, -7, 1, 2, -1, -3, -2, -2, 3, -1, 0, -3, -1, 4, 7, - 4, 0, 2, -1, 0, 6, -2, 1, 1, 5, 4, 1, -3, -3, -2, 2, - 2, 1, -6, -6, -3, -4, -2, -6, -5, -4, -5, -2, -8, -8, -3, 0, - 4, 0, 1, -1, 2, 5, 4, 2, 2, 3, 3, 4, 10, 0, 2, 0, - 3, 1, 1, 0, -3, 1, -3, 1, -7, 0, 1, -2, 1, -6, -4, -10, - -1, -4, -2, -2, -3, 2, -4, 1, -5, -4, -4, 2, 1, 1, -4, -1, - 3, 1, 6, 2, -2, -2, 3, 3, 2, 7, -5, 5, 0, 8, 1, -1, - 2, 3, -1, -6, 0, -10, 3, -1, -1, -5, -6, -8, -2, 0, -3, -5, - -8, -4, 2, -3, -1, -2, 0, -1, 7, -1, 3, 2, 4, 7, 3, 4, - -1, 5, 1, 9, 1, -2, -1, -1, 1, -3, -2, -6, -7, 1, -3, -1, - -9, -4, -6, 0, 2, -3, -2, -4, -3, 0, -4, -1, -4, 0, 1, 6, - -1, 1, -1, 3, 5, -1, 3, 4, 5, 7, 4, -2, 0, -2, 0, 3, - 1, -1, -8, -2, -1, -2, -5, -1, -2, -2, 2, -5, -7, -9, -2, -3, - -2, 1, -5, 4, -4, 5, -1, -1, -3, 2, 3, 7, 3, -1, 3, 4, - -1, 5, -4, 0, 4, 4, 3, 4, -9, 1, -5, 2, -2, -2, -3, -7, - -1, -2, -2, -5, -3, -1, 1, -2, -1, -4, -4, 1, -1, -7, 0, -1, - 2, 5, 4, -4, -5, -4, 0, 2, 1, -1, 3, 5, 4, 0, 0, -1, - 3, 8, 3, 3, -4, 0, 1, 0, -2, -6, -2, -4, 3, -2, -3, -5, - -6, -3, -1, -1, -7, 0, 0, 3, -5, -4, -11, 0, 0, 3, 3, 1, - 1, 1, 4, 6, 1, 1, 2, 9, 3, 3, -4, -4, -3, 2, -1, -6, - 1, -5, 2, 0, -1, -8, -5, -6, 1, 0, -2, -1, -2, -1, 2, 0, - -9, 0, 5, 4, 7, -3, -3, 3, 4, 2, 4, 0, -1, 3, 1, 5, - -5, -6, -7, 0, 3, 0, -2, -4, 3, 3, -3, -4, -7, -2, 4, 1, - -1, -4, -1, -6, -2, 3, -2, -3, 1, 4, 1, -1, -4, -3, 3, 4, - 5, -2, 2, -3, 4, 0, 3, -3, -3, 0, 3, 1, -2, -1, -3, 2, - 4, -2, -2, -3, -1, -1, 3, -11, -2, -8, 5, -1, 3, -5, -2, 2, - -1, 3, -3, 0, -1, -1, 5, -2, 0, -2, 3, 2, 3, -2, -6, -3, - 2, 4, -6, 5, -6, 1, 2, 3, -6, 2, -3, -4, 3, -9, 2, -6, - 3, 4, 2, -9, -1, 1, 2, 8, -3, -4, -1, -2, 2, -2, 2, -3, - 3, -1, 1, 2, -1, -6, 1, 2, 2, 1, -2, 2, 3, 1, -3, -6, - -3, 0, 1, -3, 0, -3, -1, -4, 2, -4, -3, -1, 4, 0, 5, -6, - -7, -1, 0, 0, -3, -1, 2, 4, 0, 3, -4, -1, 1, 7, 4, 2, - -1, -4, 0, 2, -4, -5, -5, -1, 1, 4, -5, -4, -6, -3, -2, -3, - 2, -2, 5, 2, 3, -4, -2, -5, 6, 3, 4, 2, -3, 1, 0, 0, - 1, -3, -1, 1, 7, 0, 6, -6, -7, -2, -7, 0, -1, 0, 2, 1, - -2, -7, -2, -5, 0, 2, 0, -3, -5, -1, -3, 0, -1, 0, -6, 8, - 4, 5, -1, 1, -4, 1, 1, 4, 2, 5, 3, 6, 0, -2, -9, -4, - -1, 0, 0, 1, -1, -4, -1, -5, -5, -5, 0, 0, 1, -6, -5, -9, - 0, -3, 0, -2, 0, 0, 3, 4, 2, 1, -7, 1, 3, 4, 9, 1, - 4, 4, 2, -4, 2, -2, 1, 5, -2, 0, -3, -4, -3, -2, -4, -4, - -4, 1, -1, 2, -6, -8, -3, -8, -1, -2, -4, 5, 2, 3, -1, 0, - -4, 2, -1, 5, 5, -1, 3, 0, 3, 3, 0, -4, 9, 4, 2, -1, - -6, -4, -2, -2, 2, -7, 0, 0, -2, -2, -2, -10, -4, -7, 0, -2, - 2, -2, 2, 1, 0, -3, 0, 1, 6, 3, 2, 0, 0, -1, 2, 3, - -1, 4, -5, 6, 2, -3, 0, -3, 0, 1, 0, -5, -6, 1, 0, 1, - -5, -2, -14, 0, -4, -1, -1, -1, 1, -3, 0, -2, -1, -4, 4, 5, - -1, 5, -1, 3, 3, 5, -3, 5, -3, 5, 5, 6, 4, -6, 2, -9, - 4, -4, 0, 1, -2, -1, -8, -6, -11, -2, -3, 3, -6, -8, 3, -5, - 1, -3, 1, -3, 1, 3, 5, 6, 2, 1, -6, 4, -1, 1, 0, 7, - 7, 2, 3, -6, -4, -4, 3, 3, 0, 1, -1, -2, -4, 0, -8, -2, - -3, 1, -2, 1, -5, -2, -1, -3, -3, -4, -3, 7, 4, 1, -1, -6, - -5, -3, 2, 5, 8, 3, 3, 2, 1, -4, -1, -2, 6, 3, 2, -4, - -1, 1, -5, -1, -1, -5, 2, -2, 1, -2, -7, -5, -11, -4, -3, 3, - -8, 8, 4, -2, -2, -4, -4, -1, 4, 3, 5, 5, 2, 4, -1, 6, - -3, 6, 2, 3, 0, -4, 0, -2, -2, 0, -5, -2, -1, 4, 3, 1, - -13, -8, -8, -5, -3, 7, -2, 3, -2, -5, -3, -8, -2, -3, 8, 6, - 1, -2, 5, 3, 1, 2, 0, -1, 2, 4, 3, -5, 1, -3, 0, 1, - 7, 1, 2, 3, -1, -4, -4, -10, -7, 3, 0, 2, -5, -5, -4, -1, - -7, -3, -3, 1, 3, 0, 0, -1, -6, 6, 1, 4, 1, 2, 5, 6, - 4, -1, -4, -3, 1, 2, 5, 2, -1, 1, 3, -8, -1, -10, -2, -5, - 0, -1, -6, -10, -7, 2, -2, 6, -1, -2, 1, 4, -1, -5, -1, -5, - 4, 1, 4, 2, 1, 3, 4, 0, -2, 1, -1, 3, 8, 2, 1, -4, - -3, -3, 3, -3, -1, -4, 0, -4, -6, -2, -8, 1, -2, 5, -6, -5, - -6, 0, 3, 1, -6, -3, 1, 2, 4, 2, 4, -2, 3, 3, 3, 1, - 5, 1, 2, 3, -2, -6, 6, -1, 6, -2, 1, -7, -5, -2, -3, -6, - -6, -6, -4, 0, -2, -4, -4, -3, 0, -1, 1, -3, -1, 3, 1, 1, - 0, 6, 4, 8, 10, 5, 0, -3, 1, -2, 5, 2, 1, 1, 1, -4, - -6, -8, -8, -8, -5, -4, -5, -4, -5, 0, -5, -3, 0, -7, 0, 4, - 1, -4, -1, -4, -2, 4, 4, 5, 6, 6, 7, 0, 0, -1, 0, 2, - 9, 2, 1, -3, 0, 1, -3, 1, -9, -1, 3, -4, 3, -6, -7, -2, - -1, -1, -1, 1, -9, 2, -5, 1, -8, -6, -6, 1, -1, 6, 0, 2, - 5, 2, 0, 2, 1, 2, 6, 5, -2, -1, 0, 4, 1, 6, 0, -2, - 1, 0, 3, -7, -1, -13, -4, -3, -3, -3, -2, -3, -5, -9, -11, -2, - -3, 4, 7, -1, 2, 0, -2, 8, 5, 1, 4, 3, 2, 7, 3, -2, - -4, 7, 2, 3, -2, 1, -1, 2, 0, -5, -4, -4, 0, -4, 0, -1, - -10, -9, -3, -5, -8, 1, -5, 3, -3, 0, -7, 1, 0, 5, 4, 7, - 1, 1, 0, 2, 2, -2, -1, 2, 1, 4, 6, -1, 4, 3, -1, 4, - -2, -3, 3, -1, -2, -6, -6, -7, -3, -1, 0, -4, -6, -5, -6, 0, - -3, 3, -5, 7, 0, -1, 1, -3, -1, 1, 6, 3, -3, 7, 1, 10, - 1, 6, -1, -2, 5, 2, 1, 1, -4, -2, 0, -3, -7, -2, -4, 4, - -8, -8, -4, -10, -2, 2, -4, 1, -5, -7, -1, 3, -1, 1, 1, 4, - 6, 2, 2, 0, 4, 7, 0, 5, -2, 0, 3, 3, 3, -3, -1, -5, - -2, 0, 3, -4, -6, 2, -1, 0, -2, -4, 0, -4, -3, -9, -3, -4, - -4, 0, 3, -1, -4, 3, 1, 5, -2, 1, 2, 2, 4, 5, -3, 2, - 1, 3, 7, 1, -5, 1, 0, 5, -3, -2, -3, -4, 0, -3, -2, -5, - 0, -8, 3, -6, -4, -6, -2, 2, -4, -2, -3, -2, 1, 4, 2, 3, - -2, 2, 4, 1, 4, -2, 3, 2, 1, 1, 7, -1, 2, 4, -4, 2, - -4, -2, 5, -4, 3, -1, -3, -2, 3, -8, -4, -6, -3, -3, -1, 0, - -6, -1, 0, 1, 1, -2, -10, -3, -1, 0, 2, -5, 1, 1, 2, 10, - 8, 2, 8, -1, -2, 4, -5, 2, 2, 7, 6, -6, -1, -5, -4, -3, - -6, -7, 0, -5, -5, -1, -2, -5, 0, -4, 6, -6, 0, 3, -3, 4, - 0, -6, 2, 5, 5, 4, 10, 0, 2, -3, 3, -2, 0, 3, -3, 2, - -3, -8, -8, -5, -1, -1, -1, 0, -5, -2, 0, -3, -4, -1, -5, -2, - 5, 0, 5, -4, 4, -1, -1, 1, -3, 3, 9, 2, -1, 1, -6, -3, - 7, 1, 3, -2, -4, 0, -1, 3, 1, -3, 4, 6, 0, 1, 2, -3, - 0, 0, -5, -13, -4, -2, 1, 2, -3, -10, -4, -7, 1, -2, -2, -1, - 0, 1, 1, -4, -1, 2, -2, 7, 1, -3, 0, 0, 4, 5, 2, 2, - -1, 6, 9, 1, 3, 1, -5, 5, -6, -5, -2, -4, -2, 2, -7, -4, - -11, -5, 3, -3, -6, -4, -6, 3, 3, -3, 2, 0, 1, -3, -1, -2, - -4, 1, 10, 8, -2, 4, -3, 6, 6, 1, 0, -7, 2, -2, 1, 3, - -4, -4, 4, 1, 0, -2, -5, 2, -2, 0, -7, -11, -5, -2, -2, 5, - -1, -8, -1, -1, 1, 2, -2, -1, 1, 1, 5, 0, -3, 5, 1, 6, - 1, -1, 3, 1, 6, -3, -1, -1, -3, 4, 12, -1, -1, 2, -4, -1, - -6, -8, -7, -3, -2, 1, -9, -5, -6, -10, 5, 1, -2, -3, -2, 5, - 4, 3, -1, -5, 4, 6, 3, 4, 6, -2, 7, 0, -4, -1, -1, 9, - 8, 2, 2, -8, -3, -3, 0, -2, 0, -4, -2, 0, -6, -7, -14, -6, - -5, -1, 3, -6, -2, 1, -3, 0, -4, -5, 1, 5, 9, 4, 0, 3, - 0, 1, 12, 0, 4, 8, 5, 7, -1, -4, 0, -3, 5, 4, -4, 0, - -3, -13, -2, -10, -14, -3, -5, 2, 1, -3, -4, -8, -8, -3, -2, -2, - 3, 4, 8, 0, 2, 1, 2, 12, 5, 3, 8, 2, 6, 3, -4, -4, - -2, -8, 8, -5, -2, -6, -10, -2, -6, -4, 0, -4, 2, 5, 1, 0, - -4, -4, -1, -1, -3, 4, -7, 4, 3, -3, 4, -4, -3, 8, 4, 7, - 0, 0, 2, -1, -2, -1, -2, -7, 11, -1, 5, -4, 2, -2, 0, 2, - -2, -4, -2, 1, -5, 3, -6, -9, -3, -3, -2, -5, -5, -2, -6, -2, - -7, -8, 1, 3, 5, 9, 4, 4, 0, 5, 8, 1, 3, 7, 5, 10, - 11, -7, 3, 0, -3, 1, -1, -7, -7, -3, -2, -6, -9, -6, -12, -4, - -1, 0, -8, -5, -3, -3, -2, 3, 1, 1, 9, 4, 2, 5, -1, 2, - 6, 2, 0, -3, 2, 2, 5, 2, -1, -4, 4, 1, 1, 2, -5, -8, - -1, -3, -1, -9, -4, 1, -4, 5, -6, -4, 0, 3, -9, 3, -3, -5, - 1, 4, 4, 1, -4, 1, -4, 4, 1, -6, 0, 5, 7, 8, 1, 6, - 0, 3, 4, 2, -3, 1, -3, -3, 3, -9, -6, -7, -2, -1, -3, -5, - -6, -5, -5, -6, -5, 4, -3, 5, 5, -2, -1, -1, -3, 6, -2, 5, - 6, 2, 11, 8, -1, 3, -6, -2, 5, 4, -3, -3, -5, -3, -7, -5, - 0, -5, 2, 1, 0, 1, -7, 0, -3, -2, -1, -2, -5, 7, -4, -2, - -3, -2, -3, 4, 4, 9, 0, 1, 1, -5, -3, -4, -4, 4, 3, 6, - 0, -2, -2, -6, 4, 1, 1, -3, 3, -1, 2, 0, -7, 0, 0, -1, - -3, -2, -1, -5, -2, -3, -8, -5, -5, -1, 5, 5, 2, 2, -3, 4, - 3, 3, 6, 3, -1, 10, -4, -3, -2, -3, 0, -4, 0, -2, -2, 0, - 1, -4, -2, -5, -9, 8, -2, -1, -1, -3, -3, -2, -6, 2, 1, 2, - 9, 0, 1, 3, -4, 2, 4, -6, -1, 2, -1, 6, 3, 0, -5, -3, - -1, 0, 3, -3, 0, -6, -2, -3, -4, -2, 0, 3, 2, 2, 0, -10, - 1, -6, -5, -1, -2, 5, 3, 6, -2, -6, -1, -3, 2, -1, 0, 0, - -1, 0, 0, 0, 1, -2, 2, -2, -5, -1, -2, 16, 12, -18, -10, 3, - -14, -10, 16, -1, -3, -16, 28, 3, -1, -1, 12, -5, -6, 6, 7, -7, - -18, -28, 11, 0, 6, -2, 26, -21, -10, -1, 24, -3, 20, -19, 15, -14, - -3, -3, 15, -35, -2, 6, -14, 30, 6, -36, -8, 17, 0, -27, 26, 16, - -38, 8, -14, 57, 3, -31, -14, 34, -20, 33, 2, -6, -7, -28, 20, -24, - 8, 13, 8, -39, 17, 40, -42, -11, 13, -46, 1, 28, -22, 11, -3, -14, - 5, 20, -12, -4, 49, -22, -24, 39, -11, -1, -9, 37, -30, 13, 34, 4, - -11, -25, 18, -22, 1, 29, -17, -3, -26, -16, -21, 12, -18, 7, -17, -6, - 51, 0, -21, 10, 24, -45, 8, 14, 31, -10, -37, 6, 0, 24, 3, -18, - -13, 14, 11, 0, 7, -1, -38, -29, -21, 32, -30, 22, -26, 14, -40, 55, - -36, 30, -12, 8, 31, -16, 19, -15, 23, -48, 36, 1, 63, 3, 24, 0, - -3, 14, 26, -21, 15, 47, -21, -80, 14, -4, -25, -33, 11, 25, -35, -44, - 13, -2, -48, -11, -23, -7, 27, -4, -15, -22, 5, 26, -36, 50, 23, 11, - -23, -14, 19, 32, 14, 38, -66, 56, -11, 26, 18, -12, 17, -30, -6, -54, - 22, 77, -62, -12, -16, 34, -25, 2, 14, -62, 12, 20, -22, -50, 58, -29, - -58, 4, 28, 30, 13, 25, -78, 38, 45, -19, -7, 52, -61, 27, 17, -21, - -4, 6, 37, -24, -38, 73, 8, -16, 21, -2, -15, -19, -19, 18, 3, 7, - -48, -10, -10, 10, 4, 13, -13, -4, 0, 46, -12, 6, -18, -25, 4, 14, - 27, -22, -37, 14, -6, -17, 55, 40, -111, 63, 9, -38, -16, 46, -35, 4, - 0, -10, -8, -12, 58, -69, 1, 66, -38, 21, -33, -6, 10, 0, 10, -11, - 18, -16, 32, -7, -10, -25, 65, -42, 42, -62, 18, -3, -2, -8, 21, 4, - -71, 13, 40, -3, 18, -19, -29, 15, -66, 60, -50, -6, 67, -80, 17, 66, - -21, -20, -15, 68, -16, 72, -4, -23, 4, 53, -8, 8, -4, 0, 27, -26, - -22, 25, -31, 7, -39, -18, 27, -43, -25, -33, -6, 17, -16, 0, -55, 6, - 26, -3, -67, 7, 60, -83, 25, 15, 45, -8, 51, -55, 28, 42, 42, -17, - 37, -6, 17, 8, 11, -1, 59, -7, -45, 14, -41, 107, -49, -50, -25, 63, - -58, -27, -57, 19, 13, -13, -27, 19, -42, 63, -113, -1, 44, 8, 1, -10, - -33, 0, 55, -41, 15, 0, 76, -17, -39, 60, -20, 28, 54, -93, 15, 83, - -30, 4, -56, 49, -58, 30, -28, 2, 54, -64, 83, -128, 86, 24, -40, -27, - -66, 51, 11, -51, 59, 6, 20, -58, -24, 78, -7, -23, -27, 1, -3, -24, - 10, -6, -16, 34, 39, -37, -17, 26, 52, -69, -7, 11, 24, -62, 38, -13, - 41, 5, -2, -5, -12, 15, 77, -49, -10, 74, -12, -11, -38, 32, -24, 25, - -6, 19, -24, -2, -38, 63, -91, 64, -27, -11, -56, -43, 27, -41, -55, -15, - 1, -4, 27, 8, 37, -57, 3, 28, -11, -4, 46, -39, 3, 12, 100, -33, - 39, 17, 6, 49, 5, 38, -12, 10, 21, -35, 23, -6, -36, 10, -9, 3, - -1, 13, -65, -40, 36, -25, -28, 5, -37, -20, -14, 31, -16, -32, -16, 4, - 15, -11, 26, -16, 29, -42, 46, 7, 39, -1, -5, -9, 33, -31, 35, -33, - -7, 17, 56, -24, 22, 14, -22, -34, 44, 16, 11, -46, 43, -48, -27, 43, - 36, -45, 21, 11, 0, -98, -22, 87, -126, 52, -45, 34, -28, -17, -31, 23, - -38, 23, 25, -11, 25, -63, 21, 13, 19, 47, 28, -23, 20, 21, -5, -14, - 112, -30, -67, 37, 43, -12, -57, 34, -9, -29, 52, -19, 14, -51, 0, 26, - -69, 3, -18, -24, -34, 31, -15, -33, -36, 10, -20, -38, 63, 0, 44, -50, - 72, 25, -16, -6, 6, 15, 23, 31, 3, -20, -9, 19, 63, 17, -18, -5, - -12, -87, 31, 26, -37, -29, 49, -42, -15, 14, 11, -16, -31, 46, -19, -13, - -37, 59, -91, 47, 4, -11, -26, 39, -29, -24, 48, 10, 39, -11, 45, -51, - -1, -24, 47, -19, 39, -34, -29, -17, 1, 56, -25, -16, -13, 0, 48, -71, - 49, 2, -2, -45, -10, 59, -17, -25, 9, 9, 44, 42, -32, -23, -49, 46, - -11, -50, 76, -43, -45, -1, 41, -8, 2, 71, -36, -61, 35, 21, -13, -36, - 44, -45, 26, -45, -21, 28, -37, 39, -29, 15, 4, -5, 24, -7, 7, 3, - 68, -80, 26, 24, -22, 8, 26, 28, 10, -26, -3, 16, -51, 85, -8, -14, - -54, 39, -28, -9, -25, 46, -39, -20, 34, 11, -25, -7, -12, -41, 12, -17, - -5, -43, -8, 0, 18, 13, 9, 28, -40, 34, 0, 13, 40, -20, 5, 22, - -25, -13, 51, 9, -34, 43, -16, -18, 2, 35, -4, -28, 14, -37, 6, -8, - 31, -49, 9, -31, 61, -55, 35, -46, -37, -12, 32, 74, -59, -30, -21, 5, - 38, 3, 48, -35, -42, 2, 29, 81, -8, -37, 24, 42, -31, 18, -11, -21, - -67, 98, -18, 11, -26, -14, -76, 11, 71, -70, 30, -52, 37, -45, 61, 6, - -33, -44, 58, 24, -16, -51, 49, -28, 51, -6, -15, 46, 10, -24, 36, -4, - 6, -30, 46, -66, 54, 27, -16, -34, -23, 90, -61, -49, 22, -3, -22, 17, - -35, -11, -59, 23, 2, -25, 69, -24, -26, -28, 37, 12, 11, -63, 27, 18, - 3, 34, -25, 9, -14, 29, 4, 24, 21, -77, 12, 14, 37, 1, 45, -63, - 1, 49, -14, -23, -7, -4, -42, 48, -57, 18, -36, 17, 15, -37, 47, 1, - -41, -14, 11, 49, -32, 32, -36, -19, 21, -11, 39, -31, 43, 0, -24, 15, - 6, 9, -46, 5, 21, -23, 2, -28, -15, 59, -13, -29, 50, -7, -45, -12, - 23, -1, 27, 6, -17, 7, -4, -3, -3, 53, -10, 17, -52, 19, 24, -8, - -7, 19, -51, -30, 55, -22, -22, 29, -38, -25, 39, 3, 34, -84, 26, -37, - 42, 15, 4, -4, -16, -33, 29, 17, 43, -93, 24, -6, -20, -14, 107, -29, - -36, 69, -21, 10, -7, 74, -67, 38, -23, -8, 27, -35, -49, 29, -8, -4, - 7, -8, 5, -38, -28, -33, 22, 70, -37, -10, -56, 26, 5, 7, 59, -21, - -58, 10, -2, 6, 49, -16, -9, -38, 60, 13, 43, -43, 23, -14, -9, 38, - 17, -38, -15, 29, 6, -5, -11, -3, -4, -65, 45, -13, 26, -13, -4, -5, - -38, 48, 0, 4, -40, 40, -48, 23, 21, 23, -42, 5, -17, 13, -9, 12, - -3, 5, -25, 34, -24, -3, -18, 16, -44, 13, 27, -30, 44, -54, 6, -18, - -3, 4, 21, -25, -13, 22, -20, -12, 37, -10, -10, 5, 24, -17, 23, 9, - 0, 4, 3, 12, 26, -27, 17, 9, -41, 69, -1, 15, -37, 15, -6, 0, - -1, 3, -13, -23, -18, 27, -5, 21, -16, -41, -2, 20, 13, -27, 6, -21, - 8, 6, 0, 6, -5, -21, -22, 73, -40, 4, 6, 21, -8, -5, 29, -47, - -1, 1, 19, 3, -10, -1, 2, -48, -11, 45, -27, 11, -33, -21, 21, 7, - 12, -22, 21, -40, 13, 27, -20, 37, 5, -18, -18, 35, 40, -11, 20, -25, - 10, -4, 33, 12, -29, 9, -20, -30, 34, 24, -9, -10, -24, -16, 8, 22, - 6, -58, -5, -13, 18, 5, -43, 10, -16, -25, 13, 70, -25, -7, -25, -19, - 16, 58, -46, -5, 6, -5, 40, -24, 22, 50, -73, -7, 7, 32, 39, -27, - -23, -23, 56, -35, 21, 17, -40, 40, -52, 4, 0, 49, -29, -42, 24, 9, - 31, 2, -46, 0, -9, -5, 9, -31, 64, -5, -45, -26, 42, -4, -34, -8, - -3, 32, -15, -8, 22, -24, 13, -31, -2, 31, 10, -10, -18, 8, 24, 20, - -29, 2, 14, 23, 25, -4, -19, 20, -25, -5, -3, 23, -8, 52, -42, -17, - -7, 29, -26, 2, -19, 55, -50, -28, 1, -10, -7, 7, -41, 16, 21, 1, - -20, 0, 16, -19, 14, -39, 86, -17, -34, -64, 73, 0, 20, -28, 30, -22, - 9, 58, -4, -8, -18, -20, 31, -21, 1, 26, -49, 5, 41, -25, -13, -6, - -7, 6, 10, 42, -30, -26, -43, 11, 44, -54, 31, -10, -11, -17, 25, 32, - -43, 64, -23, 3, -37, 33, -30, -4, -35, 47, -29, 9, 23, -34, -5, 64, - -37, 32, -11, -44, 21, 25, -19, 8, 6, -25, 34, 2, -18, -23, 38, 20, - 7, 21, 1, -32, -37, 50, -9, -25, 34, -61, 55, -32, 7, -48, 20, 13, - 0, -35, 17, 9, -42, -28, 14, 42, -33, -25, -5, 21, 41, -60, 32, -7, - 38, -9, -3, 20, -4, 29, -69, 62, -16, 35, -64, 45, 10, 5, -1, -18, - -18, -1, 5, 32, 0, -21, -12, -23, 29, -15, 13, -39, -3, -3, 6, 35, - -24, -23, -7, -2, 44, -10, -37, 25, 25, -25, -23, 7, 40, 4, -40, -18, - 21, -2, -3, 1, -16, 45, -26, -2, -16, 18, 41, -64, 8, -26, 40, 5, - -32, 8, 18, -1, 15, -1, 9, 2, 2, -13, -12, 35, -9, 13, -62, -29, - 72, 18, 7, -30, 26, -7, -29, 39, -38, 31, -56, -25, -3, 17, 2, -3, - -46, 35, 6, 27, -39, -3, 3, 31, -25, -19, -2, 38, 26, -77, 22, 18, - 40, 3, -22, 65, -48, 33, -16, -37, 78, -34, 1, -52, 23, 16, 1, -37, - 17, 12, 1, -4, 8, -27, -1, -11, -18, 27, -23, -10, -11, -19, -6, -7, - 51, -74, 16, 20, 17, -14, 7, 7, -13, -8, -5, -11, 39, 21, -5, -44, - 31, 64, -38, -18, 20, 40, -4, -10, 10, -23, 23, -6, -20, 11, 9, 10, - 6, -23, -11, 1, 17, -56, 56, -40, 0, -17, -60, 84, -80, 16, -13, 4, - -25, 12, 17, -42, -26, 54, -29, 12, -5, 37, 16, -62, 94, -5, -2, -2, - -2, -9, 5, 51, -25, -5, -11, 5, 16, -14, -9, 43, -44, -8, 27, 2, - -1, 9, -18, -6, 5, 23, -46, -9, 13, 16, -10, -10, -23, 59, -47, -14, - 23, 29, -15, -14, -30, 21, -21, 0, 14, -3, 25, -16, -35, -2, -8, 32, - -19, 22, -23, -37, 30, -33, -19, 11, 12, -32, 47, -4, 27, 11, 9, -35, - 39, 29, -18, -2, -11, 27, -2, 13, 0, 18, -26, 15, -25, 26, -4, 21, - -29, -33, 18, -8, -31, -5, 21, -1, -38, -28, 41, -18, -4, -22, 47, -12, - -44, 55, -79, -5, 19, -10, 25, 4, 21, 15, -28, 13, -6, 45, -24, 25, - 10, -26, 4, 2, 31, 3, -7, 3, 5, -23, 51, -9, -32, -5, 35, -32, - -21, -20, 35, -40, -10, 20, -8, 7, -5, -38, -1, -24, 39, -26, 20, -16, - -9, -27, 25, 34, -32, 1, 12, -13, 3, 37, 13, 3, -31, 27, 30, 5, - -15, -21, 2, 10, -13, 16, 36, -9, -59, 41, -10, 61, -60, -35, -11, 7, - 5, -28, 30, 5, -23, -66, 34, 50, -26, -19, -10, 11, 8, 8, -35, -5, - -11, 56, -24, 10, 35, 16, -10, -19, 30, 4, -11, 23, 0, -6, 6, 36, - -15, 0, 15, -14, -26, -8, -5, 15, -31, -45, 42, -30, 0, -9, 6, -22, - 9, -22, 7, -8, 15, -19, -3, -13, 29, -14, 9, -16, 3, -5, -10, 63, - 0, 4, 4, 20, 16, -21, 18, 31, -24, -19, 31, 54, -39, -7, -16, 5, - -3, 0, -29, 16, 6, -29, -25, -52, 49, -9, -66, -3, 50, -3, -2, -14, - 4, -8, 33, -40, 2, 15, -6, -17, -4, 10, 48, -16, 14, -9, 27, 10, - 2, 2, 40, -35, 5, -10, 7, 28, 1, 4, -30, -4, 0, 1, -14, -13, - -11, 26, -17, 13, -44, -9, -6, -23, 17, 11, 11, -21, -11, 0, 9, 8, - 8, -30, 29, 10, -26, -12, 15, 17, 4, -26, 14, 19, 20, -9, -24, 39, - 23, -10, -35, 8, -6, 18, -25, 15, -17, 41, -48, -31, -5, 47, -14, -20, - -4, -7, 5, -19, 3, 21, 12, -23, 15, -24, 8, 3, -25, 2, 28, 14, - 21, 25, -72, 15, 26, -6, 45, -27, 29, -30, -17, 23, 6, -2, 27, -46, - 13, 9, 15, -57, 27, 1, -18, 1, -11, -2, -20, -16, -23, 24, 18, -21, - -5, -15, -14, 26, -12, 30, -48, 37, -24, -3, 23, 9, -5, 9, 8, -43, - 23, 26, 6, 28, -29, 30, -8, -12, 25, -18, 33, -48, -4, 29, 1, -8, - -4, -20, 41, -22, 1, 12, -33, 0, -17, -16, 29, -3, -2, -36, 6, -1, - -11, 4, -24, 40, -24, -5, 26, -2, -28, 13, -11, 35, -9, -2, -3, -6, - 13, 10, 1, 11, -22, 22, -27, -5, 20, 11, -1, 8, -23, 8, 7, -7, - 17, -6, 16, -9, -10, 3, 13, -3, -17, 19, -21, 6, -13, -15, -7, 22, - -15, -7, 11, -20, -19, -6, 0, 28, -10, -7, -13, 9, 7, 1, -11, -6, - 21, -33, -4, 52, -11, -1, -2, -2, -4, 32, 17, -31, 7, 12, 2, -5, - 11, -1, -6, 1, 3, -11, 5, 4, -15, -8, 10, 5, -18, 5, -26, -11, - 22, -15, -23, 22, 19, -30, 3, 1, -5, 10, -17, 10, -2, 10, 7, -17, - -5, 36, -12, -24, 27, 22, -3, -11, -6, -7, 20, 5, -21, 0, 23, -31, - -27, 14, 2, 8, 7, -15, 0, 13, -7, -3, -21, 33, -4, -26, 7, 5, - -7, -7, 1, 3, 4, 11, -24, 6, 11, -7, 14, -9, -11, -1, 34, -22, - 11, 1, -18, 17, 4, -19, 28, -15, -7, -11, 12, 1, -7, -9, -12, 17, - -20, 6, 5, 2, -10, 12, -23, -3, 26, -1, 4, 6, -25, 12, -3, -26, - 2, 15, 14, -18, -6, -17, 14, 4, -10, 21, -13, 5, -15, -20, 27, 6, - 8, -11, 18, 15, -34, 17, -2, -13, 41, -9, -10, -6, -2, 7, -11, -4, - 28, -26, -6, 25, 17, -36, -2, 33, -39, -15, 11, -2, 26, -32, -31, 21, - 26, -11, -24, 12, -17, 4, -33, 24, 14, -10, 12, -19, -3, 28, 11, -8, - 0, 26, -17, -7, 8, -6, 20, 26, -29, -27, 25, -14, -2, 10, -16, 39, - -24, -17, -4, -13, 24, -10, -3, -20, 25, -1, -24, 24, -20, -5, 21, -26, - 7, 21, -26, 15, 17, 6, -34, 5, 11, -27, 20, 17, -13, -8, -16, 9, - 33, -36, 19, 5, 4, -2, -33, -12, 38, -17, -10, -4, 19, 14, -4, -32, - -41, 64, 5, -38, 28, 6, -2, -11, -22, 11, 17, 17, -24, 23, -7, 9, - 10, -38, 0, 25, -9, -6, -27, 20, 2, -27, 34, -23, 17, -22, 4, 12, - -43, 29, -8, 25, -19, 13, -17, -11, 27, -8, 14, -19, 12, 9, -22, -6, - 11, -10, 17, -4, 2, -3, 15, -47, 32, -18, 11, 14, 0, 8, -33, -14, - -12, 23, 17, -12, -4, 13, -27, 10, -17, 20, -2, -11, -11, 27, 18, -21, - -6, 26, -18, 9, -7, 27, -12, 3, -9, -9, 22, 7, -38, -2, 14, -16, - 12, -21, -10, 22, 1, -28, 20, 31, -11, -49, 9, 16, -4, -7, -4, -5, - 46, -39, 9, -18, 16, 22, -24, -13, 14, 29, -10, 3, -23, 4, 11, -33, - 30, 18, -9, 5, -11, 4, -20, 30, -9, -14, -7, -9, 4, 0, 4, -15, - -11, 23, 5, -24, 26, -6, -8, -17, 21, 0, 3, 13, -10, -13, 19, -16, - -10, -5, 10, 8, 22, -19, 4, -8, 0, -24, 38, 12, -33, 10, -9, 5, - -13, 11, 3, 7, -18, -12, 11, -4, 8, -17, -7, 16, -9, -2, -9, 0, - 10, -2, -1, -1, 12, -6, 13, -18, 18, -6, 10, 1, -3, 9, -2, -30, - 23, -9, 29, -11, -31, 10, 6, -21, -19, 54, -30, 18, -12, -26, 23, -10, - -31, 23, -5, 49, -34, 4, -18, 3, 11, -24, 27, 12, -24, 3, -13, 3, - 16, -6, -7, 1, 19, -8, -3, -11, 13, -14, 19, 10, 17, -21, 14, -40, - 12, 13, -5, -3, 21, -14, -29, 16, -24, 1, 10, -1, -3, 6, -15, -16, - 16, -4, 2, 23, -32, -1, 7, -5, 13, 4, -15, 33, 1, -7, -7, -12, - 13, 6, -8, 2, 21, 2, -21, 17, -14, -19, 36, -2, -16, -4, 3, 9, - 15, -39, 3, 9, -10, -3, -12, -7, 28, -19, 8, -18, 22, -18, -11, -2, - 17, 23, -15, -24, 11, 13, -14, -10, 9, 4, 14, -10, -13, 13, -3, -12, - 25, 6, -12, 12, -19, -3, 19, -10, -13, 19, 10, 18, -31, -15, 19, -9, - -14, -6, 25, -18, 2, 17, -41, 11, 16, -20, 3, -10, 16, 9, 14, -27, - -1, -3, 9, -19, 36, -6, -4, -4, -16, 5, -7, 24, -1, -30, 13, -8, - -4, -9, 47, -37, 3, 21, -24, 1, 3, 11, 5, -10, -8, 20, -31, 16, - 10, -1, 0, -9, -1, -6, 14, -6, 6, -17, 20, 3, -23, 10, -14, 17, - -16, -2, 26, 7, -20, -10, 9, -18, 31, -35, 3, 14, -8, 13, -27, -4, - -4, 26, -20, -9, 14, 22, -27, -4, 18, 9, 9, 3, -13, -20, 15, -13, - 6, 12, -5, -6, -12, 0, 4, -10, 18, -7, -8, -15, 1, -11, 17, 5, - -11, 14, -6, -11, 4, 10, -5, 13, 0, -7, 15, -2, -16, 2, -3, 9, - -6, 2, 34, -11, -17, -8, 21, 13, -21, -4, 14, -7, -7, -19, 13, -7, - 4, -25, 7, 16, -14, -40, -11, 36, 3, -10, 4, -10, 7, -1, -1, 4, - 14, 6, -14, -14, 17, 23, -13, -2, -1, -12, 9, 8, 1, -7, 22, -29, - 7, 7, 0, -24, 13, -10, 18, -1, -3, 13, -24, 30, -32, -5, 18, -2, - -6, -8, 11, -18, -12, 17, -11, 0, 5, -4, -14, 31, -15, -16, 13, 12, - -4, 4, -4, -1, -11, -15, 26, -18, 29, -15, -3, -8, 6, 6, -34, 22, - 0, 11, -18, 16, 20, -19, -21, -5, 11, 21, 10, 10, -27, -5, 3, 2, - -5, 9, -9, -1, 1, -11, -3, 8, 4, 1, -1, -11, 19, -1, -21, -5, - -2, 11, -2, -8, 10, -7, -1, 2, -18, 3, 0, 7, 2, 7, 1, 1, - -28, -14, 10, 19, 12, -21, 7, -19, 20, -2, -3, -1, 17, -11, -13, -16, - 32, 4, -5, -3, 4, -4, 18, -2, -17, -6, 16, -3, 4, -12, 4, -2, - 2, 6, -18, 20, -24, 17, -10, 19, -16, -17, 8, -7, -5, 16, -12, -18, - 11, 9, 2, -8, 17, -9, -3, -13, 7, -6, 30, -15, -11, 5, 14, -2, - -15, -5, 14, 13, -12, -24, -10, 22, -2, -8, -1, 21, -5, -19, -16, 8, - 42, -6, -27, -12, 23, 10, -17, -14, 16, 14, -16, -2, 9, -2, 16, -9, - -31, 22, 0, -2, 3, 4, -5, 20, -24, -5, 13, -1, -5, -10, -6, 8, - -11, 2, 8, -8, -5, -9, 1, -6, 16, -1, -18, 4, 9, -3, 6, -4, - 6, 9, -7, -9, -1, 10, -7, 4, 3, -3, 4, -8, -5, 3, -4, 10, - 6, -15, 2, 3, -5, -2, -3, -12, 18, 2, -16, 7, 13, 0, -19, -8, - 11, -6, -1, -9, 5, 13, -8, -6, 6, 7, 11, -11, -6, 13, -2, -5, - -1, 9, -2, -7, -15, 10, 5, -1, -13, 8, 0, -6, -2, -2, 18, -16, - -7, 2, 3, -4, 6, -11, 4, 6, 1, -5, 22, -11, -5, -6, -3, 11, - -1, -1, 4, 1, -4, -13, -4, 11, -9, 1, 9, -1, -8, 1, -5, -7, - 5, -14, 18, -1, -12, 11, -12, 16, -5, -11, 11, -2, 15, -7, -18, -10, - 0, 18, -12, 8, 3, 6, -16, -3, 3, 6, 0, -1, -3, 4, 9, 3, - -17, -7, 11, 11, -19, 5, 15, -12, -3, -12, 4, 11, -19, 0, 0, -14, - 21, -15, 2, 8, 3, 8, -8, 5, -18, 9, -2, -8, 23, -5, -16, 5, - 3, -20, 13, 11, -6, -15, 5, 4, -12, 2, 10, -5, -12, 5, -14, -2, - 18, 11, -14, 0, 28, -10, -20, 4, 7, 9, -13, -6, 15, 11, -9, -6, - 14, -8, 10, 4, -12, 11, -18, 13, -17, -9, 16, -4, -14, -7, 17, -24, - -5, 4, 6, -6, 14, 2, -24, -22, 11, 13, 8, -16, 6, 13, -28, 10, - -2, 11, 8, -1, -8, -14, 22, 3, -5, -13, 18, 7, -26, 15, 20, -6, - -10, 4, 11, 5, -8, -3, -5, 0, -1, -6, 0, 4, 4, -14, -1, 1, - 8, -14, -10, -4, 6, 4, -8, 3, -9, 0, 11, -4, -7, 5, 4, 6, - -29, 18, 22, -19, -16, -11, 17, 7, -4, 3, -23, 20, 8, -19, 3, 13, - 13, -16, -18, 15, -6, 0, 3, 17, -7, -4, 2, -22, 21, -1, -2, -1, - -15, 13, 3, -7, 4, 0, -7, 8, -7, 11, 3, -2, -8, 10, -15, 0, - 9, -14, -8, 8, -2, -9, 10, -13, 9, 7, -6, 2, -12, -4, 6, -12, - 8, 12, 3, -10, 6, 7, 1, -2, -11, -1, 7, -7, 8, -13, -10, 11, - -9, -10, -8, 20, 9, -11, 8, -5, -4, 6, -3, 5, 13, -13, -7, -7, - 6, 19, 0, -9, 9, -1, -3, 4, -7, 0, -2, -4, -5, 5, 0, -5, - 14, -19, -14, 18, -1, -5, 3, -12, 18, -19, 4, -15, -10, 10, 10, -17, - -4, 19, -6, -2, 5, 11, -4, -3, 9, -22, 28, -6, -5, 0, -1, 11, - -11, -13, 22, 3, -8, -9, 1, 3, 0, 1, 2, 7, -5, -25, 10, 6, - 6, 2, -11, 8, -16, 15, -20, 5, 9, -6, -13, -5, 14, 6, -21, 22, - -7, -14, 4, 26, -8, -13, 8, 1, -10, -13, 11, 10, -10, 2, -13, -9, - 15, 0, 10, -30, 14, 7, -13, -5, -12, 8, 10, -4, 10, 12, -15, -7, - 5, 2, 2, 10, -13, -3, 0, 21, -2, -16, 9, 3, -1, 6, 15, -3, - -21, 10, -8, 5, 1, 1, 2, -19, 10, -7, -3, -1, 8, 6, -26, -10, - 18, -28, -3, -3, 4, 0, -7, 6, -10, -2, 25, -19, 5, -11, -2, 14, - 4, -5, -3, 4, -5, 6, -2, -3, 11, -1, 13, -12, 5, 20, -15, -3, - 17, 4, -14, -5, 11, 3, 1, 6, 11, -20, 10, -4, -4, -4, -4, -18, - -7, 5, 10, -25, 7, -9, -15, 1, -4, 4, 4, -4, -1, -18, 9, -6, - 4, 7, -19, 10, 0, 3, -6, 12, 18, -5, 2, 4, -4, 11, 2, 5, - 2, 1, 3, -4, 3, 4, -3, -2, -8, 11, 5, -10, -12, 12, -6, 6, - -9, -6, 4, 9, 0, -9, 4, 3, -7, -5, -12, 19, 2, -28, 1, 0, - 9, -10, -6, 3, 3, -11, -4, 6, 7, -7, -3, 5, -12, 9, 10, -12, - 7, 5, 5, -6, -9, 16, 6, -16, 3, 8, -17, 12, -5, 2, 1, 21, - -25, -10, 5, -2, 15, -6, 1, 3, 5, -16, -2, -16, 32, -17, 7, -13, - 6, -1, -4, 0, -4, 10, -2, -17, -7, 29, 0, -13, -1, -1, 2, 12, - -4, 3, -2, 4, -19, -1, 18, 2, -3, -15, -2, 10, -4, 1, -2, -5, - 20, -5, -6, -7, 9, 0, -2, -24, 5, 15, -2, -11, 1, 0, -2, -14, - -2, -4, 7, 4, -4, -9, 2, 4, -8, 8, -1, 2, 10, -13, 4, 10, - -4, 27, -22, 17, -18, -2, 5, 8, -1, 4, -6, 2, -1, 9, 1, -3, - 16, -21, -18, 2, 10, -14, 9, 3, -14, -9, 0, -16, 9, -10, 11, -12, - -3, 1, -10, 3, -2, 2, -13, 13, 10, -1, 4, 4, 1, -3, 9, 0, - 4, 8, -14, 10, -4, 0, 8, 11, -2, 2, -11, 3, -13, -8, 11, 4, - 1, -7, 4, -21, 0, 1, -4, -22, 17, -8, -16, 10, 4, -2, 0, -4, - 2, -2, 2, -6, 10, 3, 3, 5, -1, 6, 5, 2, -6, -3, -2, 7, - -4, -4, 12, 1, -30, 12, -7, 3, 4, -6, -7, -9, 9, -1, 7, -10, - 12, -16, 2, -8, 23, -5, -5, -1, -8, 10, 3, -14, -12, 25, 7, -13, - -6, 4, 15, -3, -23, 9, 12, -9, -13, 18, -9, 5, 1, -17, -4, 13, - -10, 11, -10, -1, 6, 0, -7, -2, 9, -4, 9, -24, 7, 6, -5, 4, - 15, -15, 11, -5, -24, 9, 11, -16, 2, 0, -9, -2, 10, 7, -12, 8, - -12, -6, 10, 6, 10, -14, -5, 20, -16, 7, 8, -1, -19, 24, 2, -10, - 15, 6, -6, -21, 3, -3, 15, -9, -3, 3, -2, -4, -3, -9, 5, 0, - -5, -3, -15, -4, -1, 1, -14, 33, -12, -18, 9, -2, -10, 9, 9, -1, - -1, -5, 10, -3, 2, 4, 2, -9, -1, 25, -2, -3, 15, -17, -7, 8, - -7, 0, 10, -13, 9, -11, 0, -3, 18, -15, -11, 5, 0, -12, -2, 7, - -6, -4, -9, 11, -6, 8, 1, -14, 3, 16, -10, -3, 2, 6, 4, 9, - -9, -2, 0, 2, -3, 15, 3, -10, -4, -8, -1, 10, -13, -9, 16, -9, - -3, -2, 5, -6, -6, -9, 10, 8, -4, 14, -7, -19, 12, 1, 2, 1, - 4, -1, -6, -3, -3, 5, 7, -2, 0, 0, -5, 0, -6, 1, 6, -5, - -4, 5, -6, 5, -4, -8, 15, -5, -7, 0, 3, -8, 0, 3, -8, -4, - 6, -4, -4, 15, -5, -8, -7, 4, 7, -10, -6, 15, -4, -13, 7, 2, - 2, 1, -4, 5, 0, 0, 1, 4, -7, 4, 4, -2, 4, 5, 1, -18, - 12, 4, -3, -6, 11, 0, -13, -1, 1, -12, 3, 13, -9, -15, 7, 0, - -4, -8, 0, 5, 0, -9, 1, 1, -3, 0, 3, 5, -10, 6, -1, -4, - 4, 15, -15, -5, -9, 18, -2, 0, 15, -11, -9, 0, 6, -2, 8, 1, - -8, -9, 7, 3, -7, -3, 6, 1, -5, 0, -5, -5, 0, -3, 11, 1, - -3, -8, -4, -4, 5, 9, -6, -7, 4, 15, -13, 5, -4, 2, -6, -2, - 0, 5, 4, -4, 0, -6, 8, 3, -2, -4, -4, -11, 4, 10, -1, -4, - -2, -1, -3, 1, -4, -2, 3, 1, -4, -11, 12, -4, 5, -2, 7, -12, - -2, 4, -4, 5, 8, 1, -8, 14, -11, -1, 1, 4, 0, 5, -5, 2, - -7, -7, 10, 3, 1, -13, 0, -4, 5, -9, -1, 1, -11, -5, 5, 2, - -6, 5, -5, -8, 12, -2, 7, -1, -10, -5, -7, 14, 9, 3, -5, -2, - 5, 4, -2, 0, -5, 2, 3, 3, -12, 6, 3, 2, -9, -1, 24, -13, - -9, -1, -2, 0, 7, -6, -17, 14, -12, -5, 10, 1, -4, -1, -1, 1, - -3, 2, -2, -11, 1, -1, -1, 1, 10, -3, 2, 1, 5, -7, 1, -1, - -5, 7, 1, 7, -4, 5, -11, -8, -8, 7, 8, 6, 0, -15, -1, 7, - 0, -6, -3, 7, -4, -3, -2, 1, 5, 8, -6, -4, 11, 3, -14, -6, - -3, -6, 9, -5, 4, -5, 2, 3, -13, -3, 1, -4, -3, 11, -1, 0, - 7, -16, -6, 11, 5, 0, 4, 5, -2, -3, -2, 8, 7, -16, 1, 2, - 6, 3, -17, 11, -2, -2, -9, 6, 0, -7, 6, -22, -2, 14, 3, -11, - 0, -6, -2, -7, -7, 1, 4, 14, -1, -6, 0, 7, 3, -14, 4, 15, - -4, -9, -2, 12, 14, -10, 5, 9, -11, -2, -9, 2, -9, 11, 2, -21, - 7, 6, -11, -1, 0, 0, 1, -9, 4, 0, -10, 1, 3, -3, -7, 12, - -9, -2, 4, 6, 3, -8, 0, 1, -2, -14, 12, 11, -5, 10, -3, -1, - 3, -6, 1, 0, -3, 8, -1, -18, 12, 5, -13, -4, 17, -1, -6, 1, - -11, 0, -6, 2, -2, -2, 5, 3, -17, 2, -5, 11, -4, 8, 8, -19, - -6, 14, -6, -6, 0, 5, 0, -8, 7, 13, -6, -5, 6, -2, -9, -1, - 8, 3, -4, -4, 10, -10, -9, 7, 2, -6, 14, 0, -15, 3, 5, -4, - -10, 8, 0, -6, -11, 3, 10, -9, 1, 8, -7, 2, -1, -6, -8, 6, - 2, -8, -2, 16, -3, -3, -1, 5, -3, -8, 6, 9, -6, 1, -1, -1, - 2, -6, 6, -1, -9, 3, 9, -10, 1, 5, -4, -14, 2, 1, 7, -5, - 3, -2, -13, 5, 10, -9, -8, 14, -6, -19, -3, 19, -3, -3, 6, -4, - -10, 3, -1, -4, 5, 5, 1, 0, -1, 11, 4, -10, 3, -5, 4, -7, - 1, 8, -3, 1, 2, 0, -10, 2, 5, -15, -3, 8, -8, -6, 5, -2, - -5, -5, 11, 0, -12, -7, 5, 2, -5, 2, -1, -4, 2, 7, -12, 5, - 6, -3, 5, -1, 12, 7, -13, -3, 0, 3, 0, 13, -1, -4, 0, -9, - 5, -6, 5, -2, -10, -6, -2, 9, -8, 5, -6, -10, 5, 4, -6, -2, - 1, 1, 6, -14, 10, -3, -4, -5, 1, 8, -16, 7, 7, -1, 0, 3, - -5, 2, -1, -3, 11, -11, 9, 8, -18, 3, 8, 13, -4, -5, -9, 4, - -2, -4, 9, 5, -6, -5, -15, -3, 17, -6, 2, -8, 4, 4, -4, -12, - -3, -2, -2, -4, 5, -4, 1, 7, -12, -6, 8, 6, -2, 1, -3, 3, - 10, -3, 7, -11, 12, 4, -1, -1, 1, 0, -11, 11, 4, 0, -2, -9, - -2, -2, -8, -1, 5, -4, -5, -5, 1, 10, -8, -11, -5, -4, 5, -1, - 1, 6, -2, -5, -5, 3, 6, -2, 6, -3, 0, 4, 5, 2, 4, -2, - 1, 5, -2, -6, 11, -1, -5, 8, -14, 6, -2, -6, -11, 4, 2, -14, - 6, -9, 5, -4, -3, 4, -12, -2, 2, -5, 4, 7, -5, 3, 6, -1, - -3, -6, 0, 7, 0, 1, 6, 9, 4, -2, -7, -4, 7, 4, 4, -5, - -5, 0, 3, -6, -1, 7, -2, -18, -1, 3, -15, 5, -2, -2, 0, 4, - -10, -4, 3, 4, -10, 4, -1, 5, 4, -7, 8, -7, 0, 3, 2, -7, - 13, 0, -2, -6, -6, 5, 10, -10, 4, -1, 2, -1, -5, 7, 5, -3, - -7, 1, -5, 10, 1, -11, 7, 6, -10, -15, 12, 2, -4, 1, 0, -5, - 3, 0, -2, 6, -5, -4, -13, -2, 3, 1, 4, 3, 3, -10, -7, -7, - 11, -2, 2, 2, -7, 4, -1, 6, 2, 0, 8, 3, 0, -7, 8, 3, - 5, -8, -3, -2, 2, 3, -12, -4, -3, 12, -12, -4, 7, -3, -10, -10, - -4, 6, -2, -8, 9, 1, 1, 1, -3, -6, 12, -5, -6, -1, 11, -7, - 5, 6, 2, 9, -11, 6, -2, 8, 1, -6, 4, 3, -6, -3, 5, -4, - 4, 1, -19, -1, 3, 4, 0, 0, -10, -1, -3, -5, -3, 0, 11, -1, - -12, -2, 6, 0, -3, 3, 4, -1, -7, 1, -2, -1, 2, -1, 0, 2, - -2, 4, -5, -4, 11, -4, -5, -3, 7, 5, -8, 3, 6, -9, 0, 9, - -5, -2, 5, -4, -6, 0, 7, -1, -2, 0, -1, -6, -9, -6, -1, 8, - 4, -1, -9, -5, 13, 2, -11, -5, 9, 0, -8, -1, 5, -2, -5, -3, - -2, 7, 5, -4, -13, 3, 11, -8, 3, 0, 2, 5, -12, -6, 6, 3, - -4, -1, 8, 1, -5, -7, -6, 2, 8, 5, -2, -9, 7, -6, -2, 13, - -7, 2, 1, -1, -5, 3, 7, -1, -11, 9, -6, -4, -2, -5, -1, 2, - -1, 3, 8, -7, -1, -9, 0, 0, -1, 2, 5, -2, 1, -2, -3, 6, - 6, -3, -6, -5, 4, -1, 1, 5, 1, -1, -2, -3, -4, 4, 3, 1, - -7, 5, -1, 0, -8, -6, 1, 7, -3, -6, -2, 3, -1, -3, 2, 2, - 0, -9, 1, -2, 4, 4, -5, 1, -1, 1, 6, -2, 2, -5, -4, -1, - 14, -3, 2, -9, 1, -2, -4, 1, -1, 7, -9, 5, 2, -3, 2, -2, - -9, -2, 4, -1, 2, -2, -2, 0, -1, -1, -2, 3, 1, -1, -3, -6, - 3, 7, -5, -3, 9, -5, -4, -5, 8, -4, 2, 2, 8, -10, -1, 8, - -14, 0, 6, -7, -1, 2, -3, 2, -4, 5, 2, -5, -4, 5, 1, -6, - 3, 6, -4, -1, -3, 3, -7, 0, 1, 0, -4, 7, 6, -13, -3, 3, - 2, -15, 8, 3, -3, -6, 9, -4, -1, 9, 1, -6, -6, 7, 1, 1, - -2, 6, -1, -4, -1, -1, -7, 5, 3, 0, -5, -2, 8, -2, -8, 6, - 7, -16, -5, 6, -6, -1, 1, 7, -4, -3, -6, 3, -10, -3, 8, -9, - -1, 5, -1, -7, 5, 2, -1, 1, 5, 1, 2, -4, -5, 1, 1, 3, - 1, -5, -2, 3, 2, -7, -1, 7, 5, -5, -7, 5, 0, 3, -1, -4, - -4, 4, 0, -4, 1, 6, -3, -7, 0, -3, -3, -1, 0, -2, -4, 2, - 1, -2, 3, -1, 0, -1, -6, 9, -5, 4, -1, -1, 4, -2, 5, -8, - 2, -3, -2, 2, -3, 10, 2, -3, -5, 2, -4, -1, -3, -7, 9, 1, - 0, 0, -5, 1, -2, -12, 6, 8, -18, 4, -1, 4, -1, 5, -5, -3, - 3, -1, 4, -5, 9, -5, -4, -5, 2, 5, -1, -4, 0, -3, -2, 8, - -5, 2, 1, -13, 3, 1, 4, 5, -8, 2, 8, 1, -1, 1, -9, 1, - -2, -4, 1, 4, -3, 4, -4, -5, 6, 5, -6, -3, -3, 1, 1, -7, - 1, 2, 1, -5, -4, -2, 2, -6, 6, 3, 7, -10, -9, 4, 1, -5, - 6, 9, 3, 1, -2, -4, 3, 4, -1, -6, 3, 1, -2, -9, 4, 4, - -5, 4, -10, 2, -4, -5, -1, 1, 2, 0, 2, -8, 1, 3, -4, -13, - 0, 10, -1, -4, 5, 0, -4, 5, -3, 2, -5, 2, 1, 2, 4, 2, - 2, -10, 5, 3, -11, -2, 3, 3, 0, -6, -2, 1, 1, 2, -1, -8, - -1, -5, -4, -3, 5, 8, -4, -4, 2, 0, -2, -2, 1, -5, 0, 13, - -8, -6, 4, 8, -6, -1, 6, -2, 4, -5, 3, 5, -7, -8, -2, -3, - 7, 8, -8, -3, 1, 5, -5, -5, 9, -4, -7, -5, 4, 3, -6, 5, - 1, -1, 3, 0, -6, -9, 0, -6, 1, 4, 10, 5, -13, 0, 6, -2, - -4, 2, -2, 6, -1, -4, 0, -11, 6, 3, -1, -3, 14, -1, -15, 1, - 2, 3, -1, 4, -3, -6, 0, 3, 0, -6, 10, -3, -14, -2, 10, -3, - -9, -4, 0, 6, -1, 7, -3, -5, -6, 1, 0, -5, 11, -2, 1, -2, - 5, -1, -4, -1, -3, -4, 2, 11, 2, -4, 1, 2, -12, 7, 3, -1, - -11, 3, 15, -8, -11, 0, 0, 2, -7, 1, -3, -4, -3, -5, -4, 6, - 11, -7, -8, -1, 6, -5, -3, 6, 8, 3, -6, 1, -1, -1, -1, -5, - -3, 8, 7, 4, -9, 1, -2, -4, -6, 9, -4, 3, -8, 0, 6, -2, - -4, -2, -2, -6, 8, -7, 3, 1, 3, -1, -3, 2, 1, -6, -9, 3, - -5, 8, 5, -10, 7, 5, -3, -2, -1, -3, -1, -4, -7, 6, 6, 3, - -7, 0, 0, 1, 0, -7, 3, -1, 0, 1, 2, 2, 2, -11, -8, 9, - 6, 2, -6, -1, 1, -3, 3, 1, -6, 2, -3, -2, -1, 2, -4, 0, - -4, -2, 0, -3, -2, -6, 5, 2, 0, -1, -3, -1, 3, 1, -2, 0, - 2, 2, 0, 1, 7, 1, -4, -2, -6, 4, 3, -1, -4, -1, 3, 3, - -9, -2, 0, -2, -1, -5, 6, 1, -5, 1, -5, 9, -10, -4, 0, -4, - 6, 1, -3, -5, 9, -2, -5, 2, 0, 6, -6, 2, 5, 10, -8, -3, - -2, -1, 4, -3, -1, -4, 0, -1, 1, -4, 0, 5, -8, -1, -5, -1, - -1, 3, 3, 3, 2, -14, -5, 1, 2, 3, 1, -1, 2, 5, -2, 2, - -5, 2, 3, -2, -2, -3, 4, 4, 4, -6, 3, 1, -10, 1, -6, 6, - -2, -3, 0, -3, 1, -3, 1, -1, -4, -5, -4, 7, -2, -2, -3, 6, - -5, -5, 2, -6, 1, 4, 3, -8, 11, 4, -4, -1, 2, 3, -5, -2, - 1, 7, -4, 2, 4, -10, 7, -7, -1, 0, -3, 5, -4, -1, -4, 5, - -7, 3, 3, -11, -2, -1, 5, 1, -1, 0, 6, -11, 0, 1, -2, 1, - 0, -1, -4, 2, 9, -2, -9, -4, 2, 0, 2, -1, 1, 1, -7, 5, - -3, 4, -1, -3, -8, 5, 7, -1, -1, -3, 3, -7, 0, 4, -3, -3, - 1, 6, 0, -1, 0, -5, -1, 0, -4, 0, 0, -3, 1, -4, 1, 7, - -3, -13, -2, -2, -1, 3, 5, 2, -6, 1, 6, -2, -6, 8, -1, -6, - 0, 4, 6, -2, 0, -2, -4, 3, 5, -4, -7, 2, 5, -3, -3, 3, - 1, -10, -7, 3, 1, -3, 2, 4, -7, -3, 0, 2, -5, -3, 3, -2, - 0, 3, 5, -6, -1, 4, -2, 0, 5, 1, -2, -2, 3, 2, -1, -3, - -3, -7, 7, 3, -1, -2, 0, 0, 1, -2, 1, 0, -15, -1, 3, 2, - -3, 4, 0, -7, 0, -1, -1, -4, -3, 2, -1, -1, 11, -3, -1, -5, - -1, 2, 2, 0, 1, 2, 3, 4, -6, -3, -2, 1, 0, -4, 2, 1, - -1, -5, 1, -1, -7, 2, -2, -5, 0, 2, -2, 3, 5, 0, -2, -6, - 6, -7, 3, -4, -6, 1, 6, 3, 1, -2, -3, -4, -6, -1, 7, -2, - 0, -3, 0, 9, -3, -5, -1, 3, 0, -1, -3, 6, 1, -6, -3, 3, - 6, 0, -6, -4, 2, 1, -1, 2, -5, 4, 1, -2, -5, 0, 7, -9, - 3, -1, 1, -6, 0, -5, -1, 1, -1, 0, -4, 2, -2, -2, 1, 6, - -1, -5, 0, 0, 0, 1, 3, 2, 2, -1, -3, 0, 1, 5, 1, -5, - -7, 2, 6, -3, -3, -3, 2, -7, -5, 5, 0, 0, -3, -4, -1, 3, - -4, -5, 1, 5, -1, -2, -4, 0, 5, 2, 0, 2, 2, -1, -1, -5, - 5, 3, -1, -4, 1, 0, -1, -2, -1, 2, 2, -4, -4, 2, -2, -3, - -4, -3, 0, 3, -3, -2, -2, 4, 1, -2, -2, 1, 2, -6, -1, 2, - 6, 1, -2, 0, 4, -3, -1, -2, -1, 5, 1, -11, 4, 3, -1, -6, - 2, -2, 3, -4, -8, -2, -1, 4, 0, 3, -2, -1, -2, -2, 1, 3, - 3, -7, 0, 2, 10, 0, -4, 3, -3, 0, 0, 3, -4, 6, -4, -8, - 2, 1, 3, -14, 1, -1, -2, 0, 0, -5, -1, 2, -6, -1, 3, 0, - -5, -3, 3, 1, 6, -2, 0, 6, 2, -7, 1, 3, -5, 5, 8, 0, - -1, 1, -4, -6, -2, 6, 4, -4, -1, 1, -10, 0, -4, 0, -3, 2, - 0, -8, 3, -3, 0, 2, -1, 1, -8, -1, -1, -3, -1, 4, 1, 6, - 1, 0, 0, -2, 0, -2, 7, -4, 3, -1, 2, 0, -2, -2, -8, 3, - 2, -1, -4, 3, 0, -3, -5, 2, -3, -3, -2, 5, 2, 1, 1, -4, - 1, -1, 4, 6, -4, 0, -6, -4, 1, 3, 3, -1, -2, -7, -1, -3, - 6, -6, 2, 1, 5, -8, -5, -1, 2, -1, -3, -1, -1, 5, -7, 3, - 3, 1, 4, -4, -3, -3, 8, 1, -2, 4, 4, -2, -8, 2, 1, 0, - 2, 0, -6, 3, -2, -8, -2, 5, -1, -6, 0, 2, -1, -5, -2, -2, - 6, 0, -5, -2, 3, 0, -5, -1, 6, 7, 2, -8, -4, 6, 2, -6, - -4, 12, 2, -5, -2, -6, 1, 1, -3, -7, -3, 11, -3, -6, -1, 3, - -2, -4, -4, 4, -3, 4, -2, -3, 1, 7, 0, -8, 7, 1, -2, -4, - -6, 13, 0, -3, 1, 2, -1, -4, -3, 1, 3, -2, -3, -1, 0, 3, - -1, -10, -1, 2, -8, -3, 3, 2, 1, 4, -6, -2, 1, -3, -1, -4, - 6, 5, -1, -5, -1, 9, -2, 0, -4, 0, 1, -3, 4, -5, 1, 3, - -4, -6, 0, 4, -2, -6, 9, -1, -3, 2, -4, 0, 4, -7, -4, -1, - 1, 4, 0, -1, 6, -2, -2, 4, -3, -1, -6, -2, 2, 3, 1, -3, - 8, -10, -10, 7, 0, -2, -1, -4, 3, -6, 0, -5, -5, 5, 3, -6, - 1, 5, 0, -1, 1, -1, 0, 0, 0, -5, 7, -2, -1, 2, -1, 3, - 0, -6, 4, -3, -2, -3, -2, 1, 3, 3, 0, -2, -1, -9, 2, 2, - -1, 4, -4, 4, -10, 7, -8, 2, 1, -1, 0, -1, 4, 2, -7, 7, - -6, -4, 3, 11, -5, -6, 1, 3, -4, -6, 2, 2, -2, -3, -7, -4, - 6, 0, 7, -13, 6, 2, -9, -2, -5, 3, 8, 0, 0, 5, -5, -4, - 3, 0, 2, 4, -7, 0, -1, 10, -3, -6, 7, 2, -1, 0, 6, -2, - -7, 4, -2, -1, -2, 1, -3, -9, 6, 0, -4, 0, 3, 3, -11, -4, - 7, -16, -2, 0, 2, 1, -2, 2, -5, -1, 12, -6, 2, -7, 2, 6, - 0, -4, -1, 1, -3, 2, -1, 0, 7, -2, 2, -6, 2, 7, -9, -4, - 8, 2, -9, -3, 8, 1, -1, 4, 5, -11, 2, 1, -1, 0, 0, -6, - -2, 2, 6, -13, 2, -3, -8, 1, 1, 3, -2, -3, -2, -7, 4, -6, - -2, 3, -10, 5, -2, 1, -3, 5, 8, -4, -1, 2, -1, 6, 2, 3, - 2, -2, 0, -1, 0, 4, 1, -1, -2, 7, 1, -7, -5, 7, -5, 2, - -5, -4, 0, 3, 3, -2, 0, -1, -9, -4, -9, 10, 1, -14, 0, -1, - 6, -8, -3, 3, -1, -6, -1, 5, 3, -5, -1, 3, -6, 5, 7, -10, - 5, 5, 2, -4, -3, 9, 4, -11, 0, 5, -11, 7, -6, 2, 2, 12, - -15, -8, 2, -3, 7, -5, 3, 3, 1, -10, 0, -9, 17, -11, 7, -6, - 2, 1, -3, 0, -1, 5, -2, -10, -4, 16, -1, -7, -1, -3, 1, 11, - -3, 1, -3, 2, -12, -2, 12, 3, -1, -10, -2, 6, -3, 1, -1, -4, - 12, -1, -2, -7, 6, -1, -1, -16, 5, 11, -3, -7, 1, -1, -2, -6, - -4, -5, 3, 4, -3, -8, -1, 3, -5, 3, 1, 2, 6, -10, 1, 7, - 0, 21, -15, 11, -12, 0, 1, 4, 1, 4, -4, -1, 3, 7, 0, -5, - 10, -15, -14, 2, 6, -11, 5, 3, -10, -6, -1, -11, 4, -9, 6, -9, - -2, 2, -8, 3, 0, 2, -9, 7, 7, 2, 2, 0, 3, 1, 6, 0, - 3, 6, -10, 6, -4, 1, 7, 9, -1, 0, -7, 1, -11, -8, 9, 4, - 0, -6, 2, -16, 0, 1, -2, -16, 10, -7, -12, 7, 4, -1, -1, -4, - 2, -1, 2, -5, 8, 3, 3, 4, -2, 4, 3, 2, -4, -2, -1, 5, - -5, -3, 9, 2, -22, 8, -6, 1, 3, -5, -4, -6, 7, 0, 5, -8, - 9, -13, 0, -6, 18, -3, -3, -1, -6, 7, 3, -11, -9, 19, 6, -10, - -6, 3, 12, -2, -18, 7, 8, -7, -10, 14, -8, 5, 1, -15, -4, 11, - -6, 9, -8, -1, 5, 1, -6, -2, 7, -3, 7, -20, 6, 5, -4, 3, - 12, -12, 11, -4, -22, 7, 9, -13, 1, 0, -8, -1, 9, 6, -10, 5, - -9, -5, 8, 5, 8, -12, -4, 16, -14, 7, 6, -1, -16, 21, 2, -9, - 13, 5, -4, -19, 2, -3, 12, -7, -2, 3, -2, -4, -3, -8, 4, 1, - -4, -4, -14, -3, -1, 1, -11, 30, -11, -16, 8, -2, -9, 8, 8, -1, - -1, -5, 10, -4, 1, 4, 3, -8, -1, 23, -2, -2, 14, -15, -7, 7, - -7, 0, 9, -12, 8, -10, 0, -3, 16, -13, -11, 5, -1, -10, -2, 6, - -5, -4, -9, 10, -6, 7, 1, -13, 2, 14, -9, -3, 2, 6, 4, 8, - -8, -2, 0, 2, -3, 14, 3, -10, -4, -8, -1, 10, -13, -8, 15, -9, - -3, -2, 5, -5, -6, -9, 9, 7, -4, 14, -7, -18, 12, 1, 2, 1, - 4, -2, -6, -3, -2, 5, 7, -2, 0, 0, -4, 0, -6, 1, 5, -5, - -4, 5, -6, 5, -4, -8, 15, -5, -6, 0, 3, -8, 0, 3, 0, -1, - 0, -4, 6, -16, 22, -7, 3, -5, 2, 2, 1, -3, 4, -8, 4, 4, - 0, -5, -9, 4, -5, -4, 3, 2, 1, 3, -4, 6, -15, -1, 4, 1, - -9, 3, 1, -8, 3, -6, 11, -5, 6, -11, 17, -15, -2, -19, -11, 1, - -4, 8, 0, 5, 18, -11, 0, 13, -4, 6, -13, 4, -11, -1, -7, -7, - 11, 10, -9, 17, -11, 20, -6, 7, -14, 23, -7, -2, -2, 7, -10, 2, - 0, 2, 5, 6, -8, 5, -4, -10, 9, -4, 6, 0, -7, 8, -7, 1, - -20, -4, -1, -3, 6, -10, -6, -15, -11, 10, -5, 19, 3, 1, -19, -11, - -1, -9, 9, 22, 24, 10, -5, -18, -8, -23, 14, 11, 0, 31, 43, -9, - 0, -7, -15, -28, -35, -30, 3, 5, -5, 11, 52, 55, 7, -5, -10, -12, - -25, -43, -12, 4, -37, -47, -21, -5, 4, -11, 1, 31, 27, 34, 46, 48, - 61, 10, 16, 8, 7, -14, -40, -47, -36, -51, -42, -15, 4, 12, -32, -42, - -10, -4, 10, 1, 15, 50, 31, 5, 15, 38, 37, 29, 15, 22, 11, -4, - -35, 10, 3, -18, 1, -14, -33, -5, -47, -25, -13, -2, 15, -6, 5, -29, - -17, -19, -1, 3, 7, 2, 17, 28, -8, -23, 7, 7, 36, 15, 2, 1, - -2, -9, 1, 6, 20, 6, 14, -3, 21, -11, -12, -35, 11, -20, -18, -36, - -23, -27, -19, 1, 10, 14, 27, 6, 44, 14, -9, 3, 20, 27, 45, -8, - -13, 16, -16, 24, -10, -9, -3, -38, -19, -14, -38, -38, -41, 13, 40, -37, - 5, -7, -7, -4, 4, -31, 32, 22, 15, 9, 13, 10, 10, -17, 22, 30, - 9, -6, 27, 66, 47, -17, -21, -20, -9, -36, -73, -3, 22, -35, -12, 6, - 7, 4, -17, -45, 22, 17, -17, 3, -9, -4, 11, -10, 13, -4, 8, 38, - 3, 20, 42, -22, 9, 23, -28, -21, 3, 10, 1, 26, -28, -18, -9, 7, - -30, -41, -24, -9, 10, -6, 31, -5, 2, 29, -9, 1, -27, -24, 7, -19, - -5, 10, -13, 21, 21, 3, 30, -11, -17, 34, -11, 8, 7, -8, 1, 11, - -1, 7, -13, 1, -3, 23, -12, 8, -19, -3, 20, -78, 42, -23, 4, -29, - -16, -5, 38, -49, 30, -26, 26, 16, 8, -33, 53, 19, -20, 12, 5, 23, - -11, 4, -6, 42, -111, 67, -40, 29, -32, -20, -77, 113, -46, -12, 8, -5, - -14, 35, -52, 94, -5, -61, 58, -36, 41, -83, 21, -19, 61, -68, 37, -37, - 12, 66, -69, -16, 100, -88, 48, 21, -39, 73, -24, -2, 45, 65, -59, 53, - -103, 95, -97, 1, -14, -4, -41, 9, -13, -18, 16, -26, 9, 26, -15, 25, - -16, 6, 8, 26, -52, 35, -21, 4, -2, -11, -4, 22, 0, 21, -40, 65, - -6, -13, -11, -7, 32, -46, -48, 16, -26, -3, 0, -42, 87, -68, 34, 17, - -14, 43, 23, -15, 30, 20, 47, -19, -33, -12, 15, 1, -37, 15, -12, -11, - -7, 15, -75, 36, -41, 27, -8, -7, -12, 10, -4, 49, -6, 42, -32, 4, - 20, 33, -65, 24, -52, 10, 13, -17, -15, 60, -14, -55, 35, -16, 50, -83, - -3, 29, 58, -75, 71, -46, 47, -32, 44, -57, 10, -43, 33, 22, -48, 51, - -41, 6, 7, 39, -3, -41, 7, -9, 37, -66, 22, 26, -13, 74, -87, 127, - -39, -16, -29, -11, -8, -57, -15, -45, 52, -74, -5, -2, 103, -126, 85, 20, - 28, -7, 53, -38, 58, -10, -11, 33, -70, 20, 1, 40, -36, 26, -58, 58, - -23, 61, -71, -7, -39, 43, 22, -18, -1, -61, 90, -37, 35, -58, 30, -62, - 27, -45, 47, -59, -6, -35, 70, -49, 9, -30, 92, -15, 21, 1, 26, 6, - -19, 90, -43, 49, -46, 10, 6, 15, -90, 67, -51, -11, 4, 28, -36, 24, - 41, -68, 24, -34, 63, -40, 17, -30, 18, -39, 14, -38, 15, 9, -54, 54, - -20, 36, -21, -14, -13, 11, 23, 11, -54, 56, -25, 37, -46, 49, -74, 81, - -40, 51, -44, 57, -69, 51, -50, 61, 27, -112, 111, -114, 106, -85, 49, -61, - 75, -18, 26, -68, 32, -15, -25, 21, -15, 38, -46, 80, -119, 126, -85, 41, - -40, 77, -65, 28, -6, -39, 45, -87, 39, -63, 81, -32, 4, -32, 44, -25, - 42, -12, -15, 21, -1, -56, 21, 23, -30, 33, -28, -3, 32, 4, -36, 60, - -20, 13, -3, 22, -43, 101, -88, 59, -53, 18, 8, 22, -33, -52, 34, -32, - 35, -90, 112, -107, 56, -59, 43, -60, -18, -4, -21, 45, 11, -48, 11, 38, - -27, 58, -49, 65, 19, 54, -38, 35, -37, 24, -11, 44, -62, 41, -16, -48, - -8, 31, -68, 17, -3, -5, 52, -51, -10, 16, -26, 18, -29, 56, -41, 3, - 5, -10, -37, 61, -14, -10, -9, 20, -8, 8, -2, -16, 44, -17, 14, -33, - 30, -2, -27, 16, 3, 0, 51, -42, 32, -20, 8, -11, -24, 10, 12, -15, - 6, -32, 10, 21, -38, -11, -12, 23, 13, -64, 19, 34, -23, -23, 16, 10, - 39, 2, -36, 55, -31, 0, -29, 18, 8, 12, -61, 73, -28, 54, -34, 21, - 9, 7, 53, -34, -29, 19, -7, -44, 7, 15, -16, -18, -31, 10, -29, 36, - -69, 7, 4, 33, -72, 45, 14, 0, -8, 35, -13, 26, 16, -28, -3, -32, - 45, -4, 8, -20, 65, -24, 2, -24, 40, -16, -16, 20, 8, 2, -3, -2, - 23, -15, -11, -30, 19, -51, -19, -5, -36, 18, 24, -4, -1, 46, -90, 60, - 4, 23, -17, 16, 60, -24, 0, 18, 0, 5, -6, -24, 27, -34, -28, -7, - -4, 22, -30, -11, -3, -1, -44, 36, -38, -6, -9, 55, -34, 16, 27, 28, - -65, 62, 22, -32, 36, 7, 2, 27, -19, 50, -71, 44, -19, -67, 13, -3, - -14, -30, 33, 5, -12, -48, 60, -47, -28, 9, -6, 24, -11, -1, 13, 62, - -53, 26, 7, -9, 6, 58, -38, -10, 0, 5, -23, 23, 8, -14, -19, 21, - -9, 35, -17, -28, 14, 27, -17, -14, -29, 24, 6, -85, 74, -16, -18, -2, - -19, 47, -29, -18, -15, 52, 0, 7, -10, -23, 45, 13, -11, 12, -28, 27, - -26, 19, -69, 74, -55, 35, -21, 41, -24, -11, 39, -19, 7, 0, 7, -31, - 10, 7, -45, -17, 25, -12, 9, -19, 3, 28, -53, 76, -19, -25, 49, -2, - 6, -11, 24, -12, -23, 17, -1, -15, -10, -36, 26, -25, 0, -44, 59, -67, - 45, -31, 5, 15, 56, -12, -14, 12, 10, 24, -52, 37, 5, -35, 52, 23, - -55, -6, 24, -49, 26, 31, -24, 10, -33, 33, -11, 1, -49, 8, 7, 6, - -78, 12, -22, 10, -11, 13, 13, -18, 38, 50, -18, -5, 64, -52, 59, 33, - 3, -9, -6, -6, 26, -64, 18, -38, -47, 18, -33, 4, -39, 40, -31, -1, - -23, 48, -30, 18, 17, 32, -20, 32, 19, 24, -58, 49, -38, -9, 15, -28, - 16, -3, -2, -28, 33, -22, 23, -1, -34, 33, -48, 67, -55, 21, 51, -66, - -2, 21, -5, -17, 24, -63, 53, 8, -19, 9, -11, 36, -37, -35, 43, -35, - -3, -44, 68, -43, 53, -24, -5, 45, -16, -7, 14, 49, 3, -16, 22, -10, - 2, -28, -9, -6, -5, 32, -76, -22, 35, -26, -35, -12, 0, 3, 13, 6, - 36, 7, -32, 69, -15, 45, -20, -21, 35, 35, 1, -25, 11, 34, -24, -33, - -9, 5, -25, -49, 31, -41, 15, -42, 25, -30, 42, -80, 32, 2, -18, 33, - -12, -9, 43, -1, 4, -12, 54, -51, 22, -1, 18, 28, -29, 18, 7, 10, - -19, 8, -1, 12, -21, -6, -11, 4, 4, -28, -8, 22, -27, -5, 9, -25, - 20, -19, -36, 41, -8, 20, -32, 16, -29, 29, -13, 13, 4, 1, 17, 8, - 0, 9, 22, -1, -3, 28, -11, -39, 36, -31, 5, -11, -27, 22, -39, 7, - 15, -24, 19, 8, -37, 75, -52, 54, -65, 22, -13, 23, -26, 32, -19, 10, - -8, -3, 12, 16, -44, 25, -23, 14, 9, -46, 20, 2, -4, -8, -6, 18, - 4, -2, -3, -15, 4, 16, -9, -5, 34, -29, 27, -54, 98, -65, 11, -18, - 16, -13, 0, -2, 0, 22, -43, 31, -46, 58, 2, -25, -2, 16, -2, -29, - 17, 18, -26, 21, -17, 5, -4, -9, 0, -34, 50, -27, -3, 4, 31, -3, - -47, 32, -25, 36, 6, -47, 33, -28, 39, -36, 42, -28, 5, -3, -2, 25, - 27, -47, 20, 22, -5, -15, 1, -9, 16, -25, -10, -43, 40, -12, -19, 22, - -24, -5, 14, -44, 42, -32, 32, -45, 40, 41, -17, 27, -44, 38, -16, 15, - -36, 39, -13, -19, -4, 34, 1, -9, 9, -16, -2, -29, 31, -31, -4, 35, - -21, -52, 63, -41, 2, -7, 30, -35, 13, 9, 15, -4, 14, -36, 18, -14, - 55, -50, -6, 22, -23, -11, -5, 12, 17, -13, -43, 44, -33, 41, -42, 45, - 3, -12, 26, 11, -11, 35, -76, 39, 2, 0, 3, -4, 15, -19, -6, -33, - 11, 5, 16, -25, -2, 19, -7, -43, 30, 20, -27, -18, 12, 14, 33, -50, - 14, -15, 23, 8, 2, -10, -4, 53, -86, 24, -9, 41, -34, -21, 22, 24, - -54, 27, 13, 2, -9, 14, -29, 21, 40, -43, -9, -3, 27, -3, -22, 18, - 10, -23, -15, 1, 14, -12, 3, -30, 30, -22, -28, 36, -15, 39, -57, 21, - 3, -3, 33, -13, -2, 6, 20, -6, 4, -13, -5, -18, 13, -7, 7, 26, - -26, 16, 7, -64, 37, -7, 10, -20, 12, -11, 7, -34, 37, -12, -24, 34, - -18, -18, 39, 9, -42, -24, 43, 2, -16, 25, 12, -16, 8, 12, -44, 32, - -9, 23, 1, -37, 40, -23, -17, 18, -42, 23, -12, -7, 10, -6, 6, -13, - -13, 30, -23, 36, -4, 7, 17, -18, 18, -3, 8, 5, -1, -13, -15, 2, - -5, -16, 7, -52, 23, -38, 30, -30, 16, -26, 21, -22, 24, 3, 20, -28, - 22, 22, -31, 42, -16, -11, 32, -26, 0, 31, -14, 11, -15, 14, -17, -9, - 10, 11, 27, -38, -4, 14, -18, 36, -44, 0, -11, 16, -14, -2, 16, -34, - -23, 22, 4, -24, 14, -13, 16, 31, -28, -10, -6, 51, -27, 13, -49, 3, - 68, -38, 1, 8, -27, 26, -16, 0, 15, -36, 7, -6, 38, -11, 0, -14, - 10, -4, 22, -48, 31, -1, 23, -38, 1, 15, -7, 10, -1, -3, 4, -1, - 10, -2, -12, 3, -22, 5, 9, 8, 4, -14, 12, -3, -7, 22, -20, 3, - -6, 13, -15, -8, -7, 16, -14, -1, -3, 6, -17, 12, 22, -44, 68, -67, - 50, 13, -20, -11, -4, -20, -3, 22, -13, -20, 28, -7, 2, 11, -9, -23, - 5, 5, -26, 24, -31, 2, 20, 15, 2, -7, 4, 19, -6, 41, -51, -3, - 24, 27, -30, 25, -37, 1, -7, -2, -4, -26, -1, 12, 5, -12, 9, -30, - 5, 11, 26, -18, -32, 42, 7, 0, -23, 10, 10, -20, 53, -49, 6, -39, - 18, 3, -27, 41, -21, 16, 28, 14, -24, -15, 19, 5, 16, -31, -1, 45, - -25, -6, -16, -4, -19, 37, -47, 21, 2, -14, -7, 30, -35, 13, -30, 14, - 21, 11, -18, -28, 37, 12, -18, 9, 5, -1, 33, -41, 3, -7, -19, 8, - -14, 12, 15, -18, -4, 44, -25, 22, -46, 19, 40, -25, -12, -5, 17, 7, - -53, 25, 4, -10, 14, 16, -31, 40, -27, -11, -4, 28, -40, -5, -9, -3, - 34, -47, 33, -5, 11, -33, 33, 0, -14, 35, -18, -27, 11, 14, -37, 35, - -20, 7, 15, 2, 27, -17, 15, -31, -1, 11, -27, 24, -26, 14, 13, -35, - 20, -13, -2, 16, 16, -6, 2, 15, -7, -22, 51, -36, -2, 20, -19, 23, - -20, -19, -9, -14, 8, -4, -13, 35, -66, 36, -37, 3, 19, -1, 15, 32, - -45, 71, -15, -5, 12, 34, -33, 24, -5, 20, -43, 42, -59, 13, -12, -69, - 66, -29, -34, 17, 7, -28, 24, 5, -27, 51, -40, -9, 46, 3, -17, 36, - -56, 63, -7, -31, -19, 53, -12, -10, 4, 19, -47, 35, 0, -40, 17, -14, - 13, -11, 11, 3, -39, 22, 5, 21, -19, -11, 25, -4, -5, 20, -13, 25, - -6, -16, -16, 29, -61, 25, -33, 12, -17, 7, -19, 34, -27, 15, -19, 32, - -26, 54, -46, 6, 9, 14, -6, -6, 23, -32, 58, -19, -5, 15, 46, -42, - 39, -7, -23, -7, -14, -22, 42, -66, 0, 4, -8, -11, -4, -3, -7, 7, - -23, 30, -14, 19, 8, -9, 20, 36, 5, -24, 25, 12, -20, 16, -53, 60, - -49, -26, 24, -87, 67, -49, 13, -7, 5, -14, 5, 11, 38, -3, -15, 27, - 26, -36, 20, 30, -47, 29, -5, 9, -10, 38, -65, 47, -49, -4, -10, -6, - 1, -1, -28, 16, -14, 3, -14, 27, -8, 1, 2, 23, 21, -53, 40, 24, - -16, -12, -2, 11, 17, -8, -18, 8, -25, 28, -10, -12, 13, -51, 10, 35, - -10, -8, -9, 8, 10, 14, -20, 4, -9, 37, -5, -2, 2, 4, -9, -5, - 16, -16, -23, 13, 7, -9, 14, -49, 13, 8, -3, -13, -9, 22, -8, 12, - -13, 36, -36, 35, -17, 23, -12, 0, -37, 50, -31, -8, -31, 43, -4, -11, - 0, 3, -7, -19, 16, -16, -28, 46, -28, 27, -13, 33, -21, -1, 39, -13, - 3, -4, 4, -39, 74, -30, -17, 33, -3, -20, -12, 24, -94, 75, -63, 54, - -62, 23, 4, 12, -33, 22, -35, 16, 12, -28, 34, 2, -12, -3, 22, 23, - -31, -6, 26, 4, -41, 8, 37, -15, 21, -7, 18, -51, 42, -27, 35, -45, - 35, -30, 18, 9, -20, 1, 18, -12, -51, 61, -61, 24, -20, 1, 11, -5, - -2, -12, 11, 20, -35, -2, 37, -21, 23, -15, -2, 19, -51, 82, -50, 20, - 29, -26, -34, 49, -2, -16, 11, -17, -4, 6, 15, -35, 13, -15, -10, -17, - 15, 4, -42, 43, -31, 34, -30, 53, -43, 40, -22, 9, 9, -24, 64, -41, - 29, -17, 8, -15, 8, 2, -27, 7, 10, -28, 0, 30, -50, 6, -13, -14, - -21, 11, 9, 13, -47, 35, -11, 32, 28, -28, 1, 32, 2, -19, 28, -24, - 9, 0, 19, -6, 16, -33, 6, -23, 33, -31, -1, -4, 26, -22, -22, -10, - -11, 18, -26, 19, -8, -4, 21, -14, 36, -2, 12, -48, 49, -1, -13, -5, - 8, -3, 9, -4, -18, 15, 28, -50, 10, 4, -7, 4, -39, 37, -39, 11, - 2, -20, 13, 4, -6, 0, 35, -17, -9, 6, 38, -21, -1, -1, 12, -2, - -16, 15, 7, -22, 18, -23, 11, 3, -9, -39, 29, -31, 44, -41, 0, 5, - 21, -9, -25, 25, -6, 38, -55, 38, -14, 6, -26, 38, -24, 39, -39, -15, - 17, 16, -20, -27, 17, 24, -20, -20, 33, 8, -31, 2, 2, 27, 11, -4, - -7, 31, -20, -9, 4, -4, 17, -32, 2, -18, 31, -35, 38, -52, 42, -1, - -28, -26, 25, 3, -51, 42, -35, 35, -39, 44, -38, 20, 20, -51, 34, 45, - -10, -7, 27, -19, 33, -49, 22, 2, -7, -5, -27, 59, -24, -20, 21, -8, - -15, 24, -51, 3, 9, -23, 24, -30, 2, 29, -26, -2, 4, 10, 0, -18, - 50, 3, 9, -14, 17, -18, 24, -13, -33, 7, 25, -50, 2, -2, 30, -58, - 31, -8, 23, -11, -1, -24, 21, 1, -41, 47, -30, 28, -39, 56, -16, -20, - 51, -45, 33, 6, 23, -12, -19, -2, 7, 1, -14, -5, -11, -20, 25, -17, - 7, -22, 21, -19, 34, -47, -2, 1, 33, -30, 14, 20, 6, -9, 17, 13, - -22, 19, -58, 23, 26, -15, -52, 2, 18, 10, -13, 46, -5, -8, -6, 4, - -14, 5, 11, -13, -7, 42, -25, 8, -37, 35, -10, 6, -25, 16, 15, -15, - -9, -20, 18, -23, 26, -34, 35, -22, -10, 9, 14, -6, -21, 27, -8, 4, - 1, 3, -19, 28, 2, -7, 30, -8, -13, 11, -9, -9, -19, 12, 0, -23, - -1, -23, -6, 27, -31, 41, -28, 13, 5, 9, -21, 6, 2, -2, 18, -16, - 31, -25, 40, -38, 39, -13, 8, 14, -3, 9, -30, 6, -12, -7, -15, 30, - -64, 6, -22, 13, -8, 14, -40, 9, 32, -35, 14, -1, 12, -25, 63, -25, - 35, -2, 19, -5, -3, 20, -29, -1, 35, -37, 53, -46, 4, -14, 22, -27, - 23, -64, 8, 5, -25, 41, -18, 14, -42, 53, -56, 35, -42, 71, -63, 45, - -38, 29, -12, 33, -22, 0, 24, -13, 3, 13, 1, -10, -19, 11, 19, -38, - 5, -2, -18, -21, 33, -54, 41, 9, 4, -1, -21, 3, 3, 37, -31, 34, - -40, 34, -19, 30, -26, 23, -53, 55, -8, -13, -16, 7, -13, 46, -38, 2, - -3, 17, -1, -26, 18, -57, 68, -27, 23, -19, 32, -39, 2, 2, -18, 12, - -16, 4, -23, 38, -65, 40, -5, 13, 19, -26, -13, 60, -25, 7, 1, 10, - 22, -24, 23, -20, -16, -17, 14, -32, 26, -4, 17, -15, 9, -29, 4, -29, - 11, 36, -18, -19, -2, 5, 28, -23, 31, 6, 4, 18, -14, 4, -7, 0, - -45, 61, -31, 5, -15, -23, -21, 52, -62, 4, 22, 1, -9, 15, -24, -27, - 60, -49, 38, 0, -6, 1, 13, 7, 4, 19, 6, 0, 27, -28, -14, -21, - 17, -1, -30, 23, 10, -36, 18, -19, 2, -18, 0, 6, -1, 7, -1, -37, - 26, 15, -35, 41, -24, 10, 10, -9, -12, 12, 7, 3, 10, -11, 11, -14, - 27, -49, 71, -55, 25, 8, -11, 11, -5, -22, 7, 15, -17, -11, 18, 4, - -54, 43, -38, 27, -1, 7, -13, 19, 10, -41, 50, -41, 13, 9, 10, -41, - 38, -13, 13, -2, -2, -4, 9, -36, -5, 22, -31, -18, 8, 21, -22, 21, - -24, 12, 3, 16, -24, 25, -16, 22, -35, 14, 3, 11, 12, -22, 40, -11, - -25, 14, 0, 14, -2, 2, -10, -12, 14, -51, 11, -21, 55, -27, 9, 3, - 38, 7, -25, 5, -19, 6, -14, 0, -10, 21, -57, 35, 18, -21, 21, -40, - -13, 24, -24, -12, 10, -1, 11, 10, -12, -5, 38, -45, 23, 26, -13, -9, - 32, 6, -3, 30, -28, -28, 27, 3, -10, -11, -10, 16, -28, 21, -12, -3, - -1, -33, 14, -30, 12, -20, 40, -15, 7, 19, -18, -1, -1, 9, 4, -23, - 32, 17, -19, 12, 16, -45, 4, -6, 18, -28, 36, -44, 44, -29, 10, 4, - 14, -8, -13, 9, -30, 39, -17, -5, 10, -10, 5, -1, -16, 17, -7, -9, - -10, 15, -21, 9, 10, 8, -10, -6, 3, -21, 34, -3, 6, -4, 15, 3, - -2, 4, 26, -44, 30, -43, 2, 9, -5, -7, -18, 16, -28, 0, 5, -7, - 0, 7, 0, -7, 21, -14, 17, 15, 2, -40, 7, 44, -30, 55, -33, -19, - 40, -30, 17, -1, -20, -20, -20, 5, 14, 1, -7, -32, 26, -11, -11, 24, - -23, 17, 17, 8, -19, 18, 11, -6, 17, -4, -13, 14, -9, 21, 9, -16, - -8, 2, -16, 3, -9, -32, 6, -36, -4, 0, 10, -36, 26, -11, 3, 31, - -20, 1, 7, 4, 45, -35, 39, 0, 4, 28, -21, 29, -39, 27, 15, -6, - -14, 17, -25, -33, 16, -15, 18, -43, 28, -61, 33, 1, -27, 13, -19, -20, - 26, 11, -27, 16, -21, 33, -13, 43, -44, 13, 24, -10, 35, -39, 36, 20, - -39, 68, -68, 23, -16, -7, 0, 36, -30, -13, -27, 42, -21, -4, -23, -2, - 23, 0, -3, -3, 2, 4, -15, -5, 28, -10, -20, 24, -7, 27, -58, 31, - -7, -29, 39, -40, 41, -35, 8, -25, 30, 31, -17, -9, 3, 36, -8, -18, - -11, 29, -2, 6, -25, 21, -5, -8, -17, -24, 20, -26, 20, -23, 46, -26, - -13, 8, 13, 2, -15, 4, -9, 28, -25, -19, 49, 18, -50, 45, -11, -17, - 5, -61, 15, 4, -22, -1, 22, 23, 33, -55, 46, -25, 37, 18, 2, -9, - 11, -47, 23, -8, -25, 37, -32, 2, 5, 12, -18, -5, 19, -27, -7, 20, - -40, 32, -44, -21, -29, 58, 8, -9, 57, -28, 29, -32, 14, -14, 4, 23, - -33, 16, -4, -16, 21, 38, -37, 23, 10, -32, 17, 17, -12, -59, 9, -3, - -12, 22, -13, -8, -26, 16, 1, 33, -9, -17, 16, -7, 21, -44, 26, 5, - 35, -36, -1, 13, 36, -36, 39, -36, 17, -13, 2, -33, 20, -13, -51, -2, - 9, -2, 35, -21, 19, -20, 18, -19, -5, 30, -39, 30, 22, -35, 74, -52, - 33, -15, 17, -21, -13, 11, 6, -25, 25, -31, 29, -18, 18, -52, 40, -11, - -17, -26, 56, -56, 69, -53, -14, 32, -10, -8, -2, 18, -14, 20, -18, 20, - 22, -27, 0, -25, 56, -46, 16, -28, 52, -5, -33, 76, -75, 36, -1, -42, - 42, -46, 13, -13, 25, -7, 35, -55, 5, 63, -56, 11, -24, 13, -8, -10, - -27, 15, -15, 44, -66, 52, -3, -6, 0, 23, -33, 79, -55, 30, -27, 37, - -18, -6, -2, -19, 52, -22, -50, 60, -32, 28, -56, 44, -28, 15, -37, -9, - -28, 63, -75, 9, 39, 28, -21, 5, -17, 15, 2, -13, 30, 13, -14, 10, - -12, 30, -22, -10, 4, -8, -9, 14, 6, -39, 34, -6, 4, 1, -5, 0, - 33, -73, 34, -12, 23, -9, 53, -47, 17, 3, -18, -6, 2, -19, -12, -7, - -45, 72, -9, -71, 55, -58, 50, -18, -36, 37, 19, -11, 13, -35, 32, 6, - 5, 18, -6, 19, -26, 32, 16, 20, -43, 20, -10, -7, 16, -7, -68, 21, - -36, 7, 19, -22, 19, -3, -35, -37, 25, 21, -57, 67, -9, 9, 32, -11, - 28, -18, 35, -41, 60, -19, 29, 0, -38, 29, -6, -35, 0, 25, -37, -1, - -31, -42, 30, -19, -21, 36, -66, 53, -33, 15, 16, -13, 20, -35, 73, -4, - 18, 39, 4, 1, 3, 21, -2, -12, -18, -51, 44, -17, -50, 48, -30, -16, - -13, -35, -7, 25, -33, -14, 14, 0, 8, -30, 45, -13, 50, -53, 28, 60, - -33, 23, -7, -2, 15, 36, -11, 9, 19, -44, 4, -21, 19, -5, -27, -45, - 48, 9, -47, -23, 12, 3, -25, -8, -21, 63, 1, -29, 31, -18, 19, 16, - -24, -17, 50, -65, 65, -56, 93, -45, -17, -25, 45, -18, 23, -53, 50, -15, - -12, -39, 51, -11, 11, 13, -31, 54, -14, -29, 22, -11, 10, -41, -19, 52, - 10, -51, -60, 72, -13, 12, -38, 19, -2, 31, -56, 37, -4, -10, 22, -14, - -33, 48, -40, 38, -14, 27, -24, 19, 29, 17, -31, -2, -41, 34, -17, 2, - 5, 5, -13, -30, 14, 9, -9, 7, -11, 15, 5, -28, -2, 0, 45, -30, - -25, 1, 10, 29, -55, -24, 52, -5, 5, 20, -25, 20, -15, 14, -64, 95, - -53, 32, 13, -26, 31, -8, -27, 18, 48, -57, -3, -10, 25, -24, -32, -9, - 18, 18, -33, -15, 27, -22, 14, -5, 10, 51, -21, -25, 19, 5, -15, -29, - 16, 1, 33, -39, -12, 56, 14, -63, 36, -2, -17, 52, -11, -37, 5, 19, - -52, 38, -23, -60, 93, -75, 52, -30, -2, -11, 49, -11, -25, 1, 42, -35, - 26, -35, -9, 24, -1, 10, -6, -12, 7, 4, 22, -10, 41, -25, -8, -4, - -2, 28, -43, 19, -32, 4, -27, 9, -47, 51, -16, 12, -52, 49, 8, 7, - -37, 27, -33, 80, -44, 6, 5, 28, -15, 16, 15, 2, -12, 50, -77, 38, - -38, -45, 30, 8, -37, -13, -8, -18, 50, 3, -54, 29, 29, -20, 4, 52, - -57, 62, -52, -2, -9, 62, -64, -5, 24, 23, 0, -7, -23, 48, 25, -78, - -9, 38, 18, -46, 30, -51, 39, 4, -48, 22, 15, 13, -39, 8, 10, 31, - -20, -22, 21, -17, 17, -23, 22, 22, -24, -36, 11, 31, -16, -28, 34, -4, - 0, -20, 6, -2, 35, -13, -60, 36, 24, -45, 21, -2, 36, 0, -73, 66, - -37, 39, -66, -18, 22, 17, -17, -25, 24, 36, -47, 3, 25, 7, 8, 0, - 1, 14, 20, -21, 4, 21, 12, -77, 17, -4, -12, 31, -57, 38, -11, -4, - -31, -6, 29, -34, 11, 13, -20, 82, -36, -36, 40, -28, 77, -68, 12, 2, - 34, -23, 5, -31, 11, -5, 44, -105, 79, -31, -29, -16, 37, 8, 18, -14, - -9, 32, -10, -11, -7, 0, 41, 34, -56, 7, 13, -2, -31, 33, -67, 42, - -31, -2, 22, -49, 18, -34, -11, 38, -40, 56, -16, 14, -2, 24, 0, 0, - 41, -21, -8, 6, -11, 11, 11, -45, 26, 4, -17, -7, -26, -30, 7, -21, - -29, 56, -29, 37, -3, 2, -8, -3, 22, 11, 40, -13, 58, -6, -38, 48, - -23, 15, -52, -14, -6, 49, -66, -20, -11, 34, -32, -44, 41, 4, 20, -59, - -24, 77, 23, -24, -17, 42, 19, -3, -19, -34, 54, 17, -22, -17, 46, -24, - -9, 3, -22, 40, -47, -49, 72, 4, -18, -48, -33, 55, -4, -41, -51, 105, - -26, -3, -22, 64, 28, -51, 31, 2, 15, 27, -62, 18, 21, 6, -15, -54, - 52, -14, -46, 7, -30, 32, -1, 6, -37, 39, -3, -23, -20, 24, 23, 17, - -25, -6, 67, -36, -11, -37, 56, -79, 3, 30, 45, -39, -17, -2, 21, 2, - -4, -3, 3, 1, 16, -16, 9, 30, -37, 8, -6, 46, -65, 3, 14, -59, - 104, -60, 2, 46, -29, -30, -2, -10, 24, -52, 63, -31, 81, -85, 18, 35, - 16, -32, -18, -24, 45, -16, -15, -13, 37, -15, -20, -42, 91, -45, -15, -9, - -16, 64, -11, -23, 31, -18, 38, -42, 3, 12, 1, 5, -5, 22, -44, 69, - -31, -18, 15, 21, -64, -13, 34, -37, 30, -26, -15, 6, -3, 44, -28, 11, - -3, -1, 16, -18, 25, -14, -26, 69, -56, -5, 31, -51, 24, 3, -36, 9, - 52, -34, 31, 21, -11, -68, 31, -24, 53, -25, -29, 31, 23, -20, 9, -15, - -11, 19, 12, -47, 84, -60, -16, -11, 17, -4, -15, 30, -45, 32, 34, -63, - -7, 68, 0, -35, 17, 7, 33, -31, -8, 7, -32, 43, -13, -18, 15, 31, - -32, -34, 5, 8, -16, 20, -26, -29, 32, -9, -20, 17, 33, -31, -13, -5, - 86, -52, 23, -19, 2, 13, 14, -7, -20, 36, -16, -3, 8, 0, 14, -69, - 76, -77, 25, -14, -17, 3, 39, -14, -46, 31, -2, -7, 37, -45, -6, 24, - 28, -37, 22, 13, -35, 4, 8, 23, 7, -43, 53, -59, 23, 16, 4, -25, - -15, 23, -9, -20, 26, -18, -1, 25, -3, -48, 53, 2, -43, 7, 14, -34, - 15, 28, -33, 53, -2, -59, 31, -34, 40, 19, -27, 20, -2, 8, 2, 3, - -8, -8, 4, -57, 62, 24, -72, -4, 17, -17, -3, -10, -26, 42, -30, 12, - -29, 31, -10, 3, 24, 2, 21, -1, -36, 52, -7, 21, 14, -32, -18, 73, - -45, -6, 8, -12, -66, 21, 25, -17, -6, -35, -14, 27, 26, -47, 40, -51, - 56, -19, -24, 31, 6, 4, 11, -3, 37, -47, 41, -32, 50, 0, -72, 25, - 16, -19, -1, -2, -4, -41, 20, 6, 9, -3, -44, 32, -54, 83, -30, -26, - -8, 46, -47, 29, 5, -19, 37, -9, -20, 65, -14, -21, -4, 10, 28, -28, - 18, -29, 35, -25, 3, -17, -31, 4, -4, 0, -9, 41, -42, -34, 40, -15, - 8, -24, -8, 36, 22, -18, -27, 70, -39, 39, 1, -5, 57, -54, 12, 36, - 3, -13, -1, -32, 69, 6, -64, -50, 13, -13, -34, 22, -13, 0, -10, -38, - 41, -11, -22, -3, 11, 4, 38, 22, -10, 24, 32, -23, 23, -6, 8, -4, - 21, -61, 66, -35, -41, 7, 5, -29, -19, -45, 23, -2, 46, -84, 78, -59, - 40, -10, -18, 79, -35, -5, -1, 36, 16, 13, -21, -31, 52, 2, -50, 34, - -5, -36, -37, 65, -42, 1, 16, -42, 35, -8, -50, -6, 41, -16, 27, -41, - 22, 64, -50, -11, 31, -18, -17, 5, -3, 34, 34, -40, -41, 66, -37, 20, - -11, -20, 29, -5, -14, -15, 45, -33, -37, -11, 36, -25, 18, -8, 20, 1, - -23, 60, -32, 0, 34, -24, -32, 64, -39, -35, 48, -7, -13, 4, -39, 32, - 0, 1, -31, 2, -12, 43, -38, -8, 26, 0, -57, 53, 19, -22, -10, 17, - -30, 57, 6, -31, 33, 10, 0, -48, 29, -4, -23, 6, -7, 31, -39, 15, - -41, 38, -19, 5, -37, 23, 11, -28, -14, 59, -48, 8, 22, -20, 50, 15, - -34, -26, 67, -8, -15, -21, 53, -27, -9, 13, -24, -35, -10, 9, -15, -13, - 18, -38, 28, 22, -14, 2, -22, 42, -20, 22, 12, -20, 45, -16, 17, -16, - 22, 34, -27, -13, -7, 1, -21, -1, 13, -44, 36, -51, -8, 16, -7, -30, - -46, 90, -54, 35, 1, 11, 9, 5, 1, -19, 20, 11, 21, -1, -49, 41, - -6, 0, 37, -74, 9, 20, -12, -47, 65, -68, 28, -5, -26, 15, 14, -3, - -23, 8, 18, -22, 13, 3, 31, -21, -5, 8, 24, -21, 48, -20, -21, 41, - -43, 4, 18, 21, -60, 9, -27, 1, 13, -15, -33, 15, 23, -48, -8, 53, - -50, 1, 6, -40, 90, -10, -15, 51, -52, 53, 29, -68, 50, 52, -30, -21, - 7, -1, -8, -29, 11, -47, 6, 18, -12, -25, 53, -34, -23, -6, 19, -7, - -13, 7, 5, -2, 14, 11, -15, 51, -29, 6, 12, 20, -27, 29, -12, 4, - -18, -5, 2, -17, 10, -19, 2, -8, -5, 56, -82, 49, 0, -42, 48, -25, - 19, 6, -41, 17, 35, -18, -17, -29, 26, 10, 4, -24, 26, -35, 47, -36, - 2, 2, -23, 27, -42, 55, 0, -21, 19, 21, -8, 1, -3, -15, 7, 12, - -23, -29, 47, -12, 4, -28, 17, 16, -7, -31, -8, 25, -6, 0, 13, -20, - 6, 3, -7, 19, -21, -37, 27, 41, 7, -14, 12, -59, 57, 6, -49, -2, - -8, 0, 19, 13, -20, -5, 16, 23, 4, -15, -33, 14, 2, 15, -26, -28, - 10, 45, -17, -24, 14, 17, -39, 22, -8, 48, -51, -1, -16, 52, -34, -21, - 11, 13, 18, -57, 26, 15, 27, -36, -12, 40, -7, -14, 15, -86, 91, -20, - -13, -7, 53, -43, 33, -25, 13, 3, -38, -19, 28, 28, -18, -74, 58, -3, - 40, -27, -34, 30, 28, -1, -22, 2, 9, -8, -12, 12, 21, -35, -2, -17, - 17, 2, -27, 22, -36, 38, -11, 2, -20, 7, 20, -29, 39, 11, -3, 9, - -24, 47, -36, 28, -14, -16, 38, -37, 12, -15, 18, -69, 56, -31, 17, -16, - -18, -13, 21, -6, -9, -25, 37, 6, -1, -2, 5, -1, -26, 39, 6, -3, - -10, 0, 12, 30, -12, -31, 24, 13, -14, 9, -23, 31, -43, -17, -2, 13, - -23, -14, -21, 21, 19, -22, -12, 24, 41, -26, 10, 12, 19, -3, 9, -12, - 26, 12, -52, -4, 16, -3, 0, -43, 7, 5, -14, -9, 12, -28, 15, -23, - -2, 35, -12, -8, -10, 24, 57, -55, 26, -18, 19, 44, -30, 0, -5, 50, - -56, -1, 8, -5, -39, 9, 19, -39, 38, -73, 30, -1, 2, 16, -24, 6, - 29, -71, 70, -18, -6, 8, 31, 4, -13, 23, -11, 31, -56, 57, -25, 10, - 15, -44, -10, 16, -17, -44, 18, -28, 10, 8, -21, -4, -9, 28, 20, -16, - 17, -17, -6, 30, 0, 11, -21, 25, 25, -1, 31, -56, 31, 14, -32, 2, - -19, 4, -17, -26, -13, 42, -59, 15, -29, 53, -4, 1, -23, 13, 31, 5, - -22, 3, 30, -28, 2, -24, 37, 1, -3, -18, 18, 41, -40, 3, -40, 48, - -31, -5, -20, 5, 9, 0, -30, -1, 26, -15, -5, -6, 51, -25, -27, 7, - 44, -11, 10, -32, 14, 46, -31, 6, -11, 37, -33, -14, 19, -4, 22, -50, - 26, -45, 21, 1, -23, 10, -15, 17, -63, 53, -14, -18, 56, -49, 21, 25, - -7, 4, -21, 52, -33, 19, 3, 11, -9, -7, 0, -49, 22, -17, 25, -10, - -11, 5, -19, 35, -26, 20, -7, -21, 37, -25, 29, -23, 3, 6, 17, -26, - 27, 5, -16, 10, -9, -24, 11, -4, -17, 9, -5, -13, 1, -2, 10, 5, - -13, 21, 0, 8, 9, -22, 12, 13, -24, -3, -22, 42, -18, 3, -4, -15, - 1, -2, 8, -17, -13, -2, 1, 23, 10, -2, -31, 23, 17, -15, -9, -24, - 31, 2, 19, -24, 4, -22, 28, -5, -20, 34, -57, 26, 71, -51, 28, -24, - -12, 28, 10, -35, -4, -6, 7, -7, 8, -52, 61, -52, 7, -9, -21, 9, - 18, -19, 3, 34, -53, 56, -29, 20, -11, 22, 4, -1, 23, 2, 1, 24, - -15, 3, -32, 13, 21, -37, 6, -11, -25, 22, 7, -2, -41, 4, 10, -30, - 39, -24, -7, 8, 12, 9, -1, -35, 13, 3, 9, -18, 21, 26, -14, 41, - -8, -35, 31, -29, 17, -20, -12, 20, -30, 27, -26, 21, -9, -6, 5, -14, - 3, -11, 15, 2, 8, -14, -5, 20, 4, 0, -31, 9, 4, 25, -24, 5, - -5, -13, 27, -7, -32, 1, -5, -10, 28, 7, -4, 11, 10, 22, -3, -22, - -15, 6, -3, -3, -27, -25, 5, 8, -10, -17, 18, -18, 12, 32, -18, 1, - 25, -25, 50, 7, 2, 0, -3, -3, 16, -20, 9, -14, -15, 21, -27, -3, - -17, 23, -31, -4, -18, 31, -21, 6, 0, 18, -16, 27, 3, -7, -17, 17, - -15, -11, 19, -16, 6, 1, 12, -18, 5, -6, 24, 0, -19, 22, -23, 43, - -35, 18, 22, -40, 1, 12, -4, -18, 26, -53, 34, 1, -10, 1, -18, 27, - -25, -24, 33, -31, 9, -43, 53, -29, 33, -17, 5, 23, -7, 2, 23, 29, - 1, -8, 20, -10, -1, -22, -3, -17, 4, 22, -61, -23, 31, -26, -29, -12, - 2, -3, 12, 10, 26, 5, -29, 61, -9, 32, -18, -14, 29, 31, 2, -19, - 9, 31, -20, -31, -7, 5, -22, -47, 31, -40, 15, -39, 22, -27, 40, -78, - 31, 4, -19, 33, -13, -8, 41, -1, 5, -12, 53, -51, 22, -1, 18, 28, - -29, -1, 0, 0, 11, 13, -2, -7, -5, -3, -3, 1, 2, -6, 0, 3, - 8, 9, 5, 0, 14, -5, -28, -39, -39, -36, -37, -27, -43, -49, -13, 4, - 6, -7, 0, -1, 3, 23, 39, 29, 35, 41, 21, 35, 0, 0, 21, 59, - 67, 31, 21, 13, -3, 18, 34, 28, 5, 3, 13, 3, 0, 12, -7, -33, - -27, -39, -14, -34, -50, -30, -37, -35, -53, -74, -70, -61, -62, -62, -50, -44, - -61, -36, -3, -23, -15, -12, -17, -20, -6, 11, -6, -12, -6, -17, 7, 46, - 71, 87, 79, 70, 77, 104, 109, 66, 37, 34, 27, 31, 40, 43, 31, 23, - 17, 2, 10, 24, 32, 66, 56, 17, -13, -55, -54, -21, 19, -19, -56, -77, - -37, -27, -10, -6, -38, -36, -37, -3, 23, 25, 25, 19, 35, 34, -7, -5, - 28, 60, 66, 65, 51, 34, 22, 53, 51, 15, 20, 11, 21, 21, 16, 24, - -2, -23, -36, -35, -21, -29, -51, -51, -47, -57, -85, -80, -70, -100, -97, -82, - -78, -76, -64, -51, -56, -54, -49, -70, -62, -53, -54, -60, -57, -65, -78, -76, - -62, -39, 0, 31, 13, 6, 31, 54, 55, 43, 30, 13, 9, 31, 23, 43, - 28, 24, 36, 36, 24, 30, 54, 70, 113, 103, 75, 4, -3, 40, 55, 50, - 23, 9, 25, 29, 48, 41, 29, 14, 6, 40, 63, 49, 39, 71, 80, 64, - 21, 12, 17, 29, 68, 71, 52, 36, 24, 37, 24, 1, 5, 3, -6, -4, - 1, 13, -3, -22, -35, -31, -27, -58, -59, -43, -55, -71, -76, -71, -88, -103, - -95, -98, -85, -77, -68, -71, -58, -50, -47, -52, -46, -40, -47, -44, -48, -56, - -60, -91, -96, -68, -15, -6, -16, 9, 3, 29, 31, 29, 8, 10, -6, 5, - 10, -6, -4, -6, 15, 7, -2, 2, -5, 30, 91, 107, 74, 8, -3, 14, - 27, 32, 26, 17, 21, 18, 34, 49, 20, -3, 2, 30, 42, 20, 36, 68, - 79, 81, 52, 27, 22, 37, 80, 95, 77, 77, 72, 74, 57, 55, 56, 41, - 35, 22, 40, 58, 32, 23, 24, 26, 0, -7, 6, -2, -16, -26, -31, -45, - -46, -64, -77, -79, -73, -72, -75, -59, -49, -56, -35, -48, -44, -50, -43, -59, - -58, -40, -78, -119, -123, -95, -73, -40, -52, -45, -29, -18, -3, -1, -11, -21, - -28, -12, -24, -29, -21, -29, -16, -3, -5, -30, -40, 1, 69, 96, 78, 31, - 14, 23, 17, 19, 33, 20, 9, 9, 45, 50, 14, 3, 12, 13, 16, 7, - 14, 35, 54, 75, 56, 24, 1, 18, 47, 47, 60, 62, 66, 69, 46, 54, - 53, 38, 11, 18, 44, 41, 28, 33, 37, 22, 14, 15, 13, 13, 1, -1, - -13, -6, -11, -38, -33, -47, -40, -46, -31, -29, -22, -9, -5, -9, 9, 4, - -23, -14, -4, -3, -26, -69, -87, -74, -60, -42, -49, -33, -28, -16, 9, 2, - -16, -22, -25, -25, -33, -32, -44, -58, -41, -11, -19, -51, -77, -43, 24, 47, - 49, 34, 21, 5, -9, 5, 18, -10, -14, 2, 23, 26, -3, -7, -4, 2, - -3, -10, -4, -6, 38, 64, 50, 25, 1, 11, 17, 21, 36, 58, 62, 46, - 46, 61, 56, 27, 11, 20, 18, 27, 15, 31, 26, 23, 17, 7, 16, 0, - -9, -10, -3, -8, -14, -25, -36, -56, -41, -39, -50, -30, -12, -23, -8, 10, - 23, 17, -2, 3, 14, 26, 7, -33, -48, -53, -52, -35, -30, -30, -23, 3, - 21, 17, 8, 7, -8, -1, 0, -6, -29, -50, -26, 10, 5, -38, -64, -41, - 5, 22, 49, 63, 38, 20, 13, 26, 15, -7, -9, -1, 28, 9, 1, -4, - -12, -1, -5, -20, -38, -32, 6, 38, 36, 16, 10, 0, -8, -13, 15, 41, - 25, 30, 30, 52, 35, 17, 8, 3, -5, -5, -6, 4, 7, 4, 4, 3, - 3, -20, -25, -23, -28, -22, -18, -47, -50, -54, -62, -67, -62, -48, -43, -44, - -31, -10, 17, 10, -8, 1, 22, 24, 17, -1, -21, -40, -39, -26, -38, -32, - -21, 2, 17, 26, 29, 18, 5, 15, 35, 19, -11, -37, -9, 33, 17, -6, - -30, -23, -10, 22, 65, 73, 71, 47, 57, 66, 38, 15, 16, 23, 34, 35, - 27, 10, 11, 21, 32, -4, -26, -29, 4, 29, 28, 38, 32, 17, -6, -6, - 17, 32, 21, 31, 39, 49, 36, 27, 25, 13, -1, -11, -8, -1, -15, -11, - 4, -7, -9, -14, -38, -46, -35, -31, -43, -53, -54, -72, -84, -88, -86, -79, - -73, -86, -69, -40, -16, -23, -28, -13, -9, 5, 5, -10, -34, -45, -48, -52, - -61, -59, -42, -38, -9, 13, 19, 8, -14, 18, 42, 28, -18, -31, -3, 11, - 21, 13, -9, -17, -22, 9, 57, 71, 62, 68, 83, 82, 65, 38, 38, 31, - 52, 57, 45, 23, 25, 51, 56, 21, -2, -8, 7, 21, 28, 55, 55, 37, - 15, 17, 30, 30, 30, 48, 55, 65, 55, 54, 61, 42, 24, 22, 13, 6, - 6, 4, 4, 17, 19, 1, -20, -23, -25, -27, -26, -44, -44, -62, -79, -91, - -83, -76, -99, -104, -87, -63, -51, -40, -42, -40, -29, -16, -6, -31, -40, -47, - -63, -68, -81, -76, -81, -75, -49, -15, -5, -34, -38, 2, 15, 8, -29, -43, - -33, -18, -11, 8, -9, -42, -45, -14, 25, 33, 41, 54, 67, 75, 71, 46, - 30, 23, 52, 55, 38, 20, 25, 53, 59, 35, 17, 6, 3, 5, 27, 64, - 61, 49, 40, 40, 45, 36, 38, 63, 69, 69, 77, 85, 78, 76, 63, 48, - 38, 42, 28, 15, 30, 35, 41, 27, 14, 0, -4, -2, -14, -16, -15, -35, - -65, -63, -56, -64, -80, -94, -77, -71, -46, -34, -42, -37, -21, -6, -5, -16, - -20, -35, -44, -62, -66, -66, -96, -94, -58, -26, -32, -44, -50, -14, 2, -9, - -26, -41, -53, -49, -27, -5, -28, -59, -65, -47, -20, -11, 7, 15, 28, 51, - 57, 32, 7, 2, 30, 32, 15, 0, 7, 30, 30, 24, 21, -2, -19, -20, - 6, 37, 40, 31, 40, 45, 30, 29, 35, 49, 52, 69, 74, 78, 89, 79, - 72, 62, 60, 51, 37, 29, 29, 42, 51, 46, 30, 32, 18, 2, 8, 13, - 15, -13, -35, -35, -38, -40, -53, -71, -70, -58, -34, -38, -32, -28, -9, 10, - 10, 7, 11, -7, -28, -21, -26, -47, -80, -84, -49, -18, -28, -38, -32, -8, - -4, 4, 3, -23, -46, -44, -19, -5, -22, -42, -55, -56, -35, -25, -12, -8, - 11, 43, 51, 33, 1, 0, 24, 18, 1, -5, 0, 1, 9, 15, 21, -2, - -38, -36, -19, 2, 2, 19, 26, 19, 20, 10, 11, 20, 31, 37, 49, 62, - 64, 61, 60, 61, 50, 51, 32, 10, 16, 27, 31, 33, 33, 36, 7, -6, - 3, 14, 12, -10, -21, -40, -34, -33, -47, -65, -67, -60, -40, -40, -44, -25, - -10, -4, 14, 26, 22, 4, -7, 8, 8, -22, -67, -65, -33, -19, -24, -20, - -18, -8, 1, 26, 30, -2, -22, -25, -6, 5, -1, -13, -38, -43, -31, -21, - -16, -16, 9, 47, 61, 35, 22, 22, 31, 24, 10, 13, 5, -2, 0, 28, - 34, 1, -21, -30, -28, -18, -5, 5, 18, 20, 14, 6, 6, 12, 9, 20, - 33, 39, 51, 51, 42, 51, 51, 48, 20, 9, 7, 5, 7, 15, 28, 19, - -1, -16, -15, -4, 4, -16, -30, -41, -45, -41, -50, -79, -77, -69, -65, -64, - -56, -45, -40, -28, -4, 21, 17, -8, -9, 21, 16, -18, -56, -58, -44, -39, - -24, -22, -28, -22, -4, 29, 31, 13, -9, -16, -3, 11, 13, 1, -18, -33, - -15, -11, -23, -22, 11, 52, 58, 50, 46, 50, 49, 36, 40, 40, 17, 6, - 20, 37, 45, 29, 9, -7, -12, -11, -6, 9, 30, 25, 26, 26, 17, 19, - 15, 21, 24, 46, 55, 47, 43, 56, 64, 52, 33, 25, 13, -3, 2, 10, - 21, 26, 4, -15, -16, -13, -2, -11, -32, -43, -37, -44, -61, -77, -78, -82, - -82, -80, -71, -61, -72, -59, -21, 5, -2, -27, -10, 15, 7, -14, -44, -59, - -67, -55, -37, -38, -50, -45, -23, 5, 23, 9, -6, -19, -15, 5, 14, 2, - -22, -22, -10, -17, -35, -38, -3, 35, 38, 43, 57, 51, 44, 49, 57, 46, - 25, 14, 24, 35, 54, 41, 31, 22, 1, -7, -4, 12, 23, 34, 37, 35, - 35, 36, 26, 24, 33, 55, 62, 53, 58, 70, 70, 73, 62, 51, 38, 14, - 6, 20, 31, 32, 27, 4, -9, -1, 9, -8, -21, -22, -27, -33, -53, -64, - -67, -82, -86, -83, -67, -75, -97, -77, -36, -15, -27, -32, -18, -1, -1, -6, - -31, -62, -73, -68, -52, -52, -68, -69, -50, -21, -2, 4, -10, -33, -29, -4, - 2, -10, -29, -22, -8, -27, -55, -49, -27, -6, 12, 31, 43, 31, 38, 44, - 54, 48, 25, 11, 19, 30, 36, 41, 41, 29, 11, -1, -9, 0, 15, 27, - 34, 36, 46, 46, 26, 27, 39, 51, 59, 62, 62, 73, 76, 77, 85, 78, - 58, 35, 23, 21, 37, 53, 37, 22, 15, 16, 20, 3, 0, -2, -2, -14, - -33, -35, -45, -69, -77, -59, -53, -76, -96, -74, -41, -30, -25, -26, -19, -4, - 7, 11, -8, -40, -62, -62, -51, -55, -69, -74, -71, -44, -15, -2, -14, -36, - -38, -8, -7, -27, -33, -17, -12, -38, -51, -57, -58, -41, -14, 8, 19, 15, - 15, 31, 46, 40, 21, 9, 7, 10, 20, 25, 33, 28, 16, 1, -18, -13, - 0, 6, 12, 30, 39, 39, 26, 20, 32, 41, 45, 53, 64, 63, 62, 80, - 84, 87, 81, 51, 29, 21, 44, 52, 41, 33, 29, 31, 27, 12, 8, 16, - 10, -4, -7, -7, -29, -62, -57, -37, -44, -68, -81, -70, -48, -33, -23, -22, - -17, -5, 16, 31, 14, -15, -33, -42, -41, -37, -53, -65, -74, -54, -16, 2, - -12, -33, -19, -1, -10, -22, -17, -8, -8, -18, -33, -48, -62, -57, -31, -1, - 7, 0, 9, 22, 40, 40, 27, 14, 4, 3, 10, 14, 21, 31, 20, 0, - -13, -19, -17, -15, -7, 12, 29, 28, 13, 20, 18, 18, 31, 38, 47, 49, - 51, 56, 67, 87, 84, 56, 30, 20, 31, 41, 31, 24, 32, 33, 20, 7, - 14, 15, -2, -1, 13, 4, -28, -53, -45, -34, -38, -59, -75, -72, -58, -44, - -26, -26, -29, -8, 14, 34, 28, 10, -9, -22, -26, -24, -30, -54, -78, -56, - -13, -4, -17, -16, -5, 1, -6, -9, -8, -1, 3, -2, -4, -28, -53, -58, - -37, -10, 1, -1, 6, 20, 34, 46, 40, 25, 19, 11, 7, 10, 23, 33, - 28, 16, -3, -3, -17, -31, -14, 4, 15, 20, 20, 16, 10, 14, 19, 23, - 37, 45, 35, 37, 53, 76, 83, 62, 34, 20, 27, 28, 13, 17, 29, 21, - 7, 9, 13, -4, -17, -4, 13, 2, -27, -53, -47, -39, -46, -56, -77, -87, - -77, -58, -45, -46, -47, -33, -6, 17, 22, 16, 1, -20, -25, -10, -21, -57, - -79, -57, -32, -24, -23, -18, -3, -1, -6, -4, -4, -5, 3, 13, 14, -6, - -38, -51, -39, -22, -4, -1, 3, 14, 32, 45, 46, 46, 33, 25, 15, 9, - 28, 38, 32, 28, 26, 14, -9, -21, -15, -5, 10, 24, 22, 22, 21, 15, - 15, 23, 36, 42, 35, 31, 41, 72, 87, 68, 46, 42, 34, 19, 14, 25, - 25, 11, 14, 18, 14, -7, -24, -7, 12, 4, -19, -41, -47, -44, -41, -52, - -74, -92, -88, -72, -59, -63, -68, -53, -34, -11, 12, 19, -7, -27, -15, -5, - -22, -54, -76, -66, -52, -47, -41, -29, -17, -12, -12, -10, -11, -19, -7, 12, - 19, 3, -23, -42, -48, -31, -19, -14, -6, 1, 20, 35, 39, 50, 51, 33, - 16, 17, 30, 31, 32, 41, 39, 28, 14, -7, -14, -5, 8, 18, 27, 34, - 29, 22, 21, 26, 38, 51, 39, 27, 43, 75, 84, 73, 75, 68, 46, 32, - 31, 35, 27, 15, 23, 36, 26, 0, -13, -4, 12, 14, 1, -23, -36, -36, - -32, -36, -60, -83, -84, -70, -67, -70, -66, -67, -62, -27, 8, 13, -11, -22, - -7, 4, -16, -44, -63, -67, -63, -63, -53, -42, -33, -25, -15, -10, -22, -27, - -18, -1, 16, 9, -13, -32, -46, -42, -31, -30, -24, -8, 5, 11, 25, 49, - 50, 33, 25, 20, 21, 24, 29, 34, 41, 41, 26, 5, -5, -7, -4, 12, - 23, 33, 37, 29, 19, 24, 49, 53, 33, 33, 49, 65, 73, 80, 89, 85, - 63, 48, 50, 46, 30, 20, 35, 46, 39, 17, 0, 2, 15, 23, 18, -2, - -20, -24, -12, -19, -45, -60, -66, -70, -66, -56, -61, -74, -74, -38, 0, 6, - -8, -15, 3, 13, -1, -24, -42, -52, -65, -64, -54, -54, -47, -31, -19, -12, - -21, -32, -27, -12, 7, 13, -2, -24, -36, -37, -44, -47, -32, -20, -18, -9, - 12, 30, 38, 35, 26, 18, 17, 16, 13, 25, 36, 37, 32, 18, 2, -11, - -10, -5, 3, 28, 38, 20, 8, 25, 42, 40, 28, 30, 40, 46, 54, 70, - 87, 82, 66, 61, 59, 48, 28, 20, 32, 43, 43, 24, 8, 1, 7, 23, - 25, 3, -13, -9, -8, -15, -28, -40, -58, -71, -60, -49, -58, -80, -82, -50, - -17, -5, -13, -12, 6, 13, 8, -3, -24, -42, -54, -59, -57, -60, -59, -43, - -24, -15, -20, -30, -35, -25, 1, 11, -2, -12, -18, -33, -48, -49, -41, -37, - -32, -21, -8, 13, 27, 27, 27, 23, 16, 8, 7, 15, 22, 32, 35, 22, - 9, 0, -18, -26, -8, 20, 25, 11, 4, 18, 32, 29, 22, 29, 30, 27, - 38, 60, 75, 70, 68, 69, 67, 52, 30, 19, 27, 36, 40, 34, 10, -2, - 6, 21, 20, 4, -2, -4, -7, -9, -12, -25, -52, -66, -53, -42, -53, -79, - -86, -58, -33, -23, -16, -12, 0, 12, 17, 13, -5, -24, -38, -44, -50, -59, - -61, -51, -33, -15, -11, -28, -36, -23, -4, 5, 5, 7, -3, -17, -31, -40, - -38, -37, -36, -29, -14, 4, 15, 25, 34, 30, 24, 19, 9, 8, 22, 33, - 31, 30, 31, 16, -14, -26, -13, 14, 17, 7, 8, 18, 24, 23, 28, 31, - 23, 18, 30, 50, 62, 61, 63, 75, 73, 59, 40, 23, 20, 30, 43, 35, - 11, 0, 8, 15, 12, 6, 3, -6, -10, -3, -1, -15, -46, -62, -47, -38, - -54, -77, -84, -70, -53, -40, -30, -21, -12, 1, 16, 20, 5, -12, -21, -33, - -44, -52, -64, -64, -44, -17, -15, -27, -30, -26, -15, -3, 6, 12, 9, -2, - -17, -26, -29, -36, -41, -32, -21, -10, 6, 18, 27, 34, 37, 25, 11, 14, - 21, 26, 27, 37, 48, 33, -1, -19, -8, 7, 8, 8, 16, 16, 17, 25, - 34, 36, 23, 16, 28, 44, 53, 54, 61, 74, 79, 75, 56, 30, 19, 31, - 45, 35, 15, 9, 9, 9, 11, 9, 5, -8, -14, 0, 9, -10, -40, -53, - -44, -38, -51, -72, -84, -80, -69, -58, -45, -38, -30, -13, 5, 13, 8, 0, - -14, -25, -30, -46, -67, -72, -55, -34, -26, -28, -31, -31, -26, -17, -4, 9, - 11, 2, -4, -12, -22, -33, -38, -40, -34, -18, -7, 2, 17, 33, 38, 29, - 19, 20, 22, 17, 19, 38, 57, 43, 15, 2, -1, 1, 3, 10, 18, 15, - 14, 25, 38, 40, 27, 21, 28, 38, 46, 50, 55, 66, 81, 90, 71, 40, - 30, 37, 44, 39, 26, 18, 12, 8, 14, 19, 8, -11, -13, 5, 15, -2, - -28, -42, -36, -34, -45, -60, -76, -83, -77, -65, -59, -55, -43, -28, -13, 5, - 11, 2, -9, -11, -17, -37, -61, -71, -65, -49, -38, -36, -34, -35, -36, -32, - -16, -2, 1, 3, 0, -7, -13, -25, -39, -46, -42, -30, -22, -15, 2, 21, - 30, 24, 22, 28, 19, 5, 11, 33, 50, 45, 31, 17, 6, -1, 0, 8, - 16, 12, 11, 23, 37, 40, 33, 29, 29, 33, 45, 48, 46, 58, 83, 97, - 84, 59, 45, 46, 47, 46, 42, 31, 16, 12, 23, 29, 16, -5, -9, 10, - 21, 10, -12, -24, -25, -25, -29, -42, -64, -73, -70, -66, -63, -58, -52, -42, - -22, 0, 8, 4, 1, 3, -1, -19, -44, -61, -63, -57, -50, -39, -33, -37, - -39, -36, -27, -14, -4, 0, 0, 0, -1, -13, -30, -42, -43, -37, -36, -30, - -10, 8, 12, 15, 26, 31, 16, 1, 4, 21, 37, 41, 38, 29, 13, 0, - -1, 6, 8, 3, 7, 17, 26, 34, 35, 27, 24, 32, 40, 37, 32, 45, - 72, 89, 86, 70, 57, 48, 45, 49, 50, 37, 16, 11, 25, 34, 20, -3, - -7, 7, 18, 15, 2, -14, -20, -15, -17, -32, -49, -61, -67, -65, -60, -61, - -63, -54, -33, -12, -1, 1, 2, 10, 12, -3, -26, -43, -57, -60, -54, -45, - -38, -38, -39, -39, -35, -23, -13, -6, -3, 2, 7, -2, -20, -30, -34, -42, - -47, -38, -19, -9, -5, 7, 24, 31, 19, 3, 0, 10, 23, 33, 40, 36, - 18, 5, 4, 4, 0, 0, 0, 5, 16, 29, 30, 22, 22, 31, 36, 27, - 21, 32, 54, 74, 81, 77, 65, 49, 44, 50, 55, 40, 16, 10, 24, 31, - 20, 3, -6, -1, 11, 16, 5, -9, -13, -12, -14, -22, -36, -53, -63, -62, - -59, -63, -69, -67, -48, -25, -14, -10, -1, 10, 16, 10, -6, -26, -45, -54, - -55, -50, -42, -39, -39, -40, -39, -29, -19, -15, -8, 4, 11, 3, -6, -11, - -21, -38, -48, -40, -26, -21, -16, -3, 18, 30, 24, 12, 6, 4, 11, 29, - 41, 39, 28, 18, 11, 8, 5, 1, -4, -2, 11, 25, 25, 19, 23, 33, - 35, 25, 17, 23, 39, 57, 74, 81, 72, 53, 47, 56, 60, 44, 23, 16, - 22, 29, 25, 10, -4, -3, 7, 11, 6, -3, -9, -11, -9, -12, -26, -42, - -56, -59, -55, -61, -73, -75, -60, -42, -32, -23, -12, 0, 12, 15, 7, -10, - -30, -46, -53, -53, -46, -41, -43, -45, -41, -32, -30, -26, -14, -1, 5, 2, - 3, 3, -9, -30, -43, -40, -31, -31, -28, -12, 8, 20, 25, 22, 9, 0, - 6, 21, 34, 39, 35, 26, 18, 16, 14, 4, -7, -5, 9, 21, 19, 16, - 23, 35, 37, 28, 20, 20, 26, 43, 67, 82, 74, 57, 54, 62, 63, 52, - 33, 21, 23, 30, 28, 14, 1, -1, 3, 8, 7, -1, -7, -9, -6, -5, - -15, -34, -49, -51, -51, -60, -72, -76, -70, -57, -46, -37, -25, -13, 3, 14, - 14, 3, -15, -33, -48, -52, -47, -45, -49, -49, -41, -37, -39, -35, -21, -10, - -5, -2, 6, 12, 1, -19, -32, -34, -36, -39, -34, -23, -9, 9, 23, 25, - 14, 3, 2, 12, 25, 36, 37, 30, 24, 25, 24, 10, -5, -4, 9, 18, - 15, 14, 23, 34, 38, 36, 30, 19, 15, 32, 61, 78, 75, 63, 60, 67, - 71, 62, 42, 29, 30, 33, 32, 20, 8, 4, 6, 8, 8, 3, -5, -9, - -2, 3, -7, -25, -37, -42, -45, -54, -66, -74, -74, -67, -58, -49, -40, -27, - -9, 5, 13, 13, 0, -21, -39, -45, -44, -49, -54, -50, -44, -44, -47, -42, - -29, -21, -19, -11, 5, 12, 4, -8, -18, -28, -36, -40, -40, -36, -24, -4, - 14, 21, 17, 7, 0, 3, 17, 32, 34, 29, 28, 34, 33, 17, 0, 0, - 9, 13, 12, 14, 20, 27, 38, 46, 39, 21, 11, 24, 51, 71, 74, 66, - 64, 73, 78, 71, 54, 40, 38, 41, 38, 28, 17, 11, 9, 12, 14, 7, - -3, -5, 3, 9, 2, -12, -23, -28, -35, -45, -55, -65, -71, -68, -62, -57, - -50, -37, -22, -7, 10, 20, 12, -8, -24, -32, -39, -48, -52, -49, -45, -49, - -52, -44, -34, -33, -30, -18, -3, 5, 5, 1, -8, -19, -29, -37, -43, -45, - -37, -18, 0, 13, 18, 10, -1, -3, 10, 24, 26, 23, 29, 38, 37, 21, - 8, 5, 6, 8, 10, 12, 11, 16, 34, 49, 46, 27, 10, 15, 38, 59, - 67, 63, 63, 72, 81, 77, 61, 48, 45, 45, 42, 35, 23, 13, 11, 17, - 18, 9, -3, -5, 3, 10, 6, -3, -12, -19, -24, -34, -46, -57, -64, -65, - -66, -63, -56, -48, -39, -22, 1, 17, 16, 3, -8, -17, -30, -44, -47, -44, - -47, -53, -52, -44, -41, -41, -38, -28, -14, -3, 3, 3, -2, -9, -17, -28, - -42, -49, -46, -34, -17, 3, 14, 9, -3, -6, 5, 15, 13, 15, 26, 36, - 35, 25, 16, 8, 2, 4, 9, 6, 1, 4, 22, 43, 48, 31, 11, 7, - 24, 45, 55, 54, 55, 68, 79, 77, 66, 54, 48, 47, 47, 41, 27, 14, - 11, 18, 20, 10, -2, -6, 0, 7, 8, 2, -6, -12, -14, -23, -38, -49, - -55, -62, -66, -63, -60, -59, -53, -37, -12, 8, 13, 10, 7, -4, -21, -35, - -37, -39, -47, -53, -51, -45, -44, -44, -42, -36, -24, -10, 0, 2, 1, 1, - -3, -15, -30, -42, -49, -45, -30, -6, 10, 7, -2, -3, 5, 9, 6, 11, - 23, 32, 35, 33, 25, 14, 6, 9, 12, 8, -2, -4, 13, 36, 48, 39, - 18, 7, 17, 34, 43, 45, 50, 62, 74, 78, 71, 59, 51, 49, 52, 48, - 32, 16, 12, 19, 21, 13, 1, -6, -5, 2, 6, 2, -4, -6, -9, -18, - -29, -40, -51, -60, -65, -63, -63, -68, -68, -53, -30, -12, 0, 10, 13, 3, - -14, -25, -29, -35, -45, -52, -52, -49, -47, -47, -47, -46, -35, -20, -10, -5, - -1, 4, 4, -4, -15, -30, -47, -54, -41, -15, 1, 0, -2, 2, 6, 4, - 3, 7, 16, 26, 35, 38, 32, 20, 12, 14, 18, 12, -1, -8, 3, 27, - 46, 44, 26, 14, 17, 28, 35, 38, 44, 55, 69, 78, 77, 66, 55, 54, - 60, 58, 41, 24, 17, 19, 23, 20, 7, -4, -4, 0, 2, 1, 0, -2, - -4, -10, -17, -28, -42, -55, -59, -56, -61, -72, -74, -63, -47, -32, -14, 5, - 13, 7, -4, -12, -19, -28, -38, -46, -51, -50, -46, -47, -51, -52, -43, -30, - -20, -13, -5, 0, 4, 4, 2, -13, -40, -55, -47, -25, -12, -8, -3, 3, - 5, 4, 2, 3, 7, 18, 32, 41, 36, 25, 18, 21, 25, 21, 5, -9, - -3, 19, 41, 45, 34, 24, 23, 27, 30, 33, 38, 47, 62, 78, 82, 72, - 61, 61, 67, 66, 54, 37, 24, 23, 28, 25, 15, 5, 0, 0, 0, 1, - 2, 2, -1, -4, -5, -15, -34, -47, -49, -49, -58, -69, -73, -70, -63, -51, - -30, -8, 5, 7, 3, -4, -11, -20, -29, -41, -49, -50, -46, -49, -54, -56, - -50, -42, -33, -22, -13, -10, -6, 5, 12, -1, -30, -50, -50, -38, -27, -18, - -10, -3, 1, 2, 2, -2, -4, 6, 24, 36, 36, 27, 19, 22, 30, 28, - 10, -8, -10, 9, 30, 39, 35, 30, 26, 26, 28, 29, 29, 35, 53, 73, - 80, 74, 65, 63, 69, 72, 64, 47, 33, 28, 29, 28, 21, 12, 6, 2, - -2, 1, 4, 1, -2, 2, 6, -4, -23, -35, -38, -42, -51, -60, -66, -70, - -71, -63, -45, -23, -5, 4, 6, 3, -2, -7, -18, -32, -42, -43, -43, -47, - -52, -54, -53, -51, -42, -27, -20, -21, -14, 4, 17, 10, -13, -35, -45, -44, - -37, -26, -17, -11, -3, 3, 3, -3, -9, -4, 13, 31, 35, 27, 19, 23, - 34, 36, 19, -3, -10, 2, 19, 31, 35, 33, 29, 30, 32, 28, 22, 26, - 43, 63, 76, 75, 67, 65, 71, 75, 70, 57, 43, 36, 34, 30, 26, 21, - 14, 5, 1, 4, 3, -2, -2, 6, 11, 3, -11, -22, -29, -36, -43, -50, - -57, -67, -74, -72, -60, -40, -19, -5, 2, 4, 6, 3, -8, -23, -32, -35, - -40, -45, -47, -51, -57, -58, -47, -33, -30, -32, -24, -5, 13, 14, 1, -18, - -36, -45, -42, -35, -27, -20, -11, 0, 3, -3, -12, -12, 1, 21, 31, 25, - 16, 20, 34, 40, 26, 5, -7, -6, 7, 21, 27, 26, 27, 31, 33, 27, - 17, 15, 28, 50, 65, 68, 64, 62, 68, 74, 72, 61, 51, 44, 35, 29, - 28, 25, 15, 7, 5, 5, -1, -8, -5, 3, 8, 4, -4, -12, -22, -32, - -38, -42, -50, -61, -72, -77, -73, -57, -36, -20, -11, -2, 7, 8, -3, -14, - -22, -30, -38, -41, -42, -49, -60, -62, -52, -41, -40, -41, -34, -18, 0, 11, - 10, -3, -23, -38, -42, -40, -36, -31, -20, -6, 2, -1, -13, -19, -9, 12, - 25, 20, 12, 17, 30, 39, 34, 17, -2, -8, 1, 13, 19, 21, 23, 31, - 37, 32, 18, 10, 18, 36, 55, 62, 60, 60, 67, 73, 72, 68, 61, 51, - 41, 35, 34, 28, 18, 12, 11, 8, -2, -9, -7, 0, 4, 5, 3, -3, - -14, -24, -31, -36, -41, -50, -64, -77, -80, -68, -51, -37, -26, -11, 3, 6, - 2, -3, -13, -24, -32, -33, -34, -46, -60, -62, -54, -47, -46, -47, -43, -31, - -13, 4, 12, 6, -9, -23, -34, -39, -40, -38, -29, -14, 0, 2, -11, -22, - -15, 4, 17, 16, 11, 13, 25, 39, 41, 28, 9, -3, 0, 9, 15, 15, - 19, 30, 40, 39, 26, 12, 11, 28, 45, 54, 56, 60, 66, 70, 73, 74, - 69, 58, 49, 45, 42, 32, 22, 18, 19, 14, 3, -6, -7, -4, 0, 5, - 6, 3, -5, -14, -24, -30, -32, -38, -53, -71, -78, -72, -63, -54, -39, -22, - -8, 1, 6, 6, -4, -18, -25, -23, -25, -39, -54, -58, -54, -49, -49, -50, - -49, -42, -26, -7, 7, 9, 2, -9, -20, -30, -38, -43, -39, -22, -2, 3, - -9, -20, -16, -2, 11, 14, 10, 10, 20, 36, 46, 40, 22, 8, 6, 11, - 13, 12, 15, 26, 41, 46, 36, 20, 14, 24, 38, 47, 54, 60, 64, 69, - 76, 81, 76, 66, 60, 58, 53, 40, 30, 27, 27, 22, 12, 3, -3, -4, - -1, 4, 8, 8, 5, -4, -15, -21, -21, -25, -41, -58, -69, -71, -70, -64, - -51, -35, -23, -9, 5, 10, 1, -13, -17, -15, -19, -32, -46, -54, -54, -51, - -50, -52, -55, -53, -40, -22, -6, 3, 4, -2, -10, -19, -32, -47, -49, -32, - -11, -3, -10, -20, -20, -10, 2, 7, 5, 2, 10, 28, 42, 41, 29, 16, - 10, 11, 11, 7, 6, 17, 35, 45, 39, 26, 18, 19, 26, 37, 47, 53, - 56, 61, 73, 81, 76, 68, 65, 65, 59, 46, 36, 31, 28, 25, 19, 9, - -1, -6, -4, -1, 2, 8, 9, 0, -10, -15, -14, -18, -32, -46, -57, -68, - -74, -71, -61, -51, -41, -23, -2, 8, 2, -8, -11, -10, -13, -23, -37, -48, - -53, -51, -49, -53, -59, -60, -53, -37, -19, -7, -3, -2, -1, -6, -22, -43, - -52, -42, -21, -9, -12, -20, -23, -16, -4, 3, -1, -6, 0, 18, 34, 40, - 33, 22, 16, 16, 13, 5, 0, 9, 27, 39, 40, 32, 24, 18, 19, 29, - 40, 44, 46, 55, 69, 77, 75, 71, 70, 70, 65, 55, 45, 37, 32, 30, - 26, 17, 7, 0, -5, -6, -1, 8, 11, 4, -5, -7, -7, -13, -21, -30, - -44, -59, -69, -69, -65, -63, -56, -36, -13, 1, 1, -4, -6, -5, -6, -12, - -25, -40, -47, -47, -46, -50, -56, -62, -61, -48, -30, -18, -12, -6, 4, 6, - -7, -32, -49, -46, -30, -16, -12, -19, -25, -20, -7, 0, -3, -9, -7, 8, - 26, 36, 34, 27, 24, 24, 19, 7, -2, 4, 18, 31, 38, 38, 30, 20, - 18, 26, 34, 35, 38, 48, 62, 71, 73, 72, 73, 72, 70, 64, 53, 43, - 38, 35, 30, 23, 16, 7, -4, -10, -4, 6, 8, 3, -1, -2, -4, -9, - -12, -19, -33, -51, -61, -65, -69, -73, -70, -52, -30, -13, -6, -5, -7, -5, - -2, -5, -17, -31, -41, -45, -44, -45, -53, -64, -67, -58, -43, -31, -26, -17, - -1, 10, 3, -19, -41, -48, -39, -23, -16, -21, -27, -24, -12, -3, -5, -13, - -15, -3, 16, 28, 29, 26, 28, 31, 24, 10, 0, 0, 8, 20, 33, 38, - 32, 22, 19, 24, 28, 28, 30, 40, 52, 61, 68, 71, 72, 73, 73, 69, - 59, 51, 45, 39, 32, 28, 26, 15, 0, -9, -5, 2, 4, 2, 1, -1, - -4, -6, -5, -10, -24, -41, -50, -56, -66, -76, -77, -66, -47, -27, -15, -11, - -10, -5, 0, -1, -8, -20, -33, -40, -40, -40, -48, -62, -70, -64, -51, -43, - -39, -29, -11, 7, 10, -5, -28, -43, -41, -28, -20, -22, -29, -28, -17, -6, - -5, -14, -20, -12, 6, 19, 22, 23, 30, 35, 31, 20, 8, 0, 1, 13, - 29, 37, 33, 26, 25, 27, 27, 25, 26, 33, 43, 54, 63, 67, 70, 74, - 76, 72, 66, 61, 54, 44, 37, 36, 34, 24, 8, -3, -4, -2, 0, 2, - 3, -1, -5, -3, 2, -2, -16, -29, -36, -44, -57, -70, -79, -76, -60, -41, - -27, -19, -14, -8, -1, 3, 0, -10, -24, -33, -33, -32, -40, -55, -65, -63, - -56, -51, -48, -40, -23, -1, 12, 7, -13, -32, -37, -29, -21, -21, -28, -29, - -19, -6, -2, -12, -20, -14, 0, 11, 16, 22, 30, 37, 38, 33, 21, 7, - 0, 9, 26, 36, 35, 32, 32, 32, 31, 28, 27, 30, 38, 50, 58, 63, - 70, 78, 79, 76, 74, 72, 64, 53, 46, 45, 44, 34, 20, 9, 3, -1, - 1, 7, 7, 0, -4, 2, 8, 5, -5, -15, -23, -30, -41, -58, -73, -77, - -68, -53, -38, -28, -21, -14, -5, 4, 7, -1, -15, -25, -25, -24, -32, -48, - -59, -61, -59, -57, -57, -54, -39, -16, 4, 8, -5, -24, -33, -30, -24, -24, - -32, -35, -26, -11, -6, -14, -20, -19, -10, -2, 5, 13, 21, 29, 37, 40, - 30, 11, 0, 4, 17, 27, 30, 31, 31, 32, 32, 29, 23, 23, 31, 40, - 45, 52, 63, 72, 74, 73, 75, 75, 67, 56, 51, 50, 46, 38, 29, 18, - 6, -3, -1, 5, 3, -4, -7, -2, 4, 5, -2, -11, -17, -21, -30, -47, - -66, -78, -77, -66, -53, -42, -34, -27, -16, -3, 6, 1, -12, -21, -21, -21, - -28, -42, -54, -60, -60, -61, -65, -67, -57, -35, -11, 1, -3, -18, -30, -30, - -25, -27, -36, -41, -32, -19, -13, -17, -22, -22, -19, -14, -6, 2, 7, 17, - 31, 41, 34, 17, 3, 1, 8, 17, 23, 25, 26, 30, 32, 28, 22, 21, - 25, 30, 34, 42, 54, 63, 66, 70, 77, 77, 69, 61, 57, 55, 49, 44, - 39, 28, 11, 2, 2, 5, 3, -3, -8, -4, 3, 6, 2, -4, -9, -11, - -16, -31, -52, -68, -75, -71, -61, -50, -43, -38, -26, -8, 5, 4, -6, -13, - -14, -13, -19, -31, -44, -51, -52, -55, -64, -71, -67, -49, -24, -4, -1, -12, - -22, -21, -18, -22, -33, -39, -33, -22, -16, -16, -17, -19, -20, -16, -9, -4, - -2, 5, 18, 31, 37, 32, 21, 11, 9, 12, 17, 20, 24, 28, 32, 31, - 28, 26, 26, 26, 28, 34, 43, 51, 57, 65, 74, 77, 75, 72, 68, 63, - 59, 56, 53, 44, 31, 19, 12, 11, 8, 3, -2, -3, 0, 4, 5, 2, - 0, -1, -3, -11, -25, -42, -58, -66, -65, -59, -54, -51, -42, -27, -11, -2, - -3, -6, -7, -7, -9, -16, -27, -36, -40, -44, -52, -63, -70, -66, -49, -28, - -15, -13, -16, -16, -13, -16, -24, -31, -33, -29, -24, -19, -17, -19, -20, -18, - -14, -13, -12, -6, 7, 22, 33, 35, 28, 18, 12, 12, 14, 17, 21, 27, - 31, 31, 30, 30, 28, 25, 25, 30, 36, 42, 49, 58, 67, 74, 76, 75, - 71, 66, 62, 60, 59, 53, 41, 29, 19, 14, 11, 7, 1, -3, -2, 1, - 3, 3, 1, 0, 0, -3, -11, -26, -44, -59, -65, -63, -60, -57, -52, -41, - -25, -11, -4, -4, -6, -6, -6, -9, -17, -27, -35, -39, -44, -53, -65, -71, - -65, -47, -28, -16, -15, -16, -15, -14, -17, -25, -32, -33, -29, -24, -19, -17, - -19, -20, -18, -14, -13, -12, -6, 26, 49, 69, 83, 96, 96, 71, 28, -8, - -25, -34, -44, -56, -57, -39, -4, 21, 49, 65, 75, 78, 78, 72, 39, -2, - -48, -72, -86, -102, -120, -119, -99, -69, -32, 6, 38, 61, 82, 92, 103, 88, - 56, 13, -9, -28, -43, -57, -62, -50, -27, 5, 28, 55, 69, 79, 76, 77, - 51, 23, -20, -54, -76, -92, -107, -119, -105, -82, -50, -20, 14, 43, 67, 80, - 97, 97, 78, 41, 8, -14, -32, -46, -60, -62, -44, -17, 11, 39, 63, 70, - 76, 76, 71, 38, 6, -36, -62, -85, -99, -114, -112, -97, -71, -41, -5, 26, - 56, 73, 95, 99, 91, 64, 30, 4, -23, -39, -62, -69, -58, -32, -7, 20, - 50, 71, 78, 76, 74, 56, 27, -13, -47, -72, -89, -103, -103, -99, -77, -58, - -27, 6, 37, 59, 79, 91, 93, 76, 48, 17, -9, -31, -49, -66, -62, -44, - -19, 8, 37, 61, 71, 76, 74, 62, 39, 7, -30, -54, -82, -94, -101, -93, - -87, -66, -45, -13, 17, 41, 67, 80, 90, 83, 65, 35, 9, -19, -40, -60, - -62, -52, -31, -5, 24, 50, 65, 71, 70, 63, 48, 19, -13, -42, -65, -87, - -92, -89, -81, -75, -58, -31, 0, 27, 46, 63, 79, 82, 73, 47, 24, -4, - -23, -46, -50, -51, -34, -18, 10, 34, 56, 63, 66, 56, 49, 30, 3, -28, - -55, -73, -84, -75, -76, -75, -64, -44, -13, 11, 30, 50, 62, 76, 75, 65, - 33, 9, -16, -31, -39, -40, -35, -23, 0, 25, 44, 54, 53, 47, 45, 30, - 15, -16, -34, -59, -70, -69, -62, -67, -66, -56, -28, -3, 16, 31, 45, 59, - 69, 68, 49, 21, -2, -20, -25, -28, -27, -24, -8, 13, 35, 49, 51, 40, - 33, 26, 19, -5, -28, -51, -62, -61, -58, -51, -57, -53, -41, -13, 10, 19, - 30, 39, 54, 63, 52, 28, 2, -14, -18, -19, -16, -13, -5, 12, 28, 46, - 50, 39, 23, 17, 13, 1, -23, -42, -56, -56, -55, -45, -46, -46, -46, -26, - -1, 18, 22, 29, 41, 53, 51, 35, 15, -9, -13, -14, -6, -3, 1, 13, - 24, 40, 47, 39, 22, 9, 1, -4, -14, -33, -48, -52, -47, -37, -36, -39, - -41, -36, -14, 7, 13, 14, 24, 38, 45, 39, 21, 1, -10, -11, -1, 11, - 17, 14, 20, 30, 41, 39, 22, -4, -7, -12, -15, -25, -33, -38, -38, -32, - -22, -24, -36, -39, -32, -8, 3, 9, 10, 23, 32, 36, 28, 11, -3, -7, - 2, 13, 27, 28, 30, 32, 36, 38, 27, 4, -16, -25, -29, -27, -35, -36, - -38, -28, -14, -12, -18, -28, -24, -15, -4, -5, -5, 5, 15, 20, 21, 14, - 8, -1, 8, 21, 39, 39, 36, 36, 30, 31, 22, 5, -16, -33, -34, -31, - -22, -28, -29, -27, -15, -11, -17, -25, -29, -21, -15, -7, -6, 4, 10, 15, - 16, 11, 10, 1, 6, 13, 36, 45, 46, 39, 40, 30, 24, 8, -12, -33, - -38, -39, -28, -23, -23, -20, -16, -7, -9, -14, -26, -28, -21, -17, -11, -7, - 1, 6, 8, 10, 5, 5, 4, 18, 34, 47, 55, 52, 49, 37, 23, 9, - -10, -34, -47, -48, -38, -26, -23, -16, -9, -2, -3, -5, -13, -19, -24, -24, - -17, -15, -7, -3, -4, 3, 1, 4, 4, 17, 34, 51, 58, 59, 54, 46, - 28, 11, -7, -29, -47, -47, -43, -31, -21, -16, -4, -5, -2, -12, -10, -19, - -21, -27, -17, -19, -8, -6, -5, -6, -4, -2, -2, 15, 28, 52, 60, 71, - 62, 61, 32, 17, -11, -27, -45, -53, -48, -40, -23, -13, 2, 6, 3, -4, - -10, -10, -11, -20, -25, -25, -18, -8, -11, -12, -19, -13, -11, 5, 23, 51, - 66, 75, 74, 70, 54, 27, -4, -29, -45, -61, -58, -48, -29, -14, -2, 12, - 17, 11, -2, -7, -6, -13, -22, -30, -28, -20, -16, -17, -23, -25, -20, -8, - 20, 44, 63, 77, 83, 80, 69, 46, 12, -22, -44, -57, -62, -57, -43, -29, - -9, 10, 22, 19, 7, -1, -1, -1, -11, -27, -36, -31, -28, -25, -26, -30, - -30, -17, 9, 42, 66, 76, 85, 83, 79, 59, 26, -12, -41, -53, -61, -61, - -53, -34, -14, 1, 19, 25, 18, 8, 2, 5, -3, -18, -33, -37, -34, -33, - -32, -38, -42, -34, -9, 27, 60, 76, 88, 91, 90, 73, 49, 6, -33, -53, - -62, -59, -60, -44, -27, -2, 13, 28, 25, 18, 8, 7, 4, -8, -28, -46, - -45, -40, -39, -41, -48, -41, -25, 14, 50, 76, 86, 90, 92, 85, 64, 29, - -14, -47, -62, -61, -61, -56, -41, -16, 8, 28, 36, 27, 17, 14, 12, 4, - -21, -42, -56, -49, -48, -46, -49, -52, -35, -2, 41, 68, 83, 90, 90, 88, - 75, 47, 5, -33, -55, -58, -58, -56, -53, -32, -9, 21, 31, 30, 20, 21, - 22, 15, -2, -34, -51, -62, -56, -57, -55, -58, -52, -19, 21, 65, 82, 91, - 89, 92, 86, 66, 24, -20, -52, -60, -58, -60, -57, -48, -19, 11, 32, 38, - 29, 30, 31, 28, 8, -18, -45, -67, -69, -67, -59, -63, -59, -41, 4, 51, - 77, 87, 90, 94, 90, 78, 48, 4, -39, -54, -57, -52, -60, -55, -39, -4, - 26, 40, 40, 32, 35, 32, 16, -7, -41, -69, -78, -78, -64, -60, -56, -51, - -15, 35, 73, 89, 85, 88, 88, 81, 60, 23, -20, -54, -59, -55, -46, -55, - -45, -21, 18, 42, 45, 38, 34, 37, 22, 4, -30, -57, -85, -82, -77, -62, - -61, -54, -28, 20, 61, 81, 86, 86, 90, 81, 70, 38, 1, -41, -58, -55, - -46, -48, -52, -32, 1, 37, 51, 55, 44, 39, 31, 11, -16, -53, -79, -92, - -90, -75, -60, -56, -38, 0, 47, 76, 88, 87, 93, 81, 70, 48, 13, -23, - -54, -61, -51, -42, -46, -38, -10, 26, 49, 57, 51, 43, 36, 19, -7, -44, - -70, -91, -92, -84, -63, -56, -48, -19, 24, 64, 80, 83, 79, 83, 74, 59, - 34, -3, -31, -54, -50, -46, -40, -39, -26, 6, 38, 62, 60, 51, 39, 23, - 3, -29, -59, -84, -98, -91, -77, -61, -51, -33, 2, 44, 70, 83, 77, 79, - 76, 66, 48, 15, -13, -41, -47, -47, -41, -40, -31, -10, 20, 50, 67, 58, - 50, 34, 14, -19, -48, -78, -94, -99, -85, -74, -58, -40, -12, 24, 57, 81, - 82, 83, 76, 76, 54, 35, 3, -23, -46, -52, -47, -45, -39, -22, 6, 35, - 62, 72, 63, 49, 27, -5, -35, -65, -85, -103, -100, -82, -69, -49, -29, 6, - 39, 67, 81, 80, 79, 74, 66, 48, 22, -9, -34, -47, -49, -46, -42, -31, - -4, 23, 51, 71, 71, 58, 33, 5, -27, -54, -80, -99, -103, -95, -76, -62, - -36, -9, 22, 52, 76, 82, 81, 76, 69, 59, 35, 8, -21, -39, -49, -47, - -43, -39, -21, 6, 37, 63, 74, 66, 48, 23, -6, -38, -64, -84, -101, -103, - -91, -74, -51, -30, 1, 29, 65, 79, 89, 86, 81, 70, 52, 24, -6, -32, - -48, -54, -55, -47, -37, -12, 22, 53, 76, 77, 63, 44, 17, -17, -51, -79, - -94, -107, -105, -94, -72, -46, -17, 15, 49, 72, 84, 96, 90, 81, 63, 44, - 14, -18, -43, -57, -60, -54, -48, -30, 2, 40, 69, 81, 76, 60, 35, 4, - -33, -66, -86, -100, -110, -104, -89, -62, -39, -1, 29, 60, 75, 93, 100, 94, - 78, 61, 35, -1, -33, -52, -62, -69, -63, -46, -16, 22, 59, 80, 88, 80, - 58, 29, -9, -45, -78, -99, -115, -121, -106, -87, -57, -28, 16, 46, 76, 93, - 110, 109, 92, 70, 45, 16, -19, -51, -69, -75, -68, -54, -29, 7, 41, 72, - 86, 92, 74, 45, 6, -27, -61, -87, -108, -121, -117, -101, -73, -47, -11, 24, - 59, 84, 106, 112, 109, 94, 69, 39, 2, -26, -63, -76, -83, -69, -54, -16, - 15, 54, 77, 94, 89, 70, 39, 1, -31, -63, -91, -117, -123, -120, -98, -74, - -43, -6, 30, 69, 100, 119, 120, 107, 90, 61, 24, -14, -46, -73, -80, -82, - -61, -35, 2, 31, 61, 83, 90, 80, 49, 16, -19, -48, -74, -101, -118, -121, - -108, -81, -55, -24, 7, 43, 82, 106, 120, 108, 96, 77, 48, 10, -26, -58, - -73, -81, -73, -50, -17, 10, 38, 67, 89, 85, 66, 38, 2, -25, -56, -83, - -111, -123, -124, -103, -73, -44, -15, 21, 62, 99, 121, 123, 104, 87, 60, 31, - -8, -45, -65, -81, -79, -59, -27, 3, 24, 51, 82, 87, 74, 47, 19, -14, - -42, -66, -91, -113, -123, -117, -88, -60, -33, -2, 37, 82, 112, 124, 112, 95, - 73, 48, 14, -24, -58, -68, -79, -64, -42, -12, 9, 31, 64, 85, 78, 58, - 31, 7, -26, -51, -74, -96, -116, -125, -106, -74, -45, -20, 11, 55, 97, 122, - 114, 103, 83, 62, 33, -2, -39, -64, -76, -73, -51, -20, 1, 17, 45, 73, - 80, 62, 39, 14, -12, -40, -59, -82, -101, -118, -109, -88, -54, -32, 2, 31, - 74, 110, 116, 105, 85, 70, 43, 19, -19, -49, -71, -75, -57, -30, -8, 6, - 31, 56, 75, 69, 50, 27, 0, -23, -45, -66, -87, -110, -113, -97, -70, -40, - -14, 14, 49, 94, 111, 105, 91, 78, 56, 35, 5, -25, -57, -70, -64, -43, - -17, -8, 10, 34, 64, 70, 59, 36, 14, -7, -25, -48, -77, -100, -112, -103, - -84, -60, -30, 2, 33, 72, 100, 107, 96, 80, 64, 44, 20, -10, -39, -63, - -64, -50, -23, -10, 6, 24, 50, 62, 66, 44, 20, -5, -25, -43, -67, -89, - -110, -106, -86, -63, -36, -8, 25, 53, 83, 99, 93, 83, 66, 54, 32, 4, - -25, -46, -55, -48, -29, -13, 1, 12, 34, 50, 61, 47, 24, 2, -17, -31, - -49, -72, -92, -99, -93, -69, -51, -18, 7, 42, 61, 83, 89, 79, 69, 56, - 46, 20, -10, -34, -47, -46, -31, -22, -4, 4, 23, 43, 59, 55, 33, 9, - -10, -24, -42, -64, -88, -98, -95, -73, -51, -27, -5, 26, 53, 71, 78, 77, - 68, 58, 50, 33, 3, -24, -38, -37, -34, -22, -17, 4, 14, 35, 47, 55, - 35, 17, -2, -23, -37, -63, -78, -96, -88, -78, -57, -40, -10, 16, 51, 66, - 80, 74, 67, 52, 47, 36, 9, -19, -40, -42, -30, -17, -9, -1, 11, 32, - 51, 54, 41, 18, -4, -19, -37, -57, -75, -96, -92, -77, -53, -38, -18, 10, - 40, 59, 69, 69, 60, 49, 41, 37, 19, -6, -28, -34, -29, -14, -4, 2, - 7, 25, 44, 55, 44, 25, 1, -15, -32, -48, -73, -91, -95, -74, -54, -35, - -21, 1, 28, 55, 65, 71, 57, 45, 35, 35, 29, 4, -20, -38, -28, -18, - -4, 1, 7, 18, 35, 54, 51, 34, 9, -13, -28, -44, -62, -82, -96, -85, - -61, -39, -20, -6, 23, 45, 64, 63, 59, 46, 33, 28, 26, 10, -10, -29, - -27, -18, -3, -2, 9, 13, 32, 45, 54, 37, 17, -7, -25, -43, -57, -77, - -96, -92, -70, -44, -23, -2, 15, 42, 60, 70, 68, 54, 35, 28, 16, 12, - -10, -25, -35, -26, -9, 4, 13, 22, 29, 49, 53, 50, 25, 3, -26, -45, - -59, -72, -91, -96, -81, -48, -22, 1, 19, 40, 60, 67, 65, 50, 34, 15, - 8, 2, -3, -21, -29, -24, -5, 6, 15, 27, 35, 42, 53, 50, 30, 5, - -21, -42, -60, -70, -85, -94, -86, -57, -28, 2, 18, 33, 48, 66, 62, 54, - 33, 20, 8, 4, -5, -10, -25, -28, -13, 4, 17, 22, 30, 40, 53, 52, - 44, 16, -9, -35, -56, -73, -83, -96, -93, -74, -38, -6, 16, 35, 48, 65, - 65, 56, 41, 20, 7, -5, -7, -13, -22, -28, -21, 0, 20, 23, 32, 40, - 54, 52, 49, 26, 0, -30, -46, -70, -83, -95, -93, -83, -56, -18, 10, 33, - 43, 59, 65, 64, 43, 27, 8, -3, -13, -18, -20, -29, -27, -11, 14, 27, - 39, 43, 55, 60, 52, 32, 9, -19, -42, -69, -84, -94, -97, -86, -66, -29, - 3, 28, 46, 59, 68, 66, 51, 28, 7, -5, -13, -23, -26, -30, -22, -12, - 6, 27, 42, 52, 54, 62, 60, 36, 13, -13, -36, -66, -85, -96, -97, -94, - -71, -42, -7, 19, 39, 58, 69, 66, 53, 33, 16, 0, -12, -22, -25, -28, - -25, -15, 4, 19, 37, 48, 53, 56, 60, 41, 22, -4, -22, -49, -76, -95, - -97, -96, -79, -57, -26, 5, 30, 48, 63, 71, 60, 40, 22, 8, -1, -18, - -25, -31, -27, -15, -2, 14, 27, 43, 59, 61, 63, 48, 32, 8, -12, -42, - -67, -96, -100, -97, -84, -64, -42, -7, 21, 48, 59, 70, 64, 50, 31, 17, - 2, -18, -30, -35, -27, -23, -10, 6, 25, 42, 57, 70, 68, 59, 40, 23, - -2, -27, -61, -87, -107, -105, -96, -75, -50, -17, 15, 42, 60, 68, 72, 58, - 38, 16, 3, -8, -23, -30, -32, -18, -13, 2, 14, 33, 46, 63, 68, 58, - 45, 24, 11, -16, -42, -76, -97, -106, -95, -82, -58, -31, -1, 28, 51, 60, - 70, 57, 45, 26, 13, -6, -16, -27, -28, -23, -11, -3, 7, 24, 35, 54, - 62, 64, 50, 34, 22, 2, -24, -61, -87, -108, -101, -94, -66, -50, -13, 12, - 44, 58, 67, 66, 48, 32, 17, 2, -13, -27, -30, -24, -12, 0, 10, 21, - 34, 51, 59, 62, 52, 36, 19, 5, -18, -42, -74, -97, -106, -92, -72, -50, - -28, 2, 32, 50, 61, 61, 53, 34, 20, 5, -9, -19, -27, -24, -16, -5, - 9, 18, 28, 37, 57, 61, 55, 40, 28, 10, -10, -33, -56, -84, -100, -101, - -81, -61, -39, -14, 13, 39, 52, 57, 53, 39, 25, 11, 2, -11, -17, -20, - -13, -4, 6, 14, 20, 29, 46, 53, 53, 42, 37, 24, 6, -21, -47, -71, - -92, -99, -92, -72, -50, -28, 5, 28, 43, 50, 51, 43, 30, 13, 4, -11, - -14, -21, -11, -3, 11, 16, 19, 28, 35, 53, 48, 41, 26, 21, 10, -6, - -32, -57, -78, -87, -84, -73, -59, -39, -14, 16, 33, 42, 40, 36, 28, 21, - 11, 0, -7, -10, -6, 1, 16, 18, 19, 16, 27, 43, 47, 38, 22, 22, - 12, 8, -15, -39, -65, -77, -80, -72, -68, -51, -33, -4, 19, 32, 38, 32, - 31, 24, 22, 9, 3, -6, 1, 3, 14, 19, 18, 12, 9, 25, 37, 38, - 21, 14, 16, 14, 4, -20, -46, -60, -69, -63, -67, -56, -48, -23, -2, 17, - 26, 22, 20, 19, 23, 20, 13, 4, 8, 11, 21, 26, 27, 18, 10, 14, - 28, 33, 20, 6, 7, 11, 9, -7, -26, -46, -55, -55, -57, -56, -53, -39, - -18, 0, 15, 15, 12, 15, 23, 23, 20, 14, 13, 17, 23, 31, 31, 27, - 17, 7, 16, 23, 23, 5, -6, 2, 5, 6, -17, -30, -41, -46, -46, -46, - -42, -42, -34, -19, -3, 3, 1, -3, 4, 21, 25, 25, 21, 26, 30, 37, - 40, 38, 27, 11, 2, 10, 16, 11, -9, -9, 2, 10, 1, -15, -26, -30, - -40, -43, -49, -46, -45, -39, -23, -10, -2, -7, 3, 19, 33, 35, 28, 28, - 32, 37, 38, 37, 30, 19, 0, 7, 11, 16, -4, -16, -13, 4, 7, -5, - -18, -19, -21, -32, -39, -46, -41, -47, -38, -27, -13, -16, -15, 3, 24, 30, - 30, 26, 38, 46, 49, 47, 44, 34, 17, 3, 4, 1, -7, -27, -25, -12, - 0, 5, -10, -10, -7, -9, -24, -37, -42, -47, -51, -44, -32, -25, -23, -7, - 14, 33, 37, 37, 36, 45, 53, 51, 47, 40, 22, 5, 3, 5, -1, -24, - -36, -26, -7, 3, -6, -9, -6, 2, -11, -18, -35, -37, -50, -48, -43, -35, - -38, -27, -9, 18, 30, 35, 33, 41, 54, 60, 63, 51, 37, 17, 5, 5, - -3, -20, -39, -41, -23, -4, 0, -7, -7, 3, 2, -9, -21, -36, -45, -54, - -48, -44, -42, -37, -18, 5, 25, 32, 39, 38, 52, 59, 66, 60, 47, 31, - 18, 8, -2, -18, -31, -45, -34, -19, -3, -5, -6, -1, 11, 4, -9, -24, - -42, -50, -50, -46, -48, -48, -32, -6, 15, 29, 30, 40, 46, 59, 63, 67, - 57, 46, 27, 17, 5, -11, -31, -48, -46, -31, -15, -5, -7, 2, 10, 15, - 2, -12, -31, -46, -53, -55, -55, -55, -43, -22, 0, 20, 31, 37, 48, 61, - 66, 74, 67, 62, 40, 24, 9, -6, -28, -46, -55, -40, -26, -10, -4, 2, - 11, 18, 14, 1, -19, -40, -49, -53, -58, -58, -52, -35, -16, 4, 21, 29, - 39, 50, 62, 73, 78, 72, 61, 45, 26, 6, -18, -44, -56, -58, -45, -35, - -15, -4, 6, 15, 23, 17, 1, -23, -40, -43, -54, -58, -59, -44, -29, -13, - 2, 16, 31, 46, 60, 66, 78, 78, 73, 59, 45, 17, -9, -35, -48, -55, - -50, -40, -24, -6, 5, 10, 19, 17, 7, -18, -30, -40, -47, -61, -61, -49, - -31, -19, -12, 2, 17, 39, 54, 65, 71, 81, 82, 77, 61, 35, 3, -25, - -41, -54, -56, -54, -42, -20, -1, 10, 16, 20, 11, -6, -19, -29, -40, -55, - -61, -52, -42, -26, -21, -12, 2, 20, 45, 59, 70, 78, 83, 90, 76, 56, - 16, -14, -42, -51, -58, -62, -52, -33, -6, 6, 18, 24, 19, 3, -14, -21, - -31, -50, -65, -66, -49, -33, -30, -20, -10, 12, 35, 58, 70, 77, 82, 87, - 84, 69, 35, -2, -33, -50, -53, -55, -55, -43, -19, 4, 10, 23, 18, 9, - -17, -21, -29, -36, -60, -63, -59, -34, -24, -22, -17, -4, 23, 47, 68, 74, - 79, 82, 86, 80, 52, 18, -20, -43, -53, -48, -48, -47, -32, -12, 10, 19, - 21, 9, -9, -25, -28, -32, -47, -58, -64, -44, -31, -18, -23, -8, 6, 35, - 55, 75, 81, 79, 86, 78, 67, 32, -3, -36, -49, -45, -42, -41, -33, -17, - 2, 15, 19, 14, -3, -20, -29, -33, -43, -55, -65, -56, -44, -26, -23, -13, - 2, 26, 52, 70, 82, 83, 82, 82, 64, 47, 8, -25, -44, -50, -37, -37, - -28, -23, -3, 12, 19, 17, 5, -14, -27, -37, -41, -52, -61, -63, -51, -37, - -26, -15, 0, 23, 41, 65, 80, 88, 86, 78, 67, 50, 22, -13, -39, -48, - -43, -34, -28, -18, -8, 7, 15, 20, 15, -4, -24, -35, -42, -48, -58, -67, - -60, -47, -32, -21, -2, 16, 38, 57, 78, 87, 92, 81, 68, 55, 32, 2, - -24, -42, -47, -40, -27, -19, -13, 0, 5, 20, 14, 9, -12, -21, -42, -47, - -56, -63, -67, -64, -49, -35, -17, 8, 29, 52, 69, 85, 96, 92, 80, 62, - 40, 11, -16, -37, -44, -44, -31, -23, -13, -5, 4, 11, 18, 15, 5, -14, - -30, -46, -52, -63, -70, -75, -66, -51, -26, -4, 23, 45, 67, 84, 99, 98, - 89, 70, 46, 23, -6, -26, -44, -51, -40, -28, -14, -6, 4, 10, 20, 23, - 16, 2, -17, -42, -55, -67, -73, -83, -81, -71, -45, -12, 18, 42, 63, 80, - 95, 102, 98, 79, 55, 31, 5, -15, -37, -48, -47, -36, -22, -11, 0, 5, - 16, 25, 24, 18, -7, -27, -56, -64, -80, -85, -93, -82, -62, -28, 6, 36, - 62, 81, 95, 105, 104, 90, 65, 36, 13, -15, -29, -43, -42, -42, -26, -15, - -3, 6, 11, 20, 23, 23, 10, -13, -43, -66, -79, -89, -95, -96, -80, -48, - -11, 26, 53, 77, 91, 102, 110, 103, 81, 46, 22, -5, -22, -41, -48, -45, - -35, -19, -8, 5, 15, 20, 26, 26, 18, -1, -31, -61, -78, -94, -98, -102, - -87, -65, -24, 16, 46, 70, 86, 100, 107, 107, 83, 59, 30, 8, -13, -30, - -43, -46, -37, -20, -13, 1, 8, 22, 20, 29, 27, 15, -14, -47, -70, -87, - -100, -110, -102, -81, -44, -5, 37, 68, 85, 97, 106, 115, 100, 74, 39, 13, - -11, -28, -40, -48, -48, -35, -20, -5, 14, 24, 33, 31, 37, 26, 4, -34, - -66, -91, -108, -118, -116, -98, -64, -22, 26, 63, 83, 97, 107, 117, 108, 87, - 53, 23, -3, -21, -32, -41, -46, -48, -32, -16, 5, 20, 25, 36, 38, 40, - 16, -12, -49, -78, -103, -117, -119, -109, -88, -44, 6, 51, 78, 95, 110, 119, - 113, 93, 64, 34, 3, -20, -31, -37, -43, -46, -38, -21, -4, 16, 28, 32, - 39, 41, 36, 3, -28, -69, -95, -116, -118, -115, -102, -69, -20, 32, 67, 87, - 99, 116, 118, 106, 82, 49, 21, -11, -23, -35, -40, -52, -46, -39, -13, 6, - 28, 35, 45, 46, 41, 19, -14, -51, -87, -109, -123, -122, -112, -86, -40, 12, - 50, 76, 96, 111, 119, 111, 93, 66, 35, 1, -14, -27, -40, -52, -57, -45, - -30, -5, 12, 31, 39, 53, 50, 40, 6, -31, -70, -97, -118, -123, -124, -97, - -63, -11, 31, 63, 86, 102, 117, 113, 96, 71, 44, 17, -4, -23, -31, -46, - -50, -48, -37, -17, 1, 22, 38, 51, 55, 44, 20, -13, -49, -85, -112, -127, - -124, -111, -80, -39, 12, 51, 79, 95, 112, 120, 107, 85, 53, 28, 1, -19, - -38, -42, -50, -50, -45, -27, -4, 13, 36, 46, 58, 50, 33, 0, -32, -67, - -97, -116, -128, -117, -96, -50, -11, 33, 59, 86, 99, 112, 110, 94, 68, 39, - 15, -6, -23, -43, -47, -53, -47, -40, -20, 0, 27, 40, 54, 60, 44, 17, - -14, -50, -82, -106, -120, -121, -106, -74, -30, 13, 46, 70, 90, 108, 110, 102, - 80, 58, 28, 5, -16, -36, -46, -55, -55, -48, -33, -10, 17, 40, 55, 64, - 61, 36, 8, -35, -65, -96, -118, -127, -120, -90, -53, -6, 34, 61, 81, 101, - 115, 108, 92, 62, 42, 13, -10, -32, -46, -53, -55, -52, -36, -17, 6, 30, - 50, 66, 66, 46, 17, -13, -47, -78, -102, -120, -118, -100, -67, -30, 15, 46, - 64, 81, 104, 107, 95, 70, 50, 25, -5, -27, -45, -46, -53, -46, -37, -12, - 8, 28, 46, 64, 67, 53, 25, -1, -34, -65, -90, -107, -114, -107, -81, -47, - -5, 27, 51, 68, 89, 103, 100, 80, 54, 27, 1, -20, -41, -51, -52, -48, - -36, -15, 10, 28, 43, 61, 71, 62, 40, 12, -16, -49, -77, -101, -111, -113, - -96, -67, -29, 9, 34, 54, 74, 96, 100, 86, 60, 37, 8, -14, -35, -44, - -52, -48, -36, -15, 10, 27, 39, 55, 66, 67, 50, 28, -3, -35, -67, -88, - -102, -111, -110, -88, -52, -9, 21, 44, 63, 82, 97, 93, 76, 45, 14, -14, - -33, -41, -51, -52, -44, -19, 9, 30, 43, 55, 67, 70, 60, 40, 12, -22, - -54, -78, -93, -108, -111, -103, -71, -36, 3, 28, 50, 68, 89, 95, 87, 62, - 26, -7, -26, -34, -43, -52, -52, -31, -3, 24, 39, 54, 62, 69, 68, 58, - 33, -6, -42, -70, -84, -101, -114, -119, -95, -61, -19, 12, 42, 58, 81, 92, - 99, 84, 50, 6, -18, -32, -39, -50, -55, -44, -19, 12, 31, 52, 66, 73, - 77, 70, 53, 18, -26, -60, -77, -93, -113, -126, -112, -83, -43, -7, -5, 26, - -13, -79, -103, -120, -116, -104, -87, -76, -63, 63, 82, 97, 108, 119, 99, 70, - 69, 80, 91, 92, 98, 115, 124, 127, 113, 82, 42, 4, -44, -70, -82, -100, - -87, -62, -58, -71, -65, -79, -60, -102, -113, -62, -44, -31, -31, -22, -18, -3, - 4, 11, 20, 28, 11, 15, 18, 27, 18, 7, 13, 26, 11, -19, -69, -108, - -84, -51, -21, -3, -6, -18, -17, -31, -33, -18, 2, 4, 26, 47, 48, 77, - 117, 127, 127, 127, 121, 110, 86, 72, 62, 46, 11, 17, -2, -7, -13, -44, - -60, -61, -61, -63, -72, -79, -99, -116, -127, -128, -128, -124, -81, -51, -4, 5, - -6, 7, 8, 9, 31, 31, 16, 34, 28, 34, 34, 46, 78, 84, 93, 69, - 47, 40, 64, 44, 27, 22, 0, -29, -8, 15, -6, -36, -66, -68, -42, 0, - 6, 1, 13, 24, 41, 64, 58, 50, 40, 4, 0, 3, -24, -3, 21, 28, - 26, 9, -30, -42, -61, -85, -92, -91, -96, -87, -74, -31, -20, -38, -14, -44, - -17, 18, -25, -9, 7, 1, 11, -2, -19, 12, 47, 76, 72, 58, 68, 69, - 82, 86, 76, 58, 9, -23, -12, -7, -22, -2, 0, -9, -2, -15, -10, -3, - -22, -17, -38, -44, -33, -24, -27, -16, 0, -15, 20, 19, 18, 1, 10, 41, - -1, -25, -25, -11, 30, 37, 9, 45, 37, -30, -30, 21, 5, -26, -43, -56, - -42, -48, -48, -29, -62, -76, -42, -23, -12, -14, 8, 45, 36, 40, 25, 14, - 11, 40, 46, 55, 65, 30, 17, 30, 36, 33, 18, 13, 16, 15, 46, 37, - 2, -1, -26, -36, -19, -21, -36, -62, -51, -48, -20, -2, 3, -12, -12, -10, - -35, -37, -49, -22, 14, 61, 40, 60, 75, 33, 41, 48, 38, 29, -32, -45, - -56, -64, -61, -30, -20, 30, 10, -46, -37, -35, -30, -24, -12, -23, -34, -29, - -22, -20, -14, 4, 44, 77, 49, 10, 8, 24, 20, 28, 31, 27, 40, 35, - 69, 39, 54, 38, 26, 22, 43, 36, 7, 14, 2, -25, -50, -51, -56, -42, - -55, -46, -36, -44, -36, -35, 1, 23, 11, -3, -34, -66, -33, -12, -31, -27, - -13, -1, 21, 31, 23, 0, -11, -3, -2, 9, 27, 5, -8, -2, -17, -13, - 10, 9, 3, 35, 32, 43, 24, 15, 2, -15, -9, -5, 2, 5, 27, 25, - 42, 76, 61, 17, 25, 14, -5, -17, -24, -6, 11, 23, 7, -8, 5, -11, - -23, -27, -48, -30, -12, -26, -36, -37, -39, -46, -61, -55, -23, -20, -22, -14, - -10, -16, -16, -22, -11, -3, -14, -34, -16, 9, 28, 25, 50, 63, 52, 56, - 46, 50, 54, 56, 45, 54, 29, 20, 21, 0, 0, 6, 16, 28, 14, -1, - -9, -10, -4, -9, -13, -7, -21, -27, -29, -40, -41, -35, -42, -64, -11, 9, - 2, -12, -24, -37, -40, -34, -29, -34, -12, -26, -20, -6, -4, 5, 5, 27, - 1, -17, 2, 21, 12, 8, 9, 15, 23, 24, 1, 5, 22, 25, 28, 57, - 55, 41, 33, 36, 27, 5, 1, 15, 34, 23, 4, 20, 18, -1, -21, -22, - -15, -17, -8, -6, -6, -12, -15, -26, 1, 29, -8, -40, -52, -55, -19, -21, - -36, -48, -56, -29, -15, -29, -39, -46, -35, -14, -11, -16, 1, 27, 22, -10, - -14, -7, -12, -12, 23, 55, 48, 65, 42, 20, 46, 45, 49, 42, 38, 34, - 25, 33, 21, 10, 38, 40, 26, 22, 37, 33, 12, 4, 7, -14, -49, -41, - -36, -53, -40, -35, -44, -31, -22, -19, -50, -78, -80, -78, -48, -31, -18, -27, - -28, -7, -17, -11, 5, 32, 39, 19, 14, 22, 34, 37, 23, 20, 40, 40, - 27, 14, 11, 7, 29, 34, 19, 32, 7, -15, -12, -24, -12, 8, 6, 21, - 34, 29, -6, -22, -15, 1, -1, 24, 27, 20, 36, 42, 45, 27, -14, -50, - -34, -14, -26, -25, -10, 10, -4, -28, -30, -34, -69, -91, -85, -74, -51, -38, - -24, -19, -9, -7, -30, -35, -30, -36, -12, 25, 32, 44, 50, 45, 51, 68, - 94, 90, 74, 60, 52, 64, 48, 30, 11, 11, 11, 2, 14, 24, 16, 13, - -7, -17, -9, -12, -20, -32, -45, -54, -58, -35, -23, -46, -51, -33, -28, -29, - -24, -36, -30, -24, -22, -20, -13, -9, -14, -7, 10, 26, 22, 9, 9, 10, - -2, -9, -15, -11, -1, 19, 27, 33, 28, 5, 3, 5, 6, 10, 14, 24, - 32, 36, 40, 41, 37, 19, 11, 3, -7, -10, -7, 6, 27, 38, 28, 23, - 16, 18, 15, -7, -33, -20, -13, -24, -25, -19, -15, -26, -52, -56, -48, -41, - -36, -30, -32, -30, -15, -38, -49, -47, -32, -17, -17, -11, -3, 3, 8, 24, - 28, 16, 6, 1, 7, 28, 41, 42, 69, 87, 78, 73, 62, 30, 14, 9, - 7, 15, 32, 20, 10, -8, -20, 2, 9, -2, 5, 12, -4, -12, -19, -32, - -37, -29, -24, -28, -39, -43, -40, -44, -28, -25, -33, -39, -37, -34, -29, -28, - -25, -19, -1, -5, -22, -12, 2, 6, 38, 46, 25, 30, 41, 47, 37, 21, - 7, -7, -8, 11, 39, 48, 43, 35, 27, 25, 22, -1, -22, -11, 13, -4, - -13, -3, -8, -7, -11, -17, -5, 5, 9, 8, 15, 25, 16, 22, 20, 5, - -16, -27, -29, -30, -9, 9, 9, 3, -14, -50, -56, -56, -79, -92, -80, -57, - -24, 12, 10, 11, 4, -22, -21, -13, -2, 4, 10, 15, 8, 35, 72, 53, - 44, 25, 25, 48, 56, 69, 53, 50, 75, 85, 71, 33, 12, -16, -32, -25, - -14, -5, -16, -23, -19, -22, -39, -41, -47, -45, -33, -35, -39, -38, -35, -34, - -29, -28, -28, -23, -10, -7, -9, -11, -18, -5, 13, 1, -13, -8, -5, 6, - 27, 46, 43, 25, 8, 11, 16, 18, 23, 30, 12, 5, 10, 7, 5, -6, - -4, -5, 1, 10, 9, 15, 21, 17, 10, -8, -16, 10, 33, 34, 23, 13, - 17, 17, 9, 11, 7, -4, -8, -8, -22, -27, -26, -19, -7, -18, -16, -16, - -47, -62, -55, -36, -16, -25, -33, -30, -34, -42, -49, -41, -43, -31, -20, -3, - 28, 48, 66, 64, 36, 20, 26, 21, 22, 39, 51, 45, 39, 40, 53, 56, - 39, 24, 16, 12, 16, 24, 27, 16, 13, 7, -18, -33, -50, -47, -33, -24, - -20, -26, -32, -31, -46, -53, -58, -56, -29, -13, -11, -2, 8, -11, -24, -11, - -9, -6, -2, -6, 1, 4, 5, 11, 6, 7, 16, 30, 28, 19, 15, 7, - 4, 11, 27, 22, 6, 9, 11, 3, 4, 17, 27, 18, 11, 12, 5, 2, - -2, -6, -7, -2, 10, 12, 9, 1, -2, 3, 4, 11, 21, 30, 28, 6, - -9, -18, -22, -22, -38, -41, -27, -18, -18, -27, -27, -23, -32, -35, -32, -34, - -30, -25, -24, -18, -9, -5, 5, -5, -26, -19, -11, -4, 11, 37, 48, 46, - 50, 53, 50, 45, 45, 37, 18, 24, 44, 38, 43, 47, 29, 15, 11, 10, - 12, 4, -8, -6, -4, -17, -27, -28, -36, -34, -37, -53, -53, -46, -38, -38, - -37, -28, -24, -23, -37, -42, -30, 0, 20, 18, 12, 14, 9, 2, 6, 15, - 13, 10, 14, 12, 2, 12, 29, 21, 1, 7, 21, 19, 14, 15, 15, 4, - -1, 5, -1, -4, 0, -2, 3, 6, 6, 13, 21, 15, 7, 3, 5, 2, - -3, 3, 3, 5, 8, 10, 16, 14, -1, -7, 2, 11, 12, -10, -35, -42, - -26, -21, -37, -44, -44, -47, -42, -27, -27, -23, -15, -16, -20, -21, -14, -12, - -9, -7, -6, 0, 13, 30, 32, 37, 38, 31, 24, 25, 43, 54, 49, 46, - 44, 40, 41, 30, 9, -1, 6, 22, 31, 22, 9, 0, -14, -23, -29, -29, - -28, -35, -39, -39, -39, -33, -25, -30, -44, -49, -45, -45, -35, -19, 2, 16, - 16, 9, 0, 0, 6, 2, -1, 11, 27, 40, 32, 16, -2, -2, 1, 3, - 1, 7, 12, 6, 8, 11, 5, -1, -2, -1, 1, 8, 10, 5, 4, 14, - 17, 6, -1, 0, 4, 4, 17, 23, 19, 25, 20, 5, -8, -9, -2, -1, - -6, -3, 13, 16, 1, -13, -19, -21, -26, -34, -37, -23, -13, -13, -24, -40, - -42, -40, -39, -29, -22, -21, -18, -12, -2, 18, 24, 10, 0, -6, -4, 15, - 33, 34, 34, 44, 41, 31, 33, 44, 43, 31, 22, 20, 17, 16, 23, 22, - 19, 21, 10, -5, -6, -9, -8, -2, -5, -16, -28, -36, -47, -53, -39, -23, - -21, -24, -32, -43, -39, -34, -24, -18, -14, -11, -12, -6, 10, 29, 41, 40, - 27, 14, 10, 4, 1, 3, 2, 9, 19, 21, 9, -10, -16, -10, 8, 18, - 20, 13, -3, -8, -4, -1, 2, 5, 5, -1, 3, 9, 12, 16, 16, 14, - 9, 3, 5, 10, 4, -6, 1, 6, 5, 13, 20, 11, 1, -7, -21, -30, - -25, -12, -9, -13, -19, -24, -29, -34, -30, -32, -39, -33, -24, -20, -22, -24, - -13, 3, 6, 2, 1, 3, 5, 16, 30, 35, 35, 24, 16, 15, 19, 31, - 37, 33, 28, 29, 29, 30, 26, 20, 15, 13, 10, 10, 12, 9, 7, -3, - -21, -39, -44, -43, -42, -34, -26, -23, -18, -12, -18, -32, -36, -31, -27, -20, - -10, -7, -9, -11, -5, 2, 12, 19, 19, 25, 24, 11, 3, 15, 29, 30, - 20, 9, 1, -1, 1, 5, 2, -3, -2, 0, -6, -18, -27, -20, -3, 8, - 13, 15, 11, 7, 10, 18, 16, 10, 6, 3, -1, 1, 11, 19, 19, 15, - 14, 5, -2, -2, -7, -12, -15, -20, -16, -10, -5, 2, 1, -13, -29, -33, - -24, -10, -6, -13, -18, -23, -31, -32, -26, -22, -18, -13, -3, 2, 3, 7, - 8, 10, 19, 27, 32, 33, 33, 35, 38, 43, 41, 29, 9, -4, -9, 2, - 16, 17, 13, 15, 17, 13, 10, 5, -1, -8, -18, -29, -32, -27, -21, -22, - -30, -31, -31, -33, -31, -27, -18, -7, -6, -15, -16, -8, -1, 4, 12, 18, - 22, 20, 16, 11, 10, 14, 18, 16, 15, 14, 9, 6, 4, 3, 3, 0, - -5, -13, -18, -15, -13, -9, -7, -8, -5, -2, -5, -1, 5, 8, 10, 11, - 12, 17, 19, 16, 10, 4, 4, 8, 8, 8, 13, 14, 9, 3, 0, -1, - 0, 0, -7, -19, -24, -20, -15, -12, -15, -21, -23, -24, -26, -28, -29, -28, - -21, -10, -1, 5, 6, -3, -12, -14, -11, -1, 12, 16, 17, 28, 36, 28, - 20, 25, 27, 24, 25, 28, 21, 15, 11, 3, 4, 12, 11, 0, -7, -5, - -1, -1, -5, -8, -11, -17, -23, -22, -19, -21, -20, -20, -22, -24, -22, -17, - -20, -24, -20, -10, 2, 10, 13, 14, 14, 11, 8, 8, 12, 17, 18, 20, - 20, 14, 4, -1, -2, -1, 3, 11, 12, 6, 0, -9, -20, -25, -18, -9, - -8, -13, -18, -19, -14, -6, 0, 4, 11, 19, 22, 20, 19, 15, 13, 14, - 18, 17, 12, 7, 9, 14, 9, -1, -4, -1, -5, -10, -12, -16, -23, -19, - -7, -5, -10, -10, -11, -19, -27, -24, -14, -6, -3, -10, -21, -24, -15, -6, - 0, 9, 15, 12, 8, 6, 9, 9, 11, 20, 26, 31, 35, 30, 21, 16, - 16, 13, 6, 2, 4, 5, 3, -2, -10, -13, -11, -8, -9, -13, -16, -18, - -18, -19, -22, -18, -8, -3, -1, 0, -5, -11, -10, -9, -11, -9, -2, 2, - 4, 10, 15, 18, 19, 21, 21, 22, 22, 15, 4, -4, -8, -7, -6, -10, - -14, -18, -23, -20, -15, -8, -1, 0, -4, -7, -9, -9, -6, -2, 2, 6, - 7, 4, 1, 0, 7, 13, 11, 14, 22, 22, 15, 8, 2, 4, 10, 16, - 17, 13, 10, 9, 6, -3, -13, -23, -26, -21, -17, -14, -12, -13, -16, -14, - -9, -8, -8, -11, -18, -18, -12, -4, 0, 2, 6, 6, -1, -6, 0, 8, - 11, 13, 11, 6, 6, 9, 13, 16, 16, 15, 10, 7, 10, 10, 4, 0, - -2, -3, -1, 2, 2, -1, -5, -13, -21, -27, -30, -26, -16, -4, 5, 8, - 6, 2, -3, -5, -1, 4, 8, 9, 11, 11, 6, 0, 0, 7, 12, 13, - 11, 7, 1, -4, -3, 0, 5, 6, 5, -2, -10, -13, -13, -10, -5, -4, - -9, -18, -28, -31, -24, -14, -10, -4, 2, 5, 4, 2, 4, 13, 20, 21, - 19, 14, 11, 11, 12, 13, 14, 15, 17, 18, 18, 14, 5, -3, -5, -8, - -11, -11, -12, -15, -15, -13, -13, -15, -13, -12, -15, -16, -11, -7, -6, -4, - -1, 4, 6, -1, -10, -11, -7, -4, -1, 4, 9, 11, 12, 9, 7, 8, - 8, 7, 9, 13, 15, 12, 4, 1, 1, -2, -9, -10, -7, -1, 3, 3, - -1, -9, -12, -9, -5, 1, 3, -2, -10, -10, -7, -4, 2, 8, 6, 4, - 6, 5, -1, -1, 7, 17, 20, 17, 16, 19, 16, 7, -3, -8, -9, -9, - -11, -15, -24, -27, -20, -15, -12, -11, -7, -3, -4, -6, -7, -6, -8, -14, - -18, -18, -15, -10, -5, 3, 12, 18, 20, 17, 11, 10, 16, 21, 22, 23, - 23, 22, 17, 9, 0, -3, 2, 10, 15, 16, 11, 2, -9, -19, -23, -22, - -15, -10, -8, -11, -13, -15, -17, -19, -18, -15, -10, -3, 1, -2, -6, -3, - 0, -3, -3, 0, 6, 10, 9, 7, 4, -1, -4, 0, 10, 17, 16, 11, - 5, 0, -1, 2, 5, 1, -6, -10, -10, -8, -6, -4, -2, -4, -7, -9, - -9, -6, 2, 12, 17, 16, 11, 8, 7, 6, 5, 7, 9, 12, 14, 14, - 9, 3, -1, -3, -5, -4, 0, 4, -1, -10, -18, -24, -29, -28, -20, -14, - -13, -12, -8, -5, -5, -9, -13, -14, -11, -10, -9, -4, 1, 3, 2, 3, - 8, 16, 20, 18, 13, 10, 14, 24, 29, 29, 27, 23, 17, 14, 16, 17, - 15, 9, -1, -7, -10, -14, -18, -16, -11, -8, -7, -8, -12, -18, -26, -29, - -26, -19, -11, -5, -3, -3, -2, 0, 2, 0, -3, -3, -2, -3, -4, -2, - -1, 3, 7, 9, 8, 7, 3, 1, 4, 5, 2, 3, 5, 5, 0, -7, - -9, -6, -1, 5, 9, 8, 3, -2, -6, -5, 3, 9, 12, 11, 8, 4, - 3, 4, 6, 11, 13, 8, 1, 0, 4, 9, 13, 12, 5, 2, 3, 3, - 0, -6, -16, -26, -30, -28, -26, -22, -18, -17, -19, -22, -24, -19, -12, -7, - -2, 1, 0, -2, -4, -5, -2, 4, 10, 14, 15, 15, 16, 16, 17, 19, - 22, 26, 25, 19, 13, 10, 7, 9, 11, 10, 7, 4, 1, -5, -8, -8, - -4, 0, 1, -4, -11, -16, -17, -16, -14, -12, -10, -11, -14, -15, -16, -13, - -9, -3, 1, 2, 1, 0, 0, -3, -9, -13, -10, -8, -7, -4, 0, 3, - 6, 9, 9, 5, 3, 3, 5, 8, 12, 12, 6, -1, -2, 2, 8, 8, - 4, -2, -5, -1, 4, 10, 13, 14, 13, 13, 14, 14, 12, 10, 8, 8, - 8, 6, 6, 9, 6, -1, -9, -15, -19, -22, -24, -23, -25, -25, -23, -20, - -19, -19, -21, -20, -20, -21, -19, -11, -2, 2, 1, 0, 3, 9, 13, 15, - 16, 14, 10, 5, 3, 8, 14, 16, 18, 20, 22, 24, 21, 15, 9, 6, - 8, 14, 18, 15, 9, 4, 1, 0, -2, -4, -4, -3, -3, -4, -7, -11, - -13, -12, -11, -15, -19, -22, -25, -25, -21, -14, -11, -15, -19, -18, -14, -7, - -1, 4, 2, -3, -6, -4, 0, 5, 10, 16, 17, 12, 7, 2, -1, -3, - 0, 3, 6, 10, 14, 12, 6, 2, 5, 10, 15, 18, 18, 16, 14, 11, - 6, 4, 3, 1, 1, 2, 6, 9, 9, 3, -2, -3, -4, -6, -8, -10, - -15, -19, -20, -19, -18, -17, -15, -16, -17, -18, -20, -22, -21, -16, -11, -4, - 1, 0, -4, -4, -1, 1, 2, 4, 4, 3, 3, 4, 7, 11, 16, 21, - 20, 15, 11, 9, 12, 16, 21, 24, 23, 21, 17, 13, 11, 9, 4, 0, - 0, 1, 3, 4, 0, -4, -7, -7, -9, -13, -17, -20, -22, -23, -21, -16, - -12, -12, -15, -17, -17, -15, -12, -10, -10, -11, -12, -15, -15, -10, -4, 0, - -1, -1, 1, 4, 7, 13, 19, 22, 23, 21, 19, 18, 17, 11, 5, 2, - 5, 10, 13, 15, 15, 14, 13, 10, 5, 1, 0, 2, 5, 8, 10, 9, - 6, 4, 2, -1, -5, -7, -8, -7, -8, -11, -13, -14, -16, -19, -21, -22, - -22, -24, -23, -20, -17, -16, -16, -15, -16, -16, -15, -13, -11, -9, -5, 0, - 6, 12, 15, 18, 18, 17, 17, 19, 20, 19, 19, 20, 23, 25, 25, 23, - 20, 17, 13, 11, 9, 9, 8, 6, 3, 1, -2, -5, -5, -2, -1, -3, - -7, -6, -3, 0, -2, -9, -21, -29, -32, -32, -30, -27, -27, -29, -30, -28, - -24, -23, -21, -16, -7, 0, 1, 2, 2, 4, 7, 10, 14, 16, 14, 12, - 13, 15, 18, 20, 22, 23, 20, 15, 8, 3, 2, 7, 13, 15, 13, 7, - 2, 0, 0, -1, -2, -1, 1, 2, 1, 0, 2, 3, 4, 4, 6, 7, - 5, 0, -10, -21, -30, -36, -36, -33, -28, -23, -18, -15, -14, -17, -19, -19, - -17, -12, -5, -2, -2, -3, -1, 2, 6, 10, 12, 14, 13, 12, 13, 18, - 25, 29, 28, 24, 19, 14, 10, 6, 6, 9, 12, 13, 15, 17, 18, 18, - 14, 7, 0, -1, 1, 1, -2, -6, -8, -10, -11, -13, -17, -19, -18, -17, - -16, -14, -14, -15, -17, -19, -22, -26, -26, -24, -20, -17, -14, -13, -12, -10, - -7, -4, 1, 5, 7, 9, 10, 13, 15, 17, 18, 21, 24, 22, 21, 19, - 17, 15, 13, 14, 14, 16, 17, 18, 16, 12, 10, 8, 6, 5, 3, 0, - -3, -6, -7, -5, -4, -4, -5, -5, -4, -4, -4, -8, -13, -19, -24, -27, - -28, -27, -25, -25, -27, -27, -25, -19, -14, -8, -3, 1, 6, 9, 8, 3, - -3, -6, -4, -1, 4, 9, 14, 18, 20, 22, 22, 23, 23, 22, 21, 20, - 20, 21, 21, 19, 15, 9, 3, -2, -4, -3, 0, 2, 2, 2, 3, 3, - 1, -4, -10, -15, -19, -19, -16, -11, -7, -7, -9, -13, -17, -23, -28, -30, - -29, -24, -20, -18, -19, -20, -19, -18, -19, -18, -13, -5, 1, 6, 9, 11, - 13, 16, 21, 26, 29, 30, 29, 29, 28, 26, 23, 20, 20, 21, 21, 20, - 18, 15, 9, 2, -4, -6, -5, -3, -3, -4, -6, -7, -9, -10, -10, -10, - -10, -11, -13, -12, -11, -8, -6, -6, -10, -17, -26, -32, -35, -35, -34, -32, - -27, -19, -9, -3, -1, -2, -5, -7, -6, -1, 7, 14, 18, 21, 23, 25, - 26, 26, 23, 20, 20, 23, 24, 24, 21, 19, 14, 8, 2, -1, 0, 1, - 2, 3, 6, 8, 8, 5, 2, -2, -5, -5, -4, -1, 1, 1, -1, -6, - -9, -11, -13, -17, -20, -24, -26, -27, -26, -23, -21, -20, -23, -26, -27, -26, - -24, -20, -15, -9, -2, 4, 8, 10, 13, 16, 19, 21, 23, 25, 28, 33, - 36, 38, 38, 35, 32, 29, 24, 16, 11, 6, 2, -2, -6, -6, -5, -4, - -4, -7, -11, -14, -13, -10, -8, -8, -8, -9, -11, -12, -12, -11, -11, -12, - -14, -17, -19, -19, -18, -18, -20, -22, -23, -21, -18, -14, -11, -8, -4, -1, - 5, 11, 13, 11, 8, 6, 7, 9, 11, 13, 15, 19, 22, 23, 25, 27, - 27, 22, 17, 11, 6, 4, 5, 9, 13, 15, 15, 11, 6, 0, -4, -7, - -8, -6, -3, -2, -3, -6, -9, -13, -18, -22, -23, -20, -15, -11, -10, -11, - -14, -19, -24, -27, -28, -28, -27, -26, -23, -19, -15, -10, -6, -1, 4, 8, - 10, 11, 11, 13, 15, 17, 20, 23, 24, 24, 26, 28, 28, 28, 27, 26, - 24, 22, 20, 16, 13, 10, 8, 6, 3, -3, -9, -15, -17, -16, -15, -13, - -13, -14, -17, -19, -20, -20, -17, -14, -12, -13, -14, -13, -13, -14, -15, -14, - -13, -12, -12, -12, -10, -8, -7, -8, -9, -9, -7, -4, 0, 3, 6, 8, - 10, 12, 14, 18, 22, 25, 26, 27, 28, 28, 27, 24, 20, 16, 13, 11, - 9, 6, 3, 0, -3, -3, -2, 1, 3, 5, 3, 0, -4, -8, -12, -17, - -21, -22, -20, -17, -15, -14, -14, -13, -15, -19, -22, -21, -18, -14, -13, -15, - -16, -17, -17, -19, -19, -16, -11, -4, 1, 6, 10, 13, 17, 20, 23, 24, - 24, 24, 25, 28, 33, 37, 38, 35, 30, 24, 20, 16, 13, 9, 2, -4, - -8, -8, -8, -7, -7, -9, -12, -16, -18, -18, -16, -15, -16, -16, -16, -13, - -10, -10, -11, -13, -15, -15, -15, -15, -16, -17, -16, -14, -13, -13, -13, -13, - -12, -9, -5, -2, 1, 3, 6, 12, 18, 22, 22, 21, 18, 16, 16, 19, - 23, 29, 32, 30, 24, 18, 13, 9, 6, 3, 0, -2, -4, -6, -8, -10, - -11, -10, -6, -3, -2, -3, -5, -5, -6, -6, -7, -6, -5, -4, -5, -8, - -10, -11, -12, -14, -16, -18, -20, -21, -21, -22, -23, -24, -24, -22, -18, -11, - -4, 1, 4, 5, 6, 8, 11, 15, 20, 24, 26, 27, 28, 31, 32, 31, - 30, 28, 27, 24, 20, 17, 14, 12, 9, 3, -3, -9, -12, -15, -16, -17, - -15, -13, -10, -10, -11, -13, -14, -15, -17, -19, -21, -23, -24, -22, -18, -13, - -9, -8, -8, -8, -9, -9, -9, -7, -4, 0, 2, 3, 5, 5, 3, 3, - 4, 5, 6, 7, 10, 14, 17, 20, 20, 20, 21, 22, 20, 18, 16, 15, - 14, 12, 9, 7, 6, 4, 2, -2, -5, -7, -9, -9, -8, -5, -2, 0, - 0, -1, -3, -7, -12, -16, -16, -15, -13, -12, -13, -13, -12, -11, -11, -12, - -15, -19, -23, -24, -22, -19, -16, -13, -10, -5, -1, 3, 6, 7, 8, 8, - 10, 13, 17, 21, 25, 27, 28, 28, 26, 24, 24, 25, 27, 28, 29, 28, - 25, 19, 12, 4, -3, -10, -15, -19, -22, -24, -25, -26, -25, -23, -21, -20, - -18, -17, -16, -14, -12, -11, -12, -14, -14, -13, -13, -15, -16, -16, -16, -15, - -11, -4, 0, 14, -8, 46, 7, -20, -23, -28, 17, 9, 47, -7, -15, -35, - -1, -26, 44, 34, -31, 31, -47, -32, 30, -2, 32, 15, -15, -17, -39, 16, - -2, 26, 23, 3, -43, 11, -37, 14, 37, 7, 4, -21, -30, -9, 14, 18, - 38, -13, -16, -21, -24, 8, 38, 3, 16, -29, -11, -26, 20, 15, 24, -9, - 0, -34, -21, 32, -16, 41, -1, -20, -7, -7, -7, 27, 0, -2, -2, -11, - -11, 19, -16, 32, -19, -4, 11, -40, 49, -13, -12, 12, -32, 12, 17, 1, - 23, -34, -20, 14, -20, 33, 44, -51, 7, -21, -38, 46, 19, 37, -28, -29, - -17, -40, 63, 36, -33, 42, -45, -57, 16, 37, -3, 54, 0, -64, -25, -7, - 15, 37, 34, -2, -65, -12, -3, -7, 76, -2, -6, -28, -22, -30, 40, 11, - 12, 21, -43, -6, -1, -31, 73, -35, 33, -1, -67, 29, -24, 16, 42, 4, - -26, 17, -71, 32, 0, 0, 72, -56, 4, -2, -75, 76, -25, 39, 24, -42, - -6, -20, -31, 56, 1, 3, 49, -63, -12, -16, -10, 49, 12, 29, -32, -59, - 35, -39, 35, 45, -33, -21, 46, -68, 13, 16, 12, 0, 2, 32, -70, 12, - 30, -62, 64, 5, -31, 22, -30, 11, -30, 43, 2, -8, 16, -3, -60, 39, - -11, -13, 63, -32, 8, -6, -45, 39, -38, 30, 49, -89, 96, -84, 0, 43, - -51, 52, -4, -6, 7, -31, -10, 12, -22, 62, 8, -57, 65, -101, 1, 69, - -46, 76, -18, -34, -24, -33, 50, -6, 55, 16, -70, -19, 2, -33, 59, 61, - -40, 7, -44, -33, -7, 61, 31, -15, 5, -32, -70, 47, 34, 8, 22, -16, - -44, -47, 56, -6, 12, 56, -46, -32, -3, 7, -4, 42, 19, -41, -35, 41, - -59, 43, 45, -44, 9, -9, -7, -19, 36, 2, -50, 49, -6, -34, 33, -1, - -38, 17, 44, -33, 5, 28, -68, -13, 62, -25, 15, 45, -57, -32, 23, -14, - 37, 11, 29, -56, -48, 46, -55, 48, 94, -74, 22, -40, -59, 36, 9, 75, - -19, -31, 6, -104, 39, 80, -23, 59, -12, -104, 10, -12, 24, 59, 5, 9, - -78, -12, 24, -47, 116, -6, -51, 34, -71, -26, 55, 3, 11, 38, -31, -9, - -45, 21, -11, 4, 92, -79, 16, -16, -41, 29, 27, 19, -5, -19, -13, -35, - 29, 22, -7, 20, -35, 6, -21, 30, -2, 6, -8, -20, -12, 30, -13, 8, - 23, -52, 21, 8, -16, 40, -20, -7, -15, -38, 62, -33, 48, 5, -66, 28, - -25, 15, 39, 5, -46, 8, -46, 32, 12, 37, -9, -49, 43, -78, 43, 46, - -43, 39, -41, -36, 13, 19, 48, -21, 9, -37, -54, 45, 32, -14, 41, -32, - -66, 42, -8, 37, 12, -10, -12, -74, 71, -30, 16, 65, -64, -1, -13, -12, - 17, 24, 10, -16, -31, -1, -3, 1, 68, -47, -7, -8, -41, 74, -16, 32, - -27, -42, 22, -49, 80, -11, 0, 23, -84, 34, -24, 31, 48, -37, 23, -55, - -25, 22, 14, 22, 59, -78, -11, -1, -45, 90, -35, 32, 0, -75, 63, -65, - 34, 52, -71, 70, -56, -14, 30, -22, 10, 55, -74, 41, -19, -47, 88, -62, - 50, -11, -57, 44, -54, 59, 17, -23, 12, -40, -41, 60, 3, 15, 28, -71, - -1, -17, 11, 61, -28, 47, -59, -48, 35, -18, 51, 27, -20, -35, -36, 14, - 6, 44, 23, -30, -33, -17, -1, 14, 49, -2, -32, -12, -20, 5, 29, 34, - -33, 9, -34, -26, 36, -2, 40, -28, 5, -26, -39, 65, -27, 19, 31, -54, - 0, -8, 12, 2, 30, -5, -25, -22, 24, -29, 26, 52, -57, 7, 5, -56, - 46, 1, 8, 4, -5, 1, -51, 28, 14, -21, 48, -17, -46, 4, 11, -6, - 35, 7, -16, -31, -10, 25, -49, 95, -28, -29, 19, -46, -5, 32, 21, 8, - -1, -24, -36, -17, 59, -7, 33, 10, -76, -14, 19, -1, 56, 16, -23, -64, - -8, 7, 8, 85, 0, -57, -21, -35, -7, 72, 23, 28, -66, -16, -47, 2, - 68, 24, 5, 0, -69, -26, 22, -7, 72, 0, -12, -20, -51, 15, -11, 44, - 44, -46, 36, -59, -38, 32, 19, -3, 71, -45, -28, -29, -17, 36, 8, 79, - -47, -53, 18, -65, 38, 75, -24, 20, -36, -34, -26, 38, 39, -7, -3, 7, - -85, 44, 26, -17, 42, -20, -29, -26, 26, 18, -8, 36, -17, -73, 40, 4, - -1, 52, -16, -47, -15, 14, 4, 29, 30, -41, -44, 15, -2, 16, 60, -26, - -54, 17, -33, 22, 48, -5, -15, -20, -13, -15, 31, 37, -28, 6, -17, -22, - -10, 64, -43, 16, 22, -71, 41, 3, -1, 6, -12, 12, -38, 11, 38, -49, - 37, 24, -64, 27, 18, -73, 81, -33, 14, -3, -32, 43, -60, 53, 24, -76, - 70, -29, -33, 50, -18, -34, 48, -38, 37, -15, -5, 25, -80, 70, -4, -45, - 89, -72, -3, 13, -23, 28, 21, -9, -9, -25, -11, 24, -26, 62, -14, -49, - 67, -97, 57, 12, -23, 46, -46, 9, -20, -4, 25, -1, 5, 18, -31, -25, - 38, -43, 44, 17, -42, 37, -66, 37, -16, 26, 18, -16, -17, -4, -17, 7, - 38, -11, 4, -3, -51, 32, -17, 38, 18, -34, 23, -58, 4, 25, 0, 26, - 3, -35, -11, -10, 16, 24, 8, 4, -33, -30, 22, -2, 14, 52, -61, 10, - -23, -4, 20, 10, 32, -44, -2, 1, -36, 37, 32, -25, 2, 0, -40, 14, - 24, -5, 13, -28, 20, -51, 41, 15, -23, 25, -12, -41, 30, -2, -11, 40, - -34, 14, -24, 3, 22, -31, 44, -22, -31, 57, -55, 28, 0, -9, 1, 11, - -10, 8, -13, 3, -2, -23, 60, -49, 23, 10, -59, 36, -3, -3, 35, -23, - 5, -42, 15, 7, -2, 35, 0, -45, 8, -4, -27, 63, -4, -14, 9, -39, - 1, 1, 27, 19, -27, 24, -49, -6, 34, -5, 10, 19, -32, -20, 14, -12, - 16, 26, -9, -19, -9, -8, 8, 7, 40, -29, -14, -4, -25, 7, 56, -15, - 6, -20, -36, 3, 10, 33, 20, -23, -5, -42, -18, 54, -17, 63, -5, -59, - 2, -44, 12, 57, 17, 15, -33, -44, -16, -17, 65, 40, -9, 10, -72, -51, - 39, 10, 65, 19, -25, -47, -51, 17, 20, 53, 30, -35, -35, -34, -16, 36, - 48, 12, -3, -35, -42, -9, 28, 34, 12, 15, -42, -39, 7, 8, 24, 28, - 1, -31, -36, 9, -1, 28, 29, -14, -34, 14, -43, 23, 34, -7, 24, -44, - 10, -28, -5, 53, -29, 29, -7, -33, 2, -1, 5, 19, 10, -17, 2, -33, - 14, 1, 8, 32, -36, 17, -28, -18, 36, -22, 29, 2, -25, 5, -17, 13, - 1, 16, -1, -10, -12, 3, -9, 10, 19, -22, 16, -3, -20, 24, -22, 15, - -3, -14, 22, -30, 31, -14, -11, 12, -11, 8, 17, -9, -4, -13, -13, 7, - 10, 19, -6, -7, -2, -32, 24, 8, 0, 17, -20, -10, -15, 13, 10, 11, - 4, -1, -40, 19, -4, -6, 42, -31, -1, -5, -12, 19, 6, 7, -5, -26, - 10, -12, 15, 20, -8, -19, 12, -40, 31, 15, -3, 16, -23, -27, 7, -5, - 31, 6, 3, -6, -41, 14, -2, 7, 38, -10, -29, 11, -44, 17, 29, 6, - 20, -26, 1, -45, 9, 31, -18, 40, -1, -47, 8, -10, -4, 29, 33, -25, - 1, -31, -12, -9, 35, 30, -25, 31, -48, -28, 20, 17, 9, 30, -19, -39, - -13, 6, 8, 38, 15, -10, -42, 0, -24, 15, 49, -9, -12, 5, -44, -5, - 42, 4, 6, 8, -27, -29, 5, 24, -2, 10, 28, -56, 1, 23, -29, 29, - 15, -19, -11, 1, -4, -8, 24, 6, -15, 2, 7, -27, 12, 21, -40, 36, - -15, -12, 22, -16, 17, -17, 15, -6, -18, 23, -3, -26, 39, -27, -5, 26, - -20, 8, 5, -11, 7, -21, 19, -11, -8, 35, -25, 2, 18, -35, 9, 16, - -21, 29, -16, 1, -13, -13, 28, -18, 23, 13, -36, 6, -1, -23, 26, 12, - -15, 17, -20, -2, -7, 3, 22, -22, 27, -11, -34, 36, -30, 11, 17, 2, - -12, 13, -22, -11, 11, -5, 26, -17, 26, -25, -32, 44, -47, 39, 25, -31, - 16, -35, -1, -4, 26, 16, 3, -16, -10, -23, -8, 55, -27, 26, 0, -63, - 41, -26, 28, 22, -23, 14, -42, 5, 20, -13, 28, 3, -42, 20, -6, -17, - 52, -32, 6, -2, -37, 42, -27, 29, 15, -51, 40, -38, 2, 33, -19, 6, - 11, -43, 25, 0, -19, 57, -54, 31, -9, -43, 58, -52, 36, 11, -44, 50, - -44, 8, 23, -24, 12, 6, -34, 25, -9, -15, 50, -55, 35, -7, -25, 49, - -48, 32, -23, -18, 37, -30, 28, 8, -27, 7, -2, -19, 22, 10, -11, 10, - -27, 4, -16, 18, 29, -19, 20, -22, -36, 16, -2, 18, 14, 3, -24, -15, - -5, 12, 13, 20, 4, -40, 2, -23, 8, 29, 7, 9, -23, -10, -13, 5, - 19, 9, -3, -14, -7, -19, 21, 6, 5, 10, -20, 0, -14, 12, 0, 2, - 5, -13, 1, -3, 12, -12, 20, -13, -7, 6, -11, 5, 0, 5, -5, -4, - 10, -10, 2, 6, -5, -12, 18, -13, -9, 19, -17, 11, -1, 8, -5, -22, - 26, -26, 1, 29, -17, -7, 16, -22, -8, 23, -3, 4, -3, -2, -15, -20, - 42, -21, 4, 40, -55, 8, 8, -22, 21, 20, -17, 2, -14, -7, -2, 10, - 31, -25, 10, -3, -54, 40, 5, -12, 42, -17, -37, 13, -12, 7, 24, 10, - -6, -36, 12, -9, -25, 74, -24, -19, 38, -64, 5, 25, 0, 16, 1, -9, - -25, -23, 36, -8, 6, 50, -58, -12, 22, -53, 52, 18, -12, 16, -51, 15, - -30, 25, 46, -37, 31, -26, -49, 30, 9, -1, 42, -19, -28, -13, -5, 16, - 4, 42, -18, -40, 20, -30, 1, 49, -4, -15, 0, -21, -19, 21, 26, 0, - -9, 9, -43, -1, 26, -5, 21, -7, -6, -32, 9, 12, -3, 34, -17, -12, - -17, -4, 9, 7, 28, -19, -3, -13, -11, 7, 15, 15, -19, 15, -38, -5, - 17, -1, 29, -20, 15, -39, -11, 41, -33, 45, -8, -21, -11, -3, 7, 0, - 28, -7, -19, -8, 7, -20, 23, 24, -40, 24, -17, -16, 26, -9, 21, -27, - 13, -11, -22, 29, -7, 0, 22, -22, -16, 14, -12, 12, 11, -5, -6, -17, - 14, -15, 9, 30, -28, 5, 1, -26, 8, 18, -7, 1, 6, -12, -15, 9, - 13, -13, 13, 13, -42, 14, 3, -16, 20, 7, -3, -22, 25, -26, 4, 16, - -7, 3, -8, 17, -33, 14, 9, -21, 25, -3, -11, -1, 1, -13, 1, 23, - -20, 26, -18, 0, -18, 3, 24, -25, 36, -15, -29, 22, -22, 3, 24, -5, - -1, 0, -18, 2, -11, 20, 10, -17, 30, -37, -15, 29, -33, 39, 11, -23, - 7, -34, 8, 0, 11, 36, -27, -12, 9, -47, 29, 31, -29, 40, -37, -14, - 3, -17, 45, -11, 8, 12, -60, 20, -2, -2, 41, -12, -18, 3, -37, 27, - 12, -4, 37, -56, 17, -21, -5, 44, -20, 14, -2, -40, 20, 0, 3, 22, - -13, -10, -6, -16, 29, -12, 14, 15, -49, 24, -11, -7, 39, -18, 3, -20, - -12, 19, -10, 32, 2, -34, 10, -13, -13, 37, 1, -7, 3, -33, 4, 2, - 18, 25, -25, 8, -33, -13, 34, -7, 24, 4, -33, -10, -2, 2, 25, 12, - -1, -25, -12, 3, -18, 34, 12, -15, 4, -9, -25, 10, 17, -3, 9, 2, - -13, -23, 9, 8, -13, 37, -10, -15, 1, -13, -1, 0, 31, -15, 0, 5, - -29, 6, 5, 15, -9, 16, -9, -29, 15, -10, 3, 15, 9, -11, -12, 11, - -29, 17, 14, -7, 6, -6, -7, -24, 30, -11, 9, 18, -20, -8, -6, 6, - -10, 22, 10, -29, 14, -13, -8, 13, 17, -13, 2, 1, -24, 5, 5, 12, - -10, 15, -7, -28, 21, -2, -8, 22, -9, -14, -2, 6, -5, 5, 12, -7, - -15, 14, -4, -16, 27, -10, -14, 13, -5, -9, 10, 5, -8, -5, 16, -20, - 2, 13, -14, -3, 17, -18, 2, 10, -12, 9, -6, -2, -16, 13, 10, -15, - 33, -24, -17, 10, -4, 15, 1, 9, -23, -9, 6, -5, 5, 21, -10, -13, - 11, -21, -2, 19, -10, 23, -20, 10, -16, -21, 33, -17, 17, 18, -30, 1, - -14, -1, 20, -2, 18, -15, -24, 6, -5, 6, 36, -26, 6, -18, -23, 34, - -12, 25, 1, -30, -1, -11, 10, 22, -1, 4, -19, -28, 21, -11, 22, 25, - -33, 4, -21, -7, 22, 7, 19, -23, -13, -3, -13, 21, 17, -11, 7, -19, - -12, 12, -10, 30, -13, -5, 4, -30, 27, -9, 17, -3, -25, 13, -23, 13, - 27, -15, -5, 3, -35, 17, 19, -8, 29, -37, 1, -15, -10, 48, -20, 26, - -7, -49, 22, -23, 21, 33, -10, -8, -17, -34, 11, 19, 12, 40, -39, -14, - -13, -36, 64, -4, 20, 9, -55, 3, -24, 21, 31, 10, -1, -22, -30, -7, - 12, 18, 29, -10, -7, -28, -22, 22, 3, 26, 4, -13, -18, -16, 21, -9, - 28, -1, -21, 0, -12, 5, 6, 5, 10, -20, 1, 3, -20, 21, 7, -23, - 24, -25, -6, 21, -13, 25, -19, -8, 2, -14, 20, 13, -23, 25, -31, -7, - 24, -16, 20, 6, -25, 8, -24, 12, 15, -10, 24, -25, -2, 0, -12, 14, - 10, -13, 4, 1, -17, 9, 6, -9, 9, 0, -3, -8, 11, -10, -2, 7, - -1, -6, 6, 1, -12, 1, 18, -31, 23, -2, -21, 21, -6, -8, 15, -14, - 4, -6, -1, 17, -22, 20, -6, -35, 37, -17, -6, 47, -41, 6, -6, -16, - 12, 16, 6, 1, -36, 18, -26, 4, 59, -36, -1, 16, -64, 30, 14, 1, - 16, -13, 0, -35, 17, 13, -8, 12, 14, -45, 11, 12, -24, 27, 12, -27, - 10, -6, -9, 1, 14, -7, -6, 8, -4, -8, 8, 8, -24, 13, 7, -27, - 28, -1, -28, 27, -19, -2, 17, -5, 6, -10, -5, 4, -25, 32, 2, -22, - 32, -28, -20, 35, -20, 16, 7, -18, 1, -22, 20, 0, 2, 20, -15, -25, - 24, -25, 12, 25, -23, 10, -19, -5, 8, 2, 20, -6, -13, 0, -22, 12, - 15, -3, 13, -13, -25, 12, -6, 18, 13, -3, -14, -22, 3, -2, 14, 25, - -10, -16, -5, -13, 2, 22, 9, -2, -11, -12, -20, 15, 20, 1, 14, -19, - -17, -9, 1, 19, 5, 0, 4, -35, 17, -7, 5, 20, -16, 2, -8, -11, - 11, -2, 2, 7, -19, 15, -10, 2, 12, -14, -3, 2, -9, 17, -3, 2, - -7, -16, 10, 2, 9, 10, -14, -9, -6, -11, 21, 5, 4, 6, -24, -5, - -4, 6, 18, 0, 8, -21, -18, 8, -8, 21, 16, -11, -9, -12, -15, 15, - 3, 27, -9, -16, 5, -30, 13, 23, -11, 21, -19, -15, -3, -9, 30, -9, - 14, -6, -22, -5, 15, -11, 23, -1, -14, -4, -9, 8, 4, 1, 20, -34, - 9, 1, -17, 24, -6, 1, -9, 1, -4, 3, 6, 8, -16, 0, 2, -13, - 11, 21, -31, 24, -21, -4, 13, -2, 7, -9, -3, 0, -18, 29, -4, -9, - 16, -19, -13, 25, -5, -1, 15, -24, 4, -15, 22, 4, -11, 20, -21, -25, - 39, -23, 14, 14, -23, 1, -8, 3, 12, -9, 23, -19, -18, 24, -22, 5, - 30, -32, 11, 2, -21, 18, -6, 5, 1, -9, 13, -22, 4, 19, -28, 26, - 3, -28, 21, -4, -25, 32, -15, 5, 0, -2, -4, -9, 15, 0, -13, 21, - -14, -20, 31, -19, 2, 17, -14, -9, 12, -6, 4, -1, 4, -17, -1, 12, - -2, 0, 20, -31, -8, 12, -8, 17, 14, -13, -16, -9, -7, 20, 11, 18, - -13, -28, -3, -12, 13, 40, -12, 4, -20, -32, 8, 17, 14, 21, -10, -28, - -18, -2, 11, 22, 17, 0, -34, -6, -3, -17, 50, 1, -13, 4, -22, -21, - 17, 16, 4, 7, 0, -27, -11, 4, 10, 2, 24, -6, -28, 7, -12, -2, - 33, -3, -6, 2, -37, 3, 9, 7, 24, -4, -14, -6, -24, 25, -1, 11, - 16, -36, -9, 12, -25, 45, 5, -20, 11, -36, 11, 7, 0, 30, -32, -1, - 7, -33, 37, 0, -9, 15, -21, -10, 12, -15, 24, -8, 3, 4, -20, 7, - 3, -15, 28, -14, -7, 13, -23, 2, 11, 0, 4, 7, -9, -16, 1, 7, - -7, 19, -3, -12, -14, 15, -10, 7, 30, -26, -13, 15, -30, 15, 26, -12, - -1, -8, -9, -5, 13, 22, -12, -12, 7, -36, 17, 31, -24, 27, -21, -24, - 15, -10, 26, 4, -12, 4, -36, 13, 14, -5, 27, -14, -22, 7, -12, 6, - 23, -13, 7, -19, -2, 7, -8, 25, -5, -17, 18, -25, 3, 14, -8, 4, - 0, -1, -11, 4, 12, -18, 15, 2, -23, 12, -2, -7, 12, 1, -1, -15, - 11, -3, -17, 41, -24, -7, 13, -25, 3, 22, -9, 15, -12, -9, 0, -17, - 32, -5, -5, 19, -49, 19, 3, -11, 45, -30, 2, -4, -28, 29, 0, 7, - 12, -34, 6, -10, 1, 33, -9, -6, 4, -41, 25, 2, 4, 29, -40, 8, - -17, -9, 42, -16, 16, -10, -33, 11, -7, 22, 12, -6, -6, -25, -4, 18, - -3, 25, -4, -29, 5, -17, 8, 22, 1, 4, -22, 1, -13, 2, 31, -19, - 9, 2, -36, 17, 5, -7, 20, -11, -2, -13, 4, 9, -18, 24, -3, -30, - 33, -19, -11, 31, -21, 6, 0, -5, 3, -10, 17, -7, -19, 30, -24, 0, - 26, -23, 3, 7, -17, 9, -3, 9, -1, -17, 23, -25, -3, 34, -27, 10, - 15, -34, 9, 1, 1, 7, -1, 12, -31, 4, 16, -27, 32, 10, -33, 10, - -1, -27, 29, 9, -9, 0, -1, -16, -6, 24, 2, -17, 23, -20, -24, 33, - -11, -2, 17, -7, -21, 13, 1, -7, 10, 1, -12, -9, 13, -1, -5, 20, - -16, -15, 15, -8, 5, 13, -10, -7, -9, 5, 2, 10, 7, -7, -22, 12, - -13, 6, 26, -14, -6, 0, -17, 3, 16, 6, 0, -11, 3, -26, 13, 15, - -6, 7, 4, -29, 6, 7, -3, 13, 1, -11, -9, 2, -1, 3, 9, -3, - -8, 1, -4, 0, 5, 0, 0, -2, 0, -1, 0, 0, -2, 11, 23, 22, - 24, 25, 20, 21, 15, 40, -1, -24, -42, -5, -19, -11, -8, 4, -46, -31, - -14, -33, -40, -44, -48, -89, -63, -47, -33, -27, -10, -6, 22, 25, 26, 28, - 37, 11, 15, 51, 44, 54, 66, 66, 71, 111, 84, 70, 63, 47, 39, 22, - 47, -28, -79, -111, -90, -91, -112, -81, -87, -49, -46, -5, -24, 26, 24, 47, - 29, 23, 30, 30, 13, -1, 4, -14, 17, 35, 62, 31, 53, 59, 72, 64, - 27, 26, 9, 9, -61, -44, -88, -74, -81, -83, -124, -96, -37, -78, -48, -56, - -68, -60, 7, 44, 39, 54, 77, 102, 110, 108, 89, 101, 100, 105, 64, 22, - -1, 44, 40, -19, -29, -35, -16, -27, -40, -77, -82, -113, -104, -93, -57, -72, - -56, -3, 1, 7, -1, 49, 39, 30, 31, 23, 10, 31, 11, 7, -19, -2, - -2, 28, 62, 92, 75, 33, 34, -20, -47, -61, -85, -105, -93, -119, -112, -54, - -70, -67, -32, -1, 4, 4, 20, 29, 62, 70, 54, 62, 78, 115, 92, 85, - 78, 52, 21, 19, 27, 2, -8, 13, 0, 5, 3, 9, 18, 0, -59, -61, - -45, -57, -65, -76, -89, -102, -48, -24, 17, 6, 26, 33, 35, 26, 41, 63, - 20, 12, 29, 34, 8, 7, 31, 21, 31, 39, 33, -5, -8, -55, -57, -98, - -94, -88, -64, -82, -74, -39, -14, 3, 16, 22, 8, 2, 17, 5, 36, 76, - 74, 71, 57, 73, 62, 47, 30, 32, 19, 4, 7, -14, -18, -2, 17, -5, - 13, 22, 31, 10, 8, -13, -47, -80, -85, -86, -71, -73, -60, -35, -10, 9, - 19, 49, 53, 47, 60, 73, 43, 33, 20, 13, -1, -7, -7, 7, 9, -2, - 5, -14, -40, -69, -61, -66, -67, -84, -58, -58, -33, 2, -7, -5, 12, 32, - 18, 25, 19, 24, 65, 59, 62, 64, 63, 55, 60, 52, 31, 19, -12, -26, - -4, -7, -10, -3, 6, -22, -14, 12, 19, 4, -26, -38, -40, -56, -61, -66, - -59, -65, -51, -20, 29, 40, 51, 52, 62, 61, 53, 26, 20, 6, 8, 6, - 9, -14, -14, -15, -2, -11, -23, -36, -38, -60, -77, -69, -60, -51, -56, -44, - -27, 10, -2, 14, 10, 22, 16, 41, 60, 39, 35, 60, 62, 43, 45, 63, - 52, 17, 12, 15, -1, -2, 0, -38, -48, -32, -22, -7, 3, 13, 10, -2, - -1, -8, -12, -25, -48, -46, -52, -49, -36, -17, 9, 17, 26, 48, 57, 55, - 69, 60, 32, 6, 4, -6, -20, -24, -9, -21, -25, -14, -18, -38, -38, -32, - -51, -52, -60, -34, -6, -6, -16, -11, -2, -1, 17, 19, 3, 11, 25, 31, - 41, 39, 33, 33, 41, 34, 34, 23, 21, 15, 6, -13, -24, -28, -20, -8, - -12, -19, -12, -5, 9, 14, 2, -12, -25, -28, -21, -28, -23, -22, -18, -26, - -5, 24, 45, 46, 47, 39, 33, 36, 42, 29, 7, -5, -10, -21, -29, -39, - -39, -31, -24, -29, -39, -51, -43, -27, -22, -18, -25, -26, -20, 9, 19, 18, - 4, -2, 19, 30, 38, 25, 24, 28, 33, 41, 38, 34, 32, 38, 24, 8, - 4, -8, -11, -15, -25, -31, -25, -20, -22, -15, -11, -9, -12, -17, -20, -20, - -15, -6, -11, -8, 0, 11, 29, 19, 17, 17, 18, 28, 31, 25, 18, 23, - 18, 10, 1, -7, -18, -26, -24, -30, -41, -38, -44, -32, -31, -31, -35, -25, - -12, -2, -8, -11, -13, -13, -2, 8, 15, 19, 29, 35, 37, 39, 43, 42, - 40, 35, 27, 25, 18, 15, 9, 4, -4, -15, -28, -28, -26, -28, -18, -15, - -25, -23, -12, -11, -14, -10, -2, -4, -1, 8, 15, 19, 22, 25, 16, 16, - 17, 5, 7, 13, 18, 13, 9, 6, 6, 4, -4, -21, -31, -28, -37, -39, - -34, -38, -38, -32, -17, -6, -4, -14, -19, -9, 3, -2, 3, 4, 7, 8, - 13, 23, 35, 38, 43, 42, 31, 25, 23, 17, 8, 3, 4, -7, -7, -10, - -13, -20, -19, -28, -33, -30, -23, -18, -13, -17, -12, 3, 14, 23, 31, 27, - 23, 21, 22, 19, 12, 4, 2, 2, -2, 0, 4, 11, 11, 6, 4, -2, - -5, -14, -17, -30, -38, -44, -42, -28, -21, -23, -21, -15, -15, -4, 8, 11, - 4, -7, -15, -7, 5, 10, 21, 26, 28, 27, 34, 37, 36, 28, 19, 10, - 11, 8, -2, -18, -17, -19, -19, -22, -24, -21, -24, -18, -17, -13, -19, -13, - -1, 12, 19, 22, 21, 19, 19, 30, 34, 24, 13, 7, 2, 1, 1, 2, - -1, -2, -6, 0, 0, -2, -15, -21, -17, -21, -28, -32, -31, -31, -32, -27, - -24, -17, -4, 1, -3, -1, 1, 4, 7, 8, 15, 16, 15, 15, 20, 32, - 36, 38, 32, 19, 12, 3, 2, -2, -4, -11, -19, -17, -15, -11, -16, -20, - -27, -30, -28, -22, -13, -6, -2, 2, 12, 23, 29, 45, 44, 36, 32, 21, - 16, 14, 10, 1, -9, -8, -2, -1, -7, -13, -13, -12, -9, -11, -18, -24, - -26, -28, -30, -24, -21, -21, -21, -11, -11, -10, 0, -2, 0, 4, 12, 13, - 14, 12, 17, 22, 28, 30, 28, 20, 16, 13, 8, 2, -2, -6, -15, -14, - -18, -15, -15, -16, -18, -18, -16, -19, -18, -17, -10, 0, -1, 4, 13, 22, - 37, 39, 36, 27, 27, 32, 26, 15, 6, -1, -4, -5, -7, -11, -11, -9, - -15, -15, -14, -18, -21, -19, -17, -21, -19, -15, -15, -10, -15, -14, -12, -11, - -6, -2, 1, -2, 1, 5, 14, 22, 33, 35, 23, 18, 16, 13, 11, 6, - 1, -9, -18, -11, -6, -7, -8, -9, -11, -11, -12, -13, -17, -21, -24, -24, - -15, -4, 7, 12, 17, 25, 30, 28, 31, 32, 31, 27, 22, 15, 12, 3, - -2, -8, -6, -3, -9, -13, -22, -24, -20, -18, -22, -24, -18, -14, -13, -10, - -11, -9, -3, -2, -3, -5, -10, -10, -5, -1, 4, 11, 15, 19, 22, 27, - 23, 20, 16, 14, 5, -3, -11, -15, -16, -12, -12, -11, -5, 1, -3, -10, - -13, -15, -11, -10, -10, -11, -8, -3, 2, 7, 9, 15, 25, 30, 33, 31, - 25, 21, 20, 16, 13, 7, -2, -8, -5, -4, -11, -20, -21, -22, -21, -17, - -20, -21, -22, -19, -19, -11, -4, -2, -2, -2, 2, 5, 2, 0, 0, -3, - 1, 8, 16, 13, 14, 17, 15, 13, 8, 5, -1, -6, -10, -13, -14, -14, - -13, -10, -7, -8, -8, -6, -6, -3, -1, -1, -9, -12, -7, 3, 13, 17, - 14, 13, 17, 22, 23, 24, 18, 15, 18, 18, 18, 15, 8, 0, -5, -8, - -11, -15, -17, -21, -26, -26, -24, -26, -24, -13, -9, -6, -3, -2, 3, 4, - 6, 7, 5, 2, 4, 2, -2, -4, -3, 5, 13, 17, 10, 3, -1, -2, - -4, -5, -11, -14, -13, -11, -8, -8, -8, -6, -3, 0, -1, -5, -5, 0, - 4, 3, 1, 2, 0, 0, 6, 13, 20, 17, 17, 18, 21, 18, 14, 13, - 11, 11, 7, 9, 3, -5, -12, -14, -18, -21, -23, -26, -26, -13, -3, -6, - -13, -14, -5, 5, 8, 3, 0, 1, 3, 6, 4, -1, -1, 1, 3, 7, - 5, 3, 0, 1, -1, 3, 0, -3, -11, -11, -9, -10, -9, -8, -5, -7, - -7, -10, -9, -6, -1, 4, 6, 4, 2, 5, 10, 13, 9, 12, 13, 14, - 15, 16, 13, 12, 10, 13, 14, 13, 8, 2, -1, -4, -6, -9, -15, -20, - -21, -19, -14, -16, -22, -21, -13, -5, -3, -3, -1, 3, 5, 10, 9, 9, - 6, 8, 7, 7, 7, 3, -4, -6, -4, -1, -4, -8, -10, -11, -8, -4, - -6, -10, -7, -8, -11, -11, -8, -5, -4, 0, 3, 3, 8, 10, 10, 12, - 12, 11, 10, 13, 12, 10, 6, 8, 9, 9, 11, 13, 11, 9, 10, 7, - 2, -3, -8, -9, -14, -16, -16, -19, -18, -14, -13, -11, -11, -10, -5, -1, - 3, 5, 2, 2, 9, 14, 11, 9, 10, 7, 2, 0, 2, -2, -9, -13, - -15, -18, -17, -15, -13, -10, -5, -5, -7, -7, -4, -1, 0, -2, -4, -2, - 1, 4, 9, 10, 10, 11, 11, 13, 14, 10, 11, 9, 9, 4, 6, 5, - 4, 5, 7, 8, 10, 9, 4, -4, -8, -9, -10, -11, -12, -14, -15, -17, - -15, -9, -4, -1, -6, -5, 2, 8, 8, 6, 5, 3, 4, 5, 9, 10, - 10, 5, -1, -5, -10, -12, -14, -16, -18, -17, -11, -10, -11, -8, -5, -2, - -2, 0, 3, 4, 5, 3, 2, 3, 5, 9, 12, 12, 11, 10, 12, 14, - 12, 8, 5, 0, -1, 1, 3, 0, 1, 3, 5, 6, 5, 0, -5, -11, - -10, -13, -12, -13, -15, -14, -8, -4, -3, -3, -4, 0, 4, 5, 3, 6, - 4, 4, 7, 10, 9, 9, 8, 5, 5, 2, -4, -10, -15, -17, -20, -22, - -22, -19, -14, -11, -10, -8, -6, 0, 3, 5, 3, 4, 8, 11, 11, 12, - 13, 12, 12, 15, 15, 16, 16, 13, 11, 6, 3, -2, -5, -5, -3, -2, - -1, 2, 0, -3, -4, -5, -7, -10, -12, -11, -12, -11, -8, -4, -2, 0, - 1, 2, 2, 2, 4, 3, 3, 4, 5, 9, 10, 6, 2, 1, 2, 0, - -3, -7, -13, -18, -19, -18, -16, -18, -20, -19, -14, -8, -4, -1, 3, 3, - 5, 7, 9, 9, 10, 12, 13, 13, 13, 13, 16, 15, 13, 9, 6, 3, - 2, 1, 0, -3, -5, -6, -4, -2, -2, -4, -4, -5, -5, -3, -3, -4, - -6, -6, -7, -4, 0, 2, 3, 2, 2, 1, 2, 2, 1, 4, 5, 4, - 1, 0, 2, 2, 0, -2, -6, -8, -6, -7, -9, -11, -15, -18, -19, -18, - -18, -17, -13, -9, -2, 2, 3, 5, 10, 12, 13, 14, 14, 15, 17, 17, - 16, 16, 15, 13, 11, 7, 2, -6, -10, -8, -6, -8, -8, -7, -6, -6, - -3, -4, -6, -5, -3, -2, -2, 0, 1, 0, 2, 2, 3, 2, 3, 2, - 3, 3, 5, 2, 0, 4, 6, 5, -1, -4, -2, -1, -2, -6, -8, -9, - -10, -12, -10, -14, -17, -22, -22, -21, -19, -15, -8, -3, 1, 7, 12, 12, - 15, 19, 22, 21, 18, 16, 16, 16, 13, 12, 6, 3, 3, 2, -3, -6, - -7, -12, -12, -11, -8, -9, -8, -7, -3, 0, 0, 0, 0, -2, -2, 0, - 1, 2, 2, 4, 6, 6, 7, 5, 4, 3, 4, 5, 3, 0, -2, -2, - -4, -6, -10, -8, -8, -10, -11, -12, -12, -12, -13, -16, -16, -16, -14, -11, - -8, -4, -2, 1, 6, 12, 17, 19, 20, 20, 21, 21, 19, 13, 10, 9, - 5, 0, -3, -4, -4, -5, -6, -6, -4, -7, -10, -12, -12, -12, -10, -7, - -4, -2, 4, 6, 8, 7, 7, 7, 7, 8, 8, 7, 5, 6, 6, 4, - 1, -1, -1, 0, -3, -7, -10, -10, -8, -11, -14, -14, -12, -11, -9, -6, - -8, -8, -8, -11, -13, -12, -9, -8, -5, 0, 4, 8, 11, 14, 18, 18, - 20, 23, 23, 20, 14, 9, 4, 0, -3, -6, -8, -8, -8, -8, -9, -10, - -11, -10, -9, -8, -8, -7, -6, -3, 0, 3, 6, 12, 16, 16, 14, 10, - 8, 9, 7, 4, 1, 0, 0, -2, -1, 0, 0, -3, -7, -10, -13, -13, - -12, -13, -15, -14, -13, -9, -6, -5, -5, -7, -8, -9, -7, -6, -5, -7, - -5, 1, 8, 13, 17, 19, 20, 21, 22, 22, 18, 12, 9, 5, -1, -5, - -9, -11, -13, -12, -12, -11, -10, -8, -7, -7, -6, -7, -6, -3, 0, 1, - 3, 7, 10, 11, 12, 15, 15, 14, 9, 6, 3, 1, 0, -2, -2, -2, - -3, -6, -8, -10, -11, -13, -15, -15, -15, -13, -12, -12, -7, -5, -5, -5, - -4, -3, -3, -4, -4, -1, -1, 1, 4, 7, 10, 12, 14, 17, 20, 22, - 19, 14, 8, 5, 2, -2, -5, -10, -14, -13, -11, -10, -10, -10, -10, -8, - -6, -3, -3, -3, -1, -1, 2, 6, 10, 13, 14, 15, 15, 15, 13, 11, - 8, 5, 1, -1, -3, -3, -6, -10, -12, -12, -12, -12, -13, -15, -18, -19, - -15, -11, -6, -4, -3, -4, -4, -2, 1, 4, 2, -1, -2, 1, 4, 6, - 8, 7, 7, 11, 14, 15, 15, 15, 13, 10, 6, 1, -3, -6, -9, -13, - -15, -15, -13, -11, -9, -9, -9, -7, -3, 0, 2, 2, 4, 7, 11, 15, - 16, 14, 11, 12, 13, 15, 13, 9, 4, 1, -1, -4, -6, -8, -11, -15, - -17, -17, -17, -17, -15, -13, -13, -12, -10, -7, -6, -4, 1, 2, 2, 3, - 4, 5, 4, 4, 3, 5, 6, 6, 8, 7, 7, 9, 11, 10, 9, 8, - 5, 2, 0, -2, -6, -10, -13, -13, -14, -14, -13, -11, -9, -4, -1, -1, - -1, 2, 6, 8, 10, 11, 12, 14, 14, 14, 13, 11, 10, 7, 4, 2, - 3, 1, -3, -6, -10, -14, -17, -18, -18, -19, -19, -17, -15, -13, -9, -5, - -1, 1, 0, 1, 3, 5, 6, 6, 6, 7, 8, 9, 8, 4, 1, 0, - 2, 4, 5, 6, 5, 4, 4, 4, 3, 1, -3, -7, -9, -11, -12, -12, - -12, -11, -10, -7, -4, -2, 1, 4, 5, 8, 11, 13, 14, 14, 11, 11, - 11, 10, 10, 9, 6, 5, 3, 1, -2, -5, -10, -14, -16, -17, -18, -19, - -20, -19, -17, -14, -10, -5, -1, 1, 3, 5, 6, 6, 6, 6, 6, 6, - 6, 6, 8, 7, 6, 4, 2, 0, -1, 0, 0, 1, 2, 1, 1, 2, - 1, -2, -5, -8, -9, -10, -11, -12, -12, -10, -7, -4, -1, 2, 8, 11, - 13, 15, 15, 13, 12, 11, 10, 9, 8, 6, 5, 4, 4, 3, 0, -3, - -6, -10, -14, -18, -21, -22, -21, -18, -16, -13, -10, -6, -3, 0, 3, 5, - 5, 5, 6, 7, 8, 8, 8, 7, 8, 7, 6, 5, 4, 1, 0, -2, - -4, -4, -5, -4, -4, -3, -2, -1, -2, -3, -4, -7, -8, -9, -9, -9, - -8, -5, -2, 2, 4, 8, 11, 14, 15, 15, 14, 12, 10, 7, 5, 4, - 4, 2, 1, 1, 2, -1, -3, -7, -10, -15, -18, -18, -18, -18, -17, -15, - -11, -7, -3, 1, 3, 4, 5, 6, 7, 7, 8, 8, 9, 10, 10, 9, - 6, 4, 2, 0, -3, -4, -6, -7, -7, -6, -5, -3, -2, -2, -2, -2, - -3, -4, -5, -6, -6, -6, -6, -5, -4, -1, 4, 7, 9, 11, 12, 12, - 11, 10, 9, 8, 7, 5, 3, 3, 2, 1, 0, -1, -4, -7, -8, -10, - -13, -14, -15, -15, -15, -14, -11, -9, -6, -3, 0, 2, 4, 5, 6, 7, - 8, 9, 10, 10, 9, 8, 6, 5, 3, 1, -3, -6, -8, -8, -7, -7, - -7, -6, -4, -2, 0, -1, -2, -3, -3, -3, -3, -4, -3, -3, -1, 1, - 3, 4, 6, 7, 8, 9, 10, 10, 9, 7, 6, 6, 4, 3, 2, 1, - -1, -2, -4, -6, -9, -11, -12, -12, -12, -11, -11, -10, -9, -8, -7, -5, - -4, -1, 1, 3, 5, 7, 9, 10, 11, 10, 9, 8, 7, 6, 2, -1, - -3, -4, -6, -7, -7, -7, -7, -6, -5, -5, -4, -3, -3, -4, -4, -4, - -3, -2, 0, 0, 1, 1, 2, 4, 6, 6, 7, 7, 8, 7, 7, 7, - 7, 7, 6, 5, 2, 0, -2, -4, -5, -7, -8, -8, -8, -9, -10, -10, - -9, -8, -7, -7, -7, -5, -3, -2, 0, 1, 2, 4, 6, 9, 10, 11, - 12, 10, 8, 6, 3, 1, -2, -4, -6, -7, -7, -7, -7, -8, -7, -7, - -6, -6, -5, -4, -3, -3, -2, -1, 1, 2, 2, 3, 4, 5, 5, 5, - 6, 6, 6, 5, 5, 6, 6, 6, 4, 3, 2, 1, -1, -3, -4, -6, - -8, -9, -9, -8, -8, -6, -5, -5, -5, -6, -6, -6, -5, -4, -2, 0, - 2, 4, 6, 7, 8, 9, 9, 9, 9, 6, 4, 1, -1, -3, -5, -6, - -7, -7, -7, -6, -6, -6, -6, -6, -5, -4, -3, -3, -2, -1, 1, 3, - 4, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 2, 1, -1, -3, -4, -5, -6, -7, -7, -7, -7, -7, -6, -5, -4, -4, - -3, -3, -3, -3, -2, -1, 0, 1, 3, 5, 7, 8, 8, 8, 7, 6, - 4, 2, 0, -2, -3, -4, -5, -6, -7, -7, -7, -7, -6, -6, -5, -5, - -5, -3, -2, 0, 1, 2, 3, 4, 5, 6, 6, 6, 5, 5, 4, 3, - 3, 3, 3, 3, 3, 2, 1, 1, -1, -2, -3, -4, -5, -6, -6, -7, - -6, -5, -4, -3, -3, -3, -3, -3, -2, -1, -1, 0, 1, 1, 1, 2, - 3, 5, 6, 6, 6, 5, 4, 2, 1, 0, -2, -4, -5, -5, -6, -6, - -6, -7, -7, -7, -6, -5, -4, -3, -2, -1, 0, 2, 3, 3, 4, 4, - 5, 5, 5, 4, 4, 4, 4, 3, 3, 2, 1, 1, 0, 0, -1, -1, - -2, -3, -4, -5, -5, -5, -5, -5, -4, -4, -3, -3, -2, -1, -1, -1, - -1, 0, 0, 0, 1, 2, 3, 3, 4, 4, 4, 4, 4, 3, 1, 0, - 0, -2, -3, -4, -5, -5, -6, -6, -6, -5, -4, -4, -4, -3, -2, -2, - -1, 0, 2, 3, 3, 4, 4, 4, 4, 3, 3, 3, 3, 2, 2, 1, - 1, 1, 0, -1, -1, -2, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, - -2, -2, -2, -1, -1, -1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, - 2, 2, 2, 1, 1, 0, 0, -1, -1, -2, -3, -3, -3, -4, -4, -4, - -4, -3, -3, -2, -1, -1, -1, 0, 1, 1, 1, 2, 2, 2, 3, 3, - 2, 2, 1, 1, 1, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -5, -41, -25, -37, -9, 28, 14, - 6, 1, 19, 16, -83, -53, -35, -44, -29, 8, -23, -29, -6, -20, -22, -19, - -40, -2, 14, 34, 78, 59, 73, 93, 73, 83, 124, 94, 87, 61, 98, 80, - 29, 27, 6, 8, -9, -8, -26, -33, -35, -32, -25, -32, -28, -59, -46, -31, - -19, -12, -12, 14, 14, -41, -59, -46, -33, -32, -52, -31, -29, -49, -51, -53, - -85, -53, -60, -100, -85, -84, -66, -37, -26, -11, -8, 22, 41, 33, 39, 27, - 29, 75, 59, 45, 52, 69, 66, 73, 90, 91, 103, 81, 46, 16, -21, -32, - -13, -34, -22, -42, -51, -35, -53, -62, -45, -35, -34, -29, 25, 62, 61, 39, - -8, -20, -5, -7, 2, 28, 1, -24, 8, 29, 11, -9, -54, -34, -35, -57, - -41, -63, -50, -16, -18, 26, 23, -2, 38, 9, 17, 41, 39, 82, 64, 64, - 103, 64, 43, 43, 51, 26, -3, 30, 1, 9, 14, -26, 20, -27, -50, -39, - -47, -31, -23, -33, 25, 56, 51, 20, -19, -60, -41, -27, -10, 3, -36, -30, - -22, -46, -5, -12, -7, -4, -54, 3, -25, -10, -1, -42, -75, -27, -84, -60, - -88, -107, -73, -29, -67, -53, 9, -10, 17, -29, -33, 55, 12, 7, 121, 70, - 42, 123, 96, 127, 74, 28, 51, 21, 60, 23, -10, 25, 103, 113, 65, 45, - 15, -1, 10, 2, -26, 1, -16, 19, 27, -8, -8, -24, -20, -17, -35, -86, - -87, -32, -51, -26, -60, -60, -50, -15, -31, -30, -50, -55, -19, 22, 14, 30, - 49, 42, 15, -11, -57, -15, -29, -65, -37, -56, -29, 15, 70, 69, 36, 24, - 19, 21, 19, 4, 60, 55, 18, -17, 0, -2, -21, 51, 49, -6, 22, 14, - -24, -63, -5, 4, -53, -33, -1, -37, -34, 40, 30, 12, -6, -1, 12, 12, - 23, 20, 43, 34, 11, -26, -40, 25, 56, -1, -41, -50, -37, -10, 20, -58, - -65, -43, -26, 42, 57, 77, 57, 26, -4, -10, -57, -45, -23, -49, -1, -59, - -41, -26, -27, 24, 52, -3, -12, 19, -44, -31, 33, 11, -14, 43, 31, 7, - 58, 84, 45, 35, 18, -5, 6, -21, -6, -20, -7, 41, 53, 29, 25, 55, - 68, 37, -29, -17, -41, -67, -76, -90, -112, -104, -60, -21, 25, 16, -23, -9, - 30, 47, 17, 3, 19, 4, -2, 30, 24, 1, 26, 33, 34, 10, 14, 1, - -5, 16, -2, -60, -32, -51, -48, -38, -34, -42, -20, 16, 17, -16, -32, -6, - 4, -39, -18, 1, -20, -22, 55, 70, 34, 5, -1, 13, 2, 1, 28, 20, - -31, -2, 51, 26, 24, 19, 11, -1, 2, 30, 13, 2, 70, 36, 15, 24, - 5, 9, 14, 48, 43, 8, 2, -10, 18, 33, 22, -27, -19, -17, -22, 11, - 19, -5, 0, -55, -60, -49, -63, -72, -45, -80, -55, -18, -8, 32, 52, 22, - 0, -40, -42, -30, -68, -51, -9, -67, -52, -10, 7, 35, 12, 36, 64, 23, - 13, 64, 39, 32, 73, 3, 6, -10, -6, 16, 18, 53, 51, 21, -20, -15, - 13, -3, 2, -39, -30, -7, -3, 6, 10, -4, -25, -7, -10, -10, -18, -31, - -23, -38, -48, -3, -26, -43, -7, 11, 31, 62, 41, -7, -34, -42, -24, 17, - 12, 44, 25, 24, 18, 11, 32, 51, 46, 46, 51, 33, 24, 32, 30, 40, - 8, -30, -39, -30, -44, -19, -33, -55, -41, -36, -70, -67, -64, -34, -37, -46, - 1, 19, 27, 81, 23, 13, 10, -5, -18, -19, -51, -14, -48, -75, 11, 51, - 43, 63, 37, 20, 19, 4, -23, 27, 47, 71, 29, 16, 15, -17, -11, 32, - 40, 22, 6, 16, -7, 5, 34, 61, 12, -21, -24, -13, -38, -41, -36, -33, - 2, 9, -45, -54, -36, 12, -18, -41, -25, -18, 19, 31, -11, -16, -22, -62, - -65, -68, -42, -4, -48, -49, 4, 38, 65, 47, 12, -20, -20, -8, 3, 32, - 69, 84, 44, 28, 31, 18, 36, 57, 74, 35, 19, 6, 24, 29, 36, 35, - 6, -13, -25, -43, -45, -35, -33, -44, -23, -41, -57, -52, -41, -35, -21, -16, - -22, -11, 33, 42, 14, 19, 16, 0, -6, -34, -17, -37, -25, -7, 6, 48, - 47, 3, -14, -17, -19, -11, -9, -11, 42, 42, 16, 1, 6, 15, 51, 42, - 33, 29, 20, -5, -3, 4, 54, 42, 8, -30, -19, -15, -15, -20, -6, -7, - -24, -32, -24, -17, -1, -16, -18, -36, -55, -38, -2, 8, 16, 7, -21, -35, - -56, -67, -17, -58, -67, -36, 21, 67, 48, 15, 8, 13, -9, -8, -1, 21, - 107, 56, 40, 56, 32, 33, 71, 60, 36, 30, 3, 31, 15, 4, 21, 2, - -2, -25, -30, -26, -13, -9, -26, -20, -34, -34, -51, -28, 6, -9, -24, -49, - -67, -54, -54, -52, -41, -42, -58, -37, 16, 39, 31, 16, 19, 11, -4, -23, - -5, 24, 1, 10, 24, 26, 15, 34, 70, 77, 56, 33, 43, 28, 17, 25, - 12, 2, 0, -12, -15, -2, 10, -19, -28, -45, -41, -28, -17, -3, -2, -9, - -3, -25, -45, -14, 23, 10, -5, -19, -32, -22, -10, -1, -15, -16, -6, 13, - 48, 70, 55, 23, 23, 10, -8, -14, 6, 8, -12, -5, 13, 10, -14, 0, - 33, 23, 18, 43, 21, 26, 33, 13, -14, -7, -3, -31, -29, -5, -5, -25, - -27, -35, -56, -45, -21, -17, -40, -14, 2, -23, -38, -9, 8, -16, -16, -7, - -13, -25, -4, -12, -21, -14, 3, 13, 44, 65, 60, 40, 15, 5, -20, -22, - -3, 3, 20, 39, 39, 9, 6, 21, 48, 24, 25, 25, 11, 0, 4, -5, - -31, -34, -22, -45, -40, -24, -24, -41, -38, -47, -54, -45, -16, -22, -32, -7, - 16, -1, -11, 23, 31, -1, -10, -20, -19, -9, 15, -10, -28, -21, 4, 24, - 45, 60, 56, 46, 30, 26, 23, 36, 48, 33, 46, 40, 34, 19, 12, 23, - 43, 37, 41, 43, 22, 24, 11, -11, -2, -5, 8, -28, -33, -11, -5, -26, - -30, -25, -45, -21, -8, -26, -35, -37, -39, -54, -56, -20, -23, -42, -52, -49, - -63, -47, -31, -29, -16, -21, -7, 14, 26, 48, 32, 12, -10, -22, -24, -6, - 0, 33, 44, 31, 25, 15, 10, 34, 48, 38, 14, 9, 16, 12, -23, -15, - -15, -8, -9, -19, -22, -2, -8, -10, -32, -27, 4, 12, -5, 1, -1, 4, - -5, -3, -5, 10, 37, 18, -8, -19, -3, 0, -10, -5, -31, -32, -29, -2, - 18, 32, 33, 14, -12, -15, 6, 8, 36, 66, 48, 38, 37, 42, 29, 49, - 50, 42, 28, 25, 33, 15, 2, 4, 2, 4, 2, -11, -1, 6, 3, 9, - -14, -12, -5, -12, -33, -36, -29, -26, -38, -44, -42, -38, -38, -52, -67, -70, - -50, -32, -27, -29, -38, -26, -27, 1, 21, 23, 16, -17, -34, -26, -18, -20, - 2, 11, 13, 5, 10, 13, 12, 28, 33, 35, 14, 14, 14, -8, -24, -25, - -8, -16, -23, -14, 12, 8, 21, 25, 13, 25, 29, 25, 6, 3, 36, 26, - 34, 11, 30, 29, 34, 23, 0, 1, 7, 8, 1, -10, -9, -13, 5, 17, - 30, 26, 25, 3, -11, -4, -4, 9, 13, 17, 6, 4, 17, -1, -4, 9, - 16, 22, 3, -2, -4, -16, -28, -22, -13, -34, -37, -31, -9, -7, -12, -16, - -26, -12, -14, -11, -23, -16, -24, -33, -24, -30, -17, -28, -34, -44, -51, -34, - -24, -22, -25, -2, 14, 23, 38, 46, 43, 28, 10, -6, -11, 1, 0, 5, - 18, 16, -3, 12, 27, 23, 32, 48, 42, 34, 21, 21, 10, -3, -10, -10, - -20, -38, -34, -29, -22, -16, -15, -17, -9, 7, 6, 6, -6, 1, 7, 6, - 3, 11, 30, 30, 15, 11, 11, 10, 17, 22, 23, 24, 9, 15, 5, -2, - 4, 3, -17, -21, -4, -21, -6, 8, -9, -1, 0, 8, -7, -18, -16, -3, - -14, -13, -8, -17, -10, -8, -26, -37, -28, -17, -35, -17, -10, 1, -6, 1, - 25, 32, 26, 9, -18, -19, 1, -12, -20, 2, 12, 5, -4, 15, 14, 15, - 15, 17, 14, 2, 6, 3, -18, -21, -9, -1, -15, -11, -15, -22, -1, 3, - -7, 0, 14, 14, -4, -13, 4, 18, 12, 15, 19, 25, 28, 27, 12, 9, - 9, -10, -17, -4, -5, -4, -20, -19, 11, 20, 13, 0, -19, -8, 6, -9, - 6, 26, 18, 14, 17, 22, 24, 18, 21, 37, 20, 7, 11, -8, -11, -4, - -3, -8, -22, -16, -18, -15, -4, -9, -21, -10, 5, -8, -7, -17, -7, -9, - -20, -28, -35, -31, -23, -23, -29, -28, -28, -33, -28, -24, -6, 0, -4, 7, - 29, 25, 15, -6, -19, 1, -2, -22, 4, 10, 1, 9, 10, 13, 4, 6, - 21, 15, 5, 21, 11, -18, -21, -15, -3, -4, -15, -15, -19, 4, 19, 11, - 2, 17, 16, 2, 14, 14, 17, 20, 22, 20, 10, 16, 27, 12, 8, 11, - 5, -9, -10, -6, -1, -7, -12, -3, 3, 8, 9, -5, -3, 6, -5, -6, - 23, 14, 11, 12, 21, 21, 4, 18, 30, 7, 12, 25, 3, -11, -16, -15, - -10, -13, -8, -6, -21, 2, -2, -25, -18, -8, -22, -22, -17, -12, -7, -12, - -15, -20, -41, -28, -24, -23, -12, -12, -15, -10, -7, 2, 1, 6, 18, 29, - 23, 21, 20, 9, -3, -9, -9, -10, -15, -8, -11, -2, 6, 14, 7, 7, - 11, 9, 14, 2, 3, 7, 6, 6, -21, -20, -10, -12, -15, -16, -18, -14, - -11, -14, 0, 0, -5, 3, 14, 12, 9, 0, -11, 5, 5, 12, 11, -1, - 5, 3, 1, 4, -1, -1, 13, 16, 8, 14, 9, -2, -7, -11, -17, -12, - -5, -9, -10, -13, -4, 1, 0, 4, 5, 0, 2, 3, 5, 14, 18, 9, - -3, 2, 15, 14, 6, 2, 1, -1, -5, -6, 0, 0, 0, 7, 20, 22, - 23, 13, 13, 17, 20, 35, 25, 20, 20, 14, 17, 16, 3, 7, 18, 15, - 13, 17, 6, -5, -6, -13, -23, -19, -19, -22, -22, -24, -17, -18, -22, -27, - -31, -30, -29, -30, -33, -36, -34, -37, -47, -38, -24, -28, -27, -31, -30, -28, - -26, -20, -14, -14, -9, 4, 17, 21, 15, 12, 25, 29, 33, 33, 30, 30, - 31, 19, 20, 14, 4, 10, 17, 18, 21, 28, 19, 20, 20, 5, -2, -3, - -7, -10, -2, 1, 4, 6, 4, 5, 3, 2, -1, -4, -7, -10, -3, -6, - -16, -5, -1, -8, -7, -6, -9, -10, -11, -7, -6, -10, -11, 2, 11, 7, - 1, 6, 12, 16, 18, 15, 11, 14, 16, 9, 11, 6, 5, 13, 14, 13, - 11, 0, -11, -4, -4, -8, -7, -5, -6, -3, -1, 2, -1, -6, -7, -9, - -9, -9, -15, -11, -14, -17, -16, -18, -17, -12, -7, -8, -7, -6, -2, -3, - -12, -15, -15, -18, -13, -19, -23, -24, -21, -21, -13, -12, -7, -3, -7, -6, - -4, 2, 1, 1, 3, 9, 23, 28, 23, 17, 24, 27, 22, 19, 16, 19, - 10, 9, 10, 10, 19, 8, 11, 16, 15, 11, 13, 14, 7, 5, -3, -7, - -12, -15, -16, -17, -10, -5, 4, -2, -2, -9, -13, -9, -8, -10, -10, -12, - -5, 3, 7, 3, 9, 3, 4, -1, -2, 2, -4, -9, -4, 0, 4, 4, - -6, -3, 12, 10, 15, 12, 7, 7, 1, -1, 8, 11, 9, 9, 13, 17, - 17, 9, 11, 4, 0, -3, -6, -8, -9, -10, -17, -20, -24, -17, -19, -22, - -20, -21, -15, -16, -19, -23, -21, -28, -26, -15, -14, -4, -1, -6, -3, -1, - 4, 9, 2, 4, 7, 7, 11, 15, 6, 17, 24, 16, 15, 9, 6, 6, - 3, 1, 3, 2, -2, 6, 6, 6, 3, -6, -3, -8, -7, -10, -13, -17, - -18, -16, -19, -13, -9, -3, 4, 10, 7, 7, 12, 11, 13, 10, 6, 1, - 2, 4, 4, 10, 10, 7, 4, 1, 4, -5, -12, -3, 1, 10, 7, 6, - 4, 19, 22, 20, 23, 16, 15, 19, 17, 14, 9, 7, 4, 4, 2, 5, - 3, 0, 0, -7, -7, -8, -7, -14, -15, -18, -25, -21, -21, -16, -13, -14, - -17, -18, -23, -21, -23, -29, -32, -33, -30, -23, -13, -11, -10, -8, -7, -2, - 1, -3, -1, 5, 13, 17, 13, 11, 13, 16, 14, 10, 11, 8, 16, 13, - 4, 0, 7, 13, 14, 15, 15, 17, 17, 9, 8, 9, 9, 2, 5, 11, - 14, 7, 4, 11, 10, 5, 7, 2, -1, -4, -9, -16, -15, -12, -9, -15, - -23, -21, -22, -22, -20, -22, -22, -21, -22, -22, -13, -6, 4, 2, -2, 2, - 7, 6, 10, 8, 9, 12, 21, 16, 11, 7, 11, 13, 11, 10, 11, 13, - 9, 6, 6, 5, 4, -5, 1, 4, 5, -1, -2, 6, 3, 3, -3, -10, - -14, -14, -14, -16, -8, -6, -1, -6, -7, -5, -7, -6, -9, -8, -8, -4, - -5, -8, -6, 3, 12, 4, -2, 3, 1, 1, -1, -4, -4, 5, 6, 1, - -4, -3, 5, 9, 8, 18, 20, 22, 15, 11, 11, 15, 12, 9, 11, 11, - 11, 5, 10, 12, 5, 3, -2, -4, -9, -9, -16, -17, -14, -12, -14, -20, - -15, -16, -17, -17, -19, -20, -19, -15, -17, -15, -13, -2, -3, -13, -8, 0, - 4, 7, 6, 4, 11, 13, 14, 11, 5, 6, 3, -1, -2, 2, 3, -1, - -2, -6, -4, -1, -3, 0, 3, 1, -2, -5, -5, -3, -6, -9, -7, -15, - -13, -10, -8, -4, 1, 9, 7, 2, 8, 8, 9, 12, 14, 7, 12, 12, - 12, 8, 14, 19, 11, 7, 10, 13, 10, 2, -2, -6, -1, 2, 6, 3, - 1, 4, 2, 2, 5, 8, 8, 7, 7, 2, 0, -3, -6, -3, -1, -6, - -12, -9, -6, -7, -9, -10, -14, -16, -12, -12, -11, -13, -16, -16, -20, -18, - -14, -10, -8, -9, -13, -9, -8, -9, -7, -9, -8, -3, -4, -3, -6, 0, - 2, 3, -3, 2, 5, 1, 6, 5, 5, 10, 11, 17, 15, 20, 25, 20, - 15, 17, 13, 12, 11, 7, 4, -1, -2, 6, 7, 7, 9, 10, 7, 9, - 7, 5, 5, 1, -6, -2, -5, -6, -3, -3, -1, -3, -5, -3, -6, -8, - -7, -8, -11, -12, -16, -19, -19, -14, -14, -17, -17, -11, -12, -15, -6, -8, - -12, -12, -9, -7, -6, 2, 9, 6, 8, 11, 13, 15, 14, 11, 7, 3, - 3, 4, 7, 9, 10, 6, 6, 5, 7, 11, 11, 4, 1, 1, -3, -5, - -1, -1, -1, -5, -2, -1, -1, 1, 1, -3, -7, -7, -9, -12, -11, -3, - -3, -7, -6, -6, -5, -5, 0, -3, -4, -2, 2, -1, 0, 6, 7, 7, - 4, 3, 5, -1, 0, -1, -7, -9, -8, -11, -5, 0, -1, 0, 2, 2, - 5, 10, 10, 7, 7, 7, 8, 8, 9, 11, 9, 8, 9, 6, 4, 2, - 0, -3, -5, -8, -8, -12, -8, -1, -4, -4, -5, -7, -9, -6, -5, -6, - -8, -6, -3, -7, 0, 5, 6, 3, 1, 6, 6, 4, 3, 1, -2, -4, - -6, -4, 3, 7, 3, 0, -1, -3, -2, -1, -2, -5, -8, -9, -7, -9, - -8, -6, -9, -7, -9, -7, -6, -7, -6, -7, -7, -7, -7, -8, -2, 1, - 2, 4, 3, 5, 6, 10, 11, 9, 10, 12, 9, 9, 11, 9, 10, 8, - 7, 7, 6, 7, 5, 4, 5, 4, -1, -4, -3, -5, -1, -2, -4, -4, - -4, -4, -2, -2, -3, -4, -2, -1, 0, 1, 8, 8, 4, 4, 4, 2, - -2, -3, -5, -6, -9, -10, -8, -5, 2, 1, -2, -2, -2, -2, -2, -5, - -5, -7, -7, -3, -4, -6, -4, -3, -5, -7, -5, -4, -7, -9, -6, -6, - -9, -7, -6, -2, 3, 3, 4, 5, 3, 4, 5, 2, 0, 2, 3, 2, - 5, 7, 10, 9, 7, 7, 6, 4, 1, -2, -5, -6, -10, -10, -8, 2, - 8, 7, 6, 7, 5, 5, 7, 6, 3, 4, 3, 4, 1, 3, 2, 4, - 2, 1, 1, -1, -3, -3, -4, -6, -9, -9, -9, -7, -6, -5, -5, -4, - -5, -2, -1, -2, -3, -1, -1, -3, -2, 2, 2, 3, 4, 4, 2, 0, - -1, -3, -4, -4, -5, -7, -2, 2, 2, -1, -3, -1, -4, -3, -2, -4, - -4, -2, -1, -2, -4, -2, -2, -1, -2, -2, -2, -3, -2, 0, 2, 0, - -2, -2, 0, 2, 3, 5, 4, 4, 4, 6, 3, 1, 0, 0, 0, 0, - 5, 5, 4, 6, 4, 2, 0, -2, -3, -6, -9, -8, -10, -10, -2, 3, - 4, 4, 4, 5, 4, 4, 5, 4, 4, 4, 4, 2, 3, 2, 2, 2, - 1, 1, 0, -2, -3, -3, -4, -6, -8, -7, -4, -6, -3, -3, -3, -2, - 1, 0, -1, -2, -2, -1, -1, 0, 1, 0, 0, 1, 0, 0, 0, -1, - -2, -3, -3, -4, -5, -4, -3, -3, -3, -3, -3, -3, -2, -1, 0, -1, - 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, - 2, 3, 3, 2, 2, 0, -1, -1, -2, -3, -3, -4, -5, -4, 0, 3, - 3, 3, 3, 2, 3, 4, 6, 4, 4, 3, 2, 1, 2, 1, 0, 0, - -1, -2, -3, -3, -2, -2, -3, -3, -3, -3, -3, -2, -2, -2, -2, -2, - -2, -2, -2, -3, -2, -3, -2, -2, 0, 0, 0, 0, 0, -1, -1, -2, - -2, -3, -2, -4, -4, -3, 0, -1, 0, 0, 0, 0, 0, 1, 2, 1, - 1, 1, 0, 0, 0, -1, 0, -1, -1, -1, -1, -1, 0, 0, -1, 0, - 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, -1, 0, -1, 0, 0, - 0, 0, 0, 0, -1, -1, -2, -2, -2, -2, -2, -3, -3, -1, 0, 0, - 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, -8, -33, -24, -25, -25, - -26, -27, -32, -28, -36, -31, -36, -22, -34, 11, -74, -14, 94, 41, 28, 33, - 30, 40, 34, 23, 41, 40, 60, 56, 59, 60, 44, 39, 54, 45, 52, 17, - 44, 62, 34, 33, 19, 18, 43, 35, 22, 36, -15, -10, 32, -7, -12, -6, - -8, -50, -47, -44, -4, -25, -48, -76, -58, -75, -96, -85, -118, -114, -63, -106, - -103, -83, -110, -99, -84, -76, -58, -63, -61, -51, -53, -36, -32, -41, -27, -11, - 11, 8, 27, 19, 30, 35, 28, 57, 53, 38, 71, 51, 68, 110, 78, 89, - 109, 97, 82, 94, 115, 114, 79, 70, 79, 94, 85, 76, 84, 95, 83, 82, - 55, 54, 54, 41, 41, 27, 20, 6, -11, -21, -16, -14, -33, -33, -52, -54, - -59, -62, -71, -79, -88, -88, -78, -78, -72, -71, -94, -99, -93, -90, -78, -87, - -105, -103, -79, -62, -71, -78, -63, -61, -66, -49, -23, -10, -11, -24, -20, -4, - -22, 9, 8, 27, 43, 34, 38, 51, 83, 65, 58, 74, 75, 70, 73, 71, - 65, 100, 89, 94, 65, 84, 49, 49, 61, 54, 43, 51, 58, 53, 35, 40, - 36, 38, 34, 23, 14, -12, -10, -1, -1, -11, -12, -19, -33, -66, -52, -42, - -37, -55, -42, -28, -32, -29, -35, -41, -28, -25, -46, -85, -64, -62, -55, -49, - -68, -55, -53, -52, -47, -43, -26, -32, -41, -34, -35, -40, -26, -8, -1, -6, - -11, 5, -2, 8, 3, 8, 6, 4, 20, 29, 43, 24, 33, 20, 30, 24, - 39, 38, 40, 29, 37, 36, 39, 61, 58, 41, 51, 59, 51, 55, 58, 48, - 32, 45, 40, 27, 30, 41, 44, 26, 19, 23, -3, 7, 0, -3, 2, 3, - -6, -5, -14, -6, -10, -27, -45, -47, -41, -38, -50, -51, -46, -43, -45, -65, - -65, -80, -95, -82, -74, -66, -69, -67, -33, -31, -53, -48, -51, -43, -18, -24, - -24, -33, -26, -10, 0, -17, -6, 17, 31, 2, 23, 45, 46, 12, 75, 38, - 63, 69, 31, 38, 80, 57, 48, 59, 81, 74, 32, 52, 72, 24, 60, 44, - 55, 40, 28, 48, 33, 24, 10, -2, 21, 34, 13, 18, 7, -1, -12, -20, - -18, -30, -9, -7, -30, -27, -26, -38, -20, -54, -55, -64, -53, -36, -62, -37, - -71, -47, -42, -71, -45, -55, -50, -54, -56, -36, -37, -54, -36, -12, -38, -33, - -26, -7, -22, -44, -10, 2, 3, 15, 8, 18, 6, 12, 8, 15, 28, 22, - 50, 35, 55, 42, 36, 49, 52, 64, 48, 60, 49, 60, 62, 40, 47, 68, - 52, 59, 61, 44, 53, 44, 35, 31, 31, 47, 22, 6, 4, -7, 5, -4, - -21, -13, -9, -10, -27, -46, -32, -44, -46, -62, -44, -51, -67, -53, -59, -63, - -74, -67, -61, -61, -65, -47, -58, -57, -45, -41, -46, -41, -38, -22, -25, -34, - -16, -10, -18, 0, 1, -6, 5, 17, 15, 10, 23, 38, 28, 28, 54, 40, - 19, 55, 55, 41, 46, 53, 40, 49, 51, 52, 41, 56, 39, 53, 38, 33, - 35, 18, 15, 38, 30, 23, 27, 13, 11, 7, 16, -1, 0, 0, 13, -6, - -10, -15, -10, -10, -24, -20, -16, -38, -36, -21, -40, -32, -42, -38, -52, -53, - -41, -48, -58, -50, -47, -37, -41, -45, -29, -41, -6, -48, -24, -25, -15, -9, - -10, -10, -10, -1, -17, 4, 3, 10, -4, 9, 15, 25, 24, 19, 23, 34, - 28, 33, 37, 38, 26, 36, 47, 35, 46, 45, 28, 35, 32, 32, 24, 21, - 26, 23, 19, 37, 20, 9, 29, -2, 26, 24, 8, 4, 14, 21, 11, -9, - -8, 4, -9, -31, -11, -15, -21, -24, -29, -22, -33, -26, -29, -48, -32, -44, - -28, -22, -35, -30, -38, -31, -46, -44, -36, -27, -23, -29, -24, -11, -20, -28, - -13, -34, -19, -1, 7, -3, -1, 6, -3, 5, 4, 8, 17, 26, 19, 33, - 27, 16, 35, 14, 36, 39, 22, 32, 31, 19, 32, 23, 29, 21, 30, 29, - 23, 31, 13, 24, 17, 11, 26, 18, 12, 5, 23, 16, 9, 15, -10, 3, - 18, -15, -4, -4, 6, -14, -15, -5, -34, -11, -20, -18, -8, -17, -29, -30, - -29, -19, -34, -35, -20, -36, -20, -16, -21, -38, -16, -30, -24, -25, -19, -18, - -15, -7, -5, -5, -10, -23, -3, -14, 0, -1, -12, -9, 7, 7, 2, 12, - 5, 7, 19, 10, 21, 21, 27, 30, 22, 18, 34, 22, 11, 26, 24, 20, - 21, 25, 29, 22, 27, 27, 20, 10, 20, 16, 22, 15, 16, 16, 5, 19, - 10, 3, 22, -5, -5, -7, -16, -4, -11, -22, -7, -16, -11, -23, -16, -30, - -24, -28, -20, -29, -24, -32, -22, -22, -30, -17, -23, -28, -22, -20, -21, -21, - -17, -30, -15, -14, -20, -9, 3, 6, 5, -20, 10, 13, -2, 11, 8, -1, - 7, 16, 5, 22, 23, 13, 22, 13, 22, 25, 15, 16, 11, 15, 13, 7, - 12, 19, 18, 20, 12, 23, 11, 6, 10, 1, 11, 19, 5, 20, 0, 11, - 11, 1, 14, 15, -3, -1, -7, 6, -6, -9, -9, 4, -3, -10, -20, -14, - -9, -14, -7, -10, -5, -4, -29, -14, -12, -26, -21, -27, -18, -10, -19, -27, - -18, -8, -25, -8, -13, -15, -14, -15, 5, -13, -7, -11, -4, -12, 0, 15, - 5, 4, 1, 11, 6, 4, 3, 6, 21, 19, 8, 15, 13, 6, 14, 16, - 18, 17, 20, 15, 11, 15, 24, 13, 11, 19, 7, 17, 14, 6, 17, 7, - 7, 6, 6, 5, 11, 0, 6, 0, -6, 5, 1, -11, -6, -1, -8, -9, - -15, -7, -4, -16, -17, -13, -13, -17, -14, -12, -12, -28, -13, -19, -25, -31, - -24, -17, -17, -16, -7, -15, -12, -8, -15, -8, -16, -10, -4, -1, -2, 3, - 5, 2, -2, 5, 3, 6, 10, 8, 11, 14, 14, 13, 15, 22, 16, 14, - 18, 13, 17, 19, 16, 10, 17, 8, 17, 14, 3, 14, 7, 10, 10, 7, - 6, 6, -1, 6, 1, 0, 12, -6, 6, 12, -4, -5, -4, -2, -2, -1, - -2, -8, -11, -9, -11, -11, -18, -6, -5, -16, -9, -14, -10, -13, -10, -11, - -15, -14, -14, -12, -17, -17, -17, -7, -11, -14, -15, -12, -6, -15, -5, -13, - -9, 0, 12, -2, -2, 6, 2, -7, 4, 10, 2, 9, 8, 7, 4, 5, - 11, 15, 11, 10, 18, 9, 13, 13, 13, 21, 11, 18, 19, 13, 14, 16, - 6, 8, 1, 19, 11, 10, 11, 1, 3, -1, -1, 5, -11, 5, -1, -5, - -3, -13, -10, -6, -7, -5, -15, -10, -11, -18, -8, -16, -20, -18, -9, -12, - -17, -21, -21, -13, -21, -8, -10, -10, -5, -16, -7, 2, -6, -6, -9, -7, - -2, -9, -5, 6, -7, 1, 3, -1, 2, 1, 2, 9, 8, 5, 15, 12, - 1, 11, 9, 8, 10, 15, 14, 5, 13, 17, 14, 15, 10, 7, 16, 5, - 5, 5, 8, 9, 10, 10, 7, 0, 4, 6, 9, -10, -4, 5, 2, -1, - 0, -3, -4, -5, -10, -5, -8, -9, -10, -3, -13, -6, -9, -20, -15, -11, - -18, -14, -10, -12, -20, -14, -14, -7, -12, -21, -14, -9, -8, -11, -5, -2, - -7, -4, 4, -2, -3, -1, 0, -1, 8, 6, 9, 7, 10, 6, 3, 4, - 7, 10, 11, 6, 9, 17, 11, 9, 7, -2, 16, 13, 12, 18, 5, 16, - 9, 4, 9, 6, 8, 9, 4, 4, 3, -2, -3, 2, -6, -3, 1, -7, - -6, -3, -6, -14, -8, -9, -4, -13, -9, -8, -16, -10, -12, -13, -11, -7, - -8, -12, -9, -8, -7, -11, -4, -8, -7, -8, -3, -13, -10, -3, 6, -5, - -5, 0, -5, -3, 6, -2, -2, 4, -2, 6, 2, -2, 5, 5, -2, 5, - 15, 13, 4, 6, 6, 14, 9, 4, 8, 7, 3, 11, 12, 2, 10, 7, - 10, 8, 4, 6, 2, 0, 3, 2, 4, 2, -6, -2, 2, -4, 3, -5, - -6, -5, -5, -5, -4, -8, -7, -4, -4, -7, -8, -7, -13, -10, -10, -11, - -9, -8, -8, -7, -11, -7, -3, -9, -6, -7, -3, -4, -5, 3, -3, -1, - -2, -4, 1, 4, 0, 3, 0, 5, 2, 0, 5, 4, 1, 3, 1, 0, - 1, 7, 3, 0, 4, 3, 6, 5, 0, 9, 5, 7, 6, 3, 6, 2, - 3, 5, -4, 9, 0, 4, 10, 0, 5, 1, -2, 4, -3, -3, -2, 0, - 2, -7, 3, -10, -1, -6, -9, -2, -4, -10, -3, -7, -6, -4, -10, -6, - -6, -11, -6, 0, -6, -8, -4, -1, -9, -10, 0, -6, -7, -2, -7, 1, - -5, -5, -1, 1, -6, 2, 0, -3, -1, 7, -4, 0, 7, 0, 8, 2, - 3, 4, 4, 2, 5, -1, 6, 7, 5, 6, 4, 2, 4, 6, 8, 6, - 3, 1, 8, 9, 2, -1, 4, 3, 4, 3, -3, 7, 4, 3, -2, 2, - -4, -6, -2, -5, -2, -3, 0, -5, -6, -13, -5, -6, -11, -9, -10, -5, - -4, -9, -9, -7, -7, -8, -8, -6, -5, -7, -5, -1, -3, -4, -2, -2, - 2, -3, 1, 2, -3, 1, 2, 1, 0, 1, 5, 0, 2, 5, 2, 0, - 4, 1, 7, 3, 2, 6, 0, 5, 7, 5, 5, 1, 3, 3, 5, 10, - 3, 4, 8, 2, 7, 3, -2, 3, 0, -1, -1, 1, 0, 1, -3, -2, - -5, -4, -3, -1, -7, -8, -4, -4, -10, -2, -8, -8, -8, -8, -9, -6, - -8, -9, -4, -2, -7, -5, -2, -7, -6, -9, -2, 0, -4, 4, -6, -3, - -4, -1, 2, 1, 2, 9, 0, 3, 0, 6, 4, 0, 5, 6, 2, 7, - 7, 5, 7, 6, 8, 6, 6, 5, 5, 1, 6, 5, -1, 3, 4, -1, - 4, 1, 4, 3, -5, 0, 4, 1, 4, -2, -3, -4, 0, -4, -8, -2, - -5, -4, -8, -6, -5, -3, -3, -7, -9, -6, -10, -10, -6, -6, -5, -4, - -7, -6, -4, -10, -3, -10, 0, -2, -2, -6, -1, 3, -3, -3, 1, 2, - 1, 4, 3, 4, 3, 4, 1, 2, 6, 5, 5, 5, 7, 9, 1, 5, - 4, 4, 7, 2, 9, 2, 4, 8, 2, 5, 6, 3, -2, -2, -1, -2, - -1, 1, -2, -4, 1, -6, -2, -5, -3, -5, -5, -6, -4, -3, -4, -10, - -4, -3, -8, -4, 0, -3, -5, -6, -6, -3, -1, -7, -3, 1, -1, -4, - -2, 1, -2, 0, -1, -2, 0, 0, 5, -2, 0, 3, 3, 1, 5, 2, - 4, 1, 4, 1, 2, 3, 3, 3, 4, 3, 3, 5, 1, 4, 2, 3, - 1, 2, 0, 2, 1, -2, -2, -1, 0, -2, -1, -1, -3, -5, -2, 0, - -5, -1, 0, -5, -2, -2, -2, -3, -3, -1, -4, -1, -2, -4, -2, -1, - -2, -1, 0, -3, -1, -1, 0, 1, -1, -1, 3, -4, -2, -2, 4, -2, - -1, -1, -1, 0, 0, -1, -1, -1, -1, 2, 0, -1, 2, -1, 0, -1, - 2, 0, 3, 5, -2, 1, 2, 0, 5, 0, -3, 4, -3, 1, 2, 0, - 4, -1, -2, 1, 0, 0, 0, -1, 1, -2, 0, 1, 1, 0, -5, 1, - -2, -1, 0, -2, -3, -1, -3, 0, -2, -3, -4, 1, -2, -3, -2, -2, - -1, -1, -2, -1, -4, -5, 2, -4, 0, 1, -1, 2, -2, -1, 0, 0, - 1, -3, 3, 2, 0, -2, 2, 1, 2, -2, 5, 3, -2, -2, -1, 1, - 0, 0, 1, 3, 2, 0, 0, -1, -2, 1, 1, 2, 1, 1, -1, 0, - -1, -1, -1, -3, 1, 1, 2, -2, -1, 0, 0, -2, 0, -1, -1, 2, - -2, 1, -1, 0, 0, -1, -1, -2, 0, -1, 1, -1, -1, 2, -2, 0, - -1, -1, 2, -1, 0, -3, -1, 0, 0, 0, -3, -3, -2, 0, 0, -1, - -1, 0, -4, 2, 0, -2, 0, 1, -3, -1, 2, 1, 0, -1, 0, 0, - -1, 0, 2, -1, -1, 0, 0, -2, 1, 1, 0, 1, 0, 2, -3, -2, - 2, -1, -1, 2, -2, 1, 1, 0, 0, 1, 1, 0, -4, 3, -1, 2, - 0, 2, -1, -2, 0, 1, 1, -1, -1, -1, -1, -1, -2, -2, -2, -2, - -2, -1, -1, 1, 0, -5, 0, -1, -1, -1, 1, -1, 1, -1, 1, 0, - -2, 0, -2, 1, -1, 1, 0, -1, -2, 0, -1, 0, 0, 2, 0, 0, - 0, 1, 0, 0, 2, 0, -1, 0, 0, 0, 2, -1, 1, 1, -1, -1, - 0, 0, 1, 1, 0, 0, 0, 0, -1, 0, 0, -2, 0, 0, -1, 1, - -2, -1, -1, -1, -2, -1, -2, 1, -1, 0, -2, -2, 1, -2, -1, 1, - 0, 1, 1, -1, -1, 0, -1, 0, 0, 0, -2, 0, -1, 0, 0, -1, - -2, -2, -2, 1, -1, 0, 0, -1, 1, 1, -2, -1, -2, -1, 1, -1, - -1, -2, -2, 0, 0, 1, -1, -1, -1, -1, -2, 2, 0, 0, 1, 1, - 1, -2, 0, -1, 0, -1, -1, 2, 0, -1, -1, -1, 1, -1, 2, 0, - -1, 1, 1, 0, 1, 0, -1, -1, -1, -1, -3, 0, 0, -1, 1, 0, - 0, -2, -2, -2, 0, -1, 0, 0, -1, 0, -1, -2, -1, -2, 0, -2, - 0, 0, -1, -2, 1, -2, 0, -1, -2, 2, 0, -1, 2, -1, 1, -1, - 0, 0, -1, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, -1, -1, 0, - -2, -1, 0, 0, 1, 0, 0, 0, 0, -1, -1, 1, -1, -2, -1, 0, - 0, -2, 0, -1, 0, 0, 0, 1, 0, 0, -1, 1, 0, -1, 0, 1, - -1, 0, -1, -2, 0, -1, 0, -1, -1, -1, 0, -1, 0, 0, 0, -1, - -1, 0, -2, 0, 0, 0, -2, -2, 0, -2, -1, -1, -1, -2, 0, -1, - -1, -1, 0, 0, -1, -1, 0, 1, -1, -1, 0, -1, 0, 0, 1, 1, - 0, 0, -1, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 1, 0, 0, - -1, 0, 0, -1, -1, 0, -1, -1, 0, -1, 0, -1, -1, 0, -2, -1, - 0, -1, -1, -1, -1, 0, -1, 0, 0, 0, 0, -1, 1, 0, 0, 0, - -1, -1, 0, -1, -1, 0, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, - 0, -1, 0, -2, 0, -1, -1, -1, 0, -1, -1, 0, -1, 0, 0, 0, - -2, -1, 0, -1, -1, 0, 1, -1, -1, 0, 0, 0, 0, -1, -1, -1, - -1, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, - 0, 0, -1, 0, 0, -1, -1, -1, 0, 0, -1, -1, 0, -1, 0, 0, - 0, -1, 0, -1, -1, 0, -2, -1, -1, -1, 0, -1, 0, -1, -1, 0, - 0, -1, 0, -1, 0, -1, -1, -1, 0, -1, 0, -1, 0, 0, -1, 0, - -1, 0, 0, -1, -1, 0, 0, 0, -1, 0, -1, 0, 1, -1, 0, 0, - 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, -1, - 0, 1, -1, -1, -1, 0, 0, -1, -1, -1, -1, 0, -1, 0, 0, 0, - 0, 0, 0, -1, -1, 0, -1, -1, 0, -1, 0, -1, -1, -1, -1, 0, - -1, -1, -1, -1, -1, -1, -1, 0, -1, 0, -1, 0, 0, -1, -1, 0, - -1, 0, -1, 0, 0, -1, 0, -1, -1, -1, 0, -1, 0, 0, 0, 0, - 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, - 0, 0, 0, -1, 0, -1, 0, 0, 0, -1, -1, 0, 0, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 0, 0, -1, -1, -1, 0, 0, 0, -1, 0, - -1, -1, 0, -1, 0, 0, -1, -1, -1, -1, -1, 0, 0, -1, 0, 0, - -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, - 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, -1, 0, -1, 0, 0, -1, - -1, -1, 0, -1, -1, 0, -1, -1, 0, 0, -1, -1, -1, -1, 0, -1, - -1, 0, 0, -1, 0, 0, 0, -1, -1, 0, -1, -1, -1, 0, 0, -1, - -1, -1, -1, -1, 0, -1, 0, 0, -1, -1, 0, 0, -1, 0, 0, -1, - -1, -1, 0, -1, 0, 0, -1, -1, 0, 0, -1, -1, 0, 0, 0, -1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -1, -1, 0, 0, 0, -1, 0, -1, 0, -1, -1, -1, -1, -1, -1, 0, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -4, 11, 6, 16, 10, - -16, -48, -44, 2, 67, 42, -17, -51, 15, 71, 12, -22, -14, -44, -35, 11, - 17, -18, 2, -15, 19, 12, -1, -44, -15, 50, 45, -25, -61, 17, 10, -10, - 31, 18, -72, -27, 57, 26, -13, -17, -2, 6, -1, -23, -54, 17, 39, 8, - 30, 28, -6, -71, -5, 33, 27, -5, 17, 10, -23, -6, 12, -26, -6, -7, - -9, -14, 11, 37, 41, 8, -33, -14, 8, -31, -38, 13, 9, 15, 35, 33, - 11, 17, -41, -48, -33, 29, 25, 16, -9, -9, -17, -19, -29, 43, 64, -2, - -55, -42, -1, -21, -4, 29, 34, -25, -67, -29, 1, 51, 49, 25, -6, -15, - -48, -76, -3, 60, 78, 33, 19, 13, -38, -35, -35, -2, 62, 19, -4, -12, - -4, -4, -32, -30, 8, 68, -43, -66, -28, 55, 51, 20, -28, -29, -19, 20, - -2, 8, 21, -15, -43, 24, 22, -7, -2, 35, 15, -2, -24, -12, 3, 31, - 13, -15, -20, -17, -17, 26, -26, 24, -3, 7, 21, 26, -3, -17, -26, -50, - -26, 33, 58, 49, -22, -67, -17, 24, 7, -57, 5, 42, -11, -3, 32, -3, - 7, 13, -11, -9, 27, 17, 1, -5, -9, -18, -19, -3, -23, -5, 7, -8, - 9, 13, 12, -5, 7, -37, 22, 26, 21, 24, -20, -35, 23, 24, -35, -15, - 46, -38, -48, -14, -4, 0, -22, 3, 43, 38, -1, -14, -8, -5, -14, 1, - 21, 23, 29, -19, -47, -42, -49, -10, 66, 77, 48, -29, -32, 1, -11, 8, - 17, -17, 3, 43, 33, -22, -19, -41, 29, 22, -42, 9, 63, 28, -23, -59, - -65, 7, 53, -22, -10, -27, -30, 36, 48, -4, -6, -22, -16, 10, 14, -7, - 22, 50, -4, -25, -41, -55, -62, 23, 68, -16, -31, 49, 57, 21, -38, 14, - 12, -43, -49, -16, 28, 7, -12, -50, -17, 49, 65, 18, 1, -8, 28, 2, - -27, -13, 12, -11, -52, 4, 31, -32, -39, 15, 8, -19, 6, 25, -1, -23, - 13, 34, 59, 36, -16, -5, -7, -28, -30, 1, -14, -42, 10, 43, 26, -25, - -37, -61, 1, 63, 62, 1, -36, -24, 38, -7, -26, 27, 10, 4, 2, -19, - -22, -27, -24, 0, 33, -8, -57, -12, 62, 77, 51, -10, -42, -27, -28, -31, - -3, 5, 21, 10, 15, -27, -18, -18, -10, 3, 17, 19, 18, -16, -20, 25, - -3, -19, -5, 32, 17, -3, -32, -8, 2, -11, -24, -17, -11, 3, 42, 15, - -12, -2, 26, 9, -4, -30, -3, 16, 7, 13, 34, 40, 114, 11, -104, -71, - 7, -14, -34, -26, 35, 45, 47, 7, -7, -16, 11, -6, -29, -32, 1, 24, - 32, 10, 29, -10, -74, -80, -20, 18, 9, 18, 61, 38, -27, -44, 13, 16, - -26, 20, 69, 14, -14, -46, -7, -6, -35, 0, 9, 5, 58, 71, -36, -78, - -15, 43, 34, -61, -101, -27, 45, 26, -10, 23, 69, 69, 5, -72, -62, 19, - 16, -37, -60, 37, 60, 10, -49, -10, -2, -1, 43, 44, 10, -50, -5, 19, - 8, -43, -58, -17, 32, 28, 4, -1, -18, -10, 13, 8, 1, 1, 22, -3, - -4, 9, -8, -9, 17, 3, -15, -8, 14, 11, -14, -11, -5, 13, -24, -34, - -1, -16, -4, 32, 35, -32, 9, 22, 12, -27, -16, 14, 15, 0, -2, -12, - -31, -24, 14, 48, 10, -14, -7, -22, 4, -8, -14, 19, 21, -21, -25, -12, - 19, 24, 19, 27, -3, -15, -16, 10, 21, -14, 3, 8, 3, -11, -33, -16, - 7, 5, -8, 2, -3, 12, 5, -34, -19, -6, 26, 19, 0, -4, -12, 5, - 12, 20, 16, 19, 18, -13, -42, -26, -1, 0, -18, -16, 10, 27, 23, -5, - -7, 9, -8, 7, 22, 10, -28, -51, -26, 13, 44, 17, 16, 25, 14, -32, - -45, -36, -40, -3, 22, 41, 34, -12, -35, -31, 18, 3, 31, 28, 4, -21, - 2, -14, -24, -23, 19, -6, -7, -10, -1, -13, -13, 21, 52, 28, 7, 1, - -25, -36, 2, 34, 10, -37, -31, -13, 19, 11, -4, -20, 15, -5, -18, 40, - -13, 15, -36, 14, 18, 17, -21, 6, -39, 21, 7, -26, 8, -33, 24, 30, - 32, -11, -26, -47, -39, 62, 10, 11, 5, -17, -21, 10, 0, 18, 15, -22, - 7, 13, 14, -8, -9, 30, 33, -34, -41, -32, 37, 24, -19, -15, 1, 2, - 10, 10, -27, -46, -14, -9, 9, 47, 1, -22, -18, 5, 37, 29, -3, -19, - -19, -18, 8, 17, 1, -11, -6, -20, 27, 37, -2, -28, -34, -3, 22, 54, - 34, -31, -43, -28, -30, -33, 26, 49, 45, 43, -15, -58, -13, -2, -27, -7, - 41, 11, 19, -50, -74, -28, 31, 75, 39, -45, -7, 99, 44, -83, -47, 45, - -1, -30, 23, 29, -55, -30, 31, 28, -19, 2, -44, -46, -49, 30, 22, 58, - 31, -50, -20, 9, -38, -53, 49, 37, -9, 13, -25, -18, 18, -27, -7, 17, - 3, 24, 57, 26, -51, -52, -54, -43, 53, 85, 31, -36, -44, 7, 13, 19, - -23, -33, 36, 47, -38, -11, 37, -19, -6, 18, 17, 2, 31, 54, -29, -72, - -80, -1, 27, 52, 10, -29, -40, -48, -72, 24, 108, 66, -44, -76, -32, -24, - 21, 69, 54, 24, -2, -8, -28, -44, -50, 34, 95, 45, -40, -72, -32, 6, - 28, -1, 18, -7, 27, 1, -14, 21, -8, -51, -62, -24, 64, 56, 12, 19, - -36, -22, 10, 20, -10, -1, -5, -51, 36, 72, -42, -51, 70, 45, -48, -27, - 54, 19, -46, 8, 0, -46, 10, 37, 35, -21, -32, -22, -44, -82, -33, 59, - 105, 48, -32, -36, -31, 18, 60, -12, -49, 10, 89, 28, 12, 8, -45, -21, - -6, -16, -32, -17, -18, 3, 29, -3, 0, -20, -51, -31, 24, 52, 1, -17, - -20, 1, 35, 15, 5, 35, 27, 18, -19, 8, -71, -74, -8, 88, 57, -45, - -37, 17, 51, -1, -13, -4, 3, -13, -24, -7, 30, -7, -25, -1, 16, -8, - -43, -70, 11, 85, 77, 12, -62, -57, 35, 53, -33, -96, 8, 82, 21, -38, - 25, 39, -1, -27, -14, 18, -16, -45, -24, 42, 7, -9, 22, 32, -39, -5, - -8, -49, -17, 60, 88, 21, -93, -20, 82, 31, -26, -63, -17, 52, -28, -25, - 13, -2, -32, -46, 55, 56, -37, 6, -57, -33, 65, 63, 5, -25, -31, 69, - 86, -32, -34, -56, -23, -47, 14, 44, -23, 19, 6, 60, -27, -69, -37, 20, - -14, -5, 50, 44, 15, 13, -23, -60, -46, 23, 40, -5, -25, 6, 46, -4, - -10, -27, -12, 28, 45, 10, -13, -33, -19, -39, 42, 32, -23, -25, 24, -17, - 13, 25, 13, -32, 13, 48, 4, -93, -5, 40, -7, 37, -39, -37, 41, 1, - -13, -33, 43, -53, 106, 8, -57, -93, 55, 40, 56, -24, -4, -19, 7, -23, - -65, -18, 34, -30, 7, 66, 92, 3, -43, -37, -23, 12, -7, -17, 14, -15, - -9, -18, 18, 51, -1, -57, -17, 23, 19, 15, -40, -1, 0, -8, 39, -13, - -43, 72, 57, -1, -54, -17, 32, -19, 11, 0, 36, 25, -23, -86, 21, -3, - 14, -17, 76, 37, 23, 2, -23, -54, -42, -80, 61, 60, 63, -12, -57, -44, - 15, 35, 26, 11, -44, -22, 8, 33, -24, -17, 21, 38, -25, -39, 16, 43, - -36, -28, 54, 10, -52, -18, -34, -14, 76, 60, 24, -32, -19, 16, -13, -68, - -5, 30, -13, -23, -14, 61, 24, 35, 39, 4, -50, -58, -39, 0, 43, 43, - 21, 24, -20, -46, -36, 38, 8, -67, -8, 61, 38, 10, -12, 5, -4, -16, - -47, -5, -18, -20, 37, 41, 24, 4, 7, -19, 11, -52, 0, 17, 20, -30, - -33, -16, 60, 34, -15, -46, -77, 14, 29, 26, 21, 25, 8, 7, 36, 23, - -39, -16, 21, 11, -23, 11, -4, -6, -35, 13, -8, -49, -17, 44, 19, -25, - -17, 9, -5, -5, -1, -31, 11, 15, 17, -8, -31, -51, 12, 54, 85, 32, - 4, -58, -35, -31, 0, 10, 21, -20, -20, -29, 15, 26, -7, 8, 4, 0, - 30, 2, -26, 2, 19, 15, -18, -13, -20, -19, 47, 33, -6, -51, -30, -12, - 12, 30, 34, 31, 4, -45, -81, -7, -22, 1, 73, 98, 24, -67, -13, 19, - -32, -86, 6, 94, 4, -47, 21, -11, -50, 22, -3, -2, 50, 20, -37, -59, - 35, 28, -16, -36, -30, -11, 4, 69, 98, -65, -84, 73, 27, -90, -17, 84, - 10, -51, -14, 40, -24, -11, 16, -34, -26, 38, -43, -34, 58, 85, -33, -51, - 17, 7, 4, 52, 25, -35, 0, 44, -21, -47, 40, 44, -69, -65, 37, 35, - -21, 4, 32, -60, -75, 21, 64, 60, -6, -11, 6, 2, -41, -34, 19, 31, - 9, 7, -1, 11, 6, -11, -26, -23, 16, 35, -39, -68, 6, 56, -3, -42, - 29, 28, 3, 28, 14, -37, -16, 11, -8, -18, 15, -1, -8, 43, -20, -67, - -12, 34, 7, -12, -9, 5, -4, 7, -12, 27, -3, -68, 26, 96, 30, -33, - -28, -25, 19, 27, -33, -48, -3, 37, -1, -35, -11, 5, 42, 36, 6, -48, - -38, 26, 54, -23, -41, 52, 44, -32, -22, 28, -23, -32, 12, 41, -16, -6, - -6, -17, -18, -14, -12, -5, 18, 52, 45, -10, -16, 29, 11, -36, -26, 7, - 36, 12, -57, -48, 48, 70, 16, 21, -13, -46, -33, -62, -63, -21, 94, 94, - 20, -110, -47, 41, 67, -16, -57, -40, 85, 71, 7, -39, 15, -29, -50, -41, - 18, -40, -42, 38, 69, 21, -8, -58, -19, 23, 24, -20, -10, 11, 41, 7, - -6, -30, -23, 2, 16, 57, 38, -11, -50, 36, -16, -51, -51, 81, 24, -68, - -84, 39, 112, 62, -79, -104, 24, 102, 15, -38, 20, 22, -49, -91, 15, 51, - 30, -1, -15, -30, -12, 17, 42, -17, -48, 0, 49, 35, 2, -19, -16, -30, - 9, 17, -12, -4, -15, 5, 34, -1, -56, -64, 7, 48, 54, -16, -51, 20, - 62, -17, -27, -9, -10, -29, -1, 35, 44, -20, -23, -2, -12, -4, 31, 24, - -24, -14, 2, -28, -27, 49, 61, -54, -61, 6, 23, -20, 2, 41, 26, 2, - 15, -5, 6, -16, -36, -16, 2, -54, -53, -18, 62, 64, 10, -3, 91, 39, - -54, -103, -5, 16, -31, -28, 75, 105, -32, -114, -52, 68, 32, -52, -19, 25, - 54, 61, 14, -40, 12, 1, -56, -31, 74, 40, -73, -66, 0, 49, 36, 24, - -20, 0, 13, -40, -99, -11, 55, 31, -33, 39, 24, 3, -18, 7, 10, 4, - -29, 17, 19, 27, -30, -41, 9, 33, -24, -25, 30, 28, -34, -57, 8, -7, - -46, 5, 48, -22, -6, 57, 58, -31, -72, -2, 72, 44, -53, -42, 41, 1, - -54, 30, 54, -6, -79, -14, 33, -6, -22, 14, 10, -5, -8, 13, 23, 21, - -47, -74, 22, 24, -10, -7, 39, 2, 12, -7, -2, 4, 33, -20, -33, 18, - 22, -88, -71, 26, 81, 14, -37, 3, -24, 6, -8, 11, 40, 18, -7, -17, - 20, -8, -15, -41, -11, 27, 52, -27, -46, 33, 21, 46, -30, -13, 26, -91, - -106, -47, 54, 109, 67, -87, -90, 38, 92, 31, -10, -69, -73, -27, -6, 24, - -6, 20, 30, 45, 33, -13, -25, 10, 57, -16, -32, 0, -14, -55, -20, 4, - 7, -4, 3, 18, -11, 34, 11, -45, -45, -125, -38, -2, 19, 72, 82, 99, - 98, 35, -51, -81, -53, 3, -39, 23, -4, -58, -63, -24, 40, 84, 48, -7, - -18, -2, -8, -20, -10, 3, 21, 17, -39, -66, -20, -2, 37, 30, 39, 34, - -5, -41, -26, 33, 40, 18, -2, 11, 13, -20, -60, -21, 33, -25, -35, 30, - 65, 22, 13, -15, 2, 16, 11, -68, -18, 74, 10, -74, -34, -39, -17, 8, - 59, 39, -22, -38, -8, 9, 30, 23, 11, -3, -12, 10, -1, 59, 9, -28, - -72, -27, 32, 68, -11, -3, 27, 4, -33, -39, 7, -1, -5, -7, 26, -14, - -26, -40, -12, 5, 5, 1, -12, 64, 63, -41, -56, 10, 26, 40, -26, -44, - -42, 25, -6, 3, -1, 10, 9, -1, 9, 1, -28, 10, 24, 26, -33, -36, - 46, 20, -43, -52, -35, 22, 53, 30, -6, 18, -16, -49, -36, 45, 10, 21, - 7, 9, -33, -50, 21, 73, 33, -42, -46, 42, -12, -18, 5, -50, -25, 68, - 55, -31, -79, -7, 77, 25, -6, 29, 78, 24, -87, -41, -30, -41, -23, 75, - 35, -32, -65, -7, -13, 3, 41, 34, -24, -33, 25, 14, -52, -28, 19, 76, - 45, -45, -47, -5, 24, 9, -14, -41, -5, 49, 22, 10, -31, -35, -1, -6, - 3, 10, -1, -12, -20, -51, 9, 79, 53, -36, -38, -13, -14, -15, 50, 50, - -36, -33, 0, 5, 22, 23, 24, -51, -81, -27, 56, 42, -10, -16, 0, 0, - -5, 16, 12, -19, 11, 10, -15, -1, -32, -17, 1, 11, 62, -16, -21, 9, - 21, -29, -50, 16, 82, 17, -35, -4, 11, 3, 8, 8, -9, -13, 10, -39, - -63, -19, 54, 58, -16, -25, 18, 38, -8, -50, -54, -17, 18, 47, 17, -33, - -45, 0, 52, 57, -5, -34, -17, 32, 10, -28, -10, -21, -3, -9, -20, 20, - 47, 22, 5, -4, -15, -37, -22, -28, 9, 37, -18, -13, 3, 15, -33, -47, - 20, 73, 0, -36, 33, 60, -11, -77, -13, 42, 13, -20, 9, 47, 22, -27, - 29, 6, -71, -78, -20, 21, 4, 27, 23, 19, 31, 45, -29, -54, -10, 37, - -78, -46, -14, 67, 108, 57, 12, -62, -108, -15, 116, 56, -58, -110, -33, 33, - 30, -39, -26, 11, 29, 22, 8, 52, 76, 31, 0, -31, -50, -10, 59, 54, - -13, -84, -65, -60, 0, 35, 105, 61, -30, -117, -62, 35, 88, 57, 48, -38, - -85, 41, 12, -21, -6, 7, 15, 73, -30, -72, -37, 25, 0, -5, 65, 76, - -90, -78, 24, 47, 2, -14, 40, 83, 0, -32, -46, -62, -26, 50, 37, -4, - -44, -40, 55, 31, -38, -13, -17, -30, -4, 7, 68, 39, 1, -23, -38, -30, - 6, -35, 14, 52, -9, -62, -47, 45, 44, 11, -17, -9, 6, 16, 34, -3, - -32, -21, -33, -3, 21, 26, -39, 11, 65, 33, 19, -1, -49, -85, -97, 66, - 58, -93, -15, 15, 5, 81, 76, 29, -2, -52, -51, -30, 65, 38, -45, -14, - 1, 28, 22, 43, 19, -59, -109, -29, 29, -14, -22, -41, 0, 54, 76, 16, - 8, 23, 15, -47, -39, -8, 5, 36, -6, -3, -4, 13, 13, 21, -47, -53, - -6, -9, -27, -44, 8, 86, 64, 12, -5, -32, -10, -20, -27, -23, 8, 30, - 1, 16, 42, -35, -8, 4, -39, -11, -62, -29, 108, 87, -20, -104, -18, -55, - 8, 47, -16, 29, 38, 4, -44, -39, -20, 38, -13, 23, 82, 30, -67, -93, - 26, 79, 20, -79, -74, -23, 33, 59, 80, 39, -42, -100, 0, 19, 38, 9, - -55, 9, -15, 22, 68, -17, -55, -23, 1, 87, 19, -56, -60, 32, 37, 38, - -67, -33, -1, 31, 24, 15, -30, -5, -36, -29, -27, 8, 27, -9, 12, 29, - 38, 33, 0, -39, -18, 6, 19, 18, 8, 1, -33, 9, -1, 2, -29, -66, - 0, 41, 6, -50, -13, 9, 73, -28, -47, -21, 30, 68, 31, 32, 29, -46, - -14, 13, -44, -75, -3, 62, 55, 9, -49, -1, 54, 19, -6, 7, 16, 38, - 13, -26, -55, -76, -23, 16, 21, -33, -22, 16, 61, 25, -14, -35, 12, 23, - -7, -17, -32, -10, -16, -1, 7, 18, -1, 19, -2, -1, 21, -14, 1, -44, - -44, -23, -29, -1, 28, -28, 47, 64, 12, -4, -15, -37, -7, 24, 50, 6, - -15, -26, -5, 20, 12, -25, -21, -2, -18, -23, 9, 16, 24, 36, -30, -35, - -12, 32, 19, -13, 19, -6, 2, -2, -22, -11, 14, 50, 10, -21, -55, -14, - 23, 6, 6, -6, -26, -25, -8, 25, 14, 24, 14, -13, 18, 11, 23, -34, - -49, -45, 6, 39, 37, 3, 0, -29, 8, 26, -6, -7, -21, 2, -11, 6, - 16, -1, -17, 6, 32, -4, -54, -9, 22, -14, 6, 27, -1, -2, 34, 33, - 8, 1, -8, -14, -32, 23, -22, -23, -29, -12, 5, 25, 22, -4, 14, 5, - 24, -39, -29, 17, -21, -80, -60, -9, 78, 99, 81, -41, -53, 22, 11, -69, - -22, -2, 70, 80, 18, -56, -54, -79, -27, 56, 46, 28, -1, 12, -37, -76, - 23, 64, -4, -5, 4, 0, -2, -5, 10, -4, -9, 5, 3, 3, -2, 6, - -2, -1, 0, 2, 0, 1, -2, 2, -3, -2, 0, 1, -1, 0, 0, -1, - -1, -1, 0, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, -1, -1, -1, - -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -2, -3, -5, -6, - -5, -5, -3, 0, -1, -3, -1, 7, 16, 20, 8, -8, -24, -35, -39, -36, - -35, -42, -47, -35, -14, 0, 8, 17, 28, 45, 60, 65, 64, 66, 67, 60, - 50, 39, 26, 14, 5, -14, -40, -54, -56, -56, -55, -47, -36, -20, 1, 13, - 15, 16, 12, 2, -10, -20, -33, -43, -42, -38, -43, -40, -28, -17, -7, 6, - 21, 34, 48, 60, 63, 64, 66, 61, 54, 51, 41, 23, 10, 1, -18, -37, - -46, -54, -63, -60, -46, -30, -13, 5, 15, 16, 17, 11, -2, -11, -21, -34, - -44, -45, -43, -42, -33, -21, -17, -10, 5, 23, 39, 54, 62, 61, 62, 63, - 59, 53, 47, 38, 23, 10, -5, -23, -36, -42, -51, -61, -61, -48, -26, -2, - 14, 16, 13, 13, 9, -1, -14, -27, -36, -42, -44, -48, -44, -31, -17, -10, - -8, 1, 21, 47, 65, 67, 58, 54, 58, 61, 54, 41, 31, 23, 11, -9, - -30, -41, -44, -45, -54, -61, -52, -21, 11, 25, 19, 8, 4, 7, 2, -15, - -33, -39, -39, -44, -51, -48, -34, -12, -2, -4, -2, 19, 54, 74, 72, 58, - 47, 51, 59, 54, 40, 26, 20, 7, -16, -37, -46, -44, -42, -51, -58, -47, - -15, 19, 31, 25, 9, -1, -1, -4, -15, -30, -37, -41, -51, -55, -48, -28, - -11, -4, -2, 6, 28, 58, 73, 74, 63, 50, 45, 46, 49, 42, 31, 19, - -6, -30, -43, -44, -42, -51, -54, -49, -33, -3, 18, 30, 31, 17, 2, -13, - -15, -15, -25, -31, -45, -62, -60, -45, -24, -16, -10, 6, 20, 40, 58, 68, - 74, 69, 55, 41, 37, 44, 43, 34, 15, -17, -41, -48, -46, -51, -59, -51, - -34, -16, 3, 17, 29, 33, 23, 2, -15, -18, -18, -22, -31, -50, -64, -61, - -42, -30, -24, -8, 13, 35, 50, 57, 65, 70, 70, 58, 42, 40, 41, 40, - 32, 6, -23, -45, -53, -55, -64, -60, -45, -24, -1, 10, 19, 27, 28, 23, - 4, -9, -17, -22, -23, -36, -53, -61, -60, -47, -36, -22, -3, 19, 44, 56, - 60, 65, 65, 65, 60, 52, 45, 39, 37, 23, -2, -26, -49, -63, -66, -63, - -55, -42, -16, 3, 14, 25, 25, 22, 19, 11, -2, -17, -20, -29, -44, -50, - -58, -64, -53, -32, -13, 0, 25, 45, 53, 65, 68, 61, 60, 63, 60, 47, - 42, 33, 7, -10, -26, -56, -73, -68, -57, -53, -37, -12, -1, 14, 32, 26, - 16, 17, 16, 1, -12, -19, -38, -52, -47, -55, -65, -50, -23, -9, 4, 27, - 40, 48, 68, 72, 59, 58, 67, 64, 52, 42, 21, -5, -16, -31, -60, -73, - -62, -54, -49, -34, -17, -4, 17, 32, 24, 13, 18, 20, 6, -11, -29, -46, - -48, -46, -54, -59, -41, -17, -5, 6, 20, 35, 54, 71, 68, 55, 60, 74, - 71, 53, 27, 5, -6, -16, -35, -62, -70, -57, -49, -45, -40, -25, 4, 25, - 29, 15, 7, 23, 27, 10, -20, -46, -47, -41, -39, -47, -55, -34, -11, -1, - 4, 11, 38, 67, 72, 62, 48, 61, 83, 76, 49, 9, -9, -7, -15, -31, - -59, -70, -55, -48, -46, -43, -21, 16, 29, 22, 6, 1, 25, 32, 10, -28, - -57, -47, -34, -30, -38, -49, -33, -12, -4, 3, 17, 50, 72, 68, 55, 44, - 61, 86, 77, 41, -2, -16, -10, -13, -28, -56, -69, -58, -52, -47, -35, -7, - 22, 25, 13, -4, -2, 25, 33, 7, -35, -58, -46, -29, -22, -32, -44, -34, - -16, -5, 8, 30, 59, 72, 65, 46, 39, 62, 87, 76, 33, -8, -20, -13, - -10, -28, -57, -70, -62, -51, -42, -24, 3, 23, 23, 4, -15, -4, 25, 34, - 3, -38, -55, -45, -23, -17, -32, -43, -34, -15, -1, 14, 41, 64, 73, 59, - 35, 35, 64, 89, 73, 26, -11, -23, -14, -11, -33, -60, -69, -59, -48, -39, - -14, 11, 25, 17, -11, -24, -3, 30, 35, -3, -40, -54, -41, -18, -19, -36, - -41, -28, -10, 0, 21, 51, 70, 71, 47, 24, 36, 72, 93, 65, 17, -14, - -22, -13, -17, -43, -62, -63, -52, -48, -36, -5, 19, 26, 5, -26, -27, 5, - 40, 31, -12, -42, -50, -34, -20, -28, -37, -33, -17, -8, -1, 29, 61, 75, - 64, 31, 19, 44, 85, 93, 51, 9, -15, -18, -16, -30, -50, -57, -52, -48, - -52, -32, 3, 25, 20, -10, -34, -21, 19, 42, 20, -17, -40, -43, -35, -30, - -32, -32, -21, -12, -12, 3, 37, 67, 72, 50, 25, 24, 57, 92, 81, 42, - 6, -12, -18, -25, -39, -53, -52, -44, -49, -51, -28, 6, 25, 13, -17, -32, - -11, 29, 39, 8, -24, -38, -37, -33, -36, -39, -30, -10, -3, -9, 3, 38, - 68, 71, 46, 23, 32, 68, 92, 71, 31, 5, -7, -16, -31, -50, -55, -45, - -37, -49, -53, -27, 8, 23, 8, -20, -24, 3, 34, 28, -6, -28, -32, -30, - -35, -46, -43, -23, 0, 0, -10, 5, 41, 67, 65, 42, 30, 47, 77, 83, - 52, 23, 10, 2, -16, -43, -60, -55, -38, -36, -53, -53, -25, 8, 19, 3, - -14, -8, 17, 29, 9, -17, -24, -22, -26, -43, -53, -42, -14, 4, -3, -9, - 10, 44, 63, 58, 43, 43, 63, 77, 64, 38, 24, 20, 7, -23, -52, -62, - -49, -38, -45, -57, -49, -19, 6, 11, 2, -1, 12, 22, 13, -7, -18, -15, - -17, -32, -50, -52, -32, -11, -4, -8, -3, 21, 44, 55, 53, 52, 63, 70, - 64, 49, 35, 34, 24, 0, -29, -53, -54, -50, -51, -56, -57, -37, -17, -2, - 7, 9, 20, 21, 12, 1, -13, -11, -13, -24, -36, -49, -40, -30, -22, -12, - -9, 10, 25, 38, 51, 57, 70, 71, 62, 57, 44, 42, 34, 15, -4, -30, - -42, -53, -65, -61, -61, -49, -35, -22, -2, 10, 25, 27, 15, 11, -1, -8, - -14, -22, -27, -37, -37, -37, -40, -26, -14, -2, 10, 24, 42, 54, 68, 73, - 65, 65, 60, 49, 36, 27, 15, -7, -25, -43, -63, -69, -65, -61, -54, -36, - -13, 3, 18, 26, 23, 20, 16, 1, -16, -21, -20, -31, -37, -38, -40, -38, - -25, -15, -7, 11, 34, 48, 56, 66, 71, 72, 73, 61, 43, 34, 29, 11, - -14, -31, -46, -63, -69, -72, -69, -53, -28, -7, 3, 16, 27, 30, 28, 15, - -3, -14, -19, -25, -39, -42, -37, -38, -35, -30, -19, -2, 18, 39, 47, 56, - 69, 75, 78, 71, 60, 49, 35, 22, -1, -20, -32, -50, -65, -76, -75, -63, - -49, -27, -9, 6, 22, 28, 31, 27, 16, 6, -13, -26, -36, -43, -41, -42, - -42, -36, -27, -10, 2, 18, 38, 52, 64, 70, 73, 79, 76, 70, 50, 27, - 11, -5, -21, -41, -62, -69, -72, -68, -61, -50, -26, -4, 13, 21, 23, 32, - 35, 27, 6, -21, -33, -37, -42, -48, -53, -45, -31, -19, -8, 3, 23, 45, - 59, 65, 65, 73, 88, 88, 69, 40, 19, 10, -6, -30, -54, -69, -69, -68, - -67, -59, -43, -18, 2, 10, 15, 22, 39, 46, 27, -3, -28, -34, -37, -48, - -56, -60, -48, -29, -16, -1, 14, 35, 52, 58, 60, 64, 80, 96, 88, 64, - 34, 16, 6, -11, -36, -62, -77, -75, -68, -58, -47, -33, -14, -1, 7, 15, - 28, 43, 44, 24, -6, -30, -38, -40, -49, -63, -68, -56, -30, -5, 15, 27, - 40, 51, 59, 63, 72, 84, 91, 83, 60, 32, 12, 1, -14, -45, -73, -84, - -78, -62, -46, -36, -28, -17, 0, 11, 20, 31, 38, 35, 20, -6, -28, -40, - -46, -58, -72, -71, -52, -26, 4, 26, 37, 45, 54, 64, 69, 74, 81, 80, - 73, 59, 35, 13, -5, -28, -54, -75, -79, -74, -63, -43, -30, -21, -11, 0, - 14, 23, 29, 33, 23, 14, -2, -25, -41, -58, -69, -71, -64, -43, -24, 3, - 33, 47, 56, 60, 64, 73, 74, 75, 73, 62, 56, 38, 13, -12, -42, -57, - -69, -77, -71, -63, -44, -25, -15, -3, 2, 13, 26, 23, 24, 19, 8, -2, - -24, -44, -64, -74, -64, -60, -45, -16, 9, 34, 53, 63, 68, 66, 75, 73, - 63, 66, 62, 49, 34, 11, -17, -43, -54, -66, -82, -72, -52, -43, -28, -10, - 0, 4, 18, 27, 16, 13, 20, 8, -11, -26, -47, -66, -63, -59, -63, -47, - -7, 20, 34, 56, 69, 65, 73, 81, 67, 54, 61, 63, 44, 25, 6, -23, - -37, -44, -69, -85, -69, -48, -39, -26, -7, -4, 5, 27, 25, 9, 10, 15, - 5, -17, -34, -52, -62, -54, -54, -60, -40, -5, 21, 41, 59, 67, 66, 78, - 81, 64, 53, 58, 56, 39, 18, -3, -24, -34, -45, -64, -76, -67, -51, -37, - -21, -8, -3, 11, 22, 20, 11, 9, 11, -4, -23, -38, -56, -57, -53, -50, - -42, -31, -5, 21, 41, 63, 67, 72, 77, 69, 67, 58, 56, 49, 28, 16, - -8, -28, -35, -50, -53, -62, -65, -53, -44, -20, -2, 2, 14, 10, 14, 17, - 7, 5, -13, -27, -37, -60, -58, -55, -42, -22, -18, -2, 13, 36, 69, 73, - 76, 71, 62, 70, 60, 53, 42, 23, 16, -13, -35, -45, -51, -40, -46, -58, - -60, -52, -17, 4, 8, 11, 5, 14, 15, 4, -4, -20, -23, -37, -62, -67, - -59, -27, -2, -3, -3, 3, 36, 70, 77, 75, 66, 67, 70, 57, 46, 32, - 29, 19, -17, -49, -62, -46, -25, -33, -54, -68, -51, -15, 4, 8, 6, 11, - 18, 8, -7, -19, -16, -12, -35, -68, -83, -56, -9, 13, 7, -7, 4, 40, - 66, 73, 69, 73, 80, 69, 46, 27, 31, 42, 24, -23, -68, -69, -36, -14, - -25, -57, -66, -43, -16, -3, -2, 11, 28, 23, -2, -31, -29, -4, -1, -34, - -83, -89, -45, 3, 22, 6, -3, 16, 41, 56, 55, 68, 93, 93, 65, 23, - 12, 38, 53, 27, -38, -80, -64, -29, -12, -31, -54, -49, -34, -22, -24, -11, - 28, 47, 25, -24, -51, -27, 5, 5, -43, -90, -79, -34, 6, 11, 4, 17, - 31, 39, 34, 38, 79, 114, 105, 50, 3, 12, 44, 56, 16, -49, -72, -54, - -28, -29, -44, -37, -27, -28, -41, -45, -5, 46, 61, 17, -44, -53, -20, 7, - -6, -53, -78, -62, -27, -7, -6, 14, 41, 45, 26, 11, 38, 93, 127, 101, - 34, 1, 20, 48, 42, -1, -41, -53, -45, -40, -51, -44, -18, -9, -34, -61, - -47, 7, 57, 58, 2, -46, -43, -14, -5, -27, -52, -58, -46, -31, -26, -12, - 28, 59, 45, 10, 6, 50, 104, 124, 87, 30, 11, 30, 40, 19, -9, -26, - -35, -44, -58, -62, -38, -4, -6, -46, -67, -37, 21, 56, 43, -4, -37, -30, - -15, -25, -40, -44, -38, -38, -43, -38, -9, 40, 64, 37, 5, 14, 65, 106, - 107, 75, 36, 26, 34, 24, 4, -8, -10, -24, -53, -70, -64, -30, 0, -16, - -53, -61, -22, 28, 43, 29, -2, -21, -20, -26, -39, -43, -34, -26, -43, -54, - -40, 0, 46, 56, 30, 12, 30, 75, 97, 90, 69, 47, 38, 29, 13, 2, - 0, -1, -27, -61, -71, -55, -25, -14, -32, -50, -41, -6, 22, 25, 17, 4, - -8, -19, -31, -38, -35, -28, -35, -53, -54, -29, 7, 31, 32, 23, 28, 51, - 72, 78, 72, 65, 55, 42, 30, 19, 15, 11, -8, -36, -58, -58, -42, -35, - -35, -43, -40, -18, 0, 12, 14, 11, 9, -4, -15, -25, -31, -28, -36, -49, - -53, -45, -18, 1, 12, 19, 23, 43, 58, 64, 68, 64, 64, 57, 46, 40, - 28, 22, 9, -17, -35, -48, -47, -44, -47, -45, -44, -31, -12, -2, 7, 10, - 9, 7, -2, -8, -19, -28, -32, -44, -51, -48, -37, -21, -9, 5, 16, 26, - 43, 55, 60, 64, 63, 61, 58, 55, 48, 34, 21, 6, -13, -27, -39, -49, - -53, -50, -46, -41, -32, -16, -3, 5, 11, 9, 6, 5, -4, -17, -32, -40, - -42, -44, -42, -40, -32, -12, 5, 17, 24, 35, 50, 58, 64, 64, 60, 65, - 61, 50, 34, 18, 10, -2, -18, -38, -58, -56, -49, -45, -41, -38, -22, -4, - 8, 14, 8, 11, 10, -5, -20, -38, -41, -36, -37, -40, -48, -37, -12, 4, - 14, 19, 27, 46, 59, 66, 63, 62, 70, 64, 50, 34, 22, 17, 8, -11, - -38, -59, -57, -50, -49, -47, -43, -28, -6, 10, 16, 10, 14, 8, 1, -5, - -5, -4, -5, 5, 2, 2, 1, -1, 0, 1, 0, 2, 0, 0, -2, -1, - -1, 2, 1, 1, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, -1, - -1, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, - 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -1, -1, 0, 1, 0, 0, 0, 1, 0, 1, 0, -3, -10, -11, -8, - -13, -25, -21, -10, 0, 2, 18, 41, 44, 42, 66, 62, 28, 10, 17, 17, - -16, -10, 25, 28, 29, 34, 47, 34, -7, 7, 25, -12, -43, -44, -40, -61, - -85, -78, -55, -42, -33, -10, 17, 31, 43, 59, 51, 25, 25, 40, 27, -1, - 2, 25, 30, 15, 12, 27, 26, 13, 16, 9, -24, -43, -37, -49, -83, -92, - -62, -40, -42, -36, 1, 33, 34, 45, 61, 46, 27, 32, 33, 10, -6, 15, - 38, 26, 4, 15, 35, 19, 7, 17, 3, -26, -41, -50, -67, -91, -82, -48, - -40, -46, -24, 18, 33, 32, 54, 62, 46, 30, 22, 20, 7, 4, 28, 33, - 15, 10, 22, 25, 9, 13, 18, -2, -29, -54, -65, -74, -86, -68, -49, -46, - -32, -8, 17, 29, 45, 65, 60, 43, 23, 13, 17, 12, 18, 28, 22, 19, - 16, 13, 14, 16, 24, 13, -13, -40, -66, -72, -75, -74, -64, -55, -36, -20, - -9, 15, 43, 63, 65, 51, 37, 17, 9, 19, 23, 21, 19, 24, 21, 3, - 4, 24, 31, 18, -2, -20, -49, -77, -74, -65, -71, -69, -47, -27, -27, -10, - 38, 66, 59, 52, 51, 34, 4, 11, 36, 26, 12, 22, 26, 2, -11, 25, - 45, 18, 0, -1, -23, -72, -83, -55, -65, -83, -61, -34, -37, -36, 23, 71, - 55, 43, 60, 55, 11, 1, 40, 37, 8, 16, 31, 6, -22, 14, 55, 27, - -3, 8, 2, -52, -83, -57, -56, -89, -79, -43, -43, -55, -4, 66, 61, 35, - 56, 68, 31, 4, 32, 46, 13, 7, 31, 16, -24, -4, 50, 42, 2, 7, - 16, -25, -67, -60, -54, -86, -95, -55, -44, -63, -32, 40, 62, 40, 47, 67, - 48, 22, 32, 42, 18, 4, 25, 25, -15, -16, 29, 44, 21, 11, 15, -5, - -39, -49, -59, -85, -96, -72, -52, -62, -50, 7, 45, 49, 50, 56, 56, 43, - 42, 39, 19, 9, 16, 21, 1, -16, 9, 32, 31, 24, 14, 5, -14, -34, - -52, -81, -94, -85, -71, -62, -55, -21, 21, 41, 53, 55, 55, 57, 51, 44, - 26, 13, 15, 11, 3, -3, 0, 19, 27, 29, 26, 11, 0, -16, -41, -70, - -90, -88, -85, -80, -57, -34, -3, 26, 42, 57, 57, 60, 64, 50, 33, 20, - 17, 9, -6, -1, 6, 10, 23, 26, 28, 22, 10, 1, -27, -60, -78, -87, - -90, -94, -74, -42, -20, 10, 34, 44, 57, 65, 71, 58, 35, 30, 23, 8, - -5, -7, 4, 7, 19, 33, 23, 19, 24, 17, -13, -53, -65, -75, -96, -98, - -83, -61, -40, -7, 32, 38, 38, 66, 83, 65, 36, 36, 37, 8, -7, 1, - 0, -5, 11, 39, 34, 10, 21, 36, 4, -45, -59, -59, -89, -106, -84, -67, - -62, -32, 21, 41, 30, 47, 85, 80, 41, 34, 45, 20, -8, 0, 9, -7, - -6, 31, 45, 21, 12, 32, 25, -27, -55, -52, -76, -104, -95, -70, -64, -57, - -7, 33, 34, 38, 67, 84, 57, 35, 46, 29, -1, -4, 7, 7, -8, 12, - 41, 31, 21, 24, 25, -5, -43, -45, -65, -98, -98, -82, -62, -58, -35, 13, - 27, 38, 59, 70, 67, 45, 49, 39, 2, -3, 2, 9, 9, 6, 30, 30, - 24, 31, 20, 3, -26, -37, -48, -91, -100, -88, -75, -53, -41, -9, 12, 23, - 55, 65, 61, 54, 51, 51, 14, -6, 1, 1, 15, 18, 26, 29, 16, 30, - 28, 4, -14, -29, -36, -71, -100, -93, -87, -64, -38, -16, 2, 6, 33, 61, - 59, 56, 54, 55, 32, 1, -3, -4, 5, 25, 36, 36, 17, 14, 25, 14, - -4, -19, -30, -53, -84, -94, -95, -82, -49, -16, 4, 2, 10, 37, 56, 61, - 58, 54, 42, 19, 3, -9, -8, 14, 41, 53, 32, 10, 7, 10, 10, -7, - -25, -43, -65, -81, -97, -99, -72, -29, 9, 11, 3, 10, 33, 61, 65, 55, - 46, 30, 19, 0, -17, -5, 29, 62, 57, 24, -1, -6, 10, 8, -16, -35, - -54, -64, -80, -105, -99, -57, -2, 26, 13, -2, 6, 42, 67, 60, 49, 36, - 31, 22, -10, -24, 1, 49, 77, 53, 9, -14, -4, 10, -4, -26, -47, -56, - -58, -89, -115, -93, -34, 23, 33, 6, -6, 16, 50, 62, 53, 39, 34, 40, - 16, -24, -26, 15, 71, 82, 38, -5, -13, -1, 3, -13, -39, -53, -48, -61, - -103, -119, -80, -6, 42, 27, -1, 2, 26, 51, 56, 43, 33, 43, 42, 4, - -34, -23, 37, 87, 70, 20, -6, -10, -3, -5, -27, -49, -48, -44, -72, -115, - -118, -56, 22, 43, 17, 3, 12, 33, 51, 45, 34, 38, 51, 38, -11, -42, - -9, 59, 86, 53, 13, -5, -5, -3, -19, -42, -50, -43, -45, -85, -127, -105, - -28, 34, 37, 15, 8, 23, 41, 42, 34, 33, 45, 55, 26, -27, -38, 12, - 69, 77, 40, 9, 1, 0, -13, -33, -48, -49, -39, -55, -102, -124, -83, -8, - 37, 31, 14, 19, 35, 39, 34, 30, 35, 51, 50, 9, -31, -25, 27, 72, - 65, 30, 12, 9, -2, -23, -42, -52, -46, -43, -71, -109, -112, -63, 7, 36, - 25, 20, 33, 42, 35, 29, 29, 40, 52, 35, -2, -28, -12, 40, 69, 51, - 26, 18, 13, -8, -33, -48, -50, -46, -57, -84, -107, -98, -43, 14, 29, 24, - 30, 44, 43, 30, 26, 34, 44, 40, 19, -8, -20, 4, 46, 59, 42, 29, - 25, 10, -18, -40, -46, -47, -57, -73, -91, -100, -78, -30, 13, 25, 30, 44, - 48, 39, 29, 31, 41, 35, 23, 9, -9, -5, 16, 43, 52, 40, 37, 25, - 0, -23, -41, -43, -54, -74, -82, -93, -86, -60, -26, 12, 26, 41, 53, 44, - 40, 33, 36, 38, 19, 12, 2, -3, 9, 18, 40, 48, 42, 41, 16, -6, - -23, -41, -45, -68, -84, -86, -90, -71, -52, -22, 15, 32, 52, 54, 45, 45, - 36, 36, 25, 6, 6, 0, 5, 15, 21, 41, 46, 46, 37, 10, -7, -24, - -42, -57, -81, -88, -88, -83, -62, -43, -14, 16, 41, 59, 55, 48, 48, 40, - 27, 10, 2, 2, 0, 8, 22, 30, 36, 45, 50, 32, 5, -9, -23, -48, - -75, -86, -86, -88, -81, -54, -26, -11, 16, 52, 65, 55, 50, 53, 39, 9, - -2, 4, 2, -4, 11, 36, 34, 27, 47, 51, 26, 0, -9, -23, -63, -91, - -85, -81, -89, -79, -38, -13, -11, 23, 62, 67, 55, 52, 56, 29, -8, -7, - 7, 0, -5, 19, 44, 30, 28, 49, 46, 21, -2, -10, -32, -79, -96, -83, - -81, -87, -67, -27, -11, 0, 36, 65, 67, 58, 54, 48, 14, -15, -7, 3, - 1, 6, 26, 35, 30, 38, 46, 37, 18, -2, -18, -48, -85, -96, -89, -81, - -70, -52, -30, -8, 20, 48, 63, 66, 59, 50, 33, 6, -14, -15, -2, 13, - 20, 21, 25, 36, 45, 42, 31, 12, -10, -31, -56, -84, -103, -96, -70, -50, - -43, -31, 0, 35, 58, 68, 65, 51, 37, 26, 8, -19, -25, 2, 27, 27, - 17, 20, 36, 45, 45, 29, 0, -27, -41, -55, -87, -111, -93, -57, -37, -33, - -23, 5, 41, 70, 77, 59, 36, 26, 24, 4, -24, -22, 7, 31, 33, 19, - 14, 29, 49, 50, 22, -16, -39, -48, -63, -92, -104, -86, -51, -25, -19, -16, - 10, 53, 82, 74, 47, 26, 19, 16, -1, -18, -16, 7, 35, 37, 18, 10, - 31, 55, 41, 4, -25, -45, -57, -73, -90, -95, -82, -42, -9, -8, -11, 20, - 71, 84, 57, 39, 27, 13, 2, -6, -9, -12, 8, 45, 41, 8, 5, 42, - 56, 20, -10, -24, -50, -73, -83, -83, -87, -76, -25, 10, -5, -9, 39, 84, - 71, 44, 38, 26, 2, -9, -2, -4, -11, 17, 52, 36, 0, 11, 50, 43, - 3, -19, -31, -57, -84, -84, -77, -82, -59, -9, 14, 1, 7, 55, 81, 61, - 38, 29, 20, -2, -10, -1, -4, 0, 26, 42, 30, 8, 20, 41, 28, -4, - -31, -46, -64, -84, -82, -79, -66, -37, -7, 15, 18, 30, 58, 68, 57, 33, - 17, 9, 0, -3, -7, 0, 15, 23, 31, 29, 23, 24, 22, 14, -12, -43, - -63, -72, -73, -83, -75, -47, -26, -2, 20, 37, 48, 50, 57, 52, 30, 6, - -1, 11, 0, -9, 7, 16, 24, 28, 32, 33, 15, 7, 2, -21, -55, -79, - -66, -67, -81, -63, -38, -12, 9, 29, 53, 48, 42, 51, 47, 22, -6, 5, - 18, -4, -7, 6, 22, 28, 26, 39, 28, 2, -2, -8, -35, -73, -76, -56, - -67, -77, -55, -20, 4, 16, 40, 54, 42, 41, 51, 37, 7, 0, 17, 13, - -12, -9, 20, 31, 25, 29, 33, 15, -5, -8, -22, -57, -74, -62, -57, -74, - -71, -33, 0, 11, 26, 44, 45, 41, 47, 45, 22, 3, 12, 19, 0, -15, - 4, 30, 32, 27, 26, 17, 3, -4, -14, -44, -69, -66, -56, -63, -74, -52, - -11, 12, 21, 29, 35, 41, 49, 51, 31, 9, 11, 19, 11, -8, -7, 20, - 36, 34, 22, 10, 6, 5, -4, -33, -64, -66, -58, -58, -67, -63, -29, 4, - 20, 21, 21, 35, 52, 57, 39, 12, 10, 18, 16, 3, -7, 8, 31, 39, - 25, 5, 3, 10, 5, -22, -58, -67, -58, -56, -60, -64, -45, -11, 15, 19, - 12, 24, 50, 62, 46, 17, 9, 18, 20, 12, 0, 2, 21, 37, 31, 7, - 0, 11, 14, -12, -51, -66, -58, -53, -54, -59, -54, -29, 3, 16, 9, 17, - 44, 62, 51, 22, 8, 17, 24, 21, 9, 1, 11, 30, 31, 14, 3, 11, - 16, -4, -43, -65, -58, -49, -50, -53, -55, -43, -16, 5, 10, 16, 38, 59, - 54, 26, 7, 18, 29, 24, 18, 8, 5, 16, 27, 23, 11, 14, 18, -1, - -36, -63, -56, -43, -48, -47, -49, -52, -36, -12, 8, 17, 35, 55, 50, 28, - 9, 17, 33, 25, 24, 20, 5, 4, 15, 27, 23, 20, 22, 0, -32, -58, - -55, -40, -47, -44, -39, -52, -54, -34, -2, 19, 35, 53, 46, 27, 12, 18, - 34, 26, 26, 33, 13, -6, 0, 22, 34, 32, 28, 3, -31, -53, -51, -39, - -47, -45, -30, -45, -66, -56, -19, 15, 38, 52, 43, 22, 13, 22, 35, 26, - 26, 41, 25, -7, -13, 10, 35, 46, 39, 10, -29, -50, -46, -37, -47, -46, - -27, -35, -65, -72, -42, 2, 38, 55, 43, 19, 11, 24, 36, 27, 26, 43, - 37, 2, -19, -6, 25, 53, 56, 20, -24, -46, -43, -36, -46, -48, -29, -28, - -56, -77, -64, -22, 31, 61, 45, 16, 10, 23, 35, 30, 26, 41, 42, 16, - -14, -21, 7, 51, 70, 36, -15, -38, -40, -35, -42, -49, -35, -29, -44, -71, - -81, -49, 14, 60, 50, 18, 10, 21, 34, 34, 26, 37, 43, 30, 0, -27, - -13, 37, 74, 54, 2, -29, -35, -32, -37, -49, -42, -32, -36, -57, -85, -73, - -12, 46, 57, 27, 9, 17, 32, 38, 28, 30, 41, 39, 18, -20, -27, 15, - 62, 68, 26, -17, -30, -28, -29, -45, -51, -40, -34, -45, -77, -86, -42, 18, - 54, 43, 14, 12, 29, 42, 34, 25, 33, 41, 30, -2, -24, -5, 36, 65, - 50, 3, -24, -24, -19, -33, -54, -52, -42, -45, -61, -75, -58, -15, 32, 48, - 25, 10, 24, 45, 45, 27, 26, 32, 28, 13, -4, -6, 14, 44, 55, 24, - -11, -18, -12, -20, -46, -57, -53, -54, -57, -63, -57, -33, 4, 35, 32, 16, - 22, 40, 49, 36, 26, 28, 23, 17, 8, 1, 10, 27, 43, 33, 5, -6, - -8, -14, -33, -53, -57, -61, -62, -61, -59, -38, -10, 15, 26, 20, 26, 40, - 44, 41, 30, 27, 25, 18, 12, 3, 9, 26, 33, 28, 13, 5, 5, -8, - -25, -45, -57, -60, -64, -66, -65, -49, -17, 6, 13, 16, 26, 43, 47, 39, - 32, 27, 27, 25, 13, 3, 6, 22, 35, 26, 13, 10, 12, 5, -17, -40, - -54, -58, -58, -68, -74, -61, -31, -1, 9, 10, 23, 40, 50, 45, 31, 24, - 27, 31, 20, 3, 2, 17, 32, 31, 16, 12, 15, 12, -4, -31, -51, -55, - -54, -62, -76, -73, -47, -17, 2, 8, 19, 37, 51, 50, 34, 24, 26, 31, - 25, 9, 4, 13, 26, 34, 25, 9, 13, 20, -2, -33, -44, -43, -58, -78, - -77, -59, -44, -33, -10, 17, 6, 12, -9, 32, 13, 4, -4, 6, -9, 27, - 8, 2, -1, -3, -2, 3, -4, -3, 2, 0, -2, 1, -2, 1, -4, 2, - 1, 0, -2, -1, -3, 2, 0, -1, -2, -2, -2, -1, -2, -2, -1, -2, - -2, -2, -2, -1, -2, -1, 0, -1, -2, -2, -2, -1, 0, -2, -2, -2, - -2, -1, -1, -2, -1, -2, -2, -2, -3, -1, -1, 0, 0, -1, -3, -2, - 1, 3, 0, 0, -2, -8, -21, -17, -2, 12, 20, 19, 6, -13, -28, -73, - -67, -64, -58, -39, -11, 19, 38, 60, 96, 80, 38, 12, 6, -20, -65, -83, - -65, -61, -56, -17, 22, 35, 49, 74, 94, 55, 16, 20, -5, -52, -89, -81, - -53, -65, -36, 21, 37, 48, 51, 85, 82, 25, 23, 9, -36, -80, -105, -58, - -57, -54, 7, 36, 54, 44, 58, 97, 48, 26, 16, -21, -61, -115, -83, -45, - -57, -12, 23, 57, 54, 36, 86, 77, 37, 21, -16, -40, -103, -110, -54, -46, - -24, 6, 43, 68, 36, 62, 86, 60, 30, -12, -34, -80, -119, -76, -44, -24, - -5, 24, 64, 51, 50, 76, 72, 48, 0, -34, -68, -106, -94, -56, -26, -7, - 11, 45, 59, 58, 66, 71, 60, 23, -27, -68, -93, -93, -72, -37, -8, 10, - 25, 50, 70, 68, 62, 62, 45, -10, -70, -88, -83, -79, -57, -15, 15, 13, - 31, 73, 80, 59, 53, 61, 15, -67, -89, -73, -75, -75, -33, 21, 11, 10, - 66, 92, 65, 42, 63, 42, -56, -92, -66, -66, -84, -57, 16, 19, -5, 50, - 98, 76, 39, 56, 60, -35, -95, -64, -53, -84, -79, 0, 28, -8, 29, 96, - 89, 42, 46, 69, -10, -90, -69, -41, -74, -95, -25, 28, -1, 13, 81, 101, - 53, 37, 69, 11, -77, -75, -38, -53, -103, -55, 22, 8, 6, 61, 104, 75, - 29, 59, 31, -61, -76, -43, -36, -91, -88, 6, 17, 1, 46, 96, 94, 34, - 40, 48, -40, -80, -47, -27, -69, -107, -27, 26, 4, 29, 87, 105, 51, 24, - 46, -10, -76, -58, -21, -49, -107, -62, 17, 16, 17, 70, 110, 67, 22, 38, - 10, -60, -71, -24, -28, -97, -85, -6, 25, 18, 50, 106, 84, 28, 31, 16, - -38, -71, -38, -17, -78, -94, -30, 15, 30, 41, 86, 92, 44, 31, 15, -25, - -54, -53, -26, -57, -88, -51, -2, 33, 45, 68, 88, 59, 35, 17, -15, -42, - -55, -41, -48, -73, -60, -19, 24, 50, 61, 74, 67, 46, 21, -8, -32, -48, - -54, -53, -57, -57, -34, 9, 50, 63, 59, 65, 58, 29, -1, -24, -38, -62, - -67, -48, -47, -40, -8, 43, 68, 48, 58, 66, 38, 6, -19, -26, -62, -85, - -45, -35, -39, -21, 28, 72, 41, 47, 74, 45, 15, -14, -17, -53, -102, -50, - -24, -36, -26, 10, 69, 42, 32, 81, 52, 21, -4, -15, -39, -109, -64, -12, - -35, -26, -1, 54, 47, 21, 79, 65, 20, 7, -12, -33, -100, -82, -8, -27, - -32, -2, 36, 47, 21, 66, 77, 25, 12, -2, -36, -88, -87, -18, -16, -36, - -8, 27, 36, 30, 56, 77, 39, 12, 6, -33, -84, -79, -30, -11, -29, -20, - 19, 27, 31, 58, 66, 50, 21, 5, -25, -81, -75, -32, -17, -17, -27, 2, - 24, 28, 61, 61, 48, 35, 4, -22, -71, -77, -31, -19, -12, -23, -18, 16, - 29, 59, 65, 45, 41, 10, -23, -59, -76, -37, -14, -11, -18, -29, -2, 29, - 57, 68, 51, 37, 16, -21, -55, -67, -44, -12, -5, -21, -29, -19, 19, 59, - 68, 61, 36, 14, -12, -55, -61, -44, -16, 3, -21, -29, -25, 0, 55, 72, - 69, 43, 8, -6, -49, -63, -39, -18, 5, -15, -31, -26, -18, 39, 78, 75, - 53, 8, -8, -40, -67, -37, -15, 2, -8, -30, -26, -29, 16, 79, 84, 59, - 14, -11, -33, -66, -42, -9, -2, -6, -23, -26, -33, -7, 66, 94, 67, 22, - -9, -32, -62, -48, -8, 0, -9, -16, -20, -35, -24, 46, 96, 78, 31, -2, - -29, -59, -51, -13, 1, -10, -13, -9, -31, -35, 23, 86, 88, 42, 5, -22, - -57, -53, -18, -3, -10, -13, 0, -19, -44, 2, 69, 90, 57, 12, -13, -50, - -57, -21, -9, -13, -13, 1, -3, -41, -17, 51, 82, 69, 23, -9, -37, -57, - -25, -12, -22, -15, 0, 10, -25, -32, 32, 69, 71, 37, -4, -25, -48, -30, - -12, -32, -23, -3, 14, -2, -33, 11, 56, 63, 49, 3, -18, -32, -31, -13, - -37, -38, -9, 11, 17, -16, -6, 41, 53, 51, 11, -17, -15, -23, -14, -35, - -54, -22, 4, 26, 10, -10, 26, 43, 46, 19, -19, -6, -5, -10, -30, -65, - -42, -9, 24, 35, 3, 12, 32, 37, 24, -20, -8, 14, 2, -23, -68, -62, - -26, 10, 50, 28, 11, 22, 27, 24, -19, -19, 24, 21, -8, -63, -78, -45, - -11, 47, 53, 23, 21, 19, 22, -17, -34, 21, 40, 15, -48, -89, -65, -34, - 30, 68, 44, 27, 16, 16, -11, -47, 3, 49, 39, -22, -89, -82, -55, 3, - 68, 61, 44, 21, 11, -6, -53, -21, 45, 56, 11, -74, -96, -72, -26, 52, - 73, 60, 39, 10, -3, -48, -44, 27, 61, 42, -43, -101, -88, -52, 27, 73, - 70, 59, 21, -1, -40, -60, 2, 52, 60, -4, -90, -100, -74, -2, 62, 72, - 76, 42, 5, -30, -66, -22, 34, 63, 33, -62, -104, -92, -31, 44, 68, 84, - 66, 21, -21, -64, -41, 13, 54, 55, -26, -94, -104, -57, 20, 56, 82, 84, - 43, -6, -57, -54, -10, 36, 60, 7, -70, -107, -78, -6, 40, 73, 92, 66, - 12, -45, -57, -27, 16, 52, 29, -41, -96, -90, -32, 20, 60, 91, 83, 34, - -27, -52, -37, -3, 34, 36, -15, -77, -91, -52, -1, 43, 83, 93, 53, -5, - -42, -40, -17, 14, 32, 1, -54, -81, -65, -21, 23, 71, 96, 67, 16, -25, - -37, -24, -5, 21, 6, -36, -64, -69, -37, 3, 54, 93, 73, 35, -6, -28, - -25, -19, 8, 4, -27, -46, -65, -46, -14, 34, 86, 73, 49, 15, -17, -19, - -28, -4, -3, -28, -32, -56, -48, -24, 15, 74, 67, 55, 36, -2, -10, -28, - -14, -9, -36, -25, -42, -50, -29, 1, 60, 59, 50, 55, 16, -3, -22, -20, - -14, -46, -29, -28, -48, -33, -5, 47, 50, 40, 64, 40, 4, -14, -17, -19, - -53, -40, -18, -40, -41, -6, 39, 39, 28, 61, 62, 17, -10, -7, -21, -59, - -53, -20, -28, -47, -11, 38, 29, 15, 52, 77, 36, -6, 1, -12, -63, -66, - -25, -20, -46, -19, 37, 28, 0, 38, 83, 54, 5, 5, -2, -57, -81, -34, - -15, -44, -22, 29, 31, -4, 16, 85, 68, 17, 15, 1, -44, -87, -54, -8, - -42, -27, 25, 24, 2, 0, 69, 88, 24, 25, 11, -42, -76, -75, -14, -25, - -40, 23, 18, -3, 3, 42, 96, 45, 22, 29, -39, -70, -75, -40, -8, -39, - 7, 24, -17, 8, 33, 79, 76, 22, 35, -21, -75, -64, -60, -15, -17, -14, - 21, -21, -4, 40, 59, 88, 45, 24, -3, -71, -61, -59, -38, 1, -14, 0, - -17, -18, 41, 54, 82, 74, 22, -3, -53, -61, -53, -54, -2, 3, -19, -25, - -22, 30, 57, 73, 92, 38, -15, -40, -51, -50, -58, -17, 17, -23, -44, -22, - 19, 55, 72, 97, 60, -22, -40, -35, -45, -55, -32, 14, -17, -60, -26, 11, - 46, 75, 97, 78, -17, -46, -23, -38, -45, -37, -1, -14, -66, -31, 3, 34, - 80, 98, 85, -4, -47, -19, -33, -33, -30, -20, -25, -63, -34, -4, 18, 79, - 104, 84, 9, -38, -18, -29, -27, -14, -30, -46, -63, -32, -5, 3, 68, 111, - 84, 18, -23, -12, -25, -28, -2, -25, -67, -75, -29, 1, -6, 46, 112, 91, - 22, -11, 0, -18, -33, -1, -9, -76, -96, -34, 9, -8, 22, 101, 102, 27, - -2, 14, -7, -36, -9, 4, -68, -114, -48, 13, -3, 5, 80, 109, 40, 4, - 26, 6, -33, -18, 6, -52, -120, -67, 7, 4, -1, 55, 103, 58, 14, 31, - 17, -21, -24, -4, -39, -110, -84, -10, 6, 2, 34, 87, 71, 29, 36, 25, - -7, -23, -16, -33, -96, -90, -29, -1, 6, 22, 68, 75, 45, 45, 31, 4, - -15, -24, -37, -84, -87, -43, -15, 3, 18, 53, 68, 57, 58, 38, 11, -7, - -22, -45, -81, -79, -48, -29, -10, 17, 45, 57, 61, 71, 50, 17, 0, -15, - -49, -85, -74, -45, -40, -25, 10, 42, 49, 55, 82, 65, 22, 7, -9, -43, - -89, -80, -34, -47, -40, -1, 35, 52, 43, 85, 84, 25, 17, -4, -38, -85, - -92, -28, -44, -55, -9, 21, 53, 42, 75, 100, 35, 22, 6, -38, -74, -99, - -38, -34, -65, -18, 12, 42, 51, 63, 102, 52, 25, 21, -36, -70, -90, -56, - -30, -64, -30, 7, 27, 55, 63, 90, 69, 33, 26, -26, -69, -79, -66, -43, - -54, -37, -1, 17, 49, 69, 79, 72, 50, 30, -15, -61, -75, -68, -58, -52, - -33, -12, 9, 42, 69, 78, 64, 60, 42, -9, -49, -71, -69, -68, -61, -25, - -17, -1, 38, 64, 77, 59, 62, 58, -3, -37, -62, -72, -72, -73, -24, -12, - -11, 35, 55, 73, 59, 58, 69, 8, -29, -48, -75, -76, -82, -31, -4, -14, - 28, 49, 63, 61, 54, 73, 22, -21, -36, -71, -82, -88, -42, 0, -9, 21, - 43, 53, 57, 56, 73, 33, -12, -25, -62, -89, -95, -49, -2, -2, 18, 37, - 43, 49, 60, 75, 38, -2, -16, -49, -89, -105, -54, -7, 1, 19, 31, 37, - 38, 59, 81, 39, 4, -7, -35, -83, -115, -62, -10, 0, 20, 27, 32, 30, - 53, 87, 43, 4, 0, -24, -70, -118, -75, -12, -2, 19, 24, 27, 27, 45, - 89, 52, 4, 1, -14, -55, -113, -87, -18, -3, 13, 20, 24, 28, 41, 85, - 60, 7, -3, -9, -40, -100, -91, -28, -4, 7, 10, 21, 30, 43, 82, 62, - 13, -8, -11, -26, -85, -87, -36, -10, 2, -4, 14, 35, 47, 81, 62, 18, - -9, -21, -20, -65, -78, -38, -19, -4, -16, 0, 39, 54, 85, 65, 20, -7, - -31, -24, -47, -62, -33, -26, -15, -25, -19, 35, 63, 90, 73, 22, -3, -39, - -39, -35, -43, -20, -26, -30, -34, -36, 24, 71, 94, 85, 29, -3, -40, -58, - -34, -24, -4, -16, -46, -47, -47, 6, 73, 100, 97, 42, -4, -39, -73, -45, - -8, 12, 0, -51, -64, -56, -13, 66, 104, 106, 64, 2, -40, -82, -63, -3, - 27, 18, -43, -82, -68, -28, 51, 104, 112, 86, 19, -42, -86, -81, -10, 40, - 34, -26, -90, -86, -41, 31, 98, 116, 104, 46, -38, -92, -95, -25, 46, 48, - -6, -84, -105, -55, 13, 84, 117, 114, 76, -20, -95, -105, -45, 41, 54, 8, - -65, -112, -70, -1, 65, 109, 115, 100, 14, -85, -106, -62, 21, 50, 13, -44, - -104, -84, -14, 45, 98, 112, 111, 53, -62, -105, -75, -3, 44, 12, -31, -85, - -93, -27, 27, 82, 110, 110, 81, -27, -95, -81, -27, 31, 11, -31, -66, -90, - -39, 12, 61, 106, 107, 94, 12, -73, -79, -48, 11, 13, -32, -57, -78, -46, - -1, 38, 97, 109, 96, 43, -41, -69, -62, -13, 13, -30, -58, -68, -46, -11, - 17, 81, 112, 97, 59, -7, -51, -67, -37, 6, -23, -62, -67, -42, -14, 2, - 60, 110, 99, 65, 20, -24, -63, -56, -7, -15, -63, -75, -40, -12, -8, 39, - 102, 103, 67, 35, 6, -48, -68, -25, -11, -56, -85, -46, -7, -10, 22, 86, - 107, 72, 41, 29, -25, -70, -42, -14, -42, -91, -62, -5, -6, 9, 67, 105, - 84, 40, 40, 3, -64, -56, -23, -30, -83, -85, -12, 3, 1, 50, 97, 96, - 44, 36, 28, -45, -69, -33, -22, -67, -101, -34, 13, 2, 31, 88, 104, 56, - 28, 37, -16, -71, -51, -18, -49, -103, -62, 9, 14, 18, 70, 109, 68, 26, - 36, 6, -58, -68, -23, -28, -97, -84, -7, 23, 19, 50, 106, 84, 28, 31, - -21, -26, -18, -30, -24, -77, -76, -48, -46, 31, 0, -1, 0, 0, 2, 0, - 1, -2, 1, 0, -6, -7, -5, -3, 0, -3, -4, -2, 2, 0, -8, -11, - -14, -10, -8, -4, 6, 13, 14, 9, 2, -6, -10, -9, -6, 9, 17, 15, - 8, 0, 1, -4, -12, -19, -14, -8, -4, 3, 6, -2, -4, -6, -7, -10, - -8, -12, -11, 3, 23, 27, 11, 4, -3, -5, 0, -9, -3, 6, 11, 19, - 4, -8, -17, -20, -21, -3, 5, 8, 2, 3, 5, 2, -3, -3, -12, 4, - 1, 3, -7, 0, 5, 6, 0, -7, -8, -5, -7, -5, -3, 4, 9, 5, - -5, -5, -5, -17, -7, 3, 17, 15, 7, -2, -5, -3, 3, -8, -5, -3, - 3, 8, 12, 5, -10, -27, -20, 1, 5, -4, -9, -17, 4, 10, 9, -2, - -12, -16, -12, -2, 8, 16, 13, 11, 16, 19, 10, -2, -16, -21, -11, 14, - 15, 21, 11, 6, -10, -8, -11, -24, -35, -31, -13, 9, 24, 17, -2, -11, - -20, -11, -19, -7, 3, 8, 22, 21, 21, 2, -7, -10, 12, 24, 18, -3, - -19, -6, 0, -5, -18, -17, 6, 12, 7, -16, -20, -22, -27, -19, -14, 12, - 14, 3, 0, 2, 8, -3, -5, -3, 21, 29, 17, 6, -8, 3, 3, 10, - 10, 3, 12, 4, -9, -18, -20, -20, -9, 6, 3, -9, -7, -14, -9, -8, - -9, -23, -19, 7, 17, 20, 9, 8, 5, 9, 18, 9, 8, -10, -10, -4, - 9, 25, -6, -19, -19, -5, -4, -7, -7, -17, -15, -7, -4, 0, 2, -2, - -17, -4, 14, 23, 15, 2, -7, -5, 9, 11, 1, 0, -3, 0, 0, 15, - 14, -4, -15, -20, -26, -22, -13, 0, 6, 12, 5, -10, 2, 8, -2, -18, - -8, 6, 20, 28, 23, 0, -16, -7, 9, 7, 10, -12, -21, -19, 7, 12, - 4, -17, -28, -24, -3, 14, 4, -19, -18, -9, 11, 22, 16, -13, -23, -15, - 18, 32, 32, 17, -4, 1, 14, 11, 1, -20, -19, -3, 9, 13, -4, -13, - -16, -18, -23, -12, -17, -16, -20, -15, -14, -4, 8, 12, 0, 8, 5, 12, - 17, 26, 25, 14, 10, 11, 11, 18, 15, 4, -9, -13, -8, -9, -14, -20, - -28, -32, -12, -9, -16, -17, -24, -18, -12, 5, 10, 4, 6, 8, 18, 35, - 31, 17, 1, 12, 21, 33, 18, 6, -10, -11, -4, -9, -13, -19, -24, -24, - -24, -18, -20, -18, -20, -13, -15, -10, -9, -5, 8, 10, 13, 23, 26, 29, - 14, 13, 13, 13, 16, 25, 19, 17, 4, -15, -18, -15, -14, -17, -34, -23, - -16, -12, -16, -26, -33, -23, -15, -4, 4, 10, 16, 19, 22, 29, 28, 7, - 1, 2, 18, 26, 30, 21, 9, 3, -4, -10, -16, -29, -31, -27, -4, -9, - -11, -28, -23, -17, -15, -13, -11, 4, 11, 9, 13, 16, 25, 18, 8, 10, - 18, 17, 8, 18, 17, 11, -5, -19, -17, -12, -19, -38, -27, -8, 0, -3, - -14, -19, -20, -14, -10, -13, -3, 6, 12, 26, 38, 34, 14, 2, -2, 11, - 19, 14, 8, 5, 16, 9, -7, -19, -24, -29, -36, -26, -13, -12, -22, -28, - -20, 5, -3, -10, -19, 7, 20, 18, 17, 24, 25, 14, 18, 19, 29, 21, - 11, 10, 9, 13, -13, -29, -27, -20, -24, -30, -22, -12, -7, -15, -22, -21, - -13, -14, -20, -8, 12, 26, 25, 21, 33, 27, 25, 16, 13, 16, 16, -2, - 2, 11, 9, -2, -17, -18, -16, -25, -25, -26, -27, -30, -35, -30, -12, -6, - -6, -6, -5, 19, 19, 11, 15, 17, 24, 23, 34, 28, 23, 13, 2, 9, - 18, 16, -14, -18, -12, -7, -9, -31, -37, -33, -24, -14, -24, -20, -16, -21, - -15, -7, 5, 9, 15, 20, 28, 38, 29, 21, 15, 22, 17, 4, 12, 6, - 12, -4, -9, -15, -16, -19, -40, -38, -34, -23, -18, -17, -8, -10, -3, -7, - 1, 3, 4, 11, 13, 36, 41, 36, 24, 9, 17, 20, 21, 14, -5, -9, - -11, -8, -19, -14, -24, -30, -23, -18, -25, -30, -24, -17, -20, -9, -3, 6, - 8, 22, 23, 20, 27, 18, 10, 10, 14, 18, 14, 23, 17, 6, 5, -4, - -8, -26, -19, -24, -25, -24, -21, -27, -28, -15, -19, -16, -9, 0, 7, 9, - 17, 14, 15, 24, 30, 29, 29, 32, 16, 10, 8, 0, -3, -10, -7, -17, - -22, -25, -30, -36, -32, -25, -26, -22, -12, -16, -11, -3, 5, 7, 13, 21, - 21, 26, 32, 28, 26, 28, 31, 17, 15, 15, 5, -4, -14, -18, -28, -25, - -24, -28, -32, -33, -32, -29, -18, -17, -20, -10, -4, 6, 6, 18, 22, 22, - 37, 38, 31, 27, 26, 23, 22, 23, 12, 4, -5, -2, -11, -19, -25, -35, - -35, -36, -36, -43, -32, -24, -20, -12, -7, -3, -7, 3, 13, 23, 29, 35, - 37, 35, 42, 33, 26, 22, 17, 12, 6, 4, -9, -23, -28, -34, -34, -33, - -31, -40, -36, -27, -25, -22, -30, -20, -11, 2, 12, 22, 22, 26, 28, 35, - 47, 44, 27, 29, 29, 29, 19, 2, 1, -9, -15, -21, -34, -35, -34, -40, - -44, -42, -34, -31, -26, -21, -9, -12, -3, 10, 17, 29, 26, 27, 34, 48, - 50, 34, 33, 25, 21, 16, 8, 3, -8, -11, -25, -30, -37, -37, -42, -51, - -34, -28, -21, -26, -25, -19, -13, 4, 9, 17, 29, 41, 33, 33, 44, 45, - 32, 31, 28, 22, 16, 5, -10, -13, -16, -23, -38, -39, -39, -45, -54, -40, - -32, -24, -22, -17, -14, 0, 6, 9, 18, 41, 43, 34, 32, 40, 40, 31, - 30, 27, 22, 19, 14, -2, -16, -21, -34, -48, -45, -41, -41, -41, -45, -38, - -25, -21, -17, -20, -7, 11, 17, 19, 36, 40, 42, 44, 47, 46, 39, 33, - 26, 15, 11, 8, -5, -19, -24, -29, -40, -44, -48, -44, -37, -37, -43, -43, - -26, -19, -14, -2, 13, 23, 31, 36, 36, 43, 41, 47, 46, 44, 40, 24, - 15, 14, 3, -12, -21, -23, -30, -36, -47, -51, -50, -47, -44, -46, -31, -19, - -16, -11, 2, 16, 20, 25, 29, 40, 53, 51, 49, 45, 41, 35, 25, 18, - 7, 5, -12, -18, -23, -34, -39, -56, -58, -54, -49, -50, -45, -35, -26, -12, - -5, 6, 17, 29, 41, 42, 47, 50, 46, 49, 50, 50, 39, 30, 16, 2, - -8, -15, -21, -30, -41, -49, -50, -46, -57, -63, -57, -41, -29, -24, -12, -3, - 5, 12, 22, 33, 41, 50, 51, 53, 57, 55, 46, 36, 29, 16, 2, -4, - -11, -21, -33, -40, -49, -47, -53, -60, -58, -51, -42, -34, -23, -13, -2, 5, - 17, 27, 39, 49, 48, 51, 56, 54, 58, 44, 37, 28, 18, 4, -3, -15, - -29, -39, -49, -49, -51, -62, -65, -64, -47, -42, -36, -26, -14, -5, 10, 24, - 32, 45, 50, 49, 62, 65, 63, 47, 42, 41, 36, 23, 7, -7, -22, -31, - -41, -53, -58, -62, -59, -62, -56, -54, -50, -44, -32, -16, 0, 11, 25, 35, - 50, 54, 55, 56, 66, 65, 62, 54, 45, 36, 23, 14, -4, -22, -44, -55, - -52, -62, -61, -66, -70, -68, -60, -54, -45, -29, -15, 4, 21, 34, 36, 44, - 54, 62, 70, 73, 68, 67, 59, 50, 37, 21, -5, -12, -25, -39, -48, -53, - -63, -76, -73, -71, -71, -67, -57, -45, -29, -12, 2, 13, 30, 42, 51, 61, - 76, 71, 63, 66, 71, 60, 50, 40, 23, -2, -9, -20, -41, -54, -59, -72, - -79, -71, -64, -73, -68, -60, -51, -36, -13, 2, 13, 27, 47, 54, 71, 78, - 71, 60, 72, 74, 65, 54, 39, 28, 7, -6, -23, -50, -59, -64, -69, -75, - -70, -78, -74, -73, -64, -52, -37, -13, 6, 18, 40, 51, 58, 64, 78, 79, - 75, 68, 64, 68, 57, 45, 21, 4, -16, -34, -50, -65, -75, -83, -80, -71, - -69, -68, -73, -63, -57, -36, -16, 6, 26, 45, 60, 70, 71, 79, 79, 81, - 78, 80, 64, 55, 36, 16, -4, -23, -38, -54, -63, -69, -81, -85, -87, -76, - -72, -66, -61, -52, -30, -12, 12, 24, 44, 55, 69, 78, 85, 84, 74, 70, - 71, 71, 62, 41, 17, -11, -25, -42, -55, -66, -75, -87, -87, -81, -74, -76, - -76, -63, -48, -32, -13, 7, 30, 51, 64, 76, 80, 82, 83, 81, 80, 82, - 70, 61, 42, 19, 0, -28, -49, -61, -72, -78, -87, -90, -89, -88, -87, -82, - -69, -54, -33, -13, 15, 36, 58, 68, 79, 90, 96, 90, 84, 86, 89, 79, - 62, 38, 22, -3, -29, -55, -69, -81, -89, -94, -94, -94, -94, -89, -74, -62, - -52, -35, -18, 14, 39, 54, 65, 76, 87, 98, 95, 94, 90, 82, 75, 69, - 47, 26, -6, -33, -57, -72, -82, -88, -97, -90, -91, -88, -83, -80, -75, -59, - -33, -9, 20, 42, 58, 68, 82, 90, 94, 93, 94, 88, 85, 77, 65, 43, - 16, -10, -37, -60, -71, -84, -89, -95, -97, -102, -95, -84, -80, -72, -57, -26, - -4, 19, 42, 62, 80, 89, 94, 97, 100, 99, 90, 83, 71, 65, 39, 14, - -9, -43, -65, -83, -90, -95, -98, -96, -100, -96, -88, -76, -66, -51, -24, -12, - 21, 45, 70, 85, 93, 95, 97, 101, 105, 92, 84, 69, 58, 35, 16, -14, - -44, -68, -86, -88, -96, -101, -101, -102, -97, -90, -74, -69, -50, -19, 9, 35, - 56, 76, 84, 92, 98, 96, 99, 97, 93, 84, 77, 59, 24, 2, -30, -52, - -76, -87, -93, -98, -100, -102, -100, -96, -89, -81, -73, -46, -18, 12, 36, 62, - 82, 88, 96, 104, 107, 105, 102, 92, 84, 77, 53, 26, -6, -35, -57, -75, - -81, -92, -103, -114, -111, -108, -98, -88, -83, -67, -35, -7, 20, 39, 60, 70, - 89, 106, 116, 107, 103, 99, 86, 90, 82, 53, 18, -13, -31, -52, -73, -92, - -102, -106, -104, -97, -106, -99, -101, -92, -72, -42, -5, 16, 38, 66, 86, 101, - 99, 101, 95, 112, 107, 99, 95, 81, 53, 16, -3, -29, -60, -81, -102, -98, - -102, -102, -112, -114, -101, -104, -88, -69, -34, -8, 14, 41, 67, 92, 94, 99, - 103, 104, 115, 109, 103, 90, 78, 52, 22, 0, -39, -65, -92, -95, -91, -103, - -104, -118, -110, -102, -93, -84, -71, -36, -15, 19, 52, 81, 94, 89, 98, 103, - 115, 117, 102, 92, 83, 80, 49, 23, -11, -43, -67, -90, -93, -102, -105, -110, - -118, -104, -100, -89, -83, -64, -36, -7, 28, 50, 74, 88, 95, 104, 103, 115, - 107, 106, 97, 87, 74, 50, 20, -17, -47, -75, -89, -93, -101, -102, -115, -117, - -106, -97, -88, -90, -73, -38, 2, 36, 60, 75, 84, 96, 104, 115, 115, 102, - 98, 96, 96, 84, 52, 10, -12, -32, -53, -71, -87, -101, -109, -112, -109, -106, - -105, -102, -92, -74, -48, -19, 7, 33, 56, 76, 91, 101, 108, 111, 111, 108, - 103, 96, 85, 63, 33, 1, -27, -51, -73, -90, -102, -109, -112, -110, -107, -103, - -100, -93, -76, -50, -19, 10, 36, 58, 76, 91, 101, 108, 111, 111, 108, 103, - 96, 85, 63, 33, 1, -27, -51, -73, -90, -102, -109, -112, -110, -107, -103, -100, - -93, -76, -50, -19, 10, 36, 58, 76, -1, -2, -15, 21, -17, 23, -30, 1, - 34, -34, 6, 5, -15, 19, 1, -25, 6, 20, -2, -28, 15, 10, -15, 0, - -7, 10, 7, -5, -9, -6, 19, -3, -21, 3, 20, -4, -20, 1, 16, -3, - -8, -2, 5, 1, -8, -6, 3, 9, 2, -13, -4, 15, -7, -9, 0, 3, - 6, -7, -7, 5, 8, -8, -4, 0, 1, 1, -6, -4, 7, 2, -2, -7, - 0, 4, -3, -4, 0, 2, 0, -2, -4, 1, 4, -2, -4, -3, 1, 3, - -5, -4, 4, 3, -6, -5, 4, -1, -2, -3, 0, 3, -3, -1, -4, 3, - 3, -5, -3, 1, 1, -2, -3, 1, 2, -2, -4, 0, 0, 0, -1, -3, - 1, 1, -3, -2, 1, 0, -2, -2, 0, 0, -2, -1, 0, -1, 1, -2, - -2, 1, 0, -2, 0, -1, 0, -1, -1, -1, 0, 0, -1, -3, 1, 1, - -2, -2, 0, 1, -1, -2, -1, 0, 0, 0, -2, -1, 1, 0, -3, 0, - 2, -1, -2, 0, 0, 0, -2, 0, -1, 0, -1, -1, 1, 0, -1, 0, - -1, 1, 0, -13, 5, 7, -11, 24, -50, 41, 4, -29, 14, -11, 8, 11, - -15, -12, 15, 18, -21, -14, 22, -2, -11, -3, -3, 18, -3, -5, -14, 9, - 22, -24, -16, 23, 12, -23, -8, 9, 10, -4, -8, -3, 11, -4, -14, 0, - 8, 8, -5, -14, 8, 10, -12, -4, -2, 10, 0, -11, -3, 11, 0, -7, - -2, -1, 7, -6, -8, 3, 6, 0, -3, -8, 7, 2, -7, -2, 2, 1, - -2, -4, -1, 3, 3, -4, -5, 1, 3, -3, -6, 2, 5, -1, -7, -1, - 3, -1, -4, -3, 5, 0, -3, -2, -1, 4, -1, -5, -1, 3, -1, -4, - -1, 3, 1, -4, -2, 1, 0, -2, -3, 0, 2, -1, -4, 1, 1, -1, - -2, -2, 1, -1, -3, 0, 0, 0, -1, -2, 0, 0, -2, -1, 0, -1, - 0, -2, -1, 0, -1, 0, -1, -2, 2, -1, -2, -1, 0, 1, -2, 0, - -1, -1, 0, -1, -2, 0, 1, -1, -3, 0, 1, -1, -3, 0, 1, -2, - -1, 0, 0, -1, -1, 0, -1, -1, -1, -1, 0, 0, -1, -1, 0, 0, - -2, 0, 0, 0, 0, -2, 1, -1, 0, -1, 0, 0, 0, -1, 0, 0, - 0, 0, -1, 0, 0, -1, 0, -1, 1, 0, 0, 0, 1, -1, -1, 0, - 0, 0, 1, -2, 4, -3, 3, -40, 71, -73, 67, -27, -68, 127, -80, 3, - 5, 1, 17, -14, 1, -30, 53, -3, -42, 15, 19, -9, -17, -1, 13, 16, - -17, 4, -32, 43, 15, -68, 18, 54, -38, -7, -1, 11, 7, -3, -18, 5, - 25, -27, -9, 9, 19, -6, -12, -8, 20, -1, -15, -1, 1, 17, -10, -16, - 12, 12, -13, 0, -6, 10, 2, -16, -1, 14, -4, 4, -11, -2, 12, -6, - -8, 4, 4, -2, -4, 1, -2, 4, 3, -7, -5, 8, 0, -10, 1, 4, - 2, -4, -6, 4, 1, -1, -7, 1, 8, -9, 2, -5, 3, 3, -4, -3, - 0, 3, -3, -5, 4, 3, -3, -4, 0, 2, 0, -3, -4, 5, 0, -5, - -1, 2, 0, -3, 0, -1, 2, -2, -4, 3, 0, -1, -2, -1, 2, -2, - -2, 1, -1, 0, -1, -3, 1, 1, -2, 1, -3, 1, 1, -3, -1, 1, - 0, -1, -2, 1, -1, -1, 1, -2, 1, -1, -1, -1, -1, 0, 1, -3, - 0, 0, 1, -4, 0, 1, -2, 0, -2, 0, 0, 0, -2, 1, -1, 0, - -2, 0, 2, -2, -1, 0, -1, 2, -2, -1, 1, -2, 0, -1, 1, -1, - -1, -1, 1, -2, 1, -1, -1, 2, -3, 0, 0, -1, 1, -1, 0, 1, - 0, -2, 0, -1, 1, -2, 0, 0, -1, 1, 0, -2, 0, 1, -2, 1, - 0, 0, -1, 0, 1, -1, -1, -1, 1, 1, -1, 0, 0, 0, -1, 1, - 0, -1, 1, 0, 0, 1, 0, -1, 1, 0, 3, -40, 58, -39, 12, 42, - -117, 108, 1, -66, 22, 17, 0, -9, 10, -39, 42, 4, -23, -12, 28, 3, - -34, 9, 17, 3, -9, 10, -29, 13, 53, -79, 3, 64, -26, -24, 16, -9, - 14, 2, -8, -15, 31, -9, -30, 11, 29, -15, -7, 0, 3, 6, -4, -9, - -6, 22, 1, -24, 9, 11, -8, 0, -2, 2, 8, -12, -6, 10, 2, 2, - -9, -4, 11, -2, -10, 3, 2, 3, -5, -1, 1, -1, 6, -4, -8, 9, - 2, -8, -3, 6, 3, -4, -3, -1, 6, -2, -8, 0, 9, -4, -3, -2, - 2, 4, -4, -1, -1, 4, -2, -6, 4, 2, -1, -4, 0, 1, 2, -3, - -5, 3, 3, -3, -4, 3, 0, -1, 0, -2, 2, 0, -3, 0, 3, 0, - -3, -1, 2, 0, -3, 1, 0, -1, 2, -2, -2, 2, -1, 0, -1, -1, - 1, -1, -2, 0, 0, 1, -3, 1, 0, -1, 1, -2, -1, 2, -2, -1, - 0, -1, 2, -3, -1, 1, 1, -2, -2, 2, 1, -2, -1, 0, 0, 1, - -3, 1, 0, 0, 0, -2, 3, 0, -2, 0, 0, 1, 0, -1, 1, -2, - 0, 0, 0, -1, 1, 0, 0, 0, -1, 1, -1, 1, 0, -1, 1, -2, - 0, 1, 1, 0, 1, -2, 1, 0, 1, 0, 0, 3, -1, 0, 1, 0, - 0, 3, -29, 35, -12, -16, 56, -88, 39, 62, -79, 5, 29, 1, -13, 12, - -29, 26, 17, -28, -3, 12, 5, -11, -19, 28, 1, -5, 9, -21, -7, 60, - -56, -20, 57, -10, -27, 21, -21, 16, 12, -12, -21, 24, 6, -29, 4, 19, - 2, -7, -5, -3, 7, 6, -11, -9, 11, 13, -18, -4, 13, 1, -3, -6, - -1, 10, -8, -6, 5, 3, 5, -3, -11, 4, 9, -11, 0, 4, 3, -4, - -1, 0, 0, 7, 0, -14, 7, 5, -7, -4, 4, 5, -1, -4, -4, 4, - 1, -4, -4, 7, -1, -1, -3, 0, 5, -1, -4, -1, 2, 0, -3, 1, - 1, 2, -2, -4, 1, 2, 0, -5, 2, 3, -2, -2, 1, 1, -2, 2, - -3, 0, 0, -1, -1, 0, 1, 0, -3, 0, 0, -1, 1, -1, -2, 1, - -1, 0, -2, 2, 1, -2, -1, 1, 0, -1, -1, 0, 1, -1, 0, -2, - 1, 1, -1, 0, -1, -1, 0, 0, -1, -1, 0, -1, -1, 2, -2, -1, - 1, 0, 0, -1, -1, 1, 0, -1, 1, -1, 0, 1, -3, 1, 1, -1, - -1, 0, 1, 0, 0, 0, -1, 0, 0, -1, 0, 1, 0, 0, 2, -2, - 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, -1, -1, -7, -9, - 35, -52, 59, -33, -32, 64, -15, -41, 19, 22, -20, 9, -11, -3, 33, -27, - 2, 7, -9, 19, -37, 24, 7, -11, 11, -1, -30, 37, 8, -57, 36, 19, - -33, 14, 0, -17, 26, 1, -20, -5, 26, -18, -13, 14, 7, -6, 4, -9, - -4, 11, 3, -14, -7, 20, 0, -18, 10, 1, 4, -5, -7, 6, 0, -3, - -2, -2, 8, 5, -11, -6, 10, -1, -10, 6, -2, -1, 1, -3, 0, 3, - 5, -9, -5, 9, -3, -4, 1, 1, 3, -1, -4, -1, 2, -2, -5, 5, - -3, 0, 1, -5, 4, 2, -3, -3, 0, 0, -2, 1, 0, -2, 3, -2, - -5, 2, 2, -2, -4, 3, 0, -2, 1, -2, -2, 5, -2, -6, 1, 2, - -1, -1, 0, 1, -1, -2, -1, -1, 2, 0, -4, 0, 1, 0, -3, 0, - 2, 0, -3, 0, 0, 1, -1, -1, 1, 0, -1, -2, 1, 0, 0, -1, - 0, -2, 1, 0, -1, 1, -1, 0, -2, 1, 1, -2, -1, 2, -2, 1, - -3, 1, 1, -1, 0, 0, -1, 1, 0, -2, 2, -1, -1, 0, 0, 1, - 0, 1, 0, -2, 1, 0, 0, -1, 1, 0, 0, 0, 0, -3, -20, 45, - -56, 40, -5, -34, 27, 24, -42, -1, 29, -14, -4, 2, -7, 24, -20, -1, - 18, -25, 25, -29, 9, 21, -26, 14, 4, -20, 7, 27, -42, 5, 31, -24, - -2, 19, -30, 21, 8, -11, -17, 20, 1, -22, 11, 7, -7, 6, -5, -7, - 3, 11, -6, -18, 11, 16, -20, 1, 5, 2, -3, -3, 0, -3, 4, -1, - -7, 2, 10, -9, -8, 7, 2, -9, 5, -1, -5, 2, 1, -3, -2, 9, - -5, -8, 4, 1, -5, 0, 1, 2, -1, 0, -5, 4, -1, -5, 4, -3, - 1, 1, -5, 3, 0, 0, -3, 0, -1, -2, 1, 2, -5, 2, 1, -5, - -2, 3, -1, -5, 2, 1, -4, 2, -1, -4, 2, 3, -7, -1, 2, 0, - -2, 1, 0, -2, -1, 0, -3, 1, 2, -3, -2, 3, 0, -3, -1, 1, - 0, -1, -2, -1, 1, 0, 0, -1, 0, 0, -2, 0, 0, 1, -2, 2, - -3, 1, 0, 0, -2, 1, 0, -1, 0, 0, -1, -1, 2, -3, 0, 0, - -1, 0, 0, -1, 1, 0, -4, -13, 32, -41, 31, -10, -10, 4, 22, -25, - -8, 21, -3, -14, 5, 1, 12, -23, 8, 18, -31, 25, -26, 10, 17, -23, - 8, 5, -9, 0, 16, -25, 2, 23, -22, -2, 22, -30, 15, 7, -6, -13, - 12, 1, -17, 9, 5, -6, 4, -3, -7, 5, 7, -6, -13, 7, 10, -11, - 0, 0, 4, -3, -3, 2, -7, 4, 2, -5, 0, 6, -3, -8, 4, 2, - -8, 7, 0, -8, -1, 6, 0, -8, 6, 0, -5, 1, 0, -5, 3, 2, - -3, -2, 4, -5, -1, -1, -2, 3, -4, 1, -1, -3, 3, -1, -2, -2, - 1, -2, -2, 1, 1, -4, 1, 2, -5, -3, 5, -3, -4, 4, -1, -4, - 2, -1, -4, 3, 1, -5, -2, 2, 0, -2, 2, -1, -4, 3, -1, -3, - 0, 1, -2, -2, 1, -1, -1, -1, 0, 0, -1, -1, -1, 0, -1, 1, - -1, -1, 0, -2, 1, 0, -1, -1, 0, -1, -1, -1, 2, -2, -1, 1, - -1, -2, 1, -1, -1, 1, -2, 1, -7, -3, 15, -23, 20, -16, 9, -12, - 16, -12, -8, 11, 5, -18, 6, 8, 0, -18, 16, 4, -19, 16, -17, 10, - 5, -8, -2, 9, -5, -4, 10, -17, 5, 13, -18, 2, 12, -17, 10, 0, - -2, -8, 7, -4, -7, 6, 1, -3, 1, 3, -9, -2, 10, -7, -8, 4, - 6, -6, 1, 0, 0, -2, 1, -1, -8, 6, 1, -5, 2, 4, -2, -4, - 1, 1, -7, 5, -1, -4, -2, 4, 0, -4, 4, -3, -4, 1, 0, -3, - 0, 2, -1, -2, 2, -2, -1, -3, 0, 3, -4, 3, -3, 0, 2, 0, - -3, -1, 1, -3, -1, 2, 0, -1, 0, 0, -3, 0, 1, -4, -1, 2, - 0, -2, 0, 1, -3, 1, 1, -3, -2, 2, -1, -1, 2, -1, -2, 1, - 0, -1, -1, -1, -3, -8, -16, -20, -7, 14, 20, 19, 18, 16, 11, 3, - -9, -21, -36, -43, -39, -24, 6, 38, 57, 55, 26, 0, -7, -10, -13, -12, - -11, -29, -56, -59, -37, 0, 43, 74, 87, 75, 37, -2, -31, -51, -59, -45, - -15, -16, -34, -20, -10, -5, 29, 61, 72, 51, 18, -2, -21, -39, -35, -24, - 1, 0, -31, -29, -23, -44, -13, 48, 82, 79, 46, 16, -4, -44, -58, -26, - 3, 6, -38, -52, -24, -42, -35, 47, 95, 88, 55, 19, 12, -22, -72, -38, - 4, 3, -31, -67, -29, -24, -60, 23, 112, 111, 72, 22, 7, -20, -90, -73, - -1, 19, -4, -57, -36, 3, -54, -32, 98, 125, 71, 14, 14, 0, -82, -106, - 0, 42, 10, -48, -32, -2, -54, -63, 72, 125, 82, 24, 14, -8, -57, -104, - -22, 52, 34, -34, -46, -16, -35, -83, 32, 127, 99, 26, 19, 4, -55, -110, - -48, 45, 36, -12, -26, -22, -41, -64, -7, 107, 113, 56, 6, 4, -41, -92, - -74, 35, 57, 12, -41, -21, -39, -67, -40, 86, 114, 71, 10, 22, -31, -83, - -83, 16, 46, 34, -28, -18, -42, -58, -60, 55, 108, 97, 3, 21, -8, -77, - -102, 10, 45, 42, -26, -2, -27, -68, -73, 45, 83, 92, 29, 25, -8, -56, - -104, -13, 35, 52, -6, -7, -22, -46, -91, 10, 80, 95, 35, 26, 8, -38, - -106, -34, 34, 42, 5, 1, -23, -39, -73, -28, 61, 89, 60, 20, 2, -7, - -73, -86, 24, 52, 26, -12, -11, -19, -58, -86, 46, 91, 62, 17, 22, -15, - -39, -106, 8, 55, 45, -13, -6, -30, -21, -102, 4, 82, 87, 7, 28, -3, - -9, -115, -32, 50, 63, -23, 8, -19, -18, -94, -28, 61, 96, 14, 39, -4, - 1, -85, -60, 23, 79, -3, 2, -20, -10, -82, -65, 25, 108, 28, 31, 19, - 9, -65, -74, -5, 78, 16, -3, -9, -14, -65, -76, -3, 93, 60, 29, 22, - 13, -43, -90, -30, 61, 49, -9, -1, 4, -52, -98, -16, 68, 72, 21, 38, - 15, -31, -94, -34, 32, 67, 5, 9, 0, -28, -111, -33, 40, 85, 24, 37, - 23, -6, -104, -44, 13, 69, 9, 14, 8, -11, -110, -53, 20, 80, 32, 48, - 30, 5, -87, -66, -7, 63, 33, 12, 2, 5, -86, -94, -2, 79, 46, 26, - 44, 22, -59, -88, -19, 54, 48, 13, 14, 4, -51, -112, -37, 67, 71, 21, - 38, 29, -29, -104, -50, 44, 63, 11, 10, 14, -24, -103, -67, 49, 88, 20, - 27, 43, -10, -90, -79, 24, 69, 21, 7, 18, -8, -82, -103, 17, 94, 38, - 10, 54, 12, -70, -97, 1, 68, 37, -4, 27, -6, -56, -104, -21, 82, 67, - -3, 46, 23, -37, -108, -31, 57, 58, -13, 29, 11, -32, -106, -50, 53, 92, - -6, 38, 38, -15, -105, -54, 34, 79, -12, 20, 22, -11, -98, -70, 22, 99, - 4, 16, 48, 14, -99, -75, 15, 82, 2, 0, 44, 8, -93, -80, 0, 84, - 29, -3, 57, 32, -79, -94, 1, 66, 27, -19, 49, 29, -73, -109, -7, 54, - 52, -17, 62, 53, -46, -113, -4, 43, 51, -30, 46, 37, -42, -128, -23, 26, - 69, -18, 51, 59, -2, -122, -30, 24, 66, -27, 31, 51, 1, -128, -48, 13, - 71, -11, 33, 66, 22, -110, -57, 8, 68, -9, 12, 53, 28, -104, -87, -4, - 67, 8, 8, 72, 53, -80, -91, -4, 59, 10, -13, 63, 44, -81, -109, -19, - 46, 33, -6, 76, 57, -43, -104, -24, 36, 42, -26, 55, 51, -34, -126, -39, - 19, 58, -21, 68, 71, -8, -114, -32, 2, 62, -24, 52, 54, -4, -120, -53, - -22, 71, -8, 49, 62, 31, -102, -52, -25, 70, -5, 24, 55, 35, -109, -69, - -40, 59, 16, 25, 65, 55, -80, -70, -37, 47, 23, 7, 48, 51, -73, -97, - -48, 30, 46, 6, 57, 74, -37, -98, -34, 21, 48, -10, 44, 58, -34, -123, - -46, -2, 61, 2, 50, 69, 10, -110, -40, -5, 59, -9, 31, 53, 19, -126, - -59, -20, 62, 8, 32, 64, 49, -105, -59, -16, 58, 2, 17, 50, 45, -102, - -83, -31, 46, 24, 15, 53, 69, -65, -86, -24, 42, 25, -4, 45, 64, -58, - -112, -37, 30, 41, -6, 51, 75, -24, -105, -32, 26, 41, -19, 39, 62, -14, - -117, -51, 7, 54, -13, 35, 78, 19, -105, -47, 9, 58, -19, 21, 69, 18, - -113, -66, -10, 52, -10, 14, 75, 42, -83, -60, -5, 52, 0, -3, 69, 43, - -83, -83, -21, 35, 17, -13, 72, 57, -54, -82, -10, 29, 28, -29, 65, 52, - -45, -98, -21, 1, 40, -30, 64, 63, -7, -94, -9, 1, 51, -36, 51, 54, - -8, -115, -23, -22, 47, -30, 48, 65, 24, -90, -13, -15, 46, -26, 30, 55, - 21, -100, -37, -26, 31, -10, 24, 65, 41, -71, -35, -10, 25, -2, 4, 58, - 32, -69, -61, -16, 2, 8, 1, 67, 42, -33, -56, -1, -1, 20, -13, 59, - 33, -28, -82, -10, -20, 22, -15, 64, 40, -1, -70, 0, -17, 29, -22, 53, - 33, 1, -84, -15, -29, 22, -19, 53, 43, 22, -64, -7, -19, 25, -18, 37, - 38, 16, -73, -30, -33, 11, -14, 32, 50, 31, -45, -17, -15, 16, -4, 16, - 43, 23, -49, -43, -30, -2, -1, 8, 52, 36, -25, -32, -13, -1, 11, -1, - 42, 30, -25, -49, -25, -18, 10, -7, 44, 40, -2, -34, -11, -15, 21, -6, - 29, 33, -5, -54, -29, -30, 13, -6, 29, 46, 15, -32, -10, -18, 16, -1, - 13, 36, 9, -45, -30, -32, 0, 1, 12, 43, 28, -23, -16, -16, 6, 9, - 2, 33, 22, -33, -34, -27, -11, 2, 1, 35, 36, -14, -16, -11, -5, 8, - 3, 24, 32, -19, -30, -29, -17, -4, 1, 20, 43, -5, -14, -13, -4, 0, - 7, 11, 39, -9, -23, -28, -17, -16, 1, 9, 44, 3, -7, -15, -4, -4, - 7, 5, 38, 3, -20, -30, -19, -19, -8, 0, 40, 17, -6, -7, -3, -2, - -1, 4, 32, 16, -20, -21, -26, -17, -18, -3, 28, 32, -7, -1, -9, 4, - -9, 3, 22, 34, -19, -14, -27, -13, -27, -10, 16, 44, -8, 5, -6, 3, - -12, 1, 13, 40, -12, -11, -25, -17, -27, -15, 5, 45, 4, 2, 0, 0, - -9, -5, 6, 38, 2, -17, -14, -20, -24, -23, 0, 38, 19, -4, 11, -4, - -7, -10, 4, 27, 20, -20, -9, -23, -22, -30, -6, 26, 35, -8, 12, 2, - -4, -15, 2, 20, 32, -16, -7, -15, -22, -37, -14, 18, 39, -3, 5, 8, - -5, -18, -2, 18, 34, -4, -14, -4, -21, -35, -25, 15, 36, 8, -4, 21, - -5, -17, -14, 23, 26, 9, -22, 4, -25, -32, -40, 14, 27, 24, -12, 30, - 1, -8, -26, 24, 21, 19, -28, 9, -20, -28, -51, 7, 23, 30, -15, 27, - 9, -7, -32, 16, 25, 23, -21, 4, -8, -27, -50, -10, 25, 29, -9, 13, - 24, -7, -28, -3, 34, 20, -12, -9, 10, -31, -43, -29, 30, 23, 2, -3, - 38, -9, -19, -19, 39, 18, -1, -20, 25, -29, -36, -42, 26, 17, 12, -14, - 43, -3, -15, -29, 35, 19, 6, -28, 27, -18, -36, -48, 16, 17, 15, -15, - 39, 12, -13, -29, 24, 24, 9, -25, 19, -1, -39, -50, 1, 18, 11, -11, - 25, 26, -14, -26, 12, 32, 10, -17, 6, 17, -33, -48, -14, 20, 6, -7, - 11, 36, -9, -26, -1, 34, 11, -9, -4, 25, -25, -49, -26, 19, 4, -4, - 5, 41, 3, -21, -8, 31, 12, -7, -11, 23, -13, -47, -37, 13, 6, -3, - 1, 40, 14, -17, -14, 26, 16, -2, -12, 20, -3, -40, -44, 2, 6, -2, - -4, 35, 24, -9, -19, 19, 17, 2, -13, 16, 5, -29, -48, -7, 4, 3, - -7, 28, 28, 2, -21, 13, 14, 9, -14, 11, 9, -15, -49, -17, -3, 6, - -11, 20, 30, 14, -23, 7, 12, 14, -11, 6, 10, -4, -46, -24, -10, 6, - -8, 11, 29, 24, -15, 0, 11, 14, -4, -2, 11, 3, -37, -36, -13, -3, - -2, 2, 28, 27, -2, -10, 14, 9, 7, -8, 13, 3, -21, -42, -14, -14, - 4, -6, 24, 24, 13, -16, 12, 3, 14, -8, 12, 4, -7, -44, -18, -20, - 5, -6, 18, 22, 23, -13, 6, 2, 13, -4, 5, 5, 1, -36, -26, -20, - -1, -1, 10, 23, 25, -3, -4, 5, 9, 5, -2, 8, 1, -24, -36, -18, - -10, 4, 1, 24, 23, 11, -9, 8, 4, 12, -7, 9, 1, -12, -40, -19, - -16, 4, -4, 21, 21, 16, -9, 6, 2, 13, -4, 6, 6, -4, -33, -24, - -18, -2, -2, 10, 21, 18, 0, -3, 3, 8, 6, -1, 8, 0, -18, -31, - -19, -10, 1, 0, 19, 20, 13, -5, 4, 5, 12, -4, 5, 2, -7, -34, - -24, -17, 1, -4, 13, 20, 21, -3, 2, 5, 14, 0, 2, 4, 0, -26, - -28, -20, -6, -4, 4, 18, 23, 6, -3, 5, 9, 7, -1, 6, 3, -14, - -33, -22, -14, -1, -1, 16, 22, 17, -4, 4, 4, 10, -2, 4, 3, -4, - -30, -25, -19, -2, -2, 11, 20, 23, 0, 0, 2, 10, 3, 1, 4, 1, - -23, -30, -22, -8, -1, 4, 19, 23, 10, -3, 4, 6, 8, -2, 5, 2, - -13, -33, -23, -15, 0, -1, 16, 21, 16, -3, 3, 4, 11, 0, 5, 6, - -3, -27, -25, -19, -4, -2, 9, 19, 19, 2, -3, 2, 8, 6, -1, 8, - 0, 0, 2, 33, 42, 58, 71, 79, 85, 88, 91, 94, 79, 95, 82, 106, - 86, 105, 47, 16, -6, 13, 44, 31, -15, -38, -36, 20, 70, 41, 48, 58, - 24, -57, -127, -119, -102, -126, -128, -111, -78, -82, -88, -87, -60, -66, -98, -104, - -99, -97, -99, -104, -101, -88, -87, -91, -61, -27, -34, -54, -55, -45, -24, -10, - -5, -4, 5, 34, 63, 101, 94, 78, 52, 51, 52, 74, 81, 77, 59, 46, - 17, 7, 39, 53, 47, 42, 66, 83, 73, 52, 28, 22, 11, 8, 11, 0, - -15, -23, -15, -14, -6, 16, 46, 62, 71, 76, 90, 102, 103, 103, 101, 100, - 90, 75, 63, 67, 49, 37, 28, 12, 5, 6, 15, 15, 8, -7, -12, -4, - -10, -28, -24, -17, -25, -50, -64, -81, -103, -116, -116, -113, -95, -72, -54, -41, - -47, -65, -65, -50, -33, -24, -7, 11, 8, -4, -13, -28, -51, -75, -90, -91, - -90, -90, -87, -88, -83, -84, -82, -81, -81, -76, -65, -71, -85, -84, -79, -83, - -81, -77, -72, -70, -65, -66, -66, -65, -66, -68, -61, -56, -51, -36, -13, -3, - -5, -8, -12, -12, 3, 16, 21, 31, 50, 69, 77, 82, 90, 102, 110, 114, - 116, 117, 118, 119, 116, 112, 109, 105, 98, 99, 103, 102, 91, 73, 64, 63, - 61, 57, 51, 40, 24, 35, 57, 75, 84, 79, 65, 37, 4, -26, -45, -57, - -54, -46, -45, -54, -67, -67, -48, -16, 15, 35, 44, 45, 44, 45, 46, 38, - 23, 2, -15, -34, -52, -60, -70, -77, -80, -79, -74, -77, -84, -86, -80, -72, - -68, -72, -80, -87, -92, -96, -101, -104, -104, -101, -93, -90, -89, -86, -85, -84, - -83, -82, -81, -79, -77, -76, -73, -71, -66, -62, -55, -39, -31, -27, -25, -31, - -37, -46, -51, -53, -54, -48, -45, -38, -20, 3, 24, 35, 39, 32, 16, 5, - 3, 0, -6, -13, -13, -11, -2, 14, 28, 40, 50, 53, 50, 55, 64, 74, - 90, 105, 108, 112, 106, 104, 109, 112, 123, 127, 127, 127, 127, 127, 127, 118, - 113, 107, 110, 114, 111, 104, 101, 101, 102, 103, 99, 99, 89, 73, 53, 35, - 20, 0, -22, -43, -63, -77, -82, -76, -65, -48, -36, -29, -24, -25, -29, -37, - -40, -49, -59, -67, -73, -76, -78, -79, -75, -73, -74, -75, -68, -52, -44, -30, - -19, -9, -6, -9, -13, -24, -33, -35, -31, -30, -35, -40, -44, -45, -51, -53, - -54, -50, -50, -47, -42, -50, -55, -54, -56, -56, -54, -54, -49, -48, -41, -32, - -28, -18, -13, -5, 6, 18, 33, 49, 60, 71, 78, 88, 95, 97, 93, 88, - 91, 93, 97, 98, 97, 94, 91, 85, 81, 72, 70, 66, 61, 60, 64, 66, - 74, 83, 92, 102, 108, 109, 107, 102, 97, 95, 91, 87, 80, 74, 67, 62, - 61, 58, 61, 61, 57, 53, 43, 35, 27, 25, 24, 20, 20, 22, 27, 34, - 36, 32, 21, 8, -3, -10, -16, -18, -16, -16, -19, -15, -11, -11, -12, -20, - -34, -45, -59, -72, -80, -89, -94, -95, -102, -111, -114, -111, -111, -108, -106, -104, - -101, -98, -93, -90, -86, -86, -83, -82, -81, -79, -76, -73, -70, -72, -78, -81, - -79, -79, -72, -60, -43, -31, -25, -27, -34, -37, -40, -42, -41, -39, -36, -34, - -25, -12, -4, 5, 12, 16, 17, 15, 13, 6, -4, -7, -8, -6, -1, 4, - 7, 9, 12, 16, 19, 19, 22, 28, 29, 28, 29, 30, 34, 40, 49, 57, - 71, 78, 85, 92, 96, 95, 89, 85, 86, 93, 99, 104, 102, 100, 94, 85, - 77, 73, 69, 66, 63, 60, 60, 59, 57, 52, 47, 41, 31, 18, 6, -3, - -7, -11, -12, -14, -18, -22, -23, -22, -24, -30, -37, -41, -44, -50, -56, -64, - -67, -65, -62, -58, -58, -58, -59, -61, -62, -66, -72, -78, -79, -77, -73, -68, - -64, -61, -56, -53, -54, -52, -52, -57, -63, -69, -70, -68, -65, -62, -59, -57, - -56, -58, -60, -61, -63, -64, -62, -61, -60, -58, -54, -49, -45, -42, -39, -36, - -32, -28, -22, -13, -7, -3, 2, 13, 28, 41, 52, 64, 71, 73, 73, 70, - 64, 61, 60, 64, 66, 65, 66, 64, 61, 60, 62, 65, 64, 66, 67, 67, - 68, 66, 64, 66, 68, 73, 76, 74, 72, 66, 58, 52, 46, 42, 38, 38, - 41, 47, 52, 52, 48, 45, 42, 40, 38, 34, 29, 27, 26, 28, 29, 28, - 29, 30, 31, 28, 24, 21, 19, 17, 14, 10, 6, 3, -4, -9, -15, -19, - -26, -33, -40, -49, -55, -60, -65, -70, -73, -72, -72, -71, -70, -71, -75, -78, - -81, -83, -86, -86, -85, -84, -82, -80, -77, -72, -69, -66, -63, -61, -61, -61, - -61, -61, -60, -58, -53, -48, -42, -36, -30, -28, -30, -32, -33, -32, -31, -28, - -22, -18, -10, -5, 0, 3, 6, 11, 16, 19, 22, 24, 26, 27, 29, 34, - 40, 46, 48, 48, 48, 45, 40, 36, 33, 31, 33, 35, 40, 48, 55, 62, - 68, 73, 76, 78, 78, 77, 79, 82, 85, 87, 87, 87, 86, 86, 86, 83, - 78, 71, 63, 55, 48, 44, 39, 36, 36, 36, 35, 32, 28, 24, 18, 13, - 9, 6, 4, 1, -2, -5, -11, -17, -20, -21, -20, -21, -24, -28, -32, -34, - -33, -33, -35, -37, -40, -43, -47, -52, -58, -63, -69, -74, -77, -80, -81, -82, - -81, -80, -77, -74, -69, -62, -54, -48, -48, -51, -54, -57, -57, -57, -56, -55, - -55, -56, -57, -56, -55, -54, -54, -54, -54, -52, -49, -45, -41, -38, -34, -31, - -29, -27, -24, -20, -17, -11, -7, -3, 0, 5, 10, 16, 22, 27, 31, 34, - 38, 42, 44, 45, 48, 50, 52, 57, 61, 64, 64, 65, 65, 63, 60, 57, - 55, 55, 58, 61, 63, 65, 67, 69, 71, 74, 77, 79, 79, 77, 74, 71, - 68, 66, 63, 60, 57, 55, 51, 46, 40, 36, 30, 25, 20, 17, 16, 17, - 16, 14, 12, 10, 7, 3, -1, -5, -11, -15, -17, -18, -18, -19, -21, -25, - -29, -32, -33, -33, -36, -39, -43, -46, -50, -53, -56, -58, -59, -60, -61, -62, - -63, -65, -66, -67, -68, -70, -72, -72, -70, -67, -63, -61, -60, -60, -58, -56, - -54, -53, -52, -52, -52, -51, -50, -49, -47, -45, -43, -40, -37, -35, -34, -32, - -29, -25, -21, -18, -14, -9, -4, 0, 4, 7, 11, 15, 18, 21, 25, 28, - 33, 37, 41, 44, 46, 47, 47, 46, 46, 45, 43, 42, 42, 43, 46, 48, - 49, 50, 52, 55, 59, 62, 65, 66, 67, 68, 69, 69, 70, 72, 74, 74, - 73, 72, 71, 69, 65, 61, 57, 53, 50, 46, 43, 38, 35, 32, 28, 23, - 19, 17, 17, 15, 13, 11, 9, 5, 1, -3, -6, -9, -12, -14, -17, -19, - -23, -27, -31, -35, -38, -40, -43, -46, -48, -52, -55, -57, -61, -64, -66, -67, - -68, -69, -70, -70, -70, -69, -69, -70, -71, -70, -66, -62, -59, -55, -52, -50, - -46, -43, -41, -38, -36, -35, -35, -34, -33, -33, -33, -33, -31, -30, -28, -26, - -25, -24, -21, -20, -20, -19, -19, -18, -17, -16, -15, -13, -11, -8, -3, 2, - 9, 15, 21, 27, 33, 38, 41, 45, 48, 51, 53, 55, 56, 56, 56, 56, - 56, 56, 56, 55, 57, 58, 60, 61, 62, 62, 64, 66, 68, 69, 71, 72, - 73, 74, 72, 70, 67, 63, 60, 57, 54, 50, 46, 41, 36, 31, 27, 23, - 19, 16, 14, 12, 11, 9, 8, 5, 2, -1, -4, -8, -10, -15, -18, -19, - -20, -22, -22, -23, -23, -24, -26, -29, -31, -33, -35, -36, -37, -38, -41, -44, - -46, -48, -50, -52, -54, -56, -59, -61, -63, -63, -64, -65, -64, -63, -62, -61, - -60, -59, -58, -57, -58, -57, -57, -55, -53, -50, -49, -47, -46, -43, -40, -37, - -33, -31, -28, -26, -23, -20, -16, -14, -12, -9, -5, -2, 1, 5, 9, 13, - 17, 21, 24, 26, 29, 32, 35, 37, 37, 38, 39, 41, 43, 44, 45, 46, - 48, 50, 51, 53, 52, 52, 50, 48, 47, 46, 46, 46, 46, 47, 48, 49, - 51, 54, 56, 58, 60, 61, 62, 62, 62, 61, 59, 57, 55, 54, 53, 52, - 51, 49, 46, 41, 36, 31, 27, 22, 18, 14, 11, 9, 6, 3, 0, -2, - -5, -8, -11, -16, -20, -25, -28, -31, -34, -37, -39, -41, -41, -42, -42, -42, - -43, -45, -46, -47, -49, -50, -52, -54, -56, -57, -58, -60, -61, -63, -64, -64, - -64, -63, -63, -61, -59, -58, -57, -55, -54, -53, -52, -52, -51, -50, -49, -47, - -46, -45, -44, -42, -40, -38, -35, -32, -30, -28, -25, -22, -19, -17, -15, -12, - -9, -5, -1, 3, 7, 11, 15, 19, 23, 25, 27, 30, 34, 36, 37, 38, - 39, 40, 42, 44, 45, 46, 47, 49, 50, 52, 53, 52, 51, 49, 47, 47, - 46, 46, 46, 47, 47, 48, 50, 52, 55, 57, 59, 61, 62, 62, 62, 61, - 60, 58, 56, 54, 54, 53, 51, 50, 47, 44, 39, 34, 29, 25, 20, 16, - 13, 10, 7, 4, 2, -1, -3, -6, -9, -14, -18, -22, -26, -30, -33, -35, - -38, -40, -41, -41, -42, -42, -43, -44, -46, -47, -48, -49, -51, -53, -55, -56, - -57, -59, -60, -62, -63, -64, -64, -63, -63, -62, -60, -59, -57, -56, -55, -53, - -52, -52, -51, -51, -50, -48, -46, -45, -44, -43, -41, -39, -36, -34, -31, -29, - -26, -24, -21, -16, -1, -2, -1, -3, 1, -2, -2, -4, 2, 6, 2, -2, - -2, 0, 7, 8, 4, -2, -2, 6, 5, 6, 0, -2, 5, 12, 10, 0, - -5, -3, 5, 10, 9, -7, -8, -7, 5, 8, 3, -9, -13, -5, 3, 5, - -5, -9, -4, 0, 6, 0, -4, -11, -7, 3, 4, 0, -5, 0, -1, 5, - 1, 4, -6, -5, -3, 12, 9, -2, -10, 4, 11, 8, -4, -5, -9, -6, - 1, 19, 13, -2, -22, 4, 9, 6, -26, -4, 3, 12, -9, 0, 2, 0, - -15, 4, 8, -8, -20, 0, 15, 8, -13, -2, -4, -4, -2, 12, 3, -14, - -18, 1, 21, 13, -9, -25, -8, 17, 15, 5, -14, -17, 5, 19, 13, -15, - -17, -3, 10, 20, 10, -27, -19, 5, 11, 12, 3, -13, -17, -1, 6, -3, - -2, 1, -1, -11, -17, 7, 7, -7, -7, -13, 9, 0, -5, 9, -5, -9, - 6, 5, -2, -16, -5, 15, 17, -10, -20, 1, 11, 14, -1, 1, 10, -11, - -8, -1, 18, 13, -2, -12, 1, -16, -2, 34, 27, -28, -42, -3, 42, 26, - -14, -39, -19, 7, 26, 25, -16, -55, -26, 32, 57, 4, -69, -48, 6, 75, - 29, -51, -67, -32, 51, 56, 7, -57, -75, 14, 63, 43, -29, -82, -27, 31, - 56, 28, -43, -81, -31, 59, 85, 1, -100, -59, 8, 102, 41, -42, -92, -52, - 72, 79, 29, -103, -85, -1, 117, 49, -54, -113, 7, 24, 94, -28, -39, -84, - 39, 28, 61, -44, -28, -67, 61, 23, 35, -40, -23, -37, 6, 38, 69, -42, - -61, -53, 58, 86, 2, -93, -24, 19, 72, 17, -19, -87, 45, 10, 64, -13, - -45, -57, 38, 48, 36, -51, -35, -37, 46, 26, 37, -73, -28, -12, 44, 22, - 27, -84, -22, 6, 70, 17, -24, -82, -7, 26, 79, 9, -63, -78, 6, 90, - 68, -55, -118, -3, 92, 62, -10, -73, -50, 14, 110, 15, -5, -118, 5, 69, - 53, 22, -81, -45, 29, 47, 80, -69, -28, -52, 58, 66, -1, -25, -59, -22, - 107, 2, 43, -108, -13, 20, 59, 56, -58, -66, -7, 34, 114, -42, -63, -50, - 42, 69, 44, -63, -37, -50, 114, 27, 18, -49, -81, 20, 74, 51, -14, -102, - -4, 40, 70, 38, -64, -73, 11, 60, 76, -41, -30, -78, 42, 46, 68, -63, - -48, -56, 89, 43, 28, -100, -53, 41, 60, 11, -6, -76, -16, 44, 52, 9, - -67, -48, 10, 69, 30, -1, -84, -4, 36, 72, -23, -22, -27, -33, 55, 74, - -11, -86, -1, 27, 36, 31, -7, -101, 49, 5, 66, -7, -46, -39, 9, 64, - 44, -63, -33, -22, 55, 23, 43, -79, -24, 5, 29, 54, -14, -59, -53, 63, - 32, 20, -34, -32, -36, 93, -2, 20, -35, -38, 18, 51, 61, -94, 15, -14, - 17, 69, 5, -87, 16, 28, 34, 1, 34, -57, -53, 118, -22, 34, -10, -71, - 23, 70, 25, -29, -7, -19, -3, 117, -33, -12, -21, -19, 43, 84, -38, -57, - 33, 0, 32, 41, -7, -103, 85, 2, 2, 58, -14, -103, 103, 7, -17, 34, - -32, -59, 71, 51, -78, 76, -65, -30, 63, 48, -66, 9, -11, -28, 52, 50, - -72, -37, 73, -61, 75, 7, -51, -44, 73, -3, -11, 40, -78, 7, 63, -15, - -16, 30, -53, 12, 38, 12, -42, 39, -63, 47, 23, 0, -23, -11, 8, -25, - 60, -37, -15, -3, -9, 12, 27, -14, -40, 22, 12, 14, 15, -31, -14, 15, - 23, -12, 14, -31, 19, 13, 32, -39, 27, -51, 43, 8, 0, 5, -26, 16, - 4, 19, -24, 17, -18, 6, -2, 49, -67, 39, -1, -30, 46, -13, -16, -9, - 21, -17, 27, 2, -34, 19, -3, 24, 8, -38, 13, -10, 22, 15, -34, 2, - 4, -10, 18, 14, -15, -15, 26, -12, 28, -21, 0, -6, 0, 7, 0, -15, - 6, -2, -18, 9, 8, -18, -15, 59, -94, 81, -40, -24, 14, -18, 25, -15, - 4, -21, -9, 24, -20, 3, 3, -52, 56, -29, 4, 5, -51, 45, -50, 73, - -75, 13, 17, -48, 38, -10, -16, 5, 4, -22, 3, 17, -27, -23, 42, -30, - -5, 41, -53, 10, 23, -28, 1, 29, -47, 9, 13, -3, -18, 9, -13, -11, - 18, 12, -53, 28, 1, -41, 41, 7, -61, 32, 0, -34, 16, 9, -74, 45, - -23, -33, 22, 39, -104, 49, 23, -96, 83, 5, -46, 36, -4, -45, 54, -25, - -26, 21, 2, -39, 51, -25, -25, 43, -22, -25, 30, -2, -32, 39, 14, -69, - 42, 22, -78, 60, 23, -83, 33, 44, -74, 19, 69, -113, 43, 53, -88, 51, - 17, -74, 42, 1, -38, 4, 39, -67, 12, 35, -39, -23, 73, -82, -5, 67, - -71, -5, 42, -36, -48, 78, -64, -4, 40, -48, -7, 50, -80, 17, 31, -56, - 9, 6, -18, -36, 43, -37, -29, 47, -47, -18, 33, -29, -27, 40, -30, -37, - 51, -46, -25, 61, -66, 7, 28, -48, 30, -15, -8, -6, 17, -14, -9, 26, - -23, 4, 9, -15, 12, -9, 16, -22, 7, 22, -51, 59, -29, -23, 54, -49, - 6, 20, -19, -11, 17, -3, -30, 32, -27, -5, 16, -28, 4, 4, -27, 32, - -46, 27, -18, -8, 11, -25, 18, -6, -17, 10, 1, -18, 24, -33, 10, 8, - -12, -10, 21, -19, 0, 8, -18, 14, 11, -44, 39, -22, -4, -6, 11, -15, - -13, 17, -17, -6, 13, -22, -1, 7, -5, -8, 0, 4, -24, 29, -23, 0, - 20, -25, -8, 30, -34, 31, -29, 11, -9, 21, -15, -1, 10, -9, -11, 32, - -23, -2, -14, 27, -19, 10, -4, -23, 14, 13, -45, 48, -44, 11, -4, -7, - -3, 4, -2, -34, -8, 37, -41, 20, -24, -4, -10, 2, 4, 12, -28, -30, - 9, 32, -16, 6, -46, -23, 60, 0, -22, -3, -23, -15, 48, 12, -34, -17, - -18, 10, 46, -1, -56, -8, 12, 9, 18, 13, -72, -3, 26, 9, 28, -14, - -89, 15, 67, -18, 1, -19, -52, 45, 26, -8, -5, -25, -25, 36, 38, -13, - -36, -18, -6, 55, 23, -51, -14, 4, 6, 25, 24, -41, -44, 38, 19, 10, - 10, -59, -14, 42, 1, 6, -8, -43, -1, 43, 10, -30, -10, -36, 18, 35, - -20, -14, -11, -19, 9, 20, -5, -22, -9, -6, 13, 26, -30, -23, 4, 1, - 20, 9, -20, -22, 3, -1, 17, 28, -26, -25, 16, -2, -4, 12, -10, -16, - 24, -2, -18, 17, -27, -1, 36, -6, -7, -4, -26, 6, 29, -3, -17, -6, - -4, 18, 18, -26, -10, -4, 6, 30, -1, -6, -24, 0, 24, 12, 2, -16, - -25, 13, 32, -3, -4, -3, -24, 15, 16, -7, 8, -20, -13, 36, 9, -24, - -11, -10, 10, 20, -1, -13, -10, -9, 20, 17, -12, -9, -15, 9, 20, -11, - -14, -6, 5, 10, 6, 5, -7, -11, 7, 19, 1, 3, -11, -10, 24, 14, - -16, 2, -9, 11, 14, 7, -1, -11, -4, 15, 24, 3, -24, -4, 4, 15, - 13, -3, -15, 0, 15, 8, 2, 0, -19, 16, 12, -1, 7, -13, -2, 18, - 3, -3, 5, -9, -10, 12, 9, -2, 8, -9, 4, 9, 6, 1, -8, 10, - 4, -2, 11, -14, 3, 5, 1, 9, 4, -15, 0, 10, 1, 5, -4, -10, - 3, 7, -1, 8, -13, 1, 4, 10, 6, -9, -3, 1, 6, 14, -3, -4, - 4, -10, 10, 13, -1, -4, 5, -3, 10, 13, -13, 4, 7, 1, 8, -1, - 1, 4, 5, 4, 11, -5, -2, 1, 8, 6, 1, 3, -1, -5, 11, 3, - -3, 4, -5, -1, 17, -4, -2, 6, -10, 10, 10, -4, 2, 3, -10, 10, - 5, -2, -2, -1, 4, 3, -1, -2, -4, 1, 6, -4, 6, -4, -10, 8, - 2, -4, 6, -4, -4, 12, -2, 2, 6, -9, 3, 2, 0, 7, -5, -3, - 3, 2, 4, -4, -2, 7, 3, 5, 9, -3, 1, 12, -3, 7, 6, -9, - 4, 9, -4, 12, 1, -7, 9, 2, 1, 10, -3, 1, 0, 0, 8, 0, - -1, 5, -2, 8, 1, -3, 10, 2, 0, 11, -4, -1, 6, -3, 2, 3, - -5, 4, 0, -5, 5, -3, 1, 3, 0, 4, -3, -3, 4, -2, -2, 5, - -2, -1, 6, -5, 2, 3, -4, 4, -2, -3, 11, -8, 0, 5, -1, 1, - 0, -3, 4, 2, 2, 6, -2, 4, 5, -3, 4, 7, -4, 11, -1, 0, - 3, 0, 3, 7, -2, 5, 1, 0, 6, 3, 2, 4, -1, 2, 6, 0, - 3, 5, -4, 6, 0, 2, 7, -4, -1, 2, -2, 7, 1, -1, 1, -2, - 2, 4, -5, 0, 4, -1, 2, -1, -2, 1, -2, 3, 2, -3, 3, -1, - -4, 5, -2, -2, 3, 0, -1, 2, -5, 2, 1, -4, 0, 1, -3, 5, - -2, 2, 2, -3, 1, 3, -2, 3, 1, -2, 4, 1, 2, 5, -2, 3, - 1, 2, 5, 0, -1, 4, 0, 1, 4, 2, 4, 4, -2, 0, 2, 3, - 5, 0, 0, 0, 1, 5, -2, -3, 4, 0, 1, 2, -2, -4, -4, -5, - -6, -7, -8, -9, -10, -11, -12, -13, -13, -14, -16, -18, -21, -25, -29, -34, - -36, -38, -39, -40, -42, -44, -47, -50, -53, -56, -58, -59, -58, -55, -50, -44, - -38, -31, -24, -18, -13, -9, -6, -3, 0, 3, 6, 9, 13, 17, 21, 27, - 33, 42, 53, 63, 74, 83, 91, 98, 104, 108, 111, 113, 115, 118, 119, 121, - 123, 125, 126, 127, 127, 127, 127, 126, 126, 126, 126, 127, 127, 127, 127, 127, - 127, 127, 126, 125, 123, 121, 118, 114, 111, 107, 104, 101, 100, 99, 98, 98, - 98, 98, 98, 99, 98, 98, 97, 95, 92, 88, 81, 73, 63, 54, 46, 39, - 33, 29, 27, 25, 24, 22, 20, 18, 14, 10, 5, 0, -5, -8, -8, -7, - -3, 2, 8, 14, 19, 23, 26, 28, 29, 30, 31, 32, 32, 31, 30, 28, - 24, 20, 14, 9, 4, -1, -4, -7, -9, -10, -12, -13, -15, -17, -19, -22, - -24, -25, -25, -23, -21, -19, -17, -15, -15, -14, -15, -15, -16, -17, -17, -17, - -16, -16, -16, -17, -19, -22, -25, -30, -35, -39, -44, -47, -50, -53, -56, -58, - -61, -63, -64, -65, -65, -63, -60, -55, -49, -43, -38, -34, -32, -31, -31, -32, - -33, -35, -36, -37, -37, -36, -35, -34, -34, -34, -36, -39, -43, -49, -55, -61, - -67, -72, -77, -81, -85, -88, -90, -92, -94, -94, -95, -94, -94, -94, -94, -95, - -96, -98, -100, -102, -104, -105, -107, -108, -108, -109, -110, -110, -110, -109, -109, -109, - -108, -108, -109, -109, -109, -109, -108, -108, -107, -106, -106, -105, -105, -105, -105, -105, - -105, -104, -103, -101, -98, -93, -88, -82, -76, -70, -64, -58, -52, -47, -42, -38, - -34, -31, -29, -27, -25, -22, -18, -13, -7, -1, 6, 13, 20, 26, 32, 37, - 41, 45, 48, 51, 55, 58, 63, 68, 73, 77, 82, 85, 89, 91, 94, 96, - 97, 98, 99, 99, 99, 100, 100, 100, 101, 101, 101, 101, 101, 101, 99, 97, - 95, 93, 90, 87, 84, 81, 77, 73, 67, 60, 51, 40, 29, 17, 6, -5, - -14, -23, -31, -38, -45, -52, -58, -65, -70, -75, -80, -84, -87, -90, -92, -94, - -95, -96, -97, -98, -100, -101, -102, -102, -103, -103, -104, -104, -103, -102, -100, -97, - -93, -89, -86, -82, -79, -77, -75, -72, -70, -67, -63, -59, -53, -47, -40, -33, - -26, -20, -14, -9, -6, -3, 0, 3, 6, 9, 13, 17, 21, 26, 31, 37, - 44, 51, 58, 64, 70, 75, 79, 83, 86, 88, 90, 92, 93, 95, 96, 97, - 98, 100, 100, 101, 102, 102, 102, 102, 102, 102, 102, 102, 102, 103, 103, 103, - 102, 102, 102, 101, 100, 98, 96, 94, 92, 90, 89, 88, 88, 87, 87, 87, - 87, 87, 86, 85, 84, 82, 79, 76, 72, 67, 61, 55, 49, 43, 39, 35, - 32, 30, 29, 27, 25, 24, 21, 18, 15, 12, 8, 5, 3, 3, 4, 6, - 9, 12, 15, 18, 21, 23, 25, 27, 28, 30, 31, 31, 31, 30, 28, 25, - 22, 18, 14, 10, 7, 5, 3, 1, 0, -2, -4, -6, -9, -11, -14, -16, - -17, -17, -16, -14, -12, -11, -9, -9, -9, -10, -11, -12, -13, -14, -15, -15, - -16, -16, -17, -19, -22, -26, -30, -34, -38, -42, -45, -48, -50, -52, -53, -54, - -55, -56, -56, -55, -53, -50, -46, -42, -38, -35, -32, -31, -30, -31, -31, -33, - -34, -35, -36, -36, -36, -35, -35, -35, -36, -38, -41, -45, -49, -54, -59, -64, - -68, -73, -76, -80, -83, -86, -88, -89, -90, -91, -91, -91, -92, -92, -93, -95, - -96, -98, -100, -101, -102, -103, -104, -105, -105, -105, -105, -105, -105, -105, -105, -105, - -105, -105, -105, -105, -104, -104, -103, -102, -102, -101, -100, -100, -100, -99, -99, -99, - -98, -96, -94, -91, -86, -82, -76, -71, -65, -59, -53, -48, -42, -37, -32, -28, - -25, -22, -19, -16, -13, -8, -3, 3, 9, 16, 22, 28, 35, 40, 45, 49, - 53, 56, 60, 63, 67, 71, 76, 80, 85, 88, 92, 94, 97, 99, 100, 102, - 103, 103, 104, 104, 104, 104, 105, 105, 105, 105, 105, 104, 103, 101, 99, 97, - 94, 91, 87, 84, 80, 76, 71, 65, 57, 48, 39, 28, 18, 8, -2, -11, - -19, -27, -34, -41, -47, -54, -60, -65, -70, -75, -79, -82, -85, -87, -89, -91, - -92, -94, -95, -96, -97, -98, -99, -100, -100, -100, -100, -100, -98, -96, -94, -90, - -87, -84, -81, -78, -76, -73, -71, -68, -65, -61, -57, -52, -46, -40, -33, -27, - -21, -15, -11, -7, -4, 0, 3, 7, 11, 15, 20, 24, 29, 35, 41, 48, - 54, 61, 67, 72, 77, 81, 85, 88, 90, 92, 94, 95, 97, 98, 99, 101, - 102, 103, 104, 104, 104, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 104, 104, 103, 101, 99, 98, 96, 95, 93, 93, 92, 92, 91, 91, 90, - 90, 88, 87, 86, 84, 81, 78, 74, 69, 64, 59, 54, 49, 45, 42, 39, - 37, 35, 33, 31, 29, 27, 24, 21, 18, 15, 13, 11, 11, 12, 13, 15, - 17, 20, 22, 24, 25, 27, 28, 29, 30, 31, 31, 31, 30, 28, 26, 23, - 20, 17, 14, 11, 9, 8, 6, 5, 3, 1, -1, -4, -6, -8, -10, -11, - -11, -11, -10, -9, -8, -8, -8, -9, -10, -11, -13, -14, -15, -16, -17, -17, - -18, -20, -22, -25, -28, -31, -35, -38, -41, -44, -46, -47, -49, -50, -51, -52, - -52, -52, -51, -49, -47, -44, -40, -38, -35, -33, -33, -32, -33, -33, -34, -35, - -36, -37, -38, -38, -38, -38, -39, -40, -42, -45, -49, -53, -57, -61, -65, -69, - -73, -76, -79, -82, -85, -87, -88, -89, -90, -91, -91, -92, -93, -94, -95, -97, - -98, -99, -100, -101, -102, -103, -103, -104, -104, -104, -104, -104, -104, -104, -104, -104, - -103, -103, -103, -102, -102, -101, -100, -99, -99, -98, -97, -97, -96, -96, -95, -94, - -92, -89, -86, -82, -77, -72, -67, -61, -56, -50, -45, -39, -34, -29, -25, -21, - -18, -14, -11, -5, 4, 8, 14, 19, 25, 31, 37, 42, 47, 52, 57, 61, - 65, 69, 72, 76, 79, 83, 86, 89, 92, 95, 97, 99, 101, 102, 104, 104, - 105, 106, 106, 106, 106, 106, 106, 105, 104, 104, 103, 101, 99, 97, 95, 92, - 89, 85, 81, 77, 73, 68, 62, 57, 50, 43, 35, 28, 19, 12, 4, -4, - -11, -18, -25, -32, -38, -44, -50, -55, -61, -65, -69, -73, -77, -80, -82, -85, - -87, -89, -91, -92, -93, -95, -95, -96, -97, -97, -97, -96, -96, -95, -93, -92, - -90, -88, -86, -84, -82, -79, -77, -74, -71, -68, -64, -60, -55, -51, -46, -41, - -36, -31, -26, -21, -16, -11, -7, -2, 3, 8, 14, 19, 25, 30, 36, 42, - 47, 53, 58, 63, 68, 72, 76, 79, 82, 85, 87, 89, 91, 93, 95, 96, - 98, 99, 101, 102, 103, 103, 104, 105, 105, 105, 106, 106, 106, 106, 106, 106, - 106, 105, 105, 105, 104, 103, 103, 102, 101, 100, 99, 99, 98, 97, 96, 95, - 93, 92, 91, 89, 87, 85, 82, 79, 76, 73, 70, 67, 63, 60, 58, 55, - 53, 50, 48, 46, 44, 41, 39, 37, 34, 32, 31, 29, 28, 28, 27, 28, - 28, 28, 28, 29, 29, 29, 29, 30, 30, 30, 29, 29, 28, 27, 26, 25, - 23, 22, 20, 19, 17, 16, 15, 13, 12, 10, 8, 6, 4, 2, 1, -1, - -2, -4, -5, -6, -7, -9, -10, -12, -13, -15, -17, -19, -21, -22, -24, -26, - -27, -29, -31, -32, -34, -36, -38, -40, -42, -43, -45, -46, -47, -47, -48, -48, - -49, -49, -48, -48, -47, -46, -45, -44, -44, -43, -43, -43, -44, -44, -45, -46, - -47, -48, -49, -50, -51, -52, -53, -55, -57, -59, -61, -64, -67, -70, -72, -75, - -78, -80, -82, -84, -86, -88, -90, -91, -92, -94, -95, -96, -97, -98, -98, -99, - -100, -101, -101, -101, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -101, -101, - -100, -100, -99, -98, -97, -96, -95, -94, -93, -92, -91, -89, -88, -87, -85, -83, - -81, -78, -75, -71, -67, -63, -58, -54, -49, -44, -39, -33, -28, -23, -18, -13, - -8, -3, 2, 7, 13, 18, 23, 29, 35, 40, 45, 51, 55, 60, 64, 68, - 71, 75, 78, 82, 85, 88, 91, 93, 96, 98, 100, 101, 103, 104, 105, 105, - 106, 106, 106, 106, 105, 105, 104, 104, 103, 101, 100, 98, 95, 93, 90, 86, - 83, 79, 75, 70, 65, 60, 54, 47, 40, 33, 25, 18, 10, 2, -5, -12, - -19, -26, -32, -38, -44, -50, -55, -60, -65, -69, -73, -76, -79, -82, -84, -87, - -89, -90, -92, -93, -94, -95, -96, -96, -96, -96, -96, -95, -94, -93, -91, -90, - -88, -86, -84, -81, -79, -76, -74, -70, -67, -63, -59, -54, -49, -44, -39, -34, - -29, -24, -19, -14, -10, -5, -2, -1, 3, -2, 1, -3, 4, -2, 0, 0, - 8, 0, 10, -9, -7, -128, -72, 13, -44, -13, -18, 4, -4, 12, 3, 31, - 4, 66, 74, 38, 38, 36, 30, 25, 22, 18, 13, 7, 5, 2, 1, -5, - -7, -9, -9, -11, -14, -12, -14, -12, -16, -13, -16, -13, -14, -16, -11, -14, - -10, -13, -11, -13, -8, -8, -6, -6, -5, 0, -6, -3, -3, 3, -4, 6, - -13, 17, -5, -5, 15, -1, -23, 6, 23, 28, 35, 13, 41, -3, 24, 25, - -4, 6, 30, 4, 18, 10, -32, -64, -120, -64, -91, -76, -33, -45, -58, 2, - 1, -19, -14, 18, 48, 50, 59, 51, 53, 47, 46, 41, 37, 35, 26, 28, - 19, 21, 10, 13, 9, 3, 5, -4, 2, -5, -3, -8, -5, -8, -8, -10, - -9, -10, -10, -12, -7, -17, -8, -11, -14, -5, -15, -5, -4, -10, -13, 11, - -22, 3, -3, -4, -5, -11, 13, 2, -16, -9, -5, -12, 27, 15, 17, 21, - 20, 20, 8, 14, 13, 0, 10, 35, 10, -1, -12, -52, -89, -78, -58, -85, - -74, -51, -25, -25, -28, -30, -14, 12, 29, 44, 44, 51, 46, 50, 49, 43, - 38, 36, 32, 29, 23, 19, 17, 14, 10, 6, 6, 2, 4, -8, 3, -7, - -3, -6, -7, -11, -4, -12, -7, -6, -20, 1, -15, -14, -8, -7, -10, -10, - -10, 2, -14, -12, 7, -10, -8, -5, -6, 1, 6, -2, -12, -19, -3, 3, - 2, 19, 19, 14, 19, 24, 13, 5, 12, 12, 13, 21, 29, 5, -18, -43, - -48, -64, -82, -82, -71, -44, -37, -37, -40, -33, -23, 5, 20, 33, 38, 45, - 48, 51, 46, 44, 41, 38, 36, 27, 26, 24, 19, 13, 16, 5, 11, 4, - -1, 3, -4, -3, 1, -9, -7, -2, -9, -6, -13, -4, -6, -17, -8, -6, - -15, -10, -5, -10, -8, -10, -5, -7, -5, -2, -14, -10, 3, 5, -4, -3, - -10, -17, -10, 3, 4, 5, 18, 18, 18, 16, 16, 10, 5, 11, 23, 26, - 22, 7, -9, -16, -37, -62, -80, -76, -65, -46, -43, -43, -51, -41, -24, -4, - 11, 24, 32, 41, 47, 43, 49, 45, 41, 40, 33, 31, 31, 20, 23, 18, - 11, 16, 9, 5, 3, 2, 5, -2, -7, 2, -4, -10, -3, -5, -8, -10, - -7, -8, -14, -10, -8, -11, -9, -6, -14, -10, -2, -3, -12, -10, -7, -9, - 0, 6, -1, -11, -12, -11, -10, -7, 4, 7, 12, 17, 20, 18, 13, 6, - 8, 19, 22, 24, 17, 14, 5, -8, -29, -54, -77, -71, -55, -50, -44, -54, - -57, -39, -32, -15, 3, 15, 31, 34, 39, 47, 45, 44, 44, 37, 37, 33, - 28, 27, 18, 20, 21, 10, 7, 10, 7, 1, 2, 2, 0, -5, 0, -2, - -7, -3, -5, -8, -8, -5, -13, -13, -5, -6, -14, -11, -8, -8, -5, -5, - -9, -17, -10, -2, 0, -2, -1, -9, -12, -14, -12, -6, -1, 3, 11, 19, - 19, 14, 7, 9, 13, 17, 23, 22, 19, 21, 12, 2, -21, -55, -65, -59, - -52, -47, -56, -56, -50, -53, -38, -22, -7, 10, 18, 29, 36, 40, 45, 43, - 38, 41, 40, 32, 27, 26, 26, 19, 17, 17, 12, 9, 9, 6, 2, 4, - 4, -1, -2, 2, -3, -3, 0, -2, -8, -9, -7, -7, -7, -6, -8, -12, - -6, -4, -7, -12, -13, -10, -5, -2, -2, -3, -8, -12, -15, -16, -14, -13, - -7, 2, 8, 11, 8, 4, 5, 8, 13, 20, 22, 23, 24, 23, 19, 6, - -13, -23, -29, -32, -37, -42, -46, -53, -57, -53, -49, -39, -25, -12, -1, 10, - 21, 28, 32, 35, 36, 34, 34, 32, 28, 25, 24, 21, 18, 19, 16, 10, - 7, 8, 9, 8, 6, 5, 2, 3, 6, 7, 5, 2, -2, -4, -3, -1, - -3, -4, -3, -1, -3, -8, -13, -14, -11, -4, -1, -2, -4, -6, -11, -16, - -19, -21, -21, -17, -9, -3, 0, 0, -3, -5, -2, 4, 11, 18, 23, 25, - 26, 24, 17, 10, 5, -1, -7, -12, -20, -29, -37, -44, -51, -55, -54, -47, - -39, -28, -16, -4, 9, 18, 23, 27, 31, 31, 30, 30, 28, 23, 20, 22, - 23, 20, 14, 10, 9, 9, 10, 9, 6, 4, 4, 6, 9, 10, 7, 2, - 0, 1, -1, -2, -2, -1, 1, 2, -2, -10, -14, -11, -8, -5, -2, -1, - -3, -6, -9, -14, -20, -23, -23, -18, -11, -5, -3, -4, -6, -8, -4, 2, - 7, 14, 21, 25, 25, 23, 19, 13, 8, 4, -1, -9, -15, -23, -31, -39, - -48, -53, -51, -48, -44, -34, -20, -8, 3, 12, 20, 24, 27, 30, 31, 29, - 24, 22, 22, 23, 22, 18, 13, 10, 10, 11, 11, 9, 5, 3, 5, 10, - 11, 9, 7, 5, 4, 2, 0, -3, -1, 3, 5, 2, -3, -8, -11, -10, - -7, -5, -3, -2, -2, -4, -7, -14, -20, -24, -24, -19, -12, -6, -6, -8, - -8, -8, -7, -2, 5, 12, 19, 23, 24, 22, 20, 16, 12, 7, 1, -5, - -10, -17, -27, -36, -42, -47, -52, -51, -45, -36, -26, -12, 0, 9, 15, 21, - 27, 30, 29, 26, 23, 22, 23, 23, 21, 17, 12, 9, 10, 12, 10, 6, - 3, 4, 7, 10, 11, 9, 8, 9, 7, 2, -1, 0, 2, 6, 6, 3, - -2, -7, -9, -8, -6, -4, -3, -1, -1, -2, -6, -13, -21, -26, -24, -18, - -13, -10, -9, -10, -11, -11, -10, -5, 3, 10, 17, 21, 22, 22, 21, 19, - 14, 8, 5, 1, -7, -14, -21, -29, -38, -45, -49, -50, -48, -40, -28, -16, - -6, 3, 11, 19, 26, 27, 26, 24, 22, 22, 24, 24, 20, 14, 11, 11, - 12, 11, 8, 4, 3, 6, 8, 9, 9, 10, 11, 10, 6, 2, 0, 2, - 5, 8, 7, 3, -2, -5, -6, -7, -6, -4, -3, -1, 1, 1, -5, -13, - -21, -24, -23, -18, -14, -12, -11, -12, -13, -14, -13, -8, 0, 8, 14, 17, - 21, 22, 21, 18, 15, 12, 8, 2, -3, -9, -16, -24, -32, -40, -47, -51, - -49, -41, -30, -21, -12, -1, 9, 17, 23, 25, 24, 21, 21, 24, 24, 22, - 17, 12, 11, 13, 12, 8, 4, 3, 4, 6, 7, 7, 9, 11, 12, 10, - 6, 3, 3, 6, 9, 10, 8, 5, 1, -2, -3, -3, -2, -1, 1, 3, - 3, 1, -5, -12, -18, -20, -20, -18, -16, -16, -16, -17, -19, -20, -17, -11, - -5, 1, 8, 13, 17, 18, 18, 17, 16, 14, 11, 7, 2, -3, -8, -14, - -22, -34, -43, -46, -42, -35, -28, -20, -11, -2, 7, 15, 19, 19, 19, 19, - 20, 20, 17, 14, 11, 10, 9, 7, 1, -4, -6, -4, 0, 2, 4, 6, - 7, 8, 9, 8, 7, 7, 10, 13, 15, 15, 13, 9, 6, 3, 2, 4, - 7, 9, 11, 11, 7, 1, -5, -10, -13, -14, -14, -14, -16, -19, -23, -26, - -28, -27, -23, -18, -13, -7, -1, 6, 11, 14, 15, 14, 14, 15, 15, 12, - 7, 2, -1, -4, -11, -22, -34, -41, -40, -34, -26, -19, -12, -4, 4, 10, - 14, 17, 17, 18, 19, 18, 15, 12, 10, 9, 8, 6, 0, -6, -11, -10, - -6, -1, 3, 5, 6, 6, 6, 7, 7, 8, 10, 13, 16, 18, 17, 13, - 9, 5, 3, 4, 7, 11, 13, 14, 11, 5, -2, -7, -11, -12, -12, -13, - -14, -17, -22, -26, -28, -29, -27, -22, -17, -11, -5, 1, 7, 12, 14, 14, - 13, 14, 15, 14, 11, 5, 0, -2, -6, -15, -27, -37, -42, -38, -31, -24, - -17, -9, -1, 6, 12, 15, 17, 18, 19, 19, 17, 13, 11, 9, 9, 8, - 4, -2, -8, -11, -9, -4, 1, 4, 5, 6, 6, 6, 7, 7, 9, 11, - 14, 17, 18, 16, 12, 8, 4, 3, 5, 9, 12, 14, 13, 9, 2, -4, - -9, -12, -13, -12, -13, -15, -19, -23, -27, -29, -28, -25, -20, -15, -9, -3, - 3, 9, 13, 15, 14, 13, 15, 15, 13, 9, 3, -1, -3, -9, -19, -31, - -40, -41, -36, -28, -21, -14, -6, 2, 9, 13, 16, 17, 18, 19, 18, 16, - 12, 10, 9, 9, 7, 2, -4, -10, -11, -8, -2, 2, 5, 5, 6, 6, - 7, 7, 8, 9, 12, 16, 18, 17, 14, 10, 6, 4, 4, 6, 10, 13, - 14, 12, 7, 0, -6, -10, -12, -13, -13, -14, -16, -21, -25, -28, -29, -28, - -24, -18, -13, -7, -1, 6, 11, 14, 15, 13, 14, 15, 15, 12, 7, 2, - -1, -5, -12, -23, -35, -41, -40, -34, -26, -19, -12, -3, 4, 10, 14, 17, - 18, 18, 19, 18, 14, 11, 9, 9, 8, 6, 0, -7, -11, -10, -6, 0, - 2, -1, -2, -9, -24, 4, -3, 3, -3, 10, 7, 4, 13, -4, 1, 3, - 3, 0, 2, 8, -9, -9, 2, 1, -1, 7, 17, 21, 37, 25, 13, 14, - -2, 15, 20, 5, 0, -3, -7, -27, -14, -18, -19, -29, -20, -4, -18, -32, - -30, -30, -29, -32, -22, -26, -19, -19, -1, -6, 4, 7, 5, 2, 0, -8, - -16, -12, -13, -17, -17, 19, 20, 24, 16, 8, -4, 8, 0, 13, 28, 33, - 16, 11, 5, -3, -1, 4, 12, 12, 40, 20, 11, 4, 5, 8, -1, 2, - 5, 5, 22, 13, 21, 8, 9, 18, 20, 13, 20, 26, 11, 24, 17, 10, - 27, 30, 22, 28, 30, 41, 47, 57, 36, 36, 20, -16, 4, 6, -19, -21, - -41, -39, -33, -38, -41, -46, -42, -36, -18, -37, -65, -75, -77, -78, -62, -63, - -62, -68, -63, -63, -44, -50, -30, -41, -43, -26, -34, -35, -36, -45, -49, -27, - 1, -6, -4, -7, -20, -16, -20, -21, -13, 2, -6, -1, -12, 0, -1, 15, - 19, 20, 26, 37, 40, 46, 37, 50, 35, 34, 41, 43, 51, 54, 55, 50, - 56, 47, 59, 51, 51, 75, 67, 66, 71, 59, 60, 72, 75, 72, 80, 79, - 82, 98, 99, 87, 93, 62, 49, 58, 41, 42, 28, 5, -6, -6, -18, -24, - -23, -30, -25, -20, -38, -60, -75, -77, -80, -75, -71, -75, -70, -73, -69, -76, - -60, -66, -71, -66, -57, -62, -61, -61, -87, -90, -69, -63, -46, -31, -35, -47, - -42, -53, -63, -53, -45, -33, -36, -39, -37, -43, -39, -34, -30, -19, -9, 2, - -9, -1, -3, 1, -3, 5, 7, 15, 24, 22, 23, 20, 32, 43, 33, 48, - 63, 67, 70, 68, 52, 59, 73, 73, 77, 85, 73, 81, 103, 98, 116, 115, - 87, 80, 76, 72, 69, 60, 37, 27, 29, 12, 19, 4, -12, 1, 3, -3, - -31, -42, -57, -67, -67, -61, -61, -61, -48, -58, -51, -41, -46, -48, -40, -35, - -33, -26, -36, -67, -68, -65, -59, -47, -28, -34, -37, -36, -52, -61, -61, -47, - -34, -39, -39, -42, -42, -48, -36, -38, -37, -20, -19, -16, -16, -18, -20, -22, - -26, -22, -16, -15, 1, -4, -6, 10, 12, 13, 22, 32, 41, 54, 52, 44, - 54, 66, 61, 78, 81, 71, 87, 89, 99, 119, 107, 91, 77, 76, 69, 76, - 68, 47, 49, 35, 33, 37, 22, 14, 24, 37, 26, 13, -10, -26, -41, -43, - -34, -40, -34, -33, -43, -39, -25, -27, -27, -18, -25, -15, -1, -10, -29, -42, - -39, -39, -19, -7, -10, -10, -11, -20, -35, -44, -33, -30, -28, -36, -34, -47, - -41, -36, -46, -42, -34, -27, -29, -25, -34, -30, -32, -40, -36, -36, -31, -16, - -25, -25, -15, -21, -14, -9, -11, 1, 17, 15, 9, 25, 20, 25, 46, 39, - 46, 50, 51, 68, 85, 87, 72, 65, 52, 50, 59, 44, 42, 29, 23, 22, - 23, 11, -5, 8, 14, 19, 8, -6, -23, -38, -43, -42, -48, -41, -34, -42, - -38, -19, -23, -16, -15, -19, -10, 8, 8, -9, -18, -27, -30, -10, -4, 7, - 6, 15, 8, -8, -17, -15, -8, -11, -3, -15, -17, -14, -16, -27, -30, -26, - -22, -19, -21, -22, -19, -30, -27, -26, -36, -22, -9, -13, -10, -10, -8, -9, - -6, -12, -1, 16, 6, 11, 16, 6, 19, 24, 27, 38, 38, 38, 48, 71, - 72, 78, 66, 51, 54, 52, 49, 42, 32, 21, 25, 26, 13, 1, -1, 10, - 15, 8, 1, -22, -38, -47, -56, -58, -46, -43, -46, -33, -25, -17, -11, -9, - -19, -9, 16, 18, 12, 1, -17, -18, -9, 3, 9, 17, 24, 26, 9, -4, - -1, -6, 2, 9, 0, -2, 2, -3, -13, -16, -15, -8, -8, -8, -1, -6, - -17, -11, -22, -24, -16, -12, -9, -9, -9, -9, -6, -8, -16, 2, 6, 2, - 13, 9, 7, 10, 17, 19, 30, 31, 22, 37, 49, 61, 70, 56, 43, 37, - 36, 31, 32, 15, 4, 11, 9, 4, -14, -16, -7, -5, -1, -8, -28, -46, - -56, -75, -74, -67, -70, -67, -62, -55, -47, -36, -32, -42, -28, -9, 1, 4, - -4, -17, -30, -18, -12, -2, 4, 15, 21, 7, 1, -7, -6, -1, 7, 0, - 0, 3, -3, -8, -15, -18, -6, -9, -6, 5, -2, -2, 0, -7, -12, -7, - -3, 2, 7, 3, 4, 14, 2, 1, 12, 11, 17, 20, 19, 16, 19, 20, - 24, 39, 36, 37, 42, 55, 71, 84, 76, 63, 56, 47, 49, 46, 29, 18, - 14, 18, 11, -5, -11, -8, -3, 4, 4, -16, -27, -44, -60, -64, -59, -62, - -62, -55, -55, -47, -28, -32, -35, -29, -15, -3, 4, 3, -15, -25, -24, -13, - -11, -3, 10, 14, 12, 4, -5, -9, -1, 2, -1, 1, 1, -1, -7, -17, - -16, -12, -17, -8, 0, -1, -1, -2, -8, -13, -9, -9, 0, 9, 1, 14, - 16, 6, 7, 10, 12, 18, 26, 20, 22, 22, 16, 25, 32, 36, 34, 36, - 43, 60, 75, 72, 67, 52, 44, 50, 45, 38, 17, 14, 17, 11, -2, -9, - -14, -10, 0, -4, -12, -24, -41, -59, -67, -63, -70, -69, -62, -70, -55, -40, - -38, -42, -38, -29, -16, -3, -3, -9, -29, -31, -25, -26, -20, -7, 0, 2, - -1, -14, -18, -14, -14, -12, -10, -10, -4, -13, -21, -19, -22, -24, -16, -10, - -6, -2, -2, -10, -12, -15, -17, -4, -4, -5, 7, 9, 3, 4, 7, 5, - 18, 23, 22, 28, 25, 22, 27, 34, 39, 43, 38, 41, 62, 71, 79, 78, - 62, 55, 55, 57, 49, 31, 23, 30, 21, 15, 7, -5, 1, 8, 9, 8, - -3, -16, -39, -46, -50, -60, -55, -58, -62, -53, -36, -33, -34, -34, -29, -18, - -6, 5, -2, -17, -23, -22, -24, -17, -8, 1, 9, 10, -4, -7, -8, -9, - -6, -9, -6, 0, -11, -14, -14, -21, -24, -21, -16, -10, 1, -3, -3, -5, - -14, -11, -7, -7, -5, 6, 9, 4, 8, 1, 3, 11, 16, 20, 26, 24, - 20, 25, 29, 36, 41, 32, 40, 51, 64, 77, 78, 67, 55, 54, 57, 53, - 33, 27, 25, 22, 20, 9, -3, -3, 3, 7, 6, 4, -16, -32, -42, -55, - -60, -61, -64, -70, -62, -49, -39, -41, -40, -37, -33, -18, -5, -8, -16, -24, - -29, -31, -28, -24, -15, -1, 1, -7, -11, -14, -13, -14, -18, -11, -8, -14, - -16, -16, -25, -31, -29, -31, -20, -12, -13, -6, -11, -19, -19, -14, -17, -12, - -1, 2, 6, 7, 2, 4, 8, 11, 18, 24, 21, 22, 19, 21, 33, 33, - 32, 32, 40, 55, 71, 76, 72, 58, 55, 62, 56, 42, 34, 28, 29, 26, - 17, 4, 2, 6, 4, 13, 12, -4, -18, -30, -45, -50, -51, -59, -63, -61, - -47, -37, -33, -32, -34, -32, -19, -4, -3, -5, -13, -21, -23, -22, -24, -13, - 1, 5, 5, -3, -6, -1, -7, -9, -2, 1, -2, -2, -4, -13, -16, -22, - -22, -15, -10, -4, 2, -1, -11, -8, -7, -12, -6, 1, 6, 12, 11, 8, - 9, 9, 9, 20, 23, 26, 25, 20, 24, 32, 34, 35, 33, 35, 49, 63, - 74, 74, 58, 55, 60, 54, 45, 33, 27, 25, 26, 19, 6, 4, 1, 1, - 9, 12, -1, -10, -26, -43, -50, -54, -61, -70, -69, -61, -50, -43, -40, -44, - -44, -34, -18, -12, -9, -15, -24, -25, -28, -31, -22, -12, -2, 1, -8, -8, - -5, -12, -14, -8, -8, -8, -5, -9, -11, -18, -27, -26, -22, -19, -12, -1, - -4, -9, -8, -11, -14, -12, -8, 0, 7, 5, 5, 6, 0, 3, 8, 13, - 20, 18, 13, 15, 22, 27, 29, 25, 26, 36, 51, 70, 71, 59, 56, 57, - 55, 47, 37, 25, 24, 27, 17, 9, 3, -2, -2, 8, 9, 6, -2, -16, - -34, -44, -47, -54, -63, -66, -63, -55, -44, -39, -42, -44, -35, -23, -11, -4, - -10, -16, -17, -23, -25, -22, -13, 1, 6, 1, 1, 4, -2, -4, 1, -1, - 4, 3, 2, 2, -3, -12, -15, -14, -15, -7, 3, 5, 3, 2, 1, -2, - -4, -4, 3, 9, 10, 13, 11, 9, 8, 9, 15, 22, 22, 20, 19, 21, - 27, 30, 28, 28, 28, 42, 61, 69, 65, 60, 60, 58, 55, 47, 35, 30, - 30, 24, 18, 10, 0, -1, 2, 6, 7, 3, -8, -24, -36, -43, -50, -59, - -65, -66, -62, -52, -43, -43, -44, -41, -35, -21, -12, -12, -13, -17, -23, -26, - -30, -24, -12, -4, -5, -3, -2, -5, -6, -6, -5, -3, -2, -1, 2, 2, - -5, -3, 2, 8, 17, 26, 32, 42, 50, 56, 68, 73, 64, 63, 65, 48, - 56, 71, 48, 49, 50, 26, 30, 30, 16, 25, 21, -2, 0, -13, -15, -2, - -19, -17, -16, -50, -49, -49, -81, -85, -88, -108, -112, -116, -127, -126, -113, -113, - -106, -79, -65, -48, -17, 5, 20, 41, 58, 63, 69, 59, 28, 17, 0, -32, - -41, -52, -69, -63, -61, -59, -41, -26, -19, 6, 28, 33, 52, 67, 70, 81, - 87, 84, 90, 93, 84, 72, 69, 60, 45, 56, 57, 40, 46, 39, 25, 29, - 25, 16, 21, 12, -1, -3, -11, -8, -5, -16, -12, -21, -41, -38, -48, -68, - -70, -77, -91, -93, -98, -106, -103, -93, -92, -82, -60, -47, -30, -4, 13, 27, - 44, 56, 60, 62, 47, 23, 13, -8, -32, -40, -54, -64, -59, -59, -53, -36, - -26, -14, 12, 27, 36, 56, 66, 72, 84, 86, 86, 93, 92, 82, 73, 70, - 57, 49, 59, 52, 43, 47, 37, 29, 30, 24, 18, 18, 7, -2, -6, -11, - -7, -10, -16, -14, -29, -42, -42, -57, -71, -73, -83, -93, -96, -102, -107, -101, - -93, -90, -75, -55, -41, -22, 3, 19, 33, 50, 59, 61, 60, 41, 21, 10, - -14, -33, -43, -57, -63, -60, -61, -51, -36, -27, -9, 15, 26, 40, 59, 66, - 74, 85, 85, 88, 94, 90, 80, 75, 69, 56, 54, 60, 50, 47, 46, 36, - 31, 30, 23, 19, 15, 4, -3, -7, -10, -9, -14, -17, -19, -35, -44, -47, - -63, -73, -77, -88, -96, -98, -104, -107, -99, -92, -86, -69, -50, -35, -14, 9, - 24, 38, 54, 60, 61, 56, 36, 19, 4, -20, -35, -46, -60, -62, -61, -60, - -48, -35, -25, -3, 17, 27, 45, 60, 66, 77, 85, 86, 91, 94, 88, 80, - 75, 67, 56, 58, 59, 50, 49, 45, 36, 33, 30, 23, 19, 13, 2, -5, - -8, -10, -11, -16, -18, -25, -40, -45, -53, -68, -76, -81, -91, -97, -100, -106, - -106, -97, -90, -81, -63, -44, -28, -6, 15, 28, 44, 57, 61, 61, 52, 31, - 16, -1, -24, -37, -50, -61, -62, -62, -59, -46, -35, -22, 1, 18, 30, 48, - 61, 68, 79, 85, 87, 92, 93, 86, 80, 75, 66, 58, 60, 58, 51, 50, - 44, 37, 33, 29, 23, 17, 10, 0, -6, -9, -10, -14, -18, -21, -31, -43, - -48, -59, -72, -78, -85, -94, -99, -102, -107, -104, -95, -88, -76, -56, -39, -22, - 2, 20, 33, 49, 59, 61, 60, 47, 27, 12, -7, -27, -40, -53, -62, -62, - -63, -57, -44, -34, -18, 5, 19, 33, 51, 61, 70, 81, 85, 88, 94, 92, - 85, 80, 74, 65, 60, 62, 57, 52, 50, 43, 37, 33, 28, 22, 15, 8, - -2, -7, -10, -12, -16, -20, -24, -36, -46, -52, -64, -75, -81, -89, -97, -100, - -104, -107, -102, -93, -85, -70, -50, -33, -14, 8, 25, 38, 53, 61, 61, 58, - 42, 24, 8, -12, -30, -43, -56, -62, -63, -63, -54, -43, -32, -13, 7, 20, - 37, 53, 62, 72, 82, 85, 89, 94, 90, 84, 80, 73, 64, 62, 62, 56, - 53, 49, 43, 37, 33, 27, 20, 14, 5, -3, -8, -11, -13, -18, -22, -28, - -40, -49, -57, -69, -78, -84, -92, -99, -102, -105, -106, -99, -90, -81, -64, -44, - -27, -7, 14, 29, 43, 56, 61, 61, 54, 37, 20, 4, -17, -33, -46, -58, - -62, -64, -62, -52, -42, -29, -9, 9, 23, 40, 55, 64, 74, 83, 86, 91, - 93, 89, 84, 80, 72, 65, 64, 62, 56, 53, 49, 42, 37, 33, 26, 19, - 12, 3, -5, -8, -12, -16, -20, -24, -33, -44, -52, -61, -73, -80, -87, -95, - -100, -103, -106, -104, -96, -88, -76, -57, -38, -21, 0, 20, 33, 47, 59, 62, - 60, 51, 33, 17, -1, -21, -36, -49, -59, -63, -64, -61, -51, -40, -25, -5, - 11, 26, 43, 56, 65, 76, 83, 87, 92, 93, 88, 84, 79, 71, 65, 65, - 61, 56, 53, 48, 42, 37, 32, 25, 17, 10, 1, -6, -10, -13, -18, -22, - -27, -37, -48, -55, -65, -76, -83, -90, -97, -101, -104, -106, -102, -94, -84, -71, - -51, -33, -15, 7, 24, 38, 51, 60, 62, 59, 46, 29, 13, -6, -25, -39, - -52, -60, -63, -64, -59, -49, -38, -21, -1, 14, 29, 46, 57, 67, 78, 84, - 88, 92, 92, 87, 83, 78, 70, 66, 65, 61, 57, 53, 48, 42, 37, 31, - 23, 15, 7, -1, -7, -11, -15, -20, -24, -31, -41, -51, -59, -69, -79, -85, - -93, -99, -102, -105, -106, -100, -91, -80, -65, -45, -27, -8, 13, 29, 42, 55, - 61, 61, 56, 42, 25, 8, -11, -28, -42, -54, -61, -64, -64, -57, -47, -35, - -17, 1, 16, 33, 48, 59, 69, 79, 84, 89, 93, 91, 87, 83, 77, 70, - 67, 65, 60, 57, 53, 47, 41, 36, 29, 21, 14, 5, -3, -8, -12, -17, - -22, -27, -35, -45, -54, -63, -73, -81, -88, -95, -100, -103, -105, -104, -97, -88, - -76, -58, -39, -21, -1, 18, 33, 46, 58, 62, 61, 53, 38, 21, 4, -15, - -31, -45, -56, -62, -65, -64, -56, -46, -32, -13, 4, 19, 36, 50, 61, 71, - 80, 85, 90, 92, 90, 86, 82, 76, 70, 68, 65, 60, 57, 52, 46, 41, - 35, 27, 19, 12, 3, -5, -9, -14, -19, -24, -29, -38, -48, -57, -66, -76, - -84, -91, -97, -101, -104, -105, -102, -94, -84, -71, -52, -33, -15, 5, 23, 37, - 50, 60, 62, 60, 50, 34, 17, -1, -19, -35, -48, -58, -63, -65, -62, -54, - -43, -28, -10, 7, 22, 39, 52, 62, 73, 81, 86, 91, 92, 89, 86, 82, - 75, 70, 68, 64, 60, 57, 52, 46, 40, 34, 26, 17, 9, 1, -6, -11, - -15, -21, -26, -32, -42, -52, -60, -70, -79, -86, -93, -99, -102, -104, -105, -100, - -91, -80, -65, -46, -27, -9, 11, 28, 42, 54, 61, 62, 58, 46, 30, 13, - -6, -23, -38, -51, -60, -64, -65, -61, -52, -41, -25, -6, 9, 26, 42, 54, - 64, 75, 82, 87, 91, 91, 89, 85, 81, 74, 71, 68, 64, 60, 56, 51, - 45, 39, 32, 24, 16, 7, -1, -7, -12, -17, -23, -28, -36, -45, -55, -64, - -73, -82, -88, -95, -100, -103, -105, -104, -97, -88, -76, -59, -40, -22, -2, 17, - 32, 45, 57, 62, 62, 56, 42, 26, 9, -10, -27, -41, -53, -61, -65, -65, - -60, -50, -38, -21, -3, 12, 29, 44, 55, 66, 76, 82, 88, 91, 91, 88, - 85, 80, 74, 71, 68, 63, 60, 56, 50, 44, 38, 30, 22, 14, 5, -3, - -9, -14, -19, -25, -31, -39, -49, -58, -67, -77, -84, -91, -97, -101, -103, -105, - -102, -95, -84, -71, -53, -34, -16, 4, 22, 37, 49, 59, 63, 61, 53, 38, - 22, 4, -14, -30, -44, -56, -62, -66, -65, -58, -48, -35, -17, -1, 15, 32, - 46, 57, 68, 77, 83, 88, 91, 90, 88, 84, 79, 74, 71, 67, 63, 60, - 55, 49, 43, 37, 28, 20, 12, 3, -5, -10, -15, -21, -27, -33, -43, -52, - -61, -70, -79, -86, -93, -98, -102, -104, -104, -100, -92, -81, -66, -47, -28, -10, - 10, 27, 40, 53, 61, 63, 59, 49, 34, 18, -1, -18, -34, -47, -58, -63, - -66, -64, -56, -46, -31, -14, 2, 18, 35, 48, 59, 70, 78, 84, 89, 91, - 90, 87, 83, 78, 74, 71, 67, 63, 59, 54, 49, 42, 35, 27, 18, 9, - 1, -6, -12, -17, -23, -29, -36, -46, -55, -64, -73, -82, -89, -95, -100, -102, - -104, -103, -97, -88, -76, -60, -41, -23, -4, 15, 31, 44, 55, 62, 62, 57, - 46, 30, 13, -5, -22, -37, -50, -59, -64, -66, -62, -55, -43, -28, -11, 5, - 22, 37, 50, 61, 71, 79, 85, 89, 91, 89, 87, 82, 77, 73, 70, 66, - 63, 59, 53, 47, 41, 33, 24, 16, 7, -1, -8, -14, -19, -25, -32, -40, - -49, -58, -67, -76, -84, -91, -96, -101, -103, -104, -102, -95, -85, -72, -55, -37, - -18, 1, 19, 34, 47, 57, 62, 62, 56, 43, 28, 10, -8, -25, -39, -52, - -60, -65, -66, -62, -53, -42, -25, -9, 8, 24, 39, 51, 62, 72, 80, 86, - 90, 90, 89, 86, 82, 77, 73, 70, 66, 62, 58, 53, 47, 40, 33, 24, - 15, 6, -2, -8, -14, -19, -25, -32, -40, -49, -58, -67, -72, -103, -18, -76, - 0, 0, 0, 0, 1, 2, 3, 5, 6, 0, -7, -8, -15, -9, 10, 8, - 17, 33, 14, 5, 38, 44, 31, 63, 70, 51, 73, 82, 68, 85, 100, 96, - 97, 103, 115, 114, 112, 127, 122, 110, 116, 113, 109, 120, 120, 118, 113, 91, - 93, 109, 97, 98, 115, 110, 109, 120, 112, 94, 75, 63, 69, 72, 64, 64, - 59, 45, 39, 36, 35, 42, 42, 24, 5, 2, 3, 4, 7, 9, 11, 14, - 17, 19, 14, -3, -20, -26, -30, -26, -24, -31, -32, -34, -40, -39, -33, -34, - -45, -56, -60, -66, -64, -55, -60, -62, -56, -59, -58, -50, -56, -70, -73, -76, - -86, -77, -70, -80, -76, -71, -77, -71, -66, -76, -85, -82, -90, -95, -80, -82, - -92, -85, -86, -94, -85, -79, -86, -92, -90, -94, -101, -92, -85, -90, -84, -77, - -78, -74, -73, -85, -86, -85, -95, -85, -77, -90, -88, -83, -94, -93, -83, -81, - -81, -86, -89, -89, -94, -88, -77, -77, -71, -59, -58, -59, -63, -72, -74, -77, - -73, -61, -67, -72, -67, -73, -80, -74, -68, -60, -56, -65, -70, -67, -72, -66, - -52, -49, -40, -27, -27, -32, -39, -47, -50, -42, -30, -31, -34, -32, -38, -46, - -46, -43, -35, -20, -16, -24, -30, -30, -31, -24, -13, -6, 4, 13, 11, 3, - -5, -9, -2, 12, 15, 15, 16, 9, 3, -2, -5, -1, 12, 24, 30, 29, - 20, 17, 22, 25, 30, 41, 47, 49, 46, 37, 32, 41, 52, 54, 60, 61, - 52, 48, 45, 36, 35, 43, 51, 60, 67, 69, 60, 57, 63, 63, 64, 73, - 75, 72, 69, 63, 67, 78, 78, 82, 89, 80, 73, 76, 67, 60, 64, 67, - 73, 79, 83, 88, 82, 75, 80, 81, 77, 83, 83, 76, 74, 77, 83, 85, - 86, 94, 89, 80, 82, 78, 69, 68, 68, 69, 78, 80, 81, 90, 83, 73, - 79, 77, 70, 73, 70, 62, 65, 73, 75, 76, 84, 82, 70, 71, 69, 59, - 57, 54, 48, 53, 63, 64, 68, 76, 66, 57, 58, 51, 42, 40, 33, 28, - 37, 46, 49, 55, 56, 42, 37, 37, 27, 22, 20, 10, 4, 8, 15, 24, - 30, 31, 24, 14, 8, -3, -14, -21, -26, -26, -15, -4, -1, -4, -13, -21, - -26, -34, -39, -42, -50, -57, -63, -66, -60, -47, -43, -48, -51, -57, -66, -75, - -82, -88, -91, -88, -78, -74, -81, -86, -85, -92, -101, -100, -102, -109, -109, -110, - -112, -113, -115, -109, -106, -113, -113, -107, -110, -110, -106, -108, -112, -109, -110, -114, - -111, -98, -95, -98, -93, -93, -98, -94, -89, -81, -69, -65, -71, -73, -73, -77, - -73, -62, -56, -48, -40, -41, -45, -47, -47, -37, -20, -11, -4, 5, 4, 3, - 6, 9, 16, 30, 39, 47, 51, 44, 40, 45, 47, 50, 59, 64, 66, 68, - 65, 65, 75, 80, 78, 87, 95, 91, 93, 98, 96, 98, 104, 100, 96, 99, - 104, 101, 100, 106, 107, 105, 108, 109, 109, 110, 111, 110, 101, 87, 82, 84, - 81, 82, 88, 89, 90, 91, 85, 71, 57, 49, 48, 51, 52, 55, 59, 58, - 58, 60, 61, 61, 57, 42, 24, 14, 7, 5, 9, 11, 15, 20, 21, 19, - 11, -3, -18, -27, -33, -31, -25, -24, -21, -16, -16, -14, -11, -17, -29, -40, - -49, -59, -61, -55, -54, -52, -45, -42, -41, -41, -48, -59, -65, -72, -81, -79, - -72, -73, -69, -62, -61, -59, -60, -69, -76, -79, -87, -92, -84, -81, -82, -76, - -72, -71, -67, -66, -72, -79, -81, -87, -94, -92, -87, -86, -82, -76, -75, -75, - -78, -85, -87, -91, -96, -91, -82, -83, -80, -74, -74, -71, -64, -64, -68, -73, - -77, -81, -87, -88, -82, -79, -76, -70, -69, -72, -76, -80, -84, -87, -82, -71, - -67, -64, -58, -57, -55, -49, -43, -39, -40, -47, -54, -58, -64, -66, -61, -58, - -54, -49, -50, -55, -59, -63, -65, -58, -45, -38, -32, -25, -24, -23, -18, -13, - -5, 3, 4, -2, -11, -17, -23, -26, -23, -20, -18, -15, -18, -24, -28, -28, - -21, -7, 3, 11, 18, 20, 19, 22, 24, 30, 40, 47, 51, 49, 40, 32, - 28, 24, 23, 25, 25, 23, 20, 15, 15, 23, 34, 43, 51, 59, 59, 58, - 59, 58, 60, 67, 73, 78, 84, 85, 78, 71, 68, 63, 60, 60, 57, 53, - 50, 50, 56, 65, 70, 76, 84, 84, 81, 81, 79, 76, 79, 84, 87, 91, - 96, 98, 94, 88, 85, 81, 76, 73, 70, 66, 66, 70, 76, 80, 84, 91, - 92, 87, 86, 83, 78, 76, 78, 81, 85, 88, 91, 96, 93, 86, 83, 78, - 71, 68, 64, 61, 64, 71, 74, 78, 84, 86, 80, 76, 72, 64, 59, 56, - 55, 59, 66, 69, 74, 79, 76, 69, 64, 57, 48, 43, 39, 39, 45, 52, - 56, 62, 63, 55, 47, 41, 31, 21, 15, 8, 5, 9, 16, 24, 31, 35, - 33, 26, 19, 10, 0, -6, -9, -7, -7, -13, -17, -22, -26, -31, -34, -37, - -40, -42, -44, -46, -48, -50, -51, -54, -56, -58, -61, -64, -67, -70, -74, -78, - -82, -86, -90, -93, -97, -99, -102, -104, -106, -108, -109, -110, -111, -112, -113, -113, - -114, -114, -115, -115, -115, -115, -115, -114, -113, -111, -109, -107, -104, -100, -97, -93, - -90, -87, -84, -82, -80, -78, -76, -74, -73, -71, -69, -67, -65, -61, -58, -53, - -48, -42, -35, -28, -21, -13, -6, 1, 8, 15, 21, 26, 31, 35, 38, 41, - 44, 46, 48, 50, 52, 55, 58, 61, 64, 68, 72, 76, 80, 83, 87, 90, - 92, 94, 96, 98, 99, 100, 101, 102, 102, 103, 103, 103, 103, 104, 103, 103, - 103, 102, 101, 99, 97, 94, 92, 88, 85, 81, 78, 74, 71, 67, 64, 61, - 58, 55, 53, 51, 49, 47, 46, 44, 42, 40, 37, 34, 30, 26, 22, 17, - 12, 8, 3, -1, -5, -9, -13, -16, -20, -23, -26, -29, -31, -33, -35, -37, - -38, -40, -42, -44, -46, -48, -51, -54, -56, -59, -61, -64, -65, -67, -69, -70, - -72, -74, -75, -77, -78, -80, -81, -82, -83, -84, -85, -86, -86, -87, -88, -89, - -90, -90, -91, -92, -92, -92, -92, -92, -92, -91, -91, -92, -92, -92, -93, -93, - -94, -94, -94, -95, -95, -95, -95, -95, -95, -95, -95, -95, -94, -93, -92, -91, - -90, -89, -87, -86, -85, -85, -85, -84, -84, -85, -85, -85, -85, -85, -85, -85, - -85, -85, -84, -83, -82, -81, -79, -77, -75, -73, -70, -68, -65, -63, -62, -60, - -59, -59, -59, -59, -59, -59, -59, -60, -59, -59, -59, -58, -57, -55, -53, -50, - -47, -44, -40, -36, -32, -29, -25, -22, -20, -18, -17, -16, -15, -15, -16, -16, - -16, -16, -16, -16, -15, -13, -11, -9, -6, -2, 2, 6, 10, 15, 19, 22, - 26, 29, 31, 33, 35, 36, 36, 36, 36, 35, 35, 35, 35, 35, 36, 38, - 40, 42, 45, 48, 52, 55, 58, 61, 64, 67, 70, 72, 73, 74, 75, 76, - 76, 76, 75, 75, 74, 74, 74, 74, 74, 75, 77, 78, 80, 82, 83, 85, - 87, 89, 90, 91, 92, 93, 94, 94, 94, 94, 94, 93, 93, 92, 91, 91, - 90, 90, 90, 90, 91, 91, 92, 92, 93, 93, 94, 94, 94, 94, 94, 94, - 94, 94, 93, 93, 92, 92, 91, 90, 89, 88, 87, 87, 86, 86, 85, 85, - 85, 84, 84, 83, 83, 82, 81, 80, 79, 78, 77, 77, 76, 75, 74, 72, - 71, 70, 68, 67, 65, 64, 63, 61, 60, 58, 57, 55, 53, 50, 48, 45, - 43, 40, 38, 36, 34, 32, 30, 29, 27, 25, 23, 21, 19, 17, 14, 12, - 9, 6, 3, 0, -4, -8, -12, -17, -21, -25, -29, -33, -36, -39, -42, -45, - -47, -49, -51, -53, -55, -58, -60, -63, -65, -68, -71, -74, -77, -81, -84, -87, - -91, -94, -97, -99, -102, -104, -105, -107, -108, -109, -110, -111, -111, -112, -112, -113, - -113, -113, -113, -113, -113, -112, -111, -109, -107, -105, -102, -99, -96, -93, -90, -87, - -84, -82, -79, -77, -75, -73, -70, -69, -66, -64, -60, -58, -53, -49, -44, -39, - -32, -27, -19, -14, -8, -3, 3, 11, 22, 10, 8, 1, 1, 1, 1, 1, - 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 5, 5, 6, 5, 6, 6, - 6, 6, 6, 6, 7, 5, 7, 5, 6, 4, 6, 4, 4, 4, 4, 3, - 3, 2, 3, 1, 3, -2, 2, 0, 0, 0, 0, -2, -1, -2, -3, -3, - 0, -5, -1, -2, -2, -2, -1, 0, -3, -1, -1, 0, 1, -1, 0, -1, - 0, 0, 1, 0, 0, 1, -1, 1, -1, 1, -2, -1, -3, 0, -2, -1, - -2, -2, -2, -3, -2, -3, -4, -5, -6, -5, -9, -8, -9, -9, -9, -11, - -10, -13, -14, -14, -15, -16, -15, -17, -19, -19, -21, -18, -21, -20, -22, -20, - -24, -21, -22, -19, -20, -21, -17, -19, -16, -17, -15, -17, -13, -11, -10, -7, - -5, -3, 2, 6, 4, 8, 9, 18, 14, 31, 25, 24, 25, 24, 21, 13, - 15, 15, 11, 9, 1, 4, -20, -18, -38, -44, -57, -57, -55, -55, -52, -55, - -46, -47, -40, -32, -26, -19, -16, -2, 3, 13, 19, 28, 30, 37, 40, 44, - 39, 38, 35, 34, 37, 41, 48, 51, 53, 58, 61, 70, 74, 76, 76, 80, - 81, 86, 83, 83, 78, 78, 73, 69, 65, 55, 47, 40, 36, 29, 23, 16, - 14, 8, -2, -4, -11, -11, -19, -22, -26, -25, -34, -39, -40, -41, -45, -49, - -51, -57, -56, -58, -59, -66, -70, -70, -72, -65, -64, -59, -53, -49, -45, -34, - -29, -21, -15, -10, -6, -6, -3, -4, 2, 3, 3, 3, -1, -3, -11, -11, - -13, -16, -22, -24, -27, -32, -34, -37, -35, -31, -30, -26, -25, -22, -21, -15, - -13, -15, -10, -12, -12, -7, 2, 15, 22, 27, 24, 28, 22, 22, 21, 22, - 17, 13, 14, 9, 5, 2, -8, -12, -16, -14, -17, -17, -17, -17, -14, -8, - -3, -3, 0, 5, 3, 5, 6, 3, -2, -6, -9, -11, -13, -18, -19, -29, - -42, -61, -72, -79, -81, -83, -82, -79, -76, -65, -54, -42, -33, -24, -14, 0, - 18, 33, 48, 62, 75, 87, 93, 99, 100, 102, 102, 104, 102, 100, 100, 96, - 93, 95, 96, 105, 109, 112, 111, 110, 106, 106, 104, 102, 97, 93, 85, 80, - 71, 60, 48, 36, 26, 12, 0, -5, -13, -21, -28, -31, -36, -42, -49, -53, - -56, -59, -61, -63, -64, -64, -63, -67, -70, -77, -75, -77, -78, -79, -80, -81, - -80, -75, -69, -64, -57, -50, -43, -35, -26, -16, -6, 6, 13, 17, 22, 26, - 25, 27, 27, 26, 23, 19, 11, 5, -5, -12, -19, -24, -31, -37, -42, -45, - -50, -49, -48, -47, -43, -41, -38, -38, -37, -35, -35, -37, -42, -40, -33, -27, - -20, -12, -11, -13, -10, -9, -10, -10, -10, -13, -11, -9, -8, -11, -13, -16, - -18, -17, -15, -15, -14, -12, -8, -3, 3, 8, 16, 22, 25, 31, 34, 36, - 36, 34, 31, 25, 23, 24, 26, 23, 13, -1, -16, -29, -38, -45, -51, -56, - -57, -54, -48, -39, -34, -29, -20, -10, 0, 13, 27, 39, 54, 68, 79, 87, - 92, 94, 96, 94, 92, 89, 87, 82, 76, 72, 71, 74, 76, 81, 83, 83, - 84, 84, 85, 85, 82, 81, 82, 80, 75, 71, 66, 57, 46, 34, 24, 15, - 5, -2, -8, -13, -19, -26, -31, -37, -41, -44, -48, -53, -54, -53, -54, -54, - -57, -61, -64, -67, -70, -72, -75, -77, -79, -79, -76, -73, -70, -63, -58, -53, - -47, -38, -29, -21, -13, -6, 0, 4, 7, 7, 8, 8, 6, 5, -1, -8, - -15, -22, -30, -36, -41, -47, -51, -54, -56, -58, -59, -56, -50, -45, -42, -37, - -31, -26, -23, -23, -23, -24, -21, -14, -6, 2, 8, 12, 15, 18, 21, 20, - 20, 20, 20, 21, 23, 22, 18, 13, 10, 8, 6, 5, 4, 3, 2, 2, - 4, 7, 10, 13, 18, 22, 24, 26, 28, 27, 21, 14, 8, 5, 4, 2, - -3, -12, -24, -37, -50, -59, -67, -76, -80, -79, -75, -69, -61, -55, -47, -38, - -27, -15, -2, 11, 27, 43, 58, 71, 82, 90, 94, 96, 98, 98, 98, 95, - 89, 84, 81, 79, 81, 85, 88, 89, 91, 92, 92, 90, 89, 89, 88, 85, - 82, 79, 75, 67, 58, 48, 37, 25, 14, 4, -4, -10, -17, -24, -31, -37, - -42, -47, -51, -56, -59, -59, -59, -59, -61, -63, -65, -67, -70, -72, -74, -76, - -78, -78, -78, -75, -70, -66, -61, -56, -50, -41, -33, -23, -14, -6, 2, 10, - 16, 19, 21, 23, 24, 24, 22, 19, 13, 7, 0, -6, -14, -20, -25, -27, - -32, -37, -39, -39, -38, -36, -33, -30, -27, -22, -19, -19, -20, -23, -24, -22, - -18, -13, -8, -4, 0, 2, 5, 6, 5, 3, 2, 4, 6, 6, 5, 1, - -2, -6, -8, -9, -10, -11, -13, -12, -12, -11, -9, -4, 0, 4, 8, 13, - 18, 20, 19, 14, 10, 6, 4, 4, 4, 0, -8, -17, -28, -38, -49, -60, - -68, -72, -72, -70, -65, -59, -54, -46, -37, -27, -17, -5, 8, 22, 37, 51, - 66, 77, 84, 88, 91, 93, 94, 94, 91, 85, 79, 75, 74, 76, 77, 80, - 83, 85, 85, 85, 86, 86, 85, 85, 85, 83, 81, 77, 70, 64, 55, 44, - 32, 22, 13, 6, -1, -9, -16, -22, -27, -32, -38, -43, -46, -47, -47, -47, - -48, -49, -49, -50, -52, -54, -56, -59, -62, -64, -66, -65, -64, -61, -59, -56, - -53, -48, -41, -33, -25, -17, -10, -2, 4, 9, 13, 15, 16, 17, 17, 15, - 11, 7, 1, -7, -15, -22, -27, -33, -38, -43, -47, -49, -50, -50, -49, -46, - -42, -37, -31, -28, -28, -29, -30, -29, -26, -22, -17, -13, -8, -3, 2, 6, - 7, 6, 5, 6, 8, 10, 12, 11, 8, 5, 3, 1, -1, -2, -3, -4, - -6, -7, -6, -3, 0, 1, 5, 10, 16, 20, 21, 19, 15, 10, 8, 6, - 6, 4, 0, -5, -12, -22, -33, -45, -57, -65, -70, -72, -70, -68, -64, -58, - -51, -44, -36, -24, -13, -2, 11, 27, 43, 58, 70, 78, 83, 88, 92, 96, - 97, 93, 89, 85, 81, 80, 81, 83, 86, 88, 90, 91, 91, 91, 91, 91, - 91, 91, 89, 86, 83, 79, 72, 63, 52, 41, 30, 21, 13, 4, -5, -11, - -17, -23, -31, -38, -44, -47, -49, -50, -52, -54, -55, -57, -57, -58, -60, -63, - -66, -69, -72, -74, -73, -72, -70, -69, -67, -64, -59, -53, -45, -37, -30, -22, - -14, -7, -2, 3, 8, 10, 12, 12, 13, 12, 8, 3, -4, -10, -16, -21, - -27, -33, -37, -41, -44, -46, -48, -48, -45, -48, -43, -37, -33, -31, -32, -33, - -32, -29, -26, -22, -18, -12, -5, 1, 6, 9, 9, 9, 9, 11, 14, 16, - 16, 14, 12, 8, 5, 3, 2, 1, -1, -3, -4, -4, -2, -1, 2, 5, - 11, 18, 24, 27, 27, 24, 20, 17, 15, 13, 11, 9, 5, -1, -10, -22, - -35, -49, -61, -70, -75, -77, -76, -73, -69, -63, -56, -47, -36, -25, -13, 0, - 16, 34, 52, 67, 79, 88, 95, 101, 106, 109, 108, 105, 100, 95, 92, 90, - 91, 93, 96, 99, 100, 101, 101, 101, 101, 101, 101, 100, 97, 95, 91, 85, - 78, 67, 55, 43, 31, 21, 11, 1, -7, -14, -21, -29, -37, -45, -51, -54, - -56, -58, -60, -62, -64, -65, -66, -67, -69, -72, -76, -80, -82, -84, -83, -82, - -80, -79, -77, -73, -67, -60, -51, -42, -34, -25, -16, -8, -2, 4, 9, 12, - 13, 14, 14, 13, 9, 3, -5, -12, -18, -25, -31, -37, -42, -47, -50, -53, - -54, -53, -48, -41, -36, -32, -31, -31, -32, -31, -28, -25, -22, -17, -12, -5, - 1, 1, -2, -1, -9, -9, -6, 5, 6, -1, -10, 8, 24, 11, -2, -14, - -9, -15, -13, 5, 14, 12, -6, -1, -12, 1, -9, 12, 12, 10, 5, -19, - -11, -13, -2, 8, 5, 1, -2, -3, 9, -6, 6, 5, 6, -3, -17, -7, - 3, 2, -1, 0, 7, -7, 5, 4, 6, -18, -24, 6, 20, -1, -4, -1, - 10, 3, -10, 8, 7, -11, -17, -15, 5, 18, 4, 1, 8, -16, -4, 0, - 11, 9, -10, -15, 0, -22, -12, 19, 34, 16, -9, -16, -7, -12, -10, 13, - 23, -1, -10, -2, -3, -11, 13, 7, -6, -9, 3, 11, -10, -18, 12, 22, - 7, -27, -29, -4, 20, 20, 10, 8, -16, -26, -6, 22, 21, 7, 15, 8, - -50, -50, -7, 35, 22, -13, 32, 41, -33, -46, -10, 23, -7, -25, 23, 21, - -38, -36, 14, 44, 2, 2, 34, -14, -51, -29, 11, 19, 7, 22, 13, -23, - -21, -8, -9, 1, 14, 26, 26, -8, -34, -33, 4, 1, -6, -2, 16, -7, - -23, 12, 27, 5, 6, 6, 0, -8, 0, -1, -17, -13, -12, 3, 9, 4, - 11, 23, 36, 0, -43, -16, 4, -21, -26, 27, 16, -25, 3, 65, 4, -34, - 24, -10, -38, -14, 13, 4, -15, 36, 44, -42, -51, 20, -5, -6, 68, 20, - -18, -39, -11, 9, 17, 6, -33, -20, -13, 48, 30, 22, -4, -9, -53, -20, - 32, 32, -16, 17, -11, -36, -8, -5, 39, 28, 33, 21, -64, -48, 3, -22, - 15, 62, -26, 0, 3, 5, 73, -14, -48, -20, -59, 4, 70, 60, -7, -2, - -88, -22, -17, 39, 17, 33, -3, 15, 28, -47, -80, -37, 5, 7, 104, 16, - -99, -92, -36, 109, 78, 26, -15, -92, -21, 62, 48, -51, -81, -25, 55, 63, - 35, 21, -115, -54, 101, 73, -41, -110, -66, 50, 107, 45, -8, -109, -38, 12, - 102, 3, 17, -45, -2, -36, 39, 46, -12, -28, -27, -17, 17, -18, 82, -5, - -3, -25, -5, -14, 15, 9, -3, -17, -6, 2, 7, -36, -13, 6, 21, -23, - -20, 16, -18, 3, -2, 26, 0, 13, -23, -2, -19, -28, -18, 15, 12, 22, - -4, 23, -17, -22, -9, -18, -4, 11, 13, 0, 34, -16, -20, 26, 23, 15, - -4, -25, 7, 8, -9, 8, 44, 1, -40, 17, -32, 9, -30, -52, 52, 3, - 2, -21, 83, 58, -14, -46, -61, -12, -67, -20, 64, 72, 57, -10, 5, 1, - -77, 31, -47, -39, 12, 22, 57, 28, 0, 9, -76, 15, -74, 33, -12, 39, - 114, -35, -36, -38, -23, 27, -21, 14, 56, 47, 6, -72, -61, -4, 18, -4, - 19, 13, 45, 71, 48, -1, -125, -52, -56, -20, -18, -12, 51, 78, 68, -46, - 32, -40, -29, -28, -81, -25, 75, 42, 58, -38, 1, -29, -34, 31, -36, -14, - 10, 64, 37, 2, -31, -72, -17, -33, 30, -52, -54, 25, 43, 70, 81, -9, - -73, 4, -65, 15, -28, 25, 0, 28, 19, 51, -26, 6, 0, -37, -15, -22, - -20, -16, -5, 50, 56, 67, 25, 16, -35, -29, -14, -39, 19, -24, -52, -13, - -32, -10, 39, 33, 59, 6, 37, 55, 11, -9, -35, -15, -57, -56, -36, -34, - 19, 19, 6, 20, 17, -11, 5, 26, 19, 16, 7, -20, -26, -55, -62, -36, - -18, 19, 37, 47, 25, -6, -14, 1, -4, -13, 12, 23, 34, 38, 41, 33, - 31, -10, -56, -52, -49, -31, -40, -21, -12, 0, 5, 12, 22, 22, 21, 31, - 12, 2, -8, -4, -18, -7, 3, 1, -1, 11, 12, 18, 17, 9, -2, -12, - -13, -11, -1, 8, 3, 3, 2, 5, -5, -16, -15, -13, -8, -12, -9, -2, - -1, 2, 7, 10, 7, 11, 14, 7, -1, -4, 5, -3, -2, 0, -6, -10, - -1, -5, 3, 9, 0, -8, -9, -6, -6, 0, 6, 3, 6, 7, 10, 0, - -8, -3, -5, -1, -8, -7, -4, -3, -3, 0, -1, -6, 2, 7, 7, 5, - 4, 10, 5, 8, -1, -11, -15, -11, -15, -10, -1, -8, -12, -5, 1, 3, - 6, 8, 11, 18, 22, 26, 10, -10, -1, -15, -3, -21, -16, -14, -12, -7, - -8, -18, -20, -11, 9, 20, 27, 26, 11, 1, 21, 6, 3, -9, -15, -9, - -20, 3, 5, 21, 14, 6, 11, -21, -22, -6, -21, -23, -18, 11, 6, 5, - 21, 9, 23, 16, -3, -30, -7, -27, -4, 5, 18, 22, 16, 2, 7, -1, - -2, -10, -14, -10, -17, -10, -15, -16, 3, 12, 30, 18, -1, -6, -15, -3, - 5, 11, -18, -2, 8, 21, 11, -13, -4, -30, -7, 0, 12, 25, -3, 17, - 14, -20, -6, -27, -41, -11, -12, 23, -8, 13, 24, 18, 27, -11, -8, -12, - -2, 17, 23, 13, -20, -21, -2, -21, -34, -46, -23, 28, 48, 9, -10, 8, - 29, 27, 5, -29, -12, 13, -5, -2, -35, 1, 3, 24, 13, 17, -18, -30, - -21, 14, -1, 6, -8, 48, 45, -7, -34, -49, -32, -6, -26, 20, 29, 76, - 30, -21, -66, -36, -15, 40, -5, 29, 3, 10, -39, -25, -2, 24, 19, 19, - -4, -8, 3, -22, -23, -18, 13, 17, -3, -25, 23, 66, 26, -18, -27, -34, - -30, -30, 36, 25, 28, -22, -17, -7, -22, 21, 18, 42, 8, -25, -28, -31, - -10, 15, 18, 0, -1, -5, 16, -12, 13, 13, 12, -8, -37, -9, 13, -5, - 8, -3, 13, -8, 4, 24, -16, -43, -18, 26, 26, -11, -9, 19, 9, -15, - 9, 15, -12, -31, -27, 8, 29, 5, 7, 17, -33, -14, 14, 23, -1, -18, - -18, -4, -35, -17, 47, 71, -16, -20, -11, -16, -25, 6, 37, 14, -18, 1, - -8, -14, 10, 14, 2, -20, 0, 20, -10, -25, 14, 32, 7, -39, -38, -3, - 34, 25, 13, 3, -24, -34, 5, 38, 18, 7, 29, -30, -74, -41, 36, 40, - -12, 26, 55, -17, -59, -26, 28, -2, -31, 24, 25, -44, -39, 21, 44, -1, - 10, 33, -34, -50, -12, 18, 13, 20, 17, -6, -31, -10, -6, -1, 7, 12, - 14, 6, -16, -24, 6, 9, -16, -16, 6, 2, -10, 13, 12, -10, 0, 11, - 11, 10, -3, -22, -22, -12, -7, 19, 17, -2, -12, 6, 16, 7, -11, -1, - -20, -22, -8, 26, 16, -3, 12, 1, -33, 2, 30, -23, -5, 28, -17, -19, - 21, 9, -28, -14, 25, -1, 4, 24, 0, -26, -9, 7, 2, -2, 20, -10, - -11, 5, -3, -4, 8, -9, 14, 18, 25, -22, -15, -22, -3, -12, 27, 30, - 15, -11, -26, -4, 15, -7, -14, 23, -23, -4, 34, -2, -38, 14, -11, -24, - 16, 34, 11, -13, 3, -3, -19, -34, 0, -3, 24, 43, 1, -12, -38, -25, - -11, 23, 35, 12, -28, -25, -16, 7, 22, 1, -10, 8, 8, -3, 6, -24, - -20, -13, 9, 31, 12, -16, 7, -29, 5, 8, -28, 3, 4, 12, 26, -9, - -15, -5, -20, 9, 21, 0, 1, -9, 0, 8, -3, -7, -9, -3, 22, 8, - 3, -11, -9, -11, 3, 15, 9, -10, 1, -3, -3, -2, -5, 9, 0, 12, - 7, -15, -7, 0, -8, 5, 9, -5, 7, -7, 10, 4, -11, -2, -8, -4, - 9, 9, 0, -2, -11, -3, -4, 3, 4, 3, -2, 3, 3, -8, -9, -2, - 0, 3, 5, -1, -10, -7, 2, 8, 3, 0, -5, -5, 2, 4, -2, -5, - -3, 2, 3, 0, 2, -5, -3, 3, 2, -2, -4, -2, 1, 2, 1, 0, - 0, 0, 0, -1, -7, -9, -5, 0, 2, 2, 5, 6, 0, -11, -13, -5, - 3, 1, 0, 0, 1, -3, -9, -6, -1, 5, 3, -3, -5, -3, -1, -4, - -3, -1, 2, -2, -9, -7, -2, -5, -18, -31, -36, -36, -41, -38, -29, -21, - -27, -31, -26, -4, 37, 65, 67, 44, 22, 10, 2, -4, 8, 32, 44, 38, - 24, 17, 9, 4, 3, 12, 26, 32, 32, 23, 16, 7, 1, -7, -13, -8, - 1, -5, -39, -72, -79, -64, -49, -40, -24, -1, 12, 0, -25, -44, -43, -30, - -14, 1, 13, 13, 4, 4, 16, 34, 46, 55, 65, 73, 67, 53, 54, 58, - 62, 60, 51, 38, 33, 20, -7, -27, -40, -46, -55, -58, -41, -9, 7, 8, - 2, -26, -49, -71, -92, -101, -93, -80, -70, -71, -73, -65, -67, -69, -61, -42, - -15, 15, 18, -5, -33, -54, -54, -40, -18, 2, 21, 21, 3, -28, -52, -33, - 9, 35, 33, 30, 34, 45, 46, 43, 54, 63, 65, 61, 56, 43, 45, 59, - 77, 96, 104, 112, 115, 100, 78, 53, 22, -3, -6, 5, 24, 37, 38, 35, - 25, 3, -19, -38, -51, -46, -33, -34, -42, -47, -48, -38, -27, -30, -40, -48, - -45, -30, -24, -38, -44, -43, -47, -34, -13, 7, 27, 30, 9, -18, -38, -22, - 19, 47, 70, 83, 68, 28, -13, -41, -41, -19, -1, 10, 8, 4, 4, -7, - -12, 6, 32, 42, 31, 0, -39, -71, -99, -115, -111, -85, -56, -46, -61, -74, - -66, -45, -22, 4, 21, 27, 25, 1, -30, -51, -37, 4, 37, 40, 26, 17, - 12, 12, 5, 1, 2, 12, 29, 43, 44, 45, 54, 45, 28, 10, 13, 26, - 32, 43, 59, 67, 62, 60, 66, 72, 61, 34, 11, 0, 1, -6, -18, -12, - 19, 47, 51, 32, 9, -8, -22, -26, -27, -30, -29, -12, 7, 18, 13, -1, - -11, -11, 5, 16, 14, 11, 5, -19, -47, -54, -29, 13, 37, 42, 33, 9, - -17, -31, -21, 14, 61, 81, 68, 39, 4, -26, -46, -38, -17, -1, 1, -4, - -14, -25, -23, -4, 24, 43, 49, 37, 4, -48, -97, -123, -116, -89, -66, -65, - -73, -67, -64, -66, -69, -46, 3, 36, 27, -3, -25, -39, -38, -39, -36, -24, - -9, 5, 13, 13, 4, -1, -13, -15, 0, 22, 47, 65, 76, 67, 35, 3, - -4, 6, 27, 47, 58, 68, 72, 73, 72, 66, 59, 62, 61, 49, 28, -5, - -30, -27, 9, 40, 51, 46, 40, 28, 1, -30, -56, -57, -41, -13, 5, 12, - 7, -11, -38, -54, -40, -16, 12, 23, 13, -16, -49, -62, -55, -29, 4, 38, - 45, 28, -5, -36, -36, -5, 39, 68, 77, 73, 55, 8, -35, -46, -29, -15, - -15, -16, -12, -9, -23, -30, -18, 16, 48, 51, 24, -18, -45, -72, -96, -111, - -101, -80, -67, -71, -79, -77, -70, -46, -22, -7, -4, -5, -4, -2, -15, -37, - -43, -42, -27, -5, 9, 27, 38, 27, 4, -14, -15, 6, 30, 61, 93, 90, - 52, 16, 2, 1, 5, 11, 34, 64, 79, 71, 48, 35, 43, 61, 59, 46, - 27, 1, -22, -33, -25, -9, 15, 37, 56, 54, 28, -10, -44, -58, -49, -27, - -8, 20, 29, 0, -42, -66, -60, -34, -7, 16, 30, 15, -20, -50, -64, -49, - -11, 21, 34, 34, 17, -7, -31, -29, 3, 43, 69, 78, 73, 45, 10, -20, - -32, -33, -26, -12, -6, -18, -41, -44, -27, -6, 10, 17, 19, 18, -4, -49, - -87, -108, -100, -84, -87, -93, -83, -67, -54, -45, -45, -35, -23, -13, 6, 17, - 14, 1, -22, -40, -35, -18, 2, 28, 57, 63, 33, -7, -21, -4, 23, 57, - 89, 102, 94, 68, 37, 8, -4, 4, 37, 71, 88, 79, 54, 46, 55, 62, - 55, 53, 54, 46, 20, -14, -40, -41, -16, 15, 44, 60, 59, 30, -21, -61, - -70, -54, -26, 10, 29, 19, -16, -49, -63, -58, -33, 4, 29, 26, -1, -33, - -49, -50, -34, -9, 16, 34, 34, 9, -20, -25, -9, 13, 29, 54, 87, 91, - 56, 11, -12, -11, -12, -20, -22, -17, -11, -12, -22, -25, -15, 3, 19, 19, - 9, -11, -38, -62, -76, -92, -107, -109, -95, -68, -53, -49, -49, -58, -63, -48, - -25, -5, 12, 12, -7, -36, -56, -56, -32, 8, 50, 64, 36, 6, -10, -15, - -11, 9, 47, 94, 118, 100, 58, 14, -3, 3, 19, 44, 72, 83, 78, 75, - 66, 53, 45, 52, 66, 70, 52, 22, -8, -36, -36, -14, 21, 63, 84, 63, - 14, -29, -55, -54, -42, -12, 28, 40, 14, -24, -52, -58, -42, -22, 6, 19, - 16, -5, -34, -49, -43, -24, -12, 2, 14, 22, 10, -10, -20, -16, 3, 28, - 60, 72, 61, 42, 25, 1, -26, -44, -46, -31, -25, -26, -32, -30, -24, -12, - -12, -15, 0, 6, -3, -23, -47, -79, -112, -128, -115, -84, -61, -45, -42, -51, - -64, -68, -61, -33, 9, 29, 12, -28, -54, -64, -56, -30, 9, 36, 41, 34, - 10, -18, -38, -29, 13, 70, 105, 106, 79, 48, 31, 12, -1, 12, 51, 78, - 89, 87, 75, 66, 49, 44, 56, 73, 79, 66, 23, -23, -42, -39, -9, 31, - 65, 75, 52, 7, -32, -54, -57, -30, 3, 24, 19, 2, -18, -39, -50, -39, - -10, 8, 10, -2, -12, -18, -21, -29, -33, -16, 11, 28, 17, 1, -4, 3, - -3, -6, 13, 42, 64, 67, 56, 29, 2, -21, -36, -42, -40, -25, -15, -10, - -7, -10, -27, -38, -24, 2, 19, 14, -6, -44, -86, -115, -121, -109, -81, -45, - -27, -36, -58, -76, -81, -53, -13, 11, 8, -11, -24, -40, -58, -62, -30, 11, - 42, 44, 17, -15, -36, -38, -22, 15, 53, 84, 88, 73, 52, 19, -6, -9, - 13, 44, 71, 88, 93, 79, 54, 42, 46, 67, 82, 79, 54, 20, -10, -28, - -27, 0, 46, 70, 61, 29, 2, -18, -38, -45, -23, 7, 16, 10, -8, -22, - -26, -30, -32, -23, -13, -2, 6, -6, -15, -16, -18, -20, -9, 0, 2, 11, - 19, 17, -2, -21, -12, 14, 33, 50, 65, 61, 43, 19, -17, -44, -50, -42, - -21, 1, 11, 1, -31, -56, -45, -22, -1, 17, 18, -4, -44, -95, -126, -123, - -95, -56, -36, -41, -51, -59, -68, -60, -38, -15, 5, 14, 7, -17, -47, -61, - -37, 1, 27, 33, 24, 7, -13, -30, -43, -26, 13, 47, 70, 74, 68, 48, - 12, -19, -14, 14, 46, 74, 81, 75, 64, 52, 48, 56, 67, 82, 78, 44, - 9, -12, -20, -8, 18, 41, 57, 46, 23, 0, -23, -33, -21, -10, -10, -2, - 3, 5, -2, -19, -33, -32, -24, -16, -11, -14, -6, 7, -2, -20, -25, -16, - -6, 6, 17, 27, 22, 2, -10, -11, 0, 24, 51, 68, 79, 65, 25, -19, - -49, -48, -30, -9, 8, 10, -12, -40, -57, -57, -34, -1, 25, 24, -7, -56, - -95, -111, -102, -84, -69, -57, -44, -42, -59, -74, -71, -47, -17, 0, 3, -6, - -21, -37, -38, -27, -6, 15, 23, 22, 12, -4, -23, -32, -26, 1, 36, 63, - 82, 78, 46, 12, -1, 2, 20, 41, 64, 81, 79, 66, 59, 61, 67, 75, - 76, 66, 49, 27, 5, -7, 2, 24, 41, 44, 38, 28, 13, -5, -19, -21, - -17, -11, -2, 4, 4, -2, -14, -28, -32, -27, -21, -16, -13, -1, 6, -4, - -21, -25, -17, -7, 6, 0, 0, -4, -4, -5, -8, -4, 3, 8, 6, 1, - 1, 2, 3, 3, -2, -7, -11, -10, -5, -2, 4, 6, 0, -2, -5, -4, - -4, -9, -9, -7, -11, -11, -10, -7, 4, 0, -4, -4, -1, 4, 0, -4, - -3, -5, -6, -5, -4, 4, -1, 2, 11, 5, -13, -20, -30, -49, -50, -34, - -22, -33, -27, -20, -17, 0, 34, 70, 73, 42, 3, -26, -37, -25, -1, 25, - 48, 71, 75, 44, 22, 45, 69, 57, 44, 52, 58, 24, -23, -41, -50, -58, - -67, -82, -66, -29, -29, -41, -34, -19, -4, -4, -1, 20, 50, 56, 35, 12, - 4, -8, -15, 4, 28, 44, 46, 34, 17, 2, 0, 11, 28, 42, 22, -28, - -51, -45, -34, -39, -37, -19, -17, -30, -32, -18, -4, 9, 19, 38, 35, 3, - -24, -35, -40, -23, -11, -25, -47, -52, -51, -58, -61, -52, -47, -37, -17, -5, - -5, -16, -31, -24, -11, -1, -3, -23, -40, -48, -40, -12, 15, 25, 17, -5, - -2, 14, 21, 15, -12, -26, -18, -2, 28, 48, 55, 52, 42, 35, 35, 42, - 38, 36, 40, 53, 55, 52, 44, 36, 49, 57, 56, 57, 55, 50, 39, 27, - 31, 30, 15, 11, 12, 6, 4, 14, 28, 23, 1, -6, -17, -35, -44, -41, - -33, -22, -9, -6, -12, -15, -13, -27, -29, -7, 14, -5, -55, -71, -49, -33, - -37, -46, -33, -18, -43, -89, -96, -65, -23, 2, 8, 20, 24, -11, -50, -51, - -12, 15, 4, 1, 20, 47, 53, 43, 52, 77, 98, 114, 110, 100, 88, 53, - 10, -29, -55, -71, -83, -77, -58, -55, -57, -52, -48, -47, -46, -12, 34, 59, - 52, 25, -10, -33, -21, 18, 49, 54, 46, 18, 13, 30, 41, 48, 54, 53, - 44, 24, 1, -13, -25, -43, -38, -28, -35, -55, -71, -64, -40, -13, 10, 24, - 38, 41, 21, -1, -11, 1, 15, 7, -6, -13, -39, -57, -64, -51, -20, -12, - -24, -37, -30, -4, 17, 21, 12, -7, -16, -15, -7, 6, 1, -20, -34, -30, - -1, 32, 44, 36, 22, 25, 21, 6, 1, -2, -13, -5, 19, 28, 24, 12, - 11, 16, 19, 38, 54, 49, 38, 28, 28, 39, 52, 49, 32, 25, 33, 45, - 49, 39, 40, 46, 20, -9, -6, 6, 1, -22, -29, 10, 48, 33, -17, -51, - -55, -44, -49, -50, -36, -33, -57, -84, -71, -21, 11, 13, 4, -1, -8, -32, - -45, -32, -10, 2, -13, -37, -39, -42, -57, -65, -63, -36, -11, 10, 33, 22, - -12, -34, -28, -12, 2, 8, 6, -2, -4, 0, 10, 22, 36, 57, 82, 104, - 122, 127, 109, 70, 17, -28, -45, -36, -20, -33, -68, -102, -114, -103, -76, -45, - -20, -7, -11, -10, -2, 6, 0, -14, -5, 30, 48, 29, 3, -8, 10, 39, - 67, 86, 83, 59, 32, 17, 32, 46, 40, 11, -29, -48, -57, -68, -69, -57, - -43, -26, -13, -2, 1, 1, 3, 4, 8, 21, 20, 11, 3, -2, -6, -26, - -39, -33, -34, -36, -28, -23, -27, -28, -17, -1, 0, -6, -10, -9, -7, -12, - -26, -44, -54, -38, -16, 0, 18, 27, 17, -3, -18, -3, 19, 11, -9, -7, - 10, 14, 5, 5, 18, 29, 29, 12, 16, 38, 43, 14, 2, 24, 55, 59, - 33, 17, 24, 44, 65, 75, 77, 55, 15, -16, -20, 6, 31, 27, 17, 18, - 19, 17, 7, 0, -5, -20, -22, -25, -49, -69, -73, -58, -45, -29, -4, 9, - -1, -23, -51, -52, -24, -2, 11, 12, -16, -51, -75, -77, -67, -59, -59, -54, - -35, -15, -9, -9, -9, -7, -8, -12, -1, 15, 22, 10, -14, -34, -28, -14, - 11, 64, 113, 127, 117, 97, 87, 84, 68, 50, 37, 36, 24, -15, -58, -78, - -84, -71, -40, -14, -12, -34, -48, -41, -14, 20, 37, 35, 16, -6, 1, 14, - 15, 20, 23, 24, 38, 58, 69, 57, 40, 54, 73, 75, 65, 40, -3, -49, - -68, -56, -42, -42, -53, -59, -44, -23, -9, -3, -11, -18, -13, -11, -5, 3, - 13, 4, -25, -39, -22, -14, -16, -27, -38, -37, -42, -55, -51, -21, 8, 10, - -8, -12, -4, -10, -39, -55, -38, -13, -4, -11, -15, -3, 15, 12, 2, 11, - 28, 34, 15, -5, 3, 11, 6, 12, 25, 25, 13, 10, 15, 27, 48, 55, - 38, 23, 17, 23, 32, 23, 32, 57, 75, 75, 52, 22, 10, 5, 12, 28, - 33, 23, 2, -14, -4, 19, 30, 25, 15, 1, -27, -64, -78, -67, -49, -45, - -48, -42, -31, -25, -40, -50, -39, -18, -4, 13, 19, 12, -10, -43, -59, -53, - -47, -54, -61, -51, -20, -2, -12, -23, -25, -18, 5, 33, 51, 45, 16, -16, - -46, -53, -38, -6, 33, 57, 74, 81, 75, 77, 89, 105, 114, 110, 83, 39, - -6, -25, -28, -39, -48, -52, -55, -59, -67, -67, -57, -42, -23, -3, 10, 3, - -19, -33, -30, -8, 20, 23, 2, -18, -17, 12, 40, 58, 65, 65, 66, 71, - 64, 54, 38, 1, -41, -62, -47, -26, -31, -49, -55, -42, -21, -17, -19, -10, - -2, -3, -10, -13, 2, 13, -10, -38, -27, 3, 8, -18, -46, -61, -65, -53, - -36, -18, -5, -6, -14, -22, -18, -12, -19, -29, -28, -21, -10, -15, -24, -18, - -4, 16, 23, 17, 14, 10, 9, 13, 15, 28, 35, 19, 4, 2, -2, 9, - 34, 62, 66, 43, 13, -2, 15, 42, 50, 48, 51, 56, 56, 45, 44, 45, - 48, 40, 33, 31, 27, 10, -10, -4, 16, 41, 52, 48, 31, -1, -36, -56, - -50, -27, -14, -25, -43, -60, -67, -47, -31, -38, -47, -40, -17, 13, 32, 28, - -10, -50, -68, -62, -40, -21, -20, -33, -58, -72, -63, -45, -28, -11, 18, 48, - 42, 15, -14, -43, -54, -40, -15, 4, 2, -5, 0, 20, 55, 91, 113, 120, - 109, 89, 77, 63, 43, 26, 20, 12, -13, -47, -69, -68, -53, -49, -49, -36, - -28, -27, -27, -28, -12, 5, 1, -9, -2, 14, 10, -25, -39, -6, 21, 35, - 41, 53, 73, 82, 74, 64, 54, 39, 9, -23, -37, -30, -22, -30, -52, -62, - -54, -32, -9, 2, 5, -3, -17, -25, -17, -1, 13, 8, -7, -12, -7, -7, - -21, -40, -51, -51, -38, -21, -16, -22, -29, -33, -23, -10, -2, -9, -24, -33, - -33, -29, -21, -8, 3, 2, -10, -18, -11, 8, 26, 32, 27, 21, 14, 7, - 1, 3, 12, 22, 35, 45, 43, 29, 13, 10, 20, 37, 54, 59, 45, 28, - 28, 37, 48, 55, 60, 60, 43, 17, 0, -3, 9, 24, 31, 31, 28, 28, - 26, 14, -5, -22, -31, -30, -21, -7, -8, -34, -63, -82, -80, -63, -45, -28, - -14, -5, 3, 2, -11, -27, -39, -33, -11, 2, -8, -39, -73, -95, -91, -54, - -8, 19, 16, 4, 5, 14, 14, 2, -8, -14, -19, -33, -45, -38, -19, 2, - 21, 54, 93, 106, 90, 74, 80, 97, 98, 76, 52, 34, 10, -18, -37, -36, - -27, -35, -52, -62, -56, -44, -39, -37, -29, -17, -8, -2, 3, 4, -4, -16, - -27, -32, -19, 1, 19, 41, 60, 70, 71, 67, 64, 61, 53, 38, 14, -8, - -21, -29, -34, -38, -39, -29, -15, 0, 5, -5, -19, -25, -16, 5, 19, 17, - 6, -3, -7, 0, -1, 1, -2, -5, 0, 0, 2, 0, -3, -2, 0, 1, - 0, -2, -2, -2, 0, 3, 3, -2, -5, -1, -1, -1, -4, 3, 9, 1, - -1, -2, -11, -7, 1, 9, 11, 8, -4, -11, -12, -9, -4, 18, 15, 14, - 1, -22, -29, -14, 3, 30, 29, 14, -2, -35, -43, -11, 13, 36, 42, 15, - -16, -49, -44, -10, 28, 47, 38, 11, -25, -66, -39, 4, 36, 58, 33, -3, - -44, -65, -29, 19, 52, 54, 23, -13, -59, -65, -15, 32, 69, 49, 8, -30, - -74, -51, 3, 43, 71, 40, -5, -48, -77, -31, 16, 57, 67, 24, -15, -67, - -72, -12, 36, 66, 59, 5, -31, -80, -51, 3, 49, 75, 37, -2, -59, -81, - -28, 20, 67, 66, 22, -23, -76, -65, -10, 41, 78, 48, 4, -36, -85, -47, - 6, 59, 80, 31, -8, -69, -82, -22, 29, 73, 63, 17, -31, -81, -63, -1, - 47, 79, 47, 3, -56, -90, -40, 19, 75, 73, 28, -25, -86, -74, -10, 48, - 85, 56, 6, -51, -93, -48, 11, 67, 86, 33, -11, -78, -87, -29, 36, 89, - 66, 13, -38, -91, -60, 2, 50, 83, 48, 0, -56, -90, -41, 16, 71, 78, - 30, -17, -80, -75, -20, 31, 82, 62, 15, -32, -85, -66, -7, 48, 84, 50, - 4, -53, -87, -44, 8, 62, 78, 35, -8, -65, -83, -30, 23, 70, 71, 24, - -20, -76, -75, -12, 32, 73, 62, 15, -30, -85, -62, -2, 41, 76, 51, 9, - -39, -86, -52, 1, 45, 79, 46, 8, -49, -89, -46, 3, 54, 80, 43, 7, - -55, -83, -50, 0, 53, 76, 54, 11, -52, -83, -55, 0, 40, 67, 58, 22, - -32, -79, -67, -11, 28, 63, 52, 37, -9, -70, -63, -28, 10, 42, 49, 53, - 8, -46, -64, -41, 1, 22, 38, 51, 39, -16, -63, -46, -23, 5, 33, 38, - 48, 14, -42, -57, -29, -5, 22, 37, 40, 28, -23, -53, -39, -10, 14, 30, - 40, 31, -1, -48, -40, -18, 11, 19, 31, 26, 14, -20, -50, -25, -5, 11, - 31, 30, 14, 0, -35, -39, -4, -1, 19, 27, 17, 9, -10, -39, -21, -8, - 9, 24, 26, 13, -5, -19, -30, -12, -1, 17, 25, 16, 3, -19, -26, -13, - -6, 17, 22, 20, 5, -16, -32, -19, -1, 23, 27, 23, 4, -30, -33, -23, - -1, 35, 35, 24, -2, -41, -45, -21, 9, 45, 41, 22, -12, -50, -46, -18, - 28, 55, 45, 10, -27, -78, -42, 0, 53, 66, 32, -1, -61, -74, -28, 27, - 64, 64, 24, -28, -80, -66, -15, 53, 84, 48, 5, -59, -94, -41, 17, 75, - 80, 26, -21, -91, -79, -12, 48, 87, 55, 10, -58, -96, -46, 9, 80, 81, - 30, -23, -84, -80, -15, 49, 90, 49, 9, -57, -95, -45, 17, 76, 79, 26, - -20, -91, -75, -18, 52, 90, 52, 6, -59, -92, -41, 15, 68, 80, 31, -21, - -87, -76, -13, 45, 87, 49, 11, -60, -94, -35, 14, 80, 68, 22, -23, -89, - -66, -7, 47, 93, 44, -8, -61, -95, -31, 24, 86, 75, 10, -35, -96, -66, - -1, 61, 100, 44, -12, -77, -105, -33, 32, 97, 92, 16, -44, -111, -90, -5, - 65, 121, 65, -3, -80, -123, -59, 17, 98, 111, 46, -25, -112, -109, -33, 42, - 112, 90, 30, -55, -115, -84, -17, 66, 105, 71, 13, -73, -113, -61, 0, 77, - 96, 56, 4, -80, -108, -50, 8, 78, 93, 47, 3, -88, -98, -40, 7, 65, - 76, 53, 18, -71, -90, -44, 0, 39, 57, 43, 34, -19, -69, -54, -19, 18, - 32, 31, 34, 7, -40, -36, -21, -1, 12, 12, 25, 27, -9, -32, -14, -14, - 2, 0, 1, 20, 19, -2, -13, -11, -18, -12, -2, 18, 24, 12, -2, -14, - -19, -19, -12, 18, 24, 22, -2, -15, -32, -20, 3, 22, 26, 17, -13, -31, - -27, -13, 17, 33, 32, 5, -29, -47, -29, 2, 33, 42, 32, -6, -53, -52, - -24, 22, 51, 41, 27, -32, -74, -45, 0, 45, 59, 33, -1, -62, -66, -31, - 26, 73, 49, 17, -42, -80, -42, -8, 63, 72, 28, -10, -75, -72, -23, 32, - 88, 47, 13, -56, -93, -38, 10, 76, 69, 26, -20, -96, -66, -10, 48, 90, - 47, 0, -69, -103, -29, 25, 87, 73, 18, -35, -104, -68, -2, 61, 93, 47, - -5, -83, -98, -31, 30, 92, 68, 17, -39, -97, -63, -5, 64, 88, 35, -9, - -74, -86, -22, 31, 85, 54, 13, -44, -93, -46, 9, 65, 75, 23, -17, -75, - -78, -15, 39, 84, 54, 3, -52, -96, -46, 12, 71, 90, 29, -18, -89, -87, - -26, 36, 86, 72, 26, -37, -106, -77, -12, 45, 99, 68, 22, -46, -108, -73, - -10, 43, 87, 69, 19, -27, -92, -79, -12, 27, 63, 57, 26, 4, -53, -75, - -35, 12, 33, 37, 31, 26, -9, -53, -39, -16, 6, 20, 23, 22, 13, -8, - -22, -23, -18, -3, 9, 25, 19, 4, -8, -20, -17, -10, 6, 16, 17, 13, - -8, -34, -21, -6, 17, 33, 23, 6, -32, -51, -23, 11, 36, 46, 31, -11, - -46, -65, -31, 15, 59, 55, 28, -20, -73, -64, -26, 42, 78, 51, 14, -53, - -85, -48, -4, 70, 80, 38, -16, -80, -76, -32, 39, 90, 58, 19, -59, -99, - -50, 14, 71, 75, 36, -21, -94, -70, -23, 51, 88, 53, 9, -68, -97, -40, - 16, 83, 73, 29, -33, -100, -61, -13, 58, 87, 41, 0, -74, -81, -35, 24, - 87, 55, 20, -41, -88, -58, 0, 69, 73, 34, -5, -86, -75, -20, 38, 79, - 49, 13, -48, -90, -39, 2, 71, 68, 31, -16, -84, -67, -15, 38, 79, 42, - 12, -50, -85, -37, 2, 62, 71, 34, -5, -83, -75, -24, 27, 82, 51, 27, - -30, -88, -54, -15, 44, 73, 50, 16, -49, -81, -47, -6, 38, 58, 50, 27, - -31, -69, -52, -13, 15, 36, 45, 33, -5, -41, -44, -23, 2, 14, 27, 33, - 10, -25, -20, -18, -6, 1, -1, 17, 22, 3, -13, -10, -17, -13, -6, 13, - 24, 15, 1, -11, -19, -19, -16, 12, 24, 24, 3, -12, -29, -26, -1, 18, - 27, 19, -4, -31, -28, -19, 11, 30, 35, 12, -21, -46, -35, -6, 28, 42, - 36, 5, -46, -57, -31, 10, 50, 43, 33, -16, -71, -55, -9, 35, 62, 38, - 10, -51, -71, -40, 11, 69, 58, 24, -26, -81, -50, -18, 48, 79, 37, 1, - -62, -81, -32, 16, 84, 59, 20, -37, -96, -50, -2, 63, 78, 33, -4, -85, - -80, -20, 33, 88, 59, 10, -50, -107, -47, 14, 75, 85, 27, -19, -95, -83, - -15, 47, 94, 60, 8, -66, -105, -46, 15, 83, 81, 26, -23, -91, -76, -18, - 48, 92, 47, 1, -59, -94, -36, 18, 78, 66, 19, -27, -91, -60, -3, 53, - 80, 35, -8, -62, -86, -28, 27, 79, 66, 13, -38, -94, -62, 1, 56, 95, - 42, -6, -75, -96, -39, 22, 80, 80, 36, -20, -97, -92, -24, 30, 93, 79, - 32, -27, -102, -87, -22, 31, 81, 79, 29, -14, -81, -91, -25, 19, 56, 63, - 31, 11, -39, -77, -47, 3, 31, 37, 33, 27, 3, -48, -46, -20, 0, 18, - 22, 23, 16, -3, -20, -19, -15, -4, 2, 8, 5, 0, 0, 0, 0, 2, - 2, 5, 9, 12, 14, 12, 7, 6, 4, 0, -1, -1, 1, -2, -2, -11, - -17, -32, -41, -49, -55, -58, -61, -61, -65, -61, -57, -47, -37, -27, -22, -15, - -5, 6, 12, 16, 21, 27, 28, 32, 33, 35, 41, 44, 45, 47, 50, 54, - 57, 56, 53, 53, 54, 50, 50, 52, 54, 56, 52, 53, 54, 50, 49, 46, - 43, 38, 33, 27, 19, 8, 2, -11, -20, -27, -29, -30, -32, -35, -42, -52, - -57, -57, -59, -48, -40, -27, -13, 4, 13, 20, 18, 14, 11, 7, 3, -1, - -3, -10, -11, -20, -28, -46, -60, -72, -82, -92, -97, -97, -97, -94, -90, -81, - -71, -61, -55, -55, -53, -47, -38, -29, -23, -11, -6, -3, 1, 2, 5, 6, - 3, 3, 5, 15, 24, 28, 30, 30, 35, 37, 36, 39, 39, 44, 47, 48, - 56, 62, 73, 84, 91, 96, 95, 91, 85, 76, 72, 63, 55, 47, 44, 43, - 41, 38, 31, 19, 7, 0, -9, -7, -4, 8, 22, 40, 54, 67, 71, 70, - 64, 56, 45, 32, 24, 15, 12, 3, -3, -21, -42, -66, -84, -102, -117, -124, - -128, -127, -124, -118, -107, -96, -86, -86, -88, -86, -80, -70, -63, -50, -40, -33, - -25, -23, -20, -18, -18, -21, -25, -22, -14, -8, -3, -3, -1, 1, 0, 1, - -3, -1, 2, 4, 13, 24, 35, 49, 59, 67, 70, 69, 68, 59, 54, 46, - 40, 31, 29, 27, 25, 23, 20, 12, -1, -9, -19, -22, -21, -11, 3, 23, - 41, 60, 71, 76, 73, 71, 65, 56, 50, 44, 42, 35, 33, 24, 9, -13, - -31, -48, -65, -76, -83, -83, -82, -77, -69, -59, -46, -40, -40, -41, -38, -30, - -24, -13, -2, 8, 17, 22, 24, 25, 23, 20, 13, 9, 11, 15, 19, 16, - 12, 9, 4, 1, -6, -10, -11, -14, -12, -5, 3, 15, 26, 35, 40, 41, - 41, 35, 28, 19, 12, 3, -2, -6, -7, -10, -13, -19, -31, -39, -50, -56, - -58, -52, -41, -22, -3, 18, 34, 46, 48, 47, 45, 38, 32, 26, 24, 20, - 19, 15, 5, -14, -32, -49, -65, -79, -88, -91, -91, -88, -82, -75, -63, -52, - -47, -46, -46, -38, -31, -21, -8, 4, 17, 26, 31, 36, 39, 42, 40, 35, - 36, 39, 47, 48, 45, 43, 38, 36, 30, 24, 22, 19, 18, 23, 29, 40, - 50, 61, 68, 72, 74, 71, 66, 57, 50, 40, 32, 24, 21, 16, 12, 7, - -3, -14, -26, -38, -45, -46, -43, -31, -16, 3, 18, 33, 39, 39, 36, 31, - 22, 13, 8, 3, -1, -4, -9, -24, -42, -60, -77, -94, -107, -115, -119, -120, - -116, -112, -103, -91, -81, -78, -80, -75, -69, -61, -51, -39, -25, -13, -5, 2, - 8, 14, 17, 16, 15, 16, 24, 31, 32, 32, 29, 29, 27, 22, 21, 20, - 19, 22, 26, 35, 46, 59, 70, 77, 83, 85, 84, 79, 74, 66, 59, 50, - 46, 41, 38, 35, 29, 21, 11, 0, -9, -14, -16, -11, 0, 16, 30, 48, - 58, 62, 61, 58, 51, 40, 31, 25, 19, 15, 13, 4, -11, -28, -44, -61, - -76, -87, -95, -100, -100, -99, -95, -86, -75, -68, -69, -68, -67, -62, -56, -49, - -38, -27, -19, -13, -9, -3, 2, 1, -1, -3, 0, 7, 10, 10, 6, 5, - 4, 0, -4, -5, -7, -7, -7, -2, 5, 16, 27, 36, 44, 49, 52, 50, - 46, 40, 35, 26, 22, 18, 15, 15, 13, 9, 4, -5, -14, -19, -23, -21, - -14, 0, 15, 33, 49, 60, 63, 63, 61, 53, 44, 38, 32, 27, 27, 23, - 14, 0, -14, -29, -44, -58, -67, -74, -76, -76, -73, -67, -55, -45, -41, -41, - -41, -39, -35, -30, -23, -12, -3, 4, 9, 14, 20, 21, 20, 17, 15, 19, - 24, 26, 24, 21, 20, 18, 12, 9, 6, 3, 0, 1, 4, 11, 21, 30, - 38, 43, 47, 48, 45, 38, 32, 23, 15, 9, 5, 3, 1, -2, -5, -13, - -22, -30, -37, -41, -40, -30, -18, -3, 15, 30, 38, 41, 41, 37, 27, 19, - 12, 6, 3, 2, -2, -13, -25, -39, -53, -67, -78, -88, -92, -92, -91, -86, - -77, -63, -54, -50, -48, -47, -43, -38, -32, -23, -11, -1, 6, 11, 19, 25, - 27, 26, 24, 26, 31, 36, 38, 36, 37, 37, 34, 32, 29, 27, 24, 22, - 23, 27, 35, 45, 53, 61, 67, 70, 71, 66, 60, 51, 42, 34, 28, 24, - 21, 18, 16, 11, 2, -8, -16, -24, -28, -25, -17, -5, 10, 26, 39, 45, - 47, 45, 37, 27, 18, 9, 3, 0, -2, -10, -22, -36, -51, -67, -81, -93, - -102, -107, -108, -107, -102, -90, -78, -71, -67, -66, -63, -59, -56, -49, -39, -28, - -19, -13, -6, 1, 7, 8, 6, 5, 8, 14, 19, 19, 19, 20, 20, 19, - 16, 15, 13, 12, 11, 13, 20, 30, 39, 49, 57, 63, 68, 68, 65, 58, - 51, 43, 37, 32, 29, 27, 26, 24, 19, 11, 2, -5, -12, -14, -9, 0, - 13, 30, 46, 56, 62, 65, 61, 53, 44, 35, 26, 22, 20, 15, 6, -6, - -20, -36, -51, -66, -78, -87, -91, -92, -92, -85, -74, -65, -58, -56, -55, -52, - -50, -46, -40, -30, -20, -14, -8, -2, 5, 7, 6, 3, 2, 5, 10, 11, - 10, 9, 9, 8, 5, 2, 0, -2, -5, -5, -3, 5, 14, 23, 32, 39, - 46, 50, 49, 45, 38, 31, 24, 17, 14, 11, 10, 9, 7, 2, -5, -12, - -20, -25, -25, -19, -8, 7, 24, 40, 50, 58, 60, 56, 49, 41, 31, 24, - 22, 20, 15, 6, -5, -19, -34, -48, -61, -72, -79, -83, -85, -81, -72, -62, - -52, -47, -44, -41, -39, -35, -31, -24, -13, -5, 1, 7, 14, 20, 22, 21, - 19, 18, 22, 25, 25, 24, 23, 23, 20, 17, 15, 12, 10, 7, 5, 9, - 16, 24, 33, 40, 47, 53, 56, 54, 48, 41, 33, 25, 20, 15, 11, 9, - 8, 5, -2, -10, -19, -27, -32, -31, -25, -15, 0, 17, 30, 40, 46, 46, - 42, 35, 25, 15, 10, 9, 5, -2, -11, -23, -37, -52, -65, -79, -89, -95, - -99, -100, -95, -85, -74, -65, -60, -55, -52, -48, -44, -40, -29, -18, -10, -4, - 4, 12, 18, 20, 19, 17, 20, 24, 27, 27, 26, 26, 25, 23, 21, 19, - 17, 15, 12, 13, 17, 25, 34, 41, 49, 57, 62, 65, 63, 57, 51, 42, - 35, 30, 25, 22, 21, 19, 15, 8, 0, -9, -17, -21, -20, -14, -3, 13, - 26, 38, 48, 53, 52, 47, 39, 28, 19, 15, 13, 8, 0, -10, -22, -37, - -51, -65, -79, -88, -95, -100, -99, -94, -84, -74, -67, -61, -58, -55, -51, -49, - -43, -33, -23, -17, -10, -2, 6, 10, 11, 9, 9, 12, 15, 17, 16, 16, - 16, 14, 12, 11, 9, 8, 5, 3, 4, 10, 18, 26, 34, 42, 50, 57, - 59, 57, 52, 45, 38, 32, 27, 23, 21, 20, 19, 14, 8, 1, -9, 2, - 5, 7, 8, -1, 6, 15, 1, 20, 28, 1, 37, 41, 31, 29, 27, 61, - 40, -12, 38, 52, -16, -20, -1, -23, -48, -56, -63, -61, -77, -100, -88, -76, - -103, -113, -98, -103, -118, -120, -108, -107, -104, -110, -118, -104, -109, -128, -107, -83, - -106, -86, -94, -100, -77, -113, -88, -43, -77, -46, -44, -69, -34, -54, -39, 4, - -30, 11, 18, -25, 20, 16, 10, 52, 35, 52, 74, 33, 55, 74, 59, 70, - 81, 85, 91, 81, 72, 89, 94, 82, 80, 99, 100, 85, 86, 91, 100, 91, - 81, 91, 102, 83, 74, 92, 95, 63, 62, 75, 71, 63, 39, 54, 74, 15, - 1, 31, 6, -5, -13, -20, -8, -44, -59, -38, -69, -73, -67, -86, -90, -68, - -73, -77, -49, -82, -70, -43, -76, -27, 0, -29, 22, 25, -5, 44, 45, 29, - 66, 71, 49, 84, 92, 73, 92, 74, 72, 91, 37, 48, 99, 47, 31, 44, - 36, 33, -5, -11, 26, 6, -33, -22, -6, -32, -55, -44, -45, -52, -63, -73, - -55, -51, -77, -79, -61, -73, -91, -83, -70, -77, -74, -82, -85, -68, -88, -98, - -57, -67, -77, -58, -75, -66, -64, -78, -33, -37, -50, -19, -47, -38, -23, -41, - 3, 6, -7, 30, 0, -4, 24, 15, 31, 45, 44, 66, 44, 34, 58, 54, - 59, 67, 71, 87, 78, 60, 73, 84, 78, 76, 86, 95, 89, 76, 85, 94, - 89, 73, 82, 99, 85, 66, 75, 93, 75, 50, 56, 69, 59, 31, 31, 61, - 29, -15, 15, 5, -15, -14, -36, -25, -29, -69, -55, -53, -82, -78, -76, -95, - -88, -69, -80, -65, -63, -86, -58, -67, -59, -12, -28, -9, 29, -8, 13, 44, - 22, 44, 68, 53, 62, 91, 74, 81, 89, 64, 84, 78, 35, 78, 86, 44, - 43, 47, 45, 22, -5, 17, 21, -16, -24, -14, -14, -34, -50, -40, -36, -63, - -71, -58, -60, -69, -78, -78, -67, -81, -98, -78, -71, -89, -85, -84, -86, -82, - -99, -82, -60, -76, -75, -74, -76, -71, -86, -68, -37, -51, -34, -41, -57, -37, - -51, -31, -7, -17, -3, 1, 7, 22, 31, 46, 57, 41, 43, 56, 63, 62, - 68, 85, 86, 80, 84, 92, 96, 93, 93, 104, 105, 96, 99, 108, 106, 102, - 98, 102, 111, 99, 87, 106, 110, 85, 80, 88, 89, 79, 68, 70, 81, 48, - 25, 39, 32, 18, 9, 12, 0, -29, -31, -38, -60, -52, -63, -79, -71, -66, - -62, -59, -62, -74, -72, -73, -81, -43, -21, -28, 8, 10, -10, 16, 28, 27, - 42, 50, 47, 66, 76, 68, 81, 73, 67, 72, 39, 40, 67, 41, 23, 25, - 22, 12, -16, -22, -5, -27, -51, -44, -45, -57, -68, -73, -71, -74, -91, -89, - -84, -90, -97, -98, -98, -102, -105, -108, -103, -97, -105, -109, -101, -107, -113, -106, - -92, -87, -90, -92, -92, -92, -100, -92, -57, -56, -54, -40, -59, -58, -54, -61, - -23, -9, -12, 16, 0, -14, 4, 5, 17, 32, 41, 57, 55, 43, 54, 66, - 67, 68, 84, 89, 87, 87, 91, 98, 100, 96, 104, 109, 105, 103, 108, 111, - 109, 105, 105, 113, 111, 99, 102, 115, 104, 88, 90, 97, 93, 80, 75, 86, - 75, 37, 40, 43, 33, 20, 20, -14, -26, -36, -53, -52, -65, -75, -75, -69, - -69, -69, -74, -77, -76, -74, -59, -34, -26, -9, 9, 5, 13, 32, 39, 42, - 53, 58, 61, 73, 77, 77, 73, 61, 57, 46, 29, 37, 37, 17, 6, 2, - -10, -27, -38, -41, -46, -58, -68, -69, -75, -85, -89, -92, -97, -101, -103, -106, - -107, -108, -112, -111, -112, -115, -115, -115, -113, -111, -116, -115, -112, -116, -117, -110, - -101, -98, -101, -101, -98, -101, -101, -86, -69, -65, -59, -57, -62, -58, -54, -39, - -19, -12, 1, 7, -1, 5, 16, 24, 36, 46, 58, 64, 61, 64, 74, 79, - 81, 90, 96, 97, 100, 100, 104, 108, 107, 111, 114, 113, 115, 115, 115, 118, - 117, 116, 118, 119, 116, 115, 116, 117, 111, 104, 105, 107, 99, 93, 95, 91, - 71, 57, 53, 47, 38, 29, 23, 14, -11, -28, -38, -49, -58, -67, -73, -80, - -84, -84, -83, -82, -80, -78, -74, -67, -56, -42, -29, -16, -4, 7, 18, 29, - 40, 49, 57, 64, 70, 74, 78, 79, 77, 72, 67, 60, 53, 48, 42, 33, - 23, 14, 4, -6, -16, -24, -32, -40, -48, -55, -61, -68, -74, -78, -83, -87, - -91, -94, -96, -99, -101, -103, -104, -106, -107, -107, -107, -107, -107, -108, -107, -107, - -107, -105, -101, -98, -96, -94, -93, -91, -87, -82, -74, -67, -62, -57, -54, -49, - -43, -35, -25, -16, -7, -1, 4, 10, 17, 25, 33, 41, 49, 55, 59, 63, - 69, 74, 78, 83, 88, 91, 93, 96, 98, 100, 102, 104, 106, 107, 107, 108, - 108, 109, 109, 108, 108, 108, 107, 105, 104, 102, 99, 94, 91, 87, 83, 78, - 73, 66, 56, 46, 37, 28, 19, 9, 0, -11, -23, -35, -45, -55, -64, -71, - -78, -83, -85, -84, -83, -81, -79, -75, -70, -61, -49, -36, -23, -10, 2, 12, - 24, 35, 45, 53, 61, 67, 72, 76, 79, 78, 75, 70, 65, 58, 52, 46, - 39, 29, 20, 11, 1, -9, -18, -26, -34, -42, -50, -56, -63, -69, -74, -79, - -83, -88, -91, -94, -96, -98, -101, -102, -104, -105, -106, -106, -106, -106, -106, -106, - -106, -106, -105, -102, -98, -96, -94, -92, -90, -88, -84, -77, -70, -64, -59, -55, - -51, -45, -38, -29, -20, -11, -4, 2, 7, 13, 21, 29, 37, 44, 51, 56, - 60, 65, 70, 75, 80, 84, 88, 91, 93, 96, 98, 100, 102, 104, 105, 106, - 107, 107, 108, 108, 107, 107, 107, 106, 104, 103, 101, 99, 95, 91, 87, 83, - 78, 73, 67, 59, 49, 39, 30, 21, 12, 3, -8, -19, -31, -41, -51, -60, - -68, -75, -81, -84, -85, -84, -82, -80, -77, -73, -65, -55, -42, -29, -16, -4, - 7, 18, 29, 40, 49, 57, 64, 70, 74, 78, 79, 77, 73, 68, 62, 56, - 50, 44, 36, 26, 17, 7, -3, -12, -20, -28, -36, -44, -51, -58, -64, -70, - -75, -79, -84, -88, -91, -93, -96, -98, -100, -102, -103, -105, -105, -105, -105, -105, - -105, -105, -105, -104, -102, -99, -96, -94, -92, -90, -88, -85, -79, -72, -66, -61, - -56, -52, -47, -41, -33, -24, -15, -8, -1, 4, 10, 17, 24, 32, 40, 47, - 53, 57, 62, 67, 72, 77, 81, 85, 89, 91, 94, 96, 98, 100, 102, 104, - 105, 105, 106, 106, 107, 106, 106, 106, 105, 104, 102, 101, 99, 95, 91, 87, - 83, 79, 74, 68, 61, 52, 42, 33, 24, 15, 5, -5, -15, -27, -38, -48, - -57, -66, -72, -79, -83, -85, -85, -83, -81, -79, -75, -69, -60, -48, -35, -23, - -10, 2, 13, 24, 35, 45, 54, 61, 67, 72, 77, 78, 79, 76, 72, 66, - 60, 54, 49, 41, 32, 23, 12, 3, -4, -17, -15, 1, -1, 0, 0, 1, - 3, 5, 9, 13, 18, 24, 32, 38, 32, 18, -9, -48, -73, -41, 2, -3, - -24, -34, -44, -72, -111, -124, -62, 40, 40, -51, -35, 45, 46, -22, -79, 35, - 78, -47, -98, -88, -69, -57, -44, -31, -17, -9, -3, 6, 41, 85, 43, -91, - -128, -65, -25, -21, -19, -12, 2, 16, 29, 39, 49, 48, 10, -69, -47, 50, - 8, -52, -44, 5, 21, -40, -42, 33, 79, 66, 38, 24, 25, 26, 18, 21, - 70, 117, 98, 28, -1, 20, 22, 0, 1, 9, -10, -49, -33, 39, 68, 39, - -5, -17, -58, -76, 78, 104, 17, 6, -23, -43, -13, 58, 85, 43, 21, 35, - 46, 31, 22, 35, 14, -48, -74, -38, 6, 10, -8, -17, -24, -37, -60, -69, - -41, 15, 27, -21, -26, 18, 28, -1, -41, 5, 51, -9, -51, -48, -38, -31, - -24, -16, -8, -2, 1, 6, 23, 52, 41, -39, -83, -50, -19, -13, -12, -8, - 1, 10, 20, 27, 34, 35, 15, -40, -46, 27, 16, -35, -38, -6, 19, -18, - -35, 17, 61, 55, 33, 21, 22, 25, 21, 18, 52, 98, 92, 31, -5, 9, - 17, -1, -2, 7, -7, -47, -43, 24, 62, 39, -3, -20, -48, -88, 46, 113, - 25, 4, -20, -45, -25, 42, 82, 47, 19, 28, 42, 32, 18, 30, 19, -39, - -77, -51, -4, 10, -6, -18, -25, -37, -57, -70, -50, 4, 26, -15, -33, 9, - 27, 6, -38, -12, 50, 6, -47, -50, -40, -32, -25, -17, -10, -3, 0, 4, - 17, 45, 47, -23, -82, -60, -24, -14, -13, -10, -2, 7, 16, 24, 30, 33, - 18, -32, -56, 13, 23, -31, -41, -15, 19, -6, -35, 4, 52, 55, 35, 21, - 22, 25, 22, 15, 41, 89, 94, 38, -5, 4, 16, 2, -2, 7, -4, -41, - -48, 12, 58, 43, 2, -20, -38, -89, 14, 118, 38, 3, -15, -43, -32, 28, - 78, 53, 19, 24, 40, 34, 18, 26, 23, -28, -75, -61, -14, 10, -2, -16, - -24, -34, -53, -68, -55, -7, 25, -8, -36, 1, 27, 12, -31, -26, 45, 22, - -39, -50, -41, -32, -25, -17, -10, -4, 0, 3, 13, 38, 51, -5, -77, -69, - -31, -15, -14, -11, -4, 5, 13, 21, 27, 31, 20, -24, -61, -3, 28, -23, - -43, -23, 15, 5, -32, -6, 43, 53, 36, 22, 21, 26, 24, 14, 32, 79, - 95, 46, -3, 0, 15, 5, -1, 7, -1, -36, -52, 2, 53, 46, 7, -18, - -30, -84, -15, 114, 55, 4, -10, -40, -37, 15, 72, 59, 22, 20, 36, 36, - 19, 23, 26, -18, -70, -68, -25, 7, 2, -13, -22, -32, -49, -65, -59, -16, - 22, -1, -36, -8, 25, 17, -22, -35, 34, 36, -29, -48, -42, -32, -25, -18, - -10, -4, 0, 3, 10, 32, 52, 11, -67, -76, -38, -16, -13, -11, -6, 3, - 11, 19, 25, 30, 22, -15, -62, -19, 30, -14, -43, -30, 9, 13, -25, -15, - 33, 51, 37, 23, 21, 26, 26, 15, 24, 68, 94, 54, 0, -3, 13, 8, - 1, 8, 2, -30, -53, -8, 47, 49, 13, -16, -25, -75, -41, 102, 73, 6, - -5, -36, -40, 2, 65, 64, 25, 18, 33, 37, 21, 21, 27, -8, -63, -73, - -36, 2, 5, -10, -21, -30, -45, -62, -61, -25, 17, 5, -35, -17, 21, 21, - -13, -39, 20, 46, -16, -46, -42, -32, -25, -17, -10, -4, 0, 3, 8, 27, - 50, 25, -54, -81, -46, -19, -13, -12, -7, 1, 9, 17, 23, 28, 23, -8, - -59, -35, 27, -5, -42, -35, 2, 20, -16, -20, 24, 47, 38, 24, 21, 27, - 28, 17, 18, 58, 91, 62, 5, -6, 10, 10, 3, 9, 5, -24, -52, -17, - 40, 50, 18, -13, -22, -64, -60, 83, 90, 12, -3, -31, -41, -8, 55, 67, - 30, 17, 30, 37, 24, 19, 27, 1, -54, -75, -46, -4, 7, -7, -18, -28, - -41, -58, -61, -32, 11, 10, -31, -24, 17, 23, -4, -39, 5, 52, -2, -42, - -42, -32, -25, -17, -10, -4, 0, 3, 6, 22, 47, 35, -38, -82, -55, -23, - -13, -12, -8, -1, 7, 15, 21, 26, 23, -1, -53, -48, 20, 5, -39, -39, - -6, 22, -5, -22, 14, 43, 38, 25, 21, 27, 29, 19, 15, 47, 86, 68, - 12, -7, 7, 11, 4, 10, 7, -18, -50, -25, 33, 51, 24, -10, -20, -52, - -72, 58, 103, 21, -1, -26, -41, -17, 44, 67, 35, 16, 27, 36, 26, 18, - 25, 8, -45, -76, -55, -13, 7, -3, -16, -26, -38, -55, -61, -38, 4, 13, - -26, -30, 11, 25, 4, -36, -10, 51, 14, -37, -42, -33, -24, -17, -10, -4, - 1, 3, 6, 18, 42, 42, -22, -80, -63, -28, -14, -12, -9, -3, 5, 12, - 19, 24, 23, 3, -46, -58, 9, 14, -34, -41, -14, 21, 6, -21, 4, 36, - 38, 26, 21, 26, 30, 22, 13, 37, 78, 73, 20, -7, 4, 11, 6, 10, - 10, -11, -45, -33, 22, 49, 29, -4, -18, -40, -75, 23, 108, 40, 1, -18, - -39, -26, 28, 65, 42, 17, 22, 34, 29, 18, 23, 15, -30, -71, -65, -27, - 3, 2, -11, -22, -34, -49, -58, -45, -7, 13, -16, -35, -1, 24, 13, -23, - -26, 37, 36, -20, -39, -34, -24, -17, -10, -4, 1, 3, 5, 12, 33, 46, - 6, -64, -75, -40, -17, -12, -10, -5, 2, 9, 15, 20, 22, 10, -30, -65, - -18, 20, -19, -42, -27, 11, 21, -8, -8, 22, 34, 27, 22, 26, 31, 27, - 14, 22, 60, 75, 34, -4, -2, 8, 8, 11, 14, -2, -36, -42, 6, 44, - 36, 4, -15, -26, -66, -24, 95, 71, 8, -10, -33, -32, 7, 56, 51, 21, - 17, 29, 32, 20, 19, 20, -12, -59, -72, -45, -8, 5, -5, -17, -28, -42, - -54, -50, -21, 9, -5, -36, -16, 19, 21, -7, -34, 12, 51, 4, -33, -34, - -25, -17, -10, -4, 1, 4, 5, 9, 23, 44, 29, -39, -79, -55, -24, -13, - -10, -7, -1, 6, 12, 16, 20, 14, -15, -62, -46, 16, -2, -39, -36, -2, - 29, 9, -12, 8, 28, 27, 23, 25, 31, 31, 17, 13, 43, 72, 46, 2, - -5, 5, 8, 11, 16, 5, -26, -44, -8, 36, 40, 12, -12, -19, -52, -53, - 67, 94, 20, -5, -27, -35, -7, 45, 55, 27, 15, 25, 32, 23, 17, 21, - 0, -47, -73, -57, -19, 4, 0, -13, -24, -37, -50, -51, -29, 3, 1, -32, - -26, 12, 23, 3, -32, -6, 52, 22, -26, -34, -25, -17, -10, -4, 1, 5, - 6, 8, 18, 39, 38, -21, -76, -64, -30, -14, -10, -8, -2, 4, 10, 15, - 18, 14, -9, -56, -57, 7, 7, -35, -39, -10, 27, 18, -10, 2, 23, 26, - 23, 24, 31, 32, 20, 11, 35, 67, 51, 7, -6, 3, 8, 11, 17, 8, - -20, -44, -15, 31, 41, 16, -9, -17, -43, -61, 44, 102, 31, -2, -23, -35, - -15, 36, 56, 32, 0, -27, 1, -1, -1, 3, -4, -2, 1, -1, -2, 2, - 3, -6, 1, 2, -6, 2, 2, -4, -1, 2, -5, 1, 4, -4, 0, -1, - 0, -1, -2, 2, 2, -6, 0, 4, -3, -3, 4, -2, -3, -2, 0, 1, - 1, -2, -2, 3, -8, 27, -42, 11, 21, -35, 34, -25, 12, 9, -24, 14, - 13, -38, 53, -42, -3, 46, -73, 55, -16, -9, 28, -49, 38, -12, -21, 49, - -51, 20, 32, -73, 64, -28, -7, 32, -50, 42, -11, -30, 49, -21, -31, 46, - -25, -7, 20, -22, 18, -16, -10, 21, -23, 5, 28, -35, 8, 0, 8, -26, - 19, 6, -11, -20, 64, -46, -18, 51, -73, 119, -117, 46, 36, -80, 67, -46, - 22, 0, -24, 56, -59, 14, 26, -40, 24, -9, 20, -20, -15, 43, -26, -11, - 9, 14, -3, -31, 6, 54, -62, 3, 67, -78, 20, 21, -25, 31, -41, 18, - 27, -53, 32, 15, -48, 37, -11, 4, -12, -3, 31, -24, -21, 42, -10, -45, - 55, -32, 34, -43, -14, 86, -78, 8, 39, -35, -2, 13, 2, 5, -11, -4, - 7, 5, -31, 37, -4, -28, 28, -9, -11, 10, -1, 4, -18, 17, -9, -13, - 24, -18, 20, -18, -30, 59, -25, -29, 48, -15, -29, 23, 4, -3, -18, 14, - 6, -8, -19, 19, 8, -13, 0, 13, -18, 4, 1, 0, 0, 10, -14, -12, - 39, -46, 23, 9, -22, 23, -20, -22, 63, -42, -28, 77, -66, 12, 38, -56, - 31, 27, -77, 66, -11, -39, 59, -33, -41, 92, -54, -50, 96, -36, -46, 46, - -17, 31, -43, -28, 98, -57, -50, 84, -22, -44, 39, -8, 17, -28, -13, 63, - -67, 16, 10, 3, -15, -4, 36, -34, -1, 26, -27, -2, 13, 7, -22, 0, - 27, -11, -19, 6, 26, -42, 14, 18, -7, -14, -10, 37, -14, -24, 25, -4, - -5, -10, 3, 35, -39, -7, 31, -8, -23, 15, 4, -1, -25, 28, 7, -35, - 34, -16, -1, 9, -35, 45, -22, -17, 48, -52, 24, 22, -65, 48, 7, -45, - 47, -19, -33, 71, -70, 46, -7, -52, 68, -25, -35, 48, -13, -17, 14, 2, - -12, 8, -10, 1, 22, -32, 4, 34, -26, -18, 29, -7, -19, 15, -7, 15, - -8, -29, 50, -22, -35, 53, -19, -37, 47, -9, -40, 41, 1, -27, 7, 3, - 0, 0, -7, 13, -7, -21, 26, 14, -44, 11, 40, -51, 10, 26, -28, 16, - -13, -3, 31, -42, 11, 34, -52, 11, 34, -43, 10, 29, -19, -21, 27, -10, - -5, 10, -14, 11, 3, -35, 43, 3, -52, 37, 22, -66, 49, -12, -19, 50, - -58, 16, 42, -70, 50, -2, -42, 60, -69, 43, 11, -57, 54, -8, -31, 23, - -8, -7, 24, -32, 11, 21, -51, 60, -44, -6, 68, -87, 33, 45, -79, 50, - -7, -13, 21, -40, 31, 12, -41, 18, 24, -39, 15, 7, -17, 25, -20, -12, - 43, -47, 17, 6, -16, 10, 4, -11, -1, 14, -10, -7, 6, 9, -23, 9, - 3, 13, -30, 16, 16, -33, 17, 4, -17, 23, -29, 3, 54, -86, 50, 11, - -41, 30, -23, 15, 18, -60, 56, 7, -65, 49, -4, -12, 1, -6, 19, -4, - -33, 35, -10, -12, 13, -2, -2, -2, 2, -10, 16, -8, -11, 19, -6, -19, - 24, -14, 9, 3, -24, 24, -6, -13, 19, -11, -6, 6, -9, 16, -8, -10, - 14, -10, -1, -5, 16, -8, -25, 37, -11, -27, 37, -14, -13, 19, -17, 14, - -5, -15, 26, -27, 10, 11, -23, 22, -5, -19, 25, -7, -28, 44, -35, 0, - 25, -31, 31, -10, -26, 46, -41, 2, 33, -40, 24, 8, -43, 44, -12, -25, - 37, -25, -6, 29, -27, 5, 24, -40, 24, -1, -25, 23, -1, -6, -2, -1, - 14, -24, 8, 13, -11, 0, -13, 16, 15, -56, 43, 12, -35, 14, -9, 18, - -10, -19, 28, -3, -27, 23, -2, -14, 27, -35, 10, 35, -68, 44, 7, -43, - 46, -21, -25, 56, -35, -21, 51, -33, -8, 28, -27, 19, -2, -26, 36, -26, - 3, 13, -12, 6, -10, 8, -14, 15, -12, 0, 13, -9, -16, 32, -27, 3, - 23, -49, 49, -17, -31, 63, -64, 25, 36, -76, 61, -11, -47, 75, -54, -9, - 69, -81, 32, 29, -63, 46, -7, -26, 39, -31, 6, 18, -26, 13, -5, 5, - -5, -2, 5, -12, 17, -17, -2, 22, -25, 1, 20, -19, 3, 6, -6, 3, - -9, 10, -6, -3, 7, -7, -3, 12, -5, -5, -11, 24, -7, -23, 24, 0, - -14, 0, 12, -10, -2, 5, 0, 1, -10, 10, -2, -17, 26, -11, -16, 28, - -22, 6, 4, -17, 30, -27, -7, 46, -54, 15, 29, -42, 25, -4, -15, 26, - -29, 11, 15, -28, 19, -7, 1, 8, -20, 14, 1, -15, 11, -2, -2, 0, - -10, 15, -5, -12, 15, -1, -15, 12, 4, -15, 9, -1, -9, 9, -5, -6, - 13, -12, 1, 6, -6, -3, 6, -4, 0, -6, 11, -9, -2, 13, -12, -2, - -1, 8, -11, 4, 2, -6, 4, -4, 4, 0, -13, 15, 0, -21, 23, -5, - -15, 15, -2, -9, 6, -2, -4, 2, 3, -1, -7, 7, -2, -9, 6, 2, - -9, 4, 5, -12, 10, -9, 4, 5, -16, 12, -2, -13, 20, -13, -4, 17, - -23, 14, 2, -20, 22, -13, -3, 15, -22, 12, 4, -18, 17, -7, -7, 13, - -14, 6, 4, -10, 9, -5, -6, 7, 0, -7, 8, -4, -1, 0, -6, 4, - 7, -14, 2, 13, -16, 3, 10, -15, 7, -1, -10, 14, -10, -2, 11, -9, - -4, 7, -6, 3, -3, -5, 9, -6, -3, 5, 1, -7, 3, -2, 0, -2, - 0, 4, -3, -2, 4, -6, 4, -2, -2, 0, 1, 0, -7, 7, -2, -7, - 9, -7, -4, 11, -15, 11, -2, -9, 9, -4, -3, 2, 3, -7, 5, 0, - -5, 6, -7, 1, 7, -10, -2, 13, -9, -4, 8, -4, -2, -1, 1, 1, - -7, 4, 5, -8, 0, 6, -6, 0, 3, -4, 0, 1, -2, 2, -4, -4, - 8, -7, -1, 6, -9, 8, -3, -6, 12, -12, 1, 10, -11, 1, 5, -6, - 3, -2, -3, 7, -10, 2, 7, -12, 5, 2, -5, 3, -5, 0, 6, -10, - 3, 4, -8, 2, 2, -3, 3, -8, 8, 2, -14, 10, 3, -12, 8, 2, - -11, 8, -2, -6, 9, -7, -4, 10, -9, -1, 7, -7, 1, 3, -8, 8, - -2, -8, 10, -3, -5, 5, -6, 3, 1, -8, 10, -5, -5, 7, -4, -2, - 2, -3, 1, -1, -3, 4, -3, 0, 0, 0, 0, -4, 3, -2, -3, 3, - -5, 3, 0, -7, 5, 1, -8, 5, 1, -6, 6, -5, 0, 3, -7, 3, - 2, -6, 3, 2, -6, 3, 1, -3, -2, 5, -4, -1, 3, -4, 0, 0, - -3, 5, -5, -3, 7, -5, -3, 6, -4, 0, -1, -3, 3, -2, -1, 2, - -1, -2, 1, -2, 1, -1, -7, 8, -1, 5, -7, 13, -22, 8, -7, 8, - -110, -28, 24, 54, 36, 2, 60, -45, 57, 42, -43, 20, 41, -66, 24, -11, - 18, -18, -38, -63, -36, 30, -11, 33, 25, 30, 18, 11, -18, -5, 5, -46, - 40, 1, -13, -18, -20, -31, 20, 10, 29, -7, -18, 40, -29, -17, 42, -19, - 6, -4, 6, -8, 10, -26, -5, 3, 1, -17, 6, 0, 19, -1, 8, 0, - -6, -10, -1, -12, -1, 1, -3, 8, -7, 4, 11, 4, 14, -13, 16, -19, - -4, -13, -13, -14, 6, 4, -1, 4, 11, -1, 11, -1, 1, -4, -1, -15, - 6, -9, 1, -1, 0, 3, 1, -8, 3, -1, -1, 2, -2, 2, -2, 1, - -5, -7, 3, -3, 6, -3, 4, -1, 0, -4, 2, -7, 3, -6, -1, -1, - 4, 0, 3, -2, 2, -5, 5, -8, -3, -3, 2, -5, 7, -1, 4, -2, - 4, -10, 6, -6, -1, -4, 5, -13, 7, -6, 5, -8, 17, -20, 14, -6, - 9, -40, 71, -127, 9, -73, 127, 76, -28, 74, -32, 8, -62, -49, -38, 40, - -68, 22, -12, 68, 10, 39, -10, 0, 35, -23, 0, -59, -15, -7, -3, -23, - 1, -20, 37, 27, 2, 30, -2, 17, 2, -5, -7, -27, -29, 16, -3, -11, - 1, -16, -5, -8, -10, 7, 32, 9, 5, -4, 16, 5, -8, -17, -16, 5, - -13, 8, 11, 15, -10, -9, 0, -1, 2, 7, -3, -23, 9, 2, 3, 1, - -13, -1, -6, 11, -6, 8, 1, 12, -12, 9, -14, 8, -1, 0, -3, -13, - 4, -7, -4, 8, 5, -5, -7, 4, -2, -3, 2, 3, -6, 8, -3, 1, - -3, -2, 2, -6, 2, -4, -3, -4, 3, 1, 0, 0, 1, -1, -1, 2, - -2, 0, -4, -2, 1, 2, 0, -3, 1, -3, 0, -1, -3, -6, 2, -2, - 3, -4, 10, -8, 9, -5, 12, -19, 46, 37, -128, 60, -90, 102, -65, 40, - -57, 39, -6, 23, -8, 19, 24, 15, -17, -47, -27, -36, -16, 21, 3, 23, - 14, 50, -8, 19, 25, 7, -9, -28, -63, -37, 0, -42, 54, -17, 68, -3, - 30, -12, -4, 11, -15, 9, -25, -15, -2, -27, -25, 38, -8, -13, 33, 24, - 12, -38, 39, -12, -3, -17, -44, 38, 2, 27, 3, -5, -4, -13, -30, -56, - -4, 11, 1, 9, 17, 46, 25, -14, 6, -3, -7, -21, 2, 16, -5, -22, - 2, -2, 6, -12, -25, -15, 10, 9, 8, 11, 43, 8, -5, -22, -16, 14, - -31, 16, 7, -7, -26, -20, -2, 9, 11, 26, 7, 6, -20, -13, 0, 4, - 17, -17, -18, 10, 2, -10, 27, -8, 24, -23, -14, 1, 0, 13, -19, 14, - 10, -16, 16, -4, -20, 20, -33, 2, 2, 24, 21, -3, -26, -24, -18, -18, - 10, 10, 24, 18, 2, 9, -24, 16, -14, -8, 9, -5, -14, 8, -5, 30, - -11, 11, -13, -15, -12, 7, 4, -13, -13, 13, -13, 12, 23, 9, 0, 14, - -10, -9, -35, -2, -21, 12, -1, 17, 19, 11, -4, 0, -18, -24, 11, -10, - 1, 11, 12, -13, -16, 10, -23, 21, 9, -9, 3, 12, -6, 3, -5, 12, - 0, -2, 0, -19, -9, 5, -11, -7, 10, 1, -3, 9, 18, -6, 0, -1, - 1, -13, 2, 1, -3, -8, 17, -4, -9, 18, -15, 8, -1, -11, -5, -14, - 11, -5, -7, 12, 16, -7, 7, -3, -11, -5, -6, 1, 4, -3, -3, 15, - 5, 0, 3, 6, -16, 4, -14, -6, -9, -4, 2, 11, 11, 7, -2, 4, - -12, -7, -14, -6, -7, 9, 4, 7, -2, 6, 5, 6, -4, -3, -4, 7, - -7, -11, -9, 0, -3, 7, -2, -2, 3, 13, -4, -6, -15, 9, -7, -1, - 4, 6, 5, 8, -6, -8, 0, -11, -4, 6, -8, 4, 3, 5, 13, -4, - -9, -3, 4, -3, -3, 4, -1, -12, 6, -14, 2, 3, 15, 2, 6, -7, - -8, 3, 1, -2, 3, -3, -12, -6, -14, 7, -2, 13, 6, 10, 6, 0, - -2, -10, -12, -8, -6, -7, -6, 6, 4, -2, 5, 2, 0, -1, 3, -11, - 4, 0, 20, -8, -2, 0, -1, -3, 7, -3, -4, -2, -6, -10, -10, -8, - 1, 2, 5, 8, 2, 5, 8, 3, 4, 3, -2, -15, 0, -1, -7, -2, - -5, -10, 10, -1, 5, 3, 5, -1, -2, -8, -5, -9, 1, -8, 6, 5, - 4, 1, 1, 2, 3, -2, 4, -7, 1, -7, -9, -2, 0, 2, 3, 6, - -8, 8, 3, 0, -2, -9, -3, -2, 0, 3, -1, -2, -3, 7, -3, 10, - -8, 1, -12, 3, -7, 2, -3, 7, 4, 4, 0, 0, -6, -1, -5, -3, - -4, -7, 0, 5, 7, 0, 2, -3, 10, -1, 3, -7, -5, -4, -9, -3, - -7, 5, -4, 9, 2, 1, 4, 5, 0, -5, 1, -8, 4, -9, 5, -5, - 0, 3, -2, -1, 1, 1, -7, 7, 0, 3, -5, 0, -3, -1, -1, -5, - -1, 1, -1, 1, -1, 0, 2, 0, 2, -7, -7, 4, -1, 0, 3, 4, - -1, -3, -4, -6, 3, -2, 4, -1, 5, -2, -1, -5, -2, -4, 1, 3, - 2, 2, 0, -3, 1, 1, -3, -3, -1, 1, -3, -2, -1, -2, -3, -1, - 0, 4, 3, 5, 2, 1, -4, -9, -3, -7, 1, -2, 7, -2, 3, 3, - 3, 1, 0, -1, -6, -7, -6, -4, -1, 1, 0, 5, 2, -2, 2, -3, - -1, 3, -1, 1, -4, -4, -5, 0, -7, 2, -4, 3, 4, 1, 2, -1, - -1, -2, -2, 0, -1, 1, -1, -1, -3, 1, 1, 3, -3, -1, 1, 1, - -2, -3, -8, -5, 0, -1, 5, 2, 3, 1, -2, -1, -1, -3, 1, 1, - -2, -3, -3, -1, 0, -1, 1, 2, 2, 5, 0, -1, -2, -1, -2, 0, - -4, 0, -5, -1, -1, 0, 1, 5, 4, -2, -1, -2, 0, -6, -1, 0, - 1, -1, -2, 1, 0, 0, 3, 1, -2, 1, -2, -4, -1, 0, -1, -1, - -4, -2, -4, 2, -1, 1, 0, 3, 2, 0, 4, -1, 4, -6, 2, -4, - -3, -5, -4, -3, 0, 2, 0, 1, 4, 2, 2, -2, -2, -5, -6, -5, - -3, -2, 1, -1, 0, 0, 2, 2, 2, 0, 4, -2, 3, 2, -1, -2, - -3, -3, -3, -5, -5, -5, -1, -1, 0, 2, 2, 4, 1, 2, 1, 2, - -1, -1, -3, -4, -5, -3, -2, -2, -1, 1, 4, 2, 2, 2, 1, -1, - -2, -6, -2, -3, 2, -1, 1, -2, 0, 2, 1, 2, -2, 1, 0, -2, - -2, -3, 0, -2, -1, -1, 0, -2, -2, 1, 0, 2, -1, 1, -1, 0, - -1, -1, -7, 8, -1, 5, -7, 13, -22, 8, -7, 8, -110, -28, 24, 54, - 36, 2, 60, -45, 57, 42, -43, 20, 41, -66, 24, -11, 18, -18, -38, -63, - -36, 30, -11, 33, 25, 30, 18, 11, -18, -5, 5, -46, 40, 1, -13, -18, - -20, -31, 20, 10, 29, -7, -18, 40, -29, -17, 42, -19, 6, -4, 6, -8, - 10, -26, -5, 3, 1, -17, 6, 0, 19, -1, 8, 0, -6, -10, -1, -12, - -1, 1, -3, 8, -7, 4, 11, 4, 14, -13, 16, -19, -4, -13, -13, -14, - 6, 4, -1, 4, 11, -1, 11, -1, 1, -4, -1, -15, 6, -9, 1, -1, - 0, 3, 1, -8, 3, -1, -1, 2, -2, 2, -2, 1, -5, -7, 3, -3, - 6, -3, 4, -1, 0, -4, 2, -7, 3, -6, -1, -1, 4, 0, 3, -2, - 2, -5, 5, -8, -3, -3, 2, -5, 7, -1, 4, -2, 4, -10, 6, -6, - -1, -4, 5, -13, 7, -6, 5, -8, 17, -20, 14, -6, 9, -40, 71, -127, - 9, -73, 127, 76, -28, 74, -32, 8, -62, -49, -38, 40, -68, 22, -12, 68, - 10, 39, -10, 0, 35, -23, 0, -59, -15, -7, -3, -23, 1, -20, 37, 27, - 2, 30, -2, 17, 2, -5, -7, -27, -29, 16, -3, -11, 1, -16, -5, -8, - -10, 7, 32, 9, 5, -4, 16, 5, -8, -17, -16, 5, -13, 8, 11, 15, - -10, -9, 0, -1, 2, 7, -3, -23, 9, 2, 3, 1, -13, -1, -6, 11, - -6, 8, 1, 12, -12, 9, -14, 8, -1, 0, -3, -13, 4, -7, -4, 8, - 5, -5, -7, 4, -2, -3, 2, 3, -6, 8, -3, 1, -3, -2, 2, -6, - 2, -4, -3, -4, 3, 1, 0, 0, 1, -1, -1, 2, -2, 0, -4, -2, - 1, 2, 0, -3, 1, -3, 0, -1, -3, -6, 2, -2, 3, -4, 10, -8, - 9, -5, 12, -19, 46, 37, -128, 60, -90, 102, -65, 40, -57, 39, -6, 23, - -8, 19, 24, 15, -17, -47, -27, -36, -16, 21, 3, 23, 14, 50, -8, 19, - 25, 7, -9, -28, -63, -37, 0, -42, 54, -17, 68, -3, 30, -12, -4, 11, - -15, 9, -25, -15, -2, -27, -25, 38, -8, -13, 33, 24, 12, -38, 39, -12, - -3, -17, -44, 38, 2, 27, 3, -5, -4, -13, -30, -56, -4, 11, 1, 9, - 17, 46, 25, -14, 6, -3, -7, -21, 2, 16, -5, -22, 2, -2, 6, -12, - -25, -15, 10, 9, 8, 11, 43, 8, -5, -22, -16, 14, -31, 16, 7, -7, - -26, -20, -2, 9, 11, 26, 7, 6, -20, -13, 0, 4, 17, -17, -18, 10, - 2, -10, 27, -8, 24, -23, -14, 1, 0, 13, -19, 14, 10, -16, 16, -4, - -20, 20, -33, 2, 2, 24, 21, -3, -26, -24, -18, -18, 10, 10, 24, 18, - 2, 9, -24, 16, -14, -8, 9, -5, -14, 8, -5, 30, -11, 11, -13, -15, - -12, 7, 4, -13, -13, 13, -13, 12, 23, 9, 0, 14, -10, -9, -35, -2, - -21, 12, -1, 17, 19, 11, -4, 0, -18, -24, 11, -10, 1, 11, 12, -13, - -16, 10, -23, 21, 9, -9, 3, 12, -6, 3, -5, 12, 0, -2, 0, -19, - -9, 5, -11, -7, 10, 1, -3, 9, 18, -6, 0, -1, 1, -13, 2, 1, - -3, -8, 17, -4, -9, 18, -15, 8, -1, -11, -5, -14, 11, -5, -7, 12, - 16, -7, 7, -3, -11, -5, -6, 1, 4, -3, -3, 15, 5, 0, 3, 6, - -16, 4, -14, -6, -9, -4, 2, 11, 11, 7, -2, 4, -12, -7, -14, -6, - -7, 9, 4, 7, -2, 6, 5, 6, -4, -3, -4, 7, -7, -11, -9, 0, - -3, 7, -2, -2, 3, 13, -4, -6, -15, 9, -7, -1, 4, 6, 5, 8, - -6, -8, 0, -11, -4, 6, -8, 4, 3, 5, 13, -4, -9, -3, 4, -3, - -3, 4, -1, -12, 6, -14, 2, 3, 15, 2, 6, -7, -8, 3, 1, -2, - 3, -3, -12, -6, -14, 7, -2, 13, 6, 10, 6, 0, -2, -10, -12, -8, - -6, -7, -6, 6, 4, -2, 5, 2, 0, -1, 3, -11, 4, 0, 20, -8, - -2, 0, -1, -3, 7, -3, -4, -2, -6, -10, -10, -8, 1, 2, 5, 8, - 2, 5, 8, 3, 4, 3, -2, -15, 0, -1, -7, -2, -5, -10, 10, -1, - 5, 3, 5, -1, -2, -8, -5, -9, 1, -8, 6, 5, 4, 1, 1, 2, - 3, -2, 4, -7, 1, -7, -9, -2, 0, 2, 3, 6, -8, 8, 3, 0, - -2, -9, -3, -2, 0, 3, -1, -2, -3, 7, -3, 10, -8, 1, -12, 3, - -7, 2, -3, 7, 4, 4, 0, 0, -6, -1, -5, -3, -4, -7, 0, 5, - 7, 0, 2, -3, 10, -1, 3, -7, -5, -4, -9, -3, -7, 5, -4, 9, - 2, 1, 4, 5, 0, -5, 1, -8, 4, -9, 5, -5, 0, 3, -2, -1, - 1, 1, -7, 7, 0, 3, -5, 0, -3, -1, -1, -5, -1, 1, -1, 1, - -1, 0, 2, 0, 2, -7, -7, 4, -1, 0, 3, 4, -1, -3, -4, -6, - 3, -2, 4, -1, 5, -2, -1, -5, -2, -4, 1, 3, 2, 2, 0, -3, - 1, 1, -3, -3, -1, 1, -3, -2, -1, -2, -3, -1, 0, 4, 3, 5, - 2, 1, -4, -9, -3, -7, 1, -2, 7, -2, 3, 3, 3, 1, 0, -1, - -6, -7, -6, -4, -1, 1, 0, 5, 2, -2, 2, -3, -1, 3, -1, 1, - -4, -4, -5, 0, -7, 2, -4, 3, 4, 1, 2, -1, -1, -2, -2, 0, - -1, 1, -1, -1, -3, 1, 1, 3, -3, -1, 1, 1, -2, -3, -8, -5, - 0, -1, 5, 2, 3, 1, -2, -1, -1, -3, 1, 1, -2, -3, -3, -1, - 0, -1, 1, 2, 2, 5, 0, -1, -2, -1, -2, 0, -4, 0, -5, -1, - -1, 0, 1, 5, 4, -2, -1, -2, 0, -6, -1, 0, 1, -1, -2, 1, - 0, 0, 3, 1, -2, 1, -2, -4, -1, 0, -1, -1, -4, -2, -4, 2, - -1, 1, 0, 3, 2, 0, 4, -1, 4, -6, 2, -4, -3, -5, -4, -3, - 0, 2, 0, 1, 4, 2, 2, -2, -2, -5, -6, -5, -3, -2, 1, -1, - 0, 0, 2, 2, 2, 0, 4, -2, 3, 2, -1, -2, -3, -3, -3, -5, - -5, -5, -1, -1, 0, 2, 2, 4, 1, 2, 1, 2, -1, -1, -3, -4, - -5, -3, -2, -2, -1, 1, 4, 2, 2, 2, 1, -1, -2, -6, -2, -3, - 2, -1, 1, -2, 0, 2, 1, 2, -2, 1, 0, -2, -2, -3, 0, -2, - -1, -1, 0, -2, -2, 1, 0, 2, -1, 1, -1, 0, -1, -1, 0, -1, - 0, -2, 2, 0, 2, 2, 5, 3, 6, 8, 12, 13, -6, -110, -7, 51, - -99, -128, 10, -28, -39, 25, -33, -27, 41, 34, -5, 17, 23, 25, 24, 23, - 20, 24, 25, 24, 21, 20, 23, 23, 16, 20, 9, 20, 18, 10, 14, 5, - 14, 11, 7, 5, 3, 10, 2, 7, -4, 0, 3, 0, -3, -5, -6, -1, - -12, -4, -17, -10, 9, -42, -40, 65, 40, -58, 29, 72, 39, 50, 31, -1, - 30, 25, -7, -4, -33, -47, -29, -49, -74, -69, -71, -79, -61, -51, -57, -53, - -34, -20, -22, -16, -10, -6, -2, 1, 3, 4, 8, 8, 12, 10, 9, 14, - 13, 12, 12, 13, 12, 12, 14, 12, 12, 12, 12, 13, 12, 9, 11, 11, - 11, 7, 8, 7, 8, 9, 2, 5, 8, -6, 2, 17, -17, -20, 18, 5, - -15, 15, 27, 21, 37, 44, 41, 46, 38, 26, 32, 26, -4, -15, -6, -20, - -44, -50, -54, -60, -59, -58, -58, -54, -46, -38, -32, -26, -19, -14, -9, -5, - -1, 2, 5, 7, 8, 10, 11, 12, 13, 13, 14, 14, 14, 13, 13, 14, - 15, 14, 11, 13, 14, 13, 12, 10, 12, 12, 10, 10, 8, 6, 11, 9, - -1, 5, 11, -1, -6, 1, -1, -4, 0, -1, 0, 14, 25, 24, 28, 37, - 38, 38, 38, 31, 22, 14, 4, -5, -15, -26, -38, -47, -52, -54, -56, -57, - -55, -51, -45, -39, -34, -28, -22, -17, -13, -8, -3, -1, 2, 5, 7, 8, - 10, 11, 12, 13, 13, 13, 13, 14, 14, 13, 13, 14, 13, 12, 13, 13, - 12, 11, 12, 11, 9, 11, 9, 6, 7, 8, 5, 3, 2, 0, 0, 0, - -2, -3, 0, 3, 6, 11, 18, 23, 27, 31, 34, 35, 32, 27, 21, 14, - 5, -5, -15, -26, -35, -43, -48, -52, -53, -53, -52, -49, -44, -40, -35, -29, - -24, -19, -14, -10, -6, -3, 1, 3, 5, 7, 9, 10, 11, 12, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 12, 13, 12, 11, 13, 11, 10, 10, 9, - 9, 8, 7, 7, 5, 4, 3, 2, 0, -1, -1, 0, 2, 4, 8, 12, - 17, 22, 25, 28, 30, 30, 28, 24, 19, 12, 3, -5, -14, -23, -31, -37, - -43, -46, -46, -48, -47, -43, -41, -38, -33, -29, -25, -21, -16, -12, -8, -5, - -2, 0, 3, 5, 7, 9, 10, 11, 12, 12, 13, 14, 13, 13, 13, 13, - 13, 12, 12, 12, 11, 11, 11, 10, 9, 9, 8, 7, 7, 6, 5, 4, - 4, 3, 3, 3, 3, 5, 6, 8, 10, 12, 14, 17, 18, 19, 20, 19, - 17, 14, 10, 5, 0, -6, -11, -17, -22, -26, -29, -32, -34, -34, -35, -34, - -32, -31, -28, -26, -23, -20, -17, -14, -11, -8, -5, -3, 0, 2, 4, 6, - 7, 8, 9, 10, 11, 11, 12, 12, 12, 12, 11, 11, 11, 10, 10, 9, - 9, 8, 8, 7, 7, 6, 5, 5, 5, 4, 4, 5, 5, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 13, 13, 13, 12, 10, 8, 5, 2, -2, -6, - -10, -14, -18, -21, -24, -26, -28, -29, -29, -30, -29, -28, -27, -25, -23, -20, - -18, -15, -12, -10, -7, -4, -2, 0, 2, 4, 6, 7, 9, 10, 10, 11, - 11, 12, 12, 12, 12, 11, 11, 11, 10, 10, 9, 9, 8, 8, 7, 7, - 6, 6, 5, 5, 5, 5, 6, 6, 7, 7, 8, 9, 10, 11, 12, 13, - 13, 13, 12, 11, 10, 8, 5, 2, -1, -5, -9, -13, -16, -19, -22, -24, - -26, -27, -28, -28, -28, -27, -26, -24, -22, -20, -18, -15, -13, -10, -7, -5, - -2, 0, 2, 4, 5, 7, 8, 9, 10, 11, 11, 11, 11, 11, 11, 11, - 11, 10, 10, 9, 9, 8, 8, 7, 7, 6, 6, 6, 5, 5, 5, 5, - 6, 6, 6, 7, 8, 9, 10, 11, 11, 12, 12, 12, 11, 10, 9, 7, - 5, 2, -1, -5, -8, -12, -15, -18, -21, -23, -25, -26, -27, -27, -27, -26, - -25, -24, -22, -20, -18, -16, -13, -11, -8, -6, -3, -1, 1, 3, 4, 6, - 7, 8, 9, 10, 10, 10, 11, 11, 11, 10, 10, 10, 10, 9, 9, 8, - 8, 7, 7, 6, 6, 6, 5, 5, 5, 5, 6, 6, 6, 7, 8, 9, - 9, 10, 11, 11, 11, 11, 11, 10, 9, 7, 4, 2, -1, -4, -7, -11, - -14, -17, -19, -21, -23, -24, -25, -26, -26, -25, -24, -23, -22, -20, -18, -16, - -13, -11, -9, -6, -4, -2, 0, 2, 4, 5, 7, 8, 9, 9, 10, 10, - 11, 11, 11, 11, 10, 10, 10, 9, 9, 8, 8, 7, 7, 7, 6, 6, - 6, 6, 6, 6, 6, 6, 7, 7, 8, 9, 9, 10, 11, 11, 11, 11, - 10, 10, 8, 7, 5, 2, -1, -3, -7, -10, -13, -15, -18, -20, -22, -23, - -24, -25, -25, -24, -24, -23, -21, -20, -18, -16, -14, -11, -9, -7, -5, -2, - 0, 1, 3, 5, 6, 7, 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, - 9, 9, 8, 8, 8, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 7, 7, 8, 8, 9, 9, 9, 10, 9, 9, 8, 7, 6, 4, 2, 0, - -2, -5, -7, -10, -12, -15, -17, -18, -20, -21, -21, -22, -22, -21, -21, -20, - -18, -17, -15, -13, -12, -10, -8, -6, -4, -2, 0, 1, 3, 4, 5, 6, - 7, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 8, 7, 7, 7, - 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, - 8, 8, 7, 6, 5, 4, 3, 1, -1, -3, -5, -7, -9, -10, -12, -14, - -15, -16, -17, -18, -18, -18, -18, -17, -17, -16, -15, -13, -12, -11, -9, -7, - -6, -4, -3, -1, 0, 1, 3, 4, 5, 5, 6, 7, 7, 7, 8, 8, - 8, 8, 8, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 5, 4, 3, - 2, 0, -1, -3, -5, -7, -9, -10, -12, -13, -15, -16, -17, -17, -18, -18, - -18, -17, -17, -16, -15, -14, -12, -11, -9, -8, -6, -5, -3, -2, -1, 1, - 2, 3, 4, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 6, 6, 5, 4, 3, 2, 0, -1, -3, 0, 0, - 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 5, 6, 6, - 6, 6, 6, 5, 5, 5, 5, 5, 6, 7, 8, 9, 10, 10, 11, 12, - 12, 13, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 29, - 29, 29, 28, 28, 28, 29, 30, 31, 31, 31, 31, 28, 19, -8, -41, -53, - -57, -59, -60, -62, -62, -63, -64, -65, -65, -66, -67, -69, -69, -69, -72, -74, - -73, -74, -76, -78, -79, -81, -82, -82, -83, -81, -83, -85, -81, -81, -88, -90, - -80, -64, -47, -32, -23, -18, -15, -13, -12, -12, -12, -13, -13, -13, -13, -13, - -12, -12, -11, -9, -7, -6, -4, -2, -1, 0, 1, 2, 4, 5, 7, 10, - 12, 14, 16, 18, 19, 18, 19, 21, 19, 20, 22, 22, 22, 25, 27, 28, - 29, 29, 29, 29, 29, 30, 31, 31, 31, 33, 34, 34, 35, 34, 33, 31, - 30, 29, 26, 25, 26, 25, 22, 22, 21, 20, 20, 19, 19, 19, 18, 18, - 18, 17, 17, 17, 17, 16, 16, 16, 15, 13, 13, 14, 14, 15, 13, 12, - 13, 13, 11, 12, 14, 14, 16, 17, 15, 16, 19, 19, 19, 19, 21, 19, - 17, 18, 19, 18, 15, 15, 17, 18, 18, 13, 11, 14, 15, 14, 11, 6, - 5, 10, 13, 17, 18, 11, 2, -2, -2, -3, 2, 14, 24, 30, 37, 47, - 52, 52, 56, 63, 65, 65, 63, 65, 72, 75, 73, 71, 73, 77, 82, 82, - 77, 77, 82, 90, 99, 104, 99, 89, 84, 86, 94, 106, 119, 127, 126, 117, - 104, 87, 64, 42, 24, 10, -2, -15, -22, -25, -27, -30, -35, -37, -36, -34, - -33, -36, -40, -42, -44, -43, -44, -48, -53, -57, -59, -57, -53, -52, -53, -57, - -62, -68, -73, -75, -75, -71, -63, -56, -48, -40, -34, -29, -26, -23, -22, -21, - -19, -19, -20, -21, -22, -22, -22, -22, -22, -21, -21, -21, -20, -19, -19, -18, - -18, -17, -17, -16, -14, -14, -13, -11, -9, -9, -9, -9, -9, -8, -8, -8, - -8, -8, -7, -6, -7, -6, -4, -3, -2, -2, -3, -4, -3, -3, -2, -1, - 0, 0, -1, -1, 0, -1, -1, -1, -3, -5, -5, -8, -10, -10, -9, -9, - -10, -11, -11, -11, -11, -11, -10, -9, -10, -10, -10, -11, -12, -12, -13, -12, - -11, -12, -14, -14, -11, -10, -12, -11, -11, -12, -12, -11, -11, -13, -12, -9, - -6, -6, -7, -7, -6, -5, -4, -4, -5, -8, -12, -11, -8, -4, -3, -5, - -6, -7, -9, -12, -13, -8, -3, -2, -4, -8, -11, -14, -15, -17, -19, -19, - -15, -8, -1, 2, 4, 8, 12, 17, 23, 26, 25, 24, 25, 30, 36, 40, - 39, 36, 33, 32, 33, 37, 43, 49, 53, 53, 49, 45, 43, 43, 46, 52, - 60, 67, 76, 82, 82, 78, 69, 58, 47, 37, 26, 14, 2, -9, -16, -21, - -24, -28, -32, -35, -37, -38, -37, -36, -36, -36, -39, -43, -46, -49, -51, -49, - -47, -46, -45, -45, -48, -52, -58, -62, -65, -66, -65, -62, -58, -54, -50, -45, - -39, -34, -30, -28, -25, -23, -21, -20, -20, -20, -20, -19, -18, -19, -20, -18, - -17, -18, -17, -17, -18, -17, -16, -15, -15, -13, -12, -10, -10, -10, -9, -8, - -7, -6, -4, -4, -5, -6, -5, -4, -4, -3, -2, -2, -1, -1, -1, 0, - 2, 3, 2, 2, 3, 2, 1, 2, 4, 5, 5, 4, 4, 4, 3, 2, - 2, 1, 0, 0, -1, -4, -5, -4, -2, -2, -3, -3, -3, -2, -1, -2, - -3, -2, -3, -4, -4, -3, -4, -6, -7, -4, 0, 0, -2, -4, -4, -3, - -2, -2, -3, -4, -4, -3, -2, -1, 3, 6, 8, 6, 3, 0, 0, 2, - 4, 5, 4, 3, 2, 2, 2, 1, 0, -1, 2, 7, 11, 9, 6, 2, - -1, -3, -3, -5, -7, -8, -6, -3, 2, 8, 13, 17, 18, 18, 19, 23, - 28, 34, 40, 42, 42, 40, 39, 39, 40, 42, 46, 50, 55, 59, 59, 55, - 51, 48, 48, 51, 57, 63, 70, 76, 82, 86, 88, 89, 86, 80, 71, 61, - 51, 43, 34, 25, 18, 10, 2, -5, -9, -12, -13, -12, -12, -13, -14, -17, - -22, -26, -29, -28, -27, -25, -24, -24, -25, -27, -31, -35, -40, -43, -46, -47, - -49, -49, -46, -43, -40, -36, -32, -28, -24, -21, -18, -16, -14, -13, -13, -12, - -11, -11, -12, -11, -10, -9, -11, -11, -11, -12, -12, -12, -10, -10, -10, -10, - -9, -8, -7, -6, -5, -4, -4, -4, -4, -4, -3, -2, -2, -1, -2, -3, - -2, -1, 0, 0, 1, 2, 3, 2, 1, 1, 2, 3, 3, 4, 5, 4, - 4, 5, 6, 7, 6, 4, 3, 3, 3, 2, -1, -3, -3, -1, -1, -2, - -3, -3, -2, -1, 1, 0, -1, -1, -2, -5, -6, -5, -4, -4, -4, -4, - -6, -6, -4, -1, 0, -2, -6, -9, -10, -8, -5, -4, -3, -3, -1, 1, - 1, -1, -3, -4, -2, 0, 2, 2, 0, -3, -6, -7, -6, -4, -3, -2, - -1, -1, -1, 0, 1, 0, -3, -9, -14, -18, -18, -15, -12, -9, -8, -7, - -5, -3, -2, 0, 5, 11, 17, 22, 25, 24, 23, 21, 20, 22, 27, 32, - 37, 40, 41, 40, 39, 37, 35, 34, 34, 35, 39, 45, 52, 59, 66, 71, - 73, 75, 74, 71, 65, 60, 55, 48, 39, 28, 17, 7, -1, -7, -11, -13, - -13, -14, -17, -21, -24, -28, -31, -32, -32, -32, -32, -31, -29, -29, -30, -33, - -36, -40, -44, -47, -50, -52, -54, -55, -54, -52, -49, -47, -43, -39, -35, -31, - -28, -26, -24, -22, -21, -19, -18, -17, -17, -16, -15, -16, -18, -17, -16, -16, - -17, -18, -18, -17, -16, -16, -14, -13, -13, -12, -12, -12, -11, -10, -10, -9, - -7, -8, -9, -10, -10, -8, -6, -5, -6, -6, -5, -3, -3, -4, -4, -4, - -3, -2, -2, -1, -1, -1, 0, 2, 3, 3, 3, 2, 1, 0, -1, -1, - -1, -2, -3, -5, -5, -4, -2, -3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, - 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 3, 2, 0, -1, 1, - 2, 1, -1, -1, 2, 2, 0, 1, 2, 2, -1, -4, -10, -21, -30, -36, - -41, -44, -40, -30, -18, -10, -8, -11, -13, -8, 3, 18, 32, 41, 44, 45, - 48, 49, 43, 32, 23, 14, 7, 8, 16, 27, 35, 37, 30, 18, 9, 5, - 3, 2, 1, 1, -1, -6, -11, -12, -6, -2, -5, -11, -18, -28, -39, -47, - -55, -69, -86, -99, -102, -92, -70, -46, -28, -15, -3, 7, 17, 26, 28, 24, - 23, 30, 42, 53, 57, 50, 36, 21, 5, -5, -4, 6, 20, 31, 35, 34, - 29, 26, 27, 37, 56, 76, 85, 80, 71, 63, 55, 47, 34, 13, -13, -32, - -39, -40, -46, -65, -93, -117, -128, -128, -126, -120, -110, -96, -78, -58, -36, -14, - 3, 10, 20, 41, 60, 68, 63, 54, 45, 39, 36, 32, 28, 29, 35, 41, - 47, 46, 41, 39, 43, 53, 68, 80, 78, 64, 46, 28, 13, 3, -9, -35, - -64, -80, -82, -74, -66, -71, -91, -111, -121, -118, -105, -86, -68, -57, -49, -37, - -22, -7, 5, 14, 26, 42, 55, 56, 46, 35, 25, 14, 6, 2, 1, 3, - 11, 22, 32, 40, 43, 42, 46, 60, 77, 88, 90, 78, 54, 30, 14, 2, - -15, -37, -62, -82, -90, -89, -86, -90, -99, -107, -109, -101, -81, -54, -29, -14, - -5, 7, 24, 40, 49, 56, 68, 83, 92, 92, 87, 74, 54, 32, 12, -5, - -19, -25, -24, -18, -7, 1, -1, -6, -4, 13, 41, 69, 84, 80, 63, 44, - 32, 29, 25, 11, -10, -25, -31, -35, -40, -48, -65, -87, -104, -109, -102, -87, - -69, -58, -54, -42, -21, 0, 13, 29, 51, 71, 84, 89, 86, 75, 54, 33, - 14, -3, -19, -29, -27, -22, -18, -11, -8, -16, -26, -19, 2, 24, 40, 48, - 42, 27, 21, 29, 34, 24, 7, -5, -14, -23, -28, -32, -45, -67, -82, -85, - -78, -63, -46, -34, -29, -24, -13, 0, 12, 25, 44, 65, 79, 85, 86, 78, - 60, 41, 27, 12, -5, -15, -15, -14, -13, -8, -7, -17, -27, -23, -3, 23, - 44, 51, 43, 25, 12, 11, 14, 8, -3, -10, -15, -22, -28, -30, -36, -55, - -73, -78, -74, -71, -63, -51, -43, -39, -34, -25, -18, -9, 8, 28, 46, 56, - 61, 62, 58, 47, 36, 28, 20, 12, 11, 16, 19, 20, 21, 15, 0, -6, - 10, 37, 57, 63, 55, 36, 15, 2, -3, -9, -19, -27, -34, -43, -49, -49, - -52, -66, -82, -86, -81, -77, -71, -61, -51, -47, -43, -35, -22, -12, 2, 24, - 47, 58, 63, 67, 66, 58, 51, 45, 34, 18, 9, 7, 7, 7, 8, 1, - -14, -24, -12, 18, 47, 64, 68, 63, 53, 42, 37, 38, 36, 29, 21, 16, - 11, 5, -2, -17, -36, -49, -52, -56, -62, -63, -61, -61, -63, -60, -56, -49, - -37, -19, 2, 17, 25, 30, 34, 37, 37, 37, 34, 25, 15, 11, 13, 14, - 14, 8, -7, -21, -16, 9, 37, 53, 60, 61, 53, 40, 33, 34, 32, 22, - 14, 12, 10, 6, -2, -15, -32, -48, -57, -60, -63, -67, -66, -63, -63, -65, - -64, -58, -49, -34, -13, 6, 16, 21, 28, 34, 38, 41, 43, 36, 25, 19, - 21, 26, 27, 20, 4, -11, -11, 7, 31, 53, 66, 70, 66, 57, 49, 47, - 44, 33, 21, 17, 16, 10, 1, -9, -26, -46, -60, -67, -76, -84, -84, -80, - -78, -79, -78, -73, -65, -52, -32, -11, 4, 10, 17, 25, 32, 36, 40, 37, - 24, 13, 15, 23, 23, 11, -5, -19, -25, -16, 9, 38, 59, 70, 72, 67, - 63, 63, 60, 50, 39, 32, 28, 22, 14, 3, -14, -34, -53, -65, -76, -87, - -94, -93, -91, -94, -96, -93, -86, -76, -56, -30, -9, 4, 16, 29, 40, 51, - 63, 65, 52, 39, 39, 45, 42, 29, 11, -7, -22, -24, -8, 19, 42, 54, - 60, 63, 61, 58, 57, 53, 43, 36, 36, 34, 28, 21, 11, -5, -24, -39, - -52, -65, -75, -77, -75, -75, -78, -80, -78, -73, -61, -43, -23, -9, 1, 10, - 23, 39, 52, 56, 47, 36, 35, 41, 42, 33, 17, -2, -24, -35, -26, -3, - 18, 32, 42, 50, 52, 53, 52, 47, 38, 31, 30, 31, 29, 26, 22, 14, - -1, -18, -33, -46, -58, -65, -65, -65, -71, -79, -81, -79, -75, -62, -42, -27, - -21, -14, 1, 19, 34, 40, 36, 29, 27, 31, 38, 39, 29, 9, -12, -27, - -28, -14, 8, 25, 37, 50, 62, 67, 66, 62, 53, 42, 36, 37, 36, 32, - 30, 25, 12, -7, -24, -39, -54, -65, -67, -67, -72, -78, -81, -82, -81, -70, - -51, -35, -29, -23, -7, 15, 30, 37, 40, 35, 25, 25, 36, 41, 33, 15, - -6, -26, -36, -27, -9, 7, 20, 35, 50, 58, 59, 58, 52, 43, 37, 37, - 37, 36, 34, 31, 24, 8, -11, -29, -44, -57, -67, -70, -73, -79, -86, -92, - -93, -87, -72, -59, -53, -46, -29, -9, 7, 20, 28, 26, 19, 17, 27, 38, - 38, 26, 7, -12, -25, -26, -15, 1, 14, 28, 47, 61, 67, 68, 68, 63, - 54, 51, 53, 51, 49, 49, 47, 34, 14, -5, -22, -39, -56, -65, -67, -73, - -86, -96, -97, -92, -86, -77, -69, -61, -49, -28, -6, 10, 22, 27, 25, 24, - 33, 49, 56, 48, 32, 13, -5, -15, -12, -2, 7, 18, 35, 50, 59, 63, - 65, 61, 53, 48, 46, 44, 43, 46, 49, 43, 27, 10, -6, -25, -45, -53, - -53, -60, -75, -87, -90, -90, -88, -81, -75, -72, -65, -48, -25, -6, 5, 10, - 13, 18, 31, 49, 60, 58, 44, 28, 12, -1, -7, -7, -1, 8, 23, 41, - 54, 61, 65, 66, 63, 56, 48, 43, 41, 42, 44, 43, 37, 25, 8, -12, - -32, -44, -49, -53, -64, -80, -91, -95, -93, -89, -85, -82, -78, -68, -50, -27, - -6, 0, -1, 0, 0, 0, 1, 2, 3, 6, 9, 13, 17, 19, 13, -4, - -15, -10, 4, 19, 26, 15, -9, -16, 6, -2, -18, 38, 64, 21, -48, 30, - 82, -23, -63, -50, -26, -7, 12, 26, 47, 83, 100, 3, -108, -87, -30, -6, - 5, 18, 33, 46, 47, 21, -52, -46, 48, 3, -54, -32, 22, 25, -7, 12, - 9, -18, -33, -24, 2, 44, 88, 92, 10, -28, -1, 1, 20, 42, 1, -17, - 53, 72, 12, -16, -74, -31, 127, 52, 1, -35, -46, 13, 39, -13, -13, 13, - 12, 11, 8, -57, -80, -44, -5, 14, 18, 6, -13, -26, -11, -8, -24, 3, - 30, 14, -28, -12, 41, -2, -37, -35, -23, -12, -1, 6, 17, 34, 53, 19, - -55, -67, -32, -13, -5, 2, 12, 19, 24, 14, -24, -47, 12, 11, -36, -35, - -1, 18, -3, 0, 5, -13, -25, -22, -5, 19, 53, 69, 21, -28, -10, -5, - 6, 28, 8, -25, 23, 57, 17, -17, -49, -63, 84, 70, 3, -23, -50, -6, - 36, -2, -20, 8, 14, 9, 13, -37, -82, -58, -19, 8, 17, 10, -9, -26, - -19, -7, -24, -9, 25, 22, -17, -28, 33, 16, -32, -37, -27, -15, -4, 4, - 13, 27, 48, 35, -35, -72, -43, -17, -7, -1, 9, 16, 23, 17, -12, -51, - -7, 21, -27, -40, -12, 19, 6, -3, 5, -9, -22, -23, -8, 11, 42, 68, - 38, -23, -16, -6, 3, 25, 19, -24, 8, 54, 31, -13, -33, -76, 46, 95, - 13, -13, -48, -20, 32, 13, -22, 2, 15, 10, 15, -17, -77, -67, -31, 3, - 17, 15, -3, -21, -23, -7, -20, -18, 18, 27, -4, -34, 17, 33, -21, -36, - -29, -16, -6, 4, 11, 23, 42, 47, -12, -69, -54, -22, -8, -2, 7, 15, - 22, 20, -2, -46, -27, 23, -13, -41, -22, 15, 16, -2, 4, -5, -18, -21, - -10, 5, 32, 64, 53, -12, -21, -6, 0, 21, 27, -16, -6, 48, 42, -6, - -22, -71, 2, 106, 31, -6, -41, -32, 22, 25, -18, -4, 15, 12, 14, -1, - -64, -74, -42, -5, 16, 19, 4, -16, -25, -10, -14, -23, 9, 29, 9, -31, - -2, 42, -5, -33, -30, -18, -8, 3, 9, 19, 36, 51, 10, -58, -63, -29, - -11, -2, 4, 13, 20, 21, 6, -35, -44, 16, 1, -38, -30, 7, 23, 3, - 2, -2, -16, -20, -12, 2, 23, 56, 62, 3, -24, -7, -2, 17, 30, -5, - -17, 37, 49, 4, -17, -57, -37, 99, 55, 0, -31, -41, 9, 33, -10, -11, - 13, 14, 12, 9, -47, -78, -53, -15, 12, 20, 9, -10, -24, -14, -11, -25, - -2, 27, 18, -21, -20, 39, 13, -29, -31, -20, -9, 1, 8, 17, 30, 49, - 29, -41, -70, -39, -15, -4, 2, 11, 17, 21, 11, -22, -52, 0, 14, -31, - -36, -4, 25, 11, 1, -1, -13, -19, -13, 0, 15, 45, 65, 20, -24, -10, - -4, 12, 30, 8, -22, 24, 52, 17, -14, -39, -61, 71, 81, 8, -21, -44, - -5, 34, 2, -16, 9, 16, 11, 14, -29, -76, -62, -27, 6, 20, 15, -4, - -21, -19, -9, -23, -12, 22, 25, -8, -30, 26, 30, -20, -31, -23, -11, -1, - 8, 14, 25, 44, 42, -19, -69, -50, -20, -6, 1, 9, 15, 20, 15, -11, - -51, -19, 20, -20, -39, -15, 23, 20, 2, 0, -11, -17, -14, -2, 9, 35, - 63, 37, -19, -14, -5, 8, 28, 18, -22, 9, 50, 28, -11, -26, -68, 32, - 100, 22, -13, -43, -18, 30, 15, -17, 4, 16, 12, 15, -12, -69, -69, -39, - -2, 18, 19, 2, -17, -22, -10, -19, -20, 15, 27, 4, -31, 7, 41, -7, - -30, -25, -13, -3, 6, 12, 22, 38, 48, 3, -61, -60, -27, -9, 0, 7, - 13, 19, 17, -2, -44, -37, 18, -7, -39, -24, 15, 28, 7, 0, -9, -16, - -14, -3, 6, 25, 57, 49, -9, -18, -7, 3, 25, 26, -15, -4, 45, 38, - -5, -18, -61, -8, 103, 42, -6, -37, -30, 21, 25, -13, -3, 16, 13, 14, - 2, -56, -73, -49, -12, 15, 21, 8, -11, -23, -13, -15, -24, 4, 28, 14, - -25, -12, 42, 9, -26, -26, -15, -5, 5, 11, 19, 32, 48, 22, -46, -67, - -36, -12, -2, 4, 12, 17, 18, 4, -33, -50, 6, 6, -35, -31, 4, 31, - 14, 0, -8, -15, -14, -4, 4, 17, 48, 57, 4, -21, -8, -1, 21, 30, - -5, -15, 36, 44, 5, -14, -46, -40, 88, 67, 2, -29, -37, 9, 31, -6, - -9, 14, 15, 13, 11, -40, -74, -58, -24, 9, 22, 13, -6, -21, -17, -13, - -25, -6, 25, 21, -13, -25, 33, 26, -19, -27, -18, -6, 3, 10, 16, 27, - 45, 36, -26, -69, -46, -17, -4, 2, 10, 15, 18, 9, -22, -55, -11, 15, - -26, -36, -8, 30, 23, 2, -6, -14, -14, -6, 4, 11, 37, 59, 19, -20, - -10, -4, 16, 31, 7, -20, 23, 47, 15, -13, -32, -58, 58, 88, 13, -21, - -40, -5, 32, 4, -13, 10, 17, 12, 14, -23, -70, -65, -35, 1, 20, 17, - 0, -18, -20, -12, -23, -16, 19, 25, -1, -30, 16, 39, -8, -26, -20, -8, - 1, 9, 14, 23, 39, 44, -5, -63, -57, -24, -7, 1, 8, 13, 17, 12, - -12, -52, -30, 17, -15, -38, -18, 23, 32, 7, -6, -13, -14, -7, 3, 8, - 27, 55, 33, -16, -13, -6, 10, 30, 17, -20, 10, 46, 25, -9, -21, -60, - 19, 100, 31, -13, -39, -17, 27, 15, -13, 4, 17, 13, 15, -8, -61, -69, - -46, -10, 17, 21, 6, -13, -22, -13, -20, -22, 10, 27, 9, -27, -4, 44, - 6, -24, -22, -11, -1, 8, 13, 20, 33, 46, 14, -50, -65, -33, -11, 0, - 5, 12, 15, 14, -4, -43, -46, 10, -2, -36, -27, 13, 36, 15, -4, -13, - -14, -8, 3, 7, 18, 49, 43, -7, -16, -7, 5, 27, 24, -14, -3, 42, - 33, -3, -16, -51, -17, 97, 51, -3, -38, -5, -13, 1, -7, 5, -22, -32, - -35, -32, -43, -35, -55, -42, -66, -48, -80, -57, -17, -128, -59, -76, 0, -26, - 1, -33, 21, 3, 16, 15, 26, 43, 28, 66, 6, 97, 40, 103, 67, 101, - 102, 98, 94, 21, 98, 90, 57, 78, 89, 81, 61, -6, 54, 4, 62, 19, - 27, 34, 12, 16, 14, -17, 19, -5, -2, -13, -38, -24, -3, -33, -14, -11, - -16, 0, -13, 7, -26, -13, -16, 6, -57, -23, -28, -13, -9, -34, -32, -20, - -87, -62, -28, -38, -75, -37, -27, -41, -71, -48, -30, -44, -83, -67, -52, -48, - -45, -46, -45, -63, -47, -40, -32, -45, -24, -32, -43, -21, -17, 0, 21, 26, - 43, 51, 62, 47, 41, 55, 57, 68, 34, 53, 63, 62, 71, 60, 61, 56, - 53, 56, 54, 38, 50, 58, 50, 40, 28, 54, 39, 41, 38, 22, 32, 20, - -3, 19, -1, -7, -6, -16, -16, -14, -27, -29, -46, -66, -61, -51, -54, -61, - -41, -50, -47, -52, -55, -45, -44, -28, -58, -56, -31, -37, -36, -32, -18, -16, - -34, -29, -9, -21, -20, -30, -22, -17, -19, -8, -12, -14, -6, -14, -6, -11, - -2, 4, -6, 9, 8, 17, 23, 13, 31, 13, 24, 30, 28, 29, 30, 43, - 34, 37, 52, 42, 44, 50, 67, 59, 49, 54, 48, 43, 51, 45, 42, 62, - 47, 39, 37, 36, 24, 28, 13, 3, 9, -11, -3, -9, -14, -18, -34, -27, - -29, -39, -42, -38, -46, -37, -46, -43, -41, -35, -38, -31, -38, -34, -39, -39, - -34, -48, -44, -47, -49, -54, -52, -44, -53, -37, -47, -38, -31, -38, -27, -19, - -19, -15, -16, 0, 0, 2, 7, 13, 29, 22, 32, 32, 39, 47, 41, 40, - 55, 48, 41, 44, 57, 43, 36, 47, 43, 42, 37, 32, 32, 27, 33, 36, - 30, 23, 25, 25, 22, 18, 22, 20, 16, 8, 6, 12, 7, 0, 1, 3, - -5, -14, -9, -7, -8, -19, -15, -16, -23, -21, -21, -32, -31, -29, -26, -27, - -29, -33, -26, -29, -30, -39, -28, -41, -43, -35, -34, -32, -29, -28, -28, -25, - -27, -24, -27, -27, -27, -22, -23, -17, -9, -10, -14, -10, -8, -4, -2, -1, - -3, 5, 4, 10, 11, 7, 13, 11, 14, 27, 22, 22, 22, 27, 36, 34, - 36, 37, 45, 44, 47, 48, 51, 49, 52, 51, 52, 48, 50, 47, 48, 42, - 40, 29, 33, 24, 22, 12, 5, 0, -3, -5, -9, -21, -21, -25, -19, -28, - -28, -30, -33, -39, -42, -42, -46, -46, -45, -42, -43, -47, -47, -36, -32, -30, - -34, -31, -22, -29, -29, -30, -26, -28, -30, -21, -26, -27, -21, -19, -16, -11, - -12, -8, -2, 1, -4, 1, 0, 1, 9, 8, 7, 12, 10, 13, 20, 17, - 18, 21, 26, 29, 30, 30, 29, 34, 33, 34, 33, 30, 32, 33, 28, 33, - 29, 35, 32, 31, 30, 31, 30, 25, 27, 24, 21, 21, 20, 16, 17, 12, - 6, 4, -3, 1, -6, -7, -11, -13, -11, -10, -8, -13, -12, -9, -17, -14, - -19, -24, -22, -24, -30, -32, -30, -33, -37, -39, -40, -42, -39, -41, -39, -40, - -41, -35, -35, -35, -37, -36, -33, -30, -25, -25, -19, -16, -16, -10, -6, -7, - -4, -2, 1, 3, 6, 10, 9, 15, 17, 18, 17, 13, 19, 18, 17, 19, - 20, 24, 24, 27, 27, 29, 30, 26, 28, 28, 27, 28, 26, 25, 24, 25, - 20, 19, 17, 18, 15, 12, 13, 10, 6, 8, 6, 3, 4, 3, 0, -3, - 0, -1, -2, -5, -4, -5, -4, -5, -6, -8, -9, -9, -12, -11, -16, -16, - -15, -15, -13, -17, -16, -17, -17, -21, -20, -25, -24, -24, -24, -26, -30, -30, - -27, -30, -26, -26, -27, -27, -25, -24, -19, -20, -17, -13, -12, -8, -8, -8, - -6, -5, -2, -1, 0, 3, 8, 10, 12, 16, 18, 24, 25, 25, 28, 30, - 28, 32, 33, 31, 32, 31, 35, 33, 31, 31, 27, 28, 26, 23, 23, 20, - 22, 18, 16, 13, 11, 9, 5, 4, -2, -2, -3, -8, -9, -11, -12, -13, - -15, -15, -15, -15, -15, -14, -12, -12, -13, -13, -8, -11, -10, -12, -10, -12, - -12, -8, -8, -9, -9, -9, -8, -9, -10, -11, -11, -10, -13, -14, -13, -16, - -16, -17, -17, -18, -19, -18, -17, -16, -16, -15, -15, -13, -12, -10, -12, -10, - -9, -8, -6, -6, -3, 0, 0, 1, 2, 2, 3, 4, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 12, 13, 14, 14, 15, 15, 15, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 15, 15, 14, 13, 13, 12, 11, 10, 9, 8, - 7, 6, 5, 4, 3, 2, 1, 0, -1, -1, -2, -3, -4, -5, -5, -6, - -7, -7, -8, -9, -9, -10, -11, -11, -12, -12, -13, -13, -13, -13, -14, -14, - -14, -15, -15, -15, -15, -15, -15, -16, -16, -16, -15, -15, -15, -14, -13, -13, - -12, -11, -10, -9, -8, -7, -6, -5, -4, -2, -1, 0, 1, 2, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15, - 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 16, 16, 15, 15, 14, 14, - 13, 12, 11, 10, 9, 7, 6, 5, 3, 1, 0, -2, -4, -5, -7, -9, - -10, -11, -13, -14, -15, -15, -16, -17, -17, -18, -18, -18, -18, -18, -18, -18, - -18, -18, -18, -18, -18, -17, -17, -16, -16, -15, -14, -14, -13, -12, -11, -10, - -9, -8, -7, -6, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 9, 10, 11, 11, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 14, 14, 14, 13, 12, 12, 11, 10, - 9, 8, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0, -1, 0, 0, -1, - 2, 1, 0, 1, 4, 2, 2, 2, 5, 2, 5, 5, 8, 4, 13, 15, - 19, -62, -65, 56, -18, -128, -39, 15, -57, -10, 19, -22, -11, 36, 30, 5, - 19, 25, 17, 21, 21, 16, 21, 18, 17, 17, 15, 14, 13, 12, 10, 6, - 8, 6, 6, -1, 1, -4, 7, -10, -36, 35, 64, -25, -18, 83, 50, 22, - 39, 21, 19, -4, -20, 28, 0, -88, -55, -5, -55, -83, -64, -58, -77, -61, - -22, -39, -57, -15, 2, -14, -9, -1, 1, 1, 2, 9, 5, 6, 11, 9, - 9, 10, 11, 12, 12, 10, 9, 9, 13, 7, 3, 14, 4, -3, 2, 2, - 17, 40, 12, 14, 55, 58, 44, 39, 38, 37, 6, 4, 31, -6, -50, -25, - -15, -49, -52, -41, -60, -68, -32, -25, -47, -36, -9, -5, -7, -3, 3, 4, - 6, 8, 11, 9, 10, 14, 14, 11, 13, 15, 14, 13, 14, 12, 11, 12, - 12, 8, 8, 3, 4, 5, -1, 8, 32, 21, 14, 43, 50, 39, 47, 39, - 20, 23, 16, 5, -9, -23, -26, -34, -48, -37, -48, -71, -56, -34, -43, -49, - -36, -20, -14, -13, -9, -4, -1, 1, 3, 6, 6, 6, 9, 10, 8, 10, - 11, 11, 11, 11, 10, 10, 10, 10, 6, 6, 4, 3, 6, -3, 2, 25, - 23, 16, 34, 38, 43, 51, 31, 19, 38, 22, -10, -7, 0, -25, -45, -34, - -32, -54, -62, -47, -39, -45, -47, -36, -24, -19, -16, -11, -6, -3, 0, 2, - 4, 6, 7, 8, 10, 11, 9, 11, 12, 11, 11, 12, 11, 10, 10, 8, - 7, 6, 3, 5, 4, 0, 13, 28, 23, 19, 36, 50, 42, 30, 31, 39, - 24, -6, -2, 7, -21, -40, -27, -34, -51, -51, -44, -42, -45, -45, -37, -27, - -22, -18, -13, -9, -6, -2, 1, 2, 5, 7, 7, 9, 11, 10, 10, 12, - 12, 11, 12, 11, 10, 10, 9, 7, 7, 4, 5, 7, 1, 7, 27, 24, - 15, 34, 47, 37, 32, 36, 36, 26, 4, -1, 4, -13, -30, -27, -34, -47, - -46, -42, -43, -45, -44, -38, -31, -25, -21, -17, -12, -8, -5, -1, 1, 3, - 5, 6, 8, 9, 10, 10, 10, 11, 11, 11, 11, 11, 10, 9, 7, 7, - 6, 3, 6, 5, 6, 17, 23, 19, 29, 40, 35, 33, 36, 34, 26, 14, - 3, 0, -6, -18, -26, -32, -39, -40, -38, -39, -41, -40, -36, -31, -27, -23, - -19, -15, -12, -8, -4, -2, 0, 3, 4, 5, 7, 8, 9, 9, 9, 10, - 10, 10, 10, 10, 9, 8, 8, 8, 7, 8, 10, 11, 14, 19, 22, 25, - 28, 29, 29, 29, 27, 21, 14, 7, -1, -5, -11, -19, -26, -29, -31, -32, - -33, -34, -33, -32, -29, -26, -24, -21, -18, -15, -12, -9, -6, -4, -2, 0, - 2, 3, 5, 6, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, - 11, 12, 14, 16, 18, 20, 22, 23, 24, 24, 23, 20, 17, 12, 7, 2, - -3, -8, -13, -17, -21, -23, -25, -26, -27, -27, -27, -26, -25, -23, -21, -19, - -17, -14, -12, -9, -7, -5, -3, -1, 1, 2, 4, 5, 6, 6, 7, 7, - 8, 8, 9, 9, 10, 10, 11, 12, 13, 15, 16, 18, 19, 21, 22, 22, - 22, 21, 19, 17, 13, 9, 4, 0, -5, -10, -14, -18, -21, -23, -25, -26, - -26, -26, -26, -25, -23, -22, -20, -18, -15, -13, -11, -9, -6, -4, -2, 0, - 1, 3, 4, 5, 6, 7, 7, 8, 8, 8, 9, 9, 10, 11, 12, 13, - 14, 15, 17, 18, 20, 21, 21, 21, 21, 19, 17, 14, 11, 7, 2, -3, - -7, -11, -15, -19, -21, -23, -25, -25, -26, -25, -25, -24, -22, -21, -19, -17, - -15, -12, -10, -8, -6, -4, -2, 0, 1, 3, 4, 5, 6, 6, 7, 8, - 8, 9, 9, 10, 11, 11, 12, 13, 15, 16, 17, 19, 20, 20, 21, 20, - 19, 18, 15, 12, 8, 4, 0, -4, -9, -13, -16, -19, -21, -23, -24, -25, - -25, -25, -24, -23, -21, -20, -18, -16, -14, -12, -9, -7, -5, -3, -2, 0, - 1, 3, 4, 5, 6, 6, 7, 8, 8, 9, 10, 10, 11, 12, 13, 14, - 15, 17, 18, 19, 20, 20, 20, 19, 18, 16, 13, 10, 6, 2, -2, -6, - -10, -13, -16, -19, -21, -23, -24, -24, -24, -24, -23, -22, -20, -19, -17, -15, - -13, -11, -8, -6, -5, -3, -1, 0, 2, 3, 4, 5, 6, 7, 7, 8, - 9, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 19, 18, - 16, 14, 11, 8, 4, 0, -3, -7, -11, -14, -17, -19, -21, -22, -23, -23, - -23, -23, -22, -21, -19, -18, -16, -14, -12, -10, -8, -6, -4, -2, -1, 1, - 2, 3, 4, 5, 6, 7, 8, 8, 9, 10, 11, 12, 12, 13, 14, 15, - 16, 17, 18, 19, 19, 19, 18, 17, 15, 12, 9, 6, 3, -1, -5, -9, - -12, -15, -17, -19, -21, -22, -23, -23, -23, -22, -21, -20, -18, -17, -15, -13, - -11, -9, -7, -6, -4, -2, -1, 1, 2, 3, 4, 5, 6, 7, 8, 9, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 17, 18, 18, 18, 17, 16, 14, - 12, 10, 7, 4, 0, -3, -6, -9, -12, -15, -17, -18, -20, -20, -21, -21, - -21, -20, -19, -18, -17, -15, -14, -12, -10, -9, -7, -5, -4, -2, -1, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 14, 15, 15, - 16, 16, 16, 16, 16, 15, 14, 12, 11, 8, 6, 3, 0, -3, -6, -9, - -12, 1, -1, 2, -1, 4, 2, 8, 5, 10, -5, 0, 5, 17, -11, 0, - 19, -17, 26, 65, 15, 29, 3, 35, 67, 50, 88, 59, 117, 28, -6, -16, - 29, 63, 62, -40, 59, 22, -95, -49, -55, 19, 36, -15, 26, -117, 60, 8, - -101, -115, 23, 60, -32, -106, -84, -88, -127, -99, -117, -110, -56, -42, -53, -79, - -44, 43, 10, -11, 72, 22, 61, 10, -92, -106, -111, -35, -68, -128, -67, -36, - -118, -97, -96, -4, 75, 70, 113, 36, 73, 115, 37, 6, 79, 97, 89, -8, - -38, -8, -72, -8, -29, -35, 73, 98, 66, 12, 40, 113, 106, 87, 126, 112, - 127, 87, -3, -21, -23, 40, 14, -68, -20, 21, -57, -67, -67, -4, 69, 53, - 90, 17, 36, 78, -7, -54, -2, 32, 21, -71, -109, -89, -124, -103, -114, -113, - -37, -4, -30, -88, -83, 15, 13, -35, 42, 28, 33, 14, -90, -92, -104, -37, - -34, -115, -73, -9, -75, -89, -85, -29, 67, 51, 97, 55, 47, 115, 46, -9, - 42, 90, 96, 26, -36, 11, -43, -25, -6, -37, 59, 104, 88, 31, 22, 96, - 116, 69, 110, 119, 119, 109, 11, -15, -26, 18, 37, -45, -32, 34, -13, -62, - -62, -30, 61, 47, 75, 46, 14, 72, 14, -58, -35, 16, 30, -38, -109, -78, - -109, -116, -102, -123, -57, -2, -11, -58, -95, -18, 22, -41, -3, 36, 20, 31, - -69, -94, -100, -72, -21, -91, -92, -9, -33, -82, -81, -57, 48, 52, 70, 81, - 35, 97, 69, -10, 8, 66, 94, 55, -27, 4, -5, -40, -1, -33, 30, 102, - 101, 61, 19, 70, 121, 72, 77, 123, 112, 121, 36, -13, -21, -10, 38, -18, - -43, 27, 25, -40, -59, -45, 40, 54, 52, 68, 15, 56, 35, -48, -58, -12, - 25, -10, -98, -84, -83, -122, -101, -123, -81, -8, -3, -28, -85, -47, 20, -28, - -39, 23, 18, 31, -38, -99, -92, -97, -35, -66, -102, -26, -3, -60, -77, -69, - 18, 59, 47, 87, 46, 73, 86, 3, -13, 34, 80, 70, -8, -12, 19, -32, - -12, -21, 3, 91, 105, 87, 34, 51, 114, 89, 53, 106, 115, 119, 65, -10, - -13, -25, 20, 4, -45, 9, 44, -8, -49, -51, 14, 61, 39, 68, 34, 39, - 51, -30, -67, -41, 7, 5, -76, -96, -65, -111, -110, -115, -103, -20, -1, -9, - -58, -65, 8, -9, -55, -6, 17, 24, -11, -94, -89, -102, -64, -50, -101, -51, - 6, -30, -66, -71, -12, 59, 40, 72, 67, 58, 91, 24, -21, 6, 56, 74, - 14, -22, 23, -8, -24, -14, -13, 71, 106, 101, 62, 42, 101, 105, 49, 76, - 114, 114, 87, 3, -12, -23, -6, 13, -37, -11, 45, 24, -29, -49, -8, 57, - 40, 53, 54, 32, 56, -6, -65, -61, -21, 6, -52, -101, -65, -85, -115, -109, - -116, -42, 0, -1, -27, -65, -12, 7, -51, -37, 7, 17, 6, -76, -95, -94, - -91, -52, -90, -76, -2, -4, -46, -66, -35, 46, 46, 49, 78, 57, 85, 50, - -17, -13, 26, 64, 34, -22, 9, 18, -22, -14, -18, 42, 103, 105, 88, 50, - 83, 114, 63, 49, 96, 110, 99, 26, -14, -15, -23, 6, -24, -29, 33, 45, - 0, -38, -23, 44, 50, 37, 60, 38, 52, 21, -54, -70, -48, -7, -31, -95, - -78, -63, -104, -108, -117, -69, -4, -1, -5, -47, -30, 13, -33, -58, -14, 8, - 11, -50, -99, -87, -101, -70, -77, -92, -22, 10, -22, -52, -46, 23, 55, 36, - 70, 66, 74, 69, -2, -23, 1, 43, 43, -11, -8, 29, -4, -17, -16, 18, - 91, 105, 102, 71, 72, 112, 83, 40, 70, 101, 102, 50, -10, -10, -24, -10, - -13, -36, 14, 52, 27, -18, -28, 26, 58, 33, 51, 49, 46, 40, -34, -70, - -66, -31, -22, -81, -92, -56, -83, -105, -112, -91, -17, 0, 2, -22, -37, 7, - -12, -61, -39, -5, 7, -27, -93, -90, -96, -90, -72, -95, -48, 9, -1, -33, - -46, 0, 55, 37, 50, 72, 68, 77, 20, -25, -15, 17, 40, 3, -20, 22, - 19, -12, -14, 2, 70, 105, 106, 92, 72, 104, 100, 48, 46, 83, 98, 70, - 3, -12, -16, -23, -11, -34, -8, 46, 47, 11, -21, 8, 57, 41, 36, 53, - 45, 48, -6, -64, -72, -57, -28, -61, -98, -65, -60, -94, -105, -103, -41, 1, - 0, -1, -29, -6, 5, -48, -60, -26, -3, -12, -74, -97, -86, -100, -80, -89, - -74, -6, 13, -10, -35, -18, 41, 48, 33, 64, 68, 75, 46, -15, -25, -7, - 24, 16, -20, 4, 33, 5, -11, -5, 43, 98, 105, 105, 85, 93, 110, 67, - 35, 59, 87, 81, 25, -13, -9, -23, -18, -27, -25, 30, 55, 37, -1, -3, - 46, 53, 29, 44, 47, 48, 20, -48, -72, -72, -47, -48, -93, -82, -51, -73, - -96, -102, -66, -6, 0, 5, -10, -16, 10, -26, -66, -49, -20, -10, -51, -98, - -86, -93, -93, -85, -88, -32, 14, 8, -16, -23, 22, 54, 32, 45, 67, 70, - 61, 4, -27, -21, 2, 17, -13, -13, 29, 26, -1, -5, 23, 83, 104, 106, - 100, 90, 110, 87, 40, 38, 68, 80, 45, -6, -9, -14, -24, -23, -32, 8, - 52, 53, 25, 1, 31, 60, 35, 30, 45, 45, 36, -24, -68, -76, -67, -49, - -80, -94, -57, -54, -81, -95, -82, -23, 2, 1, 4, -12, 4, -5, -57, -65, - -40, -20, -36, -87, -94, -83, -97, -87, -90, -57, 2, 18, 2, -12, 8, 10, - -20, 30, 25, 21, 14, 4, 15, -48, -33, 11, -70, 54, -5, -21, -8, -3, - 73, -52, 65, -55, 80, -28, -67, -3, -13, 21, -49, -2, 11, 36, 59, -60, - 34, -28, 21, -25, -45, 54, 5, 0, -19, -12, 20, 54, -51, -23, 22, 36, - -59, -20, 8, 28, -9, -54, 127, -44, 69, -128, 5, 69, -8, -98, 45, 69, - 20, -97, 23, -7, 121, -81, -2, -21, 51, -67, -14, -24, 127, -60, 45, -116, - 127, -29, -93, -23, 107, -5, -21, -62, 37, 41, 29, -74, -63, 103, 24, -59, - -44, 62, 43, -28, -46, 7, 72, 19, -70, -47, 42, 53, -68, -13, 37, 59, - -38, -60, 39, 66, 27, -128, 36, 77, 15, -74, -15, 75, 38, -49, -11, -39, - 16, -8, -30, 35, 41, -1, -2, 17, -68, 99, -97, 60, -49, 32, -44, -29, - 82, -26, 39, -35, 10, 38, -20, -21, -92, 83, -24, 13, 31, -33, 22, 45, - -31, -24, 9, -24, -32, 42, -17, 34, 7, -27, 6, 61, -9, -34, -5, -8, - -17, -6, -34, 17, 43, -9, 35, -34, 16, 27, -24, -17, -17, 5, -17, 42, - -31, 22, 17, -26, -22, 32, 41, -27, -25, -10, -5, 16, -2, 13, -1, 48, - -33, -27, 6, 16, 13, -37, -11, 18, 25, -42, -11, 46, -7, -15, 9, 15, - 4, -3, -36, -24, 31, -8, 14, 12, 27, -19, -17, -14, -7, 42, -5, -15, - 5, 1, -15, 14, 43, -19, 1, -25, -35, 16, 16, 29, -12, 8, -14, 1, - 21, -8, -12, -22, -4, 24, 26, -16, -22, 37, 3, -41, 7, 4, 3, 30, - 4, -27, 11, -6, -26, 33, 23, -23, -14, -20, -7, -4, 36, 0, 18, 10, - -27, 1, 1, 16, -1, -4, -44, -5, 17, 9, 13, -4, -3, 31, 24, -14, - -26, 9, -27, -28, 19, 22, 32, -11, -15, 5, 15, -23, -21, 16, 14, 18, - -11, -26, 13, 10, -12, -12, 11, 14, -6, -13, -3, 6, -6, 3, 12, 32, - 14, -22, -45, -10, 37, 11, -50, -11, 50, 22, -13, -4, -4, 15, -16, -33, - 7, 34, -9, -14, -1, 21, 15, -14, -12, -6, 7, 8, 2, 0, -5, 6, - 15, 4, -9, 13, 3, -51, -18, 27, 10, 5, -11, 6, -1, 5, 22, 2, - -14, -39, -12, 19, 17, 4, 11, 5, -25, 2, 23, 8, 2, -3, -39, -22, - 4, 18, 6, 14, 25, 20, -17, -20, 17, 7, -43, -38, -18, 17, 24, -6, - 30, 44, 6, -36, -20, 7, 24, 1, -69, -25, 47, 15, -4, 35, 19, -18, - -22, -12, 20, 39, -36, -49, 9, 28, -16, 9, 34, 36, -22, -69, -16, 39, - 7, -28, -3, 33, -18, -7, 18, 53, 24, -37, -61, -10, 38, 2, -24, -11, - 12, 17, 0, 28, 50, -5, -59, -57, 22, 14, -15, -5, 22, 9, -20, 19, - 33, 31, -33, -62, -13, -2, 45, -9, -4, -3, 19, 8, -8, 40, 8, -16, - -44, -19, 16, 3, 23, -32, 22, 5, -9, 5, 26, 21, -27, -18, -45, 3, - 15, 0, 7, 7, 7, 13, 18, -10, 3, -5, -30, -30, -3, 9, 31, 17, - -10, 19, 28, -33, -20, 31, 14, -67, -27, 13, 20, 29, 1, -2, 24, -3, - -26, -12, 32, -7, -31, -17, 5, 22, 11, -6, 6, 7, 2, 7, 5, -12, - -22, -17, -24, 22, 47, 1, 2, 10, 5, -29, -5, 13, 1, -30, -28, -5, - 23, 25, 6, 5, 1, 7, 0, 5, 3, -33, -37, -6, 19, 20, 26, -1, - -15, 21, 9, -14, -13, 0, -11, -24, -9, 9, 23, 1, 1, 32, 11, -25, - -18, 5, -5, -6, -9, -10, 2, 18, 4, 12, 6, -2, -8, 2, 2, -7, - 2, -22, -5, 17, 25, 15, -5, -1, -24, -8, -10, -5, 12, 7, -4, -10, - 4, 8, 22, 11, -1, -12, -31, -17, 6, 12, 11, 5, -3, -1, 22, 0, - -4, 3, -18, -17, -3, 16, 9, 2, -5, 0, 4, -9, 18, 17, -22, -19, - -8, -6, 21, 11, -6, -16, 33, 13, -15, -3, -15, 1, -3, -10, -7, 8, - 17, -11, 9, 19, 0, 5, 0, -18, -13, 2, -20, 10, 29, -11, -13, 5, - 11, 16, 4, -25, -21, 13, -5, 1, 3, -1, 6, 13, -7, -1, 17, -6, - -6, -9, -6, -3, -1, 1, 18, 11, -22, 2, 18, -2, -15, 1, 5, -12, - -10, -7, 9, 26, 10, -11, 5, 0, -7, -3, -11, -9, -3, 2, -10, 19, - 28, -3, -3, -4, 9, -14, -5, -7, 8, -3, -27, 5, 37, 11, -2, 3, - -27, -15, 12, -2, 14, 2, -8, -16, 22, 11, -1, 10, -17, -8, -5, -23, - 2, 29, 8, -21, 8, 12, 6, 8, -17, 3, -2, -12, -27, 16, 25, -5, - -7, 2, 19, 1, -15, 7, 2, -5, -34, 2, 18, 17, -10, 2, 18, -1, - -12, -10, 5, 1, -16, -9, 12, 21, 4, -10, 2, 12, 1, -19, -11, 20, - 5, -14, -21, 5, 17, -5, 3, 17, 4, -25, -5, 5, 4, 0, -5, 2, - 2, -1, 1, 13, 0, -11, -8, 3, 2, -1, -3, -3, 11, 8, -6, 2, - 7, 4, -5, -23, -2, 14, -1, -15, -2, 15, 10, 1, -4, 16, 1, -24, - -12, 8, 8, -20, -2, 14, 13, 10, 2, 2, -9, -6, -9, -3, 5, 7, - -3, -9, 0, 2, 8, 3, -1, 2, -4, 0, -1, -1, -1, -2, -8, -14, - -19, -28, -51, -53, -49, -48, -49, -44, -37, -30, -23, -14, -8, -11, -5, 3, - 11, 2, 0, 8, 19, 10, 1, 6, 18, 15, 4, 4, 17, 19, 13, 9, - 20, 27, 26, 26, 33, 42, 45, 53, 59, 68, 69, 83, 89, 92, 85, 88, - 91, 80, 56, 37, 29, 9, -25, -54, -65, -74, -94, -113, -112, -103, -101, -103, - -93, -79, -66, -62, -50, -41, -33, -27, -17, -11, -12, -8, 0, 7, -1, -2, - 5, 15, 8, -1, 3, 15, 13, 2, 2, 12, 17, 12, 8, 15, 23, 24, - 25, 29, 38, 42, 50, 56, 65, 68, 78, 87, 91, 87, 87, 91, 84, 64, - 43, 33, 16, -14, -44, -60, -70, -87, -107, -111, -105, -101, -103, -96, -84, -70, - -64, -55, -45, -36, -30, -22, -14, -14, -11, -4, 4, 0, -3, 1, 11, 8, - -1, 0, 10, 12, 3, 0, 9, 15, 11, 7, 14, 22, 23, 24, 28, 37, - 42, 49, 55, 64, 67, 78, 87, 91, 88, 88, 93, 86, 67, 47, 36, 20, - -10, -40, -56, -67, -84, -104, -109, -105, -101, -103, -96, -85, -71, -65, -56, -46, - -38, -31, -23, -16, -15, -12, -6, 2, -1, -5, 0, 9, 6, -1, -1, 8, - 11, 3, 0, 8, 14, 11, 7, 13, 21, 23, 23, 27, 37, 41, 48, 54, - 63, 67, 77, 86, 91, 89, 89, 93, 87, 70, 51, 39, 23, -6, -36, -53, - -64, -81, -101, -107, -103, -100, -102, -96, -85, -72, -66, -57, -47, -39, -32, -25, - -17, -16, -13, -7, 0, -3, -5, -1, 7, 6, -2, -2, 7, 9, 2, -1, - 7, 13, 10, 7, 12, 20, 22, 23, 27, 36, 41, 48, 54, 63, 68, 77, - 87, 91, 91, 91, 95, 89, 73, 54, 43, 27, -1, -31, -49, -61, -78, -98, - -105, -102, -99, -101, -96, -85, -73, -66, -58, -48, -40, -33, -26, -19, -17, -14, - -9, -2, -4, -6, -3, 5, 4, -3, -3, 5, 8, 1, -1, 6, 12, 10, - 7, 11, 20, 22, 23, 27, 35, 41, 47, 54, 62, 68, 76, 86, 91, 91, - 92, 96, 91, 76, 58, 46, 30, 3, -27, -45, -57, -75, -94, -103, -100, -98, - -100, -96, -85, -74, -67, -59, -49, -41, -34, -28, -20, -19, -15, -10, -3, -5, - -7, -4, 3, 3, -4, -4, 4, 7, 1, -2, 5, 11, 9, 6, 11, 19, - 21, 22, 26, 35, 40, 46, 53, 61, 67, 76, 86, 91, 92, 93, 97, 93, - 78, 61, 49, 33, 7, -22, -41, -54, -72, -91, -100, -99, -97, -100, -96, -86, - -74, -67, -60, -51, -42, -35, -29, -22, -20, -17, -11, -5, -6, -8, -5, 2, - 1, -5, -5, 2, 5, 0, -3, 3, 10, 8, 5, 10, 18, 21, 21, 25, - 34, 39, 45, 52, 61, 67, 75, 85, 91, 92, 94, 97, 94, 81, 64, 52, - 37, 11, -18, -37, -51, -69, -88, -98, -98, -96, -99, -95, -86, -75, -68, -61, - -52, -44, -36, -30, -23, -21, -17, -13, -6, -7, -9, -6, 0, 0, -5, -5, - 1, 4, -1, -3, 2, 8, 8, 5, 10, 17, 20, 21, 25, 33, 39, 45, - 51, 60, 66, 75, 85, 91, 93, 94, 98, 95, 83, 67, 55, 40, 15, -14, - -33, -48, -66, -85, -96, -96, -95, -98, -95, -86, -75, -69, -62, -53, -45, -38, - -32, -25, -22, -19, -14, -8, -9, -10, -8, -2, -1, -6, -7, -1, 2, -2, - -4, 1, 7, 6, 5, 8, 16, 19, 20, 24, 32, 38, 44, 50, 59, 66, - 74, 84, 91, 93, 95, 99, 97, 85, 70, 58, 43, 18, -10, -30, -45, -63, - -82, -93, -95, -94, -97, -95, -87, -76, -70, -63, -54, -46, -39, -33, -26, -23, - -20, -16, -10, -10, -12, -9, -3, -3, -7, -8, -2, 1, -2, -5, 0, 6, - 6, 4, 8, 15, 18, 20, 23, 31, 37, 43, 50, 58, 65, 74, 83, 91, - 93, 96, 100, 98, 87, 72, 61, 46, 22, -6, -27, -42, -60, -79, -91, -94, - -93, -97, -95, -87, -77, -70, -64, -55, -47, -40, -34, -28, -25, -22, -17, -12, - -11, -13, -11, -5, -4, -8, -9, -3, 0, -4, -6, -1, 5, 5, 3, 7, - 14, 18, 19, 23, 30, 36, 42, 49, 57, 65, 73, 83, 90, 94, 96, 100, - 99, 89, 75, 63, 49, 25, -2, -23, -38, -56, -76, -88, -92, -92, -95, -94, - -87, -77, -71, -65, -57, -48, -41, -36, -29, -26, -23, -19, -13, -12, -14, -12, - -7, -6, -9, -10, -5, -1, -4, -7, -2, 2, 5, 4, 6, 12, 18, 20, - 24, 30, 38, 45, 52, 61, 70, 79, 89, 99, 106, 109, 113, 115, 109, 96, - 81, 66, 44, 16, -12, -32, -52, -74, -92, -101, -104, -107, -108, -103, -94, -85, - -78, -70, -60, -52, -45, -38, -33, -29, -25, -19, -16, -17, -16, -12, -9, -10, - -12, -9, -5, -5, -7, -5, 0, 3, 3, 5, 11, 17, 20, 23, 29, 37, - 44, 51, 59, 69, 78, 88, 98, 105, 110, 114, 116, 110, 98, 84, 69, 48, - 20, -7, -29, -49, -71, -89, -99, -102, -105, -107, -103, -94, -86, -79, -71, -62, - -54, -47, -40, -34, -30, -26, -21, -18, -18, -17, -14, -10, -12, -14, -11, -5, - -10, 43, -94, 44, -13, 27, -98, 1, 9, 77, 63, 4, 8, -128, 63, -73, - 78, -116, 127, -14, 111, -87, -67, -43, -45, 38, 53, 99, -37, 14, -51, -58, - -23, -32, 34, 27, 75, 9, 51, -104, -71, -33, 27, 67, 0, -1, 25, 0, - -35, 1, -70, 28, -4, 109, 3, 5, -42, -7, 42, -15, 37, -62, 67, -14, - 48, -85, -46, -94, 37, 35, 23, 15, -79, 35, -50, 91, -64, 40, -69, 46, - 20, 43, -21, -51, 8, -1, 95, -47, 69, -104, 98, -44, 74, -61, -14, -19, - 7, 52, -40, 8, -89, 58, -53, 106, -106, 42, -82, 61, -1, -8, -10, -59, - 53, -18, 85, -83, 63, -73, 89, -32, 50, -62, 10, 13, 20, 62, -81, 41, - -84, 88, -32, 41, -78, 27, -30, 51, -6, -42, 6, -49, 74, -41, 41, -89, - 27, -33, 57, 0, -16, -8, -4, 45, 8, 20, -63, 36, -29, 75, -23, -17, - -23, -14, 45, -7, 17, -56, 20, -12, 45, -16, -13, -31, 6, 31, -7, 17, - -81, 40, -35, 73, -34, 0, -31, 10, 35, -4, 19, -60, 44, -30, 83, -66, - 41, -87, 59, -6, 23, -4, -59, 34, -33, 77, -70, 49, -89, 88, -45, 63, - -62, 4, -20, 18, 46, -49, 45, -101, 91, -56, 78, -79, 35, -51, 67, -12, - -2, -14, -49, 66, -35, 72, -87, 51, -74, 83, -38, 29, -36, -10, 23, 3, - 30, -59, 27, -59, 91, -44, 41, -63, 12, 2, 23, 8, -36, 14, -35, 66, - -38, 32, -59, 25, -11, 40, -6, -25, -2, -24, 55, -25, 29, -58, 30, -17, - 41, -18, -17, -3, -13, 50, -25, 26, -63, 35, -23, 50, -22, -5, -18, 0, - 33, -19, 22, -67, 57, -39, 63, -45, 6, -27, 13, 23, -6, 15, -55, 44, - -42, 70, -59, 36, -60, 56, -13, 15, -9, -50, 49, -38, 72, -63, 37, -65, - 67, -48, 55, -51, 10, 2, -5, 45, -61, 46, -83, 91, -58, 72, -69, 23, - -27, 35, -8, -3, -2, -33, 66, -61, 79, -100, 67, -60, 66, -26, 13, -21, - -13, 23, -11, 29, -49, 40, -53, 80, -67, 52, -63, 28, 6, -1, 23, -45, - 25, -30, 42, -25, 22, -42, 33, -26, 39, -26, -9, 10, -28, 61, -50, 33, - -43, 18, 2, 6, 4, -18, 4, -8, 24, -21, 22, -49, 50, -40, 52, -35, - -10, 17, -34, 64, -53, 38, -47, 37, -28, 40, -47, 33, -32, 28, 3, -20, - 30, -69, 79, -75, 88, -72, 39, -34, 22, -7, 9, -18, 1, 19, -27, 58, - -89, 81, -90, 89, -58, 42, -27, -5, 16, -21, 29, -34, 28, -37, 59, -65, - 72, -90, 69, -45, 31, 6, -36, 40, -53, 56, -47, 39, -42, 40, -38, 50, - -52, 34, -31, 7, 32, -47, 62, -79, 66, -51, 41, -27, 12, -10, 12, -5, - 3, -5, -18, 33, -44, 70, -75, 60, -52, 27, 4, -19, 22, -29, 27, -15, - 18, -31, 26, -36, 50, -41, 35, -31, 3, 19, -37, 55, -62, 51, -38, 25, - -11, 1, -13, 12, -7, 13, 4, -33, 38, -56, 72, -64, 52, -43, 20, 6, - -20, 25, -40, 34, -25, 38, -41, 43, -68, 68, -59, 53, -28, -7, 27, -45, - 63, -70, 56, -60, 59, -41, 48, -56, 39, -43, 35, -3, -19, 40, -70, 85, - -81, 76, -75, 48, -36, 41, -20, 12, -23, 0, 16, -23, 51, -76, 78, -82, - 80, -57, 29, -23, 3, 14, -2, 9, -29, 17, -31, 55, -51, 53, -66, 49, - -27, 17, 3, -35, 36, -33, 44, -27, 11, -30, 24, -18, 37, -29, 4, -3, - -15, 45, -47, 42, -57, 46, -19, 18, -11, -20, 10, -3, 24, -18, 14, -46, - 52, -50, 64, -57, 25, -14, 1, 33, -42, 30, -52, 50, -28, 47, -54, 32, - -49, 53, -25, 14, -4, -34, 57, -54, 69, -78, 46, -45, 52, -21, 21, -37, - 7, 1, 3, 29, -57, 56, -74, 90, -66, 47, -51, 16, 6, 10, 10, -29, - 9, -32, 58, -47, 59, -84, 65, -49, 52, -24, -18, 14, -30, 61, -39, 31, - -57, 39, -38, 67, -56, 37, -46, 26, 10, -15, 18, -49, 45, -27, 42, -37, - 11, -24, 30, -15, 21, -34, 15, -5, 11, 5, -24, 11, -16, 30, -16, 6, - -20, 7, 3, 11, -9, -5, -6, 4, 16, -15, 9, -29, 22, -6, 14, -6, - -16, 9, -12, 28, -22, 15, -27, 22, -11, 21, -23, 5, -10, 8, 17, -22, - 19, -42, 41, -31, 39, -37, 20, -20, 19, -3, -7, 2, -17, 27, -20, 30, - -43, 30, -34, 38, -24, 13, -13, -1, 16, -16, 19, -36, 28, -21, 30, -22, - 7, -17, 11, 2, 1, 1, -19, 22, -21, 32, -34, 18, -21, 17, 6, -8, - 5, -25, 21, -13, 24, -24, 12, -22, 24, -11, 10, -14, -7, 15, -11, 28, - -36, 21, -30, 30, -10, 10, -13, -5, 6, -2, 14, -22, 15, -25, 33, -22, - 23, -31, 11, -6, 8, 11, -21, 14, -28, 32, -23, 25, -31, 19, -15, 19, - -7, -7, 1, -13, 26, -19, 24, -37, 25, -24, 30, -18, 6, -9, -2, 17, - -16, 17, -34, 27, -19, 28, -21, 6, -15, 10, 4, 0, 2, -20, 22, -19, - -21, 0, -3, -3, 2, 1, -1, 2, -2, -1, 4, 3, -3, -15, -21, -20, - -23, -42, -45, -31, -27, -17, -8, 9, 29, 41, 44, 33, 20, 13, 6, 12, - 16, 25, 43, 44, 33, 33, 35, 15, -5, -3, 8, 16, 8, -10, -6, 8, - 4, -4, 1, -18, -38, -43, -51, -54, -55, -71, -85, -68, -58, -61, -50, -33, - -27, -15, -5, 22, 67, 100, 109, 114, 110, 91, 69, 50, 37, 35, 46, 48, - 37, 36, 14, -24, -38, -42, -38, -38, -59, -91, -86, -57, -44, -32, -15, -26, - -44, -30, -30, -30, -16, -31, -50, -34, -43, -59, -49, -44, -52, -62, -69, -50, - -4, 47, 83, 105, 120, 111, 88, 72, 55, 57, 76, 69, 59, 55, 41, 10, - -18, -32, -28, -19, -36, -68, -76, -72, -71, -46, -35, -47, -43, -43, -61, -48, - -28, -25, -22, -19, -23, -15, -7, 3, 4, -8, -28, -37, -5, 42, 72, 107, - 127, 122, 117, 90, 48, 37, 48, 51, 54, 56, 43, 24, -8, -37, -33, -11, - -28, -55, -61, -75, -75, -51, -58, -55, -33, -33, -41, -35, -30, -21, -16, -17, - -24, -26, -20, -18, -17, -12, -36, -72, -65, -45, -6, 53, 88, 106, 119, 107, - 71, 52, 50, 59, 75, 87, 85, 76, 43, -1, -7, 9, -1, -13, -34, -69, - -80, -74, -80, -73, -65, -67, -65, -56, -44, -33, -23, -18, -24, -25, -16, -20, - -9, -1, -21, -38, -55, -64, -40, 3, 39, 82, 113, 114, 95, 71, 54, 56, - 68, 76, 87, 94, 57, 10, -9, -17, -17, -15, -35, -60, -75, -89, -92, -85, - -76, -71, -74, -70, -53, -41, -20, -9, -9, 4, 4, 10, 33, 38, 25, 15, - -17, -43, -33, -15, 3, 40, 77, 94, 91, 69, 37, 31, 33, 37, 68, 96, - 82, 53, 25, 8, 22, 28, 9, -9, -27, -46, -56, -65, -62, -61, -60, -51, - -51, -39, -25, -23, -11, -3, -15, -10, 5, 12, 20, 18, -11, -41, -52, -47, - -34, -2, 33, 65, 82, 70, 51, 45, 28, 21, 49, 74, 86, 74, 33, 5, - 10, 14, 7, -10, -28, -45, -67, -68, -73, -76, -66, -66, -65, -46, -39, -31, - -9, -3, -6, 1, 8, 22, 41, 49, 33, 8, -16, -34, -30, -17, 7, 49, - 73, 64, 63, 50, 19, 5, 13, 32, 62, 65, 37, 8, -5, 4, -1, -8, - -15, -36, -50, -57, -71, -65, -53, -58, -49, -37, -40, -28, -10, -3, 0, 2, - -2, 5, 30, 41, 36, 22, -7, -33, -39, -46, -30, 15, 44, 56, 72, 65, - 44, 21, 2, 15, 42, 59, 49, 18, 2, -3, -4, 0, -10, -25, -34, -52, - -65, -59, -56, -50, -37, -33, -33, -25, -12, -2, 10, 12, 3, 6, 27, 42, - 52, 43, 16, -3, -24, -48, -41, -11, 16, 48, 67, 78, 75, 49, 21, 13, - 36, 64, 63, 47, 25, -1, -2, 2, -12, -18, -28, -53, -65, -71, -76, -70, - -55, -53, -49, -41, -35, -24, -1, 5, 1, 4, 8, 28, 51, 43, 26, 18, - -14, -42, -51, -49, -23, 5, 31, 55, 67, 58, 26, -2, 11, 35, 49, 55, - 35, 8, 3, -2, -5, -6, -13, -30, -38, -49, -61, -56, -45, -43, -36, -31, - -37, -25, -7, 1, 6, 1, -10, 11, 33, 29, 27, 17, -6, -34, -58, -67, - -57, -34, -4, 21, 50, 63, 37, 11, 8, 17, 45, 63, 55, 39, 26, 12, - 11, 10, -1, -11, -19, -35, -51, -52, -52, -45, -35, -36, -41, -31, -24, -9, - 9, -3, -12, 2, 19, 33, 40, 37, 25, -3, -30, -51, -59, -42, -24, -3, - 38, 58, 51, 32, 8, 2, 25, 45, 50, 49, 35, 18, 16, 19, 10, 9, - 4, -13, -27, -36, -45, -36, -24, -32, -29, -31, -33, -10, 6, 1, -4, -6, - 4, 19, 30, 37, 30, 12, -13, -48, -59, -57, -56, -35, 2, 31, 48, 41, - 12, -2, 7, 25, 41, 52, 44, 29, 25, 22, 18, 20, 15, 1, -6, -26, - -38, -28, -26, -21, -17, -31, -33, -19, -4, 0, -8, -16, -15, -11, 9, 19, - 22, 24, -2, -34, -49, -61, -70, -57, -32, 4, 38, 46, 26, 5, -1, 7, - 29, 45, 44, 38, 32, 23, 27, 30, 23, 24, 14, -8, -16, -24, -24, -12, - -10, -19, -27, -26, -9, -2, -4, -6, -16, -14, -2, 8, 23, 34, 17, -6, - -26, -47, -61, -62, -50, -18, 26, 50, 48, 31, 12, 6, 24, 40, 44, 51, - 40, 29, 34, 28, 27, 32, 20, 7, -5, -23, -26, -19, -9, -12, -25, -25, - -17, -8, 1, -4, -13, -12, -16, -9, 13, 26, 23, 8, -13, -37, -55, -71, - -78, -59, -18, 16, 35, 34, 8, -3, 4, 13, 31, 40, 34, 34, 29, 23, - 30, 31, 27, 21, 7, -6, -21, -21, -10, -10, -19, -24, -28, -17, -6, -8, - -9, -9, -19, -21, -5, 12, 23, 22, 5, -16, -34, -55, -80, -78, -56, -22, - 18, 33, 24, 14, 3, 7, 25, 31, 37, 41, 33, 29, 29, 32, 33, 30, - 24, 7, -16, -22, -18, -15, -14, -24, -31, -22, -13, -12, -8, -6, -18, -27, - -22, -6, -5, -1, -1, -1, 1, 2, 7, 13, 19, 10, -12, -31, -13, 17, - 29, -4, -29, 24, 53, 18, 92, 15, -15, 23, 13, -35, -52, 127, 9, 3, - -9, 31, -63, -64, -5, -50, 14, 33, -29, -42, 0, 43, 39, -15, -59, -45, - 3, 33, 12, -35, -10, 51, 18, 49, 55, -28, 16, 4, 3, -64, 54, 53, - -12, 0, 5, -4, -72, -7, -31, -14, 26, -2, -37, -14, 17, 35, 4, -33, - -45, -12, 15, 21, -16, -23, 22, 28, 12, 55, -7, -2, 7, 7, -34, -10, - 65, -4, 1, -5, 14, -46, -28, -9, -29, 13, 13, -23, -23, 4, 27, 18, - -17, -39, -25, 5, 20, 0, -26, 1, 34, 7, 41, 24, -20, 11, 1, -6, - -45, 53, 22, -6, -4, 9, -17, -52, -4, -30, -6, 20, -9, -29, -8, 18, - 27, -2, -33, -36, -6, 16, 13, -20, -16, 27, 19, 18, 49, -17, 3, 2, - 6, -42, 9, 55, -9, 1, -3, 9, -54, -19, -16, -24, 16, 7, -27, -19, - 8, 28, 12, -22, -40, -20, 8, 19, -7, -25, 9, 31, 7, 48, 9, -14, - 9, 2, -17, -35, 62, 9, -2, -6, 13, -30, -44, -4, -31, 2, 18, -15, - -27, -3, 22, 24, -8, -36, -32, -2, 17, 8, -23, -9, 31, 13, 28, 40, - -21, 8, 1, 3, -47, 29, 43, -9, 0, 1, 1, -57, -11, -22, -17, 19, - 2, -28, -14, 12, 29, 7, -27, -39, -14, 11, 17, -13, -22, 17, 27, 10, - 51, -4, -7, 7, 5, -27, -19, 64, -1, 1, -6, 14, -41, -34, -8, -30, - 8, 15, -20, -24, 2, 25, 20, -14, -38, -27, 2, 18, 2, -25, -1, 33, - 9, 37, 29, -21, 11, 0, -3, -46, 46, 29, -7, -2, 7, -9, -54, -6, - -27, -10, 20, -4, -28, -9, 16, 28, 1, -30, -37, -8, 14, 14, -18, -17, - 25, 22, 16, 50, -13, 1, 4, 5, -37, 0, 59, -7, 2, -4, 12, -49, - -24, -13, -26, 13, 11, -23, -19, 6, 27, 15, -19, -39, -21, 6, 18, -4, - -24, 7, 32, 8, 45, 15, -16, 10, 2, -12, -39, 58, 16, -3, -5, 11, - -22, -48, -4, -30, -2, 19, -10, -26, -4, 20, 25, -5, -34, -33, -4, 16, - 10, -21, -11, 30, 16, 25, 43, -19, 7, 1, 4, -44, 20, 49, -8, 1, - -1, 6, -54, -15, -19, -20, 17, 6, -26, -15, 10, 29, 9, -23, -39, -16, - 9, 17, -10, -22, 15, 29, 10, 50, 2, -10, 8, 3, -22, -26, 63, 5, - 0, -6, 14, -34, -39, -6, -30, 4, 17, -15, -24, 0, 24, 22, -11, -36, - -28, 1, 17, 5, -23, -3, 32, 12, 34, 33, -21, 10, 0, 0, -46, 39, - 36, -7, -1, 4, -3, -54, -9, -24, -14, 19, 0, -26, -10, 14, 28, 4, - -27, -37, -11, 12, 15, -15, -18, 22, 24, 14, 50, -9, -2, 5, 5, -32, - -8, 61, -3, 2, -5, 14, -44, -29, -10, -27, 10, 13, -20, -20, 4, 26, - 17, -16, -37, -23, 4, 18, -1, -23, 5, 32, 9, 42, 20, -18, 11, 1, - -7, -41, 53, 22, -4, -3, 9, -14, -50, -6, -27, -7, 19, -6, -26, -5, - 18, 26, -2, -31, -34, -6, 14, 11, -19, -12, 28, 19, 22, 45, -17, 4, - 2, 5, -40, 11, 54, -6, 2, -3, 10, -51, -20, -16, -23, 14, 9, -23, - -15, 8, 28, 12, -20, -38, -18, 7, 17, -7, -22, 13, 30, 10, 47, 7, - -12, 9, 2, -17, -31, 61, 10, 0, -5, 13, -26, -43, -6, -29, 0, 18, - -11, -23, -1, 22, 23, -8, -34, -30, -1, 15, 7, -22, -5, 31, 14, 30, - 37, -20, 9, 0, 2, -44, 30, 42, -7, 1, 2, 2, -53, -12, -21, -17, - 17, 4, -25, -11, 12, 28, 6, -25, -37, -13, 10, 15, -13, -18, 20, 26, - 13, 49, -5, -5, 6, 4, -27, -16, 62, 1, 2, -5, 14, -38, -34, -9, - -28, 6, 15, -16, -20, 3, 25, 19, -13, -36, -25, 2, 16, 1, -23, 3, - 32, 11, 38, 25, -19, 11, 0, -4, -43, 46, 29, -4, -2, 7, -8, -51, - -8, -25, -10, 18, -2, -25, -7, 16, 27, 0, -28, -35, -8, 12, 12, -17, - -13, 26, 21, 19, 46, -14, 2, 3, 4, -36, 2, 57, -4, 3, -4, 12, - -46, -25, -13, -25, 11, 12, -20, -16, 7, 27, 14, -18, -37, -20, 5, 16, - -5, -21, 10, 31, 10, 45, 12, -14, 10, 1, -12, -36, 57, 16, -1, -4, - 11, -20, -46, -6, -28, -4, 18, -8, -23, -3, 20, 24, -5, -32, -31, -4, - 13, 8, -20, -6, 29, 17, 27, 39, -19, 7, 0, 3, -42, 21, 47, -6, - 2, 0, 7, -51, -17, -18, -20, 15, 7, -23, -12, 10, 28, 8, -22, -37, - -15, 8, 15, -10, -19, 18, 27, 13, 47, 0, -8, 8, 3, -24, -20, 52, - -36, -2, 0, -2, 3, 5, -4, -28, 22, -43, 36, -13, -127, -43, 2, -18, - 126, 78, -127, -48, 68, -74, -67, 33, 62, 83, 42, -32, -46, -70, -26, 115, - 21, -66, 72, 52, -27, 44, 50, 50, 61, 28, -12, 3, -59, 49, 3, -19, - 39, 94, 16, 31, 6, 29, 3, -100, -1, -4, -60, 19, 7, -29, -28, -38, - -3, -47, -20, -21, -1, 5, -55, -12, -55, -39, 26, 47, -22, -9, -41, -21, - -19, -37, 0, 45, -56, 24, 75, -50, -9, 31, 28, 26, 13, -3, -15, -27, - 1, 1, -31, -10, 38, -1, 7, 43, 19, 21, 41, 33, 9, -17, -3, -42, - -76, -30, -8, -9, -1, 21, 22, 38, 32, 22, 0, -18, -32, -58, -12, 5, - -48, -13, 64, 29, -2, 2, 19, 43, 25, -19, -39, -69, -92, -15, 23, 30, - 30, 51, 37, 35, 37, 30, -27, -63, 5, -30, -56, -16, 26, 52, 20, 14, - 59, 27, -9, 22, -4, -20, -37, -17, -34, -34, -1, 35, 26, 31, 5, -16, - 4, 33, 22, 8, 5, -28, -41, -20, -10, -6, -2, -16, 12, 31, -23, 7, - -2, -39, -28, -13, 8, 5, 16, -4, -6, -18, -24, -27, -50, -6, 5, 12, - 0, -2, -14, -23, 5, -28, -10, 2, 28, 15, 2, 22, 27, 41, 31, 2, - 12, 31, 5, 12, -6, 15, 40, 34, 18, 26, 26, 12, 34, 23, 34, 30, - 22, 10, -26, -22, 1, 0, -1, 12, -4, -21, -5, -5, -20, -31, -25, -24, - -42, -44, -41, -41, -37, -29, -28, -29, -40, -17, -21, -38, -42, -38, -40, -36, - -13, -14, -8, -15, -7, -6, 5, 12, -1, -17, -1, 9, 2, 16, 30, 27, - 37, 36, 38, 36, 36, 19, 45, 45, 33, 26, 33, 28, 36, 31, 17, 12, - 22, 11, 11, 17, 5, -13, 6, 10, 2, -6, 2, 9, 15, -6, -8, -23, - -44, -3, -11, -35, -25, -35, -23, -21, 0, -11, -21, -17, 11, -6, -11, -17, - -33, -16, -16, -4, -7, -7, -9, -4, 1, 1, -3, 6, 7, 4, -17, -11, - -6, -4, 1, 3, 6, 4, 5, -4, 17, 7, 3, 9, -20, 0, -7, -3, - -5, 4, 9, 16, 2, 3, 8, 15, 15, 1, -3, 8, -1, 5, 14, 7, - 4, 8, -8, 2, -3, 5, 11, 5, 3, -4, 10, 17, 13, -11, -5, 1, - -3, 0, -6, -12, 2, -3, 13, -5, -25, -15, -7, 4, 1, -8, -4, -12, - -16, 3, 9, -6, 3, -21, -4, 4, -14, 1, -1, -2, 3, -8, -5, 0, - 7, -2, -3, -1, 3, -9, 5, -4, -17, -1, 9, 3, 7, 1, -4, -3, - 5, 2, -7, -9, 12, -6, -14, -16, 2, -1, 16, 2, 2, 7, -6, -26, - 3, -2, -4, -2, 10, 3, -7, 3, 8, 9, 5, 4, 1, -5, -5, 11, - 8, 7, 11, 12, -1, -5, -16, 13, 7, 2, 11, 4, -4, 9, -8, -8, - 14, 11, -8, 0, -1, -5, -2, -1, -10, -5, -9, -9, -16, -12, -8, -16, - 5, -10, -4, -11, -3, 1, 0, -3, -5, -13, -9, -2, -8, 5, -9, -7, - -2, 2, -11, -7, 13, 8, -3, 2, 7, -2, -1, 5, 0, 11, 6, 13, - 15, 1, -4, 9, 5, 3, 8, -3, -4, 16, 4, 11, 9, 0, 8, 1, - -6, -5, -18, 3, 7, -18, -4, 0, -3, -3, -6, -4, -5, -5, -10, -2, - -9, -5, -2, -4, -11, -2, 1, -5, -2, 11, -6, -9, 1, 4, -6, -1, - -5, 1, 2, 9, 5, 0, 4, 4, -2, 7, 0, -10, 5, 2, -3, 0, - -6, 7, -4, -3, 6, -1, -6, -1, -1, 2, -2, -6, -3, 0, 8, -6, - 4, -1, -5, -3, 3, 1, -5, -6, -2, -3, 5, 6, 0, 7, -3, 3, - -1, 0, -2, 9, 1, 1, -3, 4, 5, -5, 2, -2, 2, -11, -2, -4, - 11, 4, 5, 0, -5, -12, -6, -5, -5, 3, -2, -2, 2, 2, 1, 0, - -1, -8, -5, -5, -3, 2, -1, 3, -1, 3, 0, -1, 0, -1, 1, 1, - -4, -4, 2, -2, 1, -6, 1, 2, 4, 2, 2, -5, -1, 6, -3, -1, - -4, 11, 3, -9, -2, -6, -3, 2, 4, 2, 1, 2, 4, 3, -6, -4, - -3, -2, 0, 2, -2, 5, 2, -1, 3, -9, -3, -3, -4, -4, -1, 0, - -2, 7, 3, 1, 1, -2, -4, -2, -3, -2, -4, 2, 4, -1, 2, 3, - 0, 3, -1, 0, -2, -2, -3, 1, -1, -4, 5, -1, 5, 0, -3, -2, - -1, -4, 3, -1, -3, -2, -2, -1, 0, 0, 1, -1, 0, -2, -2, 0, - -3, -1, 0, 0, 1, 1, -2, -1, 1, -3, 1, 2, 0, -1, 0, -1, - 1, 5, -2, 1, -3, -3, -1, -3, 0, 1, 3, 2, -1, -1, -2, -2, - -1, 1, 0, -1, -2, -2, -2, -3, -3, -3, -2, -2, -2, -2, -2, -2, - -2, -1, 0, 1, 1, -2, -2, 0, 0, 2, -3, -16, -22, -20, -28, -35, - -31, -17, 19, 33, 36, 33, 34, 40, 36, 25, 18, 20, 18, 14, 17, 12, - 14, 10, -24, -36, -27, -38, -55, -69, -66, -47, -33, -13, 3, 5, 10, 22, - 25, 15, 28, 43, 41, 51, 56, 58, 58, 31, -18, -52, -64, -71, -92, -105, - -98, -77, -50, -17, 23, 59, 85, 99, 94, 76, 55, 14, -9, -5, -7, -18, - -17, -35, -53, -53, -33, -23, -33, -36, -15, 17, 32, 24, 12, 19, 37, 54, - 49, 38, 21, -14, -44, -30, -22, -15, 5, 8, -1, -26, -42, -46, -49, -51, - -37, -17, 1, -4, -19, -4, 45, 84, 91, 79, 57, 3, -30, -29, -35, -25, - -8, -6, -26, -61, -75, -73, -77, -72, -54, -19, 9, 6, -10, 3, 47, 85, - 92, 103, 92, 45, 21, 6, 4, 16, 27, 27, -1, -48, -69, -78, -80, -84, - -72, -33, -10, -24, -41, -20, 40, 82, 99, 123, 102, 69, 49, 30, 27, 34, - 42, 41, -2, -58, -96, -108, -103, -106, -83, -37, -10, -18, -38, -18, 40, 65, - 92, 110, 84, 44, 1, -26, -23, -7, 21, 32, 7, -39, -78, -84, -79, -82, - -61, -19, 5, -14, -52, -25, 25, 59, 102, 127, 116, 86, 40, 13, 4, 9, - 27, 29, 4, -47, -88, -94, -87, -83, -56, -18, 15, -13, -49, -30, -2, 29, - 69, 87, 80, 50, 9, -15, -27, -10, 18, 44, 36, -9, -45, -53, -53, -46, - -33, 6, 31, -8, -36, -28, -11, 21, 54, 76, 76, 44, 4, -33, -53, -45, - -18, 13, 10, -35, -62, -70, -61, -44, -19, 38, 63, 30, 9, 4, 9, 35, - 60, 81, 75, 51, 14, -25, -44, -37, -9, 29, 24, -11, -41, -59, -51, -54, - -33, 23, 35, 6, -13, -28, -18, 8, 43, 73, 76, 63, 33, -1, -21, -22, - 10, 43, 35, 5, -32, -47, -51, -68, -44, 6, 14, 0, -21, -34, -25, 0, - 37, 65, 73, 64, 35, 5, -22, -25, 11, 40, 39, 13, -20, -28, -42, -64, - -32, 6, 15, -1, -25, -39, -39, -16, 19, 44, 58, 53, 27, -2, -39, -38, - -2, 30, 40, 13, -16, -19, -45, -60, -29, 6, 17, 1, -21, -40, -44, -24, - 9, 38, 58, 51, 38, 8, -31, -29, 0, 34, 44, 9, -11, -23, -58, -69, - -42, -6, 9, 0, -16, -33, -36, -12, 19, 55, 72, 68, 58, 18, -22, -25, - -6, 29, 31, 2, -5, -23, -57, -69, -45, -8, 12, 10, 0, -22, -24, -7, - 20, 52, 61, 65, 59, 21, -15, -28, -11, 26, 20, 2, -2, -22, -56, -71, - -49, -14, 3, 8, -5, -26, -28, -19, 14, 42, 54, 71, 67, 38, 8, -11, - 16, 47, 37, 26, 18, -10, -51, -74, -59, -35, -19, -12, -24, -37, -44, -34, - 0, 24, 44, 67, 64, 43, 3, -18, 11, 35, 28, 22, 18, -4, -47, -68, - -55, -34, -11, -7, -15, -27, -43, -32, -1, 18, 42, 58, 60, 43, -8, -29, - -6, 11, 7, 4, 4, -17, -59, -75, -66, -41, -13, -3, 1, -11, -29, -19, - 1, 19, 42, 53, 64, 45, -8, -28, -9, 7, 4, 4, 9, -13, -51, -71, - -69, -43, -19, -7, 3, -11, -25, -17, -2, 23, 43, 60, 78, 55, 1, -19, - -5, 8, 3, 7, 13, -8, -41, -66, -67, -40, -19, 3, 16, 1, -7, -5, - 10, 34, 46, 67, 87, 62, 11, -13, -1, 8, 4, 15, 20, 1, -33, -64, - -65, -48, -30, -2, 6, -5, -14, -18, 1, 21, 32, 62, 86, 66, 20, -3, - 6, 7, 5, 16, 20, 7, -29, -62, -65, -59, -39, -13, -5, -8, -22, -27, - -6, 7, 17, 49, 74, 58, 14, -5, -2, -4, -3, 7, 14, 6, -32, -59, - -66, -63, -40, -16, -2, -2, -19, -20, -1, 6, 18, 49, 77, 62, 21, 3, - -1, -5, -2, 5, 18, 10, -26, -50, -65, -64, -43, -24, -5, -6, -24, -23, - -8, -2, 10, 45, 75, 60, 25, 6, -4, -4, -5, 3, 20, 8, -20, -43, - -60, -58, -45, -24, 1, -1, -15, -12, -1, 3, 16, 53, 83, 70, 42, 19, - 9, 7, 3, 16, 29, 17, -7, -35, -55, -56, -49, -24, 2, -1, -11, -7, - 3, 4, 16, 55, 83, 75, 50, 25, 15, 6, 0, 13, 21, 13, -9, -40, - -58, -66, -62, -35, -11, -11, -18, -13, -3, -7, 9, 49, 75, 74, 51, 28, - 19, 5, 1, 13, 20, 16, -3, -28, -48, -62, -61, -37, -16, -13, -20, -15, - -12, -19, -5, 21, 50, 61, 47, 28, 15, -1, -6, 0, 9, 14, 1, -19, - -37, -55, -56, -38, -16, -11, -13, -9, -9, -16, -8, 18, 48, 59, 44, 28, - 9, 15, -3, 2, -5, 3, 3, 4, 1, 7, -2, 7, -4, 2, -124, -37, - 33, -48, 7, -27, 8, -14, 77, 26, -9, 26, 7, 20, 10, 13, 8, 9, - 7, 4, 5, 2, 3, 2, 1, -1, 0, -3, -2, -5, 1, -10, 11, 70, - -6, 21, 5, 27, -2, 41, -15, -61, -66, -128, 0, -48, -21, -46, -6, -55, - 23, 53, -6, 11, 2, 14, 11, 10, 11, 8, 9, 9, 8, 5, 8, 5, - 6, 5, 6, 2, 7, -4, 6, 5, -23, 62, 29, 24, 8, 33, 4, 32, - 36, -30, -16, -124, -58, -39, -18, -51, -3, -43, -40, 53, 19, 12, 4, 9, - 12, 13, 10, 11, 9, 8, 11, 6, 5, 8, 6, 3, 9, 1, 7, 2, - -5, 22, -33, 20, 37, 35, 7, 29, 14, 8, 52, -5, 17, -64, -84, -70, - -15, -55, -23, -12, -72, 1, 28, 16, 8, 6, 7, 12, 10, 8, 11, 6, - 8, 10, 5, 4, 10, 1, 8, 4, 2, 10, -15, 26, -16, -9, 14, 42, - 17, 19, 29, -3, 42, 14, 28, -8, -45, -92, -37, -41, -54, 0, -53, -48, - 2, 18, 10, 8, 4, 8, 12, 8, 10, 10, 6, 9, 10, 2, 10, 5, - 3, 9, -2, 18, -16, 17, 3, -9, -12, 26, 28, 13, 35, 3, 27, 19, - 31, 17, 4, -60, -67, -33, -66, -22, -22, -58, -38, 2, 11, 9, 7, 4, - 9, 10, 8, 10, 9, 5, 12, 5, 5, 9, 2, 11, -5, 21, -8, 4, - 10, 5, -17, -1, 28, 11, 34, 13, 20, 17, 28, 24, 27, -6, -61, -41, - -57, -51, -17, -36, -56, -32, -1, 7, 8, 5, 6, 8, 10, 8, 12, 6, - 9, 9, 5, 9, 1, 15, -7, 15, 5, -2, 4, 14, -3, -18, 15, 8, - 28, 21, 20, 16, 23, 23, 29, 30, -20, -38, -45, -63, -38, -23, -43, -53, - -29, -5, 5, 5, 5, 5, 9, 7, 11, 8, 8, 10, 5, 12, -2, 16, - -1, 4, 11, 4, -3, 8, 15, -16, 0, 1, 16, 23, 23, 17, 20, 21, - 21, 39, 19, -14, -28, -52, -58, -33, -28, -47, -50, -30, -6, 2, 5, 4, - 6, 6, 9, 10, 7, 12, 3, 15, 0, 10, 8, 1, 6, 11, 2, -4, - 20, -1, -6, -5, 4, 15, 24, 20, 18, 23, 15, 30, 38, 13, -6, -27, - -56, -52, -30, -34, -48, -50, -28, -8, 2, 3, 5, 5, 6, 11, 5, 13, - 3, 12, 6, 5, 10, 5, 2, 7, 13, -8, 10, 11, 0, -6, -4, 3, - 17, 23, 16, 24, 18, 17, 36, 32, 13, -1, -30, -57, -45, -31, -36, -51, - -49, -28, -7, -1, 3, 6, 2, 11, 5, 12, 6, 9, 10, 5, 8, 8, - 5, -1, 16, 1, -1, 11, 9, -1, -5, -5, 4, 20, 17, 20, 24, 14, - 23, 37, 29, 16, 2, -33, -53, -42, -30, -39, -52, -49, -27, -9, -3, 5, - 0, 8, 5, 10, 8, 6, 10, 6, 7, 6, 11, -3, 8, 11, 0, 2, - 11, 8, -1, -5, -7, 9, 18, 16, 24, 20, 14, 27, 35, 27, 21, 1, - -33, -50, -38, -32, -42, -53, -48, -25, -14, -1, -2, 4, 3, 6, 9, 5, - 9, 7, 7, 4, 12, 4, 1, 10, 6, 2, 6, 10, 4, 0, -6, -2, - 11, 14, 18, 22, 17, 20, 32, 34, 28, 20, 0, -26, -36, -34, -37, -45, - -54, -44, -30, -13, -8, -3, 1, 2, 6, 4, 7, 8, 8, 2, 8, 10, - 1, 4, 6, 5, 5, 9, 6, 1, -3, -5, 3, 10, 14, 18, 18, 17, - 26, 35, 35, 29, 17, -1, -17, -24, -32, -41, -50, -51, -44, -28, -18, -12, - -5, -2, 2, 3, 3, 6, 9, 4, 3, 9, 6, 2, 2, 4, 5, 9, - 10, 4, -2, -5, -1, 5, 10, 14, 16, 15, 19, 30, 38, 37, 29, 15, - 1, -5, -14, -31, -43, -50, -52, -42, -29, -22, -16, -9, -3, 0, 0, 2, - 6, 6, 2, 4, 7, 6, 2, 1, 2, 6, 11, 10, 2, -5, -4, 0, - 5, 10, 14, 15, 14, 21, 32, 39, 38, 29, 14, 4, 0, -3, -19, -32, - -40, -43, -41, -36, -31, -25, -19, -12, -9, -8, -6, -1, 2, 2, 0, -3, - -4, -1, 3, 6, 6, 2, -3, -6, -2, 2, 2, 1, 2, 7, 16, 25, - 32, 35, 35, 36, 36, 33, 24, 11, -3, -18, -32, -40, -42, -40, -36, -30, - -25, -18, -12, -9, -8, -5, -1, 2, 2, 0, -3, -4, -1, 3, 7, 6, - 2, -4, -5, -2, 2, 2, 1, 2, 8, 17, 25, 32, 35, 36, 36, 36, - 32, 23, 10, -4, -20, -33, -41, -42, -40, -35, -30, -24, -18, -12, -9, -8, - -5, -1, 3, 2, -1, -4, -4, -1, 4, 7, 6, 1, -4, -5, -2, -1, - 3, 1, 3, 5, 3, -3, -1, -1, 1, -15, 1, 1, -5, -7, 7, -2, - -4, 3, -2, -5, -1, -3, -3, -1, 6, 3, 2, 3, -26, -117, 35, -8, - -19, 24, 58, -7, -6, 25, -9, 7, 4, 10, 2, 7, 6, 6, 0, 6, - -2, -1, -3, -3, 8, 71, 0, 17, 27, 20, -102, -115, 39, -32, -18, -5, - 58, -15, -12, 13, -10, -4, 1, 2, 1, 0, 6, 2, 1, 2, 0, -4, - 0, -5, 2, 67, 9, 14, 28, 29, -72, -126, 27, -25, -19, -14, 58, -6, - -11, 13, -5, -3, 3, 3, 4, 1, 8, 3, 3, 3, 3, -2, 2, -3, - -3, 62, 17, 14, 27, 35, -45, -128, 11, -19, -20, -22, 53, 1, -12, 11, - -3, -4, 2, 3, 4, 1, 7, 3, 3, 3, 3, -2, 2, -2, -9, 57, - 22, 14, 25, 37, -23, -125, -8, -15, -20, -30, 46, 9, -12, 10, -2, -3, - 0, 3, 3, 1, 6, 4, 2, 3, 2, -2, 1, 0, -16, 50, 26, 13, - 22, 37, -2, -117, -27, -13, -18, -36, 36, 16, -13, 9, -2, -2, -2, 3, - 2, 2, 4, 5, 1, 4, 2, -1, 0, 4, -20, 43, 29, 15, 20, 36, - 14, -102, -43, -15, -16, -40, 26, 22, -12, 8, -2, -2, -3, 3, 1, 3, - 2, 6, 1, 5, 1, 0, -1, 7, -23, 35, 31, 18, 18, 33, 27, -83, - -57, -20, -14, -42, 14, 26, -9, 7, -2, 0, -5, 3, 1, 4, 1, 7, - 0, 5, 1, 1, -2, 10, -24, 26, 31, 20, 17, 30, 36, -62, -65, -27, - -12, -43, 2, 28, -7, 6, -2, 0, -5, 3, 0, 4, 0, 7, 0, 5, - 1, 2, -4, 11, -23, 17, 32, 22, 16, 27, 42, -44, -67, -36, -9, -42, - -8, 28, -3, 5, -1, 1, -5, 2, 0, 4, 1, 7, 1, 5, 1, 3, - -5, 13, -22, 10, 31, 23, 17, 22, 45, -25, -66, -45, -8, -40, -18, 27, - 0, 5, -1, 1, -5, 1, 0, 4, 0, 6, 2, 4, 2, 3, -6, 14, - -19, 2, 29, 25, 19, 19, 47, -10, -60, -54, -10, -37, -27, 24, 4, 4, - 0, 1, -5, 0, 0, 3, 1, 5, 2, 4, 2, 4, -7, 15, -16, -4, - 27, 25, 21, 15, 48, 4, -51, -61, -12, -33, -34, 19, 7, 4, 1, 0, - -4, -1, 0, 3, 2, 5, 3, 3, 3, 5, -8, 15, -11, -10, 24, 25, - 23, 12, 45, 15, -39, -66, -18, -28, -40, 12, 10, 4, 2, 1, -3, -2, - 0, 2, 2, 4, 3, 3, 3, 5, -8, 13, -6, -14, 19, 25, 25, 10, - 43, 24, -25, -67, -25, -24, -45, 4, 11, 5, 3, 0, -2, -3, -1, 1, - 2, 3, 3, 3, 2, 6, -9, 11, -2, -17, 15, 24, 27, 9, 39, 31, - -13, -66, -33, -19, -48, -3, 11, 5, 3, 1, -2, -3, -1, 1, 2, 4, - 3, 3, 2, 8, -9, 9, 3, -18, 10, 22, 29, 9, 35, 35, 0, -61, - -41, -17, -49, -11, 10, 6, 3, 2, -2, -3, -2, 1, 1, 4, 3, 5, - 1, 9, -9, 7, 6, -18, 5, 20, 29, 10, 32, 38, 11, -47, -45, -18, - -47, -20, 5, 6, 4, 2, -1, -3, -2, 0, 1, 5, 1, 6, 1, 7, - -7, 6, 6, -16, 1, 16, 27, 11, 29, 40, 20, -30, -43, -23, -46, -28, - -2, 4, 4, 2, -1, -3, -2, -1, 0, 6, -1, 7, 2, 5, -6, 5, - 6, -15, -3, 13, 25, 12, 26, 41, 26, -14, -36, -26, -44, -35, -11, 1, - 4, 2, 0, -4, -3, -3, -1, 7, -2, 7, 4, 4, -6, 4, 7, -13, - -6, 10, 23, 12, 24, 42, 31, 0, -24, -28, -42, -40, -19, -4, 4, 2, - 1, -4, -3, -4, -3, 8, -3, 6, 6, 3, -6, 4, 7, -11, -8, 7, - 20, 12, 21, 41, 34, -2, -31, -34, -29, -21, -12, -3, -4, -10, -7, -5, - -6, -4, 5, 8, -3, -1, 7, -1, -11, -7, 0, 1, 6, 16, 28, 33, - 33, 30, 13, -1, -26, -35, -30, -24, -14, -5, -4, -11, -7, -5, -6, -6, - 3, 8, -2, -2, 7, 1, -11, -9, -1, 0, 4, 14, 26, 32, 33, 32, - 17, 3, -22, -34, -31, -25, -16, -6, -3, -10, -8, -5, -6, -7, 2, 9, - 0, -3, 6, 3, -9, -10, -2, 0, 3, 12, 24, 32, -1, 0, -3, -1, - -8, -5, -16, -5, -14, -4, -13, -5, -1, -7, 16, -17, 28, -16, 47, 1, - 70, 35, 97, 71, 98, 66, 32, -5, -71, -69, -122, -69, -105, -33, -67, -6, - -35, 2, -12, -2, 4, -12, 16, -19, 29, -16, 44, 2, 66, 37, 92, 76, - 95, 74, 33, 5, -69, -63, -122, -69, -106, -36, -66, -11, -33, -3, -9, -7, - 7, -16, 18, -22, 29, -17, 42, 3, 61, 40, 86, 81, 91, 82, 34, 15, - -67, -57, -122, -69, -105, -40, -64, -17, -29, -9, -6, -12, 10, -20, 20, -23, - 28, -17, 39, 4, 56, 42, 80, 85, 88, 89, 35, 24, -63, -53, -119, -70, - -104, -45, -62, -22, -26, -14, -2, -16, 12, -23, 20, -25, 27, -16, 35, 7, - 51, 45, 74, 89, 85, 96, 38, 32, -58, -49, -116, -72, -102, -50, -60, -27, - -24, -19, 0, -20, 14, -24, 20, -24, 24, -14, 31, 10, 45, 48, 69, 92, - 82, 102, 40, 39, -53, -45, -112, -74, -100, -55, -57, -33, -21, -24, 3, -24, - 15, -26, 19, -24, 22, -12, 27, 12, 40, 50, 63, 95, 80, 106, 43, 45, - -47, -42, -107, -76, -97, -60, -55, -38, -18, -28, 4, -26, 15, -27, 18, -23, - 19, -10, 23, 15, 35, 53, 59, 97, 78, 110, 47, 50, -39, -39, -102, -79, - -94, -65, -52, -43, -16, -32, 5, -28, 14, -27, 16, -21, 15, -7, 18, 18, - 30, 55, 54, 98, 76, 113, 51, 55, -32, -37, -96, -81, -91, -70, -50, -48, - -15, -35, 6, -30, 13, -26, 13, -19, 11, -5, 13, 20, 25, 56, 50, 99, - 75, 115, 56, 59, -24, -35, -90, -83, -88, -75, -48, -52, -14, -38, 5, -30, - 11, -25, 10, -17, 7, -2, 9, 22, 21, 57, 47, 99, 75, 116, 61, 62, - -15, -33, -82, -86, -84, -80, -47, -56, -14, -39, 4, -30, 9, -24, 6, -15, - 3, 1, 5, 24, 17, 57, 44, 98, 75, 116, 66, 65, -6, -31, -75, -88, - -81, -83, -46, -59, -14, -41, 3, -30, 6, -22, 3, -12, -1, 3, 1, 26, - 13, 57, 41, 96, 75, 115, 72, 68, 2, -29, -69, -89, -78, -87, -45, -62, - -15, -42, 0, -29, 3, -20, -1, -10, -5, 5, -2, 26, 11, 56, 40, 94, - 76, 114, 77, 69, 12, -28, -61, -91, -75, -89, -45, -64, -16, -42, -2, -28, - 0, -18, -5, -8, -9, 7, -6, 27, 8, 55, 38, 91, 77, 112, 82, 71, - 20, -25, -55, -91, -73, -91, -46, -65, -18, -42, -5, -26, -4, -15, -10, -5, - -13, 9, -9, 27, 7, 53, 37, 88, 78, 110, 87, 72, 29, -23, -48, -90, - -71, -93, -47, -66, -21, -41, -9, -24, -8, -13, -13, -3, -16, 9, -11, 27, - 5, 51, 37, 84, 79, 108, 93, 74, 37, -20, -42, -90, -70, -94, -49, -66, - -24, -40, -12, -23, -12, -12, -16, -2, -18, 10, -12, 25, 5, 48, 37, 80, - 81, 105, 98, 75, 45, -16, -36, -88, -68, -94, -51, -66, -28, -39, -16, -21, - -15, -10, -19, -1, -21, 10, -13, 24, 4, 45, 37, 76, 82, 102, 102, 76, - 52, -13, -30, -85, -67, -94, -54, -66, -31, -38, -20, -19, -19, -9, -22, 0, - -22, 9, -14, 22, 4, 41, 37, 71, 83, 99, 105, 77, 59, -8, -25, -82, - -67, -93, -56, -65, -35, -37, -23, -18, -22, -7, -25, 0, -24, 8, -14, 20, - 5, 37, 38, 67, 84, 96, 108, 79, 65, -3, -20, -79, -66, -92, -59, -65, - -39, -36, -27, -17, -25, -7, -27, -1, -24, 6, -14, 17, 6, 34, 39, 63, - 84, 93, 111, 80, 71, 1, -15, -75, -66, -90, -62, -64, -43, -35, -31, -16, - -28, -6, -28, -1, -25, 5, -14, 14, 6, 30, 39, 58, 85, 90, 113, 82, - 76, 7, -11, -70, -66, -88, -66, -62, -46, -34, -34, -15, -30, -7, -30, -2, - -25, 2, -13, 11, 7, 26, 40, 53, 84, 87, 115, 84, 81, 13, -7, -65, - -66, -85, -68, -61, -50, -33, -37, -15, -32, -7, -30, -4, -25, 0, -12, 7, - 9, 19, 37, 52, 80, 97, 118, 113, 98, 54, 7, -41, -72, -87, -87, -75, - -65, -47, -42, -29, -30, -22, -24, -19, -19, -14, -9, -2, 8, 17, 36, 50, - 77, 95, 117, 115, 101, 60, 13, -35, -69, -85, -88, -75, -66, -49, -44, -31, - -31, -23, -25, -20, -20, -15, -9, -2, -1, 0, 0, 0, 0, -1, -1, -1, - 3, 9, 14, 14, 10, -3, -17, -13, 1, 1, 23, 33, -14, -55, -59, -80, - -75, -35, -7, 51, 40, -29, -35, -53, -128, -31, 111, 72, 46, 55, -19, -73, - -23, 14, 64, 104, 87, 105, 68, -54, -76, -1, -18, 12, 92, 23, -79, -93, - -105, -119, -64, -20, 39, 70, 2, -45, -52, -107, -82, 73, 106, 56, 53, 12, - -57, -37, 14, 52, 105, 101, 94, 85, -5, -75, -25, -1, -8, 59, 52, -45, - -89, -94, -117, -90, -42, 1, 53, 29, -29, -45, -79, -104, 3, 99, 78, 63, - 42, -25, -49, -7, 30, 83, 112, 103, 99, 40, -54, -58, -11, -7, 36, 68, - -4, -80, -98, -114, -106, -57, -15, 33, 42, -10, -46, -66, -97, -45, 68, 90, - 67, 53, 4, -40, -20, 18, 60, 103, 107, 100, 69, -15, -62, -31, -9, 15, - 60, 31, -50, -90, -108, -115, -79, -33, 11, 42, 15, -33, -58, -87, -75, 21, - 87, 79, 63, 27, -26, -33, 1, 40, 88, 111, 105, 85, 20, -50, -49, -17, - 5, 46, 49, -17, -77, -102, -115, -95, -49, -7, 31, 28, -15, -50, -76, -84, - -21, 64, 84, 71, 45, -4, -32, -13, 22, 66, 103, 108, 95, 50, -23, -56, - -32, -5, 30, 55, 14, -53, -92, -111, -107, -68, -24, 16, 34, 4, -37, -66, - -85, -53, 32, 81, 77, 58, 17, -25, -24, 6, 46, 89, 108, 101, 71, 6, - -49, -45, -16, 15, 49, 36, -26, -77, -103, -110, -85, -41, 0, 30, 20, -21, - -55, -79, -72, -5, 65, 81, 67, 36, -10, -28, -8, 27, 71, 102, 104, 85, - 34, -31, -51, -29, 1, 37, 48, 2, -57, -93, -109, -97, -58, -16, 20, 28, - -4, -42, -70, -79, -36, 39, 78, 74, 51, 9, -24, -18, 11, 51, 91, 105, - 94, 57, -6, -48, -41, -12, 22, 48, 26, -33, -79, -103, -104, -74, -32, 6, - 28, 12, -27, -60, -78, -59, 8, 66, 78, 62, 27, -13, -24, -3, 33, 74, - 100, 99, 74, 20, -35, -48, -25, 8, 40, 40, -7, -61, -94, -106, -88, -49, - -9, 21, 21, -11, -47, -72, -71, -22, 45, 76, 71, 43, 2, -22, -13, 16, - 56, 91, 101, 85, 43, -15, -47, -36, -6, 28, 45, 16, -38, -80, -102, -97, - -65, -24, 11, 25, 4, -33, -63, -75, -46, 18, 66, 75, 56, 19, -15, -20, - 2, 38, 77, 98, 93, 62, 8, -38, -44, -20, 14, 41, 32, -15, -64, -94, - -101, -79, -40, -2, 22, 15, -17, -52, -72, -61, -9, 49, 74, 66, 36, -2, - -21, -9, 22, 61, 91, 96, 76, 31, -22, -45, -32, 0, 32, 40, 7, -43, - -82, -99, -89, -56, -17, 14, 21, -2, -38, -65, -69, -33, 26, 66, 71, 50, - 13, -16, -16, 7, 43, 79, 95, 85, 50, -2, -40, -40, -14, 20, 40, 24, - -22, -66, -93, -95, -70, -32, 3, 21, 9, -23, -55, -70, -51, 1, 52, 71, - 60, 28, -6, -19, -4, 27, 64, 90, 91, 66, 19, -27, -43, -26, 6, 34, - 35, -1, -48, -83, -96, -81, -47, -10, 16, 17, -9, -43, -66, -62, -22, 33, - 66, 67, 43, 7, -16, -13, 12, 48, 80, 91, 77, 39, -10, -40, -36, -8, - 24, 38, 17, -28, -69, -92, -89, -62, -25, 7, 19, 4, -29, -58, -67, -42, - 10, 55, 70, 55, 22, -9, -17, 0, 33, 68, 90, 86, 57, 10, -31, -41, - -21, 12, 36, 30, -8, -53, -85, -94, -75, -41, -5, 17, 13, -15, -48, -67, - -57, -13, 39, 68, 64, 37, 3, -16, -9, 18, 54, 84, 91, 72, 30, -17, - -41, -33, -2, 28, 37, 10, -35, -74, -94, -86, -56, -19, 10, 17, -2, -36, - -63, -66, -34, 19, 60, 70, 51, 17, -11, -15, 5, 39, 74, 92, 83, 49, - 1, -36, -40, -16, 18, 37, 24, -17, -61, -90, -93, -70, -34, 1, 18, 8, - -22, -55, -69, -50, -2, 47, 70, 61, 31, -3, -17, -5, 26, 62, 88, 90, - 65, 19, -25, -42, -27, 5, 33, 33, 1, -45, -81, -95, -81, -48, -11, 14, - 15, -10, -43, -66, -61, -22, 31, 65, 68, 43, 9, -14, -11, 12, 49, 80, - 92, 76, 38, -10, -39, -36, -8, 24, 38, 16, -27, -70, -92, -89, -61, -25, - 7, 17, 3, -31, -59, -68, -39, 8, 55, 55, 19, 0, -9, -10, -14, -13, - -21, -30, -32, -44, -49, -57, -65, -72, -83, -98, -104, -117, -123, -128, -127, -128, - -128, -128, -128, -127, -128, -120, -117, -109, -100, -90, -83, -72, -66, -55, -50, -33, - -42, -18, -29, -18, 15, -6, 11, 7, 19, 3, 38, 5, 48, 44, 64, 57, - 97, 82, 111, 104, 110, 107, 120, 116, 125, 126, 126, 126, 126, 127, 117, 125, - 123, 100, 127, 101, 124, 102, 121, 109, 126, 96, 125, 116, 127, 90, 119, 87, - 127, 90, 118, 95, 123, 93, 106, 90, 100, 104, 74, 84, 73, 97, 72, 71, - 57, 66, 80, 36, 59, 38, 55, 35, 57, -6, 64, 10, 25, 19, 19, -22, - 65, -26, 14, 2, -17, -12, 22, -40, -3, -31, -24, -38, -1, -56, -6, -48, - -36, -54, -19, -56, -33, -49, -69, -49, -52, -53, -60, -61, -84, -76, -85, -96, - -95, -95, -114, -93, -117, -104, -93, -101, -98, -100, -101, -96, -78, -95, -71, -70, - -72, -52, -63, -70, -43, -77, -41, -48, -65, -53, -53, -59, -42, -56, -37, -64, - -54, -52, -50, -54, -56, -54, -55, -62, -51, -47, -44, -67, -60, -63, -56, -64, - -53, -48, -61, -53, -58, -38, -48, -32, -38, -34, -28, -26, -23, -25, -22, -6, - -7, -12, -1, 5, 6, 6, -7, 22, -4, 27, 15, 18, 24, 37, 30, 47, - 24, 53, 29, 63, 29, 46, 46, 51, 52, 53, 36, 54, 65, 55, 33, 64, - 36, 69, 54, 26, 62, 66, 36, 68, 30, 47, 54, 58, 20, 55, 31, 40, - 50, 35, 19, 56, 33, 25, 46, 18, 22, 42, 21, 25, 32, 19, 19, 26, - 18, 23, 29, 24, 7, 27, 6, 33, 8, 17, -2, 14, 3, 23, 14, 7, - 5, -9, -13, -10, -23, -12, -16, -27, -8, -18, -15, -3, -18, -24, -5, -23, - -9, 0, -11, 4, -1, 4, 2, 5, -2, 3, -1, -7, 4, -11, 1, -12, - -4, -7, -10, -11, -11, -16, -23, -15, -20, -22, -23, -20, -30, -23, -31, -25, - -32, -35, -41, -34, -44, -39, -34, -49, -33, -30, -36, -29, -33, -14, -24, -32, - -18, -15, -7, -9, -11, 5, -14, 27, -11, 16, -10, 13, -9, 23, -10, 19, - 10, 18, 11, 29, 1, 47, 27, -4, 45, 3, 43, 40, 14, 13, 57, 16, - 34, 27, 22, 30, 32, 14, 24, 27, 20, 20, 17, 4, 20, 20, 8, 8, - 0, 10, -3, 17, -8, -1, -4, 1, 0, 6, -7, -3, -3, -13, -5, -6, - -18, -5, -28, -12, -13, -5, -11, -5, -28, -7, -15, -10, -6, -28, -16, -12, - -17, -8, -10, -19, -10, -24, -30, -32, -26, -31, -36, -32, -33, -27, -25, -26, - -26, -25, -25, -23, -16, -22, -10, -11, -7, -7, 4, -10, 10, -9, 11, -8, - 4, -6, 4, -8, 3, -4, 2, -3, -5, -3, -11, -8, -6, -12, -11, -7, - -24, -4, -17, -9, -18, -28, -16, -29, -23, -38, -24, -34, -22, -38, -18, -27, - -10, -22, -19, -21, -2, -23, 10, -19, 0, 4, 16, 7, 0, 3, 17, 14, - 26, 8, 25, 27, 30, 25, 38, 31, 49, 37, 42, 45, 48, 55, 63, 46, - 54, 54, 56, 59, 56, 47, 50, 53, 47, 50, 44, 42, 35, 40, 31, 37, - 35, 27, 20, 23, 19, 26, 24, 18, 11, 14, 18, 24, 18, 12, 10, 3, - 12, 2, 9, 4, 0, 0, 3, -4, 11, 1, 1, -1, -5, -7, 1, -6, - -1, 2, -4, 1, -1, -7, -9, -11, -21, -19, -20, -28, -27, -22, -29, -24, - -26, -32, -22, -25, -31, -24, -19, -22, -11, -19, -15, -4, -5, -4, 0, -6, - -6, 2, -9, -5, -5, -9, -10, -7, -18, -8, -14, -14, -19, -29, -25, -16, - -25, -30, -30, -30, -21, -29, -38, -37, -36, -41, -44, -53, -48, -43, -44, -55, - -46, -40, -33, -36, -40, -40, -28, -25, -24, -23, -17, -15, 1, -3, -1, 5, - 2, 9, 1, 4, 12, 13, 14, 15, 9, 21, 26, 32, 31, 28, 28, 41, - 38, 49, 45, 46, 53, 56, 57, 57, 57, 58, 55, 48, 56, 56, 56, 45, - 39, 41, 41, 44, 42, 25, 28, 27, 24, 28, 21, 14, 17, 8, 15, 22, - 13, 15, 16, 3, 11, 10, 4, 6, 4, -8, 0, -2, -2, -3, -2, 1, - 3, -3, -3, -6, -8, -5, 4, 3, 2, -4, -2, -1, 5, 3, -2, -2, - -2, 3, 7, -2, -26, -37, -34, -30, -13, -14, -21, -24, -27, -24, -13, -7, - -15, 6, 3, -30, -50, -48, -47, -41, -26, -8, 28, 43, 38, 57, 63, 56, - 75, 118, 127, 117, 99, 86, 85, 66, 46, 59, 80, 69, 43, 27, -6, -47, - -74, -80, -71, -57, -40, -44, -56, -78, -88, -78, -59, -52, -51, -56, -57, -47, - -36, -36, -39, -39, -32, -17, 6, 24, 33, 10, -14, -14, -2, -11, -20, -15, - -24, -28, -28, -25, -28, -54, -73, -65, -43, -18, 6, 27, 21, 23, 17, 22, - 18, 16, 31, 50, 45, 25, 22, 8, -20, -17, 8, 29, 10, -22, -41, -45, - -51, -53, -31, -18, -23, -7, 37, 54, 38, 36, 60, 100, 119, 120, 122, 125, - 110, 88, 94, 99, 90, 85, 82, 54, 26, -5, -49, -83, -85, -67, -36, -14, - -30, -55, -76, -86, -65, -41, -45, -60, -53, -43, -35, -34, -41, -43, -45, -35, - 10, 40, 32, 3, -3, -14, -30, -38, -33, -23, -29, -26, -18, -10, -17, -37, - -46, -58, -61, -45, -17, -4, -2, 19, 31, 27, 13, 22, 38, 49, 59, 69, - 60, 23, -13, -11, 13, 24, 19, 24, 8, -30, -58, -58, -66, -85, -90, -61, - -19, -1, -11, -5, 25, 42, 61, 92, 109, 106, 110, 104, 93, 93, 89, 82, - 86, 81, 71, 51, 13, -40, -74, -87, -73, -35, -24, -50, -71, -73, -53, -50, - -58, -68, -60, -61, -54, -30, -25, -40, -52, -25, 13, 32, 45, 49, 44, 28, - 22, 29, 32, 20, 3, 7, 6, 0, -1, -4, -30, -63, -69, -62, -57, -49, - -25, 2, 17, 24, 27, 30, 10, 4, 38, 77, 66, 32, 13, 7, 0, 9, - 31, 43, 23, -11, -25, -23, -46, -83, -87, -63, -42, -19, -6, -3, 6, 27, - 49, 81, 108, 121, 123, 124, 115, 110, 98, 80, 78, 77, 77, 69, 54, 8, - -56, -99, -92, -53, -46, -64, -75, -73, -70, -75, -62, -67, -86, -88, -54, -28, - -33, -46, -50, -40, -24, -3, 29, 51, 48, 34, 44, 44, 30, 18, 13, -3, - -15, -7, -1, -10, -36, -56, -65, -79, -100, -91, -64, -52, -40, -5, 20, 9, - -14, -9, 21, 49, 59, 58, 49, 25, -1, 11, 39, 39, 22, 19, 20, 8, - -19, -49, -72, -69, -58, -43, -27, -24, -13, -5, 12, 38, 74, 97, 110, 124, - 126, 126, 114, 105, 100, 87, 91, 108, 115, 73, 5, -41, -49, -49, -53, -45, - -49, -69, -77, -60, -51, -71, -94, -96, -68, -49, -46, -44, -45, -60, -60, -27, - 0, 11, 26, 37, 37, 37, 40, 42, 34, 8, -1, 14, 15, -5, -12, -18, - -44, -75, -85, -88, -98, -99, -76, -36, -12, -19, -24, -11, -9, 1, 36, 71, - 58, 29, 13, 17, 33, 33, 30, 35, 44, 44, 27, -3, -39, -51, -61, -55, - -41, -31, -25, -29, -21, -1, 23, 46, 76, 102, 109, 110, 116, 118, 92, 61, - 76, 112, 120, 93, 57, 14, -28, -54, -50, -46, -60, -83, -82, -64, -62, -82, - -89, -93, -101, -88, -59, -52, -64, -75, -76, -63, -50, -30, -1, 9, 8, 11, - 32, 44, 36, 29, 32, 27, 20, 22, 28, 24, 0, -21, -30, -45, -78, -97, - -83, -66, -50, -32, -17, -16, -23, -20, 4, 38, 51, 47, 37, 28, 29, 27, - 27, 31, 42, 54, 55, 43, 20, -5, -29, -40, -37, -30, -27, -23, -15, -12, - -11, 8, 43, 67, 78, 100, 122, 126, 107, 84, 81, 92, 106, 115, 110, 79, - 31, -3, -13, -26, -47, -56, -56, -58, -58, -56, -59, -72, -86, -84, -66, -57, - -56, -56, -60, -74, -74, -51, -32, -24, -14, 3, 14, 15, 19, 28, 33, 19, - 11, 22, 29, 18, 8, 9, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -1, -1, -1, - -1, -1, -1, -1, -1, 0, -1, -3, -2, -1, 0, 2, -4, -13, -21, -23, - -19, -8, 7, 17, 23, 26, 33, 38, 32, 17, -5, -17, -24, -20, -6, -3, - -16, -29, -26, -17, -5, -1, 2, 7, 11, 17, 15, 9, 9, 3, 10, 15, - 9, -14, -33, -27, -18, -6, -7, -10, -6, 0, 12, 15, 29, 38, 36, 32, - 11, 0, -30, -45, -50, -39, -23, -27, -24, -15, 6, 25, 37, 51, 46, 40, - 0, -19, -22, -34, -30, -40, -45, -51, -34, -1, 25, 48, 40, 43, 51, 64, - 58, 5, -22, -49, -63, -69, -68, -58, -54, -16, 13, 44, 66, 61, 68, 72, - 86, 47, -17, -56, -82, -88, -93, -72, -58, -40, 4, 45, 94, 98, 84, 65, - 68, 71, 15, -46, -88, -90, -88, -85, -62, -56, -34, -4, 41, 80, 82, 74, - 54, 70, 66, 25, -29, -70, -74, -90, -87, -79, -73, -46, -10, 54, 90, 103, - 88, 76, 90, 69, 25, -38, -76, -96, -119, -111, -103, -81, -57, -12, 50, 90, - 113, 98, 100, 112, 103, 60, -11, -54, -95, -121, -124, -119, -95, -71, -10, 53, - 103, 116, 93, 91, 89, 80, 31, -28, -67, -108, -122, -128, -110, -87, -53, 8, - 60, 107, 107, 89, 83, 83, 76, 27, -14, -52, -84, -99, -103, -82, -72, -40, - 4, 53, 92, 92, 88, 85, 97, 87, 42, 3, -45, -74, -106, -111, -105, -101, - -70, -30, 27, 65, 77, 83, 87, 106, 90, 58, 16, -30, -67, -101, -100, -101, - -93, -68, -27, 29, 60, 77, 79, 93, 111, 96, 71, 24, -21, -73, -109, -118, - -127, -118, -98, -50, 6, 43, 65, 70, 99, 115, 108, 82, 40, -1, -53, -80, - -94, -105, -101, -82, -31, 18, 56, 66, 72, 95, 103, 97, 64, 29, -15, -63, - -85, -102, -105, -104, -81, -35, 13, 53, 58, 69, 86, 97, 94, 67, 39, -12, - -54, -80, -97, -102, -103, -77, -38, 9, 40, 45, 60, 77, 95, 88, 70, 41, - -8, -46, -74, -87, -99, -100, -78, -42, 10, 37, 50, 66, 89, 110, 103, 91, - 57, 9, -33, -68, -86, -105, -105, -89, -51, -2, 23, 40, 53, 80, 99, 98, - 89, 53, 8, -37, -68, -90, -107, -106, -94, -51, -5, 25, 43, 58, 86, 95, - 98, 86, 52, 9, -36, -64, -92, -105, -108, -95, -53, -11, 22, 37, 57, 81, - 90, 96, 82, 52, 6, -34, -64, -92, -104, -113, -97, -59, -18, 15, 31, 58, - 79, 92, 98, 87, 57, 9, -29, -63, -87, -100, -109, -91, -58, -13, 16, 36, - 62, 78, 93, 96, 88, 56, 12, -25, -62, -83, -101, -106, -89, -57, -15, 6, - 30, 52, 71, 87, 94, 89, 55, 18, -21, -55, -76, -96, -100, -88, -53, -16, - 6, 31, 53, 76, 93, 105, 98, 64, 26, -18, -52, -78, -99, -105, -95, -59, - -26, 0, 24, 45, 66, 81, 97, 88, 62, 28, -12, -40, -67, -84, -95, -83, - -50, -21, 4, 24, 47, 64, 81, 96, 85, 63, 26, -11, -41, -69, -88, -102, - -91, -64, -36, -12, 10, 34, 51, 74, 87, 81, 62, 26, -7, -40, -63, -83, - -95, -83, -58, -31, -10, 14, 34, 51, 75, 85, 82, 61, 30, -3, -34, -57, - -81, -92, -83, -60, -36, -15, 11, 27, 47, 69, 80, 79, 59, 30, -5, -33, - -57, -82, -93, -84, -61, -38, -15, 10, 25, 48, 68, 80, 77, 58, 29, -4, - -30, -56, -80, -89, -78, -54, -34, -8, 10, 0, 0, 1, 0, -2, -2, -5, - -8, -3, 3, -4, -10, 2, 8, 3, 4, 5, -3, -9, 10, 26, 26, 12, - -4, -40, -64, -50, 1, 55, 69, 28, -23, -65, -83, -52, 13, 67, 67, 39, - 16, -15, -48, -38, 10, 53, 44, 5, -5, -14, -43, -35, 16, 54, 37, -1, - -26, -53, -82, -37, 35, 67, 44, 2, -10, -20, -39, -19, 27, 55, 42, 3, - -26, -67, -107, -62, 43, 110, 102, 43, -18, -63, -91, -35, 73, 120, 77, -6, - -72, -113, -109, -36, 53, 78, 50, 0, -46, -72, -71, -20, 67, 112, 100, 44, - -24, -88, -123, -84, 5, 71, 97, 66, 7, -53, -100, -80, -1, 83, 127, 108, - 38, -57, -121, -119, -57, 24, 84, 97, 62, -4, -77, -97, -46, 32, 101, 108, - 56, -20, -103, -119, -69, 18, 105, 126, 90, 6, -92, -126, -90, -3, 85, 108, - 75, 0, -86, -117, -85, -6, 76, 115, 101, 30, -68, -118, -105, -33, 57, 105, - 102, 41, -46, -104, -112, -59, 25, 95, 121, 81, -5, -88, -126, -94, -12, 63, - 101, 76, 7, -67, -107, -73, 11, 94, 127, 102, 21, -74, -124, -95, -21, 57, - 101, 82, 21, -48, -89, -59, 6, 67, 95, 60, -11, -82, -115, -81, -13, 52, - 84, 52, -9, -68, -96, -56, 9, 66, 93, 63, 10, -52, -86, -54, 1, 60, - 96, 70, 19, -44, -80, -51, 0, 55, 94, 69, 20, -42, -88, -76, -40, 24, - 79, 72, 34, -28, -75, -63, -23, 35, 71, 48, 4, -57, -95, -67, -10, 62, - 103, 75, 18, -61, -110, -86, -22, 61, 110, 90, 37, -45, -100, -87, -39, 34, - 81, 70, 33, -39, -88, -76, -24, 54, 94, 76, 32, -46, -100, -92, -42, 35, - 73, 62, 26, -46, -97, -93, -44, 36, 81, 75, 35, -38, -87, -81, -26, 58, - 99, 85, 37, -44, -101, -103, -46, 47, 98, 97, 56, -27, -90, -99, -49, 37, - 88, 95, 62, -12, -74, -93, -51, 27, 69, 71, 35, -30, -78, -87, -38, 41, - 84, 90, 57, -11, -71, -96, -56, 21, 69, 86, 60, -4, -67, -97, -61, 12, - 65, 88, 65, 3, -61, -94, -60, 14, 71, 96, 68, 3, -66, -104, -70, 3, - 59, 84, 59, -1, -67, -107, -76, -3, 59, 89, 64, 3, -67, -111, -82, -9, - 57, 92, 76, 26, -43, -93, -71, -9, 50, 80, 64, 16, -51, -100, -79, -17, - 49, 88, 77, 30, -41, -95, -79, -17, 49, 87, 77, 34, -36, -92, -78, -19, - 44, 82, 73, 33, -37, -95, -84, -23, 47, 89, 83, 43, -30, -92, -83, -28, - 39, 79, 74, 40, -28, -87, -82, -31, 34, 71, 67, 35, -31, -88, -85, -36, - 28, 68, 69, 44, -20, -79, -83, -43, 19, 59, 64, 41, -25, -89, -100, -61, - 9, 60, 76, 57, -10, -75, -90, -51, 22, 74, 88, 66, 1, -61, -78, -42, - 25, 71, 84, 63, -1, -67, -90, -59, 8, 59, 81, 68, 8, -56, -85, -62, - 1, 50, 74, 63, 7, -53, -84, -60, 5, 55, 80, 70, 17, -43, -76, -55, - 4, 49, 73, 65, 17, -41, -77, -62, -9, 38, 68, 64, 17, -43, -84, -73, - -22, 23, 56, 57, 18, -36, -77, -68, -23, 20, 51, 52, 16, -36, -77, -70, - -26, 18, 54, 59, 28, -22, -64, -59, -20, 21, 56, 63, 36, -12, -55, -52, - -16, 25, 58, 63, 35, -14, -59, -57, -22, 18, 51, 57, 31, -16, -58, -58, - -27, 10, 43, 51, 30, -16, -59, -60, -28, 12, 48, 57, 35, -13, -59, -64, - -35, 7, 47, 63, 47, 1, -46, -55, -32, 7, 47, 0, 0, -1, -1, -4, - 1, -1, -3, -13, -8, -14, -3, -2, -2, 1, 8, 5, 7, -21, -13, -2, - -6, -8, -22, -6, 5, 11, 34, 41, 33, 13, 28, 33, 48, 35, 21, -3, - -26, -18, -10, 3, 7, 22, 21, 63, 40, 41, 43, 4, -8, -43, -63, -77, - -77, -59, -18, 3, 2, -21, -46, -74, -90, -108, -101, -94, -89, -84, -85, -77, - -59, -50, -33, -7, 18, 37, 47, 64, 101, 127, 125, 127, 126, 126, 126, 122, - 100, 87, 62, 37, 28, 27, 25, 27, 34, 25, -4, -45, -85, -123, -128, -126, - -128, -127, -123, -92, -73, -55, -45, -37, -33, -32, -33, -43, -53, -55, -43, -20, - 3, 20, 34, 42, 49, 55, 63, 74, 84, 93, 101, 107, 112, 117, 109, 92, - 63, 33, 8, -13, -25, -29, -30, -27, -27, -32, -46, -63, -82, -98, -109, -116, - -121, -118, -104, -80, -49, -12, 21, 45, 58, 64, 66, 66, 61, 51, 44, 37, - 32, 32, 33, 33, 28, 23, 15, 8, 3, 2, 9, 16, 20, 24, 23, 14, - -1, -20, -37, -48, -53, -52, -47, -38, -26, -13, -5, -1, -4, -10, -22, -34, - -43, -48, -46, -34, -16, 5, 25, 45, 65, 78, 84, 83, 71, 55, 39, 24, - 9, -3, -12, -23, -34, -45, -57, -65, -71, -71, -63, -49, -34, -21, -11, -2, - 2, 8, 11, 12, 14, 14, 20, 28, 38, 50, 58, 63, 61, 56, 46, 33, - 17, -1, -19, -34, -45, -48, -44, -32, -19, -5, 5, 7, 4, -2, -7, -11, - -15, -18, -21, -23, -26, -28, -30, -31, -29, -26, -20, -12, -1, 11, 21, 32, - 42, 51, 55, 55, 52, 46, 41, 37, 32, 30, 28, 27, 24, 19, 12, -1, - -21, -45, -67, -89, -103, -107, -101, -90, -70, -51, -33, -18, -2, 11, 23, 33, - 39, 44, 49, 52, 57, 59, 59, 56, 52, 48, 41, 35, 28, 20, 15, 11, - 4, 0, -5, -11, -18, -25, -34, -42, -47, -48, -46, -40, -33, -27, -24, -21, - -24, -32, -42, -51, -56, -58, -56, -47, -35, -18, 2, 24, 48, 70, 88, 99, - 104, 102, 97, 89, 79, 69, 59, 49, 37, 27, 14, 0, -14, -29, -44, -58, - -71, -81, -87, -88, -88, -85, -81, -77, -72, -63, -51, -37, -21, -5, 12, 29, - 43, 53, 59, 61, 57, 48, 36, 24, 13, 8, 8, 15, 25, 38, 48, 54, - 54, 50, 43, 33, 22, 11, 3, -6, -15, -25, -35, -46, -54, -61, -65, -68, - -69, -69, -68, -64, -59, -52, -43, -32, -20, -7, 6, 19, 31, 42, 51, 58, - 62, 64, 62, 58, 52, 44, 35, 26, 17, 9, 1, -5, -10, -15, -18, -19, - -20, -19, -18, -16, -15, -14, -14, -15, -16, -17, -18, -19, -19, -19, -19, -18, - -16, -14, -11, -9, -6, -3, 0, 3, 6, 10, 14, 18, 22, 27, 32, 35, - 37, 37, 35, 30, 23, 14, 4, -6, -15, -24, -31, -36, -39, -40, -39, -37, - -32, -26, -19, -10, -1, 8, 17, 24, 29, 32, 33, 32, 29, 25, 20, 15, - 11, 7, 3, -1, -5, -9, -14, -19, -24, -28, -31, -32, -31, -27, -23, -16, - -10, -3, 2, 7, 10, 12, 13, 13, 13, 12, 10, 8, 7, 5, 5, 5, - 5, 6, 8, 10, 13, 17, 20, 23, 25, 26, 25, 21, 16, 9, 1, -7, - -16, -24, -31, -37, -42, -47, -49, -51, -52, -51, -48, -43, -37, -30, -20, -7, - 6, 19, -1, -4, -4, 0, -1, -4, -3, 4, 4, -2, -3, 2, 1, -4, - 0, 5, 0, -4, 2, -10, -26, -29, -34, -49, -61, -44, -21, -8, -3, -3, - 1, 20, 32, 38, 32, 12, -4, 1, 14, 28, 51, 68, 78, 80, 72, 38, - 1, -6, 16, 23, 2, -14, -15, -20, -33, -62, -65, -37, -18, -27, -29, -26, - -45, -38, 8, 52, 55, 31, 26, 16, 17, 45, 80, 87, 77, 62, 54, 24, - -23, -50, -43, -28, -47, -72, -86, -86, -87, -61, -35, -38, -57, -69, -55, -27, - 1, 4, 22, 45, 54, 31, 0, -7, -5, -3, 0, -9, -21, -20, -15, -27, - -31, -10, 5, 9, 3, -21, -67, -83, -46, -3, 8, 18, 22, 4, -3, 5, - 35, 52, 67, 72, 83, 89, 71, 37, 19, 25, 8, -11, -37, -58, -80, -85, - -68, -33, -24, -57, -60, -34, -16, -14, 17, 73, 96, 77, 48, 17, -7, -9, - 4, -1, -3, 6, 3, -12, -10, 19, 33, 33, 41, 35, -29, -70, -64, -38, - -18, 3, 17, -5, -26, -35, -5, 31, 63, 73, 86, 94, 80, 64, 50, 46, - 37, 28, -2, -32, -65, -91, -84, -63, -59, -82, -97, -80, -66, -65, -43, 8, - 49, 60, 61, 42, 27, 23, 23, 14, 15, 18, 10, -12, -17, -9, -13, 8, - 35, 42, 2, -41, -76, -87, -67, -46, -31, -32, -45, -72, -53, -5, 32, 46, - 72, 92, 96, 92, 77, 75, 73, 61, 44, 12, -32, -68, -72, -54, -58, -75, - -85, -67, -57, -61, -60, -46, -11, 24, 35, 22, 15, 6, -1, -13, 8, 23, - 8, -1, -1, -6, -8, 35, 71, 86, 79, 50, -11, -46, -38, -31, -29, -21, - -30, -64, -68, -43, -12, 10, 28, 62, 89, 88, 84, 85, 90, 89, 95, 83, - 28, -32, -53, -36, -44, -62, -64, -55, -59, -54, -52, -48, -23, 19, 48, 37, - 39, 42, 31, 12, 19, 20, 5, 4, 1, -23, -40, -14, 14, 42, 68, 64, - 14, -33, -53, -52, -32, -18, -24, -43, -67, -62, -36, -18, -1, 25, 54, 57, - 58, 56, 54, 50, 66, 80, 44, -21, -50, -40, -52, -69, -77, -60, -56, -54, - -53, -62, -49, -9, 28, 41, 58, 58, 47, 43, 49, 41, 34, 37, 18, -19, - -44, -47, -36, 1, 35, 38, 19, -20, -62, -71, -59, -36, -34, -47, -63, -63, - -50, -38, -17, 7, 37, 56, 74, 80, 73, 61, 87, 116, 99, 47, -7, -26, - -22, -20, -32, -57, -72, -76, -76, -71, -47, -9, 13, 24, 29, 29, 25, 27, - 52, 68, 62, 9, -38, -67, -66, -39, -11, -4, -24, -37, -47, -51, -49, -44, - -55, -39, -6, -17, -52, -54, -19, 1, 15, 24, 31, 41, 55, 71, 79, 89, - 111, 115, 88, 54, 22, -2, -8, -5, -7, -27, -49, -57, -69, -72, -64, -30, - -3, 17, 31, 37, 29, 14, 39, 67, 73, 47, 10, -40, -72, -58, -23, -12, - -19, -19, -39, -49, -42, -46, -62, -44, -8, -11, -36, -51, -39, -15, 0, 13, - 21, 25, 40, 55, 63, 73, 95, 115, 115, 85, 53, 20, 2, -1, -2, -10, - -32, -48, -64, -73, -77, -62, -33, -9, 16, 33, 31, 18, 17, 44, 67, 70, - 49, 6, -45, -69, -53, -24, -13, -19, -24, -40, -47, -45, -50, -62, -43, -10, - -13, -37, -51, -39, -15, 0, -3, -1, 1, -1, -6, -6, -4, -1, -2, -6, - -8, -7, -4, -5, -10, -14, -16, -16, -16, -17, -18, -18, -17, -15, -15, -16, - -15, -13, -10, -9, -9, -11, -13, -14, -11, -9, -8, -9, -7, -3, -2, -5, - -8, -6, 1, 5, 4, 1, 0, 1, 4, 4, 4, 5, 7, 9, 9, 8, - 8, 9, 10, 9, 5, 2, 3, 5, 7, 7, 9, 11, 11, 12, 14, 14, - 12, 8, 7, 8, 5, 1, 3, 8, 9, 9, 10, 14, 16, 15, 14, 12, - 11, 9, 7, 3, -2, -3, 3, 5, 0, -5, -1, -1, -6, -10, -16, -23, - -28, -29, -32, -39, -36, -23, -16, -19, -19, -10, -7, -12, -11, -5, -6, -11, - -13, -11, -9, -8, -2, 6, 8, 8, 9, 6, 2, 4, 8, 9, 4, 4, - 12, 18, 17, 14, 17, 20, 20, 16, 9, 7, 7, 5, 3, 4, 1, -2, - 0, 3, 2, -1, 1, 3, 3, 1, 2, 2, 0, 3, 6, 9, 8, 0, - -5, -3, 7, 12, 8, -2, -2, 9, 10, 2, -3, 2, 5, 1, -3, -5, - -6, -2, -3, -11, -20, -26, -28, -30, -32, -37, -43, -45, -43, -40, -42, -41, - -31, -22, -20, -18, -16, -16, -19, -15, -8, -3, -3, 3, 17, 26, 22, 16, - 18, 23, 27, 26, 23, 17, 15, 21, 25, 24, 25, 31, 36, 32, 29, 23, - 17, 15, 11, 5, 1, 4, 6, 8, 6, 7, 8, 10, 14, 18, 22, 20, - 17, 14, 15, 13, 10, 15, 15, 12, 9, 10, 15, 14, 9, 3, 6, 10, - 5, -3, -9, -16, -16, -10, -11, -20, -24, -18, -20, -32, -42, -48, -55, -70, - -84, -95, -100, -92, -75, -65, -68, -67, -56, -55, -51, -41, -33, -37, -42, -38, - -33, -31, -26, -6, 19, 30, 25, 25, 28, 30, 27, 19, 16, 18, 31, 44, - 46, 48, 56, 71, 77, 74, 66, 54, 47, 37, 19, 3, 2, 3, 3, 4, - 13, 20, 21, 25, 24, 25, 19, 18, 19, 19, 14, 6, 17, 14, 1, 3, - 12, 27, 29, 25, 13, 14, 24, 22, 6, -7, -7, 0, 11, 12, 1, 0, - 10, 8, -13, -32, -46, -52, -57, -70, -88, -106, -101, -81, -74, -82, -75, -49, - -37, -42, -44, -42, -46, -51, -47, -40, -32, -27, -6, 3, 16, 32, 29, 25, - 24, 30, 54, 69, 74, 78, 90, 108, 118, 124, 117, 107, 102, 93, 76, 61, - 50, 41, 35, 31, 26, 13, 4, 0, -1, 0, -6, -12, -10, -8, -4, 0, - -3, -20, -31, -27, -18, -16, -22, -29, -28, -9, 0, -3, -1, 2, 11, 20, - 24, 18, 22, 34, 32, 16, -1, -18, -34, -46, -55, -67, -91, -102, -91, -72, - -73, -81, -68, -55, -55, -65, -74, -79, -87, -87, -83, -81, -77, -60, -25, 4, - 4, -3, 0, 13, 29, 29, 24, 23, 29, 51, 67, 72, 77, 88, 105, 114, - 122, 116, 106, 100, 93, 77, 63, 51, 42, 36, 31, 27, 15, 5, 0, -1, - 0, -4, -10, -9, -7, -3, 2, -1, -16, -28, -26, -16, -13, -18, -25, -25, - -8, 2, 1, 2, 5, 13, 21, 26, 20, 23, 35, 35, 20, 3, -14, -32, - -45, -54, -67, -91, -102, -90, -72, -75, -82, -68, -56, -56, -66, -75, -81, -88, - -88, -83, -82, -77, -59, -22, 4, 1, -1, -2, -3, -3, -1, -1, -6, -8, - -9, -12, -5, 6, 15, 21, 22, 21, 9, -8, -16, -23, -32, -22, 4, 27, - 32, 17, -2, -21, -34, -37, -30, -24, -3, 24, 47, 58, 50, 23, -12, -41, - -52, -47, -33, -2, 28, 48, 45, 28, 0, -36, -58, -53, -34, -4, 26, 52, - 75, 73, 45, -5, -66, -101, -90, -61, -14, 23, 59, 87, 89, 63, 10, -46, - -79, -80, -55, -23, -3, 27, 58, 62, 41, -6, -66, -92, -77, -29, 19, 41, - 65, 74, 69, 42, -9, -73, -109, -107, -67, -17, 23, 70, 104, 111, 83, 21, - -56, -104, -109, -62, -21, 4, 34, 68, 89, 75, 19, -46, -89, -85, -38, -1, - 23, 45, 64, 74, 62, 8, -53, -98, -93, -47, -9, 16, 36, 62, 86, 78, - 13, -67, -121, -109, -56, -9, 25, 58, 89, 109, 81, 8, -70, -119, -106, -56, - -7, 32, 63, 90, 108, 74, -3, -89, -128, -118, -70, -22, 23, 62, 101, 126, - 98, 26, -64, -117, -110, -72, -32, 6, 44, 93, 124, 100, 28, -63, -116, -110, - -71, -26, 16, 54, 101, 121, 92, 13, -86, -128, -120, -79, -28, 15, 60, 111, - 127, 95, 11, -83, -127, -116, -80, -29, 15, 67, 117, 127, 100, 17, -75, -118, - -108, -75, -31, 7, 60, 109, 123, 87, 3, -83, -118, -106, -67, -23, 13, 62, - 106, 119, 85, 3, -77, -106, -95, -61, -27, 2, 52, 103, 124, 97, 19, -61, - -95, -92, -63, -34, -4, 45, 94, 116, 87, 8, -63, -91, -85, -58, -36, -9, - 36, 81, 104, 76, 2, -60, -87, -77, -52, -32, -2, 48, 97, 119, 86, 7, - -59, -90, -85, -65, -50, -22, 26, 78, 107, 79, 11, -49, -78, -73, -58, -46, - -18, 31, 85, 112, 75, 1, -59, -84, -73, -55, -40, -12, 30, 80, 106, 74, - 10, -46, -70, -62, -49, -39, -13, 31, 86, 110, 74, 8, -49, -70, -59, -46, - -33, -6, 38, 92, 111, 76, 13, -42, -62, -56, -51, -44, -23, 19, 75, 97, - 67, 8, -44, -63, -58, -56, -48, -26, 19, 75, 94, 64, 8, -40, -55, -50, - -49, -42, -25, 18, 69, 85, 57, 4, -41, -54, -51, -50, -45, -28, 18, 71, - 88, 60, 8, -35, -46, -47, -48, -46, -30, 16, 66, 84, 59, 9, -30, -41, - -43, -42, -40, -22, 25, 73, 88, 60, 8, -30, -42, -46, -45, -42, -21, 28, - 74, 83, 52, -1, -36, -46, -45, -40, -37, -17, 26, 66, 73, 41, -10, -42, - -54, -53, -48, -43, -19, 27, 68, 76, 44, -4, -34, -44, -41, -37, -33, -10, - 34, 71, 75, 40, -7, -36, -47, -43, -39, -35, -9, 35, 72, 75, 39, -7, - -38, -49, -45, -43, -38, -11, 33, 68, 70, 36, -4, -31, -39, -36, -35, -31, - -5, 36, 69, 69, 35, -4, -31, -38, -35, -37, -33, -8, 31, 64, 63, 31, - -7, -34, -42, -40, -43, -38, -12, 28, 61, 59, 27, -10, -34, -40, -38, -41, - -35, -9, 31, 63, 60, 29, -6, -31, -37, -38, -42, -35, -10, 29, 60, 56, - 27, -8, -30, -33, -34, -38, -32, -10, 28, 56, 51, 23, -9, -29, -32, -34, - -38, -33, -10, 29, 55, 50, 23, -9, -28, -30, -33, -37, -32, -8, 32, 56, - 52, 23, 23, 0, -2, 0, -2, -6, -6, -6, -5, -2, -1, 5, 15, 20, - 11, 12, 12, 6, 0, -8, -19, -12, -4, -19, -19, -4, 4, -7, -3, 5, - 8, 11, 14, 9, 9, 8, -4, -11, -6, -8, -16, -14, -7, -1, -3, 1, - 10, 13, 24, 28, 12, 10, 14, 11, -14, -29, -19, -12, -21, -25, -16, 2, - 0, -11, -7, 7, 10, 0, 0, 5, 11, 6, 10, 21, 13, 7, 14, 4, - -4, -9, -5, -11, -16, -7, -3, 3, 15, -2, 2, 17, 6, -19, -16, 3, - 3, -14, -10, 7, 7, 4, 8, 11, 4, -5, -12, -9, -6, -14, -13, -17, - -13, -8, 5, 9, 3, 10, 12, 24, 28, 26, 35, 20, -3, 24, 23, -19, - -31, -23, -23, -38, -34, -18, -10, -8, -6, -4, -1, 5, -4, -8, 2, 15, - 12, 26, 56, 37, 10, 25, 25, -4, -21, -24, -23, -26, -30, -27, -8, 10, - -5, 3, 30, 6, -26, -7, 13, -2, -19, -2, 11, 3, 14, 21, 8, 12, - 5, -19, -26, -12, 9, 1, -8, -8, 20, 27, 17, 16, 15, 0, 23, 39, - 11, -4, -13, -21, -21, -32, -36, -27, -20, -24, -10, -4, 5, 14, 4, -11, - -10, 7, -8, -7, 7, 7, 2, 15, 29, 55, 26, 4, 22, 37, 32, 14, - 10, 18, 7, -1, -28, -49, -24, -14, -41, -53, -37, -28, -27, -15, 1, 2, - 14, 14, 13, 3, 0, 1, 18, 9, 7, 11, 23, 23, 25, 16, -7, 1, - 13, 26, 26, 9, 13, 28, 28, 1, -29, -29, -26, -27, -43, -43, -31, -12, - -26, -15, 6, 16, 6, 22, 11, -4, 0, 3, 0, -4, -20, -9, 15, 23, - 19, 7, 25, 19, 42, 63, 40, 13, 22, 24, 1, -41, -60, -55, -63, -69, - -61, -31, -7, 10, 8, 0, 7, 4, 4, 20, 5, -4, 9, 27, 31, 27, - 23, 13, 19, 12, 2, 4, 15, 20, 35, 19, 16, 26, 3, -30, -48, -31, - -40, -60, -59, -47, -13, -3, 12, 22, 11, 7, 9, 8, 3, -10, -34, -5, - 6, 24, 38, 19, 13, 21, 40, 15, 2, 27, 26, 16, 44, 47, -7, -43, - -41, -29, -44, -80, -81, -58, -26, -17, 3, 16, 30, 19, 10, 25, 16, 6, - -12, -3, 13, 30, 38, 20, 17, 22, 25, 18, 13, 16, -3, 1, 32, 44, - -11, -48, -51, -34, -38, -49, -64, -70, -23, -10, -14, -1, 20, 18, 20, 21, - 11, 3, -8, -3, 13, 14, 22, 18, 32, 37, 30, 25, 16, 27, 27, 18, - 37, 52, 12, -26, -56, -57, -46, -71, -92, -86, -50, -21, -10, 8, 15, 15, - 18, 28, 17, 1, 1, 2, 13, 13, 23, 23, 21, 29, 31, 29, 15, 20, - 33, 32, 29, 46, 21, -31, -49, -53, -51, -66, -82, -76, -54, -32, -10, 12, - 19, 29, 18, 3, 0, 16, 20, 29, 31, 20, 25, 31, 43, 41, 34, 44, - 27, 29, 65, 54, -15, -70, -79, -63, -86, -114, -114, -79, -26, -2, 6, 18, - 19, 10, 19, 26, 15, 5, 0, 16, 23, 29, 30, 21, 25, 28, 37, 37, - 38, 44, 32, 29, 66, 65, -7, -67, -74, -59, -82, -114, -117, -85, -31, -2, - 11, 20, 18, 9, 20, 30, 15, 5, 0, 0, 1, 1, 2, 3, 3, 3, - 4, 4, 5, 6, 6, 7, 8, 8, 7, 7, 7, 7, 7, 6, 4, 3, - 2, 0, -1, -2, -3, -5, -6, -8, -9, -9, -11, -12, -14, -15, -17, -17, - -17, -18, -19, -19, -19, -18, -17, -16, -15, -13, -11, -8, -7, -6, -5, -3, - -1, 0, 0, 1, 3, 5, 8, 10, 12, 14, 17, 19, 21, 23, 26, 27, - 28, 28, 28, 26, 25, 24, 23, 23, 21, 19, 18, 16, 15, 14, 13, 12, - 11, 11, 11, 10, 8, 6, 5, 5, 4, 2, 0, -2, -4, -5, -7, -10, - -11, -12, -13, -14, -15, -15, -15, -15, -15, -16, -17, -18, -18, -19, -21, -23, - -25, -27, -28, -29, -29, -30, -30, -29, -27, -25, -23, -22, -20, -18, -16, -14, - -13, -12, -11, -11, -10, -9, -8, -6, -5, -4, -3, -1, 1, 3, 4, 6, - 7, 8, 8, 9, 10, 11, 12, 13, 13, 13, 13, 15, 18, 21, 23, 24, - 25, 25, 28, 31, 33, 34, 34, 32, 31, 31, 31, 30, 27, 22, 16, 12, - 10, 9, 7, 3, -5, -13, -19, -22, -22, -23, -25, -28, -31, -33, -33, -32, - -32, -31, -32, -33, -32, -29, -25, -21, -19, -19, -19, -19, -18, -15, -9, -3, - 2, 6, 9, 12, 16, 21, 27, 32, 37, 39, 40, 40, 39, 39, 40, 41, - 40, 38, 35, 34, 34, 33, 29, 22, 16, 11, 10, 11, 12, 12, 10, 8, - 7, 5, 3, 2, 0, -6, -12, -19, -23, -23, -22, -23, -26, -30, -33, -33, - -33, -34, -35, -37, -40, -45, -50, -53, -52, -48, -42, -37, -32, -27, -22, -20, - -18, -16, -16, -18, -21, -26, -30, -33, -34, -35, -36, -38, -40, -41, -41, -38, - -36, -36, -38, -41, -40, -38, -34, -30, -27, -25, -22, -20, -16, -15, -16, -17, - -18, -16, -13, -10, -7, -4, -2, 1, 6, 11, 16, 21, 24, 25, 26, 24, - 22, 19, 18, 19, 22, 24, 26, 30, 33, 38, 44, 50, 56, 61, 63, 68, - 72, 74, 73, 68, 64, 57, 50, 47, 46, 44, 37, 21, 3, -11, -20, -23, - -25, -30, -33, -36, -36, -34, -31, -27, -22, -21, -22, -21, -18, -21, -24, -27, - -31, -33, -32, -27, -21, -14, -13, -17, -17, -10, 0, 10, 15, 16, 14, 8, - 6, 10, 16, 25, 34, 39, 43, 47, 53, 62, 72, 82, 89, 92, 90, 84, - 79, 77, 77, 76, 67, 54, 42, 33, 26, 18, 5, -11, -27, -41, -53, -65, - -73, -77, -79, -81, -86, -93, -102, -110, -116, -118, -120, -124, -127, -128, -128, -126, - -122, -116, -107, -96, -85, -78, -72, -64, -54, -45, -39, -40, -46, -49, -49, -47, - -45, -44, -45, -45, -44, -42, -38, -33, -29, -26, -23, -20, -18, -14, -11, -8, - -5, -2, 2, 7, 11, 10, 8, 7, 9, 16, 22, 26, 28, 31, 34, 39, - 44, 49, 53, 57, 60, 62, 63, 63, 65, 66, 63, 57, 51, 46, 46, 50, - 53, 54, 55, 54, 55, 57, 63, 69, 73, 75, 73, 69, 66, 64, 65, 63, - 55, 43, 30, 18, 11, 3, -6, -15, -23, -29, -32, -32, -28, -22, -16, -13, - -16, -16, -11, -2, 9, 15, 1, 0, 0, 0, -1, 0, -3, 0, -1, 0, - -18, 21, -22, 23, -41, 20, 84, -39, 50, -61, 26, -126, -19, -37, 15, 2, - 70, -33, 127, -55, 117, -73, 15, -45, -50, 8, -11, 23, 33, 1, 26, -67, - 26, -25, 14, -45, 57, -124, 12, -4, -23, 107, -54, 127, -49, 43, 27, -59, - -30, 15, -128, 5, -128, 86, -39, 82, 12, 62, 9, 51, -59, 53, -95, 67, - -92, 68, -28, 94, 21, 47, -11, -1, -41, 0, -25, -9, 18, -68, 15, -27, - 49, -27, 103, -4, 3, -36, 58, -98, 56, -116, -31, -123, 25, -58, 89, -21, - 110, -25, 73, -28, 39, -21, 35, -40, 37, -20, 50, 55, 51, 6, 1, -47, - -11, -32, -23, 38, -67, 3, -54, 34, -55, 79, 1, 32, -61, 89, -86, 53, - -67, -10, -128, -6, -68, 51, -4, 82, 15, 83, -16, 63, -24, 55, -29, 8, - 0, 6, 11, 54, 14, 16, -39, -9, -12, -47, 37, -40, -22, -60, 21, -76, - 51, -17, 74, -63, 98, -36, 44, -33, 24, -113, -37, -89, 20, -30, 67, 18, - 87, 0, 67, -6, 38, 1, -2, -18, -5, -20, 32, 17, 21, -8, -30, 15, - -47, 11, -17, 11, -97, 43, -87, 27, -36, 91, -41, 66, 3, 44, -28, 55, - -74, -37, -92, -21, -37, 33, -1, 75, 22, 36, 14, 26, 8, 8, -12, -7, - -21, -1, 27, 11, 21, -30, 21, -37, -3, -13, 23, -27, -32, -10, -23, -44, - 56, -1, 43, -12, 76, -29, 48, -9, -25, -71, -70, -48, -20, 2, 9, 56, - 8, 56, -10, 52, -12, 31, -29, 27, -60, 62, -42, 83, -45, 30, -24, 4, - -26, 33, -23, 5, -18, -25, -53, -7, -6, -6, 19, 16, 31, 3, 58, -14, - 0, -64, -33, -58, -8, -43, 42, -18, 57, -9, 54, 1, 47, -3, 36, -18, - 3, 4, 6, 2, -17, 8, -14, -27, 35, 2, -3, 1, -8, -43, -34, -1, - -22, 12, 2, 37, -6, 53, 14, 16, -43, -22, -75, -2, -67, 23, -24, 39, - -3, 39, 6, 44, 9, 37, 5, 1, 3, 5, 12, -18, 0, 0, -31, 5, - 23, 1, -3, 10, -20, -48, -6, -30, 7, -18, 35, -4, 32, 21, 39, -26, - -1, -75, -9, -65, -3, -28, 20, -5, 32, 5, 36, 20, 30, 30, 3, 10, - -1, 16, -10, -7, -1, -17, -23, 18, 14, -3, 8, 9, -45, -14, -35, -1, - -27, 18, -2, 29, 1, 61, -14, 20, -56, -19, -51, -22, -38, 9, -14, 22, - 5, 24, 27, 23, 41, 13, 20, -7, 23, -2, -8, -2, -9, -26, -6, 14, - 11, -11, 37, -33, -12, -38, -6, -33, 7, -14, 30, -12, 55, 4, 33, -32, - -14, -45, -22, -43, -7, -15, 18, 18, 33, 17, 41, 22, 15, 14, 8, -24, - -16, -18, -16, -7, 6, 16, -2, 8, -14, -6, -23, 0, -22, 1, -23, 21, - 4, 24, -1, 9, -9, -11, -14, -13, -16, -14, -15, -12, -16, -5, 8, 28, - 25, 28, 34, 27, 15, 16, 2, -20, -22, -20, -15, -8, 10, 11, 7, -3, - -5, -16, -10, -13, -5, -16, -5, 4, 17, 13, 6, 1, -9, -1, -2, -3, - -4, -4, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -6, -6, -6, - -6, -6, -5, -3, -3, -5, -5, -5, -7, -8, -5, 4, 5, 13, 12, -12, - -5, 10, 5, 4, 0, 3, 26, 33, 10, -15, -69, -89, -25, 25, 58, 70, - 22, -41, -62, -31, 18, 17, -17, -12, -9, 20, 99, 96, 0, -88, -123, -69, - 61, 116, 54, -11, -45, -28, 40, 38, -42, -59, -53, -31, 63, 78, -9, -65, - -83, -59, 48, 110, 50, -11, -51, -54, 41, 96, 9, -87, -119, -77, 42, 118, - 67, -18, -57, -46, 24, 89, 81, 22, -43, -77, -65, -41, -23, -3, 4, 8, - -13, -54, -52, -21, 30, 89, 86, 8, -49, -76, -56, 30, 55, 52, 47, -7, - -45, -49, -48, -10, 68, 74, 43, 22, -27, -25, 12, 20, -5, -43, -69, -46, - 21, 53, 51, 38, -8, -32, 6, 20, -1, -19, -56, -67, -26, 27, 76, 95, - 23, -64, -60, -15, 33, 39, -8, -37, -24, -7, 7, 4, -25, -23, -10, -14, - -7, -5, -12, 2, 28, 31, 37, 21, -18, -16, -4, -22, -37, -46, -56, -8, - 58, 64, 53, 31, -9, -9, -2, -57, -85, -52, -13, 59, 92, 21, -42, -47, - -33, 27, 75, 27, -22, -38, -44, 18, 77, 32, -21, -46, -50, 34, 89, 22, - -37, -60, -56, 31, 95, 36, -27, -57, -82, -15, 53, 15, -13, -25, -44, 14, - 66, 14, -32, -53, -62, 25, 96, 50, 3, -32, -56, 25, 98, 51, -9, -56, - -78, 7, 92, 71, 28, -31, -92, -42, 28, 20, 24, 8, -34, 22, 70, 18, - -17, -53, -88, -20, 39, 7, -2, -8, -28, 35, 80, 19, -23, -55, -93, -22, - 63, 54, 47, 19, -52, -35, 2, -36, -32, -18, -49, -9, 41, 15, 26, 34, - -22, -6, 31, 1, 8, 9, -43, -15, 30, -3, -1, -7, -73, -48, 6, -14, - 5, 13, -47, -30, 12, -13, 6, 18, -37, -13, 39, 27, 45, 38, -37, -32, - 12, 3, 32, 46, -10, 6, 48, 16, 15, 15, -32, -2, 47, 24, 26, 18, - -51, -51, -15, -29, -1, 19, -28, -15, 21, 2, 18, 22, -34, -24, 13, -3, - 15, 14, -45, -34, 7, 10, 38, 31, -34, -30, 4, 5, 43, 61, 13, 4, - 6, -22, 4, 24, -13, -13, -10, -34, 0, 23, -16, -16, -13, -42, -18, -4, - -36, -17, 5, -10, 14, 22, -21, -22, -16, -37, -6, 20, -2, 17, 36, 19, - 43, 43, -9, -15, -12, -29, 6, 31, 6, 10, 7, -23, -2, 9, -23, -15, - -10, -26, 3, 20, -5, 1, 0, -22, 5, 22, -6, -8, -16, -37, -5, 20, - 2, 11, 6, -19, 11, 33, 12, 20, 16, -7, 20, 35, 11, 11, -3, -28, - 2, 19, -1, 3, -6, -29, -5, 2, -25, -17, -12, -16, 22, 34, 3, -4, - -21, -36, 4, 26, 8, -1, -30, -54, -23, -3, -11, 0, -12, -27, 7, 24, - 13, 19, -1, -21, 10, 27, 14, 17, 0, -14, 18, 33, 19, 14, -17, -41, - -10, 9, 2, 7, -14, -30, 4, 20, 9, 9, -15, -35, -3, 16, 9, 0, - -1, -2, -3, 4, 7, 4, -2, -3, 0, 3, -1, -1, 4, 5, -2, -13, - -9, 1, 4, 2, 1, 2, 2, -2, -8, -4, 0, 4, 4, -3, -4, -3, - 1, 2, -1, 3, 14, 1, -7, -12, -4, -2, 1, 1, 9, 5, -6, -5, - -2, -1, -1, 1, 14, 6, -6, -7, 3, 8, -2, -4, 13, 12, -10, -17, - -10, -5, -4, 2, 3, 7, -6, -6, -1, -1, -4, 1, 11, 6, -6, -9, - 10, 11, 3, 1, 14, 15, -12, -20, -12, -9, -15, -1, 7, 2, -16, -7, - 6, 0, -2, 10, 26, 17, -6, -11, 24, 21, 1, 0, 18, 15, -17, -31, - -28, -23, -14, 0, -4, 0, -16, -8, 8, -4, -3, 7, 15, 5, -3, -3, - 26, 25, 12, 8, 28, 17, -15, -28, -18, -17, -18, -7, -3, -7, -20, 0, - 7, 1, -9, 6, 9, -4, -9, 2, 15, 24, 34, 31, 10, -4, -15, -29, - -17, -21, -41, -40, -5, 19, -20, 3, 11, 33, 28, 21, 18, 15, 16, 3, - -1, 18, 17, 15, 1, -15, -10, -5, -14, -42, -48, -43, -26, 4, -29, -14, - -9, 32, 20, 12, 15, 21, 39, 24, 8, 26, 33, 6, -3, 0, 1, -7, - -16, -41, -44, -51, -34, -3, -6, -6, -19, 26, 10, 15, 35, 46, 32, 20, - 16, 23, 38, 15, -4, -10, 17, -6, -41, -48, -53, -70, -52, -9, -9, -22, - -15, 19, 24, 22, 30, 49, 34, 10, 1, 15, 33, 15, 1, 17, 46, 12, - -38, -59, -50, -57, -46, -13, -16, -30, -24, 26, 37, 33, 30, 45, 40, 2, - -11, 17, 41, 24, -4, 16, 48, 15, -38, -67, -64, -65, -46, -18, -18, -35, - -32, 35, 39, 37, 21, 45, 42, -2, -19, 14, 37, 22, 7, 24, 40, 13, - -42, -68, -63, -63, -38, -6, -12, -34, -25, 39, 43, 39, 17, 47, 45, 3, - -19, 21, 45, 25, 2, 21, 31, 0, -45, -71, -78, -83, -48, 2, 7, -27, - -32, 34, 45, 49, 23, 44, 36, 5, -5, 38, 60, 27, -13, 21, 42, -13, - -69, -81, -86, -79, -38, -9, -11, -41, -36, 38, 56, 45, 10, 43, 43, 10, - -6, 36, 57, 41, 10, 36, 46, -16, -67, -66, -71, -80, -44, -8, -5, -29, - -27, 30, 43, 46, 20, 52, 39, -9, -21, 40, 68, 42, -1, 20, 32, -14, - -70, -86, -94, -90, -45, -2, 0, -31, -17, 36, 47, 46, 18, 44, 29, -2, - -11, 46, 74, 51, 14, 36, 46, -15, -78, -87, -91, -89, -46, -12, -11, -28, - -5, 41, 46, 40, 17, 51, 33, -6, -13, 49, 75, 52, 15, 30, 34, -21, - -79, -88, -93, -88, -42, -9, -4, -25, -3, 36, 40, 34, 16, 44, 23, -8, - -10, 52, 83, 55, 17, 38, 31, -31, -82, -91, -93, -82, -39, -16, -10, -25, - 5, 33, 42, 32, 20, 54, 25, -9, -3, 59, 85, 63, 24, 37, 24, -39, - -86, -92, -97, -80, -34, -17, -15, -24, 10, 35, 45, 32, 16, 45, 12, -23, - -2, 62, 78, 53, 21, 37, 26, -39, -91, -95, -96, -77, -29, -16, -16, -25, - 10, -1, 0, 3, 21, -26, 18, -30, 32, -19, -15, -27, 2, 0, 103, -84, - -53, -52, 79, 51, 36, -69, -31, 48, 71, 33, -74, -64, 10, 51, 49, -68, - -91, -16, 30, 33, -31, -58, -42, 14, 24, -25, 23, -71, 79, -22, 123, -74, - 28, 28, 115, 99, -7, 9, -15, 72, 1, 16, -47, -5, -71, -18, -75, -26, - -71, -28, -56, -24, -57, -19, -33, -5, 7, -3, 14, -8, 82, 100, 23, -32, - -15, 80, 98, 68, -30, -21, 24, 71, 28, -41, -96, -22, 32, 37, -57, -110, - -67, 28, 35, -22, -112, -79, 13, 70, 27, -55, -63, 31, 95, 86, -4, -40, - 29, 110, 110, 28, -50, -12, 66, 80, 14, -87, -81, -7, 36, -5, -95, -118, - -42, 26, 8, -69, -121, -48, 37, 60, -6, -68, -29, 67, 104, 61, -24, -17, - 70, 123, 92, -5, -43, 23, 82, 67, -28, -96, -54, 18, 30, -39, -115, -96, - -7, 25, -13, -99, -101, -13, 52, 42, -35, -62, 9, 88, 93, 28, -32, 15, - 97, 118, 58, -29, -24, 51, 82, 39, -61, -88, -26, 28, 9, -70, -117, -63, - 7, 14, -46, -109, -71, 15, 55, 16, -51, -42, 43, 94, 75, 2, -21, 48, - 107, 101, 23, -36, 4, 65, 70, 1, -81, -69, -3, 26, -19, -94, -106, -32, - 14, -3, -74, -103, -37, 34, 46, -10, -56, -12, 66, 91, 49, -15, 1, 74, - 111, 76, -4, -28, 31, 72, 50, -33, -85, -43, 11, 15, -46, -106, -80, -11, - 13, -26, -92, -84, -8, 44, 29, -30, -48, 19, 80, 81, 26, -18, 27, 91, - 103, 49, -22, -10, 48, 68, 22, -60, -75, -22, 17, -5, -71, -105, -54, 3, - 3, -49, -98, -58, 14, 44, 11, -44, -27, 45, 85, 65, 5, -8, 53, 100, - 87, 21, -26, 11, 60, 56, -6, -74, -58, -4, 13, -25, -90, -91, -29, 7, - -12, -72, -90, -29, 32, 37, -10, -46, -2, 66, 83, 47, -8, 10, 74, 101, - 68, -3, -19, 31, 62, 38, -36, -77, -40, 6, 4, -49, -100, -72, -12, 3, - -31, -86, -73, -4, 37, 25, -28, -36, 25, 75, 74, 25, -9, 34, 88, 94, - 43, -16, -4, 47, 58, 15, -57, -69, -22, 6, -12, -73, -96, -50, -4, -7, - -53, -89, -49, 13, 36, 5, -37, -17, 47, 77, 59, 9, 2, 58, 92, 79, - 19, -17, 16, 54, 45, -13, -69, -52, -8, 3, -33, -85, -82, -29, -2, -20, - -68, -79, -23, 24, 29, -11, -34, 7, 61, 73, 41, 0, 22, 73, 90, 58, - 1, -9, 32, 52, 26, -36, -69, -35, -3, -7, -53, -90, -63, -16, -7, -36, - -78, -60, -4, 29, 16, -22, -23, 29, 68, 64, 26, 2, 42, 80, 81, 38, - -8, 5, 42, 44, 4, -53, -57, -21, -2, -22, -69, -83, -43, -10, -15, -51, - -77, -38, 11, 27, 3, -27, -5, 46, 68, 52, 13, 15, 58, 83, 68, 19, - -8, 21, 46, 32, -16, -60, -44, -12, -6, -36, -76, -74, -34, -10, -20, -57, - -73, -33, 12, 27, 3, -1, -6, -11, -3, 4, 0, -7, -8, 1, 21, 14, - 28, 33, 25, -1, 7, 4, -13, -21, -44, -29, -17, -31, -32, 2, 0, -20, - 4, 3, 4, 0, -2, -5, -4, -14, 3, 14, 9, 28, 34, 54, 43, 54, - 39, 19, 17, -1, 5, -23, -31, -25, -35, -46, -60, -29, -29, -13, -37, -22, - -16, -20, -27, -21, -6, -16, 8, -5, 15, 26, 69, 65, 74, 85, 81, 76, - 51, 22, -10, -10, -19, -3, -39, -73, -55, -36, -18, -45, -49, -45, -52, -47, - -74, -73, -56, -31, -15, -16, -5, 18, 65, 86, 108, 94, 97, 90, 79, 54, - 30, 19, 10, 25, -16, -34, -37, -9, -16, -35, -44, -60, -60, -50, -62, -70, - -66, -44, -34, -34, -29, -10, 23, 61, 85, 79, 75, 70, 61, 41, 31, 7, - 8, 3, -22, -42, -28, 0, -13, -29, -39, -52, -56, -55, -58, -60, -57, -41, - -35, -37, -19, 5, 35, 71, 87, 85, 97, 112, 97, 71, 56, 52, 53, 43, - 18, -7, -3, 10, 0, -17, -39, -55, -58, -64, -80, -106, -121, -112, -110, -113, - -105, -82, -51, -8, 16, 20, 45, 66, 66, 49, 46, 59, 75, 78, 63, 62, - 74, 80, 80, 69, 51, 27, 11, 0, -14, -40, -53, -48, -55, -68, -71, -56, - -34, -1, 14, 24, 49, 62, 59, 42, 34, 43, 47, 43, 26, 30, 33, 38, - 26, 4, -17, -41, -66, -81, -92, -112, -120, -115, -116, -128, -125, -103, -71, -36, - -11, 9, 33, 56, 59, 54, 61, 67, 77, 77, 77, 79, 74, 75, 73, 55, - 30, 10, -21, -38, -46, -61, -70, -67, -70, -81, -77, -64, -45, -23, -4, 10, - 30, 44, 44, 39, 42, 48, 51, 50, 51, 58, 58, 65, 65, 47, 29, 12, - -14, -31, -41, -53, -63, -60, -62, -64, -58, -44, -26, -11, 1, 10, 20, 22, - 17, 9, 5, 6, 6, 2, 4, 10, 10, 17, 19, 9, 7, -1, -14, -18, - -13, -14, -9, 1, 7, 12, 17, 23, 31, 35, 36, 35, 38, 31, 21, 16, - 3, 0, -8, -11, -11, -13, -19, -20, -23, -34, -39, -51, -69, -78, -81, -83, - -83, -78, -70, -60, -47, -34, -19, 2, 20, 39, 57, 60, 66, 67, 63, 61, - 53, 50, 51, 47, 37, 32, 23, 13, 6, -3, -17, -23, -28, -34, -37, -35, - -27, -15, -2, 4, 12, 23, 30, 44, 47, 43, 41, 35, 29, 22, 15, 13, - 14, 7, -1, -5, -11, -19, -20, -25, -37, -43, -41, -43, -47, -47, -40, -29, - -17, -7, 5, 13, 23, 38, 44, 37, 34, 31, 23, 17, 6, 1, -2, -10, - -20, -25, -35, -45, -50, -54, -64, -68, -65, -66, -65, -59, -47, -30, -19, -7, - 5, 14, 28, 48, 62, 66, 72, 75, 78, 76, 67, 60, 56, 46, 32, 20, - 9, -2, -10, -21, -35, -43, -44, -49, -56, -57, -51, -38, -25, -13, -2, 9, - 25, 42, 56, 59, 64, 65, 67, 65, 57, 52, 49, 41, 28, 18, 8, -2, - -10, 0, 8, 13, 21, 20, 20, 17, 10, 8, -2, -6, -17, -21, -29, -23, - -25, -14, -7, -2, 7, 10, 20, 21, 22, 23, 19, 14, 9, -2, -6, -18, - -20, -28, -25, -23, -18, -10, -3, 5, 9, 22, 17, 28, 22, 21, 17, 11, - 2, -8, -18, -23, -27, -26, -24, -19, -13, -6, 3, 9, 17, 20, 28, 24, - 25, 21, 13, 6, -5, -14, -21, -29, -29, -30, -23, -19, -7, -1, 10, 18, - 25, 29, 27, 28, 20, 17, 5, -7, -13, -26, -29, -30, -30, -27, -20, -12, - 0, 11, 19, 25, 27, 30, 26, 28, 19, 11, -2, -12, -24, -30, -35, -34, - -30, -24, -14, -2, 9, 18, 23, 28, 26, 33, 31, 29, 24, 12, 5, -12, - -23, -30, -37, -36, -36, -26, -19, -5, 5, 19, 22, 32, 32, 36, 35, 26, - 21, 3, -6, -22, -34, -41, -44, -38, -31, -18, -6, 6, 15, 23, 32, 33, - 39, 34, 31, 23, 10, -2, -21, -32, -44, -47, -45, -37, -23, -12, 6, 13, - 28, 30, 38, 40, 40, 38, 23, 17, -6, -15, -35, -42, -50, -49, -41, -31, - -14, 0, 14, 26, 35, 42, 45, 45, 40, 27, 18, -4, -14, -33, -42, -54, - -52, -47, -36, -21, -5, 13, 24, 39, 43, 52, 47, 42, 36, 20, 7, -15, - -32, -45, -55, -56, -54, -43, -27, -8, 12, 26, 38, 45, 50, 51, 48, 40, - 27, 9, -11, -30, -46, -58, -62, -58, -49, -31, -11, 9, 24, 41, 45, 54, - 53, 54, 45, 30, 14, -10, -27, -48, -58, -67, -64, -56, -35, -15, 6, 24, - 37, 45, 54, 56, 56, 49, 39, 18, 0, -26, -45, -60, -74, -70, -63, -41, - -23, 4, 21, 39, 48, 53, 61, 58, 59, 43, 29, 3, -20, -46, -64, -77, - -77, -69, -50, -27, 0, 20, 36, 49, 56, 64, 64, 63, 51, 34, 6, -17, - -46, -65, -79, -83, -76, -58, -33, -6, 17, 38, 49, 60, 67, 68, 66, 53, - 37, 13, -13, -38, -65, -79, -90, -82, -68, -41, -15, 14, 36, 52, 63, 70, - 73, 69, 62, 44, 19, -8, -38, -63, -83, -93, -90, -77, -49, -20, 12, 34, - 54, 65, 72, 75, 76, 65, 51, 26, -1, -33, -62, -86, -98, -96, -86, -58, - -29, 6, 32, 54, 66, 73, 79, 76, 73, 58, 36, 4, -27, -60, -85, -101, - -104, -92, -70, -36, -1, 31, 53, 70, 75, 81, 80, 78, 65, 41, 15, -24, - -56, -84, -105, -109, -101, -79, -46, -7, 25, 56, 65, 77, 82, 85, 83, 69, - 51, 19, -14, -50, -83, -103, -115, -107, -88, -55, -17, 21, 50, 67, 81, 86, - 89, 85, 79, 55, 28, -8, -46, -77, -103, -116, -117, -97, -67, -25, 1, 39, - 66, 81, 92, 96, 97, 90, 73, 45, 11, -27, -64, -97, -120, -128, -117, -89, - -49, -5, 35, 65, 81, 93, 98, 99, 91, 75, 46, 12, -27, 28, -9, -42, - -57, -50, -18, 33, 77, 77, 17, -64, -96, -55, 22, 73, 68, 17, -43, -77, - -67, -15, 59, 102, 79, 12, -48, -71, -57, -28, -3, 11, 10, -3, -17, -4, - 44, 88, 79, 10, -69, -103, -74, -6, 54, 75, 53, -4, -63, -80, -38, 32, - 73, 59, 7, -43, -67, -57, -18, 33, 71, 71, 24, -31, -47, -17, 20, 23, - -14, -58, -73, -47, 10, 73, 110, 93, 20, -62, -97, -68, -6, 43, 54, 28, - -13, -51, -65, -35, 26, 74, 69, 12, -50, -68, -37, 9, 37, 37, 16, -12, - -26, -7, 36, 65, 45, -19, -87, -112, -75, -7, 58, 97, 92, 41, -30, -75, - -62, -3, 49, 52, 7, -44, -63, -45, -6, 37, 60, 42, -5, -42, -41, -3, - 38, 41, 8, -33, -51, -38, 3, 54, 90, 79, 12, -76, -127, -106, -29, 47, - 78, 63, 23, -19, -36, -16, 24, 50, 35, -15, -59, -64, -27, 17, 40, 35, - 11, -20, -39, -26, 19, 63, 67, 14, -61, -97, -72, -5, 64, 101, 87, 26, - -49, -96, -86, -32, 24, 40, 17, -11, -17, -3, 24, 51, 55, 29, -20, -66, - -69, -23, 35, 55, 25, -26, -59, -55, -14, 44, 86, 80, 23, -56, -105, -87, - -19, 48, 79, 67, 27, -18, -46, -43, -14, 17, 16, -20, -54, -47, 3, 59, - 83, 66, 18, -35, -64, -54, -8, 44, 59, 18, -48, -87, -72, -16, 49, 88, - 84, 37, -31, -81, -79, -26, 33, 52, 29, -5, -19, -6, 20, 34, 27, -5, - -51, -84, -71, -9, 62, 95, 71, 12, -40, -58, -37, 8, 52, 63, 22, -53, - -103, -88, -23, 47, 80, 64, 24, -14, -33, -28, -3, 21, 18, -15, -45, -39, - 5, 57, 78, 54, -1, -60, -97, -89, -29, 50, 92, 67, 0, -53, -57, -13, - 38, 64, 52, 10, -44, -82, -76, -26, 28, 49, 32, 1, -14, -1, 24, 40, - 38, 9, -43, -87, -79, -13, 69, 110, 80, 4, -65, -90, -69, -21, 32, 58, - 39, -9, -48, -45, 0, 52, 69, 46, 5, -34, -57, -50, -14, 23, 28, -8, - -48, -48, 4, 71, 99, 69, 3, -63, -99, -88, -30, 46, 92, 78, 16, -45, - -66, -44, -6, 25, 34, 16, -24, -55, -43, 10, 67, 80, 37, -22, -48, -29, - 7, 30, 27, -5, -51, -84, -73, -11, 71, 116, 95, 27, -43, -84, -84, -43, - 18, 63, 60, 10, -44, -53, -9, 41, 49, 14, -31, -57, -50, -15, 29, 61, - 57, 14, -37, -51, -14, 38, 63, 47, -1, -61, -106, -105, -47, 44, 115, 113, - 42, -36, -64, -42, -2, 23, 20, -3, -28, -39, -21, 24, 64, 59, 7, -48, - -67, -47, -7, 36, 59, 47, 2, -55, -77, -31, 55, 111, 89, 7, -75, -113, - -96, -42, 21, 62, 64, 28, -13, -18, 17, 45, 28, -2, -7, -6, -7, -7, - -8, -8, -8, -8, -7, -6, -5, -4, -3, -3, -2, -2, -1, 0, 1, 2, - 4, 5, 6, 8, 9, 10, 11, 12, 13, 13, 14, 15, 16, 17, 17, 17, - 17, 17, 16, 16, 15, 15, 14, 14, 13, 12, 10, 10, 9, 8, 7, 6, - 5, 5, 4, 3, 2, 1, 0, -2, -3, -4, -5, -6, -7, -8, -9, -10, - -11, -12, -13, -13, -14, -14, -14, -14, -14, -15, -15, -15, -15, -16, -16, -14, - -14, -12, -10, -13, -10, -13, -7, -3, -5, -1, -1, -5, -5, 8, 13, 10, - 10, 15, 16, 17, 30, 34, 19, 17, 22, 29, 27, 22, 16, 1, -3, 8, - 18, 11, 6, 8, 8, 1, 6, 18, 5, -8, -4, 4, 5, 3, 5, -3, - -6, 12, 30, 23, 9, 5, 6, 9, 15, 27, 20, 2, 0, 10, 17, 8, - -1, -4, -8, -8, -3, -7, -19, -28, -24, -22, -31, -42, -47, -50, -50, -42, - -35, -35, -43, -41, -31, -27, -23, -17, -9, -7, 3, 26, 37, 38, 37, 41, - 39, 39, 49, 55, 50, 46, 53, 58, 51, 44, 36, 24, 9, 5, 2, -12, - -25, -28, -26, -33, -42, -44, -55, -66, -69, -62, -60, -65, -57, -42, -33, -26, - -15, -5, -6, 0, 15, 29, 34, 41, 55, 61, 62, 68, 71, 62, 49, 49, - 49, 39, 29, 24, 14, -2, -10, -16, -34, -56, -67, -70, -77, -83, -85, -88, - -93, -92, -79, -74, -78, -74, -61, -49, -41, -23, -9, -2, 11, 35, 54, 56, - 58, 64, 69, 73, 81, 91, 86, 77, 78, 77, 67, 50, 39, 24, 6, -4, - -10, -22, -41, -49, -52, -62, -73, -81, -87, -98, -97, -83, -74, -70, -63, -46, - -33, -23, -6, 9, 18, 26, 48, 69, 77, 85, 97, 106, 107, 111, 114, 104, - 89, 83, 84, 75, 60, 50, 34, 13, -5, -16, -34, -59, -74, -80, -86, -95, - -97, -96, -104, -104, -95, -86, -86, -82, -66, -49, -32, -11, 12, 26, 36, 55, - 73, 81, 84, 94, 104, 107, 114, 120, 116, 102, 92, 88, 73, 54, 37, 21, - 0, -16, -23, -37, -58, -76, -85, -94, -108, -114, -116, -120, -119, -106, -89, -84, - -78, -64, -49, -37, -21, 1, 13, 25, 46, 71, 88, 95, 105, 113, 112, 113, - 116, 112, 97, 91, 91, 83, 68, 51, 35, 11, -10, -23, -38, -60, -80, -86, - -93, -102, -107, -110, -116, -121, -114, -102, -98, -93, -77, -55, -38, -18, 1, 13, - 25, 46, 71, 88, 95, 105, 113, 112, 113, 116, 112, 97, 91, 91, 83, 68, - 51, 35, 11, -10, -23, -38, -60, -80, -86, -93, -102, -107, -110, -116, -121, -114, - -102, -98, -93, -77, -55, -38, -18, 1, -3, -7, -8, -3, 1, 0, 3, -5, - -9, -14, -15, -4, 0, 7, 12, 12, 11, 18, 16, 14, 14, 11, 20, 14, - 19, 7, 12, 8, 13, 8, 7, 9, 0, 9, -7, -4, -5, -8, -7, -9, - -7, -2, -7, -4, 1, 1, 0, -2, 3, 2, 1, 2, 1, -2, -3, -7, - -2, -2, -2, -5, -4, -4, -4, 3, 6, 8, 3, 0, -3, -2, 3, 4, - 3, 2, 2, -2, 1, 0, 2, 3, 9, 8, 2, -3, -4, -2, 1, 4, - 0, -2, 3, 1, 7, 1, -4, 0, 2, 3, 1, 1, 2, -5, 3, -3, - -4, -3, -8, 2, -7, 1, -3, -2, -5, -8, -7, -8, -7, -5, -7, -4, - -8, -10, -7, -8, -7, -5, 0, -2, 0, -2, -3, -3, -2, 0, 1, 0, - 1, 0, -3, -3, -5, -5, -9, -9, -13, -16, -21, -26, -25, -25, -16, -16, - -12, -13, -15, -9, 3, 25, 44, 66, 68, 66, 49, 17, 13, 18, 41, 51, - 40, 35, 25, 23, -2, -16, -28, -8, -4, -12, -18, -34, -29, -31, -28, -18, - -4, 2, 16, 13, 20, 9, 4, 2, -3, -4, -9, -9, -9, -8, -9, -10, - -13, -14, -15, -13, -4, 7, 13, 19, 18, 16, 9, 7, 4, 6, 8, 7, - 7, 3, -3, -15, -19, -24, -21, -16, -9, 0, 3, 7, 4, 4, -3, -2, - 6, 13, 20, 14, 16, 14, 11, 7, 0, -4, -3, -3, -7, -12, -12, -9, - -5, -5, -7, -9, -4, -2, -2, -2, -4, -9, -10, -13, -13, -14, -15, -13, - -9, -8, -9, -9, -7, -4, 2, 2, 6, 9, 8, 11, 9, 11, 9, 8, - 6, 0, -7, -13, -21, -29, -36, -45, -53, -63, -72, -73, -61, -41, 0, 52, - 98, 109, 81, 64, 54, 78, 77, 45, 39, 44, 25, 19, 6, -8, 25, 30, - 44, 62, 46, -20, -85, -89, -88, -47, -29, -30, 2, 11, 8, 12, 24, 33, - 29, 25, 22, 1, -15, -34, -37, -36, -41, -36, -28, -15, 2, 9, 11, 14, - 12, 8, 12, 17, 18, 19, 23, 20, 20, 20, 8, -5, -14, -15, -15, -13, - -13, -18, -19, -24, -29, -32, -31, -23, -12, -2, 12, 20, 23, 24, 25, 20, - 22, 18, 16, 14, 9, 7, 2, 1, -9, -10, -19, -15, -12, -13, -8, -5, - -4, -4, -7, -10, -12, -12, -16, -14, -8, -9, -13, -14, -18, -15, -10, -5, - -3, 3, 4, 6, 11, 13, 13, 16, 16, 16, 12, 6, -3, -10, -16, -21, - -28, -37, -48, -61, -77, -88, -87, -68, -34, 28, 92, 127, 99, 64, 50, 72, - 92, 55, 43, 51, 41, 32, 4, -8, -7, -17, -23, -31, -33, -35, -32, -28, - -23, -18, -12, -8, -4, -2, 0, 1, 2, 2, 3, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 3, 4, 6, 7, 7, 7, 8, 9, 9, 8, 8, 9, - 11, 14, 18, 22, 27, 32, 33, 30, 21, 6, -12, -30, -45, -54, -56, -51, - -41, -29, -17, -9, -3, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, - 3, 3, 3, 3, 2, 3, 4, 5, 8, 9, 10, 9, 8, 7, 7, 8, - 10, 15, 20, 25, 30, 35, 39, 39, 32, 19, 0, -22, -42, -56, -62, -61, - -53, -40, -27, -15, -7, -3, -1, 0, 0, 0, 0, 2, 3, 4, 5, 5, - 5, 4, 2, 0, -1, 0, 2, 5, 8, 9, 10, 10, 9, 9, 8, 9, - 10, 14, 19, 24, 28, 32, 34, 38, 36, 29, 17, -5, -28, -49, -61, -65, - -61, -52, -39, -25, -14, -7, -3, -2, -1, -2, -1, 0, 2, 4, 6, 7, - 7, 5, 3, 0, -1, -1, 0, 3, 7, 11, 13, 14, 13, 12, 10, 8, - 8, 9, 12, 17, 22, 26, 29, 31, 33, 31, 26, 18, 3, -16, -35, -50, - -59, -61, -56, -46, -35, -23, -14, -6, -2, 0, 1, 2, 3, 4, 4, 5, - 5, 5, 4, 2, 1, -1, -1, 0, 2, 5, 9, 12, 13, 13, 12, 11, - 9, 7, 7, 8, 11, 15, 20, 24, 29, 33, 35, 34, 30, 21, 4, -16, - -37, -55, -66, -68, -63, -50, -35, -21, -9, -1, 4, 5, 5, 4, 4, 3, - 3, 3, 3, 2, 2, 1, 0, -1, -1, 1, 6, 10, 13, 15, 15, 13, - 11, 8, 5, 4, 4, 7, 11, 17, 22, 27, 32, 36, 39, 39, 36, 24, - 6, -20, -48, -70, -81, -79, -67, -48, -29, -12, -1, 5, 7, 7, 4, 2, - 1, 1, 2, 2, 3, 2, 2, -1, -2, -3, -3, -1, 3, 8, 13, 16, - 17, 16, 12, 8, 3, -1, -3, -2, 2, 11, 21, 29, 36, 38, 39, 42, - 48, 57, 52, 23, -27, -76, -107, -113, -98, -71, -42, -18, -1, 8, 12, 13, - 10, 7, 3, 1, 1, 2, 3, 2, 1, 0, -2, -3, -3, -1, 2, 8, - 13, 17, 18, 17, 12, 7, 1, -3, -4, -3, 20, 30, 38, 41, 39, 38, - 46, 65, 75, 45, -23, -89, -126, -127, -101, -64, -31, -7, 5, 11, 13, 14, - 13, 9, 4, 1, 0, 1, 2, 1, -1, -3, -4, -4, -2, 2, 6, 10, - 14, 18, 18, 15, 9, 1, -6, -10, -13, -10, -4, 7, 20, 0, 14, 19, - 23, 26, 28, 28, 26, 23, 18, 11, 3, -4, -10, -16, -21, -23, -24, -22, - -20, -16, -12, -8, -3, 3, 8, 13, 19, 23, 26, 27, 26, 23, 17, 10, - 4, -3, -9, -15, -20, -24, -25, -25, -22, -17, -11, -3, 3, 9, 14, 18, - 20, 22, 23, 23, 21, 17, 13, 6, 1, -6, -11, -15, -18, -20, -19, -19, - -17, -16, -13, -11, -8, -5, -1, 2, 5, 7, 9, 9, 8, 6, 3, 0, - -3, -7, -10, -14, -17, -19, -19, -18, -16, -12, -7, -2, 3, 8, 13, 16, - 18, 19, 17, 14, 8, -1, -11, -21, -31, -38, -41, -40, -34, -25, -12, 2, - 17, 32, 45, 56, 62, 65, 63, 58, 49, 38, 25, 10, -6, -18, -28, -37, - -44, -51, -59, -64, -64, -56, -40, -17, 7, 29, 46, 56, 58, 59, 56, 51, - 45, 33, 19, 4, -13, -26, -39, -49, -56, -59, -55, -46, -34, -19, -4, 10, - 21, 30, 40, 46, 51, 52, 49, 43, 31, 18, 5, -8, -16, -21, -23, -26, - -29, -35, -39, -42, -40, -34, -22, -11, 2, 11, 18, 21, 24, 23, 22, 19, - 14, 7, -3, -13, -21, -30, -39, -46, -50, -52, -49, -42, -31, -17, -3, 12, - 26, 39, 49, 57, 60, 58, 51, 39, 22, 1, -23, -47, -68, -82, -89, -88, - -77, -60, -37, -11, 16, 43, 65, 83, 94, 100, 101, 96, 87, 71, 51, 29, - 4, -18, -38, -58, -75, -91, -104, -109, -105, -87, -61, -27, 8, 39, 67, 87, - 97, 97, 88, 71, 54, 36, 16, -2, -23, -42, -57, -70, -75, -75, -71, -60, - -43, -23, -1, 18, 31, 47, 57, 66, 71, 68, 61, 49, 32, 17, 1, -11, - -22, -33, -41, -47, -54, -59, -63, -62, -57, -46, -30, -12, 1, 17, 30, 41, - 49, 50, 47, 40, 29, 17, 3, -14, -30, -46, -60, -70, -76, -77, -73, -63, - -48, -28, -4, 20, 44, 65, 81, 91, 93, 88, 77, 60, 37, 11, -19, -49, - -76, -97, -109, -110, -100, -81, -56, -25, 7, 38, 67, 91, 109, 121, 127, 126, - 116, 96, 68, 38, 8, -18, -43, -68, -90, -110, -124, -127, -116, -91, -59, -22, - 14, 47, 77, 98, 107, 105, 93, 74, 54, 33, 13, -6, -26, -45, -60, -71, - -78, -79, -74, -61, -42, -21, 1, 18, 33, 49, 60, 68, 73, 70, 62, 48, - 32, 15, 0, -13, -24, -34, -42, -48, -55, -61, -65, -65, -60, -48, -32, -15, - 2, 19, 32, 43, 50, 51, 47, 40, 28, 16, 1, -14, 2, -2, 2, -5, - -3, -1, 0, -4, -4, -6, -4, -6, -4, -4, -7, -6, -7, -6, -1, 0, - 3, 13, 14, 16, 12, 13, 2, 1, 0, -1, -1, -1, -2, -2, -2, -3, - -3, -4, -8, -4, -4, -5, -5, -5, -7, -9, -12, -8, -14, -11, -14, -18, - -8, 1, 31, 71, 68, 24, -5, -11, -7, -5, -5, -5, -3, -2, -5, -5, - -9, -8, -7, -7, -9, -12, -11, -17, -14, -16, -15, -20, -26, -30, -27, -15, - 16, 51, 87, 101, 70, 8, -18, -11, -14, -7, -7, -1, -2, -5, -7, -12, - -14, -10, -10, -13, -14, -13, -16, -16, -17, -18, -35, -31, -30, -34, -9, 16, - 56, 84, 89, 60, 30, 5, -7, -5, -8, -3, -4, -4, -6, -12, -14, -13, - -10, -12, -12, -9, -10, -8, -12, -13, -15, -19, -23, -26, -33, -29, -28, -9, - 12, 43, 71, 88, 72, 48, 29, -2, -16, -19, -12, -12, -12, -7, -11, -10, - -10, -10, -11, -13, -15, -18, -19, -17, -16, -15, -13, -12, -13, -9, -13, -17, - -21, -18, 2, 34, 59, 87, 92, 98, 38, -30, -24, -27, -18, -16, -11, -11, - -13, -15, -12, -14, -15, -18, -17, -20, -18, -15, -10, -7, -3, -1, 2, -8, - -11, -22, -22, -20, 7, 31, 61, 97, 106, 43, -23, -28, -25, -20, -12, -7, - -5, -7, -10, -13, -13, -13, -11, -14, -15, -15, -12, -8, -7, -4, -2, -4, - -10, -15, -19, -26, -10, 12, 42, 72, 101, 90, 20, -25, -27, -22, -18, -10, - -6, -9, -11, -16, -17, -16, -14, -10, -8, -9, -9, -9, -9, -9, -8, -5, - -3, -6, -10, -17, -24, -21, 4, 30, 61, 84, 96, 79, -16, -38, -27, -26, - -17, -12, -8, -12, -13, -14, -14, -11, -8, -4, -4, -7, -9, -8, -10, -12, - -8, -5, -4, -7, -10, -18, -24, -11, 14, 42, 70, 79, 93, 36, -32, -26, - -28, -19, -15, -9, -9, -13, -16, -14, -12, -8, -5, -3, -7, -9, -9, -9, - -11, -8, -5, -1, -6, -9, -15, -24, -23, 6, 28, 63, 86, 127, 37, -45, - -27, -28, -26, -19, -4, -5, -8, -11, -12, -14, -12, -8, -4, -8, -8, -10, - -8, -13, -8, -8, -3, -8, -8, -16, -23, -17, 7, 34, 69, 83, 113, 37, - -50, -28, -25, -22, -16, 0, -3, -8, -12, -12, -14, -14, -10, -5, -7, -6, - -9, -9, -13, -9, -10, -7, -9, -9, -15, -20, -14, 8, 33, 64, 81, 90, - 57, -29, -28, 0, -4, 10, 10, 11, -15, 4, -1, 3, -11, 11, 2, -12, - 3, 18, -10, -62, 89, -16, -95, 118, -128, 122, -128, 112, -100, 109, -121, 120, - -104, 58, 10, -88, 127, -102, 6, 98, -126, 35, 89, -111, -7, 112, -53, -94, - 92, 64, -106, -53, 109, 52, -100, -75, 86, 95, -45, -119, -12, 111, 74, -58, - -118, -27, 97, 100, -4, -107, -95, 17, 109, 92, -4, -99, -109, -26, 78, 115, - 66, -27, -104, -109, -41, 55, 112, 98, 32, -53, -109, -105, -44, 41, 102, 109, - 67, -4, -74, -112, -102, -47, 27, 88, 112, 93, 45, -19, -78, -110, -105, -65, - -4, 59, 101, 110, 87, 43, -13, -67, -103, -111, -89, -44, 13, 65, 100, 109, - 93, 59, 14, -36, -78, -104, -108, -90, -53, -6, 43, 83, 104, 106, 88, 57, - 17, -27, -66, -95, -108, -102, -80, -44, -2, 41, 77, 99, 106, 98, 77, 46, - 10, -29, -64, -91, -105, -105, -91, -64, -29, 10, 48, 78, 98, 105, 100, 84, - 59, 30, -3, -36, -65, -88, -101, -105, -99, -83, -60, -32, -1, 30, 58, 80, - 96, 103, 102, 94, 80, 62, 40, 16, -10, -35, -58, -78, -92, -101, -104, -100, - -91, -77, -58, -36, -13, 12, 36, 57, 75, 89, 98, 102, 102, 97, 88, 76, - 61, 44, 25, 5, -15, -35, -54, -70, -84, -94, -101, -104, -103, -98, -89, -77, - -63, -46, -27, -8, 12, 31, 49, 65, 79, 90, 97, 102, 104, 102, 97, 90, - 81, 70, 57, 42, 27, 10, -7, -24, -40, -56, -70, -81, -91, -99, -103, -105, - -105, -101, -95, -87, -76, -63, -49, -34, -18, -1, 16, 32, 48, 62, 74, 85, - 93, 100, 104, 105, 105, 102, 97, 90, 82, 72, 61, 48, 35, 21, 6, -9, - -24, -38, -52, -65, -76, -86, -94, -101, -105, -108, -108, -106, -102, -96, -87, -78, - -66, -54, -40, -26, -11, 4, 19, 34, 48, 61, 73, 83, 92, 99, 104, 107, - 108, 108, 105, 101, 96, 89, 80, 70, 60, 48, 36, 22, 9, -5, -19, -33, - -46, -58, -69, -80, -89, -96, -102, -107, -109, -110, -110, -107, -102, -97, -89, -80, - -70, -59, -47, -33, -20, -6, 7, 19, 30, 41, 50, 58, 65, 71, 75, 78, - 79, 80, 79, 77, 74, 70, 65, 60, 54, 48, 42, 36, 29, 22, 16, 10, - 4, -2, -7, -12, -16, -19, -22, -24, -26, -27, -27, -27, -26, -25, -23, -22, - -19, -17, -14, -12, -10, 0, -5, -2, -5, 2, -29, 22, 0, -27, 67, -59, - 45, -13, -37, 28, 65, -4, 6, 60, 5, 58, 44, 60, 27, 43, 96, 71, - 81, 48, 96, 70, 23, 90, 66, 80, 88, 40, 20, 61, 64, 12, 36, 24, - 4, 7, 5, -27, -38, -26, -33, -49, -50, -70, -69, -93, -92, -94, -104, -104, - -101, -110, -107, -111, -111, -126, -87, -119, -100, -94, -112, -93, -93, -80, -81, -76, - -58, -56, -70, -30, -21, -42, -13, -3, 2, 8, 20, 28, 41, 45, 59, 62, - 69, 84, 85, 90, 103, 109, 111, 118, 121, 121, 123, 121, 122, 121, 122, 121, - 122, 121, 121, 120, 121, 120, 121, 120, 121, 120, 120, 119, 120, 119, 120, 118, - 105, 106, 110, 83, 89, 92, 75, 67, 61, 57, 47, 40, 33, 24, 17, 10, - 3, -2, -10, -20, -31, -31, -37, -49, -50, -63, -66, -69, -74, -79, -91, -89, - -92, -95, -102, -106, -104, -107, -113, -113, -110, -113, -116, -114, -115, -114, -115, -114, - -113, -114, -113, -114, -113, -112, -113, -109, -105, -111, -106, -107, -103, -100, -103, -99, - -97, -98, -99, -92, -92, -93, -92, -92, -90, -88, -90, -88, -86, -89, -85, -85, - -87, -85, -85, -82, -83, -82, -80, -78, -79, -76, -74, -73, -73, -69, -68, -66, - -64, -65, -62, -58, -56, -56, -52, -50, -47, -43, -42, -39, -35, -33, -31, -27, - -23, -21, -16, -16, -8, -7, -3, 1, 0, 10, 15, 15, 19, 26, 29, 30, - 38, 41, 42, 47, 54, 54, 57, 63, 68, 69, 72, 77, 78, 80, 85, 84, - 86, 87, 86, 87, 86, 85, 86, 85, 84, 85, 84, 83, 84, 83, 82, 82, - 83, 82, 81, 82, 81, 80, 81, 80, 79, 80, 79, 79, 78, 79, 78, 78, - 77, 74, 70, 66, 64, 61, 55, 52, 49, 45, 40, 35, 32, 29, 24, 19, - 15, 12, 8, 4, 0, -4, -8, -11, -15, -17, -20, -25, -26, -29, -32, -34, - -37, -39, -41, -43, -45, -46, -48, -49, -50, -50, -52, -52, -53, -52, -53, -54, - -53, -53, -52, -52, -51, -50, -50, -49, -48, -48, -46, -45, -44, -42, -41, -40, - -39, -37, -35, -34, -32, -30, -28, -27, -24, -23, -22, -20, -19, -17, -15, -14, - -13, -12, -10, -9, -8, -8, -6, -6, -5, -4, -4, -3, -3, -2, -2, -1, - -2, -1, -2, -1, -1, 0, -1, -1, -1, -4, -9, -9, -7, -6, -7, -3, - 4, 8, 10, 11, 13, 10, 4, -3, -10, -15, -13, -9, -10, -11, -5, 4, - 12, 14, 12, 13, 14, 9, 1, -8, -15, -21, -23, -22, -13, -3, 7, 17, - 24, 27, 19, 11, 16, 15, -5, -24, -29, -23, -27, -32, -21, 5, 18, 20, - 21, 24, 24, 15, 11, 8, -6, -30, -31, -19, -17, -24, -14, 2, 17, 15, - 12, 17, 16, 19, 8, -5, -2, -1, -17, -17, -3, 6, 5, -4, 0, 1, - -12, -9, 9, 11, -4, -14, -8, 9, -2, -21, -14, 4, 9, 9, 11, 18, - 21, 10, 8, 16, 10, 26, 35, 6, -14, -28, -25, -24, -55, -65, -33, -17, - 1, -6, -6, 8, 23, 33, 49, 37, 19, 16, 11, 24, 42, 17, -37, -36, - 3, 7, -23, -36, -9, 9, -12, -20, -8, -2, -4, -23, -17, -6, 0, 10, - 24, 24, 40, 46, 33, 39, 26, 5, 6, 9, -12, -26, -33, -42, -61, -52, - -43, -37, -21, -4, 7, 13, 28, 36, 31, 24, 1, -1, 20, 24, 23, 21, - 26, 27, 8, -32, -44, -3, 28, -1, -36, -30, -6, 13, -12, -34, -18, -6, - 9, 21, 25, 16, 10, 38, 62, 46, 17, -11, -7, 10, -8, -44, -53, -33, - -35, -38, -29, -27, -16, 0, 1, 9, 37, 50, 36, 2, -20, -12, 15, 21, - 24, 32, 29, 20, 23, 12, -8, -3, 4, -10, -5, 2, -19, -63, -70, -21, - 20, 41, 23, 33, 57, 61, 42, 21, 15, 10, -45, -82, -60, -29, -44, -77, - -50, -7, 4, -4, 10, 32, 56, 42, 1, -10, -18, 2, 22, 28, 33, 42, - 47, 43, 47, 11, -23, 0, 10, -40, -81, -70, -28, -29, -68, -29, 19, 6, - 7, 21, 40, 41, 32, 22, 28, 47, 69, 66, 35, 21, 15, -3, -20, -34, - -24, -6, -19, -59, -47, -42, -35, -28, 15, 45, 51, 66, 78, 83, 37, 1, - 13, 7, -51, -81, -92, -83, -87, -74, -58, -73, -51, 12, 35, 26, 35, 47, - 69, 70, 63, 65, 49, 47, 68, 73, 52, 33, 15, -12, -30, -50, -51, -46, - -45, -60, -50, -50, -50, -54, -24, 38, 78, 90, 106, 99, 40, -6, -11, -46, - -110, -127, -107, -76, -67, -53, -41, -41, -23, 14, 33, 27, 34, 49, 70, 71, - 66, 65, 51, 51, 69, 72, 52, 32, 10, -12, -1, 1, 0, 0, -3, -1, - 1, -4, -4, -3, -2, -5, -3, 0, -1, -1, -3, -1, 0, 2, 0, -2, - -5, 5, 4, 1, 7, 2, 2, 1, 8, 1, 6, 2, -4, 2, 1, -4, - 6, -8, -3, -7, -2, -6, -1, -9, 1, -2, -4, 1, 2, 1, -2, 8, - 2, 0, 14, 9, 10, 5, 3, 5, 6, 4, 3, -8, -2, -4, -10, -1, - -5, -3, -4, -6, -13, -5, -4, -4, -3, 2, -13, -6, 3, 6, 6, 7, - 1, 1, 6, 6, 16, 13, 9, 10, 9, 2, 7, 10, 4, -4, -3, -17, - -7, -6, -6, -10, -17, -17, -10, -11, -9, -5, -6, -8, 2, 1, 8, 19, - 15, 18, 24, 19, 16, 17, 19, 11, 7, 1, -5, -8, -9, -15, -8, -9, - -14, -20, -19, -9, -18, -10, -13, -23, -13, -12, -7, 0, -1, 5, 16, 12, - 28, 30, 32, 34, 34, 19, 24, 23, 16, 11, 5, -7, -19, -17, -16, -21, - -26, -23, -32, -31, -30, -25, -26, -24, -19, -13, -9, -1, 0, 4, 6, 13, - 15, 19, 17, 13, 8, 8, 8, 7, 0, -4, -8, -10, -7, -5, -6, -6, - -9, -12, -8, -10, -9, -9, -11, -13, -12, -9, -4, -1, 4, 9, 19, 27, - 31, 26, 16, 14, 16, 16, 12, 1, -8, -14, -11, -9, -6, -11, -11, -12, - -14, -10, -11, -13, -15, -19, -23, -19, -14, -8, -5, -1, 8, 34, 62, 59, - 12, 14, 32, 22, 6, 20, 6, -9, -54, -16, -1, -19, 7, -15, -13, -12, - -14, -15, -14, -22, -24, -30, -30, -20, -12, -6, 3, 26, 66, 88, 39, 0, - 47, 36, -2, 26, -23, 21, 13, -6, -60, -42, 6, -22, 4, -18, -16, -4, - -16, -19, -24, -39, -31, -25, -32, -26, -11, 12, 55, 104, 75, 10, 35, 62, - 9, 26, -16, -8, 19, 3, -9, -61, -46, 2, -26, -7, -16, -10, 2, -7, - -22, -23, -38, -40, -37, -44, -33, -8, 37, 101, 124, 36, -5, 89, 20, 38, - 5, -26, 3, 1, 5, -28, -65, -21, 1, -22, -12, -26, 1, -7, -10, -24, - -26, -33, -37, -48, -50, -36, 5, 63, 122, 109, 7, 35, 84, 5, 59, -36, - -4, -11, -1, -5, -40, -55, -4, -15, -21, -16, -22, 5, -10, -17, -20, -27, - -23, -44, -54, -62, -23, 29, 114, 127, 51, 7, -2, -4, -2, 4, 11, 14, - 10, 2, -7, -9, -9, -15, -16, -7, 3, 2, -10, -21, -17, 6, 10, -8, - -28, -11, 45, 66, 64, 47, 36, 49, 49, 27, 9, -12, -18, -25, -30, -11, - 0, -5, 0, -1, -18, -36, -33, -18, -10, -13, -31, -26, -25, -17, 4, 28, - 70, 89, 48, 9, -32, -58, -56, -70, -57, -17, -38, -48, -35, -32, -7, 35, - 38, 53, 62, 44, 33, 27, -6, -35, -52, -65, -54, -40, -43, -30, -25, 2, - 63, 54, 34, 17, 34, 70, 60, 8, -15, -3, 0, 39, 55, 35, 39, 60, - 75, 36, 20, -7, -25, -66, -110, -89, -89, -71, -36, -12, 9, 31, 41, 54, - 46, 45, 59, 41, 22, 3, -69, -110, -126, -116, -64, -15, 9, 29, 33, 30, - 56, 42, 12, 23, 6, -27, -36, -21, -22, -32, -21, -30, -29, -5, 9, 16, - 22, -9, -12, 31, 24, -17, -41, -23, 32, 32, 26, 34, 64, 66, 109, 104, - 51, 5, 12, 16, -36, -58, -59, -66, -63, -82, -64, -23, -9, 11, 16, 20, - 19, 13, 12, 33, 37, 41, 46, 28, 7, -58, -93, -79, -64, -33, -1, 22, - -4, 2, 19, 4, -7, -3, -3, 5, 1, -10, -3, 12, -6, -38, -29, -17, - -5, 11, 2, -33, -20, 44, 42, 20, -30, -24, 9, 44, 38, 20, 36, 71, - 61, 86, 72, 25, -8, 10, 17, -35, -54, -63, -67, -70, -78, -58, -16, -7, - 19, 22, 20, 21, 29, 21, 16, 35, 36, 16, -8, -27, -61, -58, -67, -43, - 3, 35, 38, -2, -2, 10, -9, -29, -14, -5, -1, -5, 2, 12, -6, -32, - -23, -22, -16, -5, 3, -9, -29, 27, 56, 39, 11, -27, -28, 23, 34, 28, - 18, 20, 62, 82, 71, 74, 24, -4, 16, 18, -39, -54, -65, -61, -52, -64, - -49, -11, -4, 12, 17, 16, 25, 24, 6, 23, 36, 18, 18, -1, -42, -50, - -90, -43, 3, 35, 38, -2, -2, 10, -9, -29, -14, -5, -1, -5, 2, 12, - -6, -32, -23, -22, -16, -5, 3, -9, -29, 27, 56, 39, 11, -27, -28, 23, - 34, 28, 18, 20, 62, 82, 71, 74, 24, -4, 16, 18, -39, -54, -65, -61, - -52, -64, -49, -11, -4, 12, 17, 16, 25, 24, 6, 23, 36, 18, 18, -1, - -42, -50, -90, -43, 0, 1, 6, -11, 19, -25, 24, -15, 11, -6, 1, 9, - -6, -3, 11, -18, 28, -23, 8, 6, -2, -1, 0, -5, 18, -23, 24, -28, - 27, -12, -1, -2, 6, 4, -14, 19, -29, 42, -40, 22, -6, -3, 14, -16, - 4, 8, -9, 13, -22, 17, 5, -24, 37, -34, 20, -4, -11, 19, -20, 21, - -16, 1, 17, -17, 5, -9, 25, -31, 31, -40, 32, -11, -7, 4, -4, 13, - -23, 29, -40, 51, -49, 20, 3, -20, 38, -47, 34, -21, 14, -9, 4, -13, - 20, -29, 37, -57, 59, -48, 23, -5, -7, 5, -6, -5, 13, -17, 9, -4, - -12, 22, -19, -8, 10, -5, -7, 8, -18, 19, -13, 5, -12, 6, -10, 18, - -40, 66, -91, 82, -56, 17, 19, -51, 56, -45, 30, -19, 5, -6, 7, -9, - -4, -2, -5, 13, -19, 1, 20, -28, 13, -6, 0, -17, 33, -48, 38, -16, - -20, 53, -75, 75, -61, 30, -12, -9, 2, 5, -9, -7, 15, -17, 9, 4, - -46, 70, -85, 86, -67, 29, 18, -60, 76, -70, 29, -8, -1, 1, 14, -58, - 93, -118, 127, -125, 85, -36, -2, 17, -39, 46, -61, 70, -99, 122, -120, 56, - 15, -85, 116, -101, 30, 43, -108, 127, -122, 72, -38, -3, 20, -31, 29, -37, - 42, -50, 63, -72, 40, -7, -46, 66, -82, 53, -25, 1, 1, -1, -3, 3, - -24, 24, -34, 27, -24, 36, -49, 37, -38, 35, -42, 13, -4, -14, 14, -29, - 42, -58, 58, -60, 41, -39, 27, -35, 27, -32, 25, -37, 43, -50, 32, -20, - -4, 4, -14, 16, -43, 66, -93, 79, -58, 27, -11, -21, 34, -40, 24, -7, - -25, 31, -29, 19, -18, -2, 1, -6, 4, -31, 47, -63, 62, -64, 32, 2, - -29, 23, -21, 19, -41, 59, -76, 62, -52, 26, -11, -1, -10, 6, -10, -7, - 17, -42, 34, -12, -34, 73, -106, 92, -61, 26, -24, 8, -7, -2, 3, -24, - 31, -44, 27, -9, -22, 38, -43, 15, -4, -3, -2, -12, 5, 1, -7, 7, - -25, 17, -17, 4, -15, 27, -40, 34, -18, 6, -13, 12, -3, -9, -6, 8, - -18, 18, -36, 54, -55, 30, -25, 26, -41, 38, -49, 48, -38, 8, 16, -40, - 47, -52, 34, -12, -4, 2, -13, 0, 1, 6, -11, 19, -25, 24, -15, 11, - -6, 1, 9, -6, -3, 11, -18, 28, -23, 8, 6, -2, -1, 0, -5, 18, - -23, 24, -28, 27, -12, -1, -2, 6, 4, -14, 19, -29, 42, -40, 22, -6, - -3, 14, -16, 4, 8, -9, 13, -22, 17, 5, -24, 37, -34, 20, -4, -11, - 19, -20, 21, -16, 1, 17, -17, 5, -9, 25, -31, 31, -40, 32, -11, -7, - 4, -4, 13, -23, 29, -40, 51, -49, 20, 3, -20, 38, -47, 34, -21, 14, - -9, 4, -13, 20, -29, 37, -57, 59, -48, 23, -5, -7, 5, -6, -5, 13, - -17, 9, -4, -12, 22, -19, -8, 10, -5, -7, 8, -18, 19, -13, 5, -12, - 6, -10, 18, -40, 66, -91, 82, -56, 17, 19, -51, 56, -45, 30, -19, 5, - -6, 7, -9, -4, -2, -5, 13, -19, 1, 20, -28, 13, -6, 0, -17, 33, - -48, 38, -16, -20, 53, -75, 75, -61, 30, -12, -9, 2, 5, -9, -7, 15, - -17, 9, 4, -46, 70, -85, 86, -67, 29, 18, -60, 76, -70, 29, -8, -1, - 1, 14, -58, 93, -118, 127, -125, 85, -36, -2, 17, -39, 46, -61, 70, -99, - 122, -120, 56, 15, -85, 116, -101, 30, 43, -108, 127, -122, 72, -38, -3, 20, - -31, 29, -37, 42, -50, 63, -72, 40, -7, -46, 66, -82, 53, -25, 1, 1, - -1, -3, 3, -24, 24, -34, 27, -24, 36, -49, 37, -38, 35, -42, 13, -4, - -14, 14, -29, 42, -58, 58, -60, 41, -39, 27, -35, 27, -32, 25, -37, 43, - -50, 32, -20, -4, 4, -14, 16, -43, 66, -93, 79, -58, 27, -11, -21, 34, - -40, 24, -7, -25, 31, -29, 19, -18, -2, 1, -6, 4, -31, 47, -63, 62, - -64, 32, 2, -29, 23, -21, 19, -41, 59, -76, 62, -52, 26, -11, -1, -10, - 6, -10, -7, 17, -42, 34, -12, -34, 73, -106, 92, -61, 26, -24, 8, -7, - -2, 3, -24, 31, -44, 27, -9, -22, 38, -43, 15, -4, -3, -2, -12, 5, - 1, -7, 7, -25, 17, -17, 4, -15, 27, -40, 34, -18, 6, -13, 12, -3, - -9, -6, 8, -18, 18, -36, 54, -55, 30, -25, 26, -41, 38, -49, 48, -38, - 8, 16, -40, 47, -52, 34, -12, -4, 2, -13, -1, -2, -1, -4, -3, -25, - -41, 8, 16, 27, 2, 16, 1, 13, 21, -8, -6, -29, 17, 8, 8, 20, - -13, 5, 4, 25, 17, 30, 22, 14, 15, 19, 7, 51, -16, -15, -32, -13, - 12, -8, -17, -49, -27, -29, -29, -52, -66, -55, -32, -20, -41, -21, -36, -11, - -16, 22, 3, 19, 0, -6, -10, 0, -38, -17, -35, -19, -27, 0, -35, -27, - -9, -17, -14, -2, 20, 50, 63, 57, 49, 70, 70, 97, 81, 68, 52, 78, - 93, 98, 102, 56, 34, 20, 53, 60, 45, 24, -18, 21, -10, 0, -38, -79, - -38, -37, -13, -27, -41, -50, -51, 14, 10, 16, -21, -13, -22, -20, -48, -53, - -55, -66, -76, -65, -91, -105, -92, -87, -101, -79, -56, -34, -7, -4, 7, 20, - 15, 26, 29, 32, -8, 36, 47, 50, 66, 29, 18, -33, -11, -4, -10, -24, - -42, -31, -22, 2, -23, -75, -34, -36, 5, 1, 1, -17, -47, 20, 43, 68, - 28, 30, 9, 29, 7, -9, -5, -32, -46, -36, -15, -40, -35, -15, -26, -21, - 2, 21, 49, 62, 83, 87, 106, 77, 97, 94, 67, 60, 85, 79, 110, 80, - 61, 1, 8, 16, 50, 36, 2, -22, 4, -2, 21, -35, -33, -19, 4, 24, - 19, 10, -58, -23, 18, 45, 34, 8, -12, -6, -5, -48, -51, -75, -72, -77, - -37, -65, -80, -57, -66, -68, -38, -38, 2, 10, 38, 31, 58, 22, 39, 37, - 27, -9, 23, 9, 35, 18, 15, -31, -50, -44, -5, 6, -10, -63, -41, -56, - -15, -41, -71, -45, -37, 7, -6, 5, -56, -71, -6, 21, 41, 8, -13, -14, - -40, -30, -41, -40, -56, -31, -31, -9, -15, -5, 10, 42, 27, 73, 82, 73, - 73, 79, 70, 38, 28, 31, 23, 45, 42, 44, 30, -40, 8, 28, 52, 30, - -18, -29, -40, -14, -45, -50, -55, -68, -39, -6, -29, -45, -59, -32, 4, 31, - 23, 16, 20, 11, -1, 1, -28, -45, -53, -56, -67, -60, -55, -40, -31, -25, - -16, 11, 20, 36, 67, 70, 75, 77, 81, 65, 46, 38, 34, 39, 51, 44, - 57, 7, -4, 13, 37, 46, 19, -8, -29, -1, -9, -21, -32, -43, -55, -58, - -40, -8, 15, 29, 38, 44, 59, 63, 51, 20, -20, -47, -61, -58, -48, -42, - -43, -35, -15, 15, 41, 55, 61, 62, 70, 67, 45, 11, -31, -62, -80, -78, - -71, -62, -54, -39, -15, 18, 50, 68, 79, 83, 92, 88, 57, 16, -31, -71, - -94, -95, -90, -83, -71, -55, -28, 7, 49, 77, 93, 100, 109, 107, 78, 36, - -20, -71, -99, -104, -100, -92, -83, -69, -43, -5, 42, 79, 100, 108, 114, 112, - 90, 51, -9, -65, -100, -110, -105, -95, -87, -76, -52, -11, 35, 75, 100, 107, - 111, 106, 90, 52, -4, -60, -97, -109, -99, -87, -80, -65, -35, 5, 43, 75, - 91, 95, 93, 87, 71, 31, -19, -64, -93, -99, -88, -76, -66, -44, -9, 28, - 59, 79, 84, 80, 71, 59, 35, -5, -45, -76, -96, -95, -77, -59, -39, -9, - 28, 61, 86, 98, 93, 74, 52, 28, -6, -43, -72, -94, -108, -99, -77, -52, - -20, 19, 56, 84, 106, 115, 106, 79, 45, 3, -40, -74, -93, -108, -112, -100, - -79, -46, -1, 45, 78, 100, 113, 118, 108, 81, 39, -19, -67, -93, -103, -108, - -104, -94, -74, -32, 19, 61, 88, 102, 108, 109, 100, 73, 21, -44, -87, -102, - -104, -97, -90, -78, -49, 0, 46, 78, 90, 92, 89, 87, 77, 43, -15, -72, - -101, -104, -93, -79, -69, -47, -3, 47, 84, 96, 89, 74, 65, 58, 37, -7, - -61, -99, -110, -101, -82, -62, -38, 2, 49, 92, 112, 106, 82, 59, 41, 18, - -19, -61, -95, -111, -110, -98, -74, -39, 6, 54, 99, 122, 123, 104, 79, 50, - 12, -32, -72, -100, -111, -110, -106, -90, -54, -4, 49, 99, 123, 126, 113, 95, - 69, 24, -27, -72, -102, -114, -109, -104, -94, -64, -16, 36, 87, 116, 121, 111, - 97, 76, 36, -15, -61, -94, -110, -108, -98, -86, -60, -19, 29, 77, 104, 109, - 99, 86, 67, 35, -7, -47, -82, -98, -101, -92, -77, -48, -14, 25, 67, 92, - 95, 83, 66, 45, 18, -9, -37, -62, -77, -81, -78, -54, -16, 0, 0, 0, - 12, -10, 16, -14, -18, 17, -31, -2, 3, -19, -8, 17, 28, 37, 31, -1, - -25, -16, -47, -13, -43, -22, 6, 34, 41, 49, 41, 27, 6, -33, -62, -54, - -59, -32, -13, 29, 53, 73, 60, 54, 16, -19, -58, -77, -89, -42, -46, 17, - 55, 78, 86, 81, 33, -3, -35, -84, -110, -75, -70, 0, 39, 78, 92, 105, - 70, 13, -15, -82, -107, -103, -84, -41, 20, 81, 85, 127, 86, 39, -4, -63, - -103, -99, -107, -69, 2, 68, 82, 127, 84, 58, 28, -44, -88, -104, -108, -83, - -13, 29, 69, 116, 87, 77, 40, -16, -65, -89, -104, -89, -40, -1, 47, 96, - 90, 85, 52, 9, -38, -62, -96, -95, -62, -22, 21, 73, 78, 86, 65, 35, - -15, -41, -80, -92, -69, -48, 1, 43, 65, 80, 73, 49, 8, -23, -59, -75, - -74, -60, -22, 17, 49, 69, 65, 60, 25, -1, -36, -59, -70, -61, -40, -9, - 30, 52, 57, 63, 37, 17, -12, -41, -61, -57, -50, -30, 9, 30, 49, 60, - 47, 28, 6, -20, -49, -51, -53, -42, -11, 13, 34, 53, 50, 34, 18, -3, - -35, -39, -52, -49, -23, 0, 18, 41, 47, 36, 31, 10, -21, -28, -43, -49, - -31, -13, 2, 28, 39, 35, 38, 19, -7, -18, -33, -42, -36, -26, -12, 19, - 30, 34, 36, 22, 6, -5, -25, -38, -36, -29, -17, 8, 19, 26, 35, 28, - 12, 3, -17, -30, -29, -29, -22, -3, 9, 19, 33, 26, 14, 8, -9, -18, - -22, -28, -25, -9, 3, 15, 22, 20, 18, 12, 1, -11, -22, -24, -21, -13, - -3, 8, 11, 20, 21, 12, 5, -6, -19, -16, -17, -17, -7, 3, 8, 20, - 17, 7, 7, -2, -11, -13, -16, -17, -5, 2, 5, 12, 13, 8, 6, 3, - -9, -11, -9, -14, -5, 1, -3, 6, 11, 6, 7, 2, -6, -4, -4, -10, - -6, -3, -4, 5, 8, 2, 5, 4, -2, 0, -3, -9, -4, -3, -3, 2, - 3, 0, 6, 4, 0, -1, -2, -2, 0, 0, 0, 12, -10, 16, -14, -18, - 17, -31, -2, 3, -19, -8, 17, 28, 37, 31, -1, -25, -16, -47, -13, -43, - -22, 6, 34, 41, 49, 41, 27, 6, -33, -62, -54, -59, -32, -13, 29, 53, - 73, 60, 54, 16, -19, -58, -77, -89, -42, -46, 17, 55, 78, 86, 81, 33, - -3, -35, -84, -110, -75, -70, 0, 39, 78, 92, 105, 70, 13, -15, -82, -107, - -103, -84, -41, 20, 81, 85, 127, 86, 39, -4, -63, -103, -99, -107, -69, 2, - 68, 82, 127, 84, 58, 28, -44, -88, -104, -108, -83, -13, 29, 69, 116, 87, - 77, 40, -16, -65, -89, -104, -89, -40, -1, 47, 96, 90, 85, 52, 9, -38, - -62, -96, -95, -62, -22, 21, 73, 78, 86, 65, 35, -15, -41, -80, -92, -69, - -48, 1, 43, 65, 80, 73, 49, 8, -23, -59, -75, -74, -60, -22, 17, 49, - 69, 65, 60, 25, -1, -36, -59, -70, -61, -40, -9, 30, 52, 57, 63, 37, - 17, -12, -41, -61, -57, -50, -30, 9, 30, 49, 60, 47, 28, 6, -20, -49, - -51, -53, -42, -11, 13, 34, 53, 50, 34, 18, -3, -35, -39, -52, -49, -23, - 0, 18, 41, 47, 36, 31, 10, -21, -28, -43, -49, -31, -13, 2, 28, 39, - 35, 38, 19, -7, -18, -33, -42, -36, -26, -12, 19, 30, 34, 36, 22, 6, - -5, -25, -38, -36, -29, -17, 8, 19, 26, 35, 28, 12, 3, -17, -30, -29, - -29, -22, -3, 9, 19, 33, 26, 14, 8, -9, -18, -22, -28, -25, -9, 3, - 15, 22, 20, 18, 12, 1, -11, -22, -24, -21, -13, -3, 8, 11, 20, 21, - 12, 5, -6, -19, -16, -17, -17, -7, 3, 8, 20, 17, 7, 7, -2, -11, - -13, -16, -17, -5, 2, 5, 12, 13, 8, 6, 3, -9, -11, -9, -14, -5, - 1, -3, 6, 11, 6, 7, 2, -6, -4, -4, -10, -6, -3, -4, 5, 8, - 2, 5, 4, -2, 0, -3, -9, -4, -3, -3, 2, 3, 0, 6, 4, 0, - -1, -2, -2, 0, -1, -1, -3, -7, -14, -23, -32, -45, -55, -66, -74, -83, - -88, -80, -77, -71, -64, -54, -46, -37, -31, -25, -19, -12, -6, -1, 4, 8, - 12, 17, 21, 23, 25, 25, 27, 29, 32, 35, 36, 34, 32, 31, 32, 35, - 37, 37, 35, 31, 29, 29, 31, 33, 34, 32, 29, 26, 25, 27, 30, 32, - 31, 29, 27, 27, 29, 31, 34, 35, 35, 35, 36, 38, 41, 43, 45, 47, - 49, 52, 55, 57, 59, 61, 63, 66, 69, 70, 70, 68, 66, 63, 61, 58, - 54, 47, 36, 24, 11, 1, -9, -20, -33, -48, -64, -78, -89, -97, -103, -110, - -116, -123, -128, -128, -126, -121, -116, -112, -107, -102, -95, -88, -78, -69, -61, -54, - -47, -41, -34, -27, -21, -16, -12, -7, -2, 2, 5, 6, 8, 10, 13, 16, - 19, 19, 19, 17, 18, 19, 22, 24, 24, 22, 19, 18, 19, 21, 23, 24, - 22, 19, 17, 18, 20, 22, 24, 24, 22, 21, 22, 24, 27, 29, 30, 30, - 31, 32, 35, 37, 40, 42, 45, 47, 50, 53, 56, 58, 60, 62, 66, 68, - 70, 69, 68, 65, 63, 61, 59, 54, 46, 36, 24, 13, -1, -14, -28, -43, - -57, -68, -78, -86, -94, -102, -109, -114, -117, -117, -115, -112, -109, -106, -101, -96, - -89, -81, -73, -67, -59, -53, -46, -40, -34, -28, -23, -18, -13, -9, -5, -2, - 0, 2, 5, 7, 10, 12, 14, 15, 15, 15, 16, 18, 19, 20, 20, 19, - 18, 18, 19, 21, 22, 22, 21, 20, 19, 21, 23, 24, 25, 25, 25, 25, - 26, 29, 31, 33, 34, 35, 36, 38, 40, 43, 46, 48, 51, 53, 56, 59, - 62, 65, 68, 71, 74, 77, 78, 79, 78, 77, 76, 74, 71, 66, 58, 49, - 39, 28, 17, 6, -6, -20, -35, -50, -64, -75, -85, -94, -102, -110, -117, -122, - -124, -123, -121, -118, -114, -110, -106, -99, -92, -84, -76, -69, -61, -55, -48, -41, - -34, -29, -23, -18, -13, -9, -5, -2, 0, -1, -1, 0, 2, 0, 3, 2, - 2, 4, 5, 4, 4, 4, 4, 5, 3, 4, 3, 1, 2, 0, 0, -1, - -3, -4, -2, -3, -5, -3, -4, -5, -5, -4, -3, -3, -6, -5, -4, -2, - -5, -5, -2, -3, -3, -3, 1, 4, 4, 8, 8, 8, 13, 12, 13, 14, - 12, 9, 8, 6, 6, 3, -2, -2, -5, -5, -4, -5, -11, -16, -12, -7, - -3, -5, -10, -11, -6, -2, -2, -1, -4, -6, -6, -7, -8, -5, -2, 2, - 5, 6, 8, 8, 9, 13, 16, 16, 14, 11, 7, 5, 4, 2, 0, -2, - -3, -3, 0, -3, -13, -28, -11, 7, -1, -15, -1, -5, -18, -10, 6, 11, - -11, -1, -10, -14, -13, -13, -4, 4, 6, 14, 13, 10, 10, 15, 17, 24, - 24, 13, 12, 10, 1, 0, 2, -4, 0, -6, 2, 7, -22, -68, 2, 35, - -40, 14, -24, -3, -10, -9, -20, -3, 28, 2, -9, -12, -28, -19, -4, -1, - 15, 17, 17, 16, 12, 16, 22, 25, 28, 6, 17, 9, -1, -2, -3, 2, - 12, -6, 6, -5, -35, -89, 32, 28, -39, 20, -36, 9, -20, -9, -34, 3, - 34, 8, -16, -11, -37, -15, -3, 0, 26, 18, 13, 15, 13, 25, 27, 29, - 20, 3, 21, 2, -2, 0, -8, 11, 16, -1, 8, -21, -76, -81, 87, -25, - 4, -4, -23, 6, -26, -20, -35, 23, 28, 0, -18, -16, -43, 2, -9, 17, - 25, 15, 9, 18, 17, 37, 28, 35, 3, 14, 12, -5, -1, -1, -5, 27, - 0, 16, -11, -49, -128, 36, 40, -36, 35, -41, 21, -27, -14, -45, 4, 24, - 20, -23, -6, -41, -9, -1, 6, 23, 19, 5, 15, 14, 33, 35, 40, 16, - 5, 16, -3, -5, 4, -12, 24, 10, 18, 1, -38, -128, -21, 72, -50, 42, - -38, 19, -16, -16, -43, -10, 21, 24, -22, -11, -30, -15, 6, 4, 22, 18, - 6, 11, 13, 27, 39, 42, 22, 4, -3, -2, -2, -5, -3, -5, -3, -2, - -6, -5, -5, -6, -5, -3, -5, -3, -5, -4, -6, -3, -1, -2, -1, 0, - -2, 1, 2, 1, 4, 4, 5, 5, 5, 8, 10, 11, 9, 10, 11, 8, - 5, 10, 7, 5, 5, 0, -3, 1, 0, -5, -2, -8, -9, -7, -7, -5, - -9, -11, -9, -8, -8, -7, -9, -7, -6, -7, -5, -6, -5, -3, -3, -3, - -4, -4, -2, 0, 1, 2, 5, 9, 12, 16, 19, 22, 22, 24, 22, 22, - 19, 13, 11, 7, 7, 4, -2, -7, -9, -9, -8, -10, -14, -14, -15, -15, - -13, -14, -17, -18, -14, -12, -12, -8, -9, -7, -6, -6, -6, -8, -9, -9, - -11, -13, -11, -6, -1, 3, 9, 20, 27, 33, 37, 46, 46, 42, 37, 28, - 21, 14, 11, 10, 14, 20, -2, -40, -47, -22, -5, -4, -1, 4, -15, -53, - -56, -7, -33, -14, -2, -19, -7, -8, -15, -6, -9, -8, -3, -9, -15, -18, - -26, -19, -6, -5, -6, 0, 12, 22, 29, 30, 28, 32, 29, 21, 15, 13, - 5, 5, 3, 19, 30, 3, -68, -26, 2, -17, 17, -12, 15, -1, -12, -48, - -43, -19, -1, 3, 6, -8, -4, -10, -10, -4, 0, -6, -1, -7, -9, -17, - -12, -6, -9, -14, -5, 14, 33, 33, 41, 32, 41, 35, 20, 10, 8, 4, - 10, -2, 36, 40, 3, -110, -8, -7, -6, 16, -18, 27, -2, -4, -56, -57, - -33, 16, -2, 12, -11, -5, -17, -9, -5, 10, -6, 0, -12, -11, -20, -10, - -8, -12, -17, -3, 17, 38, 34, 45, 36, 51, 37, 18, 4, -3, 3, 8, - 8, 54, 48, -34, -128, 28, -33, 28, -13, 1, 21, 3, -20, -59, -65, -10, - 17, -1, 7, -17, -10, -19, -8, 5, 11, -4, -2, -16, -17, -20, -9, -11, - -18, -11, 3, 31, 36, 41, 41, 44, 53, 30, 10, 1, -13, 12, -5, 42, - 63, 43, -127, -55, 19, -27, 28, -1, 0, 3, 5, 8, 12, 14, 15, 15, - 14, 12, 8, 5, 1, -3, -9, -14, -17, -19, -18, -16, -12, -8, -5, -4, - -2, -1, -1, -2, -3, -4, -3, -2, -1, -1, 0, 0, 0, 2, 8, 12, - 16, 19, 23, 26, 34, 40, 39, 28, 11, -8, -26, -36, -40, -39, -35, -27, - -19, -10, -5, -6, -10, -12, -15, -14, -12, -9, -5, -3, -1, 1, 6, 8, - 7, 7, 7, 8, 13, 20, 28, 35, 43, 48, 55, 57, 51, 32, 3, -29, - -56, -68, -67, -60, -46, -31, -17, -7, -4, -7, -11, -15, -16, -15, -10, -5, - -1, 1, 3, 5, 7, 9, 11, 12, 12, 10, 13, 19, 26, 36, 43, 51, - 58, 65, 61, 40, 6, -30, -60, -75, -73, -64, -49, -32, -16, -5, -1, -4, - -11, -18, -23, -23, -19, -12, -5, 2, 8, 12, 13, 11, 9, 8, 8, 10, - 15, 21, 27, 32, 37, 42, 49, 55, 63, 55, 32, -3, -39, -66, -79, -73, - -56, -39, -24, -12, -7, -7, -12, -19, -24, -24, -21, -14, -6, 3, 8, 11, - 12, 11, 10, 10, 10, 11, 14, 17, 21, 27, 33, 41, 49, 56, 63, 66, - 49, 15, -27, -61, -82, -85, -73, -52, -33, -18, -9, -5, -7, -12, -18, -21, - -20, -15, -9, -1, 4, 8, 12, 15, 15, 14, 11, 8, 7, 10, 15, 22, - 32, 45, 59, 72, 86, 95, 75, 22, -40, -93, -119, -120, -97, -64, -32, -9, - 5, 9, 5, -3, -14, -21, -23, -20, -13, -5, 4, 12, 17, 18, 15, 10, - 7, 4, 3, 6, 9, 15, 21, 30, 40, 56, 77, 99, 99, 54, -19, -86, - -123, -127, -103, -66, -27, 1, 16, 18, 11, -1, -12, -21, -23, -21, -16, -8, - 1, 9, 16, 19, 16, 11, 8, 5, 5, 7, 9, 14, 19, 27, 35, 49, - 68, 90, 101, 73, 6, -66, -114, -128, -113, -78, -39, -6, 13, 19, 11, -1, - 0, 10, 30, 35, 40, 39, 37, 28, 18, 6, -9, -20, -30, -35, -33, -30, - -28, -23, -24, -23, -19, -20, -15, -11, -8, -3, 0, 1, 0, -2, -4, -1, - 0, 10, 15, 21, 27, 25, 25, 22, 13, 10, -5, -9, -15, -19, -17, -17, - -12, -7, 0, 4, 10, 8, 5, -5, -13, -23, -31, -30, -24, -13, 11, 36, - 62, 81, 83, 78, 54, 35, 19, -11, -29, -49, -57, -47, -35, -20, -19, -26, - -27, -33, -30, -26, -22, -11, -8, 3, 11, 6, 0, -16, -23, -23, -11, 9, - 23, 35, 45, 51, 46, 49, 26, 12, -13, -26, -37, -45, -31, -35, -17, -4, - 8, 23, 24, 23, 9, -10, -22, -37, -40, -38, -33, -12, 22, 67, 100, 119, - 111, 79, 50, 10, -12, -32, -52, -69, -62, -38, -14, -9, -21, -42, -60, -50, - -39, -19, -4, -1, 3, 15, 19, 2, -16, -43, -57, -48, -21, 19, 38, 63, - 66, 69, 74, 59, 39, 4, -33, -52, -67, -58, -39, -25, 2, 10, 32, 35, - 36, 18, -7, -25, -37, -31, -28, -23, -10, 11, 53, 101, 121, 123, 92, 48, - 11, -24, -42, -60, -66, -67, -48, -20, 2, -16, -41, -67, -87, -62, -44, -10, - 8, 19, 30, 34, 35, 4, -36, -66, -78, -75, -27, 22, 49, 83, 91, 97, - 90, 69, 39, -18, -61, -104, -98, -75, -32, 19, 47, 68, 70, 56, 16, -33, - -77, -89, -76, -47, 7, 35, 64, 100, 123, 125, 107, 60, 5, -39, -76, -94, - -101, -93, -69, -36, -3, 17, 10, -15, -56, -80, -86, -69, -40, -7, 25, 49, - 66, 72, 54, 19, -19, -55, -77, -67, -40, 4, 45, 76, 96, 100, 92, 67, - 32, -11, -56, -88, -91, -73, -33, 9, 41, 61, 65, 52, 17, -28, -67, -80, - -68, -36, 6, 47, 82, 114, 126, 114, 74, 18, -32, -73, -93, -101, -93, -70, - -36, -3, 17, 10, -15, 0, -1, -2, -2, 0, 2, 3, 6, 7, 6, 6, - 3, 2, -1, -4, -8, -12, -14, -13, -13, -11, -5, -1, 5, 10, 14, 17, - 19, 18, 15, 12, 7, 3, 1, -2, -4, -4, -7, -11, -13, -16, -16, -12, - -9, -6, -3, -1, -1, -1, -4, -8, -11, -15, -16, -15, -10, -2, 7, 18, - 25, 28, 28, 24, 16, 10, 4, -2, -5, -5, -4, -4, -1, 0, 0, 1, - 1, 0, -1, -3, -6, -11, -11, -14, -16, -17, -19, -19, -16, -10, -2, 8, - 19, 27, 33, 35, 32, 26, 21, 14, 7, 0, -6, -11, -18, -25, -31, -32, - -27, -19, -9, 1, 10, 15, 14, 10, 0, -13, -28, -38, -42, -40, -26, -4, - 17, 40, 58, 66, 62, 51, 35, 17, 3, -8, -16, -18, -18, -15, -13, -15, - -17, -17, -15, -13, -11, -12, -3, -2, 1, -3, -15, -28, -36, -42, -40, -28, - -11, 14, 45, 63, 70, 69, 56, 44, 36, 21, 3, -12, -18, -26, -37, -47, - -58, -55, -41, -20, 4, 22, 34, 43, 37, 22, -7, -43, -71, -88, -86, -64, - -31, 7, 56, 99, 115, 106, 85, 48, 17, 1, -14, -28, -33, -20, -11, -12, - -18, -37, -44, -41, -29, -23, -7, 15, 31, 40, 33, 8, -27, -56, -73, -74, - -63, -33, 4, 50, 93, 101, 91, 79, 56, 43, 24, 5, -17, -32, -31, -43, - -56, -63, -72, -57, -32, 3, 26, 46, 62, 63, 45, 9, -39, -85, -112, -106, - -84, -49, 6, 60, 104, 127, 115, 83, 46, 16, -1, -16, -21, -26, -16, -2, - -8, -25, -47, -67, -62, -49, -26, 2, 34, 60, 74, 65, 33, -21, -71, -98, - -92, -77, -36, 21, 69, 106, 112, 88, 58, 29, 9, -8, -18, -24, -17, -4, - -10, -26, -47, -67, -62, -49, -26, 2, 34, 60, 74, 65, 33, 17, 16, -38, - 9, 40, -58, 27, 43, -80, 52, -2, -54, 64, -27, -17, 32, 4, -49, 53, - -22, -47, 90, -73, 17, 42, -45, 8, 23, -41, -1, 58, -74, 40, 25, -66, - 56, -19, -45, 58, -9, -39, 45, 3, -48, 55, -41, -27, 78, -66, 13, 40, - -38, 0, 29, -51, 12, 57, -79, 38, 31, -64, 40, -4, -47, 63, -16, -40, - 55, -16, -32, 45, -31, -29, 76, -64, 0, 58, -49, 4, 31, -52, 31, 5, - -35, 45, -21, 4, -5, 3, -17, -7, 55, -72, 43, 35, -88, 80, -57, 3, - 45, -62, 53, -14, -2, -17, 46, -77, 42, 23, -61, 75, -54, 39, -40, 31, - -42, 25, 11, -48, 93, -97, 62, -27, -13, 7, 0, 30, -59, 82, -74, 28, - 10, -53, 65, -47, 46, -41, 40, -48, 7, 45, -95, 127, -99, 43, -9, -25, - 40, -58, 84, -84, 78, -66, 11, 50, -96, 111, -85, 51, -26, -14, 36, -60, - 91, -84, 58, -26, -22, 56, -87, 98, -71, 47, -25, -11, 44, -84, 103, -92, - 69, -32, -3, 25, -59, 87, -90, 70, -45, 17, 16, -57, 81, -73, 50, -33, - 14, 0, -35, 75, -84, 69, -42, 8, 11, -46, 74, -69, 57, -47, 36, -26, - -20, 69, -89, 83, -58, 37, -24, -7, 41, -58, 54, -53, 53, -42, 14, 28, - -54, 52, -55, 46, -41, 22, 30, -57, 58, -64, 56, -54, 26, 31, -55, 63, - -73, 66, -68, 49, -3, -38, 61, -71, 75, -87, 69, -15, -27, 37, -55, 74, - -84, 73, -34, -5, 26, -59, 74, -85, 84, -33, -12, 30, -57, 65, -85, 86, - -40, 9, 15, -50, 69, -94, 93, -53, 15, 11, -38, 58, -86, 96, -64, 11, - 21, -30, 17, -3, -3, 0, 0, -3, -4, -4, -3, -4, -4, -5, -6, -6, - -8, -5, -6, -3, 0, 2, 4, 7, 8, 12, 12, 14, 13, 13, 12, 8, - 7, 2, 2, -4, -6, -10, -11, -12, -12, -14, -10, -9, -3, -3, 2, 3, - 3, 2, 1, 1, -3, -3, -4, -3, -3, -3, -4, 0, -3, -3, -3, 0, - -3, 0, -3, 0, 1, 0, 0, 0, 0, 0, -3, 1, -3, 1, -3, 2, - 1, 0, 0, -3, -4, -5, -9, -10, -15, -16, -17, -17, -14, -10, -3, 4, - 9, 14, 19, 24, 25, 26, 28, 30, 34, 42, 31, 9, -31, -39, -23, -15, - -17, -23, -30, -23, -12, -10, 4, 9, 19, 13, 14, 6, 0, -9, -11, -12, - -9, -8, 0, 0, 2, 1, 1, -3, -3, -5, -3, -5, -3, -4, 0, -3, - -4, -4, -3, -5, -3, -5, -3, 0, 3, 2, 7, 7, 7, 3, 0, -14, - -17, -26, -26, -28, -21, -17, -11, -10, 2, 6, 19, 18, 32, 32, 60, 69, - 98, 60, 7, -58, -8, -8, -14, -39, -30, -14, -47, -21, -45, -3, 7, 20, - 14, 31, 12, 10, -15, -5, -23, -14, -15, -4, -8, 2, 1, 7, -3, 2, - -8, -4, -6, -6, -3, 0, -6, -6, -8, -10, -11, -12, -9, -9, -4, -3, - 0, 8, 10, 12, 15, 13, 4, -10, -15, -30, -32, -30, -23, -22, -19, -14, - -4, 3, 10, 14, 26, 40, 70, 102, 127, 62, -17, -39, 9, -25, -9, -87, - -12, -16, 0, -30, -27, -19, -9, 6, 18, 21, 19, 6, 0, -9, -17, -14, - -16, -8, -6, 0, 4, 4, -5, -4, -11, -3, -6, 2, 2, 0, -6, 0, - -2, -4, -8, -14, -21, -25, -28, -32, -36, -40, -44, -48, -51, -55, -59, -63, - -67, -71, -74, -78, -82, -86, -90, -94, -98, -101, -84, -60, -38, -15, 8, 28, - 27, 23, 19, 16, 11, 21, 46, 68, 93, 109, 106, 102, 98, 95, 91, 87, - 83, 79, 75, 71, 67, 64, 60, 56, 52, 49, 45, 41, 37, 33, 30, 26, - 22, 18, 15, 11, 7, 3, -1, -5, -9, -13, -17, -20, -24, -28, -32, -35, - -39, -43, -47, -51, -54, -58, -62, -66, -69, -73, -77, -81, -85, -89, -93, -97, - -100, -105, -95, -70, -48, -23, -7, -10, -14, -17, -22, -18, 4, 26, 50, 72, - 96, 107, 103, 100, 96, 92, 88, 84, 80, 76, 72, 68, 64, 61, 57, 53, - 49, 46, 42, 38, 34, 30, 26, 23, 19, 15, 11, 8, 4, 0, -4, -8, - -11, -15, -19, -23, -27, -30, -35, -38, -43, -46, -51, -54, -58, -61, -66, -56, - -31, -9, 16, 33, 30, 26, 22, 18, 15, 11, 7, 3, -1, -5, -9, -13, - -16, -20, -24, -28, -32, -36, -40, -43, -48, -51, -55, -59, -63, -50, -26, -4, - 20, 42, 64, 67, 62, 59, 55, 51, 47, 43, 39, 35, 31, 27, 23, 20, - 16, 12, 8, 4, 0, -4, -7, -11, -15, -19, -22, -27, -17, 8, 30, 55, - 72, 69, 65, 61, 57, 54, 50, 46, 42, 38, 34, 30, 26, 22, 18, 15, - 11, 7, 3, 0, -4, -8, -12, -15, -19, -23, -27, -31, -35, -38, -42, -46, - -50, -54, -57, -61, -65, -69, -73, -77, -81, -85, -89, -92, -96, -100, -100, -79, - -64, -47, -31, -15, 0, 0, -4, -3, -6, -8, 6, 10, -8, -13, 22, 55, - 15, -58, -102, -88, -25, 51, 77, 79, 82, 19, -45, -107, -128, -88, 19, 81, - 86, 71, 35, -16, -50, -73, -55, -27, -14, 7, 77, 89, 31, -22, -27, -61, - -86, -34, 40, 55, 67, 80, 57, -1, -48, -60, -41, -46, -31, 28, 62, 47, - 43, 33, -5, -34, -45, -52, -33, 26, 66, 70, 41, 17, -34, -79, -93, -41, - -6, 22, 53, 93, 62, 17, -20, -66, -118, -88, -4, 45, 60, 69, 67, 2, - -72, -109, -95, -78, -7, 67, 101, 78, 69, 19, -56, -110, -89, -64, -19, 45, - 100, 86, 36, -11, -65, -107, -108, -41, 24, 69, 93, 111, 56, -15, -70, -81, - -88, -38, 30, 88, 90, 83, 43, -24, -81, -82, -57, -24, 38, 100, 115, 70, - 26, -25, -75, -108, -66, -20, 29, 71, 105, 67, 7, -46, -67, -83, -60, 0, - 58, 82, 81, 57, -9, -72, -99, -78, -60, -8, 54, 95, 69, 44, 0, -51, - -92, -69, -26, 18, 53, 81, 63, 6, -44, -74, -88, -79, -19, 40, 75, 75, - 72, 18, -42, -80, -74, -69, -25, 32, 76, 66, 39, 5, -41, -82, -76, -34, - 3, 42, 79, 88, 38, -12, -49, -74, -92, -48, 8, 51, 70, 83, 50, -7, - -58, -68, -65, -43, 13, 70, 82, 62, 34, -17, -72, -94, -65, -28, 17, 69, - 101, 71, 25, -21, -60, -88, -66, -13, 37, 62, 82, 68, 11, -47, -73, -79, - -66, -15, 49, 82, 76, 57, 11, -51, -88, -78, -48, -9, 49, 0, 0, 0, - 0, 0, 0, -3, -5, -5, -7, -6, -2, 5, 16, 24, 21, 17, 12, 3, - -10, -31, -44, -47, -42, -28, -2, 26, 29, 36, 35, 1, -26, -39, -52, -53, - -38, -10, -32, -41, -7, 2, 22, 65, 89, 74, 15, -16, -24, 12, 62, 39, - 6, -12, -3, 47, 48, 21, 109, 127, 119, 53, -9, 19, 9, -50, -55, -43, - -71, -46, -5, -2, -20, -12, -9, 12, -27, -66, -50, -8, -19, -58, -22, -8, - -19, -34, -42, 10, 32, -4, 4, 46, 96, 34, -51, -10, -8, -93, -70, -58, - -46, -16, -32, -30, 6, 7, -41, -29, 3, 25, 73, 67, 45, 37, 30, 83, - 0, -31, -4, -50, -28, -41, -75, -110, -53, -13, -3, 22, 14, 14, 13, 7, - 9, 38, 47, 39, 17, -8, 90, 75, -5, -29, -46, -54, -102, -66, -35, -27, - -29, -21, 32, 5, 1, 1, -2, 16, 16, 19, 30, 50, 89, 41, 6, 40, - -10, -15, -41, -46, -43, -77, -100, -100, -48, -37, -26, -4, -9, 0, 13, 36, - 70, 75, 59, 34, 12, -13, -27, 37, 71, 48, 53, 37, 7, 8, 34, 48, - 40, 31, 25, 2, -20, -15, -5, 12, -11, -49, -20, 15, -13, -42, -29, 16, - -6, -58, -28, 17, 12, -20, -11, 16, -3, -37, -14, 3, -32, -10, 40, 54, - 53, 27, -3, -5, -34, -47, -49, -90, -68, -36, -32, -31, -16, 26, 3, 0, - -2, -2, 15, 16, 19, 30, 51, 88, 40, 6, 39, -10, 3, -2, 11, -7, - 23, 19, 74, 39, 32, -13, -21, -7, -39, -44, -128, -58, -21, 52, -86, -74, - -94, 75, 61, 72, -38, 13, 59, 116, 71, -9, -33, -12, 68, -2, -35, -128, - -42, -43, 39, -78, -57, -81, 56, 59, 63, -13, 7, 69, 98, 87, -13, -9, - -24, 70, -11, -23, -128, -42, -48, 28, -68, -61, -69, 34, 64, 46, 8, -5, - 79, 82, 100, -17, 5, -29, 69, -13, -21, -122, -49, -43, 11, -55, -72, -54, - 13, 73, 30, 23, -16, 87, 72, 107, -17, 10, -26, 64, -6, -26, -109, -61, - -31, -6, -40, -86, -41, -4, 80, 17, 31, -22, 88, 70, 106, -10, 6, -16, - 53, 7, -37, -93, -76, -17, -21, -28, -99, -33, -15, 83, 12, 31, -21, 83, - 76, 98, 2, -4, -1, 41, 24, -49, -77, -89, -6, -31, -20, -106, -32, -19, - 79, 14, 23, -15, 71, 87, 87, 17, -16, 13, 30, 39, -57, -67, -97, -1, - -34, -19, -106, -38, -16, 69, 23, 11, -5, 56, 100, 75, 32, -28, 25, 22, - 50, -59, -62, -98, -2, -30, -24, -100, -52, -9, 55, 36, -4, 5, 41, 112, - 67, 43, -34, 30, 21, 55, -53, -65, -93, -11, -18, -34, -88, -69, 0, 41, - 48, -17, 12, 29, 118, 65, 49, -34, 28, 27, 53, -42, -72, -83, -23, -6, - -44, -77, -85, 5, -69, 1, -12, -29, -28, -13, 1, 9, -4, -27, -18, -5, - 11, 65, 87, 54, 59, 66, 30, 12, 8, -6, -7, 4, -7, -39, -59, -63, - -48, -23, -13, -6, 22, 61, 68, 15, -59, -87, -41, 3, 5, -10, -17, -17, - -20, -23, -20, -28, -17, -3, -10, -29, 23, 11, 25, 52, 56, 62, 80, 54, - 22, -15, -31, -38, -5, 11, -9, -7, -36, -44, -6, 52, 127, 26, -68, -125, - -105, 22, 15, -27, -27, 13, 25, 69, 28, -42, -77, -57, -70, 15, 44, 14, - 26, 57, 69, 43, 33, 41, 33, 32, 25, -50, -98, -100, -38, 24, 7, -35, - -38, -2, 76, 64, 15, -79, -93, -50, -12, 27, 45, 32, -4, 23, 6, -36, - -47, -33, -52, -15, 37, 78, 49, 40, 17, 14, 14, 70, 81, 60, -3, -4, - -12, -42, -50, -28, -20, 5, 9, 27, 46, -13, -69, -99, -88, -47, 5, -4, - -10, 17, 39, -12, -8, -21, -16, 22, 9, -9, 1, 15, 15, 33, 29, 17, - 11, 38, 72, 29, -8, -36, -27, -42, 17, -40, 25, 25, 8, -3, 14, 15, - 2, 43, 33, -2, -19, -24, -8, 2, -69, -114, -94, -77, -87, 22, 27, 19, - 24, 57, 121, 94, 40, -27, -29, 4, 28, -12, 5, -21, -28, -18, 0, -9, - 1, 36, 22, 7, 6, 12, 7, 8, 55, 6, -2, -7, -13, -12, -12, -8, - -5, -5, -1, -4, -4, -3, -1, 5, 11, 15, 18, 16, 11, 5, -5, -12, - -16, -17, -14, -10, -7, -3, -2, -3, -3, -5, -3, 2, 9, 18, 22, 23, - 18, 11, -2, -14, -20, -22, -18, -12, -8, -5, -3, -5, -6, -6, -5, 1, - 11, 22, 30, 31, 24, 15, -1, -12, -20, -23, -19, -13, -8, -3, -3, -2, - -6, -8, -9, -5, 6, 21, 32, 35, 29, 19, 1, -15, -27, -29, -25, -15, - -9, -4, -1, -2, -7, -14, -15, -10, 4, 24, 42, 48, 43, 26, 4, -20, - -36, -38, -30, -17, -7, -3, 0, -1, -4, -16, -24, -19, -3, 26, 49, 61, - 60, 40, 9, -23, -45, -52, -39, -22, -5, -2, 1, 3, -2, -18, -32, -30, - -10, 22, 55, 77, 78, 52, 15, -22, -51, -66, -52, -29, -5, 0, 2, 9, - 6, -15, -37, -42, -22, 10, 55, 89, 99, 71, 22, -20, -58, -79, -68, -35, - -8, 6, 1, 12, 13, -9, -37, -50, -35, 0, 46, 93, 116, 90, 33, -15, - -60, -89, -84, -44, -9, 10, 3, 13, 19, -3, -35, -53, -43, -12, 34, 91, - 127, 109, 46, -9, -57, -95, -96, -57, -13, 11, 7, 10, 25, 2, -2, -35, - 0, 2, 7, 12, -7, -79, -68, 2, -6, -5, 19, 40, 33, 55, 56, 17, - 32, 32, 2, -20, 5, 51, 27, -21, -13, -11, -17, -20, -6, -63, -125, -116, - -86, -59, -34, 11, 23, 20, 39, 66, 50, 47, 54, 46, 11, -4, 44, 67, - 30, 11, 16, 6, -2, 7, -4, -77, -114, -107, -70, -50, -20, 29, 26, 12, - 48, 69, 44, 47, 49, 28, -8, 9, 53, 49, 15, 9, 8, -3, -11, 7, - -33, -107, -123, -101, -62, -49, -5, 25, 6, 13, 55, 49, 32, 40, 39, 7, - -17, 18, 49, 32, 7, 8, 1, -12, -3, 7, -62, -113, -109, -74, -50, -31, - 23, 32, 13, 40, 69, 48, 46, 54, 42, 2, 1, 42, 52, 25, 10, 11, - 0, -11, 10, -10, -90, -115, -101, -64, -52, -15, 29, 16, 10, 51, 59, 41, - 46, 49, 25, -9, 15, 48, 42, 15, 10, 7, -9, -7, 16, -43, -107, -113, - -89, -60, -47, 4, 27, 4, 19, 58, 47, 38, 46, 43, 6, -9, 28, 47, - 29, 10, 11, 2, -14, 5, 5, -73, -111, -106, -73, -56, -29, 24, 22, 6, - 40, 61, 43, 43, 52, 37, -3, 6, 41, 47, 23, 12, 11, 0, -14, 1, - 3, 5, 5, 6, 8, 6, 4, 0, -4, -5, -6, -9, -9, -11, -11, -12, - -13, -13, -13, -12, -11, -9, -5, -2, -1, 1, 4, 6, 9, 11, 12, 12, - 11, 8, 5, 2, -2, -2, -2, -2, 0, -1, -1, -2, -5, -5, -5, -1, - 4, 10, 17, 20, 22, 19, 15, 7, -1, -9, -15, -19, -21, -21, -18, -16, - -13, -11, -12, -15, -19, -23, -24, -20, -13, -3, 9, 20, 34, 44, 50, 46, - 35, 21, 7, -4, -14, -20, -19, -13, -8, 2, 0, -5, -15, -28, -32, -29, - -14, 0, 11, 27, 42, 58, 59, 45, 22, 4, -15, -26, -37, -43, -42, -37, - -17, 1, 18, 23, 8, -5, -29, -47, -47, -43, -25, -5, 20, 52, 80, 92, - 76, 43, 9, -20, -35, -38, -46, -41, -29, -12, 19, 35, 22, 4, -34, -53, - -58, -40, -26, -16, 14, 47, 88, 108, 90, 50, 16, -9, -36, -51, -64, -64, - -52, -33, -1, 32, 40, 24, 3, -29, -62, -58, -65, -52, -18, 23, 68, 114, - 127, 95, 41, 1, -36, -54, -56, -68, -55, -35, -17, 19, 42, 29, 13, -16, - -46, -60, -54, -56, -47, -11, 29, 72, 116, 127, 94, 41, -3, 0, 16, 39, - 54, 46, 18, 7, -15, -36, -9, -6, -16, -5, -15, -30, -23, -35, -20, 22, - 3, -19, -20, -13, -9, 19, 23, 10, 12, 35, 66, 54, 4, -43, -58, -15, - -10, 16, 55, 18, -39, -38, -30, 2, 9, 27, 51, -32, -60, -72, -4, 32, - 71, 19, -8, 56, -2, -42, 10, 21, -6, 31, -9, -70, 8, -6, -19, -93, - -20, -5, -31, 10, 5, 56, 24, -45, 11, 66, 48, 61, 89, 49, -57, -6, - -20, -69, -104, -83, -50, 32, 10, -16, -87, -78, 30, 127, 63, -17, -91, -2, - -12, 45, 83, 30, 56, 54, 42, 7, 79, -26, -52, -64, -97, 12, -3, -107, - -99, -39, 34, 86, 19, -25, 25, 90, -8, -38, 65, 36, 10, 30, 36, 19, - -6, 38, -47, -101, -52, -45, 30, -9, -106, 18, -10, -37, 16, 100, -94, -111, - -25, -35, -12, -8, -9, 51, 24, -5, -70, -52, -52, -19, -11, 48, 93, 61, - 17, 113, 125, 73, -16, -30, -57, -78, -116, -55, -38, -10, -5, -4, 38, 31, - -3, -46, -46, -50, -20, -10, 52, 84, 48, 14, 115, 119, 64, -16, -1, 4, - 0, -9, -11, -1, 6, 2, -2, 4, -6, -10, -2, 11, 14, 3, -10, -15, - -1, 17, 4, 6, 4, -12, -18, 6, 10, 4, 6, -8, -36, 2, 3, 3, - 5, 15, -20, -17, 9, 8, 11, 17, -8, -26, 18, 2, 5, 5, 13, -24, - -8, -2, 2, 5, 7, -21, -18, 13, 5, -5, 17, 7, -14, -13, -12, 0, - 14, 3, -12, -26, 13, 3, 10, 18, 12, -15, -14, -1, 3, 19, 0, -10, - -29, 11, 4, 17, 15, 12, -24, -20, 6, 9, 22, -3, -13, -15, 9, 1, - 7, 6, 18, -19, -26, -18, 2, 22, 0, -25, -20, 15, 8, -4, 8, 31, - -12, -20, -15, 9, 33, 9, -29, -2, 27, 7, -11, 8, 20, -20, -41, -10, - 15, 35, 15, -21, 11, 49, 6, -6, 4, 3, -48, -76, -35, 14, 37, 22, - -24, 29, 68, 20, 3, 7, -5, -68, -90, -59, 19, 36, 28, -13, 59, 93, - 30, 2, 18, -25, -88, -105, -81, 13, 26, 30, -4, 88, 109, 33, 0, 22, - -30, -88, -112, -76, 17, 31, 18, 5, 94, 114, 30, -4, 0, 4, -30, -1, - 0, -2, -2, -2, -1, 4, 11, 18, 30, 7, -64, -60, -30, -7, 0, 2, - 22, 67, 117, 23, -128, -74, -30, -5, -2, 1, 19, 62, 116, 38, -123, -82, - -31, -8, -1, -1, 16, 57, 114, 52, -117, -88, -33, -10, -2, -3, 14, 52, - 112, 64, -108, -96, -35, -13, -2, -4, 12, 49, 108, 77, -99, -102, -37, -15, - -2, -5, 10, 43, 104, 86, -87, -109, -40, -18, -2, -6, 8, 40, 100, 95, - -73, -115, -42, -21, -2, -8, 7, 35, 95, 102, -59, -120, -45, -24, -2, -8, - 5, 32, 90, 109, -44, -124, -49, -26, -3, -9, 3, 28, 85, 114, -29, -126, - -53, -28, -4, -9, 2, 25, 81, 116, -13, -127, -58, -29, -6, -9, 0, 22, - 75, 119, 3, -126, -63, -31, -7, -9, -2, 19, 70, 120, 18, -124, -69, -32, - -9, -9, -3, 16, 65, 119, 34, -63, -107, -58, -23, -11, -7, 7, 46, 107, - 89, -52, -109, -62, -25, -12, -8, 5, 42, 104, 97, -41, -87, -70, -36, -18, - -11, 0, 30, 85, 100, -2, -87, -5, 11, -23, -10, -3, -20, -3, -17, -24, - -33, -26, -1, -13, -12, -6, -9, 6, 25, 19, -7, -1, 22, -6, -20, 13, - 6, -12, 26, 48, 0, -7, 34, 23, 4, 32, 23, -41, -11, 49, -3, -30, - 35, 45, -14, -2, 62, 18, -44, -2, 26, -4, -28, -6, 16, 2, -9, -9, - 2, 18, 24, 9, -25, -57, -36, 30, 38, -21, -63, -37, 9, 37, 40, 0, - -56, -56, 3, 39, 20, -23, -52, -58, -46, 8, 67, 56, -18, -61, -18, 36, - 70, 95, 73, -35, -128, -127, -73, -17, 32, 48, 29, 28, 60, 106, 113, 91, - 36, -26, -67, -90, -91, -71, -44, -25, -13, 9, 36, 51, 69, 70, 32, -40, - -92, -99, -70, -25, 12, 29, 21, 3, -9, 10, 21, 12, -11, -22, -27, -44, - -23, 10, 30, 25, 24, 39, 18, 3, 8, 19, -1, -19, -8, 6, 5, 13, - 50, 43, 37, 36, 40, 37, 4, 12, -10, -33, -31, -25, -1, 1, 7, 14, - 10, -4, -11, -10, -6, -19, -42, -28, -54, -51, -18, -5, 3, 2, -10, -10, - 10, 28, 27, 16, 5, -5, -24, -26, -7, -14, -25, -16, 53, 33, -49, -30, - 53, 50, -24, -34, 40, 82, -118, -23, 120, -56, -70, -72, 106, -10, -48, 3, - 87, 28, -126, -16, 81, 4, -84, -51, 38, 62, -32, 36, 84, -12, -41, 72, - -42, -60, -64, 4, 77, -24, -79, -9, 122, 6, -94, 52, 43, 35, 13, -62, - -7, -89, 24, -30, 16, 29, 56, -59, 83, 42, 31, 36, -76, -2, -128, -2, - 45, 27, -104, -31, 66, 21, 19, 36, 121, 11, -76, -26, -93, 34, 24, -34, - -65, -53, 53, 17, 73, 46, 75, -9, -64, -21, -103, 41, 51, -41, -83, -43, - 108, 6, -11, 28, 127, 2, -84, -38, -72, 39, 17, -23, -15, -67, 37, 6, - 29, 64, 79, 17, -39, -39, -120, 55, 23, -17, -62, -51, 81, 23, 20, 24, - 99, -38, -99, 4, 17, -66, -41, -33, 63, 62, 16, 53, 91, 56, -65, -36, - -99, -38, 14, -47, -29, -38, 35, 83, 9, 48, 83, 62, -45, -31, -103, -49, - 14, 2, 6, -33, 33, -4, -1, 34, -93, 60, -49, 68, -21, 41, -38, -38, - 27, -87, 127, -34, 38, -3, -34, -2, -85, 79, -24, 4, 75, -23, 11, -70, - 1, -6, -6, 63, -48, 76, -71, 2, -7, -15, 46, -32, 48, -25, -5, 10, - -31, 18, -23, 5, 6, 17, 11, 3, 24, -46, -21, -1, -5, 31, 1, 36, - -23, -11, -4, -29, 14, -5, 29, 9, -2, -2, -20, -2, -15, 13, 7, 4, - 15, -11, 4, -13, -1, 1, -13, 15, -6, 9, 9, -2, -4, -11, -2, -11, - 7, 12, 9, 5, -6, -6, -16, -2, 3, 6, 13, 1, 7, -14, -3, -11, - -1, 8, 0, 18, -3, -3, -6, -13, 0, 4, 2, 9, 2, 2, -6, -4, - -1, -8, 2, 4, 2, 7, -4, 2, 1, -7, -3, -2, 0, 2, 8, -2, - 2, -1, -7, -3, -1, 3, 4, 3, 3, -3, -4, -4, 0, 2, 1, 5, - -1, -2, 1, -4, -1, 1, 0, 2, -5, -8, -3, -3, -9, -2, -2, 5, - 10, 16, 11, 5, -3, -5, -1, -4, -6, -7, -15, -18, -27, -31, -21, -11, - 22, 56, 90, 66, -17, -25, -25, 0, -12, -15, -25, -32, -39, -37, -26, 6, - 33, 65, 69, 44, -1, -13, -12, 1, 0, -9, -14, -22, -40, -44, -42, -23, - 8, 39, 60, 84, 57, -16, -25, -19, 2, -8, -11, -18, -32, -51, -45, -32, - -6, 28, 54, 85, 96, -5, -29, -23, -7, -10, -17, -16, -28, -53, -44, -40, - -7, 22, 52, 82, 112, 17, -37, -25, -20, -11, -18, -10, -23, -33, -51, -40, - -23, 10, 45, 65, 96, 64, -21, -35, -34, -19, -20, -13, -5, -14, -35, -41, - -39, -17, 9, 45, 58, 82, 98, -2, -57, -47, -23, -12, -11, -2, -18, -28, - -39, -36, -24, -1, 26, 57, 84, 121, 23, -65, -50, -40, -12, -11, -4, -14, - -20, -34, -32, -27, -5, 19, 56, 80, 127, 15, -66, -50, -2, -5, -5, 2, - 10, 8, -7, -16, -9, 6, 17, 8, -19, -20, 14, 38, 34, 20, -5, 1, - 50, 37, -50, -54, -66, -32, 32, -3, -13, -18, -17, 46, 89, -17, -62, 45, - 127, 57, -57, -67, -109, -11, 88, -31, -90, -88, -27, 63, 97, -27, -105, -44, - 65, 110, 60, -12, -30, -27, 17, 49, -2, -39, -6, 30, -16, -36, -43, 32, - 67, -54, -58, -38, -21, 47, 95, 76, -33, -78, -62, 10, 107, 24, -106, -107, - 12, 52, 27, 78, 8, -75, 25, 6, -26, 59, 32, -17, -7, -19, 11, 32, - -51, -52, 41, -9, -13, 94, 2, -65, 5, -46, -86, 34, 62, 85, 29, -93, - -89, -29, 44, 35, -31, -33, -19, 56, 127, 7, -9, -62, -52, 23, 46, 44, - -56, -16, -55, -46, 22, 83, -13, -42, -7, 13, 81, 49, 3, -9, -30, -47, - -30, 3, 23, 6, -7, -20, -44, 10, 96, -13, 0, 16, 31, 47, 61, 75, - 87, 98, 107, 115, 121, 125, 127, 127, 125, 121, 116, 108, 99, 88, 75, 62, - 47, 32, 16, 0, -16, -31, -47, -61, -75, -87, -98, -108, -116, -122, -126, -128, - -128, -126, -123, -117, -109, -100, -89, -77, -64, -49, -34, -18, -2, 14, 29, 45, - 59, 73, 86, 97, 106, 114, 121, 125, 127, 127, 126, 122, 116, 109, 100, 89, - 77, 63, 49, 34, 18, 2, -14, -30, -45, -60, -73, -86, -97, -107, -115, -121, - -126, -128, -128, -127, -123, -118, -110, -101, -91, -79, -65, -51, -36, -20, -4, 12, - 28, 43, 58, 72, 84, 96, 106, 114, 120, 124, 127, 127, 126, 122, 117, 109, - 100, 90, 78, 64, 50, 35, 19, 3, -13, -29, -44, -59, -73, -85, -97, -107, - -115, -121, -125, -128, -128, -127, -123, -118, -110, -101, -91, -79, -65, -51, -36, -20, - -4, 12, 2, 5, 5, 0, -16, -9, -2, -19, 4, 18, 6, 10, -16, -21, - 22, -2, 3, -7, 21, 43, -57, -37, 46, -39, -31, 78, 23, -23, -10, -10, - -7, -52, 44, 50, -44, 9, -9, -46, 47, 12, -75, 40, 45, 32, -10, -25, - -15, -45, 24, 44, -40, -10, 18, -48, -29, 63, 44, -30, -1, 83, -45, -94, - 96, 0, -103, 21, 29, -42, 21, 80, -25, -15, 26, 39, -79, -18, 73, -111, - -45, 61, 29, 55, -22, -77, 40, 9, -72, 78, 35, -1, -1, -69, 12, -50, - -42, 123, 45, -7, -39, -86, 3, 51, 30, 28, -4, -33, -41, -66, 54, -8, - -30, 127, -7, -30, -32, -39, 48, -65, 20, 121, -33, -14, -53, -32, 46, -24, - 36, 98, -49, -39, -61, 1, 49, -54, 65, 59, -83, -11, -49, 32, 39, -72, - 113, 59, -83, -11, -49, 32, 39, -72, 113, 59, -2, -4, -4, -7, -8, -8, - -7, -4, -3, -2, 1, 4, 6, 6, 6, 4, 2, 0, -2, -3, -4, -7, - -7, -5, -3, 0, 4, 9, 11, 11, 9, 7, 4, 1, -3, -7, -9, -12, - -13, -16, -19, -19, -13, -2, 9, 17, 19, 20, 18, 13, 8, 3, 0, -2, - -3, -8, -14, -21, -25, -21, -9, 4, 15, 23, 28, 25, 20, 9, -7, -21, - -14, 3, 3, -18, -38, -49, -32, -7, 8, 14, 26, 37, 42, 37, 26, 7, - -18, -27, -5, 8, -7, -24, -34, -40, -32, -19, 1, 17, 42, 56, 58, 40, - -19, -81, 1, 67, 0, -60, -49, -27, -24, 0, -18, -24, -8, 37, 67, 70, - 59, 34, -42, -81, 7, 51, -12, -54, -37, -14, -25, -14, -16, -24, 4, 55, - 75, 102, 52, -102, -104, 90, 30, -48, -76, 1, -14, 0, -2, -2, -3, -5, - -7, -8, -8, -7, -6, -4, -2, 0, 1, 3, 4, 6, 6, 6, 6, 5, - 4, 3, 1, 0, 0, -3, -4, -7, -10, -11, -11, -8, -6, 1, 5, 6, - 8, 11, 11, 8, 5, 5, 2, 1, 0, 0, -2, 1, -4, -16, -36, -27, - -5, 6, -3, -6, 0, -6, 2, 27, 24, 19, 16, 9, 3, 0, -4, 2, - 1, 9, 19, -14, -79, -32, 22, -4, -22, -14, 25, 8, -11, 13, 28, 16, - 19, 16, 1, -2, -4, -3, -6, 28, 38, -59, -111, 25, 16, -16, -40, 16, - 24, -20, 4, 24, 29, 17, 27, 13, 1, -10, -6, -10, -8, 43, 61, -68, - -128, 28, 12, -15, -39, 12, 21, -28, 12, 37, 25, 12, 27, 11, 0, -16, - -2, -12, -11, 52, 67, -68, 35, 54, 47, 4, -60, -92, -68, -27, 0, -2, - -18, -20, -6, 2, -8, -15, -11, -3, 3, -7, -11, -6, -2, 7, 15, 18, - 19, 22, 27, 40, 40, 29, 20, 24, 28, 34, 30, 25, 32, 20, 14, 9, - 16, 19, 17, 6, -1, 3, -6, -14, -23, -18, -7, 1, -18, -18, -24, -25, - -24, -35, -35, -35, -21, -12, -14, -21, -17, -29, -24, -31, -34, -9, -11, -9, - -3, -7, -7, 6, -17, -22, 7, 16, 14, -4, -11, 10, 33, 24, 21, 27, - 3, -19, -25, -18, 17, 50, 48, 49, 61, 31, -48, -103, -73, 9, 56, 70, - 82, 109, 127, 71, -46, -127, -96, -30, -4, 9, 47, 103, 117, 60, -39, -110, - -119, -94, -64, -40, -4, 35, -8, -14, -9, -5, -4, -3, 6, 18, 19, 6, - -14, -20, -12, -3, -3, -6, 2, 21, 28, 13, -16, -26, -14, -6, -6, -7, - 1, 27, 36, 18, -15, -27, -15, -3, -2, -10, -6, 25, 41, 22, -17, -34, - -18, -4, -3, -16, -12, 29, 56, 31, -24, -44, -20, -4, -1, -19, -22, 31, - 73, 47, -27, -62, -25, -2, 4, -21, -36, 26, 91, 61, -27, -79, -33, 0, - 10, -18, -49, 14, 106, 82, -24, -94, -40, 8, 14, -12, -59, 1, 112, 105, - -19, -106, -51, 12, 16, -4, -63, -13, 110, 127, -12, -114, -51, 0, -1, -4, - -8, -11, -8, -2, 0, 7, 14, 21, 46, 92, 120, 76, -36, -121, -119, -73, - -31, -7, 3, 2, -4, -6, 2, 22, 60, 106, 116, 43, -72, -128, -105, -57, - -21, -3, 3, -1, -6, -5, 7, 33, 76, 117, 102, 5, -100, -127, -89, -43, - -13, 0, 2, -3, -7, -2, 14, 46, 92, 122, 79, -34, -118, -118, -72, -31, - -8, 1, 0, -5, -7, 2, 23, 61, 107, 118, 46, -69, -126, -104, -56, -21, - -4, 1, 0, -4, -5, 0, 16, 48, 87, 103, 60, -25, -87, -94, -58, -20, - -4, -11, 12, 24, 31, -36, 29, -9, 2, -38, -5, -5, -10, -33, -10, -24, - -20, -39, -36, -18, -38, -58, -5, -22, -15, -15, 90, -42, -3, -8, 25, 6, - 28, 25, 17, 25, -16, 28, 80, 22, 12, -6, 35, 22, 8, -7, 28, 29, - -19, 7, 8, -1, -29, -23, 10, -23, -13, -26, -17, -20, -33, -41, -19, -28, - -64, -13, -21, -13, -29, 54, 25, -20, -36, 42, -4, 13, 52, -8, 47, -14, - 9, 42, 88, -12, 20, -5, 43, 22, -11, 127, 127, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, -128, - 1, 4, 7, 10, 12, 16, 19, 22, 25, 28, 31, 35, 38, 42, 45, 49, - 51, 56, 58, 63, 65, 70, 73, 78, 80, 85, 87, 93, 95, 100, 102, 108, - 109, 117, 114, 127, 85, -63, -60, -64, -60, -62, -59, -61, -59, -61, -58, -60, - -58, -59, -58, -58, -57, -57, -55, -55, -54, -54, -52, -51, -50, -49, -47, -46, - -44, -43, -41, -40, -37, -36, -34, -32, -30, -28, -25, -24, -21, -19, -16, -14, - -11, -9, -6, 1, 1, 4, 7, 10, 12, 16, 19, 22, 25, 28, 31, 35, - 38, 42, 45, 49, 51, 56, 58, 63, 65, 70, 73, 78, 80, 85, 87, 93, - 95, 100, 102, 108, 109, 117, 114, 127, 85, -63, -60, -64, -60, -62, -59, -61, - -59, -61, -58, -60, -58, -59, -58, -58, -57, -57, -55, -55, -54, -54, -52, -51, - -50, -49, -47, -46, -44, -43, -41, -40, -37, -36, -34, -32, -30, -28, -25, -24, - -21, -19, -16, -14, -11, -9, -6, 1, -3, -19, -24, -14, -8, -19, -12, -10, - -5, -12, -50, -19, 23, 35, 4, -20, -7, -26, 9, 40, 69, 16, -88, -69, - -38, -32, -27, 41, 65, 55, 18, -40, -38, -20, 66, 127, 121, 57, -23, -55, - -48, 13, 53, 31, -20, -38, -13, 10, 8, 0, 12, 17, 13, 2, -1, -3, - -3, 6, 13, 7, -17, -24, -12, 4, 3, -10, -20, -32, -22, -18, -12, -3, - 6, 16, 22, 29, 30, 27, 20, 11, 0, -7, -12, -11, -5, 0, -3, -14, - -20, -16, -9, -9, -17, -25, -29, -31, -33, -35, -33, -29, -25, -22, -20, -17, - -14, -13, -12, -11, -9, -10, -13, -15, -11, -5, 3, 9, 10, 9, 9, 12, - 18, 30, 50, 80, 119, 127, 102, 82, 77, 60, 37, 5, -34, -70, -84, -83, - -74, -60, -46, -29, -12, -2, 6, -23, 28, -20, 50, 50, -14, 14, -28, -2, - 28, 52, -25, -13, -52, 43, -41, -9, -26, 36, -25, -20, -17, 3, -11, 38, - 30, -61, 12, -6, 5, 45, 41, -4, 4, -20, -12, 45, 33, -11, -29, -44, - 27, -17, -36, -1, 17, -11, -31, -12, 4, -10, 37, 20, -39, -23, 0, -104, - -55, -11, 24, 33, 30, 7, -15, -31, -30, -25, -23, -20, -9, 10, 31, 59, - 91, 111, 115, 92, 51, 7, -33, -64, -81, -81, -71, -51, -22, 16, 52, 74, - 82, 81, 68, 38, 0, -40, -81, -112, -124, -102, -57, -11, 0, 7, -23, -58, - -85, -100, -104, -100, -92, -81, -69, -57, -45, -33, -22, -11, -1, 8, 18, 27, - 37, 49, 62, 79, 99, 118, 124, 111, 84, 53, 26, 5, -8, -14, -15, -12, - -6, 2, 12, 21, 28, 26, 9, -22, -58, -20, 7, 10, 21, -14, 9, 22, - 57, 62, 127, 56, 28, 26, -28, 10, -81, -31, -81, -35, -19, -55, -27, -4, - -4, 23, 49, 88, 85, 22, 1, 0, -3, 18, -22, -12, -39, -14, -47, -67, - -53, -53, -33, -20, 8, -22, 25, 30, 6, -19, -62, -19, 10, 83, 57, -67, - -88, -52, 63, 127, 42, -63, -121, -70, 82, 111, 46, -43, -114, -35, 45, 73, - 39, -19, -54, -41, 9, 49, 24, -16, -14, -9, -6, 10, 8, -22, 25, 30, - 6, -19, -62, -19, 10, 83, 57, -67, -88, -52, 63, 127, 42, -63, -121, -70, - 82, 111, 46, -43, -114, -35, 45, 73, 39, -19, -54, -41, 9, 49, 24, -16, - -14, -9, -6, 10, 8, -22, 25, 30, 6, -19, -62, -19, 10, 83, 57, -67, - -88, -52, 63, 127, 42, -63, -121, -70, 82, 111, 46, -43, -114, -35, 45, 73, - 39, -19, -54, -41, 9, 49, 24, -16, -14, -9, -6, 10, -18, -15, 80, 127, - 20, 18, 72, 60, -36, 22, 33, -73, -105, -27, 29, 25, 8, 43, 23, -22, - -35, -14, -8, -34, -25, -5, -18, -46, -13, -28, -3, -19, -10, -28, -10, 17, - -18, 96, 127, 123, 127, 126, 126, 95, 61, 22, -17, -56, -95, -118, -123, -128, - -128, -128, -128, -128, -128, -128, -128, -124, -93, -55, -17, 25, 62, 100, 107, 119, - 119, 127, 41, -4, -4, -10, -27, -62, -102, -128, -117, -85, -76, -49, -25, -7, - 15, 24, 14, 0, -9, -12, -3, 33, 81, 105, 111, 101, 80, 62, 45, 30, - 16, 8, 1, -4, 126, 86, -44, -68, -88, -63, 4, 84, 127, 14, -29, -51, - -127, -47, 58, 87, 82, 24, -17, -112, -113, 18, 46, 72, 102, 19, -72, -118, - -51, 9, 27, 126, 19, -53, -114, -108, 15, 122, 111, 21, -71, -70, 5, 59, - 83, 23, -72, -84, -49, 12, 37, 38, -28, -65, -26, 7, -2, 11, 5, 23, - 68, 19, 27, -54, 15, -24, -31, 46, 71, 81, -24, -33, -87, -41, -71, -61, - -70, -36, -44, -3, 12, -25, -20, 20, 68, 85, 127, 15, 50, -5, 27, 51, - 82, 106, 127, 118, 101, 92, 74, 52, 39, 37, 14, -41, -105, -108, -94, -119, - -124, -93, -57, -40, -37, -45, -51, -41, -5, 51, 127, 127, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - -128, -17, -22, -96 -}; - -const EAS_U32 eas_sampleLengths[] = -{ - 11754, 10954, 10295, 9922, 7489, 5779, 5462, 3913, - 3779, 3093, 3057, 3024, 2818, 2776, 2171, 2168, - 2052, 1902, 1835, 1614, 1603, 1528, 1517, 1480, - 1455, 1424, 1387, 1302, 1262, 1254, 1230, 1227, - 1185, 1181, 1178, 1168, 1132, 1132, 1120, 1034, - 1033, 1018, 994, 964, 926, 907, 886, 881, - 866, 830, 817, 816, 813, 749, 748, 739, - 720, 652, 610, 610, 583, 564, 561, 556, - 549, 542, 535, 530, 530, 516, 508, 492, - 478, 461, 448, 437, 431, 423, 418, 402, - 403, 400, 394, 387, 387, 367, 357, 347, - 347, 341, 336, 334, 329, 325, 312, 294, - 284, 277, 265, 255, 233, 230, 213, 207, - 205, 194, 193, 184, 181, 181, 167, 164, - 158, 152, 152, 145, 139, 128, 103, 100, - 88, 87, 84, 84, 72, 71, 55, 46, - 45, 43, 40, 40, 40, 37, 35, 32, - 32, 30, 29, 27, 23, 22, 21, 21, - 21, 21, 20 -}; - -const EAS_U32 eas_sampleOffsets[] = -{ - 0x00000000, 0x00002dea, 0x000058b4, 0x000080eb, 0x0000a7ad, 0x0000c4ee, 0x0000db81, 0x0000f0d7, - 0x00010020, 0x00010ee3, 0x00011af8, 0x000126e9, 0x000132b9, 0x00013dbb, 0x00014893, 0x0001510e, - 0x00015986, 0x0001618a, 0x000168f8, 0x00017023, 0x00017671, 0x00017cb4, 0x000182ac, 0x00018899, - 0x00018e61, 0x00019410, 0x000199a0, 0x00019f0b, 0x0001a421, 0x0001a90f, 0x0001adf5, 0x0001b2c3, - 0x0001b78e, 0x0001bc2f, 0x0001c0cc, 0x0001c566, 0x0001c9f6, 0x0001ce62, 0x0001d2ce, 0x0001d72e, - 0x0001db38, 0x0001df41, 0x0001e33b, 0x0001e71d, 0x0001eae1, 0x0001ee7f, 0x0001f20a, 0x0001f580, - 0x0001f8f1, 0x0001fc53, 0x0001ff91, 0x000202c2, 0x000205f2, 0x0002091f, 0x00020c0c, 0x00020ef8, - 0x000211db, 0x000214ab, 0x00021737, 0x00021999, 0x00021bfb, 0x00021e42, 0x00022076, 0x000222a7, - 0x000224d3, 0x000226f8, 0x00022916, 0x00022b2d, 0x00022d3f, 0x00022f51, 0x00023155, 0x00023351, - 0x0002353d, 0x0002371b, 0x000238e8, 0x00023aa8, 0x00023c5d, 0x00023e0c, 0x00023fb3, 0x00024155, - 0x000242e7, 0x0002447a, 0x0002460a, 0x00024794, 0x00024917, 0x00024a9a, 0x00024c09, 0x00024d6e, - 0x00024ec9, 0x00025024, 0x00025179, 0x000252c9, 0x00025417, 0x00025560, 0x000256a5, 0x000257dd, - 0x00025903, 0x00025a1f, 0x00025b34, 0x00025c3d, 0x00025d3c, 0x00025e25, 0x00025f0b, 0x00025fe0, - 0x000260af, 0x0002617c, 0x0002623e, 0x000262ff, 0x000263b7, 0x0002646c, 0x00026521, 0x000265c8, - 0x0002666c, 0x0002670a, 0x000267a2, 0x0002683a, 0x000268cb, 0x00026956, 0x000269d6, 0x00026a3d, - 0x00026aa1, 0x00026af9, 0x00026b50, 0x00026ba4, 0x00026bf8, 0x00026c40, 0x00026c87, 0x00026cbe, - 0x00026cec, 0x00026d19, 0x00026d44, 0x00026d6c, 0x00026d94, 0x00026dbc, 0x00026de1, 0x00026e04, - 0x00026e24, 0x00026e44, 0x00026e62, 0x00026e7f, 0x00026e9a, 0x00026eb1, 0x00026ec7, 0x00026edc, - 0x00026ef1, 0x00026f06, 0x00026f1b -}; - -/*---------------------------------------------------------------------------- - * S_EAS - *---------------------------------------------------------------------------- -*/ -const S_EAS easSoundLib = -{ - 0x01534145, - 0x00105622, - eas_banks, - eas_programs, - eas_regions, - eas_articulations, - eas_sampleLengths, - eas_sampleOffsets, - eas_samples, - 0, - 1, - 1, - 364, - 184, - 147, - 0 -}; /* end S_EAS */ - -/*---------------------------------------------------------------------------- - * Statistics - * - * Number of banks: 1 - * Number of programs: 1 - * Number of regions: 364 - * Number of articulations: 184 - * Number of samples: 147 - * Size of sample pool: 159412 - *---------------------------------------------------------------------------- -*/ -/* end C:\Sonic\Trunk\EASLib\WTLibrary\wt_22khz.c */ + * + *---------------------------------------------------------------------------- + * Revision Control: + * $Revision: 960 $ + * $Date: 2009-03-18 15:08:29 -0500 (Wed, 18 Mar 2009) $ + *---------------------------------------------------------------------------- +*/ + +#include "eas_sndlib.h" + +/*---------------------------------------------------------------------------- + * Articulations + *---------------------------------------------------------------------------- +*/ +const S_ARTICULATION eas_articulations[] = +{ + { /* articulation 0 */ + { 32767, 30725, 0, 30725 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 1 */ + { 32767, 26863, 0, 26863 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 2 */ + { 32767, 30484, 0, 30668 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 3 */ + { 32767, 26439, 0, 26439 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 4 */ + { 32767, 0, 32767, 32715 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 5 */ + { 32767, 21333, 0, 21333 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 6 */ + { 32767, 31882, 0, 31938 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 7 */ + { 32767, 32663, 32767, 32663 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 8 */ + { 32767, 0, 32767, 0 }, + { 32767, 1902, 0, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 9 */ + { 32767, 32349, 0, 32349 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 10 */ + { 32767, 0, 32767, 17213 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, -1 + }, + { /* articulation 11 */ + { 32767, 31730, 0, 31730 }, + { 32767, 761, 0, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, -44 + }, + { /* articulation 12 */ + { 32767, 23749, 0, 23749 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 56 + }, + { /* articulation 13 */ + { 32767, 31730, 0, 31730 }, + { 32767, 761, 0, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, -31 + }, + { /* articulation 14 */ + { 9511, 21333, 0, 21333 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 56 + }, + { /* articulation 15 */ + { 32767, 31617, 0, 31617 }, + { 32767, 761, 0, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, -6 + }, + { /* articulation 16 */ + { 32767, 32123, 0, 32194 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 56 + }, + { /* articulation 17 */ + { 32767, 31550, 0, 31550 }, + { 32767, 761, 0, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 6 + }, + { /* articulation 18 */ + { 32767, 31391, 0, 31391 }, + { 32767, 951, 0, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 31 + }, + { /* articulation 19 */ + { 32767, 31964, 0, 31964 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 25 + }, + { /* articulation 20 */ + { 32767, 31056, 0, 31056 }, + { 32767, 951, 0, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 63 + }, + { /* articulation 21 */ + { 32767, 32289, 0, 32271 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, -37 + }, + { /* articulation 22 */ + { 19021, 31882, 0, 31911 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, -37 + }, + { /* articulation 23 */ + { 32767, 31988, 0, 32032 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, -37 + }, + { /* articulation 24 */ + { 32767, 0, 32767, 32663 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 12 + }, + { /* articulation 25 */ + { 32767, 31352, 0, 31352 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, -25 + }, + { /* articulation 26 */ + { 32767, 0, 32767, 32663 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 25 + }, + { /* articulation 27 */ + { 32767, 31817, 0, 31781 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, -25 + }, + { /* articulation 28 */ + { 32767, 30725, 0, 30725 }, + { 32767, 95, 0, 0 }, + 0, 0, 951, 240, 0, 0, 0, 0, -56 + }, + { /* articulation 29 */ + { 32767, 32230, 0, 32218 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, -37 + }, + { /* articulation 30 */ + { 32767, 26439, 0, 26439 }, + { 32767, 3804, 0, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 50 + }, + { /* articulation 31 */ + { 32767, 23749, 0, 23749 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, -50 + }, + { /* articulation 32 */ + { 32767, 29434, 0, 29434 }, + { 32767, 3804, 0, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, -50 + }, + { /* articulation 33 */ + { 32767, 30240, 0, 30234 }, + { 32767, 3804, 0, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, -44 + }, + { /* articulation 34 */ + { 32767, 32558, 0, 32558 }, + { 32767, 254, 0, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 25 + }, + { /* articulation 35 */ + { 32767, 0, 32767, 32663 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, -63 + }, + { /* articulation 36 */ + { 3804, 23749, 0, 23749 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, -63 + }, + { /* articulation 37 */ + { 32767, 23749, 0, 23749 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, -59 + }, + { /* articulation 38 */ + { 32767, 30725, 0, 30725 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 50 + }, + { /* articulation 39 */ + { 32767, 28809, 0, 28809 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 44 + }, + { /* articulation 40 */ + { 1902, 30725, 0, 30725 }, + { 32767, 380, 0, 0 }, + 0, 0, 951, -100, 0, 0, 0, 0, 44 + }, + { /* articulation 41 */ + { 32767, 9042, 0, 9042 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 25 + }, + { /* articulation 42 */ + { 32767, 29889, 0, 29889 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 63 + }, + { /* articulation 43 */ + { 32767, 30240, 0, 30234 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 63 + }, + { /* articulation 44 */ + { 19021, 19970, 0, 19970 }, + { 951, 32767, 32767, 0 }, + 0, 0, 951, 100, 0, 0, 0, 0, -25 + }, + { /* articulation 45 */ + { 3804, 17213, 0, 17213 }, + { 951, 32767, 32767, 0 }, + 0, 0, 951, 500, 0, 0, 0, 0, -25 + }, + { /* articulation 46 */ + { 32767, 17213, 0, 17213 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, -56 + }, + { /* articulation 47 */ + { 32767, 30725, 0, 30725 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, -56 + }, + { /* articulation 48 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 49 */ + { 32767, 31180, 0, 31180 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 50 */ + { 19021, 31964, 0, 32071 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 51 */ + { 32767, 29669, 0, 29669 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 52 */ + { 32767, 31742, 0, 31352 }, + { 32767, 294, 0, 0 }, + 0, 0, 951, 0, 10000, 7121, 0, 0, 0 + }, + { /* articulation 53 */ + { 32767, 0, 32767, 31391 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 1555, 0, -2300, 11920, 0, 0, 0 + }, + { /* articulation 54 */ + { 1174, 0, 32767, 31988 }, + { 32767, 127, 0, 0 }, + 0, 0, 1555, 0, 2000, 10721, 0, 8, 15 + }, + { /* articulation 55 */ + { 1174, 0, 32767, 31988 }, + { 951, 127, 0, 0 }, + 0, 0, 1555, 0, 2000, 9023, 0, 5, 15 + }, + { /* articulation 56 */ + { 7608, 0, 32767, 30237 }, + { 32767, 69, 5898, 0 }, + 0, 0, 1555, 0, 6000, 9080, 0, 0, -2 + }, + { /* articulation 57 */ + { 32767, 0, 32767, 29337 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 1555, 0, 0, 0, 0, 0, 1 + }, + { /* articulation 58 */ + { 5141, 0, 32767, 30194 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 1555, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 59 */ + { 32767, 32558, 0, 26439 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 60 */ + { 32767, 32349, 0, 26439 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 61 */ + { 32767, 32072, 0, 32072 }, + { 32767, 95, 0, 0 }, + 0, 34, 989, 0, 2400, 9521, 0, 0, 0 + }, + { /* articulation 62 */ + { 32767, 30234, 0, 30234 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 11738, 0, 16, 0 + }, + { /* articulation 63 */ + { 32767, 32349, 0, 30073 }, + { 32767, 634, 0, 0 }, + 0, 34, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 64 */ + { 32767, 31730, 0, 31476 }, + { 32767, 634, 0, 0 }, + 0, 34, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 65 */ + { 32767, 32418, 0, 25329 }, + { 32767, 95, 0, 0 }, + 0, 34, 989, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 66 */ + { 32767, 32052, 0, 31964 }, + { 32767, 634, 0, 0 }, + 0, 34, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 67 */ + { 32767, 31938, 0, 31938 }, + { 32767, 634, 0, 0 }, + 0, 34, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 68 */ + { 9511, 32663, 18820, 23749 }, + { 1902, 57, 13107, 0 }, + 0, 0, 989, 0, 6000, 5535, 0, 4, 0 + }, + { /* articulation 69 */ + { 32767, 31754, 0, 31730 }, + { 32767, 1902, 0, 0 }, + 0, 52, 989, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 70 */ + { 127, 32686, 3811, 32349 }, + { 95, 38, 32767, 0 }, + 0, 0, 989, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 71 */ + { 4755, 32663, 3566, 28809 }, + { 3804, 32767, 32767, 0 }, + 0, 0, 989, 100, 0, 11919, 0, 0, 0 + }, + { /* articulation 72 */ + { 32767, 31935, 0, 31935 }, + { 32767, 335, 0, 0 }, + 0, 17, 989, 0, 7000, 9023, 0, 0, 0 + }, + { /* articulation 73 */ + { 32767, 31391, 0, 31391 }, + { 32767, 335, 0, 0 }, + 0, 2, 951, 0, 7000, 9023, 0, 0, 0 + }, + { /* articulation 74 */ + { 32767, 32628, 6208, 31935 }, + { 380, 95, 0, 0 }, + 0, 0, 989, 0, 3840, 8302, 0, 8, 0 + }, + { /* articulation 75 */ + { 32767, 32072, 0, 32171 }, + { 32767, 380, 0, 0 }, + 0, 0, 989, 0, 5000, 8321, 0, 0, 0 + }, + { /* articulation 76 */ + { 32767, 31935, 0, 31935 }, + { 32767, 380, 0, 0 }, + 0, 0, 951, 0, 5000, 7934, 0, 0, 0 + }, + { /* articulation 77 */ + { 32767, 32117, 0, 30685 }, + { 32767, 63, 0, 0 }, + 0, 17, 989, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 78 */ + { 32767, 32245, 0, 23749 }, + { 32767, 1902, 0, 0 }, + 0, 172, 989, 0, 1000, 11107, 0, 0, 0 + }, + { /* articulation 79 */ + { 32767, 32663, 6208, 31935 }, + { 95, 95, 0, 0 }, + 0, 34, 1622, 0, 3560, 8834, 1, 8, 0 + }, + { /* articulation 80 */ + { 32767, 32362, 0, 26439 }, + { 32767, 190, 0, 0 }, + 0, 17, 989, 0, 6000, 9907, 0, 0, 0 + }, + { /* articulation 81 */ + { 32767, 32245, 0, 23749 }, + { 32767, 63, 0, 0 }, + 0, 17, 989, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 82 */ + { 32767, 31730, 18820, 9042 }, + { 32767, 32767, 32767, 0 }, + 0, 17, 989, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 83 */ + { 32767, 32715, 128, 32168 }, + { 32767, 127, 0, 0 }, + 0, 0, 989, 0, 0, 11920, 0, 8, 0 + }, + { /* articulation 84 */ + { 32767, 32072, 0, 32072 }, + { 32767, 67, 0, 0 }, + 3, 0, 572, 0, 5000, 5535, 0, 0, 0 + }, + { /* articulation 85 */ + { 3804, 32663, 18820, 23749 }, + { 32767, 2024, 0, 0 }, + 10, 34, 1008, -30, 0, 0, 0, 0, 0 + }, + { /* articulation 86 */ + { 19021, 32663, 18820, 23749 }, + { 761, 95, 0, 0 }, + 0, 34, 989, 0, 4473, 7131, 0, 8, 0 + }, + { /* articulation 87 */ + { 1902, 32628, 6208, 32171 }, + { 634, 38, 16384, 0 }, + 0, 0, 989, 0, 2987, 7877, 0, 12, 0 + }, + { /* articulation 88 */ + { 32767, 32593, 0, 31935 }, + { 32767, 95, 0, 0 }, + 0, 0, 1162, 0, 4053, 7930, 2, 12, 0 + }, + { /* articulation 89 */ + { 380, 32684, 6208, 31935 }, + { 32767, 112, 0, 0 }, + 0, 0, 989, 0, 0, 8887, 0, 0, 0 + }, + { /* articulation 90 */ + { 19021, 32663, 18820, 23749 }, + { 1268, 95, 0, 0 }, + 0, 34, 989, 0, 5113, 7981, 0, 4, 0 + }, + { /* articulation 91 */ + { 1902, 32663, 6208, 30725 }, + { 1902, 127, 0, 0 }, + 0, 34, 989, 0, 3500, 7877, 0, 5, 0 + }, + { /* articulation 92 */ + { 1902, 32663, 6208, 30725 }, + { 1268, 95, 0, 0 }, + 0, 34, 951, 0, 4773, 8355, 0, 5, 0 + }, + { /* articulation 93 */ + { 476, 32663, 10809, 31935 }, + { 32767, 32767, 32767, 0 }, + 0, 34, 989, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 94 */ + { 3804, 32663, 18820, 30234 }, + { 32767, 32767, 32767, 0 }, + 0, 34, 989, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 95 */ + { 7608, 32663, 18820, 17213 }, + { 2536, 261, 0, 0 }, + 0, 34, 989, 0, 1200, 11690, 0, 4, 0 + }, + { /* articulation 96 */ + { 32767, 32468, 15076, 30234 }, + { 32767, 32767, 32767, 0 }, + 0, 36, 2183, 0, 0, 11919, 1, 0, 0 + }, + { /* articulation 97 */ + { 32767, 0, 32767, 32663 }, + { 380, 32767, 32767, 0 }, + 0, 0, 989, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 98 */ + { 32767, 31391, 0, 31391 }, + { 32767, 634, 0, 0 }, + 0, 0, 989, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 99 */ + { 32767, 32558, 0, 23749 }, + { 1268, 190, 13107, 0 }, + 0, 34, 989, 0, 3200, 8321, 0, 0, 0 + }, + { /* articulation 100 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 989, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 101 */ + { 32767, 32072, 0, 23749 }, + { 32767, 1087, 0, 0 }, + 0, 34, 989, 0, 8187, 5535, 0, 5, 0 + }, + { /* articulation 102 */ + { 32767, 32558, 0, 29434 }, + { 32767, 190, 7667, 0 }, + 5, 0, 989, 0, 6053, 5535, 0, 5, 0 + }, + { /* articulation 103 */ + { 32767, 32663, 18820, 23749 }, + { 1902, 95, 0, 0 }, + 0, 0, 989, 0, 2700, 9852, 0, 0, 0 + }, + { /* articulation 104 */ + { 32767, 32663, 18820, 27897 }, + { 1902, 95, 0, 0 }, + 0, 0, 989, 0, 2700, 9852, 0, 0, 0 + }, + { /* articulation 105 */ + { 32767, 32663, 18820, 23749 }, + { 32767, 1268, 0, 0 }, + 0, 52, 951, 0, 2500, 10490, 1, 8, 0 + }, + { /* articulation 106 */ + { 32767, 32663, 23493, 23749 }, + { 32767, 380, 0, 0 }, + 0, 34, 988, 0, 4000, 10223, 1, 4, 0 + }, + { /* articulation 107 */ + { 32767, 32663, 18820, 27897 }, + { 32767, 126, 7667, 0 }, + 0, 0, 989, 0, 1813, 9154, 0, 0, 0 + }, + { /* articulation 108 */ + { 32767, 31730, 0, 31730 }, + { 32767, 380, 0, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 109 */ + { 32767, 31180, 0, 30484 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 11690, 0, 0, 0 + }, + { /* articulation 110 */ + { 32767, 30725, 0, 30725 }, + { 32767, 380, 0, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 111 */ + { 32767, 32349, 18820, 27897 }, + { 32767, 95, 0, 0 }, + 12, 34, 951, 0, 3000, 10223, 0, 0, 0 + }, + { /* articulation 112 */ + { 32767, 32349, 18820, 27897 }, + { 32767, 63, 0, 0 }, + 12, 34, 951, 0, 1900, 10031, 0, 0, 0 + }, + { /* articulation 113 */ + { 32767, 32663, 18820, 26439 }, + { 32767, 63, 0, 0 }, + 12, 34, 988, 0, 1000, 11107, 0, 0, 0 + }, + { /* articulation 114 */ + { 32767, 32663, 18820, 26439 }, + { 32767, 63, 0, 0 }, + 12, 34, 988, 0, 2000, 11107, 0, 0, 0 + }, + { /* articulation 115 */ + { 32767, 32505, 0, 26439 }, + { 32767, 190, 0, 0 }, + 0, 17, 989, 0, 4000, 8321, 0, 0, 0 + }, + { /* articulation 116 */ + { 32767, 31832, 19893, 9042 }, + { 32767, 476, 0, 0 }, + 0, 34, 1452, 0, 0, 11919, 0, 0, 0 + }, + { /* articulation 117 */ + { 19021, 32072, 23493, 9042 }, + { 32767, 32767, 32767, 0 }, + 0, 34, 1355, 0, 0, 11877, 1, 0, 0 + }, + { /* articulation 118 */ + { 32767, 32468, 0, 23749 }, + { 32767, 190, 0, 0 }, + 0, 34, 989, 0, 3500, 9023, 0, 0, 0 + }, + { /* articulation 119 */ + { 32767, 17213, 23493, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 17, 1521, 0, 0, 10925, 1, 0, 0 + }, + { /* articulation 120 */ + { 32767, 32505, 0, 26439 }, + { 32767, 190, 0, 0 }, + 0, 52, 989, 0, 3200, 8721, 0, 4, 0 + }, + { /* articulation 121 */ + { 3804, 32663, 18820, 23749 }, + { 32767, 32767, 32767, 0 }, + 0, 34, 989, 0, 0, 0, 1, 0, 0 + }, + { /* articulation 122 */ + { 9511, 32663, 18820, 25329 }, + { 32767, 32767, 32767, 0 }, + 0, 34, 989, 0, 0, 11877, 0, 8, 0 + }, + { /* articulation 123 */ + { 32767, 32663, 18820, 23749 }, + { 32767, 32, 0, 0 }, + 0, 17, 989, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 124 */ + { 32767, 32558, 0, 23749 }, + { 32767, 380, 0, 0 }, + 0, 34, 989, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 125 */ + { 32767, 32663, 18820, 23749 }, + { 32767, 24, 0, 0 }, + 0, 17, 989, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 126 */ + { 32767, 30725, 0, 30725 }, + { 32767, 761, 0, 0 }, + 0, 0, 989, 0, 3000, 10223, 0, 8, 0 + }, + { /* articulation 127 */ + { 127, 0, 32767, 32349 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 1522, 0, 0, 11423, 4, 0, 0 + }, + { /* articulation 128 */ + { 951, 32422, 0, 32387 }, + { 32767, 19, 0, 0 }, + 0, 0, 989, 0, 0, 11423, 0, 0, 0 + }, + { /* articulation 129 */ + { 391, 0, 0, 31180 }, + { 190, 32767, 32767, 0 }, + 0, 0, 989, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 130 */ + { 32767, 30725, 0, 30725 }, + { 32767, 761, 0, 0 }, + 0, 0, 989, 1200, 0, 0, 0, 0, 0 + }, + { /* articulation 131 */ + { 32767, 31730, 0, 31935 }, + { 32767, 380, 0, 0 }, + 0, 0, 989, 50, 0, 0, 0, 0, 0 + }, + { /* articulation 132 */ + { 32767, 32072, 0, 32072 }, + { 32767, 19021, 0, 0 }, + 0, 0, 989, 0, 4700, 7769, 0, 0, 0 + }, + { /* articulation 133 */ + { 32767, 30073, 0, 30073 }, + { 32767, 32767, 0, 0 }, + 0, 0, 989, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 134 */ + { 32767, 32558, 32767, 32558 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 135 */ + { 32767, 32663, 18820, 17213 }, + { 32767, 190, 0, 0 }, + 10, 34, 951, 0, 2000, 10696, 0, 0, 0 + }, + { /* articulation 136 */ + { 32767, 32663, 10809, 17213 }, + { 32767, 190, 0, 0 }, + 12, 34, 982, 0, 0, 10910, 0, 0, 0 + }, + { /* articulation 137 */ + { 32767, 32663, 18820, 17213 }, + { 32767, 190, 0, 0 }, + 10, 34, 951, 0, 1200, 10218, 0, 0, 0 + }, + { /* articulation 138 */ + { 32767, 32663, 18820, 17213 }, + { 32767, 190, 0, 0 }, + 10, 34, 951, 0, 1100, 9525, 0, 0, 0 + }, + { /* articulation 139 */ + { 19021, 32558, 18820, 23749 }, + { 32767, 19, 0, 0 }, + 10, 34, 988, 0, 2000, 10962, 0, 0, 0 + }, + { /* articulation 140 */ + { 32767, 32349, 18820, 23749 }, + { 19021, 634, 0, 0 }, + 10, 32, 1008, 0, 1200, 10090, 0, 0, 0 + }, + { /* articulation 141 */ + { 2536, 0, 32767, 27897 }, + { 1902, 380, 0, 0 }, + 7, 34, 988, 0, 1620, 8933, 0, 0, 0 + }, + { /* articulation 142 */ + { 32767, 32349, 10809, 23749 }, + { 32767, 380, 0, 0 }, + 7, 34, 988, 0, 2200, 8994, 0, 0, 0 + }, + { /* articulation 143 */ + { 32767, 32663, 15076, 23749 }, + { 32767, 1902, 0, 0 }, + 10, 34, 982, 0, 2500, 9525, 0, 0, 0 + }, + { /* articulation 144 */ + { 32767, 32663, 15076, 23749 }, + { 32767, 190, 0, 0 }, + 10, 34, 951, 0, 1500, 11423, 0, 0, 0 + }, + { /* articulation 145 */ + { 32767, 32663, 18820, 23749 }, + { 32767, 1902, 0, 0 }, + 9, 34, 982, 0, 1500, 9521, 0, 0, 0 + }, + { /* articulation 146 */ + { 3804, 0, 32767, 28809 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 1521, 0, 0, 9521, 0, 0, 0 + }, + { /* articulation 147 */ + { 32767, 32558, 0, 23749 }, + { 32767, 19021, 0, 0 }, + 0, 17, 989, 0, 5000, 10223, 0, 0, 0 + }, + { /* articulation 148 */ + { 32767, 32663, 18820, 23749 }, + { 32767, 63, 0, 0 }, + 10, 34, 951, 0, 1500, 9907, 0, 0, 0 + }, + { /* articulation 149 */ + { 32767, 32698, 11682, 23749 }, + { 32767, 1902, 0, 0 }, + 0, 34, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 150 */ + { 32767, 32072, 0, 32072 }, + { 32767, 380, 0, 0 }, + 0, 17, 989, 0, 3440, 9260, 0, 0, 0 + }, + { /* articulation 151 */ + { 32767, 30234, 0, 30725 }, + { 32767, 1902, 0, 0 }, + 0, 17, 989, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 152 */ + { 32767, 31730, 0, 30725 }, + { 32767, 380, 0, 0 }, + 0, 17, 989, 0, 4000, 7823, 0, 0, 0 + }, + { /* articulation 153 */ + { 32767, 32558, 3566, 23749 }, + { 783, 32767, 32767, 0 }, + 100, 0, 1522, 500, 0, 11877, 0, 0, 0 + }, + { /* articulation 154 */ + { 32767, 32663, 18820, 17213 }, + { 32767, 1902, 0, 0 }, + 8, 34, 989, -22, 0, 0, 0, 0, 0 + }, + { /* articulation 155 */ + { 19021, 29007, 6784, 23749 }, + { 32767, 1902, 0, 0 }, + 0, 34, 951, 0, 5000, 9521, 1, 0, 0 + }, + { /* articulation 156 */ + { 32767, 32558, 0, 31935 }, + { 1902, 254, 16384, 0 }, + 0, 52, 989, 0, 3627, 10547, 0, 5, 0 + }, + { /* articulation 157 */ + { 3804, 0, 32767, 23749 }, + { 1902, 1902, 0, 0 }, + 0, 34, 989, 27, 0, 11919, 0, 0, 0 + }, + { /* articulation 158 */ + { 32767, 0, 32767, 31730 }, + { 76, 66, 10092, 0 }, + 5, 0, 989, 0, 8007, 5535, 0, 8, 0 + }, + { /* articulation 159 */ + { 32767, 32468, 0, 29434 }, + { 32767, 127, 0, 0 }, + 0, 52, 989, 0, 2500, 9032, 0, 0, 0 + }, + { /* articulation 160 */ + { 9511, 32663, 10809, 25329 }, + { 32767, 32767, 32767, 0 }, + 0, 34, 989, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 161 */ + { 19021, 32558, 18820, 23749 }, + { 32767, 190, 0, 0 }, + 10, 34, 988, 0, 2600, 9513, 0, 0, 0 + }, + { /* articulation 162 */ + { 32767, 32106, 9568, 23749 }, + { 2348, 391, 0, 0 }, + 10, 52, 980, 0, 6500, 9023, 0, 0, 0 + }, + { /* articulation 163 */ + { 32767, 32558, 0, 26439 }, + { 32767, 63, 0, 0 }, + 0, 34, 989, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 164 */ + { 32767, 32072, 15076, 17213 }, + { 32767, 1268, 0, 0 }, + 0, 0, 951, 0, 2000, 10223, 0, 0, 0 + }, + { /* articulation 165 */ + { 32767, 32558, 0, 23749 }, + { 32767, 380, 0, 0 }, + 0, 34, 989, 0, 3000, 9366, 0, 0, 0 + }, + { /* articulation 166 */ + { 32767, 32663, 18820, 23749 }, + { 1902, 127, 10879, 0 }, + 0, 0, 989, 0, 6000, 7121, 0, 4, 0 + }, + { /* articulation 167 */ + { 32767, 32505, 0, 26439 }, + { 32767, 21, 0, 0 }, + 0, 52, 989, 0, 3500, 6236, 0, 5, 0 + }, + { /* articulation 168 */ + { 32767, 32505, 0, 26439 }, + { 32767, 190, 0, 0 }, + 0, 52, 989, 0, 2800, 7121, 0, 0, 0 + }, + { /* articulation 169 */ + { 32767, 32418, 0, 29434 }, + { 32767, 127, 0, 0 }, + 0, 52, 989, 0, 2100, 9626, 0, 0, 0 + }, + { /* articulation 170 */ + { 32767, 32349, 0, 30234 }, + { 32767, 127, 0, 0 }, + 0, 52, 989, 0, 3000, 9626, 0, 0, 0 + }, + { /* articulation 171 */ + { 32767, 32288, 0, 28400 }, + { 32767, 127, 0, 0 }, + 0, 52, 989, 0, 1000, 9032, 0, 0, 0 + }, + { /* articulation 172 */ + { 32767, 32072, 0, 28809 }, + { 32767, 127, 0, 0 }, + 0, 52, 989, 0, 1000, 9032, 0, 0, 0 + }, + { /* articulation 173 */ + { 3804, 32072, 15076, 17213 }, + { 32767, 1268, 0, 0 }, + 0, 52, 991, 0, 0, 11107, 0, 8, 0 + }, + { /* articulation 174 */ + { 32767, 32349, 15076, 23749 }, + { 7608, 147, 0, 0 }, + 0, 0, 989, 0, 4500, 9521, 0, 8, 0 + }, + { /* articulation 175 */ + { 32767, 32663, 18820, 23749 }, + { 32767, 95, 0, 0 }, + 0, 0, 989, 0, 2000, 8321, 0, 8, 0 + }, + { /* articulation 176 */ + { 32767, 32715, 128, 29669 }, + { 32767, 1729, 0, 0 }, + 0, 0, 989, 0, 6000, 7823, 0, 8, 0 + }, + { /* articulation 177 */ + { 19021, 32448, 0, 31882 }, + { 32767, 95, 0, 0 }, + 0, 0, 989, 0, 4500, 7121, 0, 8, 0 + }, + { /* articulation 178 */ + { 32767, 32560, 3646, 32107 }, + { 32767, 190, 0, 0 }, + 0, 0, 989, 0, 4000, 8321, 0, 8, 0 + }, + { /* articulation 179 */ + { 32767, 32602, 13644, 26439 }, + { 32767, 63, 0, 0 }, + 12, 34, 988, 0, 2000, 11107, 0, 0, 0 + }, + { /* articulation 180 */ + { 19021, 30484, 0, 23749 }, + { 32767, 1902, 0, 0 }, + 0, 0, 989, 0, 5000, 8321, 1, 0, 0 + }, + { /* articulation 181 */ + { 261, 32466, 0, 31938 }, + { 32767, 634, 0, 0 }, + 0, 34, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 182 */ + { 32767, 32418, 0, 31742 }, + { 2348, 39, 0, 0 }, + 0, 34, 989, 0, 3600, 7121, 0, 4, 0 + }, + { /* articulation 183 */ + { 32767, 32090, 0, 32090 }, + { 32767, 634, 0, 0 }, + 0, 34, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 184 */ + { 1669, 32715, 19242, 30194 }, + { 32767, 296, 0, 0 }, + 0, 0, 1555, 0, 3000, 9907, 0, 4, 0 + } +}; /*end Articulations */ + +/*---------------------------------------------------------------------------- + * Regions + *---------------------------------------------------------------------------- +*/ +const S_WT_REGION eas_regions[] = +{ + { { 0, 27, 27 }, -2868, 16422, 0, 0, 81, 0 }, /* region 0 */ + { { 0, 28, 28 }, -3568, 32767, 0, 0, 40, 0 }, /* region 1 */ + { { 0, 29, 29 }, -4553, 32767, 0, 0, 32, 1 }, /* region 2 */ + { { 0, 30, 30 }, -4853, 32767, 0, 0, 32, 2 }, /* region 3 */ + { { 0, 31, 31 }, -3868, 23197, 0, 0, 48, 3 }, /* region 4 */ + { { 1536, 32, 32 }, -3200, 20675, 0, 0, 137, 4 }, /* region 5 */ + { { 1537, 33, 33 }, -3703, 20675, 792, 879, 50, 5 }, /* region 6 */ + { { 1537, 34, 34 }, -3803, 16422, 792, 879, 50, 6 }, /* region 7 */ + { { 0, 35, 35 }, -4968, 32767, 0, 0, 83, 7 }, /* region 8 */ + { { 0, 36, 36 }, -4968, 32767, 0, 0, 83, 7 }, /* region 9 */ + { { 0, 37, 37 }, -4051, 18426, 0, 0, 53, 8 }, /* region 10 */ + { { 0, 38, 38 }, -4151, 23197, 0, 0, 16, 9 }, /* region 11 */ + { { 0, 39, 39 }, -3568, 32767, 0, 0, 40, 10 }, /* region 12 */ + { { 0, 40, 40 }, -4151, 23197, 0, 0, 16, 4 }, /* region 13 */ + { { 1, 41, 41 }, -5855, 26028, 798, 993, 45, 11 }, /* region 14 */ + { { 257, 42, 42 }, -4200, 26028, 4288, 7488, 7, 12 }, /* region 15 */ + { { 1, 43, 43 }, -5755, 26028, 798, 993, 45, 13 }, /* region 16 */ + { { 257, 44, 44 }, -4400, 26028, 4288, 7488, 7, 14 }, /* region 17 */ + { { 1, 45, 45 }, -5755, 26028, 798, 993, 45, 15 }, /* region 18 */ + { { 257, 46, 46 }, -4600, 26028, 4288, 7488, 7, 16 }, /* region 19 */ + { { 1, 47, 47 }, -5455, 26028, 798, 993, 45, 17 }, /* region 20 */ + { { 1, 48, 48 }, -5355, 26028, 798, 993, 45, 18 }, /* region 21 */ + { { 1, 49, 49 }, -5200, 16422, 1294, 5778, 8, 19 }, /* region 22 */ + { { 1, 50, 50 }, -5255, 26028, 798, 993, 45, 20 }, /* region 23 */ + { { 1, 51, 51 }, -5268, 16422, 6592, 9921, 6, 21 }, /* region 24 */ + { { 1, 52, 52 }, -5600, 32767, 1294, 5778, 8, 22 }, /* region 25 */ + { { 1, 53, 53 }, -5418, 14636, 6592, 9921, 6, 23 }, /* region 26 */ + { { 0, 54, 54 }, -5751, 26028, 0, 0, 39, 24 }, /* region 27 */ + { { 1, 55, 55 }, -5300, 32767, 1294, 5778, 8, 25 }, /* region 28 */ + { { 0, 56, 56 }, -7255, 32767, 0, 0, 90, 26 }, /* region 29 */ + { { 1, 57, 57 }, -5700, 32767, 1294, 5778, 8, 27 }, /* region 30 */ + { { 1, 58, 58 }, -7053, 23197, 0, 166, 113, 28 }, /* region 31 */ + { { 1, 59, 59 }, -5968, 16422, 6592, 9921, 6, 29 }, /* region 32 */ + { { 1, 60, 60 }, -6453, 23197, 432, 582, 63, 30 }, /* region 33 */ + { { 1, 61, 61 }, -6853, 16422, 432, 582, 63, 30 }, /* region 34 */ + { { 1, 62, 62 }, -7253, 20675, 432, 582, 63, 31 }, /* region 35 */ + { { 1, 63, 63 }, -7353, 23197, 432, 582, 63, 32 }, /* region 36 */ + { { 1, 64, 64 }, -7953, 23197, 432, 582, 63, 33 }, /* region 37 */ + { { 0, 65, 65 }, -7555, 32767, 0, 0, 14, 34 }, /* region 38 */ + { { 0, 66, 66 }, -7955, 20675, 0, 0, 14, 34 }, /* region 39 */ + { { 512, 67, 67 }, -7155, 18426, 0, 0, 90, 35 }, /* region 40 */ + { { 512, 68, 68 }, -7755, 18426, 0, 0, 90, 35 }, /* region 41 */ + { { 0, 69, 69 }, -7755, 32767, 0, 0, 86, 36 }, /* region 42 */ + { { 0, 70, 70 }, -6855, 21900, 0, 0, 86, 37 }, /* region 43 */ + { { 769, 71, 71 }, -6355, 23197, 0, 1226, 35, 38 }, /* region 44 */ + { { 769, 72, 72 }, -6955, 26028, 0, 1226, 35, 38 }, /* region 45 */ + { { 1024, 73, 73 }, -7955, 32767, 0, 0, 22, 39 }, /* region 46 */ + { { 1024, 74, 74 }, -8455, 32767, 0, 0, 22, 40 }, /* region 47 */ + { { 1, 75, 75 }, -7900, 23197, 0, 31, 139, 41 }, /* region 48 */ + { { 0, 76, 76 }, -10455, 23197, 0, 0, 134, 42 }, /* region 49 */ + { { 0, 77, 77 }, -10055, 23197, 0, 0, 134, 43 }, /* region 50 */ + { { 0, 78, 78 }, -8853, 16422, 0, 0, 89, 44 }, /* region 51 */ + { { 0, 79, 79 }, -10253, 16422, 0, 0, 89, 45 }, /* region 52 */ + { { 1281, 80, 80 }, -6300, 13045, 209, 230, 103, 46 }, /* region 53 */ + { { 1281, 81, 81 }, -6400, 16422, 209, 230, 103, 47 }, /* region 54 */ + { { 0, 82, 82 }, -8455, 20675, 0, 0, 87, 48 }, /* region 55 */ + { { 0, 83, 83 }, -8900, 32767, 0, 0, 13, 49 }, /* region 56 */ + { { 1, 84, 84 }, -8400, 23197, 0, 10294, 5, 50 }, /* region 57 */ + { { 0, 85, 85 }, -9655, 32767, 0, 0, 135, 4 }, /* region 58 */ + { { 0, 86, 86 }, -9068, 16422, 0, 0, 24, 51 }, /* region 59 */ + { { 32769, 87, 87 }, -9168, 32767, 1335, 1603, 24, 52 }, /* region 60 */ + { { 1, 12, 67 }, -6605, 23197, 437, 16584, 2, 48 }, /* region 61 */ + { { 1, 68, 73 }, -7196, 23197, 452, 16803, 0, 48 }, /* region 62 */ + { { 32769, 74, 108 }, -8467, 23197, 404, 16698, 1, 48 }, /* region 63 */ + { { 1, 12, 78 }, -6605, 16422, 437, 16584, 2, 48 }, /* region 64 */ + { { 1, 79, 91 }, -7196, 16422, 452, 16803, 0, 48 }, /* region 65 */ + { { 32769, 92, 108 }, -8467, 16422, 404, 16698, 1, 48 }, /* region 66 */ + { { 1, 12, 78 }, -6605, 16422, 437, 16584, 2, 48 }, /* region 67 */ + { { 1, 79, 91 }, -7196, 16422, 452, 16803, 0, 48 }, /* region 68 */ + { { 32769, 92, 108 }, -8467, 16422, 404, 16698, 1, 48 }, /* region 69 */ + { { 1, 12, 70 }, -6600, 23197, 437, 16584, 2, 48 }, /* region 70 */ + { { 1, 71, 88 }, -7191, 23197, 452, 16803, 0, 48 }, /* region 71 */ + { { 32769, 89, 108 }, -8462, 23197, 404, 16698, 1, 48 }, /* region 72 */ + { { 1, 12, 54 }, -5956, 13045, 639, 4368, 10, 48 }, /* region 73 */ + { { 32769, 55, 108 }, -6351, 18426, 702, 3112, 12, 48 }, /* region 74 */ + { { 1, 12, 66 }, -6611, 23197, 437, 16584, 2, 48 }, /* region 75 */ + { { 1, 67, 87 }, -7202, 23197, 452, 16803, 0, 48 }, /* region 76 */ + { { 32769, 88, 108 }, -8473, 16422, 404, 16698, 1, 48 }, /* region 77 */ + { { 1, 12, 43 }, -3055, 23197, 920, 1383, 30, 59 }, /* region 78 */ + { { 32769, 44, 96 }, -5060, 18426, 885, 1176, 37, 59 }, /* region 79 */ + { { 1, 12, 48 }, -3461, 18426, 1148, 1514, 26, 60 }, /* region 80 */ + { { 32769, 49, 96 }, -6253, 16422, 1347, 1420, 29, 60 }, /* region 81 */ + { { 1, 33, 56 }, -5600, 26028, 1064, 1170, 38, 61 }, /* region 82 */ + { { 1, 57, 72 }, -6000, 26028, 930, 1014, 44, 61 }, /* region 83 */ + { { 32769, 73, 108 }, -7600, 26028, 726, 826, 52, 61 }, /* region 84 */ + { { 1, 36, 96 }, -7600, 20675, 635, 735, 58, 62 }, /* region 85 */ + { { 32769, 97, 108 }, -10108, 13045, 0, 31, 139, 62 }, /* region 86 */ + { { 1, 36, 96 }, -7600, 14636, 635, 735, 58, 0 }, /* region 87 */ + { { 32769, 97, 108 }, -10108, 13045, 0, 31, 139, 0 }, /* region 88 */ + { { 1, 36, 83 }, -6006, 13045, 838, 922, 47, 63 }, /* region 89 */ + { { 1, 84, 93 }, -8406, 14636, 209, 230, 103, 63 }, /* region 90 */ + { { 32769, 94, 108 }, -10108, 13045, 0, 31, 139, 63 }, /* region 91 */ + { { 1, 36, 83 }, -6006, 13045, 838, 922, 47, 64 }, /* region 92 */ + { { 1, 84, 93 }, -8406, 13045, 209, 230, 103, 64 }, /* region 93 */ + { { 32769, 94, 108 }, -10108, 13045, 0, 31, 139, 64 }, /* region 94 */ + { { 1, 21, 56 }, -5595, 23197, 1064, 1170, 38, 65 }, /* region 95 */ + { { 1, 57, 72 }, -5995, 23197, 930, 1014, 44, 65 }, /* region 96 */ + { { 32769, 73, 108 }, -7598, 23197, 726, 826, 52, 65 }, /* region 97 */ + { { 1, 12, 83 }, -6006, 16422, 838, 922, 47, 66 }, /* region 98 */ + { { 1, 84, 93 }, -8406, 16422, 209, 230, 103, 66 }, /* region 99 */ + { { 32769, 94, 108 }, -10108, 16422, 0, 31, 139, 66 }, /* region 100 */ + { { 1, 24, 83 }, -6006, 16422, 838, 922, 47, 67 }, /* region 101 */ + { { 1, 84, 93 }, -8406, 16422, 209, 230, 103, 67 }, /* region 102 */ + { { 32769, 94, 108 }, -10108, 16422, 0, 31, 139, 67 }, /* region 103 */ + { { 1, 12, 83 }, -6020, 16422, 0, 83, 126, 68 }, /* region 104 */ + { { 1, 84, 90 }, -8482, 16422, 0, 20, 145, 68 }, /* region 105 */ + { { 32769, 91, 108 }, -9101, 16422, 6, 20, 147, 68 }, /* region 106 */ + { { 1, 21, 75 }, -7241, 16422, 419, 460, 76, 69 }, /* region 107 */ + { { 32769, 76, 108 }, -9690, 14636, 254, 264, 101, 69 }, /* region 108 */ + { { 32769, 36, 84 }, -7755, 16422, 0, 2775, 17, 70 }, /* region 109 */ + { { 32769, 12, 108 }, -6655, 23197, 30, 276, 100, 71 }, /* region 110 */ + { { 0, 12, 60 }, -7914, 26028, 0, 0, 15, 72 }, /* region 111 */ + { { 32768, 61, 96 }, -7914, 26028, 0, 0, 15, 73 }, /* region 112 */ + { { 1, 12, 65 }, -7053, 16422, 23, 10953, 4, 74 }, /* region 113 */ + { { 32769, 66, 108 }, -7755, 20675, 11, 11753, 3, 74 }, /* region 114 */ + { { 1, 12, 35 }, -5355, 16422, 2869, 3778, 11, 75 }, /* region 115 */ + { { 1, 36, 48 }, -6555, 20675, 2869, 3778, 11, 75 }, /* region 116 */ + { { 32769, 49, 72 }, -6555, 20675, 2869, 3778, 11, 76 }, /* region 117 */ + { { 1, 16, 55 }, -6224, 20675, 1045, 1119, 41, 77 }, /* region 118 */ + { { 32769, 56, 96 }, -6718, 20675, 907, 963, 46, 77 }, /* region 119 */ + { { 1, 16, 53 }, -5994, 29204, 1140, 1479, 27, 78 }, /* region 120 */ + { { 1, 54, 70 }, -7171, 29204, 726, 812, 55, 78 }, /* region 121 */ + { { 32769, 71, 108 }, -7788, 29204, 718, 748, 56, 78 }, /* region 122 */ + { { 1, 12, 65 }, -7053, 16422, 23, 10953, 4, 79 }, /* region 123 */ + { { 32769, 66, 108 }, -7755, 20675, 11, 11753, 3, 79 }, /* region 124 */ + { { 1, 16, 54 }, -5727, 20675, 5362, 5461, 9, 80 }, /* region 125 */ + { { 1, 55, 63 }, -5851, 26028, 1362, 1454, 28, 80 }, /* region 126 */ + { { 32769, 64, 108 }, -6744, 16422, 311, 366, 88, 80 }, /* region 127 */ + { { 1, 16, 48 }, -4798, 20675, 1132, 1301, 31, 81 }, /* region 128 */ + { { 32769, 49, 108 }, -5988, 20675, 1099, 1184, 36, 81 }, /* region 129 */ + { { 1, 21, 68 }, -8458, 20675, 87, 2170, 18, 82 }, /* region 130 */ + { { 1, 69, 82 }, -8960, 20675, 120, 2167, 19, 82 }, /* region 131 */ + { { 32769, 83, 108 }, -10160, 20675, 376, 2041, 20, 82 }, /* region 132 */ + { { 1, 12, 65 }, -7053, 16422, 23, 10953, 4, 83 }, /* region 133 */ + { { 32769, 66, 108 }, -7755, 20675, 11, 11753, 3, 83 }, /* region 134 */ + { { 32769, 55, 108 }, -7368, 20675, 0, 477, 75, 84 }, /* region 135 */ + { { 32769, 36, 96 }, -6900, 14636, 101, 151, 116, 85 }, /* region 136 */ + { { 1, 24, 83 }, -6020, 13045, 0, 83, 126, 86 }, /* region 137 */ + { { 1, 84, 90 }, -8482, 13045, 0, 20, 145, 86 }, /* region 138 */ + { { 32769, 91, 108 }, -9101, 13045, 6, 20, 147, 86 }, /* region 139 */ + { { 1, 12, 65 }, -7053, 16422, 23, 10953, 4, 87 }, /* region 140 */ + { { 32769, 66, 108 }, -7755, 20675, 11, 11753, 3, 87 }, /* region 141 */ + { { 1, 12, 65 }, -7053, 16422, 23, 10953, 4, 88 }, /* region 142 */ + { { 32769, 66, 108 }, -7755, 20675, 11, 11753, 3, 88 }, /* region 143 */ + { { 1, 12, 65 }, -7053, 16422, 23, 10953, 4, 89 }, /* region 144 */ + { { 32769, 66, 108 }, -7755, 20675, 11, 11753, 3, 89 }, /* region 145 */ + { { 1, 24, 83 }, -6020, 13045, 0, 83, 126, 90 }, /* region 146 */ + { { 1, 84, 90 }, -8482, 13045, 0, 20, 145, 90 }, /* region 147 */ + { { 32769, 91, 108 }, -9101, 13045, 6, 20, 147, 90 }, /* region 148 */ + { { 1, 12, 65 }, -7053, 16422, 23, 10953, 4, 91 }, /* region 149 */ + { { 32769, 66, 108 }, -7755, 20675, 11, 11753, 3, 91 }, /* region 150 */ + { { 1, 12, 65 }, -7053, 16422, 23, 10953, 4, 92 }, /* region 151 */ + { { 32769, 66, 108 }, -7755, 20675, 11, 11753, 3, 92 }, /* region 152 */ + { { 1, 12, 62 }, -7053, 16422, 23, 10953, 4, 93 }, /* region 153 */ + { { 32769, 63, 108 }, -7755, 20675, 11, 11753, 3, 93 }, /* region 154 */ + { { 1, 12, 62 }, -7053, 16422, 23, 10953, 4, 94 }, /* region 155 */ + { { 32769, 63, 108 }, -7755, 16422, 11, 11753, 3, 94 }, /* region 156 */ + { { 1, 24, 79 }, -6020, 13045, 0, 83, 126, 95 }, /* region 157 */ + { { 1, 80, 90 }, -8482, 13045, 0, 20, 145, 95 }, /* region 158 */ + { { 32769, 91, 108 }, -9101, 13045, 6, 20, 147, 95 }, /* region 159 */ + { { 1, 12, 65 }, -7053, 13045, 23, 10953, 4, 96 }, /* region 160 */ + { { 32769, 66, 108 }, -7755, 16422, 11, 11753, 3, 96 }, /* region 161 */ + { { 32768, 36, 84 }, -7500, 20675, 0, 0, 25, 97 }, /* region 162 */ + { { 32769, 36, 96 }, -8855, 20675, 1482, 1613, 23, 98 }, /* region 163 */ + { { 32769, 12, 96 }, -4366, 32767, 818, 1033, 42, 99 }, /* region 164 */ + { { 32769, 36, 84 }, -8568, 18426, 0, 293, 98, 100 }, /* region 165 */ + { { 32769, 12, 96 }, -6020, 26028, 0, 83, 125, 101 }, /* region 166 */ + { { 32769, 12, 96 }, -6020, 20675, 0, 83, 125, 102 }, /* region 167 */ + { { 1, 12, 83 }, -6020, 13045, 0, 83, 125, 104 }, /* region 168 */ + { { 1, 84, 90 }, -8482, 13045, 0, 20, 146, 104 }, /* region 169 */ + { { 32769, 91, 108 }, -9101, 13045, 6, 20, 148, 104 }, /* region 170 */ + { { 32769, 36, 108 }, -8570, 32767, 472, 491, 74, 105 }, /* region 171 */ + { { 32769, 36, 108 }, -8570, 20675, 472, 491, 74, 106 }, /* region 172 */ + { { 1, 12, 72 }, -6012, 7336, 2, 86, 124, 107 }, /* region 173 */ + { { 1, 73, 101 }, -8500, 8231, 2, 22, 143, 107 }, /* region 174 */ + { { 32769, 102, 108 }, -9683, 20675, 173, 183, 110, 107 }, /* region 175 */ + { { 1, 21, 96 }, -7768, 13045, 477, 507, 73, 108 }, /* region 176 */ + { { 32769, 97, 108 }, -9683, 13045, 173, 183, 110, 109 }, /* region 177 */ + { { 32769, 12, 108 }, -7771, 16422, 477, 507, 73, 110 }, /* region 178 */ + { { 1, 12, 53 }, -4971, 16422, 388, 541, 68, 111 }, /* region 179 */ + { { 32769, 54, 60 }, -5949, 11626, 473, 560, 65, 111 }, /* region 180 */ + { { 32769, 36, 72 }, -5949, 16422, 473, 560, 65, 112 }, /* region 181 */ + { { 1, 48, 58 }, -7053, 16422, 356, 402, 82, 113 }, /* region 182 */ + { { 1, 59, 65 }, -7574, 16422, 514, 548, 67, 113 }, /* region 183 */ + { { 1, 66, 78 }, -8174, 16422, 505, 529, 71, 113 }, /* region 184 */ + { { 32769, 79, 96 }, -9233, 16422, 178, 191, 109, 113 }, /* region 185 */ + { { 1, 55, 60 }, -7053, 16422, 356, 402, 82, 114 }, /* region 186 */ + { { 1, 61, 69 }, -7574, 16422, 514, 548, 67, 114 }, /* region 187 */ + { { 1, 70, 79 }, -8174, 16422, 505, 529, 71, 114 }, /* region 188 */ + { { 32769, 80, 108 }, -9233, 16422, 178, 191, 109, 114 }, /* region 189 */ + { { 1, 16, 82 }, -8029, 23197, 180, 206, 106, 115 }, /* region 190 */ + { { 32769, 83, 108 }, -7240, 18426, 3, 44, 131, 115 }, /* region 191 */ + { { 32769, 21, 108 }, -8869, 20675, 483, 515, 72, 116 }, /* region 192 */ + { { 1, 21, 89 }, -7205, 18426, 3, 45, 130, 117 }, /* region 193 */ + { { 32769, 90, 108 }, -9101, 10362, 6, 20, 148, 117 }, /* region 194 */ + { { 1, 21, 42 }, -4686, 20675, 0, 180, 111, 118 }, /* region 195 */ + { { 1, 43, 51 }, -5286, 23197, 0, 127, 120, 118 }, /* region 196 */ + { { 1, 52, 58 }, -6292, 26028, 0, 71, 127, 118 }, /* region 197 */ + { { 1, 59, 68 }, -7468, 23197, 0, 36, 136, 118 }, /* region 198 */ + { { 32769, 69, 108 }, -8574, 20675, 0, 19, 149, 118 }, /* region 199 */ + { { 1, 21, 89 }, -7199, 20675, 3, 45, 130, 119 }, /* region 200 */ + { { 32769, 90, 108 }, -9101, 14636, 6, 20, 148, 119 }, /* region 201 */ + { { 1, 21, 46 }, -5651, 26028, 236, 340, 92, 120 }, /* region 202 */ + { { 1, 47, 71 }, -6563, 20675, 824, 885, 49, 120 }, /* region 203 */ + { { 1, 72, 88 }, -7907, 18426, 719, 747, 57, 120 }, /* region 204 */ + { { 1, 89, 93 }, -8876, 16422, 83, 99, 122, 120 }, /* region 205 */ + { { 32769, 94, 108 }, -9689, 16422, 173, 183, 110, 120 }, /* region 206 */ + { { 1, 60, 71 }, -7205, 16422, 0, 42, 132, 121 }, /* region 207 */ + { { 1, 72, 78 }, -7903, 16422, 0, 28, 141, 121 }, /* region 208 */ + { { 32769, 79, 96 }, -8405, 16422, 0, 21, 144, 121 }, /* region 209 */ + { { 1, 48, 65 }, -6316, 11626, 0, 70, 128, 122 }, /* region 210 */ + { { 1, 66, 79 }, -7724, 14636, 0, 31, 138, 122 }, /* region 211 */ + { { 32769, 80, 96 }, -8030, 11626, 0, 26, 142, 122 }, /* region 212 */ + { { 1, 16, 44 }, -5868, 14636, 163, 254, 102, 123 }, /* region 213 */ + { { 1, 45, 51 }, -6418, 16422, 261, 393, 85, 123 }, /* region 214 */ + { { 1, 52, 58 }, -7333, 18426, 190, 229, 104, 123 }, /* region 215 */ + { { 1, 59, 66 }, -8100, 18426, 168, 193, 108, 123 }, /* region 216 */ + { { 1, 67, 70 }, -8576, 18426, 138, 157, 115, 123 }, /* region 217 */ + { { 1, 71, 80 }, -9103, 18426, 166, 180, 112, 123 }, /* region 218 */ + { { 32769, 81, 108 }, -10074, 18426, 135, 151, 117, 123 }, /* region 219 */ + { { 32769, 12, 96 }, -5004, 23197, 570, 719, 59, 124 }, /* region 220 */ + { { 1, 12, 48 }, -5868, 14636, 163, 254, 102, 125 }, /* region 221 */ + { { 1, 49, 54 }, -6418, 16422, 261, 393, 85, 125 }, /* region 222 */ + { { 1, 55, 63 }, -7333, 18426, 190, 229, 104, 125 }, /* region 223 */ + { { 1, 64, 70 }, -8100, 18426, 168, 193, 108, 125 }, /* region 224 */ + { { 1, 71, 75 }, -8576, 18426, 138, 157, 115, 125 }, /* region 225 */ + { { 1, 76, 82 }, -9103, 18426, 166, 180, 112, 125 }, /* region 226 */ + { { 32769, 83, 108 }, -10074, 18426, 135, 151, 117, 125 }, /* region 227 */ + { { 32770, 36, 84 }, -7200, 29204, 0, 0, 0, 126 }, /* region 228 */ + { { 32770, 36, 84 }, -7600, 8231, 0, 0, 0, 127 }, /* region 229 */ + { { 32770, 36, 84 }, -7200, 20675, 0, 0, 0, 128 }, /* region 230 */ + { { 32769, 36, 84 }, -6000, -24285, 1294, 5778, 8, 129 }, /* region 231 */ + { { 32769, 36, 84 }, -6555, 29204, 798, 993, 45, 130 }, /* region 232 */ + { { 32769, 36, 84 }, -6855, 20675, 798, 993, 45, 131 }, /* region 233 */ + { { 32769, 36, 84 }, -7755, 29204, 798, 993, 45, 132 }, /* region 234 */ + { { 32768, 36, 84 }, -8155, 32767, 0, 0, 133, 133 }, /* region 235 */ + { { 32768, 36, 84 }, -6555, 20675, 0, 0, 91, 134 }, /* region 236 */ + { { 1, 24, 62 }, -7000, 23197, 286, 333, 94, 135 }, /* region 237 */ + { { 1, 63, 66 }, -7364, 26028, 297, 335, 93, 135 }, /* region 238 */ + { { 1, 67, 72 }, -7722, 23197, 368, 399, 84, 135 }, /* region 239 */ + { { 32769, 73, 96 }, -8310, 23197, 116, 138, 119, 135 }, /* region 240 */ + { { 1, 24, 48 }, -5141, 23197, 309, 447, 77, 136 }, /* region 241 */ + { { 1, 49, 56 }, -6266, 26028, 211, 283, 99, 136 }, /* region 242 */ + { { 1, 57, 63 }, -7000, 26028, 286, 333, 94, 136 }, /* region 243 */ + { { 32769, 64, 84 }, -7722, 23197, 368, 399, 84, 136 }, /* region 244 */ + { { 1, 24, 56 }, -6266, 29204, 211, 283, 99, 137 }, /* region 245 */ + { { 1, 57, 63 }, -7000, 29204, 286, 333, 94, 137 }, /* region 246 */ + { { 1, 64, 69 }, -7722, 29204, 368, 399, 84, 137 }, /* region 247 */ + { { 32769, 70, 96 }, -8310, 29204, 116, 138, 119, 137 }, /* region 248 */ + { { 1, 24, 68 }, -7722, 18426, 368, 399, 84, 138 }, /* region 249 */ + { { 1, 69, 76 }, -8310, 26028, 116, 138, 119, 138 }, /* region 250 */ + { { 32769, 77, 108 }, -8758, 23197, 127, 144, 118, 138 }, /* region 251 */ + { { 1, 24, 82 }, -7613, 23197, 389, 422, 80, 139 }, /* region 252 */ + { { 32769, 83, 108 }, -8764, 26028, 146, 163, 114, 139 }, /* region 253 */ + { { 1, 12, 58 }, -6898, 29204, 386, 436, 78, 140 }, /* region 254 */ + { { 32769, 59, 96 }, -7371, 26028, 290, 328, 95, 140 }, /* region 255 */ + { { 1, 12, 58 }, -6898, 16422, 386, 436, 78, 141 }, /* region 256 */ + { { 32769, 59, 96 }, -7371, 18426, 290, 328, 95, 141 }, /* region 257 */ + { { 1, 12, 48 }, -6898, -28771, 386, 436, 78, 142 }, /* region 258 */ + { { 32769, 49, 84 }, -7371, 29204, 290, 328, 95, 142 }, /* region 259 */ + { { 1, 12, 60 }, -5453, 20675, 314, 430, 79, 143 }, /* region 260 */ + { { 32769, 61, 84 }, -6553, 18426, 263, 324, 96, 143 }, /* region 261 */ + { { 1, 24, 60 }, -6553, 16422, 263, 324, 96, 144 }, /* region 262 */ + { { 1, 61, 70 }, -7669, 20675, 279, 311, 97, 144 }, /* region 263 */ + { { 32769, 71, 96 }, -8098, 23197, 179, 204, 107, 144 }, /* region 264 */ + { { 1, 24, 84 }, -8483, 20675, 191, 211, 105, 145 }, /* region 265 */ + { { 32769, 85, 108 }, -9683, 20675, 92, 102, 121, 145 }, /* region 266 */ + { { 1, 21, 69 }, -6553, 13045, 263, 324, 96, 146 }, /* region 267 */ + { { 1, 70, 94 }, -7669, 20675, 279, 311, 97, 146 }, /* region 268 */ + { { 1, 95, 96 }, -8098, -24285, 179, 204, 107, 146 }, /* region 269 */ + { { 32769, 97, 108 }, -9683, -24285, 173, 183, 110, 146 }, /* region 270 */ + { { 1, 16, 55 }, -8100, 20675, 168, 193, 108, 147 }, /* region 271 */ + { { 1, 56, 74 }, -8576, 26028, 138, 157, 115, 147 }, /* region 272 */ + { { 32769, 75, 96 }, -10074, 26028, 135, 151, 117, 147 }, /* region 273 */ + { { 1, 24, 72 }, -8098, 26028, 179, 204, 107, 148 }, /* region 274 */ + { { 1, 73, 85 }, -8483, 20675, 191, 211, 105, 148 }, /* region 275 */ + { { 32769, 86, 108 }, -9683, 18426, 92, 102, 121, 148 }, /* region 276 */ + { { 32769, 36, 108 }, -7730, 18426, 1839, 1901, 21, 149 }, /* region 277 */ + { { 32769, 24, 108 }, -7273, 20675, 494, 534, 69, 150 }, /* region 278 */ + { { 32769, 12, 108 }, -7273, 20675, 494, 534, 69, 151 }, /* region 279 */ + { { 32769, 24, 108 }, -7273, 20675, 494, 534, 69, 152 }, /* region 280 */ + { { 1, 36, 60 }, -4900, 5193, 2, 22, 143, 153 }, /* region 281 */ + { { 32769, 61, 84 }, -6083, 20675, 173, 183, 110, 153 }, /* region 282 */ + { { 32769, 24, 96 }, -6553, 14636, 263, 324, 96, 154 }, /* region 283 */ + { { 32769, 36, 96 }, -7730, 26028, 1839, 1901, 21, 155 }, /* region 284 */ + { { 32769, 24, 108 }, -7273, 20675, 494, 534, 69, 156 }, /* region 285 */ + { { 1, 24, 58 }, -7851, 14636, 0, 29, 140, 157 }, /* region 286 */ + { { 32769, 59, 96 }, -7851, 14636, 0, 29, 140, 157 }, /* region 287 */ + { { 1, 12, 83 }, -6020, 13045, 0, 83, 125, 158 }, /* region 288 */ + { { 1, 84, 90 }, -8482, 13045, 0, 20, 146, 158 }, /* region 289 */ + { { 32769, 91, 108 }, -9101, 13045, 6, 20, 148, 158 }, /* region 290 */ + { { 1, 21, 42 }, -4663, 26028, 1047, 1229, 34, 159 }, /* region 291 */ + { { 1, 43, 48 }, -5456, 29204, 1138, 1253, 33, 159 }, /* region 292 */ + { { 1, 49, 53 }, -5845, 26028, 559, 651, 60, 159 }, /* region 293 */ + { { 1, 54, 60 }, -6732, 26028, 508, 563, 64, 159 }, /* region 294 */ + { { 1, 61, 65 }, -7080, 32767, 819, 864, 51, 159 }, /* region 295 */ + { { 1, 66, 70 }, -6866, 26942, 981, 1032, 43, 159 }, /* region 296 */ + { { 1, 71, 76 }, -8166, 26028, 790, 814, 54, 159 }, /* region 297 */ + { { 1, 77, 82 }, -8766, 26028, 592, 609, 61, 159 }, /* region 298 */ + { { 1, 83, 87 }, -9517, 23197, 543, 554, 66, 159 }, /* region 299 */ + { { 1, 88, 96 }, -10071, 18426, 601, 609, 62, 159 }, /* region 300 */ + { { 32769, 97, 108 }, -10566, 18426, 523, 529, 70, 159 }, /* region 301 */ + { { 1, 48, 69 }, -6313, 14636, 0, 70, 128, 160 }, /* region 302 */ + { { 1, 70, 79 }, -7724, 18426, 0, 31, 138, 160 }, /* region 303 */ + { { 32769, 80, 96 }, -8030, 14636, 0, 26, 142, 160 }, /* region 304 */ + { { 1, 36, 72 }, -7134, 29204, 0, 87, 123, 161 }, /* region 305 */ + { { 32769, 73, 96 }, -7960, 29204, 0, 54, 129, 161 }, /* region 306 */ + { { 32769, 36, 96 }, -7730, 26028, 1839, 1901, 21, 162 }, /* region 307 */ + { { 32769, 12, 96 }, -4372, 32767, 818, 1033, 42, 163 }, /* region 308 */ + { { 32769, 36, 108 }, -8570, 26028, 472, 491, 74, 164 }, /* region 309 */ + { { 32769, 12, 96 }, -5004, 29204, 570, 719, 59, 165 }, /* region 310 */ + { { 1, 12, 83 }, -6020, 13045, 0, 83, 125, 166 }, /* region 311 */ + { { 1, 84, 90 }, -8482, 13045, 0, 20, 146, 166 }, /* region 312 */ + { { 32769, 91, 108 }, -9101, 13045, 6, 20, 148, 166 }, /* region 313 */ + { { 1, 21, 46 }, -5651, 32767, 236, 340, 92, 167 }, /* region 314 */ + { { 1, 47, 75 }, -6563, 26028, 824, 885, 49, 167 }, /* region 315 */ + { { 1, 76, 84 }, -7907, 23197, 719, 747, 57, 167 }, /* region 316 */ + { { 1, 85, 93 }, -8876, 20675, 83, 99, 122, 167 }, /* region 317 */ + { { 32769, 94, 108 }, -9689, 20675, 173, 183, 110, 167 }, /* region 318 */ + { { 1, 21, 46 }, -5651, 26028, 236, 340, 92, 168 }, /* region 319 */ + { { 1, 47, 71 }, -6563, 20675, 824, 885, 49, 168 }, /* region 320 */ + { { 1, 72, 88 }, -7907, 18426, 719, 747, 57, 168 }, /* region 321 */ + { { 1, 89, 93 }, -8876, 16422, 83, 99, 122, 168 }, /* region 322 */ + { { 32769, 94, 108 }, -9689, 16422, 173, 183, 110, 168 }, /* region 323 */ + { { 1, 21, 45 }, -4663, 26028, 1047, 1229, 34, 169 }, /* region 324 */ + { { 1, 46, 51 }, -5456, 29204, 1138, 1253, 33, 169 }, /* region 325 */ + { { 1, 52, 54 }, -5845, 26028, 559, 651, 60, 169 }, /* region 326 */ + { { 1, 55, 63 }, -6732, 26028, 508, 563, 64, 169 }, /* region 327 */ + { { 1, 64, 68 }, -7080, 32767, 819, 864, 51, 169 }, /* region 328 */ + { { 1, 69, 73 }, -6866, 26942, 981, 1032, 43, 169 }, /* region 329 */ + { { 1, 74, 79 }, -8166, 26028, 790, 814, 54, 169 }, /* region 330 */ + { { 1, 80, 88 }, -8766, 23197, 592, 609, 61, 169 }, /* region 331 */ + { { 1, 89, 99 }, -10071, 18426, 601, 609, 62, 169 }, /* region 332 */ + { { 32769, 100, 108 }, -10566, 18426, 523, 529, 70, 169 }, /* region 333 */ + { { 1, 21, 45 }, -4663, 26028, 1047, 1229, 34, 170 }, /* region 334 */ + { { 1, 46, 51 }, -5456, 29204, 1138, 1253, 33, 170 }, /* region 335 */ + { { 1, 52, 54 }, -5845, 26028, 559, 651, 60, 170 }, /* region 336 */ + { { 1, 55, 63 }, -6732, 26028, 508, 563, 64, 170 }, /* region 337 */ + { { 1, 64, 68 }, -7080, 32767, 819, 864, 51, 170 }, /* region 338 */ + { { 1, 69, 73 }, -6866, 26942, 981, 1032, 43, 170 }, /* region 339 */ + { { 1, 74, 79 }, -8166, 26028, 790, 814, 54, 170 }, /* region 340 */ + { { 1, 80, 88 }, -8766, 23197, 592, 609, 61, 170 }, /* region 341 */ + { { 1, 89, 99 }, -10071, 18426, 601, 609, 62, 171 }, /* region 342 */ + { { 32769, 100, 108 }, -10566, 18426, 523, 529, 70, 172 }, /* region 343 */ + { { 32769, 36, 108 }, -8570, 20675, 472, 491, 74, 173 }, /* region 344 */ + { { 32769, 12, 108 }, -7730, 20675, 1839, 1901, 21, 174 }, /* region 345 */ + { { 1, 12, 44 }, -5868, 18426, 163, 254, 102, 175 }, /* region 346 */ + { { 1, 45, 51 }, -6418, 20675, 261, 393, 85, 175 }, /* region 347 */ + { { 1, 52, 58 }, -7333, 23197, 190, 229, 104, 175 }, /* region 348 */ + { { 1, 59, 66 }, -8100, 23197, 168, 193, 108, 175 }, /* region 349 */ + { { 1, 67, 70 }, -8576, 23197, 138, 157, 115, 175 }, /* region 350 */ + { { 1, 71, 80 }, -9103, 23197, 166, 180, 112, 175 }, /* region 351 */ + { { 32769, 81, 108 }, -10074, 23197, 135, 151, 117, 175 }, /* region 352 */ + { { 1, 12, 65 }, -7053, 16422, 23, 10953, 4, 176 }, /* region 353 */ + { { 32769, 66, 108 }, -7755, 20675, 11, 11753, 3, 176 }, /* region 354 */ + { { 1, 12, 48 }, -4798, 29204, 1132, 1301, 31, 177 }, /* region 355 */ + { { 32769, 49, 108 }, -5988, 29204, 1099, 1184, 36, 177 }, /* region 356 */ + { { 1, 12, 83 }, -7241, 20675, 419, 460, 76, 178 }, /* region 357 */ + { { 32769, 84, 108 }, -10123, 20675, 0, 31, 139, 178 }, /* region 358 */ + { { 1, 55, 60 }, -7053, 18426, 356, 402, 82, 179 }, /* region 359 */ + { { 1, 61, 69 }, -7574, 18426, 514, 548, 67, 179 }, /* region 360 */ + { { 1, 70, 79 }, -8174, 18426, 505, 529, 71, 179 }, /* region 361 */ + { { 32769, 80, 108 }, -9233, 23197, 178, 191, 109, 179 }, /* region 362 */ + { { 32769, 36, 96 }, -7730, -24285, 1839, 1901, 21, 180 }, /* region 363 */ + { { 1, 12, 83 }, -6006, 16422, 838, 922, 47, 181 }, /* region 364 */ + { { 1, 84, 93 }, -8406, 18426, 209, 230, 103, 181 }, /* region 365 */ + { { 32769, 94, 108 }, -10108, 16422, 0, 31, 139, 181 }, /* region 366 */ + { { 1, 12, 56 }, -5595, 23197, 1064, 1170, 38, 182 }, /* region 367 */ + { { 1, 57, 72 }, -5995, 23197, 930, 1014, 44, 182 }, /* region 368 */ + { { 32769, 73, 108 }, -7598, 23197, 726, 826, 52, 182 }, /* region 369 */ + { { 32769, 24, 108 }, -7600, 23197, 635, 735, 58, 62 }, /* region 370 */ + { { 1, 36, 83 }, -6006, 13045, 838, 922, 47, 183 }, /* region 371 */ + { { 1, 84, 93 }, -8406, 13045, 209, 230, 103, 183 }, /* region 372 */ + { { 32769, 94, 108 }, -10108, 13045, 0, 31, 139, 183 }, /* region 373 */ + { { 1, 12, 66 }, -6611, 23197, 437, 16584, 2, 184 }, /* region 374 */ + { { 1, 67, 87 }, -7202, 23197, 452, 16803, 0, 184 }, /* region 375 */ + { { 32769, 88, 108 }, -8473, 16422, 404, 16698, 1, 184 } /* region 376 */ +}; /* end Regions */ + +/*---------------------------------------------------------------------------- + * Programs + *---------------------------------------------------------------------------- +*/ +const S_PROGRAM eas_programs[] = +{ + { 7864320, 0 } /* program 0 */ +}; /* end Programs */ + +/*---------------------------------------------------------------------------- + * Banks + *---------------------------------------------------------------------------- +*/ +const S_BANK eas_banks[] = +{ + { /* bank 0 */ + 30976, + { + 291, 324, 314, 334, 202, 319, 95, 195, + 107, 92, 371, 89, 87, 85, 135, 82, + 200, 192, 130, 267, 193, 302, 207, 210, + 128, 125, 190, 120, 118, 213, 221, 271, + 80, 78, 308, 164, 220, 310, 166, 167, + 186, 182, 181, 179, 160, 178, 176, 115, + 155, 153, 151, 149, 75, 73, 374, 111, + 252, 254, 258, 305, 256, 157, 146, 137, + 249, 237, 245, 241, 274, 262, 260, 265, + 172, 171, 309, 277, 284, 307, 136, 344, + 173, 168, 345, 353, 346, 70, 110, 311, + 357, 144, 104, 67, 364, 367, 64, 288, + 142, 140, 98, 355, 133, 123, 61, 113, + 285, 280, 279, 278, 370, 286, 359, 283, + 101, 236, 163, 235, 234, 233, 232, 231, + 162, 363, 230, 281, 165, 229, 109, 228 + } + } +}; /* end Banks */ + +/*---------------------------------------------------------------------------- + * Samples + *---------------------------------------------------------------------------- +*/ + +const EAS_SAMPLE eas_samples[] = +{ + 0, 0, -3, -4, -6, -8, -10, -12, -12, -11, -8, -3, 3, 7, 10, 14, + 16, 16, 15, 12, 9, 4, -4, -12, -18, -21, -21, -19, -18, -15, -10, -3, + 10, 20, 34, 44, 51, 52, 48, 43, 38, 26, 8, -15, -37, -52, -61, -64, + -66, -64, -59, -47, -31, -13, 4, 18, 30, 37, 40, 36, 30, 24, 19, 11, + -2, -17, -24, -28, -28, -21, -18, -16, -10, -3, 12, 27, 39, 49, 53, 53, + 50, 43, 37, 25, 11, -11, -31, -46, -57, -63, -66, -63, -57, -46, -34, -19, + -3, 13, 27, 35, 39, 37, 32, 26, 20, 11, 0, -13, -20, -24, -25, -21, + -19, -14, -8, -2, 9, 23, 37, 47, 53, 52, 49, 42, 35, 25, 13, -6, + -28, -48, -60, -67, -67, -64, -60, -51, -39, -23, -7, 10, 23, 35, 39, 38, + 32, 26, 21, 15, 4, -9, -20, -22, -21, -19, -14, -11, -5, 1, 9, 19, + 31, 45, 51, 52, 47, 39, 35, 25, 15, -3, -23, -42, -58, -70, -71, -66, + -60, -51, -43, -30, -13, 6, 22, 32, 40, 40, 38, 33, 27, 19, 9, -5, + -17, -25, -26, -22, -16, -11, -8, -4, 7, 21, 35, 48, 53, 56, 50, 43, + 34, 22, 13, -2, -22, -44, -63, -75, -76, -69, -61, -51, -43, -29, -13, 6, + 23, 32, 41, 43, 41, 37, 26, 18, 7, -8, -19, -25, -25, -22, -15, -9, + -5, 0, 10, 24, 37, 44, 48, 52, 52, 46, 33, 20, 8, -5, -20, -38, + -59, -74, -79, -73, -67, -55, -43, -26, -11, 4, 18, 29, 41, 45, 45, 38, + 29, 21, 11, -3, -15, -25, -27, -22, -16, -11, -8, 0, 10, 25, 38, 44, + 47, 50, 53, 49, 37, 20, 7, -5, -17, -34, -58, -74, -82, -76, -67, -59, + -47, -29, -12, 3, 14, 25, 38, 50, 52, 46, 33, 23, 14, 3, -11, -25, + -28, -27, -21, -16, -13, -7, 8, 27, 41, 44, 45, 47, 54, 55, 44, 25, + 7, -7, -18, -32, -53, -71, -81, -81, -72, -67, -55, -37, -16, 3, 15, 23, + 34, 48, 57, 56, 44, 30, 19, 5, -12, -26, -33, -31, -25, -19, -16, -11, + 7, 25, 45, 49, 49, 52, 57, 59, 48, 32, 11, -5, -22, -39, -56, -73, + -82, -88, -84, -75, -60, -38, -16, 5, 21, 30, 39, 52, 59, 61, 53, 37, + 22, 7, -12, -28, -35, -36, -30, -22, -19, -16, -2, 21, 41, 52, 51, 52, + 57, 62, 54, 40, 18, -2, -18, -36, -54, -70, -80, -86, -87, -81, -69, -48, + -23, 0, 18, 28, 35, 45, 57, 64, 59, 46, 27, 9, -11, -24, -30, -32, + -29, -25, -20, -16, -5, 15, 36, 47, 50, 49, 53, 57, 54, 43, 24, 5, + -14, -32, -50, -65, -75, -82, -86, -86, -77, -58, -32, -8, 14, 25, 30, 41, + 56, 69, 69, 57, 36, 17, -4, -20, -29, -32, -27, -28, -27, -23, -13, 10, + 33, 46, 50, 48, 50, 54, 55, 48, 34, 16, -6, -29, -50, -68, -75, -78, + -82, -86, -84, -72, -47, -16, 11, 28, 34, 41, 51, 64, 70, 64, 49, 27, + 5, -17, -30, -33, -29, -29, -30, -30, -22, -2, 23, 41, 49, 51, 51, 54, + 56, 50, 42, 25, 4, -20, -44, -62, -70, -76, -83, -87, -89, -78, -56, -29, + 0, 19, 31, 38, 48, 63, 72, 71, 60, 40, 14, -12, -25, -29, -26, -27, + -33, -37, -30, -12, 11, 31, 41, 48, 51, 53, 55, 55, 51, 39, 17, -12, + -38, -58, -67, -74, -82, -92, -98, -89, -69, -41, -13, 10, 29, 41, 50, 64, + 72, 78, 74, 57, 29, 0, -18, -26, -28, -32, -38, -42, -38, -23, -3, 18, + 30, 42, 52, 58, 60, 61, 57, 48, 28, 2, -30, -51, -62, -70, -81, -94, + -101, -93, -75, -49, -23, -2, 18, 36, 50, 61, 69, 77, 78, 66, 42, 11, + -11, -22, -27, -32, -39, -46, -46, -36, -14, 8, 25, 41, 52, 59, 62, 63, + 62, 57, 38, 11, -20, -47, -61, -69, -78, -89, -98, -94, -80, -60, -37, -12, + 13, 33, 48, 62, 70, 78, 81, 72, 52, 23, 0, -14, -24, -33, -43, -49, + -49, -39, -23, -2, 15, 33, 47, 57, 63, 62, 62, 57, 40, 20, -7, -34, + -52, -65, -74, -83, -94, -92, -81, -63, -42, -22, 0, 21, 39, 54, 63, 73, + 79, 76, 61, 37, 12, -5, -19, -28, -37, -46, -51, -47, -32, -13, 7, 25, + 43, 54, 58, 60, 60, 61, 48, 27, 3, -25, -45, -60, -72, -81, -90, -92, + -84, -71, -52, -32, -9, 14, 33, 50, 61, 74, 80, 78, 67, 47, 24, 6, + -12, -26, -37, -50, -56, -52, -37, -19, -2, 16, 35, 52, 61, 63, 61, 59, + 51, 35, 12, -15, -38, -55, -66, -77, -83, -83, -80, -68, -55, -39, -19, 4, + 25, 41, 54, 66, 73, 75, 68, 52, 31, 11, -7, -22, -33, -46, -54, -51, + -39, -24, -5, 12, 32, 48, 56, 60, 61, 58, 50, 36, 17, -8, -30, -46, + -63, -74, -80, -80, -74, -69, -58, -43, -27, -5, 15, 31, 48, 60, 68, 72, + 68, 57, 39, 20, 2, -16, -30, -44, -51, -50, -41, -27, -10, 9, 28, 43, + 53, 57, 57, 54, 48, 37, 19, -3, -25, -41, -56, -69, -75, -73, -69, -63, + -59, -49, -32, -13, 9, 25, 37, 48, 58, 66, 65, 58, 42, 25, 8, -9, + -22, -36, -41, -43, -37, -26, -14, 4, 21, 37, 48, 52, 53, 47, 42, 34, + 21, 3, -18, -39, -51, -64, -67, -62, -60, -60, -58, -50, -36, -16, 3, 17, + 29, 41, 49, 58, 61, 60, 49, 29, 11, -7, -19, -28, -32, -33, -30, -25, + -14, 2, 19, 33, 41, 45, 42, 38, 36, 29, 20, 6, -14, -28, -43, -54, + -58, -55, -50, -51, -54, -51, -41, -22, -4, 11, 19, 30, 37, 47, 55, 56, + 51, 34, 16, 0, -15, -19, -23, -22, -22, -21, -14, 0, 15, 29, 39, 43, + 37, 31, 25, 21, 18, 6, -11, -28, -42, -50, -51, -48, -44, -41, -44, -43, + -41, -25, -8, 9, 16, 22, 26, 35, 43, 50, 48, 33, 16, -3, -13, -16, + -16, -15, -13, -11, -6, 5, 16, 28, 38, 41, 35, 24, 15, 12, 10, 4, + -11, -27, -39, -46, -46, -45, -40, -36, -36, -37, -38, -29, -13, 6, 16, 19, + 22, 27, 37, 43, 42, 32, 19, 2, -10, -13, -12, -7, -4, -2, 2, 10, + 18, 27, 36, 38, 32, 20, 9, 4, -2, -4, -11, -23, -34, -42, -42, -38, + -31, -28, -29, -32, -33, -30, -18, 0, 10, 12, 12, 17, 26, 35, 36, 31, + 19, 5, -6, -11, -9, -2, 7, 14, 13, 13, 16, 23, 31, 34, 29, 15, + -3, -8, -10, -10, -14, -20, -26, -30, -32, -30, -25, -18, -17, -24, -31, -32, + -26, -11, 2, 7, 8, 9, 17, 25, 29, 28, 21, 9, -2, -7, -5, 4, + 12, 21, 24, 23, 25, 26, 29, 31, 27, 15, -2, -15, -21, -23, -23, -23, + -28, -30, -31, -27, -19, -10, -9, -13, -21, -22, -20, -11, -4, -3, -5, -2, + 5, 13, 17, 17, 16, 10, 6, 0, 3, 11, 23, 32, 33, 30, 28, 27, + 24, 24, 19, 9, -6, -19, -29, -29, -26, -20, -19, -22, -24, -23, -16, -10, + -9, -14, -20, -24, -21, -16, -10, -6, -5, 1, 5, 11, 12, 13, 11, 8, + 6, 1, 4, 9, 23, 33, 39, 36, 32, 32, 28, 22, 17, 7, -7, -22, + -31, -33, -31, -24, -19, -18, -18, -16, -13, -7, -6, -8, -14, -21, -24, -20, + -15, -12, -9, -6, 0, 4, 6, 8, 8, 5, 5, 2, 7, 15, 27, 37, + 42, 45, 41, 39, 32, 22, 13, 3, -11, -26, -37, -41, -37, -29, -21, -18, + -15, -11, -6, -2, -2, -4, -7, -13, -16, -20, -21, -16, -14, -10, -6, -3, + -3, 0, 3, 2, 3, 3, 9, 18, 32, 41, 46, 49, 44, 43, 35, 24, + 12, 1, -14, -27, -39, -40, -36, -31, -22, -16, -13, -6, -3, -3, -4, -9, + -9, -13, -16, -20, -21, -16, -15, -11, -6, -4, -4, -5, -5, -3, -3, 0, + 10, 19, 33, 44, 51, 56, 52, 50, 40, 23, 11, -6, -19, -30, -40, -43, + -40, -35, -24, -16, -7, 2, 6, 5, 1, -6, -9, -9, -9, -12, -19, -21, + -21, -17, -9, -7, -9, -11, -15, -14, -9, -7, 7, 19, 36, 51, 57, 61, + 59, 56, 48, 33, 13, -8, -24, -35, -45, -51, -46, -38, -26, -14, -7, 3, + 11, 15, 12, 3, -5, -7, -6, -9, -15, -22, -25, -23, -17, -13, -12, -16, + -19, -21, -18, -12, 3, 21, 38, 50, 58, 67, 65, 64, 55, 41, 21, -4, + -25, -38, -46, -50, -49, -43, -33, -23, -11, 3, 14, 19, 16, 8, 0, -2, + -2, 0, -8, -19, -27, -30, -25, -22, -20, -20, -22, -25, -24, -16, 1, 22, + 43, 56, 62, 67, 68, 65, 60, 46, 24, -3, -25, -40, -45, -49, -50, -46, + -37, -23, -10, 1, 12, 20, 20, 14, 7, 2, 3, 3, -4, -15, -26, -31, + -30, -27, -26, -26, -29, -33, -33, -25, -8, 17, 41, 57, 65, 71, 73, 73, + 66, 53, 33, 5, -23, -41, -48, -50, -48, -48, -40, -30, -14, 1, 12, 21, + 24, 18, 13, 6, 5, 5, 0, -11, -25, -37, -39, -35, -31, -31, -33, -38, + -37, -29, -12, 15, 40, 59, 67, 71, 72, 73, 69, 59, 39, 14, -16, -38, + -50, -51, -50, -48, -45, -36, -21, -4, 12, 25, 30, 25, 18, 11, 11, 10, + 6, -8, -25, -39, -46, -42, -38, -37, -37, -40, -42, -34, -15, 13, 40, 57, + 66, 71, 72, 72, 69, 61, 45, 19, -10, -34, -46, -48, -47, -45, -45, -41, + -28, -12, 7, 23, 27, 25, 18, 15, 17, 17, 12, 1, -20, -37, -47, -50, + -46, -45, -44, -45, -46, -41, -21, 7, 37, 60, 69, 73, 72, 72, 72, 67, + 52, 25, -6, -33, -47, -50, -47, -47, -47, -45, -35, -16, 6, 23, 31, 30, + 24, 23, 24, 25, 18, 4, -15, -33, -50, -56, -57, -53, -48, -49, -49, -45, + -29, 2, 35, 58, 68, 71, 72, 74, 73, 68, 56, 34, 5, -26, -43, -48, + -45, -42, -46, -46, -41, -24, 0, 21, 33, 34, 31, 25, 27, 27, 19, 6, + -14, -36, -55, -64, -64, -60, -50, -47, -45, -44, -31, -4, 32, 58, 71, 72, + 68, 70, 70, 66, 57, 36, 11, -20, -43, -50, -48, -41, -37, -42, -40, -28, + -5, 21, 36, 38, 34, 26, 29, 28, 20, 8, -13, -33, -52, -68, -69, -65, + -55, -49, -47, -44, -31, -3, 30, 55, 67, 70, 68, 70, 70, 65, 57, 39, + 15, -13, -38, -49, -47, -40, -35, -39, -41, -30, -9, 17, 37, 44, 45, 38, + 32, 29, 22, 9, -10, -34, -54, -70, -75, -73, -64, -52, -45, -43, -31, -7, + 25, 53, 67, 72, 70, 72, 70, 62, 53, 38, 16, -10, -32, -49, -50, -43, + -35, -33, -36, -29, -10, 16, 35, 46, 46, 41, 35, 30, 23, 10, -10, -34, + -53, -69, -75, -74, -66, -53, -45, -42, -34, -13, 17, 46, 63, 68, 66, 63, + 65, 63, 54, 43, 24, 0, -20, -40, -43, -42, -36, -32, -32, -28, -16, 7, + 29, 47, 52, 47, 39, 31, 21, 10, -9, -30, -50, -66, -78, -77, -71, -59, + -49, -42, -34, -17, 9, 37, 56, 66, 66, 62, 62, 61, 56, 45, 30, 7, + -13, -31, -39, -40, -36, -33, -32, -28, -18, 1, 21, 41, 54, 52, 44, 36, + 26, 13, -8, -29, -48, -66, -76, -80, -74, -64, -55, -45, -34, -18, 5, 29, + 50, 65, 68, 66, 64, 60, 59, 47, 33, 15, -5, -23, -37, -43, -41, -37, + -35, -31, -21, -4, 16, 36, 52, 59, 54, 45, 33, 17, -5, -25, -45, -60, + -74, -83, -82, -71, -59, -49, -37, -23, -2, 22, 43, 59, 66, 65, 64, 60, + 58, 50, 39, 23, 2, -17, -32, -39, -40, -38, -35, -32, -23, -6, 14, 33, + 49, 59, 58, 49, 34, 16, -5, -25, -43, -60, -74, -83, -83, -76, -63, -53, + -40, -24, -5, 16, 36, 54, 65, 67, 65, 61, 57, 52, 43, 27, 9, -12, + -26, -37, -40, -39, -36, -32, -28, -13, 6, 27, 46, 58, 60, 52, 39, 23, + 5, -16, -36, -53, -66, -77, -84, -81, -72, -60, -45, -32, -15, 5, 25, 48, + 62, 69, 71, 69, 65, 58, 50, 34, 16, -6, -24, -36, -42, -45, -44, -39, + -33, -21, -2, 22, 43, 59, 64, 60, 47, 34, 17, -6, -28, -50, -66, -76, + -84, -86, -82, -72, -57, -40, -21, -2, 21, 42, 58, 66, 73, 76, 71, 64, + 53, 40, 26, 4, -17, -34, -45, -49, -48, -43, -38, -28, -10, 15, 40, 58, + 66, 64, 56, 42, 25, 4, -21, -44, -62, -73, -81, -87, -86, -78, -65, -47, + -31, -9, 15, 34, 52, 62, 72, 79, 80, 72, 61, 49, 34, 12, -12, -32, + -43, -49, -54, -55, -48, -36, -16, 10, 35, 56, 67, 71, 67, 54, 38, 15, + -10, -34, -57, -72, -85, -93, -97, -89, -76, -59, -40, -20, 8, 32, 50, 67, + 77, 87, 89, 81, 66, 52, 35, 16, -6, -30, -47, -58, -61, -57, -50, -37, + -19, 6, 29, 51, 65, 73, 73, 62, 44, 18, -6, -28, -49, -67, -81, -93, + -97, -94, -83, -65, -47, -28, -5, 19, 42, 61, 76, 87, 90, 88, 80, 66, + 48, 27, 3, -17, -40, -56, -65, -66, -58, -49, -30, -6, 17, 41, 59, 71, + 77, 70, 56, 36, 11, -13, -34, -53, -71, -89, -98, -100, -94, -79, -62, -44, + -21, 3, 27, 52, 74, 90, 98, 95, 86, 75, 59, 37, 12, -14, -35, -54, + -64, -67, -64, -51, -34, -10, 11, 32, 50, 65, 73, 71, 58, 37, 14, -10, + -29, -48, -64, -81, -93, -98, -94, -82, -63, -45, -26, -5, 16, 40, 65, 83, + 94, 94, 84, 75, 63, 46, 23, -3, -27, -47, -58, -64, -64, -56, -39, -17, + 3, 20, 38, 57, 71, 72, 61, 45, 24, 1, -19, -37, -56, -73, -91, -99, + -100, -92, -74, -53, -34, -16, 7, 31, 59, 82, 97, 101, 92, 78, 65, 48, + 29, 6, -21, -43, -55, -64, -66, -58, -40, -18, 3, 17, 32, 51, 69, 71, + 62, 45, 27, 6, -15, -34, -50, -64, -81, -93, -99, -96, -80, -59, -40, -23, + -4, 21, 50, 77, 94, 100, 93, 81, 67, 53, 36, 14, -12, -36, -53, -58, + -63, -56, -42, -22, -5, 10, 23, 42, 63, 70, 62, 47, 29, 13, -6, -27, + -43, -57, -72, -84, -98, -99, -87, -66, -44, -27, -11, 10, 38, 67, 91, 99, + 92, 82, 70, 57, 41, 21, -3, -27, -47, -58, -63, -58, -44, -23, -5, 7, + 17, 35, 55, 66, 61, 46, 29, 13, -4, -22, -39, -51, -65, -78, -90, -95, + -85, -69, -47, -30, -12, 9, 30, 57, 83, 96, 91, 81, 67, 57, 42, 26, + 6, -18, -39, -55, -62, -58, -43, -24, -8, 2, 14, 30, 47, 60, 60, 49, + 34, 17, 0, -16, -31, -43, -58, -71, -86, -93, -86, -72, -52, -32, -15, 3, + 22, 48, 76, 90, 89, 78, 69, 59, 46, 32, 14, -6, -27, -47, -57, -56, + -45, -29, -12, -5, 4, 18, 37, 54, 58, 51, 36, 21, 6, -8, -20, -33, + -52, -68, -84, -90, -85, -74, -58, -42, -22, 0, 20, 42, 67, 83, 87, 80, + 68, 58, 47, 34, 19, 0, -20, -40, -52, -53, -45, -27, -13, -4, 6, 17, + 33, 47, 53, 52, 38, 21, 3, -11, -24, -35, -50, -65, -80, -89, -85, -71, + -55, -39, -21, -2, 20, 39, 59, 74, 81, 75, 67, 57, 47, 38, 23, 4, + -17, -32, -43, -45, -39, -26, -14, -4, 4, 12, 26, 38, 47, 48, 35, 19, + 4, -10, -20, -29, -41, -56, -71, -78, -81, -71, -56, -43, -23, -6, 15, 35, + 49, 62, 72, 69, 63, 54, 45, 41, 28, 11, -11, -27, -37, -40, -35, -24, + -17, -7, 2, 9, 22, 35, 46, 49, 37, 21, 4, -9, -18, -27, -41, -55, + -71, -79, -79, -70, -53, -38, -23, -8, 9, 31, 46, 58, 63, 63, 59, 52, + 45, 40, 32, 14, -6, -24, -32, -31, -30, -23, -18, -12, 1, 9, 21, 31, + 41, 44, 33, 21, 5, -6, -20, -29, -43, -57, -69, -77, -73, -65, -52, -41, + -27, -8, 11, 32, 49, 57, 64, 61, 55, 47, 39, 36, 29, 13, -8, -25, + -36, -35, -26, -16, -9, -5, 1, 9, 22, 36, 45, 43, 33, 17, 1, -11, + -21, -32, -45, -57, -71, -78, -73, -61, -45, -33, -23, -8, 11, 31, 46, 53, + 57, 54, 48, 40, 34, 31, 27, 14, -4, -20, -29, -28, -22, -12, -4, 1, + 4, 8, 21, 34, 43, 43, 31, 17, 1, -11, -22, -31, -44, -59, -72, -78, + -70, -54, -40, -28, -19, -8, 10, 28, 45, 53, 57, 53, 43, 34, 28, 27, + 26, 18, 0, -18, -31, -29, -20, -11, -3, 2, 5, 10, 19, 31, 43, 44, + 34, 19, 2, -13, -23, -32, -43, -55, -68, -77, -73, -57, -41, -26, -15, -6, + 11, 28, 43, 52, 52, 49, 41, 33, 24, 22, 21, 14, 1, -14, -25, -24, + -18, -7, -2, 2, 7, 10, 20, 31, 40, 43, 33, 18, 3, -13, -24, -35, + -44, -55, -70, -78, -74, -59, -40, -26, -11, 1, 13, 29, 44, 53, 57, 54, + 45, 32, 24, 18, 13, 9, -4, -16, -26, -29, -22, -10, 1, 8, 13, 18, + 23, 35, 42, 45, 37, 21, 5, -14, -30, -41, -49, -57, -69, -77, -76, -61, + -39, -20, -5, 9, 20, 34, 47, 53, 55, 48, 39, 27, 14, 8, 3, 2, + -4, -15, -23, -24, -16, -3, 6, 11, 19, 24, 30, 34, 41, 43, 35, 18, + 1, -17, -31, -44, -52, -59, -68, -75, -73, -61, -38, -19, 1, 13, 23, 30, + 42, 52, 52, 47, 36, 23, 14, 7, 4, 0, -6, -11, -20, -24, -18, -5, + 7, 15, 18, 22, 28, 36, 43, 43, 38, 24, 4, -13, -30, -44, -55, -64, + -69, -77, -76, -65, -44, -19, 1, 15, 27, 35, 46, 53, 53, 46, 36, 23, + 11, 3, -5, -7, -9, -14, -20, -23, -19, -7, 11, 18, 21, 25, 30, 40, + 43, 43, 38, 24, 7, -14, -30, -41, -55, -65, -73, -77, -74, -66, -49, -24, + -2, 17, 29, 35, 44, 51, 54, 49, 35, 23, 11, 1, -6, -12, -15, -16, + -20, -24, -21, -10, 8, 21, 27, 33, 35, 42, 48, 47, 37, 23, 7, -12, + -28, -44, -60, -69, -75, -78, -74, -65, -49, -25, -2, 17, 30, 40, 48, 54, + 55, 48, 36, 20, 6, -4, -9, -14, -20, -22, -24, -21, -15, -6, 7, 21, + 32, 39, 43, 44, 49, 50, 38, 21, 4, -13, -28, -47, -62, -74, -77, -78, + -77, -65, -48, -26, -4, 15, 28, 40, 50, 56, 54, 46, 33, 20, 9, -2, + -10, -16, -21, -21, -23, -21, -15, -5, 9, 19, 30, 38, 42, 44, 46, 47, + 36, 22, 6, -10, -23, -39, -57, -74, -78, -79, -75, -65, -51, -33, -11, 9, + 25, 37, 46, 55, 56, 48, 34, 21, 10, 4, -4, -14, -20, -25, -24, -21, + -12, -3, 8, 17, 26, 36, 47, 50, 50, 47, 36, 25, 10, -5, -21, -40, + -57, -75, -82, -79, -75, -64, -51, -37, -16, 5, 25, 40, 48, 55, 55, 49, + 37, 25, 15, 6, -6, -18, -26, -29, -25, -20, -16, -7, 5, 17, 29, 39, + 49, 56, 56, 51, 39, 28, 15, 0, -17, -38, -58, -75, -86, -86, -80, -70, + -54, -37, -16, 7, 25, 42, 50, 55, 58, 52, 40, 25, 11, 2, -5, -14, + -21, -26, -26, -18, -12, -5, 4, 13, 25, 34, 45, 53, 55, 48, 39, 25, + 16, 3, -13, -31, -54, -70, -83, -85, -78, -68, -55, -38, -20, 1, 20, 36, + 46, 51, 55, 48, 39, 27, 17, 7, -5, -13, -20, -23, -23, -18, -10, -4, + 3, 10, 21, 29, 40, 48, 52, 50, 40, 28, 20, 10, -5, -24, -48, -67, + -82, -87, -81, -73, -56, -44, -25, -5, 15, 34, 46, 52, 55, 51, 39, 27, + 18, 7, -2, -13, -22, -25, -24, -16, -9, 1, 8, 13, 22, 30, 42, 48, + 50, 47, 38, 26, 15, 6, -8, -22, -41, -61, -77, -86, -81, -70, -54, -40, + -27, -8, 12, 31, 42, 49, 50, 48, 38, 26, 16, 7, -4, -11, -18, -22, + -21, -16, -9, 0, 9, 15, 21, 26, 35, 47, 50, 46, 36, 28, 18, 7, + -7, -22, -37, -53, -70, -81, -83, -72, -58, -43, -30, -14, 5, 22, 37, 44, + 46, 44, 37, 26, 17, 8, 2, -7, -12, -17, -16, -12, -6, 3, 8, 13, + 17, 22, 31, 42, 43, 43, 35, 29, 25, 14, 2, -17, -35, -51, -65, -77, + -80, -75, -63, -47, -34, -18, 4, 21, 32, 38, 41, 41, 36, 28, 17, 8, + 1, -9, -12, -16, -15, -9, -2, 8, 13, 15, 17, 23, 28, 39, 43, 38, + 30, 21, 17, 11, 4, -12, -28, -45, -60, -68, -71, -66, -58, -49, -38, -23, + -5, 15, 27, 34, 34, 32, 28, 23, 18, 13, 4, -2, -7, -9, -7, -4, + 5, 14, 16, 16, 14, 15, 24, 35, 39, 35, 23, 17, 15, 11, 8, -4, + -19, -37, -53, -62, -65, -62, -57, -53, -43, -31, -14, 5, 19, 27, 31, 28, + 26, 23, 20, 18, 11, 5, -2, -5, 0, 3, 8, 14, 16, 15, 11, 7, + 12, 23, 32, 32, 21, 12, 10, 13, 12, 6, -9, -27, -43, -50, -55, -53, + -51, -52, -44, -38, -23, -6, 7, 18, 22, 19, 16, 15, 16, 19, 17, 12, + 6, 3, 7, 10, 16, 20, 23, 20, 14, 8, 9, 17, 27, 26, 17, 6, + 3, 7, 10, 7, -5, -18, -32, -41, -46, -45, -45, -45, -44, -40, -30, -16, + -3, 8, 15, 12, 10, 11, 16, 19, 19, 16, 12, 10, 11, 15, 20, 25, + 26, 24, 18, 11, 6, 11, 17, 21, 15, 3, -6, -2, 4, 7, 2, -14, + -25, -32, -36, -38, -37, -37, -35, -33, -33, -25, -15, -4, 3, 4, 0, -3, + 2, 13, 21, 21, 20, 17, 19, 23, 27, 31, 33, 31, 24, 16, 4, 2, + 7, 13, 13, 3, -10, -9, 0, 8, 7, -3, -15, -22, -24, -30, -32, -37, + -39, -38, -37, -34, -28, -17, -8, -2, -4, -4, 4, 16, 26, 30, 26, 22, + 22, 25, 29, 31, 30, 29, 24, 17, 6, -2, 7, 10, 13, 4, -11, -15, + -10, 3, 8, 2, -10, -17, -17, -17, -23, -29, -35, -37, -34, -36, -35, -28, + -19, -10, -11, -14, -8, 8, 21, 26, 26, 21, 24, 31, 38, 40, 38, 37, + 33, 26, 15, 4, 1, 2, 1, -6, -19, -24, -18, -7, 2, 5, -4, -10, + -9, -6, -7, -16, -27, -33, -35, -38, -41, -38, -32, -22, -20, -18, -10, 4, + 20, 29, 31, 30, 28, 32, 38, 43, 42, 39, 34, 28, 14, 4, 1, 3, + 4, -5, -21, -30, -26, -14, 1, 3, -4, -8, -8, 0, 0, -8, -15, -26, + -29, -35, -40, -40, -36, -30, -28, -29, -22, -10, 9, 22, 28, 28, 27, 30, + 39, 46, 50, 50, 43, 33, 21, 9, 3, 3, 1, -10, -22, -35, -34, -22, + -8, 2, 0, -6, -7, 0, 5, -2, -9, -18, -28, -34, -41, -43, -39, -35, + -33, -33, -25, -12, 5, 19, 26, 29, 31, 31, 39, 46, 51, 52, 47, 38, + 27, 18, 10, 5, -3, -13, -22, -33, -36, -28, -16, -4, -2, -4, -6, 0, + 8, 7, 0, -12, -22, -33, -40, -42, -39, -37, -38, -39, -32, -17, 2, 15, + 24, 25, 28, 33, 39, 47, 51, 53, 51, 44, 35, 23, 15, 8, 1, -12, + -25, -37, -41, -33, -22, -11, -4, -5, -3, 3, 10, 13, 6, -5, -17, -28, + -38, -43, -44, -44, -44, -43, -36, -23, -7, 7, 20, 26, 29, 35, 43, 51, + 54, 58, 56, 52, 44, 29, 18, 9, -2, -12, -28, -39, -45, -38, -26, -16, + -7, -3, 1, 6, 12, 15, 12, 3, -11, -25, -37, -41, -43, -46, -47, -46, + -39, -28, -15, 0, 11, 21, 25, 31, 38, 46, 53, 60, 62, 59, 53, 42, + 32, 19, 6, -10, -27, -41, -47, -47, -39, -31, -21, -9, -2, 5, 11, 16, + 19, 13, 2, -15, -30, -35, -37, -43, -47, -49, -42, -32, -21, -11, 0, 8, + 19, 27, 38, 47, 51, 58, 63, 63, 59, 50, 41, 28, 10, -9, -26, -37, + -43, -44, -40, -33, -23, -11, 0, 6, 9, 14, 15, 13, 1, -15, -25, -32, + -34, -43, -49, -50, -43, -30, -20, -13, -9, 0, 10, 23, 36, 46, 52, 55, + 62, 65, 66, 61, 51, 36, 15, -7, -24, -34, -42, -45, -46, -42, -34, -20, + -5, 5, 11, 14, 16, 13, 2, -10, -18, -24, -31, -39, -49, -48, -42, -34, + -24, -18, -15, -8, 2, 13, 29, 42, 51, 57, 62, 65, 70, 69, 60, 45, + 20, -3, -24, -37, -43, -46, -49, -48, -39, -24, -6, 5, 12, 17, 20, 16, + 6, -9, -15, -21, -26, -38, -50, -56, -50, -37, -26, -23, -19, -14, -4, 11, + 27, 42, 54, 58, 63, 65, 68, 70, 63, 50, 26, 1, -21, -37, -43, -44, + -44, -44, -40, -28, -11, 5, 10, 16, 18, 14, 5, -12, -19, -22, -24, -33, + -47, -52, -52, -38, -25, -17, -17, -16, -10, 4, 22, 39, 53, 59, 62, 63, + 66, 68, 66, 55, 32, 9, -17, -34, -43, -42, -39, -38, -38, -31, -19, -3, + 10, 17, 19, 12, 3, -12, -21, -24, -24, -31, -40, -49, -52, -41, -30, -18, + -15, -17, -10, 0, 16, 33, 47, 59, 65, 64, 65, 67, 63, 56, 38, 13, + -12, -32, -41, -39, -35, -33, -32, -27, -17, -4, 8, 15, 16, 13, 4, -11, + -20, -25, -27, -32, -40, -48, -52, -46, -37, -25, -18, -16, -10, 1, 16, 33, + 49, 59, 66, 67, 65, 66, 62, 51, 38, 15, -9, -30, -38, -41, -33, -29, + -26, -23, -17, -5, 7, 16, 15, 14, 5, -9, -19, -27, -31, -34, -40, -47, + -52, -49, -40, -30, -22, -16, -8, 4, 19, 32, 46, 59, 67, 71, 69, 64, + 57, 49, 36, 17, -7, -27, -38, -40, -35, -28, -23, -19, -12, -5, 6, 12, + 16, 15, 10, -5, -19, -28, -32, -36, -39, -46, -53, -52, -45, -34, -25, -18, + -7, 6, 20, 33, 46, 60, 67, 74, 71, 65, 56, 46, 37, 18, -2, -20, + -33, -38, -38, -30, -22, -16, -12, -6, 2, 6, 15, 15, 11, 1, -11, -19, + -31, -37, -42, -46, -51, -54, -53, -46, -35, -26, -14, 3, 17, 33, 45, 57, + 67, 75, 77, 71, 62, 50, 36, 18, 0, -19, -31, -36, -37, -31, -23, -17, + -11, -6, 1, 6, 11, 15, 14, 8, -3, -16, -27, -37, -41, -47, -52, -58, + -60, -55, -46, -32, -16, 0, 17, 32, 46, 59, 70, 79, 80, 75, 65, 51, + 35, 20, 2, -15, -27, -38, -42, -36, -27, -17, -10, -4, 3, 7, 12, 18, + 19, 14, 5, -7, -22, -37, -46, -53, -57, -62, -67, -65, -58, -43, -22, 1, + 20, 35, 48, 60, 69, 79, 82, 79, 68, 53, 36, 21, 4, -11, -24, -36, + -40, -38, -31, -21, -14, -5, 1, 5, 11, 17, 22, 19, 14, -2, -17, -35, + -48, -55, -63, -67, -73, -72, -64, -49, -27, -4, 19, 36, 52, 64, 73, 81, + 85, 82, 72, 56, 36, 20, 3, -14, -24, -33, -36, -35, -32, -22, -13, -6, + 2, 7, 10, 15, 19, 19, 17, 6, -10, -29, -48, -58, -67, -71, -75, -78, + -72, -58, -35, -10, 16, 35, 52, 65, 74, 80, 86, 87, 79, 62, 39, 21, + 5, -11, -22, -33, -39, -39, -34, -25, -15, -7, 3, 8, 16, 17, 21, 22, + 19, 9, -6, -27, -47, -60, -71, -77, -80, -81, -73, -61, -39, -12, 16, 36, + 52, 63, 73, 80, 85, 87, 76, 59, 41, 23, 8, -7, -18, -29, -36, -38, + -33, -23, -13, -8, 1, 6, 14, 18, 19, 23, 23, 17, 1, -20, -43, -57, + -67, -78, -83, -89, -81, -67, -45, -19, 9, 35, 55, 67, 74, 80, 87, 91, + 83, 68, 44, 24, 6, -9, -21, -29, -36, -39, -39, -31, -20, -10, 1, 13, + 20, 26, 26, 27, 28, 22, 8, -16, -40, -60, -75, -86, -93, -95, -89, -75, + -52, -24, 7, 37, 57, 69, 77, 83, 90, 93, 85, 70, 48, 27, 8, -8, + -19, -26, -32, -35, -39, -37, -28, -17, -2, 9, 19, 21, 27, 31, 32, 29, + 12, -9, -32, -54, -71, -86, -94, -96, -90, -82, -62, -33, 2, 34, 56, 69, + 78, 87, 94, 94, 85, 69, 49, 29, 9, -10, -21, -27, -30, -33, -37, -36, + -29, -17, -5, 9, 19, 25, 27, 31, 33, 33, 21, -2, -25, -51, -71, -86, + -95, -95, -92, -85, -69, -42, -8, 27, 52, 67, 74, 83, 92, 95, 89, 75, + 56, 35, 16, -6, -17, -26, -28, -34, -41, -39, -37, -25, -9, 6, 20, 28, + 31, 37, 37, 34, 24, 3, -20, -46, -69, -85, -96, -99, -97, -89, -73, -47, + -11, 21, 45, 61, 73, 84, 92, 95, 89, 77, 61, 41, 20, -2, -13, -20, + -28, -36, -43, -46, -40, -30, -16, 0, 12, 24, 30, 38, 43, 41, 33, 13, + -14, -39, -63, -80, -93, -98, -100, -94, -76, -52, -19, 14, 38, 56, 70, 80, + 90, 94, 88, 75, 58, 40, 22, 6, -8, -19, -25, -33, -39, -41, -38, -31, + -19, -5, 7, 21, 31, 39, 45, 42, 32, 15, -8, -32, -55, -77, -93, -102, + -101, -94, -80, -57, -29, 5, 34, 54, 70, 78, 88, 96, 92, 80, 62, 41, + 24, 8, -9, -21, -32, -35, -38, -41, -39, -35, -22, -6, 6, 21, 31, 39, + 46, 44, 35, 18, -5, -27, -49, -70, -86, -97, -102, -96, -84, -58, -30, -2, + 26, 45, 62, 74, 82, 89, 89, 80, 66, 46, 28, 12, -3, -14, -26, -36, + -39, -42, -40, -36, -28, -15, 0, 17, 30, 37, 45, 48, 40, 23, 3, -20, + -43, -64, -81, -93, -98, -96, -85, -65, -38, -8, 20, 40, 55, 68, 80, 88, + 88, 82, 68, 54, 35, 18, 2, -12, -24, -35, -40, -45, -45, -41, -33, -20, + -4, 15, 31, 41, 49, 52, 48, 32, 13, -14, -38, -59, -77, -92, -101, -102, + -91, -70, -45, -15, 15, 38, 53, 65, 77, 89, 91, 85, 71, 52, 38, 21, + 5, -12, -26, -36, -42, -45, -45, -43, -34, -22, -7, 9, 26, 39, 50, 56, + 50, 34, 14, -7, -29, -50, -69, -84, -96, -98, -90, -72, -50, -24, 7, 32, + 48, 57, 68, 84, 91, 88, 74, 58, 44, 30, 11, -9, -26, -38, -41, -46, + -45, -44, -38, -23, -7, 9, 24, 36, 49, 55, 51, 35, 18, -3, -24, -45, + -64, -78, -89, -93, -90, -75, -54, -29, 0, 23, 42, 54, 67, 80, 90, 91, + 81, 65, 48, 31, 13, -5, -24, -41, -50, -53, -51, -46, -42, -28, -10, 8, + 23, 36, 50, 59, 56, 44, 26, 8, -13, -35, -56, -77, -89, -94, -92, -80, + -61, -39, -11, 14, 33, 50, 63, 77, 88, 89, 81, 67, 54, 38, 21, 1, + -23, -39, -50, -54, -53, -46, -42, -31, -17, 1, 17, 33, 46, 56, 56, 46, + 33, 16, -4, -24, -46, -67, -82, -92, -94, -87, -67, -45, -19, 4, 22, 43, + 62, 76, 87, 90, 87, 76, 59, 40, 20, 1, -22, -40, -55, -62, -58, -50, + -40, -29, -17, -3, 14, 33, 49, 59, 58, 49, 35, 21, 2, -17, -39, -59, + -76, -90, -93, -86, -70, -49, -29, -8, 12, 33, 57, 75, 84, 87, 84, 78, + 65, 47, 28, 6, -18, -39, -58, -65, -64, -57, -44, -33, -22, -10, 6, 26, + 44, 56, 56, 48, 40, 27, 11, -8, -30, -49, -65, -80, -86, -87, -72, -51, + -31, -13, 5, 24, 48, 70, 81, 86, 83, 79, 69, 51, 30, 8, -16, -37, + -55, -65, -67, -61, -48, -36, -21, -10, 5, 22, 40, 55, 58, 53, 43, 31, + 16, -2, -23, -45, -60, -74, -82, -86, -75, -56, -36, -16, 1, 21, 44, 65, + 81, 88, 85, 81, 72, 54, 33, 8, -18, -41, -58, -71, -74, -70, -56, -41, + -23, -6, 8, 23, 38, 53, 60, 59, 50, 37, 22, 1, -20, -41, -56, -69, + -79, -83, -78, -62, -42, -20, 2, 22, 41, 59, 77, 86, 87, 79, 67, 50, + 31, 10, -15, -36, -52, -63, -69, -69, -59, -41, -23, -9, 4, 15, 29, 44, + 55, 56, 53, 43, 27, 12, -8, -27, -44, -57, -68, -78, -77, -67, -48, -29, + -12, 12, 32, 52, 70, 79, 84, 82, 73, 59, 38, 15, -9, -33, -52, -63, + -71, -72, -66, -50, -30, -13, 2, 12, 27, 42, 50, 54, 54, 46, 34, 19, + -2, -19, -35, -47, -61, -71, -72, -66, -51, -36, -19, 5, 27, 46, 63, 74, + 79, 79, 70, 58, 41, 21, 3, -24, -44, -58, -66, -66, -65, -52, -36, -22, + -10, 4, 18, 34, 43, 49, 52, 48, 43, 31, 14, -4, -21, -35, -51, -61, + -66, -64, -56, -43, -29, -8, 16, 37, 54, 67, 72, 74, 70, 61, 46, 27, + 7, -19, -40, -56, -62, -62, -63, -55, -43, -26, -10, 3, 13, 26, 38, 44, + 47, 43, 39, 30, 19, 5, -12, -24, -40, -47, -51, -53, -51, -44, -32, -14, + 6, 24, 41, 54, 61, 63, 61, 56, 47, 32, 13, -9, -31, -46, -56, -53, + -54, -54, -48, -37, -18, -3, 8, 17, 27, 33, 38, 39, 39, 37, 30, 18, + 1, -16, -29, -35, -39, -42, -47, -47, -39, -22, -3, 14, 29, 42, 51, 57, + 56, 54, 45, 36, 20, -2, -23, -41, -50, -51, -52, -53, -51, -42, -27, -8, + 5, 12, 19, 28, 35, 40, 39, 40, 37, 28, 12, -7, -23, -28, -30, -37, + -43, -49, -45, -32, -15, 3, 19, 34, 45, 49, 49, 51, 47, 41, 26, 6, + -18, -34, -43, -45, -45, -48, -51, -49, -33, -15, -2, 8, 12, 19, 26, 33, + 38, 38, 38, 34, 25, 8, -11, -19, -20, -23, -32, -43, -48, -41, -24, -8, + 10, 21, 31, 38, 43, 47, 48, 45, 34, 16, -9, -31, -41, -42, -42, -46, + -52, -52, -40, -23, -6, 6, 11, 17, 24, 30, 35, 38, 39, 40, 29, 14, + -3, -14, -14, -15, -24, -36, -47, -45, -33, -15, 3, 14, 23, 29, 35, 39, + 44, 45, 38, 22, -3, -26, -38, -37, -37, -41, -50, -56, -45, -26, -8, 5, + 12, 16, 22, 27, 32, 39, 41, 41, 33, 17, 1, -9, -8, -8, -16, -30, + -41, -45, -35, -21, -5, 10, 18, 24, 28, 31, 38, 42, 39, 25, 2, -23, + -36, -36, -37, -39, -47, -53, -47, -31, -11, 3, 12, 16, 23, 27, 32, 37, + 40, 41, 33, 18, 2, -7, -8, -6, -10, -23, -36, -41, -35, -20, -6, 7, + 14, 17, 24, 29, 36, 42, 40, 28, 5, -20, -35, -38, -38, -39, -45, -51, + -46, -33, -15, 2, 13, 22, 27, 28, 27, 30, 37, 41, 35, 20, 5, -4, + -4, -2, -3, -13, -28, -35, -32, -23, -10, 3, 11, 14, 14, 20, 28, 37, + 40, 27, 7, -16, -31, -36, -37, -36, -41, -44, -45, -35, -18, 1, 12, 19, + 25, 26, 27, 31, 34, 39, 34, 20, 8, 0, 0, 1, 0, -9, -23, -33, + -34, -24, -10, 2, 8, 8, 10, 16, 27, 34, 35, 27, 10, -10, -27, -35, + -35, -34, -39, -46, -47, -38, -22, -3, 10, 19, 26, 31, 32, 32, 35, 41, + 39, 25, 9, -2, -3, -2, -2, -7, -19, -30, -33, -26, -14, -3, 6, 6, + 7, 12, 26, 37, 37, 26, 10, -8, -25, -35, -39, -39, -42, -47, -49, -42, + -27, -4, 12, 20, 29, 33, 36, 35, 35, 38, 37, 27, 10, -3, -6, -3, + -2, -7, -16, -24, -28, -24, -13, -4, 4, 5, 7, 9, 19, 30, 33, 28, + 12, -6, -24, -35, -40, -39, -42, -47, -47, -41, -26, -8, 10, 22, 31, 36, + 41, 39, 34, 33, 33, 29, 15, 2, -7, -8, -6, -6, -10, -18, -24, -24, + -15, -5, 6, 7, 7, 10, 17, 23, 23, 18, 9, -7, -23, -36, -42, -41, + -41, -45, -45, -39, -28, -11, 7, 21, 31, 36, 39, 39, 34, 31, 33, 29, + 19, 7, -5, -6, -6, -4, -6, -13, -17, -20, -16, -8, 1, 6, 7, 7, + 11, 16, 20, 18, 9, -7, -24, -37, -43, -42, -42, -42, -45, -41, -28, -11, + 7, 19, 28, 35, 40, 42, 38, 33, 29, 27, 21, 10, -2, -8, -8, -6, + -8, -11, -13, -16, -14, -8, 1, 5, 8, 9, 15, 19, 20, 18, 9, -4, + -18, -34, -42, -46, -47, -45, -47, -45, -36, -20, 0, 13, 26, 36, 45, 48, + 42, 35, 29, 28, 26, 20, 6, -6, -10, -10, -6, -7, -8, -10, -14, -10, + -7, 0, 6, 8, 13, 14, 16, 13, 7, -3, -13, -27, -37, -44, -49, -44, + -42, -40, -37, -25, -9, 9, 23, 31, 41, 44, 44, 37, 30, 27, 28, 27, + 15, 2, -7, -9, -6, -7, -9, -8, -13, -12, -8, -3, 4, 9, 13, 14, + 14, 11, 6, 0, -9, -23, -34, -43, -49, -46, -42, -40, -35, -29, -13, 3, + 19, 31, 41, 45, 43, 37, 31, 29, 30, 28, 19, 4, -5, -7, -7, -5, + -8, -7, -9, -11, -9, -4, 0, 6, 12, 14, 13, 9, 5, -3, -9, -19, + -28, -37, -48, -48, -45, -39, -34, -30, -18, -5, 12, 23, 34, 42, 44, 39, + 34, 32, 31, 33, 30, 18, 8, 1, -5, -6, -5, -5, -8, -13, -16, -14, + -7, 2, 7, 11, 10, 7, 4, -2, -7, -12, -22, -32, -45, -50, -45, -38, + -33, -30, -24, -13, 2, 20, 31, 39, 43, 42, 38, 36, 33, 33, 33, 24, + 14, 1, -8, -9, -7, -4, -5, -11, -16, -16, -11, -4, 2, 9, 8, 7, + 3, -3, -6, -9, -15, -24, -38, -47, -48, -42, -35, -32, -29, -21, -9, 11, + 27, 35, 42, 42, 42, 40, 40, 38, 36, 30, 19, 8, -4, -9, -8, -5, + -5, -12, -18, -20, -15, -5, -2, 3, 4, 5, 6, 1, -3, -8, -12, -19, + -31, -43, -47, -43, -36, -35, -36, -32, -19, 2, 19, 30, 38, 42, 46, 49, + 50, 47, 43, 39, 28, 16, 1, -10, -13, -11, -9, -14, -21, -25, -20, -10, + -4, 1, 3, 4, 7, 4, -3, -7, -7, -10, -23, -38, -47, -46, -41, -37, + -38, -37, -27, -11, 11, 24, 33, 38, 45, 50, 53, 52, 48, 43, 37, 25, + 10, -3, -11, -11, -11, -13, -20, -27, -29, -22, -14, -7, -2, 2, 6, 3, + -2, -3, 0, 0, -11, -28, -41, -45, -39, -35, -36, -39, -37, -24, -7, 11, + 22, 32, 41, 51, 55, 56, 54, 53, 50, 40, 23, 6, -5, -10, -11, -14, + -20, -28, -34, -33, -25, -16, -10, -5, 0, 0, 1, 2, 4, 5, -4, -16, + -29, -35, -37, -37, -35, -39, -39, -32, -19, 0, 13, 23, 36, 46, 54, 58, + 57, 59, 56, 47, 33, 16, 3, -5, -9, -11, -19, -29, -36, -39, -33, -26, + -18, -12, -7, -5, -2, 4, 11, 15, 10, -3, -18, -29, -32, -35, -36, -41, + -44, -40, -30, -18, 0, 13, 28, 41, 50, 59, 63, 66, 66, 60, 44, 26, + 11, 2, -6, -12, -19, -29, -38, -44, -41, -33, -25, -16, -9, -8, -6, 1, + 11, 18, 16, 8, -6, -17, -27, -32, -36, -39, -43, -44, -37, -30, -12, 8, + 26, 39, 46, 56, 64, 70, 72, 66, 51, 36, 18, 7, -4, -11, -18, -29, + -42, -50, -51, -45, -35, -23, -14, -10, -9, 0, 14, 27, 29, 20, 7, -5, + -15, -23, -30, -38, -45, -50, -49, -43, -30, -9, 13, 31, 41, 52, 65, 75, + 79, 77, 66, 50, 30, 13, 3, -6, -14, -26, -41, -53, -57, -54, -44, -32, + -23, -17, -13, -5, 10, 24, 31, 28, 20, 9, -5, -17, -26, -35, -40, -48, + -54, -53, -44, -23, 0, 21, 35, 46, 60, 73, 81, 83, 77, 60, 42, 25, + 11, 1, -11, -25, -42, -57, -64, -62, -54, -43, -33, -24, -17, -6, 9, 23, + 37, 37, 33, 19, 6, -9, -20, -30, -41, -49, -57, -59, -54, -38, -16, 10, + 31, 46, 58, 70, 78, 85, 84, 73, 54, 32, 16, 5, -5, -22, -41, -60, + -72, -71, -66, -54, -43, -30, -19, -6, 10, 25, 41, 47, 43, 32, 20, 7, + -10, -25, -40, -52, -61, -68, -65, -54, -34, -11, 16, 39, 57, 72, 80, 88, + 91, 83, 67, 46, 28, 13, 1, -18, -40, -62, -77, -77, -70, -63, -54, -43, + -30, -12, 7, 25, 40, 51, 51, 42, 31, 19, 3, -13, -32, -48, -60, -68, + -71, -63, -49, -28, -2, 23, 46, 66, 77, 86, 92, 89, 82, 62, 43, 22, + 7, -12, -39, -59, -74, -80, -78, -72, -63, -50, -35, -17, 5, 22, 35, 45, + 49, 49, 42, 31, 13, -7, -25, -38, -49, -59, -66, -65, -57, -42, -20, 8, + 34, 55, 69, 79, 84, 84, 84, 77, 64, 42, 18, -6, -29, -49, -69, -82, + -87, -87, -78, -66, -48, -27, -4, 17, 33, 47, 56, 60, 58, 49, 31, 8, + -18, -36, -47, -57, -67, -75, -74, -60, -36, -3, 25, 48, 65, 76, 83, 87, + 90, 88, 77, 52, 24, -4, -26, -42, -61, -77, -91, -94, -85, -70, -54, -34, + -11, 12, 30, 44, 56, 63, 66, 61, 43, 19, -8, -27, -39, -49, -62, -74, + -80, -71, -49, -20, 9, 34, 56, 70, 79, 86, 93, 96, 91, 70, 41, 11, + -18, -39, -58, -77, -91, -99, -95, -83, -65, -42, -17, 7, 27, 43, 57, 66, + 69, 67, 55, 32, 5, -21, -32, -42, -56, -73, -84, -79, -60, -33, -5, 21, + 44, 61, 72, 80, 92, 100, 99, 82, 54, 23, -10, -31, -51, -71, -87, -101, + -101, -92, -76, -49, -24, 1, 21, 37, 52, 66, 72, 72, 64, 44, 18, -7, + -23, -31, -45, -64, -79, -83, -71, -46, -18, 7, 27, 46, 62, 72, 85, 97, + 100, 92, 65, 35, 2, -22, -40, -60, -78, -92, -100, -96, -82, -59, -29, -6, + 15, 28, 44, 57, 65, 67, 65, 49, 27, 2, -17, -23, -35, -53, -70, -79, + -73, -52, -27, -4, 16, 35, 54, 65, 77, 88, 95, 93, 73, 44, 12, -17, + -38, -54, -74, -86, -97, -98, -89, -69, -37, -11, 9, 27, 42, 56, 65, 68, + 71, 59, 39, 13, -9, -20, -30, -45, -62, -74, -75, -60, -41, -18, 3, 23, + 43, 60, 74, 83, 91, 91, 78, 52, 22, -8, -30, -46, -66, -82, -90, -92, + -85, -70, -44, -17, 5, 22, 33, 45, 56, 60, 63, 56, 39, 21, 5, -9, + -20, -33, -49, -62, -70, -62, -47, -28, -9, 11, 29, 47, 60, 73, 83, 87, + 81, 62, 32, 4, -21, -39, -60, -78, -88, -90, -86, -73, -55, -28, -2, 18, + 30, 42, 50, 57, 58, 53, 44, 27, 15, 4, -10, -24, -40, -53, -59, -57, + -49, -38, -21, -3, 17, 34, 49, 62, 75, 81, 76, 63, 39, 15, -11, -31, + -50, -69, -79, -84, -82, -73, -57, -34, -7, 12, 26, 35, 42, 50, 56, 53, + 42, 31, 20, 13, 1, -16, -30, -43, -50, -51, -49, -42, -28, -11, 7, 23, + 38, 52, 65, 75, 73, 62, 43, 20, -2, -24, -43, -60, -69, -74, -74, -69, + -59, -42, -19, 2, 19, 27, 34, 41, 48, 50, 45, 39, 33, 25, 13, -3, + -18, -32, -42, -47, -49, -47, -40, -27, -8, 11, 28, 43, 57, 69, 73, 65, + 50, 31, 8, -16, -36, -53, -63, -70, -72, -70, -62, -46, -25, -6, 11, 23, + 30, 38, 45, 49, 50, 46, 42, 33, 22, 6, -13, -25, -37, -43, -48, -50, + -45, -35, -18, 2, 21, 39, 51, 61, 64, 63, 53, 38, 19, -6, -30, -49, + -59, -63, -65, -66, -64, -52, -31, -14, 2, 13, 25, 35, 42, 46, 46, 47, + 48, 44, 33, 15, -6, -21, -32, -37, -42, -48, -46, -39, -26, -8, 12, 31, + 45, 55, 58, 57, 51, 39, 22, 2, -21, -39, -49, -56, -59, -62, -59, -52, + -38, -22, -9, 5, 16, 25, 32, 40, 46, 51, 54, 52, 40, 24, 5, -11, + -20, -28, -35, -44, -48, -43, -33, -17, 0, 18, 32, 44, 48, 49, 48, 40, + 28, 11, -10, -26, -37, -45, -52, -58, -57, -51, -41, -29, -19, -10, 3, 15, + 27, 36, 40, 50, 59, 60, 51, 33, 15, 2, -11, -21, -34, -45, -49, -45, + -36, -25, -11, 8, 26, 38, 43, 42, 41, 39, 31, 16, -5, -24, -31, -37, + -43, -51, -54, -49, -40, -31, -24, -13, -3, 12, 22, 29, 33, 43, 55, 60, + 53, 37, 18, 5, -4, -12, -23, -35, -44, -42, -35, -26, -15, -2, 15, 26, + 33, 31, 31, 29, 28, 21, 6, -13, -27, -30, -37, -44, -48, -45, -39, -34, + -28, -18, -8, 4, 17, 23, 31, 40, 51, 58, 56, 42, 25, 12, 2, -7, + -16, -27, -36, -39, -37, -31, -21, -12, 3, 14, 21, 25, 23, 23, 25, 23, + 11, -4, -16, -21, -26, -34, -39, -40, -34, -31, -30, -23, -17, -3, 9, 16, + 23, 31, 42, 54, 57, 49, 29, 14, 7, 4, -3, -15, -26, -32, -32, -31, + -24, -16, -5, 5, 8, 10, 9, 10, 16, 19, 14, 4, -8, -14, -16, -21, + -29, -34, -33, -30, -29, -26, -20, -10, 2, 11, 20, 28, 40, 51, 55, 51, + 33, 17, 9, 6, 4, -9, -20, -28, -32, -29, -25, -20, -11, -2, 3, 4, + 1, 6, 12, 18, 16, 8, -5, -10, -14, -17, -20, -23, -25, -26, -28, -26, + -21, -12, -2, 6, 13, 20, 29, 40, 48, 48, 37, 23, 13, 8, 7, 3, + -6, -15, -22, -24, -24, -21, -16, -10, -6, -11, -15, -10, 1, 12, 15, 9, + 4, 3, 1, -5, -11, -18, -18, -22, -25, -29, -27, -19, -7, 4, 10, 14, + 21, 35, 46, 48, 40, 27, 16, 13, 11, 11, 5, -5, -14, -19, -21, -24, + -19, -14, -13, -17, -21, -21, -11, 1, 11, 12, 5, 3, 2, 5, 6, 0, + -6, -16, -20, -25, -26, -20, -12, -4, 1, 5, 11, 25, 38, 46, 41, 33, + 21, 17, 15, 15, 14, 8, -3, -14, -23, -27, -26, -21, -20, -22, -26, -25, + -20, -7, 5, 10, 10, 8, 5, 6, 6, 5, 1, -7, -14, -20, -23, -21, + -17, -11, -4, 2, 7, 17, 29, 38, 40, 37, 30, 23, 21, 20, 17, 14, + 5, -6, -19, -26, -29, -25, -24, -27, -28, -28, -26, -18, -4, 6, 9, 8, + 4, 5, 10, 12, 11, 3, -8, -15, -18, -18, -15, -11, -10, -5, 1, 8, + 16, 26, 35, 35, 31, 24, 22, 21, 22, 21, 16, 5, -12, -24, -30, -31, + -29, -31, -32, -31, -32, -22, -12, 0, 7, 11, 12, 10, 11, 15, 13, 10, + 2, -10, -13, -16, -17, -14, -14, -12, -6, 0, 10, 20, 26, 32, 30, 29, + 27, 26, 28, 26, 22, 13, -2, -16, -25, -30, -32, -33, -35, -35, -34, -28, + -19, -12, -5, 1, 5, 9, 11, 16, 17, 18, 11, 3, -4, -10, -12, -13, + -12, -13, -14, -10, -4, 8, 20, 27, 31, 31, 28, 29, 31, 30, 26, 17, + 5, -9, -23, -32, -37, -36, -34, -35, -34, -32, -24, -16, -7, 2, 4, 6, + 10, 16, 17, 15, 12, 8, 3, -5, -11, -11, -10, -11, -12, -11, -5, 3, + 13, 22, 30, 32, 27, 25, 25, 28, 27, 19, 7, -8, -22, -31, -34, -32, + -30, -28, -31, -31, -29, -21, -12, -4, 1, 1, 3, 10, 16, 18, 18, 14, + 12, 3, -5, -8, -7, -8, -10, -12, -12, -5, 6, 16, 26, 30, 29, 24, + 25, 26, 29, 23, 13, -2, -16, -26, -32, -33, -30, -30, -30, -30, -29, -25, + -18, -12, -5, -2, 2, 8, 14, 18, 16, 18, 14, 10, 4, 0, -5, -4, + -7, -9, -14, -10, -3, 9, 19, 26, 26, 23, 23, 26, 29, 28, 21, 7, + -10, -19, -25, -26, -27, -27, -29, -30, -32, -31, -27, -19, -13, -9, -7, 0, + 9, 18, 24, 26, 21, 13, 9, 8, 4, -2, -6, -9, -11, -11, -7, 4, + 16, 24, 26, 21, 19, 22, 26, 29, 23, 7, -10, -17, -19, -19, -23, -25, + -25, -25, -26, -26, -29, -26, -17, -14, -9, -7, 1, 12, 21, 26, 23, 18, + 13, 11, 11, 6, -4, -6, -10, -10, -9, -2, 9, 20, 25, 23, 18, 18, + 23, 26, 24, 10, -5, -13, -17, -14, -15, -17, -20, -24, -25, -29, -31, -32, + -28, -22, -16, -13, -8, 2, 14, 25, 27, 27, 22, 17, 15, 13, 10, 5, + -3, -6, -8, -6, 1, 11, 18, 20, 13, 11, 15, 19, 20, 14, 4, -4, + -12, -12, -12, -12, -14, -17, -23, -30, -35, -37, -31, -26, -20, -16, -12, -4, + 9, 22, 28, 26, 22, 17, 14, 15, 11, 8, 6, 2, 0, -2, 4, 11, + 16, 16, 12, 7, 8, 13, 13, 10, 1, -5, -8, -8, -8, -7, -7, -10, + -20, -26, -34, -36, -33, -31, -29, -25, -19, -12, 4, 18, 27, 28, 23, 22, + 18, 19, 17, 14, 9, 7, 4, 0, 2, 8, 14, 16, 12, 2, 0, 2, + 5, 6, 2, -4, -7, -6, -2, -2, -3, -5, -11, -19, -28, -37, -37, -37, + -34, -29, -24, -18, -8, 7, 20, 25, 25, 25, 22, 21, 21, 21, 19, 15, + 11, 6, 6, 6, 10, 11, 6, -2, -5, -5, -2, 0, 0, 0, -4, 0, + 2, 4, 2, -2, -8, -16, -25, -34, -39, -42, -39, -33, -26, -21, -16, -4, + 11, 22, 25, 27, 25, 23, 23, 24, 25, 22, 17, 13, 10, 9, 12, 10, + 4, -5, -12, -12, -11, -9, -8, -6, -5, 1, 4, 8, 10, 7, 4, -7, + -18, -26, -34, -39, -43, -42, -34, -28, -22, -13, 2, 14, 18, 21, 23, 27, + 30, 32, 31, 28, 23, 20, 20, 15, 14, 10, 2, -5, -13, -15, -16, -16, + -12, -12, -5, 1, 5, 8, 8, 10, 8, 0, -13, -23, -27, -33, -40, -44, + -41, -32, -24, -17, -6, 3, 9, 17, 22, 25, 29, 34, 39, 36, 32, 26, + 25, 23, 19, 11, 1, -9, -16, -18, -17, -19, -21, -17, -8, 0, 4, 7, + 8, 10, 11, 6, -4, -13, -21, -25, -35, -40, -41, -37, -26, -21, -13, -8, + -3, 6, 15, 23, 27, 35, 40, 41, 38, 33, 31, 29, 24, 16, 5, -5, + -16, -23, -23, -23, -18, -14, -6, 2, 3, 4, 7, 11, 13, 7, -5, -13, + -21, -25, -32, -40, -42, -37, -28, -21, -14, -13, -9, 1, 11, 22, 27, 33, + 39, 43, 42, 41, 33, 29, 25, 18, 7, -6, -17, -25, -24, -23, -21, -16, + -9, 2, 6, 5, 5, 10, 15, 12, 3, -8, -16, -22, -29, -39, -44, -42, + -34, -27, -22, -21, -17, -8, 4, 19, 29, 40, 48, 53, 51, 49, 43, 38, + 28, 19, 6, -9, -19, -27, -30, -30, -24, -16, -10, -3, 3, 6, 5, 6, + 9, 11, 7, 2, -7, -16, -25, -34, -37, -37, -33, -31, -28, -27, -24, -20, + -10, 8, 22, 35, 46, 52, 53, 54, 49, 46, 37, 23, 9, -7, -18, -24, + -30, -32, -28, -22, -12, -5, 1, 6, 4, 8, 9, 11, 9, 3, -3, -13, + -21, -32, -37, -38, -35, -34, -32, -32, -32, -27, -14, 5, 24, 38, 48, 55, + 56, 56, 54, 50, 40, 23, 4, -10, -18, -24, -26, -29, -29, -24, -17, -5, + 2, 9, 9, 6, 6, 7, 12, 11, 6, -7, -18, -30, -36, -36, -37, -35, + -38, -40, -41, -36, -24, -2, 20, 35, 47, 55, 60, 62, 62, 61, 47, 26, + 7, -12, -18, -22, -24, -28, -33, -31, -24, -12, -2, 7, 9, 5, 4, 5, + 11, 14, 13, 7, -8, -24, -37, -41, -38, -34, -37, -44, -50, -46, -33, -10, + 16, 36, 49, 57, 61, 64, 66, 65, 55, 34, 11, -14, -24, -26, -26, -24, + -30, -34, -33, -24, -7, 5, 12, 10, 5, 6, 9, 16, 22, 21, 10, -10, + -32, -45, -44, -38, -38, -47, -61, -60, -48, -21, 11, 34, 51, 60, 63, 66, + 70, 69, 63, 45, 18, -10, -27, -27, -23, -20, -28, -36, -37, -32, -17, -2, + 8, 9, 5, 6, 8, 15, 24, 30, 25, 5, -22, -41, -44, -40, -38, -50, + -64, -72, -62, -37, -3, 29, 52, 62, 66, 69, 73, 78, 72, 54, 26, -5, + -25, -32, -29, -24, -27, -34, -37, -36, -26, -11, 5, 15, 15, 11, 9, 15, + 26, 35, 33, 14, -14, -37, -49, -47, -45, -51, -63, -72, -66, -42, -10, 22, + 49, 64, 69, 69, 70, 75, 73, 59, 34, 4, -20, -30, -30, -25, -24, -29, + -36, -40, -35, -22, -2, 16, 20, 17, 14, 15, 27, 39, 41, 27, -4, -32, + -48, -54, -53, -59, -65, -73, -71, -55, -23, 16, 49, 67, 70, 68, 71, 77, + 78, 65, 40, 10, -17, -31, -34, -28, -24, -26, -31, -40, -40, -30, -10, 10, + 21, 18, 15, 16, 26, 40, 48, 40, 13, -20, -44, -55, -61, -63, -69, -76, + -76, -63, -35, 6, 41, 66, 75, 71, 71, 75, 77, 67, 44, 17, -10, -25, + -34, -35, -29, -27, -28, -35, -40, -35, -18, 1, 16, 21, 20, 19, 25, 38, + 47, 43, 23, -9, -34, -50, -59, -65, -72, -76, -74, -66, -43, -9, 27, 58, + 71, 69, 70, 71, 73, 67, 48, 25, 2, -18, -28, -33, -29, -25, -25, -31, + -39, -41, -28, -10, 8, 19, 20, 23, 27, 36, 45, 45, 31, 4, -22, -45, + -58, -67, -74, -75, -73, -66, -50, -21, 16, 49, 67, 73, 72, 72, 74, 69, + 53, 33, 9, -11, -25, -34, -35, -31, -27, -30, -38, -43, -33, -16, 6, 18, + 24, 27, 30, 38, 45, 46, 34, 10, -16, -40, -61, -70, -77, -76, -72, -66, + -52, -31, 2, 36, 60, 71, 72, 69, 71, 68, 57, 44, 20, 2, -17, -32, + -36, -33, -31, -31, -40, -46, -41, -29, -5, 16, 27, 34, 35, 41, 49, 51, + 41, 17, -11, -34, -56, -71, -79, -80, -76, -68, -57, -36, -10, 21, 48, 64, + 71, 71, 73, 69, 61, 48, 32, 11, -5, -21, -31, -34, -34, -37, -43, -48, + -45, -34, -14, 8, 25, 34, 41, 43, 49, 51, 43, 26, -2, -27, -49, -65, + -74, -77, -74, -70, -58, -42, -20, 9, 38, 56, 64, 67, 69, 71, 66, 53, + 37, 16, 1, -15, -30, -33, -39, -38, -41, -45, -42, -35, -15, 7, 25, 36, + 41, 45, 49, 49, 40, 23, 1, -20, -41, -59, -71, -75, -73, -65, -57, -45, + -28, -6, 22, 42, 56, 63, 67, 71, 70, 59, 44, 28, 12, -3, -19, -32, + -40, -41, -46, -47, -46, -37, -20, -2, 20, 34, 45, 48, 52, 53, 42, 26, + 4, -15, -35, -51, -65, -70, -70, -68, -61, -50, -34, -15, 9, 28, 45, 54, + 64, 71, 72, 67, 53, 40, 24, 8, -10, -27, -37, -41, -49, -53, -53, -42, + -25, -8, 14, 31, 43, 52, 56, 56, 46, 30, 11, -8, -26, -43, -59, -70, + -69, -68, -62, -55, -44, -25, -4, 17, 36, 48, 62, 69, 69, 67, 57, 47, + 33, 17, -2, -21, -33, -41, -47, -52, -53, -43, -25, -10, 9, 23, 36, 46, + 52, 54, 47, 31, 14, -4, -19, -32, -49, -57, -62, -60, -57, -58, -51, -39, + -19, 6, 23, 38, 51, 60, 68, 71, 67, 58, 44, 27, 7, -17, -32, -41, + -47, -52, -54, -46, -31, -12, 7, 22, 35, 45, 51, 53, 46, 33, 18, 2, + -12, -26, -42, -55, -61, -60, -56, -57, -55, -46, -29, -8, 10, 27, 42, 55, + 65, 70, 69, 61, 49, 34, 16, -5, -23, -36, -45, -51, -54, -50, -35, -17, + 3, 17, 29, 37, 44, 51, 47, 39, 21, 6, -8, -20, -31, -44, -52, -58, + -60, -58, -58, -51, -39, -22, -4, 14, 31, 48, 62, 70, 69, 65, 57, 45, + 28, 7, -15, -31, -44, -50, -53, -50, -39, -24, -6, 11, 24, 33, 43, 46, + 45, 35, 25, 14, 1, -13, -23, -35, -44, -53, -57, -59, -59, -57, -47, -33, + -15, 3, 21, 39, 56, 69, 72, 69, 60, 49, 36, 17, -5, -25, -42, -52, + -52, -48, -40, -26, -9, 9, 20, 29, 34, 39, 40, 34, 25, 16, 6, -6, + -16, -27, -34, -44, -50, -55, -58, -57, -52, -41, -27, -11, 11, 31, 51, 67, + 70, 68, 61, 53, 43, 30, 7, -14, -35, -49, -54, -50, -40, -26, -13, -2, + 9, 22, 30, 38, 41, 36, 28, 20, 12, 4, -5, -15, -26, -41, -52, -58, + -60, -60, -59, -55, -41, -25, -5, 19, 42, 62, 74, 75, 70, 63, 55, 43, + 22, -3, -24, -42, -51, -50, -45, -32, -22, -14, -2, 14, 28, 35, 34, 33, + 30, 25, 21, 11, 4, -6, -18, -32, -46, -56, -61, -61, -62, -60, -51, -39, + -16, 11, 37, 58, 70, 75, 72, 67, 58, 46, 31, 10, -17, -35, -48, -49, + -41, -28, -17, -14, -7, 4, 18, 28, 32, 29, 27, 21, 19, 16, 7, 2, + -11, -22, -35, -48, -57, -61, -60, -60, -56, -47, -30, -5, 23, 48, 63, 72, + 75, 71, 64, 53, 39, 20, -2, -22, -40, -48, -45, -34, -21, -17, -10, -4, + 10, 22, 27, 28, 29, 26, 26, 22, 14, 7, -3, -14, -30, -46, -59, -65, + -65, -65, -64, -56, -41, -17, 15, 42, 62, 73, 77, 75, 69, 57, 43, 25, + 6, -12, -31, -44, -46, -37, -24, -16, -11, -3, 6, 20, 24, 23, 24, 23, + 25, 23, 16, 9, 1, -10, -23, -41, -56, -63, -67, -67, -66, -59, -47, -25, + 3, 32, 54, 70, 75, 76, 70, 62, 47, 32, 15, -3, -21, -38, -44, -41, + -31, -21, -15, -11, -2, 8, 18, 24, 27, 28, 29, 29, 24, 17, 8, -2, + -17, -35, -54, -66, -73, -74, -71, -66, -55, -35, -6, 24, 50, 69, 77, 79, + 74, 63, 51, 38, 22, 2, -17, -35, -42, -39, -32, -24, -17, -11, -5, 6, + 13, 20, 28, 31, 33, 29, 23, 15, 10, 3, -12, -30, -51, -65, -73, -75, + -71, -67, -58, -41, -18, 11, 38, 60, 75, 77, 74, 64, 53, 42, 31, 15, + -7, -25, -38, -40, -37, -29, -24, -15, -11, -2, 9, 17, 28, 33, 36, 33, + 27, 18, 13, 4, -8, -26, -48, -65, -75, -76, -72, -68, -58, -43, -18, 11, + 37, 58, 72, 76, 73, 63, 51, 40, 28, 13, -6, -23, -35, -41, -40, -33, + -24, -16, -9, -2, 7, 18, 29, 38, 42, 38, 31, 21, 11, 3, -10, -26, + -47, -65, -75, -79, -75, -69, -58, -39, -19, 7, 33, 54, 71, 77, 75, 66, + 52, 39, 27, 15, -2, -22, -35, -41, -41, -36, -27, -17, -8, 1, 11, 22, + 33, 41, 47, 45, 35, 21, 11, 4, -7, -24, -46, -66, -77, -81, -79, -73, + -62, -44, -24, -2, 23, 47, 69, 79, 79, 70, 57, 45, 33, 20, 5, -18, + -36, -43, -41, -37, -32, -23, -14, -3, 8, 20, 34, 45, 53, 52, 41, 27, + 16, 7, -5, -24, -47, -69, -83, -86, -84, -74, -62, -44, -22, 1, 24, 47, + 66, 78, 76, 69, 57, 43, 31, 17, 5, -13, -33, -43, -46, -41, -31, -22, + -12, 0, 11, 24, 39, 49, 57, 58, 48, 30, 15, 4, -8, -26, -52, -74, + -86, -89, -83, -74, -60, -43, -21, 1, 22, 45, 65, 78, 79, 68, 54, 40, + 26, 17, 7, -9, -31, -45, -46, -40, -31, -21, -11, 0, 8, 21, 39, 51, + 60, 60, 52, 36, 19, 4, -9, -25, -49, -71, -87, -92, -89, -79, -63, -45, + -24, 0, 22, 43, 65, 75, 80, 70, 57, 44, 30, 16, 2, -14, -31, -46, + -52, -47, -35, -21, -9, 1, 12, 26, 44, 59, 68, 68, 59, 42, 22, 6, + -11, -29, -49, -72, -87, -96, -95, -86, -67, -46, -23, -4, 16, 38, 59, 76, + 82, 74, 61, 45, 31, 20, 3, -14, -30, -44, -51, -51, -41, -26, -11, 3, + 13, 25, 44, 61, 71, 72, 59, 45, 28, 9, -10, -33, -53, -70, -83, -93, + -96, -91, -74, -53, -27, -6, 15, 35, 53, 71, 80, 77, 66, 51, 34, 20, + 3, -15, -30, -45, -53, -55, -48, -32, -17, 1, 16, 29, 47, 62, 73, 77, + 67, 50, 30, 9, -10, -32, -55, -73, -86, -93, -94, -90, -76, -54, -27, -4, + 17, 32, 48, 64, 74, 78, 68, 55, 38, 17, 1, -15, -28, -39, -47, -52, + -49, -37, -21, -3, 16, 31, 46, 61, 70, 75, 70, 55, 36, 13, -9, -32, + -56, -72, -84, -89, -93, -91, -81, -61, -30, -5, 18, 32, 45, 58, 71, 76, + 70, 57, 40, 18, 1, -17, -28, -35, -45, -52, -50, -39, -25, -7, 15, 33, + 48, 60, 67, 73, 70, 60, 42, 19, -8, -34, -57, -69, -77, -83, -87, -92, + -85, -66, -39, -10, 12, 27, 39, 52, 62, 73, 72, 61, 46, 25, 4, -14, + -27, -34, -41, -46, -48, -43, -30, -11, 14, 38, 53, 63, 66, 69, 72, 65, + 48, 23, -4, -31, -56, -72, -81, -83, -87, -91, -87, -72, -46, -15, 11, 28, + 40, 50, 60, 71, 75, 69, 54, 32, 8, -13, -29, -39, -45, -48, -50, -48, + -40, -21, 9, 37, 57, 66, 71, 74, 75, 71, 55, 32, 2, -29, -55, -73, + -81, -84, -87, -89, -88, -75, -49, -19, 10, 29, 39, 48, 53, 62, 72, 68, + 58, 35, 9, -11, -27, -34, -39, -42, -44, -46, -41, -26, 5, 35, 56, 65, + 69, 72, 73, 72, 59, 37, 9, -22, -50, -71, -83, -83, -83, -86, -88, -81, + -55, -24, 5, 24, 37, 48, 54, 59, 64, 66, 59, 41, 17, -9, -27, -36, + -38, -39, -42, -45, -41, -28, -2, 28, 53, 65, 68, 71, 71, 70, 58, 40, + 16, -14, -46, -67, -79, -81, -80, -83, -87, -83, -64, -36, -4, 19, 35, 46, + 51, 58, 65, 69, 64, 49, 26, -2, -25, -38, -41, -39, -40, -43, -45, -33, + -8, 24, 52, 65, 72, 74, 72, 66, 55, 40, 20, -7, -38, -65, -80, -85, + -80, -82, -84, -82, -65, -38, -9, 13, 29, 41, 49, 57, 62, 64, 59, 48, + 29, 6, -19, -36, -39, -37, -35, -38, -39, -31, -11, 19, 47, 63, 70, 71, + 71, 65, 55, 38, 17, -4, -33, -58, -76, -83, -79, -79, -80, -82, -70, -46, + -19, 8, 25, 36, 43, 51, 59, 63, 62, 50, 34, 14, -9, -27, -35, -38, + -36, -38, -39, -30, -15, 10, 34, 52, 67, 73, 74, 68, 54, 37, 21, 2, + -21, -45, -68, -78, -81, -81, -80, -79, -70, -51, -28, -4, 17, 32, 40, 48, + 56, 59, 57, 46, 34, 18, 3, -20, -34, -39, -35, -31, -30, -26, -13, 8, + 31, 48, 61, 67, 69, 66, 53, 38, 16, -4, -23, -41, -58, -72, -78, -80, + -76, -74, -64, -50, -33, -8, 12, 28, 35, 41, 50, 57, 53, 44, 31, 20, + 10, -8, -24, -34, -34, -30, -25, -21, -13, 5, 22, 38, 52, 61, 66, 65, + 53, 36, 15, -4, -18, -33, -45, -61, -73, -79, -78, -72, -62, -49, -33, -13, + 3, 19, 29, 38, 48, 52, 49, 41, 29, 22, 14, 2, -11, -25, -27, -25, + -20, -15, -8, 4, 19, 30, 42, 53, 57, 61, 50, 32, 15, -7, -18, -27, + -37, -50, -65, -73, -72, -66, -57, -49, -37, -19, -3, 13, 23, 32, 41, 44, + 41, 35, 29, 26, 21, 10, -2, -13, -21, -18, -14, -8, -4, 3, 12, 21, + 29, 42, 51, 54, 49, 32, 14, -5, -15, -22, -28, -39, -55, -69, -68, -62, + -52, -44, -37, -25, -11, 4, 16, 24, 32, 37, 35, 28, 23, 23, 23, 18, + 8, -4, -12, -12, -8, -2, 5, 9, 14, 18, 23, 31, 41, 45, 43, 29, + 11, -8, -18, -23, -21, -29, -43, -60, -65, -58, -50, -39, -32, -26, -17, -6, + 8, 18, 25, 31, 29, 24, 17, 20, 24, 25, 19, 8, 0, -5, -3, 4, + 11, 13, 12, 14, 16, 22, 31, 38, 37, 27, 9, -11, -22, -24, -22, -25, + -36, -50, -57, -53, -46, -37, -30, -24, -17, -9, 1, 10, 16, 20, 19, 17, + 13, 14, 21, 24, 24, 19, 10, 8, 9, 13, 18, 20, 15, 12, 11, 14, + 21, 27, 30, 21, 8, -12, -23, -24, -22, -20, -29, -40, -49, -47, -41, -33, + -26, -23, -20, -16, -11, -2, 7, 12, 14, 14, 13, 14, 19, 26, 30, 26, + 20, 11, 11, 16, 21, 26, 22, 18, 15, 14, 15, 19, 20, 16, 4, -15, + -29, -32, -27, -21, -24, -34, -40, -41, -33, -28, -24, -21, -20, -15, -14, -10, + -5, 1, 7, 10, 10, 12, 18, 26, 36, 34, 27, 21, 17, 20, 23, 25, + 24, 19, 11, 10, 9, 12, 16, 14, 3, -16, -32, -34, -27, -19, -20, -27, + -34, -35, -31, -27, -22, -18, -18, -19, -19, -20, -15, -7, 2, 6, 8, 9, + 18, 26, 38, 41, 37, 28, 21, 23, 25, 27, 25, 20, 13, 7, 3, 5, + 9, 11, 4, -14, -31, -35, -29, -20, -18, -23, -26, -32, -29, -25, -23, -15, + -17, -18, -21, -25, -23, -15, -6, 0, 5, 6, 16, 25, 37, 45, 43, 36, + 27, 25, 28, 30, 29, 26, 16, 7, -2, -2, 2, 3, -2, -15, -31, -38, + -35, -23, -15, -15, -19, -23, -26, -23, -21, -15, -12, -18, -24, -27, -25, -19, + -9, -3, 2, 5, 12, 19, 32, 42, 45, 41, 31, 28, 31, 33, 37, 33, + 26, 14, 4, -2, -3, -3, -5, -18, -34, -43, -42, -31, -20, -18, -17, -19, + -18, -16, -13, -9, -8, -13, -22, -32, -32, -28, -19, -11, -6, -2, 7, 18, + 31, 42, 46, 46, 41, 36, 32, 35, 39, 39, 30, 17, 5, -3, -3, -3, + -7, -19, -32, -39, -41, -36, -26, -17, -12, -13, -18, -20, -14, -7, -6, -11, + -23, -32, -34, -28, -23, -15, -9, -2, 9, 17, 28, 37, 44, 48, 45, 38, + 32, 35, 41, 45, 37, 23, 10, 1, -3, -5, -8, -20, -35, -44, -44, -42, + -34, -24, -14, -10, -12, -14, -11, -6, -2, -5, -15, -25, -32, -29, -24, -19, + -15, -10, 1, 10, 20, 31, 40, 45, 48, 43, 39, 39, 45, 51, 43, 28, + 15, 2, -4, -8, -13, -20, -34, -42, -45, -45, -36, -26, -13, -8, -11, -13, + -8, -2, 1, -4, -13, -22, -30, -33, -28, -25, -18, -12, -5, 3, 13, 25, + 37, 46, 47, 45, 40, 41, 47, 53, 49, 35, 21, 10, 2, -6, -11, -22, + -32, -43, -50, -50, -47, -34, -17, -9, -9, -12, -9, 3, 7, 4, -8, -18, + -25, -31, -31, -27, -21, -16, -11, -8, 2, 17, 31, 45, 47, 44, 40, 43, + 54, 60, 58, 42, 26, 14, 4, -5, -14, -26, -37, -47, -54, -53, -49, -38, + -22, -13, -9, -7, -3, 6, 11, 6, -5, -14, -22, -28, -31, -30, -29, -24, + -18, -15, -2, 14, 29, 42, 45, 47, 45, 48, 56, 63, 59, 46, 29, 17, + 5, -4, -11, -23, -36, -49, -53, -52, -48, -40, -29, -21, -16, -11, -2, 5, + 6, 3, -5, -10, -13, -17, -21, -25, -26, -23, -19, -15, -8, 5, 20, 31, + 38, 42, 41, 46, 55, 62, 63, 50, 36, 24, 12, 5, -7, -20, -33, -46, + -51, -51, -48, -40, -33, -27, -20, -15, 0, 9, 7, 1, -6, -10, -11, -16, + -22, -25, -30, -28, -25, -21, -11, 2, 17, 28, 32, 41, 47, 55, 64, 66, + 64, 54, 41, 32, 19, 4, -9, -24, -37, -48, -54, -55, -51, -41, -33, -29, + -24, -15, 0, 13, 14, 8, 1, -5, -6, -10, -17, -24, -30, -32, -33, -32, + -22, -9, 9, 21, 25, 35, 45, 56, 67, 71, 71, 63, 49, 37, 25, 11, + -5, -19, -32, -45, -54, -59, -54, -43, -36, -31, -27, -18, -3, 11, 13, 9, + 2, -3, -6, -9, -13, -20, -25, -29, -33, -30, -23, -9, 2, 11, 19, 28, + 40, 51, 63, 68, 71, 66, 55, 44, 31, 16, 1, -15, -30, -41, -50, -57, + -56, -46, -37, -32, -30, -21, -7, 8, 17, 12, 5, 3, -2, -6, -11, -19, + -23, -27, -33, -34, -28, -19, -6, 3, 13, 24, 38, 51, 62, 70, 72, 68, + 60, 48, 38, 22, 6, -13, -27, -39, -46, -53, -52, -48, -42, -37, -36, -25, + -9, 4, 11, 9, 7, 8, 6, 2, -6, -13, -20, -24, -28, -31, -30, -27, + -19, -10, 4, 19, 33, 45, 57, 67, 74, 74, 70, 60, 47, 31, 10, -8, + -25, -36, -42, -51, -56, -56, -51, -40, -35, -28, -16, -4, 7, 7, 10, 12, + 13, 11, 3, -8, -18, -21, -25, -29, -33, -33, -30, -20, -8, 11, 27, 42, + 54, 64, 72, 77, 76, 69, 56, 34, 14, -5, -20, -32, -43, -50, -57, -59, + -57, -47, -39, -31, -17, -5, 6, 8, 9, 17, 19, 16, 5, -9, -13, -18, + -21, -26, -33, -37, -35, -28, -15, 1, 18, 34, 47, 58, 68, 76, 77, 76, + 65, 47, 25, 6, -12, -24, -37, -49, -57, -62, -64, -58, -50, -40, -24, -12, + 3, 9, 13, 22, 26, 26, 17, 4, -9, -21, -25, -30, -36, -41, -44, -41, + -27, -8, 12, 31, 44, 57, 68, 77, 81, 80, 72, 56, 34, 12, -6, -19, + -30, -41, -53, -65, -68, -65, -56, -44, -30, -17, -8, 2, 10, 23, 31, 32, + 25, 10, -4, -14, -20, -25, -31, -39, -45, -45, -35, -17, 2, 22, 37, 51, + 63, 72, 79, 78, 74, 62, 43, 20, 2, -12, -24, -34, -49, -61, -69, -70, + -63, -48, -35, -23, -11, 0, 9, 20, 31, 36, 32, 20, 7, -9, -18, -24, + -30, -38, -47, -50, -44, -29, -9, 10, 27, 45, 60, 71, 78, 80, 78, 68, + 54, 33, 13, -5, -18, -29, -44, -57, -68, -74, -66, -54, -41, -30, -18, -5, + 8, 19, 26, 33, 32, 24, 13, -4, -15, -22, -24, -29, -40, -44, -42, -29, + -14, 0, 15, 31, 48, 63, 69, 74, 74, 72, 64, 47, 27, 11, -4, -17, + -33, -50, -66, -78, -78, -68, -54, -38, -25, -11, 4, 18, 31, 38, 40, 34, + 21, 5, -12, -23, -28, -34, -43, -50, -51, -39, -22, -6, 10, 26, 46, 61, + 70, 75, 79, 76, 67, 52, 34, 18, 4, -11, -27, -45, -63, -76, -78, -70, + -57, -44, -29, -15, 0, 14, 26, 35, 39, 34, 23, 9, -7, -18, -23, -30, + -40, -49, -51, -41, -24, -9, 5, 19, 39, 55, 67, 74, 77, 79, 72, 56, + 39, 24, 12, -5, -23, -42, -60, -73, -78, -74, -62, -48, -33, -18, -6, 10, + 25, 34, 37, 34, 26, 16, -2, -15, -23, -28, -32, -42, -46, -44, -31, -16, + -4, 11, 28, 44, 56, 64, 69, 75, 73, 63, 50, 37, 22, 6, -10, -27, + -47, -68, -81, -80, -68, -52, -39, -25, -13, 2, 17, 29, 36, 37, 32, 23, + 4, -14, -24, -26, -26, -36, -44, -45, -36, -20, -7, 9, 25, 38, 49, 58, + 66, 75, 77, 67, 52, 39, 26, 14, -3, -21, -43, -65, -81, -84, -74, -56, + -40, -27, -15, -2, 15, 27, 37, 38, 35, 26, 8, -11, -23, -26, -27, -34, + -42, -45, -40, -27, -13, 4, 19, 33, 45, 54, 60, 67, 72, 67, 57, 44, + 32, 20, 5, -11, -32, -55, -72, -82, -76, -62, -46, -31, -21, -5, 6, 19, + 29, 34, 33, 26, 12, -6, -17, -22, -23, -28, -38, -42, -38, -27, -14, 1, + 14, 27, 40, 48, 53, 62, 68, 67, 58, 44, 32, 21, 9, -5, -22, -43, + -63, -76, -75, -62, -46, -30, -24, -13, 0, 10, 20, 28, 31, 27, 12, -5, + -16, -20, -19, -21, -29, -35, -35, -27, -16, -6, 9, 21, 33, 41, 47, 53, + 61, 63, 60, 51, 39, 27, 15, 3, -13, -33, -55, -72, -75, -67, -52, -37, + -26, -18, -7, 4, 15, 26, 27, 25, 14, 0, -10, -15, -16, -19, -24, -31, + -32, -27, -17, -5, 5, 15, 26, 35, 43, 49, 54, 57, 57, 52, 42, 29, + 18, 10, -3, -23, -46, -64, -71, -66, -53, -39, -27, -19, -11, 0, 5, 16, + 22, 23, 15, 1, -10, -15, -18, -17, -17, -20, -24, -22, -14, -4, 7, 16, + 25, 31, 36, 41, 47, 49, 49, 46, 41, 32, 21, 13, 3, -14, -33, -51, + -60, -60, -52, -39, -28, -20, -14, -7, 1, 9, 14, 16, 10, 1, -10, -15, + -14, -15, -15, -15, -17, -14, -11, -4, 5, 13, 22, 29, 33, 35, 39, 43, + 45, 45, 42, 35, 26, 17, 7, -10, -25, -38, -48, -53, -53, -46, -33, -23, + -16, -13, -8, -3, 4, 9, 7, 1, -6, -10, -13, -12, -12, -8, -7, -6, + -2, 3, 6, 10, 14, 23, 28, 29, 30, 29, 34, 39, 40, 36, 30, 21, + 13, 1, -15, -27, -36, -44, -48, -45, -36, -26, -17, -13, -10, -6, -2, 2, + 3, -3, -6, -10, -14, -13, -12, -7, -3, 1, 2, 5, 6, 10, 15, 19, + 25, 25, 26, 26, 29, 34, 35, 32, 29, 20, 13, 4, -12, -20, -27, -33, + -38, -41, -36, -27, -19, -13, -10, -8, -8, -7, -5, -5, -7, -9, -13, -18, + -15, -12, -5, 3, 7, 10, 10, 11, 13, 20, 27, 27, 23, 20, 20, 24, + 27, 25, 26, 23, 17, 7, -6, -13, -16, -20, -26, -32, -33, -28, -20, -13, + -12, -12, -16, -15, -15, -12, -10, -13, -13, -16, -12, -7, 0, 9, 14, 18, + 18, 14, 11, 14, 18, 21, 17, 10, 11, 15, 20, 21, 20, 20, 17, 9, + 2, -5, -10, -14, -21, -25, -29, -27, -23, -17, -13, -13, -16, -18, -20, -20, + -12, -8, -9, -15, -16, -10, -2, 9, 14, 18, 18, 18, 14, 14, 17, 20, + 18, 12, 8, 11, 13, 16, 18, 19, 16, 9, 3, 1, 1, -6, -13, -20, + -23, -21, -19, -15, -15, -14, -17, -21, -22, -22, -17, -11, -11, -13, -18, -14, + -4, 12, 21, 22, 23, 21, 20, 17, 16, 16, 12, 7, 1, 5, 7, 8, + 12, 15, 15, 10, 3, 0, 3, 1, -5, -12, -19, -19, -16, -11, -9, -11, + -14, -23, -28, -29, -24, -17, -13, -15, -19, -18, -10, 7, 22, 29, 30, 24, + 22, 18, 17, 17, 11, 4, -2, -3, 2, 4, 8, 13, 16, 13, 7, 4, + 9, 8, 2, -7, -16, -15, -14, -12, -10, -12, -12, -19, -25, -29, -25, -18, + -15, -18, -21, -19, -12, 1, 16, 28, 34, 32, 29, 23, 18, 15, 11, 4, + -3, -10, -8, -5, 0, 7, 12, 14, 10, 6, 10, 15, 13, 3, -7, -11, + -13, -13, -13, -12, -14, -20, -28, -31, -29, -20, -13, -14, -18, -18, -15, -3, + 12, 24, 33, 32, 29, 25, 22, 16, 11, 3, -3, -6, -7, -8, -3, 2, + 8, 11, 11, 9, 10, 13, 13, 8, 0, -6, -9, -9, -9, -10, -11, -18, + -26, -30, -29, -22, -17, -18, -20, -21, -17, -7, 6, 21, 34, 38, 34, 29, + 21, 17, 13, 8, 1, -8, -13, -15, -10, -3, 5, 10, 11, 10, 11, 15, + 16, 11, 3, -4, -7, -9, -8, -10, -13, -19, -26, -26, -23, -17, -15, -16, + -17, -17, -15, -9, -2, 10, 26, 31, 31, 24, 21, 18, 13, 6, 1, -6, + -8, -9, -8, -4, 0, 6, 10, 12, 15, 14, 13, 9, 5, -2, -7, -8, + -9, -8, -10, -18, -25, -25, -23, -18, -16, -19, -22, -18, -16, -10, 0, 10, + 24, 33, 35, 29, 22, 17, 13, 7, -3, -8, -12, -14, -12, -7, -3, 4, + 10, 14, 16, 17, 16, 16, 11, 3, -7, -11, -10, -7, -10, -19, -26, -27, + -23, -17, -14, -14, -17, -18, -16, -12, -3, 7, 20, 26, 28, 24, 20, 16, + 15, 10, 2, -8, -13, -11, -7, -2, -2, 4, 6, 9, 14, 17, 19, 15, + 8, -4, -12, -15, -11, -5, -8, -18, -25, -24, -17, -9, -6, -7, -11, -15, + -15, -13, -6, 4, 11, 15, 16, 15, 16, 13, 9, 5, 1, -3, -7, -5, + -2, 3, 5, 6, 8, 10, 14, 17, 18, 14, 3, -8, -15, -13, -9, -6, + -9, -19, -22, -19, -13, -6, -4, -5, -8, -13, -15, -10, -5, 5, 8, 8, + 8, 11, 14, 14, 8, 2, 1, 1, 2, -2, 1, 5, 6, 7, 7, 6, + 11, 13, 16, 13, 3, -6, -13, -14, -8, -5, -6, -15, -20, -15, -10, -5, + -2, -6, -6, -8, -12, -10, -8, -3, 5, 3, 3, 5, 7, 10, 6, 2, + -3, -2, 2, 8, 9, 12, 11, 8, 9, 8, 11, 13, 11, 10, 0, -12, + -20, -21, -13, -10, -11, -14, -16, -10, -3, 4, 8, 5, 2, -2, -4, -4, + -7, -4, -4, -5, -7, -8, -5, 0, 2, 2, 0, 1, 6, 11, 15, 19, + 19, 18, 14, 10, 12, 12, 11, 6, -6, -16, -23, -23, -17, -13, -12, -12, + -13, -8, -2, 8, 13, 13, 8, 4, 1, -3, -3, -3, -4, -11, -16, -16, + -13, -9, -5, -4, -2, 1, 6, 13, 17, 21, 24, 23, 18, 14, 10, 11, + 12, 8, -3, -16, -26, -27, -20, -17, -21, -21, -17, -7, 2, 10, 16, 19, + 18, 13, 10, 5, 2, -2, -5, -14, -22, -26, -21, -15, -11, -11, -6, -2, + 6, 16, 22, 27, 28, 28, 23, 17, 13, 10, 12, 7, -4, -18, -29, -32, + -24, -20, -21, -22, -18, -5, 5, 14, 19, 21, 20, 17, 13, 8, 5, -2, + -9, -18, -26, -26, -21, -14, -12, -11, -8, -2, 10, 16, 21, 24, 25, 27, + 24, 16, 11, 6, 7, 6, -4, -16, -25, -29, -25, -19, -19, -22, -18, -7, + 6, 15, 17, 18, 19, 18, 15, 10, 8, 3, -5, -15, -24, -30, -27, -19, + -15, -15, -13, -8, 5, 14, 20, 25, 28, 31, 30, 26, 18, 11, 9, 7, + -2, -14, -27, -33, -30, -25, -25, -27, -26, -15, 2, 17, 22, 23, 23, 22, + 22, 18, 14, 7, -4, -14, -24, -31, -30, -25, -19, -16, -16, -11, -3, 8, + 17, 24, 29, 31, 31, 29, 22, 17, 12, 8, 2, -12, -26, -36, -35, -30, + -26, -26, -29, -20, -5, 13, 24, 26, 26, 26, 28, 23, 19, 11, 1, -9, + -24, -34, -33, -30, -24, -21, -21, -17, -11, 1, 9, 19, 27, 33, 34, 30, + 28, 24, 21, 16, 7, -6, -23, -35, -40, -36, -33, -31, -32, -27, -13, 3, + 17, 25, 29, 34, 34, 30, 23, 17, 11, 0, -14, -27, -32, -33, -30, -26, + -21, -18, -15, -9, 1, 11, 22, 29, 32, 33, 30, 28, 23, 21, 13, 3, + -15, -30, -37, -38, -35, -35, -33, -28, -18, -5, 10, 22, 30, 37, 36, 32, + 26, 21, 14, 7, -6, -19, -28, -34, -32, -27, -21, -20, -21, -20, -11, 5, + 17, 25, 29, 30, 33, 35, 31, 27, 19, 8, -7, -25, -37, -42, -41, -39, + -35, -30, -22, -11, 4, 21, 32, 38, 39, 36, 29, 22, 15, 9, -4, -15, + -24, -32, -35, -31, -24, -18, -18, -19, -14, -3, 11, 21, 27, 31, 32, 34, + 34, 31, 27, 18, 1, -19, -33, -39, -38, -40, -39, -35, -28, -17, -3, 14, + 28, 37, 41, 40, 34, 30, 24, 18, 7, -6, -20, -30, -36, -34, -30, -26, + -26, -27, -26, -16, 0, 16, 26, 30, 33, 36, 42, 43, 38, 27, 10, -10, + -27, -39, -43, -43, -43, -40, -34, -26, -14, 2, 21, 36, 42, 40, 36, 33, + 30, 24, 16, 5, -11, -25, -34, -35, -32, -29, -30, -31, -31, -27, -15, 5, + 21, 27, 30, 34, 42, 51, 48, 40, 20, -3, -21, -32, -38, -40, -43, -42, + -38, -30, -18, -3, 15, 29, 40, 41, 39, 34, 31, 28, 20, 10, -4, -18, + -29, -33, -34, -34, -35, -37, -38, -34, -21, -6, 12, 22, 26, 33, 44, 55, + 56, 46, 26, 5, -11, -25, -36, -42, -47, -47, -43, -37, -24, -11, 9, 25, + 36, 38, 38, 40, 39, 39, 28, 17, 3, -10, -23, -30, -37, -38, -42, -44, + -43, -40, -30, -16, 3, 17, 26, 34, 44, 57, 61, 52, 34, 9, -7, -21, + -30, -38, -46, -49, -48, -39, -27, -13, 5, 22, 32, 35, 35, 37, 41, 43, + 33, 19, 4, -8, -16, -25, -32, -39, -42, -44, -42, -41, -33, -20, -4, 11, + 21, 28, 38, 49, 58, 54, 36, 16, -6, -16, -21, -28, -36, -46, -49, -42, + -29, -17, 0, 13, 26, 30, 30, 35, 41, 47, 41, 25, 9, -4, -12, -17, + -28, -38, -46, -52, -51, -49, -39, -23, -9, 4, 12, 23, 39, 54, 66, 62, + 43, 23, 2, -10, -16, -26, -36, -45, -51, -50, -37, -20, 0, 16, 27, 28, + 29, 38, 47, 50, 44, 28, 13, -2, -10, -16, -26, -35, -45, -55, -57, -56, + -44, -27, -13, -4, 5, 17, 34, 53, 64, 64, 46, 29, 13, 1, -8, -17, + -28, -39, -48, -51, -42, -26, -8, 9, 18, 20, 24, 34, 46, 53, 47, 33, + 15, 4, -4, -13, -22, -35, -47, -56, -59, -56, -48, -32, -18, -8, 3, 14, + 33, 52, 65, 64, 49, 31, 17, 5, -3, -13, -25, -36, -45, -49, -44, -31, + -14, 7, 16, 21, 21, 31, 48, 57, 53, 38, 20, 8, -3, -9, -21, -35, + -47, -57, -62, -62, -54, -38, -22, -12, -5, 7, 26, 49, 66, 69, 56, 37, + 24, 15, 6, -4, -17, -30, -43, -53, -47, -34, -18, -2, 9, 14, 17, 29, + 46, 58, 56, 43, 25, 13, 2, -5, -15, -30, -45, -59, -66, -65, -57, -43, + -28, -16, -10, 2, 21, 44, 66, 71, 62, 43, 28, 19, 13, 3, -12, -25, + -42, -51, -50, -38, -18, -3, 5, 12, 17, 30, 48, 59, 58, 45, 26, 11, + 0, -6, -15, -29, -45, -63, -71, -68, -58, -41, -28, -19, -12, -4, 16, 42, + 62, 70, 61, 43, 29, 21, 16, 8, -6, -20, -35, -45, -45, -37, -21, -6, + 3, 8, 14, 24, 42, 54, 58, 47, 29, 16, 3, -3, -12, -27, -42, -62, + -73, -74, -66, -52, -34, -23, -14, -5, 12, 38, 60, 72, 68, 49, 34, 23, + 17, 10, -3, -18, -31, -42, -42, -36, -20, -4, 5, 9, 11, 22, 37, 51, + 55, 46, 29, 13, 2, -9, -14, -25, -38, -53, -67, -72, -67, -53, -35, -23, + -17, -10, 6, 32, 55, 69, 67, 53, 36, 26, 19, 12, 2, -13, -26, -37, + -40, -36, -24, -7, 3, 9, 13, 20, 36, 49, 52, 47, 32, 17, 3, -12, + -19, -29, -38, -52, -66, -75, -72, -56, -36, -20, -15, -10, 2, 25, 48, 63, + 63, 52, 39, 28, 20, 14, 5, -6, -19, -30, -38, -35, -25, -8, 4, 8, + 11, 17, 33, 47, 54, 47, 34, 18, 4, -9, -19, -28, -40, -53, -65, -75, + -74, -60, -41, -22, -15, -12, -2, 18, 43, 59, 63, 55, 41, 31, 27, 20, + 13, 3, -11, -24, -35, -34, -26, -11, 2, 8, 9, 11, 22, 37, 47, 49, + 39, 22, 6, -7, -19, -26, -36, -48, -60, -74, -77, -66, -47, -26, -13, -8, + 1, 15, 36, 53, 63, 56, 45, 30, 22, 16, 10, 5, -7, -19, -32, -34, + -25, -7, 8, 16, 17, 17, 23, 37, 48, 51, 40, 22, 4, -14, -24, -33, + -39, -49, -61, -72, -77, -66, -47, -27, -13, -5, 1, 13, 30, 47, 59, 57, + 47, 31, 23, 17, 15, 6, -5, -18, -26, -30, -24, -10, 8, 19, 21, 20, + 22, 30, 40, 48, 41, 25, 3, -17, -29, -32, -37, -46, -59, -70, -73, -65, + -46, -27, -14, -4, 3, 15, 29, 41, 52, 54, 45, 31, 19, 15, 15, 9, + 1, -14, -26, -27, -21, -8, 10, 17, 23, 23, 23, 32, 39, 45, 44, 29, + 7, -16, -32, -40, -42, -49, -61, -72, -76, -69, -50, -28, -12, -2, 5, 17, + 31, 43, 48, 49, 44, 34, 24, 15, 13, 9, 5, -8, -24, -27, -21, -7, + 10, 20, 25, 29, 29, 32, 36, 41, 41, 34, 14, -12, -35, -46, -49, -52, + -61, -74, -78, -73, -56, -31, -14, 2, 10, 19, 31, 44, 54, 53, 47, 34, + 24, 16, 9, 4, -2, -12, -25, -28, -22, -7, 9, 23, 32, 36, 36, 36, + 37, 42, 42, 33, 15, -14, -36, -50, -57, -56, -62, -74, -81, -77, -59, -36, + -15, 2, 11, 20, 31, 44, 56, 56, 51, 39, 26, 15, 7, 1, -3, -13, + -26, -33, -31, -14, 9, 25, 36, 41, 40, 41, 40, 44, 44, 35, 17, -13, + -39, -54, -61, -64, -69, -76, -81, -78, -63, -39, -15, 4, 14, 24, 35, 45, + 54, 56, 53, 41, 25, 14, 7, 3, -4, -14, -26, -34, -31, -15, 9, 25, + 36, 41, 43, 44, 43, 46, 45, 35, 16, -9, -31, -49, -63, -69, -75, -78, + -84, -79, -66, -45, -22, 0, 13, 23, 35, 48, 56, 58, 53, 43, 30, 19, + 10, 4, -7, -18, -26, -33, -30, -17, 4, 24, 37, 44, 50, 50, 49, 46, + 43, 35, 16, -7, -30, -52, -65, -75, -78, -83, -85, -82, -70, -50, -26, -4, + 14, 26, 39, 53, 63, 64, 59, 49, 35, 18, 6, -2, -13, -25, -35, -40, + -36, -22, 3, 26, 38, 47, 54, 60, 61, 57, 50, 39, 20, -5, -26, -49, + -66, -80, -87, -91, -93, -88, -74, -54, -34, -12, 8, 24, 40, 55, 68, 70, + 66, 55, 41, 26, 14, 6, -9, -25, -37, -43, -39, -28, -9, 15, 32, 41, + 48, 59, 65, 65, 58, 45, 25, 5, -17, -38, -61, -77, -91, -97, -100, -94, + -79, -64, -44, -23, -2, 24, 42, 57, 72, 77, 74, 63, 48, 33, 21, 10, + -7, -27, -43, -45, -41, -29, -14, 4, 26, 40, 49, 58, 66, 69, 64, 48, + 29, 7, -13, -31, -53, -73, -89, -100, -102, -95, -83, -67, -51, -29, -7, 17, + 37, 55, 72, 81, 77, 67, 55, 40, 25, 12, -4, -22, -40, -45, -42, -31, + -19, -4, 15, 34, 48, 55, 63, 67, 66, 57, 41, 20, -4, -25, -46, -69, + -88, -104, -110, -106, -95, -79, -63, -39, -13, 15, 39, 60, 75, 88, 91, 81, + 66, 44, 27, 13, -3, -22, -41, -50, -48, -38, -26, -13, 6, 29, 46, 55, + 62, 66, 69, 63, 48, 26, 5, -14, -33, -57, -84, -105, -115, -113, -102, -88, + -73, -53, -26, 1, 31, 57, 78, 91, 95, 88, 75, 60, 41, 22, 1, -19, + -38, -51, -53, -48, -36, -22, -6, 19, 39, 53, 62, 65, 69, 67, 55, 36, + 14, -6, -28, -54, -79, -100, -111, -116, -110, -98, -83, -61, -35, -6, 26, 53, + 75, 89, 96, 96, 87, 71, 50, 29, 10, -9, -30, -44, -53, -50, -45, -32, + -19, 2, 23, 43, 55, 62, 66, 66, 62, 49, 30, 11, -12, -39, -70, -95, + -112, -118, -118, -109, -94, -74, -48, -18, 17, 47, 70, 88, 98, 99, 95, 80, + 61, 37, 14, -9, -26, -43, -51, -52, -48, -40, -25, -6, 17, 37, 52, 57, + 63, 64, 62, 55, 36, 17, -8, -34, -62, -86, -106, -117, -118, -110, -99, -83, + -57, -27, 10, 42, 67, 85, 96, 101, 101, 91, 69, 46, 21, 1, -21, -38, + -49, -54, -49, -44, -35, -18, 2, 24, 44, 55, 64, 67, 63, 59, 46, 29, + 7, -21, -51, -79, -104, -117, -122, -117, -108, -94, -70, -40, 0, 34, 63, 85, + 96, 104, 105, 99, 82, 59, 31, 4, -20, -37, -46, -51, -51, -50, -44, -28, + -8, 17, 38, 53, 60, 65, 67, 64, 54, 40, 18, -10, -40, -71, -98, -115, + -121, -118, -113, -103, -82, -52, -14, 22, 53, 77, 94, 106, 109, 104, 93, 76, + 50, 21, -11, -33, -43, -48, -53, -56, -56, -46, -27, 2, 29, 48, 58, 62, + 63, 62, 58, 49, 33, 5, -27, -57, -87, -108, -119, -118, -114, -106, -91, -68, + -31, 8, 42, 69, 88, 102, 110, 110, 100, 83, 60, 33, 3, -23, -39, -46, + -52, -57, -57, -51, -35, -14, 15, 38, 54, 63, 65, 66, 58, 51, 40, 17, + -11, -44, -76, -101, -114, -116, -111, -106, -96, -77, -47, -11, 28, 58, 81, 97, + 109, 112, 105, 95, 77, 53, 23, -9, -30, -45, -52, -58, -64, -61, -52, -35, + -9, 20, 44, 62, 67, 67, 65, 62, 54, 35, 7, -24, -60, -91, -110, -119, + -116, -112, -105, -90, -65, -31, 8, 43, 73, 94, 109, 117, 113, 105, 91, 68, + 39, 4, -24, -43, -56, -64, -67, -67, -61, -47, -21, 9, 35, 55, 63, 66, + 66, 61, 56, 46, 23, -10, -46, -81, -100, -111, -115, -112, -107, -94, -75, -48, + -12, 28, 59, 84, 103, 116, 120, 114, 103, 81, 56, 22, -10, -35, -53, -64, + -71, -73, -71, -59, -39, -10, 19, 43, 60, 66, 68, 67, 64, 53, 33, 7, + -27, -64, -91, -108, -115, -113, -108, -97, -82, -59, -27, 11, 46, 75, 98, 112, + 119, 117, 109, 89, 64, 34, 4, -24, -50, -62, -69, -69, -70, -65, -49, -23, + 8, 32, 52, 61, 64, 65, 64, 55, 39, 15, -16, -46, -76, -97, -109, -110, + -107, -102, -91, -71, -42, -4, 34, 66, 90, 106, 116, 121, 118, 101, 78, 47, + 15, -15, -44, -60, -70, -73, -75, -74, -63, -39, -7, 23, 45, 60, 66, 69, + 69, 62, 49, 29, 1, -32, -65, -94, -108, -112, -109, -102, -97, -83, -58, -22, + 18, 54, 84, 103, 116, 121, 120, 112, 91, 63, 29, -6, -34, -54, -66, -75, + -79, -81, -72, -50, -22, 9, 33, 50, 59, 67, 70, 70, 60, 43, 13, -20, + -51, -78, -97, -107, -111, -109, -105, -94, -72, -37, 5, 42, 72, 96, 114, 124, + 127, 118, 100, 75, 42, 10, -22, -47, -62, -72, -79, -84, -82, -64, -35, -2, + 23, 39, 50, 61, 69, 71, 66, 51, 27, -6, -36, -62, -81, -96, -104, -105, + -106, -101, -83, -52, -11, 27, 57, 82, 103, 120, 127, 122, 107, 82, 53, 19, + -12, -39, -55, -65, -73, -81, -81, -67, -40, -8, 16, 30, 41, 52, 62, 68, + 66, 56, 34, 3, -28, -53, -71, -86, -96, -102, -106, -103, -88, -62, -25, 15, + 47, 72, 90, 109, 120, 123, 115, 93, 63, 31, 1, -24, -40, -52, -64, -76, + -82, -73, -50, -22, 1, 18, 27, 39, 51, 63, 67, 61, 44, 18, -13, -38, + -53, -69, -83, -96, -105, -103, -93, -69, -36, -3, 30, 56, 77, 95, 111, 116, + 113, 97, 72, 42, 13, -12, -25, -38, -54, -70, -79, -74, -57, -32, -11, 4, + 15, 26, 40, 55, 65, 62, 51, 28, 1, -24, -40, -56, -73, -89, -101, -102, + -95, -79, -50, -17, 16, 47, 68, 88, 104, 114, 115, 102, 80, 53, 24, 0, + -18, -31, -45, -60, -73, -74, -63, -42, -21, -6, 6, 16, 28, 45, 56, 59, + 51, 35, 14, -9, -26, -41, -57, -73, -87, -97, -95, -85, -62, -32, -2, 26, + 50, 71, 91, 105, 111, 105, 89, 64, 40, 16, -4, -20, -35, -49, -64, -70, + -68, -53, -35, -18, -6, 5, 14, 29, 45, 55, 54, 39, 21, 4, -13, -25, + -42, -63, -77, -89, -90, -80, -66, -44, -19, 10, 35, 57, 76, 93, 104, 104, + 91, 68, 48, 29, 13, -6, -24, -42, -56, -63, -61, -54, -42, -27, -17, -6, + 5, 18, 33, 44, 47, 39, 25, 10, 0, -14, -29, -50, -67, -79, -85, -81, + -70, -53, -32, -5, 24, 47, 67, 84, 98, 103, 95, 77, 56, 37, 22, 6, + -14, -34, -48, -56, -57, -52, -48, -37, -28, -17, -6, 8, 23, 34, 41, 38, + 28, 15, 4, -4, -16, -38, -59, -73, -78, -75, -66, -54, -37, -19, 7, 32, + 53, 72, 87, 95, 92, 78, 58, 44, 32, 20, 2, -21, -38, -47, -48, -47, + -46, -42, -36, -26, -14, -5, 9, 20, 32, 35, 30, 19, 12, 8, -5, -25, + -48, -63, -71, -70, -63, -58, -44, -26, -6, 20, 40, 59, 79, 92, 93, 83, + 60, 47, 37, 29, 13, -10, -28, -40, -44, -44, -48, -47, -41, -33, -22, -13, + 0, 14, 29, 36, 34, 24, 18, 15, 4, -13, -39, -60, -69, -72, -68, -62, + -51, -34, -13, 9, 31, 52, 73, 88, 95, 87, 70, 55, 45, 35, 20, -2, + -23, -36, -42, -47, -48, -51, -50, -40, -30, -17, -8, 7, 23, 36, 37, 30, + 22, 19, 13, -3, -24, -49, -65, -71, -71, -64, -54, -40, -20, -3, 21, 44, + 65, 85, 92, 87, 72, 57, 48, 39, 29, 11, -12, -27, -36, -41, -42, -47, + -49, -45, -37, -28, -17, -4, 13, 28, 33, 29, 26, 23, 17, 6, -11, -33, + -53, -64, -66, -62, -55, -44, -29, -12, 10, 31, 51, 71, 84, 85, 77, 61, + 50, 41, 36, 22, 2, -17, -33, -38, -42, -45, -48, -46, -41, -34, -23, -9, + 7, 24, 35, 32, 28, 23, 17, 10, -4, -26, -49, -64, -68, -64, -58, -46, + -32, -13, 8, 28, 45, 65, 78, 82, 76, 62, 52, 45, 37, 23, 6, -10, + -26, -35, -41, -45, -46, -48, -48, -39, -27, -11, 3, 14, 23, 27, 28, 25, + 23, 15, 2, -17, -34, -52, -60, -61, -56, -44, -32, -17, -3, 16, 34, 54, + 66, 73, 68, 58, 47, 42, 37, 29, 17, 3, -14, -25, -31, -36, -39, -44, + -48, -44, -33, -20, -9, 2, 13, 22, 26, 24, 20, 14, 5, -7, -22, -39, + -50, -55, -51, -43, -32, -20, -7, 10, 28, 44, 57, 65, 67, 64, 54, 44, + 36, 28, 18, 4, -9, -23, -32, -39, -42, -46, -44, -38, -29, -19, -12, -4, + 10, 22, 27, 22, 14, 8, 1, -6, -17, -30, -43, -49, -47, -38, -26, -18, + -10, 3, 17, 34, 45, 54, 59, 57, 53, 45, 37, 30, 22, 11, -3, -14, + -24, -34, -40, -45, -43, -39, -29, -21, -14, -6, 3, 16, 20, 17, 10, 3, + 0, -6, -15, -25, -33, -38, -37, -31, -21, -12, -6, 5, 15, 27, 39, 46, + 50, 51, 47, 44, 36, 29, 20, 10, 1, -10, -18, -27, -36, -40, -42, -37, + -29, -21, -14, -7, 1, 10, 16, 10, 3, -2, -3, -6, -12, -22, -28, -30, + -28, -23, -16, -11, -7, 0, 7, 19, 31, 42, 47, 47, 46, 46, 40, 33, + 21, 10, 2, -6, -12, -24, -33, -37, -38, -36, -31, -21, -14, -7, -2, 2, + 7, 8, 4, -2, -7, -12, -14, -19, -23, -24, -20, -16, -11, -6, -2, 3, + 9, 16, 24, 33, 37, 40, 44, 44, 40, 33, 22, 13, 5, -3, -8, -21, + -30, -35, -34, -32, -30, -23, -13, -6, -3, -3, -2, -2, -4, -7, -9, -12, + -13, -13, -14, -14, -11, -12, -4, -2, 2, 0, 3, 10, 18, 27, 32, 35, + 38, 40, 37, 32, 23, 13, 8, 2, -4, -11, -22, -27, -31, -30, -29, -24, + -14, -7, -8, -7, -10, -10, -10, -10, -11, -12, -13, -12, -11, -11, -7, -2, + 4, 5, 3, -2, 0, 8, 15, 21, 26, 30, 32, 37, 37, 32, 26, 16, + 10, 4, -4, -9, -16, -21, -26, -29, -28, -23, -15, -11, -9, -11, -13, -14, + -14, -13, -13, -12, -13, -12, -8, -3, 3, 6, 8, 10, 7, 1, -3, 2, + 8, 17, 22, 22, 27, 32, 37, 35, 29, 18, 11, 2, -4, -8, -14, -17, + -21, -23, -25, -22, -17, -11, -9, -11, -16, -16, -16, -16, -14, -15, -14, -11, + -5, 0, 4, 5, 6, 7, 6, 4, 0, 3, 8, 16, 21, 20, 24, 28, + 34, 35, 29, 17, 8, 3, 1, -3, -9, -15, -20, -21, -23, -22, -21, -17, + -13, -14, -18, -23, -22, -17, -13, -10, -9, -8, 0, 6, 9, 10, 8, 6, + 6, 4, 0, -2, 1, 10, 17, 20, 22, 25, 29, 31, 29, 20, 10, 2, + -2, 0, -5, -11, -18, -20, -19, -19, -19, -18, -16, -14, -18, -26, -26, -22, + -16, -13, -9, -6, 1, 7, 10, 10, 7, 7, 7, 5, 0, -4, -2, 7, + 14, 19, 22, 26, 30, 32, 30, 22, 13, 6, 1, -2, -7, -13, -16, -18, + -19, -19, -21, -21, -19, -17, -16, -23, -25, -23, -17, -10, -9, -4, 2, 8, + 10, 12, 9, 7, 5, 4, 2, -3, -2, 3, 9, 18, 23, 28, 29, 28, + 27, 26, 19, 12, 6, 0, -7, -11, -15, -17, -20, -21, -20, -22, -23, -25, + -24, -26, -27, -25, -20, -13, -5, 3, 9, 11, 15, 17, 15, 10, 4, 0, + -4, -5, -4, 2, 5, 13, 19, 25, 29, 28, 26, 25, 20, 16, 11, 2, + -5, -10, -10, -10, -14, -17, -21, -24, -26, -29, -27, -28, -28, -26, -23, -17, + -8, 1, 12, 15, 16, 14, 13, 10, 6, 0, -5, -6, -5, 1, 6, 12, + 20, 27, 30, 28, 24, 23, 21, 17, 11, 4, -6, -9, -10, -10, -11, -16, + -18, -21, -24, -26, -29, -28, -27, -25, -23, -18, -11, -2, 11, 15, 15, 12, + 11, 9, 6, 1, -6, -6, -2, 3, 7, 11, 19, 26, 28, 26, 22, 21, + 23, 24, 17, 10, 4, 0, -2, -5, -10, -15, -20, -25, -32, -36, -36, -35, + -32, -30, -26, -19, -10, 2, 14, 21, 21, 17, 13, 10, 7, 1, -5, -5, + -6, -4, 0, 6, 12, 19, 22, 24, 20, 21, 24, 29, 28, 20, 13, 8, + 3, 2, -4, -9, -16, -27, -34, -41, -44, -41, -38, -35, -31, -27, -18, -3, + 13, 26, 29, 23, 18, 14, 11, 8, 4, -2, -8, -11, -9, -6, 4, 9, + 16, 17, 16, 16, 23, 33, 37, 33, 26, 19, 12, 8, 1, -7, -15, -30, + -41, -50, -53, -50, -43, -38, -34, -28, -17, -3, 13, 26, 30, 26, 19, 14, + 12, 9, 4, -2, -10, -14, -13, -7, 4, 9, 12, 13, 13, 17, 25, 32, + 40, 39, 32, 24, 15, 11, 8, 1, -10, -27, -43, -51, -55, -52, -49, -45, + -40, -32, -21, -8, 9, 23, 31, 30, 24, 19, 17, 16, 11, 4, -7, -15, + -18, -14, -6, 2, 5, 7, 9, 14, 24, 35, 45, 48, 45, 34, 25, 16, + 8, 2, -11, -27, -46, -59, -64, -61, -53, -46, -40, -35, -24, -9, 8, 23, + 30, 31, 27, 24, 21, 17, 12, 4, -6, -15, -19, -17, -12, -3, 3, 4, + 6, 12, 25, 37, 45, 47, 47, 43, 35, 23, 12, 2, -10, -24, -42, -60, + -71, -71, -63, -55, -45, -36, -22, -7, 9, 22, 30, 35, 34, 31, 24, 19, + 13, 6, -3, -13, -20, -21, -16, -9, -3, -2, 4, 11, 26, 38, 45, 50, + 49, 48, 42, 31, 16, 4, -9, -21, -38, -59, -72, -77, -70, -61, -53, -41, + -26, -9, 7, 17, 26, 34, 41, 41, 35, 25, 17, 9, 0, -10, -21, -24, + -22, -15, -9, -7, -2, 10, 25, 39, 44, 47, 49, 52, 50, 39, 22, 6, + -8, -20, -34, -54, -70, -78, -77, -68, -61, -49, -33, -15, 3, 16, 25, 32, + 43, 49, 47, 37, 25, 16, 3, -10, -22, -29, -27, -22, -15, -12, -7, 7, + 25, 42, 47, 50, 53, 57, 57, 46, 31, 11, -5, -22, -39, -56, -72, -81, + -85, -81, -71, -56, -36, -16, 4, 19, 29, 37, 48, 55, 56, 48, 34, 20, + 7, -10, -25, -32, -34, -28, -21, -17, -14, 0, 20, 40, 50, 51, 53, 58, + 61, 53, 39, 18, -2, -18, -36, -53, -70, -80, -85, -86, -79, -67, -46, -23, + -2, 17, 27, 35, 44, 55, 62, 57, 44, 26, 9, -10, -23, -29, -32, -28, + -24, -20, -15, -4, 15, 35, 47, 50, 49, 53, 57, 53, 43, 24, 5, -14, + -32, -50, -64, -5, 0, -2, -3, -3, -3, -3, -2, -2, 1, 2, 3, 5, + 8, 11, 11, 10, 8, 5, 1, -6, -13, -19, -21, -18, -15, -13, -10, -7, + -2, 4, 8, 12, 17, 28, 33, 29, 23, 14, 7, -5, -19, -33, -42, -36, + -28, -24, -17, -13, -8, 1, 7, 15, 23, 33, 42, 42, 35, 26, 15, 0, + -16, -30, -44, -45, -34, -27, -20, -16, -13, -4, 4, 12, 21, 29, 40, 45, + 40, 30, 20, 6, -13, -25, -38, -45, -38, -31, -24, -18, -15, -10, -4, 5, + 17, 27, 35, 44, 43, 37, 27, 15, -4, -19, -31, -44, -44, -35, -30, -22, + -19, -16, -8, 2, 15, 25, 32, 42, 47, 42, 32, 18, 0, -16, -26, -39, + -45, -38, -31, -25, -19, -18, -14, -5, 11, 23, 29, 39, 46, 45, 38, 25, + 7, -8, -18, -31, -44, -43, -35, -30, -25, -25, -20, -9, 7, 21, 27, 36, + 48, 51, 44, 32, 14, -3, -16, -28, -42, -46, -41, -33, -27, -24, -23, -15, + 1, 16, 27, 33, 42, 47, 46, 38, 21, 5, -9, -21, -34, -44, -45, -39, + -31, -28, -26, -20, -8, 9, 25, 34, 41, 49, 51, 47, 31, 11, -6, -18, + -30, -42, -48, -45, -36, -28, -26, -23, -12, 6, 23, 33, 38, 43, 51, 50, + 36, 15, 0, -12, -22, -35, -50, -50, -40, -31, -29, -27, -18, 1, 20, 32, + 36, 43, 52, 56, 45, 23, 2, -10, -20, -33, -48, -56, -49, -36, -30, -26, + -18, -5, 17, 33, 39, 40, 46, 52, 49, 32, 9, -8, -18, -26, -40, -54, + -53, -39, -30, -28, -23, -12, 10, 31, 39, 38, 42, 54, 54, 41, 17, -5, + -15, -22, -35, -53, -59, -47, -36, -30, -24, -14, 6, 27, 40, 42, 43, 51, + 56, 46, 26, 3, -13, -22, -33, -49, -61, -55, -41, -32, -26, -18, 0, 22, + 38, 45, 43, 48, 55, 50, 33, 11, -10, -21, -29, -43, -59, -60, -46, -35, + -28, -18, -6, 15, 35, 45, 46, 45, 52, 53, 41, 20, -6, -19, -26, -38, + -54, -62, -53, -39, -29, -19, -11, 6, 29, 44, 48, 45, 47, 52, 49, 32, + 5, -18, -26, -32, -45, -61, -61, -48, -35, -23, -14, -2, 22, 42, 52, 50, + 46, 50, 50, 38, 12, -15, -26, -31, -43, -59, -65, -53, -37, -25, -16, -6, + 16, 40, 53, 53, 47, 49, 51, 42, 22, -10, -27, -31, -38, -54, -67, -63, + -46, -27, -18, -7, 10, 31, 52, 59, 53, 48, 50, 46, 32, 3, -24, -34, + -39, -50, -66, -68, -54, -35, -20, -8, 6, 23, 47, 62, 59, 52, 50, 48, + 37, 13, -18, -35, -40, -46, -62, -72, -63, -43, -25, -10, 6, 20, 41, 59, + 63, 55, 49, 46, 39, 21, -9, -31, -39, -42, -52, -68, -68, -52, -32, -17, + -4, 9, 31, 54, 66, 63, 54, 51, 44, 32, 6, -26, -40, -44, -51, -65, + -72, -61, -41, -23, -5, 9, 25, 48, 64, 66, 59, 54, 46, 33, 12, -17, + -36, -45, -51, -62, -73, -67, -48, -31, -11, 8, 21, 44, 64, 70, 64, 57, + 49, 36, 20, -8, -34, -47, -52, -58, -68, -73, -59, -40, -19, 4, 17, 36, + 58, 72, 73, 65, 56, 41, 26, 4, -24, -44, -55, -63, -69, -73, -66, -51, + -28, -2, 18, 32, 51, 67, 75, 72, 62, 46, 29, 11, -13, -37, -54, -64, + -70, -71, -70, -58, -38, -13, 14, 30, 48, 64, 73, 76, 69, 52, 34, 15, + -7, -31, -50, -62, -69, -71, -71, -66, -47, -19, 8, 26, 40, 58, 73, 81, + 76, 57, 39, 23, 2, -22, -45, -62, -71, -73, -71, -69, -57, -32, 0, 26, + 41, 55, 70, 81, 83, 64, 41, 24, 6, -15, -39, -60, -71, -73, -69, -69, + -62, -40, -11, 20, 39, 51, 65, 78, 86, 75, 50, 29, 11, -8, -30, -53, + -70, -77, -71, -66, -67, -53, -22, 13, 37, 49, 60, 75, 89, 84, 58, 33, + 16, -2, -22, -47, -68, -77, -72, -67, -68, -60, -34, 0, 29, 47, 56, 69, + 85, 88, 69, 40, 20, 4, -13, -35, -61, -76, -74, -65, -66, -65, -47, -15, + 20, 43, 53, 64, 81, 89, 77, 50, 26, 9, -10, -29, -51, -71, -78, -71, + -66, -64, -52, -27, 9, 38, 54, 62, 73, 85, 82, 60, 34, 13, -3, -19, + -40, -65, -80, -74, -68, -69, -61, -40, -4, 29, 49, 61, 72, 86, 86, 70, + 45, 21, 3, -16, -33, -56, -80, -78, -70, -70, -65, -50, -18, 20, 48, 62, + 68, 80, 88, 78, 53, 26, 5, -12, -26, -45, -72, -81, -71, -67, -64, -56, + -34, 4, 37, 57, 63, 73, 85, 83, 63, 37, 16, 0, -17, -36, -63, -79, + -74, -70, -69, -63, -44, -10, 26, 52, 62, 69, 81, 84, 69, 45, 22, 3, + -15, -28, -52, -75, -76, -69, -67, -64, -52, -24, 14, 45, 60, 65, 74, 82, + 75, 54, 32, 12, -6, -21, -44, -68, -78, -74, -71, -69, -60, -34, 2, 34, + 55, 66, 73, 79, 78, 61, 39, 20, 2, -16, -34, -56, -72, -74, -70, -71, + -66, -47, -14, 21, 48, 61, 68, 76, 80, 69, 46, 27, 11, -7, -26, -50, + -68, -72, -70, -70, -69, -54, -24, 10, 39, 57, 66, 72, 76, 70, 52, 33, + 16, -4, -20, -39, -59, -70, -71, -69, -67, -60, -37, -6, 27, 50, 62, 67, + 72, 74, 61, 41, 25, 10, -10, -31, -51, -67, -74, -73, -73, -68, -48, -16, + 17, 45, 60, 66, 73, 75, 66, 48, 29, 15, -3, -24, -45, -62, -70, -72, + -74, -70, -55, -26, 7, 32, 51, 63, 70, 73, 67, 51, 35, 24, 9, -16, + -38, -54, -64, -68, -75, -75, -62, -36, -5, 22, 45, 60, 69, 74, 68, 57, + 43, 29, 15, -9, -29, -45, -60, -67, -75, -76, -64, -44, -16, 10, 32, 52, + 63, 68, 66, 59, 48, 36, 24, 6, -17, -35, -51, -60, -70, -78, -72, -55, + -27, 1, 20, 39, 56, 65, 68, 60, 51, 41, 31, 15, -9, -27, -44, -58, + -67, -75, -73, -58, -35, -8, 11, 32, 50, 60, 61, 57, 53, 47, 37, 25, + 4, -19, -35, -48, -60, -73, -76, -67, -46, -18, 2, 20, 40, 56, 64, 62, + 56, 49, 43, 34, 15, -10, -31, -45, -57, -70, -78, -69, -52, -27, -4, 13, + 34, 52, 60, 57, 53, 52, 46, 36, 22, 1, -19, -35, -50, -65, -73, -70, + -58, -41, -17, 4, 22, 42, 55, 58, 57, 55, 50, 43, 32, 12, -11, -30, + -47, -61, -71, -72, -63, -46, -26, -6, 13, 30, 47, 53, 54, 56, 52, 46, + 38, 24, 5, -20, -39, -52, -63, -67, -66, -57, -37, -15, 3, 18, 37, 50, + 55, 59, 55, 49, 45, 32, 15, -10, -34, -50, -61, -66, -66, -58, -42, -24, + -4, 11, 27, 44, 50, 54, 57, 53, 49, 39, 23, 2, -23, -43, -57, -64, + -67, -62, -50, -33, -14, 4, 18, 37, 48, 53, 57, 55, 52, 44, 30, 13, + -14, -38, -54, -62, -65, -62, -54, -42, -24, -2, 13, 28, 41, 48, 56, 57, + 52, 45, 37, 23, 0, -28, -47, -57, -62, -63, -59, -50, -34, -14, 1, 16, + 35, 48, 56, 59, 59, 54, 45, 31, 8, -20, -42, -56, -62, -64, -60, -52, + -40, -23, -5, 10, 28, 43, 52, 56, 57, 56, 49, 38, 21, -8, -33, -46, + -56, -60, -59, -56, -47, -32, -15, 0, 17, 34, 47, 55, 58, 57, 53, 43, + 30, 8, -24, -42, -52, -59, -58, -57, -51, -42, -26, -8, 11, 29, 42, 50, + 57, 59, 55, 48, 34, 15, -15, -36, -45, -52, -55, -58, -55, -43, -31, -17, + -2, 16, 37, 50, 56, 58, 58, 54, 43, 23, -8, -33, -40, -47, -54, -57, + -58, -48, -34, -23, -10, 9, 31, 48, 54, 55, 55, 57, 50, 32, 3, -28, + -37, -41, -49, -55, -58, -49, -36, -27, -17, 1, 21, 41, 50, 52, 51, 54, + 55, 41, 13, -18, -32, -35, -42, -50, -57, -55, -41, -32, -24, -10, 10, 33, + 47, 50, 51, 54, 59, 49, 24, -8, -26, -30, -37, -46, -56, -59, -46, -35, + -29, -18, 2, 25, 44, 48, 47, 51, 57, 56, 36, 5, -20, -28, -31, -40, + -51, -58, -52, -39, -33, -25, -8, 15, 38, 49, 47, 50, 56, 60, 46, 15, + -11, -25, -30, -36, -49, -60, -54, -39, -33, -30, -14, 8, 32, 47, 44, 44, + 51, 59, 52, 26, -4, -20, -24, -29, -41, -54, -55, -43, -34, -33, -26, -8, + 17, 37, 43, 42, 48, 59, 60, 42, 13, -11, -21, -25, -36, -51, -59, -51, + -38, -34, -32, -17, 10, 33, 43, 43, 44, 55, 60, 46, 21, -6, -18, -22, + -28, -42, -54, -52, -39, -30, -32, -25, -4, 20, 36, 39, 39, 48, 60, 57, + 36, 10, -11, -19, -22, -34, -51, -58, -48, -35, -36, -34, -13, 13, 35, 41, + 38, 46, 59, 61, 44, 20, -5, -20, -22, -30, -46, -56, -53, -39, -34, -36, + -22, 1, 25, 39, 39, 42, 53, 60, 54, 34, 10, -10, -17, -21, -39, -57, + -59, -48, -38, -43, -35, -11, 16, 37, 43, 42, 52, 61, 58, 41, 19, -3, + -16, -21, -31, -50, -59, -53, -40, -39, -39, -22, 5, 30, 40, 38, 45, 58, + 64, 52, 28, 5, -12, -17, -23, -44, -58, -56, -46, -40, -43, -33, -7, 22, + 39, 41, 44, 55, 64, 60, 40, 13, -7, -16, -21, -35, -56, -60, -52, -44, + -43, -40, -21, 11, 34, 40, 40, 50, 61, 64, 53, 29, 6, -10, -16, -25, + -47, -62, -61, -53, -49, -47, -35, -5, 26, 42, 45, 49, 58, 65, 59, 39, + 15, -5, -16, -22, -37, -56, -61, -56, -50, -47, -42, -21, 11, 33, 40, 44, + 53, 63, 66, 54, 29, 8, -6, -15, -28, -52, -64, -60, -57, -53, -49, -31, + 1, 28, 40, 42, 51, 63, 66, 56, 36, 14, -3, -13, -25, -45, -61, -61, + -58, -54, -47, -38, -11, 20, 36, 41, 44, 55, 64, 60, 47, 28, 9, -4, + -15, -32, -56, -67, -64, -62, -55, -48, -27, 8, 29, 41, 47, 57, 66, 65, + 56, 39, 17, 0, -13, -27, -49, -66, -68, -67, -58, -48, -36, -8, 22, 38, + 45, 53, 63, 65, 61, 51, 28, 11, -4, -20, -40, -62, -70, -71, -68, -55, + -44, -24, 9, 30, 42, 52, 66, 69, 64, 58, 42, 20, 4, -14, -34, -57, + -71, -73, -73, -63, -51, -35, -5, 23, 38, 48, 62, 71, 69, 65, 54, 32, + 14, -6, -26, -48, -68, -79, -82, -72, -57, -42, -18, 11, 33, 48, 63, 73, + 72, 68, 62, 46, 22, 0, -21, -42, -63, -76, -83, -80, -65, -49, -28, -2, + 23, 42, 58, 71, 75, 72, 68, 56, 33, 10, -12, -32, -54, -73, -84, -87, + -73, -54, -36, -15, 11, 34, 52, 67, 73, 73, 72, 66, 48, 21, -6, -26, + -47, -67, -80, -88, -81, -62, -41, -23, 0, 27, 47, 65, 74, 74, 71, 67, + 57, 33, 4, -20, -42, -64, -77, -88, -88, -72, -49, -27, -7, 16, 40, 63, + 75, 75, 74, 69, 64, 46, 16, -13, -35, -57, -74, -87, -93, -81, -58, -35, + -17, 6, 33, 59, 73, 76, 76, 71, 68, 58, 29, -4, -29, -48, -68, -83, + -94, -92, -70, -42, -22, -4, 21, 51, 73, 78, 76, 73, 70, 63, 40, 7, + -24, -42, -60, -79, -91, -92, -76, -52, -30, -12, 9, 39, 66, 76, 76, 75, + 74, 70, 54, 24, -12, -36, -52, -72, -93, -100, -90, -64, -38, -21, -5, 25, + 61, 81, 81, 77, 78, 76, 63, 33, -5, -33, -49, -67, -90, -100, -92, -71, + -44, -21, -8, 14, 49, 75, 82, 77, 76, 75, 66, 45, 10, -27, -45, -59, + -80, -98, -98, -81, -52, -26, -12, 2, 34, 71, 86, 80, 75, 77, 71, 54, + 23, -17, -44, -57, -74, -93, -99, -87, -65, -36, -14, -4, 20, 55, 79, 82, + 78, 78, 75, 65, 41, 1, -34, -52, -67, -88, -104, -98, -76, -47, -23, -12, + 6, 45, 81, 90, 81, 79, 81, 72, 50, 11, -28, -50, -61, -81, -102, -103, + -84, -57, -30, -13, 1, 30, 70, 92, 88, 81, 80, 75, 59, 27, -15, -48, + -62, -76, -97, -106, -94, -69, -39, -16, -4, 17, 59, 92, 94, 87, 86, 83, + 67, 36, -4, -38, -61, -77, -96, -111, -102, -80, -53, -26, -8, 14, 50, 89, + 101, 93, 87, 83, 73, 46, 7, -31, -58, -72, -87, -106, -106, -88, -59, -31, + -12, 5, 33, 74, 99, 99, 90, 84, 78, 57, 22, -18, -49, -70, -84, -100, + -108, -96, -72, -43, -21, -3, 24, 61, 95, 106, 99, 90, 82, 65, 34, -6, + -40, -66, -83, -96, -106, -102, -82, -52, -27, -8, 15, 48, 86, 107, 105, 94, + 85, 73, 45, 6, -32, -61, -80, -91, -102, -106, -92, -63, -35, -15, 8, 37, + 74, 102, 109, 98, 87, 76, 54, 21, -16, -50, -76, -89, -98, -104, -98, -76, + -46, -23, -2, 25, 60, 93, 111, 106, 92, 82, 65, 35, -5, -39, -66, -83, + -95, -105, -105, -86, -57, -33, -11, 15, 50, 86, 111, 115, 102, 88, 71, 43, + 7, -32, -64, -86, -96, -100, -102, -92, -67, -40, -13, 13, 42, 75, 103, 116, + 106, 90, 74, 49, 16, -21, -54, -80, -94, -98, -100, -94, -75, -50, -23, 4, + 30, 62, 95, 117, 115, 100, 81, 57, 28, -10, -46, -75, -95, -102, -101, -97, + -83, -61, -32, -2, 24, 55, 87, 111, 118, 106, 88, 65, 35, 0, -36, -67, + -89, -101, -102, -98, -89, -68, -43, -13, 16, 46, 80, 107, 121, 116, 98, 75, + 47, 11, -27, -62, -87, -101, -104, -100, -93, -77, -51, -18, 13, 36, 67, 99, + 119, 119, 103, 81, 53, 21, -16, -52, -79, -96, -106, -102, -93, -82, -60, -30, + 3, 30, 59, 88, 111, 121, 111, 89, 61, 30, -4, -41, -74, -94, -106, -104, + -95, -87, -70, -41, -8, 22, 49, 81, 106, 120, 118, 98, 73, 41, 8, -30, + -64, -87, -104, -111, -100, -91, -77, -51, -21, 13, 41, 73, 100, 117, 122, 107, + 83, 52, 19, -18, -55, -82, -101, -111, -105, -93, -83, -60, -29, 5, 35, 64, + 92, 112, 121, 112, 88, 61, 29, -7, -45, -75, -94, -108, -108, -96, -87, -67, + -37, -5, 26, 52, 83, 105, 116, 116, 97, 70, 41, 7, -33, -67, -91, -105, + -110, -99, -88, -73, -48, -18, 15, 45, 74, 98, 114, 118, 104, 79, 51, 17, + -21, -58, -86, -102, -109, -103, -90, -77, -54, -23, 9, 36, 62, 88, 107, 114, + 107, 88, 63, 30, -8, -46, -77, -96, -107, -108, -97, -81, -63, -36, -4, 30, + 59, 84, 104, 115, 112, 95, 69, 38, 5, -33, -69, -94, -104, -105, -99, -87, + -72, -44, -11, 21, 47, 71, 97, 113, 113, 99, 77, 49, 17, -19, -57, -87, + -101, -105, -103, -90, -72, -54, -24, 10, 41, 64, 86, 104, 111, 104, 85, 57, + 25, -7, -42, -75, -96, -101, -98, -92, -79, -61, -36, -4, 28, 51, 74, 98, + 110, 107, 94, 70, 38, 5, -30, -64, -89, -101, -101, -95, -79, -63, -43, -14, + 21, 48, 68, 90, 105, 108, 97, 74, 44, 12, -20, -52, -83, -96, -96, -92, + -82, -67, -49, -24, 10, 39, 59, 79, 99, 107, 101, 83, 54, 21, -11, -41, + -71, -92, -98, -95, -84, -68, -54, -35, -5, 28, 54, 73, 92, 103, 103, 90, + 64, 31, -4, -34, -63, -85, -94, -92, -84, -70, -56, -38, -11, 19, 44, 64, + 83, 95, 98, 90, 66, 39, 9, -22, -50, -73, -86, -89, -84, -72, -59, -45, + -23, 6, 35, 58, 75, 89, 96, 92, 75, 49, 19, -14, -42, -63, -80, -88, + -84, -74, -60, -48, -30, -5, 23, 52, 70, 82, 91, 91, 79, 57, 29, -3, + -33, -54, -70, -84, -87, -79, -65, -50, -35, -16, 10, 41, 68, 80, 85, 88, + 82, 64, 36, 3, -28, -49, -60, -72, -83, -81, -66, -49, -37, -22, -2, 28, + 58, 74, 78, 83, 81, 69, 45, 14, -18, -42, -55, -66, -77, -79, -68, -53, + -39, -25, -8, 17, 46, 67, 72, 75, 74, 70, 53, 24, -9, -34, -48, -55, + -64, -74, -70, -55, -40, -28, -17, 3, 33, 61, 70, 71, 69, 68, 61, 37, + 3, -28, -44, -50, -57, -70, -73, -58, -41, -30, -21, -8, 21, 52, 67, 69, + 66, 66, 64, 44, 10, -22, -39, -48, -52, -61, -72, -62, -43, -29, -20, -12, + 7, 38, 62, 68, 61, 56, 60, 51, 23, -12, -36, -43, -44, -49, -65, -65, + -45, -29, -22, -19, -7, 24, 52, 65, 57, 52, 58, 57, 36, 0, -30, -38, + -37, -39, -55, -66, -52, -33, -23, -21, -14, 10, 40, 60, 59, 49, 51, 54, + 43, 11, -21, -35, -37, -33, -42, -55, -49, -29, -19, -20, -19, -5, 23, 49, + 54, 43, 42, 50, 49, 23, -12, -30, -34, -29, -31, -49, -54, -35, -19, -16, + -18, -11, 10, 39, 55, 45, 35, 41, 47, 31, -3, -26, -33, -28, -23, -36, + -47, -36, -18, -11, -16, -16, -3, 21, 42, 42, 32, 32, 40, 35, 13, -13, + -25, -24, -17, -22, -37, -38, -25, -16, -16, -19, -11, 7, 30, 42, 34, 27, + 33, 35, 19, -6, -21, -23, -17, -14, -23, -29, -21, -11, -10, -17, -16, -4, + 14, 30, 31, 20, 21, 29, 24, 6, -11, -16, -11, -5, -10, -20, -22, -15, + -12, -17, -21, -15, 0, 20, 29, 22, 17, 23, 25, 16, -2, -14, -14, -7, + -2, -9, -14, -12, -9, -11, -17, -17, -11, 3, 18, 17, 9, 13, 19, 17, + 7, -5, -5, 3, 8, 3, -7, -10, -12, -14, -20, -22, -17, -7, 9, 17, + 10, 8, 15, 18, 11, 2, -3, 1, 8, 9, 5, -3, -9, -12, -18, -21, + -21, -19, -4, 10, 9, 2, 5, 14, 16, 11, 4, 5, 13, 16, 14, 6, + -8, -14, -19, -23, -24, -21, -13, -2, 7, 3, -2, 8, 12, 11, 9, 10, + 14, 19, 20, 16, 4, -9, -17, -23, -26, -27, -24, -14, -2, 1, -5, 3, + 15, 17, 14, 14, 17, 22, 25, 20, 9, -8, -19, -25, -30, -29, -26, -22, + -11, 0, -3, -3, 9, 16, 19, 20, 21, 24, 28, 28, 20, 2, -16, -25, + -30, -34, -33, -32, -23, -9, -6, -8, 2, 15, 21, 24, 26, 29, 33, 34, + 30, 14, -11, -26, -33, -38, -38, -37, -34, -23, -12, -7, 0, 11, 21, 29, + 34, 35, 37, 39, 35, 21, -5, -26, -34, -39, -40, -42, -42, -31, -17, -9, + -4, 7, 19, 31, 38, 38, 41, 42, 40, 28, 3, -22, -36, -42, -45, -46, + -46, -37, -23, -14, -6, 6, 20, 32, 40, 40, 44, 46, 41, 31, 13, -12, + -32, -44, -47, -48, -49, -44, -32, -20, -8, 3, 15, 27, 40, 45, 47, 50, + 47, 39, 21, -6, -29, -42, -46, -51, -56, -52, -41, -24, -13, -4, 11, 27, + 41, 51, 52, 53, 52, 45, 29, 2, -25, -45, -50, -52, -57, -56, -49, -32, + -16, -4, 9, 22, 36, 49, 55, 56, 56, 50, 35, 11, -14, -37, -51, -57, + -61, -61, -56, -41, -23, -8, 8, 21, 33, 48, 61, 64, 60, 54, 40, 17, + -8, -34, -52, -59, -62, -63, -60, -49, -30, -14, 2, 19, 33, 47, 60, 66, + 67, 65, 50, 25, -3, -26, -47, -59, -68, -72, -66, -57, -38, -20, -5, 14, + 30, 44, 61, 71, 71, 68, 57, 34, 7, -20, -43, -58, -68, -72, -69, -62, + -45, -25, -10, 7, 24, 42, 59, 70, 74, 73, 65, 46, 16, -15, -38, -53, + -65, -77, -77, -70, -54, -34, -19, 0, 20, 41, 60, 74, 82, 80, 71, 54, + 27, -8, -36, -55, -68, -78, -82, -76, -61, -40, -20, -2, 17, 36, 57, 74, + 83, 82, 74, 62, 39, 3, -31, -49, -62, -75, -84, -84, -69, -47, -27, -13, + 6, 31, 56, 73, 82, 86, 80, 68, 49, 14, -24, -46, -60, -74, -83, -86, + -76, -54, -32, -15, 3, 23, 48, 71, 85, 87, 80, 71, 57, 27, -12, -41, + -57, -68, -78, -88, -84, -64, -41, -23, -5, 16, 40, 65, 84, 90, 87, 77, + 63, 36, -3, -34, -57, -69, -76, -85, -87, -73, -48, -27, -8, 13, 34, 60, + 83, 91, 86, 77, 66, 44, 9, -26, -53, -68, -74, -83, -88, -80, -56, -33, + -13, 9, 29, 55, 79, 93, 89, 76, 67, 52, 21, -15, -46, -69, -74, -77, + -84, -86, -67, -42, -20, 4, 23, 43, 71, 94, 95, 80, 67, 56, 32, 0, + -37, -66, -74, -73, -78, -87, -76, -50, -25, 1, 21, 37, 61, 88, 97, 84, + 67, 57, 38, 8, -25, -59, -77, -77, -76, -81, -80, -61, -34, -6, 20, 36, + 55, 80, 96, 91, 70, 54, 39, 17, -14, -51, -75, -79, -75, -77, -80, -68, + -40, -11, 15, 33, 48, 71, 92, 91, 73, 57, 45, 24, -3, -38, -68, -79, + -77, -76, -80, -74, -51, -19, 12, 32, 46, 65, 88, 96, 83, 59, 40, 24, + 4, -31, -67, -83, -80, -73, -73, -72, -55, -24, 9, 31, 44, 58, 78, 90, + 84, 63, 42, 28, 10, -18, -53, -77, -82, -76, -73, -74, -65, -37, -2, 27, + 42, 55, 73, 88, 90, 72, 47, 28, 13, -12, -45, -74, -84, -78, -70, -68, + -63, -43, -9, 23, 42, 52, 64, 78, 84, 75, 52, 32, 17, -3, -32, -62, + -79, -78, -71, -67, -65, -52, -19, 15, 38, 50, 61, 73, 80, 79, 59, 34, + 18, 3, -21, -51, -75, -81, -72, -64, -61, -54, -31, 4, 31, 48, 55, 63, + 73, 78, 67, 40, 21, 8, -12, -39, -65, -80, -76, -65, -58, -52, -38, -8, + 25, 45, 56, 61, 67, 74, 69, 47, 22, 7, -10, -31, -56, -75, -77, -66, + -57, -49, -37, -14, 16, 40, 53, 57, 61, 67, 69, 55, 30, 11, -6, -25, + -47, -69, -78, -70, -59, -51, -40, -20, 10, 34, 51, 58, 59, 63, 66, 59, + 36, 14, -2, -19, -40, -61, -75, -71, -59, -51, -41, -27, -2, 26, 47, 58, + 58, 59, 64, 63, 46, 19, -2, -17, -35, -56, -71, -75, -64, -50, -40, -26, + -6, 21, 43, 55, 57, 56, 58, 59, 47, 23, 1, -13, -29, -48, -63, -69, + -61, -48, -40, -29, -11, 13, 35, 48, 53, 51, 53, 57, 50, 33, 9, -10, + -25, -42, -56, -65, -64, -51, -40, -29, -13, 9, 30, 44, 50, 48, 47, 50, + 46, 35, 13, -8, -20, -33, -47, -57, -56, -48, -38, -30, -16, 1, 21, 35, + 44, 46, 42, 44, 44, 39, 21, -3, -18, -30, -40, -51, -57, -51, -37, -26, + -14, 0, 16, 33, 42, 43, 37, 34, 37, 35, 22, 1, -17, -27, -34, -41, + -48, -45, -36, -25, -11, 0, 11, 24, 34, 38, 35, 30, 29, 30, 24, 8, + -11, -24, -31, -36, -42, -42, -35, -25, -12, -2, 9, 21, 29, 33, 32, 27, + 25, 26, 23, 9, -8, -21, -31, -34, -36, -37, -33, -26, -13, -2, 8, 18, + 24, 28, 29, 27, 22, 20, 21, 14, -2, -17, -27, -30, -31, -33, -32, -26, + -14, -3, 6, 15, 22, 27, 26, 25, 22, 17, 17, 13, 3, -12, -25, -30, + -31, -30, -27, -24, -14, 0, 8, 16, 20, 22, 22, 21, 16, 11, 13, 13, + 3, -8, -21, -27, -26, -25, -25, -23, -12, 0, 6, 12, 18, 20, 22, 20, + 15, 9, 9, 10, 3, -9, -21, -29, -28, -23, -20, -19, -10, 3, 13, 17, + 19, 19, 21, 17, 11, 4, 1, 4, 0, -8, -17, -25, -24, -21, -19, -16, + -9, 4, 13, 17, 19, 20, 22, 19, 11, 3, -4, -3, -4, -12, -18, -26, + -28, -23, -16, -10, -5, 5, 18, 25, 25, 22, 21, 19, 9, 0, -9, -11, + -10, -13, -16, -24, -27, -22, -14, -8, -2, 7, 17, 25, 25, 22, 20, 17, + 10, -2, -10, -12, -13, -15, -18, -20, -24, -22, -16, -8, 3, 11, 17, 25, + 27, 23, 21, 17, 9, 0, -10, -12, -13, -18, -19, -20, -24, -23, -17, -10, + 0, 11, 19, 26, 30, 26, 24, 20, 12, 3, -8, -15, -18, -22, -25, -25, + -25, -24, -20, -12, 2, 15, 20, 25, 31, 33, 29, 23, 12, 3, -5, -15, + -23, -28, -28, -25, -22, -22, -18, -10, 2, 15, 19, 23, 30, 32, 28, 24, + 15, 7, 1, -13, -23, -27, -29, -28, -26, -24, -20, -14, -2, 13, 20, 24, + 32, 34, 32, 29, 22, 9, -2, -10, -21, -30, -34, -34, -29, -22, -20, -18, + -5, 14, 23, 25, 31, 36, 35, 30, 22, 10, 0, -8, -21, -34, -39, -36, + -32, -27, -20, -15, -5, 14, 27, 28, 32, 36, 35, 33, 25, 14, 0, -11, + -21, -34, -40, -41, -39, -30, -20, -13, -6, 10, 27, 30, 32, 35, 34, 36, + 29, 17, 5, -7, -16, -33, -45, -45, -43, -33, -24, -18, -9, 8, 26, 32, + 33, 39, 38, 36, 31, 20, 10, -6, -19, -32, -45, -47, -46, -39, -25, -12, + -3, 8, 22, 32, 32, 35, 35, 32, 31, 23, 14, 0, -15, -26, -43, -51, + -50, -43, -29, -17, -6, 5, 19, 34, 36, 33, 37, 37, 34, 25, 16, 5, + -11, -26, -41, -51, -55, -51, -36, -21, -7, 7, 16, 28, 37, 35, 35, 36, + 34, 30, 20, 9, -7, -22, -37, -49, -56, -54, -42, -25, -11, 2, 13, 24, + 35, 38, 37, 38, 37, 32, 25, 16, 1, -21, -38, -47, -56, -58, -50, -34, + -14, 4, 13, 20, 31, 40, 39, 35, 36, 34, 28, 20, 5, -15, -33, -44, + -55, -63, -54, -38, -19, -2, 10, 17, 30, 40, 41, 36, 38, 41, 33, 22, + 9, -13, -36, -50, -55, -63, -61, -44, -22, 2, 18, 22, 28, 38, 42, 39, + 34, 35, 34, 27, 14, -7, -29, -43, -51, -60, -63, -50, -30, -10, 8, 16, + 21, 32, 40, 40, 38, 39, 41, 35, 24, 6, -20, -41, -54, -62, -65, -58, + -39, -16, 7, 18, 22, 29, 39, 43, 40, 35, 38, 37, 27, 12, -14, -37, + -51, -58, -64, -64, -47, -22, -2, 14, 18, 24, 36, 44, 45, 41, 43, 43, + 32, 17, -8, -35, -54, -63, -67, -68, -56, -29, -4, 16, 24, 26, 35, 44, + 47, 43, 38, 38, 36, 24, 0, -30, -50, -57, -59, -63, -61, -40, -11, 11, + 20, 20, 26, 39, 48, 46, 40, 39, 42, 33, 12, -20, -47, -58, -60, -62, + -61, -49, -23, 2, 17, 21, 22, 33, 48, 51, 45, 43, 43, 38, 20, -10, + -41, -58, -61, -64, -62, -55, -35, -9, 10, 21, 23, 32, 50, 57, 49, 45, + 45, 43, 26, -6, -38, -58, -62, -65, -67, -61, -44, -15, 10, 23, 26, 28, + 44, 59, 55, 46, 42, 41, 33, 6, -30, -57, -64, -62, -64, -62, -50, -26, + 2, 18, 26, 28, 39, 59, 60, 48, 43, 43, 37, 14, -22, -53, -67, -63, + -65, -66, -55, -33, -2, 19, 28, 31, 37, 55, 64, 53, 41, 39, 37, 20, + -16, -48, -66, -65, -62, -66, -60, -43, -12, 15, 26, 31, 37, 53, 69, 63, + 46, 39, 38, 27, -5, -44, -72, -73, -65, -65, -63, -52, -24, 11, 31, 36, + 38, 48, 65, 70, 53, 38, 34, 28, 5, -35, -69, -78, -70, -65, -63, -53, + -30, 2, 26, 38, 43, 49, 62, 69, 58, 40, 33, 28, 9, -25, -61, -78, + -75, -69, -64, -55, -37, -7, 22, 36, 43, 49, 57, 66, 62, 44, 31, 29, + 15, -16, -52, -76, -77, -69, -63, -57, -44, -16, 14, 33, 42, 48, 54, 65, + 68, 52, 33, 27, 19, -6, -41, -72, -82, -74, -65, -59, -48, -24, 7, 29, + 43, 50, 53, 60, 67, 58, 39, 28, 22, 2, -31, -64, -82, -79, -71, -61, + -49, -31, -2, 22, 40, 51, 55, 58, 65, 63, 46, 29, 21, 9, -21, -56, + -79, -83, -77, -65, -54, -37, -10, 16, 36, 50, 57, 60, 65, 64, 50, 33, + 22, 11, -13, -47, -73, -82, -80, -70, -57, -42, -19, 8, 30, 49, 58, 61, + 62, 64, 56, 41, 24, 11, -6, -35, -66, -80, -82, -75, -61, -45, -25, -2, + 22, 43, 57, 63, 64, 63, 58, 49, 31, 15, -2, -26, -58, -79, -85, -81, + -66, -49, -31, -9, 17, 39, 55, 64, 69, 67, 61, 53, 35, 16, 1, -20, + -49, -75, -86, -85, -74, -54, -34, -11, 11, 33, 53, 64, 70, 68, 59, 51, + 40, 22, 5, -15, -40, -66, -79, -81, -78, -63, -41, -19, 4, 25, 44, 58, + 67, 72, 65, 57, 47, 29, 11, -8, -31, -61, -81, -85, -82, -68, -47, -25, + -3, 21, 44, 59, 68, 73, 68, 56, 47, 33, 15, -7, -27, -52, -76, -82, + -82, -72, -52, -30, -7, 13, 36, 57, 67, 74, 72, 61, 48, 36, 20, -4, + -25, -47, -71, -81, -81, -75, -56, -33, -10, 11, 30, 49, 63, 73, 74, 63, + 48, 37, 25, 6, -20, -41, -63, -79, -81, -77, -65, -43, -19, 4, 25, 45, + 63, 73, 76, 70, 55, 41, 28, 10, -15, -38, -59, -77, -83, -79, -70, -49, + -25, -4, 20, 40, 59, 74, 76, 73, 62, 46, 33, 16, -10, -34, -51, -68, + -83, -85, -75, -58, -34, -11, 14, 35, 55, 73, 79, 76, 69, 51, 33, 20, + -2, -30, -53, -67, -81, -84, -76, -61, -39, -14, 11, 32, 49, 67, 77, 74, + 68, 55, 37, 23, 5, -22, -45, -59, -73, -84, -82, -68, -46, -24, 3, 26, + 43, 62, 75, 74, 72, 61, 42, 25, 10, -15, -40, -57, -70, -83, -84, -71, + -49, -28, -6, 20, 41, 59, 72, 72, 69, 63, 48, 29, 13, -8, -31, -51, + -66, -79, -84, -75, -56, -37, -16, 12, 36, 55, 71, 74, 72, 69, 54, 34, + 16, -5, -28, -47, -61, -75, -85, -80, -60, -38, -20, 4, 30, 53, 68, 71, + 69, 67, 57, 39, 20, 0, -21, -41, -58, -71, -79, -79, -66, -45, -25, -3, + 23, 45, 61, 68, 69, 70, 63, 47, 29, 8, -16, -37, -56, -71, -80, -81, + -71, -52, -30, -7, 17, 41, 60, 67, 67, 68, 65, 50, 30, 10, -14, -31, + -47, -65, -77, -79, -70, -53, -33, -14, 8, 34, 56, 62, 62, 66, 64, 54, + 36, 15, -8, -27, -42, -61, -73, -75, -70, -56, -36, -14, 5, 26, 49, 60, + 59, 61, 60, 54, 42, 23, -2, -22, -35, -53, -69, -75, -70, -58, -41, -20, + -3, 18, 43, 59, 57, 57, 60, 56, 44, 28, 7, -17, -32, -47, -63, -73, + -72, -62, -46, -23, -6, 12, 35, 55, 60, 57, 59, 56, 49, 35, 14, -13, + -28, -40, -58, -72, -73, -62, -50, -31, -13, 5, 30, 51, 59, 56, 58, 61, + 56, 38, 17, -9, -26, -37, -52, -68, -74, -63, -50, -32, -14, 1, 22, 45, + 57, 56, 51, 54, 54, 41, 21, -4, -22, -31, -44, -59, -69, -63, -48, -36, + -21, -7, 11, 35, 52, 56, 53, 54, 58, 48, 30, 8, -17, -32, -43, -57, + -68, -69, -56, -39, -22, -8, 6, 28, 49, 57, 54, 51, 55, 52, 35, 13, + -13, -29, -36, -49, -64, -70, -58, -39, -23, -11, 0, 19, 43, 57, 55, 47, + 49, 55, 43, 18, -9, -28, -35, -42, -57, -69, -65, -45, -25, -11, 1, 14, + 37, 55, 60, 50, 45, 48, 42, 21, -4, -25, -35, -40, -50, -60, -61, -46, + -27, -15, -6, 6, 25, 46, 56, 50, 43, 45, 47, 33, 9, -15, -30, -37, + -45, -58, -64, -56, -36, -18, -8, 4, 18, 40, 58, 59, 47, 39, 41, 35, + 12, -15, -32, -38, -39, -46, -57, -55, -37, -17, -7, 1, 11, 27, 48, 56, + 47, 37, 38, 38, 21, -6, -24, -32, -37, -43, -54, -57, -44, -25, -9, 2, + 11, 24, 44, 57, 51, 38, 32, 31, 21, -5, -28, -35, -36, -36, -45, -51, + -41, -25, -8, 3, 8, 17, 33, 48, 49, 37, 31, 30, 25, 7, -18, -30, + -34, -37, -40, -48, -47, -33, -16, 1, 11, 16, 28, 42, 50, 43, 30, 25, + 22, 10, -12, -28, -33, -34, -35, -41, -44, -33, -18, -2, 9, 12, 20, 32, + 43, 41, 29, 24, 22, 14, -3, -21, -29, -30, -31, -35, -41, -35, -21, -6, + 9, 13, 18, 27, 38, 42, 29, 18, 16, 13, 4, -15, -27, -28, -27, -28, + -34, -34, -23, -10, 5, 11, 14, 22, 32, 37, 31, 20, 16, 12, 6, -9, + -22, -25, -27, -26, -32, -34, -27, -15, 0, 10, 12, 18, 28, 36, 35, 23, + 14, 11, 8, -3, -19, -28, -28, -25, -27, -32, -28, -16, -2, 11, 14, 14, + 22, 30, 31, 24, 15, 11, 8, 2, -11, -22, -25, -25, -26, -30, -28, -18, + -7, 5, 12, 14, 19, 27, 30, 26, 19, 13, 9, 4, -6, -20, -26, -23, + -24, -27, -27, -19, -6, 4, 12, 12, 13, 22, 26, 22, 15, 11, 10, 6, + -2, -12, -19, -19, -21, -25, -25, -20, -11, -3, 5, 9, 13, 19, 24, 24, + 21, 15, 12, 7, 2, -9, -20, -22, -22, -23, -24, -22, -11, -2, 7, 11, + 13, 17, 21, 21, 18, 13, 11, 7, 1, -7, -15, -19, -19, -21, -20, -18, + -12, -4, 2, 8, 11, 15, 17, 16, 15, 13, 11, 8, 4, -3, -11, -16, + -15, -19, -20, -16, -12, -5, 2, 5, 8, 14, 17, 15, 11, 10, 9, 8, + 4, -2, -6, -11, -12, -14, -18, -13, -7, -6, -3, 2, 6, 10, 13, 13, + 9, 8, 9, 6, 1, 0, -5, -9, -12, -12, -13, -12, -4, 1, 3, 4, + 4, 7, 11, 10, 7, 3, 3, 4, 2, -2, -3, -6, -7, -6, -6, -8, + -5, 2, 1, 1, 0, 1, 5, 5, 3, 0, 0, 5, 5, 2, 3, 0, + -3, -5, -6, -8, -7, -2, -3, -4, -2, -2, 3, 6, 4, 1, -3, 1, + 5, 3, 2, 0, -2, -3, -4, -5, -5, 1, 2, -3, -3, -4, -3, 4, + 4, 0, -5, -3, 3, 3, 2, 1, 1, 0, 0, 0, -3, -2, 1, -2, + -4, -3, -4, 1, 5, 2, -5, -7, -2, 2, -2, -2, 0, 2, 3, 2, + 2, 3, 6, 4, -2, -5, -6, -2, 3, -2, -9, -11, -5, 0, -3, -4, + -2, 3, 7, 8, 4, 2, 4, 3, 0, -6, -8, -6, 2, 4, -3, -10, + -10, -5, -2, -4, -5, -3, 5, 11, 11, 8, 5, 5, 4, -2, -9, -9, + -2, 0, -5, -13, -14, -10, -5, -4, -2, 2, 6, 14, 15, 11, 8, 6, + 1, -5, -10, -12, -6, 1, -2, -10, -15, -11, -4, -3, -6, -5, 2, 14, + 19, 14, 10, 10, 8, 3, -6, -15, -12, -4, -4, -12, -18, -17, -10, -2, + 0, 1, 6, 16, 25, 21, 12, 8, 4, -2, -8, -18, -20, -11, -6, -9, + -14, -14, -10, -3, 0, 1, 6, 13, 23, 25, 17, 13, 9, 1, -6, -13, + -18, -14, -11, -13, -17, -19, -14, -8, -3, 1, 7, 14, 24, 30, 24, 16, + 12, 4, -5, -11, -18, -19, -15, -12, -14, -19, -18, -14, -9, 0, 8, 13, + 19, 27, 28, 22, 18, 9, -4, -11, -14, -16, -15, -16, -16, -17, -16, -14, + -13, -6, 4, 12, 19, 26, 31, 27, 19, 13, 3, -8, -12, -16, -18, -19, + -17, -16, -20, -18, -15, -10, 1, 10, 18, 24, 31, 30, 22, 18, 9, -4, + -10, -14, -17, -20, -22, -19, -19, -22, -18, -13, -2, 9, 16, 21, 29, 36, + 29, 19, 12, 1, -7, -10, -15, -22, -24, -20, -18, -21, -21, -17, -8, 7, + 16, 23, 27, 33, 35, 26, 17, 7, -5, -11, -14, -22, -27, -24, -19, -22, + -25, -19, -11, 5, 16, 21, 25, 33, 38, 31, 18, 9, -2, -10, -13, -22, + -29, -28, -21, -18, -24, -22, -15, -3, 14, 21, 24, 30, 38, 36, 24, 13, + 4, -5, -9, -16, -28, -32, -25, -21, -25, -27, -18, -7, 8, 18, 24, 31, + 40, 40, 29, 16, 6, -3, -8, -16, -27, -31, -27, -22, -24, -27, -21, -10, + 4, 16, 22, 28, 37, 40, 33, 19, 7, 1, -5, -12, -23, -32, -28, -23, + -23, -27, -26, -15, -2, 13, 21, 25, 34, 41, 38, 28, 14, 4, -3, -11, + -22, -34, -35, -30, -26, -28, -29, -20, -3, 14, 24, 27, 32, 41, 42, 34, + 17, 4, -4, -11, -20, -32, -38, -33, -28, -27, -27, -22, -9, 7, 20, 29, + 34, 39, 40, 37, 24, 10, 2, -7, -16, -28, -40, -40, -33, -29, -28, -27, + -16, 5, 21, 28, 32, 36, 41, 40, 30, 12, 1, -6, -11, -22, -37, -42, + -34, -30, -29, -27, -20, -3, 16, 27, 32, 34, 39, 41, 35, 20, 6, -4, + -11, -16, -32, -45, -41, -33, -31, -27, -23, -10, 13, 28, 33, 35, 38, 39, + 36, 25, 8, -6, -11, -14, -26, -42, -45, -34, -29, -25, -23, -15, 6, 26, + 36, 36, 36, 37, 36, 29, 14, -2, -12, -14, -23, -42, -50, -42, -32, -23, + -18, -15, 3, 25, 38, 39, 35, 35, 37, 33, 18, -3, -15, -18, -20, -34, + -48, -47, -34, -22, -14, -12, -4, 17, 35, 41, 37, 34, 33, 33, 24, 6, + -13, -22, -22, -30, -45, -51, -39, -23, -10, -6, -3, 13, 32, 41, 37, 30, + 29, 31, 27, 10, -10, -22, -23, -26, -38, -48, -44, -28, -12, -5, -3, 9, + 27, 38, 38, 32, 28, 29, 27, 17, -4, -21, -26, -27, -35, -47, -49, -33, + -12, 2, 5, 9, 23, 35, 40, 34, 21, 23, 25, 22, 5, -20, -28, -28, + -29, -39, -50, -43, -19, 3, 10, 7, 15, 29, 41, 43, 28, 22, 23, 22, + 12, -16, -33, -32, -32, -38, -46, -43, -21, 3, 15, 13, 16, 29, 35, 35, + 27, 19, 19, 19, 15, -8, -30, -31, -30, -32, -40, -44, -29, -2, 18, 17, + 11, 22, 34, 37, 32, 21, 18, 20, 17, -2, -28, -37, -34, -34, -38, -42, + -30, -7, 16, 22, 16, 20, 31, 31, 29, 23, 17, 18, 19, 6, -21, -37, + -35, -34, -35, -38, -35, -15, 14, 27, 21, 13, 23, 31, 31, 26, 16, 12, + 16, 12, -10, -35, -39, -35, -36, -36, -34, -21, 6, 24, 24, 16, 20, 29, + 28, 27, 22, 16, 17, 15, -4, -29, -41, -39, -40, -39, -36, -29, -6, 20, + 27, 21, 19, 28, 33, 31, 27, 18, 14, 13, 2, -22, -41, -43, -40, -39, + -34, -28, -12, 16, 28, 24, 19, 25, 29, 27, 24, 19, 15, 12, 4, -15, + -34, -41, -40, -37, -32, -26, -18, 5, 24, 24, 20, 21, 26, 27, 26, 24, + 18, 12, 6, -9, -30, -44, -45, -41, -33, -26, -19, -2, 23, 29, 24, 22, + 24, 28, 25, 22, 18, 13, 7, -7, -24, -40, -46, -42, -36, -28, -21, -6, + 15, 28, 25, 22, 25, 29, 28, 23, 20, 14, 6, -6, -22, -40, -47, -42, + -36, -28, -23, -10, 13, 30, 28, 21, 23, 27, 28, 21, 18, 16, 9, -2, + -17, -33, -44, -44, -38, -31, -23, -14, 5, 25, 32, 25, 23, 26, 29, 24, + 16, 13, 8, -2, -15, -31, -43, -44, -37, -30, -23, -14, 1, 21, 31, 27, + 22, 24, 28, 25, 17, 13, 10, 3, -10, -27, -40, -44, -38, -32, -26, -17, + -3, 16, 31, 31, 25, 25, 30, 29, 17, 8, 7, 3, -8, -25, -39, -43, + -37, -31, -27, -18, -4, 13, 29, 32, 26, 24, 27, 27, 17, 9, 8, 6, + -5, -20, -34, -39, -37, -34, -30, -21, -8, 6, 23, 34, 31, 29, 28, 27, + 22, 13, 6, 5, -4, -18, -34, -40, -37, -34, -29, -23, -10, 5, 21, 32, + 29, 27, 29, 26, 20, 12, 4, 3, 0, -12, -28, -37, -35, -31, -29, -23, + -13, 1, 16, 30, 33, 29, 27, 25, 21, 15, 5, -2, -3, -9, -22, -35, + -36, -31, -29, -24, -14, 0, 12, 27, 35, 31, 29, 26, 21, 16, 8, -2, + -3, -7, -19, -34, -36, -32, -31, -28, -18, -3, 11, 22, 32, 32, 30, 29, + 23, 16, 11, 2, -3, -6, -17, -32, -37, -32, -30, -31, -23, -6, 9, 18, + 30, 36, 32, 31, 25, 17, 13, 4, -6, -8, -14, -26, -36, -34, -31, -31, + -25, -11, 6, 16, 24, 34, 35, 33, 28, 17, 16, 10, -3, -9, -13, -23, + -34, -36, -32, -31, -27, -16, 2, 16, 22, 30, 35, 33, 30, 21, 15, 11, + 0, -7, -11, -20, -31, -35, -31, -31, -29, -21, -6, 13, 21, 25, 32, 34, + 33, 26, 18, 13, 4, -6, -10, -19, -29, -34, -34, -29, -27, -24, -12, 7, + 20, 25, 30, 33, 32, 29, 21, 13, 7, -5, -11, -18, -28, -35, -36, -29, + -25, -24, -16, 3, 21, 26, 28, 34, 37, 34, 26, 12, 4, -5, -13, -20, + -30, -35, -39, -35, -24, -19, -13, -2, 15, 27, 30, 32, 34, 31, 28, 18, + 5, -6, -15, -20, -24, -31, -37, -35, -24, -19, -16, -9, 8, 24, 30, 30, + 33, 35, 35, 24, 5, -5, -11, -20, -27, -34, -40, -39, -30, -21, -16, -9, + 4, 20, 32, 36, 36, 36, 35, 31, 13, -3, -13, -23, -27, -29, -41, -44, + -33, -19, -11, -10, -4, 14, 32, 38, 34, 33, 36, 33, 18, -4, -13, -20, + -25, -28, -37, -43, -34, -22, -14, -8, -4, 9, 26, 39, 38, 35, 35, 34, + 23, 3, -12, -21, -28, -28, -31, -41, -40, -27, -15, -7, -6, 2, 20, 37, + 42, 36, 34, 35, 28, 9, -10, -18, -24, -26, -29, -38, -42, -32, -21, -11, + -6, -3, 12, 33, 45, 41, 37, 37, 29, 13, -4, -17, -26, -28, -28, -33, + -39, -37, -26, -15, -8, -7, 6, 29, 47, 46, 39, 34, 30, 20, 1, -18, + -26, -26, -25, -29, -37, -40, -31, -17, -8, -7, 0, 20, 42, 51, 45, 38, + 30, 18, 7, -10, -24, -27, -26, -24, -29, -38, -37, -27, -14, -9, -6, 11, + 36, 51, 47, 42, 34, 24, 14, -3, -20, -25, -23, -22, -26, -37, -42, -33, + -17, -8, -7, 4, 28, 50, 54, 45, 35, 24, 15, 3, -16, -24, -25, -22, + -23, -32, -41, -37, -22, -11, -8, 0, 21, 44, 54, 46, 34, 26, 18, 7, + -11, -22, -21, -20, -21, -28, -40, -43, -30, -15, -10, -3, 16, 40, 56, 52, + 37, 24, 16, 9, -6, -21, -22, -18, -17, -22, -35, -43, -34, -21, -14, -9, + 7, 34, 53, 54, 40, 29, 21, 14, 4, -14, -21, -17, -17, -22, -33, -46, + -45, -31, -16, -8, 4, 25, 50, 60, 49, 31, 20, 15, 9, -5, -17, -18, + -15, -17, -26, -42, -50, -40, -24, -11, -2, 18, 43, 56, 52, 35, 21, 17, + 11, 0, -12, -18, -14, -15, -22, -36, -50, -46, -30, -15, -3, 12, 35, 53, + 55, 41, 24, 18, 12, 5, -4, -15, -18, -15, -20, -33, -46, -49, -37, -21, + -7, 7, 25, 46, 54, 45, 27, 18, 14, 10, 3, -8, -15, -16, -18, -28, + -41, -49, -44, -29, -12, 4, 17, 35, 49, 49, 34, 19, 16, 15, 9, 1, + -10, -14, -16, -24, -38, -50, -49, -36, -18, -3, 10, 26, 43, 49, 38, 22, + 18, 20, 16, 9, -5, -13, -16, -23, -36, -50, -53, -43, -25, -8, 6, 21, + 38, 48, 44, 27, 19, 21, 19, 13, -2, -13, -17, -21, -30, -45, -52, -46, + -29, -10, 3, 14, 29, 42, 44, 30, 17, 19, 21, 17, 6, -8, -14, -19, + -26, -39, -49, -48, -36, -18, -2, 11, 27, 37, 42, 37, 22, 18, 21, 19, + 9, -5, -13, -18, -24, -33, -45, -46, -39, -24, -8, 6, 20, 33, 40, 38, + 27, 19, 22, 23, 17, 4, -8, -14, -22, -29, -43, -48, -43, -32, -16, -2, + 13, 25, 34, 39, 33, 23, 21, 23, 20, 9, -4, -11, -19, -25, -33, -43, + -42, -34, -20, -7, 3, 14, 24, 32, 31, 22, 20, 26, 28, 20, 6, -5, + -11, -18, -28, -42, -44, -38, -28, -15, -5, 8, 19, 28, 31, 24, 21, 25, + 27, 22, 10, 0, -6, -12, -22, -34, -38, -34, -30, -20, -11, 0, 11, 20, + 26, 23, 19, 22, 27, 25, 17, 7, -2, -7, -17, -29, -35, -35, -34, -26, + -16, -5, 7, 15, 23, 28, 24, 21, 22, 24, 20, 11, -2, -8, -14, -24, + -29, -31, -31, -27, -18, -9, 0, 8, 15, 22, 23, 20, 21, 24, 24, 19, + 7, -4, -10, -19, -26, -32, -34, -33, -24, -12, -2, 6, 14, 22, 26, 23, + 22, 22, 22, 21, 10, 0, -6, -15, -21, -24, -28, -31, -28, -17, -7, 2, + 7, 13, 19, 23, 23, 21, 19, 21, 18, 8, -2, -11, -17, -21, -24, -30, + -33, -25, -11, 0, 4, 9, 16, 20, 21, 20, 18, 18, 20, 14, 4, -6, + -12, -15, -17, -25, -32, -32, -20, -6, -3, -3, 7, 18, 23, 19, 16, 19, + 26, 24, 11, 0, -6, -9, -15, -25, -33, -35, -26, -15, -9, -6, 5, 17, + 22, 21, 17, 18, 25, 26, 16, 4, -5, -7, -9, -18, -29, -38, -35, -21, + -11, -9, -4, 9, 22, 25, 20, 16, 22, 30, 24, 8, -4, -5, -5, -13, + -25, -36, -38, -26, -16, -11, -10, 2, 19, 25, 18, 12, 19, 30, 28, 14, + 1, -2, 3, -3, -17, -31, -36, -29, -21, -18, -19, -11, 7, 20, 16, 10, + 16, 30, 36, 24, 8, 4, 8, 6, -12, -32, -40, -35, -26, -21, -20, -14, + 2, 19, 20, 10, 12, 24, 35, 29, 13, 5, 7, 9, -3, -23, -37, -37, + -31, -23, -21, -19, -8, 12, 19, 10, 6, 19, 36, 37, 23, 11, 12, 16, + 7, -15, -35, -43, -38, -30, -27, -23, -16, 2, 18, 16, 7, 13, 30, 38, + 29, 17, 12, 16, 15, -4, -27, -40, -39, -32, -28, -28, -24, -8, 12, 14, + 5, 7, 26, 40, 36, 24, 18, 21, 21, 4, -20, -38, -41, -37, -34, -30, + -26, -15, 4, 14, 7, 3, 18, 37, 41, 33, 24, 22, 25, 14, -10, -33, + -44, -42, -36, -32, -29, -22, -6, 10, 9, 2, 9, 29, 40, 37, 32, 28, + 29, 21, 0, -24, -39, -44, -44, -38, -31, -24, -16, 0, 7, 3, 8, 24, + 38, 43, 41, 32, 28, 25, 9, -15, -34, -44, -44, -39, -31, -26, -20, -10, + 3, 2, 1, 14, 32, 44, 46, 39, 33, 31, 20, -7, -31, -45, -47, -44, + -38, -30, -26, -16, 0, 5, 4, 12, 30, 45, 52, 47, 36, 30, 22, 0, + -24, -40, -50, -49, -42, -31, -24, -19, -10, -3, 3, 11, 24, 39, 51, 55, + 49, 37, 27, 8, -18, -36, -50, -54, -47, -36, -29, -25, -16, -6, 4, 10, + 18, 34, 52, 59, 53, 39, 28, 15, -8, -29, -45, -53, -51, -43, -34, -29, + -23, -14, -4, 7, 17, 33, 52, 62, 61, 50, 37, 23, -4, -28, -44, -55, + -55, -48, -38, -30, -25, -18, -8, 5, 13, 25, 46, 61, 65, 57, 43, 30, + 8, -17, -36, -50, -55, -53, -47, -39, -32, -24, -15, -3, 11, 25, 45, 62, + 68, 63, 51, 37, 14, -14, -34, -46, -56, -57, -51, -44, -33, -25, -18, -6, + 8, 19, 36, 55, 67, 65, 53, 42, 23, -4, -26, -40, -50, -56, -54, -49, + -41, -31, -23, -12, 1, 15, 34, 53, 65, 68, 59, 49, 33, 6, -21, -37, + -47, -57, -60, -56, -48, -38, -28, -16, -2, 14, 33, 51, 64, 70, 63, 53, + 38, 13, -14, -34, -44, -53, -59, -59, -53, -42, -30, -19, -8, 5, 26, 47, + 61, 68, 64, 57, 48, 26, -3, -26, -39, -49, -58, -63, -59, -49, -37, -24, + -13, 1, 20, 42, 55, 65, 69, 64, 54, 34, 7, -18, -34, -44, -55, -65, + -64, -54, -42, -31, -19, -8, 12, 37, 54, 61, 67, 67, 60, 46, 22, -8, + -29, -40, -50, -64, -70, -63, -50, -34, -21, -13, 2, 28, 51, 62, 68, 68, + 61, 51, 32, 3, -23, -36, -47, -60, -70, -67, -58, -44, -27, -14, -2, 22, + 45, 58, 65, 70, 68, 56, 38, 16, -11, -32, -45, -58, -69, -70, -62, -52, + -34, -17, -6, 13, 38, 54, 64, 70, 67, 59, 47, 29, -2, -28, -40, -51, + -65, -74, -67, -54, -37, -20, -11, 5, 33, 53, 59, 63, 67, 62, 51, 34, + 7, -20, -35, -46, -59, -72, -70, -60, -46, -27, -12, 1, 24, 47, 60, 64, + 69, 66, 54, 39, 15, -13, -32, -44, -54, -68, -71, -60, -48, -32, -18, -7, + 14, 38, 54, 61, 68, 70, 60, 46, 26, -2, -23, -38, -50, -63, -72, -68, + -55, -39, -24, -13, 5, 31, 52, 61, 67, 71, 64, 53, 34, 7, -21, -36, + -46, -57, -69, -72, -60, -42, -27, -17, -2, 21, 45, 58, 65, 69, 66, 57, + 42, 15, -13, -30, -43, -54, -66, -72, -65, -47, -30, -18, -5, 15, 40, 57, + 64, 67, 62, 56, 46, 23, -6, -27, -39, -50, -58, -67, -67, -51, -32, -20, + -9, 9, 31, 51, 60, 64, 64, 58, 48, 27, 1, -20, -34, -46, -56, -65, + -70, -57, -37, -22, -14, 2, 26, 48, 62, 66, 64, 59, 51, 34, 8, -18, + -31, -42, -52, -61, -70, -63, -42, -24, -15, -3, 19, 43, 60, 63, 60, 57, + 52, 39, 14, -14, -28, -36, -46, -54, -65, -66, -49, -29, -17, -9, 10, 33, + 54, 64, 62, 58, 53, 42, 23, -5, -25, -35, -46, -54, -63, -67, -54, -33, + -17, -7, 7, 30, 51, 61, 58, 55, 51, 43, 28, 3, -21, -30, -37, -46, + -56, -63, -56, -39, -22, -12, -5, 16, 40, 57, 58, 55, 53, 48, 38, 19, + -10, -27, -35, -45, -56, -66, -65, -49, -28, -14, -6, 8, 34, 57, 60, 55, + 54, 50, 42, 26, -4, -28, -35, -42, -52, -62, -63, -51, -32, -14, -5, 3, + 24, 47, 57, 53, 50, 47, 41, 33, 11, -20, -35, -40, -46, -56, -65, -58, + -38, -17, -4, 1, 15, 41, 57, 55, 47, 45, 42, 35, 17, -13, -33, -38, + -41, -49, -58, -55, -41, -21, -4, 0, 7, 29, 50, 52, 45, 42, 40, 37, + 25, 0, -28, -38, -38, -44, -53, -58, -46, -26, -6, 3, 4, 18, 42, 53, + 47, 41, 39, 37, 30, 10, -21, -41, -43, -41, -47, -54, -46, -29, -8, 7, + 9, 13, 31, 46, 45, 37, 33, 33, 28, 15, -10, -35, -42, -38, -39, -45, + -46, -32, -10, 6, 9, 8, 19, 38, 44, 38, 30, 29, 30, 19, -3, -29, + -42, -38, -34, -40, -43, -32, -14, 3, 11, 11, 15, 30, 41, 39, 30, 25, + 25, 19, 4, -21, -40, -42, -32, -30, -33, -29, -15, 2, 11, 10, 8, 17, + 30, 35, 30, 23, 24, 23, 11, -11, -32, -43, -34, -26, -29, -29, -18, -3, + 9, 12, 9, 12, 26, 35, 32, 21, 18, 18, 12, -6, -29, -43, -36, -22, + -22, -25, -15, 1, 10, 11, 10, 8, 17, 29, 29, 21, 16, 17, 15, 2, + -21, -39, -39, -24, -17, -20, -16, -5, 9, 13, 10, 7, 12, 24, 28, 23, + 14, 12, 11, 4, -14, -33, -39, -28, -15, -14, -12, -6, 5, 11, 9, 7, + 7, 16, 26, 25, 16, 10, 11, 6, -8, -24, -37, -32, -17, -12, -11, -5, + 5, 11, 11, 10, 7, 12, 21, 21, 16, 7, 4, 3, -6, -20, -32, -32, + -20, -8, -5, 0, 5, 11, 11, 9, 8, 8, 13, 17, 16, 9, 3, 2, + -3, -13, -25, -31, -23, -9, -4, -2, 5, 11, 14, 11, 7, 6, 12, 15, + 12, 5, -2, -2, -3, -11, -22, -29, -24, -9, 0, 3, 8, 13, 13, 12, + 8, 4, 5, 7, 9, 6, -3, -5, -4, -5, -14, -24, -23, -13, 0, 4, + 6, 10, 14, 14, 9, 3, 3, 5, 6, 4, -4, -6, -5, -5, -9, -18, + -20, -15, -4, 6, 9, 11, 13, 13, 10, 5, 1, 0, -3, 0, -4, -6, + -6, -5, -4, -11, -16, -16, -9, 3, 8, 11, 11, 10, 11, 8, 3, -2, + -5, -4, -3, -5, -6, -6, -2, -5, -12, -15, -13, -2, 8, 9, 11, 11, + 11, 7, 4, 0, -6, -6, -4, -4, -6, -6, -2, 0, -7, -13, -15, -5, + 8, 13, 12, 9, 11, 9, 4, -5, -11, -11, -8, -5, -5, -5, 0, 4, + 3, -4, -11, -8, 3, 11, 12, 8, 7, 4, 2, -2, -10, -14, -13, -7, + -3, -4, -2, 3, 4, 1, -8, -8, 3, 13, 17, 12, 11, 7, 1, -6, + -16, -21, -19, -13, -7, -2, 3, 7, 10, 10, 1, -6, -2, 8, 14, 12, + 10, 4, -2, -6, -15, -21, -20, -15, -8, -2, 3, 5, 9, 14, 5, -6, + 1, 12, 18, 14, 9, 7, 2, -4, -18, -28, -27, -22, -12, -5, 3, 9, + 13, 18, 16, 5, 1, 7, 14, 13, 8, 5, -5, -9, -17, -26, -26, -23, + -15, -4, 5, 8, 11, 17, 17, 7, 2, 7, 16, 18, 10, 4, -2, -6, + -16, -31, -33, -27, -18, -9, 0, 7, 12, 18, 22, 16, 9, 9, 16, 20, + 13, 5, -2, -9, -18, -33, -37, -29, -22, -13, -4, 7, 15, 21, 25, 21, + 15, 13, 17, 20, 14, 5, -3, -8, -18, -35, -42, -36, -24, -16, -6, 5, + 13, 23, 27, 25, 20, 17, 19, 20, 15, 5, -3, -8, -21, -35, -45, -39, + -25, -18, -11, 3, 16, 25, 29, 27, 26, 24, 23, 21, 17, 8, -4, -12, + -23, -35, -46, -46, -34, -22, -15, -3, 13, 25, 31, 33, 34, 31, 28, 25, + 20, 11, -4, -12, -22, -38, -49, -51, -39, -26, -21, -11, 8, 24, 34, 35, + 36, 37, 35, 29, 21, 13, 0, -11, -20, -36, -48, -52, -46, -31, -22, -14, + 1, 19, 34, 38, 39, 40, 38, 34, 24, 15, 0, -14, -21, -34, -47, -53, + -50, -35, -22, -17, -5, 13, 31, 37, 38, 42, 41, 37, 28, 21, 9, -8, + -19, -30, -44, -50, -53, -46, -32, -23, -11, 7, 26, 39, 43, 49, 48, 42, + 32, 20, 9, -9, -21, -31, -46, -52, -54, -50, -35, -24, -13, 4, 23, 40, + 46, 48, 49, 46, 37, 26, 13, -4, -20, -29, -42, -50, -53, -54, -43, -31, + -21, -2, 17, 36, 47, 53, 56, 51, 42, 29, 17, 3, -16, -30, -41, -51, + -55, -57, -51, -35, -24, -9, 11, 30, 47, 53, 57, 55, 46, 34, 20, 6, + -12, -29, -43, -52, -55, -55, -55, -42, -29, -12, 8, 25, 41, 55, 62, 59, + 51, 37, 23, 10, -6, -24, -40, -51, -56, -58, -58, -48, -33, -19, 2, 22, + 41, 55, 61, 61, 56, 45, 28, 11, -3, -19, -37, -51, -57, -58, -58, -54, + -39, -23, -2, 20, 36, 52, 64, 65, 58, 48, 33, 19, 4, -13, -35, -51, + -58, -61, -62, -60, -47, -29, -7, 17, 34, 50, 67, 70, 62, 50, 35, 20, + 6, -8, -29, -47, -57, -62, -61, -60, -54, -37, -15, 10, 29, 44, 60, 68, + 66, 56, 42, 24, 12, 1, -19, -41, -55, -60, -62, -61, -57, -43, -21, 7, + 24, 36, 53, 66, 67, 59, 46, 30, 15, 5, -11, -32, -48, -58, -63, -62, + -59, -50, -32, -3, 22, 35, 49, 60, 66, 63, 53, 38, 19, 8, -5, -25, + -43, -57, -64, -64, -62, -54, -39, -13, 16, 32, 46, 59, 65, 66, 56, 45, + 26, 11, 3, -17, -39, -56, -65, -67, -62, -56, -44, -21, 10, 29, 40, 54, + 63, 68, 61, 49, 33, 13, 2, -14, -34, -50, -64, -67, -63, -56, -44, -26, + 2, 27, 38, 49, 57, 64, 61, 50, 36, 17, 6, -7, -27, -44, -60, -67, + -63, -57, -48, -32, -7, 22, 36, 44, 53, 60, 62, 55, 41, 21, 7, -3, + -20, -40, -58, -68, -65, -57, -47, -34, -14, 16, 37, 42, 47, 55, 59, 53, + 42, 27, 10, -2, -14, -30, -47, -60, -63, -57, -49, -38, -20, 5, 30, 40, + 44, 52, 57, 57, 46, 31, 13, -2, -12, -27, -44, -57, -64, -61, -50, -38, + -20, 2, 25, 39, 41, 49, 55, 54, 45, 32, 17, 0, -12, -23, -37, -50, + -59, -61, -52, -38, -22, -6, 17, 35, 39, 42, 48, 53, 48, 36, 22, 4, + -9, -18, -30, -45, -56, -59, -54, -42, -27, -10, 12, 29, 37, 38, 44, 50, + 47, 37, 25, 9, -5, -13, -23, -38, -50, -55, -54, -45, -32, -17, 5, 25, + 34, 35, 39, 46, 48, 40, 29, 13, -3, -11, -21, -33, -44, -51, -54, -47, + -34, -17, 2, 21, 32, 34, 34, 38, 42, 39, 27, 15, 1, -7, -13, -25, + -36, -45, -49, -46, -36, -23, -6, 15, 27, 31, 31, 34, 39, 38, 30, 18, + 3, -6, -10, -19, -32, -40, -46, -45, -36, -24, -11, 8, 24, 29, 27, 29, + 34, 36, 30, 18, 4, -5, -5, -12, -25, -34, -39, -41, -37, -24, -11, 4, + 18, 24, 25, 25, 29, 29, 26, 19, 5, -6, -6, -6, -18, -28, -33, -37, + -34, -24, -11, 2, 15, 24, 23, 20, 24, 27, 22, 14, 4, -4, -4, -5, + -15, -24, -26, -29, -32, -27, -13, 2, 14, 21, 21, 18, 21, 23, 20, 13, + 5, -3, -5, -4, -9, -16, -21, -25, -28, -25, -14, 1, 10, 16, 19, 16, + 16, 18, 16, 11, 5, -2, -5, -4, -6, -12, -17, -20, -22, -22, -17, -4, + 8, 13, 16, 15, 13, 15, 14, 10, 4, -4, -6, -6, -5, -7, -11, -15, + -17, -17, -15, -3, 10, 13, 14, 11, 7, 8, 9, 5, -3, -8, -7, -4, + -2, -2, -6, -10, -9, -10, -12, -5, 11, 15, 13, 11, 5, 6, 7, 3, + -6, -10, -8, -6, -6, -2, 1, -2, -6, -6, -7, -5, 8, 14, 10, 7, + 4, 0, 1, -2, -6, -12, -11, -6, -2, 4, 8, 4, -2, -2, -4, -5, + 3, 12, 8, 5, 4, 0, 0, -2, -8, -13, -15, -12, -7, -3, 6, 10, + 7, 5, 6, 4, 6, 14, 10, 3, 0, -6, -10, -7, -10, -16, -19, -15, + -8, 0, 11, 17, 13, 10, 11, 7, 5, 8, 9, 2, -4, -7, -12, -10, + -10, -16, -21, -19, -13, -4, 10, 21, 22, 17, 17, 14, 9, 9, 9, 3, + -7, -12, -17, -16, -14, -20, -25, -21, -15, -5, 10, 23, 27, 25, 22, 18, + 11, 8, 4, -2, -9, -14, -18, -19, -14, -15, -23, -25, -20, -10, 9, 22, + 29, 29, 26, 23, 16, 12, 6, 1, -6, -14, -18, -22, -20, -19, -27, -28, + -25, -18, 0, 19, 32, 36, 33, 31, 23, 14, 7, 1, -4, -15, -23, -25, + -24, -19, -25, -32, -29, -20, -3, 16, 31, 40, 38, 36, 29, 16, 9, 1, + -4, -12, -23, -26, -28, -24, -26, -34, -33, -24, -8, 12, 29, 41, 44, 44, + 37, 22, 11, 4, -4, -11, -24, -31, -32, -31, -30, -36, -39, -30, -11, 11, + 29, 43, 51, 50, 44, 32, 15, 4, -4, -11, -24, -32, -33, -33, -34, -38, + -42, -35, -17, 4, 24, 42, 56, 60, 52, 38, 19, 7, 1, -13, -28, -37, + -37, -35, -37, -39, -43, -37, -19, 3, 22, 41, 57, 64, 57, 44, 26, 7, + -2, -11, -24, -35, -41, -40, -38, -39, -43, -40, -24, 0, 20, 37, 55, 65, + 63, 50, 32, 9, -4, -10, -24, -36, -42, -42, -41, -41, -41, -39, -26, -2, + 19, 34, 51, 64, 66, 55, 38, 15, -3, -8, -20, -34, -42, -44, -43, -44, + -45, -45, -35, -12, 14, 31, 50, 66, 73, 65, 49, 28, 7, -6, -18, -35, + -45, -49, -51, -53, -51, -47, -37, -16, 10, 30, 49, 69, 78, 72, 56, 35, + 14, -4, -17, -33, -46, -51, -55, -56, -54, -51, -40, -20, 5, 26, 44, 64, + 76, 77, 64, 41, 19, 1, -14, -30, -43, -50, -57, -60, -58, -54, -43, -24, + -2, 21, 39, 61, 76, 79, 72, 52, 28, 9, -10, -26, -41, -49, -54, -61, + -62, -59, -51, -33, -10, 14, 34, 55, 75, 81, 79, 63, 39, 19, -2, -23, + -40, -51, -56, -64, -67, -64, -56, -39, -16, 9, 29, 51, 73, 83, 82, 73, + 50, 27, 9, -18, -40, -52, -56, -63, -69, -69, -61, -43, -20, 2, 21, 42, + 66, 81, 82, 76, 59, 36, 19, -6, -33, -50, -57, -61, -71, -76, -68, -52, + -28, -2, 17, 36, 62, 83, 86, 82, 69, 43, 22, 2, -28, -51, -60, -63, + -67, -76, -74, -57, -34, -7, 14, 29, 53, 76, 87, 84, 75, 54, 33, 14, + -18, -46, -58, -62, -69, -80, -84, -68, -44, -18, 7, 26, 49, 75, 91, 92, + 82, 64, 42, 21, -8, -43, -63, -68, -68, -75, -86, -76, -48, -22, 4, 23, + 41, 66, 87, 92, 83, 69, 51, 31, 6, -31, -59, -67, -69, -74, -88, -87, + -62, -34, -7, 17, 36, 62, 87, 96, 90, 76, 60, 39, 14, -23, -58, -70, + -71, -73, -83, -89, -68, -37, -13, 9, 26, 51, 79, 94, 91, 80, 68, 52, + 28, -8, -48, -67, -70, -73, -84, -96, -83, -49, -22, 0, 20, 44, 75, 96, + 98, 88, 75, 61, 40, 6, -39, -67, -72, -75, -83, -95, -91, -60, -29, -7, + 13, 36, 66, 89, 97, 92, 78, 65, 50, 22, -21, -58, -71, -73, -78, -91, + -98, -79, -45, -15, 4, 25, 56, 84, 101, 99, 86, 73, 60, 35, -9, -53, + -72, -77, -80, -90, -98, -85, -51, -20, -2, 18, 48, 77, 96, 99, 87, 75, + 62, 46, 9, -39, -68, -75, -75, -83, -95, -94, -67, -30, -7, 8, 34, 68, + 92, 102, 93, 82, 72, 58, 26, -24, -61, -75, -78, -85, -97, -99, -78, -42, + -12, 6, 28, 59, 87, 102, 99, 86, 74, 62, 38, -7, -52, -76, -81, -83, + -93, -100, -90, -57, -23, -2, 18, 48, 80, 102, 103, 92, 81, 71, 51, 9, + -41, -72, -83, -85, -93, -100, -92, -65, -32, -7, 13, 39, 72, 97, 103, 95, + 85, 73, 55, 25, -21, -61, -79, -83, -90, -99, -97, -77, -45, -17, 1, 24, + 59, 93, 107, 103, 92, 85, 72, 42, -6, -54, -80, -86, -91, -104, -105, -87, + -56, -23, 0, 18, 48, 85, 106, 106, 96, 87, 77, 52, 13, -35, -71, -84, + -88, -98, -106, -96, -70, -40, -14, 6, 31, 70, 103, 111, 103, 95, 88, 68, + 29, -19, -61, -84, -91, -99, -106, -101, -80, -51, -22, 2, 23, 56, 91, 109, + 108, 98, 89, 76, 45, 1, -44, -76, -87, -92, -102, -104, -90, -64, -34, -11, + 8, 37, 78, 108, 113, 106, 96, 85, 61, 19, -29, -68, -88, -94, -102, -104, + -93, -73, -46, -21, 2, 28, 63, 98, 113, 109, 100, 89, 70, 33, -14, -55, + -81, -91, -98, -104, -98, -79, -54, -30, -9, 18, 52, 89, 108, 110, 104, 96, + 79, 46, 2, -40, -71, -90, -100, -104, -100, -86, -67, -44, -19, 7, 40, 77, + 105, 115, 109, 99, 86, 58, 17, -29, -63, -86, -97, -101, -101, -92, -74, -50, + -26, -4, 28, 66, 98, 114, 113, 102, 90, 68, 33, -15, -53, -76, -93, -101, + -104, -96, -79, -57, -34, -15, 15, 56, 90, 110, 115, 105, 93, 75, 44, 0, + -43, -68, -86, -98, -101, -98, -83, -65, -42, -22, 4, 41, 79, 104, 113, 107, + 96, 81, 57, 16, -31, -59, -79, -95, -101, -100, -90, -71, -49, -30, -9, 28, + 67, 97, 110, 107, 97, 86, 65, 30, -14, -47, -67, -84, -98, -102, -96, -79, + -59, -41, -22, 14, 53, 90, 110, 111, 101, 90, 75, 45, 2, -39, -64, -79, + -93, -102, -101, -87, -64, -44, -28, 0, 39, 81, 108, 110, 102, 93, 82, 58, + 18, -25, -54, -70, -85, -101, -103, -94, -72, -53, -39, -14, 25, 70, 104, 112, + 103, 96, 88, 70, 34, -13, -48, -65, -78, -97, -108, -101, -79, -55, -42, -24, + 11, 56, 96, 111, 103, 94, 90, 77, 46, 5, -34, -56, -71, -92, -109, -109, + -91, -64, -46, -30, 0, 44, 89, 112, 108, 95, 88, 80, 57, 16, -27, -54, + -66, -82, -104, -112, -100, -71, -46, -34, -13, 29, 80, 111, 112, 97, 86, 84, + 69, 32, -15, -48, -61, -72, -94, -109, -106, -82, -54, -37, -23, 11, 61, 101, + 113, 101, 85, 80, 75, 48, 4, -37, -56, -64, -84, -107, -112, -90, -60, -37, + -29, -7, 43, 91, 111, 103, 86, 80, 77, 58, 20, -24, -52, -61, -75, -100, + -111, -99, -72, -44, -27, -12, 29, 77, 105, 106, 91, 80, 75, 64, 33, -9, + -43, -58, -69, -94, -111, -104, -78, -49, -28, -18, 11, 62, 97, 107, 94, 80, + 75, 69, 47, 6, -36, -55, -62, -81, -105, -108, -87, -59, -33, -18, 1, 46, + 86, 103, 97, 83, 75, 69, 52, 19, -23, -50, -59, -74, -97, -106, -91, -64, + -38, -21, -9, 26, 70, 95, 95, 80, 71, 69, 60, 35, -6, -40, -53, -64, + -87, -102, -96, -72, -45, -25, -14, 13, 56, 87, 95, 86, 75, 69, 60, 41, + 6, -32, -54, -62, -77, -95, -99, -79, -51, -23, -8, 6, 39, 75, 92, 87, + 72, 64, 62, 49, 21, -17, -47, -57, -67, -86, -97, -87, -59, -32, -16, -4, + 25, 63, 89, 92, 78, 67, 63, 53, 27, -10, -40, -55, -63, -78, -93, -89, + -65, -36, -17, -7, 11, 44, 77, 89, 79, 65, 61, 58, 41, 8, -26, -50, + -59, -67, -83, -90, -76, -47, -25, -13, 3, 30, 63, 85, 82, 70, 63, 58, + 45, 14, -18, -43, -56, -63, -74, -84, -78, -52, -26, -13, -2, 19, 46, 73, + 81, 68, 57, 55, 49, 27, -5, -32, -48, -54, -63, -77, -80, -60, -34, -17, + -5, 10, 34, 62, 79, 71, 57, 52, 48, 31, 2, -26, -45, -50, -53, -65, + -75, -63, -37, -16, -6, 4, 19, 45, 68, 70, 57, 49, 49, 39, 16, -11, + -33, -45, -49, -56, -70, -71, -51, -26, -8, 2, 13, 35, 63, 76, 63, 48, + 43, 38, 23, -7, -32, -45, -47, -47, -58, -67, -55, -30, -8, 0, 4, 20, + 46, 68, 65, 47, 38, 38, 31, 8, -19, -37, -44, -42, -48, -63, -62, -41, + -16, -2, 5, 16, 37, 61, 68, 53, 38, 34, 31, 14, -14, -33, -40, -38, + -41, -54, -60, -46, -20, -5, -3, 6, 25, 49, 63, 55, 38, 32, 33, 24, + 1, -23, -34, -35, -36, -45, -59, -55, -30, -9, -3, 2, 16, 39, 59, 59, + 44, 32, 30, 26, 7, -20, -33, -33, -32, -40, -53, -54, -35, -12, -3, -2, + 10, 29, 48, 55, 45, 32, 28, 27, 14, -10, -27, -30, -28, -34, -46, -53, + -41, -17, -5, -5, 5, 24, 44, 54, 46, 32, 25, 25, 18, -4, -25, -31, + -24, -27, -39, -47, -42, -21, -4, -2, 1, 15, 35, 46, 44, 31, 22, 23, + 20, 6, -15, -26, -23, -20, -29, -41, -42, -29, -11, -4, -4, 7, 26, 42, + 47, 37, 25, 21, 19, 9, -10, -25, -25, -18, -24, -38, -40, -29, -11, 1, + 0, 3, 19, 34, 42, 33, 19, 14, 15, 10, -5, -21, -24, -15, -13, -26, + -35, -31, -17, -2, 0, -2, 11, 26, 37, 34, 20, 14, 13, 12, 2, -17, + -25, -17, -12, -21, -31, -30, -19, -4, 4, 1, 9, 22, 32, 32, 19, 9, + 9, 10, 4, -11, -21, -16, -9, -14, -23, -26, -20, -8, 0, -2, 3, 15, + 26, 31, 24, 12, 9, 10, 6, -5, -17, -19, -12, -11, -18, -25, -22, -10, + 1, 2, 2, 11, 22, 29, 24, 10, 3, 5, 4, -4, -13, -15, -8, -5, + -10, -16, -18, -14, -5, -2, 0, 6, 13, 20, 23, 16, 6, 5, 5, 0, + -7, -12, -12, -8, -7, -12, -19, -18, -7, 0, 2, 7, 13, 18, 20, 13, + 3, -2, 1, -2, -6, -8, -6, -3, -2, -2, -10, -14, -10, -6, -4, 0, + 4, 9, 14, 15, 6, -2, -2, -2, -4, -4, -5, -3, 2, 3, -3, -10, + -9, -5, 0, 0, 0, 3, 8, 10, 3, -5, -7, -6, -4, 0, -2, -2, + 3, 7, 7, 2, -5, -6, -3, 2, 2, 0, 0, 2, 2, -4, -9, -9, + -7, -3, 2, 4, 8, 9, 6, 2, -3, -4, -3, -2, -2, -2, 0, 1, + -3, -8, -11, -8, -6, -4, 2, 6, 9, 10, 9, 8, 5, -4, -7, -3, + 1, 1, -6, -7, -6, -6, -11, -14, -10, -5, 3, 9, 12, 14, 13, 10, + 9, 1, -6, -5, -4, -3, -4, -6, -8, -12, -12, -13, -13, -11, -3, 9, + 16, 18, 15, 13, 14, 11, -2, -6, -4, -3, -5, -11, -13, -12, -14, -15, + -14, -10, -4, 6, 15, 22, 21, 16, 13, 12, 3, -7, -8, -7, -7, -10, + -14, -17, -16, -13, -12, -10, -7, 3, 15, 24, 26, 19, 16, 18, 12, -3, + -9, -10, -9, -11, -18, -22, -21, -17, -14, -14, -10, 0, 14, 26, 32, 28, + 23, 22, 21, 5, -9, -12, -16, -18, -22, -27, -27, -23, -17, -13, -8, 2, + 12, 25, 35, 36, 29, 21, 20, 11, -6, -14, -17, -19, -22, -27, -28, -24, + -20, -15, -11, -4, 7, 19, 32, 39, 35, 28, 25, 19, 4, -10, -17, -24, + -28, -31, -33, -30, -26, -19, -11, -3, 8, 19, 31, 42, 42, 34, 27, 21, + 9, -9, -19, -26, -31, -35, -34, -30, -26, -23, -13, -4, 4, 14, 25, 42, + 49, 41, 31, 27, 20, 3, -15, -28, -37, -38, -39, -38, -35, -29, -16, 0, + 9, 17, 26, 41, 52, 48, 36, 26, 19, 6, -16, -30, -39, -43, -41, -39, + -33, -29, -22, -5, 7, 13, 21, 36, 55, 56, 46, 34, 24, 15, -8, -29, + -44, -54, -50, -44, -39, -35, -27, -7, 11, 20, 25, 34, 54, 63, 53, 38, + 22, 14, 0, -27, -45, -56, -56, -46, -39, -36, -31, -14, 8, 19, 23, 29, + 46, 63, 61, 47, 30, 20, 8, -15, -39, -56, -62, -54, -44, -41, -38, -23, + -2, 16, 23, 28, 42, 63, 69, 58, 41, 25, 13, -7, -34, -56, -68, -64, + -50, -45, -43, -29, -7, 15, 26, 29, 40, 58, 72, 67, 48, 30, 16, 0, + -26, -53, -68, -69, -57, -47, -46, -36, -16, 9, 25, 30, 38, 53, 71, 74, + 58, 37, 17, 2, -21, -49, -70, -76, -64, -49, -43, -38, -21, 3, 25, 33, + 37, 49, 65, 74, 65, 45, 24, 8, -11, -40, -68, -79, -72, -57, -48, -42, + -29, -6, 20, 34, 39, 48, 63, 77, 74, 56, 31, 11, -8, -33, -61, -79, + -80, -68, -53, -45, -34, -16, 11, 31, 41, 51, 61, 75, 78, 64, 42, 19, + -3, -27, -55, -78, -84, -73, -59, -48, -37, -20, 5, 27, 40, 49, 58, 71, + 80, 71, 49, 23, 2, -20, -47, -72, -86, -82, -66, -52, -39, -26, -5, 20, + 39, 51, 59, 69, 79, 77, 61, 34, 7, -16, -42, -68, -88, -90, -75, -58, + -41, -26, -8, 17, 39, 52, 59, 65, 74, 77, 65, 41, 12, -12, -35, -60, + -81, -89, -79, -60, -45, -33, -17, 6, 31, 49, 59, 64, 73, 80, 74, 51, + 22, -5, -29, -54, -78, -92, -90, -70, -49, -35, -18, 3, 26, 48, 60, 64, + 68, 75, 75, 58, 31, 1, -25, -48, -73, -88, -90, -77, -56, -41, -23, -3, + 21, 43, 58, 64, 70, 75, 77, 64, 40, 12, -18, -44, -70, -87, -94, -87, + -64, -42, -22, -4, 16, 39, 58, 65, 66, 67, 74, 68, 46, 18, -12, -38, + -62, -82, -92, -89, -67, -45, -28, -9, 13, 31, 52, 64, 67, 66, 72, 71, + 53, 29, -3, -34, -59, -79, -94, -96, -77, -50, -29, -8, 12, 30, 49, 63, + 68, 67, 68, 70, 56, 34, 6, -29, -57, -77, -92, -99, -84, -56, -32, -10, + 11, 29, 45, 61, 69, 69, 68, 70, 60, 37, 12, -20, -50, -73, -90, -100, + -91, -64, -37, -14, 7, 25, 42, 57, 66, 67, 65, 67, 64, 45, 21, -9, + -41, -66, -84, -98, -95, -74, -47, -21, 3, 23, 39, 54, 64, 69, 69, 67, + 63, 50, 27, 0, -33, -63, -83, -94, -95, -79, -54, -26, -2, 18, 35, 49, + 61, 67, 67, 65, 64, 55, 33, 6, -25, -55, -82, -95, -98, -84, -60, -32, + -6, 17, 36, 48, 56, 64, 66, 65, 62, 55, 39, 14, -16, -46, -76, -92, + -96, -88, -69, -41, -9, 15, 33, 46, 54, 62, 68, 66, 59, 54, 44, 20, + -12, -41, -72, -92, -97, -90, -71, -46, -14, 15, 34, 48, 55, 59, 62, 63, + 60, 51, 42, 24, -6, -34, -63, -87, -95, -89, -75, -52, -23, 10, 31, 45, + 54, 58, 62, 66, 63, 51, 42, 30, 1, -32, -59, -84, -96, -93, -80, -58, + -28, 7, 32, 45, 53, 60, 64, 67, 62, 52, 41, 31, 9, -25, -55, -78, + -92, -91, -82, -65, -39, -2, 30, 43, 49, 56, 61, 65, 63, 54, 44, 33, + 16, -15, -47, -72, -88, -91, -84, -70, -45, -12, 22, 42, 48, 54, 58, 61, + 63, 56, 43, 32, 20, -4, -36, -65, -82, -87, -82, -72, -53, -23, 15, 40, + 46, 48, 55, 61, 62, 55, 43, 32, 21, 4, -26, -57, -75, -82, -80, -73, + -58, -30, 5, 35, 46, 47, 51, 57, 61, 57, 46, 34, 22, 9, -15, -47, + -71, -81, -80, -75, -62, -36, -4, 28, 46, 47, 49, 56, 60, 57, 48, 35, + 23, 12, -9, -39, -67, -78, -76, -71, -65, -45, -13, 21, 45, 50, 46, 50, + 58, 59, 49, 35, 23, 12, -4, -31, -62, -78, -74, -70, -65, -49, -18, 18, + 43, 51, 45, 48, 56, 56, 45, 30, 20, 12, 0, -24, -53, -71, -69, -63, + -60, -51, -25, 9, 36, 50, 47, 44, 50, 52, 45, 32, 21, 12, 1, -18, + -44, -66, -70, -64, -59, -51, -31, 2, 32, 50, 51, 46, 47, 52, 47, 32, + 17, 9, 0, -14, -34, -57, -67, -62, -56, -50, -33, -6, 24, 44, 51, 48, + 47, 48, 46, 34, 21, 12, 2, -13, -32, -51, -62, -62, -56, -51, -38, -13, + 18, 40, 51, 50, 45, 47, 46, 36, 20, 9, -2, -14, -28, -45, -59, -61, + -54, -48, -37, -15, 14, 36, 49, 52, 48, 44, 42, 33, 19, 10, 0, -13, + -26, -39, -52, -58, -54, -47, -37, -19, 9, 30, 44, 52, 48, 40, 38, 31, + 19, 7, -3, -12, -22, -31, -42, -51, -49, -43, -36, -22, 1, 22, 35, 45, + 47, 41, 37, 31, 23, 13, 3, -11, -22, -28, -36, -48, -53, -46, -35, -23, + -4, 17, 31, 45, 49, 41, 33, 29, 23, 13, 2, -11, -22, -26, -29, -38, + -46, -45, -34, -21, -6, 14, 25, 38, 46, 43, 35, 27, 19, 10, 3, -7, + -20, -28, -28, -32, -38, -41, -35, -23, -8, 10, 23, 33, 44, 44, 36, 27, + 18, 10, 0, -9, -22, -28, -28, -28, -33, -37, -32, -21, -7, 8, 20, 28, + 38, 41, 36, 27, 17, 8, -2, -6, -17, -28, -31, -28, -27, -30, -30, -22, + -7, 9, 19, 26, 35, 41, 37, 26, 16, 6, -5, -11, -18, -28, -31, -28, + -22, -23, -23, -18, -4, 11, 19, 24, 27, 33, 33, 24, 14, 3, -8, -11, + -15, -23, -29, -29, -21, -18, -19, -15, -5, 9, 16, 21, 26, 30, 32, 25, + 13, 2, -9, -13, -16, -21, -27, -27, -20, -12, -13, -14, -7, 9, 17, 20, + 24, 25, 26, 27, 15, 2, -9, -17, -17, -20, -25, -28, -23, -11, -6, -8, + -5, 7, 19, 23, 24, 24, 24, 25, 16, 0, -13, -22, -22, -22, -26, -28, + -22, -8, 2, 1, 0, 8, 18, 24, 24, 20, 18, 20, 15, 1, -12, -22, + -24, -22, -23, -25, -22, -13, 2, 7, 3, 8, 16, 25, 28, 21, 15, 15, + 15, 4, -13, -25, -29, -24, -20, -24, -21, -12, 1, 12, 10, 9, 16, 23, + 27, 21, 14, 12, 10, 3, -10, -21, -28, -27, -22, -22, -20, -14, -4, 10, + 14, 11, 17, 23, 29, 26, 15, 11, 10, 4, -12, -25, -33, -33, -26, -23, + -22, -12, 0, 13, 22, 19, 20, 25, 29, 25, 12, 5, 3, 0, -12, -25, + -32, -34, -27, -21, -20, -11, -2, 7, 18, 21, 22, 26, 30, 29, 21, 11, + 4, -5, -14, -29, -38, -38, -33, -27, -23, -10, 4, 12, 22, 29, 30, 30, + 31, 30, 21, 10, 0, -11, -19, -30, -39, -40, -36, -28, -20, -9, 4, 12, + 20, 29, 32, 30, 32, 32, 23, 12, 3, -8, -18, -27, -39, -44, -40, -32, + -25, -15, 1, 13, 22, 30, 37, 38, 36, 34, 26, 14, 2, -11, -22, -31, + -40, -45, -42, -35, -26, -14, 0, 12, 19, 26, 35, 39, 36, 33, 28, 18, + 6, -7, -18, -28, -37, -43, -43, -37, -30, -19, -6, 8, 20, 25, 34, 42, + 41, 37, 32, 22, 8, -7, -19, -32, -40, -44, -44, -38, -30, -20, -6, 8, + 19, 24, 30, 40, 41, 36, 29, 23, 13, -3, -16, -28, -39, -43, -44, -41, + -34, -23, -11, 2, 16, 25, 32, 41, 46, 42, 34, 26, 15, 0, -16, -29, + -40, -45, -45, -40, -32, -24, -12, -2, 12, 22, 26, 37, 45, 44, 34, 24, + 18, 6, -12, -24, -37, -41, -40, -40, -36, -30, -17, -4, 9, 18, 25, 37, + 45, 45, 40, 29, 19, 8, -8, -22, -38, -43, -42, -42, -35, -28, -17, -4, + 7, 17, 23, 33, 43, 43, 38, 28, 19, 12, -3, -19, -34, -40, -38, -40, + -38, -31, -22, -8, 5, 14, 21, 31, 44, 47, 41, 31, 20, 13, 3, -15, + -33, -45, -45, -41, -38, -31, -24, -10, 4, 15, 21, 29, 42, 47, 41, 33, + 22, 13, 4, -13, -29, -40, -41, -41, -41, -36, -26, -14, -2, 8, 17, 29, + 42, 50, 46, 37, 27, 17, 7, -9, -27, -41, -48, -45, -42, -38, -29, -15, + -2, 10, 18, 26, 38, 50, 51, 40, 28, 17, 6, -7, -24, -36, -43, -45, + -41, -38, -31, -18, -8, 2, 13, 26, 38, 44, 49, 42, 33, 22, 8, -4, + -20, -32, -41, -46, -44, -37, -32, -21, -8, 2, 14, 25, 35, 42, 47, 44, + 31, 19, 7, -4, -15, -28, -36, -42, -40, -34, -31, -24, -9, 0, 7, 18, + 30, 40, 44, 42, 32, 22, 12, 2, -10, -23, -31, -38, -42, -38, -31, -26, + -13, -3, 2, 14, 29, 40, 41, 40, 36, 26, 13, 1, -10, -19, -26, -35, + -43, -41, -33, -27, -17, -6, 1, 12, 27, 43, 47, 42, 37, 29, 14, 0, + -10, -21, -29, -34, -40, -42, -33, -26, -18, -5, 3, 10, 23, 39, 45, 39, + 33, 30, 18, 3, -8, -15, -22, -29, -37, -43, -36, -27, -22, -13, -4, 6, + 19, 36, 47, 47, 37, 33, 25, 6, -8, -15, -25, -31, -36, -43, -42, -32, + -21, -11, 0, 5, 15, 32, 46, 45, 35, 31, 28, 12, -6, -13, -20, -24, + -31, -41, -46, -38, -26, -18, -9, 1, 14, 31, 43, 48, 42, 33, 28, 15, + -5, -15, -18, -24, -31, -38, -41, -34, -26, -19, -8, 1, 10, 23, 37, 43, + 41, 32, 26, 19, 3, -12, -15, -18, -24, -34, -42, -38, -28, -20, -13, -4, + 6, 21, 37, 44, 43, 36, 28, 21, 8, -9, -16, -19, -25, -34, -42, -39, + -29, -21, -13, -3, 8, 19, 34, 42, 41, 36, 28, 20, 8, -7, -15, -16, + -19, -30, -41, -42, -31, -23, -15, -8, 3, 19, 36, 43, 39, 36, 30, 23, + 13, -6, -19, -21, -20, -26, -38, -43, -35, -25, -15, -7, 3, 14, 30, 42, + 40, 35, 28, 23, 16, 0, -14, -20, -19, -22, -34, -42, -37, -26, -15, -8, + 0, 12, 27, 40, 41, 35, 29, 22, 16, 4, -9, -19, -20, -20, -29, -39, + -39, -30, -19, -10, -3, 10, 24, 37, 42, 37, 31, 25, 18, 7, -7, -17, + -21, -20, -28, -38, -40, -33, -22, -11, -5, 9, 25, 37, 44, 40, 32, 24, + 17, 10, -5, -18, -24, -23, -28, -35, -38, -35, -26, -14, -5, 5, 19, 34, + 44, 42, 33, 23, 18, 13, 0, -15, -20, -22, -26, -33, -39, -35, -28, -18, + -10, 1, 18, 33, 43, 45, 38, 28, 20, 11, 2, -12, -22, -24, -28, -31, + -36, -35, -29, -21, -11, 0, 15, 30, 40, 44, 39, 31, 21, 13, 8, -5, + -17, -20, -25, -28, -32, -36, -34, -27, -18, -7, 9, 26, 39, 46, 45, 36, + 25, 14, 10, -2, -16, -24, -29, -31, -31, -36, -36, -27, -16, -7, 6, 23, + 37, 45, 44, 36, 26, 14, 8, 1, -14, -22, -23, -29, -32, -35, -36, -29, + -21, -14, 0, 16, 35, 46, 45, 39, 33, 20, 8, 3, -9, -21, -28, -32, + -34, -35, -36, -32, -25, -15, 1, 17, 32, 45, 49, 44, 35, 23, 7, 0, + -7, -17, -25, -30, -31, -32, -34, -31, -25, -18, -7, 10, 27, 43, 50, 45, + 35, 24, 13, 3, -7, -17, -24, -28, -30, -30, -33, -34, -26, -19, -11, 5, + 22, 39, 50, 48, 37, 26, 16, 5, -7, -18, -23, -27, -28, -28, -33, -34, + -24, -16, -11, 2, 17, 33, 48, 48, 37, 27, 18, 7, -5, -14, -20, -25, + -30, -31, -32, -37, -31, -20, -15, -3, 15, 30, 46, 53, 43, 31, 20, 11, + 0, -12, -21, -27, -31, -30, -30, -36, -33, -20, -10, -5, 9, 25, 41, 52, + 46, 34, 23, 15, 6, -9, -21, -27, -30, -31, -31, -37, -39, -25, -12, -7, + 1, 18, 36, 52, 53, 40, 28, 22, 13, -2, -18, -29, -32, -35, -34, -39, + -40, -28, -13, -7, -2, 12, 33, 50, 56, 44, 30, 24, 18, 4, -15, -29, + -32, -33, -33, -35, -40, -35, -20, -7, -2, 8, 25, 43, 54, 49, 35, 25, + 18, 8, -7, -23, -32, -32, -34, -34, -37, -36, -24, -11, -5, 2, 18, 36, + 51, 51, 39, 30, 24, 14, 0, -19, -32, -35, -35, -37, -38, -39, -29, -12, + -2, 3, 14, 29, 47, 54, 45, 33, 26, 17, 5, -12, -31, -37, -36, -38, + -38, -38, -32, -17, -3, 3, 9, 25, 42, 53, 49, 39, 31, 23, 10, -9, + -27, -38, -40, -41, -41, -41, -36, -23, -5, 5, 8, 18, 36, 51, 51, 43, + 34, 26, 16, 1, -20, -36, -40, -41, -42, -40, -38, -28, -10, 4, 7, 14, + 30, 48, 51, 45, 39, 31, 21, 4, -16, -33, -41, -43, -43, -39, -38, -32, + -15, 1, 7, 13, 25, 42, 52, 48, 39, 31, 22, 9, -10, -29, -40, -40, + -40, -38, -35, -34, -20, -2, 5, 9, 17, 33, 49, 50, 43, 34, 25, 13, + -4, -21, -36, -44, -44, -40, -35, -34, -26, -8, 5, 11, 17, 26, 43, 51, + 46, 36, 27, 16, 1, -16, -31, -42, -46, -43, -37, -35, -29, -12, 3, 11, + 17, 23, 37, 50, 52, 41, 29, 20, 4, -15, -30, -43, -49, -46, -39, -37, + -33, -15, 3, 13, 19, 23, 35, 52, 55, 44, 29, 20, 8, -12, -28, -40, + -48, -45, -39, -35, -32, -20, -2, 12, 16, 19, 28, 45, 55, 49, 35, 24, + 14, -3, -20, -36, -49, -53, -45, -38, -35, -27, -9, 8, 19, 23, 26, 40, + 55, 55, 41, 25, 15, -2, -19, -33, -46, -53, -47, -39, -35, -29, -14, 6, + 19, 24, 25, 35, 53, 59, 47, 29, 17, 7, -12, -30, -47, -58, -56, -47, + -39, -35, -22, -2, 17, 28, 30, 34, 50, 63, 56, 35, 19, 8, -9, -26, + -43, -56, -58, -49, -42, -38, -27, -9, 12, 26, 33, 34, 44, 60, 62, 44, + 23, 9, -4, -20, -40, -56, -63, -56, -44, -39, -30, -14, 8, 26, 35, 35, + 43, 60, 64, 50, 28, 13, 2, -16, -37, -53, -62, -61, -50, -42, -32, -17, + 2, 18, 32, 40, 44, 54, 63, 55, 37, 17, 4, -10, -31, -48, -61, -67, + -59, -45, -36, -24, -5, 17, 33, 43, 47, 54, 64, 59, 42, 20, 3, -10, + -28, -49, -63, -68, -63, -50, -37, -25, -7, 13, 31, 44, 48, 54, 61, 59, + 48, 27, 6, -10, -24, -43, -59, -67, -67, -56, -39, -28, -13, 8, 24, 42, + 51, 54, 58, 58, 52, 37, 14, -6, -20, -38, -54, -65, -70, -63, -45, -29, + -17, 2, 18, 37, 52, 56, 58, 56, 51, 42, 23, -2, -19, -34, -50, -62, + -70, -69, -52, -30, -17, -3, 15, 33, 50, 58, 58, 56, 52, 46, 29, 3, + -15, -31, -45, -58, -68, -71, -60, -38, -20, -5, 11, 25, 42, 58, 62, 58, + 51, 44, 36, 15, -10, -29, -43, -53, -64, -72, -67, -45, -21, -8, 4, 20, + 40, 60, 65, 57, 53, 48, 42, 21, -8, -27, -40, -50, -62, -71, -71, -54, + -29, -9, 3, 18, 34, 54, 68, 65, 57, 48, 40, 28, 2, -23, -41, -52, + -60, -71, -75, -60, -34, -12, 0, 13, 31, 52, 69, 66, 56, 50, 44, 33, + 7, -21, -38, -47, -55, -65, -75, -67, -41, -15, 2, 11, 23, 41, 61, 68, + 59, 49, 40, 34, 17, -11, -35, -47, -48, -55, -69, -72, -50, -21, 0, 8, + 15, 33, 56, 69, 62, 52, 44, 40, 26, -4, -30, -44, -48, -56, -69, -77, + -59, -28, -7, 7, 15, 30, 52, 68, 66, 55, 45, 38, 30, 6, -24, -43, + -49, -52, -64, -75, -65, -35, -10, 4, 11, 25, 45, 65, 67, 55, 48, 43, + 34, 13, -18, -39, -45, -49, -61, -75, -72, -45, -17, -2, 9, 20, 39, 61, + 70, 62, 52, 45, 36, 18, -9, -34, -47, -52, -58, -69, -72, -52, -23, -5, + 7, 17, 35, 54, 65, 63, 55, 45, 37, 23, 0, -27, -45, -49, -53, -63, + -71, -59, -31, -8, 7, 15, 28, 47, 61, 65, 58, 47, 38, 27, 6, -21, + -41, -49, -53, -62, -69, -62, -39, -14, 3, 14, 28, 46, 59, 64, 62, 51, + 39, 29, 11, -16, -40, -52, -55, -58, -65, -65, -47, -20, 1, 14, 24, 39, + 52, 59, 64, 56, 43, 33, 16, -8, -32, -49, -55, -58, -63, -65, -54, -29, + -3, 12, 21, 36, 51, 60, 65, 59, 46, 35, 21, -4, -28, -48, -56, -57, + -59, -60, -55, -37, -12, 9, 19, 32, 46, 54, 58, 58, 48, 36, 26, 7, + -18, -41, -53, -53, -52, -57, -58, -45, -19, 6, 15, 26, 42, 54, 59, 59, + 52, 39, 28, 10, -16, -40, -56, -56, -52, -51, -53, -45, -22, 4, 17, 24, + 35, 46, 56, 57, 52, 40, 30, 18, -7, -33, -54, -58, -52, -49, -53, -51, + -33, -5, 17, 26, 34, 43, 54, 58, 53, 42, 31, 19, 0, -24, -47, -60, + -55, -46, -46, -50, -39, -13, 13, 25, 32, 38, 48, 56, 52, 41, 30, 20, + 7, -15, -41, -58, -55, -44, -41, -44, -40, -19, 10, 25, 28, 32, 41, 53, + 52, 42, 31, 21, 13, -5, -32, -55, -60, -47, -36, -38, -40, -26, 2, 24, + 29, 28, 32, 46, 48, 40, 29, 21, 14, 1, -23, -48, -56, -46, -34, -33, + -36, -29, -7, 20, 28, 25, 26, 37, 46, 42, 30, 19, 15, 7, -13, -39, + -58, -54, -37, -27, -27, -29, -17, 13, 29, 28, 24, 31, 42, 42, 34, 21, + 11, 5, -10, -32, -51, -52, -40, -28, -24, -24, -18, 6, 27, 30, 26, 28, + 36, 38, 33, 22, 11, 6, -7, -26, -44, -49, -42, -30, -21, -17, -16, -5, + 18, 29, 26, 25, 29, 33, 33, 25, 13, 7, 0, -18, -36, -46, -45, -31, + -20, -16, -16, -9, 12, 28, 29, 24, 25, 29, 31, 26, 13, 2, -5, -15, + -26, -39, -46, -37, -19, -9, -9, -11, 1, 21, 31, 26, 21, 23, 26, 25, + 15, 4, -4, -10, -20, -32, -41, -38, -22, -10, -7, -9, -6, 11, 26, 29, + 22, 20, 21, 24, 19, 7, -6, -12, -17, -23, -30, -36, -27, -12, -3, 0, + -5, 3, 18, 28, 25, 18, 15, 16, 15, 7, -4, -10, -14, -19, -24, -30, + -26, -13, -3, 2, -3, -2, 12, 23, 26, 18, 13, 13, 14, 9, 0, -11, + -14, -15, -18, -24, -26, -16, -4, 4, 0, -5, 6, 17, 25, 21, 11, 7, + 8, 8, 1, -11, -14, -11, -10, -13, -20, -18, -7, 5, 7, -3, -2, 8, + 21, 23, 12, 4, 4, 8, 7, -5, -15, -14, -11, -9, -15, -20, -13, 1, + 8, 3, 0, 6, 17, 24, 16, 3, -2, 1, 0, -10, -17, -14, -8, -4, + -5, -11, -12, 0, 9, 6, -3, 1, 10, 18, 16, 5, -3, 0, 3, -4, + -13, -15, -10, -6, -4, -8, -13, -8, 5, 8, 5, 3, 9, 17, 18, 13, + 0, -7, -5, -5, -11, -14, -11, -6, 2, 2, -6, -9, 1, 8, 5, -2, + 1, 8, 14, 12, 2, -6, -5, -2, -6, -12, -10, -2, 3, 4, -5, -11, + -6, 5, 6, 0, 0, 7, 12, 14, 6, -7, -8, -6, -6, -9, -10, -5, + 4, 8, 4, -7, -11, -2, 6, 3, -2, 2, 9, 15, 12, -2, -8, -6, + -3, -5, -11, -9, 2, 10, 7, -5, -15, -10, 4, 6, -2, -2, 8, 14, + 14, 3, -9, -8, -5, -4, -8, -10, 0, 8, 9, 3, -9, -12, -3, 6, + 3, -3, 1, 8, 13, 5, -9, -13, -7, -2, -2, -6, -2, 9, 13, 6, + -6, -13, -10, 2, 4, -3, -2, 7, 13, 9, -6, -12, -11, -6, 0, -5, + -5, 7, 15, 13, 1, -10, -13, -4, 5, -2, -7, -2, 9, 9, -3, -11, + -11, -8, 2, 1, -3, 7, 15, 12, 4, -7, -13, -11, -2, 1, -4, -3, + 7, 11, 3, -8, -11, -10, 0, 1, -5, 2, 12, 17, 11, -2, -11, -11, + -3, 4, -4, -9, 1, 10, 3, -9, -11, -8, 0, 5, 1, 2, 11, 14, + 9, 1, -11, -15, -11, -3, 1, -3, 3, 12, 11, 1, -7, -9, -6, -3, + -5, -5, 5, 12, 9, 4, -3, -8, -8, -5, 0, -4, -3, 5, 6, -3, + -10, -7, -3, 0, 2, 3, 10, 14, 11, 4, -3, -11, -15, -15, -9, -5, + -5, 5, 13, 5, -2, 0, 2, 4, 1, -3, 4, 12, 11, 2, -5, -10, + -13, -13, -11, -6, -4, 3, 13, 9, 1, -2, 4, 5, 1, -5, 3, 12, + 13, 4, -9, -12, -14, -16, -17, -12, -5, 5, 16, 17, 6, 3, 9, 9, + 2, -8, -7, 2, 7, 4, -8, -12, -10, -13, -14, -13, -6, 4, 13, 19, + 10, 0, 6, 14, 8, -6, -9, 0, 7, 5, -8, -17, -13, -9, -14, -18, + -13, 2, 15, 23, 16, 4, 5, 16, 15, 0, -10, -6, 3, 6, -4, -15, + -15, -10, -11, -16, -16, -5, 10, 21, 18, 7, 2, 12, 18, 6, -7, -9, + 1, 7, 1, -14, -19, -15, -13, -16, -18, -8, 7, 19, 24, 16, 5, 8, + 16, 9, -4, -9, -5, 3, 4, -9, -19, -18, -13, -12, -17, -12, 2, 16, + 22, 17, 6, 4, 14, 13, 1, -8, -6, 2, 6, -5, -18, -20, -16, -14, + -18, -17, -5, 12, 23, 24, 14, 9, 15, 19, 9, -5, -8, -3, 2, -6, + -17, -23, -19, -14, -16, -17, -8, 7, 19, 24, 19, 10, 11, 17, 13, 3, + -5, -3, -2, -4, -14, -24, -25, -20, -18, -16, -10, 3, 16, 26, 28, 18, + 11, 15, 17, 9, -4, -7, -6, -6, -12, -24, -29, -22, -16, -15, -10, 0, + 13, 24, 27, 22, 14, 13, 16, 13, 2, -6, -7, -9, -12, -21, -29, -27, + -21, -15, -10, -3, 8, 21, 29, 26, 17, 13, 17, 19, 9, -5, -10, -9, + -12, -21, -30, -29, -22, -14, -10, -4, 7, 17, 26, 23, 17, 13, 12, 18, + 16, 5, -6, -10, -11, -19, -29, -32, -27, -18, -10, -4, 4, 13, 25, 26, + 21, 16, 11, 16, 17, 8, -5, -12, -12, -16, -25, -30, -27, -19, -10, -6, + 0, 10, 21, 24, 18, 15, 13, 16, 20, 14, 1, -10, -12, -15, -26, -31, + -29, -22, -12, -5, 0, 8, 19, 25, 22, 17, 14, 14, 19, 17, 4, -10, + -15, -15, -22, -30, -30, -26, -16, -6, 1, 7, 15, 23, 23, 18, 17, 17, + 17, 17, 8, -6, -15, -18, -24, -31, -29, -26, -19, -8, 2, 7, 15, 23, + 24, 21, 17, 15, 15, 17, 13, -4, -16, -20, -23, -30, -32, -27, -19, -8, + 3, 7, 14, 23, 24, 20, 16, 16, 15, 14, 10, 0, -12, -20, -24, -31, + -32, -25, -19, -10, 0, 9, 14, 22, 27, 23, 17, 17, 18, 12, 8, 1, + -12, -18, -23, -31, -34, -26, -17, -9, -2, 6, 14, 22, 27, 22, 16, 15, + 18, 17, 10, 3, -9, -17, -21, -31, -38, -32, -23, -13, -5, 4, 14, 21, + 30, 30, 21, 17, 18, 17, 10, 3, -8, -20, -23, -29, -38, -34, -25, -12, + 0, 3, 11, 17, 26, 31, 23, 15, 13, 16, 14, 5, -4, -15, -19, -23, + -35, -38, -32, -19, -7, -5, 6, 16, 25, 36, 32, 22, 19, 19, 15, 3, + -7, -16, -23, -26, -35, -42, -34, -19, -3, 1, 6, 18, 26, 37, 34, 20, + 15, 14, 14, 5, -7, -15, -21, -23, -28, -39, -37, -22, -5, 1, 3, 15, + 25, 35, 40, 27, 14, 14, 14, 6, -7, -14, -20, -25, -27, -36, -41, -28, + -8, 2, 4, 14, 24, 33, 40, 32, 17, 13, 12, 5, -7, -14, -17, -24, + -28, -34, -40, -32, -14, 1, 4, 13, 26, 33, 41, 40, 26, 15, 12, 4, + -9, -17, -20, -25, -31, -34, -41, -38, -20, 0, 7, 12, 24, 32, 40, 41, + 30, 17, 11, 4, -10, -18, -19, -21, -27, -31, -35, -36, -24, -5, 5, 9, + 21, 31, 37, 41, 36, 21, 11, 4, -8, -15, -18, -21, -26, -31, -34, -37, + -30, -12, 3, 9, 18, 30, 38, 44, 42, 29, 15, 7, -6, -18, -23, -24, + -25, -31, -34, -36, -33, -15, 3, 9, 17, 28, 38, 44, 42, 34, 20, 8, + -5, -18, -23, -22, -24, -30, -35, -35, -35, -24, -6, 6, 14, 25, 36, 42, + 45, 42, 28, 13, 1, -15, -26, -27, -26, -29, -35, -39, -38, -28, -10, 5, + 13, 21, 36, 47, 48, 45, 36, 21, 6, -11, -25, -31, -30, -29, -35, -41, + -41, -34, -18, 1, 15, 24, 35, 47, 52, 51, 42, 26, 8, -9, -25, -32, + -34, -32, -34, -40, -41, -35, -22, -5, 11, 21, 30, 44, 52, 51, 45, 32, + 15, -3, -19, -28, -33, -34, -36, -42, -44, -41, -30, -13, 6, 20, 29, 43, + 54, 56, 50, 37, 22, 4, -17, -31, -39, -39, -38, -40, -44, -41, -31, -14, + 4, 18, 26, 37, 52, 57, 54, 44, 29, 11, -9, -26, -38, -42, -40, -41, + -45, -46, -39, -24, -2, 17, 25, 35, 49, 59, 59, 52, 36, 19, -2, -22, + -38, -46, -45, -43, -44, -47, -41, -28, -7, 12, 22, 32, 45, 58, 60, 52, + 40, 26, 9, -14, -36, -46, -47, -44, -44, -50, -47, -34, -14, 8, 21, 30, + 42, 58, 65, 58, 46, 32, 14, -7, -30, -47, -51, -50, -45, -50, -51, -38, + -20, 4, 19, 28, 38, 53, 67, 63, 50, 40, 23, 2, -22, -43, -54, -55, + -50, -53, -57, -48, -31, -6, 17, 28, 39, 53, 69, 72, 60, 47, 29, 7, + -18, -39, -54, -59, -56, -53, -55, -52, -37, -16, 10, 25, 36, 48, 65, 75, + 68, 54, 40, 20, -6, -31, -52, -61, -61, -59, -63, -62, -46, -24, 2, 20, + 33, 50, 67, 79, 75, 62, 49, 30, 2, -29, -50, -63, -66, -65, -64, -64, + -50, -28, -6, 18, 34, 48, 62, 74, 79, 70, 54, 38, 14, -19, -45, -62, + -70, -71, -67, -68, -61, -39, -15, 10, 28, 45, 63, 77, 82, 77, 62, 47, + 25, -9, -40, -61, -70, -73, -69, -70, -66, -47, -23, 2, 23, 41, 57, 71, + 79, 83, 72, 55, 37, 6, -27, -51, -67, -76, -78, -77, -75, -60, -35, -12, + 13, 37, 59, 75, 82, 86, 81, 66, 48, 17, -23, -50, -66, -77, -83, -83, + -78, -66, -43, -18, 7, 31, 54, 73, 83, 87, 87, 74, 55, 29, -10, -41, + -61, -76, -85, -88, -84, -72, -53, -28, -3, 22, 51, 75, 84, 88, 92, 87, + 67, 40, 0, -38, -60, -77, -89, -94, -89, -77, -59, -34, -7, 17, 44, 73, + 88, 90, 91, 88, 74, 49, 12, -29, -57, -73, -84, -93, -94, -84, -68, -44, + -17, 8, 33, 64, 85, 90, 92, 91, 83, 63, 30, -15, -50, -71, -82, -92, + -96, -90, -74, -52, -26, 0, 24, 56, 82, 92, 93, 92, 89, 74, 42, 0, + -41, -67, -80, -93, -100, -97, -83, -62, -35, -8, 16, 43, 74, 91, 96, 96, + 93, 83, 56, 16, -28, -61, -79, -92, -99, -99, -90, -71, -45, -16, 9, 36, + 66, 88, 98, 97, 93, 87, 68, 31, -16, -52, -75, -89, -98, -103, -98, -81, + -54, -23, 1, 25, 56, 83, 97, 98, 92, 88, 76, 46, 1, -42, -68, -81, + -91, -99, -97, -82, -58, -30, -6, 15, 44, 73, 91, 94, 89, 85, 78, 55, + 16, -28, -59, -77, -87, -93, -95, -85, -65, -40, -16, 6, 33, 62, 85, 94, + 90, 86, 81, 66, 32, -15, -52, -73, -84, -90, -93, -87, -69, -45, -22, 0, + 22, 48, 75, 88, 88, 85, 80, 67, 42, 4, -36, -62, -77, -87, -90, -85, + -72, -52, -30, -11, 11, 36, 63, 83, 86, 86, 82, 74, 54, 17, -25, -55, + -72, -81, -88, -87, -77, -57, -34, -16, 4, 26, 54, 77, 84, 84, 82, 75, + 58, 27, -12, -45, -65, -76, -84, -84, -76, -61, -41, -24, -7, 15, 41, 67, + 78, 81, 80, 76, 67, 42, 5, -30, -54, -67, -79, -85, -79, -67, -50, -32, + -16, 6, 32, 58, 73, 77, 81, 78, 68, 49, 16, -19, -45, -63, -74, -80, + -77, -67, -53, -35, -20, -3, 20, 45, 65, 72, 76, 75, 68, 56, 29, -6, + -33, -52, -65, -75, -77, -70, -57, -42, -28, -13, 9, 34, 57, 70, 73, 75, + 72, 63, 41, 7, -24, -46, -60, -70, -75, -72, -59, -45, -31, -18, 0, 25, + 48, 63, 68, 70, 71, 65, 47, 17, -13, -33, -49, -62, -73, -73, -61, -48, + -37, -25, -10, 14, 39, 57, 64, 67, 70, 69, 54, 28, -3, -27, -44, -57, + -68, -74, -66, -50, -39, -26, -13, 5, 30, 50, 60, 62, 64, 65, 58, 38, + 9, -17, -35, -46, -59, -69, -67, -52, -40, -31, -20, -6, 18, 42, 55, 58, + 60, 65, 62, 47, 20, -10, -28, -39, -51, -66, -70, -58, -44, -34, -23, -10, + 11, 34, 51, 57, 58, 62, 63, 51, 29, 2, -21, -34, -46, -60, -69, -63, + -49, -37, -27, -15, 3, 26, 45, 55, 56, 58, 62, 55, 37, 11, -14, -29, + -39, -52, -65, -66, -52, -40, -30, -18, -5, 17, 39, 52, 54, 55, 58, 57, + 44, 21, -8, -24, -33, -45, -59, -66, -57, -43, -31, -20, -11, 7, 30, 47, + 53, 51, 52, 55, 51, 33, 4, -20, -29, -36, -49, -64, -63, -50, -36, -24, + -14, 0, 22, 43, 55, 53, 49, 52, 51, 39, 12, -16, -27, -33, -45, -60, + -66, -53, -37, -25, -16, -6, 16, 40, 53, 53, 47, 49, 51, 43, 22, 0, + 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, -2, -2, -2, -2, 0, -2, + 0, 0, 1, 2, 3, 4, 4, 4, 5, 6, 7, 6, 3, 1, 0, -3, + -5, -11, -17, -20, -20, -18, -16, -17, -17, -14, -10, -9, -13, -18, -19, -15, + -13, -12, -13, -8, 1, 12, 25, 32, 40, 45, 50, 49, 41, 32, 24, 16, + 9, 1, -12, -20, -23, -24, -20, -20, -18, -12, -11, -12, -7, 0, 10, 17, + 23, 25, 24, 21, 22, 23, 21, 10, 1, -5, -8, -11, -19, -29, -33, -32, + -26, -19, -16, -14, -12, -8, -7, -11, -19, -27, -29, -27, -25, -25, -24, -17, + -4, 13, 26, 34, 43, 54, 59, 56, 46, 33, 23, 15, 5, -11, -23, -32, + -35, -32, -30, -27, -23, -16, -11, -5, 3, 11, 23, 31, 36, 33, 28, 27, + 26, 21, 11, 1, -9, -14, -18, -23, -28, -35, -33, -26, -18, -12, -11, -7, + -4, -2, 0, -8, -19, -29, -33, -32, -30, -30, -25, -17, -4, 13, 26, 36, + 47, 55, 59, 53, 43, 32, 23, 12, 0, -14, -23, -30, -35, -35, -35, -33, + -28, -19, -11, -6, 3, 11, 22, 33, 39, 38, 34, 30, 27, 20, 11, 0, + -9, -17, -21, -26, -31, -34, -29, -19, -8, -3, 0, -3, 1, 4, 1, -11, + -25, -35, -37, -39, -35, -32, -27, -17, 0, 15, 29, 42, 55, 63, 62, 55, + 47, 38, 27, 14, -4, -20, -31, -40, -44, -46, -45, -41, -34, -25, -14, -3, + 8, 22, 32, 43, 44, 40, 36, 34, 26, 18, 8, -2, -11, -20, -25, -29, + -33, -31, -21, -10, -2, -2, -2, 4, 6, 9, 0, -14, -28, -35, -39, -38, + -38, -36, -30, -16, 0, 16, 29, 41, 55, 65, 67, 59, 49, 39, 28, 13, + -3, -19, -32, -42, -48, -51, -53, -47, -36, -22, -12, 0, 10, 24, 38, 46, + 48, 43, 39, 32, 26, 17, 6, -7, -16, -21, -26, -31, -34, -28, -16, -2, + 3, 1, 2, 8, 16, 12, 2, -15, -27, -34, -37, -41, -47, -44, -33, -16, + 1, 16, 31, 47, 65, 75, 73, 63, 52, 41, 27, 9, -14, -34, -47, -54, + -55, -58, -57, -50, -35, -17, 0, 8, 20, 34, 47, 54, 49, 42, 36, 29, + 21, 9, -4, -14, -21, -26, -30, -33, -28, -18, -5, 4, 6, 6, 8, 13, + 17, 12, -4, -21, -33, -39, -44, -49, -50, -46, -35, -15, 4, 22, 36, 55, + 72, 81, 78, 69, 54, 42, 27, 6, -19, -38, -52, -57, -62, -65, -64, -52, + -35, -17, -3, 8, 19, 33, 45, 50, 48, 42, 35, 29, 18, 7, -5, -11, + -20, -26, -29, -27, -20, -13, -4, 3, 8, 9, 11, 12, 12, 5, -8, -22, + -33, -42, -50, -53, -51, -42, -27, -11, 9, 27, 45, 62, 75, 78, 73, 60, + 48, 32, 14, -8, -30, -46, -54, -60, -64, -62, -53, -39, -23, -8, 5, 17, + 30, 41, 46, 44, 38, 30, 22, 11, 4, -5, -12, -20, -25, -26, -24, -17, + -7, 3, 8, 11, 12, 14, 15, 14, 9, -4, -17, -32, -44, -54, -57, -56, + -48, -36, -22, -5, 18, 41, 61, 74, 79, 75, 67, 55, 39, 20, -2, -20, + -37, -47, -56, -62, -63, -57, -44, -31, -18, -5, 7, 16, 28, 35, 38, 37, + 32, 25, 16, 8, 3, -2, -5, -11, -19, -21, -16, -7, 3, 6, 8, 7, + 8, 10, 9, 5, -4, -13, -23, -37, -49, -54, -54, -47, -38, -25, -9, 9, + 30, 50, 67, 77, 75, 69, 58, 42, 26, 7, -12, -31, -46, -52, -56, -59, + -58, -49, -36, -19, -5, 8, 14, 22, 28, 33, 35, 30, 23, 13, 4, 3, + 3, 0, -8, -12, -13, -10, -6, 2, 8, 11, 12, 11, 9, 4, -2, -5, + -12, -23, -35, -46, -52, -54, -48, -36, -22, -8, 9, 28, 46, 61, 70, 72, + 68, 58, 45, 27, 9, -8, -22, -35, -43, -48, -48, -46, -39, -33, -23, -12, + 1, 8, 11, 14, 16, 19, 19, 17, 11, 7, 8, 11, 13, 7, 5, 2, + 2, 2, 4, 6, 6, 5, 2, -3, -5, -9, -11, -17, -23, -29, -34, -40, + -45, -41, -32, -18, -5, 7, 19, 36, 54, 64, 67, 61, 55, 48, 36, 18, + 3, -11, -23, -36, -45, -46, -42, -39, -34, -27, -20, -11, 0, 10, 13, 14, + 12, 13, 13, 10, 7, 6, 9, 11, 11, 11, 10, 10, 8, 9, 9, 9, + 6, 1, -4, -12, -16, -22, -25, -28, -29, -30, -39, -43, -39, -26, -11, 0, + 8, 19, 33, 48, 58, 63, 61, 56, 50, 40, 25, 8, -5, -15, -24, -35, + -41, -42, -39, -32, -29, -25, -21, -13, -6, 0, 4, 2, 2, 3, 6, 6, + 7, 11, 17, 20, 22, 23, 24, 23, 21, 17, 12, 4, -5, -13, -22, -29, + -37, -41, -40, -36, -31, -32, -34, -34, -22, -6, 8, 14, 20, 29, 41, 50, + 56, 56, 49, 45, 39, 30, 17, 5, -8, -19, -28, -34, -35, -32, -27, -25, + -25, -23, -19, -12, -7, -4, -6, -10, -11, -7, 0, 4, 10, 14, 19, 26, + 32, 35, 34, 31, 25, 16, 6, -5, -17, -29, -39, -47, -51, -50, -44, -35, + -28, -27, -25, -18, -6, 10, 18, 21, 25, 31, 40, 46, 49, 48, 44, 42, + 37, 29, 19, 8, -5, -14, -21, -29, -30, -30, -27, -28, -32, -33, -31, -22, + -17, -15, -17, -19, -19, -9, 5, 16, 22, 25, 31, 38, 44, 47, 43, 34, + 20, 6, -9, -21, -35, -49, -59, -62, -60, -53, -42, -30, -22, -15, -6, 4, + 14, 23, 27, 28, 27, 30, 35, 38, 39, 42, 38, 35, 30, 25, 20, 12, + 4, -6, -18, -23, -22, -20, -22, -30, -37, -39, -34, -29, -27, -27, -26, -23, + -16, -3, 10, 21, 29, 35, 43, 46, 50, 49, 41, 28, 15, -2, -19, -35, + -50, -62, -67, -67, -60, -50, -36, -23, -14, -6, 3, 11, 21, 27, 27, 24, + 25, 27, 29, 31, 36, 41, 42, 39, 33, 27, 22, 17, 8, -3, -11, -15, + -15, -18, -25, -35, -42, -45, -42, -41, -41, -40, -38, -28, -12, 7, 22, 34, + 43, 51, 59, 62, 59, 49, 37, 20, 1, -19, -38, -54, -65, -73, -74, -69, + -55, -35, -19, -10, -2, 8, 18, 23, 25, 25, 22, 20, 19, 20, 22, 30, + 39, 44, 42, 39, 35, 32, 29, 18, 4, -8, -13, -15, -17, -24, -33, -43, + -47, -44, -42, -40, -40, -39, -32, -17, 3, 16, 28, 39, 47, 53, 56, 56, + 52, 40, 24, 5, -12, -29, -43, -54, -65, -72, -71, -56, -36, -20, -13, -4, + 5, 12, 18, 21, 23, 20, 18, 14, 16, 19, 27, 38, 45, 45, 42, 41, + 42, 37, 27, 15, 1, -8, -12, -13, -17, -30, -40, -47, -48, -47, -46, -46, + -45, -41, -28, -9, 11, 26, 38, 45, 51, 55, 58, 55, 47, 31, 10, -12, + -27, -39, -49, -58, -67, -69, -62, -46, -26, -13, -4, 2, 7, 14, 18, 21, + 20, 15, 11, 12, 14, 21, 32, 40, 44, 42, 42, 40, 37, 33, 22, 11, + 1, -7, -11, -11, -19, -30, -39, -43, -43, -42, -43, -44, -44, -36, -20, 0, + 14, 25, 35, 42, 46, 50, 50, 48, 36, 17, -3, -18, -30, -36, -43, -52, + -59, -60, -49, -35, -20, -12, -7, -4, 2, 8, 12, 12, 9, 9, 12, 16, + 23, 29, 39, 45, 46, 46, 43, 41, 37, 30, 20, 7, -5, -10, -11, -15, + -25, -39, -46, -45, -43, -42, -45, -46, -39, -26, -8, 8, 20, 31, 41, 45, + 48, 46, 44, 36, 21, 1, -20, -31, -33, -36, -44, -53, -59, -54, -41, -26, + -17, -12, -6, -3, 5, 7, 9, 11, 11, 12, 15, 20, 29, 36, 42, 46, + 45, 42, 40, 38, 33, 25, 13, 4, -7, -10, -11, -17, -29, -38, -38, -34, + -35, -39, -41, -39, -31, -16, -6, 4, 14, 24, 30, 34, 34, 35, 32, 22, + 8, -9, -16, -16, -17, -22, -33, -43, -46, -41, -34, -30, -25, -19, -14, -9, + -6, -2, 5, 9, 13, 15, 21, 29, 36, 43, 47, 46, 46, 42, 39, 37, + 31, 20, 10, 0, -6, -9, -14, -22, -29, -33, -31, -30, -34, -37, -37, -30, + -21, -12, -5, 1, 10, 20, 28, 31, 31, 28, 20, 12, 0, -8, -10, -10, + -16, -24, -33, -39, -44, -42, -35, -28, -23, -18, -14, -10, -4, 6, 12, 16, + 17, 22, 29, 33, 35, 38, 41, 43, 41, 38, 34, 30, 24, 16, 9, 3, + -4, -10, -15, -21, -23, -23, -23, -24, -28, -32, -31, -28, -22, -15, -10, -6, + 2, 11, 20, 23, 25, 19, 14, 9, 5, 3, 2, -2, -8, -19, -28, -36, + -42, -44, -39, -33, -28, -26, -20, -11, 0, 8, 15, 22, 28, 33, 35, 36, + 37, 38, 41, 40, 38, 32, 27, 21, 17, 11, 4, -3, -8, -12, -17, -18, + -16, -16, -15, -18, -22, -25, -26, -25, -23, -19, -15, -9, -2, 8, 13, 17, + 18, 17, 16, 15, 13, 10, 6, 0, -9, -21, -32, -42, -47, -46, -43, -36, + -30, -22, -15, -6, 4, 14, 22, 28, 33, 36, 37, 36, 35, 37, 36, 36, + 32, 27, 23, 16, 10, 5, 0, -7, -10, -12, -11, -11, -11, -10, -9, -11, + -16, -22, -27, -30, -30, -30, -25, -19, -9, 0, 7, 13, 18, 23, 27, 27, + 26, 20, 12, 1, -13, -27, -40, -50, -54, -54, -49, -42, -33, -21, -10, 1, + 14, 24, 30, 39, 44, 43, 38, 36, 38, 37, 34, 31, 28, 22, 13, 7, + 5, -2, -7, -11, -14, -13, -13, -8, -6, -6, -10, -12, -14, -19, -26, -34, + -38, -33, -26, -15, -7, 2, 7, 17, 26, 35, 40, 37, 29, 19, 7, -12, + -31, -44, -53, -56, -61, -62, -59, -46, -27, -9, 5, 14, 25, 36, 47, 53, + 51, 45, 37, 34, 32, 29, 26, 23, 18, 13, 5, 0, -3, -4, -6, -10, + -12, -12, -6, 2, 6, 2, -6, -12, -17, -21, -31, -41, -47, -43, -32, -20, + -11, -4, 9, 21, 40, 50, 48, 42, 34, 22, 5, -16, -36, -53, -58, -63, + -69, -73, -63, -43, -19, -2, 9, 19, 34, 50, 60, 61, 53, 42, 37, 32, + 30, 24, 21, 16, 11, 4, -4, -7, -6, -5, -5, -10, -14, -11, -4, 3, + 2, -2, -8, -13, -19, -26, -36, -42, -40, -33, -21, -9, 1, 10, 22, 36, + 49, 53, 47, 36, 19, 1, -18, -36, -51, -60, -65, -67, -67, -63, -47, -24, + -4, 11, 20, 33, 48, 57, 57, 52, 42, 33, 30, 28, 25, 19, 16, 12, + 8, 3, -2, -2, -2, -2, -5, -8, -10, -5, -2, 0, 0, -5, -8, -15, + -23, -32, -39, -38, -33, -24, -15, -7, 5, 16, 30, 45, 52, 49, 40, 23, + 4, -14, -29, -42, -55, -63, -67, -67, -61, -50, -35, -19, 0, 16, 31, 46, + 56, 59, 56, 47, 38, 34, 31, 28, 23, 16, 10, 4, 0, -2, -2, 0, + -5, -9, -12, -11, -7, -3, -3, -4, -5, -4, -7, -14, -26, -33, -32, -27, + -20, -15, -7, 2, 13, 21, 34, 42, 46, 40, 25, 7, -13, -27, -35, -44, + -54, -62, -64, -60, -51, -39, -26, -10, 8, 24, 40, 51, 58, 60, 54, 44, + 36, 29, 24, 19, 13, 8, 0, -6, -5, 0, 1, 0, -4, -3, -2, 0, + 1, -2, -5, -5, -4, -7, -17, -27, -31, -29, -24, -19, -15, -9, -3, 7, + 18, 27, 34, 39, 37, 26, 9, -9, -24, -32, -39, -47, -55, -60, -57, -51, + -42, -32, -20, -6, 14, 31, 48, 57, 60, 58, 52, 45, 35, 25, 21, 17, + 9, 0, -8, -10, -8, -7, -6, -9, -9, -6, -2, 0, -3, -6, -6, -2, + 1, -6, -15, -25, -25, -20, -17, -13, -11, -7, 1, 8, 16, 24, 31, 34, + 29, 16, -3, -17, -28, -35, -41, -47, -54, -56, -54, -46, -37, -27, -15, 4, + 23, 40, 50, 58, 60, 58, 50, 42, 34, 26, 19, 14, 4, -6, -13, -13, + -13, -14, -16, -15, -12, -9, -7, -7, -4, -4, 2, 7, 5, 0, -8, -11, + -13, -13, -11, -10, -11, -11, -9, 0, 8, 14, 22, 24, 19, 9, -3, -14, + -23, -29, -32, -38, -47, -54, -52, -44, -32, -23, -9, 8, 23, 39, 52, 59, + 58, 51, 46, 43, 33, 25, 16, 9, 4, -4, -11, -15, -16, -16, -15, -14, + -15, -16, -13, -7, -5, 2, 5, 5, 5, 6, 3, -4, -6, -4, -5, -10, + -16, -16, -13, -6, 4, 12, 15, 17, 14, 10, 4, -8, -17, -23, -30, -38, + -46, -52, -51, -41, -30, -20, -8, 9, 29, 47, 56, 57, 55, 52, 50, 45, + 34, 20, 10, 2, -2, -9, -16, -22, -24, -22, -21, -22, -19, -14, -7, -4, + 1, 5, 11, 15, 20, 17, 9, 3, 3, 0, -6, -15, -21, -23, -16, -9, + -3, 4, 10, 13, 15, 13, 4, -9, -15, -20, -27, -39, -48, -51, -47, -38, + -29, -21, -7, 16, 36, 48, 51, 52, 55, 60, 59, 49, 33, 20, 12, 7, + -2, -13, -24, -28, -27, -26, -30, -32, -29, -20, -9, 0, 3, 8, 16, 25, + 28, 23, 17, 12, 6, -2, -14, -26, -31, -27, -18, -10, -3, 7, 15, 22, + 24, 18, 9, 0, -9, -19, -34, -46, -57, -57, -51, -44, -38, -26, -5, 21, + 42, 48, 53, 58, 67, 75, 71, 57, 37, 23, 12, 3, -12, -27, -39, -43, + -43, -45, -47, -42, -28, -12, 2, 7, 12, 20, 32, 38, 37, 30, 21, 13, + 1, -13, -26, -34, -33, -26, -17, -10, -3, 9, 20, 25, 22, 13, 5, -3, + -13, -28, -43, -53, -56, -51, -46, -40, -31, -14, 10, 31, 41, 47, 56, 67, + 76, 73, 63, 46, 30, 19, 9, -7, -25, -39, -47, -50, -54, -52, -50, -38, + -22, -9, 4, 12, 22, 30, 39, 41, 39, 31, 22, 12, -3, -19, -30, -32, + -29, -23, -17, -9, 1, 12, 20, 24, 18, 10, 2, -7, -19, -35, -50, -59, + -59, -54, -49, -43, -31, -9, 15, 32, 41, 53, 70, 85, 87, 80, 64, 49, + 37, 23, 2, -23, -42, -52, -59, -66, -69, -68, -56, -38, -18, -2, 9, 19, + 31, 41, 49, 51, 44, 35, 21, 5, -9, -22, -29, -30, -26, -20, -14, -7, + 5, 15, 17, 14, 9, 2, -4, -16, -29, -45, -55, -56, -50, -46, -44, -36, + -19, 1, 19, 33, 46, 63, 79, 86, 84, 73, 60, 47, 32, 12, -10, -30, + -48, -59, -68, -72, -73, -64, -49, -30, -12, 2, 12, 26, 35, 45, 51, 51, + 44, 30, 15, 3, -9, -17, -20, -21, -19, -18, -14, 0, 10, 16, 15, 7, + -4, -10, -14, -24, -38, -51, -58, -55, -50, -44, -36, -23, -7, 10, 26, 41, + 57, 76, 89, 89, 81, 70, 59, 45, 25, 0, -24, -41, -56, -67, -75, -80, + -76, -63, -45, -26, -9, 6, 20, 32, 44, 52, 54, 53, 47, 35, 18, 3, + -6, -11, -14, -16, -19, -19, -12, -4, 5, 5, 0, -8, -12, -15, -21, -34, + -47, -51, -45, -39, -34, -30, -23, -12, 4, 17, 31, 45, 60, 72, 78, 75, + 69, 62, 53, 40, 18, -5, -24, -38, -50, -62, -73, -78, -74, -59, -41, -28, + -17, -4, 14, 33, 47, 55, 58, 55, 48, 39, 29, 16, 4, -5, -11, -18, + -21, -20, -15, -8, -7, -9, -13, -15, -16, -17, -23, -33, -43, -44, -41, -34, + -28, -23, -16, -8, 5, 21, 36, 50, 62, 73, 76, 73, 68, 59, 48, 30, + 9, -16, -35, -48, -59, -70, -77, -79, -72, -54, -38, -24, -8, 8, 29, 45, + 56, 61, 62, 56, 51, 39, 27, 16, 4, -8, -16, -22, -23, -25, -19, -16, + -17, -19, -20, -21, -18, -19, -25, -32, -38, -34, -24, -19, -15, -12, -7, 3, + 15, 28, 39, 48, 56, 63, 63, 63, 57, 47, 32, 14, -5, -22, -36, -46, + -58, -68, -73, -71, -61, -47, -35, -23, -9, 10, 29, 43, 52, 56, 56, 56, + 52, 45, 33, 19, 6, -5, -15, -22, -25, -26, -26, -29, -29, -26, -24, -20, + -19, -23, -27, -30, -27, -21, -18, -14, -10, -7, 0, 8, 18, 30, 40, 47, + 52, 54, 54, 55, 49, 39, 22, 7, -9, -24, -37, -50, -58, -65, -71, -67, + -59, -50, -39, -23, -6, 15, 32, 43, 51, 57, 61, 64, 61, 52, 37, 21, + 4, -11, -20, -26, -30, -35, -37, -39, -35, -29, -22, -17, -20, -22, -20, -18, + -17, -16, -13, -8, -3, 2, 7, 10, 17, 27, 35, 42, 43, 44, 45, 44, + 38, 28, 16, 3, -10, -22, -33, -46, -57, -64, -64, -59, -53, -46, -34, -17, + 3, 21, 32, 41, 48, 55, 60, 60, 54, 44, 31, 18, 3, -10, -19, -27, + -30, -32, -34, -35, -30, -23, -17, -17, -20, -20, -20, -17, -15, -13, -11, -8, + 1, 8, 12, 17, 23, 30, 39, 39, 37, 36, 35, 34, 27, 14, 0, -10, + -15, -23, -34, -46, -56, -60, -56, -49, -39, -32, -23, -8, 8, 23, 32, 38, + 44, 54, 58, 57, 48, 37, 29, 17, 4, -11, -21, -28, -29, -31, -34, -35, + -27, -20, -15, -16, -16, -17, -13, -10, -10, -11, -10, -4, 5, 11, 13, 15, + 21, 29, 33, 32, 28, 25, 25, 23, 16, 5, -6, -10, -16, -21, -30, -42, + -48, -48, -43, -34, -29, -21, -13, -3, 11, 22, 27, 34, 39, 48, 53, 48, + 42, 32, 23, 16, 4, -7, -18, -24, -24, -26, -28, -24, -19, -14, -13, -16, + -18, -18, -16, -14, -15, -16, -15, -7, 3, 11, 14, 21, 27, 33, 36, 33, + 30, 25, 22, 17, 9, -4, -15, -21, -24, -31, -39, -44, -44, -39, -30, -23, + -16, -8, 4, 14, 21, 23, 25, 29, 37, 43, 42, 36, 31, 25, 18, 11, + 4, -7, -11, -13, -16, -21, -22, -18, -14, -13, -16, -19, -21, -21, -19, -19, + -20, -18, -11, -2, 8, 14, 18, 23, 30, 34, 35, 31, 27, 21, 13, 2, + -11, -17, -23, -28, -36, -39, -40, -37, -31, -23, -14, -9, 0, 7, 13, 15, + 15, 16, 22, 27, 30, 28, 29, 32, 29, 23, 16, 9, 4, 1, -2, -7, + -14, -19, -14, -10, -10, -14, -18, -22, -24, -23, -26, -28, -27, -18, -8, -3, + 2, 9, 22, 33, 40, 40, 36, 30, 25, 20, 8, -8, -22, -29, -32, -39, + -48, -50, -42, -30, -19, -13, -8, 2, 11, 22, 25, 21, 17, 15, 20, 23, + 21, 20, 20, 19, 19, 16, 11, 9, 7, 7, 3, 0, -3, -5, -5, -5, + -7, -12, -22, -28, -32, -35, -35, -36, -30, -21, -12, -4, 3, 16, 29, 39, + 46, 45, 40, 34, 26, 13, -2, -17, -28, -37, -48, -57, -60, -52, -36, -19, + -12, -8, 2, 16, 28, 33, 28, 23, 21, 22, 21, 19, 18, 16, 14, 12, + 8, 6, 5, 5, 7, 5, 4, 5, 7, 9, 7, 3, -5, -13, -22, -28, + -35, -44, -49, -48, -38, -26, -14, -7, 4, 20, 38, 49, 54, 53, 49, 40, + 26, 8, -11, -24, -33, -46, -61, -70, -67, -52, -31, -14, -5, 4, 14, 27, + 36, 36, 33, 29, 26, 25, 21, 14, 10, 7, 8, 6, 5, 5, 6, 8, + 9, 10, 14, 18, 17, 13, 5, -4, -12, -20, -28, -37, -49, -56, -56, -48, + -36, -25, -15, -2, 16, 36, 51, 55, 57, 55, 48, 37, 20, 1, -17, -30, + -43, -60, -73, -76, -63, -43, -24, -14, -6, 7, 23, 39, 44, 38, 34, 31, + 32, 30, 24, 16, 8, 5, 6, 6, 5, 5, 6, 10, 10, 13, 16, 19, + 19, 14, 5, -7, -18, -25, -34, -45, -55, -61, -59, -51, -39, -25, -12, 5, + 27, 48, 58, 60, 61, 58, 49, 32, 14, -4, -20, -36, -54, -69, -79, -75, + -57, -35, -21, -15, -4, 12, 28, 39, 42, 41, 38, 38, 38, 33, 23, 13, + 8, 9, 11, 9, 5, 3, 6, 10, 13, 14, 15, 17, 16, 9, -6, -16, + -21, -27, -40, -56, -65, -67, -57, -45, -33, -23, -5, 21, 44, 60, 66, 67, + 65, 61, 47, 25, 2, -16, -34, -53, -72, -83, -82, -70, -51, -33, -20, -8, + 8, 25, 39, 46, 43, 43, 43, 43, 38, 27, 17, 9, 8, 10, 11, 9, + 5, 5, 8, 13, 14, 18, 20, 18, 12, -2, -13, -19, -25, -34, -48, -62, + -69, -67, -58, -46, -32, -14, 9, 30, 48, 60, 69, 72, 69, 57, 36, 13, + -6, -27, -47, -66, -79, -83, -77, -64, -46, -29, -13, 4, 17, 30, 39, 41, + 46, 48, 45, 40, 31, 20, 12, 10, 13, 14, 12, 11, 10, 10, 15, 17, + 20, 20, 17, 12, 0, -14, -24, -30, -37, -47, -60, -69, -68, -62, -51, -36, + -18, 5, 25, 45, 58, 65, 68, 67, 59, 42, 20, -2, -22, -42, -61, -75, + -81, -77, -66, -51, -35, -20, -4, 14, 28, 37, 38, 38, 42, 47, 43, 35, + 24, 17, 14, 14, 17, 20, 20, 17, 13, 14, 17, 18, 18, 17, 11, -2, + -15, -24, -31, -38, -46, -52, -58, -62, -61, -52, -38, -22, -4, 16, 35, 48, + 55, 60, 62, 57, 46, 26, 6, -17, -35, -53, -68, -76, -75, -66, -51, -38, + -23, -7, 10, 25, 35, 38, 37, 39, 40, 39, 30, 21, 16, 15, 15, 16, + 20, 24, 26, 27, 27, 26, 24, 21, 19, 11, -3, -16, -29, -40, -44, -50, + -54, -57, -58, -55, -48, -36, -21, -5, 13, 29, 41, 48, 52, 53, 50, 41, + 26, 7, -14, -33, -49, -62, -70, -69, -61, -48, -36, -21, -5, 16, 30, 35, + 35, 35, 32, 31, 29, 24, 17, 13, 13, 14, 15, 18, 26, 34, 39, 37, + 32, 29, 26, 22, 13, 1, -15, -29, -40, -46, -51, -54, -55, -52, -46, -40, + -32, -22, -10, 5, 19, 28, 33, 35, 37, 38, 33, 21, 8, -7, -20, -35, + -50, -57, -57, -49, -37, -28, -21, -8, 10, 25, 32, 32, 31, 27, 24, 22, + 20, 15, 13, 13, 15, 15, 19, 26, 36, 42, 43, 40, 33, 27, 22, 16, + 3, -13, -26, -37, -44, -50, -55, -54, -48, -42, -32, -24, -18, -10, -3, 8, + 20, 30, 31, 26, 22, 20, 15, 7, -7, -20, -32, -43, -52, -52, -46, -36, + -25, -16, -5, 9, 24, 38, 42, 39, 30, 23, 19, 15, 11, 8, 6, 6, + 6, 9, 18, 30, 42, 47, 45, 43, 38, 31, 22, 8, -9, -21, -33, -45, + -55, -59, -56, -47, -37, -29, -21, -13, -5, 2, 8, 13, 19, 22, 20, 15, + 9, 5, -3, -9, -20, -30, -39, -46, -45, -40, -31, -24, -16, -6, 7, 21, + 35, 39, 36, 31, 24, 22, 15, 10, 8, 5, 6, 3, 4, 12, 25, 40, + 48, 50, 48, 43, 37, 30, 17, -2, -18, -33, -45, -57, -64, -62, -53, -40, + -31, -23, -13, -3, 4, 11, 16, 19, 18, 17, 13, 7, -3, -10, -16, -22, + -31, -40, -45, -45, -41, -32, -24, -15, -5, 8, 24, 39, 47, 44, 38, 32, + 26, 20, 12, 3, -4, -4, -5, -4, 1, 11, 29, 41, 49, 51, 49, 45, + 38, 27, 9, -11, -27, -38, -52, -60, -64, -58, -45, -32, -21, -14, -5, 3, + 10, 13, 13, 14, 14, 12, 4, -6, -12, -17, -21, -25, -31, -35, -40, -39, + -33, -27, -19, -12, 1, 16, 29, 38, 42, 40, 36, 33, 30, 22, 11, 1, + -2, -2, -3, -2, 2, 16, 32, 44, 48, 46, 44, 39, 31, 19, 1, -21, + -36, -48, -58, -62, -59, -49, -38, -28, -20, -12, -2, 9, 16, 16, 15, 16, + 14, 9, 2, -7, -14, -19, -25, -31, -36, -38, -38, -36, -34, -28, -20, -7, + 8, 22, 33, 41, 46, 46, 42, 39, 33, 25, 14, 4, -4, -8, -8, -4, + 4, 16, 30, 38, 42, 46, 45, 38, 25, 10, -7, -24, -39, -51, -58, -59, + -53, -43, -34, -28, -21, -9, 5, 15, 17, 16, 15, 16, 15, 10, 2, -10, + -17, -21, -26, -33, -38, -40, -37, -34, -33, -28, -17, 0, 15, 29, 40, 48, + 50, 48, 44, 40, 34, 26, 15, 3, -6, -11, -11, -4, 7, 18, 24, 30, + 36, 38, 35, 31, 24, 13, -7, -25, -40, -50, -53, -51, -47, -41, -38, -33, + -25, -10, 4, 14, 19, 21, 22, 19, 19, 17, 7, -5, -15, -23, -31, -39, + -46, -49, -49, -46, -41, -33, -19, 0, 21, 39, 53, 61, 64, 63, 56, 50, + 42, 31, 15, -2, -13, -19, -19, -11, 0, 10, 15, 19, 27, 33, 37, 35, + 25, 9, -13, -28, -38, -44, -46, -50, -53, -51, -46, -38, -23, -7, 10, 20, + 21, 24, 25, 28, 28, 19, 8, -7, -18, -28, -36, -43, -52, -56, -57, -51, + -44, -31, -13, 7, 29, 46, 60, 66, 71, 68, 61, 54, 45, 32, 13, -5, + -17, -22, -20, -15, -8, -2, 8, 14, 24, 31, 35, 32, 21, 4, -13, -24, + -34, -42, -49, -55, -58, -54, -48, -38, -23, -4, 14, 26, 32, 31, 32, 36, + 34, 23, 7, -12, -25, -35, -47, -61, -68, -68, -61, -53, -42, -26, -7, 22, + 45, 61, 71, 75, 78, 74, 66, 56, 42, 24, 7, -13, -24, -29, -25, -18, + -11, -7, 2, 14, 27, 36, 38, 32, 19, 1, -14, -22, -33, -44, -56, -64, + -65, -60, -47, -32, -16, 3, 18, 31, 37, 37, 38, 41, 35, 20, 0, -18, + -31, -43, -56, -64, -69, -68, -60, -50, -36, -15, 6, 31, 50, 62, 71, 77, + 78, 74, 66, 54, 38, 20, 2, -15, -23, -26, -24, -22, -17, -7, 8, 20, + 29, 35, 33, 25, 13, -2, -14, -29, -42, -57, -67, -72, -67, -57, -42, -24, + -5, 13, 31, 43, 46, 47, 48, 43, 32, 14, -5, -22, -40, -55, -63, -68, + -69, -66, -57, -44, -25, -5, 18, 37, 55, 66, 75, 78, 75, 70, 62, 47, + 28, 9, -7, -19, -27, -30, -27, -21, -11, 5, 18, 28, 34, 36, 32, 24, + 12, -4, -20, -38, -55, -68, -75, -71, -65, -53, -35, -14, 6, 24, 39, 47, + 50, 48, 44, 36, 22, 5, -16, -34, -47, -56, -60, -60, -59, -54, -45, -28, + -9, 9, 25, 41, 53, 63, 67, 66, 65, 62, 54, 40, 22, 6, -8, -16, + -22, -23, -20, -11, 1, 13, 22, 27, 29, 26, 24, 15, 2, -15, -33, -49, + -64, -74, -74, -67, -55, -39, -20, -2, 16, 32, 45, 50, 49, 43, 35, 26, + 11, -9, -25, -35, -44, -49, -52, -54, -50, -39, -26, -12, 1, 14, 27, 39, + 48, 53, 55, 57, 56, 48, 36, 25, 15, 6, -5, -12, -17, -14, -8, 3, + 14, 21, 26, 23, 21, 21, 14, 3, -11, -26, -44, -61, -72, -72, -68, -56, + -42, -25, -11, 7, 24, 37, 44, 44, 40, 33, 25, 13, 0, -12, -24, -32, + -39, -41, -39, -36, -30, -24, -18, -10, 1, 11, 21, 29, 36, 41, 47, 51, + 51, 42, 35, 27, 19, 10, 1, -6, -10, -9, -2, 6, 11, 13, 13, 15, + 14, 10, 4, -9, -19, -31, -45, -58, -67, -68, -56, -43, -31, -20, -9, 7, + 21, 31, 35, 35, 33, 27, 18, 7, -3, -9, -13, -20, -27, -32, -33, -29, + -23, -19, -16, -12, -4, 6, 15, 23, 30, 39, 47, 49, 42, 35, 31, 27, + 22, 14, 2, -8, -9, -4, 5, 8, 8, 9, 7, 6, 3, 0, -5, -12, + -22, -35, -50, -58, -58, -50, -39, -32, -26, -19, -8, 7, 21, 26, 27, 25, + 22, 18, 11, 5, 2, 1, -3, -10, -19, -24, -23, -16, -15, -17, -20, -17, + -10, -2, 6, 12, 21, 32, 44, 45, 38, 30, 27, 31, 31, 21, 8, 1, + 0, 2, 8, 10, 7, 1, -3, -2, -4, -9, -12, -17, -25, -37, -47, -53, + -50, -42, -32, -27, -26, -22, -11, 5, 15, 18, 20, 22, 23, 22, 18, 15, + 14, 11, 7, -3, -14, -18, -17, -18, -22, -27, -27, -21, -14, -6, 3, 12, + 24, 34, 40, 39, 35, 32, 31, 34, 30, 19, 10, 4, 2, 5, 7, 7, + 1, -6, -10, -9, -8, -8, -11, -16, -25, -34, -41, -41, -36, -32, -33, -33, + -29, -22, -11, -2, 6, 13, 17, 22, 23, 22, 22, 24, 23, 20, 12, 0, + -7, -11, -14, -20, -26, -28, -26, -22, -15, -9, 2, 13, 25, 32, 33, 35, + 36, 37, 38, 35, 29, 19, 9, 5, 7, 6, 4, -3, -9, -12, -11, -6, + -4, -5, -10, -17, -26, -33, -37, -38, -38, -38, -41, -39, -31, -20, -9, -2, + 6, 15, 23, 31, 31, 31, 30, 29, 28, 21, 13, 2, -9, -17, -20, -23, + -26, -27, -26, -20, -14, -6, 6, 14, 22, 26, 32, 34, 35, 37, 37, 36, + 27, 15, 6, 6, 7, 5, -3, -13, -17, -17, -11, -5, -5, -6, -11, -18, + -24, -27, -30, -35, -40, -44, -44, -39, -28, -16, -6, 1, 9, 20, 31, 34, + 36, 37, 36, 33, 23, 14, 5, -3, -10, -17, -23, -30, -34, -31, -22, -14, + -8, 0, 7, 15, 20, 26, 30, 35, 40, 40, 34, 27, 18, 14, 9, 8, + 5, -2, -11, -15, -13, -8, -4, 0, 1, -6, -12, -18, -23, -29, -38, -45, + -52, -53, -47, -37, -28, -16, -5, 6, 17, 28, 37, 42, 43, 40, 37, 31, + 19, 8, 1, -7, -14, -22, -27, -33, -34, -28, -18, -8, 0, 5, 10, 14, + 19, 25, 33, 38, 39, 35, 27, 18, 13, 9, 8, 4, -3, -8, -12, -13, + -10, -4, 4, 4, -2, -7, -14, -21, -28, -36, -45, -53, -54, -50, -44, -34, + -20, -5, 7, 18, 28, 37, 39, 42, 40, 35, 28, 17, 7, 0, -7, -12, + -18, -23, -28, -28, -23, -17, -8, 2, 8, 9, 10, 12, 17, 25, 32, 33, + 28, 20, 13, 10, 10, 8, 6, 5, 1, -5, -6, -3, 3, 10, 10, 5, + -6, -15, -21, -28, -38, -49, -59, -62, -59, -51, -39, -25, -8, 7, 17, 28, + 37, 42, 44, 43, 38, 30, 17, 7, 0, -4, -10, -16, -24, -26, -27, -21, + -14, -9, -2, 5, 11, 14, 12, 13, 19, 26, 29, 26, 19, 13, 8, 8, + 9, 5, 2, 2, 4, 3, 1, 1, 5, 8, 7, 0, -10, -18, -25, -32, + -42, -52, -56, -53, -48, -38, -29, -14, 1, 14, 23, 30, 33, 33, 35, 33, + 26, 17, 9, 2, 1, 0, -5, -12, -19, -22, -21, -13, -8, -4, 5, 10, + 12, 10, 10, 14, 21, 25, 24, 15, 5, 3, 5, 7, 5, 2, 5, 10, + 12, 10, 9, 11, 13, 10, 2, -8, -18, -25, -32, -40, -50, -55, -53, -45, + -35, -27, -17, -4, 11, 20, 28, 30, 28, 29, 30, 28, 19, 10, 6, 6, + 5, 0, -10, -18, -20, -18, -14, -11, -10, -4, 6, 13, 13, 11, 13, 20, + 25, 24, 15, 7, 3, 4, 5, 4, 0, 3, 9, 14, 15, 11, 9, 8, + 8, 6, -5, -16, -24, -29, -35, -43, -48, -47, -42, -31, -23, -17, -7, 5, + 17, 24, 26, 22, 19, 19, 20, 17, 11, 5, 2, 2, 0, -4, -10, -14, + -14, -10, -8, -6, 1, 10, 19, 23, 22, 17, 16, 19, 18, 11, 1, -8, + -11, -10, -7, -4, 1, 7, 15, 22, 22, 18, 17, 16, 12, 4, -8, -21, + -29, -34, -39, -46, -49, -46, -37, -28, -19, -9, -2, 8, 19, 22, 20, 18, + 18, 19, 19, 12, 6, 3, 2, 0, -5, -10, -16, -18, -14, -9, -8, -3, + 6, 17, 25, 27, 26, 24, 25, 22, 15, 3, -8, -13, -13, -12, -11, -6, + 0, 9, 16, 19, 19, 16, 13, 10, 6, -5, -14, -22, -26, -32, -37, -41, + -39, -32, -23, -17, -14, -10, -3, 9, 17, 18, 10, 7, 10, 16, 18, 12, + 5, 1, 1, -4, -13, -18, -18, -15, -12, -11, -10, 1, 15, 29, 37, 35, + 31, 30, 30, 24, 11, -8, -18, -18, -15, -17, -20, -17, -6, 8, 15, 18, + 16, 15, 11, 12, 8, 0, -10, -16, -20, -28, -35, -38, -33, -27, -23, -21, + -19, -13, 0, 11, 14, 12, 9, 11, 18, 21, 19, 10, 2, -3, -5, -12, + -21, -28, -26, -20, -15, -12, -6, 9, 25, 38, 43, 42, 40, 38, 34, 23, + 6, -12, -18, -18, -18, -23, -25, -22, -13, 0, 7, 9, 8, 8, 11, 12, + 9, 6, 2, -5, -14, -21, -24, -24, -22, -22, -21, -22, -20, -12, -3, 4, + 5, 5, 6, 11, 15, 16, 10, 4, -2, -7, -11, -20, -25, -27, -21, -13, + -11, -5, 6, 22, 37, 46, 50, 49, 44, 39, 31, 16, -3, -15, -21, -24, + -27, -32, -33, -28, -17, -5, 5, 7, 7, 10, 15, 16, 15, 10, 4, -4, + -11, -18, -22, -22, -20, -22, -21, -21, -17, -10, 1, 6, 9, 10, 15, 19, + 18, 12, 5, 0, -9, -15, -23, -31, -36, -32, -24, -17, -11, -4, 12, 31, + 47, 53, 58, 60, 56, 49, 35, 15, -4, -16, -21, -25, -32, -42, -45, -35, + -23, -14, -8, 0, 6, 13, 20, 21, 19, 15, 9, 1, -6, -11, -13, -16, + -18, -20, -23, -20, -14, -8, 0, 2, 5, 11, 18, 18, 14, 6, -2, -10, + -18, -27, -34, -41, -40, -31, -20, -12, -7, 4, 23, 47, 64, 71, 71, 63, + 56, 46, 30, 12, -7, -22, -35, -42, -49, -52, -48, -34, -22, -14, -7, 3, + 15, 24, 27, 27, 24, 15, 6, -4, -8, -11, -13, -13, -15, -16, -14, -12, + -7, -2, 3, 10, 12, 14, 15, 7, 0, -7, -16, -25, -32, -40, -44, -44, + -36, -24, -11, 0, 6, 16, 36, 58, 72, 76, 71, 62, 51, 38, 24, 5, + -13, -30, -42, -50, -52, -53, -46, -33, -21, -15, -6, 7, 20, 25, 25, 21, + 18, 14, 7, 2, -5, -9, -9, -7, -8, -9, -10, -7, -3, 1, 6, 7, + 8, 9, 6, -2, -13, -23, -30, -35, -41, -45, -44, -38, -26, -15, -3, 11, + 19, 33, 52, 69, 75, 72, 65, 54, 42, 29, 13, -6, -25, -41, -49, -54, + -55, -48, -38, -26, -18, -8, 1, 13, 24, 29, 26, 19, 11, 5, 2, -2, + -6, -6, -6, -5, -7, -5, 1, 5, 9, 11, 8, 8, 7, 4, -6, -17, + -28, -35, -42, -47, -48, -45, -39, -29, -16, -5, 7, 18, 32, 45, 57, 64, + 67, 62, 54, 45, 35, 22, 5, -13, -28, -40, -47, -49, -46, -42, -32, -21, + -11, -4, 6, 15, 21, 21, 16, 12, 6, 1, -3, -5, -3, 3, 8, 9, + 8, 7, 7, 11, 12, 11, 6, -2, -9, -13, -20, -29, -40, -47, -47, -45, + -42, -37, -29, -16, -5, 7, 17, 27, 38, 48, 56, 59, 53, 44, 40, 37, + 30, 17, -2, -16, -25, -32, -35, -36, -35, -31, -23, -16, -10, -3, 4, 10, + 11, 8, 1, 0, 0, 0, 0, 1, 6, 14, 20, 21, 19, 15, 14, 13, + 11, 7, 0, -13, -21, -28, -37, -46, -51, -48, -43, -37, -32, -28, -21, -9, + 4, 17, 27, 32, 40, 45, 50, 51, 46, 40, 38, 35, 27, 12, -3, -13, + -23, -27, -29, -30, -29, -28, -23, -15, -10, -5, 2, 5, 5, 1, -2, -2, + 1, 4, 4, 8, 14, 19, 25, 26, 21, 15, 13, 12, 12, 5, -9, -21, + -30, -37, -43, -50, -51, -47, -42, -38, -34, -27, -17, -5, 10, 22, 30, 38, + 44, 49, 50, 46, 40, 37, 38, 33, 19, 4, -8, -14, -18, -22, -24, -24, + -22, -18, -16, -14, -10, -6, 1, 1, -6, -8, -9, -6, 0, 2, 8, 14, + 21, 28, 31, 27, 24, 21, 20, 16, 9, -3, -16, -26, -33, -42, -50, -55, + -56, -50, -43, -39, -38, -29, -13, 6, 18, 27, 33, 42, 51, 54, 53, 48, + 41, 39, 38, 29, 12, -5, -15, -19, -20, -23, -24, -22, -18, -17, -13, -12, + -10, -4, -3, -4, -7, -8, -9, -9, -7, 2, 9, 14, 21, 26, 27, 27, + 22, 20, 19, 17, 12, 1, -14, -25, -35, -41, -45, -50, -53, -54, -51, -47, + -41, -31, -18, -3, 12, 24, 35, 47, 55, 58, 57, 55, 49, 46, 40, 26, + 11, -5, -17, -22, -23, -23, -22, -21, -21, -18, -15, -9, -5, -3, -4, -6, + -7, -9, -12, -12, -8, 1, 7, 13, 14, 19, 23, 27, 26, 25, 25, 20, + 13, 4, -9, -22, -36, -42, -48, -55, -61, -62, -59, -54, -43, -32, -18, 0, + 18, 35, 49, 57, 60, 62, 63, 61, 57, 48, 33, 15, -2, -15, -24, -28, + -27, -22, -23, -24, -21, -13, -4, 3, 3, 1, -2, -4, -4, -9, -15, -16, + -13, -9, -5, 2, 7, 11, 19, 24, 28, 31, 29, 28, 24, 12, -4, -21, + -33, -38, -48, -61, -72, -76, -71, -61, -47, -34, -20, 2, 26, 45, 58, 65, + 69, 74, 75, 68, 55, 41, 28, 13, -7, -22, -32, -32, -29, -24, -23, -22, + -19, -7, 6, 7, 2, -2, -3, 0, -3, -10, -20, -24, -19, -12, -5, 1, + 5, 14, 23, 30, 33, 37, 39, 36, 24, 8, -10, -25, -33, -43, -55, -71, + -82, -82, -71, -57, -44, -29, -11, 13, 34, 52, 64, 70, 73, 77, 76, 65, + 50, 35, 20, 4, -13, -26, -31, -32, -27, -26, -25, -21, -10, 2, 8, 5, + 3, 0, 1, 2, -3, -12, -22, -24, -21, -16, -9, -3, 6, 14, 22, 28, + 34, 41, 42, 35, 23, 6, -10, -21, -32, -45, -61, -76, -85, -82, -70, -54, + -43, -29, -7, 18, 40, 55, 64, 71, 77, 81, 76, 62, 48, 32, 19, 6, + -10, -23, -30, -29, -28, -30, -27, -20, -10, -2, 3, 1, 0, 3, 6, 4, + -9, -18, -24, -22, -18, -14, -8, 0, 8, 16, 24, 32, 38, 42, 42, 31, + 15, -2, -14, -25, -38, -52, -67, -81, -85, -76, -63, -49, -37, -19, 3, 26, + 43, 57, 67, 75, 82, 79, 70, 56, 41, 28, 15, 1, -12, -22, -27, -27, + -28, -26, -21, -12, -3, 3, -2, -2, 1, 3, 1, -12, -22, -28, -29, -27, + -23, -18, -11, 3, 16, 25, 34, 44, 51, 52, 43, 27, 12, -2, -17, -34, + -51, -71, -82, -86, -83, -75, -61, -45, -27, -7, 16, 37, 53, 63, 72, 78, + 77, 68, 60, 45, 33, 20, 10, -2, -9, -15, -18, -22, -23, -19, -15, -8, + -5, -7, -8, -7, -4, -3, -10, -22, -29, -29, -24, -21, -18, -14, -3, 12, + 23, 27, 35, 44, 49, 47, 34, 18, 1, -11, -23, -40, -57, -73, -81, -80, + -74, -64, -50, -36, -19, 2, 22, 38, 49, 61, 69, 74, 69, 60, 50, 40, + 29, 20, 10, 2, -5, -9, -12, -16, -18, -14, -9, -6, -10, -13, -12, -10, + -11, -15, -23, -30, -31, -27, -25, -23, -19, -8, 8, 20, 28, 36, 45, 49, + 49, 41, 29, 15, -2, -15, -31, -49, -65, -76, -79, -77, -67, -55, -43, -30, + -13, 7, 25, 40, 51, 60, 66, 66, 62, 54, 45, 37, 29, 22, 14, 7, + 3, -3, -7, -10, -12, -10, -8, -12, -18, -19, -16, -13, -15, -23, -31, -33, + -29, -26, -25, -23, -15, 1, 14, 23, 31, 40, 50, 52, 46, 36, 21, 7, + -8, -24, -41, -58, -70, -75, -74, -67, -57, -43, -30, -18, -3, 13, 26, 39, + 48, 56, 60, 58, 51, 45, 42, 36, 29, 25, 20, 14, 9, 6, 3, 0, + -5, -6, -12, -17, -22, -21, -20, -24, -33, -37, -38, -35, -30, -28, -24, -17, + -3, 12, 24, 33, 43, 50, 52, 49, 40, 28, 13, -3, -18, -34, -51, -63, + -71, -72, -67, -59, -49, -37, -24, -10, 3, 16, 27, 37, 46, 50, 53, 51, + 49, 46, 43, 37, 32, 29, 25, 21, 17, 10, 4, -3, -8, -10, -11, -18, + -25, -29, -31, -34, -37, -40, -40, -37, -31, -25, -20, -13, 0, 17, 31, 41, + 48, 50, 49, 46, 36, 22, 8, -5, -20, -36, -49, -61, -67, -67, -61, -51, + -44, -36, -23, -9, 4, 13, 20, 30, 38, 46, 48, 47, 44, 44, 44, 46, + 42, 35, 31, 28, 24, 15, 5, -3, -6, -10, -18, -28, -35, -39, -41, -41, + -43, -45, -42, -36, -29, -23, -15, 1, 15, 28, 40, 47, 51, 51, 46, 37, + 27, 14, 2, -14, -29, -42, -49, -54, -62, -63, -57, -49, -41, -31, -21, -12, + -3, 6, 17, 25, 32, 40, 45, 49, 50, 48, 49, 49, 48, 44, 39, 34, + 26, 13, 4, -4, -11, -17, -23, -32, -41, -48, -48, -49, -48, -44, -39, -36, + -31, -21, -5, 13, 24, 35, 44, 51, 52, 47, 39, 30, 21, 8, -6, -18, + -34, -44, -50, -54, -59, -58, -53, -46, -38, -28, -18, -10, -4, 6, 16, 24, + 30, 37, 42, 48, 49, 47, 48, 51, 51, 49, 45, 35, 27, 17, 9, 0, + -12, -23, -32, -41, -48, -53, -55, -54, -53, -49, -43, -38, -27, -13, 5, 20, + 33, 44, 52, 58, 57, 50, 40, 29, 16, 5, -11, -29, -43, -53, -56, -62, + -65, -63, -54, -42, -33, -24, -16, -8, 3, 16, 23, 29, 33, 38, 44, 46, + 45, 43, 45, 49, 52, 48, 42, 37, 28, 19, 10, 0, -13, -25, -36, -42, + -47, -56, -58, -56, -53, -49, -48, -40, -26, -6, 13, 27, 39, 49, 59, 64, + 62, 53, 42, 29, 16, 2, -18, -37, -52, -60, -65, -71, -75, -68, -55, -41, + -30, -19, -10, 0, 14, 24, 33, 37, 38, 39, 42, 45, 45, 43, 45, 48, + 47, 46, 41, 35, 28, 19, 8, -6, -20, -30, -38, -44, -50, -55, -57, -59, + -57, -53, -46, -35, -19, 0, 17, 32, 45, 59, 66, 66, 59, 54, 46, 32, + 15, -5, -24, -43, -57, -65, -71, -76, -78, -71, -58, -41, -27, -16, -5, 5, + 15, 27, 37, 43, 43, 42, 42, 42, 43, 46, 46, 46, 45, 42, 41, 35, + 28, 18, 7, -6, -18, -29, -37, -44, -51, -56, -59, -61, -60, -55, -45, -33, + -18, -2, 18, 37, 50, 61, 67, 68, 65, 59, 47, 31, 10, -11, -32, -47, + -58, -71, -81, -86, -83, -70, -52, -36, -21, -9, 2, 13, 25, 35, 41, 44, + 43, 40, 39, 39, 40, 43, 43, 40, 39, 40, 40, 36, 28, 18, 9, -5, + -18, -28, -36, -44, -52, -57, -61, -64, -63, -56, -43, -27, -13, 6, 26, 44, + 56, 66, 71, 71, 64, 55, 42, 23, 3, -19, -38, -52, -66, -76, -82, -86, + -81, -67, -49, -32, -19, -8, 3, 15, 28, 36, 42, 43, 43, 41, 41, 40, + 40, 41, 40, 40, 41, 41, 36, 30, 24, 17, 10, -5, -19, -29, -37, -43, + -50, -57, -64, -66, -60, -50, -40, -28, -10, 12, 32, 45, 54, 59, 64, 67, + 63, 54, 35, 14, -6, -22, -35, -50, -64, -75, -82, -81, -73, -59, -46, -33, + -21, -8, 5, 19, 27, 33, 40, 44, 44, 42, 40, 42, 41, 40, 38, 39, + 38, 38, 35, 30, 21, 13, 4, -8, -16, -25, -35, -45, -53, -62, -65, -63, + -56, -47, -39, -25, -6, 15, 32, 45, 53, 58, 64, 65, 60, 48, 30, 9, + -7, -19, -31, -47, -60, -72, -79, -79, -73, -61, -50, -37, -24, -10, 3, 12, + 22, 33, 43, 47, 46, 44, 43, 45, 46, 45, 45, 43, 41, 38, 34, 26, + 16, 7, -2, -10, -19, -29, -39, -50, -59, -64, -62, -58, -51, -44, -34, -22, + -2, 16, 30, 41, 52, 56, 57, 58, 54, 42, 29, 13, 2, -12, -27, -42, + -56, -67, -71, -73, -70, -63, -55, -42, -26, -10, 2, 11, 20, 33, 41, 46, + 45, 43, 49, 53, 52, 48, 44, 43, 42, 38, 33, 22, 12, 4, -5, -13, + -23, -34, -43, -50, -57, -61, -60, -55, -49, -40, -29, -14, -2, 12, 25, 35, + 44, 51, 56, 56, 49, 39, 30, 20, 10, -2, -17, -32, -48, -60, -67, -74, + -77, -74, -66, -50, -36, -21, -9, 0, 14, 30, 43, 51, 53, 57, 62, 64, + 62, 58, 53, 48, 42, 36, 25, 12, 4, -4, -12, -21, -31, -38, -43, -45, + -47, -49, -47, -44, -40, -34, -28, -22, -11, 1, 11, 21, 28, 39, 49, 53, + 52, 49, 44, 38, 29, 16, -4, -24, -41, -57, -74, -86, -90, -86, -73, -59, + -44, -30, -16, 1, 21, 40, 54, 61, 66, 67, 71, 72, 65, 57, 49, 41, + 33, 24, 12, 1, -8, -12, -15, -22, -31, -37, -35, -31, -33, -36, -39, -40, + -38, -34, -32, -29, -24, -14, -2, 11, 24, 36, 48, 56, 61, 63, 59, 54, + 44, 27, 6, -19, -46, -68, -84, -94, -99, -98, -90, -72, -51, -30, -15, 1, + 22, 46, 64, 76, 78, 80, 81, 78, 72, 60, 45, 34, 24, 13, 0, -13, + -18, -18, -18, -22, -28, -29, -24, -19, -19, -26, -33, -38, -40, -40, -41, -42, + -41, -32, -15, 6, 22, 37, 50, 62, 74, 79, 76, 65, 50, 30, 6, -24, + -54, -78, -94, -106, -110, -103, -89, -69, -49, -29, -10, 11, 36, 57, 73, 78, + 80, 82, 83, 77, 66, 51, 37, 24, 14, 5, -5, -12, -17, -17, -17, -18, + -19, -17, -13, -13, -19, -28, -37, -44, -44, -48, -53, -59, -54, -35, -12, 11, + 29, 46, 61, 78, 88, 90, 84, 68, 49, 24, -6, -39, -71, -92, -104, -115, + -116, -108, -89, -66, -43, -21, 1, 24, 49, 68, 78, 82, 81, 81, 79, 71, + 56, 37, 24, 15, 6, -4, -9, -11, -9, -6, -6, -10, -11, -6, -4, -8, + -20, -33, -44, -55, -61, -65, -70, -68, -55, -31, -6, 15, 38, 61, 82, 97, + 101, 94, 80, 61, 37, 9, -25, -60, -88, -107, -119, -123, -116, -99, -77, -53, + -30, -5, 20, 47, 68, 80, 82, 82, 80, 77, 70, 57, 40, 23, 10, 3, + -2, -3, -4, -3, 2, 5, 7, 5, 5, 4, -4, -17, -32, -45, -60, -69, + -74, -79, -80, -70, -47, -20, 9, 32, 55, 76, 94, 104, 103, 91, 71, 46, + 16, -16, -48, -75, -97, -115, -121, -117, -101, -80, -57, -32, -8, 15, 39, 58, + 68, 73, 73, 73, 69, 61, 50, 39, 26, 15, 7, 4, 7, 12, 18, 19, + 20, 18, 17, 15, 10, -4, -20, -41, -57, -68, -77, -85, -91, -90, -76, -53, + -25, 2, 28, 55, 79, 97, 106, 104, 94, 77, 52, 22, -9, -39, -67, -92, + -111, -119, -115, -99, -79, -55, -33, -11, 15, 37, 55, 67, 71, 68, 61, 51, + 44, 40, 35, 24, 10, 3, 4, 13, 25, 36, 42, 41, 34, 29, 20, 12, + -2, -21, -43, -66, -84, -94, -96, -96, -93, -81, -55, -26, 4, 30, 56, 80, + 98, 107, 106, 95, 77, 53, 24, -8, -38, -64, -85, -101, -109, -109, -100, -80, + -55, -31, -8, 13, 31, 46, 56, 61, 59, 52, 43, 36, 30, 25, 16, 8, + 7, 11, 23, 37, 48, 56, 59, 56, 48, 33, 17, -5, -29, -54, -79, -96, + -106, -109, -105, -96, -82, -57, -25, 8, 38, 61, 79, 94, 103, 102, 92, 73, + 46, 19, -10, -36, -62, -81, -95, -101, -100, -90, -71, -47, -25, -3, 18, 31, + 41, 49, 53, 50, 42, 32, 21, 13, 9, 7, 8, 8, 12, 30, 49, 63, + 71, 76, 75, 67, 48, 25, -3, -30, -59, -87, -107, -120, -124, -117, -105, -89, + -63, -31, 5, 40, 63, 81, 92, 100, 100, 88, 69, 46, 20, -6, -31, -55, + -73, -87, -91, -88, -80, -64, -45, -22, 1, 16, 27, 34, 39, 45, 41, 31, + 20, 9, 4, 3, 1, 3, 6, 15, 32, 53, 71, 81, 85, 86, 78, 61, + 35, 3, -29, -63, -93, -113, -124, -128, -124, -110, -89, -64, -32, 5, 38, 62, + 80, 91, 98, 93, 80, 63, 42, 19, -5, -29, -51, -68, -78, -81, -79, -72, + -58, -40, -19, 0, 13, 21, 29, 35, 35, 29, 21, 14, 8, 2, -2, -3, + 1, 10, 20, 36, 56, 73, 84, 89, 89, 81, 65, 41, 6, -32, -63, -90, + -110, -124, -127, -123, -110, -89, -61, -30, 2, 33, 56, 71, 81, 86, 85, 74, + 58, 38, 17, -5, -21, -38, -52, -62, -69, -69, -64, -50, -34, -18, -5, 5, + 13, 23, 28, 27, 22, 15, 10, 6, 1, 0, -2, 2, 9, 23, 41, 56, + 72, 84, 88, 89, 81, 66, 45, 15, -20, -55, -84, -106, -119, -121, -116, -105, + -89, -67, -38, -7, 21, 44, 58, 69, 75, 74, 64, 50, 36, 22, 8, -10, + -26, -39, -47, -54, -56, -53, -47, -36, -25, -11, -2, 5, 14, 23, 24, 20, + 12, 7, 6, 6, 6, 4, 5, 10, 22, 39, 57, 72, 80, 82, 80, 73, + 62, 45, 18, -13, -48, -78, -96, -105, -105, -104, -97, -81, -64, -40, -15, 10, + 28, 40, 49, 54, 53, 49, 42, 31, 22, 13, 2, -9, -17, -22, -30, -38, + -40, -37, -33, -28, -22, -16, -10, -5, 5, 11, 11, 6, 3, 5, 11, 16, + 16, 18, 22, 29, 40, 54, 68, 75, 74, 72, 63, 49, 35, 15, -10, -37, + -63, -83, -94, -95, -89, -82, -73, -63, -46, -24, -2, 16, 25, 31, 35, 39, + 41, 37, 30, 22, 15, 11, 4, -3, -11, -18, -25, -31, -35, -33, -28, -22, + -18, -16, -13, -4, 5, 10, 11, 10, 5, 6, 14, 21, 23, 24, 27, 33, + 45, 59, 68, 72, 67, 57, 46, 34, 19, 0, -24, -49, -70, -81, -82, -77, + -70, -65, -60, -49, -34, -15, 2, 9, 13, 14, 18, 20, 21, 19, 18, 17, + 16, 15, 13, 10, 5, -3, -12, -20, -26, -28, -27, -24, -26, -25, -18, -9, + 3, 9, 10, 10, 11, 18, 27, 32, 33, 33, 35, 42, 51, 58, 59, 55, + 46, 36, 25, 16, 3, -15, -33, -50, -61, -65, -64, -59, -57, -56, -52, -42, + -29, -14, -5, -2, -3, 1, 8, 12, 13, 13, 16, 16, 18, 19, 19, 14, + 4, -3, -10, -19, -24, -24, -22, -20, -24, -23, -16, -2, 10, 16, 14, 13, + 16, 28, 35, 36, 35, 32, 33, 40, 45, 49, 47, 41, 31, 20, 12, 4, + -8, -16, -29, -41, -50, -53, -50, -49, -51, -51, -48, -40, -30, -20, -13, -13, + -12, -6, 2, 8, 12, 13, 16, 21, 26, 27, 23, 15, 8, 0, -10, -19, + -23, -24, -24, -26, -25, -21, -9, 5, 15, 19, 20, 22, 28, 36, 39, 38, + 36, 33, 33, 35, 37, 38, 36, 30, 20, 9, 4, -3, -10, -17, -26, -35, + -40, -45, -47, -51, -52, -49, -46, -39, -30, -23, -19, -17, -12, -5, 1, 4, + 7, 11, 18, 22, 22, 22, 20, 17, 12, 3, -8, -16, -18, -16, -17, -19, + -18, -12, 3, 13, 19, 20, 24, 29, 34, 35, 33, 32, 31, 31, 30, 26, + 24, 24, 25, 21, 14, 6, 0, -4, -5, -10, -19, -31, -37, -40, -47, -51, + -50, -49, -45, -39, -31, -25, -19, -12, -6, -3, 0, 2, 6, 13, 17, 18, + 16, 15, 16, 14, 7, -3, -10, -12, -13, -13, -14, -13, -6, 6, 18, 24, + 25, 26, 29, 33, 32, 26, 24, 23, 23, 22, 18, 14, 15, 21, 24, 22, + 14, 6, 4, 4, 1, -9, -21, -32, -41, -47, -50, -54, -54, -51, -47, -37, + -30, -21, -10, -3, 1, 4, 6, 7, 8, 7, 7, 7, 7, 6, 6, 5, + 2, -3, -8, -8, -6, -3, 1, 3, 9, 17, 25, 29, 32, 33, 29, 26, + 24, 23, 20, 17, 14, 11, 8, 8, 14, 21, 22, 17, 13, 9, 9, 7, + 1, -11, -25, -37, -44, -52, -53, -55, -55, -51, -43, -35, -24, -14, -4, 3, + 4, 4, 6, 7, 6, 3, -2, -2, 2, 6, 5, 1, -4, -8, -7, -5, + 3, 9, 9, 12, 17, 25, 32, 37, 37, 32, 25, 21, 19, 17, 15, 9, + 6, 6, 6, 8, 14, 23, 24, 20, 15, 14, 11, 3, -6, -18, -31, -44, + -53, -54, -57, -58, -55, -47, -37, -26, -16, -4, 7, 10, 10, 9, 7, 3, + -2, -6, -8, -6, -5, -4, -7, -10, -8, -6, 0, 6, 12, 16, 20, 27, + 33, 35, 35, 36, 34, 28, 21, 16, 10, 7, 7, 5, 3, 1, 5, 12, + 21, 25, 23, 17, 14, 13, 9, -3, -17, -30, -41, -50, -54, -59, -61, -55, + -46, -37, -26, -15, -4, 7, 14, 15, 12, 6, 1, -3, -7, -12, -14, -15, + -13, -12, -12, -12, -8, 0, 8, 15, 20, 25, 31, 36, 40, 41, 41, 38, + 33, 27, 21, 12, 4, 1, 0, -4, -5, -2, 5, 12, 17, 19, 19, 18, + 14, 11, 2, -9, -21, -32, -42, -49, -55, -57, -56, -49, -39, -30, -20, -8, + 3, 12, 17, 18, 12, 5, -2, -8, -14, -18, -21, -22, -21, -21, -19, -13, + -7, 4, 14, 24, 32, 39, 44, 48, 47, 44, 41, 38, 33, 27, 17, 7, + -3, -5, -5, -5, -5, -5, 3, 12, 17, 19, 16, 11, 7, 3, -6, -15, + -26, -36, -42, -48, -53, -54, -50, -40, -31, -22, -12, -2, 11, 19, 20, 13, + 6, 2, -5, -12, -21, -26, -29, -31, -30, -27, -21, -13, -2, 12, 25, 36, + 48, 57, 62, 60, 51, 46, 43, 37, 28, 15, 3, -8, -12, -14, -12, -10, + -7, -4, 8, 16, 20, 17, 14, 10, 6, -2, -12, -24, -32, -39, -45, -51, + -54, -52, -43, -32, -21, -12, -2, 11, 22, 28, 24, 13, 4, -6, -14, -23, + -32, -38, -41, -42, -39, -31, -20, -8, 6, 21, 37, 50, 63, 69, 68, 61, + 55, 48, 39, 29, 20, 9, -6, -15, -17, -13, -11, -7, -4, 3, 11, 13, + 16, 15, 10, 5, 0, -8, -15, -25, -31, -37, -42, -49, -52, -46, -37, -30, + -21, -12, 0, 14, 25, 28, 25, 15, 2, -11, -22, -29, -36, -44, -49, -49, + -43, -32, -18, -5, 13, 30, 50, 66, 74, 75, 71, 68, 61, 50, 37, 26, + 15, 3, -13, -22, -22, -20, -16, -14, -9, 1, 9, 11, 11, 9, 9, 9, + 6, -3, -15, -25, -32, -37, -41, -50, -53, -50, -41, -30, -20, -8, 6, 21, + 31, 33, 26, 15, 0, -12, -23, -34, -46, -56, -60, -54, -44, -31, -19, -2, + 21, 44, 66, 77, 81, 79, 75, 72, 63, 51, 35, 23, 10, -4, -16, -25, + -28, -26, -22, -16, -12, -7, -2, 4, 8, 10, 14, 14, 7, -3, -12, -20, + -28, -36, -42, -48, -53, -53, -43, -31, -19, -6, 12, 25, 31, 30, 26, 15, + -2, -17, -28, -40, -52, -60, -61, -53, -40, -25, -9, 11, 32, 56, 74, 84, + 85, 81, 76, 72, 61, 46, 29, 13, -2, -16, -23, -29, -33, -31, -25, -19, + -14, -8, 2, 10, 14, 18, 19, 17, 8, 1, -12, -24, -35, -42, -49, -54, + -57, -53, -43, -30, -13, 7, 22, 32, 34, 32, 26, 11, -8, -24, -40, -50, + -60, -66, -63, -53, -36, -17, 2, 23, 45, 67, 84, 90, 91, 85, 78, 72, + 62, 44, 24, 4, -9, -21, -32, -39, -41, -36, -30, -23, -17, -9, 2, 13, + 23, 27, 26, 19, 12, 2, -12, -26, -38, -47, -54, -59, -59, -53, -41, -23, + -5, 14, 28, 36, 36, 31, 21, 6, -13, -31, -46, -58, -66, -70, -65, -50, + -28, -7, 14, 35, 58, 76, 89, 96, 94, 90, 82, 72, 54, 35, 16, -5, + -21, -31, -40, -48, -47, -38, -28, -20, -13, 1, 15, 28, 33, 33, 27, 18, + 8, -6, -21, -37, -52, -64, -66, -65, -58, -47, -30, -9, 13, 28, 38, 43, + 40, 31, 15, -5, -24, -40, -57, -69, -75, -74, -65, -48, -26, -2, 24, 47, + 66, 83, 97, 102, 102, 101, 91, 73, 51, 28, 7, -15, -33, -45, -56, -60, + -54, -42, -28, -17, -4, 13, 26, 36, 38, 36, 29, 16, 2, -14, -34, -52, + -62, -66, -65, -63, -53, -36, -15, 9, 27, 36, 41, 40, 35, 25, 8, -16, + -37, -55, -68, -77, -81, -75, -60, -37, -12, 12, 35, 57, 75, 94, 105, 107, + 103, 97, 84, 64, 41, 18, -6, -25, -40, -51, -57, -56, -46, -32, -19, -6, + 7, 20, 30, 34, 32, 24, 12, 0, -17, -33, -47, -60, -65, -64, -58, -46, + -31, -12, 8, 26, 37, 43, 44, 41, 28, 11, -12, -31, -49, -67, -81, -87, + -85, -72, -52, -30, -6, 21, 45, 69, 87, 101, 110, 113, 110, 100, 77, 51, + 27, 8, -11, -32, -49, -59, -59, -53, -41, -27, -11, 3, 14, 24, 28, 28, + 24, 17, 5, -15, -32, -45, -54, -61, -58, -54, -44, -32, -13, 8, 26, 37, + 41, 40, 36, 29, 16, -3, -24, -47, -66, -81, -89, -88, -76, -58, -37, -16, + 10, 34, 58, 78, 94, 106, 111, 107, 97, 81, 58, 37, 17, 0, -17, -33, + -45, -51, -48, -38, -26, -14, -3, 9, 16, 19, 17, 14, 10, 0, -15, -30, + -42, -49, -52, -49, -44, -37, -25, -8, 9, 21, 29, 32, 35, 33, 29, 19, + 1, -18, -38, -58, -75, -85, -85, -79, -70, -52, -29, -6, 20, 44, 67, 89, + 101, 110, 114, 107, 93, 72, 49, 28, 10, -9, -25, -38, -48, -49, -42, -31, + -20, -11, 0, 9, 13, 12, 7, 5, 0, -11, -24, -36, -42, -44, -43, -38, + -28, -16, -4, 8, 16, 22, 29, 30, 29, 24, 13, 2, -14, -32, -51, -68, + -79, -83, -77, -69, -56, -41, -19, 6, 31, 53, 74, 90, 101, 108, 109, 101, + 83, 60, 38, 24, 9, -10, -25, -36, -40, -37, -29, -21, -13, -8, 0, 3, + 0, -5, -6, -8, -16, -27, -35, -39, -40, -33, -27, -21, -11, 3, 14, 21, + 24, 27, 26, 22, 19, 13, 3, -14, -32, -53, -66, -74, -80, -80, -75, -63, + -47, -28, -4, 19, 41, 66, 85, 99, 105, 106, 104, 95, 76, 51, 29, 13, + 2, -12, -27, -36, -38, -32, -22, -15, -12, -8, -3, -4, -9, -12, -14, -18, + -26, -31, -35, -36, -29, -20, -10, -2, 7, 16, 25, 25, 24, 19, 15, 10, + 4, -4, -16, -30, -44, -57, -67, -73, -75, -70, -60, -48, -34, -16, 5, 27, + 51, 71, 85, 92, 99, 101, 95, 82, 64, 44, 28, 14, 1, -12, -22, -28, + -27, -22, -18, -17, -15, -15, -15, -21, -23, -25, -24, -27, -31, -34, -30, -21, + -6, 7, 13, 17, 22, 27, 28, 24, 16, 7, -3, -10, -17, -27, -35, -43, + -50, -58, -68, -70, -65, -53, -42, -32, -22, -4, 15, 36, 54, 70, 83, 89, + 92, 91, 82, 68, 54, 42, 29, 14, 2, -9, -17, -21, -22, -20, -21, -20, + -23, -26, -30, -32, -32, -29, -27, -28, -30, -26, -15, 0, 15, 25, 25, 25, + 26, 27, 21, 11, 0, -9, -17, -24, -30, -38, -45, -47, -49, -55, -59, -56, + -48, -39, -28, -20, -9, 7, 26, 44, 55, 65, 72, 79, 80, 77, 66, 57, + 49, 41, 30, 19, 7, -2, -7, -12, -17, -22, -25, -29, -33, -36, -39, -41, + -36, -29, -26, -26, -22, -11, 2, 17, 28, 32, 31, 29, 28, 23, 11, -2, + -9, -17, -24, -36, -44, -48, -49, -50, -53, -54, -54, -47, -36, -25, -17, -7, + 7, 21, 36, 47, 55, 63, 70, 72, 69, 60, 52, 46, 42, 34, 23, 15, + 8, 3, 0, -7, -14, -21, -24, -27, -32, -39, -44, -43, -37, -29, -25, -23, + -16, -2, 14, 26, 32, 33, 32, 30, 25, 16, 4, -6, -16, -25, -36, -45, + -50, -54, -51, -51, -54, -54, -48, -36, -23, -15, -6, 5, 17, 31, 42, 51, + 59, 62, 63, 61, 56, 51, 43, 40, 38, 28, 20, 13, 9, 7, 2, -8, + -16, -23, -27, -31, -36, -40, -43, -39, -31, -23, -20, -15, -4, 11, 24, 31, + 32, 31, 30, 25, 17, 7, -3, -13, -23, -36, -48, -56, -58, -57, -53, -50, + -52, -51, -40, -25, -12, 0, 7, 16, 25, 36, 49, 58, 60, 59, 57, 54, + 49, 43, 36, 31, 26, 18, 13, 10, 6, 4, 0, -6, -12, -19, -22, -26, + -31, -35, -35, -32, -27, -22, -16, -7, 4, 13, 21, 26, 30, 29, 27, 22, + 15, 4, -7, -19, -31, -44, -55, -59, -59, -58, -54, -52, -49, -41, -28, -14, + 0, 10, 18, 26, 33, 44, 50, 53, 51, 50, 48, 46, 41, 37, 30, 24, + 21, 18, 15, 13, 8, 4, 0, -6, -9, -14, -19, -23, -27, -33, -33, -31, + -25, -19, -11, -3, 3, 11, 20, 28, 31, 28, 22, 14, 8, -3, -15, -29, + -40, -49, -57, -62, -60, -56, -50, -47, -42, -32, -18, -3, 11, 20, 25, 29, + 35, 43, 49, 51, 47, 43, 41, 37, 33, 29, 24, 18, 15, 14, 13, 11, + 8, 5, 1, 0, -5, -11, -19, -23, -24, -25, -25, -26, -22, -15, -9, -3, + 4, 12, 19, 25, 26, 24, 17, 11, 2, -11, -26, -37, -45, -53, -58, -59, + -57, -53, -47, -42, -35, -25, -10, 5, 15, 19, 22, 29, 37, 45, 48, 47, + 44, 44, 43, 40, 33, 24, 19, 14, 13, 12, 8, 2, -2, 1, 1, 1, + -4, -12, -15, -14, -13, -14, -18, -18, -15, -12, -8, -5, 2, 10, 18, 21, + 20, 15, 10, 3, -7, -18, -31, -42, -47, -50, -53, -57, -57, -51, -42, -34, + -25, -15, -5, 7, 16, 22, 30, 35, 40, 43, 42, 39, 39, 38, 38, 31, + 22, 16, 14, 15, 17, 16, 12, 6, 4, 5, 7, 6, 0, -8, -12, -13, + -15, -19, -21, -20, -17, -14, -11, -6, 2, 10, 18, 21, 21, 19, 11, -2, + -17, -29, -37, -42, -46, -52, -55, -58, -52, -42, -34, -24, -15, -5, 5, 12, + 17, 24, 32, 37, 37, 36, 33, 33, 35, 35, 32, 26, 22, 16, 17, 19, + 19, 14, 7, 5, 5, 6, 5, 0, -7, -10, -9, -6, -7, -13, -17, -15, + -11, -8, -7, -6, 1, 7, 12, 13, 11, 7, 0, -12, -25, -35, -40, -42, + -43, -44, -47, -49, -43, -34, -22, -12, -7, 0, 4, 9, 17, 25, 31, 33, + 33, 31, 30, 27, 28, 30, 29, 25, 20, 17, 20, 24, 22, 17, 11, 10, + 9, 9, 5, -6, -11, -13, -9, -5, -9, -16, -19, -16, -9, -6, -6, -2, + 4, 8, 11, 11, 6, -4, -11, -21, -34, -39, -41, -40, -38, -40, -44, -38, + -28, -17, -10, -6, -5, -3, 3, 10, 15, 17, 20, 23, 26, 25, 24, 26, + 28, 30, 30, 28, 25, 24, 23, 25, 22, 18, 14, 9, 5, 0, -7, -12, + -13, -12, -7, -6, -9, -12, -10, -4, 2, 2, 3, 3, 3, 6, 7, 3, + -9, -21, -28, -35, -40, -40, -37, -37, -36, -36, -29, -22, -11, -3, 2, 3, + 0, 1, 3, 6, 9, 10, 10, 10, 13, 16, 21, 24, 29, 31, 33, 33, + 33, 32, 30, 27, 23, 16, 12, 7, -2, -7, -14, -19, -16, -10, -5, -7, + -9, -9, -6, 2, 6, 8, 7, 4, 3, 1, -3, -9, -16, -25, -34, -39, + -41, -37, -33, -31, -31, -29, -22, -12, -4, 2, 7, 5, 1, -2, 0, 4, + 4, 2, 2, 5, 10, 14, 19, 24, 28, 32, 36, 38, 36, 34, 31, 27, + 23, 18, 11, 3, -5, -12, -15, -15, -11, -6, -5, -6, -8, -7, -3, 1, + 4, 6, 3, -2, -7, -9, -12, -19, -24, -30, -34, -36, -35, -32, -29, -26, + -22, -16, -10, -3, 4, 8, 9, 4, 0, -3, 0, 1, -5, -7, -5, 1, + 7, 13, 14, 17, 27, 35, 38, 37, 35, 33, 31, 29, 25, 19, 11, 3, + 0, -6, -10, -10, -7, -5, -5, -7, -7, -6, -3, 1, 4, 3, 0, -8, + -15, -18, -20, -23, -27, -30, -32, -33, -29, -28, -25, -20, -16, -13, -6, 1, + 6, 7, 4, 0, -5, -5, -5, -6, -7, -6, -2, 5, 10, 15, 20, 25, + 32, 34, 34, 34, 32, 29, 24, 22, 19, 14, 9, 6, 4, 2, 0, 0, + 2, 2, -2, -4, -6, -5, -5, -4, -4, -7, -12, -19, -25, -26, -26, -26, + -26, -29, -28, -28, -25, -22, -18, -14, -10, -5, 0, 3, 4, 5, 4, 3, + -2, -7, -10, -12, -9, -6, 0, 6, 11, 14, 16, 22, 30, 33, 34, 29, + 25, 23, 21, 22, 22, 20, 18, 16, 14, 13, 11, 11, 11, 6, -4, -12, + -16, -17, -16, -13, -16, -22, -26, -30, -30, -25, -21, -18, -17, -19, -18, -20, + -19, -15, -13, -9, -7, -6, -5, -2, 3, 5, 4, 0, -5, -8, -6, -6, + -6, -2, 4, 9, 11, 13, 15, 19, 23, 25, 22, 19, 16, 17, 20, 21, + 22, 23, 24, 25, 24, 23, 22, 21, 16, 7, -4, -14, -21, -23, -24, -24, + -28, -34, -38, -36, -31, -21, -13, -9, -8, -10, -11, -12, -14, -13, -12, -9, + -10, -12, -11, -9, -4, 3, 4, 1, -3, -4, 1, 4, 7, 10, 10, 11, + 12, 11, 8, 9, 11, 13, 11, 5, 4, 11, 20, 26, 29, 32, 35, 39, + 39, 34, 30, 23, 15, 5, -10, -23, -31, -34, -32, -33, -37, -42, -41, -32, + -21, -11, -6, -3, -3, -6, -8, -11, -14, -15, -14, -14, -14, -19, -20, -15, + -7, 0, -2, -3, 0, 4, 10, 17, 19, 18, 18, 20, 18, 11, 5, 1, + -2, -4, -7, -8, -4, 4, 14, 24, 32, 38, 46, 51, 52, 46, 37, 28, + 19, 5, -12, -29, -39, -44, -46, -46, -50, -48, -39, -29, -14, -4, 6, 9, + 8, 6, 0, -8, -13, -15, -18, -22, -28, -30, -26, -18, -9, -7, -4, 2, + 10, 18, 24, 26, 26, 23, 22, 21, 14, 3, -5, -9, -14, -16, -16, -11, + -4, 6, 14, 24, 37, 50, 58, 58, 53, 45, 36, 28, 17, 1, -18, -36, + -47, -53, -54, -53, -51, -43, -33, -20, -8, 5, 15, 17, 13, 5, -4, -12, + -14, -18, -23, -30, -34, -32, -24, -15, -10, -6, -3, 7, 18, 27, 32, 33, + 30, 28, 24, 19, 12, 2, -10, -18, -24, -26, -23, -16, -6, 4, 12, 25, + 39, 53, 60, 60, 58, 51, 42, 30, 16, 0, -20, -37, -49, -57, -61, -57, + -50, -40, -29, -17, -4, 9, 17, 17, 11, 5, -3, -8, -13, -21, -30, -35, + -34, -29, -22, -16, -11, -6, 1, 12, 24, 34, 39, 39, 35, 28, 21, 16, + 8, -3, -16, -29, -35, -34, -26, -16, -9, 1, 14, 30, 46, 56, 60, 62, + 59, 57, 46, 32, 15, -2, -17, -35, -51, -61, -61, -55, -46, -39, -30, -19, + -4, 10, 14, 13, 7, 3, -2, -6, -15, -24, -31, -33, -31, -26, -23, -19, + -11, -2, 6, 17, 30, 38, 41, 39, 34, 25, 18, 14, 6, -9, -24, -34, + -38, -34, -28, -18, -9, 0, 14, 32, 44, 52, 58, 63, 66, 59, 45, 31, + 18, 4, -17, -36, -53, -60, -59, -54, -46, -39, -30, -18, -3, 6, 8, 6, + 3, 1, -3, -11, -22, -29, -28, -23, -20, -20, -18, -10, -2, 7, 17, 27, + 34, 37, 38, 33, 26, 19, 15, 11, 0, -17, -31, -39, -40, -34, -27, -20, + -11, 1, 16, 31, 43, 52, 59, 67, 70, 62, 47, 32, 19, 4, -18, -39, + -53, -60, -57, -51, -44, -37, -30, -17, -6, 1, 2, 1, 0, -2, -7, -15, + -23, -27, -25, -19, -16, -15, -12, -4, 5, 15, 25, 33, 37, 34, 31, 27, + 22, 17, 11, 2, -11, -25, -35, -41, -41, -34, -23, -13, -4, 6, 18, 31, + 43, 54, 61, 65, 62, 53, 44, 34, 22, 2, -20, -38, -47, -50, -47, -43, + -42, -41, -32, -19, -13, -11, -10, -7, -5, -5, -9, -14, -18, -17, -12, -9, + -8, -6, 1, 6, 12, 16, 21, 25, 25, 23, 19, 18, 14, 11, 8, 0, + -10, -23, -34, -36, -32, -24, -16, -12, -6, 4, 15, 30, 42, 52, 59, 60, + 58, 53, 46, 39, 27, 5, -19, -35, -43, -44, -43, -45, -49, -48, -39, -31, + -27, -24, -19, -11, -6, -3, -4, -6, -8, -5, 3, 5, 7, 6, 7, 9, + 12, 13, 15, 14, 12, 11, 11, 9, 8, 5, 4, 0, -12, -22, -28, -26, + -21, -17, -13, -10, -5, 4, 14, 22, 32, 44, 56, 61, 59, 56, 48, 38, + 25, 7, -10, -24, -33, -38, -44, -50, -51, -47, -41, -41, -41, -37, -26, -14, + -6, 0, -2, -3, 5, 13, 19, 21, 16, 12, 9, 9, 10, 7, 3, 2, + 2, 1, -2, 0, 3, 4, 1, -4, -12, -16, -16, -9, -9, -10, -9, -5, + 2, 7, 11, 17, 27, 39, 51, 54, 52, 52, 49, 42, 28, 10, -4, -15, + -25, -36, -48, -56, -58, -56, -52, -53, -54, -45, -28, -11, -2, 3, 8, 15, + 24, 30, 34, 30, 22, 16, 12, 6, -4, -9, -9, -8, -12, -14, -12, -5, + 3, 4, 2, -3, -4, 0, 3, 2, -4, -6, -6, -5, -4, -5, -3, 8, + 21, 36, 44, 50, 55, 58, 55, 45, 33, 20, 5, -11, -27, -43, -55, -60, + -61, -62, -64, -66, -58, -40, -20, -6, 3, 8, 16, 26, 34, 39, 38, 30, + 21, 11, 2, -9, -14, -13, -13, -15, -16, -14, -6, 1, 4, 4, 3, 4, + 7, 10, 10, 5, -3, -7, -8, -9, -12, -14, -11, 0, 13, 28, 40, 51, + 58, 61, 60, 56, 47, 33, 15, -8, -28, -44, -55, -62, -72, -81, -83, -74, + -58, -39, -21, -6, 8, 18, 30, 40, 47, 49, 44, 33, 19, 6, -6, -14, + -19, -23, -26, -24, -19, -13, -5, -2, 2, 5, 8, 11, 14, 13, 9, 2, + -4, -8, -12, -15, -19, -18, -13, -3, 14, 30, 44, 53, 62, 66, 66, 59, + 48, 33, 12, -10, -31, -46, -58, -71, -79, -84, -81, -71, -54, -34, -14, 1, + 14, 26, 37, 44, 48, 49, 41, 29, 12, -3, -13, -17, -19, -24, -26, -22, + -16, -8, -3, -2, 3, 6, 10, 13, 12, 10, 6, 2, -4, -11, -18, -22, + -22, -19, -14, -3, 13, 30, 46, 61, 68, 71, 70, 64, 52, 32, 10, -12, + -31, -51, -67, -81, -88, -91, -84, -69, -51, -32, -12, 8, 25, 37, 43, 47, + 52, 50, 40, 23, 5, -8, -13, -18, -23, -28, -26, -19, -12, -6, -4, -2, + 2, 6, 11, 11, 5, 3, 4, 1, -9, -17, -21, -23, -22, -19, -14, 0, + 17, 37, 54, 65, 70, 75, 76, 67, 50, 30, 6, -15, -35, -56, -75, -88, + -93, -88, -78, -64, -47, -26, -3, 17, 31, 37, 42, 46, 48, 42, 27, 10, + 0, -3, -7, -14, -21, -21, -13, -4, 1, -2, -3, 1, 5, 7, 4, -3, + -8, -7, -7, -14, -19, -22, -23, -21, -20, -16, -6, 12, 32, 51, 63, 70, + 76, 78, 75, 63, 44, 20, -5, -26, -46, -67, -83, -94, -93, -83, -69, -55, + -40, -17, 8, 25, 34, 38, 43, 48, 45, 35, 20, 8, 2, 3, -2, -12, + -18, -15, -8, 0, 0, -5, -6, -4, -3, -5, -11, -15, -14, -12, -13, -16, + -19, -20, -20, -16, -10, -2, 11, 24, 42, 57, 64, 70, 73, 72, 64, 48, + 26, 4, -15, -35, -50, -68, -81, -88, -81, -68, -55, -44, -29, -10, 9, 22, + 25, 30, 37, 38, 35, 24, 14, 11, 13, 14, 9, 0, -5, -3, 3, 4, + -2, -10, -15, -15, -15, -19, -25, -24, -20, -18, -19, -20, -18, -16, -13, -9, + 1, 12, 25, 37, 53, 63, 69, 74, 73, 69, 56, 37, 15, -6, -25, -42, + -59, -75, -82, -81, -72, -61, -50, -35, -17, -2, 13, 20, 27, 31, 34, 34, + 28, 19, 14, 13, 15, 14, 8, 4, 3, 5, 5, 1, -6, -15, -18, -22, + -27, -33, -34, -31, -25, -24, -20, -19, -17, -10, -2, 9, 18, 28, 39, 51, + 60, 67, 71, 72, 67, 53, 35, 16, -4, -21, -40, -57, -70, -76, -74, -65, + -55, -44, -34, -21, -7, 6, 15, 18, 20, 24, 24, 21, 16, 15, 16, 17, + 17, 16, 13, 12, 13, 13, 9, 0, -12, -17, -22, -31, -40, -43, -40, -35, + -30, -26, -24, -20, -11, -2, 9, 19, 29, 39, 46, 54, 60, 66, 67, 66, + 58, 41, 21, 5, -11, -29, -47, -62, -68, -68, -65, -57, -49, -39, -27, -13, + -2, 6, 11, 18, 23, 24, 21, 19, 19, 21, 21, 18, 15, 11, 13, 15, + 15, 10, -2, -8, -14, -21, -30, -39, -44, -44, -40, -33, -29, -27, -21, -12, + -3, 6, 16, 28, 40, 48, 54, 56, 59, 61, 62, 57, 44, 28, 12, -3, + -22, -40, -55, -64, -63, -61, -56, -51, -41, -29, -15, -6, 1, 8, 15, 20, + 20, 18, 17, 18, 23, 23, 20, 17, 15, 18, 20, 20, 15, 4, -5, -11, + -20, -32, -43, -49, -48, -43, -36, -32, -29, -21, -13, 0, 11, 20, 30, 38, + 46, 50, 51, 53, 56, 53, 48, 41, 30, 19, 5, -10, -26, -42, -50, -56, + -57, -56, -53, -46, -38, -27, -18, -10, -2, 8, 16, 19, 24, 24, 22, 23, + 25, 23, 17, 16, 15, 16, 14, 10, 3, -5, -11, -20, -28, -35, -42, -44, + -42, -35, -29, -25, -19, -11, 0, 10, 20, 26, 31, 38, 45, 48, 46, 46, + 44, 41, 37, 30, 22, 13, 1, -15, -27, -36, -44, -49, -51, -52, -49, -44, + -37, -27, -20, -12, 1, 10, 19, 23, 28, 29, 28, 28, 24, 19, 17, 16, + 15, 14, 10, 4, -3, -10, -15, -23, -31, -36, -41, -41, -39, -32, -24, -19, + -11, -3, 5, 15, 24, 31, 36, 42, 45, 44, 41, 37, 33, 31, 29, 23, + 14, 2, -8, -16, -22, -31, -40, -44, -46, -46, -46, -44, -37, -28, -20, -10, + 2, 11, 20, 28, 32, 32, 29, 26, 22, 19, 17, 14, 12, 11, 8, 2, + -5, -14, -20, -24, -30, -34, -37, -38, -36, -30, -21, -14, -6, 2, 11, 19, + 26, 30, 34, 41, 44, 42, 38, 32, 27, 25, 24, 21, 11, 1, -9, -16, + -25, -34, -40, -43, -45, -48, -50, -49, -40, -27, -15, -6, 4, 15, 27, 36, + 40, 37, 32, 27, 22, 15, 11, 10, 8, 6, 0, -8, -14, -16, -17, -18, + -24, -31, -33, -33, -27, -22, -17, -10, -4, 6, 13, 17, 22, 27, 33, 38, + 39, 37, 35, 33, 31, 27, 23, 19, 11, 3, -7, -20, -30, -38, -42, -42, + -46, -53, -58, -53, -41, -27, -13, -2, 10, 19, 30, 39, 43, 38, 29, 23, + 18, 12, 8, 6, 6, 4, -3, -8, -12, -13, -10, -12, -17, -24, -25, -23, + -23, -23, -19, -12, -4, 2, 5, 9, 14, 22, 32, 37, 39, 39, 37, 37, + 33, 28, 27, 21, 12, 0, -14, -25, -33, -38, -43, -48, -54, -60, -59, -48, + -36, -20, -8, 2, 12, 26, 39, 44, 40, 32, 27, 23, 16, 8, 3, 3, + 2, 1, -4, -9, -9, -6, -6, -8, -13, -16, -18, -21, -22, -21, -16, -7, + -2, 0, -2, 2, 13, 25, 30, 34, 34, 34, 34, 33, 33, 31, 26, 21, + 11, -3, -15, -25, -31, -37, -48, -57, -62, -63, -56, -46, -35, -25, -12, 5, + 18, 32, 40, 40, 36, 32, 29, 22, 15, 7, 3, 0, 0, 0, 1, -2, + -2, 0, 0, -3, -4, -7, -13, -22, -28, -25, -17, -10, -10, -11, -10, -4, + 12, 26, 36, 39, 40, 41, 40, 37, 35, 33, 28, 19, 3, -11, -22, -30, + -37, -46, -56, -63, -65, -59, -52, -43, -29, -17, -4, 10, 23, 32, 36, 36, + 34, 29, 24, 19, 12, 5, -2, 0, 4, 7, 10, 9, 6, 5, 5, 5, + 0, -10, -20, -26, -29, -26, -20, -18, -19, -17, -9, 3, 16, 28, 36, 40, + 42, 43, 41, 40, 36, 33, 26, 16, 3, -10, -21, -31, -42, -53, -61, -65, + -63, -58, -52, -41, -31, -18, -4, 9, 21, 26, 29, 30, 31, 31, 28, 21, + 12, 6, 5, 10, 13, 13, 14, 9, 8, 7, 5, 0, -8, -17, -24, -28, + -27, -23, -17, -14, -12, -8, 2, 15, 26, 32, 36, 39, 38, 37, 36, 33, + 28, 21, 16, 10, 1, -13, -25, -34, -41, -50, -59, -62, -62, -53, -44, -37, + -28, -19, -6, 7, 14, 18, 22, 26, 28, 28, 21, 13, 6, 6, 15, 19, + 21, 20, 20, 18, 16, 13, 7, -3, -12, -21, -27, -31, -30, -24, -15, -11, + -8, 0, 10, 23, 29, 32, 34, 34, 34, 33, 32, 27, 23, 20, 17, 10, + -2, -15, -25, -34, -43, -52, -61, -63, -58, -49, -43, -41, -33, -22, -9, 3, + 11, 17, 21, 26, 30, 28, 23, 17, 15, 18, 22, 22, 20, 21, 21, 18, + 12, 4, -5, -11, -16, -22, -28, -32, -24, -14, -7, -5, 1, 11, 20, 27, + 30, 26, 25, 29, 30, 29, 22, 17, 18, 22, 20, 9, -8, -18, -25, -31, + -40, -53, -60, -58, -54, -46, -45, -42, -32, -20, -10, -2, 5, 12, 19, 25, + 27, 22, 18, 18, 21, 24, 25, 22, 24, 26, 27, 22, 10, 0, -7, -9, + -12, -21, -28, -28, -20, -9, -4, -2, 5, 14, 22, 24, 21, 15, 18, 24, + 28, 24, 19, 21, 26, 30, 22, 7, -6, -15, -23, -34, -50, -61, -66, -61, + -52, -50, -49, -45, -36, -22, -10, 1, 11, 15, 20, 26, 26, 24, 21, 21, + 27, 28, 24, 21, 22, 26, 24, 16, 5, -5, -7, -5, -11, -17, -22, -17, + -7, 0, 1, 4, 9, 16, 19, 18, 13, 12, 16, 22, 24, 23, 23, 28, + 33, 27, 16, 2, -12, -23, -33, -45, -57, -64, -64, -55, -51, -52, -49, -39, + -25, -13, -6, 1, 6, 12, 16, 18, 20, 18, 20, 25, 28, 28, 29, 31, + 36, 37, 28, 15, 7, 3, 0, -4, -14, -21, -23, -16, -7, -4, -3, 1, + 10, 16, 17, 10, 7, 9, 18, 24, 24, 24, 28, 34, 34, 26, 12, -3, + -15, -26, -40, -53, -61, -65, -62, -59, -57, -55, -49, -39, -27, -18, -6, 3, + 8, 14, 17, 21, 25, 26, 27, 28, 30, 32, 32, 31, 32, 28, 22, 14, + 6, 3, 0, -3, -8, -12, -12, -5, 0, 2, 1, 3, 6, 11, 11, 7, + 4, 6, 13, 20, 24, 28, 31, 32, 28, 19, 7, -7, -20, -32, -44, -53, + -58, -58, -55, -54, -53, -50, -46, -40, -27, -14, -6, -6, -5, 0, 8, 16, + 20, 23, 25, 30, 37, 42, 43, 41, 39, 34, 28, 18, 9, 4, 3, 0, + -10, -13, -12, -10, -5, 1, 1, 0, 4, 8, 7, 5, 6, 11, 19, 23, + 27, 32, 33, 27, 20, 10, 0, -15, -30, -41, -49, -52, -54, -55, -55, -53, + -50, -45, -40, -32, -24, -16, -11, -10, -8, -3, 6, 13, 17, 21, 29, 37, + 43, 48, 47, 43, 38, 35, 30, 19, 11, 7, 2, -5, -9, -9, -5, 1, + 1, 0, -2, 1, 3, 6, 5, 4, 5, 10, 16, 20, 24, 27, 25, 18, + 10, 3, -9, -21, -31, -39, -44, -47, -47, -44, -46, -48, -48, -45, -39, -36, + -30, -26, -25, -23, -19, -9, 4, 14, 24, 32, 41, 48, 54, 56, 57, 52, + 47, 40, 28, 17, 10, 4, -3, -8, -10, -8, -6, -5, -5, -5, -3, 0, + 3, 4, 4, 5, 7, 12, 19, 26, 27, 24, 18, 12, 5, -3, -12, -24, + -34, -43, -46, -48, -48, -46, -46, -45, -44, -42, -38, -33, -29, -26, -26, -22, + -14, -5, 5, 13, 23, 32, 40, 47, 52, 56, 57, 55, 52, 47, 36, 27, + 19, 11, 3, -5, -6, -8, -10, -13, -15, -14, -13, -11, -6, 1, 4, 7, + 11, 17, 21, 26, 28, 26, 19, 10, 2, -7, -17, -26, -36, -41, -45, -47, + -45, -44, -44, -41, -39, -40, -40, -37, -33, -34, -32, -26, -18, -9, 2, 12, + 26, 40, 47, 56, 63, 66, 66, 63, 60, 53, 40, 27, 14, 3, -8, -11, + -12, -15, -19, -19, -18, -15, -12, -8, 0, 6, 11, 13, 14, 17, 23, 29, + 27, 18, 9, 1, -7, -16, -25, -35, -43, -49, -47, -44, -43, -42, -40, -36, + -34, -33, -33, -33, -35, -34, -30, -23, -16, -9, 2, 14, 27, 39, 49, 58, + 66, 69, 68, 66, 61, 53, 45, 32, 18, 1, -11, -14, -17, -17, -20, -23, + -21, -17, -13, -3, 4, 10, 13, 14, 17, 18, 21, 24, 22, 15, 6, -4, + -12, -22, -28, -38, -49, -51, -48, -45, -43, -40, -38, -36, -35, -34, -33, -33, + -34, -35, -33, -29, -18, -6, 6, 19, 33, 46, 59, 71, 78, 78, 78, 74, + 67, 54, 39, 22, 6, -8, -16, -22, -25, -25, -26, -22, -17, -12, -3, 6, + 15, 17, 16, 14, 14, 16, 17, 16, 13, 6, -2, -11, -20, -27, -34, -43, + -49, -48, -44, -41, -39, -36, -33, -34, -33, -34, -32, -33, -35, -35, -30, -21, + -11, 0, 9, 23, 38, 52, 65, 74, 76, 76, 74, 70, 62, 47, 28, 13, + 2, -6, -14, -21, -23, -20, -18, -16, -13, -7, 1, 8, 10, 11, 9, 11, + 11, 13, 15, 16, 13, 8, -2, -11, -19, -27, -37, -47, -52, -51, -48, -46, + -43, -40, -38, -36, -35, -35, -38, -38, -33, -27, -21, -16, -7, 6, 21, 36, + 49, 61, 70, 75, 79, 78, 73, 62, 49, 35, 22, 8, -3, -12, -17, -20, + -18, -14, -13, -15, -12, -5, 4, 7, 8, 8, 9, 8, 9, 11, 14, 14, + 10, 4, -6, -15, -25, -35, -41, -48, -54, -53, -47, -42, -38, -37, -35, -31, + -31, -30, -30, -29, -26, -24, -19, -12, -2, 10, 22, 35, 48, 60, 70, 76, + 76, 73, 67, 57, 44, 28, 14, 5, -3, -8, -13, -14, -13, -10, -11, -11, + -8, -2, 4, 6, 5, 5, 5, 6, 10, 11, 10, 8, 4, -2, -9, -15, + -24, -35, -44, -50, -52, -49, -45, -42, -42, -40, -37, -37, -37, -33, -29, -26, + -24, -21, -16, -7, 6, 18, 30, 41, 54, 66, 75, 77, 79, 76, 67, 53, + 37, 21, 8, 2, -5, -10, -14, -14, -12, -12, -11, -10, -5, 4, 7, 4, + 1, 2, 6, 9, 9, 7, 5, 4, 0, -7, -14, -23, -32, -37, -43, -48, + -50, -51, -47, -42, -34, -32, -32, -34, -32, -26, -21, -18, -17, -14, -11, -4, + 5, 13, 24, 40, 55, 67, 72, 74, 76, 75, 67, 51, 37, 23, 11, 4, + -4, -11, -15, -17, -17, -16, -14, -13, -8, -2, 1, 1, 1, 3, 5, 9, + 7, 5, 4, 4, 3, -5, -14, -24, -32, -38, -41, -47, -52, -53, -49, -41, + -35, -34, -35, -33, -29, -24, -19, -13, -10, -9, -7, -2, 8, 17, 29, 43, + 56, 67, 74, 75, 75, 72, 64, 53, 38, 23, 13, 4, -5, -12, -16, -20, + -21, -18, -16, -14, -11, -8, -5, -3, 0, 2, 6, 6, 6, 5, 5, 6, + 3, -6, -19, -31, -37, -41, -45, -50, -52, -53, -48, -39, -32, -30, -26, -25, + -22, -16, -10, -7, -11, -10, -8, -2, 6, 17, 31, 45, 58, 68, 78, 80, + 76, 70, 65, 55, 37, 18, 5, -4, -10, -19, -25, -26, -24, -18, -13, -11, + -9, -6, -2, 4, 6, 5, 4, 3, 4, 2, 1, -3, -4, -11, -20, -29, + -38, -43, -45, -48, -51, -48, -44, -39, -35, -34, -31, -30, -25, -15, -8, -8, + -10, -8, 1, 11, 22, 33, 42, 54, 66, 76, 80, 75, 70, 66, 59, 42, + 23, 6, -4, -9, -17, -22, -27, -25, -19, -9, -7, -8, -5, 0, 4, 5, + 2, -2, -5, -5, -4, -6, -7, -6, -10, -16, -21, -29, -34, -37, -38, -41, + -44, -42, -36, -32, -33, -37, -39, -35, -27, -17, -12, -13, -12, -6, 6, 22, + 36, 44, 54, 66, 77, 82, 80, 75, 68, 59, 47, 29, 10, -3, -13, -18, + -23, -26, -27, -24, -16, -9, -5, -4, -2, 3, 6, 4, -2, -6, -8, -7, + -8, -8, -9, -10, -13, -16, -22, -29, -31, -30, -34, -36, -36, -32, -28, -30, + -36, -39, -38, -33, -28, -24, -24, -22, -15, -2, 13, 26, 38, 53, 67, 78, + 84, 88, 85, 81, 71, 59, 39, 13, -5, -14, -19, -26, -32, -34, -30, -22, + -13, -5, 0, 6, 7, 10, 8, 2, -4, -10, -12, -15, -18, -20, -20, -20, + -22, -24, -26, -26, -23, -23, -23, -24, -21, -17, -18, -25, -31, -35, -37, -37, + -36, -33, -29, -22, -10, 5, 19, 31, 45, 62, 75, 84, 86, 88, 87, 80, + 66, 45, 22, 4, -9, -18, -26, -34, -37, -33, -24, -15, -9, -3, 6, 13, + 15, 11, 2, -5, -10, -13, -20, -25, -27, -26, -25, -26, -29, -29, -23, -18, + -16, -19, -18, -15, -9, -6, -12, -21, -32, -36, -36, -40, -39, -36, -30, -21, + -10, 6, 20, 36, 55, 69, 79, 85, 90, 92, 88, 75, 56, 33, 12, -3, + -15, -24, -33, -37, -35, -28, -20, -12, -4, 6, 14, 18, 16, 9, 0, -8, + -15, -19, -27, -33, -35, -34, -34, -36, -36, -29, -19, -10, -10, -10, -8, -4, + -2, -2, -8, -18, -28, -36, -43, -48, -46, -36, -25, -14, -4, 10, 27, 46, + 65, 78, 86, 89, 87, 85, 78, 64, 42, 19, 0, -12, -20, -29, -34, -36, + -30, -22, -12, -6, 1, 8, 16, 18, 13, 2, -7, -12, -17, -24, -33, -38, + -39, -36, -36, -36, -34, -26, -18, -11, -7, -6, -5, -5, 1, 1, -5, -14, + -24, -33, -41, -42, -37, -28, -19, -10, 3, 16, 30, 47, 64, 76, 83, 85, + 83, 78, 69, 54, 37, 17, -2, -14, -21, -28, -32, -32, -27, -18, -11, -6, + 2, 12, 18, 16, 5, -5, -11, -14, -19, -30, -40, -47, -45, -38, -36, -34, + -33, -26, -15, -6, -2, 1, 1, 3, 5, 4, -3, -13, -26, -35, -41, -39, + -33, -23, -13, -5, 7, 21, 36, 53, 68, 79, 82, 78, 72, 66, 59, 47, + 30, 10, -6, -16, -21, -22, -25, -27, -25, -18, -10, -4, 4, 10, 11, 6, + -4, -11, -13, -18, -25, -34, -43, -45, -41, -36, -34, -32, -27, -19, -10, -5, + 0, 2, 5, 5, 5, 1, -7, -16, -25, -33, -38, -35, -25, -13, -6, 0, + 11, 27, 46, 60, 69, 70, 68, 69, 68, 62, 52, 39, 22, 8, -2, -11, + -18, -21, -22, -23, -24, -17, -10, -5, 1, 5, 5, 2, -3, -5, -9, -17, + -28, -41, -46, -48, -43, -42, -42, -39, -30, -19, -9, -3, 6, 11, 15, 16, + 12, 5, -2, -12, -23, -33, -37, -34, -25, -18, -8, 1, 15, 32, 48, 62, + 69, 68, 67, 63, 62, 58, 50, 34, 15, -2, -8, -10, -11, -16, -24, -24, + -19, -12, -6, -2, 2, 3, 1, 0, -6, -10, -17, -26, -37, -46, -48, -45, + -44, -42, -38, -32, -22, -12, -6, 4, 10, 14, 16, 15, 11, 5, -2, -11, + -23, -31, -29, -22, -18, -16, -11, 3, 17, 34, 50, 56, 59, 61, 63, 62, + 59, 53, 44, 32, 16, 3, -8, -9, -13, -20, -26, -27, -21, -16, -11, -9, + -6, 1, 7, 7, 0, -10, -15, -20, -30, -39, -45, -48, -48, -46, -41, -36, + -29, -20, -11, 3, 11, 14, 19, 21, 19, 15, 6, -3, -13, -18, -18, -17, + -20, -19, -12, 2, 15, 26, 36, 43, 51, 59, 61, 61, 57, 54, 49, 37, + 21, 9, 1, -8, -17, -25, -29, -28, -27, -23, -19, -13, -5, 2, 8, 5, + -4, -11, -13, -17, -27, -40, -49, -53, -53, -50, -44, -37, -28, -19, -7, 8, + 18, 22, 26, 26, 23, 17, 10, 0, -8, -15, -20, -25, -23, -19, -11, 0, + 13, 25, 34, 44, 54, 60, 62, 60, 58, 56, 52, 38, 21, 6, -6, -16, + -26, -32, -33, -30, -26, -24, -17, -8, 3, 13, 16, 10, 1, -7, -12, -18, + -34, -50, -61, -63, -58, -54, -50, -45, -33, -13, 6, 21, 27, 34, 37, 36, + 30, 20, 11, -2, -13, -24, -32, -37, -34, -24, -10, 2, 12, 25, 41, 55, + 61, 64, 65, 67, 64, 59, 48, 32, 16, 0, -12, -20, -27, -33, -33, -31, + -28, -23, -12, 0, 10, 13, 9, 2, -2, -7, -13, -25, -41, -56, -65, -66, + -62, -56, -53, -42, -25, -5, 13, 24, 34, 39, 42, 39, 32, 22, 11, -2, + -15, -27, -36, -37, -31, -22, -13, 0, 12, 27, 43, 55, 61, 64, 65, 63, + 60, 53, 42, 28, 10, -6, -20, -27, -28, -28, -25, -23, -20, -13, -2, 11, + 16, 14, 8, 2, -6, -14, -25, -38, -53, -67, -73, -73, -67, -58, -46, -32, + -14, 6, 24, 36, 43, 45, 44, 39, 30, 18, 5, -11, -25, -35, -39, -37, + -28, -17, -7, 4, 16, 32, 48, 58, 64, 66, 63, 61, 56, 46, 31, 18, + 3, -13, -21, -25, -23, -19, -15, -11, -7, -2, 6, 13, 14, 8, -3, -12, + -21, -32, -40, -55, -70, -78, -75, -67, -56, -47, -29, -12, 10, 29, 40, 47, + 49, 48, 43, 31, 15, 0, -16, -29, -39, -45, -41, -32, -18, -6, 3, 13, + 27, 43, 57, 64, 65, 61, 58, 52, 43, 32, 18, 6, -9, -18, -20, -17, + -12, -4, 1, 3, 7, 12, 17, 16, 9, -3, -15, -27, -39, -48, -60, -72, + -82, -82, -73, -58, -45, -33, -14, 7, 28, 42, 49, 51, 51, 48, 38, 22, + 2, -16, -30, -37, -42, -45, -40, -26, -11, 3, 11, 20, 34, 52, 65, 69, + 64, 54, 46, 38, 28, 16, 4, -11, -18, -16, -10, -4, 3, 13, 21, 23, + 22, 20, 18, 11, -2, -16, -34, -47, -59, -70, -76, -83, -83, -76, -64, -48, + -31, -12, 10, 30, 42, 50, 53, 51, 46, 37, 25, 8, -13, -30, -41, -45, + -43, -35, -23, -15, -5, 8, 17, 28, 40, 56, 64, 63, 55, 45, 34, 24, + 14, 7, -4, -12, -13, -9, -2, 11, 23, 31, 33, 33, 31, 26, 17, 4, + -14, -31, -48, -62, -75, -86, -90, -87, -79, -68, -54, -39, -18, 4, 23, 39, + 47, 52, 52, 47, 39, 29, 15, -5, -23, -35, -41, -40, -34, -26, -16, -8, + 2, 12, 22, 30, 43, 52, 58, 54, 45, 36, 25, 16, 7, -2, -7, -8, + -3, 4, 13, 24, 32, 39, 42, 39, 30, 19, 6, -10, -25, -44, -62, -79, + -88, -90, -85, -78, -70, -59, -45, -24, 0, 20, 35, 43, 48, 48, 46, 42, + 33, 20, 2, -19, -32, -38, -41, -37, -29, -19, -8, 1, 11, 19, 26, 35, + 43, 48, 48, 41, 35, 26, 16, 7, 0, 0, 3, 6, 10, 16, 24, 32, + 40, 44, 43, 33, 21, 8, -5, -19, -37, -54, -72, -84, -87, -81, -75, -68, + -61, -50, -33, -12, 8, 22, 29, 34, 40, 42, 41, 35, 24, 13, -2, -16, + -27, -33, -33, -27, -22, -17, -13, -4, 9, 18, 25, 31, 36, 42, 44, 40, + 32, 21, 12, 9, 7, 8, 9, 13, 17, 23, 29, 35, 40, 40, 35, 26, + 13, 0, -11, -24, -41, -60, -74, -80, -79, -73, -68, -63, -56, -43, -27, -10, + 6, 18, 24, 29, 34, 38, 37, 30, 20, 9, -3, -14, -24, -27, -27, -25, + -23, -18, -9, 2, 10, 19, 25, 30, 37, 40, 41, 33, 22, 16, 10, 6, + 6, 10, 16, 21, 28, 31, 35, 38, 44, 45, 34, 19, 5, -5, -17, -33, + -52, -68, -76, -78, -75, -71, -67, -62, -51, -37, -20, -7, 4, 13, 21, 29, + 34, 36, 33, 26, 17, 10, 0, -8, -13, -19, -21, -21, -17, -11, -6, 4, + 10, 13, 19, 25, 30, 31, 28, 20, 14, 10, 7, 7, 11, 20, 26, 32, + 36, 39, 41, 44, 46, 41, 30, 13, 0, -13, -27, -44, -62, -72, -74, -74, + -74, -71, -66, -57, -47, -32, -19, -9, 2, 14, 24, 28, 32, 34, 33, 25, + 17, 9, 2, -5, -10, -17, -22, -18, -13, -7, 0, 4, 10, 17, 23, 26, + 25, 21, 15, 9, 9, 7, 4, 7, 16, 27, 34, 39, 43, 48, 49, 52, + 49, 39, 24, 9, -3, -17, -32, -52, -67, -75, -75, -71, -70, -70, -66, -56, + -43, -31, -21, -12, -2, 11, 21, 27, 30, 33, 31, 29, 22, 15, 8, 0, + -6, -13, -14, -14, -11, -5, 0, 4, 8, 13, 16, 18, 15, 12, 10, 7, + 7, 6, 7, 14, 24, 36, 44, 46, 46, 49, 52, 53, 47, 35, 21, 9, + -6, -23, -43, -59, -68, -71, -74, -74, -76, -73, -64, -52, -39, -31, -25, -15, + 0, 12, 20, 24, 29, 32, 30, 26, 21, 16, 10, 4, -2, -7, -7, -5, + -3, 0, 3, 5, 6, 9, 8, 8, 6, 3, 2, 4, 5, 7, 14, 22, + 34, 43, 49, 57, 57, 55, 52, 48, 43, 31, 17, 2, -13, -33, -49, -59, + -63, -66, -72, -75, -76, -70, -61, -52, -44, -37, -30, -18, -4, 11, 20, 25, + 28, 32, 32, 30, 26, 19, 13, 5, 0, -4, -5, -3, 1, 2, 1, -3, + -2, 2, 6, 4, 2, -3, -2, 3, 10, 13, 18, 27, 40, 49, 56, 59, + 60, 56, 52, 47, 41, 30, 17, 1, -19, -39, -55, -64, -67, -70, -76, -81, + -78, -69, -56, -46, -40, -33, -24, -12, 3, 15, 22, 25, 26, 29, 27, 23, + 19, 14, 9, 4, 0, -2, 1, 5, 9, 7, 2, -3, -3, 3, 3, -2, + -10, -13, -10, -2, 7, 14, 22, 31, 45, 59, 65, 68, 65, 62, 58, 50, + 41, 28, 12, -9, -31, -49, -59, -65, -70, -76, -84, -84, -77, -63, -50, -45, + -40, -32, -21, -7, 7, 16, 24, 28, 29, 28, 23, 18, 15, 11, 6, 0, + -4, -3, 4, 11, 14, 11, 6, 5, 7, 7, 2, -7, -12, -16, -13, -6, + 1, 8, 17, 32, 50, 63, 68, 68, 69, 70, 65, 56, 43, 27, 7, -17, + -38, -52, -62, -71, -78, -86, -88, -84, -73, -59, -50, -43, -34, -25, -11, 2, + 11, 19, 23, 26, 26, 21, 17, 12, 9, 7, 5, 2, 2, 4, 11, 16, + 14, 10, 9, 10, 9, 1, -8, -16, -19, -16, -11, -6, 0, 8, 24, 43, + 57, 66, 70, 72, 72, 67, 63, 52, 37, 18, -5, -23, -41, -54, -62, -70, + -78, -81, -82, -76, -67, -56, -45, -36, -31, -22, -12, 0, 10, 16, 20, 21, + 17, 13, 7, 3, 3, 6, 6, 6, 9, 14, 20, 21, 20, 17, 17, 15, + 9, -3, -15, -23, -27, -20, -14, -9, -4, 9, 31, 49, 64, 70, 75, 78, + 76, 70, 60, 45, 31, 12, -11, -31, -46, -58, -66, -70, -73, -77, -74, -67, + -59, -52, -44, -36, -29, -22, -14, -6, 1, 11, 14, 14, 11, 6, 6, 7, + 10, 11, 12, 15, 18, 24, 23, 21, 19, 20, 18, 12, 0, -13, -20, -27, + -27, -22, -16, -11, 1, 19, 36, 52, 64, 73, 79, 81, 77, 69, 56, 43, + 26, 5, -16, -37, -54, -62, -66, -69, -72, -71, -65, -62, -56, -47, -39, -33, + -26, -19, -14, -12, -3, 9, 9, 3, -6, -4, 5, 11, 12, 11, 12, 20, + 29, 31, 29, 25, 25, 27, 24, 11, -6, -17, -25, -31, -32, -30, -26, -16, + 0, 17, 35, 51, 66, 78, 87, 88, 84, 73, 57, 40, 23, 3, -20, -42, + -57, -65, -69, -71, -70, -68, -63, -58, -52, -45, -38, -30, -26, -24, -23, -16, + -8, -2, -5, -9, -6, 1, 9, 12, 13, 17, 24, 32, 37, 37, 34, 32, + 33, 31, 19, 2, -15, -25, -31, -36, -38, -35, -27, -13, 4, 23, 40, 59, + 76, 91, 96, 91, 80, 69, 55, 35, 13, -12, -35, -52, -61, -66, -71, -70, + -63, -54, -48, -44, -42, -36, -31, -30, -34, -36, -33, -26, -20, -20, -21, -18, + -9, 5, 13, 18, 21, 29, 40, 47, 50, 49, 44, 40, 34, 23, 6, -14, + -27, -39, -45, -48, -45, -35, -23, -7, 11, 30, 51, 73, 89, 97, 96, 89, + 80, 63, 44, 25, 4, -18, -39, -53, -59, -63, -61, -58, -55, -52, -49, -45, + -39, -35, -37, -41, -46, -43, -38, -33, -29, -25, -18, -11, 3, 13, 20, 25, + 30, 38, 46, 51, 50, 47, 43, 37, 26, 9, -7, -19, -32, -45, -52, -51, + -40, -28, -12, 4, 19, 38, 61, 83, 94, 95, 89, 82, 67, 50, 30, 12, + -8, -26, -40, -52, -57, -56, -52, -48, -46, -44, -40, -34, -32, -32, -37, -44, + -47, -45, -41, -39, -35, -28, -17, -6, 7, 15, 23, 32, 40, 47, 52, 52, + 51, 46, 39, 32, 17, 1, -14, -26, -37, -46, -50, -45, -35, -25, -11, 5, + 24, 44, 62, 79, 88, 86, 79, 70, 59, 45, 25, 7, -13, -25, -36, -46, + -50, -51, -50, -46, -43, -41, -37, -34, -33, -36, -40, -43, -46, -46, -41, -36, + -31, -22, -10, 4, 13, 21, 30, 40, 47, 50, 53, 52, 47, 39, 30, 18, + 3, -12, -22, -33, -42, -47, -45, -36, -25, -14, -2, 14, 34, 52, 67, 76, + 77, 72, 65, 55, 43, 27, 12, -7, -21, -29, -36, -41, -44, -43, -39, -36, + -32, -27, -26, -26, -29, -33, -36, -43, -49, -48, -44, -38, -32, -22, -11, 4, + 15, 25, 34, 44, 50, 53, 54, 52, 44, 35, 23, 9, -4, -15, -27, -37, + -43, -45, -42, -34, -21, -9, 5, 19, 34, 50, 63, 70, 69, 63, 54, 46, + 35, 20, 4, -11, -23, -29, -33, -37, -41, -40, -33, -25, -20, -19, -21, -22, + -23, -26, -34, -42, -47, -46, -43, -36, -30, -22, -11, 5, 17, 28, 37, 45, + 52, 55, 53, 49, 41, 30, 19, 4, -12, -23, -33, -41, -45, -45, -40, -31, + -18, -3, 11, 23, 38, 51, 63, 64, 58, 51, 45, 36, 25, 10, -4, -15, + -24, -28, -32, -36, -35, -29, -19, -13, -13, -14, -13, -13, -13, -21, -33, -43, + -45, -45, -41, -38, -34, -25, -11, 4, 17, 29, 39, 49, 57, 60, 55, 48, + 39, 29, 16, 1, -14, -27, -35, -42, -47, -48, -42, -29, -15, -3, 10, 20, + 34, 48, 56, 57, 51, 45, 38, 30, 20, 7, -7, -17, -22, -26, -32, -36, + -31, -21, -9, -6, -8, -8, -4, 1, -4, -13, -26, -35, -39, -40, -42, -44, + -40, -29, -13, 3, 16, 29, 43, 58, 67, 67, 59, 49, 39, 27, 11, -9, + -28, -39, -47, -50, -53, -52, -44, -29, -12, 5, 13, 25, 38, 51, 57, 52, + 45, 38, 30, 21, 9, -4, -14, -21, -26, -29, -33, -28, -18, -7, 2, 2, + 2, 4, 8, 10, 5, -10, -25, -36, -42, -45, -49, -49, -45, -33, -14, 5, + 22, 35, 54, 69, 78, 76, 67, 53, 41, 27, 6, -17, -36, -50, -55, -60, + -63, -62, -51, -34, -16, -2, 9, 20, 34, 45, 50, 48, 42, 35, 29, 18, + 7, 0, 0, 0, 0, 0, 0, 7, 0, -1, -7, -18, -16, 3, 6, -18, + -29, -21, 6, 6, -12, -10, -10, -2, 4, 15, 21, 14, 4, 9, 29, 27, + 15, 9, 13, 20, 0, -21, -11, 3, -11, -37, -36, -7, 11, -4, -26, -23, + -4, 15, -4, -15, -11, -10, -1, 9, 23, 15, 8, 6, 24, 35, 19, 14, + 6, 17, 10, -15, -26, -7, -1, -23, -40, -24, 4, 10, -16, -25, -13, 11, + 10, -14, -15, -12, -6, 1, 19, 22, 6, 7, 15, 40, 31, 22, 7, 7, + 15, 5, -22, -21, -5, -9, -33, -32, -15, 5, -4, -19, -20, 1, 17, -4, + -15, -11, -12, -4, 9, 27, 13, 7, 11, 32, 44, 30, 14, 2, 7, 9, + -8, -25, -18, -9, -19, -30, -21, -4, 2, -10, -21, -13, 15, 8, -11, -13, + -16, -12, 0, 20, 24, 9, 9, 19, 44, 47, 25, 6, 2, 11, -1, -21, + -27, -19, -17, -20, -23, -17, -5, -5, -14, -20, 0, 15, -4, -7, -17, -17, + -8, 7, 25, 18, 7, 11, 31, 54, 41, 14, -1, 10, 3, -14, -27, -29, + -21, -16, -16, -18, -17, -11, -10, -16, -16, 10, 6, -3, -9, -19, -16, -2, + 18, 27, 16, 8, 19, 45, 54, 29, 5, 6, 4, -9, -18, -29, -30, -18, + -10, -9, -14, -20, -12, -13, -17, -5, 12, 7, 2, -16, -22, -13, 8, 25, + 23, 12, 11, 32, 53, 48, 17, 9, 9, -7, -16, -24, -37, -28, -12, -4, + -2, -18, -21, -18, -23, -17, 7, 11, 10, -4, -16, -22, -7, 21, 28, 18, + 9, 20, 43, 55, 37, 11, 11, 1, -14, -17, -31, -34, -21, -10, 4, -2, + -20, -23, -26, -29, -3, 6, 13, 8, -5, -23, -27, 7, 28, 27, 15, 12, + 32, 48, 50, 24, 9, 8, -12, -19, -26, -37, -35, -19, 3, 6, -12, -21, + -31, -38, -17, 6, 4, 14, 6, -8, -35, -15, 19, 26, 21, 7, 23, 43, + 52, 42, 14, 9, -2, -16, -21, -25, -33, -33, -4, 13, 3, -13, -30, -47, + -37, 1, 6, 7, 12, 6, -15, -31, -1, 22, 30, 14, 9, 37, 48, 50, + 26, 8, 6, -11, -22, -22, -25, -45, -22, 13, 15, 1, -22, -43, -56, -21, + 7, 6, 10, 15, -7, -25, -21, 7, 28, 21, 2, 25, 47, 53, 39, 11, + 10, 1, -20, -22, -18, -37, -42, 2, 15, 15, -8, -32, -57, -48, -9, 9, + 5, 14, 8, -14, -20, -13, 17, 33, 8, 9, 37, 52, 55, 25, 7, 8, + -11, -23, -15, -23, -47, -20, 12, 21, 10, -23, -50, -57, -31, 2, 10, 9, + 11, -8, -10, -18, -3, 30, 22, 1, 22, 45, 57, 45, 11, 11, 0, -23, + -22, -16, -36, -36, -6, 15, 18, -3, -43, -56, -49, -21, 5, 11, 12, -2, + -8, -9, -15, 12, 31, 9, 10, 34, 48, 60, 29, 16, 10, -17, -24, -21, + -27, -31, -17, 5, 14, 12, -22, -50, -48, -41, -9, 7, 13, -1, -8, -2, + -11, -5, 26, 19, 6, 21, 37, 55, 49, 25, 22, -5, -20, -24, -26, -29, + -23, -9, 8, 13, -1, -41, -48, -47, -30, -3, 12, 7, -12, -2, 1, -8, + 10, 20, 11, 16, 26, 40, 54, 42, 36, 7, -13, -18, -26, -29, -26, -14, + -2, 7, 8, -18, -45, -48, -45, -19, 6, 11, -10, -8, 5, -7, 2, 12, + 17, 15, 16, 23, 45, 55, 48, 27, -7, -12, -18, -30, -31, -17, -5, -3, + 4, 5, -24, -40, -50, -38, -8, 8, 1, -13, 1, -1, 3, 8, 15, 18, + 15, 15, 28, 52, 59, 47, 9, -9, -10, -25, -40, -29, -3, -5, -13, 1, + 3, -26, -47, -53, -23, -2, 5, -11, -6, 4, 6, 10, 10, 19, 11, 13, + 15, 42, 61, 61, 32, 3, -5, -12, -35, -43, -14, 1, -16, -13, 9, -1, + -33, -57, -46, -19, -3, -1, -16, -2, 5, 15, 6, 17, 9, 5, 9, 26, + 54, 65, 52, 21, 3, -6, -21, -48, -33, -4, -7, -22, -2, 18, -4, -47, + -58, -33, -11, 2, -13, -15, 3, 16, 15, 9, 15, -1, 5, 14, 48, 66, + 65, 37, 23, 2, -11, -42, -48, -20, -4, -23, -18, 18, 19, -17, -61, -52, + -27, -2, -5, -24, -7, 9, 20, 14, 18, 2, -3, 7, 34, 63, 68, 50, + 37, 19, -9, -25, -49, -38, -14, -14, -28, 6, 25, 9, -40, -62, -45, -17, + 3, -21, -16, -3, 12, 18, 18, 10, -6, 0, 16, 56, 69, 63, 43, 38, + 2, -20, -42, -44, -33, -14, -25, -10, 22, 18, -11, -55, -57, -37, -3, -10, + -26, -10, 2, 17, 21, 20, -3, -2, 5, 39, 67, 73, 56, 47, 22, -17, + -35, -43, -36, -28, -18, -20, 9, 22, 8, -33, -56, -53, -26, -2, -23, -24, + -11, 4, 23, 30, 4, -3, 0, 27, 60, 71, 69, 58, 43, -6, -35, -43, + -35, -36, -27, -18, -2, 19, 17, -9, -41, -51, -45, -10, -12, -31, -21, -9, + 8, 33, 17, 0, 2, 8, 50, 69, 75, 70, 64, 16, -31, -47, -35, -32, + -34, -25, -14, 10, 16, 5, -26, -42, -50, -32, -8, -22, -31, -22, -8, 22, + 32, 7, 6, 4, 28, 63, 69, 71, 78, 43, -20, -51, -41, -23, -34, -30, + -22, 2, 13, 9, -10, -31, -45, -44, -21, -19, -27, -36, -26, 2, 29, 24, + 12, 11, 13, 45, 69, 68, 81, 70, 6, -47, -52, -28, -23, -27, -26, -14, + 11, 10, -2, -18, -33, -43, -34, -25, -22, -36, -44, -14, 14, 29, 27, 22, + 18, 29, 60, 65, 71, 86, 41, -32, -57, -41, -23, -22, -22, -24, -4, 10, + 0, -11, -21, -31, -37, -37, -29, -29, -53, -33, -3, 16, 33, 31, 27, 23, + 46, 64, 65, 85, 71, -4, -48, -47, -31, -20, -15, -15, -19, 1, 0, -5, + -14, -21, -26, -40, -39, -28, -51, -50, -18, 4, 26, 38, 36, 30, 32, 61, + 64, 70, 80, 31, -35, -43, -40, -25, -19, -6, -17, -11, 0, -6, -11, -17, + -15, -31, -47, -39, -45, -62, -34, -8, 12, 36, 38, 41, 37, 51, 65, 60, + 71, 56, -7, -36, -38, -35, -27, -11, -5, -17, -8, -8, -9, -17, -13, -20, + -37, -47, -50, -62, -49, -16, 1, 25, 34, 43, 53, 49, 62, 58, 62, 65, + 22, -23, -31, -34, -35, -19, -3, -8, -18, -7, -4, -14, -17, -9, -27, -40, + -56, -68, -64, -27, -4, 9, 28, 37, 54, 60, 61, 59, 54, 63, 43, -1, + -25, -23, -37, -28, -8, 4, -10, -15, -3, -7, -26, -15, -11, -29, -51, -71, + -71, -49, -8, 5, 14, 30, 48, 66, 68, 63, 51, 56, 51, 18, -18, -20, + -25, -39, -23, -5, 3, -13, -6, -5, -21, -28, -10, -18, -43, -67, -78, -64, + -25, 1, 8, 15, 38, 60, 75, 74, 58, 54, 57, 28, -7, -18, -8, -31, + -34, -15, 4, -2, -4, 0, -15, -32, -21, -8, -28, -57, -77, -75, -44, -12, + 6, 8, 20, 49, 68, 77, 71, 53, 61, 41, 3, -18, -4, -14, -36, -28, + -7, 1, 7, 6, -8, -34, -35, -16, -15, -41, -66, -75, -59, -31, -4, 10, + 11, 31, 56, 72, 85, 63, 58, 55, 14, -17, -10, -1, -24, -30, -22, -6, + 11, 16, 9, -27, -43, -27, -15, -26, -53, -63, -66, -46, -21, 3, 13, 15, + 40, 63, 83, 78, 60, 67, 38, -9, -20, 4, -7, -23, -25, -22, 6, 24, + 20, -8, -48, -43, -24, -16, -39, -55, -57, -57, -36, -10, 9, 11, 22, 50, + 73, 88, 71, 65, 59, 14, -24, -9, -3, -15, -18, -31, -14, 25, 28, 10, + -36, -56, -41, -21, -29, -48, -47, -51, -50, -26, -2, 11, 6, 30, 57, 82, + 83, 69, 65, 35, -12, -16, -3, -10, -12, -21, -26, 11, 33, 26, -7, -56, + -54, -32, -26, -41, -39, -37, -52, -41, -16, 5, 7, 11, 37, 72, 91, 78, + 66, 55, 11, -19, -14, -15, -9, -7, -19, -8, 22, 30, 13, -32, -62, -44, + -31, -34, -40, -29, -40, -46, -29, -8, 2, 1, 18, 49, 84, 86, 72, 67, + 39, -6, -21, -25, -16, 2, -6, -12, 6, 23, 18, -7, -51, -56, -39, -33, + -41, -30, -24, -41, -36, -17, -8, -5, 7, 32, 66, 84, 78, 75, 58, 20, + -15, -29, -33, 2, 4, -1, 1, 11, 17, 4, -27, -56, -46, -36, -37, -39, + -22, -24, -38, -23, -16, -16, -7, 18, 46, 72, 82, 81, 72, 44, -1, -25, + -41, -18, 14, 8, 10, 0, 5, 2, -11, -40, -50, -42, -38, -37, -33, -11, + -27, -26, -20, -22, -13, 0, 31, 52, 73, 82, 80, 61, 26, -16, -37, -40, + 0, 18, 17, 12, -5, -8, -10, -21, -41, -43, -44, -36, -35, -20, -12, -23, + -14, -32, -21, -12, 15, 38, 58, 76, 82, 72, 46, 4, -26, -41, -23, 14, + 25, 18, 2, -23, -18, -14, -29, -35, -45, -42, -35, -29, -15, -19, -3, -23, + -32, -19, -1, 27, 40, 67, 81, 76, 61, 26, -11, -33, -36, -6, 28, 28, + 13, -15, -38, -19, -20, -26, -36, -46, -35, -32, -20, -21, -4, -4, -28, -25, + -16, 13, 31, 49, 74, 79, 69, 48, 8, -16, -33, -21, 7, 33, 24, 5, + -32, -38, -22, -21, -22, -41, -43, -32, -25, -23, -16, 6, -9, -29, -28, -5, + 20, 39, 58, 75, 71, 60, 22, 0, -18, -27, -10, 16, 30, 15, -14, -49, + -34, -19, -16, -27, -43, -31, -25, -27, -24, -1, 7, -15, -32, -22, 3, 28, + 50, 61, 67, 59, 38, 13, 5, -17, -16, -3, 21, 23, 3, -34, -49, -28, + -17, -19, -34, -34, -18, -26, -32, -16, 14, 6, -23, -34, -11, 14, 44, 54, + 56, 60, 44, 25, 18, 2, -18, -9, 3, 21, 9, -14, -45, -39, -24, -22, + -28, -32, -18, -17, -36, -30, 5, 21, -5, -31, -27, 1, 30, 56, 46, 50, + 47, 32, 29, 20, -4, -9, -9, 4, 10, -2, -28, -38, -31, -33, -26, -26, + -19, -9, -24, -38, -11, 24, 10, -17, -36, -14, 14, 48, 49, 37, 43, 39, + 33, 32, 11, 1, -5, -11, -6, -3, -16, -29, -28, -40, -38, -27, -20, -6, + -11, -31, -29, 15, 22, 0, -25, -25, 2, 31, 51, 38, 35, 41, 41, 34, + 27, 8, 6, -7, -20, -14, -7, -20, -19, -34, -52, -35, -23, -11, -5, -18, + -33, -5, 26, 5, -11, -27, -11, 17, 43, 43, 30, 29, 46, 45, 38, 17, + 6, 2, -22, -27, -16, -16, -18, -18, -53, -48, -23, -19, -3, -10, -21, -19, + 18, 12, -6, -20, -21, 6, 29, 42, 31, 23, 37, 54, 48, 31, 13, 13, + -13, -31, -25, -16, -16, -11, -38, -62, -33, -28, -7, -3, -12, -17, 6, 16, + 2, -11, -17, -5, 15, 35, 34, 25, 23, 44, 55, 41, 22, 14, 2, -29, + -32, -23, -11, -13, -18, -60, -50, -32, -16, -6, -11, -4, 3, 11, 3, -1, + -14, -8, 5, 20, 39, 31, 24, 26, 54, 57, 37, 16, 8, -19, -32, -27, + -17, -17, -17, -36, -58, -40, -32, -11, -11, -2, 6, 10, 2, 0, -4, -12, + 1, 8, 33, 42, 26, 17, 35, 63, 53, 26, 6, -9, -27, -30, -25, -17, + -23, -24, -47, -51, -38, -17, -11, -6, 12, 17, 8, -8, -1, -10, -7, 4, + 18, 40, 33, 18, 22, 49, 70, 46, 12, -11, -16, -23, -27, -19, -28, -26, + -36, -50, -48, -31, -13, -13, 10, 20, 21, 0, -6, -1, -7, 3, 15, 32, + 40, 24, 17, 31, 58, 67, 28, -2, -21, -14, -31, -18, -24, -33, -33, -49, + -49, -41, -18, -20, -2, 20, 23, 19, -12, -7, -2, -3, 10, 22, 33, 37, + 21, 23, 39, 72, 51, 10, -17, -18, -20, -29, -17, -33, -36, -49, -48, -47, + -24, -16, -15, 11, 24, 30, 6, -12, -2, -2, -1, 18, 29, 35, 27, 25, + 25, 56, 63, 23, -5, -19, -14, -23, -21, -21, -38, -52, -54, -40, -32, -15, + -23, -7, 18, 31, 22, -2, -7, 3, 0, 12, 21, 34, 31, 28, 22, 35, + 66, 40, 2, -19, -19, -15, -21, -16, -30, -60, -62, -42, -33, -18, -18, -22, + 4, 29, 29, 14, -2, -4, 5, 6, 16, 28, 36, 24, 29, 26, 52, 49, + 14, -13, -24, -19, -14, -15, -17, -53, -75, -54, -32, -18, -11, -26, -18, 18, + 28, 25, 13, -6, 4, 13, 9, 17, 37, 24, 28, 33, 37, 49, 26, 1, + -19, -26, -16, -11, -7, -33, -77, -71, -45, -15, -8, -18, -30, 1, 25, 21, + 26, 3, 5, 17, 14, 11, 33, 27, 17, 34, 38, 42, 33, 6, -11, -28, + -22, -12, -3, -16, -60, -81, -62, -25, -2, -14, -27, -17, 20, 18, 24, 18, + 6, 16, 21, 12, 24, 28, 12, 26, 44, 42, 35, 13, -5, -21, -31, -18, + -2, -2, -42, -77, -76, -47, -10, -6, -22, -24, 4, 16, 18, 25, 18, 18, + 24, 20, 20, 32, 14, 11, 40, 49, 41, 21, -6, -13, -27, -28, -5, 5, + -18, -59, -79, -63, -30, -6, -11, -28, -11, 8, 10, 23, 27, 17, 24, 25, + 25, 28, 19, 8, 25, 47, 46, 27, -5, -15, -18, -33, -20, -5, -3, -35, + -70, -66, -51, -22, -7, -21, -19, -3, 6, 17, 29, 26, 23, 28, 25, 32, + 23, 14, 11, 39, 50, 38, 3, -19, -10, -21, -29, -12, -3, -12, -55, -65, + -56, -42, -14, -10, -23, -11, -3, 10, 23, 32, 26, 28, 28, 35, 29, 22, + 13, 18, 41, 43, 18, -16, -18, -14, -29, -21, -11, -8, -32, -61, -52, -52, + -30, -11, -18, -16, -10, 2, 22, 35, 30, 25, 32, 34, 40, 27, 19, 11, + 23, 39, 32, -1, -22, -14, -22, -23, -14, -11, -17, -45, -52, -51, -51, -22, + -17, -19, -17, -10, 11, 35, 39, 29, 26, 34, 43, 43, 27, 16, 12, 25, + 31, 18, -13, -20, -19, -22, -12, -14, -15, -28, -44, -47, -53, -33, -15, -22, + -24, -20, 5, 27, 38, 31, 21, 27, 46, 51, 40, 18, 8, 13, 23, 24, + 3, -21, -22, -22, -8, -9, -22, -26, -31, -40, -51, -44, -17, -15, -26, -31, + -10, 24, 35, 37, 25, 21, 42, 57, 53, 30, 11, 7, 11, 21, 12, -11, + -23, -25, -12, 0, -18, -32, -31, -30, -45, -46, -26, -13, -25, -39, -25, 15, + 36, 29, 25, 20, 37, 58, 63, 46, 15, 3, -2, 19, 16, -2, -19, -25, + -23, 4, -4, -31, -36, -29, -32, -43, -37, -17, -16, -39, -43, -2, 34, 31, + 21, 17, 30, 62, 67, 62, 27, 9, -9, 3, 26, 8, -18, -26, -26, -5, + 9, -23, -44, -33, -26, -33, -40, -28, -12, -30, -52, -24, 23, 33, 15, 14, + 22, 54, 75, 68, 47, 14, -9, -12, 19, 23, -12, -20, -20, -13, 11, -6, + -40, -41, -19, -23, -34, -34, -14, -13, -48, -48, 4, 35, 23, 7, 13, 40, + 77, 78, 57, 31, -3, -18, 3, 27, 7, -24, -19, -16, 1, 5, -29, -49, + -28, -13, -26, -34, -26, -4, -30, -57, -24, 22, 30, 6, 7, 31, 63, 86, + 68, 42, 10, -19, -13, 15, 25, -10, -22, -14, -7, 6, -11, -45, -40, -14, + -24, -35, -31, -12, -8, -51, -44, -2, 29, 11, -1, 22, 47, 74, 78, 49, + 25, -8, -26, -4, 26, 12, -16, -19, -11, -1, -1, -28, -45, -22, -13, -29, + -29, -23, -1, -26, -55, -26, 14, 20, -3, 13, 39, 63, 80, 61, 33, 8, + -22, -25, 10, 22, -1, -14, -15, -7, -1, -14, -37, -26, -13, -25, -28, -26, + -2, -5, -48, -44, -7, 18, 3, 9, 30, 49, 71, 70, 45, 23, -13, -33, + -5, 22, 11, -7, -17, -14, -6, -8, -29, -29, -15, -19, -26, -31, -15, 6, + -25, -52, -30, 7, 7, 2, 21, 40, 60, 67, 52, 33, 7, -29, -19, 16, + 22, 4, -8, -15, -11, -6, -23, -24, -10, -11, -23, -27, -22, 1, 0, -34, + -45, -14, 2, 1, 15, 35, 52, 62, 49, 36, 21, -16, -26, 1, 20, 12, + -7, -10, -20, -10, -19, -28, -9, -8, -15, -26, -27, -11, 2, -15, -41, -34, + -10, -7, 6, 32, 48, 56, 51, 35, 26, 1, -24, -10, 15, 18, 2, -9, + -17, -18, -11, -32, -6, 2, -9, -18, -22, -17, -3, -2, -21, -34, -26, -13, + -8, 20, 47, 53, 52, 38, 24, 5, -14, -15, 9, 14, 4, -6, -14, -21, + -14, -28, -22, 12, 0, -10, -23, -24, -13, 2, -10, -23, -34, -26, -13, 4, + 39, 58, 51, 45, 28, 6, -9, -11, 3, 17, 7, -3, -10, -18, -15, -22, + -35, 2, 18, 2, -11, -23, -20, -1, 0, -15, -24, -39, -25, -6, 17, 52, + 56, 47, 35, 6, -10, -8, 0, 13, 13, -2, -9, -13, -13, -25, -43, -16, + 21, 19, -3, -21, -25, -10, 2, -5, -14, -30, -40, -13, -1, 34, 58, 51, + 44, 18, -10, -9, -2, 6, 12, 7, -7, -12, -12, -18, -40, -33, 9, 32, + 19, -9, -23, -15, 1, 3, -9, -18, -40, -28, -4, 7, 47, 59, 49, 24, + 1, -13, -5, 1, 10, 11, 5, -12, -12, -15, -35, -42, -9, 23, 33, 9, + -22, -24, -5, 1, -5, -12, -30, -40, -7, -3, 22, 56, 58, 35, 11, -12, + -9, -5, -1, 7, 13, -4, -13, -13, -25, -43, -29, 10, 34, 32, -6, -27, + -8, 3, -5, -13, -22, -40, -18, -3, -1, 37, 61, 46, 23, -5, -13, -4, + -4, -7, 12, 14, -10, -18, -22, -34, -35, -10, 22, 39, 23, -15, -14, 5, + 3, -8, -15, -36, -23, -1, -7, 14, 51, 57, 37, 8, -13, -7, -2, -14, + -6, 20, 3, -21, -26, -27, -30, -27, 1, 28, 36, 7, -10, 0, 5, -8, + -14, -30, -29, -3, -10, -5, 31, 56, 46, 19, -7, -10, 3, -11, -21, 9, + 19, -10, -30, -29, -19, -24, -20, 10, 35, 29, 8, -1, 5, -2, -13, -28, + -33, -3, -1, -13, 12, 49, 55, 31, -1, -12, 2, -3, -26, -2, 21, 2, + -28, -34, -21, -17, -29, -12, 23, 34, 19, 6, 7, 4, -4, -23, -40, -10, + 7, -12, -2, 34, 55, 36, 8, -10, 1, 3, -19, -18, 15, 15, -10, -33, + -30, -9, -19, -25, 4, 32, 30, 16, 11, 10, 3, -15, -35, -27, 9, -4, + -10, 16, 52, 42, 12, -7, -6, 4, -6, -21, -2, 17, 0, -20, -41, -13, + -9, -31, -16, 18, 34, 23, 14, 9, 10, -7, -26, -34, -3, 10, -10, 2, + 42, 51, 16, -8, -11, -2, -2, -11, -9, 9, 2, -8, -36, -31, 3, -23, + -30, -1, 27, 27, 23, 15, 18, 3, -17, -31, -19, 8, 1, -4, 24, 51, + 30, -11, -16, -6, -3, -5, -10, 3, 1, -10, -22, -41, -4, -6, -29, -18, + 12, 25, 26, 23, 20, 11, -10, -21, -27, -4, 7, 0, 13, 41, 40, 3, + -24, -11, -1, -2, -3, 5, 5, -14, -15, -35, -20, 0, -19, -24, -4, 11, + 23, 31, 24, 16, -3, -13, -23, -14, 2, 3, 18, 32, 38, 21, -20, -29, + -5, -2, 0, 5, 11, -14, -22, -25, -26, -3, -11, -26, -11, -2, 8, 32, + 34, 24, 2, -8, -16, -13, 1, 1, 10, 31, 31, 33, 1, -36, -22, 0, + 0, 8, 18, -3, -27, -22, -22, -10, -9, -24, -16, -5, -16, 16, 40, 34, + 8, -3, -13, -12, 1, 1, 3, 30, 30, 24, 18, -28, -35, -13, -2, 6, + 19, 10, -25, -28, -15, -9, -10, -19, -20, -3, -15, -8, 27, 42, 25, 1, + -14, -18, 7, 9, -1, 19, 37, 19, 23, -10, -41, -26, -9, 2, 20, 19, + -17, -35, -21, 0, -9, -18, -20, -7, -8, -24, 6, 37, 43, 14, -10, -22, + 3, 18, 4, 6, 36, 23, 16, 4, -32, -37, -19, -3, 17, 27, 0, -37, + -34, -3, 7, -17, -27, -19, -1, -20, -13, 17, 44, 35, 2, -22, -9, 19, + 20, 2, 26, 32, 15, 5, -17, -40, -29, -9, 10, 28, 17, -23, -41, -21, + 9, -2, -27, -30, -5, -7, -21, -4, 27, 47, 27, -14, -21, 11, 29, 14, + 15, 32, 20, 4, -11, -31, -38, -15, 2, 22, 22, -3, -32, -34, -6, 8, + -13, -38, -19, 0, -16, -14, 6, 37, 39, 11, -18, -4, 25, 25, 16, 24, + 27, 7, -10, -24, -38, -25, 0, 12, 23, 8, -16, -31, -23, 0, 0, -27, + -33, -2, -9, -16, -11, 17, 41, 32, 5, -15, 12, 25, 24, 21, 27, 14, + -4, -21, -31, -29, -4, 9, 19, 9, -9, -19, -25, -10, -5, -15, -38, -13, + -6, -13, -17, -1, 30, 36, 27, -2, 2, 20, 24, 25, 24, 19, 2, -16, + -32, -29, -13, 8, 18, 16, -6, -13, -21, -15, -14, -13, -26, -22, -6, -11, + -14, -14, 11, 30, 37, 17, 1, 13, 20, 23, 24, 21, 5, -10, -32, -31, + -15, 0, 17, 22, -3, -15, -17, -11, -15, -19, -23, -22, -8, -8, -13, -18, + -8, 18, 40, 38, 12, 12, 15, 21, 23, 24, 7, -9, -22, -34, -19, -6, + 11, 30, 9, -17, -20, -16, -11, -22, -30, -27, -8, -7, -10, -19, -16, -2, + 32, 52, 31, 17, 16, 13, 21, 19, 19, -9, -17, -30, -25, -7, 3, 29, + 25, -9, -21, -20, -11, -14, -29, -37, -14, 2, -5, -14, -22, -12, 13, 50, + 49, 27, 23, 15, 13, 9, 18, 7, -22, -22, -28, -11, -5, 19, 35, 13, + -20, -24, -18, -8, -22, -38, -31, 2, 3, -6, -26, -22, -3, 38, 56, 42, + 34, 21, 12, 6, 11, 17, -15, -24, -20, -15, -6, 9, 29, 29, -4, -28, + -23, -14, -13, -30, -39, -16, 9, 6, -12, -33, -16, 19, 57, 49, 41, 30, + 13, 4, -1, 6, -4, -27, -21, -13, -6, 2, 12, 34, 12, -24, -24, -20, + -16, -24, -38, -33, 2, 12, -2, -30, -31, 2, 45, 59, 46, 41, 24, 8, + -3, -6, 1, -15, -25, -16, -3, 5, 2, 21, 28, -11, -26, -23, -18, -20, + -32, -40, -14, 14, 11, -10, -40, -20, 30, 60, 55, 42, 34, 15, 6, -12, + -12, -4, -19, -21, -9, 8, 4, 10, 28, 6, -25, -22, -20, -22, -29, -38, + -27, 5, 16, 4, -24, -39, 12, 51, 61, 51, 41, 27, 10, -7, -25, -9, + -10, -17, -15, 0, 9, 5, 21, 15, -13, -27, -17, -21, -23, -38, -33, -11, + 10, 6, -4, -38, -17, 36, 55, 55, 45, 35, 21, 4, -27, -25, -2, -10, + -14, -13, 3, 5, 14, 16, 0, -24, -21, -18, -22, -36, -39, -17, -3, 5, + 3, -15, -28, 16, 50, 53, 52, 43, 29, 13, -14, -36, -10, -1, -15, -15, + -6, 6, 5, 13, 4, -11, -24, -17, -18, -27, -43, -18, -12, -7, 4, 3, + -17, -4, 38, 53, 52, 48, 41, 23, 0, -31, -30, 2, -7, -14, -13, -5, + 3, 11, 7, -4, -21, -25, -21, -19, -39, -23, -9, -19, -8, 5, -1, -10, + 24, 46, 48, 46, 44, 32, 10, -18, -37, -7, 0, -12, -14, -13, -4, 8, + 9, 1, -16, -29, -28, -17, -33, -31, -6, -21, -21, -4, 12, 3, 13, 41, + 46, 44, 46, 44, 20, -7, -36, -27, 6, -3, -18, -21, -12, 2, 12, 6, + -5, -27, -36, -21, -20, -34, -12, -8, -29, -16, 11, 15, 10, 28, 47, 46, + 41, 45, 35, 5, -24, -30, -5, 3, -14, -26, -16, -7, 7, 8, -3, -18, + -39, -32, -16, -28, -26, -8, -23, -26, 0, 19, 16, 20, 42, 55, 45, 38, + 39, 20, -11, -24, -13, -2, -6, -25, -22, -7, -5, 13, 0, -11, -36, -41, + -20, -16, -29, -16, -14, -28, -12, 13, 17, 15, 32, 50, 57, 41, 38, 30, + 2, -14, -9, -3, -3, -19, -33, -10, -7, 7, 7, -13, -30, -42, -28, -13, + -17, -26, -14, -22, -15, 7, 19, 15, 26, 46, 59, 51, 34, 33, 12, -7, + -11, -4, -5, -13, -38, -23, -3, 3, 15, -7, -32, -45, -34, -21, -11, -27, + -25, -21, -19, -1, 13, 15, 22, 37, 53, 62, 46, 34, 15, -2, 0, -4, + -8, -9, -34, -38, -8, 4, 17, 3, -25, -50, -44, -26, -12, -13, -32, -24, + -20, -7, 11, 18, 17, 33, 50, 65, 57, 41, 24, 0, 5, 5, -9, -11, + -25, -44, -25, -1, 17, 13, -18, -42, -51, -33, -20, -7, -27, -29, -23, -16, + 0, 14, 14, 28, 48, 60, 66, 51, 34, 4, 0, 15, -3, -14, -20, -35, + -37, -12, 12, 27, -7, -37, -50, -40, -29, -15, -15, -30, -24, -15, -7, 6, + 17, 25, 46, 59, 68, 63, 43, 20, -6, 14, 10, -8, -20, -30, -34, -22, + -2, 24, 15, -30, -49, -49, -37, -28, -15, -26, -28, -18, -11, -7, 7, 27, + 42, 58, 70, 70, 53, 35, 4, 0, 18, -1, -15, -32, -31, -26, -12, 12, + 28, -4, -44, -53, -44, -39, -25, -23, -28, -19, -11, -12, -16, 13, 42, 56, + 71, 71, 57, 45, 23, -3, 10, 11, -6, -27, -35, -25, -22, -1, 23, 17, + -29, -54, -46, -44, -39, -29, -28, -21, -15, -15, -26, -12, 39, 57, 70, 73, + 60, 49, 41, 13, 1, 11, 0, -16, -32, -25, -15, -14, 10, 23, -5, -48, + -46, -42, -49, -43, -31, -24, -15, -13, -24, -32, 18, 59, 71, 77, 67, 57, + 47, 33, 3, 5, 5, -9, -23, -33, -16, -14, -5, 17, 12, -29, -44, -35, + -50, -57, -43, -30, -18, -11, -22, -39, -9, 44, 68, 82, 69, 61, 49, 42, + 18, 5, 5, -8, -12, -26, -14, -7, -9, 5, 16, -6, -36, -32, -42, -62, + -55, -39, -29, -15, -14, -34, -30, 20, 59, 82, 79, 66, 58, 45, 38, 9, + 1, -7, -11, -16, -19, -3, -6, -6, 9, 5, -22, -32, -32, -58, -70, -56, + -42, -24, -16, -25, -39, -9, 41, 72, 86, 73, 65, 46, 40, 30, -4, -7, + -14, -12, -20, -3, 4, -5, 1, 8, -9, -27, -25, -40, -67, -67, -55, -38, + -24, -17, -25, -28, 16, 61, 81, 82, 71, 60, 37, 42, 17, -14, -17, -11, + -13, -8, 10, 2, -2, 1, -1, -17, -20, -26, -54, -69, -70, -58, -34, -25, + -16, -23, -9, 37, 70, 87, 80, 68, 44, 38, 39, -5, -27, -19, -12, -6, + 13, 10, 4, 1, 1, -5, -19, -20, -37, -59, -71, -71, -54, -35, -17, -9, + -20, 11, 49, 80, 86, 72, 54, 36, 45, 23, -25, -34, -16, -9, 11, 17, + 8, 5, -4, -2, -15, -19, -26, -50, -69, -77, -71, -51, -29, -7, -11, -6, + 26, 64, 87, 78, 60, 40, 42, 45, 2, -38, -34, -12, 10, 24, 10, 11, + 3, -1, -6, -20, -16, -31, -61, -81, -80, -69, -41, -16, -5, -8, 10, 47, + 81, 86, 70, 44, 36, 48, 32, -21, -48, -31, -3, 24, 24, 10, 15, 0, + 2, -17, -21, -18, -45, -81, -87, -80, -57, -33, -11, -6, 2, 30, 74, 86, + 77, 55, 34, 42, 48, 13, -39, -50, -20, 15, 34, 14, 16, 12, 4, -5, + -26, -16, -19, -64, -92, -91, -65, -43, -26, -12, -1, 16, 47, 83, 76, 66, + 40, 33, 45, 33, -8, -52, -41, -5, 32, 30, 15, 25, 13, 8, -22, -28, + -11, -34, -85, -101, -86, -52, -36, -25, -13, 15, 32, 69, 80, 69, 52, 32, + 37, 39, 19, -30, -54, -24, 10, 38, 25, 25, 22, 18, -6, -35, -20, -14, + -59, -98, -99, -68, -41, -30, -23, 5, 28, 52, 74, 67, 59, 43, 32, 35, + 32, -2, -47, -38, -13, 23, 33, 31, 26, 27, 16, -29, -37, -15, -33, -80, + -104, -89, -54, -35, -31, -11, 17, 42, 63, 68, 60, 59, 37, 27, 33, 22, + -28, -37, -26, 3, 32, 38, 30, 25, 30, -3, -41, -29, -23, -55, -90, -98, + -76, -39, -32, -21, 4, 36, 52, 61, 61, 63, 48, 24, 28, 34, -10, -31, + -29, -14, 15, 37, 37, 28, 31, 19, -27, -40, -24, -38, -69, -95, -96, -60, + -32, -26, -10, 19, 45, 53, 58, 59, 58, 29, 23, 39, 14, -21, -25, -23, + 1, 27, 43, 34, 34, 21, 0, -36, -32, -31, -49, -84, -102, -83, -41, -22, + -19, -1, 35, 49, 52, 53, 56, 39, 23, 34, 33, -3, -23, -22, -10, 17, + 36, 36, 39, 26, 8, -16, -34, -29, -36, -61, -93, -95, -58, -26, -18, -11, + 22, 48, 53, 53, 51, 41, 31, 33, 37, 16, -15, -24, -14, 4, 29, 34, + 41, 32, 8, -7, -19, -28, -30, -54, -83, -101, -76, -40, -20, -21, 1, 36, + 54, 55, 44, 33, 32, 35, 36, 30, 7, -26, -19, -5, 22, 36, 37, 37, + 15, -3, -5, -15, -24, -43, -75, -94, -87, -47, -29, -25, -14, 26, 48, 62, + 49, 29, 23, 35, 45, 38, 19, -16, -28, -7, 10, 29, 32, 38, 23, -2, + -10, -6, -12, -28, -67, -90, -98, -59, -32, -28, -25, 3, 43, 56, 59, 25, + 16, 24, 46, 43, 31, 0, -31, -14, 5, 25, 29, 32, 29, 6, -13, -6, + -3, -8, -49, -85, -97, -75, -31, -30, -30, -12, 31, 50, 61, 40, 12, 14, + 34, 53, 43, 20, -23, -20, -3, 21, 29, 23, 24, 15, -10, -8, -1, 2, + -25, -75, -98, -92, -42, -31, -35, -24, 14, 41, 50, 49, 22, 11, 20, 45, + 52, 39, 0, -26, -12, 9, 35, 25, 18, 14, 1, -13, -6, 4, 3, -49, + -89, -102, -61, -27, -30, -27, -4, 34, 46, 46, 32, 17, 13, 26, 47, 50, + 29, -19, -22, -4, 30, 37, 15, 7, 7, -5, -10, -4, 9, -20, -72, -100, + -86, -41, -33, -31, -16, 18, 43, 34, 32, 27, 23, 15, 31, 47, 48, 9, + -24, -16, 12, 43, 25, -2, 0, 9, -9, -15, 2, 8, -40, -87, -99, -69, + -37, -31, -19, 6, 38, 35, 25, 31, 35, 26, 18, 36, 49, 40, -10, -22, + -9, 29, 40, 6, -12, 6, 6, -16, -11, 9, -6, -61, -95, -90, -58, -35, + -26, -5, 23, 36, 18, 21, 36, 41, 28, 22, 38, 52, 23, -17, -17, 7, + 39, 21, -12, -13, 16, -8, -22, -5, 6, -25, -77, -93, -79, -46, -30, -11, + 15, 36, 22, 5, 29, 47, 47, 24, 22, 41, 48, 7, -15, -4, 22, 33, + 6, -23, 4, 8, -21, -15, -1, -5, -49, -79, -92, -71, -43, -20, 11, 31, + 29, 4, 16, 40, 55, 41, 22, 31, 50, 25, -9, -2, 8, 23, 16, -17, + -6, 8, -10, -15, -6, -4, -29, -56, -80, -86, -61, -42, 0, 30, 33, 12, + 2, 24, 47, 55, 37, 28, 39, 40, 4, -1, 6, 6, 16, -4, -13, 1, + -2, -9, -11, -11, -21, -35, -55, -82, -80, -64, -24, 27, 36, 23, 3, 10, + 35, 61, 55, 40, 35, 35, 19, 6, 12, 4, 1, 3, -12, -3, -2, -4, + -4, -14, -23, -30, -37, -58, -83, -84, -58, 8, 37, 33, 11, 3, 20, 46, + 62, 55, 50, 28, 16, 12, 15, 9, -4, -9, -9, -4, -5, -7, 2, -7, + -28, -35, -31, -36, -67, -90, -86, -23, 28, 38, 25, 5, 13, 34, 58, 58, + 69, 50, 15, 10, 20, 16, -3, -14, -14, -2, 1, -12, -3, 3, -20, -36, + -39, -26, -46, -81, -98, -61, 6, 27, 30, 16, 12, 25, 50, 57, 66, 74, + 31, 4, 16, 21, 8, -13, -21, -10, 8, -5, -11, 6, -8, -31, -40, -29, + -30, -66, -93, -84, -22, 17, 22, 26, 16, 20, 43, 56, 56, 70, 60, 17, + 8, 18, 15, -10, -26, -21, 6, 7, -12, -1, 1, -20, -33, -34, -31, -51, + -79, -92, -52, -6, 9, 19, 23, 21, 40, 57, 59, 60, 72, 43, 17, 13, + 18, 3, -23, -32, -5, 14, -7, -11, 7, -12, -26, -31, -37, -46, -66, -85, + -67, -21, -5, 3, 16, 22, 37, 54, 59, 55, 60, 58, 30, 16, 13, 11, + -15, -34, -23, 9, 7, -12, -2, -4, -19, -16, -31, -49, -64, -76, -72, -35, + -12, -14, 0, 15, 34, 53, 60, 58, 53, 57, 43, 30, 18, 12, -4, -27, + -28, -8, 14, -3, -9, -2, -13, -9, -17, -49, -66, -70, -69, -44, -15, -19, + -11, 2, 21, 53, 64, 68, 55, 48, 44, 36, 28, 15, -1, -18, -23, -19, + -4, 5, -3, 1, -9, -7, -1, -35, -70, -74, -70, -50, -21, -14, -22, -7, + -1, 39, 66, 77, 69, 46, 38, 36, 38, 22, 5, -12, -16, -12, -17, -8, + -5, 2, 1, -6, 5, -13, -64, -78, -73, -60, -31, -14, -17, -16, -10, 7, + 61, 79, 81, 57, 38, 28, 32, 24, 9, -4, -10, -4, -11, -20, -13, -2, + 11, 4, 4, -2, -41, -76, -76, -69, -43, -22, -12, -17, -14, -14, 25, 74, + 92, 79, 47, 31, 26, 26, 11, 3, -5, 0, 0, -20, -26, -11, 9, 14, + 9, 4, -24, -61, -76, -74, -53, -30, -13, -8, -12, -25, -8, 51, 90, 93, + 63, 42, 21, 18, 13, 6, 2, 1, 8, -12, -30, -27, -2, 14, 18, 11, + -13, -48, -68, -79, -70, -44, -19, -2, -5, -21, -31, 18, 77, 100, 81, 55, + 29, 7, 8, 6, 7, 4, 14, 0, -26, -34, -13, 9, 16, 17, 1, -35, + -58, -70, -82, -62, -29, -2, 1, -14, -36, -15, 50, 89, 95, 71, 46, 5, + -6, 4, 11, 3, 11, 14, -12, -31, -22, -2, 8, 16, 16, -15, -53, -56, + -80, -81, -41, -5, 9, -3, -30, -34, 17, 73, 97, 86, 63, 25, -12, -6, + 11, 13, 1, 15, 4, -19, -25, -5, 2, 9, 19, 10, -39, -48, -61, -95, + -67, -17, 12, 8, -23, -43, -9, 49, 85, 91, 76, 50, 1, -23, 2, 22, + 5, 2, 14, -5, -23, -12, 0, -2, 13, 17, -15, -48, -43, -83, -88, -38, + 5, 17, -11, -41, -28, 27, 67, 83, 82, 65, 29, -21, -18, 21, 19, -7, + 3, 6, -8, -14, 1, 0, 0, 13, 2, -34, -42, -59, -99, -63, -12, 17, + 0, -35, -42, 1, 53, 69, 79, 72, 53, -1, -34, 2, 32, 3, -8, 1, + 2, -2, -3, 8, -2, 3, 7, -18, -40, -39, -76, -81, -35, 9, 17, -22, + -46, -24, 34, 59, 68, 74, 66, 27, -26, -22, 31, 24, -10, -11, 0, 14, + 1, 5, 8, -5, -2, -10, -34, -35, -48, -77, -59, -13, 20, -4, -37, -35, + 8, 47, 55, 68, 74, 49, -4, -34, 10, 39, 1, -13, -11, 14, 14, 3, + 20, 6, -9, -14, -29, -37, -28, -56, -66, -42, 9, 9, -25, -38, -14, 27, + 45, 54, 72, 61, 21, -25, -14, 31, 19, -10, -15, -2, 22, 6, 22, 24, + -4, -20, -28, -38, -24, -28, -54, -57, -20, 14, -10, -29, -26, 2, 29, 39, + 61, 66, 39, -6, -25, 16, 30, 0, -16, -8, 12, 13, 18, 38, 10, -20, + -36, -34, -31, -16, -33, -56, -42, 0, 0, -21, -22, -12, 11, 25, 49, 68, + 53, 14, -20, -3, 29, 15, -11, -12, 3, 13, 13, 42, 34, -12, -39, -37, + -27, -22, -18, -44, -50, -21, 3, -12, -15, -18, -5, 9, 27, 60, 60, 32, + -6, -12, 21, 25, -4, -12, -2, 7, 8, 33, 53, 8, -37, -41, -25, -22, + -16, -27, -47, -34, -10, -10, -15, -15, -15, -5, 5, 41, 63, 44, 12, -11, + 10, 32, 10, -14, -8, 8, 5, 19, 53, 34, -24, -43, -25, -14, -15, -19, + -35, -35, -20, -12, -8, -14, -17, -19, -13, 19, 55, 53, 22, -8, 4, 31, + 26, -8, -13, 6, 10, 7, 39, 50, -2, -41, -31, -10, -13, -23, -31, -33, + -24, -15, -7, -13, -16, -22, -23, -6, 38, 55, 34, 1, -1, 23, 34, 9, + -18, -3, 14, 9, 20, 51, 24, -28, -37, -6, 2, -20, -30, -27, -21, -22, + -6, -12, -17, -21, -32, -27, 9, 49, 43, 12, -4, 14, 34, 24, -9, -12, + 12, 19, 13, 30, 37, -3, -35, -15, 12, -10, -31, -30, -15, -18, -13, -3, + -19, -20, -31, -35, -17, 28, 44, 22, 0, 7, 28, 27, 5, -15, 1, 20, + 20, 17, 28, 19, -21, -23, 12, 8, -22, -32, -20, -8, -15, 0, -13, -23, + -25, -43, -36, 4, 37, 30, 11, 4, 22, 28, 15, 0, -10, 9, 23, 14, + 11, 24, 5, -21, 2, 17, -8, -27, -27, -7, -10, -6, -1, -20, -26, -39, + -53, -20, 23, 36, 17, 7, 14, 28, 16, 12, -3, 2, 19, 16, 2, 14, + 19, -8, -5, 17, 4, -15, -26, -10, -4, -12, 1, -8, -23, -38, -58, -41, + 0, 29, 23, 11, 16, 21, 15, 9, 11, -6, 11, 20, 4, 3, 24, 5, + -5, 10, 17, -6, -15, -15, 6, -15, -8, 0, -11, -37, -54, -56, -24, 13, + 29, 12, 15, 20, 19, 6, 16, 5, -2, 10, 11, -3, 22, 18, 0, 6, + 20, 10, -6, -12, 1, -6, -23, 0, 1, -23, -56, -60, -43, -10, 19, 22, + 15, 22, 18, 6, 11, 17, -2, -5, 10, 4, 7, 23, 1, 3, 16, 22, + 5, -1, 0, 5, -21, -14, 6, -6, -46, -64, -54, -29, 1, 17, 18, 24, + 25, 10, 1, 17, 9, -8, -1, 15, 6, 20, 11, 2, 14, 25, 16, 9, + 5, 7, -11, -26, -5, 4, -27, -62, -62, -40, -17, 8, 11, 21, 29, 17, + -2, 10, 17, -8, -16, 6, 13, 11, 15, 3, 8, 24, 26, 14, 12, 12, + 4, -26, -15, 1, -12, -50, -64, -48, -27, -10, 5, 8, 32, 31, 1, -1, + 18, 0, -23, -6, 18, 14, 11, 5, 3, 17, 35, 25, 16, 18, 14, -11, + -27, -8, -6, -30, -55, -53, -36, -20, -5, 5, 14, 43, 13, -6, 11, 11, + -22, -22, 7, 19, 13, 10, 1, 7, 30, 36, 22, 23, 23, 6, -28, -20, + -6, -23, -43, -49, -43, -29, -19, 3, 1, 34, 29, -4, 3, 13, -13, -32, + -3, 20, 14, 11, 5, 2, 23, 42, 34, 22, 23, 21, -13, -26, -14, -19, + -32, -38, -43, -32, -29, -6, 4, 16, 35, 9, -4, 11, 0, -33, -22, 9, + 13, 12, 9, 3, 14, 35, 47, 34, 23, 27, 8, -22, -19, -16, -30, -29, + -42, -33, -32, -23, 4, 9, 24, 20, -1, 3, 10, -20, -36, -5, 13, 9, + 11, 8, 8, 21, 43, 48, 27, 22, 23, -7, -25, -20, -28, -25, -31, -36, + -28, -33, -8, 11, 14, 14, 6, -8, 7, -5, -39, -25, 7, 14, 9, 10, + 12, 15, 29, 55, 41, 23, 22, 9, -12, -23, -28, -24, -23, -34, -26, -31, + -21, 9, 19, 9, 1, -3, -1, 7, -32, -38, -9, 13, 11, 9, 11, 14, + 21, 46, 53, 32, 24, 12, -2, -16, -26, -24, -17, -34, -33, -25, -24, -4, + 17, 14, -3, -4, -7, 3, -13, -46, -25, 2, 17, 5, 8, 12, 18, 32, + 56, 38, 29, 15, 8, -4, -22, -30, -14, -22, -42, -25, -15, -10, 6, 17, + 1, -5, -7, -10, -2, -38, -37, -7, 15, 9, 2, 8, 21, 26, 43, 44, + 29, 18, 7, 12, -9, -25, -24, -11, -35, -43, -17, -5, 3, 10, 9, -3, + -3, -23, -9, -23, -45, -22, 7, 15, 2, 4, 17, 33, 31, 45, 35, 23, + 8, 17, 6, -16, -26, -14, -20, -48, -27, -2, 6, 11, 9, -1, 6, -15, + -28, -18, -39, -32, -7, 11, 7, 6, 7, 33, 30, 31, 41, 27, 7, 13, + 24, -3, -18, -22, -9, -40, -41, -10, 4, 9, 17, 3, 5, -4, -37, -29, + -29, -35, -19, 1, 10, 3, 7, 25, 41, 19, 31, 32, 13, 5, 27, 14, + -6, -19, -12, -23, -48, -22, 7, 8, 16, 11, 1, 6, -29, -46, -32, -32, + -20, -5, 7, 4, 3, 21, 43, 32, 15, 29, 16, 8, 19, 26, 3, -9, + -22, -13, -42, -37, -8, 11, 14, 25, 9, 4, -17, -50, -44, -30, -25, -14, + -1, 11, 1, 18, 36, 41, 12, 14, 18, 14, 15, 20, 17, 6, -14, -18, + -27, -39, -19, 5, 12, 24, 27, 8, -13, -49, -53, -32, -27, -19, -12, 7, + 7, 12, 31, 43, 26, 2, 8, 14, 22, 13, 17, 18, 6, -17, -26, -36, + -28, -6, 14, 25, 35, 20, -6, -42, -57, -37, -23, -23, -20, 0, 9, 8, + 25, 41, 40, 7, -4, 1, 23, 21, 14, 22, 20, -2, -24, -34, -31, -13, + 8, 24, 37, 33, 8, -32, -62, -44, -20, -22, -27, -9, 9, 7, 16, 31, + 42, 20, -10, -13, 10, 26, 7, 13, 25, 18, -11, -35, -39, -20, 0, 17, + 37, 37, 19, -17, -58, -55, -26, -18, -25, -21, 0, 14, 12, 20, 38, 35, + 0, -19, -9, 24, 19, 3, 21, 31, 17, -24, -42, -30, -3, 13, 34, 42, + 28, -2, -45, -62, -38, -22, -19, -20, -12, 12, 17, 11, 29, 42, 18, -16, + -20, 3, 24, 2, 4, 26, 36, 0, -38, -45, -13, 12, 27, 41, 34, 14, + -27, -62, -55, -30, -19, -15, -16, -2, 18, 11, 14, 37, 31, -6, -22, -12, + 15, 10, -10, 12, 36, 30, -19, -46, -33, 11, 24, 28, 35, 28, -5, -44, + -65, -44, -23, -11, -9, -8, 5, 14, 10, 25, 37, 14, -17, -18, -2, 14, + -7, -6, 23, 43, 10, -33, -38, -9, 24, 24, 28, 30, 11, -21, -57, -61, + -39, -12, -5, -5, -3, 7, 10, 17, 31, 30, -3, -20, -14, 6, 1, -16, + 2, 38, 38, -5, -30, -24, 13, 25, 21, 28, 15, 1, -34, -64, -62, -23, + 0, 2, -1, -1, 5, 14, 24, 33, 14, -12, -23, -4, 7, -18, -18, 18, + 43, 25, -9, -22, -2, 21, 19, 24, 20, 11, -13, -47, -69, -46, -7, 5, + 6, -1, -4, 9, 21, 31, 25, 5, -15, -20, 3, -8, -33, -7, 29, 37, + 20, -10, -10, 9, 15, 17, 14, 12, 1, -23, -55, -70, -30, 5, 13, 2, + -8, -1, 15, 25, 30, 15, -1, -20, -8, -3, -31, -28, 8, 31, 41, 15, + -6, 0, 9, 14, 12, 9, 8, -10, -28, -63, -55, -12, 17, 11, -7, -13, + 8, 22, 26, 19, 9, -7, -13, -5, -23, -39, -10, 17, 41, 38, 8, 0, + 5, 7, 12, 5, 7, -6, -8, -39, -60, -35, 7, 19, 6, -10, -6, 15, + 26, 22, 15, 9, -8, -13, -24, -45, -29, -1, 29, 48, 30, 2, 6, 5, + 9, 5, -1, -5, -4, -13, -51, -51, -16, 20, 13, 0, -11, 7, 25, 22, + 18, 17, 10, -8, -22, -50, -43, -13, 15, 46, 42, 16, 7, 8, 7, 7, + -1, -6, -10, -4, -27, -45, -36, 5, 16, 7, -5, -5, 20, 22, 19, 19, + 22, 7, -15, -43, -62, -29, 3, 35, 43, 27, 11, 9, 8, 4, 2, -9, + -13, -7, -15, -30, -43, -16, 12, 13, 4, -8, 12, 24, 17, 16, 24, 25, + -3, -38, -72, -52, -9, 25, 42, 30, 21, 8, 14, 4, 6, -3, -13, -12, + -13, -18, -36, -34, 3, 14, 9, -9, 5, 26, 18, 13, 26, 34, 13, -31, + -69, -68, -16, 19, 35, 29, 22, 6, 16, 3, 2, 6, -5, -15, -20, -19, + -21, -34, -17, 8, 16, -2, -3, 24, 27, 16, 23, 34, 32, -10, -56, -80, + -45, 6, 29, 29, 22, 10, 14, 13, -4, 6, 7, -8, -27, -27, -18, -20, + -28, -8, 14, 8, -7, 11, 29, 21, 17, 25, 35, 16, -36, -77, -67, -14, + 25, 30, 22, 11, 10, 19, 5, 2, 6, 5, -18, -34, -25, -13, -23, -19, + 4, 13, 0, 7, 24, 32, 24, 22, 31, 30, -12, -62, -76, -41, 9, 28, + 24, 15, 6, 18, 16, 6, 6, 7, -7, -32, -37, -16, -18, -24, -8, 11, + 7, 7, 20, 31, 35, 25, 24, 33, 9, -40, -72, -58, -16, 17, 27, 16, + 6, 10, 22, 12, 8, 8, 2, -23, -43, -26, -16, -24, -18, 2, 6, 7, + 21, 29, 36, 32, 21, 27, 22, -21, -57, -67, -38, -4, 26, 21, 9, 3, + 18, 25, 18, 10, 2, -11, -42, -36, -24, -27, -23, -9, 5, 2, 17, 32, + 42, 36, 27, 18, 25, -2, -39, -58, -51, -27, 11, 27, 11, 1, 9, 24, + 25, 21, 5, -8, -31, -37, -30, -33, -24, -15, 0, -2, 13, 31, 48, 47, + 33, 15, 18, 10, -27, -50, -52, -44, -12, 21, 21, 5, -1, 13, 33, 30, + 16, -6, -26, -39, -33, -35, -28, -20, -10, -8, 4, 27, 51, 61, 45, 21, + 13, 14, -11, -39, -40, -44, -36, 1, 25, 16, 1, 2, 27, 40, 28, 3, + -22, -38, -38, -32, -33, -21, -18, -14, -8, 18, 50, 66, 60, 27, 7, 12, + -3, -31, -36, -37, -46, -27, 18, 26, 5, -3, 8, 35, 43, 16, -14, -36, + -43, -32, -32, -25, -16, -23, -14, 6, 46, 64, 74, 49, 9, 4, 7, -23, + -37, -34, -41, -44, -8, 31, 19, -5, 0, 21, 47, 33, -2, -33, -43, -43, + -32, -29, -14, -22, -23, -6, 34, 62, 75, 71, 30, 0, 8, -13, -37, -34, + -35, -45, -34, 18, 31, 5, -5, 7, 35, 44, 12, -23, -45, -49, -40, -29, + -18, -18, -27, -15, 22, 57, 74, 80, 57, 15, 4, -1, -39, -34, -34, -40, + -46, -4, 25, 13, -3, 2, 22, 44, 25, -10, -38, -44, -50, -34, -20, -14, + -31, -21, 5, 47, 63, 81, 76, 38, 8, 9, -30, -45, -35, -36, -43, -20, + 9, 14, 5, 3, 7, 36, 32, 3, -32, -43, -50, -40, -28, -13, -24, -28, + -2, 35, 56, 73, 86, 58, 23, 21, -10, -49, -45, -33, -39, -25, -3, 5, + 5, 8, 5, 18, 32, 17, -19, -45, -49, -41, -35, -22, -19, -31, -12, 28, + 52, 59, 76, 74, 41, 31, 10, -39, -58, -41, -32, -27, -5, -3, 3, 8, + 8, 10, 24, 22, -4, -39, -52, -42, -35, -30, -18, -28, -22, 20, 53, 52, + 60, 73, 62, 43, 31, -18, -56, -61, -35, -28, -9, -6, -3, 3, 9, 10, + 12, 18, 8, -23, -53, -50, -31, -35, -24, -28, -26, 3, 48, 55, 52, 59, + 66, 57, 46, 7, -37, -67, -53, -24, -11, -4, -6, 0, 3, 13, 10, 7, + 10, -6, -38, -58, -36, -30, -30, -26, -26, -11, 33, 60, 56, 49, 59, 67, + 58, 32, -15, -58, -69, -34, -14, -8, -6, 1, -4, 7, 8, 2, 4, 4, + -21, -54, -49, -30, -30, -28, -29, -18, 13, 53, 60, 50, 44, 63, 61, 49, + 11, -33, -71, -49, -19, -9, -10, 5, 2, -1, 4, -1, 4, 5, -5, -38, + -55, -40, -28, -21, -25, -26, -2, 40, 61, 56, 39, 53, 66, 54, 33, -4, + -55, -63, -29, -18, -12, 3, 11, -4, -4, -9, -3, 4, 4, -18, -49, -49, + -35, -18, -18, -25, -16, 24, 51, 60, 42, 43, 66, 57, 42, 21, -23, -63, + -44, -26, -18, -10, 13, 9, -8, -18, -17, 5, 5, -4, -35, -47, -42, -24, + -11, -20, -21, 5, 36, 56, 53, 37, 60, 59, 40, 34, 11, -34, -52, -33, + -21, -15, 1, 21, 2, -19, -33, -10, 8, 3, -20, -42, -41, -33, -14, -16, + -18, -7, 21, 43, 54, 39, 47, 61, 44, 31, 27, -4, -41, -47, -28, -23, + -9, 11, 15, -9, -34, -34, 1, 10, -2, -30, -38, -34, -18, -15, -17, -10, + 10, 27, 43, 42, 42, 53, 54, 36, 24, 14, -15, -42, -36, -32, -22, 1, + 13, 7, -26, -48, -24, 11, 10, -14, -35, -32, -19, -16, -15, -11, 5, 18, + 31, 34, 41, 48, 51, 46, 28, 26, 8, -26, -36, -33, -35, -12, 7, 12, + -8, -45, -47, -9, 13, 5, -24, -32, -17, -14, -16, -11, 6, 14, 20, 26, + 27, 47, 49, 49, 34, 25, 22, -6, -31, -27, -39, -30, -10, 13, 6, -28, + -57, -31, -3, 12, -7, -28, -19, -8, -21, -18, -2, 18, 17, 17, 19, 34, + 47, 53, 42, 34, 30, 13, -22, -20, -30, -44, -32, -4, 15, -7, -45, -49, + -18, 4, 10, -14, -18, 0, -11, -26, -7, 15, 23, 10, 10, 20, 34, 51, + 49, 38, 41, 30, -8, -28, -15, -39, -47, -28, 5, 10, -26, -55, -34, -9, + 10, 3, -13, -4, 1, -21, -19, 3, 25, 13, 5, 9, 18, 36, 54, 39, + 40, 46, 16, -27, -17, -23, -47, -47, -18, 9, -2, -47, -51, -23, 0, 4, + 0, 1, 9, -11, -20, -9, 20, 23, 4, 2, 8, 20, 45, 46, 38, 53, + 41, -13, -30, -19, -36, -52, -40, -9, 5, -23, -53, -35, -6, 4, 3, 6, + 10, 5, -16, -17, 6, 30, 12, 0, -4, 9, 32, 47, 43, 55, 57, 16, + -27, -30, -28, -44, -52, -31, -6, -8, -43, -43, -15, -1, -1, 8, 10, 13, + 2, -18, -11, 21, 23, 6, -5, 0, 19, 33, 41, 56, 67, 44, -5, -34, + -35, -32, -46, -47, -27, -7, -30, -44, -23, -2, -2, 3, 7, 14, 18, -1, + -19, 4, 20, 16, -5, -9, 10, 27, 30, 46, 65, 63, 26, -22, -42, -34, + -41, -46, -40, -18, -25, -39, -28, -4, 1, -1, 5, 10, 24, 19, -8, -6, + 11, 20, 4, -13, 2, 22, 24, 36, 59, 70, 51, 5, -39, -39, -43, -47, + -45, -31, -30, -39, -33, -7, 1, -2, 1, 4, 19, 25, 5, -5, 1, 12, + 13, -12, -12, 18, 25, 21, 46, 68, 69, 36, -17, -39, -44, -51, -43, -33, + -35, -41, -38, -15, 8, 0, 0, 0, 13, 26, 19, 5, 0, -1, 10, -2, + -14, 5, 25, 19, 29, 54, 71, 59, 9, -31, -43, -56, -50, -32, -38, -47, + -42, -26, 8, 10, -3, -3, 7, 20, 23, 16, 8, -5, 3, 2, -17, -6, + 22, 20, 18, 40, 66, 71, 37, -13, -36, -52, -61, -38, -32, -47, -51, -38, + -7, 19, 6, -6, 4, 14, 19, 21, 19, 2, -5, 0, -13, -12, 14, 21, + 13, 27, 53, 71, 57, 12, -25, -42, -61, -54, -33, -38, -52, -50, -22, 13, + 17, -4, 1, 16, 17, 19, 25, 11, -2, -2, -11, -18, 6, 21, 15, 18, + 43, 66, 67, 34, -7, -30, -49, -58, -42, -36, -42, -54, -36, -2, 20, 4, + -4, 11, 16, 17, 26, 17, 4, 1, -8, -22, -8, 17, 16, 17, 27, 55, + 66, 48, 10, -25, -36, -49, -52, -42, -39, -47, -46, -18, 13, 14, -1, 3, + 13, 19, 27, 18, 2, 5, 1, -14, -17, 6, 13, 16, 26, 44, 64, 54, + 27, -15, -30, -33, -49, -50, -43, -44, -45, -30, -1, 13, 3, 6, 10, 22, + 30, 21, 3, 2, 2, -3, -18, -9, 8, 11, 23, 35, 55, 58, 37, 1, + -25, -18, -33, -51, -48, -46, -41, -30, -17, 6, 3, 7, 9, 16, 30, 27, + 9, 3, 3, 1, -10, -18, 0, 3, 12, 37, 46, 52, 40, 15, -23, -16, + -14, -39, -48, -48, -45, -31, -20, -7, 1, 4, 14, 13, 21, 26, 16, 2, + 1, 1, 1, -16, -12, 1, 5, 29, 50, 47, 39, 21, -11, -21, -3, -23, + -41, -45, -47, -37, -21, -13, -6, 1, 16, 20, 22, 22, 18, 10, 2, 1, + 6, -7, -16, -10, 0, 16, 51, 53, 38, 22, -1, -21, -1, -4, -30, -41, + -45, -45, -28, -13, -13, -8, 13, 24, 26, 15, 13, 15, 8, -4, 1, -2, + -11, -15, -11, 2, 40, 56, 44, 21, 1, -16, -10, 5, -16, -32, -38, -41, + -36, -22, -14, -15, 4, 24, 32, 18, 7, 14, 14, 4, -2, -1, -8, -12, + -15, -6, 24, 50, 51, 28, 1, -13, -14, 4, 1, -18, -31, -35, -36, -33, + -21, -21, -5, 19, 38, 23, 3, 5, 17, 15, 2, -3, -7, -8, -18, -14, + 12, 39, 50, 35, 2, -14, -14, -3, 6, -6, -24, -27, -32, -40, -25, -22, + -12, 8, 35, 34, 10, 2, 5, 19, 9, -6, -4, -3, -15, -18, 4, 30, + 42, 40, 13, -17, -16, -7, 3, 5, -14, -21, -24, -41, -37, -23, -18, -1, + 22, 37, 17, 4, -1, 11, 17, 1, -7, -4, -12, -22, -6, 24, 35, 33, + 25, -7, -26, -15, 2, 14, 3, -16, -19, -33, -42, -27, -23, -10, 15, 28, + 27, 8, 2, 5, 20, 11, -4, -6, -7, -19, -11, 17, 31, 26, 25, 6, + -24, -25, -6, 11, 14, -3, -13, -25, -39, -33, -23, -17, 7, 19, 26, 19, + 4, 1, 15, 14, -1, -5, -10, -14, -22, 8, 33, 28, 20, 16, -13, -26, + -17, 9, 22, 5, -8, -18, -37, -35, -28, -23, -4, 12, 16, 28, 12, 1, + 12, 18, 3, -2, -9, -10, -27, -10, 29, 34, 18, 16, 2, -26, -29, -3, + 27, 19, -4, -10, -29, -36, -30, -29, -12, 9, 3, 18, 21, 7, 12, 17, + 3, -2, -7, -7, -19, -26, 15, 36, 21, 12, 9, -15, -30, -18, 19, 30, + 6, -5, -21, -32, -25, -29, -22, 6, 0, 3, 20, 14, 12, 18, 12, 0, + -9, -12, -9, -26, -4, 31, 28, 11, 10, -6, -24, -29, 3, 35, 19, -3, + -15, -26, -19, -23, -31, -6, 4, -7, 13, 19, 17, 20, 18, 9, -9, -19, + -5, -17, -20, 16, 34, 18, 9, 0, -16, -25, -10, 30, 29, 3, -10, -19, + -19, -16, -29, -19, 3, -9, -5, 13, 21, 24, 16, 13, 1, -23, -14, -12, + -19, -2, 28, 21, 8, 1, -11, -23, -19, 16, 41, 14, -8, -13, -9, -13, + -18, -27, -4, -5, -12, -1, 19, 31, 18, 10, 16, -20, -22, -13, -14, -12, + 18, 26, 12, 4, -4, -17, -18, -1, 38, 31, -5, -14, -7, -7, -14, -24, + -13, -3, -13, -12, 7, 30, 34, 14, 18, -5, -33, -18, -10, -14, 1, 19, + 14, 6, -8, -13, -15, -2, 19, 40, 8, -13, -9, -4, -8, -18, -20, -9, + -14, -16, -7, 22, 37, 23, 16, 10, -26, -28, -13, -9, -5, 14, 14, 9, + -9, -17, -13, -1, 8, 31, 26, -6, -10, -4, -2, -12, -19, -11, -11, -17, + -12, 6, 34, 29, 15, 16, -7, -35, -25, -9, -6, 8, 14, 12, 1, -15, + -14, 3, 10, 19, 29, 8, -10, -9, 1, -7, -20, -10, -9, -17, -17, -1, + 30, 35, 18, 15, 5, -28, -33, -17, -6, -4, 8, 13, 5, -14, -19, 1, + 14, 14, 20, 17, 0, -8, -2, -3, -14, -18, -9, -12, -18, -6, 21, 37, + 26, 7, 10, -13, -33, -24, -6, -2, 0, 9, 11, -5, -19, -7, 16, 18, + 13, 18, 11, -2, -6, -3, -6, -22, -10, -11, -16, -11, 17, 34, 32, 9, + 9, 2, -26, -30, -14, -2, -5, 3, 8, 3, -16, -12, 8, 21, 13, 13, + 15, 2, -3, -5, -5, -20, -16, -8, -16, -20, 6, 32, 34, 14, -4, 6, + -12, -26, -20, -7, -6, -4, 4, 7, -2, -15, 1, 17, 15, 9, 15, 10, + 0, -3, -7, -15, -22, -4, -7, -19, -7, 29, 36, 20, -6, -1, 0, -17, + -19, -12, -9, -7, -1, 2, 6, -3, -8, 10, 18, 9, 8, 21, 4, -2, + -8, -13, -20, -12, -2, -16, -14, 14, 39, 26, -3, -17, 1, -6, -16, -12, + -7, -9, -9, 0, 3, 11, -3, 0, 15, 13, 3, 19, 12, -8, -6, -14, + -19, -16, 0, -6, -17, 3, 33, 35, 5, -18, -9, 1, -15, -11, -8, -8, + -16, -8, 1, 15, 15, 3, 11, 19, 2, 12, 26, 0, -10, -13, -21, -11, + 1, -1, -18, -2, 23, 35, 17, -12, -21, -2, -8, -9, -8, -9, -12, -17, + -5, 10, 22, 8, 7, 18, 7, -1, 23, 13, -13, -19, -23, -14, 5, 2, + -15, -13, 17, 30, 22, -3, -24, -7, -2, -9, -6, -10, -8, -21, -19, 5, + 22, 22, 13, 15, 13, -3, 11, 18, -4, -20, -28, -20, 4, 11, -10, -18, + 6, 26, 17, 3, -20, -12, -2, -11, -7, -8, -8, -16, -27, -7, 19, 30, + 21, 19, 15, 4, 3, 18, 2, -17, -33, -24, 0, 17, 1, -16, -6, 24, + 19, 5, -17, -18, 1, -8, -12, -7, -11, -10, -22, -14, 10, 29, 29, 32, + 23, 13, 0, 9, 6, -12, -28, -36, -7, 13, 12, -8, -17, 12, 24, 6, + -10, -20, 1, 1, -13, -9, -12, -16, -20, -17, 0, 21, 27, 31, 35, 20, + 7, 0, 2, -13, -19, -37, -19, 8, 18, 9, -16, -9, 20, 11, -2, -25, + -13, 8, -4, -16, -13, -18, -23, -17, 0, 14, 29, 27, 43, 35, 17, -1, + -4, -13, -22, -29, -31, -2, 17, 20, -5, -21, 6, 16, 5, -16, -25, 4, + 11, -12, -17, -20, -27, -19, -2, 13, 26, 27, 36, 46, 32, 7, -8, -18, + -26, -25, -32, -16, 12, 26, 11, -18, -11, 4, 13, -1, -27, -12, 14, 2, + -21, -23, -31, -26, -11, 10, 24, 30, 29, 43, 50, 24, -4, -16, -34, -28, + -28, -27, -1, 27, 24, -5, -21, -12, 6, 16, -13, -28, 1, 13, -9, -23, + -33, -32, -18, 2, 24, 34, 33, 34, 50, 49, 12, -11, -34, -37, -28, -25, + -14, 14, 28, 10, -10, -25, -9, 21, 15, -27, -15, 12, 2, -18, -33, -36, + -24, -7, 13, 30, 39, 42, 35, 54, 36, 1, -29, -45, -35, -26, -17, -1, + 20, 19, 2, -23, -30, 1, 30, -5, -32, 1, 7, -8, -27, -37, -25, -12, + -1, 23, 37, 51, 38, 41, 49, 16, -15, -41, -40, -31, -21, -11, 4, 19, + 15, -8, -33, -19, 22, 20, -21, -13, 2, -6, -17, -36, -32, -11, -8, 9, + 28, 48, 54, 36, 48, 30, 3, -30, -41, -34, -24, -15, -6, 2, 17, 8, + -19, -37, 0, 31, 3, -20, -6, -4, -7, -31, -35, -9, -3, -4, 16, 37, + 62, 44, 41, 33, 13, -11, -36, -39, -29, -21, -11, -11, 6, 14, -2, -28, + -24, 15, 22, -5, -10, -11, -10, -20, -35, -13, 2, -5, 2, 21, 55, 64, + 46, 37, 19, 2, -23, -36, -28, -23, -17, -18, -17, 10, 11, -12, -32, -7, + 23, 16, -7, -14, -17, -8, -27, -23, 1, 1, 0, 6, 31, 63, 60, 46, + 21, 7, -12, -29, -24, -18, -24, -23, -27, -11, 11, 5, -16, -19, 11, 21, + 4, -9, -21, -15, -17, -30, -5, 7, 2, -1, 9, 48, 65, 59, 30, 13, + -4, -25, -19, -6, -22, -33, -32, -31, -3, 7, -3, -20, -4, 14, 11, -1, + -11, -19, -13, -20, -16, 9, 7, 2, -3, 27, 60, 69, 44, 12, 7, -18, + -20, 1, -4, -35, -38, -34, -22, -9, 4, -2, -11, 8, 8, 2, -6, -19, + -23, -14, -16, 3, 13, 2, 2, 12, 47, 65, 62, 22, 10, -3, -21, -9, + 9, -17, -46, -40, -34, -23, -6, 4, -1, 3, 7, 2, -4, -13, -25, -18, + -11, -4, 18, 3, -2, 5, 30, 58, 66, 39, 12, 9, -10, -18, 8, 5, + -41, -49, -38, -33, -18, -4, 2, 7, 8, 2, -7, -12, -18, -23, -12, -6, + 18, 15, -8, 0, 21, 44, 62, 48, 22, 14, 7, -16, -7, 18, -18, -52, + -44, -42, -32, -18, -1, 12, 10, 6, -8, -20, -11, -18, -19, -10, 14, 24, + 2, -5, 14, 34, 57, 51, 27, 19, 20, -1, -13, 15, -1, -42, -45, -49, + -38, -28, -15, 13, 19, 10, -1, -23, -16, -11, -24, -10, 6, 21, 14, -5, + 3, 24, 48, 58, 29, 17, 24, 18, -6, 4, 8, -28, -38, -46, -50, -36, + -29, 3, 22, 15, 4, -18, -31, -7, -20, -17, 5, 11, 18, 4, -2, 15, + 37, 58, 35, 11, 26, 31, 11, -2, 6, -13, -32, -39, -55, -45, -38, -17, + 21, 23, 11, -10, -31, -18, -11, -25, 1, 9, 14, 15, 0, 7, 26, 49, + 49, 13, 10, 33, 26, 8, 4, -5, -25, -35, -46, -53, -41, -35, 5, 24, + 17, 0, -25, -26, -14, -24, -9, 6, 5, 17, 6, 6, 20, 38, 55, 30, + 3, 25, 38, 18, 10, -4, -16, -30, -42, -51, -46, -41, -16, 21, 23, 14, + -16, -30, -16, -17, -17, 0, 2, 12, 16, 3, 17, 28, 46, 49, 14, 13, + 39, 30, 17, 4, -9, -20, -38, -49, -50, -50, -34, 4, 21, 20, 4, -29, + -23, -15, -15, -8, -3, 7, 19, 8, 9, 26, 35, 47, 29, 6, 29, 35, + 26, 13, -5, -18, -29, -42, -49, -51, -50, -16, 11, 23, 18, -17, -34, -14, + -15, -9, -10, -2, 17, 14, 5, 21, 33, 44, 38, 14, 23, 37, 30, 20, + 6, -8, -26, -34, -47, -52, -54, -34, 0, 16, 19, 5, -29, -20, -13, -10, + -9, -10, 4, 19, 11, 13, 29, 37, 36, 22, 22, 39, 32, 23, 10, 2, + -18, -32, -40, -54, -56, -49, -23, 8, 17, 11, -15, -26, -11, -13, -9, -15, + -11, 14, 17, 10, 23, 34, 36, 24, 21, 35, 42, 26, 12, 2, -4, -23, + -31, -47, -57, -50, -33, -7, 17, 11, -2, -18, -12, -12, -11, -10, -21, -6, + 18, 19, 21, 33, 35, 28, 23, 34, 51, 40, 12, -2, 1, -9, -27, -43, + -59, -53, -39, -23, 4, 15, 1, -10, -14, -9, -8, -10, -22, -18, 5, 19, + 16, 27, 34, 28, 23, 27, 47, 53, 27, -3, -4, -1, -13, -33, -53, -57, + -45, -31, -13, 14, 4, -4, -11, -9, -9, -11, -19, -28, -16, 10, 24, 23, + 35, 24, 26, 26, 38, 60, 44, 2, -13, -3, -5, -19, -44, -58, -49, -33, + -26, 1, 14, 1, -4, -5, 0, -7, -14, -29, -26, -11, 20, 27, 30, 32, + 21, 27, 34, 59, 58, 22, -11, -10, -6, -10, -29, -55, -53, -38, -34, -16, + 12, 9, -5, -8, 5, 1, -16, -31, -32, -28, 0, 26, 26, 33, 23, 24, + 33, 49, 61, 37, 3, -15, -8, -11, -19, -43, -56, -44, -34, -25, -2, 17, + 5, -11, 2, 12, -2, -23, -32, -35, -23, 14, 26, 27, 35, 23, 32, 45, + 58, 47, 19, -5, -9, -10, -16, -27, -46, -48, -41, -34, -18, 11, 20, -6, + -10, 12, 9, -18, -34, -38, -29, -7, 17, 27, 32, 30, 30, 46, 52, 51, + 28, 6, -8, -9, -15, -24, -32, -41, -45, -40, -30, -1, 23, 10, -12, 2, + 17, -2, -31, -39, -32, -18, -6, 18, 29, 38, 32, 45, 54, 54, 33, 11, + 2, -9, -11, -19, -32, -33, -41, -45, -40, -18, 16, 19, 2, -6, 13, 12, + -20, -43, -35, -21, -18, -5, 21, 35, 36, 46, 58, 52, 38, 17, 9, -5, + -9, -13, -29, -32, -28, -41, -43, -36, 0, 22, 18, -4, -3, 17, 2, -33, + -43, -25, -18, -16, 4, 27, 38, 47, 64, 57, 40, 18, 10, 5, -7, -10, + -22, -39, -24, -30, -42, -39, -22, 13, 28, 14, -9, 3, 17, -16, -51, -36, + -17, -23, -18, 8, 35, 50, 66, 68, 43, 23, 12, 13, -1, -11, -17, -32, + -27, -22, -40, -38, -37, -10, 22, 34, 1, -10, 8, 6, -39, -48, -27, -19, + -25, -10, 18, 49, 66, 78, 54, 26, 17, 16, 3, -7, -15, -25, -29, -12, + -32, -37, -35, -28, 3, 38, 26, -7, -4, 11, -15, -46, -42, -26, -23, -24, + -2, 34, 66, 81, 70, 30, 19, 21, 10, -5, -11, -25, -29, -12, -20, -37, + -33, -39, -17, 25, 46, 6, -11, 2, 0, -29, -44, -41, -30, -27, -17, 12, + 58, 79, 84, 46, 19, 22, 19, 2, -7, -26, -35, -12, -1, -29, -33, -39, + -36, 3, 46, 31, -11, -6, -1, -14, -38, -46, -39, -32, -22, -5, 40, 76, + 88, 64, 23, 22, 30, 12, -8, -20, -39, -22, 0, -13, -29, -33, -43, -20, + 24, 49, 13, -12, 2, -6, -26, -45, -45, -39, -32, -15, 19, 68, 85, 77, + 32, 22, 35, 27, 0, -18, -36, -38, -6, 3, -17, -29, -44, -37, -2, 40, + 34, -8, -6, 3, -18, -44, -47, -44, -43, -21, 3, 49, 76, 80, 53, 21, + 35, 39, 15, -18, -35, -42, -23, 2, -3, -19, -33, -42, -23, 16, 46, 16, + -8, 2, -6, -37, -45, -47, -51, -33, -8, 31, 68, 74, 66, 33, 35, 45, + 36, -3, -33, -40, -34, -7, 5, -8, -18, -35, -39, -13, 32, 32, 3, -1, + 5, -26, -46, -50, -52, -44, -20, 15, 59, 68, 69, 50, 32, 42, 48, 21, + -26, -42, -42, -24, 2, 2, -8, -20, -38, -35, 6, 33, 17, -2, 5, -6, + -41, -55, -57, -46, -33, -6, 40, 64, 62, 63, 45, 38, 54, 40, -4, -42, + -50, -40, -11, 6, -2, -8, -24, -41, -19, 17, 28, 10, 0, 1, -26, -52, + -64, -51, -40, -23, 19, 54, 56, 61, 60, 38, 52, 55, 24, -30, -50, -47, + -27, 4, 8, -6, -11, -30, -36, -6, 19, 25, 4, 1, -9, -38, -64, -61, + -42, -36, 0, 44, 55, 51, 66, 50, 49, 62, 46, -5, -48, -51, -40, -11, + 11, 4, -14, -15, -36, -25, 1, 19, 15, -1, -2, -18, -53, -69, -48, -42, + -20, 21, 51, 45, 56, 62, 51, 60, 59, 23, -32, -53, -49, -28, 5, 17, + -12, -18, -22, -32, -12, 9, 20, 1, -6, -5, -29, -70, -62, -48, -32, 2, + 36, 45, 44, 62, 62, 60, 64, 47, -10, -45, -54, -42, -11, 21, 5, -19, + -18, -23, -20, -1, 15, 4, -6, -2, -6, -51, -72, -57, -44, -13, 19, 40, + 41, 51, 65, 66, 69, 63, 14, -32, -47, -50, -30, 10, 14, -12, -16, -18, + -16, -14, 7, 8, -6, -8, -1, -21, -65, -67, -54, -29, 1, 26, 38, 44, + 53, 69, 77, 73, 37, -17, -41, -46, -37, -10, 13, -1, -11, -14, -14, -10, + -6, 9, -5, -6, -11, -3, -43, -67, -68, -42, -15, 12, 27, 40, 47, 65, + 80, 83, 55, 7, -34, -43, -34, -22, -5, 2, -3, -2, -13, -10, -11, 3, + -2, -4, -13, -5, -15, -51, -72, -63, -31, -3, 16, 29, 42, 55, 78, 91, + 68, 25, -11, -40, -32, -22, -21, -9, -1, 8, -1, -19, -11, -3, 1, -5, + -11, -12, -3, -29, -58, -70, -48, -18, 6, 15, 35, 50, 68, 89, 84, 37, + 11, -27, -38, -19, -20, -23, -8, 10, 18, -10, -19, -8, 4, 0, -11, -14, + -7, -20, -42, -63, -60, -37, -4, 7, 23, 41, 67, 82, 90, 53, 19, -4, + -34, -23, -20, -31, -22, 5, 25, 8, -17, -20, 0, 10, -5, -20, -9, -12, + -31, -47, -60, -53, -26, -3, 12, 32, 58, 81, 85, 70, 27, 9, -19, -26, + -19, -28, -31, -8, 24, 21, -2, -26, -11, 14, 10, -20, -18, -8, -24, -33, + -53, -56, -44, -23, 3, 22, 44, 77, 85, 74, 40, 17, -3, -21, -21, -24, + -36, -25, 11, 22, 15, -13, -28, 5, 23, 0, -28, -12, -19, -26, -42, -56, + -48, -39, -17, 12, 34, 62, 84, 73, 52, 26, 9, -12, -21, -22, -31, -30, + -1, 15, 16, 6, -25, -14, 23, 19, -17, -21, -13, -24, -34, -54, -44, -39, + -36, -9, 27, 46, 79, 79, 59, 38, 16, -2, -17, -25, -25, -27, -10, 5, + 10, 15, -4, -24, 5, 29, 5, -24, -18, -19, -28, -48, -50, -35, -38, -28, + 10, 33, 62, 82, 62, 46, 27, 4, -8, -23, -24, -25, -15, -3, 0, 8, + 6, -12, -9, 22, 25, -6, -21, -22, -28, -45, -53, -39, -30, -37, -11, 20, + 43, 75, 66, 53, 41, 10, -8, -16, -25, -23, -15, -2, -4, -5, 4, 1, + -7, 8, 29, 19, -9, -21, -24, -42, -55, -48, -30, -31, -19, 5, 23, 61, + 74, 58, 53, 26, -7, -11, -18, -25, -14, 0, 1, -16, -8, 4, 0, 3, + 20, 28, 11, -16, -19, -38, -58, -55, -35, -27, -16, -1, 5, 32, 63, 61, + 56, 44, 3, -17, -13, -22, -19, -4, 5, -8, -21, -6, 7, 8, 12, 25, + 25, 2, -17, -26, -54, -64, -47, -32, -11, 5, 3, 16, 40, 60, 58, 56, + 26, -16, -19, -16, -20, -8, 0, -4, -20, -22, 1, 12, 9, 17, 30, 20, + -2, -15, -42, -68, -57, -44, -19, 11, 6, 10, 19, 42, 58, 58, 45, 6, + -23, -18, -13, -13, -3, -3, -10, -26, -14, 9, 15, 12, 26, 27, 10, -7, + -25, -61, -68, -54, -36, 10, 15, 13, 16, 19, 42, 55, 52, 31, -9, -25, + -18, -15, -7, -3, -9, -23, -26, -2, 15, 19, 19, 26, 18, 7, -10, -41, + -72, -60, -51, -8, 25, 22, 20, 13, 19, 45, 51, 44, 19, -15, -28, -15, + -7, -4, -9, -19, -28, -14, 6, 18, 18, 24, 22, 12, 1, -17, -55, -67, + -56, -35, 19, 33, 30, 20, 9, 23, 44, 48, 39, 6, -22, -25, -9, -8, + -9, -15, -29, -21, -3, 10, 16, 20, 23, 13, 7, -4, -31, -63, -61, -50, + -11, 33, 37, 30, 12, 7, 24, 44, 48, 28, -4, -28, -14, -4, -14, -14, + -27, -27, -8, 5, 13, 15, 19, 19, 11, 3, -12, -44, -64, -58, -31, 17, + 40, 39, 24, 8, 3, 30, 46, 42, 16, -18, -21, -6, -16, -18, -26, -32, + -15, 1, 6, 10, 10, 15, 12, 10, -3, -23, -51, -63, -50, -4, 34, 41, + 33, 17, -4, 10, 35, 42, 32, 5, -15, -8, -10, -18, -21, -30, -22, 0, + 3, -2, -2, 6, 5, 4, 3, -7, -25, -45, -45, -18, 25, 33, 32, 21, + 7, 8, 20, 30, 31, 20, 3, -7, -10, -14, -17, -23, -29, -12, 6, -2, + -11, -11, -4, 2, 3, -7, -10, -27, -33, -21, 13, 27, 23, 19, 8, 15, + 17, 18, 21, 23, 19, 2, -12, -10, -9, -15, -27, -28, -2, 9, -8, -18, + -17, -4, 9, -6, -7, -10, -17, -13, 2, 21, 20, 14, 4, 15, 25, 15, + 11, 14, 19, 13, -13, -17, -6, -5, -20, -36, -23, 4, 6, -18, -28, -20, + 6, 6, 0, 3, 5, 5, 28, 31, 31, 49, 55, 35, 11, 27, 26, 4, + 7, 11, 31, 54, 38, 26, 34, 35, 20, -10, -32, -43, -47, -43, -20, -7, + -37, -55, -62, -61, -63, -34, -21, -35, -28, -10, 15, 24, 23, 5, -31, -38, + -6, 23, 19, 15, 24, 20, 31, 57, 54, 28, 13, 33, 20, 1, 4, 17, + 38, 44, 33, 31, 43, 36, 10, -14, -34, -53, -53, -46, -22, -22, -38, -46, + -54, -60, -58, -29, -25, -39, -29, -12, 11, 25, 27, 6, -31, -33, -3, 27, + 32, 21, 13, 16, 38, 60, 53, 26, 18, 28, 11, -2, 8, 26, 37, 34, + 36, 42, 47, 31, 6, -14, -41, -61, -54, -49, -26, -30, -41, -40, -44, -54, + -48, -23, -28, -41, -33, -7, 14, 26, 29, 3, -32, -27, 6, 33, 35, 18, + 5, 21, 45, 61, 49, 25, 30, 22, 0, -5, 9, 37, 39, 27, 33, 47, + 50, 31, 1, -22, -51, -65, -59, -45, -31, -40, -36, -29, -35, -49, -41, -28, + -39, -44, -26, -8, 6, 27, 31, -5, -31, -18, 14, 33, 31, 17, 4, 25, + 48, 57, 45, 32, 27, 9, -6, -5, 14, 43, 36, 29, 39, 51, 50, 31, + 0, -32, -65, -73, -62, -37, -36, -46, -36, -23, -26, -37, -32, -35, -46, -42, + -22, -11, 2, 30, 28, -8, -29, -12, 22, 33, 32, 15, 4, 25, 49, 58, + 50, 36, 20, 2, -9, -3, 21, 43, 37, 32, 44, 55, 53, 33, -7, -42, + -67, -72, -64, -43, -43, -46, -35, -17, -17, -24, -31, -40, -47, -39, -18, -15, + 0, 33, 22, -14, -22, 5, 29, 29, 28, 11, 7, 23, 49, 54, 50, 37, + 13, -6, -11, -6, 25, 44, 38, 26, 40, 57, 54, 28, -12, -48, -70, -73, + -66, -43, -43, -43, -29, -12, -15, -16, -32, -48, -51, -38, -24, -19, 4, 31, + 12, -16, -14, 21, 34, 24, 24, 13, 10, 27, 49, 53, 53, 33, 6, -9, + -16, -4, 33, 48, 37, 24, 45, 61, 54, 23, -15, -60, -76, -76, -60, -48, + -45, -38, -26, -11, -3, -5, -33, -49, -52, -35, -25, -21, 7, 24, 1, -15, + -1, 34, 30, 23, 29, 17, 5, 26, 49, 55, 53, 26, -3, -16, -16, 4, + 38, 43, 33, 33, 49, 59, 45, 19, -18, -63, -78, -79, -58, -50, -39, -31, + -21, -11, -2, -3, -30, -49, -51, -35, -29, -20, 8, 12, -10, -11, 17, 37, + 27, 29, 29, 13, 2, 33, 56, 55, 38, 18, -7, -19, -17, 13, 40, 42, + 33, 35, 52, 58, 40, 10, -28, -68, -84, -78, -56, -47, -36, -30, -17, -7, + 5, -4, -30, -49, -51, -34, -30, -18, 10, 1, -18, -9, 30, 39, 26, 32, + 28, 9, 7, 38, 51, 45, 35, 16, -13, -28, -11, 27, 41, 41, 34, 45, + 58, 54, 29, 7, -33, -69, -80, -78, -59, -43, -31, -24, -15, -3, 9, -4, + -29, -51, -51, -33, -27, -8, 8, -13, -24, -1, 40, 41, 29, 31, 22, 7, + 15, 46, 48, 38, 33, 11, -19, -28, -7, 26, 42, 36, 39, 54, 54, 48, + 20, 3, -39, -68, -79, -78, -54, -37, -32, -27, -16, 5, 11, -6, -31, -50, + -49, -33, -24, -3, -3, -29, -26, 13, 44, 36, 30, 32, 17, 7, 28, 43, + 37, 31, 28, 4, -17, -27, -5, 24, 46, 43, 48, 56, 50, 41, 20, -1, + -47, -64, -82, -78, -48, -35, -34, -26, -14, 6, 9, -10, -31, -46, -43, -33, + -21, 1, -16, -38, -15, 24, 38, 35, 44, 33, 10, 15, 37, 43, 30, 22, + 18, 4, -20, -29, 0, 30, 43, 48, 54, 52, 46, 35, 19, -9, -41, -60, + -83, -73, -44, -29, -37, -27, -12, 6, 8, -10, -28, -45, -43, -25, -9, -3, + -33, -43, -4, 32, 35, 37, 49, 24, 7, 26, 47, 35, 17, 11, 14, 3, + -21, -30, 6, 30, 44, 60, 56, 44, 37, 33, 15, -11, -40, -63, -82, -61, + -36, -33, -39, -26, -13, 0, 4, -9, -29, -42, -37, -18, -7, -13, -39, -34, + 2, 30, 34, 45, 49, 16, 11, 37, 45, 26, 11, 8, 9, -1, -26, -25, + 17, 31, 46, 62, 52, 42, 29, 26, 15, -12, -45, -64, -71, -48, -34, -35, + -33, -27, -16, 1, 2, -10, -23, -41, -32, -12, -6, -29, -46, -28, 12, 26, + 36, 54, 43, 10, 23, 52, 43, 18, -2, 5, 5, -7, -25, -11, 19, 22, + 49, 61, 50, 40, 24, 20, 15, -10, -47, -62, -62, -45, -34, -30, -30, -23, + -16, -6, -1, -8, -25, -38, -29, -9, -10, -39, -42, -19, 5, 23, 48, 57, + 33, 7, 32, 57, 39, 8, -7, 3, -2, -16, -16, 1, 20, 22, 48, 55, + 46, 39, 17, 16, 17, -9, -48, -58, -54, -40, -37, -28, -26, -22, -23, -5, + 2, -11, -28, -37, -27, -10, -18, -44, -35, -18, 3, 31, 54, 52, 25, 13, + 45, 61, 29, -4, -10, 0, -5, -16, -8, 4, 21, 21, 50, 54, 45, 31, + 4, 20, 18, -15, -43, -48, -48, -39, -33, -28, -25, -22, -21, 0, -1, -19, + -29, -29, -22, -11, -29, -42, -30, -17, 3, 38, 61, 46, 24, 25, 53, 58, + 20, -10, -9, -5, -16, -12, 4, 11, 22, 17, 48, 51, 43, 16, 2, 18, + 13, -15, -35, -46, -43, -38, -31, -23, -27, -24, -13, 3, -8, -25, -29, -27, + -22, -18, -36, -38, -31, -19, 6, 46, 60, 36, 24, 33, 56, 44, 10, -8, + -9, -12, -24, -7, 14, 23, 18, 11, 45, 47, 39, 13, 5, 16, 1, -19, + -22, -39, -45, -45, -31, -20, -24, -16, -6, -3, -19, -24, -25, -26, -22, -24, + -39, -35, -25, -13, 8, 54, 64, 36, 29, 41, 56, 36, 5, -12, -11, -14, + -26, -6, 24, 33, 7, 12, 45, 44, 30, 13, 10, 17, -4, -17, -16, -34, + -46, -50, -30, -20, -23, -12, 1, -11, -26, -27, -24, -21, -19, -34, -48, -32, + -23, -10, 13, 66, 65, 33, 32, 48, 55, 25, 0, -8, -1, -18, -36, -4, + 40, 33, -1, 17, 37, 35, 25, 10, 14, 10, -13, -15, -9, -26, -46, -51, + -32, -18, -15, -4, 3, -17, -31, -28, -25, -20, -26, -48, -48, -27, -20, -13, + 19, 71, 61, 28, 33, 56, 50, 12, -8, -2, 5, -24, -41, 2, 52, 29, + -1, 24, 36, 26, 16, 14, 19, 6, -19, -12, 1, -21, -49, -50, -28, -12, + -3, 2, -2, -25, -32, -29, -24, -14, -31, -61, -44, -17, -15, -9, 28, 72, + 61, 25, 38, 61, 41, 7, -7, 4, 3, -32, -36, 9, 45, 21, 4, 30, + 33, 15, 11, 18, 17, -1, -18, -7, -4, -22, -47, -45, -24, -6, 2, 5, + -7, -27, -34, -28, -21, -14, -42, -69, -40, -11, -16, -3, 41, 68, 53, 29, + 48, 61, 32, 0, -5, 8, 2, -33, -28, 9, 31, 16, 16, 34, 22, 0, + 10, 24, 10, -9, -19, -6, -8, -26, -38, -34, -20, -10, 1, 11, -9, -33, + -31, -32, -25, -18, -50, -65, -40, -15, -8, 13, 47, 65, 50, 33, 54, 62, + 24, -2, 2, 12, -6, -31, -20, 12, 21, 10, 28, 34, 9, -5, 20, 20, + -2, -13, -10, -4, -18, -33, -26, -16, -19, -14, 6, 8, -14, -31, -32, -29, + -29, -31, -51, -69, -47, -12, 2, 21, 49, 56, 43, 45, 62, 54, 16, -2, + 7, 9, -13, -22, -4, 12, 7, 13, 37, 33, 7, -4, 23, 9, -8, -8, + -2, -8, -33, -38, -7, -1, -22, -19, 11, 7, -21, -29, -29, -29, -31, -32, + -55, -80, -49, -7, 16, 31, 43, 45, 44, 56, 66, 45, 12, 2, 10, 3, + -18, -13, 7, 9, -2, 17, 38, 22, 1, 5, 17, 4, -14, -12, -1, -11, + -43, -38, 6, 5, -22, -15, 12, 0, -23, -26, -28, -31, -32, -36, -60, -82, + -46, 3, 24, 35, 38, 41, 46, 59, 62, 41, 13, -1, 3, -6, -18, 3, + 22, 2, -9, 20, 36, 18, 10, 7, 4, -5, -17, -9, -2, -18, -55, -30, + 17, 6, -20, -10, 6, -5, -16, -26, -32, -27, -30, -42, -69, -84, -41, 13, + 31, 42, 37, 38, 45, 63, 65, 41, 12, 3, 1, -18, -10, 23, 27, -2, + -12, 17, 36, 26, 13, 4, -2, -5, -14, -14, -11, -26, -54, -19, 21, 8, + -16, -8, 6, -7, -20, -30, -33, -24, -33, -50, -74, -82, -32, 18, 34, 42, + 38, 34, 50, 69, 58, 34, 16, 7, -9, -29, -2, 41, 32, -7, -15, 11, + 34, 30, 9, 2, -3, -7, -23, -21, -15, -30, -52, -10, 18, 10, -8, -4, + 5, -4, -25, -33, -26, -22, -42, -59, -79, -72, -20, 23, 36, 41, 37, 34, + 54, 74, 53, 22, 17, 15, -17, -34, 10, 52, 37, -8, -11, 12, 33, 23, + 8, 4, -1, -16, -31, -25, -18, -38, -49, -3, 19, 11, -4, 0, 7, -8, + -34, -31, -19, -26, -52, -62, -79, -55, -7, 23, 41, 47, 41, 33, 61, 75, + 43, 22, 21, 13, -26, -33, 17, 58, 39, -6, -8, 13, 27, 10, 5, 13, + -2, -32, -43, -32, -19, -38, -36, -3, 12, 4, 4, 13, 6, -22, -41, -31, + -13, -33, -59, -71, -76, -35, 2, 20, 39, 53, 47, 39, 60, 62, 37, 26, + 22, 5, -33, -29, 26, 64, 40, 0, -5, 12, 21, 8, 16, 10, -13, -39, + -49, -37, -25, -41, -30, -6, 9, 9, 13, 23, 0, -30, -44, -26, -13, -45, + -67, -76, -68, -20, 10, 19, 39, 55, 50, 46, 57, 50, 37, 30, 16, -3, + -34, -22, 34, 65, 40, 13, -2, 6, 19, 12, 21, 5, -23, -49, -52, -38, + -33, -36, -24, -9, 10, 12, 25, 23, -11, -29, -43, -27, -21, -55, -73, -77, + -50, -2, 19, 19, 35, 59, 59, 49, 45, 40, 36, 27, 4, -10, -24, -12, + 31, 59, 44, 22, -5, 4, 19, 20, 12, -4, -27, -52, -50, -45, -39, -24, + -23, -13, 16, 20, 30, 15, -16, -28, -37, -30, -36, -64, -79, -73, -28, 17, + 24, 14, 36, 65, 68, 45, 33, 39, 40, 22, -2, -5, -11, -11, 28, 58, + 57, 20, -13, 0, 27, 23, 1, -15, -35, -58, -55, -52, -39, -20, -22, -9, + 20, 29, 30, 10, -15, -31, -39, -32, -48, -72, -86, -59, -4, 27, 19, 17, + 44, 77, 69, 31, 26, 40, 38, 14, -6, 0, 1, -11, 26, 67, 62, 10, + -18, 6, 31, 20, -5, -22, -44, -66, -61, -50, -31, -17, -24, -7, 24, 34, + 31, 3, -17, -31, -36, -40, -61, -73, -76, -46, 11, 34, 20, 22, 56, 83, + 60, 22, 24, 46, 32, 5, -4, 9, 0, -8, 31, 73, 53, 0, -13, 16, + 28, 14, -15, -31, -51, -74, -64, -43, -25, -22, -25, -1, 30, 37, 20, -2, + -20, -36, -39, -55, -69, -75, -69, -32, 21, 36, 22, 31, 63, 76, 50, 22, + 25, 49, 29, 3, 4, 9, 2, 0, 43, 74, 37, -8, -1, 28, 24, 8, + -22, -42, -65, -80, -60, -31, -25, -31, -24, 8, 41, 37, 10, -3, -22, -40, + -45, -60, -69, -69, -55, -15, 32, 37, 25, 42, 72, 70, 37, 21, 32, 41, + 20, 5, 15, 8, 0, 9, 46, 62, 26, -7, 8, 28, 21, 4, -29, -53, + -79, -82, -57, -25, -27, -32, -21, 14, 48, 35, -1, -7, -24, -44, -52, -70, + -69, -60, -38, 1, 34, 33, 32, 57, 70, 58, 34, 26, 31, 31, 16, 14, + 14, 3, 8, 25, 47, 47, 18, -2, 13, 25, 19, -2, -33, -64, -87, -83, + -53, -24, -29, -32, -17, 21, 46, 27, -4, -12, -30, -51, -61, -73, -60, -46, + -17, 9, 25, 32, 47, 69, 61, 48, 41, 30, 26, 24, 18, 24, 15, 2, + 14, 37, 42, 34, 17, 9, 19, 20, 11, -7, -35, -79, -97, -79, -45, -21, + -29, -33, -12, 26, 43, 27, -3, -15, -43, -58, -66, -69, -52, -37, -2, 16, + 24, 38, 61, 72, 56, 43, 41, 32, 28, 22, 22, 26, 12, 1, 23, 45, + 34, 21, 8, 17, 22, 19, 4, -18, -47, -93, -97, -70, -40, -29, -33, -22, + -5, 24, 44, 19, -6, -23, -53, -60, -74, -63, -41, -20, 10, 18, 19, 40, + 70, 70, 47, 41, 43, 37, 27, 14, 24, 32, 10, 1, 29, 44, 27, 12, + 7, 28, 32, 9, -11, -27, -56, -100, -94, -64, -43, -38, -31, -7, 0, 27, + 41, 11, -7, -35, -60, -62, -75, -54, -29, -5, 17, 22, 14, 46, 80, 72, + 46, 42, 44, 42, 24, 16, 31, 32, 9, 4, 33, 45, 22, 5, 8, 41, + 34, 0, -22, -36, -69, -100, -92, -65, -40, -44, -25, 0, 5, 28, 36, 4, + -12, -50, -64, -64, -68, -46, -19, 2, 25, 28, 19, 44, 72, 67, 46, 45, + 44, 39, 21, 21, 38, 29, 1, 9, 39, 39, 13, -4, 9, 54, 41, -11, + -38, -51, -76, -91, -92, -65, -44, -47, -17, 12, 11, 21, 27, 6, -24, -59, + -65, -67, -61, -40, -17, 8, 31, 26, 20, 49, 74, 65, 45, 48, 47, 36, + 25, 28, 36, 25, 5, 19, 42, 28, 6, -2, 21, 56, 27, -22, -45, -62, + -83, -92, -84, -65, -49, -37, -8, 15, 16, 22, 23, -1, -38, -65, -66, -65, + -51, -35, -15, 20, 42, 26, 25, 51, 70, 60, 45, 52, 47, 25, 25, 39, + 33, 24, 16, 31, 37, 14, 3, 2, 33, 55, 14, -35, -55, -67, -84, -88, + -84, -68, -47, -28, -1, 17, 22, 24, 17, -14, -54, -66, -64, -61, -46, -32, + -10, 26, 45, 24, 29, 52, 66, 57, 49, 56, 41, 16, 29, 46, 31, 22, + 24, 37, 30, 12, -1, 5, 40, 39, 1, -41, -63, -72, -89, -89, -77, -62, + -48, -17, 5, 13, 26, 31, 10, -29, -62, -64, -65, -54, -41, -25, -4, 32, + 52, 29, 32, 55, 61, 55, 56, 57, 35, 17, 33, 40, 28, 27, 37, 36, + 26, 14, -3, 13, 41, 22, -13, -45, -65, -78, -90, -87, -70, -56, -47, -12, + 9, 18, 35, 27, -5, -41, -63, -61, -65, -52, -37, -17, 5, 35, 52, 34, + 38, 55, 58, 53, 60, 54, 31, 21, 33, 34, 30, 35, 40, 32, 29, 15, + -4, 18, 30, 11, -25, -53, -69, -85, -91, -82, -66, -54, -36, -7, 6, 20, + 40, 19, -17, -52, -63, -60, -65, -50, -32, -11, 9, 34, 50, 40, 46, 51, + 56, 60, 60, 50, 28, 23, 33, 33, 31, 40, 43, 38, 38, 13, -6, 13, + 19, -2, -34, -57, -78, -91, -85, -73, -63, -55, -28, -1, 6, 26, 39, 13, + -28, -56, -61, -55, -61, -43, -27, -13, 12, 38, 48, 49, 54, 46, 52, 64, + 64, 48, 27, 22, 28, 33, 36, 44, 42, 39, 44, 15, -3, 10, 6, -19, + -46, -60, -81, -92, -83, -73, -52, -44, -22, -5, 5, 38, 37, -6, -41, -55, + -54, -49, -53, -45, -28, -9, 19, 41, 47, 56, 57, 41, 56, 69, 64, 42, + 26, 23, 27, 36, 39, 44, 39, 48, 53, 12, -4, 2, -8, -33, -61, -72, + -84, -87, -80, -73, -49, -36, -12, -5, 9, 42, 24, -15, -44, -50, -51, -51, + -51, -45, -26, -4, 20, 40, 47, 64, 58, 38, 61, 71, 55, 37, 32, 23, + 30, 34, 39, 50, 43, 58, 53, 9, 4, -3, -27, -49, -71, -79, -79, -79, + -82, -70, -44, -26, -7, -5, 16, 36, 9, -18, -40, -47, -49, -45, -42, -43, + -20, 1, 21, 40, 53, 72, 54, 36, 64, 66, 41, 30, 36, 26, 28, 31, + 44, 57, 48, 62, 45, 13, 3, -14, -47, -65, -77, -87, -78, -71, -75, -68, + -43, -16, -2, -1, 18, 20, -4, -18, -37, -46, -50, -36, -39, -46, -15, 7, + 23, 41, 62, 72, 49, 41, 69, 59, 33, 29, 38, 24, 28, 31, 52, 59, + 49, 61, 45, 21, 2, -31, -64, -73, -78, -89, -79, -71, -77, -62, -36, -8, + 3, 5, 15, 5, -10, -17, -34, -49, -50, -27, -37, -43, -12, 14, 25, 45, + 67, 68, 48, 48, 64, 48, 27, 33, 41, 25, 24, 32, 64, 66, 51, 62, + 41, 21, -7, -43, -77, -81, -83, -87, -74, -71, -77, -54, -29, -1, 7, 13, + 12, -6, -9, -18, -38, -54, -44, -21, -37, -41, -8, 16, 28, 53, 73, 61, + 46, 52, 60, 35, 25, 34, 38, 20, 25, 42, 73, 62, 60, 58, 39, 22, + -19, -54, -85, -88, -95, -88, -65, -69, -73, -47, -22, 3, 14, 15, -5, -14, + -6, -23, -42, -52, -34, -19, -42, -38, 0, 18, 30, 62, 76, 61, 49, 52, + 49, 26, 23, 34, 33, 22, 21, 50, 78, 68, 66, 47, 40, 22, -23, -66, + -95, -102, -97, -74, -61, -77, -68, -36, -12, 9, 15, 13, -18, -14, -5, -31, + -50, -44, -21, -25, -49, -25, 8, 16, 30, 70, 82, 56, 45, 55, 39, 21, + 25, 31, 24, 21, 28, 64, 81, 68, 64, 47, 44, 15, -30, -77, -101, -104, + -96, -71, -66, -76, -53, -22, -9, 6, 22, 10, -22, -15, -13, -38, -48, -32, + -9, -33, -49, -14, 10, 11, 37, 77, 85, 51, 44, 48, 30, 18, 21, 26, + 16, 21, 36, 71, 76, 73, 68, 48, 35, 4, -38, -81, -103, -109, -91, -67, + -71, -69, -40, -15, -12, 3, 23, 7, -23, -17, -24, -41, -45, -24, -11, -46, + -46, -1, 10, 8, 49, 84, 83, 48, 50, 48, 27, 16, 18, 20, 14, 26, + 44, 72, 75, 82, 71, 47, 26, -6, -45, -80, -107, -110, -88, -70, -69, -58, + -28, -9, -12, 2, 23, 2, -21, -19, -35, -38, -33, -13, -17, -50, -35, 8, + 9, 10, 57, 89, 74, 45, 52, 41, 24, 15, 11, 14, 13, 22, 54, 72, + 74, 86, 72, 41, 13, -14, -47, -86, -113, -111, -88, -72, -67, -42, -18, -11, + -11, 2, 18, -2, -17, -27, -44, -37, -28, -12, -26, -49, -22, 9, 3, 21, + 69, 87, 63, 46, 49, 36, 24, 13, 11, 11, 8, 26, 64, 68, 76, 89, + 74, 38, 3, -17, -44, -86, -117, -114, -86, -65, -58, -38, -19, -7, 0, 8, + 9, -5, -20, -37, -45, -29, -19, -15, -36, -39, -10, 6, 4, 33, 79, 81, + 55, 48, 42, 30, 23, 10, 13, 10, 3, 27, 62, 60, 76, 88, 68, 30, + -5, -21, -49, -89, -120, -115, -81, -54, -46, -34, -14, -1, 7, 9, 1, -6, + -18, -45, -52, -29, -16, -17, -35, -36, -12, 5, 11, 47, 81, 72, 53, 51, + 39, 28, 24, 9, 13, 7, 5, 36, 57, 55, 82, 90, 62, 31, -10, -29, + -55, -91, -121, -115, -76, -47, -38, -34, -13, 1, 13, 9, -4, -9, -17, -49, + -56, -26, -9, -12, -33, -40, -17, 12, 25, 57, 71, 62, 52, 50, 35, 22, + 21, 14, 11, -2, 10, 41, 50, 48, 85, 87, 66, 29, -15, -34, -64, -97, + -121, -108, -73, -43, -37, -28, -7, 7, 16, 6, -7, -5, -15, -59, -56, -19, + -4, -14, -37, -42, -10, 21, 38, 66, 63, 57, 52, 49, 28, 22, 28, 16, + 5, -3, 22, 47, 38, 45, 79, 85, 68, 23, -16, -34, -70, -100, -122, -107, + -62, -39, -38, -25, -4, 15, 18, 2, -3, 0, -27, -70, -51, -17, -3, -16, + -44, -40, -1, 27, 45, 67, 57, 54, 48, 39, 17, 18, 28, 17, 3, -3, + 27, 49, 37, 42, 69, 86, 66, 16, -17, -37, -72, -99, -117, -101, -55, -39, + -36, -24, 1, 20, 13, 4, 4, -5, -46, -74, -43, -9, -4, -28, -49, -33, + 6, 33, 63, 68, 54, 53, 49, 33, 18, 21, 24, 15, 7, 9, 33, 42, + 35, 39, 70, 85, 55, 10, -16, -40, -75, -98, -113, -92, -47, -38, -35, -21, + 1, 21, 15, 8, 7, -14, -62, -70, -30, -11, -15, -34, -49, -23, 9, 39, + 64, 58, 51, 56, 42, 20, 16, 19, 16, 16, 4, 13, 40, 46, 33, 31, + 65, 83, 49, 3, -24, -41, -73, -98, -105, -77, -45, -41, -30, -13, 7, 19, + 12, 13, 8, -26, -68, -61, -22, -14, -25, -38, -40, -18, 12, 47, 68, 59, + 49, 51, 42, 19, 17, 17, 12, 13, 5, 18, 41, 47, 26, 26, 67, 78, + 44, -2, -31, -47, -71, -97, -96, -67, -44, -42, -29, -11, 13, 21, 13, 17, + 8, -34, -68, -54, -17, -18, -36, -43, -35, -12, 14, 50, 69, 56, 49, 44, + 35, 16, 13, 17, 13, 13, 6, 27, 46, 50, 24, 28, 66, 64, 28, 0, + -25, -49, -75, -99, -87, -54, -42, -38, -28, -8, 20, 19, 11, 17, 1, -41, + -62, -49, -18, -27, -41, -39, -29, -8, 15, 55, 73, 55, 42, 42, 33, 16, + 12, 12, 9, 6, 14, 40, 52, 48, 21, 31, 60, 50, 23, 0, -32, -60, + -76, -90, -73, -44, -39, -36, -32, 1, 29, 20, 6, 13, -3, -41, -53, -43, + -21, -34, -47, -38, -22, -2, 22, 54, 65, 49, 38, 42, 32, 17, 12, 7, + 6, 3, 21, 48, 53, 42, 24, 39, 53, 38, 15, -3, -38, -65, -76, -85, + -59, -36, -35, -40, -26, 15, 26, 12, 6, 10, -12, -40, -49, -33, -26, -41, + -53, -36, -12, 5, 28, 50, 61, 46, 34, 37, 31, 20, 12, 1, 0, 5, + 32, 53, 56, 41, 23, 39, 48, 35, 13, -10, -44, -72, -81, -79, -50, -27, + -34, -41, -18, 20, 27, 12, 5, 1, -19, -36, -40, -22, -34, -50, -55, -33, + -3, 14, 33, 52, 54, 35, 27, 36, 37, 25, 7, -13, 1, 19, 41, 50, + 50, 38, 32, 43, 41, 32, 6, -17, -46, -69, -79, -75, -43, -20, -34, -38, + -8, 23, 26, 12, 6, -8, -23, -30, -30, -23, -46, -56, -52, -29, 6, 23, + 35, 44, 47, 31, 25, 33, 40, 26, -4, -22, 3, 28, 39, 40, 50, 40, + 28, 34, 37, 28, 0, -22, -50, -70, -81, -72, -34, -22, -36, -33, 2, 24, + 25, 12, 4, -15, -24, -26, -25, -23, -46, -56, -50, -24, 10, 33, 36, 40, + 35, 21, 25, 43, 47, 25, -13, -25, 11, 40, 36, 40, 56, 38, 27, 31, + 33, 24, -4, -24, -53, -71, -80, -59, -34, -27, -31, -27, 8, 24, 25, 17, + 2, -22, -25, -26, -19, -24, -51, -58, -40, -9, 14, 37, 36, 35, 27, 14, + 28, 48, 46, 19, -19, -24, 18, 40, 29, 41, 50, 29, 29, 27, 33, 18, + -12, -29, -53, -71, -75, -48, -33, -32, -25, -14, 13, 24, 19, 17, 2, -25, + -28, -28, -18, -28, -55, -59, -30, -3, 20, 41, 34, 24, 15, 15, 36, 49, + 39, 17, -17, -17, 22, 41, 33, 45, 38, 26, 30, 24, 27, 10, -11, -34, + -58, -70, -66, -38, -32, -36, -21, -2, 14, 28, 19, 14, 0, -25, -29, -28, + -17, -30, -57, -51, -22, 3, 23, 39, 34, 15, 11, 17, 38, 46, 39, 15, + -18, -14, 27, 40, 37, 45, 32, 28, 30, 29, 28, 1, -16, -38, -55, -65, + -62, -37, -31, -34, -17, 9, 18, 27, 18, 9, -1, -22, -35, -29, -17, -32, + -57, -45, -17, 15, 30, 30, 25, 8, 10, 19, 35, 46, 37, 4, -19, -8, + 31, 33, 33, 42, 28, 22, 24, 29, 23, -6, -21, -43, -54, -59, -55, -32, + -34, -39, -10, 19, 30, 25, 9, 2, -2, -20, -38, -30, -23, -41, -51, -35, + -12, 24, 32, 22, 12, 8, 16, 23, 32, 48, 33, 1, -16, 0, 29, 30, + 33, 36, 24, 23, 22, 33, 14, -14, -20, -42, -55, -50, -44, -27, -38, -41, + -3, 31, 35, 23, 5, -2, -4, -15, -34, -33, -38, -47, -40, -26, -3, 31, + 31, 9, 2, 13, 14, 20, 38, 53, 27, -6, -14, 11, 30, 23, 32, 28, + 25, 22, 24, 32, 5, -20, -26, -45, -49, -40, -36, -37, -48, -40, 8, 40, + 37, 16, -3, -6, -2, -9, -27, -42, -52, -48, -32, -21, 8, 39, 28, -2, + -5, 13, 17, 23, 40, 45, 19, -4, -3, 18, 15, 19, 33, 30, 29, 22, + 21, 22, 0, -17, -27, -46, -48, -33, -31, -38, -53, -33, 23, 43, 31, 11, + -7, -5, -3, -8, -26, -49, -59, -48, -25, -14, 15, 41, 23, -8, -6, 11, + 10, 26, 49, 41, 12, 0, 10, 19, 4, 22, 31, 25, 25, 24, 20, 12, + -4, -10, -37, -50, -37, -23, -26, -43, -55, -18, 34, 41, 28, 10, -9, -6, + -3, -8, -27, -57, -62, -37, -15, -8, 24, 44, 23, -10, -6, 3, 8, 39, + 55, 30, 12, 11, 20, 8, 3, 27, 26, 20, 21, 24, 19, -1, -10, -14, + -42, -47, -25, -14, -28, -49, -50, -5, 38, 38, 23, 9, -11, -9, -1, -5, + -33, -64, -59, -34, -14, -2, 32, 49, 17, -11, -6, -2, 11, 46, 46, 19, + 16, 23, 24, -3, 3, 29, 29, 16, 17, 22, 11, -12, -12, -18, -50, -43, + -15, -11, -30, -53, -38, 10, 31, 31, 25, 3, -16, -3, 3, -8, -41, -67, + -53, -24, -14, 3, 35, 46, 17, -2, -7, -9, 16, 49, 41, 20, 22, 34, + 21, -5, 5, 31, 29, 12, 14, 18, 8, -22, -17, -20, -52, -38, -13, -19, + -32, -48, -25, 11, 23, 29, 26, 1, -14, 1, 1, -18, -47, -60, -47, -31, + -11, 13, 45, 39, 8, -2, -2, -11, 16, 43, 35, 25, 34, 40, 18, -7, + 6, 34, 28, 14, 7, 11, 2, -23, -25, -29, -51, -30, -11, -24, -38, -40, + -15, 9, 18, 29, 32, -1, -10, 0, -9, -27, -48, -52, -46, -30, -2, 27, + 47, 30, 10, 7, -6, -15, 12, 35, 28, 30, 45, 42, 19, -4, 11, 29, + 21, 6, 1, 3, -3, -27, -31, -34, -40, -22, -18, -31, -35, -30, -18, 5, + 19, 32, 28, -9, -7, 1, -14, -30, -42, -45, -47, -28, 7, 38, 45, 23, + 14, 20, -2, -24, 7, 32, 30, 37, 43, 41, 22, 7, 18, 22, 14, 4, + -7, 4, -7, -36, -37, -37, -27, -15, -26, -34, -34, -29, -18, 4, 19, 31, + 20, -4, 0, -3, -21, -32, -37, -41, -40, -25, 14, 49, 44, 18, 19, 25, + -1, -19, 5, 26, 35, 38, 46, 41, 18, 18, 16, 13, 12, 2, -5, -3, + -23, -44, -37, -32, -20, -20, -33, -28, -32, -32, -16, 1, 17, 31, 17, -2, + 2, -3, -22, -33, -39, -40, -34, -23, 15, 56, 44, 15, 27, 23, -4, -14, + 2, 22, 38, 37, 48, 40, 25, 24, 15, 11, 2, -2, -3, -15, -31, -40, + -37, -33, -17, -17, -28, -29, -41, -34, -7, 1, 13, 31, 17, -2, 4, 1, + -20, -35, -47, -37, -24, -10, 22, 52, 38, 26, 35, 26, -2, -9, 4, 23, + 40, 38, 46, 39, 32, 31, 16, 2, -7, -8, -2, -21, -38, -44, -38, -31, + -18, -15, -29, -35, -45, -32, -1, -3, 4, 30, 16, 3, 8, 4, -20, -42, + -48, -30, -17, -8, 21, 49, 41, 30, 38, 23, -2, -5, 1, 21, 35, 37, + 44, 40, 40, 33, 17, 1, -13, -10, -9, -35, -41, -41, -39, -33, -19, -12, + -27, -40, -48, -28, -4, -10, 10, 28, 15, 9, 12, 5, -24, -43, -43, -23, + -18, 0, 26, 47, 43, 35, 40, 20, -1, 1, 4, 20, 28, 37, 42, 42, + 46, 31, 22, 8, -17, -15, -15, -42, -41, -37, -44, -37, -16, -13, -33, -41, + -41, -20, -11, -17, 10, 18, 13, 16, 17, 1, -24, -38, -38, -27, -21, 9, + 29, 46, 44, 43, 38, 18, 3, 6, 6, 12, 19, 38, 41, 47, 44, 28, + 29, 11, -26, -25, -27, -45, -39, -39, -48, -41, -18, -13, -33, -38, -36, -21, + -19, -14, 13, 11, 11, 26, 17, -6, -25, -32, -32, -35, -14, 21, 31, 38, + 49, 49, 34, 19, 13, 10, 4, 9, 20, 37, 41, 45, 39, 29, 35, 6, + -28, -28, -35, -43, -37, -42, -50, -44, -20, -20, -37, -37, -27, -16, -23, -11, + 10, 5, 17, 36, 16, -16, -23, -21, -33, -38, -5, 23, 28, 35, 55, 55, + 31, 17, 18, 12, 3, 4, 21, 33, 41, 45, 31, 32, 39, 3, -29, -35, + -41, -40, -38, -45, -55, -45, -26, -31, -36, -26, -22, -22, -29, 1, 9, -1, + 24, 39, 8, -19, -17, -14, -32, -34, 5, 29, 29, 35, 58, 51, 32, 29, + 23, 11, 1, 6, 29, 37, 38, 36, 24, 43, 39, -2, -32, -44, -45, -36, + -36, -45, -55, -51, -37, -35, -30, -22, -20, -32, -24, 6, 2, 3, 30, 36, + 3, -17, -16, -18, -29, -24, 10, 31, 25, 34, 58, 44, 33, 37, 26, 8, + 5, 10, 37, 36, 35, 29, 22, 47, 36, -6, -36, -51, -49, -34, -38, -48, + -58, -53, -46, -42, -24, -23, -22, -32, -13, 4, -7, 8, 35, 30, 6, -14, + -20, -19, -21, -20, 14, 34, 29, 43, 52, 37, 39, 43, 24, 8, 7, 15, + 45, 33, 36, 24, 25, 43, 25, -10, -39, -53, -47, -34, -39, -53, -56, -54, + -56, -42, -21, -23, -29, -25, -5, 1, -10, 12, 35, 27, 7, -14, -25, -19, + -11, -10, 13, 31, 37, 44, 42, 37, 45, 44, 24, 14, 13, 24, 40, 28, + 35, 23, 31, 35, 15, -16, -38, -53, -45, -37, -48, -56, -54, -63, -63, -40, + -23, -24, -27, -19, 3, 1, -11, 14, 33, 24, 5, -16, -28, -17, -6, -1, + 15, 38, 39, 38, 29, 36, 54, 42, 20, 20, 19, 32, 38, 30, 31, 23, + 33, 23, -1, -17, -35, -44, -43, -47, -51, -51, -56, -71, -67, -45, -28, -23, + -23, -13, 12, -1, -15, 15, 33, 20, -2, -22, -25, -17, -3, 10, 24, 46, + 44, 31, 26, 41, 53, 42, 23, 23, 26, 39, 37, 32, 24, 28, 36, 11, + -7, -19, -38, -39, -37, -49, -54, -51, -62, -76, -68, -51, -28, -19, -21, 1, + 22, -3, -11, 14, 25, 16, -5, -25, -25, -15, -2, 20, 36, 51, 42, 19, + 19, 43, 58, 43, 25, 21, 35, 46, 41, 34, 17, 26, 33, 5, -15, -25, + -39, -34, -37, -55, -50, -49, -69, -80, -67, -50, -31, -18, -12, 12, 17, -5, + -5, 14, 17, 6, -15, -27, -22, -14, 3, 37, 49, 48, 40, 22, 22, 36, + 51, 44, 29, 22, 42, 49, 41, 29, 16, 29, 31, -9, -30, -33, -35, -29, + -38, -55, -45, -54, -79, -80, -65, -51, -34, -16, -2, 18, 18, 5, 7, 8, + 6, 3, -19, -21, -22, -19, 12, 51, 53, 48, 39, 22, 18, 36, 46, 42, + 35, 31, 44, 46, 42, 31, 24, 35, 21, -25, -39, -33, -30, -24, -41, -53, + -47, -60, -81, -81, -63, -53, -40, -14, 6, 24, 20, 8, 7, 0, -1, -4, + -21, -23, -29, -16, 30, 60, 55, 50, 37, 19, 19, 35, 43, 46, 37, 29, + 43, 49, 43, 32, 27, 31, 13, -35, -46, -36, -26, -28, -44, -52, -47, -65, + -84, -84, -68, -49, -27, 0, 10, 15, 19, 15, 9, -3, -10, -16, -20, -26, + -28, -2, 41, 59, 62, 56, 37, 16, 15, 31, 43, 50, 42, 30, 41, 49, + 49, 38, 28, 23, 5, -42, -55, -42, -21, -22, -40, -49, -54, -71, -86, -81, + -62, -44, -21, 5, 17, 16, 25, 23, 0, -13, -17, -17, -24, -32, -21, 15, + 45, 58, 66, 52, 33, 15, 9, 35, 42, 44, 44, 36, 38, 50, 52, 40, + 28, 16, -11, -48, -60, -43, -22, -21, -40, -53, -58, -78, -90, -79, -61, -42, + -9, 14, 15, 16, 22, 21, -4, -20, -21, -19, -30, -31, -10, 26, 54, 63, + 69, 51, 33, 12, 13, 40, 42, 45, 42, 33, 36, 53, 57, 44, 24, 3, + -24, -53, -63, -45, -21, -15, -39, -57, -63, -78, -89, -76, -55, -34, 3, 18, + 9, 16, 21, 15, -8, -26, -28, -25, -32, -24, 4, 34, 56, 67, 75, 48, + 22, 7, 23, 44, 39, 40, 40, 35, 40, 59, 59, 44, 18, -6, -31, -54, + -58, -44, -20, -13, -43, -63, -69, -80, -88, -71, -48, -21, 12, 16, 12, 18, + 13, 6, -12, -27, -32, -30, -34, -20, 13, 46, 63, 74, 73, 40, 15, 13, + 39, 46, 33, 32, 35, 36, 48, 58, 61, 43, 16, -13, -36, -57, -62, -41, + -22, -16, -42, -66, -73, -79, -85, -65, -38, -7, 13, 9, 7, 16, 11, -2, + -18, -36, -39, -26, -25, -16, 21, 53, 64, 74, 68, 36, 19, 22, 38, 44, + 32, 28, 32, 38, 52, 60, 56, 43, 13, -25, -39, -54, -52, -35, -30, -27, + -46, -70, -79, -80, -79, -58, -26, 3, 15, 6, 0, 12, 6, -8, -27, -45, + -39, -17, -16, -13, 28, 57, 67, 71, 57, 37, 22, 25, 41, 46, 29, 24, + 34, 44, 56, 55, 52, 44, 7, -27, -38, -48, -44, -35, -31, -29, -46, -77, + -83, -73, -70, -48, -15, 6, 9, 1, 1, 9, -3, -20, -41, -48, -30, -5, + -14, -9, 39, 63, 70, 66, 47, 36, 25, 32, 40, 43, 26, 21, 36, 47, + 59, 50, 49, 35, 0, -26, -36, -44, -41, -36, -35, -33, -50, -79, -79, -66, + -63, -36, -8, 6, -3, -9, 2, 3, -13, -30, -49, -46, -18, -2, -15, 4, + 42, 58, 65, 61, 50, 38, 28, 37, 40, 38, 28, 30, 38, 48, 50, 42, + 46, 28, -3, -28, -37, -36, -36, -39, -36, -37, -59, -79, -69, -62, -52, -24, + -2, 3, -12, -11, 4, -5, -29, -42, -53, -39, -12, -4, -4, 14, 37, 52, + 63, 58, 50, 37, 34, 37, 36, 37, 38, 36, 35, 47, 46, 44, 42, 18, + -7, -30, -34, -32, -34, -41, -37, -45, -66, -74, -64, -57, -36, -12, 1, -8, + -23, -7, 6, -18, -39, -49, -53, -29, -5, -1, 10, 19, 30, 46, 59, 58, + 50, 36, 37, 37, 32, 40, 46, 38, 34, 44, 42, 41, 36, 9, -9, -27, + -29, -26, -34, -40, -40, -56, -69, -66, -56, -46, -22, -7, -7, -19, -21, 3, + 1, -35, -48, -53, -49, -22, -3, 12, 23, 18, 22, 46, 66, 59, 47, 38, + 43, 35, 30, 46, 51, 39, 33, 41, 37, 42, 24, 2, -8, -22, -23, -24, + -33, -39, -50, -66, -69, -59, -49, -31, -13, -10, -17, -25, -16, 1, -17, -50, + -55, -58, -42, -17, -1, 20, 31, 14, 15, 48, 70, 59, 42, 38, 45, 33, + 33, 51, 53, 36, 35, 37, 36, 37, 12, 0, -9, -16, -18, -22, -33, -42, + -59, -67, -62, -52, -40, -20, -11, -15, -23, -23, -11, -3, -28, -51, -59, -61, + -38, -14, 4, 26, 30, 10, 18, 53, 71, 56, 40, 42, 45, 32, 34, 53, + 52, 37, 36, 32, 37, 32, 10, -3, -10, -10, -11, -17, -31, -46, -62, -63, + -54, -44, -30, -14, -14, -23, -27, -22, -11, -11, -35, -51, -65, -59, -32, -11, + 11, 29, 25, 8, 24, 63, 73, 51, 38, 46, 44, 29, 34, 51, 51, 39, + 34, 27, 34, 23, 3, -5, -9, -6, -10, -18, -33, -51, -66, -60, -50, -35, + -20, -10, -21, -33, -29, -17, -9, -20, -39, -55, -71, -57, -26, -7, 11, 23, + 22, 11, 35, 70, 71, 46, 39, 48, 42, 29, 33, 51, 47, 38, 31, 28, + 35, 17, 0, -12, -7, 0, -4, -15, -36, -56, -67, -56, -42, -26, -15, -12, + -29, -36, -28, -15, -13, -25, -40, -58, -70, -49, -23, -6, 8, 19, 17, 18, + 49, 76, 66, 40, 42, 49, 39, 25, 35, 51, 43, 40, 30, 31, 32, 15, + -1, -14, -7, 1, -2, -17, -40, -59, -61, -51, -38, -21, -10, -17, -34, -35, + -28, -18, -17, -24, -40, -64, -65, -40, -18, -8, 5, 13, 17, 31, 61, 75, + 60, 41, 43, 47, 34, 20, 36, 47, 43, 41, 31, 32, 26, 7, -7, -16, + -6, 0, -3, -22, -44, -60, -56, -47, -34, -19, -8, -20, -39, -40, -27, -18, + -20, -29, -44, -63, -56, -38, -23, -11, 4, 14, 21, 42, 65, 71, 59, 45, + 42, 34, 21, 20, 42, 48, 44, 41, 31, 34, 24, 6, -10, -20, -11, 4, + 0, -20, -48, -57, -47, -39, -30, -17, -4, -24, -43, -40, -26, -19, -24, -29, + -45, -59, -51, -37, -25, -14, 3, 15, 27, 51, 72, 76, 61, 44, 38, 23, + 12, 21, 43, 46, 45, 40, 31, 35, 21, 5, -17, -22, -13, 3, 1, -24, + -51, -52, -43, -37, -28, -8, -7, -38, -46, -36, -21, -21, -31, -33, -45, -51, + -47, -40, -30, -13, 4, 14, 33, 60, 76, 76, 61, 47, 30, 16, 8, 20, + 40, 45, 48, 37, 37, 37, 22, 3, -19, -20, -10, 4, -6, -30, -49, -44, + -41, -38, -23, -1, -14, -41, -44, -36, -22, -26, -35, -33, -45, -52, -48, -40, + -32, -9, 6, 18, 35, 65, 85, 80, 62, 46, 24, 6, -1, 23, 41, 48, + 45, 31, 42, 40, 23, -6, -21, -15, -6, 0, -13, -31, -44, -41, -38, -32, + -15, 0, -22, -40, -41, -36, -24, -31, -28, -32, -46, -49, -47, -43, -30, -6, + 9, 19, 46, 77, 87, 77, 61, 42, 18, -2, -7, 22, 39, 51, 41, 32, + 43, 35, 13, -18, -18, -10, -5, -8, -21, -29, -39, -42, -41, -23, -3, -3, + -32, -39, -38, -34, -31, -35, -23, -32, -46, -50, -51, -46, -26, 0, 12, 20, + 54, 87, 91, 72, 60, 38, 13, -10, -11, 24, 44, 52, 43, 39, 45, 34, + 2, -19, -8, -1, -8, -19, -19, -25, -35, -42, -39, -17, 7, -7, -38, -36, + -36, -37, -37, -31, -20, -34, -49, -53, -50, -43, -19, 6, 10, 25, 66, 91, + 84, 67, 60, 36, 1, -18, -10, 27, 48, 52, 42, 42, 38, 25, -3, -18, + -5, -2, -13, -22, -24, -28, -35, -45, -35, -4, 14, -17, -41, -36, -33, -35, + -41, -29, -20, -38, -51, -54, -46, -33, -14, 6, 14, 37, 74, 87, 76, 65, + 64, 29, -9, -22, -7, 23, 52, 55, 46, 42, 25, 17, -5, -12, -4, -3, + -17, -25, -33, -36, -33, -39, -30, 5, 12, -25, -37, -33, -34, -42, -41, -25, + -22, -41, -52, -53, -40, -25, -10, 11, 21, 43, 72, 78, 74, 69, 58, 15, + -13, -15, -4, 22, 54, 58, 53, 41, 15, 6, -2, -1, -3, -6, -18, -24, + -42, -40, -29, -32, -20, 13, 8, -25, -35, -34, -29, -42, -43, -27, -27, -42, + -51, -50, -30, -14, -5, 17, 26, 46, 70, 72, 72, 69, 48, 2, -13, -9, + -3, 19, 55, 59, 53, 30, 1, -1, 5, 8, -7, -15, -19, -25, -48, -45, + -31, -28, -10, 15, 1, -24, -35, -35, -22, -37, -43, -36, -35, -41, -47, -45, + -18, -6, -1, 24, 32, 51, 65, 65, 67, 63, 37, -3, -13, -9, 1, 29, + 54, 60, 50, 18, -4, -4, 13, 9, -10, -15, -17, -30, -54, -47, -29, -20, + -8, 4, -8, -15, -29, -35, -21, -37, -43, -46, -37, -33, -48, -39, -10, 3, + 13, 31, 34, 54, 56, 57, 63, 56, 32, -3, -16, -6, 14, 38, 48, 53, + 40, 11, -3, 1, 6, -2, -11, -9, -11, -28, -54, -54, -29, -8, 2, -8, + -16, -13, -27, -31, -21, -32, -45, -54, -36, -27, -44, -33, 1, 16, 25, 29, + 39, 56, 48, 51, 57, 48, 22, 3, -14, 0, 22, 39, 42, 46, 36, 7, + -7, 0, 0, -3, -8, -8, -15, -34, -50, -49, -27, -3, 0, -15, -14, -16, + -28, -26, -21, -34, -56, -55, -32, -30, -41, -23, 8, 20, 31, 33, 45, 53, + 38, 42, 54, 40, 18, -3, -9, 14, 33, 37, 34, 34, 27, 8, -5, -1, + -9, -3, -1, -8, -19, -35, -43, -42, -28, -7, 1, -18, -13, -17, -29, -24, + -21, -34, -55, -52, -34, -30, -26, -9, 15, 28, 28, 32, 55, 50, 29, 38, + 45, 35, 17, -3, -1, 18, 36, 40, 27, 24, 19, 0, -5, -1, -14, -7, + -2, -12, -20, -30, -40, -42, -25, -5, -5, -24, -14, -16, -25, -20, -26, -38, + -52, -49, -35, -31, -13, 8, 16, 28, 29, 42, 57, 40, 23, 32, 35, 30, + 12, -5, 9, 22, 40, 38, 19, 17, 16, -1, -9, -7, -12, -6, -5, -13, + -18, -29, -39, -39, -18, -3, -19, -26, -11, -18, -24, -19, -30, -40, -51, -45, + -30, -24, 0, 19, 22, 28, 36, 49, 54, 41, 22, 30, 31, 26, 10, 2, + 10, 26, 43, 28, 14, 16, 7, -6, -12, -9, -9, -5, -12, -19, -16, -29, + -35, -34, -8, -8, -35, -20, -7, -26, -23, -23, -30, -39, -53, -38, -25, -12, + 11, 24, 24, 29, 47, 50, 48, 36, 20, 29, 24, 15, 5, 8, 12, 32, + 40, 21, 17, 11, 0, -3, -15, -14, -7, -4, -13, -17, -16, -28, -31, -23, + -6, -20, -37, -15, -12, -29, -22, -28, -30, -38, -54, -34, -20, -4, 21, 33, + 24, 33, 50, 45, 40, 33, 27, 28, 14, 8, 8, 11, 11, 30, 33, 26, + 20, -1, -8, -4, -17, -16, -2, -7, -22, -20, -20, -26, -26, -15, -10, -27, + -35, -12, -19, -31, -21, -23, -23, -42, -57, -31, -11, 9, 35, 33, 23, 39, + 53, 47, 40, 31, 31, 21, 10, 9, 11, 10, 13, 26, 35, 33, 13, -11, + -10, -4, -19, -22, 3, -2, -28, -26, -16, -21, -24, -12, -12, -31, -34, -17, + -27, -34, -25, -17, -19, -48, -59, -29, -2, 27, 46, 26, 22, 43, 54, 44, + 38, 30, 29, 16, 6, 15, 15, 6, 9, 22, 36, 37, 9, -20, -10, -5, + -21, -21, 2, -5, -29, -31, -18, -11, -17, -11, -15, -32, -34, -23, -30, -30, + -25, -15, -22, -52, -50, -17, 9, 36, 42, 26, 29, 50, 53, 40, 33, 32, + 27, 14, 7, 9, 7, 4, 12, 22, 36, 36, 3, -27, -16, -9, -20, -21, + -1, -12, -31, -27, -13, -12, -18, -12, -17, -33, -39, -29, -34, -35, -23, -7, + -25, -55, -42, -10, 20, 43, 40, 27, 33, 51, 51, 37, 34, 31, 21, 9, + 8, 5, 2, 11, 16, 18, 34, 35, 3, -22, -17, -16, -20, -17, -7, -20, + -32, -28, -14, -12, -10, -8, -17, -34, -41, -35, -34, -31, -19, -8, -27, -48, + -29, -4, 26, 50, 44, 32, 37, 50, 49, 40, 36, 22, 11, 11, 12, 5, + 3, 14, 12, 13, 34, 37, 9, -23, -24, -16, -21, -16, -17, -30, -27, -27, + -20, -10, -10, -9, -18, -39, -46, -42, -35, -31, -14, -9, -33, -42, -19, 1, + 36, 55, 41, 32, 46, 55, 47, 35, 32, 18, 6, 7, 9, -2, 7, 17, + 8, 13, 34, 32, 10, -22, -27, -14, -20, -21, -26, -31, -23, -27, -22, -6, + -5, -11, -21, -39, -46, -46, -37, -30, -14, -12, -33, -31, -8, 6, 41, 55, + 40, 38, 54, 57, 39, 30, 33, 17, 2, 1, 4, 7, 14, 14, -2, 11, + 37, 31, 11, -26, -30, -16, -20, -18, -21, -27, -32, -28, -12, 0, -4, -11, + -23, -40, -46, -43, -33, -26, -16, -15, -29, -19, -1, 13, 44, 58, 41, 49, + 68, 59, 36, 28, 36, 18, -9, -9, 4, 17, 20, 7, -6, 18, 36, 22, + -1, -30, -26, -19, -25, -26, -31, -35, -33, -21, -3, -8, -10, -14, -24, -40, + -45, -43, -35, -20, -18, -20, -22, -12, 0, 15, 48, 58, 41, 58, 77, 57, + 30, 27, 33, 7, -23, -16, 11, 23, 21, 2, -5, 24, 33, 10, -10, -24, + -19, -25, -37, -30, -30, -34, -29, -14, -5, -16, -8, -8, -26, -50, -47, -41, + -30, -16, -25, -24, -14, -6, 3, 23, 50, 51, 49, 69, 81, 56, 29, 33, + 30, -2, -29, -14, 15, 26, 18, 2, -1, 31, 28, 0, -20, -21, -21, -32, + -43, -34, -33, -36, -23, -4, -8, -20, -8, -11, -25, -44, -41, -39, -32, -17, + -30, -22, -4, 1, 6, 31, 48, 47, 63, 80, 82, 52, 31, 38, 23, -13, + -33, -11, 20, 29, 14, -1, 9, 34, 19, -12, -26, -13, -23, -46, -46, -38, + -39, -35, -24, -3, -7, -17, -15, -16, -25, -45, -37, -37, -33, -26, -36, -20, + 5, 3, 4, 32, 42, 50, 76, 83, 75, 49, 34, 36, 17, -24, -33, -12, + 23, 32, 10, 1, 23, 30, 7, -17, -22, -8, -27, -49, -50, -42, -38, -28, + -18, -3, -8, -13, -14, -15, -24, -43, -35, -33, -29, -27, -34, -15, 16, 8, + 5, 32, 43, 62, 84, 84, 73, 53, 40, 30, 6, -26, -34, -15, 25, 28, + 8, 9, 38, 27, -4, -26, -21, -12, -33, -54, -47, -48, -38, -21, -14, -2, + -3, -11, -25, -18, -26, -32, -34, -34, -29, -31, -35, -10, 18, 11, 7, 33, + 47, 68, 83, 81, 71, 58, 42, 20, -5, -25, -36, -15, 23, 23, 7, 20, + 40, 21, -14, -35, -21, -16, -40, -58, -52, -52, -31, -11, -9, -6, -1, -15, + -26, -15, -29, -31, -36, -31, -29, -36, -32, -4, 17, 8, 15, 36, 48, 66, + 77, 83, 77, 59, 38, 9, -11, -20, -34, -12, 22, 20, 14, 33, 39, 16, + -22, -36, -23, -21, -40, -56, -52, -47, -24, -10, -4, 3, 1, -17, -22, -18, + -28, -26, -32, -30, -32, -30, -22, 1, 15, 15, 27, 42, 52, 62, 75, 85, + 80, 59, 35, 1, -16, -20, -35, -12, 18, 17, 18, 40, 34, 5, -34, -38, + -27, -28, -42, -60, -58, -48, -18, -4, 0, 3, -4, -18, -20, -22, -35, -29, + -27, -34, -42, -28, -12, 3, 8, 19, 31, 40, 45, 60, 75, 79, 76, 62, + 37, -2, -20, -22, -31, -11, 13, 15, 31, 43, 27, 0, -28, -33, -36, -37, + -43, -58, -61, -47, -13, 1, 1, 3, -5, -12, -17, -25, -36, -27, -25, -39, + -45, -24, 1, 0, 8, 25, 43, 45, 42, 57, 76, 76, 73, 60, 37, -8, + -25, -22, -25, -6, 9, 21, 41, 41, 15, -6, -18, -33, -48, -40, -38, -57, + -64, -46, -6, 9, -4, 1, -1, -9, -18, -28, -33, -24, -27, -42, -45, -18, + 2, 3, 13, 31, 49, 43, 37, 60, 74, 68, 68, 60, 30, -12, -28, -23, + -19, -8, 5, 26, 48, 37, 11, -12, -17, -37, -54, -40, -41, -58, -65, -42, + 5, 12, -8, 0, 2, -6, -22, -29, -30, -28, -37, -44, -42, -9, 6, 7, + 17, 33, 44, 42, 40, 61, 72, 57, 63, 61, 24, -16, -34, -21, -15, -12, + 3, 31, 47, 28, 7, -10, -15, -43, -51, -38, -45, -61, -61, -31, 10, 8, + -3, 6, 5, -8, -24, -27, -28, -31, -44, -42, -29, -3, 6, 10, 24, 40, + 44, 45, 46, 57, 62, 56, 65, 56, 16, -13, -32, -18, -12, -10, 11, 32, + 39, 25, 6, -10, -19, -48, -44, -38, -49, -63, -61, -19, 12, 3, 4, 6, + 3, -9, -25, -26, -27, -38, -46, -39, -18, 1, 12, 20, 29, 33, 36, 49, + 47, 54, 59, 49, 63, 51, 8, -12, -25, -18, -18, -6, 20, 33, 28, 19, + 4, -9, -27, -43, -41, -45, -55, -64, -51, -13, 7, -3, 0, 7, 3, -12, + -28, -27, -33, -46, -51, -33, -10, -5, 15, 31, 34, 26, 32, 47, 51, 53, + 47, 50, 61, 41, 1, -8, -12, -21, -20, 5, 27, 29, 16, 13, 8, -9, + -28, -40, -40, -44, -55, -62, -40, -8, 5, -2, 4, 11, 4, -15, -26, -26, + -37, -49, -47, -27, -8, -3, 22, 45, 38, 22, 34, 47, 55, 52, 39, 44, + 58, 32, 2, 0, -7, -25, -21, 10, 29, 30, 9, 0, 0, -7, -26, -38, + -40, -53, -61, -53, -30, -5, 1, -2, 5, 10, 3, -18, -25, -33, -43, -51, + -46, -20, -10, -8, 26, 52, 35, 19, 32, 47, 56, 46, 33, 44, 48, 20, + 10, 11, -7, -29, -20, 15, 35, 28, 2, -9, -8, -6, -26, -32, -36, -54, + -64, -52, -22, 1, 3, 2, 3, 15, 2, -22, -24, -34, -41, -45, -39, -19, + -9, 1, 35, 57, 37, 18, 27, 46, 52, 41, 37, 44, 40, 18, 16, 13, + -7, -29, -14, 23, 36, 17, -6, -17, -2, 1, -24, -38, -43, -59, -62, -44, + -22, -4, 7, 2, 5, 16, -2, -24, -27, -36, -43, -48, -37, -20, -5, 14, + 40, 52, 36, 20, 26, 43, 46, 40, 41, 42, 28, 19, 19, 9, -4, -21, + -10, 27, 32, 10, -6, -16, -4, -5, -14, -37, -48, -59, -58, -36, -24, -1, + 13, -3, 7, 16, -5, -19, -32, -38, -46, -43, -32, -22, -7, 22, 49, 57, + 37, 22, 20, 37, 41, 36, 46, 41, 21, 19, 16, 9, -2, -25, -9, 27, + 24, 8, -12, -11, -2, -9, -10, -39, -51, -59, -59, -35, -21, 2, 15, -5, + 10, 11, -12, -19, -35, -39, -46, -35, -29, -26, -5, 37, 60, 53, 36, 26, + 19, 33, 37, 33, 48, 41, 18, 17, 19, 11, -8, -23, -3, 30, 21, -5, + -14, -2, -6, -9, -9, -42, -59, -64, -54, -33, -16, 6, 14, 0, 15, 4, + -14, -17, -35, -45, -46, -33, -27, -22, 2, 42, 56, 49, 37, 26, 19, 26, + 23, 36, 58, 44, 11, 8, 23, 10, -7, -15, 3, 26, 12, -10, -8, 3, + -10, -7, -13, -46, -58, -60, -57, -40, -11, 9, 9, 3, 13, -6, -12, -17, + -42, -53, -45, -28, -23, -14, 11, 49, 60, 49, 40, 27, 14, 16, 13, 43, + 62, 46, 6, 8, 22, 7, -9, -10, 11, 23, 4, -17, 2, 6, -6, -7, + -21, -51, -58, -58, -55, -38, -12, 12, 10, 13, 1, -15, -7, -14, -47, -62, + -45, -29, -19, -2, 21, 51, 63, 46, 37, 31, 16, 0, 4, 43, 64, 43, + 6, 9, 24, 4, -15, -2, 14, 9, -9, -15, 14, 7, -11, -10, -29, -53, + -54, -57, -48, -35, -9, 13, 9, 11, -5, -6, -2, -22, -57, -60, -39, -24, + -11, 5, 30, 52, 62, 49, 42, 38, 11, -9, 7, 45, 61, 44, 10, 15, + 21, -4, -15, 3, 13, 1, -13, -9, 13, 7, -9, -13, -32, -51, -53, -56, + -44, -35, -9, 15, 11, 7, -8, 0, -2, -34, -65, -56, -31, -24, -7, 20, + 37, 49, 56, 47, 47, 39, -3, -16, 12, 40, 53, 45, 16, 23, 17, -7, + -8, 7, 8, -5, -12, -7, 7, 7, -4, -17, -38, -56, -60, -50, -37, -33, + -8, 7, 9, 0, -6, 7, -8, -47, -71, -50, -25, -23, 0, 33, 41, 46, + 52, 53, 54, 35, -6, -9, 13, 32, 50, 48, 23, 25, 13, -4, -3, 0, + -1, -7, -7, -8, 3, 6, -3, -22, -41, -55, -62, -46, -30, -24, -5, 0, + 5, 2, 3, 10, -20, -57, -69, -41, -19, -16, 5, 37, 47, 46, 49, 54, + 58, 29, -4, -6, 7, 21, 49, 49, 24, 24, 12, -2, -5, -9, 0, 0, + -10, -15, 2, 8, -4, -23, -42, -57, -66, -43, -22, -16, -11, -8, 3, 5, + 7, 4, -28, -61, -61, -36, -19, -11, 10, 45, 51, 43, 46, 52, 54, 26, + 3, -8, -3, 15, 52, 48, 27, 30, 15, -1, -9, -14, 0, -2, -15, -17, + -2, -1, -5, -23, -37, -62, -64, -34, -17, -15, -19, -8, 4, 7, 8, -8, + -37, -55, -50, -33, -19, -5, 16, 49, 54, 44, 45, 52, 53, 32, 3, -12, + -5, 14, 46, 46, 38, 34, 21, 6, -13, -21, -2, -3, -18, -19, -14, -9, + -2, -14, -44, -74, -56, -26, -15, -16, -18, -6, -1, 7, 6, -20, -43, -48, + -35, -32, -24, 1, 23, 51, 54, 41, 42, 52, 49, 32, 3, -14, -5, 19, + 42, 47, 43, 38, 27, 10, -18, -19, -5, -7, -18, -27, -23, -9, 2, -8, + -51, -75, -41, -19, -15, -13, -15, -11, -5, 10, 1, -30, -37, -40, -30, -33, + -24, 6, 30, 49, 49, 45, 43, 52, 39, 24, 7, -10, -7, 12, 33, 44, + 48, 43, 36, 7, -29, -18, -6, -14, -23, -36, -32, -12, 2, -16, -60, -65, + -27, -22, -22, -9, -6, -14, -6, 11, -10, -38, -35, -27, -26, -35, -15, 18, + 39, 47, 48, 51, 55, 51, 28, 22, 13, -5, -6, 5, 27, 46, 57, 49, + 39, 1, -29, -12, -7, -15, -28, -48, -39, -11, -1, -28, -61, -51, -22, -30, + -22, -3, -4, -21, -6, 8, -23, -45, -29, -18, -27, -32, -11, 24, 44, 40, + 46, 56, 61, 44, 17, 18, 19, 1, -11, -2, 24, 48, 57, 54, 45, 2, + -27, -12, -11, -18, -32, -49, -41, -16, -10, -32, -47, -33, -25, -34, -13, 6, + -5, -24, -13, -4, -29, -43, -29, -18, -25, -21, -1, 25, 44, 40, 49, 67, + 60, 31, 12, 18, 24, -2, -18, -5, 22, 45, 62, 65, 46, -5, -21, -12, + -12, -17, -36, -57, -48, -23, -15, -29, -35, -28, -33, -31, -3, 12, -16, -32, + -12, -19, -36, -33, -25, -22, -29, -10, 14, 30, 41, 35, 51, 73, 57, 27, + 16, 21, 14, -4, -12, -2, 21, 41, 62, 71, 43, -7, -12, -19, -22, -23, + -46, -57, -51, -35, -20, -17, -22, -26, -37, -27, 7, 12, -24, -31, -14, -29, + -34, -30, -22, -20, -21, 2, 15, 26, 40, 45, 55, 66, 52, 28, 20, 17, + 10, -1, -12, -4, 21, 43, 65, 74, 39, 1, -9, -25, -27, -24, -45, -61, + -55, -43, -22, -9, -12, -24, -32, -26, 9, 7, -25, -31, -30, -40, -31, -26, + -19, -20, -11, 14, 18, 27, 45, 54, 52, 61, 49, 33, 24, 15, 5, 0, + -14, -2, 24, 44, 62, 67, 37, 12, -9, -30, -29, -33, -49, -66, -58, -51, + -25, -2, -6, -19, -31, -24, 6, 3, -21, -37, -43, -42, -31, -25, -17, -19, + -5, 15, 19, 30, 52, 56, 45, 54, 52, 38, 22, 11, 8, 0, -16, 2, + 27, 44, 63, 60, 34, 16, -10, -25, -31, -38, -55, -68, -62, -53, -18, 5, + -2, -17, -31, -16, 5, -4, -22, -43, -50, -38, -32, -21, -16, -11, 8, 10, + 19, 32, 60, 60, 43, 46, 51, 37, 24, 13, 8, -6, -17, 4, 32, 52, + 56, 52, 39, 23, -5, -23, -41, -48, -64, -65, -63, -57, -14, 9, 3, -18, + -28, -9, 0, -11, -25, -47, -53, -38, -30, -19, -11, 0, 10, 11, 23, 42, + 66, 60, 42, 49, 53, 36, 24, 20, 9, -17, -18, 3, 39, 59, 49, 41, + 39, 26, 1, -24, -53, -59, -70, -61, -66, -58, -12, 17, 7, -20, -26, -7, + -7, -16, -30, -51, -60, -45, -26, -11, -5, 5, 8, 10, 23, 48, 66, 55, + 40, 48, 48, 33, 30, 25, 2, -21, -15, 10, 41, 51, 44, 37, 41, 27, + 6, -28, -60, -65, -70, -63, -70, -55, -6, 21, 1, -20, -15, -2, -15, -24, + -32, -54, -66, -45, -22, -8, 6, 13, 5, 15, 31, 51, 64, 58, 41, 42, + 44, 35, 36, 29, 0, -20, -9, 14, 43, 53, 46, 39, 39, 24, 7, -33, + -69, -75, -73, -70, -75, -46, 4, 17, -2, -18, -6, 3, -18, -32, -38, -61, + -65, -39, -17, -2, 10, 10, 5, 19, 33, 55, 61, 54, 39, 40, 41, 41, + 40, 30, -6, -25, -6, 22, 44, 48, 42, 42, 37, 23, 11, -42, -73, -77, + -75, -74, -75, -39, 4, 8, -5, -15, 1, -1, -30, -33, -38, -69, -66, -40, + -14, 3, 16, 8, 5, 21, 39, 60, 59, 48, 40, 38, 39, 42, 42, 30, + -8, -20, 0, 26, 48, 51, 48, 43, 29, 21, 1, -47, -70, -80, -83, -80, + -70, -25, 0, -2, -9, -6, 9, -7, -29, -33, -49, -72, -59, -29, -3, 3, + 11, 6, 14, 27, 47, 61, 54, 47, 43, 34, 42, 45, 39, 21, -10, -17, + 4, 29, 53, 54, 47, 39, 29, 22, -11, -53, -70, -83, -86, -77, -61, -19, + -6, -7, -12, -2, 9, -14, -29, -35, -61, -70, -54, -25, -8, 2, 11, 8, + 17, 27, 54, 60, 50, 45, 42, 40, 43, 39, 35, 18, -9, -7, 8, 28, + 55, 56, 49, 32, 30, 15, -21, -53, -71, -88, -87, -74, -45, -12, -11, -15, + -14, 6, 12, -12, -30, -48, -66, -60, -44, -18, -8, 5, 13, 15, 21, 31, + 51, 57, 48, 43, 42, 40, 43, 37, 29, 16, -3, -1, 7, 35, 60, 54, + 38, 26, 29, 5, -30, -54, -72, -93, -87, -69, -34, -14, -19, -25, -12, 13, + 6, -17, -37, -56, -66, -49, -38, -18, -11, 1, 17, 24, 26, 32, 47, 52, + 50, 49, 45, 39, 40, 33, 32, 13, 4, 3, 3, 47, 65, 52, 29, 27, + 20, -5, -35, -56, -76, -90, -79, -63, -27, -17, -26, -24, 0, 12, -2, -16, + -33, -61, -61, -42, -33, -17, -16, -6, 22, 30, 25, 29, 45, 50, 46, 53, + 41, 37, 37, 33, 28, 17, 15, 2, 15, 54, 64, 46, 21, 25, 9, -12, + -39, -58, -77, -87, -75, -46, -21, -23, -34, -24, 9, 9, -7, -17, -40, -67, + -53, -33, -27, -22, -26, -4, 34, 34, 25, 27, 46, 44, 52, 59, 37, 30, + 35, 32, 26, 25, 16, 2, 30, 62, 57, 33, 19, 17, -7, -25, -43, -58, + -80, -82, -64, -36, -26, -26, -33, -17, 11, 4, -9, -18, -45, -62, -44, -30, + -24, -28, -29, 5, 38, 32, 25, 30, 48, 41, 53, 57, 35, 28, 26, 27, + 31, 29, 14, 12, 47, 63, 48, 35, 24, 4, -19, -32, -46, -55, -76, -77, + -58, -31, -30, -33, -36, -8, 12, -4, -9, -22, -51, -57, -30, -23, -27, -40, + -31, 18, 36, 31, 30, 33, 39, 36, 56, 51, 32, 27, 20, 24, 39, 30, + 16, 29, 55, 53, 43, 36, 21, -5, -28, -39, -45, -55, -71, -70, -47, -27, + -35, -36, -25, -2, 1, -4, -6, -23, -48, -48, -25, -16, -25, -46, -23, 24, + 30, 35, 34, 29, 33, 37, 51, 41, 30, 21, 12, 27, 47, 33, 19, 38, + 51, 43, 39, 36, 15, -17, -35, -35, -42, -55, -68, -62, -45, -33, -40, -36, + -19, -5, -4, -3, -6, -24, -47, -38, -17, -13, -37, -48, -13, 26, 30, 36, + 32, 27, 29, 36, 48, 38, 27, 9, 5, 34, 47, 31, 30, 49, 47, 36, + 38, 28, 11, -21, -32, -32, -47, -56, -60, -54, -40, -39, -42, -31, -12, -5, + -7, -1, -4, -21, -39, -28, -11, -13, -45, -42, -2, 23, 25, 42, 33, 26, + 26, 33, 44, 34, 20, 1, 5, 36, 47, 38, 40, 47, 37, 35, 38, 20, + 1, -23, -26, -35, -49, -56, -55, -48, -40, -46, -42, -28, -12, -12, -10, 2, + -6, -25, -32, -25, -13, -22, -43, -30, 5, 18, 24, 45, 35, 29, 21, 27, + 39, 28, 16, 2, 9, 39, 40, 44, 55, 45, 25, 31, 34, 15, -1, -18, + -25, -41, -49, -50, -52, -46, -42, -48, -40, -23, -9, -18, -13, 9, -1, -24, + -27, -22, -14, -30, -41, -26, 8, 15, 25, 40, 36, 26, 15, 26, 35, 21, + 11, 2, 17, 44, 37, 54, 63, 37, 16, 31, 27, 12, -3, -12, -24, -45, + -47, -46, -45, -40, -44, -55, -40, -17, -12, -22, -7, 19, -2, -22, -24, -15, + -17, -36, -36, -11, 16, 10, 17, 38, 43, 25, 15, 25, 26, 14, 7, 2, + 25, 39, 38, 63, 67, 30, 16, 25, 18, 14, -5, -9, -26, -43, -45, -47, + -42, -38, -52, -57, -35, -14, -22, -27, 0, 23, -5, -24, -22, -12, -21, -40, + -31, 1, 19, 6, 11, 35, 44, 22, 18, 28, 14, 4, 4, 11, 32, 34, + 38, 70, 68, 22, 18, 17, 15, 17, 0, -10, -31, -45, -43, -42, -34, -36, + -62, -61, -25, -11, -28, -29, 3, 25, -3, -26, -15, -12, -28, -34, -21, 9, + 17, 2, 10, 31, 40, 24, 23, 28, 5, -3, 6, 19, 35, 33, 42, 72, + 59, 22, 22, 12, 17, 17, 2, -11, -31, -40, -40, -36, -28, -40, -66, -57, + -18, -15, -32, -22, 9, 22, -3, -23, -8, -12, -31, -32, -12, 18, 15, -1, + 9, 25, 36, 26, 27, 20, -7, -5, 12, 23, 29, 33, 45, 70, 48, 25, + 20, 8, 16, 9, 4, -11, -33, -39, -37, -34, -30, -46, -65, -50, -23, -22, + -30, -19, 13, 22, -4, -21, -6, -15, -32, -28, -3, 18, 9, 0, 9, 21, + 30, 28, 30, 12, -14, -1, 17, 19, 27, 41, 51, 63, 35, 28, 22, 12, + 10, 6, 9, -14, -31, -36, -31, -27, -38, -49, -62, -48, -29, -25, -27, -13, + 13, 13, -3, -9, -9, -21, -30, -20, 4, 12, 4, 5, 12, 19, 27, 33, + 29, 6, -12, 2, 21, 17, 31, 45, 54, 55, 31, 31, 25, 14, 3, 5, + 11, -14, -27, -33, -24, -27, -41, -49, -63, -53, -37, -26, -22, -7, 11, 8, + 0, -3, -14, -19, -27, -14, 8, 5, 2, 9, 12, 20, 25, 31, 18, 0, + -6, 8, 20, 14, 27, 43, 59, 48, 24, 28, 25, 14, 2, 8, 6, -15, + -26, -30, -16, -28, -44, -53, -61, -58, -37, -27, -21, -4, 8, 3, 1, -2, + -18, -21, -24, -11, 3, -4, 3, 15, 17, 20, 22, 29, 15, 3, -2, 8, + 17, 18, 30, 46, 56, 40, 21, 29, 26, 14, -1, 5, 4, -6, -22, -29, + -13, -27, -46, -51, -62, -61, -37, -28, -14, 2, 7, 0, 5, -2, -16, -17, + -19, -10, -7, -9, 11, 20, 22, 18, 17, 25, 19, 4, -1, 10, 19, 25, + 32, 44, 53, 36, 19, 29, 24, 10, -4, 5, 4, -2, -22, -24, -13, -31, + -48, -56, -63, -60, -40, -31, -11, 8, 8, 2, 8, -6, -20, -17, -12, -10, + -20, -12, 14, 30, 26, 10, 14, 24, 24, -1, -7, 12, 25, 27, 30, 40, + 52, 34, 17, 28, 24, 7, -9, 1, 8, 3, -20, -20, -16, -33, -53, -59, + -62, -61, -47, -29, -5, 15, 5, 1, 9, -8, -20, -14, -5, -12, -30, -11, + 20, 37, 25, 10, 19, 25, 19, -5, -2, 18, 28, 26, 29, 41, 49, 31, + 20, 30, 24, 1, -8, 4, 10, 3, -17, -12, -18, -40, -57, -61, -62, -59, + -48, -23, 0, 18, 5, 5, 12, -9, -19, -9, -2, -20, -37, -7, 25, 39, + 23, 11, 25, 26, 10, -10, 5, 23, 24, 26, 30, 40, 42, 27, 23, 31, + 18, -7, -5, 2, 7, -1, -10, -10, -22, -45, -59, -63, -62, -58, -45, -21, + -1, 17, 10, 13, 7, -18, -21, -5, -3, -27, -38, -7, 26, 38, 21, 20, + 31, 23, 0, -9, 15, 25, 21, 28, 33, 35, 35, 29, 28, 31, 12, -5, + 0, 0, 4, 0, -3, -14, -27, -48, -57, -69, -66, -61, -40, -19, 1, 16, + 13, 16, -3, -18, -17, -4, -9, -30, -33, -1, 24, 35, 28, 34, 31, 16, + -4, -2, 22, 29, 20, 27, 38, 33, 30, 30, 31, 33, 9, 1, -3, -7, + 2, 6, -1, -22, -31, -50, -61, -74, -67, -52, -34, -25, 1, 19, 21, 14, + -8, -18, -14, -10, -14, -27, -26, -5, 21, 35, 38, 40, 31, 12, -1, 5, + 22, 29, 19, 31, 41, 28, 30, 28, 31, 28, 12, 7, -13, -11, -2, 13, + -5, -26, -32, -52, -67, -80, -65, -46, -34, -26, 2, 15, 25, 9, -8, -14, + -16, -10, -18, -25, -25, -9, 20, 37, 46, 35, 26, 10, 7, 8, 18, 27, + 18, 31, 39, 25, 29, 29, 34, 26, 20, 2, -18, -10, -5, 12, -9, -22, + -31, -48, -74, -79, -66, -42, -34, -22, -1, 14, 25, 13, -6, -19, -16, -8, + -19, -22, -21, -5, 21, 41, 51, 32, 25, 14, 19, 13, 14, 21, 21, 32, + 34, 26, 26, 30, 32, 25, 25, -3, -19, -13, -2, 8, -12, -24, -32, -46, + -75, -79, -67, -43, -33, -18, -7, 12, 25, 18, 0, -23, -13, -7, -23, -18, + -15, -4, 21, 48, 51, 27, 27, 23, 22, 12, 12, 19, 22, 28, 28, 28, + 28, 31, 28, 23, 28, -3, -20, -22, -5, 0, -14, -23, -28, -50, -78, -81, + -63, -44, -34, -19, -14, 10, 25, 18, -6, -19, -5, -11, -30, -17, -8, 2, + 21, 54, 45, 25, 28, 33, 25, 9, 12, 21, 26, 23, 24, 33, 37, 35, + 20, 23, 32, -1, -21, -25, -12, -11, -12, -19, -27, -53, -78, -79, -55, -42, + -31, -26, -18, 12, 24, 13, -9, -12, 0, -20, -33, -13, 1, 6, 26, 55, + 38, 25, 33, 45, 26, 7, 13, 21, 26, 16, 18, 38, 44, 33, 14, 25, + 30, 4, -24, -32, -21, -18, -19, -19, -25, -54, -79, -78, -53, -43, -29, -28, + -20, 6, 20, 12, -3, 0, -3, -35, -28, 1, 9, 8, 25, 46, 34, 30, + 37, 44, 19, 13, 20, 17, 20, 12, 18, 49, 49, 23, 13, 28, 33, 3, + -34, -37, -28, -30, -21, -10, -26, -57, -77, -74, -52, -40, -25, -32, -22, 3, + 17, 12, 3, 8, -15, -40, -18, 10, 10, 4, 32, 39, 27, 38, 48, 39, + 11, 18, 28, 17, 15, 5, 23, 61, 46, 21, 23, 35, 26, -3, -31, -37, + -39, -38, -23, -3, -29, -60, -74, -68, -58, -37, -27, -35, -22, -7, 15, 23, + 14, 8, -27, -41, -6, 19, 14, 9, 35, 31, 31, 48, 54, 35, 11, 27, + 26, 4, 7, 11, 31, 54, 38, 25, 34, 35, 20, -10, 19, 3, -8, -45, + 64, -15, -41, 23, 40, -58, 22, 29, -27, -28, 42, -36, 21, -12, -19, 39, + -14, 3, -18, 32, -27, 18, -8, -43, 43, 25, -52, 6, 19, 13, -7, -50, + 55, 5, -46, -22, 94, -53, -33, 35, 27, -45, -2, 20, 19, -30, -23, 47, + 8, -58, 5, 76, -67, -22, 42, 30, -54, 8, 23, 11, -51, 3, 47, -33, + -7, 5, 27, -33, 34, -35, 17, 4, -26, 5, 17, -30, 33, 5, -29, -5, + 44, -18, -50, 60, -33, 10, -5, 10, -7, 1, -5, 19, -36, 3, 37, -17, + -51, 52, 37, -64, 9, 4, 37, -44, -13, 25, 45, -75, -9, 79, -34, -57, + 53, 24, -59, 18, 22, -3, -24, 10, -2, 18, -53, 29, 35, -20, -43, 37, + 18, -17, -31, 8, 45, -49, 8, 11, 9, -23, 30, -24, -22, 29, 14, -43, + 27, 13, -22, -1, 2, 22, -37, 5, -5, 38, -43, 6, 36, -21, -20, 20, + 0, -5, -27, 27, 21, -53, 4, 52, -2, -84, 70, 5, -29, -19, 36, -6, + -8, -12, 3, 35, -32, -25, 48, 6, -60, 49, 4, -27, -13, 31, -15, -9, + -4, 31, -13, -25, 29, 12, -34, -6, 30, -41, 36, -23, 6, 31, -30, 0, + 17, -45, 47, -5, -47, 19, 28, -8, -30, 27, -6, 15, -54, 34, 21, -27, + -9, 25, 3, -45, 26, 27, -52, 22, 20, -29, 34, -46, 22, 40, -69, -27, + 108, -49, -54, 69, -11, -3, -18, 3, 15, -12, -23, 29, -8, 4, -23, 50, + -38, -8, 33, -32, -2, 26, -27, 12, 13, -39, 56, -31, -22, 28, 2, -39, + 54, -20, -36, 51, -6, -34, 15, 2, 1, 2, -36, 42, 2, -10, -39, 64, + -36, -16, 24, 1, -1, -18, -10, 54, -27, -54, 80, -18, -61, 51, 27, -76, + 64, -30, -1, 9, -19, 24, 13, -29, -13, 49, -18, -46, 43, 6, -47, 42, + -28, 14, 18, -18, 2, 14, -39, 25, 16, -58, 33, 29, -49, 16, 41, -62, + 43, -17, -17, 25, -10, -28, 41, -5, -30, 27, 14, -53, 27, 35, -63, 16, + 30, 0, -30, -10, 22, 31, -57, 0, 68, -59, 2, 37, -30, 6, -3, -19, + 35, -29, 1, 20, 22, -68, 33, 39, -71, 21, 27, -22, -1, 3, 0, 18, + -16, -13, 17, 4, -37, 44, -15, -26, 48, -29, -11, 34, -25, -4, 25, -48, + 43, 4, -49, 28, 42, -72, 7, 59, -36, -28, 45, -9, -28, 25, -19, 23, + -9, -40, 47, 18, -85, 78, -2, -53, 39, -17, 2, 14, -36, 10, 63, -78, + 17, 59, -66, -8, 54, -49, 14, 1, 5, 2, -18, 16, -12, 30, -58, 22, + 53, -83, 17, 79, -84, 19, 17, -34, 44, -33, -27, 82, -62, -19, 91, -93, + 22, 49, -51, -25, 48, -12, -6, 1, -2, -1, 22, -32, -1, 59, -78, 12, + 58, -49, -26, 70, -40, -8, 16, -8, 12, 10, -65, 74, -1, -97, 90, 0, + -56, 23, 25, -17, 11, -23, 14, 9, -24, -31, 77, -41, -48, 95, -38, -46, + 59, -1, -57, 49, -33, 19, 18, -46, 34, 31, -79, 47, 11, -38, 10, 19, + -14, -10, 26, -29, 28, -17, -27, 48, -15, -51, 78, -14, -73, 64, 12, -55, + 29, 3, -24, 52, -65, 26, 50, -75, -5, 81, -76, 0, 42, -6, -26, 10, + 18, -14, 4, -24, 33, 2, -69, 61, 43, -101, 40, 54, -73, 22, 18, -41, + 44, -19, -43, 94, -69, -13, 65, -26, -46, 35, 24, -34, -2, 23, -13, 6, + -19, 4, 38, -56, 14, 40, -37, -19, 66, -57, -9, 50, -47, 21, 6, -31, + 55, -34, -50, 98, -44, -47, 44, 28, -51, 6, 31, -3, -34, 8, 11, 6, + -18, -27, 78, -48, -28, 55, -2, -60, 57, -37, 14, 15, -48, 49, 22, -96, + 74, 23, -83, 36, 18, -17, -25, 41, -12, -4, -2, 1, 9, -14, -18, 36, + 12, -77, 54, 32, -67, 20, 38, -67, 61, -53, 32, 21, -60, 27, 41, -74, + 27, 33, -30, -6, 22, -1, -30, 20, 1, -4, -22, 9, 8, 37, -65, 18, + 61, -69, -3, 37, -19, -15, 15, -16, 57, -78, 20, 66, -67, -27, 76, -37, + -16, 11, 11, -5, -18, 10, 16, -5, -38, 36, 9, -20, -32, 73, -41, -36, + 62, -33, -9, 34, -41, 35, -7, -40, 65, -35, -26, 33, 2, -43, 42, -4, + -9, 5, -11, 19, -10, -16, 11, 16, -28, -9, 41, 2, -70, 67, -3, -55, + 23, 33, -26, 6, -29, 43, 16, -85, 51, 28, -54, 7, 27, -9, 2, -18, + 27, -4, -42, 31, 10, -19, -9, 18, 8, -24, -3, 45, -57, 25, 0, -7, + 15, -28, 10, 33, -46, -6, 52, -36, -15, 46, -29, -4, 12, -14, 34, -57, + 16, 40, -41, 3, 16, 8, -32, 16, 15, -17, -27, 47, -30, -1, 14, -5, + 16, -17, -33, 70, -44, -42, 84, -34, -27, 18, 15, 3, -20, -22, 55, -35, + -22, 31, 10, -11, -27, 27, 13, -28, -10, 41, -21, -3, -22, 41, -21, -13, + 6, 34, -68, 46, 25, -65, 50, -21, -1, 10, -33, 34, 1, -43, 58, -34, + -2, 13, 8, -25, 0, -2, 34, -29, -26, 45, -12, 4, -34, 32, 15, -54, + 17, 53, -76, 41, 4, -17, 13, -26, 13, 31, -47, 1, 52, -53, 11, 8, + 14, -31, -7, 19, 30, -60, 26, 27, -22, -10, 0, 18, -13, -24, 52, -38, + -17, 68, -60, 26, -9, -25, 41, -29, -8, 40, -25, -9, 26, -28, 15, -9, + -3, 11, -21, -1, 44, -47, 19, 0, 3, -14, -12, 38, -22, -23, 37, -10, + -13, 9, -6, 21, -14, -39, 61, -4, -68, 60, 6, -43, 28, -14, 21, -22, + -13, 36, -7, -40, 46, -14, -5, -18, 20, 22, -49, 22, 10, -18, 21, -30, + 9, 34, -54, 19, 22, -34, 27, 7, -45, 30, 0, -20, 23, -23, 29, -10, + -21, 25, 3, -23, -1, 5, 16, -33, 14, 25, -21, -11, 16, 3, -22, 5, + 6, 32, -73, 27, 62, -72, 5, 26, -21, 30, -37, 4, 40, -45, 5, 18, + -18, -1, 12, -3, 0, -18, 28, -8, -14, 11, -11, 13, -15, -3, 27, -17, + -30, 65, -45, -5, 28, -25, 1, 20, -36, 38, -11, -20, 35, -23, -20, 27, + 11, -42, 13, 17, 1, -25, 20, 10, -33, 10, 6, -7, 9, -26, 40, -3, + -63, 74, -30, -11, 10, -10, 5, 17, -47, 53, -10, -47, 29, 31, -45, 4, + 16, 14, -15, -33, 40, -11, -3, -10, 2, 18, -20, 9, 22, -44, 19, 20, + -42, 25, -5, -11, 25, -25, -3, 47, -63, 28, 20, -42, 7, 39, -41, 2, + 13, 10, -24, -8, 41, -26, -1, -13, 9, 42, -60, 0, 61, -54, -4, 19, + -6, 11, -19, -13, 52, -37, -26, 66, -38, -30, 49, -18, -11, 5, 7, 10, + -30, 4, 17, 2, -12, -15, 38, -19, -20, 30, -16, -23, 38, -13, -16, 29, + -22, 26, -17, -35, 62, -30, -35, 51, -16, -27, 40, -16, 3, -8, -4, 9, + 4, -26, 11, 20, -11, -38, 56, -19, -29, 31, 7, -39, 17, 10, 6, -8, + -41, 45, 26, -79, 36, 42, -58, 21, 6, -10, 7, -19, 17, -1, -15, -12, + 53, -22, -32, 24, 25, -59, 24, 22, -36, 10, 18, -27, 44, -45, 0, 42, + -45, -2, 30, -27, 12, 23, -38, 13, 5, 4, -4, -20, 1, 43, -27, -36, + 43, 14, -51, 12, 40, -41, 5, 18, -11, -1, -5, -11, 53, -56, -29, 91, + -41, -45, 57, -7, -18, -3, -4, 29, -20, -19, 20, 26, -57, 31, 17, -22, + -13, 28, -31, 3, 36, -33, 9, 17, -39, 42, -9, -54, 58, 6, -69, 44, + 30, -50, 24, 3, -17, 9, -20, 17, 8, -23, 1, 46, -50, 1, 27, 1, + -49, 37, 5, -17, 4, -5, 7, 18, -55, 39, 36, -85, 37, 48, -63, 5, + 27, -13, -6, -4, 5, 24, -26, -12, 42, -25, -34, 33, 20, -33, -13, 29, + -2, 7, -34, 12, 37, -50, 1, 47, -46, -1, 56, -54, -18, 59, -35, -6, + 12, -16, 20, -2, -27, 43, -12, -34, 22, 25, -41, -7, 43, -20, -18, 19, + -1, 1, -6, -20, 54, -55, -12, 67, -24, -56, 56, -8, -12, -7, -3, 16, + 20, -48, 20, 32, -46, 8, 23, -17, -38, 54, 1, -34, 2, 30, -1, -21, + -18, 38, -14, -35, 41, 3, -36, 19, 22, -45, 40, -32, 12, 12, -26, 2, + 35, -54, 34, 14, -25, -30, 47, 10, -53, 24, 13, -4, -18, 3, 5, 27, + -61, 38, 15, -39, 6, 40, -36, 0, 2, -6, 28, -40, 7, 46, -37, -30, + 59, -21, -29, 6, 48, -55, 12, 30, -21, -6, 5, -2, 1, -14, -7, 46, + -41, -4, 35, -8, -33, 29, -20, 26, -31, -10, 63, -46, -4, 12, 7, -11, + -15, 26, -14, -22, 54, -47, 12, 9, -1, -8, -7, -8, 41, -12, -60, 77, + -21, -26, 11, 13, 1, -26, -9, 59, -45, -16, 38, -3, -27, -1, 28, -8, + -19, 11, 20, -41, 34, -23, 22, -20, -9, 6, 51, -79, 40, 18, -40, 23, + -5, -19, 13, 2, 3, -4, -35, 71, -39, 5, -30, 33, 6, -29, -3, 38, + -29, -5, 18, -9, -4, -11, 16, 15, -32, -14, 77, -83, 30, 10, -10, -19, + 20, 15, -17, -19, 29, 7, -32, 6, -1, 14, -14, -6, 5, 36, -58, 47, + -18, -14, 4, 8, 8, -24, -15, 60, -36, -20, 43, -32, 3, -2, 1, 9, + -5, -8, 30, -33, 6, 6, 2, -12, -11, 24, 1, -22, 9, 34, -61, 25, + 11, -5, -18, -1, 38, -19, -33, 49, -19, -21, 18, -7, 1, 5, -4, -3, + 13, -30, 25, -5, -12, 2, 8, 17, -37, 0, 50, -38, -26, 40, -15, 7, + -24, 31, -11, -8, 6, -6, -3, 1, 9, -8, 6, -20, 25, 0, -21, 7, + 22, -48, 29, -4, 10, -22, 7, 22, -9, -34, 45, -15, -31, 30, -2, 0, + -30, 46, -18, -6, -17, 31, -6, -7, -21, 8, 45, -47, -7, 31, -17, -11, + 25, -20, 17, -30, 47, -38, -2, 5, 16, -36, 24, -2, 3, -7, 6, 10, + -23, 5, -11, 35, -42, 17, 0, 21, -35, 11, 16, -18, -15, 36, -24, -3, + 9, 5, 13, -49, 36, -11, -2, -14, 37, -32, 13, -1, 0, -2, -2, -8, + 17, -11, -21, 30, -1, -1, -41, 72, -65, 14, 14, 12, -41, 21, 4, 15, + -32, -1, 25, -9, -18, 3, 29, -38, 35, -22, 14, -20, 16, -6, -6, -13, + 29, -4, -17, 7, 14, -6, -38, 54, -32, 3, -16, 36, -39, 42, -40, 36, + -22, -13, 17, 14, -36, 12, 23, -25, 6, -25, 53, -33, -12, 5, 37, -46, + 6, 20, 9, -53, 52, -16, -22, 24, -9, 10, -17, 12, -20, 48, -73, 40, + 18, -30, -20, 52, -34, 11, -6, 0, 1, -15, 24, -16, 16, -30, 44, -27, + -10, 0, 34, -52, 24, 3, 2, -6, 12, -25, 35, -38, -14, 72, -73, 7, + 31, 15, -50, 20, 12, -5, -25, 23, 3, -10, -9, 15, 9, -41, 28, 6, + -5, -36, 44, -13, 10, -19, 2, 14, -10, -29, 56, -27, -35, 58, -19, -27, + 17, 16, -30, 10, -7, 15, -12, -3, 11, 18, -30, -13, 38, -17, -16, 3, + 32, -37, 23, -24, 30, -12, -26, 40, -14, -52, 59, 12, -55, 16, 35, -20, + -30, 39, -24, 21, -26, 12, 13, -10, -19, 23, 2, -35, 17, 33, -30, -17, + 39, -15, 12, -53, 50, -13, -25, 2, 50, -42, -1, 25, -22, 6, -5, 3, + -4, 2, -18, 39, -25, -3, 1, 29, -57, 22, 26, -22, -18, 34, -10, -10, + -11, 13, 31, -77, 46, 23, -22, -35, 61, -24, -13, 7, -3, 0, 4, -24, + 27, 12, -50, 35, 13, -19, -37, 69, -46, -4, 13, 5, -8, 6, -25, 40, + -26, -13, 38, -12, -28, 21, 22, -57, 40, -15, 11, -19, 4, 19, 9, -36, + 3, 42, -35, -30, 46, 0, -50, 59, -26, 9, -16, 12, -10, 10, -33, 44, + -8, -29, 8, 42, -43, -6, 26, -19, 14, -30, 34, 4, -21, -17, 49, -31, + -24, 34, 14, -53, 32, 13, -26, 12, -22, 26, -3, -22, -11, 66, -59, 0, + 43, -27, -23, 42, -32, 7, -7, 11, 9, -19, -1, 15, 16, -58, 43, 1, + -32, 11, 36, -44, 18, 0, 4, -4, -7, -22, 50, -22, -44, 67, -14, -43, + 37, 2, -32, 15, 7, 8, -22, -1, 14, 19, -43, 0, 40, -30, -14, 28, + 10, -32, 11, 1, 21, -33, -9, 31, 15, -72, 61, 4, -40, 21, 14, -37, + 22, 4, -4, -9, 5, -8, 23, -16, -22, 35, -24, 0, 12, 3, -17, 15, + 2, -10, -6, -8, 21, 7, -58, 40, 43, -75, 25, 28, -25, -18, 28, -15, + 6, -5, -4, 22, -5, -39, 37, 1, -30, 12, 23, -27, -8, 34, -22, 0, + -12, 15, 10, -28, 2, 45, -45, -9, 36, -22, -7, 13, -7, 6, 2, -18, + 17, 10, -34, 9, 18, -22, -1, 22, -9, -17, 23, -1, -22, 21, -20, 20, + -17, -6, 38, -33, -18, 55, -32, -21, 26, -5, -9, 5, -8, 16, 9, -47, + 36, 11, -36, -3, 38, -7, -48, 44, -2, -11, 2, -16, 15, 11, -36, 33, + -3, -18, 9, 19, -46, 26, -1, -11, 20, -24, 12, 16, -16, -17, 37, -32, + -6, 13, 13, -33, 25, 14, -27, 8, 1, -18, 22, -5, -15, 32, -46, 37, + -2, -19, -13, 38, -32, 8, 2, -4, 15, -12, -4, 19, -25, -10, 37, -19, + -11, -10, 57, -54, 19, -17, 18, 3, -18, -9, 27, -6, -36, 57, -23, -21, + 14, 11, -23, 32, -53, 56, -24, -5, -3, 11, -16, 16, -7, -20, 17, 11, + -3, -31, 42, -33, 14, -6, -2, -8, 39, -56, 48, -21, -20, 30, -8, -20, + 12, 15, -32, 41, -36, 29, -25, 14, -22, 22, -19, 9, 4, 10, -31, 17, + 11, -14, -1, -7, 17, -16, 6, -18, 64, -88, 47, 6, -20, -5, 22, -13, + 18, -28, 2, 25, -19, -10, -3, 29, -23, 11, -22, 39, -25, 13, -27, 20, + -2, -18, 15, -3, 3, 9, -17, -8, 38, -57, 35, 1, -9, -24, 43, -32, + 30, -30, -3, 19, -3, -21, 12, 14, -12, 2, -5, 11, -37, 37, -3, -13, + -4, 10, 11, -4, -38, 41, -9, -27, 37, -37, 16, 17, -7, -15, 22, -40, + 33, -2, -16, 4, 3, 8, -4, -20, 21, -3, -10, 8, -26, 37, -21, 8, + 0, -3, -3, 0, -8, 20, -15, -32, 54, -10, -26, 17, -12, 10, 24, -71, + 51, 3, -21, 9, -3, 17, -22, 2, 15, -21, -11, 39, -25, 11, -27, 28, + 3, -11, -26, 45, -43, 24, 7, -39, 47, -24, -15, 27, -13, -15, 35, -27, + 15, -17, 9, 0, -7, 0, 4, -9, 13, -3, -16, 28, -29, 21, -23, 11, + -4, 10, -30, 64, -63, 13, 28, -30, 16, -13, 0, 25, -39, -2, 53, -40, + 5, -19, 41, -25, -6, -3, 37, -40, 6, 8, 0, 6, -34, 32, 4, -27, + 13, 15, -34, 52, -63, 40, -5, -22, 5, 24, -32, 22, 11, -26, 14, -22, + 26, -21, 10, -8, 5, -10, 46, -66, 44, -20, 14, -7, -27, 23, 30, -53, + 24, 10, -37, 44, -40, 21, -11, 3, 6, 20, -47, 27, 5, -2, -18, -4, + 29, -13, -20, 27, 9, -47, 43, -37, 55, -62, 14, 33, -13, -28, 24, -9, + 23, -35, -4, 32, -14, -13, 28, -10, -30, 46, -43, 43, -46, 13, 13, -10, + 7, -3, -20, 39, -19, -19, 14, -15, 39, -31, -10, 25, 2, -34, 41, -35, + 15, -4, -3, 22, -18, -27, 46, -1, -36, 10, -4, 42, -56, 13, 31, -19, + -18, 28, -29, 27, -32, 24, 10, -44, 20, 32, -32, -17, 32, -13, 13, -35, + 20, 32, -53, 20, 9, -16, 16, -36, 39, -3, -33, 43, -26, 2, 2, 2, + -17, 24, -22, 14, -3, -12, 31, -28, -8, 26, -29, 19, -4, -15, 33, -39, + 22, 16, -37, 6, 17, -4, -13, -12, 37, 9, -65, 34, 25, -27, -9, 7, + 5, 10, -36, 45, -11, -41, 42, -6, -21, 7, -5, 31, -5, -57, 62, -12, + -15, -16, 23, 4, -24, 12, 26, -35, -11, 44, -25, -8, -1, -4, 28, -11, + -37, 61, -48, 23, -1, -30, 29, -8, -2, 6, -19, 18, 15, -41, 30, -4, + -11, -11, 28, -10, -4, -37, 81, -45, -43, 61, -19, 1, -11, 0, 31, -30, + -25, 68, -43, -11, 0, 27, -1, -33, -7, 77, -54, -30, 44, -6, -5, -14, + 17, -6, -10, 6, 30, -68, 50, -16, 5, 5, -30, 30, 26, -69, 36, 8, + -34, 37, -28, 11, 0, -1, 9, 1, -41, 53, -22, -24, 23, 5, -9, -11, + 12, 28, -61, 28, 36, -68, 51, -33, 25, -6, -26, 7, 53, -65, 2, 47, + -25, -23, 17, 20, -4, -51, 38, 29, -67, 31, 1, 22, -35, -8, 40, -9, + -46, 47, -13, -8, 5, -15, 37, -27, -20, 45, -16, -45, 59, -37, 19, -6, + 2, 1, -11, -3, 34, -42, 0, 33, -30, 16, -13, 13, 2, -23, 18, -5, + -26, 43, -24, 15, -26, 4, 35, -15, -62, 64, 19, -75, 50, -8, 8, -14, + -12, 31, -19, -30, 45, -10, -12, -10, 36, 3, -53, 14, 45, -37, -22, 42, + -25, 21, -36, 21, 37, -61, 5, 47, -49, 19, -4, 5, 1, -12, 7, 3, + -11, 2, 18, -28, 13, -4, 18, -13, -20, 33, -22, -8, 21, -12, -10, 24, + -9, 2, -27, 15, 33, -41, -18, 56, -40, 9, -5, 6, 20, -44, 11, 39, + -35, -22, 50, -7, -36, -6, 41, -10, -30, 15, 20, -22, 7, -11, 16, 6, + -51, 59, -21, -26, 24, 12, -24, 8, -7, 12, 3, -36, 27, 18, -42, 22, + 9, -22, 11, -2, 15, -40, 38, -13, -16, 8, 24, -33, 15, -13, 4, 23, + -42, 17, 30, -34, -5, 28, -22, 11, -23, 30, -14, -28, 37, 12, -46, 11, + 31, -23, -12, -7, 36, -17, -6, -4, 25, -18, 4, -29, 53, -48, 4, 24, + -9, -21, 30, -1, -20, 2, -13, 51, -51, -1, 39, -23, -18, 33, -23, 3, + 3, 2, -13, 11, 4, -13, 15, -14, -3, 1, 24, -53, 55, -24, -17, 36, + -1, -49, 45, -7, -12, -2, -4, 24, -23, 1, 6, 23, -51, 30, -8, 14, + -29, 17, 12, -9, -21, 21, 1, 3, -32, 21, 30, -59, 27, 25, -21, -26, + 36, -24, 16, -23, 15, 10, -15, 11, -11, -3, 14, 1, -30, 32, -24, 27, + -25, 10, -12, 29, -33, 7, -5, 25, -29, 14, 15, -42, 20, 18, -27, 1, + 21, -19, 17, -18, 2, 19, -12, -34, 47, -21, -6, 9, -2, 14, -32, 32, + -23, 14, -21, 21, 0, -13, -8, 42, -35, -19, 33, 4, -34, 23, -5, -6, + 22, -31, 21, -8, -5, -3, 15, -22, 10, 2, 7, -17, 11, 3, -10, 2, + -1, -2, -9, 25, -20, 11, -18, 17, -3, -12, 2, 9, -1, -10, 5, 0, + 15, -40, 36, -5, -28, 16, 24, -34, 16, -1, 13, -32, 11, 9, 5, -26, + 5, 32, -32, 4, -1, 29, -38, 8, 7, -6, 5, -2, -5, 18, -26, -2, + 39, -42, 0, 26, 2, -43, 45, -30, 20, -11, -6, -3, 16, -7, -6, 3, + 12, -13, 5, -7, -21, 47, -29, -11, 9, 36, -45, 8, 0, 22, -28, -7, + 32, -22, -9, 20, 12, -40, 24, -8, 14, -28, 10, 9, 12, -29, 15, -7, + 15, -23, 5, 14, -24, 12, 8, 4, -38, 36, -4, -7, -30, 47, -13, -24, + 16, 23, -46, 29, -3, -10, 20, -43, 35, 0, -4, -30, 47, -18, -21, 16, + 19, -35, 11, 19, -21, -11, 27, -12, -9, 16, -21, 23, -32, 30, 3, -22, + -15, 51, -38, -1, -2, 11, 15, -28, -1, 16, 13, -42, 23, 4, -6, -32, + 61, -24, -35, 34, 29, -55, 4, 13, 9, -6, -26, 35, -6, -11, -11, 19, + -6, -3, -15, 43, -41, 4, 22, -1, -34, 18, 15, -35, 18, -1, 23, -35, + 18, -2, -9, 1, 10, -18, 17, -18, 21, -8, -17, 24, -1, -20, -7, 26, + -11, 6, -33, 42, 0, -40, 9, 46, -48, -6, 24, 13, -39, 8, 41, -43, + 3, 6, 6, -7, -6, -8, 42, -37, -11, 39, -16, -26, 25, 3, -24, 9, + 11, 6, -34, 17, 14, -12, -22, 20, 0, 14, -38, 27, 10, -37, 22, -1, + -5, -7, 11, 4, -3, -29, 38, -5, -26, 4, 20, -17, 6, 2, 11, -17, + -10, 40, -49, 10, 26, -8, -24, 11, 12, 5, -36, 21, 20, -22, -29, 28, + 30, -30, -24, 31, 25, -70, 39, 4, -16, 3, 9, -13, 16, -26, 23, 19, + -46, 1, 29, 6, -37, 8, 27, -8, -33, 36, -24, 5, 14, -8, -8, 1, + 4, 15, -27, -11, 44, -38, 6, 12, -3, -12, 20, -17, 16, -35, 28, -4, + 0, -13, 8, 23, -24, -16, 28, 11, -58, 48, 6, -39, 11, 24, -9, -8, + -25, 42, -16, -14, 12, 2, 13, -31, 6, 26, -10, -48, 64, -22, -21, 6, + 28, -15, -11, -2, 22, -30, 11, 15, -25, 13, 2, -1, -7, -4, 6, 17, + -37, 17, 0, 1, 14, -23, 4, 16, -23, 6, 12, -31, 30, 6, -18, -25, + 45, -7, -20, -15, 44, -38, 9, 22, -37, 24, 6, -20, 14, -17, -8, 44, + -27, -22, 16, 30, -33, -18, 20, 31, -50, 11, 27, -21, -4, -3, 26, -15, + -24, 15, 20, -27, 16, -12, 9, 5, -24, 3, 26, -27, 5, 15, -19, 9, + -9, 26, -25, -5, 10, -4, -6, 31, -45, 18, 24, -23, -23, 27, -3, 2, + -18, 9, 13, -18, 19, -17, 7, -1, -24, 31, 5, -49, 31, 32, -40, -7, + 10, 14, -12, -12, 5, 21, -30, 25, -12, 4, -18, 9, 11, -13, -20, 37, + -8, -3, -13, -3, 33, -21, -32, 44, -7, -22, 28, -24, 5, 12, -19, 2, + 6, 2, -16, 11, 10, -6, -23, 31, -25, 7, 6, -16, 18, 1, -35, 40, + -9, -18, 12, 4, -2, -25, 20, 19, -16, -35, 46, -14, -8, -3, -1, 24, + -12, -25, 26, -4, -6, 3, -12, 20, -24, 18, 9, -20, -2, 18, -13, -1, + -16, 8, 26, -35, 12, 10, -11, 6, 2, -30, 46, -43, 16, 6, 1, -20, + 26, -18, 8, -13, 9, -3, 3, 1, -25, 29, 13, -50, 12, 41, -47, 15, + 14, -12, 2, -3, -1, 14, -25, -3, 26, -23, 19, -35, 41, -5, -23, -1, + 31, -30, 8, -15, 32, -29, -7, 22, 10, -35, 12, 6, -2, 20, -50, 36, + 7, -17, -4, -1, 7, 2, -21, 19, -12, 1, 28, -25, -5, 9, -3, -12, + 32, -45, 16, 21, 0, -43, 21, 28, -19, -38, 45, -15, -8, 28, -43, 39, + -12, -23, 13, 19, -39, 23, -3, 17, -32, 6, 20, -5, -32, 23, 8, -15, + -1, 11, 9, -28, 5, 20, -18, -6, 9, -18, 50, -50, -8, 49, -30, -5, + -4, 14, -19, 28, -21, 2, 4, 11, -20, 6, 3, -5, -24, 54, -34, -14, + 26, -4, -2, -16, 5, 20, -23, 1, 6, -9, 32, -37, 1, 25, -22, -8, + 31, -6, -37, 31, 0, 3, -37, 24, 25, -27, -20, 27, 1, 4, -26, 13, + 3, -14, 12, -6, 6, -3, -6, 18, -14, -27, 38, 5, -36, 14, 13, -22, + 26, -13, -22, 36, -23, -5, 3, 18, -12, -23, 31, -5, -24, 23, -15, 17, + -7, -23, 20, 6, -4, -19, 20, -8, 15, -32, 13, 17, -30, 17, 13, -19, + -8, 4, 24, -18, -29, 36, 7, -21, -20, 28, 13, -17, -31, 36, -9, -7, + 7, 6, -9, -4, 7, -6, 10, -32, 41, -26, 12, -10, -12, 35, -10, -39, + 36, -9, -7, 7, 6, -9, -4, 11, -14, 5, -7, 9, -13, 24, -27, 4, + 14, 7, -31, 19, -14, 17, -5, -34, 57, -31, -7, -6, 28, -15, -11, 2, + 25, -21, -14, 15, 18, -35, 12, 1, 9, -20, -2, 32, -37, 26, -17, 7, + 1, -10, -18, 54, -37, -16, 23, 11, -13, -23, 34, -5, -16, -10, 25, -28, + 30, -10, -7, -5, 18, -24, 25, -24, 18, -11, 0, 3, -19, 34, -12, -12, + 2, 3, -13, 32, -37, 20, 4, -6, -25, 29, -3, -2, -11, -2, 28, -38, + 18, 7, -5, -7, 0, -4, 21, -36, 30, -19, 25, -29, -15, 48, -11, -43, + 33, 33, -64, 17, 26, -12, -18, 9, -1, 18, -33, 23, -13, 21, -18, -13, + 18, -2, -20, 20, 6, -15, 4, -12, 28, -27, 1, 10, -5, 3, 0, -17, + 15, 17, -30, 2, 5, -8, 17, -11, -2, 9, -20, 23, -27, 23, -10, -3, + 7, -3, -25, 31, 9, -28, -9, 30, -5, -28, 15, 29, -36, -9, 29, -11, + -20, 33, -27, 21, -14, -12, 21, -3, -9, -2, 12, -5, -27, 27, 7, -20, + -11, 32, -9, -15, -1, 9, 20, -42, 12, 9, -4, 3, -6, -3, 6, 0, + -12, 15, -25, 27, -6, -6, -6, 6, -2, -4, 5, 9, -20, 12, 8, -17, + -10, 30, -12, -24, 25, -15, 18, -21, 21, -8, -6, -9, 12, -6, 15, -33, + 26, 8, -32, 13, 21, -12, -28, 20, 11, -6, -28, 27, 11, -21, -10, 22, + -1, -11, -7, 24, -12, -27, 35, -8, 0, -20, 23, -10, 9, -30, 32, -15, + 3, -7, 6, -2, 10, -17, 1, 8, -4, -5, -3, 14, -9, 1, -11, 18, + -13, 15, -33, 22, 14, -32, 11, 9, -1, -17, 14, 0, -3, -16, 29, -21, + -4, -1, 28, -24, -2, -11, 41, -25, -23, 24, 6, -18, -13, 37, -21, -2, + -4, 29, -40, 11, 12, 4, -25, 12, -9, 23, -17, -14, 27, -2, -26, 9, + 18, -14, -1, -15, 29, -18, -4, 5, 12, -26, 18, -3, -7, 3, 13, -10, + -25, 44, -38, 11, 8, -2, -25, 28, -9, 12, -13, -13, 10, 27, -53, 19, + 16, -4, -20, 12, 12, -21, 5, 12, 3, -35, 22, 8, 0, -28, 18, 16, + -25, -3, 9, 8, -3, -19, 8, 24, -34, -4, 38, -16, -30, 29, -1, -2, + -25, 28, -1, -21, 11, 10, -18, -1, 10, 1, -7, 0, 1, -7, 15, -15, + -5, 16, 2, -22, 8, 0, -1, 26, -34, -22, 56, -26, -11, 12, 9, -9, + -9, 4, 7, -8, -1, 8, 0, -21, 10, 19, -8, -25, 17, 10, -18, 3, + -4, 26, -15, -29, 30, 9, -46, 36, 12, -33, 1, 18, -2, -16, 4, 16, + -10, -16, 11, 2, 8, -19, 5, 1, 10, -21, 20, -8, -1, -3, 1, 7, + -19, 7, 11, -12, 5, 5, -26, 29, -11, -5, -2, 12, -13, 9, -22, 23, + 3, -20, 4, 17, -16, -13, 17, 15, -16, -34, 37, -5, 8, -32, 23, 17, + -36, -2, 36, -25, -4, 28, -18, -20, 15, 4, 7, -12, -24, 43, -19, 0, + -11, 25, -9, -12, -7, 10, -1, 11, -2, -12, 13, -27, 30, -9, -15, 8, + 17, -28, 18, -9, 3, 7, -8, -10, 16, -26, 35, -22, -10, 37, -35, 1, + 11, 11, -19, -2, 9, 17, -37, 11, 10, 9, -16, -12, 27, -11, -22, 16, + 24, -48, 25, -1, -3, 4, -20, 13, 39, -72, 34, 1, 2, -6, 4, -1, + -8, 2, -8, 18, -10, -1, -5, 19, -30, 5, 30, -16, -26, 36, -26, 3, + 21, -27, 10, 4, -10, 0, -4, 15, 9, -41, 32, -11, 2, -11, 15, -3, + -7, -8, 16, -3, -21, 23, -2, -9, -4, -2, 20, -5, -37, 49, -20, -6, + -9, 17, 17, -36, -8, 40, -24, -5, 3, 8, 5, -12, -6, 15, 2, -27, + 28, -4, -23, 16, 5, -1, -26, 29, 11, -38, 22, -12, -8, 38, -34, -3, + 10, 4, -2, -5, -8, 24, -16, -20, 21, 1, -7, 11, -7, -4, -15, 15, + 15, -21, -6, 10, -1, 17, -45, 23, 29, -42, 2, 18, -5, -6, -1, 22, + -20, -19, 16, 21, -20, -18, 23, 2, 5, -41, 36, 10, -34, 12, 12, -25, + 11, 1, 6, -6, -11, 20, -11, 10, -11, -12, 13, 8, -21, 5, -1, 14, + 3, -26, 5, 27, -39, 18, 7, -27, 34, -20, 13, -20, 7, -4, 25, -23, + -16, 7, 47, -35, -29, 37, 10, -35, 4, 12, -1, 0, -15, 25, -23, -12, + 35, 7, -51, 28, -1, 16, -33, 5, 27, -21, 2, -5, 13, -3, 0, -20, + 27, -30, 8, 16, -4, -13, 14, -15, 19, -12, -6, 8, -9, 19, -27, 4, + 20, -9, -12, 21, -37, 41, -22, 1, 1, 13, -33, 20, 14, -30, -2, 22, + 21, -51, 3, 38, -7, -35, 17, 6, 11, -43, 33, 9, -36, 10, 31, -24, + -13, 16, -6, 24, -36, -1, 16, 19, -45, 20, 11, 2, -30, 31, -21, -14, + 29, -4, -12, 3, -6, 9, 15, -37, 20, -4, 8, -18, 12, -7, 17, -8, + -12, -9, 23, 8, -28, 1, 29, -19, -18, 27, -2, -8, -28, 44, -4, -36, + 15, 33, -30, -13, 13, 14, -20, -7, 25, -11, -5, -8, 21, -1, -8, -37, + 50, 1, -53, 27, 28, -21, -10, 4, 16, -24, 10, 6, -12, 0, 2, 6, + 1, -13, 2, 21, -26, 3, 13, -19, 10, 9, -18, -3, 22, -18, -1, -2, + 14, -1, -23, 21, -6, -2, -9, 20, 5, -35, 1, 34, -21, -16, 22, 1, + -8, -5, 1, 18, -12, -23, 18, 5, -17, -7, 37, -6, -35, 6, 47, -44, + -7, 20, 5, -10, -23, 35, -6, -12, -12, 39, -27, -10, 9, 21, -21, -6, + 2, 5, 1, 6, -28, 17, 20, -31, -3, 15, 7, -26, 31, -40, 43, -32, + 23, -19, 11, -22, 26, -6, -1, -25, 33, 2, -25, -7, 9, 26, -16, -30, + 29, 20, -47, 13, 16, -9, -19, 18, 23, -32, -17, 32, 21, -38, -13, 14, + 43, -66, 19, 23, 5, -50, 47, -20, 2, -11, 22, -5, -6, -21, 4, 38, + -15, -32, 12, 35, -35, -4, 7, 18, -17, -1, -7, 6, 5, 0, 0, -7, + 0, -8, 21, -10, 5, -28, 30, 3, -17, -29, 57, -16, -17, -10, 28, -9, + -20, 26, -12, 3, -20, 27, -3, -7, -42, 65, -9, -45, -3, 63, -33, -11, + -6, 28, -17, -1, -6, 6, 7, -12, 0, 25, -21, -30, 54, -9, -37, 1, + 28, 7, -42, 18, 11, 17, -46, 24, -9, 27, -38, 22, -20, 23, -21, 11, + -6, 42, -71, 20, 32, -11, -43, 44, -3, -4, -27, 12, 24, -8, -18, -8, + 30, -19, -23, 44, -8, -30, 0, 45, -39, 0, -1, 28, -16, -17, -15, 44, + -13, -11, -13, 36, -24, -11, 12, 17, -30, 8, 17, -10, -18, 9, 22, -18, + -15, 3, 25, -25, 11, -6, 5, 7, -18, -3, 15, -1, -17, 8, 28, -32, + -17, 36, 8, -41, 12, 7, 13, -22, -14, 18, 41, -57, -1, 25, 10, -40, + 18, 11, -8, -23, 25, -16, 37, -45, 17, 10, 2, -60, 64, -15, -3, -16, + 22, -9, 9, -27, 30, -7, -21, 3, 20, -10, 6, -12, 15, -19, 14, -19, + 3, 22, -8, -29, 37, -28, 29, -26, 11, -15, 15, -17, 21, -26, 18, 5, + -5, -11, 2, 16, -10, -10, -5, 29, -30, 4, 3, 18, -21, 4, 1, 8, + -13, -10, 1, 40, -35, -26, 44, 5, -38, 8, 30, -24, 0, -1, 0, 12, + -18, -1, 18, -8, -28, 39, -18, 24, -35, 24, -36, 46, -41, 12, -3, 24, + -37, 31, -28, 32, -16, 2, -27, 39, -34, 7, 24, -19, -6, 14, -10, -1, + 14, -16, -4, 25, -26, -4, 8, 22, -40, 33, -30, 22, -15, 36, -63, 39, + 1, 10, -54, 36, 9, 5, -51, 49, -13, 5, -7, -7, 15, -9, -10, 2, + 12, -18, 6, 3, 18, -29, 9, 10, -10, 1, -20, 20, -3, -1, -13, 21, + -26, 41, -36, 2, 23, -23, -10, 39, -41, 17, -10, 8, 7, -13, 23, -54, + 66, -26, -50, 54, 17, -66, 59, -46, 30, -10, 6, -8, -18, 19, 16, -32, + 12, 6, -2, 3, -36, 33, -6, -7, 12, -16, 6, 14, -21, 14, 16, -58, + 37, 3, 0, -35, 44, -16, 17, -38, 28, -14, 25, -45, 28, -21, 32, -31, + 11, 17, -24, 11, 5, -24, 18, -6, -3, 0, -3, 21, -33, 24, 20, -78, + 66, -8, -24, 3, 17, -14, 24, -41, 34, -25, 27, -32, 17, -5, 13, -26, + 28, -29, 22, -8, -16, 33, -30, 2, 25, -27, 1, 31, -36, -7, 31, -8, + -12, -5, 17, -7, 5, -26, 32, 1, -18, -16, 27, -7, -10, 2, 21, -42, + 30, -3, -19, 33, -40, 19, 6, -13, -5, 17, -10, 28, -63, 40, 6, -10, + -9, 7, -3, 12, -20, -1, 17, -1, -6, -14, 18, 1, -19, 12, 5, -9, + -2, -14, 33, -3, -44, 51, -17, -6, -16, 36, -35, 29, -31, 31, -24, 15, + -23, 33, -35, 20, -4, -1, -19, 27, -1, -29, 25, 1, -20, 25, -23, -13, + 62, -50, -18, 43, -20, 1, -4, 16, -18, 4, -16, 36, -42, 42, -42, 38, + -28, 9, -10, 31, -40, 30, -39, 30, 8, -28, 11, 9, -7, -6, -8, 10, + 22, -36, -5, 26, 4, -41, 30, 12, -11, -10, -14, 37, -29, 3, -6, 9, + -5, 15, -30, 40, -26, 12, -25, 25, -21, -12, 46, -17, -39, 47, 7, -57, + 45, -14, 1, -13, 21, -21, 14, -7, 7, -11, 18, -34, 25, 7, -28, 22, + 1, -12, 11, -24, 4, 38, -44, 17, 2, -12, 19, -17, 0, 9, 17, -55, + 29, 3, 3, -27, 48, -38, 16, -17, 24, -19, 26, -49, 29, 9, -18, -25, + 50, 2, -31, -20, 43, -3, -35, 23, 13, -34, 9, 20, -15, -8, 29, -37, + 29, -21, 4, -8, 36, -52, 29, -8, 6, -18, 35, -34, 22, -21, 10, 5, + -11, -13, 35, -26, -3, 12, -17, 13, 1, -12, -4, 24, -18, -6, 18, -7, + -13, 17, -4, -30, 48, -41, 10, 34, -39, -22, 73, -48, -12, 12, 22, -14, + -31, 18, 29, -17, -21, 22, -3, -8, -12, 25, -11, 13, -41, 36, -3, -2, + -27, 37, -6, -36, 17, 18, -7, -10, 4, -5, 10, -21, 13, 15, -21, 2, + -1, -5, 8, -1, -16, 29, -24, 14, -18, 26, -24, 17, -26, 21, -18, 24, + -49, 82, -52, -11, 36, -22, -17, 30, -21, 1, 1, -1, 8, -2, -7, 2, + 17, -9, -36, 37, -5, -15, -4, 27, -20, 11, -31, 46, -18, -13, -11, 58, + -67, 19, -4, 40, -43, 9, -14, 41, -32, -16, 46, -19, -13, 5, -5, 6, + 2, -16, 10, -9, 18, -13, 3, 24, -37, 11, 1, 0, -8, -9, 28, -1, + -41, 40, -10, 6, -13, 1, -11, 30, -28, -10, 30, 1, -36, 17, 28, -54, + 51, -24, 1, -6, 6, -12, 33, -48, 23, 18, -17, -23, 27, 11, -23, -13, + 27, -7, -1, -24, 35, 3, -48, 35, 8, -20, -3, 3, 16, -11, 8, -35, + 32, 7, -27, -22, 81, -85, 36, -7, 16, -16, 2, 0, 13, -28, 12, -16, + 24, 6, -25, -14, 47, -15, -25, 3, 37, -41, -5, 32, -25, 11, 6, -16, + 25, -34, 14, 8, 13, -52, 30, 6, 13, -56, 56, -27, 13, -11, -6, 16, + -12, -1, 18, -40, 18, 19, -13, -11, 7, -2, 9, 10, -39, 9, 46, -48, + -18, 59, -32, -3, 14, -10, 10, -13, 10, -13, 14, -11, -10, 5, 31, -43, + 10, 23, -16, 3, -29, 50, -23, -19, 16, 15, -19, 3, -20, 39, -19, -14, + -6, 54, -44, -12, 18, 30, -56, 28, -15, 22, -16, -15, 31, -8, -9, -1, + 1, 1, 2, -8, 9, 10, -43, 41, -9, 8, -48, 62, -30, -9, 13, 6, + -24, 32, -31, 8, -4, 16, -27, 27, -19, -1, -6, 37, -40, 14, -3, 0, + 25, -59, 34, 18, -18, -21, 17, 13, -11, -8, -11, 43, -40, 1, 6, 24, + -37, 10, 14, -4, -12, -2, 17, 11, -40, 10, 16, 17, -51, 24, 14, -4, + -31, 22, 18, -32, 15, -24, 46, -38, 9, 2, -2, 14, -15, -12, 15, 3, + -28, 29, -7, -6, 13, -7, -6, 2, 3, -17, 28, -28, -9, 37, -17, 0, + 3, 10, -19, -5, 19, -17, 12, -25, 30, -19, 8, -27, 49, -15, -27, 9, + 10, 7, -31, 6, 30, -12, -45, 41, 24, -42, -1, 28, -2, -38, 29, -18, + 23, -4, -43, 35, 26, -54, 23, 7, 6, -30, 17, -14, 32, -40, 24, -13, + 17, -15, -11, 16, 16, -20, -26, 47, -10, -26, -6, 41, -19, -22, 36, -41, + 33, 5, -32, 12, 28, -51, 19, 27, -40, 7, 35, -34, 9, -22, 42, -20, + -15, -3, 43, -55, 15, 23, -10, -11, 3, 14, -32, 31, -26, 21, 7, -44, + 15, 40, -22, -41, 54, -17, -17, 8, -6, 10, 11, -17, -6, 15, -2, -20, + 31, -19, 4, -17, 22, 0, 2, -36, 39, 0, -31, 23, -38, 59, -15, -29, + -13, 69, -50, -22, 43, -11, -16, 0, 16, -9, -10, 13, 5, -8, -18, 27, + -8, -2, -12, 13, -1, -16, 16, -18, 27, -11, -19, 39, -28, -26, 28, 36, + -85, 72, -40, 24, -10, 0, -9, 30, -29, -11, 22, -13, -7, 23, -10, -14, + 6, 13, -15, 22, -31, 12, 0, 0, -3, -15, 19, 14, -21, -22, 27, 35, + -72, 36, -3, 18, -54, 50, -29, 38, -47, 14, 19, -11, -25, 27, 9, -23, + -2, 2, 16, -6, -24, 22, 10, -27, 7, 16, -30, 11, 24, -40, 31, -28, + 29, 1, -28, 7, 17, 3, -45, 40, -11, -7, 4, 19, -45, 24, 24, -50, + 48, -35, 11, 9, -12, -14, 30, -23, 8, 7, -15, -7, 53, -59, 13, 5, + 15, -46, 49, -48, 57, -36, -20, 34, 1, -10, -15, 15, 20, -36, -9, 35, + 6, -39, 7, 14, 27, -81, 70, -21, 5, -22, 21, -6, 1, -13, 19, -19, + 4, -10, 35, -43, 31, -3, -7, -15, 40, -56, 33, -1, -33, 51, -35, -2, + 24, -18, 5, 0, 4, -16, 10, -6, 9, -28, 37, -38, 45, -35, 0, 37, + -38, 7, 19, -32, 3, 17, -2, -23, 19, 15, -23, 5, -2, 13, 1, -37, + 8, 59, -80, 26, 13, 15, -31, -8, 30, -7, -7, -19, 22, -2, -9, -2, + 12, -7, 3, 1, -25, 47, -53, 35, -5, -27, 21, 15, -25, 13, -24, 42, + -41, 19, 2, -13, 1, 23, -40, 37, -45, 46, -8, -41, 44, -11, -17, 23, + -9, -20, 22, -3, -15, 22, -23, 19, -7, 2, -34, 65, -56, 7, 28, -8, + -37, 37, 3, -8, -34, 39, -11, 9, -29, 6, 35, -14, -49, 48, 5, -25, + 5, -25, 66, -47, -9, 28, -7, -12, 0, 17, -20, -2, 21, -12, -23, 54, + -50, 20, 7, -20, 7, -2, 3, 4, -26, 26, -6, -14, 15, -3, -10, 12, + -10, -4, 23, -33, 14, -12, 38, -55, 36, 0, -6, -5, 0, -4, 7, 0, + -14, 2, 8, -11, 13, 5, -33, 41, 4, -62, 40, 8, -6, -8, -31, 52, + -4, -44, 25, 20, -18, -24, 32, -11, -9, -4, 30, -37, 34, -31, 7, 30, + -29, -14, 28, -10, -9, 6, 0, -5, 14, -9, -3, -2, 10, -22, 29, -22, + -2, 6, -5, 16, -25, 6, 27, -19, -9, -11, 29, -13, -5, -6, 16, 5, + -20, -1, 30, -20, -8, 7, -8, -2, 3, 14, -9, -24, 35, -7, -14, -12, + 32, -5, -18, -15, 35, -7, -13, -1, -4, 27, -20, -30, 58, -15, -29, 9, + 15, -16, -3, 1, 4, 5, -4, -11, 17, 3, -29, 28, -10, -18, 20, -7, + -2, 4, 2, -17, 22, -3, -31, 23, 23, -32, -14, 34, -3, -14, -13, 11, + 21, -26, -16, 36, -7, -13, 15, -8, -3, -1, -11, 15, -8, -4, -4, 24, + -21, 1, 11, 3, -22, 5, 15, -24, 0, 37, -31, 7, -18, 15, 16, -15, + -19, 26, 0, -10, -26, 31, 6, -19, -6, 21, -19, 20, -13, -3, 13, -2, + -32, 24, 2, -8, -10, 36, -29, -10, 19, 10, -25, 5, -9, 31, -23, -21, + 21, 26, -25, -9, -5, 35, -17, -34, 17, 42, -44, -11, 30, 11, -40, 18, + 8, -6, -11, 11, -26, 39, -18, -23, 37, -12, -32, 45, -8, -22, 5, 16, + -15, -10, 6, 17, -15, -3, 9, -22, 41, -22, -25, 29, 5, -30, 6, 12, + 17, -32, 7, 20, -26, 9, 9, -10, 7, -17, 10, 11, -16, -7, 12, 5, + -4, -26, 25, 24, -46, -4, 50, -39, -11, 8, 35, -36, 2, -9, 33, -7, + -22, -26, 76, -37, -41, 33, 28, -43, 14, 6, 2, -8, 2, -20, 34, -19, + -2, -4, 15, -6, -23, 28, -3, -32, 33, -16, 7, -11, 14, 9, -10, -30, + 35, -25, 17, -14, 1, 14, 12, -38, 16, 15, -7, -30, 15, 18, -24, -6, + 47, -38, 6, 7, -9, -2, -3, 1, 12, -8, -23, 20, 35, -47, -14, 51, + -9, -48, 19, 20, 0, -25, -2, 20, 16, -29, -25, 60, -17, -23, -8, 31, + -4, -30, 12, 20, -14, -4, -1, 17, -11, -9, 7, 7, -17, 1, -12, 25, + -5, -20, 15, 19, -29, 2, 5, 11, -19, -18, 31, 1, -27, 18, -17, 51, + -53, -2, 29, 4, -37, 17, 11, -11, -23, 41, -17, -10, 13, -4, -8, 18, + -27, 17, 1, -19, -7, 51, -37, -28, 53, 4, -47, 5, 18, 17, -32, -8, + 14, 36, -46, 3, 11, 11, -24, 4, 0, 16, -7, -26, 25, 20, -44, 7, + 20, -12, 2, -14, 4, 33, -38, 1, 8, 20, -34, -12, 61, -46, -19, 44, + -10, -4, -18, 12, 12, -8, -26, 16, 22, 2, -51, 18, 53, -56, -5, 30, + -9, -22, 32, -11, -18, 18, 13, -25, -7, 8, 9, 3, -20, 1, 32, -27, + -9, 5, 19, -20, -13, 18, 8, 3, -35, 22, 31, -47, -2, 16, -8, 15, + -10, -22, 54, -20, -23, -6, 51, -52, -13, 48, -23, -11, 28, -30, 38, -6, + -50, 28, 33, -58, 2, 34, 16, -53, -1, 55, -13, -42, 15, 23, -7, -33, + 13, 21, -14, -6, 2, -2, 27, -43, 27, 11, -19, -16, 26, -16, -4, 16, + -17, 1, 20, -17, 8, -17, 6, 26, -25, -24, 40, -13, 6, -14, -14, 29, + 3, -32, -5, 46, -21, -28, 38, -30, 6, 28, -47, 3, 65, -67, -5, 61, + -34, -27, 31, 12, -30, -7, 11, 19, 0, -43, 18, 47, -52, -20, 52, -14, + -9, -10, -5, 55, -45, -29, 55, 16, -83, 28, 36, -23, 6, -8, -13, 37, + -17, -30, 32, -9, -6, 10, -19, 16, 4, 9, -35, 22, -1, -17, 3, 8, + 10, -10, -21, 40, -27, -5, 16, -6, -27, 47, -23, -26, 48, -18, -19, 14, + -1, -9, 5, 1, -20, 58, -57, -14, 55, -16, -40, 37, -6, 11, -19, -22, + 43, 2, -55, 27, 37, -38, -29, 58, -6, -11, -22, 4, 26, -7, -67, 67, + 21, -56, 19, 15, -5, 0, 2, -41, 37, 10, -65, 49, 8, 1, -19, 1, + 9, 8, -20, -9, 22, -14, -3, 4, -1, 13, -6, -11, 15, -8, -15, 13, + 16, -38, 14, 24, -39, 20, 9, -17, 14, -15, 7, 3, -12, -3, 30, -25, + -24, 43, -1, -40, 18, 17, 0, -22, -14, 31, 20, -68, 35, 32, -43, -9, + 35, -16, 4, 2, -35, 35, 27, -81, 40, 31, -21, -30, 29, -12, 13, 10, + -42, 26, 17, -33, -1, 16, 12, -29, 6, 4, 21, -27, -9, 39, -6, -54, + 40, -14, 15, -4, -17, 20, 4, -18, -4, 23, -24, -3, 30, -41, 15, 17, + -4, -29, 19, 4, -9, -10, 12, 17, -21, -7, 26, -19, -17, 17, 3, 1, + -3, -30, 47, 16, -62, -4, 68, -29, -54, 43, -1, -4, 20, -42, 22, 34, + -32, -43, 63, -12, -26, 8, -6, 10, 22, -66, 55, 25, -65, 15, 9, 21, + -22, -28, 36, 5, -16, -51, 102, -49, -12, 6, 21, -12, -23, 24, -15, 11, + -14, -8, 31, 4, -53, 64, -35, 13, -28, 23, -23, 22, -16, 13, -22, 23, + 27, -51, -8, 41, 6, -66, 36, 13, 4, -26, 7, 11, 9, -34, 0, 35, + -21, -15, 10, 34, -57, 60, -69, 60, -22, 1, -27, 27, 14, -27, 1, -13, + 35, -2, -51, 36, 35, -49, 5, -1, 31, -42, 25, -26, 34, -7, -60, 98, + -46, -22, -1, 49, -45, -2, 10, 26, -33, 25, -36, 37, -19, 4, -3, -7, + 9, 7, -8, -29, 48, -23, 0, -33, 45, 0, -23, -16, 47, -7, -31, -9, + 38, -2, -36, 18, -8, 43, -55, 16, -1, 41, -72, 54, -35, 24, 4, -46, + 47, -11, 6, -40, 24, 10, 8, -38, 16, 16, 24, -98, 80, 2, -28, -28, + 44, 11, -47, 31, -7, 35, -42, -25, 41, 12, -64, 34, 14, -2, -21, 24, + -14, 11, -3, -24, 22, -28, 46, -51, 38, -22, 35, -40, 2, 11, 22, -48, + 23, -9, 34, -35, -24, 52, -7, -37, 9, 36, -21, 0, -32, 61, -44, 6, + -1, -16, 41, -28, 19, -37, 49, -11, -38, -8, 65, -53, 9, -21, 59, -37, + 8, -33, 59, -13, -80, 67, 19, -39, -28, 70, -21, -25, -3, 23, 17, -29, + -44, 83, -41, 0, -23, 53, -27, -12, 21, -19, 21, -21, 13, -4, -12, -5, + 38, -58, 34, 10, -22, -16, 47, -8, -39, 19, 12, 4, -46, 39, -24, 48, + -69, 45, -18, 10, -5, -2, -4, 10, -5, 7, -17, -3, 20, 0, -40, 26, + 40, -64, 11, 34, 1, -49, 11, 35, -22, -14, -32, 98, -47, -37, 9, 76, + -70, -8, 7, 63, -92, 56, -49, 77, -64, 2, 41, -28, -25, 37, 0, -26, + 35, -40, 16, 3, 14, -46, 22, 18, -6, -9, -11, 22, 26, -44, -46, 94, + -60, 18, -37, 69, -33, 5, -20, 42, -32, -20, 24, -1, -10, -12, 39, -31, + 13, 1, 9, -47, 42, -26, 39, -73, 48, 48, -73, -13, 56, 14, -78, 38, + 11, 12, -50, 8, 39, 3, -79, 73, 2, -25, -17, 23, 27, -58, 26, -37, + 67, -49, 11, -12, 62, -82, 64, -41, 3, 26, -17, -45, 55, -4, -22, 10, + -2, 38, -54, 8, 5, 47, -79, 7, 54, -7, -64, 41, 49, -73, 29, -24, + 54, -51, -4, 14, 33, -84, 82, -46, 17, -25, 57, -44, -2, 11, 8, 15, + -66, 46, 19, -25, -44, 58, 10, -38, -23, 77, -48, -3, -12, 24, 24, -70, + 37, 21, -15, -48, 81, -66, 44, -29, 6, 4, 9, -30, 31, -24, 5, 19, + -51, 34, 21, 11, -92, 78, 19, -44, -54, 104, -47, -8, -19, 29, 45, -78, + 6, 55, -11, -75, 66, -10, 8, -38, 24, 10, 4, -57, 66, -20, -25, 20, + 6, 9, -71, 100, -60, -6, 8, 28, -37, 29, -42, 78, -58, -22, 42, 10, + -69, 34, 33, -36, 29, -54, 81, -54, 0, 7, 1, -19, 22, -14, 4, -3, + 32, -13, -59, 86, -54, 4, 0, 21, -35, 43, -68, 91, -31, -53, 38, 48, + -72, -15, 50, 3, -11, -72, 96, -1, -49, -23, 81, -21, -57, 15, 63, -67, + 5, 25, -27, 34, -48, 49, -26, 12, -33, 66, -73, 14, 35, -20, -27, 45, + -24, 12, -12, 0, 24, -50, 33, -26, 45, -65, 47, -7, -4, -9, 19, -19, + -2, 15, -17, 30, -39, 25, 2, -3, -57, 109, -86, 10, 14, 31, -53, 7, + 32, 5, -44, -20, 84, -35, -34, -6, 99, -97, 1, 23, 40, -65, 15, 9, + 36, -45, -22, 55, 4, -55, -3, 73, -80, 63, -49, 28, 2, -10, -19, 24, + -13, 8, 1, -15, 5, 22, -4, -57, 72, -41, 16, -45, 76, -57, 30, -26, + 38, -16, -34, 32, 12, -53, 22, 47, -46, -4, 6, 45, -65, 32, -21, 45, + -44, -22, 69, -44, -16, 29, 19, -59, 40, -7, 42, -77, 39, -4, 29, -74, + 27, 38, -12, -60, 69, 7, -32, 1, -9, 50, -56, -15, 19, 47, -75, 44, + 5, -22, 27, -7, -22, 0, 23, -30, 1, 4, 33, -44, 29, -24, 57, -67, + 17, 18, 4, -59, 32, 48, -72, 28, -2, 13, -10, -21, 16, 58, -117, 85, + -14, -5, -34, 21, 29, -27, -20, 31, 23, -49, 16, -14, 51, -74, 24, 38, + -38, -16, 56, -33, -7, 3, 0, 36, -80, 49, 23, -19, -48, 76, -61, 43, + -41, 27, -11, 23, -30, 8, 3, 15, -14, -22, 16, 3, 15, -39, 11, 38, + -13, -70, 88, -41, 2, 4, -30, 80, -84, 15, 37, -6, -61, 58, -19, 27, + -72, 64, -6, -16, -30, 59, -21, -21, -12, 44, 22, -101, 78, -10, -16, -11, + 20, -21, 31, -36, 37, -18, -20, 46, -24, -23, 10, 21, -36, 32, -38, 68, + -50, 12, -6, 19, -33, 14, -16, 20, -11, -14, 47, -59, 56, -14, -27, 5, + 29, -43, 49, -96, 106, -35, -41, 28, 35, -30, -29, 37, 12, -11, -58, 79, + -31, -16, -11, 43, -13, -25, 3, 71, -76, -13, 64, -39, 3, -45, 66, -13, + -1, -45, 80, -40, 6, -29, 26, -12, 6, -19, 21, -4, 9, 0, -37, 44, + -28, 11, -22, 19, 7, 1, -45, 60, -13, -42, 32, -16, 31, -50, 35, 10, + -22, -23, 60, -62, 21, -2, 39, -49, -4, 24, 30, -53, -23, 66, -33, 2, + -34, 69, -33, -10, 7, 24, -51, 28, 0, 9, -24, -3, 38, -24, -16, -9, + 68, -81, 38, -16, 35, -34, -4, 16, 20, -43, 10, 7, -3, 14, -30, 38, + -39, 38, -20, -12, -20, 78, -79, 22, -4, 44, -48, -6, 37, -2, -25, -24, + 60, -41, 15, -30, 50, -43, 7, 9, 27, -64, 45, 5, -15, -17, 1, 49, + -56, 3, -11, 69, -78, 37, -5, 38, -60, 26, -2, 9, -51, 53, -20, -3, + 9, -1, 38, -74, 40, 6, -13, -54, 69, -24, 6, -22, 31, 0, -17, 12, + -13, 8, -9, 20, -53, 56, -27, 29, -63, 41, 8, 11, -73, 59, 15, -25, + -21, -1, 61, -69, 10, 17, 28, -59, 34, -14, 32, -54, 17, 22, -11, -47, + 63, 7, -56, 46, -28, 50, -96, 60, 2, 0, -37, 36, -11, 15, -38, 41, + -19, -31, 46, -12, -25, 9, 49, -67, 47, -48, 51, -30, -15, 23, 19, -43, + 8, 17, 4, -11, -29, 54, -48, 38, -28, 10, -9, 38, -48, 27, -47, 55, + 3, -59, 22, 41, -5, -59, 38, 5, 31, -101, 72, 11, -36, -18, 54, -25, + -1, -30, 54, -28, -34, 61, -27, 13, -46, 55, -21, -10, -21, 52, -34, -8, + 30, -21, 20, -11, -21, 22, -2, -46, 79, -84, 60, -9, 13, -57, 51, 2, + -16, -38, 34, 15, -23, -7, -6, 53, -38, -22, 29, 23, -63, 65, -34, -21, + 34, -7, -19, -8, 24, 13, -8, -63, 110, -56, -8, -37, 79, -56, -3, -3, + 62, -57, 19, 9, 8, -20, -29, 27, 13, -28, -19, 79, -80, 58, -31, 24, + -16, -35, 46, 0, -52, 36, 21, -29, 16, -23, 26, -29, 38, -42, 26, -41, + 60, -29, -16, -4, 42, 7, -85, 53, 47, -54, -29, 67, -53, 39, -58, 45, + -5, 5, -37, 61, -56, 27, 17, -40, 1, 15, 17, -43, 19, 4, 30, -49, + 12, -1, 49, -64, -27, 96, -41, -47, 45, 8, -38, 35, -50, 74, -81, 54, + -14, 24, -64, 57, -5, -25, -19, 27, 16, -27, 4, 16, 2, -25, 26, -31, + 22, -35, 56, -54, 0, 55, -23, -29, 9, 38, -38, 12, -41, 74, -28, -29, + -3, 61, -71, 36, -32, 43, -19, -14, 21, 0, -10, -19, 32, -42, 20, 11, + 23, -94, 107, -13, -53, 5, 35, -17, -11, -25, 32, 40, -76, 29, 32, -9, + -65, 80, -42, 6, -22, 42, -27, -2, 10, -2, 13, -41, 32, 10, -17, -26, + 53, -50, 40, -42, 30, -19, 41, -50, 33, -20, -1, 40, -67, 8, 29, 15, + -58, 25, 32, 15, -81, 46, 14, -8, -51, 24, 40, -44, 17, 10, 2, -26, + 47, -68, 49, -49, 50, -27, -3, -20, 84, -62, -32, 52, 12, -52, 0, 42, + -30, 24, -47, 45, -16, 11, -51, 74, -47, -9, 45, -19, -18, -5, 41, -39, + 11, -33, 56, -20, -14, -8, 64, -85, 60, -23, -13, -3, 33, -20, -25, 57, + -34, 2, -23, 42, -21, 3, -49, 85, -35, -27, 1, 54, -34, -31, 24, 15, + 6, -45, 54, -30, 12, -27, 40, -61, 39, 1, -5, -18, 17, 14, 7, -33, + -27, 83, -44, -40, 21, 66, -82, 32, -7, 33, -54, 27, 3, 2, -13, -15, + 52, -57, 14, 14, -6, -27, 54, -45, 23, -11, 16, -27, 27, -33, -3, 36, + -46, 47, -15, -8, -7, 67, -93, 12, 34, 17, -73, 32, 15, 29, -44, -17, + 47, 2, -40, -31, 81, -43, 3, -24, 52, -32, 4, 1, 20, -48, 20, 40, + -68, 23, 14, 19, -64, 46, -8, 17, -48, 55, -29, 23, -59, 48, -2, -27, + 11, 1, 21, -30, 25, -24, 29, -41, 21, 0, -15, -17, 64, -47, 1, 31, + -22, 2, -11, 22, -56, 69, -53, 32, -30, 31, -16, 32, -68, 29, 42, -39, + -49, 80, 17, -74, 17, 0, 55, -88, 25, 29, 14, -72, 56, 0, 0, -33, + 20, 5, -34, 35, -33, 45, -37, 23, -9, 10, -54, 67, -22, -13, -15, 41, + -14, -16, 8, 0, 19, -51, 56, -51, 39, -20, 19, -34, 26, -18, 19, -31, + 23, 0, 12, -31, 7, 45, -65, 22, 4, 24, -73, 74, -13, -34, 18, 23, + -16, -25, -2, 40, 5, -84, 76, -4, 6, -74, 75, -7, -10, -51, 60, -13, + 0, -45, 50, 18, -57, 20, 21, -7, -26, 47, -51, 28, -19, 12, -13, 3, + -1, 20, -23, 1, 28, -18, 3, -41, 67, -72, 34, -11, 33, -47, 47, -9, + -20, -2, 28, -21, -27, 11, 26, -15, -25, 57, -44, 46, -67, 49, -5, -30, + 1, 42, -36, -9, 22, 7, -13, -34, 67, -29, -16, -26, 84, -49, -21, -11, + 77, -53, -43, 62, 0, -3, -32, 23, 13, -5, -69, 88, -42, 7, -17, 37, + -35, 27, -6, -13, -11, 31, -17, -28, 45, -17, 8, -32, 41, -48, 39, -35, + 41, -16, -28, 41, -3, -13, -26, 23, 12, -22, -50, 104, -57, 9, -28, 67, + -53, -7, 0, 45, -41, -22, 50, -8, -21, -9, 38, -19, -18, -2, 55, -76, + 38, -12, 39, -49, -14, 64, -24, -45, 25, 50, -66, 23, -15, 32, -36, 32, + -46, 44, -14, 2, -16, 22, -7, -11, 14, -28, 21, 4, -10, -18, 63, -66, + 30, -20, 36, -35, -16, 26, 12, -37, 6, 50, -35, -15, 6, 48, -64, 4, + 12, 46, -85, 33, 12, 25, -49, -11, 77, -53, -18, 19, 29, -41, -1, 3, + 39, -70, 55, -6, -1, -23, 38, -22, -12, 1, -11, 36, -39, 5, 15, 33, + -55, 32, -8, 6, -37, 39, -32, 4, 27, -23, 11, -1, 10, -28, 19, -24, + 52, -69, 27, 21, 11, -72, 52, 17, -35, -13, 16, 33, -44, 4, 19, 18, + -60, 13, 35, 12, -93, 82, 9, -35, -20, 26, 40, -74, 14, 18, 28, -66, + 37, 4, 9, -43, 34, -15, 17, -35, 38, -11, -14, 14, -5, 2, -36, 54, + -35, 2, 1, 29, -35, 9, -4, 24, -32, -5, 31, -19, -17, 28, 34, -86, + 49, 13, -16, -52, 71, -29, 3, -30, 51, -1, -36, 6, 25, 4, -75, 56, + 10, -21, -18, 37, -16, 17, -53, 60, -7, -38, -9, 63, -18, -70, 67, 1, + -19, -32, 50, -20, 11, -23, 24, -10, -3, -21, 32, -26, 7, 12, -19, 35, + -29, 26, -41, 32, -22, 14, -43, 41, 7, -16, -24, 57, -20, -35, 25, 7, + -11, -20, 31, -18, 10, -34, 44, -7, -22, -9, 49, -33, -18, 26, -4, 12, + -63, 51, 11, -16, -40, 80, -28, -37, 5, 61, -78, 22, 16, -3, -10, -5, + 26, -8, -2, -43, 68, -42, -24, 39, 11, -31, 15, -9, 18, -20, -1, 7, + -17, 26, -30, 31, -31, 42, -28, -1, -15, 49, -51, -2, 26, 3, -12, -11, + 7, 22, -9, -51, 70, -27, -14, -13, 53, -37, -12, 9, 44, -57, -14, 51, + -6, -27, -10, 60, -55, 2, 14, 18, -45, 32, -19, 29, -27, -12, 31, 14, + -54, 17, 41, -62, 51, -40, 40, -40, 12, -8, 28, -39, 16, 10, 10, -46, + 37, 12, -42, 17, -4, 2, -17, 35, -34, 38, -30, 21, -6, -36, 36, 13, + -56, 14, 53, -36, -13, -1, 61, -64, 7, -3, 54, -63, 5, 14, 34, -67, + 10, 46, -27, -18, 26, 20, -41, 14, -13, 40, -66, 20, 38, -34, -11, 39, + -16, 11, -26, 7, 28, -58, 26, 0, 30, -61, 44, 11, -30, -17, 66, -40, + -33, 35, 6, -21, -2, 9, 16, -13, -39, 79, -71, 27, 9, -9, -29, 28, + 4, -17, 1, 14, 2, -20, -2, 16, 24, -67, 20, 37, -4, -80, 75, 18, + -46, 2, 10, 25, -31, -28, 43, 19, -75, 59, -13, 14, -40, 29, 7, -22, + -20, 44, -20, -16, 10, 32, -21, -42, 61, -19, -29, 12, 39, -55, 32, -4, + 0, -2, -24, 40, -19, -38, 34, 22, -33, 11, -3, 31, -49, 21, -16, 40, + -54, 12, 29, -19, -8, 17, 17, -52, 28, 22, -39, -2, 45, -42, 23, -46, + 51, 11, -68, 26, 55, -34, -44, 45, 9, -19, -43, 57, -16, -5, -9, 40, + -24, -12, 8, 29, -54, -4, 50, -37, 0, 11, 7, -4, 0, -25, 57, -62, + 19, 18, -7, -22, 12, 19, -27, 9, -5, 15, -19, 2, 15, 4, -45, 36, + -5, 8, -48, 60, -13, -35, 36, -19, 21, -24, -7, 23, -24, -22, 73, -58, + -5, 34, 25, -71, 19, 30, 0, -43, -4, 50, -9, -21, -21, 69, -28, -46, + 24, 29, -45, 12, 3, 21, -13, -28, 47, -9, -37, 21, 22, -46, 21, 8, + -1, -32, 42, -22, 14, -27, 19, 16, -29, 3, 17, -1, -39, 28, 21, -42, + 8, 47, -45, 2, -16, 50, -20, -54, 50, 9, -25, -12, 41, -29, 8, -3, + -5, -13, 25, -16, 19, -30, 15, 15, -2, -52, 38, 38, -69, 12, 37, 9, + -54, 10, 36, 5, -79, 27, 57, -35, -40, 48, 21, -41, 13, -3, 10, -29, + 4, 18, 4, -50, 52, 1, -28, -6, 41, -25, -22, 34, -22, 10, -5, 3, + -6, -1, 2, 26, -48, 24, 12, 5, -54, 36, 18, -32, -6, -3, 48, -28, + -21, 22, 35, -63, 6, 43, -28, -27, 42, -7, -22, 6, 21, 8, -56, 31, + 23, -10, -73, 76, 18, -49, -26, 70, -21, -23, -8, 35, 0, -42, 7, 42, + -26, -28, 47, -31, 0, 13, 11, -25, 14, -6, 10, -13, -26, 40, -14, -5, + -8, 42, -36, 1, 15, -10, -34, 47, -24, 5, -22, 38, 14, -39, -10, 53, + -26, -67, 72, 0, -15, -25, 29, 19, -29, -25, 50, -14, -31, 10, 42, -44, + -24, 81, -40, -32, 12, 45, -41, -5, -1, 47, -27, -54, 54, 32, -64, 4, + 26, 1, -1, -41, 44, 4, -22, -22, 47, -30, 7, 5, 3, -37, 45, 1, + -53, 44, -1, -20, 7, 12, -13, 9, -23, 26, -2, -47, 32, 37, -61, 6, + 42, 0, -25, -43, 76, -23, -38, -10, 73, -24, -57, 47, 45, -70, 3, 19, + 7, -19, -8, 10, 24, -12, -36, 66, -60, -1, 50, -32, -19, 8, 26, 2, + -44, 11, 53, -42, -26, 20, 42, -52, 14, 16, -26, -11, 42, -41, 16, 16, + -23, 13, 1, -6, 17, -18, -41, 71, -39, -23, 40, 13, -30, 2, 19, 0, + -39, 10, 24, -15, -25, 12, 66, -81, 6, 47, 9, -69, 12, 47, -9, -36, + -27, 76, 9, -107, 58, 53, -68, 19, -10, 39, -49, 8, 14, -11, -17, 21, + 18, -25, -17, 47, -4, -48, 32, -9, -4, -3, 8, -5, 29, -40, 13, 14, + -31, 24, 7, -48, 27, 37, -61, 22, 15, 7, -46, 17, 10, 22, -45, -9, + 56, 1, -73, 43, 34, -51, -15, 40, 2, -47, 35, 8, 27, -87, 31, 86, + -94, -27, 67, 10, -44, -15, 43, 11, -46, 6, 9, 33, -71, 35, 26, -30, + -18, 37, -18, -9, 20, -15, 1, 5, 9, -2, -23, -11, 50, -42, -3, 24, + 6, -21, 17, -5, -8, 11, -26, 24, -19, -9, 33, 22, -78, 38, 44, -48, + -53, 80, 6, -66, 14, 36, 8, -37, -15, 66, -24, -75, 87, -14, -27, -10, + 45, -12, -38, 13, 33, 7, -67, 20, 75, -55, -67, 85, 8, -52, -11, 45, + -10, 13, -34, 12, 26, -36, 7, -1, -1, -7, 23, -27, 18, 15, -12, -28, + 27, -6, 9, -52, 40, 26, -50, 3, 51, -10, -71, 67, 10, -59, 4, 56, + -27, -20, -19, 58, 6, -81, 38, 49, -39, -39, 47, 14, -25, -40, 54, -2, + -20, -38, 82, -25, -51, 44, 24, -60, 8, 51, -47, -2, 6, 22, 9, -34, + -20, 78, -56, -25, 36, 19, -49, 17, 32, -50, 44, -29, 4, -11, 14, 3, + -13, -11, 19, 13, -24, 28, -32, 33, -37, 39, -61, 119, -76, 120, -70, 99, + -122, 89, -113, 91, -123, 122, -123, 77, 86, -116, 6, -118, 123, -23, 64, -93, + 17, 24, -125, 124, -125, 124, -24, -12, 56, 87, -54, 38, -91, 64, -2, -41, + 126, -127, 20, 8, -48, -62, 127, -128, 88, -43, -18, 86, -100, 44, -32, -26, + 71, -13, 6, 51, -33, -50, 106, -59, 33, 5, -20, 69, -56, 54, -48, -6, + 38, -5, -38, 35, -1, 12, -1, 4, 23, -56, 19, -7, 5, -4, 31, -38, + 3, -12, -9, -25, -7, 24, -32, 17, -21, -22, 24, -20, 6, -18, 0, -15, + 5, -16, 15, 3, 2, -10, 3, 27, -31, 37, -12, 32, -5, 2, -21, 27, + -14, 20, -8, 5, 15, -7, -11, 20, -37, 7, -23, 17, -22, 11, -14, 8, + -44, 39, -52, 26, 3, 14, -10, 51, -45, 29, -19, 19, -3, 41, -21, 46, + -23, 10, 16, -25, 3, 7, -30, 19, -9, -5, -1, 1, -19, 1, -24, -23, + 51, -48, -10, 17, -34, -38, 60, -71, 26, -43, 65, -59, 70, -26, 61, -51, + 63, -51, 42, -25, 58, -36, 31, 10, -14, -9, 8, -18, 8, 4, 8, 7, + 31, -52, 39, -53, 53, -56, 24, 11, 1, -20, -8, -32, -18, -10, -25, 4, + 1, 37, -37, 42, -42, 53, -57, 52, -18, 30, 11, 20, -52, 55, -61, 56, + -50, 24, -26, 38, -42, 36, -1, -43, 58, -46, 6, 18, -35, 31, -36, 28, + -55, 55, -98, 52, -41, 26, -24, 48, -31, 48, -26, 30, 19, -17, 23, -8, + 13, 15, 19, -7, -23, 41, -36, 20, -39, 65, -64, 66, -38, -9, 7, -14, + -10, -3, 6, 15, -19, -40, 53, -67, -11, -12, -25, 23, -11, -12, 46, -48, + 39, -20, 20, -14, 31, -54, 71, -25, 2, -8, -5, -9, 1, 7, 27, 17, + -14, 43, -31, 27, 11, -33, 20, -2, -33, 45, -38, 17, -9, -11, -17, -22, + -19, 20, -25, 4, 29, -35, 14, -17, 1, -7, 19, 2, 16, 32, -3, -17, + 4, 0, -9, 17, 5, -8, 52, -32, 40, -39, -5, -18, 14, -21, 31, 10, + -17, 8, -34, -7, 1, -44, 7, 10, -8, -6, -18, -25, -1, -19, 16, -29, + 62, 6, 9, 21, 0, -14, 4, 5, 20, 13, 27, -1, 18, -5, 21, -31, + 11, 2, -9, -4, 21, -27, 8, -21, -28, -19, 14, -12, 5, -20, 20, -36, + 4, -18, -27, -4, -4, 15, 4, 48, -7, -11, 20, -6, 7, 20, 1, 20, + 0, 35, -35, 28, -37, 7, -43, 21, -22, 23, -18, 12, -22, -13, -20, -11, + 7, 23, -10, 19, -18, 17, -41, 4, -16, -8, 21, 11, -4, 10, 30, -24, + 32, -15, 15, -13, 28, -5, 38, -10, 0, -22, -13, -12, 24, -18, 30, -7, + 4, -16, 27, -28, -3, -1, 18, -14, 31, -24, -3, -13, -19, -36, -2, -31, + 9, -2, -12, 17, 12, -50, 46, -49, 43, -15, 13, 22, 15, -25, 10, -8, + -6, 14, -2, 24, 15, 9, 17, -13, 5, 14, -15, 7, 20, 4, 4, 18, + -16, 3, -47, 31, -46, 19, -24, 5, -19, -1, -42, 14, -44, 18, -7, -1, + 15, 9, -35, 32, -44, 39, -46, 23, -16, 36, -25, 45, -34, 32, -8, 10, + 5, 28, 0, 12, 11, 3, 20, -23, 6, -8, 16, 7, 17, -19, 32, -44, + 3, -8, -21, -8, -5, 2, -29, 2, -3, -19, -14, 3, 7, -23, 10, 1, + 3, 8, 13, -44, 20, 21, -16, 23, 3, 5, 10, -11, 32, -11, 13, -7, + 30, 4, 16, -7, -6, -7, 14, -40, 4, -16, -26, 3, -1, 0, -6, 5, + -50, 37, -27, 18, -16, -14, 6, -1, -4, -15, 8, -12, 14, 9, -22, 42, + -10, 23, -11, 36, -15, 13, 30, 1, 47, -20, 33, -14, -12, 1, -20, -9, + -9, -11, -13, 7, -37, 25, -47, 14, -13, 4, -12, 9, -32, 18, -48, -1, + -35, -1, -7, 35, -20, 53, -4, 34, -7, 13, 19, 9, 30, 6, 45, -22, + 23, -18, -6, -1, 3, -30, 14, -15, 9, -39, 10, -33, -13, -24, 10, 14, + 14, -10, 2, -34, -4, -20, -21, -14, 40, -10, 17, -14, 28, -17, 37, -26, + 69, -15, 38, 2, 21, -25, 37, -61, 13, -9, 5, -17, 18, -41, 22, -57, + -1, -9, -13, 24, -10, 38, -5, 8, -16, -2, 1, 12, -25, -2, -13, 2, + 2, -16, -19, 32, -30, 22, 20, -4, 12, 11, -17, 19, -17, -3, 20, -33, + 65, -27, 32, -14, 8, -8, 13, -19, 9, -2, 7, 33, -40, 18, -18, -18, + 6, -23, -11, -11, -28, 4, -11, -15, -14, -8, -5, 34, -6, 19, 1, -3, + 9, -1, 5, 5, 14, -11, 40, -3, 18, -20, 16, -7, 2, -5, 9, -16, + 9, -17, 0, -17, 4, -17, -3, 3, 8, -14, -19, 12, -21, -7, 1, -2, + -8, 16, 3, -6, 35, -23, 33, -13, 11, 12, 3, -7, 26, -11, 19, -18, + 23, -22, 39, -49, 39, -50, 11, -38, 26, -29, 10, -6, -22, 15, -8, 15, + -37, 36, -43, 39, -43, 18, -26, 1, 11, 4, -2, 9, 7, 2, 7, 19, + 1, 1, -4, 16, -5, 16, -9, -3, 4, -4, -1, -17, 0, 11, 16, -27, + 12, -15, 15, -3, 0, 10, -3, -5, 12, -13, -7, -13, -31, -1, -3, -17, + 15, -31, 25, -10, 15, -1, 2, 4, 10, 7, 32, -13, 7, -22, 2, -10, + 16, 1, -15, 19, -24, 16, -18, -12, 18, -9, 9, 24, -8, 8, 11, 0, + -31, 17, -55, 21, -43, 40, -40, 29, -54, 44, -34, 22, 11, 16, 7, 19, + 21, -6, 2, -7, -16, 22, 0, -1, -4, 5, -8, 26, -42, 4, -6, -21, + 35, -16, 8, 0, -22, -13, 11, -31, 7, -28, 4, 17, -12, -18, -2, -23, + 23, -1, 19, 34, 7, 7, 35, -19, 11, -8, -17, 8, 4, 16, -16, -13, + 9, -15, -5, -1, -6, 7, 3, 11, 1, -7, -24, 21, -31, 36, -3, -10, + 8, 2, -17, 12, -24, 6, -3, 9, 15, 3, 13, -8, -13, -3, 6, -19, + 14, -33, 16, -17, -5, -31, 3, -29, 24, -7, -6, 35, -20, -5, 34, -20, + 25, -3, 10, 25, 8, 14, -13, 0, 1, 17, -33, 51, -38, 45, -32, 39, + -3, -2, -24, 3, -18, 14, -4, -44, 2, -25, -15, -2, -23, 3, -2, -2, + 20, -14, 8, -10, -4, 21, 11, -13, 32, -4, 8, 19, -16, -2, -2, -2, + 14, -2, -1, 27, -26, 20, 11, -13, 10, -3, -7, 12, -13, -3, -30, -16, + 10, -26, -3, -10, -2, -9, 15, -17, 1, -2, -7, 14, -8, 12, -3, -1, + 2, 47, -26, 22, -19, 16, 2, 13, -3, 21, -10, 22, -32, 43, -24, 16, + 0, 5, -2, 12, -44, -12, 1, -26, 1, -36, 5, 2, 9, -17, 20, -37, + 14, -9, -5, 6, -3, -13, 23, -19, 25, -33, 6, 17, 10, 19, 15, -4, + 12, 5, -9, 33, -20, 26, -9, 11, -2, 11, -21, -7, -13, -4, -8, -12, + 0, -10, -9, 8, -33, 9, -26, 8, 6, -8, 12, 7, -8, 0, 7, -16, + 25, -8, 27, 12, 0, 9, -9, 4, -17, 14, -16, 11, -8, 18, -2, 4, + 2, -20, -18, 22, -16, -5, 3, -24, 13, -10, -12, -10, 2, -16, 33, -15, + 21, -15, -4, -19, 29, -22, 18, 2, 20, 12, 18, -22, -7, -16, 7, -19, + 14, 1, -17, 33, -22, 38, -8, 3, -3, 21, -17, 51, -43, 15, -22, -23, + -6, -12, -14, 14, 9, 6, 4, -31, 3, -16, -14, 22, -22, 5, 13, -25, + 17, -2, -18, 7, 1, 5, 36, -16, 23, 4, -15, 29, -20, 10, 1, 24, + 17, 16, -4, -16, -37, -11, 1, -33, 27, -36, 17, -22, 2, -33, 16, -29, + 32, -7, 24, -12, 14, -12, 22, -16, 15, -20, 19, 9, 14, 12, -1, -24, + 13, -6, -1, 32, -19, 24, 12, -26, 4, -31, -38, 18, -16, -13, 3, -14, + -1, 11, -15, 15, 0, -2, 30, -6, 35, -23, 10, -35, 5, -14, 17, -21, + 20, 4, 7, 8, -5, -15, 20, -25, 26, 6, -3, 3, 5, -24, 26, -35, + 4, 0, -6, 13, -23, 8, -25, 1, -2, 9, 3, 17, 4, 0, 13, -15, + 3, -21, -16, 4, -5, -10, 11, -2, 7, 23, -22, 25, -19, 18, 25, -9, + 14, -21, -7, 11, -24, 22, -12, -7, 6, 9, -33, 11, -20, 2, -9, 2, + 3, -13, 12, -15, 23, -21, 16, -16, -2, 8, 13, -12, 18, -10, 16, -12, + 20, -18, 18, -1, 21, -21, 20, -30, -6, 10, -2, 13, -6, -15, 6, 2, + -1, 1, -19, 9, -15, -3, -11, 0, -5, 1, 5, 1, -4, -8, 1, -16, + 23, 0, -23, 2, 8, -6, 38, -4, 2, 13, -17, 31, -4, -8, 22, -14, + 0, 12, -22, 7, -7, 11, 4, -4, -12, -9, -22, 2, -17, -17, -11, 7, + -17, 19, -24, 9, -8, -6, 29, -4, 10, 4, 4, 23, -1, 9, -6, -12, + 23, 16, -6, 33, -29, 12, -7, -10, 17, -4, -18, 21, 0, -14, -2, -20, + -21, 10, -28, 5, -18, -4, 0, -11, 1, 5, -17, 3, 9, 20, 6, 1, + -7, 2, -7, 3, 9, -22, 29, 6, -1, 25, -10, 6, -1, 4, 12, 18, + -13, 28, -11, 6, -15, -14, -22, -7, 5, -14, 1, -16, -12, -5, 5, -9, + 4, -1, -14, 21, -10, -5, 0, -17, -7, 2, -10, 6, 11, 1, 37, -17, + 6, 21, -24, 41, 2, 23, 0, 10, -18, 16, -26, 14, -21, -19, 18, -9, + -14, -1, -9, -14, -3, -7, -10, 7, -7, 19, -11, 15, -25, -3, -6, 2, + 8, -10, 4, 12, -3, 11, -2, -2, 5, 31, -9, 39, -21, 14, -23, 18, + -16, -1, -3, -6, 0, 22, -9, -5, -17, -4, -12, 2, -3, -7, 10, -10, + 7, -20, -19, -10, 0, -14, 32, -15, -18, 13, -9, 2, 17, -14, 6, 36, + -9, 28, 1, 0, 17, -10, 5, 17, -8, 12, -2, 3, 2, -22, -6, -14, + 6, 8, -11, -14, 2, -23, 25, -35, 3, -18, 1, -14, 22, -1, -12, -7, + -9, 13, -4, 12, 4, -3, 18, 0, 1, 8, -14, 14, -2, 1, 17, -3, + -14, 35, -17, 19, -14, -6, 1, -9, 18, -17, -4, -13, -2, -14, 10, -10, + -6, 0, 3, 5, -12, -13, -3, -6, -6, 11, -13, -7, 13, -2, 6, 13, + -7, 11, -5, 23, 1, 29, -17, 23, -10, 18, -16, 12, -20, 10, 7, -9, + -5, -21, -9, 5, -13, -2, 0, -15, -11, 3, 0, -18, 5, -25, -2, 3, + -2, -3, 4, 8, 14, -7, 15, 4, 8, 19, 9, 11, 7, -3, 14, -11, + 1, 15, -35, 3, 3, -10, -16, 0, -15, 2, 3, -12, 27, -23, 32, -15, + 10, -14, 3, -27, 10, -15, 12, -24, 7, 2, 9, -2, -2, -1, 3, 1, + 1, 8, -4, 0, 6, -6, 1, 1, -1, 8, -11, 31, -27, 13, 4, -3, + 5, -1, 0, 2, 9, 0, 12, -31, 4, -27, 1, -25, 20, -21, -14, 12, + -14, 0, -5, -23, 18, -1, 15, 19, -5, 20, -8, 14, -7, 16, 3, 0, + 8, 10, 0, -8, -10, 3, -8, 9, -12, 4, 15, -6, 2, -12, -29, -3, + -16, -11, 35, -18, -1, -28, 7, -12, 0, 7, -5, 22, 10, 10, -4, 6, + -13, 21, -23, 20, 8, -13, 11, 15, -6, -6, -22, -1, 3, 14, 7, 11, + -27, 12, -17, -12, 8, -15, 3, -8, 12, -12, 5, -30, 12, -18, 9, -2, + 3, 4, 15, 1, 5, -9, 0, -8, 24, -2, 21, 5, -4, -4, 14, -15, + 0, -1, 3, 17, -5, 13, -19, -10, -4, -6, -4, -7, 18, -27, 8, 1, + -12, -21, -13, 1, -9, 11, 1, -3, -1, 22, -21, 9, 6, -3, 20, -2, + 17, 7, -12, 1, 4, 4, -9, 9, -20, 24, 7, -9, -3, -7, -6, 10, + 7, 3, 9, -2, -3, -4, 1, -19, -8, -16, 0, -12, 0, -25, 4, -22, + 10, -9, 0, -3, 15, -1, 8, 11, -15, 10, 13, 1, 22, -5, 15, 1, + 24, 6, 0, -6, 5, 5, 10, 8, -1, -11, -14, 3, -31, 2, -22, -4, + -8, -15, -2, -31, -12, 6, -7, 5, 2, 3, -4, 19, 3, 4, 7, 7, + -8, 31, -6, 26, 1, -2, 2, -3, -10, -4, -4, 9, 3, 12, -16, 16, + -9, -1, 5, 4, -7, 13, -17, 0, -11, -13, -22, 1, -9, 4, -7, 7, + -10, 5, -1, -6, -3, -21, 7, -10, 18, -3, 1, -7, -11, 11, -8, 12, + 20, 3, 13, 16, -1, 3, 13, -3, 23, 16, -3, 15, -14, 12, -6, -8, + -28, 0, -33, 4, -11, -12, -13, -21, -17, -16, -5, -12, 16, -7, 15, -6, + -5, 3, -9, 21, 17, 13, 14, 11, 21, -12, 31, -18, 7, 12, 8, 9, + 7, 1, -3, -7, -14, 17, -35, -10, -2, -18, -8, -10, -20, -22, 2, -10, + -3, 1, -1, 4, -5, 11, -20, 11, -6, 27, 7, 18, 8, -1, 2, 3, + 11, -9, 5, 5, -7, 29, -6, 20, -21, 23, -15, 19, -19, 2, -22, 11, + -26, -7, -10, -30, -1, -3, -6, 15, -22, 16, -7, -9, -2, -7, -5, 11, + 17, -13, 2, 8, -5, 6, 27, -6, 12, -6, 4, 15, 3, 14, -3, -12, + 11, -2, 6, 5, 4, -6, -12, 0, -32, 2, -22, 22, -12, -5, -7, -11, + -7, 6, -1, -3, -3, -16, 2, -1, 0, 0, -7, -2, 1, 12, -4, 5, + 20, 1, 16, -2, 14, -1, 19, 8, 29, -8, 7, -14, -2, 3, -13, 8, + -40, 22, -18, 2, -14, -8, -11, -8, 12, -21, -1, -10, -12, -6, -4, -14, + 6, -19, 7, 14, 1, 11, 11, -11, 25, 1, 14, -5, 31, 0, 22, 4, + 1, 3, 6, -3, 4, -2, -20, -7, -26, 1, -12, -7, -10, 2, -1, -5, + -7, -8, -10, 6, -7, -6, 10, -17, 6, 3, 15, -8, 15, -7, 12, 1, + 9, -4, -2, 10, 9, -1, 10, -4, 9, -8, 17, 0, -13, -7, -2, -11, + 3, -2, -15, -4, -11, -5, -9, 1, 8, -10, 8, -8, -6, -18, 21, -19, + 26, -19, -1, -11, 10, 4, 12, -10, 16, -10, 17, 8, 13, -1, 17, 1, + 5, -1, 11, -8, 9, 16, -17, 3, -26, -17, -14, 6, -17, 4, -20, 0, + -1, -6, -4, 2, -15, 13, -3, -1, 0, -2, -8, 11, 7, -3, -8, 5, + 14, -1, 28, -19, 13, -4, 8, 1, 11, 7, 6, -8, -2, -13, -10, -22, + 6, 11, -1, -1, -5, -13, 18, 3, -10, 9, -17, -8, 9, -9, 1, -17, + -4, -16, 18, -6, 15, -10, 17, 5, 0, -5, 0, -11, 12, 15, 4, 8, + 5, -4, 0, -2, 3, -17, -2, -1, 11, -6, -7, 2, -33, 23, -6, -1, + -2, -2, -1, -8, 3, -29, -2, -34, 16, -3, 16, 1, 10, -12, 23, 0, + -3, 16, 12, 19, 23, -1, 8, -26, 16, -32, 26, -13, 2, -11, 5, -1, + -15, -9, -16, 7, -6, 14, -15, 5, -10, -7, -9, -9, 6, -17, 13, 18, + -5, -3, -4, -4, -18, 28, -6, 13, 17, 24, -2, 9, -14, 1, -11, 7, + 17, 1, -15, 10, -23, -4, -12, 5, -20, 17, -10, 6, 0, -9, 4, -8, + -15, 6, -16, 7, 9, 3, 6, -12, -17, 0, 4, 13, 22, -4, 10, -8, + 7, -12, 5, 5, 1, 11, 2, 10, -3, -2, 3, -10, -5, -7, -4, -18, + 17, -2, -14, -16, -7, -10, -3, 6, -1, 14, -11, 15, -18, 2, -6, 0, + -1, 0, 20, -17, 1, 6, 2, 6, 12, -3, 7, 25, -5, 17, -14, 0, + -6, 0, -2, -5, -1, -10, 8, 2, -9, -19, -7, -17, 5, 3, -7, 4, + -15, -5, 9, -12, -1, -5, 3, -5, 26, -2, 3, -4, 5, 3, 7, 10, + 5, 6, 6, 26, -17, 0, -1, 3, -3, 10, -7, -7, -9, 11, -18, 0, + -16, -6, -5, 3, 7, -14, -14, 0, -21, 14, -8, -1, -12, 2, 1, 2, + -3, -1, -3, 18, 5, 5, 9, 12, 7, 18, 8, 5, -25, 16, -15, 16, + -7, 9, -22, 1, 14, -13, -5, 2, -6, -8, 13, -17, 6, -16, 1, -5, + -14, -6, -6, -15, -2, 9, -9, -18, 15, -19, 12, 7, 4, 8, 14, 15, + 6, 10, -3, 9, -7, 23, -17, 21, -20, 7, 0, -9, 8, -10, 1, 4, + 2, 3, -9, -9, -15, -6, -21, -16, -6, 0, -11, 19, -8, -9, 5, -6, + 0, 5, 14, 7, 1, 12, 8, 7, -5, 12, 8, -4, 19, 4, -7, 2, + 3, -12, -8, -1, 0, 5, 7, -5, -8, -22, -8, -21, -2, -9, 10, -20, + 13, -6, 8, -17, -9, -6, 2, 5, 8, 6, -3, 10, -9, -2, 15, -6, + 20, 7, 11, 10, -3, -4, -8, 25, -25, 18, -12, 17, -6, 20, -22, -1, + -17, -10, 5, -10, 9, -13, -9, -6, 10, -25, -5, -2, -5, 13, 2, -5, + -8, -10, 11, -27, 10, -4, 11, 0, 33, -4, 10, -14, 1, 12, -2, 27, + -8, 6, 11, 9, -12, -4, -10, -13, 12, 5, 1, -10, -14, -15, -8, -7, + -9, 3, -5, 10, 3, -11, -12, -13, -3, -3, 3, 2, 9, 17, -6, 25, + -3, -3, -8, 19, 3, 30, -10, 12, -22, 7, -5, -10, -3, 21, -8, 12, + 6, -5, -13, -13, -9, -9, -1, -23, 13, -17, 15, -22, -11, -18, 8, -14, + 20, 1, 4, -5, 3, 3, 5, 11, 1, 2, 27, 1, 10, -7, -8, -2, + -2, 7, -1, 17, -5, 24, -7, 5, -10, -20, -6, 5, -4, -5, -1, -18, + -5, -14, -1, -20, 1, 7, -7, 12, -4, -2, -4, 2, 8, 0, 7, 1, + 6, -2, 18, -5, -7, 4, 3, -2, 13, 4, 0, 2, -3, 2, -10, -6, + 1, -6, 6, -7, -3, -21, -2, -12, 5, -1, -9, 7, -3, 13, 5, 5, + -8, 0, -8, 19, -5, 13, 13, -7, 3, 0, -10, 0, -8, 20, -8, 13, + -20, -5, -7, 3, 5, -7, 2, -5, -4, -14, 11, -23, -13, 2, -1, 12, + 13, 5, -6, 23, -9, 9, -6, -9, 18, -13, 16, -3, -7, -17, 3, -13, + 12, -9, 4, 0, 0, 13, -18, -1, 3, -13, 20, -5, 1, -20, 15, -23, + 18, -4, -8, 5, -7, 16, 4, 6, -3, 7, -21, 19, -17, -7, 9, 5, + 3, -5, -3, -16, -9, 25, -9, 12, -5, 10, -5, 9, -4, -6, -3, 4, + 10, -2, 11, -12, -2, -14, 8, -23, -5, 0, -8, 9, -2, -11, -3, -9, + 9, 2, 2, 4, -5, 7, 11, -16, 0, -6, 7, 6, 25, 5, 6, -4, + 3, 4, 3, 2, -8, -3, 5, -1, -11, -4, -9, -3, -15, 10, -12, -5, + 11, -4, -7, 6, -29, -5, 6, 11, 3, 9, -18, 13, -14, 19, -1, -2, + 4, 5, 12, 1, 5, -8, 3, 1, 20, -6, 2, 3, -16, 10, -10, -18, + -11, -7, -7, 9, -4, -8, 9, -15, 13, -13, -3, -7, 3, 8, 11, -6, + -16, 1, -8, 20, 4, 15, -5, -3, 11, -5, 6, 0, -5, 10, 13, 0, + -6, -11, 0, 11, -11, 10, -7, -8, 1, 16, -9, 2, -22, -9, 0, 4, + 5, -12, -22, 2, -8, -8, 14, -16, 0, 13, 0, 9, -7, 2, -1, 7, + 8, -3, -3, 2, 15, 5, 10, -7, 12, -4, 22, -4, -3, -12, -2, -15, + 8, -2, -22, 7, -10, 5, 12, -20, -9, -11, -2, -12, 2, -9, 5, -3, + 11, 7, -9, 4, -4, 24, -7, 21, -15, -3, 2, 14, -1, 5, 18, -12, + 13, 3, 5, -10, -11, 0, -8, -2, -4, 2, -15, 9, -10, -16, -9, -7, + 0, -1, 3, -8, -10, 5, -8, 4, -3, 8, -2, 20, 1, 6, -4, -9, + 4, 14, 7, -1, 3, -5, 18, -7, 20, -6, -10, 8, 1, -2, 3, -4, + -5, -3, -6, 0, -16, -7, 12, 0, -17, 4, -31, -7, 1, 1, -4, 8, + -11, 6, -1, 11, -5, -7, -4, 2, 4, 15, -3, 21, -5, 20, 3, -12, + 21, -1, 10, 5, 6, -20, -1, -18, 2, 3, -4, -5, -1, 6, -2, -11, + -17, -15, -13, 0, 6, -18, 7, -18, 7, -7, 6, 7, -10, 18, 16, 2, + -1, 3, -11, 6, 14, 1, 15, -2, 29, -8, 17, -14, 2, -19, 12, 8, + -6, -1, -23, 6, -11, 7, -19, -18, 0, 1, -8, -8, -4, -20, 8, -8, + 4, 10, -12, 13, 0, 18, -10, -3, -4, 6, 4, 17, 7, -2, 18, -9, + 14, -10, -4, -11, 4, 3, 23, -17, -6, -2, -7, -7, 9, -10, 1, 2, + -4, -14, -7, -6, -8, -4, 7, 2, -3, 3, 0, 13, -10, -4, -9, -6, + 18, 11, -4, 16, -8, -4, 1, -1, 7, 3, 3, 3, 10, -15, -2, -9, + 9, 0, 2, 2, -9, 12, -7, 0, -23, -7, -19, 2, -1, 0, 4, -15, + 7, 3, -3, 0, 9, -12, 19, 4, 8, -13, -6, 5, -1, 14, 10, 9, + 13, -3, 16, -18, 13, -18, 7, -10, 13, -6, -11, -3, 7, -23, -6, -11, + -21, 9, -1, 4, -3, -16, 0, -12, 7, 14, -5, 15, 0, 6, -5, -3, + -9, 9, 4, 10, 4, -2, -7, 10, -1, 10, -6, -14, 15, -4, 13, -4, + -4, -14, 5, -2, 4, -9, 3, -14, 2, 3, -10, -1, -9, 0, 3, -6, + 12, -16, 0, 4, 10, -25, 6, -5, 2, 8, 3, -2, -4, 15, 4, 7, + 2, -1, -6, 10, 11, 2, -2, -14, 6, -3, 0, -3, -9, -10, 1, -1, + -15, 9, -29, 9, -10, 7, -3, -3, -10, -2, 14, 4, -6, 0, 1, 12, + 4, 18, -15, 19, 1, 15, 1, 1, 3, -10, 8, -1, 7, -30, 8, -19, + -2, -5, -9, -10, 0, -1, 6, -4, -12, 1, -18, 10, -1, -12, 2, 7, + 12, 11, 0, -4, -1, 6, 10, 17, -8, 1, -12, 5, -2, 1, -7, -1, + 4, 3, -3, -1, -18, 8, -9, 0, -2, 8, -12, 12, 7, -5, -2, -16, + -7, 9, -5, 11, -9, -4, 3, 1, -9, -1, -2, -6, 7, 12, 0, -8, + 9, -10, 3, 0, 2, -3, 11, 14, 4, 3, -12, 3, -3, 2, 12, -4, + -2, -2, 9, -21, -5, -28, -6, -10, 6, 7, -6, -3, -24, 7, -11, 10, + 0, 8, 13, 10, 6, -7, -2, -5, 7, -1, 9, 18, -2, 12, -4, 7, + -26, 13, -6, 19, 6, 6, -5, -16, -6, -8, -18, -2, 1, -11, 3, 4, + -16, -8, -10, -3, 2, -3, 5, 5, 0, 11, 0, -14, 0, 1, 14, 11, + 13, 0, -2, 5, -1, -4, -2, -4, 5, 21, 3, 14, -5, -22, 5, -11, + -3, -6, -3, -11, 0, -5, -13, -10, -18, 3, 9, -10, 2, 3, -11, 11, + -11, 5, -19, 23, -1, 20, 18, 4, -3, -6, 9, 4, -3, 8, 4, 6, + 2, 5, -14, -6, -3, 2, -6, -4, -3, -11, 0, -5, 0, -21, -2, -10, + 11, 5, -4, -5, -5, -8, 10, -10, 4, -1, 6, 12, 9, 2, 8, -20, + 8, -2, 11, -11, 1, -4, 5, 6, -6, 6, -14, 14, 4, -2, 12, -3, + -10, 8, -5, -15, -9, -1, 5, 8, -3, 0, -23, -9, -11, 4, -12, 3, + -4, 4, 1, 15, -12, 3, 13, 2, 5, 8, -8, 7, 11, -3, 17, -11, + 5, 3, 19, 13, 3, -11, -11, -2, -9, -7, -4, -24, -1, -17, -3, -17, + 0, -15, 2, -1, -5, -4, 3, 2, 2, 11, -4, 3, -6, 11, 8, 3, + 6, 3, 7, 7, 6, -6, 2, 0, 14, 14, 3, 8, -6, 4, -3, 6, + -13, -2, -9, -4, 5, -13, -5, -21, -1, -6, -1, -5, -14, 8, -7, 5, + -7, -17, -11, 7, 3, 20, 7, 1, -3, 4, 5, 14, -3, 5, 3, 10, + 8, 6, -6, -2, 6, 3, 7, -6, -3, -3, -6, -1, -27, -11, -17, 0, + 11, 7, 1, -7, -9, -13, 5, -11, 0, -10, 15, 2, 5, -2, -5, 1, + 6, 6, -6, -5, 6, 2, 5, 3, 10, -16, 11, 8, 18, 3, 13, -11, + 7, 5, -7, -6, -20, 15, -1, 10, -1, -13, -17, -11, -3, -13, -4, -14, + -3, -2, -6, 6, -28, 9, -8, 10, 0, 12, -2, 10, 9, 1, 3, -6, + 5, 17, 24, 18, 3, 4, -9, -4, 2, -8, -4, -2, -11, 1, -8, -12, + -9, -10, 5, 0, -7, -9, 7, -18, 6, -10, -12, -1, -1, 13, 1, 18, + 2, -3, 4, 3, 3, -3, 3, 10, 9, 7, 5, -8, -7, 0, 3, -7, + 7, -2, -2, 5, -10, 2, -5, -3, -1, 4, 1, -2, -10, 4, -9, -5, + -12, -18, 3, 6, -3, 3, -15, -1, -13, 6, -2, 8, 0, 8, 16, -2, + 17, -4, 8, 3, 23, -1, 11, -8, 10, -4, -5, -3, -13, -2, -1, -2, + 2, -9, -13, -13, -2, -11, -2, -20, -5, 0, 3, 2, -1, -10, 1, 8, + 3, 9, 6, 4, -3, 13, 3, 4, 11, 2, 11, 8, -2, -1, -2, -2, + -2, -1, -21, -1, -14, 8, 6, -8, -10, 2, -16, 4, -3, -1, -10, 7, + -1, 4, -4, -12, 3, -2, 13, 2, -3, -9, -2, 6, -7, 8, -8, -5, + 12, 7, 8, -3, 6, -1, 16, 0, 7, -8, 3, -7, -1, 0, -6, -4, + -8, 6, -1, 4, -19, 2, -3, -8, -3, -12, 4, -6, 2, -7, 1, -13, + 2, 9, -1, 17, -19, 3, -3, 23, 9, 6, 3, 6, 6, -5, 11, -11, + 1, 0, -5, 6, -6, -4, -5, -7, 3, -4, -14, -9, -7, -1, 5, -11, + 4, -19, 14, -4, 3, 4, 2, 0, 9, -2, -3, 2, -2, 10, 15, -3, + 14, -6, -4, 6, 1, -8, 11, -9, 4, 3, -9, 2, 2, -2, 2, -2, + -9, -2, -2, 1, -6, -6, -22, -16, -10, 12, 0, 5, -8, -2, -4, -2, + 5, -1, 7, 7, 9, 1, 7, 6, -1, 10, 11, 5, -3, 8, 1, -1, + 8, -15, -6, -10, 12, 0, 2, -5, -9, -12, -7, -4, -14, -4, 0, -1, + 5, -7, -8, -12, 0, 2, 16, -3, 11, -4, 16, 11, 2, -3, 2, 8, + -1, 7, -13, 4, -3, -1, 3, -10, -2, -11, 3, 2, 3, -7, -10, -5, + -10, 12, -8, 5, -7, 15, 1, -10, 7, -16, 1, 3, 4, -5, 7, -7, + 4, -2, -1, -8, 0, -2, 17, 10, -2, 6, -5, 3, 10, -7, 2, -3, + 4, 5, 5, -3, -8, -8, -1, 1, 7, -5, -11, -2, -10, -4, -15, -7, + -10, -2, 2, -4, -10, -8, 0, 2, 6, 3, 2, 3, 10, 14, 8, 7, + 3, 5, -5, 20, -6, -1, -2, 0, 1, -2, -2, -8, 3, -3, 10, -14, + 3, -3, -2, 0, -5, 0, -15, 4, -2, 0, 4, -7, 3, -8, 7, -14, + -2, -6, 4, 2, 3, -10, -2, 5, -3, 12, -2, -5, -9, 1, 4, 1, + 11, -12, 15, 5, 20, 10, -5, 1, 5, 3, -13, 6, -16, 5, 1, -5, + -8, -3, -14, -6, -2, -5, -8, -17, -9, 3, -6, -2, -3, -3, 1, 14, + 2, 4, 5, 3, 8, 7, 12, 0, 11, 4, 16, 2, -3, -9, -1, 1, + -1, -3, -6, -14, 4, -6, 2, -14, -9, -11, -1, 0, 0, -5, -6, -10, + 5, -5, 2, -3, 2, 2, 17, -2, -1, -3, 3, 11, 1, 10, 2, 7, + 6, 5, -5, -3, -3, -2, 7, 2, 1, -18, -5, -2, -3, -5, 0, -2, + 0, 8, -9, -10, -15, -7, -2, -1, 6, -8, 16, -10, 13, -4, 2, -4, + 4, 7, 9, 6, -5, -2, 8, -1, 11, -6, -1, 5, 8, 0, 9, -20, + 0, -9, 4, -3, 1, -4, -11, 2, -6, 0, -12, 0, 1, 5, -2, 1, + -7, -4, 3, -1, -10, 3, -3, 7, 4, 8, -9, -6, -10, 0, 0, 2, + -4, 6, 9, 10, 2, 0, -1, 2, 14, 3, 7, -7, 2, -2, -2, -6, + -9, 2, -3, 6, -3, -7, -9, -10, -2, 2, -1, -11, 2, 1, 7, -4, + -7, -19, 3, -1, 6, 6, 6, 6, 0, 6, 7, 3, -1, 3, 8, 3, + 4, -10, -5, -7, 5, -4, -14, 2, -8, 5, -2, 2, -16, -4, -11, 2, + 4, -1, 2, -1, 0, 5, 4, -12, 3, 9, 7, 13, -3, -7, 2, 6, + -1, 7, -1, -1, 5, -5, 7, -11, -9, -13, 2, 5, 2, -2, -7, 5, + 4, -4, -2, -15, -4, 3, 0, 0, -5, 2, -7, -1, 9, -2, -1, 5, + 1, 1, -4, -5, -4, 6, 8, 7, -5, 4, -7, 4, 0, 1, -6, -5, + -2, 5, -1, 0, 1, 1, 3, 9, -4, -2, -4, -9, -1, 4, -17, 1, + -13, 11, -1, 6, -9, -1, 5, 1, 8, -3, 4, -5, 1, 7, -5, 1, + -3, 5, 3, 4, -7, -11, -7, 1, 5, -13, 11, -11, 1, 3, 6, -9, + 6, -5, -7, 4, -13, 5, -7, 10, 5, 6, -15, -1, 6, 4, 18, -7, + -7, -3, -4, 2, -5, 3, -4, 9, -4, 3, 3, -3, -10, 0, -1, 2, + 5, -3, 7, 3, 2, -6, -11, -2, -1, 4, -5, 4, -5, 0, -5, 5, + -5, -4, 2, 4, 2, 5, -8, -13, -3, 0, -1, -2, 4, 6, 9, 1, + 3, -7, -1, 1, 12, 1, 1, -1, -5, -1, 2, -8, -9, -7, -2, 3, + 10, -6, -7, -12, -7, -4, -5, 6, 0, 10, 5, 7, -4, -2, -8, 10, + 5, 9, 4, -1, -1, -1, -1, -1, -2, -3, 3, 9, -2, 9, -14, -13, + -8, -10, 1, 1, 3, 3, 1, -3, -12, -5, -7, 1, 6, 6, -2, -7, + -3, -3, 2, 2, 4, -9, 14, 8, 11, -3, 5, -11, 1, -1, 5, 3, + 8, 2, 8, -2, -6, -13, -10, 0, 4, 3, 4, -3, -9, 1, -5, -5, + -6, 1, -2, 2, -10, -6, -15, 1, -5, 4, -1, 2, 2, 4, 10, 4, + 2, -13, 0, 4, 8, 17, 2, 5, 4, 2, -6, 5, -5, 0, 8, -2, + -1, -5, -4, -5, -1, -5, -4, -5, 0, 0, 1, -9, -15, -3, -12, 1, + -1, -7, 10, 2, 5, -1, 2, -6, 2, 2, 10, 10, -1, 2, -2, 4, + 5, 0, -6, 12, 5, 3, -1, -8, -8, -4, -4, 3, -11, 0, -1, -1, + 0, -2, -14, -6, -9, 2, 1, 7, -4, 3, -1, 0, -3, 1, 2, 7, + 5, 4, 3, -2, -3, 1, 6, -1, 6, -11, 7, 2, -6, 2, -4, 0, + 2, 3, -7, -9, 3, 0, 4, -6, 0, -21, 0, -5, -1, 0, -1, 1, + -6, -1, -1, 0, -7, 5, 7, -2, 8, -4, -1, 3, 9, -6, 10, -6, + 7, 9, 10, 9, -6, 5, -14, 6, -5, 1, 2, -3, 0, -9, -10, -14, + -2, -3, 6, -8, -15, 3, -9, 0, -3, 0, -6, -1, 3, 9, 10, 3, + 3, -10, 6, 1, 3, -1, 9, 12, 4, 4, -9, -7, -5, 8, 6, 1, + 1, -4, -5, -5, -1, -11, -3, -4, 1, -1, 1, -10, -7, -2, -3, -4, + -3, -6, 11, 5, 3, 2, -8, -5, -2, 3, 9, 13, 5, 4, 4, 0, + -5, -1, -5, 9, 2, 3, -9, -4, 3, -6, 2, 1, -9, 5, -2, 3, + -2, -9, -8, -15, -5, -3, 3, -13, 11, 6, -3, 1, -6, -6, -1, 6, + 4, 6, 7, 1, 5, 0, 8, -6, 7, 2, 6, 2, -5, 0, -3, -1, + 3, -7, -1, -3, 5, 7, 6, -18, -10, -11, -7, -3, 10, -4, 3, -4, + -8, -5, -12, -3, -4, 12, 10, 2, -4, 6, 3, 1, 2, 0, -3, 3, + 7, 7, -5, 2, -4, 1, 3, 11, 2, 3, 4, -2, -7, -5, -17, -11, + 4, -3, 5, -7, -7, -6, -1, -8, -5, -5, 1, 7, 1, 2, -1, -9, + 7, 1, 7, 3, 3, 6, 9, 6, 1, -6, -4, 2, 5, 7, 4, -2, + 1, 3, -11, -1, -16, -2, -6, 1, 3, -8, -15, -11, 4, -1, 9, -2, + -5, 0, 6, 0, -7, 0, -8, 4, 2, 6, 2, 0, 2, 6, 2, -2, + 4, -2, 4, 14, 2, 2, -6, -6, -3, 4, -4, -1, -4, 1, -3, -6, + -1, -13, -1, -2, 7, -8, -7, -10, 0, 4, 3, -8, -3, 1, 4, 6, + 4, 6, -3, 5, 3, 4, 0, 6, 1, 4, 7, -3, -10, 8, -1, 9, + -1, 1, -11, -7, -3, -3, -6, -8, -9, -6, 1, -3, -6, -6, -5, 0, + 0, 2, -3, 0, 6, 4, 3, 2, 7, 4, 11, 14, 5, -1, -5, 1, + -2, 7, 3, 0, 1, 2, -5, -7, -10, -12, -10, -5, -5, -6, -6, -9, + 1, -8, -2, -1, -9, 1, 8, 2, -5, -2, -5, 0, 5, 6, 6, 7, + 8, 10, 2, 0, -3, -1, 2, 13, 3, 0, -6, 0, 1, -3, 0, -12, + -2, 4, -4, 4, -8, -11, -1, -2, 1, -1, 2, -12, 3, -6, 1, -12, + -7, -7, 3, 0, 9, 0, 1, 6, 1, -1, 2, 1, 2, 8, 9, -3, + -1, 0, 7, 3, 8, -1, -4, -1, 1, 3, -9, -1, -17, -3, -2, -4, + -4, -3, -4, -6, -11, -15, -2, -5, 6, 10, 1, 3, -1, -3, 13, 7, + 1, 6, 4, 4, 9, 5, -3, -5, 9, 3, 5, -3, 1, -3, 3, 0, + -7, -5, -7, 0, -5, 0, -1, -15, -11, -4, -5, -10, 2, -7, 5, -4, + 1, -9, 2, 1, 8, 7, 10, 2, 2, 0, 4, 3, -2, 0, 4, 2, + 6, 8, -2, 4, 4, -2, 5, -3, -6, 3, -3, -5, -9, -8, -11, -5, + -1, -1, -5, -7, -5, -8, 0, -3, 5, -7, 11, 1, 0, 2, -3, -1, + 3, 9, 6, -3, 8, 1, 11, 2, 8, -3, -3, 6, 2, 1, 2, -7, + -3, -2, -4, -8, -3, -3, 5, -10, -10, -4, -12, -2, 3, -5, 3, -6, + -8, -2, 5, -3, 0, 1, 4, 8, 4, 5, 0, 4, 8, 1, 7, -3, + 0, 3, 4, 4, -5, -2, -7, -3, 0, 5, -5, -9, 3, -2, -1, -2, + -5, -1, -4, -3, -11, -4, -5, -6, 0, 5, 0, -5, 5, 3, 8, -1, + 3, 3, 2, 5, 7, -4, 3, 1, 3, 10, 2, -7, 1, 0, 6, -4, + -3, -5, -7, -2, -4, -3, -6, 0, -10, 4, -6, -4, -7, -2, 1, -4, + -1, -3, -1, 2, 6, 2, 4, -2, 2, 4, 2, 5, -3, 4, 2, 1, + 0, 8, -3, 2, 5, -5, 3, -5, -2, 5, -5, 3, -1, -4, -3, 4, + -10, -5, -7, -4, -4, 0, 0, -7, -1, -1, 2, 1, -2, -12, -4, -1, + 0, 4, -5, 2, 0, 3, 12, 11, 3, 11, -1, -3, 6, -6, 1, 1, + 7, 6, -7, -1, -7, -4, -4, -7, -8, -1, -6, -6, -2, -3, -5, 0, + -4, 8, -7, 1, 4, -3, 6, 1, -7, 3, 5, 6, 5, 13, 2, 2, + -4, 4, -3, 1, 4, -4, 2, -3, -10, -10, -7, -2, -2, -2, 0, -6, + -2, 1, -3, -4, -2, -5, -2, 7, 1, 6, -5, 6, -1, -1, 2, -3, + 4, 11, 2, -1, 2, -7, -5, 8, 0, 3, -3, -5, -1, -2, 3, 1, + -4, 4, 7, 0, 2, 3, -3, 0, 1, -5, -15, -5, -3, 1, 3, -3, + -11, -4, -7, 1, -2, -1, -1, 0, 1, 1, -5, -1, 3, -2, 7, 1, + -4, -1, 0, 4, 5, 3, 3, -1, 8, 11, 1, 4, 1, -5, 7, -6, + -4, -2, -4, -2, 3, -8, -3, -13, -6, 3, -3, -7, -4, -7, 3, 3, + -3, 2, -1, 1, -4, -2, -2, -5, 1, 11, 9, -2, 6, -3, 7, 7, + 1, 1, -7, 2, -3, 1, 4, -4, -4, 5, 1, 0, -3, -6, 2, -3, + 0, -8, -12, -6, -2, -3, 6, -1, -9, 0, -1, 1, 3, -2, -1, 0, + 1, 6, 0, -3, 5, 1, 6, 1, -1, 4, 1, 7, -3, -1, -1, -4, + 4, 14, -1, -1, 2, -4, -1, -6, -8, -8, -3, -2, 2, -9, -5, -7, + -12, 5, 0, -3, -4, -3, 5, 4, 3, -2, -6, 4, 7, 3, 5, 7, + -3, 8, 0, -5, -1, -1, 11, 10, 3, 4, -8, -3, -3, 1, -3, 0, + -4, -3, 1, -7, -8, -16, -7, -6, -2, 3, -7, -2, 1, -4, 0, -5, + -5, 1, 5, 10, 5, 0, 3, 0, 1, 13, 0, 5, 9, 6, 8, -1, + -4, 0, -3, 6, 4, -4, 0, -3, -15, -2, -12, -15, -3, -6, 2, 1, + -3, -4, -9, -9, -3, -3, -2, 3, 4, 9, 0, 2, 1, 2, 14, 5, + 3, 8, 2, 7, 4, -4, -4, -1, -9, 9, -5, -1, -7, -10, -2, -7, + -4, 0, -5, 2, 5, 1, 0, -5, -5, -1, -1, -3, 4, -8, 5, 3, + -4, 4, -5, -3, 9, 4, 8, 0, 0, 2, 0, -2, 0, -2, -7, 12, + -1, 5, -4, 2, -3, 0, 2, -2, -4, -2, 2, -5, 3, -7, -9, -4, + -3, -2, -6, -6, -2, -6, -1, -7, -8, 1, 3, 6, 10, 4, 5, 0, + 5, 8, 1, 3, 8, 5, 11, 12, -7, 4, 0, -3, 2, -1, -8, -7, + -4, -2, -6, -9, -6, -13, -4, -1, 0, -9, -5, -3, -4, -2, 3, 1, + 1, 9, 4, 2, 6, -1, 3, 6, 2, 0, -3, 3, 2, 6, 3, -1, + -4, 4, 1, 2, 2, -5, -8, -1, -3, -1, -9, -4, 1, -5, 5, -7, + -4, 0, 3, -10, 3, -3, -5, 1, 5, 4, 1, -5, 1, -5, 4, 1, + -6, 0, 5, 8, 8, 1, 6, 0, 3, 4, 2, -3, 1, -3, -3, 3, + -10, -6, -8, -2, -1, -3, -6, -6, -5, -6, -6, -5, 5, -3, 5, 6, + -2, -1, -1, -4, 6, -2, 6, 6, 2, 12, 8, -2, 3, -6, -2, 5, + 4, -3, -2, -5, -4, -7, -6, 1, -5, 2, 2, 0, 1, -7, 0, -4, + -2, -1, -2, -5, 7, -5, -2, -3, -2, -3, 4, 4, 9, 0, 1, 1, + -5, -3, -4, -4, 4, 3, 6, 1, -2, -2, -7, 4, 1, 1, -3, 3, + -1, 2, 0, -7, 0, 0, -1, -3, -2, -1, -5, -2, -3, -8, -5, -5, + -1, 5, 5, 2, 2, -3, 4, 3, 4, 6, 3, -1, 10, -4, -3, -2, + -3, 0, -4, 0, -2, -2, 0, 2, -5, -2, -5, -9, 8, -2, -1, -1, + -3, -3, -2, -6, 2, 1, 2, 9, 0, 1, 4, -5, 2, 4, -6, -1, + 2, -1, 6, 3, 0, -5, -3, -1, 0, 3, -3, 0, -6, -2, -3, -4, + -2, 0, 3, 2, 2, 0, -10, 1, -6, -5, -1, -2, 5, 3, 6, -2, + -6, -1, -3, 2, 4, 1, -1, 0, 1, 1, 3, -1, 5, -1, 7, 6, + 1, -2, 0, -6, -2, -2, -8, -2, -2, -3, -5, -5, -8, -3, -1, 5, + -3, 1, 2, 1, 2, -3, -2, -3, 2, 6, 2, 6, 0, 0, -2, 9, + -1, 3, -2, 3, 0, 0, 0, -6, -6, -1, -5, -7, 1, -3, -6, 2, + -2, -1, -5, -2, 1, 4, 2, 2, -3, -1, 6, -2, 2, 4, -3, 2, + 2, 2, -3, 1, 0, -4, 2, -1, -2, 3, 1, 1, -1, -5, -8, -2, + -5, 0, 1, -6, 3, -4, 2, 3, -6, 3, 0, 2, -2, -1, -4, -2, + -4, 4, 0, -3, 0, -6, -3, 10, -3, 3, 0, 4, 7, 3, 0, 5, + 1, 5, 1, -3, -2, 0, -6, 3, -1, -7, -5, -7, -1, -2, -2, -2, + -3, -2, 2, -2, -1, -3, -3, 2, -2, -6, -3, -3, 4, 3, 2, 0, + -1, 5, 5, 8, 2, 2, -2, 4, 0, 5, -5, -3, -1, -3, -3, -6, + -4, -2, 3, 0, -2, -2, -5, 5, -1, 3, -1, -1, -3, 0, 0, -5, + -4, -3, -2, 5, 0, -4, -4, 1, 2, 6, 0, -3, -1, 2, 3, 7, + -3, 0, -4, -2, 4, 3, 0, 1, 3, -3, 1, -7, -4, 0, 1, 1, + -4, -4, -4, -9, -1, -2, -3, -2, -3, -3, 4, 3, -1, -4, 2, 4, + 4, 3, 2, -1, 0, 9, -1, 4, 2, 7, -1, 6, -2, -2, -5, -1, + -9, -2, -2, -6, -1, -1, 1, -8, -6, -5, -1, -1, 1, -4, -5, 3, + 1, 5, 3, -3, 0, -2, 7, 0, 1, -2, 3, -1, 5, -1, -5, 7, + -1, 3, 2, -5, -6, -2, 4, 2, -1, -3, -1, -1, -1, -1, -2, -4, + 1, -5, 3, -1, -3, -5, 2, 6, -6, -1, -5, -4, 4, -1, -1, -2, + -1, 2, 0, 3, 1, 4, 2, 7, -1, 2, 0, -2, 1, 4, -5, -3, + -7, -2, 0, -1, -1, -3, 0, 0, -2, -6, 2, -4, 2, -4, 1, -7, + -2, -1, 5, 3, -2, -7, -4, 1, 6, 4, 5, 1, 4, 0, 5, 1, + -1, 2, 0, -3, -3, -5, -6, 3, -1, 5, -1, -2, 1, 1, 4, 2, + -6, -3, -4, -3, 2, -2, -8, -3, -6, -4, -2, -11, 0, 0, 1, 6, + -3, -2, 1, 2, 10, 8, 4, -2, -1, 2, 2, 1, -2, 3, 1, 5, + 3, -1, 0, -4, 4, -7, -2, -7, -8, -4, -3, -2, -7, -7, -3, -1, + 5, -2, 0, -7, 2, -1, 3, 1, 4, 6, 5, 8, 3, 2, -1, 3, + -3, 0, 0, -5, -1, 1, 1, -5, -3, -2, 6, 4, 5, -4, -8, -4, + -3, -2, -5, -4, -4, -4, 2, -3, -2, -4, -4, -4, 6, 1, 0, 1, + 3, 3, 5, 2, 1, 0, 6, 2, -1, 1, -3, -3, 2, -1, 0, 1, + 3, 1, 4, -4, -5, -10, -8, 1, -6, -3, -4, -6, -3, 0, 2, -3, + -1, 2, 0, 8, 1, 4, 4, 3, 6, 3, 1, 3, 5, 1, 2, -4, + -7, -3, -3, 3, 0, -7, -5, 0, -3, -1, -2, -4, 0, -5, 1, -6, + -1, -5, -3, 1, 4, -1, -3, 3, 3, 5, -1, -2, 2, -1, 2, 1, + -1, -5, 5, 1, 2, 2, -4, 0, -1, 3, 0, -2, -1, 2, 1, 5, + 4, -3, -5, 0, -2, -2, -6, -3, -3, -4, -1, -5, -4, -1, -2, 0, + 2, -2, -6, -3, 1, 1, 1, -1, 3, 4, 7, 2, 3, 4, -1, 7, + 2, 3, 1, -1, 1, -2, 0, -4, -5, -6, 0, -2, -7, -2, -5, -5, + 1, -4, -5, -5, 3, -1, 1, 2, -2, 0, 1, 4, 1, -4, 2, 2, + 0, 9, 2, 0, 4, 3, 1, 2, -4, -2, -4, 3, -4, -2, -6, 0, + -1, 5, 2, -4, 0, -4, -4, -1, -5, -4, -7, -3, 1, 0, -2, -1, + -5, 1, 0, -1, 0, 2, 4, 0, 3, -2, 1, 2, 6, 0, 1, 5, + 0, 3, 3, 2, -5, -2, 1, 5, 2, -2, -5, -9, 0, -6, -1, -6, + -7, -5, -4, 0, -2, -5, -3, 2, -2, 3, 2, 0, 9, 2, 0, 4, + -3, 4, 5, 8, 6, -2, -4, -1, 0, -2, -2, 1, -5, 2, -5, -1, + -4, -3, -4, 0, -2, -7, -3, -1, 0, -1, 0, -6, 3, -2, 5, 2, + -1, -2, 1, 0, 1, -1, -3, 2, 3, 1, 2, -4, -3, -1, 5, 5, + 3, -4, 0, 1, 2, 5, -5, 1, -5, 2, -2, 2, -4, -3, 0, -4, + -3, -9, -7, -4, 2, -2, 1, -6, -3, 0, 1, 5, 1, -5, 0, 0, + 2, 1, 2, 0, 6, 4, 6, 3, 2, 3, 1, -2, -2, -9, -4, -1, + 4, 0, -1, -5, -8, -5, -4, 0, -4, -1, -3, 0, 0, -4, -3, -1, + 1, 2, 0, -2, -3, 1, 3, 2, 3, 3, 0, 8, 2, 7, -1, 3, + -2, 4, 0, 0, 1, -4, 5, -1, -3, -3, -6, -4, 2, 1, -5, -4, + -7, -4, -4, -7, -2, -10, 1, 0, 1, -3, 4, -2, 5, 2, 1, -3, + -1, 2, 8, 4, 5, 0, 1, 4, 5, 2, 2, -2, 1, -4, 0, -3, + -3, -1, 0, 2, -4, -4, -5, -1, -7, 0, -4, -5, -1, -3, 2, -2, + 0, 3, 0, 2, 0, 1, -2, 2, 4, -1, 0, -3, -1, 1, 3, 2, + -3, 2, 0, 2, 2, -1, 2, -2, -3, 0, 0, -2, 2, -2, 4, -3, + -6, -7, -6, 2, -1, -4, -1, -7, -1, -3, 3, -1, 0, -2, 2, 2, + -3, 3, -4, 5, 7, 6, 3, 1, -1, 6, 2, 1, 0, -1, -1, 1, + -3, 1, -3, -5, -5, -3, -8, -3, -11, -1, -1, 0, -8, -2, -5, 3, + 4, 0, 1, -2, 2, 0, 6, 4, 1, 4, 1, 5, 0, 0, 1, 2, + 5, 0, 1, -10, 0, -5, 2, 0, -6, -6, -2, -2, 2, -3, 0, -4, + 2, -4, 1, -3, -4, 1, -2, 2, 1, -2, 0, 3, 2, -3, -1, -5, + -3, 4, 2, 3, -1, 4, 1, 5, -1, 2, -3, 2, -3, 0, -3, -2, + 1, 1, 5, 1, -2, -5, 1, -1, -4, -3, -7, 0, -5, -4, -4, 0, + -4, 4, 0, -1, 1, -8, 1, 0, 9, 1, 2, -2, 5, 5, 1, 6, + -1, 6, 3, 1, 1, -2, -2, -4, -3, -2, -3, -7, -4, -4, -1, -3, + -8, -1, -8, 4, -5, 0, -3, 1, 0, 4, -1, 0, 1, 3, 3, 4, + -4, 6, -2, 2, 5, 4, -3, 4, -3, 5, 0, -4, 0, 0, -1, 0, + -4, -4, 3, -1, -2, -4, -8, -9, -5, -4, 4, -4, 1, -4, 1, 1, + -1, -1, -1, 3, 2, 3, 0, 1, 2, 1, 5, 3, 1, 0, 5, 3, + 3, 0, -5, -4, -2, 5, 0, -2, -5, -2, -6, -2, -5, -8, -2, 1, + -1, -3, -7, -8, -6, 0, 4, 7, -2, 7, -1, 7, 3, 2, -5, 0, + 2, 0, 1, -3, 2, 2, 3, 3, -3, 0, -2, 3, -1, -1, -4, -6, + -2, -3, 4, -4, 0, -4, 6, -2, -6, -2, -7, 1, 2, -1, -3, -2, + -2, 3, -1, 0, -3, -1, 4, 7, 4, 0, 2, -1, 0, 6, -2, 1, + 1, 5, 4, 1, -3, -3, -2, 2, 2, 1, -6, -6, -3, -4, -2, -6, + -5, -4, -5, -2, -8, -8, -3, 0, 4, 0, 1, -1, 2, 5, 4, 2, + 2, 3, 3, 4, 10, 0, 2, 0, 3, 1, 1, 0, -3, 1, -3, 1, + -7, 0, 1, -2, 1, -6, -4, -10, -1, -4, -2, -2, -3, 2, -4, 1, + -5, -4, -4, 2, 1, 1, -4, -1, 3, 1, 6, 2, -2, -2, 3, 3, + 2, 7, -5, 5, 0, 8, 1, -1, 2, 3, -1, -6, 0, -10, 3, -1, + -1, -5, -6, -8, -2, 0, -3, -5, -8, -4, 2, -3, -1, -2, 0, -1, + 7, -1, 3, 2, 4, 7, 3, 4, -1, 5, 1, 9, 1, -2, -1, -1, + 1, -3, -2, -6, -7, 1, -3, -1, -9, -4, -6, 0, 2, -3, -2, -4, + -3, 0, -4, -1, -4, 0, 1, 6, -1, 1, -1, 3, 5, -1, 3, 4, + 5, 7, 4, -2, 0, -2, 0, 3, 1, -1, -8, -2, -1, -2, -5, -1, + -2, -2, 2, -5, -7, -9, -2, -3, -2, 1, -5, 4, -4, 5, -1, -1, + -3, 2, 3, 7, 3, -1, 3, 4, -1, 5, -4, 0, 4, 4, 3, 4, + -9, 1, -5, 2, -2, -2, -3, -7, -1, -2, -2, -5, -3, -1, 1, -2, + -1, -4, -4, 1, -1, -7, 0, -1, 2, 5, 4, -4, -5, -4, 0, 2, + 1, -1, 3, 5, 4, 0, 0, -1, 3, 8, 3, 3, -4, 0, 1, 0, + -2, -6, -2, -4, 3, -2, -3, -5, -6, -3, -1, -1, -7, 0, 0, 3, + -5, -4, -11, 0, 0, 3, 3, 1, 1, 1, 4, 6, 1, 1, 2, 9, + 3, 3, -4, -4, -3, 2, -1, -6, 1, -5, 2, 0, -1, -8, -5, -6, + 1, 0, -2, -1, -2, -1, 2, 0, -9, 0, 5, 4, 7, -3, -3, 3, + 4, 2, 4, 0, -1, 3, 1, 5, -5, -6, -7, 0, 3, 0, -2, -4, + 3, 3, -3, -4, -7, -2, 4, 1, -1, -4, -1, -6, -2, 3, -2, -3, + 1, 4, 1, -1, -4, -3, 3, 4, 5, -2, 2, -3, 4, 0, 3, -3, + -3, 0, 3, 1, -2, -1, -3, 2, 4, -2, -2, -3, -1, -1, 3, -11, + -2, -8, 5, -1, 3, -5, -2, 2, -1, 3, -3, 0, -1, -1, 5, -2, + 0, -2, 3, 2, 3, -2, -6, -3, 2, 4, -6, 5, -6, 1, 2, 3, + -6, 2, -3, -4, 3, -9, 2, -6, 3, 4, 2, -9, -1, 1, 2, 8, + -3, -4, -1, -2, 2, -2, 2, -3, 3, -1, 1, 2, -1, -6, 1, 2, + 2, 1, -2, 2, 3, 1, -3, -6, -3, 0, 1, -3, 0, -3, -1, -4, + 2, -4, -3, -1, 4, 0, 5, -6, -7, -1, 0, 0, -3, -1, 2, 4, + 0, 3, -4, -1, 1, 7, 4, 2, -1, -4, 0, 2, -4, -5, -5, -1, + 1, 4, -5, -4, -6, -3, -2, -3, 2, -2, 5, 2, 3, -4, -2, -5, + 6, 3, 4, 2, -3, 1, 0, 0, 1, -3, -1, 1, 7, 0, 6, -6, + -7, -2, -7, 0, -1, 0, 2, 1, -2, -7, -2, -5, 0, 2, 0, -3, + -5, -1, -3, 0, -1, 0, -6, 8, 4, 5, -1, 1, -4, 1, 1, 4, + 2, 5, 3, 6, 0, -2, -9, -4, -1, 0, 0, 1, -1, -4, -1, -5, + -5, -5, 0, 0, 1, -6, -5, -9, 0, -3, 0, -2, 0, 0, 3, 4, + 2, 1, -7, 1, 3, 4, 9, 1, 4, 4, 2, -4, 2, -2, 1, 5, + -2, 0, -3, -4, -3, -2, -4, -4, -4, 1, -1, 2, -6, -8, -3, -8, + -1, -2, -4, 5, 2, 3, -1, 0, -4, 2, -1, 5, 5, -1, 3, 0, + 3, 3, 0, -4, 9, 4, 2, -1, -6, -4, -2, -2, 2, -7, 0, 0, + -2, -2, -2, -10, -4, -7, 0, -2, 2, -2, 2, 1, 0, -3, 0, 1, + 6, 3, 2, 0, 0, -1, 2, 3, -1, 4, -5, 6, 2, -3, 0, -3, + 0, 1, 0, -5, -6, 1, 0, 1, -5, -2, -14, 0, -4, -1, -1, -1, + 1, -3, 0, -2, -1, -4, 4, 5, -1, 5, -1, 3, 3, 5, -3, 5, + -3, 5, 5, 6, 4, -6, 2, -9, 4, -4, 0, 1, -2, -1, -8, -6, + -11, -2, -3, 3, -6, -8, 3, -5, 1, -3, 1, -3, 1, 3, 5, 6, + 2, 1, -6, 4, -1, 1, 0, 7, 7, 2, 3, -6, -4, -4, 3, 3, + 0, 1, -1, -2, -4, 0, -8, -2, -3, 1, -2, 1, -5, -2, -1, -3, + -3, -4, -3, 7, 4, 1, -1, -6, -5, -3, 2, 5, 8, 3, 3, 2, + 1, -4, -1, -2, 6, 3, 2, -4, -1, 1, -5, -1, -1, -5, 2, -2, + 1, -2, -7, -5, -11, -4, -3, 3, -8, 8, 4, -2, -2, -4, -4, -1, + 4, 3, 5, 5, 2, 4, -1, 6, -3, 6, 2, 3, 0, -4, 0, -2, + -2, 0, -5, -2, -1, 4, 3, 1, -13, -8, -8, -5, -3, 7, -2, 3, + -2, -5, -3, -8, -2, -3, 8, 6, 1, -2, 5, 3, 1, 2, 0, -1, + 2, 4, 3, -5, 1, -3, 0, 1, 7, 1, 2, 3, -1, -4, -4, -10, + -7, 3, 0, 2, -5, -5, -4, -1, -7, -3, -3, 1, 3, 0, 0, -1, + -6, 6, 1, 4, 1, 2, 5, 6, 4, -1, -4, -3, 1, 2, 5, 2, + -1, 1, 3, -8, -1, -10, -2, -5, 0, -1, -6, -10, -7, 2, -2, 6, + -1, -2, 1, 4, -1, -5, -1, -5, 4, 1, 4, 2, 1, 3, 4, 0, + -2, 1, -1, 3, 8, 2, 1, -4, -3, -3, 3, -3, -1, -4, 0, -4, + -6, -2, -8, 1, -2, 5, -6, -5, -6, 0, 3, 1, -6, -3, 1, 2, + 4, 2, 4, -2, 3, 3, 3, 1, 5, 1, 2, 3, -2, -6, 6, -1, + 6, -2, 1, -7, -5, -2, -3, -6, -6, -6, -4, 0, -2, -4, -4, -3, + 0, -1, 1, -3, -1, 3, 1, 1, 0, 6, 4, 8, 10, 5, 0, -3, + 1, -2, 5, 2, 1, 1, 1, -4, -6, -8, -8, -8, -5, -4, -5, -4, + -5, 0, -5, -3, 0, -7, 0, 4, 1, -4, -1, -4, -2, 4, 4, 5, + 6, 6, 7, 0, 0, -1, 0, 2, 9, 2, 1, -3, 0, 1, -3, 1, + -9, -1, 3, -4, 3, -6, -7, -2, -1, -1, -1, 1, -9, 2, -5, 1, + -8, -6, -6, 1, -1, 6, 0, 2, 5, 2, 0, 2, 1, 2, 6, 5, + -2, -1, 0, 4, 1, 6, 0, -2, 1, 0, 3, -7, -1, -13, -4, -3, + -3, -3, -2, -3, -5, -9, -11, -2, -3, 4, 7, -1, 2, 0, -2, 8, + 5, 1, 4, 3, 2, 7, 3, -2, -4, 7, 2, 3, -2, 1, -1, 2, + 0, -5, -4, -4, 0, -4, 0, -1, -10, -9, -3, -5, -8, 1, -5, 3, + -3, 0, -7, 1, 0, 5, 4, 7, 1, 1, 0, 2, 2, -2, -1, 2, + 1, 4, 6, -1, 4, 3, -1, 4, -2, -3, 3, -1, -2, -6, -6, -7, + -3, -1, 0, -4, -6, -5, -6, 0, -3, 3, -5, 7, 0, -1, 1, -3, + -1, 1, 6, 3, -3, 7, 1, 10, 1, 6, -1, -2, 5, 2, 1, 1, + -4, -2, 0, -3, -7, -2, -4, 4, -8, -8, -4, -10, -2, 2, -4, 1, + -5, -7, -1, 3, -1, 1, 1, 4, 6, 2, 2, 0, 4, 7, 0, 5, + -2, 0, 3, 3, 3, -3, -1, -5, -2, 0, 3, -4, -6, 2, -1, 0, + -2, -4, 0, -4, -3, -9, -3, -4, -4, 0, 3, -1, -4, 3, 1, 5, + -2, 1, 2, 2, 4, 5, -3, 2, 1, 3, 7, 1, -5, 1, 0, 5, + -3, -2, -3, -4, 0, -3, -2, -5, 0, -8, 3, -6, -4, -6, -2, 2, + -4, -2, -3, -2, 1, 4, 2, 3, -2, 2, 4, 1, 4, -2, 3, 2, + 1, 1, 7, -1, 2, 4, -4, 2, -4, -2, 5, -4, 3, -1, -3, -2, + 3, -8, -4, -6, -3, -3, -1, 0, -6, -1, 0, 1, 1, -2, -10, -3, + -1, 0, 2, -5, 1, 1, 2, 10, 8, 2, 8, -1, -2, 4, -5, 2, + 2, 7, 6, -6, -1, -5, -4, -3, -6, -7, 0, -5, -5, -1, -2, -5, + 0, -4, 6, -6, 0, 3, -3, 4, 0, -6, 2, 5, 5, 4, 10, 0, + 2, -3, 3, -2, 0, 3, -3, 2, -3, -8, -8, -5, -1, -1, -1, 0, + -5, -2, 0, -3, -4, -1, -5, -2, 5, 0, 5, -4, 4, -1, -1, 1, + -3, 3, 9, 2, -1, 1, -6, -3, 7, 1, 3, -2, -4, 0, -1, 3, + 1, -3, 4, 6, 0, 1, 2, -3, 0, 0, -5, -13, -4, -2, 1, 2, + -3, -10, -4, -7, 1, -2, -2, -1, 0, 1, 1, -4, -1, 2, -2, 7, + 1, -3, 0, 0, 4, 5, 2, 2, -1, 6, 9, 1, 3, 1, -5, 5, + -6, -5, -2, -4, -2, 2, -7, -4, -11, -5, 3, -3, -6, -4, -6, 3, + 3, -3, 2, 0, 1, -3, -1, -2, -4, 1, 10, 8, -2, 4, -3, 6, + 6, 1, 0, -7, 2, -2, 1, 3, -4, -4, 4, 1, 0, -2, -5, 2, + -2, 0, -7, -11, -5, -2, -2, 5, -1, -8, -1, -1, 1, 2, -2, -1, + 1, 1, 5, 0, -3, 5, 1, 6, 1, -1, 3, 1, 6, -3, -1, -1, + -3, 4, 12, -1, -1, 2, -4, -1, -6, -8, -7, -3, -2, 1, -9, -5, + -6, -10, 5, 1, -2, -3, -2, 5, 4, 3, -1, -5, 4, 6, 3, 4, + 6, -2, 7, 0, -4, -1, -1, 9, 8, 2, 2, -8, -3, -3, 0, -2, + 0, -4, -2, 0, -6, -7, -14, -6, -5, -1, 3, -6, -2, 1, -3, 0, + -4, -5, 1, 5, 9, 4, 0, 3, 0, 1, 12, 0, 4, 8, 5, 7, + -1, -4, 0, -3, 5, 4, -4, 0, -3, -13, -2, -10, -14, -3, -5, 2, + 1, -3, -4, -8, -8, -3, -2, -2, 3, 4, 8, 0, 2, 1, 2, 12, + 5, 3, 8, 2, 6, 3, -4, -4, -2, -8, 8, -5, -2, -6, -10, -2, + -6, -4, 0, -4, 2, 5, 1, 0, -4, -4, -1, -1, -3, 4, -7, 4, + 3, -3, 4, -4, -3, 8, 4, 7, 0, 0, 2, -1, -2, -1, -2, -7, + 11, -1, 5, -4, 2, -2, 0, 2, -2, -4, -2, 1, -5, 3, -6, -9, + -3, -3, -2, -5, -5, -2, -6, -2, -7, -8, 1, 3, 5, 9, 4, 4, + 0, 5, 8, 1, 3, 7, 5, 10, 11, -7, 3, 0, -3, 1, -1, -7, + -7, -3, -2, -6, -9, -6, -12, -4, -1, 0, -8, -5, -3, -3, -2, 3, + 1, 1, 9, 4, 2, 5, -1, 2, 6, 2, 0, -3, 2, 2, 5, 2, + -1, -4, 4, 1, 1, 2, -5, -8, -1, -3, -1, -9, -4, 1, -4, 5, + -6, -4, 0, 3, -9, 3, -3, -5, 1, 4, 4, 1, -4, 1, -4, 4, + 1, -6, 0, 5, 7, 8, 1, 6, 0, 3, 4, 2, -3, 1, -3, -3, + 3, -9, -6, -7, -2, -1, -3, -5, -6, -5, -5, -6, -5, 4, -3, 5, + 5, -2, -1, -1, -3, 6, -2, 5, 6, 2, 11, 8, -1, 3, -6, -2, + 5, 4, -3, -3, -5, -3, -7, -5, 0, -5, 2, 1, 0, 1, -7, 0, + -3, -2, -1, -2, -5, 7, -4, -2, -3, -2, -3, 4, 4, 9, 0, 1, + 1, -5, -3, -4, -4, 4, 3, 6, 0, -2, -2, -6, 4, 1, 1, -3, + 3, -1, 2, 0, -7, 0, 0, -1, -3, -2, -1, -5, -2, -3, -8, -5, + -5, -1, 5, 5, 2, 2, -3, 4, 3, 3, 6, 3, -1, 10, -4, -3, + -2, -3, 0, -4, 0, -2, -2, 0, 1, -4, -2, -5, -9, 8, -2, -1, + -1, -3, -3, -2, -6, 2, 1, 2, 9, 0, 1, 3, -4, 2, 4, -6, + -1, 2, -1, 6, 3, 0, -5, -3, -1, 0, 3, -3, 0, -6, -2, -3, + -4, -2, 0, 3, 2, 2, 0, -10, 1, -6, -5, -1, -2, 5, 3, 6, + -2, -6, -1, -3, 2, -1, 0, 0, -1, 0, 0, 0, 1, -2, 2, -2, + -5, -1, -2, 16, 12, -18, -10, 3, -14, -10, 16, -1, -3, -16, 28, 3, + -1, -1, 12, -5, -6, 6, 7, -7, -18, -28, 11, 0, 6, -2, 26, -21, + -10, -1, 24, -3, 20, -19, 15, -14, -3, -3, 15, -35, -2, 6, -14, 30, + 6, -36, -8, 17, 0, -27, 26, 16, -38, 8, -14, 57, 3, -31, -14, 34, + -20, 33, 2, -6, -7, -28, 20, -24, 8, 13, 8, -39, 17, 40, -42, -11, + 13, -46, 1, 28, -22, 11, -3, -14, 5, 20, -12, -4, 49, -22, -24, 39, + -11, -1, -9, 37, -30, 13, 34, 4, -11, -25, 18, -22, 1, 29, -17, -3, + -26, -16, -21, 12, -18, 7, -17, -6, 51, 0, -21, 10, 24, -45, 8, 14, + 31, -10, -37, 6, 0, 24, 3, -18, -13, 14, 11, 0, 7, -1, -38, -29, + -21, 32, -30, 22, -26, 14, -40, 55, -36, 30, -12, 8, 31, -16, 19, -15, + 23, -48, 36, 1, 63, 3, 24, 0, -3, 14, 26, -21, 15, 47, -21, -80, + 14, -4, -25, -33, 11, 25, -35, -44, 13, -2, -48, -11, -23, -7, 27, -4, + -15, -22, 5, 26, -36, 50, 23, 11, -23, -14, 19, 32, 14, 38, -66, 56, + -11, 26, 18, -12, 17, -30, -6, -54, 22, 77, -62, -12, -16, 34, -25, 2, + 14, -62, 12, 20, -22, -50, 58, -29, -58, 4, 28, 30, 13, 25, -78, 38, + 45, -19, -7, 52, -61, 27, 17, -21, -4, 6, 37, -24, -38, 73, 8, -16, + 21, -2, -15, -19, -19, 18, 3, 7, -48, -10, -10, 10, 4, 13, -13, -4, + 0, 46, -12, 6, -18, -25, 4, 14, 27, -22, -37, 14, -6, -17, 55, 40, + -111, 63, 9, -38, -16, 46, -35, 4, 0, -10, -8, -12, 58, -69, 1, 66, + -38, 21, -33, -6, 10, 0, 10, -11, 18, -16, 32, -7, -10, -25, 65, -42, + 42, -62, 18, -3, -2, -8, 21, 4, -71, 13, 40, -3, 18, -19, -29, 15, + -66, 60, -50, -6, 67, -80, 17, 66, -21, -20, -15, 68, -16, 72, -4, -23, + 4, 53, -8, 8, -4, 0, 27, -26, -22, 25, -31, 7, -39, -18, 27, -43, + -25, -33, -6, 17, -16, 0, -55, 6, 26, -3, -67, 7, 60, -83, 25, 15, + 45, -8, 51, -55, 28, 42, 42, -17, 37, -6, 17, 8, 11, -1, 59, -7, + -45, 14, -41, 107, -49, -50, -25, 63, -58, -27, -57, 19, 13, -13, -27, 19, + -42, 63, -113, -1, 44, 8, 1, -10, -33, 0, 55, -41, 15, 0, 76, -17, + -39, 60, -20, 28, 54, -93, 15, 83, -30, 4, -56, 49, -58, 30, -28, 2, + 54, -64, 83, -128, 86, 24, -40, -27, -66, 51, 11, -51, 59, 6, 20, -58, + -24, 78, -7, -23, -27, 1, -3, -24, 10, -6, -16, 34, 39, -37, -17, 26, + 52, -69, -7, 11, 24, -62, 38, -13, 41, 5, -2, -5, -12, 15, 77, -49, + -10, 74, -12, -11, -38, 32, -24, 25, -6, 19, -24, -2, -38, 63, -91, 64, + -27, -11, -56, -43, 27, -41, -55, -15, 1, -4, 27, 8, 37, -57, 3, 28, + -11, -4, 46, -39, 3, 12, 100, -33, 39, 17, 6, 49, 5, 38, -12, 10, + 21, -35, 23, -6, -36, 10, -9, 3, -1, 13, -65, -40, 36, -25, -28, 5, + -37, -20, -14, 31, -16, -32, -16, 4, 15, -11, 26, -16, 29, -42, 46, 7, + 39, -1, -5, -9, 33, -31, 35, -33, -7, 17, 56, -24, 22, 14, -22, -34, + 44, 16, 11, -46, 43, -48, -27, 43, 36, -45, 21, 11, 0, -98, -22, 87, + -126, 52, -45, 34, -28, -17, -31, 23, -38, 23, 25, -11, 25, -63, 21, 13, + 19, 47, 28, -23, 20, 21, -5, -14, 112, -30, -67, 37, 43, -12, -57, 34, + -9, -29, 52, -19, 14, -51, 0, 26, -69, 3, -18, -24, -34, 31, -15, -33, + -36, 10, -20, -38, 63, 0, 44, -50, 72, 25, -16, -6, 6, 15, 23, 31, + 3, -20, -9, 19, 63, 17, -18, -5, -12, -87, 31, 26, -37, -29, 49, -42, + -15, 14, 11, -16, -31, 46, -19, -13, -37, 59, -91, 47, 4, -11, -26, 39, + -29, -24, 48, 10, 39, -11, 45, -51, -1, -24, 47, -19, 39, -34, -29, -17, + 1, 56, -25, -16, -13, 0, 48, -71, 49, 2, -2, -45, -10, 59, -17, -25, + 9, 9, 44, 42, -32, -23, -49, 46, -11, -50, 76, -43, -45, -1, 41, -8, + 2, 71, -36, -61, 35, 21, -13, -36, 44, -45, 26, -45, -21, 28, -37, 39, + -29, 15, 4, -5, 24, -7, 7, 3, 68, -80, 26, 24, -22, 8, 26, 28, + 10, -26, -3, 16, -51, 85, -8, -14, -54, 39, -28, -9, -25, 46, -39, -20, + 34, 11, -25, -7, -12, -41, 12, -17, -5, -43, -8, 0, 18, 13, 9, 28, + -40, 34, 0, 13, 40, -20, 5, 22, -25, -13, 51, 9, -34, 43, -16, -18, + 2, 35, -4, -28, 14, -37, 6, -8, 31, -49, 9, -31, 61, -55, 35, -46, + -37, -12, 32, 74, -59, -30, -21, 5, 38, 3, 48, -35, -42, 2, 29, 81, + -8, -37, 24, 42, -31, 18, -11, -21, -67, 98, -18, 11, -26, -14, -76, 11, + 71, -70, 30, -52, 37, -45, 61, 6, -33, -44, 58, 24, -16, -51, 49, -28, + 51, -6, -15, 46, 10, -24, 36, -4, 6, -30, 46, -66, 54, 27, -16, -34, + -23, 90, -61, -49, 22, -3, -22, 17, -35, -11, -59, 23, 2, -25, 69, -24, + -26, -28, 37, 12, 11, -63, 27, 18, 3, 34, -25, 9, -14, 29, 4, 24, + 21, -77, 12, 14, 37, 1, 45, -63, 1, 49, -14, -23, -7, -4, -42, 48, + -57, 18, -36, 17, 15, -37, 47, 1, -41, -14, 11, 49, -32, 32, -36, -19, + 21, -11, 39, -31, 43, 0, -24, 15, 6, 9, -46, 5, 21, -23, 2, -28, + -15, 59, -13, -29, 50, -7, -45, -12, 23, -1, 27, 6, -17, 7, -4, -3, + -3, 53, -10, 17, -52, 19, 24, -8, -7, 19, -51, -30, 55, -22, -22, 29, + -38, -25, 39, 3, 34, -84, 26, -37, 42, 15, 4, -4, -16, -33, 29, 17, + 43, -93, 24, -6, -20, -14, 107, -29, -36, 69, -21, 10, -7, 74, -67, 38, + -23, -8, 27, -35, -49, 29, -8, -4, 7, -8, 5, -38, -28, -33, 22, 70, + -37, -10, -56, 26, 5, 7, 59, -21, -58, 10, -2, 6, 49, -16, -9, -38, + 60, 13, 43, -43, 23, -14, -9, 38, 17, -38, -15, 29, 6, -5, -11, -3, + -4, -65, 45, -13, 26, -13, -4, -5, -38, 48, 0, 4, -40, 40, -48, 23, + 21, 23, -42, 5, -17, 13, -9, 12, -3, 5, -25, 34, -24, -3, -18, 16, + -44, 13, 27, -30, 44, -54, 6, -18, -3, 4, 21, -25, -13, 22, -20, -12, + 37, -10, -10, 5, 24, -17, 23, 9, 0, 4, 3, 12, 26, -27, 17, 9, + -41, 69, -1, 15, -37, 15, -6, 0, -1, 3, -13, -23, -18, 27, -5, 21, + -16, -41, -2, 20, 13, -27, 6, -21, 8, 6, 0, 6, -5, -21, -22, 73, + -40, 4, 6, 21, -8, -5, 29, -47, -1, 1, 19, 3, -10, -1, 2, -48, + -11, 45, -27, 11, -33, -21, 21, 7, 12, -22, 21, -40, 13, 27, -20, 37, + 5, -18, -18, 35, 40, -11, 20, -25, 10, -4, 33, 12, -29, 9, -20, -30, + 34, 24, -9, -10, -24, -16, 8, 22, 6, -58, -5, -13, 18, 5, -43, 10, + -16, -25, 13, 70, -25, -7, -25, -19, 16, 58, -46, -5, 6, -5, 40, -24, + 22, 50, -73, -7, 7, 32, 39, -27, -23, -23, 56, -35, 21, 17, -40, 40, + -52, 4, 0, 49, -29, -42, 24, 9, 31, 2, -46, 0, -9, -5, 9, -31, + 64, -5, -45, -26, 42, -4, -34, -8, -3, 32, -15, -8, 22, -24, 13, -31, + -2, 31, 10, -10, -18, 8, 24, 20, -29, 2, 14, 23, 25, -4, -19, 20, + -25, -5, -3, 23, -8, 52, -42, -17, -7, 29, -26, 2, -19, 55, -50, -28, + 1, -10, -7, 7, -41, 16, 21, 1, -20, 0, 16, -19, 14, -39, 86, -17, + -34, -64, 73, 0, 20, -28, 30, -22, 9, 58, -4, -8, -18, -20, 31, -21, + 1, 26, -49, 5, 41, -25, -13, -6, -7, 6, 10, 42, -30, -26, -43, 11, + 44, -54, 31, -10, -11, -17, 25, 32, -43, 64, -23, 3, -37, 33, -30, -4, + -35, 47, -29, 9, 23, -34, -5, 64, -37, 32, -11, -44, 21, 25, -19, 8, + 6, -25, 34, 2, -18, -23, 38, 20, 7, 21, 1, -32, -37, 50, -9, -25, + 34, -61, 55, -32, 7, -48, 20, 13, 0, -35, 17, 9, -42, -28, 14, 42, + -33, -25, -5, 21, 41, -60, 32, -7, 38, -9, -3, 20, -4, 29, -69, 62, + -16, 35, -64, 45, 10, 5, -1, -18, -18, -1, 5, 32, 0, -21, -12, -23, + 29, -15, 13, -39, -3, -3, 6, 35, -24, -23, -7, -2, 44, -10, -37, 25, + 25, -25, -23, 7, 40, 4, -40, -18, 21, -2, -3, 1, -16, 45, -26, -2, + -16, 18, 41, -64, 8, -26, 40, 5, -32, 8, 18, -1, 15, -1, 9, 2, + 2, -13, -12, 35, -9, 13, -62, -29, 72, 18, 7, -30, 26, -7, -29, 39, + -38, 31, -56, -25, -3, 17, 2, -3, -46, 35, 6, 27, -39, -3, 3, 31, + -25, -19, -2, 38, 26, -77, 22, 18, 40, 3, -22, 65, -48, 33, -16, -37, + 78, -34, 1, -52, 23, 16, 1, -37, 17, 12, 1, -4, 8, -27, -1, -11, + -18, 27, -23, -10, -11, -19, -6, -7, 51, -74, 16, 20, 17, -14, 7, 7, + -13, -8, -5, -11, 39, 21, -5, -44, 31, 64, -38, -18, 20, 40, -4, -10, + 10, -23, 23, -6, -20, 11, 9, 10, 6, -23, -11, 1, 17, -56, 56, -40, + 0, -17, -60, 84, -80, 16, -13, 4, -25, 12, 17, -42, -26, 54, -29, 12, + -5, 37, 16, -62, 94, -5, -2, -2, -2, -9, 5, 51, -25, -5, -11, 5, + 16, -14, -9, 43, -44, -8, 27, 2, -1, 9, -18, -6, 5, 23, -46, -9, + 13, 16, -10, -10, -23, 59, -47, -14, 23, 29, -15, -14, -30, 21, -21, 0, + 14, -3, 25, -16, -35, -2, -8, 32, -19, 22, -23, -37, 30, -33, -19, 11, + 12, -32, 47, -4, 27, 11, 9, -35, 39, 29, -18, -2, -11, 27, -2, 13, + 0, 18, -26, 15, -25, 26, -4, 21, -29, -33, 18, -8, -31, -5, 21, -1, + -38, -28, 41, -18, -4, -22, 47, -12, -44, 55, -79, -5, 19, -10, 25, 4, + 21, 15, -28, 13, -6, 45, -24, 25, 10, -26, 4, 2, 31, 3, -7, 3, + 5, -23, 51, -9, -32, -5, 35, -32, -21, -20, 35, -40, -10, 20, -8, 7, + -5, -38, -1, -24, 39, -26, 20, -16, -9, -27, 25, 34, -32, 1, 12, -13, + 3, 37, 13, 3, -31, 27, 30, 5, -15, -21, 2, 10, -13, 16, 36, -9, + -59, 41, -10, 61, -60, -35, -11, 7, 5, -28, 30, 5, -23, -66, 34, 50, + -26, -19, -10, 11, 8, 8, -35, -5, -11, 56, -24, 10, 35, 16, -10, -19, + 30, 4, -11, 23, 0, -6, 6, 36, -15, 0, 15, -14, -26, -8, -5, 15, + -31, -45, 42, -30, 0, -9, 6, -22, 9, -22, 7, -8, 15, -19, -3, -13, + 29, -14, 9, -16, 3, -5, -10, 63, 0, 4, 4, 20, 16, -21, 18, 31, + -24, -19, 31, 54, -39, -7, -16, 5, -3, 0, -29, 16, 6, -29, -25, -52, + 49, -9, -66, -3, 50, -3, -2, -14, 4, -8, 33, -40, 2, 15, -6, -17, + -4, 10, 48, -16, 14, -9, 27, 10, 2, 2, 40, -35, 5, -10, 7, 28, + 1, 4, -30, -4, 0, 1, -14, -13, -11, 26, -17, 13, -44, -9, -6, -23, + 17, 11, 11, -21, -11, 0, 9, 8, 8, -30, 29, 10, -26, -12, 15, 17, + 4, -26, 14, 19, 20, -9, -24, 39, 23, -10, -35, 8, -6, 18, -25, 15, + -17, 41, -48, -31, -5, 47, -14, -20, -4, -7, 5, -19, 3, 21, 12, -23, + 15, -24, 8, 3, -25, 2, 28, 14, 21, 25, -72, 15, 26, -6, 45, -27, + 29, -30, -17, 23, 6, -2, 27, -46, 13, 9, 15, -57, 27, 1, -18, 1, + -11, -2, -20, -16, -23, 24, 18, -21, -5, -15, -14, 26, -12, 30, -48, 37, + -24, -3, 23, 9, -5, 9, 8, -43, 23, 26, 6, 28, -29, 30, -8, -12, + 25, -18, 33, -48, -4, 29, 1, -8, -4, -20, 41, -22, 1, 12, -33, 0, + -17, -16, 29, -3, -2, -36, 6, -1, -11, 4, -24, 40, -24, -5, 26, -2, + -28, 13, -11, 35, -9, -2, -3, -6, 13, 10, 1, 11, -22, 22, -27, -5, + 20, 11, -1, 8, -23, 8, 7, -7, 17, -6, 16, -9, -10, 3, 13, -3, + -17, 19, -21, 6, -13, -15, -7, 22, -15, -7, 11, -20, -19, -6, 0, 28, + -10, -7, -13, 9, 7, 1, -11, -6, 21, -33, -4, 52, -11, -1, -2, -2, + -4, 32, 17, -31, 7, 12, 2, -5, 11, -1, -6, 1, 3, -11, 5, 4, + -15, -8, 10, 5, -18, 5, -26, -11, 22, -15, -23, 22, 19, -30, 3, 1, + -5, 10, -17, 10, -2, 10, 7, -17, -5, 36, -12, -24, 27, 22, -3, -11, + -6, -7, 20, 5, -21, 0, 23, -31, -27, 14, 2, 8, 7, -15, 0, 13, + -7, -3, -21, 33, -4, -26, 7, 5, -7, -7, 1, 3, 4, 11, -24, 6, + 11, -7, 14, -9, -11, -1, 34, -22, 11, 1, -18, 17, 4, -19, 28, -15, + -7, -11, 12, 1, -7, -9, -12, 17, -20, 6, 5, 2, -10, 12, -23, -3, + 26, -1, 4, 6, -25, 12, -3, -26, 2, 15, 14, -18, -6, -17, 14, 4, + -10, 21, -13, 5, -15, -20, 27, 6, 8, -11, 18, 15, -34, 17, -2, -13, + 41, -9, -10, -6, -2, 7, -11, -4, 28, -26, -6, 25, 17, -36, -2, 33, + -39, -15, 11, -2, 26, -32, -31, 21, 26, -11, -24, 12, -17, 4, -33, 24, + 14, -10, 12, -19, -3, 28, 11, -8, 0, 26, -17, -7, 8, -6, 20, 26, + -29, -27, 25, -14, -2, 10, -16, 39, -24, -17, -4, -13, 24, -10, -3, -20, + 25, -1, -24, 24, -20, -5, 21, -26, 7, 21, -26, 15, 17, 6, -34, 5, + 11, -27, 20, 17, -13, -8, -16, 9, 33, -36, 19, 5, 4, -2, -33, -12, + 38, -17, -10, -4, 19, 14, -4, -32, -41, 64, 5, -38, 28, 6, -2, -11, + -22, 11, 17, 17, -24, 23, -7, 9, 10, -38, 0, 25, -9, -6, -27, 20, + 2, -27, 34, -23, 17, -22, 4, 12, -43, 29, -8, 25, -19, 13, -17, -11, + 27, -8, 14, -19, 12, 9, -22, -6, 11, -10, 17, -4, 2, -3, 15, -47, + 32, -18, 11, 14, 0, 8, -33, -14, -12, 23, 17, -12, -4, 13, -27, 10, + -17, 20, -2, -11, -11, 27, 18, -21, -6, 26, -18, 9, -7, 27, -12, 3, + -9, -9, 22, 7, -38, -2, 14, -16, 12, -21, -10, 22, 1, -28, 20, 31, + -11, -49, 9, 16, -4, -7, -4, -5, 46, -39, 9, -18, 16, 22, -24, -13, + 14, 29, -10, 3, -23, 4, 11, -33, 30, 18, -9, 5, -11, 4, -20, 30, + -9, -14, -7, -9, 4, 0, 4, -15, -11, 23, 5, -24, 26, -6, -8, -17, + 21, 0, 3, 13, -10, -13, 19, -16, -10, -5, 10, 8, 22, -19, 4, -8, + 0, -24, 38, 12, -33, 10, -9, 5, -13, 11, 3, 7, -18, -12, 11, -4, + 8, -17, -7, 16, -9, -2, -9, 0, 10, -2, -1, -1, 12, -6, 13, -18, + 18, -6, 10, 1, -3, 9, -2, -30, 23, -9, 29, -11, -31, 10, 6, -21, + -19, 54, -30, 18, -12, -26, 23, -10, -31, 23, -5, 49, -34, 4, -18, 3, + 11, -24, 27, 12, -24, 3, -13, 3, 16, -6, -7, 1, 19, -8, -3, -11, + 13, -14, 19, 10, 17, -21, 14, -40, 12, 13, -5, -3, 21, -14, -29, 16, + -24, 1, 10, -1, -3, 6, -15, -16, 16, -4, 2, 23, -32, -1, 7, -5, + 13, 4, -15, 33, 1, -7, -7, -12, 13, 6, -8, 2, 21, 2, -21, 17, + -14, -19, 36, -2, -16, -4, 3, 9, 15, -39, 3, 9, -10, -3, -12, -7, + 28, -19, 8, -18, 22, -18, -11, -2, 17, 23, -15, -24, 11, 13, -14, -10, + 9, 4, 14, -10, -13, 13, -3, -12, 25, 6, -12, 12, -19, -3, 19, -10, + -13, 19, 10, 18, -31, -15, 19, -9, -14, -6, 25, -18, 2, 17, -41, 11, + 16, -20, 3, -10, 16, 9, 14, -27, -1, -3, 9, -19, 36, -6, -4, -4, + -16, 5, -7, 24, -1, -30, 13, -8, -4, -9, 47, -37, 3, 21, -24, 1, + 3, 11, 5, -10, -8, 20, -31, 16, 10, -1, 0, -9, -1, -6, 14, -6, + 6, -17, 20, 3, -23, 10, -14, 17, -16, -2, 26, 7, -20, -10, 9, -18, + 31, -35, 3, 14, -8, 13, -27, -4, -4, 26, -20, -9, 14, 22, -27, -4, + 18, 9, 9, 3, -13, -20, 15, -13, 6, 12, -5, -6, -12, 0, 4, -10, + 18, -7, -8, -15, 1, -11, 17, 5, -11, 14, -6, -11, 4, 10, -5, 13, + 0, -7, 15, -2, -16, 2, -3, 9, -6, 2, 34, -11, -17, -8, 21, 13, + -21, -4, 14, -7, -7, -19, 13, -7, 4, -25, 7, 16, -14, -40, -11, 36, + 3, -10, 4, -10, 7, -1, -1, 4, 14, 6, -14, -14, 17, 23, -13, -2, + -1, -12, 9, 8, 1, -7, 22, -29, 7, 7, 0, -24, 13, -10, 18, -1, + -3, 13, -24, 30, -32, -5, 18, -2, -6, -8, 11, -18, -12, 17, -11, 0, + 5, -4, -14, 31, -15, -16, 13, 12, -4, 4, -4, -1, -11, -15, 26, -18, + 29, -15, -3, -8, 6, 6, -34, 22, 0, 11, -18, 16, 20, -19, -21, -5, + 11, 21, 10, 10, -27, -5, 3, 2, -5, 9, -9, -1, 1, -11, -3, 8, + 4, 1, -1, -11, 19, -1, -21, -5, -2, 11, -2, -8, 10, -7, -1, 2, + -18, 3, 0, 7, 2, 7, 1, 1, -28, -14, 10, 19, 12, -21, 7, -19, + 20, -2, -3, -1, 17, -11, -13, -16, 32, 4, -5, -3, 4, -4, 18, -2, + -17, -6, 16, -3, 4, -12, 4, -2, 2, 6, -18, 20, -24, 17, -10, 19, + -16, -17, 8, -7, -5, 16, -12, -18, 11, 9, 2, -8, 17, -9, -3, -13, + 7, -6, 30, -15, -11, 5, 14, -2, -15, -5, 14, 13, -12, -24, -10, 22, + -2, -8, -1, 21, -5, -19, -16, 8, 42, -6, -27, -12, 23, 10, -17, -14, + 16, 14, -16, -2, 9, -2, 16, -9, -31, 22, 0, -2, 3, 4, -5, 20, + -24, -5, 13, -1, -5, -10, -6, 8, -11, 2, 8, -8, -5, -9, 1, -6, + 16, -1, -18, 4, 9, -3, 6, -4, 6, 9, -7, -9, -1, 10, -7, 4, + 3, -3, 4, -8, -5, 3, -4, 10, 6, -15, 2, 3, -5, -2, -3, -12, + 18, 2, -16, 7, 13, 0, -19, -8, 11, -6, -1, -9, 5, 13, -8, -6, + 6, 7, 11, -11, -6, 13, -2, -5, -1, 9, -2, -7, -15, 10, 5, -1, + -13, 8, 0, -6, -2, -2, 18, -16, -7, 2, 3, -4, 6, -11, 4, 6, + 1, -5, 22, -11, -5, -6, -3, 11, -1, -1, 4, 1, -4, -13, -4, 11, + -9, 1, 9, -1, -8, 1, -5, -7, 5, -14, 18, -1, -12, 11, -12, 16, + -5, -11, 11, -2, 15, -7, -18, -10, 0, 18, -12, 8, 3, 6, -16, -3, + 3, 6, 0, -1, -3, 4, 9, 3, -17, -7, 11, 11, -19, 5, 15, -12, + -3, -12, 4, 11, -19, 0, 0, -14, 21, -15, 2, 8, 3, 8, -8, 5, + -18, 9, -2, -8, 23, -5, -16, 5, 3, -20, 13, 11, -6, -15, 5, 4, + -12, 2, 10, -5, -12, 5, -14, -2, 18, 11, -14, 0, 28, -10, -20, 4, + 7, 9, -13, -6, 15, 11, -9, -6, 14, -8, 10, 4, -12, 11, -18, 13, + -17, -9, 16, -4, -14, -7, 17, -24, -5, 4, 6, -6, 14, 2, -24, -22, + 11, 13, 8, -16, 6, 13, -28, 10, -2, 11, 8, -1, -8, -14, 22, 3, + -5, -13, 18, 7, -26, 15, 20, -6, -10, 4, 11, 5, -8, -3, -5, 0, + -1, -6, 0, 4, 4, -14, -1, 1, 8, -14, -10, -4, 6, 4, -8, 3, + -9, 0, 11, -4, -7, 5, 4, 6, -29, 18, 22, -19, -16, -11, 17, 7, + -4, 3, -23, 20, 8, -19, 3, 13, 13, -16, -18, 15, -6, 0, 3, 17, + -7, -4, 2, -22, 21, -1, -2, -1, -15, 13, 3, -7, 4, 0, -7, 8, + -7, 11, 3, -2, -8, 10, -15, 0, 9, -14, -8, 8, -2, -9, 10, -13, + 9, 7, -6, 2, -12, -4, 6, -12, 8, 12, 3, -10, 6, 7, 1, -2, + -11, -1, 7, -7, 8, -13, -10, 11, -9, -10, -8, 20, 9, -11, 8, -5, + -4, 6, -3, 5, 13, -13, -7, -7, 6, 19, 0, -9, 9, -1, -3, 4, + -7, 0, -2, -4, -5, 5, 0, -5, 14, -19, -14, 18, -1, -5, 3, -12, + 18, -19, 4, -15, -10, 10, 10, -17, -4, 19, -6, -2, 5, 11, -4, -3, + 9, -22, 28, -6, -5, 0, -1, 11, -11, -13, 22, 3, -8, -9, 1, 3, + 0, 1, 2, 7, -5, -25, 10, 6, 6, 2, -11, 8, -16, 15, -20, 5, + 9, -6, -13, -5, 14, 6, -21, 22, -7, -14, 4, 26, -8, -13, 8, 1, + -10, -13, 11, 10, -10, 2, -13, -9, 15, 0, 10, -30, 14, 7, -13, -5, + -12, 8, 10, -4, 10, 12, -15, -7, 5, 2, 2, 10, -13, -3, 0, 21, + -2, -16, 9, 3, -1, 6, 15, -3, -21, 10, -8, 5, 1, 1, 2, -19, + 10, -7, -3, -1, 8, 6, -26, -10, 18, -28, -3, -3, 4, 0, -7, 6, + -10, -2, 25, -19, 5, -11, -2, 14, 4, -5, -3, 4, -5, 6, -2, -3, + 11, -1, 13, -12, 5, 20, -15, -3, 17, 4, -14, -5, 11, 3, 1, 6, + 11, -20, 10, -4, -4, -4, -4, -18, -7, 5, 10, -25, 7, -9, -15, 1, + -4, 4, 4, -4, -1, -18, 9, -6, 4, 7, -19, 10, 0, 3, -6, 12, + 18, -5, 2, 4, -4, 11, 2, 5, 2, 1, 3, -4, 3, 4, -3, -2, + -8, 11, 5, -10, -12, 12, -6, 6, -9, -6, 4, 9, 0, -9, 4, 3, + -7, -5, -12, 19, 2, -28, 1, 0, 9, -10, -6, 3, 3, -11, -4, 6, + 7, -7, -3, 5, -12, 9, 10, -12, 7, 5, 5, -6, -9, 16, 6, -16, + 3, 8, -17, 12, -5, 2, 1, 21, -25, -10, 5, -2, 15, -6, 1, 3, + 5, -16, -2, -16, 32, -17, 7, -13, 6, -1, -4, 0, -4, 10, -2, -17, + -7, 29, 0, -13, -1, -1, 2, 12, -4, 3, -2, 4, -19, -1, 18, 2, + -3, -15, -2, 10, -4, 1, -2, -5, 20, -5, -6, -7, 9, 0, -2, -24, + 5, 15, -2, -11, 1, 0, -2, -14, -2, -4, 7, 4, -4, -9, 2, 4, + -8, 8, -1, 2, 10, -13, 4, 10, -4, 27, -22, 17, -18, -2, 5, 8, + -1, 4, -6, 2, -1, 9, 1, -3, 16, -21, -18, 2, 10, -14, 9, 3, + -14, -9, 0, -16, 9, -10, 11, -12, -3, 1, -10, 3, -2, 2, -13, 13, + 10, -1, 4, 4, 1, -3, 9, 0, 4, 8, -14, 10, -4, 0, 8, 11, + -2, 2, -11, 3, -13, -8, 11, 4, 1, -7, 4, -21, 0, 1, -4, -22, + 17, -8, -16, 10, 4, -2, 0, -4, 2, -2, 2, -6, 10, 3, 3, 5, + -1, 6, 5, 2, -6, -3, -2, 7, -4, -4, 12, 1, -30, 12, -7, 3, + 4, -6, -7, -9, 9, -1, 7, -10, 12, -16, 2, -8, 23, -5, -5, -1, + -8, 10, 3, -14, -12, 25, 7, -13, -6, 4, 15, -3, -23, 9, 12, -9, + -13, 18, -9, 5, 1, -17, -4, 13, -10, 11, -10, -1, 6, 0, -7, -2, + 9, -4, 9, -24, 7, 6, -5, 4, 15, -15, 11, -5, -24, 9, 11, -16, + 2, 0, -9, -2, 10, 7, -12, 8, -12, -6, 10, 6, 10, -14, -5, 20, + -16, 7, 8, -1, -19, 24, 2, -10, 15, 6, -6, -21, 3, -3, 15, -9, + -3, 3, -2, -4, -3, -9, 5, 0, -5, -3, -15, -4, -1, 1, -14, 33, + -12, -18, 9, -2, -10, 9, 9, -1, -1, -5, 10, -3, 2, 4, 2, -9, + -1, 25, -2, -3, 15, -17, -7, 8, -7, 0, 10, -13, 9, -11, 0, -3, + 18, -15, -11, 5, 0, -12, -2, 7, -6, -4, -9, 11, -6, 8, 1, -14, + 3, 16, -10, -3, 2, 6, 4, 9, -9, -2, 0, 2, -3, 15, 3, -10, + -4, -8, -1, 10, -13, -9, 16, -9, -3, -2, 5, -6, -6, -9, 10, 8, + -4, 14, -7, -19, 12, 1, 2, 1, 4, -1, -6, -3, -3, 5, 7, -2, + 0, 0, -5, 0, -6, 1, 6, -5, -4, 5, -6, 5, -4, -8, 15, -5, + -7, 0, 3, -8, 0, 3, -8, -4, 6, -4, -4, 15, -5, -8, -7, 4, + 7, -10, -6, 15, -4, -13, 7, 2, 2, 1, -4, 5, 0, 0, 1, 4, + -7, 4, 4, -2, 4, 5, 1, -18, 12, 4, -3, -6, 11, 0, -13, -1, + 1, -12, 3, 13, -9, -15, 7, 0, -4, -8, 0, 5, 0, -9, 1, 1, + -3, 0, 3, 5, -10, 6, -1, -4, 4, 15, -15, -5, -9, 18, -2, 0, + 15, -11, -9, 0, 6, -2, 8, 1, -8, -9, 7, 3, -7, -3, 6, 1, + -5, 0, -5, -5, 0, -3, 11, 1, -3, -8, -4, -4, 5, 9, -6, -7, + 4, 15, -13, 5, -4, 2, -6, -2, 0, 5, 4, -4, 0, -6, 8, 3, + -2, -4, -4, -11, 4, 10, -1, -4, -2, -1, -3, 1, -4, -2, 3, 1, + -4, -11, 12, -4, 5, -2, 7, -12, -2, 4, -4, 5, 8, 1, -8, 14, + -11, -1, 1, 4, 0, 5, -5, 2, -7, -7, 10, 3, 1, -13, 0, -4, + 5, -9, -1, 1, -11, -5, 5, 2, -6, 5, -5, -8, 12, -2, 7, -1, + -10, -5, -7, 14, 9, 3, -5, -2, 5, 4, -2, 0, -5, 2, 3, 3, + -12, 6, 3, 2, -9, -1, 24, -13, -9, -1, -2, 0, 7, -6, -17, 14, + -12, -5, 10, 1, -4, -1, -1, 1, -3, 2, -2, -11, 1, -1, -1, 1, + 10, -3, 2, 1, 5, -7, 1, -1, -5, 7, 1, 7, -4, 5, -11, -8, + -8, 7, 8, 6, 0, -15, -1, 7, 0, -6, -3, 7, -4, -3, -2, 1, + 5, 8, -6, -4, 11, 3, -14, -6, -3, -6, 9, -5, 4, -5, 2, 3, + -13, -3, 1, -4, -3, 11, -1, 0, 7, -16, -6, 11, 5, 0, 4, 5, + -2, -3, -2, 8, 7, -16, 1, 2, 6, 3, -17, 11, -2, -2, -9, 6, + 0, -7, 6, -22, -2, 14, 3, -11, 0, -6, -2, -7, -7, 1, 4, 14, + -1, -6, 0, 7, 3, -14, 4, 15, -4, -9, -2, 12, 14, -10, 5, 9, + -11, -2, -9, 2, -9, 11, 2, -21, 7, 6, -11, -1, 0, 0, 1, -9, + 4, 0, -10, 1, 3, -3, -7, 12, -9, -2, 4, 6, 3, -8, 0, 1, + -2, -14, 12, 11, -5, 10, -3, -1, 3, -6, 1, 0, -3, 8, -1, -18, + 12, 5, -13, -4, 17, -1, -6, 1, -11, 0, -6, 2, -2, -2, 5, 3, + -17, 2, -5, 11, -4, 8, 8, -19, -6, 14, -6, -6, 0, 5, 0, -8, + 7, 13, -6, -5, 6, -2, -9, -1, 8, 3, -4, -4, 10, -10, -9, 7, + 2, -6, 14, 0, -15, 3, 5, -4, -10, 8, 0, -6, -11, 3, 10, -9, + 1, 8, -7, 2, -1, -6, -8, 6, 2, -8, -2, 16, -3, -3, -1, 5, + -3, -8, 6, 9, -6, 1, -1, -1, 2, -6, 6, -1, -9, 3, 9, -10, + 1, 5, -4, -14, 2, 1, 7, -5, 3, -2, -13, 5, 10, -9, -8, 14, + -6, -19, -3, 19, -3, -3, 6, -4, -10, 3, -1, -4, 5, 5, 1, 0, + -1, 11, 4, -10, 3, -5, 4, -7, 1, 8, -3, 1, 2, 0, -10, 2, + 5, -15, -3, 8, -8, -6, 5, -2, -5, -5, 11, 0, -12, -7, 5, 2, + -5, 2, -1, -4, 2, 7, -12, 5, 6, -3, 5, -1, 12, 7, -13, -3, + 0, 3, 0, 13, -1, -4, 0, -9, 5, -6, 5, -2, -10, -6, -2, 9, + -8, 5, -6, -10, 5, 4, -6, -2, 1, 1, 6, -14, 10, -3, -4, -5, + 1, 8, -16, 7, 7, -1, 0, 3, -5, 2, -1, -3, 11, -11, 9, 8, + -18, 3, 8, 13, -4, -5, -9, 4, -2, -4, 9, 5, -6, -5, -15, -3, + 17, -6, 2, -8, 4, 4, -4, -12, -3, -2, -2, -4, 5, -4, 1, 7, + -12, -6, 8, 6, -2, 1, -3, 3, 10, -3, 7, -11, 12, 4, -1, -1, + 1, 0, -11, 11, 4, 0, -2, -9, -2, -2, -8, -1, 5, -4, -5, -5, + 1, 10, -8, -11, -5, -4, 5, -1, 1, 6, -2, -5, -5, 3, 6, -2, + 6, -3, 0, 4, 5, 2, 4, -2, 1, 5, -2, -6, 11, -1, -5, 8, + -14, 6, -2, -6, -11, 4, 2, -14, 6, -9, 5, -4, -3, 4, -12, -2, + 2, -5, 4, 7, -5, 3, 6, -1, -3, -6, 0, 7, 0, 1, 6, 9, + 4, -2, -7, -4, 7, 4, 4, -5, -5, 0, 3, -6, -1, 7, -2, -18, + -1, 3, -15, 5, -2, -2, 0, 4, -10, -4, 3, 4, -10, 4, -1, 5, + 4, -7, 8, -7, 0, 3, 2, -7, 13, 0, -2, -6, -6, 5, 10, -10, + 4, -1, 2, -1, -5, 7, 5, -3, -7, 1, -5, 10, 1, -11, 7, 6, + -10, -15, 12, 2, -4, 1, 0, -5, 3, 0, -2, 6, -5, -4, -13, -2, + 3, 1, 4, 3, 3, -10, -7, -7, 11, -2, 2, 2, -7, 4, -1, 6, + 2, 0, 8, 3, 0, -7, 8, 3, 5, -8, -3, -2, 2, 3, -12, -4, + -3, 12, -12, -4, 7, -3, -10, -10, -4, 6, -2, -8, 9, 1, 1, 1, + -3, -6, 12, -5, -6, -1, 11, -7, 5, 6, 2, 9, -11, 6, -2, 8, + 1, -6, 4, 3, -6, -3, 5, -4, 4, 1, -19, -1, 3, 4, 0, 0, + -10, -1, -3, -5, -3, 0, 11, -1, -12, -2, 6, 0, -3, 3, 4, -1, + -7, 1, -2, -1, 2, -1, 0, 2, -2, 4, -5, -4, 11, -4, -5, -3, + 7, 5, -8, 3, 6, -9, 0, 9, -5, -2, 5, -4, -6, 0, 7, -1, + -2, 0, -1, -6, -9, -6, -1, 8, 4, -1, -9, -5, 13, 2, -11, -5, + 9, 0, -8, -1, 5, -2, -5, -3, -2, 7, 5, -4, -13, 3, 11, -8, + 3, 0, 2, 5, -12, -6, 6, 3, -4, -1, 8, 1, -5, -7, -6, 2, + 8, 5, -2, -9, 7, -6, -2, 13, -7, 2, 1, -1, -5, 3, 7, -1, + -11, 9, -6, -4, -2, -5, -1, 2, -1, 3, 8, -7, -1, -9, 0, 0, + -1, 2, 5, -2, 1, -2, -3, 6, 6, -3, -6, -5, 4, -1, 1, 5, + 1, -1, -2, -3, -4, 4, 3, 1, -7, 5, -1, 0, -8, -6, 1, 7, + -3, -6, -2, 3, -1, -3, 2, 2, 0, -9, 1, -2, 4, 4, -5, 1, + -1, 1, 6, -2, 2, -5, -4, -1, 14, -3, 2, -9, 1, -2, -4, 1, + -1, 7, -9, 5, 2, -3, 2, -2, -9, -2, 4, -1, 2, -2, -2, 0, + -1, -1, -2, 3, 1, -1, -3, -6, 3, 7, -5, -3, 9, -5, -4, -5, + 8, -4, 2, 2, 8, -10, -1, 8, -14, 0, 6, -7, -1, 2, -3, 2, + -4, 5, 2, -5, -4, 5, 1, -6, 3, 6, -4, -1, -3, 3, -7, 0, + 1, 0, -4, 7, 6, -13, -3, 3, 2, -15, 8, 3, -3, -6, 9, -4, + -1, 9, 1, -6, -6, 7, 1, 1, -2, 6, -1, -4, -1, -1, -7, 5, + 3, 0, -5, -2, 8, -2, -8, 6, 7, -16, -5, 6, -6, -1, 1, 7, + -4, -3, -6, 3, -10, -3, 8, -9, -1, 5, -1, -7, 5, 2, -1, 1, + 5, 1, 2, -4, -5, 1, 1, 3, 1, -5, -2, 3, 2, -7, -1, 7, + 5, -5, -7, 5, 0, 3, -1, -4, -4, 4, 0, -4, 1, 6, -3, -7, + 0, -3, -3, -1, 0, -2, -4, 2, 1, -2, 3, -1, 0, -1, -6, 9, + -5, 4, -1, -1, 4, -2, 5, -8, 2, -3, -2, 2, -3, 10, 2, -3, + -5, 2, -4, -1, -3, -7, 9, 1, 0, 0, -5, 1, -2, -12, 6, 8, + -18, 4, -1, 4, -1, 5, -5, -3, 3, -1, 4, -5, 9, -5, -4, -5, + 2, 5, -1, -4, 0, -3, -2, 8, -5, 2, 1, -13, 3, 1, 4, 5, + -8, 2, 8, 1, -1, 1, -9, 1, -2, -4, 1, 4, -3, 4, -4, -5, + 6, 5, -6, -3, -3, 1, 1, -7, 1, 2, 1, -5, -4, -2, 2, -6, + 6, 3, 7, -10, -9, 4, 1, -5, 6, 9, 3, 1, -2, -4, 3, 4, + -1, -6, 3, 1, -2, -9, 4, 4, -5, 4, -10, 2, -4, -5, -1, 1, + 2, 0, 2, -8, 1, 3, -4, -13, 0, 10, -1, -4, 5, 0, -4, 5, + -3, 2, -5, 2, 1, 2, 4, 2, 2, -10, 5, 3, -11, -2, 3, 3, + 0, -6, -2, 1, 1, 2, -1, -8, -1, -5, -4, -3, 5, 8, -4, -4, + 2, 0, -2, -2, 1, -5, 0, 13, -8, -6, 4, 8, -6, -1, 6, -2, + 4, -5, 3, 5, -7, -8, -2, -3, 7, 8, -8, -3, 1, 5, -5, -5, + 9, -4, -7, -5, 4, 3, -6, 5, 1, -1, 3, 0, -6, -9, 0, -6, + 1, 4, 10, 5, -13, 0, 6, -2, -4, 2, -2, 6, -1, -4, 0, -11, + 6, 3, -1, -3, 14, -1, -15, 1, 2, 3, -1, 4, -3, -6, 0, 3, + 0, -6, 10, -3, -14, -2, 10, -3, -9, -4, 0, 6, -1, 7, -3, -5, + -6, 1, 0, -5, 11, -2, 1, -2, 5, -1, -4, -1, -3, -4, 2, 11, + 2, -4, 1, 2, -12, 7, 3, -1, -11, 3, 15, -8, -11, 0, 0, 2, + -7, 1, -3, -4, -3, -5, -4, 6, 11, -7, -8, -1, 6, -5, -3, 6, + 8, 3, -6, 1, -1, -1, -1, -5, -3, 8, 7, 4, -9, 1, -2, -4, + -6, 9, -4, 3, -8, 0, 6, -2, -4, -2, -2, -6, 8, -7, 3, 1, + 3, -1, -3, 2, 1, -6, -9, 3, -5, 8, 5, -10, 7, 5, -3, -2, + -1, -3, -1, -4, -7, 6, 6, 3, -7, 0, 0, 1, 0, -7, 3, -1, + 0, 1, 2, 2, 2, -11, -8, 9, 6, 2, -6, -1, 1, -3, 3, 1, + -6, 2, -3, -2, -1, 2, -4, 0, -4, -2, 0, -3, -2, -6, 5, 2, + 0, -1, -3, -1, 3, 1, -2, 0, 2, 2, 0, 1, 7, 1, -4, -2, + -6, 4, 3, -1, -4, -1, 3, 3, -9, -2, 0, -2, -1, -5, 6, 1, + -5, 1, -5, 9, -10, -4, 0, -4, 6, 1, -3, -5, 9, -2, -5, 2, + 0, 6, -6, 2, 5, 10, -8, -3, -2, -1, 4, -3, -1, -4, 0, -1, + 1, -4, 0, 5, -8, -1, -5, -1, -1, 3, 3, 3, 2, -14, -5, 1, + 2, 3, 1, -1, 2, 5, -2, 2, -5, 2, 3, -2, -2, -3, 4, 4, + 4, -6, 3, 1, -10, 1, -6, 6, -2, -3, 0, -3, 1, -3, 1, -1, + -4, -5, -4, 7, -2, -2, -3, 6, -5, -5, 2, -6, 1, 4, 3, -8, + 11, 4, -4, -1, 2, 3, -5, -2, 1, 7, -4, 2, 4, -10, 7, -7, + -1, 0, -3, 5, -4, -1, -4, 5, -7, 3, 3, -11, -2, -1, 5, 1, + -1, 0, 6, -11, 0, 1, -2, 1, 0, -1, -4, 2, 9, -2, -9, -4, + 2, 0, 2, -1, 1, 1, -7, 5, -3, 4, -1, -3, -8, 5, 7, -1, + -1, -3, 3, -7, 0, 4, -3, -3, 1, 6, 0, -1, 0, -5, -1, 0, + -4, 0, 0, -3, 1, -4, 1, 7, -3, -13, -2, -2, -1, 3, 5, 2, + -6, 1, 6, -2, -6, 8, -1, -6, 0, 4, 6, -2, 0, -2, -4, 3, + 5, -4, -7, 2, 5, -3, -3, 3, 1, -10, -7, 3, 1, -3, 2, 4, + -7, -3, 0, 2, -5, -3, 3, -2, 0, 3, 5, -6, -1, 4, -2, 0, + 5, 1, -2, -2, 3, 2, -1, -3, -3, -7, 7, 3, -1, -2, 0, 0, + 1, -2, 1, 0, -15, -1, 3, 2, -3, 4, 0, -7, 0, -1, -1, -4, + -3, 2, -1, -1, 11, -3, -1, -5, -1, 2, 2, 0, 1, 2, 3, 4, + -6, -3, -2, 1, 0, -4, 2, 1, -1, -5, 1, -1, -7, 2, -2, -5, + 0, 2, -2, 3, 5, 0, -2, -6, 6, -7, 3, -4, -6, 1, 6, 3, + 1, -2, -3, -4, -6, -1, 7, -2, 0, -3, 0, 9, -3, -5, -1, 3, + 0, -1, -3, 6, 1, -6, -3, 3, 6, 0, -6, -4, 2, 1, -1, 2, + -5, 4, 1, -2, -5, 0, 7, -9, 3, -1, 1, -6, 0, -5, -1, 1, + -1, 0, -4, 2, -2, -2, 1, 6, -1, -5, 0, 0, 0, 1, 3, 2, + 2, -1, -3, 0, 1, 5, 1, -5, -7, 2, 6, -3, -3, -3, 2, -7, + -5, 5, 0, 0, -3, -4, -1, 3, -4, -5, 1, 5, -1, -2, -4, 0, + 5, 2, 0, 2, 2, -1, -1, -5, 5, 3, -1, -4, 1, 0, -1, -2, + -1, 2, 2, -4, -4, 2, -2, -3, -4, -3, 0, 3, -3, -2, -2, 4, + 1, -2, -2, 1, 2, -6, -1, 2, 6, 1, -2, 0, 4, -3, -1, -2, + -1, 5, 1, -11, 4, 3, -1, -6, 2, -2, 3, -4, -8, -2, -1, 4, + 0, 3, -2, -1, -2, -2, 1, 3, 3, -7, 0, 2, 10, 0, -4, 3, + -3, 0, 0, 3, -4, 6, -4, -8, 2, 1, 3, -14, 1, -1, -2, 0, + 0, -5, -1, 2, -6, -1, 3, 0, -5, -3, 3, 1, 6, -2, 0, 6, + 2, -7, 1, 3, -5, 5, 8, 0, -1, 1, -4, -6, -2, 6, 4, -4, + -1, 1, -10, 0, -4, 0, -3, 2, 0, -8, 3, -3, 0, 2, -1, 1, + -8, -1, -1, -3, -1, 4, 1, 6, 1, 0, 0, -2, 0, -2, 7, -4, + 3, -1, 2, 0, -2, -2, -8, 3, 2, -1, -4, 3, 0, -3, -5, 2, + -3, -3, -2, 5, 2, 1, 1, -4, 1, -1, 4, 6, -4, 0, -6, -4, + 1, 3, 3, -1, -2, -7, -1, -3, 6, -6, 2, 1, 5, -8, -5, -1, + 2, -1, -3, -1, -1, 5, -7, 3, 3, 1, 4, -4, -3, -3, 8, 1, + -2, 4, 4, -2, -8, 2, 1, 0, 2, 0, -6, 3, -2, -8, -2, 5, + -1, -6, 0, 2, -1, -5, -2, -2, 6, 0, -5, -2, 3, 0, -5, -1, + 6, 7, 2, -8, -4, 6, 2, -6, -4, 12, 2, -5, -2, -6, 1, 1, + -3, -7, -3, 11, -3, -6, -1, 3, -2, -4, -4, 4, -3, 4, -2, -3, + 1, 7, 0, -8, 7, 1, -2, -4, -6, 13, 0, -3, 1, 2, -1, -4, + -3, 1, 3, -2, -3, -1, 0, 3, -1, -10, -1, 2, -8, -3, 3, 2, + 1, 4, -6, -2, 1, -3, -1, -4, 6, 5, -1, -5, -1, 9, -2, 0, + -4, 0, 1, -3, 4, -5, 1, 3, -4, -6, 0, 4, -2, -6, 9, -1, + -3, 2, -4, 0, 4, -7, -4, -1, 1, 4, 0, -1, 6, -2, -2, 4, + -3, -1, -6, -2, 2, 3, 1, -3, 8, -10, -10, 7, 0, -2, -1, -4, + 3, -6, 0, -5, -5, 5, 3, -6, 1, 5, 0, -1, 1, -1, 0, 0, + 0, -5, 7, -2, -1, 2, -1, 3, 0, -6, 4, -3, -2, -3, -2, 1, + 3, 3, 0, -2, -1, -9, 2, 2, -1, 4, -4, 4, -10, 7, -8, 2, + 1, -1, 0, -1, 4, 2, -7, 7, -6, -4, 3, 11, -5, -6, 1, 3, + -4, -6, 2, 2, -2, -3, -7, -4, 6, 0, 7, -13, 6, 2, -9, -2, + -5, 3, 8, 0, 0, 5, -5, -4, 3, 0, 2, 4, -7, 0, -1, 10, + -3, -6, 7, 2, -1, 0, 6, -2, -7, 4, -2, -1, -2, 1, -3, -9, + 6, 0, -4, 0, 3, 3, -11, -4, 7, -16, -2, 0, 2, 1, -2, 2, + -5, -1, 12, -6, 2, -7, 2, 6, 0, -4, -1, 1, -3, 2, -1, 0, + 7, -2, 2, -6, 2, 7, -9, -4, 8, 2, -9, -3, 8, 1, -1, 4, + 5, -11, 2, 1, -1, 0, 0, -6, -2, 2, 6, -13, 2, -3, -8, 1, + 1, 3, -2, -3, -2, -7, 4, -6, -2, 3, -10, 5, -2, 1, -3, 5, + 8, -4, -1, 2, -1, 6, 2, 3, 2, -2, 0, -1, 0, 4, 1, -1, + -2, 7, 1, -7, -5, 7, -5, 2, -5, -4, 0, 3, 3, -2, 0, -1, + -9, -4, -9, 10, 1, -14, 0, -1, 6, -8, -3, 3, -1, -6, -1, 5, + 3, -5, -1, 3, -6, 5, 7, -10, 5, 5, 2, -4, -3, 9, 4, -11, + 0, 5, -11, 7, -6, 2, 2, 12, -15, -8, 2, -3, 7, -5, 3, 3, + 1, -10, 0, -9, 17, -11, 7, -6, 2, 1, -3, 0, -1, 5, -2, -10, + -4, 16, -1, -7, -1, -3, 1, 11, -3, 1, -3, 2, -12, -2, 12, 3, + -1, -10, -2, 6, -3, 1, -1, -4, 12, -1, -2, -7, 6, -1, -1, -16, + 5, 11, -3, -7, 1, -1, -2, -6, -4, -5, 3, 4, -3, -8, -1, 3, + -5, 3, 1, 2, 6, -10, 1, 7, 0, 21, -15, 11, -12, 0, 1, 4, + 1, 4, -4, -1, 3, 7, 0, -5, 10, -15, -14, 2, 6, -11, 5, 3, + -10, -6, -1, -11, 4, -9, 6, -9, -2, 2, -8, 3, 0, 2, -9, 7, + 7, 2, 2, 0, 3, 1, 6, 0, 3, 6, -10, 6, -4, 1, 7, 9, + -1, 0, -7, 1, -11, -8, 9, 4, 0, -6, 2, -16, 0, 1, -2, -16, + 10, -7, -12, 7, 4, -1, -1, -4, 2, -1, 2, -5, 8, 3, 3, 4, + -2, 4, 3, 2, -4, -2, -1, 5, -5, -3, 9, 2, -22, 8, -6, 1, + 3, -5, -4, -6, 7, 0, 5, -8, 9, -13, 0, -6, 18, -3, -3, -1, + -6, 7, 3, -11, -9, 19, 6, -10, -6, 3, 12, -2, -18, 7, 8, -7, + -10, 14, -8, 5, 1, -15, -4, 11, -6, 9, -8, -1, 5, 1, -6, -2, + 7, -3, 7, -20, 6, 5, -4, 3, 12, -12, 11, -4, -22, 7, 9, -13, + 1, 0, -8, -1, 9, 6, -10, 5, -9, -5, 8, 5, 8, -12, -4, 16, + -14, 7, 6, -1, -16, 21, 2, -9, 13, 5, -4, -19, 2, -3, 12, -7, + -2, 3, -2, -4, -3, -8, 4, 1, -4, -4, -14, -3, -1, 1, -11, 30, + -11, -16, 8, -2, -9, 8, 8, -1, -1, -5, 10, -4, 1, 4, 3, -8, + -1, 23, -2, -2, 14, -15, -7, 7, -7, 0, 9, -12, 8, -10, 0, -3, + 16, -13, -11, 5, -1, -10, -2, 6, -5, -4, -9, 10, -6, 7, 1, -13, + 2, 14, -9, -3, 2, 6, 4, 8, -8, -2, 0, 2, -3, 14, 3, -10, + -4, -8, -1, 10, -13, -8, 15, -9, -3, -2, 5, -5, -6, -9, 9, 7, + -4, 14, -7, -18, 12, 1, 2, 1, 4, -2, -6, -3, -2, 5, 7, -2, + 0, 0, -4, 0, -6, 1, 5, -5, -4, 5, -6, 5, -4, -8, 15, -5, + -6, 0, 3, -8, 0, 3, 0, -1, 0, -4, 6, -16, 22, -7, 3, -5, + 2, 2, 1, -3, 4, -8, 4, 4, 0, -5, -9, 4, -5, -4, 3, 2, + 1, 3, -4, 6, -15, -1, 4, 1, -9, 3, 1, -8, 3, -6, 11, -5, + 6, -11, 17, -15, -2, -19, -11, 1, -4, 8, 0, 5, 18, -11, 0, 13, + -4, 6, -13, 4, -11, -1, -7, -7, 11, 10, -9, 17, -11, 20, -6, 7, + -14, 23, -7, -2, -2, 7, -10, 2, 0, 2, 5, 6, -8, 5, -4, -10, + 9, -4, 6, 0, -7, 8, -7, 1, -20, -4, -1, -3, 6, -10, -6, -15, + -11, 10, -5, 19, 3, 1, -19, -11, -1, -9, 9, 22, 24, 10, -5, -18, + -8, -23, 14, 11, 0, 31, 43, -9, 0, -7, -15, -28, -35, -30, 3, 5, + -5, 11, 52, 55, 7, -5, -10, -12, -25, -43, -12, 4, -37, -47, -21, -5, + 4, -11, 1, 31, 27, 34, 46, 48, 61, 10, 16, 8, 7, -14, -40, -47, + -36, -51, -42, -15, 4, 12, -32, -42, -10, -4, 10, 1, 15, 50, 31, 5, + 15, 38, 37, 29, 15, 22, 11, -4, -35, 10, 3, -18, 1, -14, -33, -5, + -47, -25, -13, -2, 15, -6, 5, -29, -17, -19, -1, 3, 7, 2, 17, 28, + -8, -23, 7, 7, 36, 15, 2, 1, -2, -9, 1, 6, 20, 6, 14, -3, + 21, -11, -12, -35, 11, -20, -18, -36, -23, -27, -19, 1, 10, 14, 27, 6, + 44, 14, -9, 3, 20, 27, 45, -8, -13, 16, -16, 24, -10, -9, -3, -38, + -19, -14, -38, -38, -41, 13, 40, -37, 5, -7, -7, -4, 4, -31, 32, 22, + 15, 9, 13, 10, 10, -17, 22, 30, 9, -6, 27, 66, 47, -17, -21, -20, + -9, -36, -73, -3, 22, -35, -12, 6, 7, 4, -17, -45, 22, 17, -17, 3, + -9, -4, 11, -10, 13, -4, 8, 38, 3, 20, 42, -22, 9, 23, -28, -21, + 3, 10, 1, 26, -28, -18, -9, 7, -30, -41, -24, -9, 10, -6, 31, -5, + 2, 29, -9, 1, -27, -24, 7, -19, -5, 10, -13, 21, 21, 3, 30, -11, + -17, 34, -11, 8, 7, -8, 1, 11, -1, 7, -13, 1, -3, 23, -12, 8, + -19, -3, 20, -78, 42, -23, 4, -29, -16, -5, 38, -49, 30, -26, 26, 16, + 8, -33, 53, 19, -20, 12, 5, 23, -11, 4, -6, 42, -111, 67, -40, 29, + -32, -20, -77, 113, -46, -12, 8, -5, -14, 35, -52, 94, -5, -61, 58, -36, + 41, -83, 21, -19, 61, -68, 37, -37, 12, 66, -69, -16, 100, -88, 48, 21, + -39, 73, -24, -2, 45, 65, -59, 53, -103, 95, -97, 1, -14, -4, -41, 9, + -13, -18, 16, -26, 9, 26, -15, 25, -16, 6, 8, 26, -52, 35, -21, 4, + -2, -11, -4, 22, 0, 21, -40, 65, -6, -13, -11, -7, 32, -46, -48, 16, + -26, -3, 0, -42, 87, -68, 34, 17, -14, 43, 23, -15, 30, 20, 47, -19, + -33, -12, 15, 1, -37, 15, -12, -11, -7, 15, -75, 36, -41, 27, -8, -7, + -12, 10, -4, 49, -6, 42, -32, 4, 20, 33, -65, 24, -52, 10, 13, -17, + -15, 60, -14, -55, 35, -16, 50, -83, -3, 29, 58, -75, 71, -46, 47, -32, + 44, -57, 10, -43, 33, 22, -48, 51, -41, 6, 7, 39, -3, -41, 7, -9, + 37, -66, 22, 26, -13, 74, -87, 127, -39, -16, -29, -11, -8, -57, -15, -45, + 52, -74, -5, -2, 103, -126, 85, 20, 28, -7, 53, -38, 58, -10, -11, 33, + -70, 20, 1, 40, -36, 26, -58, 58, -23, 61, -71, -7, -39, 43, 22, -18, + -1, -61, 90, -37, 35, -58, 30, -62, 27, -45, 47, -59, -6, -35, 70, -49, + 9, -30, 92, -15, 21, 1, 26, 6, -19, 90, -43, 49, -46, 10, 6, 15, + -90, 67, -51, -11, 4, 28, -36, 24, 41, -68, 24, -34, 63, -40, 17, -30, + 18, -39, 14, -38, 15, 9, -54, 54, -20, 36, -21, -14, -13, 11, 23, 11, + -54, 56, -25, 37, -46, 49, -74, 81, -40, 51, -44, 57, -69, 51, -50, 61, + 27, -112, 111, -114, 106, -85, 49, -61, 75, -18, 26, -68, 32, -15, -25, 21, + -15, 38, -46, 80, -119, 126, -85, 41, -40, 77, -65, 28, -6, -39, 45, -87, + 39, -63, 81, -32, 4, -32, 44, -25, 42, -12, -15, 21, -1, -56, 21, 23, + -30, 33, -28, -3, 32, 4, -36, 60, -20, 13, -3, 22, -43, 101, -88, 59, + -53, 18, 8, 22, -33, -52, 34, -32, 35, -90, 112, -107, 56, -59, 43, -60, + -18, -4, -21, 45, 11, -48, 11, 38, -27, 58, -49, 65, 19, 54, -38, 35, + -37, 24, -11, 44, -62, 41, -16, -48, -8, 31, -68, 17, -3, -5, 52, -51, + -10, 16, -26, 18, -29, 56, -41, 3, 5, -10, -37, 61, -14, -10, -9, 20, + -8, 8, -2, -16, 44, -17, 14, -33, 30, -2, -27, 16, 3, 0, 51, -42, + 32, -20, 8, -11, -24, 10, 12, -15, 6, -32, 10, 21, -38, -11, -12, 23, + 13, -64, 19, 34, -23, -23, 16, 10, 39, 2, -36, 55, -31, 0, -29, 18, + 8, 12, -61, 73, -28, 54, -34, 21, 9, 7, 53, -34, -29, 19, -7, -44, + 7, 15, -16, -18, -31, 10, -29, 36, -69, 7, 4, 33, -72, 45, 14, 0, + -8, 35, -13, 26, 16, -28, -3, -32, 45, -4, 8, -20, 65, -24, 2, -24, + 40, -16, -16, 20, 8, 2, -3, -2, 23, -15, -11, -30, 19, -51, -19, -5, + -36, 18, 24, -4, -1, 46, -90, 60, 4, 23, -17, 16, 60, -24, 0, 18, + 0, 5, -6, -24, 27, -34, -28, -7, -4, 22, -30, -11, -3, -1, -44, 36, + -38, -6, -9, 55, -34, 16, 27, 28, -65, 62, 22, -32, 36, 7, 2, 27, + -19, 50, -71, 44, -19, -67, 13, -3, -14, -30, 33, 5, -12, -48, 60, -47, + -28, 9, -6, 24, -11, -1, 13, 62, -53, 26, 7, -9, 6, 58, -38, -10, + 0, 5, -23, 23, 8, -14, -19, 21, -9, 35, -17, -28, 14, 27, -17, -14, + -29, 24, 6, -85, 74, -16, -18, -2, -19, 47, -29, -18, -15, 52, 0, 7, + -10, -23, 45, 13, -11, 12, -28, 27, -26, 19, -69, 74, -55, 35, -21, 41, + -24, -11, 39, -19, 7, 0, 7, -31, 10, 7, -45, -17, 25, -12, 9, -19, + 3, 28, -53, 76, -19, -25, 49, -2, 6, -11, 24, -12, -23, 17, -1, -15, + -10, -36, 26, -25, 0, -44, 59, -67, 45, -31, 5, 15, 56, -12, -14, 12, + 10, 24, -52, 37, 5, -35, 52, 23, -55, -6, 24, -49, 26, 31, -24, 10, + -33, 33, -11, 1, -49, 8, 7, 6, -78, 12, -22, 10, -11, 13, 13, -18, + 38, 50, -18, -5, 64, -52, 59, 33, 3, -9, -6, -6, 26, -64, 18, -38, + -47, 18, -33, 4, -39, 40, -31, -1, -23, 48, -30, 18, 17, 32, -20, 32, + 19, 24, -58, 49, -38, -9, 15, -28, 16, -3, -2, -28, 33, -22, 23, -1, + -34, 33, -48, 67, -55, 21, 51, -66, -2, 21, -5, -17, 24, -63, 53, 8, + -19, 9, -11, 36, -37, -35, 43, -35, -3, -44, 68, -43, 53, -24, -5, 45, + -16, -7, 14, 49, 3, -16, 22, -10, 2, -28, -9, -6, -5, 32, -76, -22, + 35, -26, -35, -12, 0, 3, 13, 6, 36, 7, -32, 69, -15, 45, -20, -21, + 35, 35, 1, -25, 11, 34, -24, -33, -9, 5, -25, -49, 31, -41, 15, -42, + 25, -30, 42, -80, 32, 2, -18, 33, -12, -9, 43, -1, 4, -12, 54, -51, + 22, -1, 18, 28, -29, 18, 7, 10, -19, 8, -1, 12, -21, -6, -11, 4, + 4, -28, -8, 22, -27, -5, 9, -25, 20, -19, -36, 41, -8, 20, -32, 16, + -29, 29, -13, 13, 4, 1, 17, 8, 0, 9, 22, -1, -3, 28, -11, -39, + 36, -31, 5, -11, -27, 22, -39, 7, 15, -24, 19, 8, -37, 75, -52, 54, + -65, 22, -13, 23, -26, 32, -19, 10, -8, -3, 12, 16, -44, 25, -23, 14, + 9, -46, 20, 2, -4, -8, -6, 18, 4, -2, -3, -15, 4, 16, -9, -5, + 34, -29, 27, -54, 98, -65, 11, -18, 16, -13, 0, -2, 0, 22, -43, 31, + -46, 58, 2, -25, -2, 16, -2, -29, 17, 18, -26, 21, -17, 5, -4, -9, + 0, -34, 50, -27, -3, 4, 31, -3, -47, 32, -25, 36, 6, -47, 33, -28, + 39, -36, 42, -28, 5, -3, -2, 25, 27, -47, 20, 22, -5, -15, 1, -9, + 16, -25, -10, -43, 40, -12, -19, 22, -24, -5, 14, -44, 42, -32, 32, -45, + 40, 41, -17, 27, -44, 38, -16, 15, -36, 39, -13, -19, -4, 34, 1, -9, + 9, -16, -2, -29, 31, -31, -4, 35, -21, -52, 63, -41, 2, -7, 30, -35, + 13, 9, 15, -4, 14, -36, 18, -14, 55, -50, -6, 22, -23, -11, -5, 12, + 17, -13, -43, 44, -33, 41, -42, 45, 3, -12, 26, 11, -11, 35, -76, 39, + 2, 0, 3, -4, 15, -19, -6, -33, 11, 5, 16, -25, -2, 19, -7, -43, + 30, 20, -27, -18, 12, 14, 33, -50, 14, -15, 23, 8, 2, -10, -4, 53, + -86, 24, -9, 41, -34, -21, 22, 24, -54, 27, 13, 2, -9, 14, -29, 21, + 40, -43, -9, -3, 27, -3, -22, 18, 10, -23, -15, 1, 14, -12, 3, -30, + 30, -22, -28, 36, -15, 39, -57, 21, 3, -3, 33, -13, -2, 6, 20, -6, + 4, -13, -5, -18, 13, -7, 7, 26, -26, 16, 7, -64, 37, -7, 10, -20, + 12, -11, 7, -34, 37, -12, -24, 34, -18, -18, 39, 9, -42, -24, 43, 2, + -16, 25, 12, -16, 8, 12, -44, 32, -9, 23, 1, -37, 40, -23, -17, 18, + -42, 23, -12, -7, 10, -6, 6, -13, -13, 30, -23, 36, -4, 7, 17, -18, + 18, -3, 8, 5, -1, -13, -15, 2, -5, -16, 7, -52, 23, -38, 30, -30, + 16, -26, 21, -22, 24, 3, 20, -28, 22, 22, -31, 42, -16, -11, 32, -26, + 0, 31, -14, 11, -15, 14, -17, -9, 10, 11, 27, -38, -4, 14, -18, 36, + -44, 0, -11, 16, -14, -2, 16, -34, -23, 22, 4, -24, 14, -13, 16, 31, + -28, -10, -6, 51, -27, 13, -49, 3, 68, -38, 1, 8, -27, 26, -16, 0, + 15, -36, 7, -6, 38, -11, 0, -14, 10, -4, 22, -48, 31, -1, 23, -38, + 1, 15, -7, 10, -1, -3, 4, -1, 10, -2, -12, 3, -22, 5, 9, 8, + 4, -14, 12, -3, -7, 22, -20, 3, -6, 13, -15, -8, -7, 16, -14, -1, + -3, 6, -17, 12, 22, -44, 68, -67, 50, 13, -20, -11, -4, -20, -3, 22, + -13, -20, 28, -7, 2, 11, -9, -23, 5, 5, -26, 24, -31, 2, 20, 15, + 2, -7, 4, 19, -6, 41, -51, -3, 24, 27, -30, 25, -37, 1, -7, -2, + -4, -26, -1, 12, 5, -12, 9, -30, 5, 11, 26, -18, -32, 42, 7, 0, + -23, 10, 10, -20, 53, -49, 6, -39, 18, 3, -27, 41, -21, 16, 28, 14, + -24, -15, 19, 5, 16, -31, -1, 45, -25, -6, -16, -4, -19, 37, -47, 21, + 2, -14, -7, 30, -35, 13, -30, 14, 21, 11, -18, -28, 37, 12, -18, 9, + 5, -1, 33, -41, 3, -7, -19, 8, -14, 12, 15, -18, -4, 44, -25, 22, + -46, 19, 40, -25, -12, -5, 17, 7, -53, 25, 4, -10, 14, 16, -31, 40, + -27, -11, -4, 28, -40, -5, -9, -3, 34, -47, 33, -5, 11, -33, 33, 0, + -14, 35, -18, -27, 11, 14, -37, 35, -20, 7, 15, 2, 27, -17, 15, -31, + -1, 11, -27, 24, -26, 14, 13, -35, 20, -13, -2, 16, 16, -6, 2, 15, + -7, -22, 51, -36, -2, 20, -19, 23, -20, -19, -9, -14, 8, -4, -13, 35, + -66, 36, -37, 3, 19, -1, 15, 32, -45, 71, -15, -5, 12, 34, -33, 24, + -5, 20, -43, 42, -59, 13, -12, -69, 66, -29, -34, 17, 7, -28, 24, 5, + -27, 51, -40, -9, 46, 3, -17, 36, -56, 63, -7, -31, -19, 53, -12, -10, + 4, 19, -47, 35, 0, -40, 17, -14, 13, -11, 11, 3, -39, 22, 5, 21, + -19, -11, 25, -4, -5, 20, -13, 25, -6, -16, -16, 29, -61, 25, -33, 12, + -17, 7, -19, 34, -27, 15, -19, 32, -26, 54, -46, 6, 9, 14, -6, -6, + 23, -32, 58, -19, -5, 15, 46, -42, 39, -7, -23, -7, -14, -22, 42, -66, + 0, 4, -8, -11, -4, -3, -7, 7, -23, 30, -14, 19, 8, -9, 20, 36, + 5, -24, 25, 12, -20, 16, -53, 60, -49, -26, 24, -87, 67, -49, 13, -7, + 5, -14, 5, 11, 38, -3, -15, 27, 26, -36, 20, 30, -47, 29, -5, 9, + -10, 38, -65, 47, -49, -4, -10, -6, 1, -1, -28, 16, -14, 3, -14, 27, + -8, 1, 2, 23, 21, -53, 40, 24, -16, -12, -2, 11, 17, -8, -18, 8, + -25, 28, -10, -12, 13, -51, 10, 35, -10, -8, -9, 8, 10, 14, -20, 4, + -9, 37, -5, -2, 2, 4, -9, -5, 16, -16, -23, 13, 7, -9, 14, -49, + 13, 8, -3, -13, -9, 22, -8, 12, -13, 36, -36, 35, -17, 23, -12, 0, + -37, 50, -31, -8, -31, 43, -4, -11, 0, 3, -7, -19, 16, -16, -28, 46, + -28, 27, -13, 33, -21, -1, 39, -13, 3, -4, 4, -39, 74, -30, -17, 33, + -3, -20, -12, 24, -94, 75, -63, 54, -62, 23, 4, 12, -33, 22, -35, 16, + 12, -28, 34, 2, -12, -3, 22, 23, -31, -6, 26, 4, -41, 8, 37, -15, + 21, -7, 18, -51, 42, -27, 35, -45, 35, -30, 18, 9, -20, 1, 18, -12, + -51, 61, -61, 24, -20, 1, 11, -5, -2, -12, 11, 20, -35, -2, 37, -21, + 23, -15, -2, 19, -51, 82, -50, 20, 29, -26, -34, 49, -2, -16, 11, -17, + -4, 6, 15, -35, 13, -15, -10, -17, 15, 4, -42, 43, -31, 34, -30, 53, + -43, 40, -22, 9, 9, -24, 64, -41, 29, -17, 8, -15, 8, 2, -27, 7, + 10, -28, 0, 30, -50, 6, -13, -14, -21, 11, 9, 13, -47, 35, -11, 32, + 28, -28, 1, 32, 2, -19, 28, -24, 9, 0, 19, -6, 16, -33, 6, -23, + 33, -31, -1, -4, 26, -22, -22, -10, -11, 18, -26, 19, -8, -4, 21, -14, + 36, -2, 12, -48, 49, -1, -13, -5, 8, -3, 9, -4, -18, 15, 28, -50, + 10, 4, -7, 4, -39, 37, -39, 11, 2, -20, 13, 4, -6, 0, 35, -17, + -9, 6, 38, -21, -1, -1, 12, -2, -16, 15, 7, -22, 18, -23, 11, 3, + -9, -39, 29, -31, 44, -41, 0, 5, 21, -9, -25, 25, -6, 38, -55, 38, + -14, 6, -26, 38, -24, 39, -39, -15, 17, 16, -20, -27, 17, 24, -20, -20, + 33, 8, -31, 2, 2, 27, 11, -4, -7, 31, -20, -9, 4, -4, 17, -32, + 2, -18, 31, -35, 38, -52, 42, -1, -28, -26, 25, 3, -51, 42, -35, 35, + -39, 44, -38, 20, 20, -51, 34, 45, -10, -7, 27, -19, 33, -49, 22, 2, + -7, -5, -27, 59, -24, -20, 21, -8, -15, 24, -51, 3, 9, -23, 24, -30, + 2, 29, -26, -2, 4, 10, 0, -18, 50, 3, 9, -14, 17, -18, 24, -13, + -33, 7, 25, -50, 2, -2, 30, -58, 31, -8, 23, -11, -1, -24, 21, 1, + -41, 47, -30, 28, -39, 56, -16, -20, 51, -45, 33, 6, 23, -12, -19, -2, + 7, 1, -14, -5, -11, -20, 25, -17, 7, -22, 21, -19, 34, -47, -2, 1, + 33, -30, 14, 20, 6, -9, 17, 13, -22, 19, -58, 23, 26, -15, -52, 2, + 18, 10, -13, 46, -5, -8, -6, 4, -14, 5, 11, -13, -7, 42, -25, 8, + -37, 35, -10, 6, -25, 16, 15, -15, -9, -20, 18, -23, 26, -34, 35, -22, + -10, 9, 14, -6, -21, 27, -8, 4, 1, 3, -19, 28, 2, -7, 30, -8, + -13, 11, -9, -9, -19, 12, 0, -23, -1, -23, -6, 27, -31, 41, -28, 13, + 5, 9, -21, 6, 2, -2, 18, -16, 31, -25, 40, -38, 39, -13, 8, 14, + -3, 9, -30, 6, -12, -7, -15, 30, -64, 6, -22, 13, -8, 14, -40, 9, + 32, -35, 14, -1, 12, -25, 63, -25, 35, -2, 19, -5, -3, 20, -29, -1, + 35, -37, 53, -46, 4, -14, 22, -27, 23, -64, 8, 5, -25, 41, -18, 14, + -42, 53, -56, 35, -42, 71, -63, 45, -38, 29, -12, 33, -22, 0, 24, -13, + 3, 13, 1, -10, -19, 11, 19, -38, 5, -2, -18, -21, 33, -54, 41, 9, + 4, -1, -21, 3, 3, 37, -31, 34, -40, 34, -19, 30, -26, 23, -53, 55, + -8, -13, -16, 7, -13, 46, -38, 2, -3, 17, -1, -26, 18, -57, 68, -27, + 23, -19, 32, -39, 2, 2, -18, 12, -16, 4, -23, 38, -65, 40, -5, 13, + 19, -26, -13, 60, -25, 7, 1, 10, 22, -24, 23, -20, -16, -17, 14, -32, + 26, -4, 17, -15, 9, -29, 4, -29, 11, 36, -18, -19, -2, 5, 28, -23, + 31, 6, 4, 18, -14, 4, -7, 0, -45, 61, -31, 5, -15, -23, -21, 52, + -62, 4, 22, 1, -9, 15, -24, -27, 60, -49, 38, 0, -6, 1, 13, 7, + 4, 19, 6, 0, 27, -28, -14, -21, 17, -1, -30, 23, 10, -36, 18, -19, + 2, -18, 0, 6, -1, 7, -1, -37, 26, 15, -35, 41, -24, 10, 10, -9, + -12, 12, 7, 3, 10, -11, 11, -14, 27, -49, 71, -55, 25, 8, -11, 11, + -5, -22, 7, 15, -17, -11, 18, 4, -54, 43, -38, 27, -1, 7, -13, 19, + 10, -41, 50, -41, 13, 9, 10, -41, 38, -13, 13, -2, -2, -4, 9, -36, + -5, 22, -31, -18, 8, 21, -22, 21, -24, 12, 3, 16, -24, 25, -16, 22, + -35, 14, 3, 11, 12, -22, 40, -11, -25, 14, 0, 14, -2, 2, -10, -12, + 14, -51, 11, -21, 55, -27, 9, 3, 38, 7, -25, 5, -19, 6, -14, 0, + -10, 21, -57, 35, 18, -21, 21, -40, -13, 24, -24, -12, 10, -1, 11, 10, + -12, -5, 38, -45, 23, 26, -13, -9, 32, 6, -3, 30, -28, -28, 27, 3, + -10, -11, -10, 16, -28, 21, -12, -3, -1, -33, 14, -30, 12, -20, 40, -15, + 7, 19, -18, -1, -1, 9, 4, -23, 32, 17, -19, 12, 16, -45, 4, -6, + 18, -28, 36, -44, 44, -29, 10, 4, 14, -8, -13, 9, -30, 39, -17, -5, + 10, -10, 5, -1, -16, 17, -7, -9, -10, 15, -21, 9, 10, 8, -10, -6, + 3, -21, 34, -3, 6, -4, 15, 3, -2, 4, 26, -44, 30, -43, 2, 9, + -5, -7, -18, 16, -28, 0, 5, -7, 0, 7, 0, -7, 21, -14, 17, 15, + 2, -40, 7, 44, -30, 55, -33, -19, 40, -30, 17, -1, -20, -20, -20, 5, + 14, 1, -7, -32, 26, -11, -11, 24, -23, 17, 17, 8, -19, 18, 11, -6, + 17, -4, -13, 14, -9, 21, 9, -16, -8, 2, -16, 3, -9, -32, 6, -36, + -4, 0, 10, -36, 26, -11, 3, 31, -20, 1, 7, 4, 45, -35, 39, 0, + 4, 28, -21, 29, -39, 27, 15, -6, -14, 17, -25, -33, 16, -15, 18, -43, + 28, -61, 33, 1, -27, 13, -19, -20, 26, 11, -27, 16, -21, 33, -13, 43, + -44, 13, 24, -10, 35, -39, 36, 20, -39, 68, -68, 23, -16, -7, 0, 36, + -30, -13, -27, 42, -21, -4, -23, -2, 23, 0, -3, -3, 2, 4, -15, -5, + 28, -10, -20, 24, -7, 27, -58, 31, -7, -29, 39, -40, 41, -35, 8, -25, + 30, 31, -17, -9, 3, 36, -8, -18, -11, 29, -2, 6, -25, 21, -5, -8, + -17, -24, 20, -26, 20, -23, 46, -26, -13, 8, 13, 2, -15, 4, -9, 28, + -25, -19, 49, 18, -50, 45, -11, -17, 5, -61, 15, 4, -22, -1, 22, 23, + 33, -55, 46, -25, 37, 18, 2, -9, 11, -47, 23, -8, -25, 37, -32, 2, + 5, 12, -18, -5, 19, -27, -7, 20, -40, 32, -44, -21, -29, 58, 8, -9, + 57, -28, 29, -32, 14, -14, 4, 23, -33, 16, -4, -16, 21, 38, -37, 23, + 10, -32, 17, 17, -12, -59, 9, -3, -12, 22, -13, -8, -26, 16, 1, 33, + -9, -17, 16, -7, 21, -44, 26, 5, 35, -36, -1, 13, 36, -36, 39, -36, + 17, -13, 2, -33, 20, -13, -51, -2, 9, -2, 35, -21, 19, -20, 18, -19, + -5, 30, -39, 30, 22, -35, 74, -52, 33, -15, 17, -21, -13, 11, 6, -25, + 25, -31, 29, -18, 18, -52, 40, -11, -17, -26, 56, -56, 69, -53, -14, 32, + -10, -8, -2, 18, -14, 20, -18, 20, 22, -27, 0, -25, 56, -46, 16, -28, + 52, -5, -33, 76, -75, 36, -1, -42, 42, -46, 13, -13, 25, -7, 35, -55, + 5, 63, -56, 11, -24, 13, -8, -10, -27, 15, -15, 44, -66, 52, -3, -6, + 0, 23, -33, 79, -55, 30, -27, 37, -18, -6, -2, -19, 52, -22, -50, 60, + -32, 28, -56, 44, -28, 15, -37, -9, -28, 63, -75, 9, 39, 28, -21, 5, + -17, 15, 2, -13, 30, 13, -14, 10, -12, 30, -22, -10, 4, -8, -9, 14, + 6, -39, 34, -6, 4, 1, -5, 0, 33, -73, 34, -12, 23, -9, 53, -47, + 17, 3, -18, -6, 2, -19, -12, -7, -45, 72, -9, -71, 55, -58, 50, -18, + -36, 37, 19, -11, 13, -35, 32, 6, 5, 18, -6, 19, -26, 32, 16, 20, + -43, 20, -10, -7, 16, -7, -68, 21, -36, 7, 19, -22, 19, -3, -35, -37, + 25, 21, -57, 67, -9, 9, 32, -11, 28, -18, 35, -41, 60, -19, 29, 0, + -38, 29, -6, -35, 0, 25, -37, -1, -31, -42, 30, -19, -21, 36, -66, 53, + -33, 15, 16, -13, 20, -35, 73, -4, 18, 39, 4, 1, 3, 21, -2, -12, + -18, -51, 44, -17, -50, 48, -30, -16, -13, -35, -7, 25, -33, -14, 14, 0, + 8, -30, 45, -13, 50, -53, 28, 60, -33, 23, -7, -2, 15, 36, -11, 9, + 19, -44, 4, -21, 19, -5, -27, -45, 48, 9, -47, -23, 12, 3, -25, -8, + -21, 63, 1, -29, 31, -18, 19, 16, -24, -17, 50, -65, 65, -56, 93, -45, + -17, -25, 45, -18, 23, -53, 50, -15, -12, -39, 51, -11, 11, 13, -31, 54, + -14, -29, 22, -11, 10, -41, -19, 52, 10, -51, -60, 72, -13, 12, -38, 19, + -2, 31, -56, 37, -4, -10, 22, -14, -33, 48, -40, 38, -14, 27, -24, 19, + 29, 17, -31, -2, -41, 34, -17, 2, 5, 5, -13, -30, 14, 9, -9, 7, + -11, 15, 5, -28, -2, 0, 45, -30, -25, 1, 10, 29, -55, -24, 52, -5, + 5, 20, -25, 20, -15, 14, -64, 95, -53, 32, 13, -26, 31, -8, -27, 18, + 48, -57, -3, -10, 25, -24, -32, -9, 18, 18, -33, -15, 27, -22, 14, -5, + 10, 51, -21, -25, 19, 5, -15, -29, 16, 1, 33, -39, -12, 56, 14, -63, + 36, -2, -17, 52, -11, -37, 5, 19, -52, 38, -23, -60, 93, -75, 52, -30, + -2, -11, 49, -11, -25, 1, 42, -35, 26, -35, -9, 24, -1, 10, -6, -12, + 7, 4, 22, -10, 41, -25, -8, -4, -2, 28, -43, 19, -32, 4, -27, 9, + -47, 51, -16, 12, -52, 49, 8, 7, -37, 27, -33, 80, -44, 6, 5, 28, + -15, 16, 15, 2, -12, 50, -77, 38, -38, -45, 30, 8, -37, -13, -8, -18, + 50, 3, -54, 29, 29, -20, 4, 52, -57, 62, -52, -2, -9, 62, -64, -5, + 24, 23, 0, -7, -23, 48, 25, -78, -9, 38, 18, -46, 30, -51, 39, 4, + -48, 22, 15, 13, -39, 8, 10, 31, -20, -22, 21, -17, 17, -23, 22, 22, + -24, -36, 11, 31, -16, -28, 34, -4, 0, -20, 6, -2, 35, -13, -60, 36, + 24, -45, 21, -2, 36, 0, -73, 66, -37, 39, -66, -18, 22, 17, -17, -25, + 24, 36, -47, 3, 25, 7, 8, 0, 1, 14, 20, -21, 4, 21, 12, -77, + 17, -4, -12, 31, -57, 38, -11, -4, -31, -6, 29, -34, 11, 13, -20, 82, + -36, -36, 40, -28, 77, -68, 12, 2, 34, -23, 5, -31, 11, -5, 44, -105, + 79, -31, -29, -16, 37, 8, 18, -14, -9, 32, -10, -11, -7, 0, 41, 34, + -56, 7, 13, -2, -31, 33, -67, 42, -31, -2, 22, -49, 18, -34, -11, 38, + -40, 56, -16, 14, -2, 24, 0, 0, 41, -21, -8, 6, -11, 11, 11, -45, + 26, 4, -17, -7, -26, -30, 7, -21, -29, 56, -29, 37, -3, 2, -8, -3, + 22, 11, 40, -13, 58, -6, -38, 48, -23, 15, -52, -14, -6, 49, -66, -20, + -11, 34, -32, -44, 41, 4, 20, -59, -24, 77, 23, -24, -17, 42, 19, -3, + -19, -34, 54, 17, -22, -17, 46, -24, -9, 3, -22, 40, -47, -49, 72, 4, + -18, -48, -33, 55, -4, -41, -51, 105, -26, -3, -22, 64, 28, -51, 31, 2, + 15, 27, -62, 18, 21, 6, -15, -54, 52, -14, -46, 7, -30, 32, -1, 6, + -37, 39, -3, -23, -20, 24, 23, 17, -25, -6, 67, -36, -11, -37, 56, -79, + 3, 30, 45, -39, -17, -2, 21, 2, -4, -3, 3, 1, 16, -16, 9, 30, + -37, 8, -6, 46, -65, 3, 14, -59, 104, -60, 2, 46, -29, -30, -2, -10, + 24, -52, 63, -31, 81, -85, 18, 35, 16, -32, -18, -24, 45, -16, -15, -13, + 37, -15, -20, -42, 91, -45, -15, -9, -16, 64, -11, -23, 31, -18, 38, -42, + 3, 12, 1, 5, -5, 22, -44, 69, -31, -18, 15, 21, -64, -13, 34, -37, + 30, -26, -15, 6, -3, 44, -28, 11, -3, -1, 16, -18, 25, -14, -26, 69, + -56, -5, 31, -51, 24, 3, -36, 9, 52, -34, 31, 21, -11, -68, 31, -24, + 53, -25, -29, 31, 23, -20, 9, -15, -11, 19, 12, -47, 84, -60, -16, -11, + 17, -4, -15, 30, -45, 32, 34, -63, -7, 68, 0, -35, 17, 7, 33, -31, + -8, 7, -32, 43, -13, -18, 15, 31, -32, -34, 5, 8, -16, 20, -26, -29, + 32, -9, -20, 17, 33, -31, -13, -5, 86, -52, 23, -19, 2, 13, 14, -7, + -20, 36, -16, -3, 8, 0, 14, -69, 76, -77, 25, -14, -17, 3, 39, -14, + -46, 31, -2, -7, 37, -45, -6, 24, 28, -37, 22, 13, -35, 4, 8, 23, + 7, -43, 53, -59, 23, 16, 4, -25, -15, 23, -9, -20, 26, -18, -1, 25, + -3, -48, 53, 2, -43, 7, 14, -34, 15, 28, -33, 53, -2, -59, 31, -34, + 40, 19, -27, 20, -2, 8, 2, 3, -8, -8, 4, -57, 62, 24, -72, -4, + 17, -17, -3, -10, -26, 42, -30, 12, -29, 31, -10, 3, 24, 2, 21, -1, + -36, 52, -7, 21, 14, -32, -18, 73, -45, -6, 8, -12, -66, 21, 25, -17, + -6, -35, -14, 27, 26, -47, 40, -51, 56, -19, -24, 31, 6, 4, 11, -3, + 37, -47, 41, -32, 50, 0, -72, 25, 16, -19, -1, -2, -4, -41, 20, 6, + 9, -3, -44, 32, -54, 83, -30, -26, -8, 46, -47, 29, 5, -19, 37, -9, + -20, 65, -14, -21, -4, 10, 28, -28, 18, -29, 35, -25, 3, -17, -31, 4, + -4, 0, -9, 41, -42, -34, 40, -15, 8, -24, -8, 36, 22, -18, -27, 70, + -39, 39, 1, -5, 57, -54, 12, 36, 3, -13, -1, -32, 69, 6, -64, -50, + 13, -13, -34, 22, -13, 0, -10, -38, 41, -11, -22, -3, 11, 4, 38, 22, + -10, 24, 32, -23, 23, -6, 8, -4, 21, -61, 66, -35, -41, 7, 5, -29, + -19, -45, 23, -2, 46, -84, 78, -59, 40, -10, -18, 79, -35, -5, -1, 36, + 16, 13, -21, -31, 52, 2, -50, 34, -5, -36, -37, 65, -42, 1, 16, -42, + 35, -8, -50, -6, 41, -16, 27, -41, 22, 64, -50, -11, 31, -18, -17, 5, + -3, 34, 34, -40, -41, 66, -37, 20, -11, -20, 29, -5, -14, -15, 45, -33, + -37, -11, 36, -25, 18, -8, 20, 1, -23, 60, -32, 0, 34, -24, -32, 64, + -39, -35, 48, -7, -13, 4, -39, 32, 0, 1, -31, 2, -12, 43, -38, -8, + 26, 0, -57, 53, 19, -22, -10, 17, -30, 57, 6, -31, 33, 10, 0, -48, + 29, -4, -23, 6, -7, 31, -39, 15, -41, 38, -19, 5, -37, 23, 11, -28, + -14, 59, -48, 8, 22, -20, 50, 15, -34, -26, 67, -8, -15, -21, 53, -27, + -9, 13, -24, -35, -10, 9, -15, -13, 18, -38, 28, 22, -14, 2, -22, 42, + -20, 22, 12, -20, 45, -16, 17, -16, 22, 34, -27, -13, -7, 1, -21, -1, + 13, -44, 36, -51, -8, 16, -7, -30, -46, 90, -54, 35, 1, 11, 9, 5, + 1, -19, 20, 11, 21, -1, -49, 41, -6, 0, 37, -74, 9, 20, -12, -47, + 65, -68, 28, -5, -26, 15, 14, -3, -23, 8, 18, -22, 13, 3, 31, -21, + -5, 8, 24, -21, 48, -20, -21, 41, -43, 4, 18, 21, -60, 9, -27, 1, + 13, -15, -33, 15, 23, -48, -8, 53, -50, 1, 6, -40, 90, -10, -15, 51, + -52, 53, 29, -68, 50, 52, -30, -21, 7, -1, -8, -29, 11, -47, 6, 18, + -12, -25, 53, -34, -23, -6, 19, -7, -13, 7, 5, -2, 14, 11, -15, 51, + -29, 6, 12, 20, -27, 29, -12, 4, -18, -5, 2, -17, 10, -19, 2, -8, + -5, 56, -82, 49, 0, -42, 48, -25, 19, 6, -41, 17, 35, -18, -17, -29, + 26, 10, 4, -24, 26, -35, 47, -36, 2, 2, -23, 27, -42, 55, 0, -21, + 19, 21, -8, 1, -3, -15, 7, 12, -23, -29, 47, -12, 4, -28, 17, 16, + -7, -31, -8, 25, -6, 0, 13, -20, 6, 3, -7, 19, -21, -37, 27, 41, + 7, -14, 12, -59, 57, 6, -49, -2, -8, 0, 19, 13, -20, -5, 16, 23, + 4, -15, -33, 14, 2, 15, -26, -28, 10, 45, -17, -24, 14, 17, -39, 22, + -8, 48, -51, -1, -16, 52, -34, -21, 11, 13, 18, -57, 26, 15, 27, -36, + -12, 40, -7, -14, 15, -86, 91, -20, -13, -7, 53, -43, 33, -25, 13, 3, + -38, -19, 28, 28, -18, -74, 58, -3, 40, -27, -34, 30, 28, -1, -22, 2, + 9, -8, -12, 12, 21, -35, -2, -17, 17, 2, -27, 22, -36, 38, -11, 2, + -20, 7, 20, -29, 39, 11, -3, 9, -24, 47, -36, 28, -14, -16, 38, -37, + 12, -15, 18, -69, 56, -31, 17, -16, -18, -13, 21, -6, -9, -25, 37, 6, + -1, -2, 5, -1, -26, 39, 6, -3, -10, 0, 12, 30, -12, -31, 24, 13, + -14, 9, -23, 31, -43, -17, -2, 13, -23, -14, -21, 21, 19, -22, -12, 24, + 41, -26, 10, 12, 19, -3, 9, -12, 26, 12, -52, -4, 16, -3, 0, -43, + 7, 5, -14, -9, 12, -28, 15, -23, -2, 35, -12, -8, -10, 24, 57, -55, + 26, -18, 19, 44, -30, 0, -5, 50, -56, -1, 8, -5, -39, 9, 19, -39, + 38, -73, 30, -1, 2, 16, -24, 6, 29, -71, 70, -18, -6, 8, 31, 4, + -13, 23, -11, 31, -56, 57, -25, 10, 15, -44, -10, 16, -17, -44, 18, -28, + 10, 8, -21, -4, -9, 28, 20, -16, 17, -17, -6, 30, 0, 11, -21, 25, + 25, -1, 31, -56, 31, 14, -32, 2, -19, 4, -17, -26, -13, 42, -59, 15, + -29, 53, -4, 1, -23, 13, 31, 5, -22, 3, 30, -28, 2, -24, 37, 1, + -3, -18, 18, 41, -40, 3, -40, 48, -31, -5, -20, 5, 9, 0, -30, -1, + 26, -15, -5, -6, 51, -25, -27, 7, 44, -11, 10, -32, 14, 46, -31, 6, + -11, 37, -33, -14, 19, -4, 22, -50, 26, -45, 21, 1, -23, 10, -15, 17, + -63, 53, -14, -18, 56, -49, 21, 25, -7, 4, -21, 52, -33, 19, 3, 11, + -9, -7, 0, -49, 22, -17, 25, -10, -11, 5, -19, 35, -26, 20, -7, -21, + 37, -25, 29, -23, 3, 6, 17, -26, 27, 5, -16, 10, -9, -24, 11, -4, + -17, 9, -5, -13, 1, -2, 10, 5, -13, 21, 0, 8, 9, -22, 12, 13, + -24, -3, -22, 42, -18, 3, -4, -15, 1, -2, 8, -17, -13, -2, 1, 23, + 10, -2, -31, 23, 17, -15, -9, -24, 31, 2, 19, -24, 4, -22, 28, -5, + -20, 34, -57, 26, 71, -51, 28, -24, -12, 28, 10, -35, -4, -6, 7, -7, + 8, -52, 61, -52, 7, -9, -21, 9, 18, -19, 3, 34, -53, 56, -29, 20, + -11, 22, 4, -1, 23, 2, 1, 24, -15, 3, -32, 13, 21, -37, 6, -11, + -25, 22, 7, -2, -41, 4, 10, -30, 39, -24, -7, 8, 12, 9, -1, -35, + 13, 3, 9, -18, 21, 26, -14, 41, -8, -35, 31, -29, 17, -20, -12, 20, + -30, 27, -26, 21, -9, -6, 5, -14, 3, -11, 15, 2, 8, -14, -5, 20, + 4, 0, -31, 9, 4, 25, -24, 5, -5, -13, 27, -7, -32, 1, -5, -10, + 28, 7, -4, 11, 10, 22, -3, -22, -15, 6, -3, -3, -27, -25, 5, 8, + -10, -17, 18, -18, 12, 32, -18, 1, 25, -25, 50, 7, 2, 0, -3, -3, + 16, -20, 9, -14, -15, 21, -27, -3, -17, 23, -31, -4, -18, 31, -21, 6, + 0, 18, -16, 27, 3, -7, -17, 17, -15, -11, 19, -16, 6, 1, 12, -18, + 5, -6, 24, 0, -19, 22, -23, 43, -35, 18, 22, -40, 1, 12, -4, -18, + 26, -53, 34, 1, -10, 1, -18, 27, -25, -24, 33, -31, 9, -43, 53, -29, + 33, -17, 5, 23, -7, 2, 23, 29, 1, -8, 20, -10, -1, -22, -3, -17, + 4, 22, -61, -23, 31, -26, -29, -12, 2, -3, 12, 10, 26, 5, -29, 61, + -9, 32, -18, -14, 29, 31, 2, -19, 9, 31, -20, -31, -7, 5, -22, -47, + 31, -40, 15, -39, 22, -27, 40, -78, 31, 4, -19, 33, -13, -8, 41, -1, + 5, -12, 53, -51, 22, -1, 18, 28, -29, -1, 0, 0, 11, 13, -2, -7, + -5, -3, -3, 1, 2, -6, 0, 3, 8, 9, 5, 0, 14, -5, -28, -39, + -39, -36, -37, -27, -43, -49, -13, 4, 6, -7, 0, -1, 3, 23, 39, 29, + 35, 41, 21, 35, 0, 0, 21, 59, 67, 31, 21, 13, -3, 18, 34, 28, + 5, 3, 13, 3, 0, 12, -7, -33, -27, -39, -14, -34, -50, -30, -37, -35, + -53, -74, -70, -61, -62, -62, -50, -44, -61, -36, -3, -23, -15, -12, -17, -20, + -6, 11, -6, -12, -6, -17, 7, 46, 71, 87, 79, 70, 77, 104, 109, 66, + 37, 34, 27, 31, 40, 43, 31, 23, 17, 2, 10, 24, 32, 66, 56, 17, + -13, -55, -54, -21, 19, -19, -56, -77, -37, -27, -10, -6, -38, -36, -37, -3, + 23, 25, 25, 19, 35, 34, -7, -5, 28, 60, 66, 65, 51, 34, 22, 53, + 51, 15, 20, 11, 21, 21, 16, 24, -2, -23, -36, -35, -21, -29, -51, -51, + -47, -57, -85, -80, -70, -100, -97, -82, -78, -76, -64, -51, -56, -54, -49, -70, + -62, -53, -54, -60, -57, -65, -78, -76, -62, -39, 0, 31, 13, 6, 31, 54, + 55, 43, 30, 13, 9, 31, 23, 43, 28, 24, 36, 36, 24, 30, 54, 70, + 113, 103, 75, 4, -3, 40, 55, 50, 23, 9, 25, 29, 48, 41, 29, 14, + 6, 40, 63, 49, 39, 71, 80, 64, 21, 12, 17, 29, 68, 71, 52, 36, + 24, 37, 24, 1, 5, 3, -6, -4, 1, 13, -3, -22, -35, -31, -27, -58, + -59, -43, -55, -71, -76, -71, -88, -103, -95, -98, -85, -77, -68, -71, -58, -50, + -47, -52, -46, -40, -47, -44, -48, -56, -60, -91, -96, -68, -15, -6, -16, 9, + 3, 29, 31, 29, 8, 10, -6, 5, 10, -6, -4, -6, 15, 7, -2, 2, + -5, 30, 91, 107, 74, 8, -3, 14, 27, 32, 26, 17, 21, 18, 34, 49, + 20, -3, 2, 30, 42, 20, 36, 68, 79, 81, 52, 27, 22, 37, 80, 95, + 77, 77, 72, 74, 57, 55, 56, 41, 35, 22, 40, 58, 32, 23, 24, 26, + 0, -7, 6, -2, -16, -26, -31, -45, -46, -64, -77, -79, -73, -72, -75, -59, + -49, -56, -35, -48, -44, -50, -43, -59, -58, -40, -78, -119, -123, -95, -73, -40, + -52, -45, -29, -18, -3, -1, -11, -21, -28, -12, -24, -29, -21, -29, -16, -3, + -5, -30, -40, 1, 69, 96, 78, 31, 14, 23, 17, 19, 33, 20, 9, 9, + 45, 50, 14, 3, 12, 13, 16, 7, 14, 35, 54, 75, 56, 24, 1, 18, + 47, 47, 60, 62, 66, 69, 46, 54, 53, 38, 11, 18, 44, 41, 28, 33, + 37, 22, 14, 15, 13, 13, 1, -1, -13, -6, -11, -38, -33, -47, -40, -46, + -31, -29, -22, -9, -5, -9, 9, 4, -23, -14, -4, -3, -26, -69, -87, -74, + -60, -42, -49, -33, -28, -16, 9, 2, -16, -22, -25, -25, -33, -32, -44, -58, + -41, -11, -19, -51, -77, -43, 24, 47, 49, 34, 21, 5, -9, 5, 18, -10, + -14, 2, 23, 26, -3, -7, -4, 2, -3, -10, -4, -6, 38, 64, 50, 25, + 1, 11, 17, 21, 36, 58, 62, 46, 46, 61, 56, 27, 11, 20, 18, 27, + 15, 31, 26, 23, 17, 7, 16, 0, -9, -10, -3, -8, -14, -25, -36, -56, + -41, -39, -50, -30, -12, -23, -8, 10, 23, 17, -2, 3, 14, 26, 7, -33, + -48, -53, -52, -35, -30, -30, -23, 3, 21, 17, 8, 7, -8, -1, 0, -6, + -29, -50, -26, 10, 5, -38, -64, -41, 5, 22, 49, 63, 38, 20, 13, 26, + 15, -7, -9, -1, 28, 9, 1, -4, -12, -1, -5, -20, -38, -32, 6, 38, + 36, 16, 10, 0, -8, -13, 15, 41, 25, 30, 30, 52, 35, 17, 8, 3, + -5, -5, -6, 4, 7, 4, 4, 3, 3, -20, -25, -23, -28, -22, -18, -47, + -50, -54, -62, -67, -62, -48, -43, -44, -31, -10, 17, 10, -8, 1, 22, 24, + 17, -1, -21, -40, -39, -26, -38, -32, -21, 2, 17, 26, 29, 18, 5, 15, + 35, 19, -11, -37, -9, 33, 17, -6, -30, -23, -10, 22, 65, 73, 71, 47, + 57, 66, 38, 15, 16, 23, 34, 35, 27, 10, 11, 21, 32, -4, -26, -29, + 4, 29, 28, 38, 32, 17, -6, -6, 17, 32, 21, 31, 39, 49, 36, 27, + 25, 13, -1, -11, -8, -1, -15, -11, 4, -7, -9, -14, -38, -46, -35, -31, + -43, -53, -54, -72, -84, -88, -86, -79, -73, -86, -69, -40, -16, -23, -28, -13, + -9, 5, 5, -10, -34, -45, -48, -52, -61, -59, -42, -38, -9, 13, 19, 8, + -14, 18, 42, 28, -18, -31, -3, 11, 21, 13, -9, -17, -22, 9, 57, 71, + 62, 68, 83, 82, 65, 38, 38, 31, 52, 57, 45, 23, 25, 51, 56, 21, + -2, -8, 7, 21, 28, 55, 55, 37, 15, 17, 30, 30, 30, 48, 55, 65, + 55, 54, 61, 42, 24, 22, 13, 6, 6, 4, 4, 17, 19, 1, -20, -23, + -25, -27, -26, -44, -44, -62, -79, -91, -83, -76, -99, -104, -87, -63, -51, -40, + -42, -40, -29, -16, -6, -31, -40, -47, -63, -68, -81, -76, -81, -75, -49, -15, + -5, -34, -38, 2, 15, 8, -29, -43, -33, -18, -11, 8, -9, -42, -45, -14, + 25, 33, 41, 54, 67, 75, 71, 46, 30, 23, 52, 55, 38, 20, 25, 53, + 59, 35, 17, 6, 3, 5, 27, 64, 61, 49, 40, 40, 45, 36, 38, 63, + 69, 69, 77, 85, 78, 76, 63, 48, 38, 42, 28, 15, 30, 35, 41, 27, + 14, 0, -4, -2, -14, -16, -15, -35, -65, -63, -56, -64, -80, -94, -77, -71, + -46, -34, -42, -37, -21, -6, -5, -16, -20, -35, -44, -62, -66, -66, -96, -94, + -58, -26, -32, -44, -50, -14, 2, -9, -26, -41, -53, -49, -27, -5, -28, -59, + -65, -47, -20, -11, 7, 15, 28, 51, 57, 32, 7, 2, 30, 32, 15, 0, + 7, 30, 30, 24, 21, -2, -19, -20, 6, 37, 40, 31, 40, 45, 30, 29, + 35, 49, 52, 69, 74, 78, 89, 79, 72, 62, 60, 51, 37, 29, 29, 42, + 51, 46, 30, 32, 18, 2, 8, 13, 15, -13, -35, -35, -38, -40, -53, -71, + -70, -58, -34, -38, -32, -28, -9, 10, 10, 7, 11, -7, -28, -21, -26, -47, + -80, -84, -49, -18, -28, -38, -32, -8, -4, 4, 3, -23, -46, -44, -19, -5, + -22, -42, -55, -56, -35, -25, -12, -8, 11, 43, 51, 33, 1, 0, 24, 18, + 1, -5, 0, 1, 9, 15, 21, -2, -38, -36, -19, 2, 2, 19, 26, 19, + 20, 10, 11, 20, 31, 37, 49, 62, 64, 61, 60, 61, 50, 51, 32, 10, + 16, 27, 31, 33, 33, 36, 7, -6, 3, 14, 12, -10, -21, -40, -34, -33, + -47, -65, -67, -60, -40, -40, -44, -25, -10, -4, 14, 26, 22, 4, -7, 8, + 8, -22, -67, -65, -33, -19, -24, -20, -18, -8, 1, 26, 30, -2, -22, -25, + -6, 5, -1, -13, -38, -43, -31, -21, -16, -16, 9, 47, 61, 35, 22, 22, + 31, 24, 10, 13, 5, -2, 0, 28, 34, 1, -21, -30, -28, -18, -5, 5, + 18, 20, 14, 6, 6, 12, 9, 20, 33, 39, 51, 51, 42, 51, 51, 48, + 20, 9, 7, 5, 7, 15, 28, 19, -1, -16, -15, -4, 4, -16, -30, -41, + -45, -41, -50, -79, -77, -69, -65, -64, -56, -45, -40, -28, -4, 21, 17, -8, + -9, 21, 16, -18, -56, -58, -44, -39, -24, -22, -28, -22, -4, 29, 31, 13, + -9, -16, -3, 11, 13, 1, -18, -33, -15, -11, -23, -22, 11, 52, 58, 50, + 46, 50, 49, 36, 40, 40, 17, 6, 20, 37, 45, 29, 9, -7, -12, -11, + -6, 9, 30, 25, 26, 26, 17, 19, 15, 21, 24, 46, 55, 47, 43, 56, + 64, 52, 33, 25, 13, -3, 2, 10, 21, 26, 4, -15, -16, -13, -2, -11, + -32, -43, -37, -44, -61, -77, -78, -82, -82, -80, -71, -61, -72, -59, -21, 5, + -2, -27, -10, 15, 7, -14, -44, -59, -67, -55, -37, -38, -50, -45, -23, 5, + 23, 9, -6, -19, -15, 5, 14, 2, -22, -22, -10, -17, -35, -38, -3, 35, + 38, 43, 57, 51, 44, 49, 57, 46, 25, 14, 24, 35, 54, 41, 31, 22, + 1, -7, -4, 12, 23, 34, 37, 35, 35, 36, 26, 24, 33, 55, 62, 53, + 58, 70, 70, 73, 62, 51, 38, 14, 6, 20, 31, 32, 27, 4, -9, -1, + 9, -8, -21, -22, -27, -33, -53, -64, -67, -82, -86, -83, -67, -75, -97, -77, + -36, -15, -27, -32, -18, -1, -1, -6, -31, -62, -73, -68, -52, -52, -68, -69, + -50, -21, -2, 4, -10, -33, -29, -4, 2, -10, -29, -22, -8, -27, -55, -49, + -27, -6, 12, 31, 43, 31, 38, 44, 54, 48, 25, 11, 19, 30, 36, 41, + 41, 29, 11, -1, -9, 0, 15, 27, 34, 36, 46, 46, 26, 27, 39, 51, + 59, 62, 62, 73, 76, 77, 85, 78, 58, 35, 23, 21, 37, 53, 37, 22, + 15, 16, 20, 3, 0, -2, -2, -14, -33, -35, -45, -69, -77, -59, -53, -76, + -96, -74, -41, -30, -25, -26, -19, -4, 7, 11, -8, -40, -62, -62, -51, -55, + -69, -74, -71, -44, -15, -2, -14, -36, -38, -8, -7, -27, -33, -17, -12, -38, + -51, -57, -58, -41, -14, 8, 19, 15, 15, 31, 46, 40, 21, 9, 7, 10, + 20, 25, 33, 28, 16, 1, -18, -13, 0, 6, 12, 30, 39, 39, 26, 20, + 32, 41, 45, 53, 64, 63, 62, 80, 84, 87, 81, 51, 29, 21, 44, 52, + 41, 33, 29, 31, 27, 12, 8, 16, 10, -4, -7, -7, -29, -62, -57, -37, + -44, -68, -81, -70, -48, -33, -23, -22, -17, -5, 16, 31, 14, -15, -33, -42, + -41, -37, -53, -65, -74, -54, -16, 2, -12, -33, -19, -1, -10, -22, -17, -8, + -8, -18, -33, -48, -62, -57, -31, -1, 7, 0, 9, 22, 40, 40, 27, 14, + 4, 3, 10, 14, 21, 31, 20, 0, -13, -19, -17, -15, -7, 12, 29, 28, + 13, 20, 18, 18, 31, 38, 47, 49, 51, 56, 67, 87, 84, 56, 30, 20, + 31, 41, 31, 24, 32, 33, 20, 7, 14, 15, -2, -1, 13, 4, -28, -53, + -45, -34, -38, -59, -75, -72, -58, -44, -26, -26, -29, -8, 14, 34, 28, 10, + -9, -22, -26, -24, -30, -54, -78, -56, -13, -4, -17, -16, -5, 1, -6, -9, + -8, -1, 3, -2, -4, -28, -53, -58, -37, -10, 1, -1, 6, 20, 34, 46, + 40, 25, 19, 11, 7, 10, 23, 33, 28, 16, -3, -3, -17, -31, -14, 4, + 15, 20, 20, 16, 10, 14, 19, 23, 37, 45, 35, 37, 53, 76, 83, 62, + 34, 20, 27, 28, 13, 17, 29, 21, 7, 9, 13, -4, -17, -4, 13, 2, + -27, -53, -47, -39, -46, -56, -77, -87, -77, -58, -45, -46, -47, -33, -6, 17, + 22, 16, 1, -20, -25, -10, -21, -57, -79, -57, -32, -24, -23, -18, -3, -1, + -6, -4, -4, -5, 3, 13, 14, -6, -38, -51, -39, -22, -4, -1, 3, 14, + 32, 45, 46, 46, 33, 25, 15, 9, 28, 38, 32, 28, 26, 14, -9, -21, + -15, -5, 10, 24, 22, 22, 21, 15, 15, 23, 36, 42, 35, 31, 41, 72, + 87, 68, 46, 42, 34, 19, 14, 25, 25, 11, 14, 18, 14, -7, -24, -7, + 12, 4, -19, -41, -47, -44, -41, -52, -74, -92, -88, -72, -59, -63, -68, -53, + -34, -11, 12, 19, -7, -27, -15, -5, -22, -54, -76, -66, -52, -47, -41, -29, + -17, -12, -12, -10, -11, -19, -7, 12, 19, 3, -23, -42, -48, -31, -19, -14, + -6, 1, 20, 35, 39, 50, 51, 33, 16, 17, 30, 31, 32, 41, 39, 28, + 14, -7, -14, -5, 8, 18, 27, 34, 29, 22, 21, 26, 38, 51, 39, 27, + 43, 75, 84, 73, 75, 68, 46, 32, 31, 35, 27, 15, 23, 36, 26, 0, + -13, -4, 12, 14, 1, -23, -36, -36, -32, -36, -60, -83, -84, -70, -67, -70, + -66, -67, -62, -27, 8, 13, -11, -22, -7, 4, -16, -44, -63, -67, -63, -63, + -53, -42, -33, -25, -15, -10, -22, -27, -18, -1, 16, 9, -13, -32, -46, -42, + -31, -30, -24, -8, 5, 11, 25, 49, 50, 33, 25, 20, 21, 24, 29, 34, + 41, 41, 26, 5, -5, -7, -4, 12, 23, 33, 37, 29, 19, 24, 49, 53, + 33, 33, 49, 65, 73, 80, 89, 85, 63, 48, 50, 46, 30, 20, 35, 46, + 39, 17, 0, 2, 15, 23, 18, -2, -20, -24, -12, -19, -45, -60, -66, -70, + -66, -56, -61, -74, -74, -38, 0, 6, -8, -15, 3, 13, -1, -24, -42, -52, + -65, -64, -54, -54, -47, -31, -19, -12, -21, -32, -27, -12, 7, 13, -2, -24, + -36, -37, -44, -47, -32, -20, -18, -9, 12, 30, 38, 35, 26, 18, 17, 16, + 13, 25, 36, 37, 32, 18, 2, -11, -10, -5, 3, 28, 38, 20, 8, 25, + 42, 40, 28, 30, 40, 46, 54, 70, 87, 82, 66, 61, 59, 48, 28, 20, + 32, 43, 43, 24, 8, 1, 7, 23, 25, 3, -13, -9, -8, -15, -28, -40, + -58, -71, -60, -49, -58, -80, -82, -50, -17, -5, -13, -12, 6, 13, 8, -3, + -24, -42, -54, -59, -57, -60, -59, -43, -24, -15, -20, -30, -35, -25, 1, 11, + -2, -12, -18, -33, -48, -49, -41, -37, -32, -21, -8, 13, 27, 27, 27, 23, + 16, 8, 7, 15, 22, 32, 35, 22, 9, 0, -18, -26, -8, 20, 25, 11, + 4, 18, 32, 29, 22, 29, 30, 27, 38, 60, 75, 70, 68, 69, 67, 52, + 30, 19, 27, 36, 40, 34, 10, -2, 6, 21, 20, 4, -2, -4, -7, -9, + -12, -25, -52, -66, -53, -42, -53, -79, -86, -58, -33, -23, -16, -12, 0, 12, + 17, 13, -5, -24, -38, -44, -50, -59, -61, -51, -33, -15, -11, -28, -36, -23, + -4, 5, 5, 7, -3, -17, -31, -40, -38, -37, -36, -29, -14, 4, 15, 25, + 34, 30, 24, 19, 9, 8, 22, 33, 31, 30, 31, 16, -14, -26, -13, 14, + 17, 7, 8, 18, 24, 23, 28, 31, 23, 18, 30, 50, 62, 61, 63, 75, + 73, 59, 40, 23, 20, 30, 43, 35, 11, 0, 8, 15, 12, 6, 3, -6, + -10, -3, -1, -15, -46, -62, -47, -38, -54, -77, -84, -70, -53, -40, -30, -21, + -12, 1, 16, 20, 5, -12, -21, -33, -44, -52, -64, -64, -44, -17, -15, -27, + -30, -26, -15, -3, 6, 12, 9, -2, -17, -26, -29, -36, -41, -32, -21, -10, + 6, 18, 27, 34, 37, 25, 11, 14, 21, 26, 27, 37, 48, 33, -1, -19, + -8, 7, 8, 8, 16, 16, 17, 25, 34, 36, 23, 16, 28, 44, 53, 54, + 61, 74, 79, 75, 56, 30, 19, 31, 45, 35, 15, 9, 9, 9, 11, 9, + 5, -8, -14, 0, 9, -10, -40, -53, -44, -38, -51, -72, -84, -80, -69, -58, + -45, -38, -30, -13, 5, 13, 8, 0, -14, -25, -30, -46, -67, -72, -55, -34, + -26, -28, -31, -31, -26, -17, -4, 9, 11, 2, -4, -12, -22, -33, -38, -40, + -34, -18, -7, 2, 17, 33, 38, 29, 19, 20, 22, 17, 19, 38, 57, 43, + 15, 2, -1, 1, 3, 10, 18, 15, 14, 25, 38, 40, 27, 21, 28, 38, + 46, 50, 55, 66, 81, 90, 71, 40, 30, 37, 44, 39, 26, 18, 12, 8, + 14, 19, 8, -11, -13, 5, 15, -2, -28, -42, -36, -34, -45, -60, -76, -83, + -77, -65, -59, -55, -43, -28, -13, 5, 11, 2, -9, -11, -17, -37, -61, -71, + -65, -49, -38, -36, -34, -35, -36, -32, -16, -2, 1, 3, 0, -7, -13, -25, + -39, -46, -42, -30, -22, -15, 2, 21, 30, 24, 22, 28, 19, 5, 11, 33, + 50, 45, 31, 17, 6, -1, 0, 8, 16, 12, 11, 23, 37, 40, 33, 29, + 29, 33, 45, 48, 46, 58, 83, 97, 84, 59, 45, 46, 47, 46, 42, 31, + 16, 12, 23, 29, 16, -5, -9, 10, 21, 10, -12, -24, -25, -25, -29, -42, + -64, -73, -70, -66, -63, -58, -52, -42, -22, 0, 8, 4, 1, 3, -1, -19, + -44, -61, -63, -57, -50, -39, -33, -37, -39, -36, -27, -14, -4, 0, 0, 0, + -1, -13, -30, -42, -43, -37, -36, -30, -10, 8, 12, 15, 26, 31, 16, 1, + 4, 21, 37, 41, 38, 29, 13, 0, -1, 6, 8, 3, 7, 17, 26, 34, + 35, 27, 24, 32, 40, 37, 32, 45, 72, 89, 86, 70, 57, 48, 45, 49, + 50, 37, 16, 11, 25, 34, 20, -3, -7, 7, 18, 15, 2, -14, -20, -15, + -17, -32, -49, -61, -67, -65, -60, -61, -63, -54, -33, -12, -1, 1, 2, 10, + 12, -3, -26, -43, -57, -60, -54, -45, -38, -38, -39, -39, -35, -23, -13, -6, + -3, 2, 7, -2, -20, -30, -34, -42, -47, -38, -19, -9, -5, 7, 24, 31, + 19, 3, 0, 10, 23, 33, 40, 36, 18, 5, 4, 4, 0, 0, 0, 5, + 16, 29, 30, 22, 22, 31, 36, 27, 21, 32, 54, 74, 81, 77, 65, 49, + 44, 50, 55, 40, 16, 10, 24, 31, 20, 3, -6, -1, 11, 16, 5, -9, + -13, -12, -14, -22, -36, -53, -63, -62, -59, -63, -69, -67, -48, -25, -14, -10, + -1, 10, 16, 10, -6, -26, -45, -54, -55, -50, -42, -39, -39, -40, -39, -29, + -19, -15, -8, 4, 11, 3, -6, -11, -21, -38, -48, -40, -26, -21, -16, -3, + 18, 30, 24, 12, 6, 4, 11, 29, 41, 39, 28, 18, 11, 8, 5, 1, + -4, -2, 11, 25, 25, 19, 23, 33, 35, 25, 17, 23, 39, 57, 74, 81, + 72, 53, 47, 56, 60, 44, 23, 16, 22, 29, 25, 10, -4, -3, 7, 11, + 6, -3, -9, -11, -9, -12, -26, -42, -56, -59, -55, -61, -73, -75, -60, -42, + -32, -23, -12, 0, 12, 15, 7, -10, -30, -46, -53, -53, -46, -41, -43, -45, + -41, -32, -30, -26, -14, -1, 5, 2, 3, 3, -9, -30, -43, -40, -31, -31, + -28, -12, 8, 20, 25, 22, 9, 0, 6, 21, 34, 39, 35, 26, 18, 16, + 14, 4, -7, -5, 9, 21, 19, 16, 23, 35, 37, 28, 20, 20, 26, 43, + 67, 82, 74, 57, 54, 62, 63, 52, 33, 21, 23, 30, 28, 14, 1, -1, + 3, 8, 7, -1, -7, -9, -6, -5, -15, -34, -49, -51, -51, -60, -72, -76, + -70, -57, -46, -37, -25, -13, 3, 14, 14, 3, -15, -33, -48, -52, -47, -45, + -49, -49, -41, -37, -39, -35, -21, -10, -5, -2, 6, 12, 1, -19, -32, -34, + -36, -39, -34, -23, -9, 9, 23, 25, 14, 3, 2, 12, 25, 36, 37, 30, + 24, 25, 24, 10, -5, -4, 9, 18, 15, 14, 23, 34, 38, 36, 30, 19, + 15, 32, 61, 78, 75, 63, 60, 67, 71, 62, 42, 29, 30, 33, 32, 20, + 8, 4, 6, 8, 8, 3, -5, -9, -2, 3, -7, -25, -37, -42, -45, -54, + -66, -74, -74, -67, -58, -49, -40, -27, -9, 5, 13, 13, 0, -21, -39, -45, + -44, -49, -54, -50, -44, -44, -47, -42, -29, -21, -19, -11, 5, 12, 4, -8, + -18, -28, -36, -40, -40, -36, -24, -4, 14, 21, 17, 7, 0, 3, 17, 32, + 34, 29, 28, 34, 33, 17, 0, 0, 9, 13, 12, 14, 20, 27, 38, 46, + 39, 21, 11, 24, 51, 71, 74, 66, 64, 73, 78, 71, 54, 40, 38, 41, + 38, 28, 17, 11, 9, 12, 14, 7, -3, -5, 3, 9, 2, -12, -23, -28, + -35, -45, -55, -65, -71, -68, -62, -57, -50, -37, -22, -7, 10, 20, 12, -8, + -24, -32, -39, -48, -52, -49, -45, -49, -52, -44, -34, -33, -30, -18, -3, 5, + 5, 1, -8, -19, -29, -37, -43, -45, -37, -18, 0, 13, 18, 10, -1, -3, + 10, 24, 26, 23, 29, 38, 37, 21, 8, 5, 6, 8, 10, 12, 11, 16, + 34, 49, 46, 27, 10, 15, 38, 59, 67, 63, 63, 72, 81, 77, 61, 48, + 45, 45, 42, 35, 23, 13, 11, 17, 18, 9, -3, -5, 3, 10, 6, -3, + -12, -19, -24, -34, -46, -57, -64, -65, -66, -63, -56, -48, -39, -22, 1, 17, + 16, 3, -8, -17, -30, -44, -47, -44, -47, -53, -52, -44, -41, -41, -38, -28, + -14, -3, 3, 3, -2, -9, -17, -28, -42, -49, -46, -34, -17, 3, 14, 9, + -3, -6, 5, 15, 13, 15, 26, 36, 35, 25, 16, 8, 2, 4, 9, 6, + 1, 4, 22, 43, 48, 31, 11, 7, 24, 45, 55, 54, 55, 68, 79, 77, + 66, 54, 48, 47, 47, 41, 27, 14, 11, 18, 20, 10, -2, -6, 0, 7, + 8, 2, -6, -12, -14, -23, -38, -49, -55, -62, -66, -63, -60, -59, -53, -37, + -12, 8, 13, 10, 7, -4, -21, -35, -37, -39, -47, -53, -51, -45, -44, -44, + -42, -36, -24, -10, 0, 2, 1, 1, -3, -15, -30, -42, -49, -45, -30, -6, + 10, 7, -2, -3, 5, 9, 6, 11, 23, 32, 35, 33, 25, 14, 6, 9, + 12, 8, -2, -4, 13, 36, 48, 39, 18, 7, 17, 34, 43, 45, 50, 62, + 74, 78, 71, 59, 51, 49, 52, 48, 32, 16, 12, 19, 21, 13, 1, -6, + -5, 2, 6, 2, -4, -6, -9, -18, -29, -40, -51, -60, -65, -63, -63, -68, + -68, -53, -30, -12, 0, 10, 13, 3, -14, -25, -29, -35, -45, -52, -52, -49, + -47, -47, -47, -46, -35, -20, -10, -5, -1, 4, 4, -4, -15, -30, -47, -54, + -41, -15, 1, 0, -2, 2, 6, 4, 3, 7, 16, 26, 35, 38, 32, 20, + 12, 14, 18, 12, -1, -8, 3, 27, 46, 44, 26, 14, 17, 28, 35, 38, + 44, 55, 69, 78, 77, 66, 55, 54, 60, 58, 41, 24, 17, 19, 23, 20, + 7, -4, -4, 0, 2, 1, 0, -2, -4, -10, -17, -28, -42, -55, -59, -56, + -61, -72, -74, -63, -47, -32, -14, 5, 13, 7, -4, -12, -19, -28, -38, -46, + -51, -50, -46, -47, -51, -52, -43, -30, -20, -13, -5, 0, 4, 4, 2, -13, + -40, -55, -47, -25, -12, -8, -3, 3, 5, 4, 2, 3, 7, 18, 32, 41, + 36, 25, 18, 21, 25, 21, 5, -9, -3, 19, 41, 45, 34, 24, 23, 27, + 30, 33, 38, 47, 62, 78, 82, 72, 61, 61, 67, 66, 54, 37, 24, 23, + 28, 25, 15, 5, 0, 0, 0, 1, 2, 2, -1, -4, -5, -15, -34, -47, + -49, -49, -58, -69, -73, -70, -63, -51, -30, -8, 5, 7, 3, -4, -11, -20, + -29, -41, -49, -50, -46, -49, -54, -56, -50, -42, -33, -22, -13, -10, -6, 5, + 12, -1, -30, -50, -50, -38, -27, -18, -10, -3, 1, 2, 2, -2, -4, 6, + 24, 36, 36, 27, 19, 22, 30, 28, 10, -8, -10, 9, 30, 39, 35, 30, + 26, 26, 28, 29, 29, 35, 53, 73, 80, 74, 65, 63, 69, 72, 64, 47, + 33, 28, 29, 28, 21, 12, 6, 2, -2, 1, 4, 1, -2, 2, 6, -4, + -23, -35, -38, -42, -51, -60, -66, -70, -71, -63, -45, -23, -5, 4, 6, 3, + -2, -7, -18, -32, -42, -43, -43, -47, -52, -54, -53, -51, -42, -27, -20, -21, + -14, 4, 17, 10, -13, -35, -45, -44, -37, -26, -17, -11, -3, 3, 3, -3, + -9, -4, 13, 31, 35, 27, 19, 23, 34, 36, 19, -3, -10, 2, 19, 31, + 35, 33, 29, 30, 32, 28, 22, 26, 43, 63, 76, 75, 67, 65, 71, 75, + 70, 57, 43, 36, 34, 30, 26, 21, 14, 5, 1, 4, 3, -2, -2, 6, + 11, 3, -11, -22, -29, -36, -43, -50, -57, -67, -74, -72, -60, -40, -19, -5, + 2, 4, 6, 3, -8, -23, -32, -35, -40, -45, -47, -51, -57, -58, -47, -33, + -30, -32, -24, -5, 13, 14, 1, -18, -36, -45, -42, -35, -27, -20, -11, 0, + 3, -3, -12, -12, 1, 21, 31, 25, 16, 20, 34, 40, 26, 5, -7, -6, + 7, 21, 27, 26, 27, 31, 33, 27, 17, 15, 28, 50, 65, 68, 64, 62, + 68, 74, 72, 61, 51, 44, 35, 29, 28, 25, 15, 7, 5, 5, -1, -8, + -5, 3, 8, 4, -4, -12, -22, -32, -38, -42, -50, -61, -72, -77, -73, -57, + -36, -20, -11, -2, 7, 8, -3, -14, -22, -30, -38, -41, -42, -49, -60, -62, + -52, -41, -40, -41, -34, -18, 0, 11, 10, -3, -23, -38, -42, -40, -36, -31, + -20, -6, 2, -1, -13, -19, -9, 12, 25, 20, 12, 17, 30, 39, 34, 17, + -2, -8, 1, 13, 19, 21, 23, 31, 37, 32, 18, 10, 18, 36, 55, 62, + 60, 60, 67, 73, 72, 68, 61, 51, 41, 35, 34, 28, 18, 12, 11, 8, + -2, -9, -7, 0, 4, 5, 3, -3, -14, -24, -31, -36, -41, -50, -64, -77, + -80, -68, -51, -37, -26, -11, 3, 6, 2, -3, -13, -24, -32, -33, -34, -46, + -60, -62, -54, -47, -46, -47, -43, -31, -13, 4, 12, 6, -9, -23, -34, -39, + -40, -38, -29, -14, 0, 2, -11, -22, -15, 4, 17, 16, 11, 13, 25, 39, + 41, 28, 9, -3, 0, 9, 15, 15, 19, 30, 40, 39, 26, 12, 11, 28, + 45, 54, 56, 60, 66, 70, 73, 74, 69, 58, 49, 45, 42, 32, 22, 18, + 19, 14, 3, -6, -7, -4, 0, 5, 6, 3, -5, -14, -24, -30, -32, -38, + -53, -71, -78, -72, -63, -54, -39, -22, -8, 1, 6, 6, -4, -18, -25, -23, + -25, -39, -54, -58, -54, -49, -49, -50, -49, -42, -26, -7, 7, 9, 2, -9, + -20, -30, -38, -43, -39, -22, -2, 3, -9, -20, -16, -2, 11, 14, 10, 10, + 20, 36, 46, 40, 22, 8, 6, 11, 13, 12, 15, 26, 41, 46, 36, 20, + 14, 24, 38, 47, 54, 60, 64, 69, 76, 81, 76, 66, 60, 58, 53, 40, + 30, 27, 27, 22, 12, 3, -3, -4, -1, 4, 8, 8, 5, -4, -15, -21, + -21, -25, -41, -58, -69, -71, -70, -64, -51, -35, -23, -9, 5, 10, 1, -13, + -17, -15, -19, -32, -46, -54, -54, -51, -50, -52, -55, -53, -40, -22, -6, 3, + 4, -2, -10, -19, -32, -47, -49, -32, -11, -3, -10, -20, -20, -10, 2, 7, + 5, 2, 10, 28, 42, 41, 29, 16, 10, 11, 11, 7, 6, 17, 35, 45, + 39, 26, 18, 19, 26, 37, 47, 53, 56, 61, 73, 81, 76, 68, 65, 65, + 59, 46, 36, 31, 28, 25, 19, 9, -1, -6, -4, -1, 2, 8, 9, 0, + -10, -15, -14, -18, -32, -46, -57, -68, -74, -71, -61, -51, -41, -23, -2, 8, + 2, -8, -11, -10, -13, -23, -37, -48, -53, -51, -49, -53, -59, -60, -53, -37, + -19, -7, -3, -2, -1, -6, -22, -43, -52, -42, -21, -9, -12, -20, -23, -16, + -4, 3, -1, -6, 0, 18, 34, 40, 33, 22, 16, 16, 13, 5, 0, 9, + 27, 39, 40, 32, 24, 18, 19, 29, 40, 44, 46, 55, 69, 77, 75, 71, + 70, 70, 65, 55, 45, 37, 32, 30, 26, 17, 7, 0, -5, -6, -1, 8, + 11, 4, -5, -7, -7, -13, -21, -30, -44, -59, -69, -69, -65, -63, -56, -36, + -13, 1, 1, -4, -6, -5, -6, -12, -25, -40, -47, -47, -46, -50, -56, -62, + -61, -48, -30, -18, -12, -6, 4, 6, -7, -32, -49, -46, -30, -16, -12, -19, + -25, -20, -7, 0, -3, -9, -7, 8, 26, 36, 34, 27, 24, 24, 19, 7, + -2, 4, 18, 31, 38, 38, 30, 20, 18, 26, 34, 35, 38, 48, 62, 71, + 73, 72, 73, 72, 70, 64, 53, 43, 38, 35, 30, 23, 16, 7, -4, -10, + -4, 6, 8, 3, -1, -2, -4, -9, -12, -19, -33, -51, -61, -65, -69, -73, + -70, -52, -30, -13, -6, -5, -7, -5, -2, -5, -17, -31, -41, -45, -44, -45, + -53, -64, -67, -58, -43, -31, -26, -17, -1, 10, 3, -19, -41, -48, -39, -23, + -16, -21, -27, -24, -12, -3, -5, -13, -15, -3, 16, 28, 29, 26, 28, 31, + 24, 10, 0, 0, 8, 20, 33, 38, 32, 22, 19, 24, 28, 28, 30, 40, + 52, 61, 68, 71, 72, 73, 73, 69, 59, 51, 45, 39, 32, 28, 26, 15, + 0, -9, -5, 2, 4, 2, 1, -1, -4, -6, -5, -10, -24, -41, -50, -56, + -66, -76, -77, -66, -47, -27, -15, -11, -10, -5, 0, -1, -8, -20, -33, -40, + -40, -40, -48, -62, -70, -64, -51, -43, -39, -29, -11, 7, 10, -5, -28, -43, + -41, -28, -20, -22, -29, -28, -17, -6, -5, -14, -20, -12, 6, 19, 22, 23, + 30, 35, 31, 20, 8, 0, 1, 13, 29, 37, 33, 26, 25, 27, 27, 25, + 26, 33, 43, 54, 63, 67, 70, 74, 76, 72, 66, 61, 54, 44, 37, 36, + 34, 24, 8, -3, -4, -2, 0, 2, 3, -1, -5, -3, 2, -2, -16, -29, + -36, -44, -57, -70, -79, -76, -60, -41, -27, -19, -14, -8, -1, 3, 0, -10, + -24, -33, -33, -32, -40, -55, -65, -63, -56, -51, -48, -40, -23, -1, 12, 7, + -13, -32, -37, -29, -21, -21, -28, -29, -19, -6, -2, -12, -20, -14, 0, 11, + 16, 22, 30, 37, 38, 33, 21, 7, 0, 9, 26, 36, 35, 32, 32, 32, + 31, 28, 27, 30, 38, 50, 58, 63, 70, 78, 79, 76, 74, 72, 64, 53, + 46, 45, 44, 34, 20, 9, 3, -1, 1, 7, 7, 0, -4, 2, 8, 5, + -5, -15, -23, -30, -41, -58, -73, -77, -68, -53, -38, -28, -21, -14, -5, 4, + 7, -1, -15, -25, -25, -24, -32, -48, -59, -61, -59, -57, -57, -54, -39, -16, + 4, 8, -5, -24, -33, -30, -24, -24, -32, -35, -26, -11, -6, -14, -20, -19, + -10, -2, 5, 13, 21, 29, 37, 40, 30, 11, 0, 4, 17, 27, 30, 31, + 31, 32, 32, 29, 23, 23, 31, 40, 45, 52, 63, 72, 74, 73, 75, 75, + 67, 56, 51, 50, 46, 38, 29, 18, 6, -3, -1, 5, 3, -4, -7, -2, + 4, 5, -2, -11, -17, -21, -30, -47, -66, -78, -77, -66, -53, -42, -34, -27, + -16, -3, 6, 1, -12, -21, -21, -21, -28, -42, -54, -60, -60, -61, -65, -67, + -57, -35, -11, 1, -3, -18, -30, -30, -25, -27, -36, -41, -32, -19, -13, -17, + -22, -22, -19, -14, -6, 2, 7, 17, 31, 41, 34, 17, 3, 1, 8, 17, + 23, 25, 26, 30, 32, 28, 22, 21, 25, 30, 34, 42, 54, 63, 66, 70, + 77, 77, 69, 61, 57, 55, 49, 44, 39, 28, 11, 2, 2, 5, 3, -3, + -8, -4, 3, 6, 2, -4, -9, -11, -16, -31, -52, -68, -75, -71, -61, -50, + -43, -38, -26, -8, 5, 4, -6, -13, -14, -13, -19, -31, -44, -51, -52, -55, + -64, -71, -67, -49, -24, -4, -1, -12, -22, -21, -18, -22, -33, -39, -33, -22, + -16, -16, -17, -19, -20, -16, -9, -4, -2, 5, 18, 31, 37, 32, 21, 11, + 9, 12, 17, 20, 24, 28, 32, 31, 28, 26, 26, 26, 28, 34, 43, 51, + 57, 65, 74, 77, 75, 72, 68, 63, 59, 56, 53, 44, 31, 19, 12, 11, + 8, 3, -2, -3, 0, 4, 5, 2, 0, -1, -3, -11, -25, -42, -58, -66, + -65, -59, -54, -51, -42, -27, -11, -2, -3, -6, -7, -7, -9, -16, -27, -36, + -40, -44, -52, -63, -70, -66, -49, -28, -15, -13, -16, -16, -13, -16, -24, -31, + -33, -29, -24, -19, -17, -19, -20, -18, -14, -13, -12, -6, 7, 22, 33, 35, + 28, 18, 12, 12, 14, 17, 21, 27, 31, 31, 30, 30, 28, 25, 25, 30, + 36, 42, 49, 58, 67, 74, 76, 75, 71, 66, 62, 60, 59, 53, 41, 29, + 19, 14, 11, 7, 1, -3, -2, 1, 3, 3, 1, 0, 0, -3, -11, -26, + -44, -59, -65, -63, -60, -57, -52, -41, -25, -11, -4, -4, -6, -6, -6, -9, + -17, -27, -35, -39, -44, -53, -65, -71, -65, -47, -28, -16, -15, -16, -15, -14, + -17, -25, -32, -33, -29, -24, -19, -17, -19, -20, -18, -14, -13, -12, -6, -2, + 1, 6, 5, 21, 46, 42, 15, 0, 5, 34, 48, 29, -4, -31, -33, -17, + 26, 49, 32, 0, -21, -15, 14, 24, 24, 16, 0, 3, 11, 11, 11, 5, + 9, 9, 8, 11, 30, 27, 22, 7, -3, -3, 10, 2, -2, -4, -13, -4, + -4, -2, -2, -3, -7, -6, -14, -15, -14, -14, -13, -3, -14, -16, -18, -13, + -15, -16, -22, -20, -14, -3, -6, -4, -14, -11, -6, -10, -15, -15, -16, -9, + -10, -19, -3, -5, -17, -15, -18, -16, -14, -14, -12, -15, -7, -22, -19, -17, + -20, -11, -17, -14, -11, -8, -10, -13, -12, -11, -6, -6, -9, 1, 1, -3, + 0, 6, -2, -9, 7, -8, 8, 4, 3, 1, -6, -2, -2, 2, -5, -7, + -4, -7, -8, -9, -6, -6, 0, -8, -12, -12, -13, -8, -4, -7, -3, -11, + -6, -15, -7, -9, -9, -3, -10, -8, -9, -15, -10, -2, 2, -7, -16, -17, + -15, -13, -9, -6, -5, -7, -9, -15, -17, -12, -19, -12, -8, -8, -4, -6, + -3, 0, -4, -11, -13, -7, -6, -2, 4, 4, 8, 10, 4, 3, 3, 4, + 7, 12, 11, 14, 15, 20, 20, 18, 16, 17, 15, 14, 15, 22, 23, 28, + 34, 29, 28, 17, 22, 24, 23, 25, 28, 28, 30, 24, 19, 16, 13, 18, + 20, 15, 8, 2, 3, 0, 2, 0, -3, -2, -9, -20, -23, -25, -24, -23, + -27, -33, -38, -39, -44, -36, -42, -44, -48, -53, -54, -56, -52, -50, -40, -35, + -44, -43, -44, -39, -28, -24, -23, -22, -15, -9, 2, 11, 19, 28, 31, 31, + 32, 35, 43, 61, 70, 78, 81, 73, 78, 78, 78, 85, 82, 85, 88, 87, + 84, 83, 83, 79, 74, 62, 49, 45, 42, 43, 44, 38, 30, 18, 6, -5, + -15, -17, -15, -22, -28, -38, -46, -48, -50, -58, -59, -72, -80, -83, -89, -88, + -89, -87, -81, -84, -93, -105, -110, -109, -110, -102, -96, -82, -65, -62, -60, -60, + -60, -51, -43, -37, -28, -16, 1, 15, 28, 35, 41, 46, 53, 56, 60, 66, + 77, 91, 101, 102, 101, 99, 104, 103, 97, 91, 86, 90, 91, 86, 85, 79, + 75, 71, 59, 48, 39, 35, 33, 32, 28, 22, 15, 13, 7, 3, -7, -15, + -16, -18, -19, -23, -28, -29, -33, -37, -47, -52, -56, -63, -61, -70, -67, -70, + -72, -72, -80, -93, -91, -99, -103, -96, -108, -105, -109, -112, -94, -81, -73, -67, + -71, -77, -69, -63, -57, -38, -27, -15, 0, 4, 6, 19, 26, 41, 53, 49, + 56, 58, 69, 84, 91, 95, 101, 103, 98, 93, 85, 87, 102, 102, 103, 95, + 81, 78, 78, 71, 66, 60, 51, 50, 44, 39, 34, 34, 32, 27, 15, 0, + -6, -8, -3, -3, -11, -10, -18, -21, -26, -35, -39, -38, -44, -48, -53, -63, + -61, -61, -71, -63, -86, -89, -86, -107, -99, -109, -108, -109, -108, -121, -128, -105, + -102, -83, -67, -88, -82, -76, -78, -62, -47, -41, -19, -6, 1, 7, 13, 33, + 44, 64, 61, 59, 68, 73, 93, 98, 107, 114, 109, 123, 107, 100, 105, 100, + 111, 117, 100, 93, 92, 86, 85, 80, 70, 59, 58, 47, 38, 41, 33, 40, + 38, 25, 16, 1, -2, -3, -3, -4, -10, -16, -12, -21, -28, -28, -36, -38, + -39, -52, -61, -61, -67, -63, -65, -76, -77, -86, -95, -95, -107, -109, -112, -112, + -121, -121, -122, -105, -79, -80, -71, -80, -84, -73, -70, -56, -43, -28, -10, 6, + 11, 17, 31, 43, 63, 69, 69, 65, 77, 88, 101, 113, 112, 127, 122, 122, + 115, 104, 112, 116, 122, 117, 106, 99, 97, 96, 94, 86, 75, 70, 61, 53, + 44, 41, 46, 47, 45, 28, 19, 9, 5, 9, 1, -8, -14, -20, -24, -26, + -28, -29, -36, -39, -42, -45, -41, -42, -45, -46, -49, -47, -50, -55, -53, -61, + -63, -67, -83, -78, -89, -91, -88, -100, -93, -108, -110, -110, -115, -90, -100, -91, + -80, -91, -73, -62, -60, -41, -33, -36, -25, -16, -9, 8, 18, 35, 40, 57, + 61, 66, 95, 94, 106, 114, 105, 117, 111, 117, 118, 115, 120, 111, 109, 111, + 104, 102, 106, 93, 88, 76, 66, 63, 52, 53, 31, 27, 25, 5, 12, 1, + -5, 0, -15, -17, -23, -27, -27, -31, -31, -37, -44, -41, -43, -43, -35, -45, + -43, -41, -50, -49, -51, -57, -58, -62, -72, -76, -79, -81, -82, -86, -92, -94, + -100, -109, -110, -102, -99, -96, -83, -96, -83, -67, -73, -45, -41, -42, -27, -27, + -19, -5, 7, 14, 30, 44, 46, 57, 75, 84, 98, 108, 102, 112, 114, 110, + 120, 115, 116, 117, 108, 112, 107, 104, 108, 99, 96, 90, 73, 69, 66, 57, + 48, 36, 26, 18, 13, 6, -3, 3, -8, -14, -15, -26, -25, -26, -33, -33, + -40, -45, -45, -45, -42, -43, -44, -45, -48, -46, -55, -57, -58, -62, -67, -73, + -78, -80, -81, -82, -89, -93, -99, -106, -108, -115, -100, -95, -103, -77, -91, -85, + -59, -63, -48, -32, -36, -33, -18, -14, -6, 11, 21, 27, 47, 55, 56, 81, + 92, 96, 114, 106, 111, 116, 110, 121, 113, 115, 115, 105, 111, 106, 101, 103, + 100, 92, 84, 74, 66, 60, 58, 43, 29, 29, 13, 9, 10, -6, -2, -6, + -16, -18, -22, -27, -30, -30, -35, -44, -43, -46, -46, -42, -44, -48, -45, -46, + -50, -54, -51, -61, -63, -61, -85, -76, -80, -94, -75, -98, -97, -93, -111, -103, + -106, -97, -97, -90, -79, -93, -73, -64, -67, -39, -38, -41, -20, -20, -12, 11, + 10, 30, 40, 48, 62, 62, 85, 91, 99, 111, 101, 112, 111, 113, 120, 112, + 119, 111, 108, 114, 101, 102, 104, 89, 91, 79, 63, 67, 56, 52, 41, 29, + 26, 12, 14, 3, -5, 1, -14, -15, -19, -27, -24, -30, -31, -34, -43, -43, + -45, -48, -40, -48, -48, -45, -51, -49, -53, -56, -57, -63, -69, -76, -86, -80, + -86, -90, -87, -98, -101, -101, -108, -103, -88, -96, -88, -77, -89, -70, -60, -56, + -39, -34, -30, -26, -11, -4, 6, 26, 27, 42, 54, 57, 72, 86, 95, 105, + 107, 108, 112, 109, 116, 118, 112, 117, 108, 109, 107, 104, 103, 99, 97, 83, + 77, 71, 57, 60, 49, 35, 30, 21, 11, 11, 4, -2, -3, -13, -17, -22, + -24, -28, -29, -29, -39, -39, -44, -44, -41, -45, -44, -50, -49, -49, -56, -50, + -60, -62, -55, -82, -70, -82, -90, -80, -95, -95, -100, -105, -112, -112, -93, -102, + -91, -81, -91, -77, -60, -65, -45, -33, -40, -25, -21, -14, 5, 10, 30, 35, + 49, 61, 61, 87, 94, 102, 109, 109, 112, 112, 116, 117, 116, 118, 116, 106, + 113, 108, 101, 110, 96, 91, 84, 69, 66, 58, 54, 38, 29, 26, 12, 11, + 6, -2, -2, -8, -16, -20, -23, -27, -28, -33, -34, -44, -43, -43, -47, -39, + -44, -47, -43, -47, -49, -50, -52, -57, -58, -68, -75, -76, -83, -86, -86, -91, + -97, -98, -103, -109, -102, -91, -99, -84, -81, -93, -65, -66, -60, -37, -42, -33, + -25, -18, -9, 6, 16, 28, 41, 49, 57, 68, 84, 93, 102, 106, 106, 110, + 107, 116, 114, 111, 119, 106, 111, 108, 101, 104, 99, 94, 85, 76, 68, 61, + 56, 49, 34, 28, 21, 10, 10, 2, -3, -3, -13, -15, -24, -26, -28, -34, + -31, -42, -45, -43, -48, -44, -43, -47, -47, -47, -48, -51, -57, -57, -63, -70, + -72, -80, -86, -81, -92, -88, -96, -103, -100, -113, -110, -96, -101, -96, -79, -91, + -82, -59, -68, -47, -34, -39, -29, -18, -13, -5, 18, 22, 32, 54, 52, 64, + 83, 90, 100, 108, 109, 110, 113, 113, 116, 113, 117, 113, 106, 111, 103, 100, + 101, 98, 86, 82, 73, 59, 61, 53, 36, 34, 24, 12, 10, 5, -5, -3, + -8, -17, -18, -24, -27, -29, -30, -35, -40, -41, -45, -43, -43, -42, -45, -46, + -44, -50, -49, -55, -58, -55, -71, -70, -79, -87, -77, -92, -88, -95, -104, -100, + -115, -107, -91, -105, -85, -83, -97, -67, -68, -65, -37, -43, -33, -29, -21, -9, + 0, 18, 23, 35, 55, 48, 69, 87, 86, 108, 107, 103, 117, 106, 117, 118, + 113, 122, 109, 111, 111, 102, 110, 101, 98, 92, 77, 73, 62, 59, 54, 34, + 34, 21, 11, 15, 2, 2, 2, -14, -12, -23, -26, -26, -33, -30, -40, -44, + -42, -49, -41, -41, -44, -43, -46, -49, -51, -59, -54, -63, -67, -64, -84, -79, + -76, -91, -82, -87, -100, -100, -101, -118, -101, -89, -107, -81, -82, -93, -65, -57, + -57, -36, -26, -39, -17, -9, -13, 14, 21, 26, 45, 53, 54, 76, 88, 95, + 111, 106, 111, 114, 109, 120, 115, 115, 116, 110, 105, 109, 104, 98, 105, 94, + 83, 81, 68, 60, 62, 49, 32, 33, 18, 9, 12, 0, -3, -3, -13, -18, + -20, -24, -27, -26, -31, -37, -40, -42, -42, -43, -42, -44, -48, -48, -47, -51, + -54, -52, -56, -64, -68, -75, -84, -79, -89, -91, -93, -104, -105, -110, -114, -97, + -97, -96, -78, -89, -81, -58, -66, -47, -34, -40, -31, -23, -14, -6, 14, 22, + 31, 54, 55, 63, 87, 91, 103, 113, 105, 111, 113, 109, 119, 112, 117, 114, + 106, 113, 106, 105, 105, 99, 93, 81, 74, 61, 58, 55, 36, 30, 25, 10, + 11, 6, -5, 1, -8, -16, -19, -25, -27, -32, -32, -37, -44, -41, -47, -43, + -39, -43, -44, -45, -46, -46, -56, -53, -55, -72, -64, -74, -91, -72, -88, -97, + -80, -100, -105, -100, -111, -111, -88, -100, -99, -74, -97, -79, -54, -68, -43, -32, + -41, -26, -10, -16, 6, 22, 19, 41, 51, 49, 69, 86, 88, 103, 107, 100, + 119, 110, 111, 125, 110, 115, 115, 104, 108, 106, 99, 98, 98, 82, 76, 71, + 60, 60, 52, 34, 30, 25, 9, 11, 3, -6, 0, -15, -18, -21, -27, -27, + -30, -31, -38, -39, -43, -43, -39, -43, -44, -46, -47, -47, -54, -53, -59, -58, + -65, -71, -75, -81, -75, -90, -83, -90, -100, -95, -111, -109, -101, -97, -100, -84, + -86, -89, -62, -64, -50, -34, -37, -30, -21, -11, -8, 10, 19, 26, 47, 49, + 59, 76, 89, 99, 107, 109, 110, 115, 113, 119, 115, 114, 115, 106, 111, 103, + 103, 101, 98, 94, 81, 78, 65, 63, 59, 43, 34, 25, 17, 10, 7, -4, + -3, -6, -14, -16, -23, -24, -28, -29, -33, -41, -41, -46, -43, -40, -44, -44, + -46, -46, -47, -50, -54, -56, -58, -69, -70, -76, -83, -75, -87, -87, -91, -100, + -100, -109, -108, -97, -98, -93, -83, -88, -76, -61, -59, -43, -36, -33, -28, -18, + -11, -4, 14, 21, 31, 52, 51, 63, 84, 90, 101, 111, 104, 113, 113, 111, + 118, 112, 114, 109, 108, 109, 102, 106, 101, 98, 94, 79, 74, 66, 58, 55, + 39, 29, 24, 13, 11, 5, -4, 0, -10, -15, -17, -24, -25, -28, -29, -34, + -41, -41, -47, -42, -44, -46, -45, -50, -45, -50, -55, -48, -60, -60, -65, -76, + -77, -83, -84, -91, -92, -94, -106, -103, -109, -106, -89, -101, -82, -81, -88, -63, + -66, -54, -36, -40, -31, -25, -16, -7, 6, 17, 30, 41, 55, 56, 73, 89, + 92, 109, 104, 106, 114, 104, 117, 113, 110, 116, 105, 108, 106, 100, 102, 98, + 94, 85, 74, 67, 59, 55, 48, 31, 28, 19, 10, 12, 0, 2, -2, -11, + -11, -21, -21, -26, -30, -30, -40, -43, -43, -44, -40, -39, -41, -43, -42, -46, + -52, -52, -58, -63, -65, -75, -79, -83, -80, -89, -85, -88, -101, -94, -104, -114, + -93, -97, -104, -78, -92, -89, -60, -68, -48, -36, -36, -26, -21, -8, -5, 12, + 23, 26, 47, 50, 54, 77, 85, 96, 109, 102, 114, 112, 109, 125, 112, 114, + 118, 102, 110, 103, 99, 101, 96, 92, 79, 76, 66, 59, 61, 43, 32, 31, + 14, 10, 9, -5, -2, -9, -17, -18, -28, -25, -31, -31, -31, -42, -38, -43, + -41, -39, -43, -44, -47, -45, -48, -51, -53, -54, -61, -64, -67, -77, -76, -82, + -81, -89, -93, -97, -106, -108, -105, -96, -99, -88, -82, -92, -67, -64, -60, -38, + -38, -36, -24, -20, -16, 4, 11, 21, 36, 46, 53, 66, 85, 88, 103, 108, + 102, 115, 107, 112, 115, 109, 114, 104, 106, 106, 99, 102, 101, 92, 89, 81, + 67, 66, 58, 47, 39, 28, 21, 11, 12, 2, -2, 2, -12, -12, -17, -25, + -24, -29, -30, -36, -39, -41, -41, -41, -39, -41, -44, -44, -47, -51, -52, -54, + -59, -63, -65, -75, -79, -75, -90, -81, -89, -99, -92, -109, -109, -105, -99, -97, + -92, -80, -90, -71, -58, -60, -37, -32, -37, -19, -15, -14, 9, 14, 23, 42, + 46, 56, 67, 83, 96, 100, 111, 106, 111, 114, 111, 117, 111, 112, 109, 103, + 107, 100, 99, 103, 92, 88, 82, 65, 66, 59, 48, 39, 27, 22, 12, 9, + 5, -5, 0, -12, -16, -17, -26, -25, -26, -31, -34, -40, -41, -41, -41, -40, + -42, -47, -43, -46, -46, -52, -50, -52, -61, -59, -74, -75, -77, -83, -84, -91, + -92, -105, -100, -106, -109, -81, -103, -86, -73, -96, -64, -62, -59, -38, -39, -36, + -28, -15, -11, 3, 18, 25, 37, 53, 53, 67, 89, 85, 106, 103, 98, 115, + 99, 114, 115, 103, 116, 103, 104, 109, 98, 101, 98, 91, 84, 75, 67, 60, + 55, 50, 31, 28, 20, 7, 15, 0, -3, 2, -15, -12, -19, -25, -24, -32, + -32, -38, -44, -44, -45, -42, -41, -44, -43, -46, -44, -44, -58, -48, -63, -67, + -63, -87, -75, -83, -90, -81, -94, -95, -95, -107, -109, -99, -95, -99, -85, -85, + -90, -68, -62, -60, -36, -34, -39, -15, -13, -9, 14, 15, 29, 42, 50, 55, + 68, 87, 91, 101, 107, 106, 110, 113, 114, 115, 114, 112, 108, 105, 106, 98, + 98, 100, 88, 84, 75, 63, 63, 57, 46, 34, 28, 18, 10, 8, 0, -5, + -5, -15, -19, -20, -26, -26, -26, -31, -36, -40, -42, -43, -42, -39, -44, -44, + -42, -44, -47, -51, -52, -54, -65, -63, -76, -81, -68, -93, -84, -85, -104, -92, + -105, -109, -95, -95, -96, -84, -82, -84, -64, -64, -52, -39, -37, -33, -23, -11, + -9, 10, 20, 25, 49, 46, 60, 76, 82, 98, 101, 104, 110, 108, 108, 116, + 111, 111, 113, 104, 108, 106, 101, 98, 99, 92, 80, 79, 63, 61, 59, 41, + 35, 27, 18, 13, 9, 2, 0, -5, -12, -15, -20, -22, -26, -27, -30, -38, + -39, -42, -40, -39, -40, -40, -45, -43, -47, -49, -54, -53, -57, -70, -59, -80, + -77, -72, -93, -75, -91, -99, -93, -105, -108, -97, -92, -99, -80, -84, -84, -61, + -59, -49, -35, -28, -34, -14, -9, -10, 19, 17, 27, 47, 47, 61, 72, 87, + 95, 105, 104, 110, 111, 109, 117, 109, 111, 109, 103, 103, 102, 97, 95, 100, + 85, 81, 77, 61, 64, 55, 42, 34, 26, 17, 10, 9, -3, -2, -5, -13, + -15, -20, -23, -27, -27, -32, -37, -38, -41, -40, -41, -39, -43, -43, -40, -48, + -47, -49, -55, -61, -59, -70, -80, -69, -87, -83, -79, -97, -89, -98, -101, -107, + -96, -93, -101, -77, -90, -84, -62, -63, -49, -36, -34, -30, -15, -12, -2, 11, + 20, 32, 39, 53, 56, 71, 87, 89, 103, 101, 109, 109, 109, 118, 106, 114, + 111, 101, 107, 102, 93, 99, 94, 84, 85, 71, 65, 62, 54, 45, 32, 30, + 16, 12, 8, -5, -2, -9, -14, -16, -24, -22, -27, -29, -31, -38, -41, -38, + -44, -42, -41, -47, -45, -44, -48, -50, -50, -52, -62, -57, -69, -79, -69, -83, + -88, -78, -99, -97, -92, -109, -106, -91, -100, -93, -76, -91, -80, -60, -66, -48, + -37, -38, -32, -18, -15, -4, 11, 14, 31, 42, 48, 60, 69, 85, 94, 96, + 102, 107, 103, 109, 115, 104, 112, 109, 100, 106, 103, 95, 97, 96, 84, 82, + 73, 60, 62, 54, 41, 33, 27, 17, 14, 7, 0, 0, -8, -11, -16, -23, + -23, -29, -29, -32, -39, -40, -40, -40, -41, -40, -46, -48, -45, -50, -51, -54, + -56, -64, -63, -71, -78, -73, -84, -82, -87, -95, -93, -102, -102, -108, -95, -96, + -95, -76, -90, -77, -57, -61, -42, -33, -35, -26, -13, -14, 3, 15, 17, 36, + 45, 54, 60, 80, 89, 96, 108, 101, 111, 110, 109, 118, 107, 110, 109, 102, + 103, 103, 95, 97, 96, 83, 82, 70, 60, 61, 51, 38, 28, 23, 11, 8, + 4, -7, -3, -10, -16, -17, -22, -25, -27, -29, -35, -38, -43, -42, -41, -40, + -39, -43, -42, -44, -45, -46, -53, -51, -55, -68, -65, -75, -79, -77, -88, -83, + -94, -93, -101, -105, -96, -96, -92, -85, -85, -83, -71, -64, -57, -41, -41, -31, + -27, -17, -7, 2, 18, 23, 38, 48, 51, 68, 78, 91, 98, 102, 106, 108, + 110, 112, 115, 110, 115, 107, 107, 108, 99, 102, 97, 94, 87, 76, 70, 63, + 60, 49, 39, 30, 22, 16, 8, 4, 0, -4, -10, -14, -20, -24, -25, -31, + -30, -37, -41, -40, -41, -38, -39, -40, -42, -41, -43, -48, -44, -55, -58, -57, + -71, -71, -73, -78, -79, -80, -88, -89, -95, -99, -103, -101, -88, -98, -85, -79, + -90, -62, -60, -54, -35, -35, -27, -21, -9, -3, 7, 22, 26, 38, 52, 54, + 67, 87, 89, 101, 105, 103, 114, 107, 117, 112, 107, 116, 100, 105, 103, 94, + 98, 93, 87, 80, 73, 65, 59, 56, 45, 31, 28, 19, 6, 10, -3, -5, + -4, -17, -16, -22, -24, -25, -30, -28, -39, -37, -40, -44, -40, -44, -46, -46, + -47, -51, -50, -55, -55, -60, -67, -65, -81, -75, -78, -93, -78, -97, -101, -94, + -113, -104, -92, -96, -91, -79, -86, -79, -58, -58, -49, -34, -34, -33, -14, -12, + -5, 20, 19, 34, 49, 49, 66, 76, 91, 98, 98, 105, 104, 107, 111, 110, + 109, 108, 108, 103, 101, 102, 97, 95, 96, 80, 75, 71, 56, 58, 49, 33, + 28, 20, 13, 7, 4, -4, -7, -9, -18, -22, -22, -28, -30, -30, -38, -41, + -41, -43, -40, -41, -40, -44, -43, -45, -48, -49, -55, -55, -59, -67, -66, -82, + -70, -81, -86, -78, -101, -92, -98, -111, -98, -95, -95, -89, -76, -91, -70, -56, + -61, -38, -34, -33, -25, -12, -10, 1, 21, 15, 39, 47, 48, 68, 75, 90, + 97, 101, 103, 106, 106, 110, 111, 104, 111, 101, 99, 103, 96, 94, 95, 92, + 75, 79, 64, 55, 64, 43, 36, 30, 17, 13, 9, 3, -4, -3, -12, -16, + -18, -23, -25, -26, -29, -35, -38, -42, -40, -39, -41, -38, -48, -42, -45, -50, + -49, -52, -57, -63, -57, -78, -76, -67, -94, -75, -88, -100, -92, -103, -106, -97, + -88, -96, -81, -77, -85, -60, -55, -51, -35, -30, -33, -19, -9, -10, 17, 16, + 30, 46, 48, 64, 72, 86, 96, 101, 104, 105, 111, 104, 116, 109, 107, 110, + 104, 101, 104, 100, 93, 100, 86, 77, 78, 59, 60, 54, 40, 32, 23, 18, + 9, 9, 0, -5, -6, -14, -17, -20, -23, -25, -26, -31, -35, -39, -40, -36, + -40, -37, -40, -45, -42, -45, -48, -51, -50, -57, -64, -62, -76, -78, -71, -90, + -84, -88, -101, -97, -105, -108, -94, -97, -92, -81, -87, -76, -63, -58, -42, -36, + -33, -27, -15, -10, -2, 18, 19, 34, 49, 47, 66, 78, 86, 102, 104, 104, + 111, 109, 112, 115, 112, 110, 108, 106, 101, 102, 98, 96, 97, 86, 79, 72, + 62, 61, 51, 39, 32, 20, 15, 10, 2, 1, -4, -9, -13, -18, -22, -24, + -25, -29, -33, -37, -41, -39, -37, -39, -39, -43, -46, -46, -49, -49, -56, -54, + -57, -68, -66, -73, -77, -79, -83, -90, -96, -95, -107, -110, -98, -97, -98, -76, + -87, -83, -56, -68, -49, -34, -43, -28, -26, -18, -8, 3, 14, 22, 39, 47, + 54, 70, 83, 90, 101, 100, 104, 107, 102, 113, 103, 106, 109, 95, 106, 99, + 95, 101, 92, 93, 83, 74, 66, 60, 56, 44, 33, 26, 17, 12, 8, 1, + 2, -4, -11, -10, -21, -19, -25, -29, -28, -39, -38, -41, -41, -37, -40, -42, + -43, -42, -45, -47, -48, -56, -52, -59, -69, -67, -78, -78, -79, -88, -86, -95, + -100, -99, -112, -95, -92, -101, -77, -86, -86, -62, -65, -51, -39, -35, -31, -26, + -8, -11, 7, 26, 21, 45, 53, 50, 76, 86, 90, 105, 102, 105, 109, 108, + 115, 107, 112, 110, 100, 108, 100, 96, 100, 93, 89, 79, 72, 64, 58, 56, + 42, 31, 28, 14, 10, 9, -5, -2, -6, -14, -15, -22, -22, -27, -28, -31, + -41, -37, -41, -42, -37, -41, -45, -43, -45, -47, -48, -49, -58, -53, -64, -71, + -68, -82, -75, -83, -91, -87, -103, -97, -104, -111, -90, -98, -95, -77, -91, -76, + -61, -63, -43, -41, -35, -29, -23, -7, -7, 13, 22, 24, 50, 50, 59, 82, + 82, 99, 102, 100, 110, 105, 111, 113, 104, 114, 103, 104, 107, 96, 102, 97, + 92, 90, 77, 73, 64, 58, 53, 38, 31, 23, 13, 12, 3, 0, -2, -11, + -10, -17, -21, -20, -29, -27, -33, -40, -38, -44, -39, -39, -43, -41, -42, -42, + -46, -42, -53, -53, -52, -71, -67, -73, -83, -80, -81, -89, -93, -91, -100, -106, + -97, -96, -93, -88, -81, -85, -79, -59, -58, -48, -30, -36, -28, -11, -9, -2, + 21, 22, 32, 50, 52, 58, 79, 89, 90, 104, 104, 100, 113, 111, 109, 114, + 109, 107, 103, 104, 99, 94, 97, 91, 78, 79, 65, 58, 61, 47, 37, 30, + 23, 14, 10, 7, -7, -4, -8, -21, -17, -23, -30, -26, -30, -36, -37, -39, + -38, -38, -36, -38, -45, -41, -45, -49, -51, -56, -57, -63, -64, -69, -78, -70, + -80, -84, -84, -91, -100, -98, -106, -108, -90, -103, -90, -80, -93, -65, -64, -52, + -38, -37, -27, -26, -12, -6, 3, 18, 22, 36, 48, 54, 69, 84, 89, 105, + 103, 106, 117, 105, 117, 113, 106, 113, 101, 105, 101, 99, 98, 93, 94, 83, + 75, 70, 60, 55, 49, 33, 27, 19, 10, 8, -2, -2, -7, -13, -12, -22, + -20, -23, -28, -28, -35, -39, -40, -41, -40, -42, -40, -43, -42, -42, -44, -46, + -49, -52, -59, -60, -70, -74, -71, -84, -82, -88, -96, -98, -100, -105, -102, -88, + -95, -83, -79, -87, -62, -62, -52, -40, -39, -31, -27, -14, -10, 7, 17, 25, + 42, 49, 59, 72, 85, 92, 103, 103, 102, 111, 104, 113, 110, 104, 112, 102, + 107, 103, 101, 99, 97, 92, 81, 76, 64, 61, 54, 42, 33, 24, 17, 11, + 8, -2, -2, -5, -13, -12, -22, -23, -26, -31, -32, -38, -40, -43, -39, -40, + -41, -40, -44, -41, -44, -47, -51, -49, -62, -55, -68, -78, -68, -89, -79, -81, + -96, -85, -101, -100, -103, -98, -91, -97, -79, -83, -87, -61, -64, -55, -31, -41, + -29, -15, -19, 3, 9, 18, 33, 36, 56, 54, 71, 87, 87, 103, 103, 103, + 110, 107, 113, 112, 108, 111, 101, 104, 103, 92, 101, 92, 84, 84, 66, 65, + 59, 51, 45, 31, 27, 16, 10, 6, -3, -3, -9, -15, -16, -22, -24, -25, + -30, -28, -36, -40, -36, -42, -38, -41, -45, -44, -47, -47, -49, -51, -52, -54, + -62, -68, -73, -78, -81, -84, -83, -97, -94, -101, -113, -100, -99, -96, -87, -83, + -85, -75, -60, -60, -43, -36, -38, -27, -20, -15, 0, 14, 19, 33, 47, 49, + 67, 78, 90, 100, 103, 105, 107, 108, 110, 112, 109, 109, 107, 102, 105, 100, + 99, 98, 95, 84, 80, 69, 59, 60, 48, 36, 31, 18, 14, 9, 3, -2, + -5, -10, -15, -19, -24, -25, -28, -31, -34, -39, -41, -40, -38, -40, -38, -43, + -43, -42, -48, -47, -53, -54, -58, -67, -63, -79, -73, -78, -90, -80, -98, -97, + -101, -109, -105, -93, -98, -90, -76, -93, -66, -60, -59, -33, -42, -32, -26, -18, + -9, 0, 17, 21, 38, 48, 53, 69, 82, 93, 101, 107, 102, 112, 108, 111, + 115, 105, 112, 103, 105, 104, 96, 103, 95, 95, 85, 76, 68, 63, 59, 47, + 38, 26, 19, 13, 7, 1, -3, -4, -14, -12, -19, -23, -21, -29, -29, -35, + -40, -41, -42, -39, -43, -42, -46, -43, -47, -45, -48, -54, -47, -66, -61, -68, + -85, -66, -90, -84, -84, -103, -91, -106, -105, -96, -90, -92, -81, -79, -86, -59, + -59, -53, -34, -36, -33, -19, -10, -10, 17, 20, 26, 52, 48, 60, 75, 85, + 95, 102, 104, 102, 111, 107, 113, 110, 109, 111, 103, 107, 102, 97, 96, 95, + 85, 77, 73, 56, 60, 52, 37, 33, 22, 16, 11, 7, -3, -4, -6, -16, + -14, -21, -24, -24, -28, -32, -37, -38, -42, -36, -37, -39, -39, -43, -40, -42, + -48, -50, -50, -64, -57, -70, -84, -63, -90, -81, -77, -101, -85, -99, -105, -102, + -100, -92, -99, -79, -89, -86, -58, -65, -49, -29, -41, -26, -11, -19, 6, 12, + 14, 39, 37, 52, 60, 68, 90, 90, 104, 102, 106, 111, 108, 118, 109, 109, + 111, 98, 106, 101, 90, 101, 90, 82, 86, 63, 65, 63, 48, 47, 29, 25, + 16, 10, 6, -6, -3, -13, -18, -16, -26, -25, -25, -32, -30, -39, -43, -37, + -43, -39, -39, -48, -44, -46, -53, -50, -56, -59, -59, -67, -72, -77, -76, -84, + -83, -84, -100, -95, -103, -115, -98, -93, -103, -82, -82, -91, -60, -62, -54, -34, + -35, -31, -23, -13, -11, 7, 19, 21, 43, 48, 55, 73, 85, 94, 104, 102, + 109, 110, 105, 118, 107, 109, 113, 98, 106, 103, 96, 99, 98, 90, 82, 79, + 62, 62, 58, 41, 34, 26, 14, 10, 8, -3, -2, -5, -14, -13, -20, -20, + -24, -26, -28, -38, -39, -42, -42, -41, -41, -42, -48, -41, -43, -50, -41, -49, + -59, -50, -68, -74, -67, -82, -80, -89, -87, -101, -101, -93, -121, -85, -90, -105, + -65, -93, -82, -55, -69, -49, -38, -46, -32, -27, -19, -5, 3, 19, 26, 41, + 53, 52, 81, 81, 95, 104, 90, 113, 101, 105, 118, 99, 113, 109, 100, 109, + 104, 98, 104, 96, 89, 83, 71, 66, 57, 56, 38, 28, 29, 8, 17, 6, + -2, 3, -24, -13, -79, -103, -120, -116, -104, -87, -76, -63, 63, 82, 97, 108, + 119, 99, 70, 69, 80, 91, 92, 98, 115, 124, 127, 113, 82, 42, 4, -44, + -70, -82, -100, -87, -62, -58, -71, -65, -79, -60, -102, -113, -62, -44, -31, -31, + -22, -18, -3, 4, 11, 20, 28, 11, 15, 18, 27, 18, 7, 13, 26, 11, + -19, -69, -108, -84, -51, -21, -3, -6, -18, -17, -31, -33, -18, 2, 4, 26, + 47, 48, 77, 117, 127, 127, 127, 121, 110, 86, 72, 62, 46, 11, 17, -2, + -7, -13, -44, -60, -61, -61, -63, -72, -79, -99, -116, -127, -128, -128, -124, -81, + -51, -4, 5, -6, 7, 8, 9, 31, 31, 16, 34, 28, 34, 34, 46, 78, + 84, 93, 69, 47, 40, 64, 44, 27, 22, 0, -29, -8, 15, -6, -36, -66, + -68, -42, 0, 6, 1, 13, 24, 41, 64, 58, 50, 40, 4, 0, 3, -24, + -3, 21, 28, 26, 9, -30, -42, -61, -85, -92, -91, -96, -87, -74, -31, -20, + -38, -14, -44, -17, 18, -25, -9, 7, 1, 11, -2, -19, 12, 47, 76, 72, + 58, 68, 69, 82, 86, 76, 58, 9, -23, -12, -7, -22, -2, 0, -9, -2, + -15, -10, -3, -22, -17, -38, -44, -33, -24, -27, -16, 0, -15, 20, 19, 18, + 1, 10, 41, -1, -25, -25, -11, 30, 37, 9, 45, 37, -30, -30, 21, 5, + -26, -43, -56, -42, -48, -48, -29, -62, -76, -42, -23, -12, -14, 8, 45, 36, + 40, 25, 14, 11, 40, 46, 55, 65, 30, 17, 30, 36, 33, 18, 13, 16, + 15, 46, 37, 2, -1, -26, -36, -19, -21, -36, -62, -51, -48, -20, -2, 3, + -12, -12, -10, -35, -37, -49, -22, 14, 61, 40, 60, 75, 33, 41, 48, 38, + 29, -32, -45, -56, -64, -61, -30, -20, 30, 10, -46, -37, -35, -30, -24, -12, + -23, -34, -29, -22, -20, -14, 4, 44, 77, 49, 10, 8, 24, 20, 28, 31, + 27, 40, 35, 69, 39, 54, 38, 26, 22, 43, 36, 7, 14, 2, -25, -50, + -51, -56, -42, -55, -46, -36, -44, -36, -35, 1, 23, 11, -3, -34, -66, -33, + -12, -31, -27, -13, -1, 21, 31, 23, 0, -11, -3, -2, 9, 27, 5, -8, + -2, -17, -13, 10, 9, 3, 35, 32, 43, 24, 15, 2, -15, -9, -5, 2, + 5, 27, 25, 42, 76, 61, 17, 25, 14, -5, -17, -24, -6, 11, 23, 7, + -8, 5, -11, -23, -27, -48, -30, -12, -26, -36, -37, -39, -46, -61, -55, -23, + -20, -22, -14, -10, -16, -16, -22, -11, -3, -14, -34, -16, 9, 28, 25, 50, + 63, 52, 56, 46, 50, 54, 56, 45, 54, 29, 20, 21, 0, 0, 6, 16, + 28, 14, -1, -9, -10, -4, -9, -13, -7, -21, -27, -29, -40, -41, -35, -42, + -64, -11, 9, 2, -12, -24, -37, -40, -34, -29, -34, -12, -26, -20, -6, -4, + 5, 5, 27, 1, -17, 2, 21, 12, 8, 9, 15, 23, 24, 1, 5, 22, + 25, 28, 57, 55, 41, 33, 36, 27, 5, 1, 15, 34, 23, 4, 20, 18, + -1, -21, -22, -15, -17, -8, -6, -6, -12, -15, -26, 1, 29, -8, -40, -52, + -55, -19, -21, -36, -48, -56, -29, -15, -29, -39, -46, -35, -14, -11, -16, 1, + 27, 22, -10, -14, -7, -12, -12, 23, 55, 48, 65, 42, 20, 46, 45, 49, + 42, 38, 34, 25, 33, 21, 10, 38, 40, 26, 22, 37, 33, 12, 4, 7, + -14, -49, -41, -36, -53, -40, -35, -44, -31, -22, -19, -50, -78, -80, -78, -48, + -31, -18, -27, -28, -7, -17, -11, 5, 32, 39, 19, 14, 22, 34, 37, 23, + 20, 40, 40, 27, 14, 11, 7, 29, 34, 19, 32, 7, -15, -12, -24, -12, + 8, 6, 21, 34, 29, -6, -22, -15, 1, -1, 24, 27, 20, 36, 42, 45, + 27, -14, -50, -34, -14, -26, -25, -10, 10, -4, -28, -30, -34, -69, -91, -85, + -74, -51, -38, -24, -19, -9, -7, -30, -35, -30, -36, -12, 25, 32, 44, 50, + 45, 51, 68, 94, 90, 74, 60, 52, 64, 48, 30, 11, 11, 11, 2, 14, + 24, 16, 13, -7, -17, -9, -12, -20, -32, -45, -54, -58, -35, -23, -46, -51, + -33, -28, -29, -24, -36, -30, -24, -22, -20, -13, -9, -14, -7, 10, 26, 22, + 9, 9, 10, -2, -9, -15, -11, -1, 19, 27, 33, 28, 5, 3, 5, 6, + 10, 14, 24, 32, 36, 40, 41, 37, 19, 11, 3, -7, -10, -7, 6, 27, + 38, 28, 23, 16, 18, 15, -7, -33, -20, -13, -24, -25, -19, -15, -26, -52, + -56, -48, -41, -36, -30, -32, -30, -15, -38, -49, -47, -32, -17, -17, -11, -3, + 3, 8, 24, 28, 16, 6, 1, 7, 28, 41, 42, 69, 87, 78, 73, 62, + 30, 14, 9, 7, 15, 32, 20, 10, -8, -20, 2, 9, -2, 5, 12, -4, + -12, -19, -32, -37, -29, -24, -28, -39, -43, -40, -44, -28, -25, -33, -39, -37, + -34, -29, -28, -25, -19, -1, -5, -22, -12, 2, 6, 38, 46, 25, 30, 41, + 47, 37, 21, 7, -7, -8, 11, 39, 48, 43, 35, 27, 25, 22, -1, -22, + -11, 13, -4, -13, -3, -8, -7, -11, -17, -5, 5, 9, 8, 15, 25, 16, + 22, 20, 5, -16, -27, -29, -30, -9, 9, 9, 3, -14, -50, -56, -56, -79, + -92, -80, -57, -24, 12, 10, 11, 4, -22, -21, -13, -2, 4, 10, 15, 8, + 35, 72, 53, 44, 25, 25, 48, 56, 69, 53, 50, 75, 85, 71, 33, 12, + -16, -32, -25, -14, -5, -16, -23, -19, -22, -39, -41, -47, -45, -33, -35, -39, + -38, -35, -34, -29, -28, -28, -23, -10, -7, -9, -11, -18, -5, 13, 1, -13, + -8, -5, 6, 27, 46, 43, 25, 8, 11, 16, 18, 23, 30, 12, 5, 10, + 7, 5, -6, -4, -5, 1, 10, 9, 15, 21, 17, 10, -8, -16, 10, 33, + 34, 23, 13, 17, 17, 9, 11, 7, -4, -8, -8, -22, -27, -26, -19, -7, + -18, -16, -16, -47, -62, -55, -36, -16, -25, -33, -30, -34, -42, -49, -41, -43, + -31, -20, -3, 28, 48, 66, 64, 36, 20, 26, 21, 22, 39, 51, 45, 39, + 40, 53, 56, 39, 24, 16, 12, 16, 24, 27, 16, 13, 7, -18, -33, -50, + -47, -33, -24, -20, -26, -32, -31, -46, -53, -58, -56, -29, -13, -11, -2, 8, + -11, -24, -11, -9, -6, -2, -6, 1, 4, 5, 11, 6, 7, 16, 30, 28, + 19, 15, 7, 4, 11, 27, 22, 6, 9, 11, 3, 4, 17, 27, 18, 11, + 12, 5, 2, -2, -6, -7, -2, 10, 12, 9, 1, -2, 3, 4, 11, 21, + 30, 28, 6, -9, -18, -22, -22, -38, -41, -27, -18, -18, -27, -27, -23, -32, + -35, -32, -34, -30, -25, -24, -18, -9, -5, 5, -5, -26, -19, -11, -4, 11, + 37, 48, 46, 50, 53, 50, 45, 45, 37, 18, 24, 44, 38, 43, 47, 29, + 15, 11, 10, 12, 4, -8, -6, -4, -17, -27, -28, -36, -34, -37, -53, -53, + -46, -38, -38, -37, -28, -24, -23, -37, -42, -30, 0, 20, 18, 12, 14, 9, + 2, 6, 15, 13, 10, 14, 12, 2, 12, 29, 21, 1, 7, 21, 19, 14, + 15, 15, 4, -1, 5, -1, -4, 0, -2, 3, 6, 6, 13, 21, 15, 7, + 3, 5, 2, -3, 3, 3, 5, 8, 10, 16, 14, -1, -7, 2, 11, 12, + -10, -35, -42, -26, -21, -37, -44, -44, -47, -42, -27, -27, -23, -15, -16, -20, + -21, -14, -12, -9, -7, -6, 0, 13, 30, 32, 37, 38, 31, 24, 25, 43, + 54, 49, 46, 44, 40, 41, 30, 9, -1, 6, 22, 31, 22, 9, 0, -14, + -23, -29, -29, -28, -35, -39, -39, -39, -33, -25, -30, -44, -49, -45, -45, -35, + -19, 2, 16, 16, 9, 0, 0, 6, 2, -1, 11, 27, 40, 32, 16, -2, + -2, 1, 3, 1, 7, 12, 6, 8, 11, 5, -1, -2, -1, 1, 8, 10, + 5, 4, 14, 17, 6, -1, 0, 4, 4, 17, 23, 19, 25, 20, 5, -8, + -9, -2, -1, -6, -3, 13, 16, 1, -13, -19, -21, -26, -34, -37, -23, -13, + -13, -24, -40, -42, -40, -39, -29, -22, -21, -18, -12, -2, 18, 24, 10, 0, + -6, -4, 15, 33, 34, 34, 44, 41, 31, 33, 44, 43, 31, 22, 20, 17, + 16, 23, 22, 19, 21, 10, -5, -6, -9, -8, -2, -5, -16, -28, -36, -47, + -53, -39, -23, -21, -24, -32, -43, -39, -34, -24, -18, -14, -11, -12, -6, 10, + 29, 41, 40, 27, 14, 10, 4, 1, 3, 2, 9, 19, 21, 9, -10, -16, + -10, 8, 18, 20, 13, -3, -8, -4, -1, 2, 5, 5, -1, 3, 9, 12, + 16, 16, 14, 9, 3, 5, 10, 4, -6, 1, 6, 5, 13, 20, 11, 1, + -7, -21, -30, -25, -12, -9, -13, -19, -24, -29, -34, -30, -32, -39, -33, -24, + -20, -22, -24, -13, 3, 6, 2, 1, 3, 5, 16, 30, 35, 35, 24, 16, + 15, 19, 31, 37, 33, 28, 29, 29, 30, 26, 20, 15, 13, 10, 10, 12, + 9, 7, -3, -21, -39, -44, -43, -42, -34, -26, -23, -18, -12, -18, -32, -36, + -31, -27, -20, -10, -7, -9, -11, -5, 2, 12, 19, 19, 25, 24, 11, 3, + 15, 29, 30, 20, 9, 1, -1, 1, 5, 2, -3, -2, 0, -6, -18, -27, + -20, -3, 8, 13, 15, 11, 7, 10, 18, 16, 10, 6, 3, -1, 1, 11, + 19, 19, 15, 14, 5, -2, -2, -7, -12, -15, -20, -16, -10, -5, 2, 1, + -13, -29, -33, -24, -10, -6, -13, -18, -23, -31, -32, -26, -22, -18, -13, -3, + 2, 3, 7, 8, 10, 19, 27, 32, 33, 33, 35, 38, 43, 41, 29, 9, + -4, -9, 2, 16, 17, 13, 15, 17, 13, 10, 5, -1, -8, -18, -29, -32, + -27, -21, -22, -30, -31, -31, -33, -31, -27, -18, -7, -6, -15, -16, -8, -1, + 4, 12, 18, 22, 20, 16, 11, 10, 14, 18, 16, 15, 14, 9, 6, 4, + 3, 3, 0, -5, -13, -18, -15, -13, -9, -7, -8, -5, -2, -5, -1, 5, + 8, 10, 11, 12, 17, 19, 16, 10, 4, 4, 8, 8, 8, 13, 14, 9, + 3, 0, -1, 0, 0, -7, -19, -24, -20, -15, -12, -15, -21, -23, -24, -26, + -28, -29, -28, -21, -10, -1, 5, 6, -3, -12, -14, -11, -1, 12, 16, 17, + 28, 36, 28, 20, 25, 27, 24, 25, 28, 21, 15, 11, 3, 4, 12, 11, + 0, -7, -5, -1, -1, -5, -8, -11, -17, -23, -22, -19, -21, -20, -20, -22, + -24, -22, -17, -20, -24, -20, -10, 2, 10, 13, 14, 14, 11, 8, 8, 12, + 17, 18, 20, 20, 14, 4, -1, -2, -1, 3, 11, 12, 6, 0, -9, -20, + -25, -18, -9, -8, -13, -18, -19, -14, -6, 0, 4, 11, 19, 22, 20, 19, + 15, 13, 14, 18, 17, 12, 7, 9, 14, 9, -1, -4, -1, -5, -10, -12, + -16, -23, -19, -7, -5, -10, -10, -11, -19, -27, -24, -14, -6, -3, -10, -21, + -24, -15, -6, 0, 9, 15, 12, 8, 6, 9, 9, 11, 20, 26, 31, 35, + 30, 21, 16, 16, 13, 6, 2, 4, 5, 3, -2, -10, -13, -11, -8, -9, + -13, -16, -18, -18, -19, -22, -18, -8, -3, -1, 0, -5, -11, -10, -9, -11, + -9, -2, 2, 4, 10, 15, 18, 19, 21, 21, 22, 22, 15, 4, -4, -8, + -7, -6, -10, -14, -18, -23, -20, -15, -8, -1, 0, -4, -7, -9, -9, -6, + -2, 2, 6, 7, 4, 1, 0, 7, 13, 11, 14, 22, 22, 15, 8, 2, + 4, 10, 16, 17, 13, 10, 9, 6, -3, -13, -23, -26, -21, -17, -14, -12, + -13, -16, -14, -9, -8, -8, -11, -18, -18, -12, -4, 0, 2, 6, 6, -1, + -6, 0, 8, 11, 13, 11, 6, 6, 9, 13, 16, 16, 15, 10, 7, 10, + 10, 4, 0, -2, -3, -1, 2, 2, -1, -5, -13, -21, -27, -30, -26, -16, + -4, 5, 8, 6, 2, -3, -5, -1, 4, 8, 9, 11, 11, 6, 0, 0, + 7, 12, 13, 11, 7, 1, -4, -3, 0, 5, 6, 5, -2, -10, -13, -13, + -10, -5, -4, -9, -18, -28, -31, -24, -14, -10, -4, 2, 5, 4, 2, 4, + 13, 20, 21, 19, 14, 11, 11, 12, 13, 14, 15, 17, 18, 18, 14, 5, + -3, -5, -8, -11, -11, -12, -15, -15, -13, -13, -15, -13, -12, -15, -16, -11, + -7, -6, -4, -1, 4, 6, -1, -10, -11, -7, -4, -1, 4, 9, 11, 12, + 9, 7, 8, 8, 7, 9, 13, 15, 12, 4, 1, 1, -2, -9, -10, -7, + -1, 3, 3, -1, -9, -12, -9, -5, 1, 3, -2, -10, -10, -7, -4, 2, + 8, 6, 4, 6, 5, -1, -1, 7, 17, 20, 17, 16, 19, 16, 7, -3, + -8, -9, -9, -11, -15, -24, -27, -20, -15, -12, -11, -7, -3, -4, -6, -7, + -6, -8, -14, -18, -18, -15, -10, -5, 3, 12, 18, 20, 17, 11, 10, 16, + 21, 22, 23, 23, 22, 17, 9, 0, -3, 2, 10, 15, 16, 11, 2, -9, + -19, -23, -22, -15, -10, -8, -11, -13, -15, -17, -19, -18, -15, -10, -3, 1, + -2, -6, -3, 0, -3, -3, 0, 6, 10, 9, 7, 4, -1, -4, 0, 10, + 17, 16, 11, 5, 0, -1, 2, 5, 1, -6, -10, -10, -8, -6, -4, -2, + -4, -7, -9, -9, -6, 2, 12, 17, 16, 11, 8, 7, 6, 5, 7, 9, + 12, 14, 14, 9, 3, -1, -3, -5, -4, 0, 4, -1, -10, -18, -24, -29, + -28, -20, -14, -13, -12, -8, -5, -5, -9, -13, -14, -11, -10, -9, -4, 1, + 3, 2, 3, 8, 16, 20, 18, 13, 10, 14, 24, 29, 29, 27, 23, 17, + 14, 16, 17, 15, 9, -1, -7, -10, -14, -18, -16, -11, -8, -7, -8, -12, + -18, -26, -29, -26, -19, -11, -5, -3, -3, -2, 0, 2, 0, -3, -3, -2, + -3, -4, -2, -1, 3, 7, 9, 8, 7, 3, 1, 4, 5, 2, 3, 5, + 5, 0, -7, -9, -6, -1, 5, 9, 8, 3, -2, -6, -5, 3, 9, 12, + 11, 8, 4, 3, 4, 6, 11, 13, 8, 1, 0, 4, 9, 13, 12, 5, + 2, 3, 3, 0, -6, -16, -26, -30, -28, -26, -22, -18, -17, -19, -22, -24, + -19, -12, -7, -2, 1, 0, -2, -4, -5, -2, 4, 10, 14, 15, 15, 16, + 16, 17, 19, 22, 26, 25, 19, 13, 10, 7, 9, 11, 10, 7, 4, 1, + -5, -8, -8, -4, 0, 1, -4, -11, -16, -17, -16, -14, -12, -10, -11, -14, + -15, -16, -13, -9, -3, 1, 2, 1, 0, 0, -3, -9, -13, -10, -8, -7, + -4, 0, 3, 6, 9, 9, 5, 3, 3, 5, 8, 12, 12, 6, -1, -2, + 2, 8, 8, 4, -2, -5, -1, 4, 10, 13, 14, 13, 13, 14, 14, 12, + 10, 8, 8, 8, 6, 6, 9, 6, -1, -9, -15, -19, -22, -24, -23, -25, + -25, -23, -20, -19, -19, -21, -20, -20, -21, -19, -11, -2, 2, 1, 0, 3, + 9, 13, 15, 16, 14, 10, 5, 3, 8, 14, 16, 18, 20, 22, 24, 21, + 15, 9, 6, 8, 14, 18, 15, 9, 4, 1, 0, -2, -4, -4, -3, -3, + -4, -7, -11, -13, -12, -11, -15, -19, -22, -25, -25, -21, -14, -11, -15, -19, + -18, -14, -7, -1, 4, 2, -3, -6, -4, 0, 5, 10, 16, 17, 12, 7, + 2, -1, -3, 0, 3, 6, 10, 14, 12, 6, 2, 5, 10, 15, 18, 18, + 16, 14, 11, 6, 4, 3, 1, 1, 2, 6, 9, 9, 3, -2, -3, -4, + -6, -8, -10, -15, -19, -20, -19, -18, -17, -15, -16, -17, -18, -20, -22, -21, + -16, -11, -4, 1, 0, -4, -4, -1, 1, 2, 4, 4, 3, 3, 4, 7, + 11, 16, 21, 20, 15, 11, 9, 12, 16, 21, 24, 23, 21, 17, 13, 11, + 9, 4, 0, 0, 1, 3, 4, 0, -4, -7, -7, -9, -13, -17, -20, -22, + -23, -21, -16, -12, -12, -15, -17, -17, -15, -12, -10, -10, -11, -12, -15, -15, + -10, -4, 0, -1, -1, 1, 4, 7, 13, 19, 22, 23, 21, 19, 18, 17, + 11, 5, 2, 5, 10, 13, 15, 15, 14, 13, 10, 5, 1, 0, 2, 5, + 8, 10, 9, 6, 4, 2, -1, -5, -7, -8, -7, -8, -11, -13, -14, -16, + -19, -21, -22, -22, -24, -23, -20, -17, -16, -16, -15, -16, -16, -15, -13, -11, + -9, -5, 0, 6, 12, 15, 18, 18, 17, 17, 19, 20, 19, 19, 20, 23, + 25, 25, 23, 20, 17, 13, 11, 9, 9, 8, 6, 3, 1, -2, -5, -5, + -2, -1, -3, -7, -6, -3, 0, -2, -9, -21, -29, -32, -32, -30, -27, -27, + -29, -30, -28, -24, -23, -21, -16, -7, 0, 1, 2, 2, 4, 7, 10, 14, + 16, 14, 12, 13, 15, 18, 20, 22, 23, 20, 15, 8, 3, 2, 7, 13, + 15, 13, 7, 2, 0, 0, -1, -2, -1, 1, 2, 1, 0, 2, 3, 4, + 4, 6, 7, 5, 0, -10, -21, -30, -36, -36, -33, -28, -23, -18, -15, -14, + -17, -19, -19, -17, -12, -5, -2, -2, -3, -1, 2, 6, 10, 12, 14, 13, + 12, 13, 18, 25, 29, 28, 24, 19, 14, 10, 6, 6, 9, 12, 13, 15, + 17, 18, 18, 14, 7, 0, -1, 1, 1, -2, -6, -8, -10, -11, -13, -17, + -19, -18, -17, -16, -14, -14, -15, -17, -19, -22, -26, -26, -24, -20, -17, -14, + -13, -12, -10, -7, -4, 1, 5, 7, 9, 10, 13, 15, 17, 18, 21, 24, + 22, 21, 19, 17, 15, 13, 14, 14, 16, 17, 18, 16, 12, 10, 8, 6, + 5, 3, 0, -3, -6, -7, -5, -4, -4, -5, -5, -4, -4, -4, -8, -13, + -19, -24, -27, -28, -27, -25, -25, -27, -27, -25, -19, -14, -8, -3, 1, 6, + 9, 8, 3, -3, -6, -4, -1, 4, 9, 14, 18, 20, 22, 22, 23, 23, + 22, 21, 20, 20, 21, 21, 19, 15, 9, 3, -2, -4, -3, 0, 2, 2, + 2, 3, 3, 1, -4, -10, -15, -19, -19, -16, -11, -7, -7, -9, -13, -17, + -23, -28, -30, -29, -24, -20, -18, -19, -20, -19, -18, -19, -18, -13, -5, 1, + 6, 9, 11, 13, 16, 21, 26, 29, 30, 29, 29, 28, 26, 23, 20, 20, + 21, 21, 20, 18, 15, 9, 2, -4, -6, -5, -3, -3, -4, -6, -7, -9, + -10, -10, -10, -10, -11, -13, -12, -11, -8, -6, -6, -10, -17, -26, -32, -35, + -35, -34, -32, -27, -19, -9, -3, -1, -2, -5, -7, -6, -1, 7, 14, 18, + 21, 23, 25, 26, 26, 23, 20, 20, 23, 24, 24, 21, 19, 14, 8, 2, + -1, 0, 1, 2, 3, 6, 8, 8, 5, 2, -2, -5, -5, -4, -1, 1, + 1, -1, -6, -9, -11, -13, -17, -20, -24, -26, -27, -26, -23, -21, -20, -23, + -26, -27, -26, -24, -20, -15, -9, -2, 4, 8, 10, 13, 16, 19, 21, 23, + 25, 28, 33, 36, 38, 38, 35, 32, 29, 24, 16, 11, 6, 2, -2, -6, + -6, -5, -4, -4, -7, -11, -14, -13, -10, -8, -8, -8, -9, -11, -12, -12, + -11, -11, -12, -14, -17, -19, -19, -18, -18, -20, -22, -23, -21, -18, -14, -11, + -8, -4, -1, 5, 11, 13, 11, 8, 6, 7, 9, 11, 13, 15, 19, 22, + 23, 25, 27, 27, 22, 17, 11, 6, 4, 5, 9, 13, 15, 15, 11, 6, + 0, -4, -7, -8, -6, -3, -2, -3, -6, -9, -13, -18, -22, -23, -20, -15, + -11, -10, -11, -14, -19, -24, -27, -28, -28, -27, -26, -23, -19, -15, -10, -6, + -1, 4, 8, 10, 11, 11, 13, 15, 17, 20, 23, 24, 24, 26, 28, 28, + 28, 27, 26, 24, 22, 20, 16, 13, 10, 8, 6, 3, -3, -9, -15, -17, + -16, -15, -13, -13, -14, -17, -19, -20, -20, -17, -14, -12, -13, -14, -13, -13, + -14, -15, -14, -13, -12, -12, -12, -10, -8, -7, -8, -9, -9, -7, -4, 0, + 3, 6, 8, 10, 12, 14, 18, 22, 25, 26, 27, 28, 28, 27, 24, 20, + 16, 13, 11, 9, 6, 3, 0, -3, -3, -2, 1, 3, 5, 3, 0, -4, + -8, -12, -17, -21, -22, -20, -17, -15, -14, -14, -13, -15, -19, -22, -21, -18, + -14, -13, -15, -16, -17, -17, -19, -19, -16, -11, -4, 1, 6, 10, 13, 17, + 20, 23, 24, 24, 24, 25, 28, 33, 37, 38, 35, 30, 24, 20, 16, 13, + 9, 2, -4, -8, -8, -8, -7, -7, -9, -12, -16, -18, -18, -16, -15, -16, + -16, -16, -13, -10, -10, -11, -13, -15, -15, -15, -15, -16, -17, -16, -14, -13, + -13, -13, -13, -12, -9, -5, -2, 1, 3, 6, 12, 18, 22, 22, 21, 18, + 16, 16, 19, 23, 29, 32, 30, 24, 18, 13, 9, 6, 3, 0, -2, -4, + -6, -8, -10, -11, -10, -6, -3, -2, -3, -5, -5, -6, -6, -7, -6, -5, + -4, -5, -8, -10, -11, -12, -14, -16, -18, -20, -21, -21, -22, -23, -24, -24, + -22, -18, -11, -4, 1, 4, 5, 6, 8, 11, 15, 20, 24, 26, 27, 28, + 31, 32, 31, 30, 28, 27, 24, 20, 17, 14, 12, 9, 3, -3, -9, -12, + -15, -16, -17, -15, -13, -10, -10, -11, -13, -14, -15, -17, -19, -21, -23, -24, + -22, -18, -13, -9, -8, -8, -8, -9, -9, -9, -7, -4, 0, 2, 3, 5, + 5, 3, 3, 4, 5, 6, 7, 10, 14, 17, 20, 20, 20, 21, 22, 20, + 18, 16, 15, 14, 12, 9, 7, 6, 4, 2, -2, -5, -7, -9, -9, -8, + -5, -2, 0, 0, -1, -3, -7, -12, -16, -16, -15, -13, -12, -13, -13, -12, + -11, -11, -12, -15, -19, -23, -24, -22, -19, -16, -13, -10, -5, -1, 3, 6, + 7, 8, 8, 10, 13, 17, 21, 25, 27, 28, 28, 26, 24, 24, 25, 27, + 28, 29, 28, 25, 19, 12, 4, -3, -10, -15, -19, -22, -24, -25, -26, -25, + -23, -21, -20, -18, -17, -16, -14, -12, -11, -12, -14, -14, -13, -13, -15, -16, + -16, -16, -15, -11, -4, 0, -2, 0, 0, 3, 14, 34, 24, -3, -14, -12, + 6, 6, -11, -23, -5, 15, 20, 15, -19, -12, 3, 19, 11, -5, 1, 4, + 7, -13, -3, 5, -13, 0, -2, 8, 0, -6, 16, 23, 13, 6, 2, 14, + 25, 2, 11, 3, -7, -8, -24, -6, -4, -18, 6, 30, 14, 9, 0, 0, + 13, -7, 0, -3, 9, 8, -6, -14, -15, -23, -19, -7, 0, -3, 1, -8, + -10, -10, -17, -12, -7, -10, 1, -12, -13, 0, -15, -20, -25, -16, -6, -7, + -6, -6, -2, -4, -13, -12, -6, -6, -5, 2, 8, -5, -13, -3, -4, -11, + -16, -3, 12, -2, -8, -4, -4, 4, -15, -17, -6, -2, 5, -4, 3, -2, + -10, -4, -5, -7, -8, 4, 17, 1, -3, -14, -4, -2, -7, -4, -6, 10, + 5, -6, -7, -8, 10, -5, -3, 3, -8, 11, 7, -5, -3, -13, -7, 0, + -6, 4, 0, -7, 12, -9, -17, -7, 5, 2, -3, -4, -7, 7, -2, -13, + -5, -2, 5, 4, 0, 7, -3, 4, 1, -2, -4, 6, 8, 8, 0, -2, + 2, 3, 2, 1, -2, 5, 12, 6, 3, 2, -3, 2, 3, 1, 8, 6, + 7, 2, -5, -3, 1, 5, 2, 0, -3, 2, 7, 2, 0, -9, 0, 5, + 1, 3, 1, 4, 6, -5, -3, -2, 2, 6, 4, 6, 1, 2, 4, 4, + -2, 2, 5, 5, 7, 7, 2, 6, 0, 3, 0, -3, 8, 4, 4, 9, + -3, 2, 1, 1, 2, 1, 5, 5, 4, 6, 1, -6, -2, 3, 5, 6, + 4, 3, 4, 1, 2, -4, 0, 6, 2, 2, 4, 3, 5, -3, -2, -5, + -3, 5, 2, 1, 3, 1, -2, -3, -4, -6, 3, 5, 1, -2, 1, 2, + -2, -2, -2, -3, 3, 5, 3, 4, 2, 2, 1, 0, 1, 4, 9, 9, + 5, 2, 1, 6, 4, 4, 5, 5, 7, 8, 4, 5, 1, 2, 3, 1, + 1, 4, 2, 3, 0, -4, -7, -5, 0, -3, -3, -3, -5, 0, -8, -7, + -8, -5, -3, -6, -3, -4, -5, 0, -7, -4, -5, -3, 1, 1, -2, 1, + -2, 2, 0, 0, -2, 3, 5, 4, 5, 4, 2, 4, 2, 4, 5, 6, + 5, 6, 4, 4, 4, 4, 3, 4, 2, 4, 4, 2, -2, -2, 0, -3, + -3, -3, -4, -2, -7, -6, -7, -9, -7, -10, -9, -10, -10, -8, -11, -9, + -9, -12, -10, -13, -12, -7, -8, -6, -6, -9, -6, -5, -3, 0, 0, 1, + 1, 4, 3, 4, 8, 6, 8, 7, 6, 10, 9, 12, 12, 11, 12, 8, + 13, 10, 11, 10, 8, 9, 8, 6, 9, 4, 5, 0, -3, -5, -5, -6, + -7, -9, -12, -15, -17, -21, -18, -22, -21, -23, -25, -24, -27, -27, -26, -30, + -27, -27, -28, -20, -22, -19, -14, -15, -12, -10, -10, -2, 3, 4, 12, 12, + 14, 20, 17, 25, 27, 29, 33, 35, 35, 40, 38, 41, 39, 36, 38, 36, + 36, 38, 31, 33, 25, 21, 14, 8, 1, 2, 0, -3, -5, -15, -23, -28, + -40, -39, -43, -46, -43, -52, -53, -59, -66, -62, -69, -63, -64, -64, -50, -56, + -44, -45, -43, -38, -36, -31, -20, -8, 4, 12, 19, 18, 28, 31, 40, 52, + 57, 68, 73, 73, 77, 73, 81, 79, 82, 82, 77, 82, 77, 75, 69, 59, + 53, 42, 33, 24, 22, 17, 11, 1, -17, -25, -36, -42, -46, -55, -60, -64, + -73, -77, -88, -90, -92, -97, -98, -100, -100, -92, -85, -79, -80, -76, -79, -69, + -56, -50, -32, -24, -15, 0, -2, 11, 15, 29, 45, 55, 67, 72, 82, 88, + 95, 101, 102, 109, 109, 112, 109, 110, 110, 106, 104, 91, 81, 77, 68, 66, + 54, 42, 32, 14, 6, -6, -12, -20, -29, -43, -55, -65, -76, -76, -85, -89, + -97, -105, -107, -114, -115, -117, -117, -113, -112, -104, -101, -91, -85, -84, -70, -72, + -55, -42, -34, -14, -8, 5, 16, 22, 35, 44, 57, 69, 78, 89, 94, 101, + 104, 109, 109, 119, 118, 117, 120, 110, 114, 114, 99, 102, 84, 74, 72, 57, + 52, 43, 32, 22, 10, -7, -20, -28, -34, -47, -54, -60, -67, -71, -80, -87, + -90, -105, -105, -110, -120, -115, -120, -123, -113, -111, -109, -97, -98, -92, -83, -82, + -76, -63, -61, -48, -39, -30, -16, -3, 10, 22, 32, 42, 49, 61, 67, 76, + 84, 91, 101, 105, 115, 116, 117, 125, 115, 119, 116, 106, 111, 102, 97, 92, + 84, 79, 70, 64, 50, 45, 31, 19, 14, -2, -9, -19, -30, -35, -47, -54, + -62, -67, -73, -82, -86, -96, -100, -105, -109, -116, -118, -120, -120, -117, -111, -110, + -97, -96, -90, -84, -78, -73, -64, -55, -50, -39, -25, -20, 1, 11, 19, 37, + 40, 51, 61, 68, 76, 85, 94, 97, 105, 114, 112, 120, 122, 119, 121, 117, + 110, 106, 105, 92, 90, 84, 69, 71, 57, 48, 45, 29, 22, 14, -2, -9, + -22, -31, -40, -47, -59, -62, -68, -76, -80, -87, -97, -96, -111, -111, -116, -124, + -119, -123, -120, -109, -109, -98, -95, -93, -84, -81, -75, -66, -55, -51, -37, -28, + -16, 1, 12, 23, 39, 40, 55, 59, 68, 77, 86, 94, 103, 104, 116, 117, + 118, 125, 122, 117, 120, 107, 108, 104, 95, 92, 85, 72, 70, 60, 48, 43, + 29, 18, 10, -7, -12, -22, -30, -38, -49, -58, -63, -72, -75, -84, -90, -93, + -100, -110, -103, -121, -115, -115, -124, -110, -112, -111, -92, -98, -86, -81, -77, -69, + -61, -53, -48, -34, -27, -13, 1, 9, 28, 37, 45, 58, 59, 76, 78, 85, + 97, 98, 109, 114, 111, 123, 120, 119, 121, 116, 111, 110, 101, 93, 92, 79, + 73, 68, 55, 52, 40, 30, 21, 10, 0, -13, -23, -29, -41, -47, -58, -64, + -69, -75, -84, -89, -93, -103, -105, -110, -120, -115, -117, -128, -105, -114, -109, -88, + -102, -86, -76, -84, -64, -63, -56, -43, -37, -25, -10, 4, 11, 31, 36, 46, + 56, 58, 74, 78, 84, 100, 95, 110, 114, 110, 124, 120, 116, 121, 110, 105, + 108, 97, 96, 91, 79, 75, 66, 57, 51, 38, 29, 17, 5, -3, -13, -20, + -28, -40, -46, -55, -66, -68, -76, -85, -88, -97, -102, -106, -110, -117, -115, -120, + -122, -108, -117, -103, -98, -96, -86, -79, -77, -66, -59, -54, -46, -33, -31, -10, + -2, 11, 27, 36, 47, 58, 62, 74, 78, 86, 94, 96, 106, 109, 115, 120, + 118, 121, 119, 112, 114, 104, 98, 94, 85, 77, 72, 63, 56, 49, 37, 31, + 20, 6, -2, -15, -24, -33, -44, -50, -58, -63, -68, -76, -82, -89, -95, -105, + -105, -116, -118, -117, -126, -114, -111, -118, -92, -105, -92, -83, -88, -72, -71, -65, + -51, -50, -31, -25, -9, 2, 16, 29, 35, 50, 53, 67, 73, 75, 92, 88, + 104, 112, 108, 122, 117, 119, 123, 114, 116, 110, 104, 98, 94, 86, 80, 75, + 63, 59, 47, 36, 29, 13, 9, -5, -16, -21, -36, -40, -50, -61, -61, -73, + -77, -85, -93, -95, -103, -108, -117, -120, -118, -125, -117, -108, -116, -96, -98, -97, + -83, -82, -78, -66, -61, -54, -43, -32, -25, -2, 3, 16, 33, 36, 52, 56, + 66, 75, 78, 94, 91, 103, 113, 108, 122, 119, 119, 121, 116, 112, 110, 106, + 93, 96, 83, 76, 74, 59, 58, 47, 34, 28, 14, 6, -6, -17, -27, -36, + -44, -54, -61, -63, -70, -76, -86, -90, -99, -102, -108, -117, -115, -121, -123, -111, + -120, -102, -100, -101, -84, -91, -76, -74, -70, -54, -56, -41, -30, -20, -3, 8, + 23, 31, 46, 47, 59, 70, 71, 83, 89, 90, 108, 108, 115, 120, 121, 122, + 118, 118, 109, 110, 102, 93, 93, 82, 78, 72, 62, 57, 45, 37, 22, 15, + 4, -10, -18, -30, -36, -42, -54, -57, -63, -68, -77, -86, -91, -102, -103, -108, + -117, -114, -119, -117, -115, -110, -106, -100, -91, -99, -79, -81, -77, -59, -61, -50, + -36, -33, -16, -4, 10, 16, 35, 39, 48, 62, 64, 76, 85, 89, 98, 105, + 110, 113, 120, 119, 118, 123, 112, 111, 110, 100, 98, 93, 82, 78, 70, 58, + 54, 45, 30, 24, 12, 0, -7, -20, -28, -36, -45, -55, -61, -66, -73, -79, + -88, -93, -103, -105, -112, -119, -115, -124, -123, -109, -119, -103, -98, -102, -92, -84, + -83, -75, -62, -59, -50, -34, -34, -12, 1, 7, 26, 33, 42, 50, 62, 67, + 76, 88, 90, 101, 110, 108, 118, 121, 119, 122, 121, 111, 113, 110, 98, 98, + 91, 80, 78, 66, 58, 53, 40, 29, 20, 8, -4, -11, -22, -33, -37, -49, + -57, -61, -68, -77, -81, -90, -96, -101, -110, -112, -116, -120, -116, -121, -119, -104, + -111, -96, -91, -96, -79, -79, -76, -59, -57, -46, -33, -25, -14, 5, 11, 26, + 39, 42, 55, 61, 70, 81, 86, 94, 101, 105, 114, 116, 120, 121, 119, 119, + 115, 111, 107, 102, 94, 90, 82, 73, 68, 59, 50, 41, 28, 20, 7, -4, + -12, -22, -30, -41, -48, -56, -62, -69, -75, -83, -90, -98, -100, -107, -111, -119, + -112, -124, -120, -107, -119, -101, -93, -104, -80, -85, -83, -61, -65, -55, -40, -38, + -25, -7, -3, 13, 29, 34, 45, 57, 59, 74, 79, 87, 98, 98, 108, 111, + 112, 122, 117, 119, 119, 111, 110, 107, 96, 96, 89, 76, 74, 63, 54, 51, + 35, 27, 19, 5, -3, -12, -25, -29, -43, -52, -58, -64, -71, -78, -82, -92, + -98, -101, -108, -110, -114, -120, -119, -118, -115, -110, -106, -95, -97, -82, -84, -76, + -62, -63, -51, -42, -39, -20, -12, 2, 15, 29, 36, 47, 58, 62, 74, 80, + 85, 95, 101, 106, 111, 116, 118, 117, 122, 113, 115, 111, 99, 103, 90, 85, + 80, 68, 63, 56, 46, 36, 28, 17, 5, -5, -19, -25, -35, -43, -52, -58, + -62, -72, -75, -83, -94, -94, -105, -105, -115, -115, -116, -122, -114, -112, -108, -98, + -99, -89, -86, -82, -72, -69, -58, -52, -44, -31, -21, -6, 4, 17, 28, 39, + 48, 53, 66, 72, 80, 88, 92, 104, 108, 113, 116, 119, 121, 116, 119, 112, + 108, 107, 94, 94, 85, 79, 72, 62, 57, 48, 37, 25, 17, 8, -8, -15, + -26, -35, -42, -55, -59, -65, -73, -75, -87, -89, -97, -104, -109, -116, -116, -121, + -120, -120, -109, -108, -103, -90, -97, -78, -78, -77, -60, -64, -50, -41, -34, -16, + -7, 9, 19, 33, 42, 52, 60, 65, 77, 79, 87, 96, 99, 109, 113, 118, + 124, 117, 121, 117, 109, 110, 99, 94, 93, 83, 77, 73, 63, 55, 50, 32, + 26, 18, 0, -6, -20, -29, -34, -49, -53, -57, -63, -71, -76, -83, -91, -97, + -108, -112, -114, -122, -115, -124, -112, -105, -112, -89, -99, -90, -78, -89, -72, -66, + -61, -49, -41, -28, -16, 2, 6, 25, 35, 36, 53, 54, 67, 77, 79, 93, + 97, 105, 112, 111, 122, 118, 119, 117, 112, 109, 108, 99, 95, 92, 82, 76, + 71, 59, 56, 43, 30, 24, 10, 0, -9, -18, -26, -36, -45, -55, -59, -68, + -75, -81, -88, -94, -99, -106, -109, -110, -119, -117, -119, -116, -111, -105, -101, -91, + -92, -83, -75, -75, -61, -52, -52, -35, -29, -18, 0, 9, 22, 36, 41, 51, + 64, 68, 78, 88, 90, 101, 103, 109, 113, 115, 121, 117, 118, 116, 109, 109, + 102, 94, 90, 80, 71, 67, 57, 47, 42, 30, 19, 14, -4, -9, -19, -31, + -36, -50, -55, -61, -68, -74, -79, -87, -93, -101, -107, -107, -115, -118, -118, -123, + -112, -110, -109, -92, -93, -94, -74, -83, -71, -57, -61, -45, -34, -31, -10, 0, + 12, 27, 37, 42, 55, 61, 70, 77, 87, 95, 96, 106, 112, 113, 123, 122, + 117, 122, 112, 109, 110, 96, 96, 92, 76, 74, 68, 55, 50, 40, 28, 20, + 7, -6, -10, -23, -31, -42, -51, -59, -65, -70, -76, -82, -88, -92, -104, -104, + -105, -122, -113, -122, -126, -106, -119, -103, -91, -99, -82, -80, -76, -66, -59, -54, + -46, -34, -30, -9, 1, 13, 33, 34, 51, 57, 63, 76, 77, 91, 95, 95, + 110, 108, 115, 122, 120, 120, 123, 112, 110, 110, 94, 95, 87, 70, 74, 62, + 55, 50, 39, 29, 20, 7, -5, -13, -26, -35, -44, -56, -61, -65, -69, -75, + -83, -86, -98, -104, -104, -121, -115, -119, -128, -110, -117, -116, -92, -100, -90, -78, + -83, -75, -63, -64, -55, -41, -39, -20, -7, 1, 21, 31, 40, 51, 55, 67, + 72, 77, 91, 93, 99, 110, 109, 118, 125, 118, 124, 119, 108, 114, 101, 93, + 96, 81, 75, 73, 59, 57, 48, 35, 27, 15, 1, -7, -20, -29, -37, -49, + -56, -61, -65, -69, -74, -83, -91, -98, -107, -113, -117, -120, -122, -118, -115, -111, + -103, -101, -92, -89, -85, -80, -77, -65, -61, -51, -41, -33, -16, -4, 8, 21, + 34, 40, 49, 57, 63, 73, 82, 89, 98, 104, 109, 117, 118, 123, 122, 119, + 116, 110, 108, 100, 97, 93, 83, 80, 70, 64, 55, 45, 34, 22, 12, -2, + -10, -20, -30, -35, -48, -55, -62, -67, -71, -78, -86, -91, -101, -104, -110, -117, + -117, -120, -123, -111, -111, -110, -90, -99, -90, -76, -85, -71, -58, -63, -45, -37, + -33, -14, 1, 4, 27, 34, 41, 53, 59, 66, 79, 84, 92, 100, 103, 110, + 115, 116, 123, 118, 118, 117, 107, 110, 101, 95, 93, 79, 76, 68, 57, 52, + 43, 30, 23, 11, -3, -8, -20, -30, -34, -48, -55, -60, -69, -74, -81, -89, + -92, -101, -105, -108, -114, -117, -118, -122, -112, -113, -108, -95, -101, -87, -82, -83, + -68, -60, -56, -45, -38, -28, -17, -2, 6, 23, 33, 40, 54, 60, 68, 80, + 85, 94, 96, 103, 109, 110, 119, 118, 118, 121, 113, 112, 110, 100, 98, 90, + 77, 73, 66, 55, 51, 41, 29, 25, 8, 1, -9, -23, -28, -42, -51, -59, + -64, -67, -75, -79, -86, -94, -98, -105, -111, -115, -117, -121, -123, -111, -120, -102, + -95, -100, -79, -84, -81, -61, -69, -55, -46, -42, -27, -14, -3, 11, 30, 35, + 49, 57, 60, 76, 76, 86, 95, 95, 109, 108, 116, 122, 121, 123, 120, 116, + 114, 106, 100, 94, 88, 78, 73, 65, 59, 52, 38, 33, 20, 10, -2, -15, + -22, -32, -42, -51, -58, -62, -67, -77, -80, -86, -94, -100, -106, -113, -115, -119, + -122, -118, -117, -107, -106, -98, -89, -89, -78, -76, -71, -57, -56, -46, -36, -25, + -12, 0, 16, 26, 39, 49, 54, 67, 72, 80, 88, 94, 101, 104, 115, 113, + 121, 125, 116, 123, 116, 110, 109, 98, 93, 88, 78, 69, 65, 56, 47, 42, + 27, 20, 8, -6, -15, -27, -33, -43, -53, -58, -64, -68, -74, -86, -87, -96, + -106, -103, -117, -116, -117, -123, -117, -106, -114, -97, -96, -96, -81, -81, -80, -62, + -64, -49, -45, -34, -19, -8, 4, 17, 28, 40, 47, 54, 66, 73, 79, 93, + 95, 102, 113, 110, 117, 123, 119, 121, 117, 113, 111, 106, 96, 95, 88, 78, + 72, 63, 55, 47, 35, 26, 14, 4, -9, -19, -24, -35, -43, -51, -61, -65, + -72, -79, -88, -88, -99, -107, -107, -120, -114, -120, -122, -113, -116, -102, -106, -95, + -89, -95, -72, -80, -70, -50, -58, -37, -30, -20, -5, 6, 18, 29, 44, 45, + 57, 72, 68, 89, 89, 97, 109, 104, 120, 113, 118, 124, 112, 120, 112, 107, + 106, 96, 91, 87, 78, 66, 65, 52, 40, 39, 17, 17, 4, -13, -13, -30, + -35, -44, -58, -59, -66, -72, -78, -85, -93, -97, -106, -114, -110, -120, -120, -118, + -120, -109, -110, -98, -100, -89, -81, -87, -68, -68, -59, -44, -46, -29, -18, -5, + 5, 22, 32, 39, 54, 56, 68, 79, 79, 94, 98, 102, 110, 112, 117, 119, + 124, 117, 116, 116, 104, 106, 97, 89, 86, 74, 67, 60, 53, 41, 34, 24, + 12, 4, -9, -19, -28, -38, -47, -58, -60, -68, -73, -77, -88, -93, -96, -111, + -109, -115, -124, -118, -122, -120, -107, -109, -102, -91, -95, -82, -78, -78, -60, -59, + -51, -36, -35, -14, -3, 6, 24, 34, 41, 56, 59, 67, 81, 82, 92, 103, + 102, 112, 119, 114, 123, 123, 116, 121, 112, 106, 107, 93, 91, 84, 74, 69, + 61, 52, 43, 32, 21, 13, -2, -10, -22, -31, -38, -51, -56, -59, -69, -71, + -76, -87, -90, -100, -107, -110, -119, -118, -120, -123, -108, -118, -101, -92, -102, -77, + -85, -83, -63, -71, -58, -45, -44, -27, -15, -2, 10, 30, 32, 46, 57, 56, + 74, 73, 84, 93, 95, 109, 108, 117, 117, 124, 119, 119, 119, 112, 109, 100, + 96, 90, 81, 75, 65, 59, 51, 41, 33, 22, 12, 0, -12, -23, -30, -40, + -51, -57, -64, -71, -73, -83, -84, -95, -102, -102, -116, -117, -118, -128, -116, -114, + -116, -102, -99, -95, -86, -80, -80, -71, -58, -61, -46, -38, -30, -10, -4, 12, + 26, 37, 47, 54, 67, 68, 79, 89, 86, 104, 104, 111, 118, 118, 123, 121, + 119, 116, 112, 109, 99, 96, 88, 80, 75, 66, 58, 49, 41, 29, 19, 10, + -5, -10, -25, -35, -39, -53, -58, -64, -69, -75, -81, -87, -100, -99, -112, -116, + -118, -126, -123, -115, -120, -111, -102, -100, -93, -86, -85, -76, -69, -64, -56, -47, + -38, -25, -10, 4, 16, 31, 40, 46, 61, 65, 70, 83, 86, 93, 103, 105, + 114, 125, 118, 124, 125, 112, 120, 111, 98, 103, 91, 86, 83, 71, 66, 61, + 49, 38, 32, 16, 7, -4, -17, -26, -36, -44, -54, -60, -59, -71, -75, -79, + -94, -95, -103, -117, -112, -120, -127, -120, -118, -117, -104, -102, -99, -88, -84, -86, + -73, -70, -64, -51, -47, -37, -17, -10, 7, 19, 32, 40, 52, 56, 67, 73, + 80, 87, 92, 103, 109, 110, 123, 119, 121, 126, 111, 113, 112, 98, 98, 91, + 80, 80, 71, 60, 61, 47, 36, 30, 13, 5, -5, -19, -27, -35, -43, -52, + -58, -62, -71, -76, -84, -96, -100, -105, -118, -115, -121, -123, -121, -114, -117, -110, + -98, -105, -91, -83, -90, -71, -68, -64, -48, -43, -33, -17, -5, 3, 23, 32, + 38, 54, 59, 66, 79, 82, 92, 100, 105, 108, 116, 119, 117, 126, 116, 115, + 118, 106, 105, 99, 91, 85, 78, 67, 60, 54, 41, 33, 24, 11, 0, 3, + 10, 14, -8, 46, 7, -20, -23, -28, 17, 9, 47, -7, -15, -35, -1, -26, + 44, 34, -31, 31, -47, -32, 30, -2, 32, 15, -15, -17, -39, 16, -2, 26, + 23, 3, -43, 11, -37, 14, 37, 7, 4, -21, -30, -9, 14, 18, 38, -13, + -16, -21, -24, 8, 38, 3, 16, -29, -11, -26, 20, 15, 24, -9, 0, -34, + -21, 32, -16, 41, -1, -20, -7, -7, -7, 27, 0, -2, -2, -11, -11, 19, + -16, 32, -19, -4, 11, -40, 49, -13, -12, 12, -32, 12, 17, 1, 23, -34, + -20, 14, -20, 33, 44, -51, 7, -21, -38, 46, 19, 37, -28, -29, -17, -40, + 63, 36, -33, 42, -45, -57, 16, 37, -3, 54, 0, -64, -25, -7, 15, 37, + 34, -2, -65, -12, -3, -7, 76, -2, -6, -28, -22, -30, 40, 11, 12, 21, + -43, -6, -1, -31, 73, -35, 33, -1, -67, 29, -24, 16, 42, 4, -26, 17, + -71, 32, 0, 0, 72, -56, 4, -2, -75, 76, -25, 39, 24, -42, -6, -20, + -31, 56, 1, 3, 49, -63, -12, -16, -10, 49, 12, 29, -32, -59, 35, -39, + 35, 45, -33, -21, 46, -68, 13, 16, 12, 0, 2, 32, -70, 12, 30, -62, + 64, 5, -31, 22, -30, 11, -30, 43, 2, -8, 16, -3, -60, 39, -11, -13, + 63, -32, 8, -6, -45, 39, -38, 30, 49, -89, 96, -84, 0, 43, -51, 52, + -4, -6, 7, -31, -10, 12, -22, 62, 8, -57, 65, -101, 1, 69, -46, 76, + -18, -34, -24, -33, 50, -6, 55, 16, -70, -19, 2, -33, 59, 61, -40, 7, + -44, -33, -7, 61, 31, -15, 5, -32, -70, 47, 34, 8, 22, -16, -44, -47, + 56, -6, 12, 56, -46, -32, -3, 7, -4, 42, 19, -41, -35, 41, -59, 43, + 45, -44, 9, -9, -7, -19, 36, 2, -50, 49, -6, -34, 33, -1, -38, 17, + 44, -33, 5, 28, -68, -13, 62, -25, 15, 45, -57, -32, 23, -14, 37, 11, + 29, -56, -48, 46, -55, 48, 94, -74, 22, -40, -59, 36, 9, 75, -19, -31, + 6, -104, 39, 80, -23, 59, -12, -104, 10, -12, 24, 59, 5, 9, -78, -12, + 24, -47, 116, -6, -51, 34, -71, -26, 55, 3, 11, 38, -31, -9, -45, 21, + -11, 4, 92, -79, 16, -16, -41, 29, 27, 19, -5, -19, -13, -35, 29, 22, + -7, 20, -35, 6, -21, 30, -2, 6, -8, -20, -12, 30, -13, 8, 23, -52, + 21, 8, -16, 40, -20, -7, -15, -38, 62, -33, 48, 5, -66, 28, -25, 15, + 39, 5, -46, 8, -46, 32, 12, 37, -9, -49, 43, -78, 43, 46, -43, 39, + -41, -36, 13, 19, 48, -21, 9, -37, -54, 45, 32, -14, 41, -32, -66, 42, + -8, 37, 12, -10, -12, -74, 71, -30, 16, 65, -64, -1, -13, -12, 17, 24, + 10, -16, -31, -1, -3, 1, 68, -47, -7, -8, -41, 74, -16, 32, -27, -42, + 22, -49, 80, -11, 0, 23, -84, 34, -24, 31, 48, -37, 23, -55, -25, 22, + 14, 22, 59, -78, -11, -1, -45, 90, -35, 32, 0, -75, 63, -65, 34, 52, + -71, 70, -56, -14, 30, -22, 10, 55, -74, 41, -19, -47, 88, -62, 50, -11, + -57, 44, -54, 59, 17, -23, 12, -40, -41, 60, 3, 15, 28, -71, -1, -17, + 11, 61, -28, 47, -59, -48, 35, -18, 51, 27, -20, -35, -36, 14, 6, 44, + 23, -30, -33, -17, -1, 14, 49, -2, -32, -12, -20, 5, 29, 34, -33, 9, + -34, -26, 36, -2, 40, -28, 5, -26, -39, 65, -27, 19, 31, -54, 0, -8, + 12, 2, 30, -5, -25, -22, 24, -29, 26, 52, -57, 7, 5, -56, 46, 1, + 8, 4, -5, 1, -51, 28, 14, -21, 48, -17, -46, 4, 11, -6, 35, 7, + -16, -31, -10, 25, -49, 95, -28, -29, 19, -46, -5, 32, 21, 8, -1, -24, + -36, -17, 59, -7, 33, 10, -76, -14, 19, -1, 56, 16, -23, -64, -8, 7, + 8, 85, 0, -57, -21, -35, -7, 72, 23, 28, -66, -16, -47, 2, 68, 24, + 5, 0, -69, -26, 22, -7, 72, 0, -12, -20, -51, 15, -11, 44, 44, -46, + 36, -59, -38, 32, 19, -3, 71, -45, -28, -29, -17, 36, 8, 79, -47, -53, + 18, -65, 38, 75, -24, 20, -36, -34, -26, 38, 39, -7, -3, 7, -85, 44, + 26, -17, 42, -20, -29, -26, 26, 18, -8, 36, -17, -73, 40, 4, -1, 52, + -16, -47, -15, 14, 4, 29, 30, -41, -44, 15, -2, 16, 60, -26, -54, 17, + -33, 22, 48, -5, -15, -20, -13, -15, 31, 37, -28, 6, -17, -22, -10, 64, + -43, 16, 22, -71, 41, 3, -1, 6, -12, 12, -38, 11, 38, -49, 37, 24, + -64, 27, 18, -73, 81, -33, 14, -3, -32, 43, -60, 53, 24, -76, 70, -29, + -33, 50, -18, -34, 48, -38, 37, -15, -5, 25, -80, 70, -4, -45, 89, -72, + -3, 13, -23, 28, 21, -9, -9, -25, -11, 24, -26, 62, -14, -49, 67, -97, + 57, 12, -23, 46, -46, 9, -20, -4, 25, -1, 5, 18, -31, -25, 38, -43, + 44, 17, -42, 37, -66, 37, -16, 26, 18, -16, -17, -4, -17, 7, 38, -11, + 4, -3, -51, 32, -17, 38, 18, -34, 23, -58, 4, 25, 0, 26, 3, -35, + -11, -10, 16, 24, 8, 4, -33, -30, 22, -2, 14, 52, -61, 10, -23, -4, + 20, 10, 32, -44, -2, 1, -36, 37, 32, -25, 2, 0, -40, 14, 24, -5, + 13, -28, 20, -51, 41, 15, -23, 25, -12, -41, 30, -2, -11, 40, -34, 14, + -24, 3, 22, -31, 44, -22, -31, 57, -55, 28, 0, -9, 1, 11, -10, 8, + -13, 3, -2, -23, 60, -49, 23, 10, -59, 36, -3, -3, 35, -23, 5, -42, + 15, 7, -2, 35, 0, -45, 8, -4, -27, 63, -4, -14, 9, -39, 1, 1, + 27, 19, -27, 24, -49, -6, 34, -5, 10, 19, -32, -20, 14, -12, 16, 26, + -9, -19, -9, -8, 8, 7, 40, -29, -14, -4, -25, 7, 56, -15, 6, -20, + -36, 3, 10, 33, 20, -23, -5, -42, -18, 54, -17, 63, -5, -59, 2, -44, + 12, 57, 17, 15, -33, -44, -16, -17, 65, 40, -9, 10, -72, -51, 39, 10, + 65, 19, -25, -47, -51, 17, 20, 53, 30, -35, -35, -34, -16, 36, 48, 12, + -3, -35, -42, -9, 28, 34, 12, 15, -42, -39, 7, 8, 24, 28, 1, -31, + -36, 9, -1, 28, 29, -14, -34, 14, -43, 23, 34, -7, 24, -44, 10, -28, + -5, 53, -29, 29, -7, -33, 2, -1, 5, 19, 10, -17, 2, -33, 14, 1, + 8, 32, -36, 17, -28, -18, 36, -22, 29, 2, -25, 5, -17, 13, 1, 16, + -1, -10, -12, 3, -9, 10, 19, -22, 16, -3, -20, 24, -22, 15, -3, -14, + 22, -30, 31, -14, -11, 12, -11, 8, 17, -9, -4, -13, -13, 7, 10, 19, + -6, -7, -2, -32, 24, 8, 0, 17, -20, -10, -15, 13, 10, 11, 4, -1, + -40, 19, -4, -6, 42, -31, -1, -5, -12, 19, 6, 7, -5, -26, 10, -12, + 15, 20, -8, -19, 12, -40, 31, 15, -3, 16, -23, -27, 7, -5, 31, 6, + 3, -6, -41, 14, -2, 7, 38, -10, -29, 11, -44, 17, 29, 6, 20, -26, + 1, -45, 9, 31, -18, 40, -1, -47, 8, -10, -4, 29, 33, -25, 1, -31, + -12, -9, 35, 30, -25, 31, -48, -28, 20, 17, 9, 30, -19, -39, -13, 6, + 8, 38, 15, -10, -42, 0, -24, 15, 49, -9, -12, 5, -44, -5, 42, 4, + 6, 8, -27, -29, 5, 24, -2, 10, 28, -56, 1, 23, -29, 29, 15, -19, + -11, 1, -4, -8, 24, 6, -15, 2, 7, -27, 12, 21, -40, 36, -15, -12, + 22, -16, 17, -17, 15, -6, -18, 23, -3, -26, 39, -27, -5, 26, -20, 8, + 5, -11, 7, -21, 19, -11, -8, 35, -25, 2, 18, -35, 9, 16, -21, 29, + -16, 1, -13, -13, 28, -18, 23, 13, -36, 6, -1, -23, 26, 12, -15, 17, + -20, -2, -7, 3, 22, -22, 27, -11, -34, 36, -30, 11, 17, 2, -12, 13, + -22, -11, 11, -5, 26, -17, 26, -25, -32, 44, -47, 39, 25, -31, 16, -35, + -1, -4, 26, 16, 3, -16, -10, -23, -8, 55, -27, 26, 0, -63, 41, -26, + 28, 22, -23, 14, -42, 5, 20, -13, 28, 3, -42, 20, -6, -17, 52, -32, + 6, -2, -37, 42, -27, 29, 15, -51, 40, -38, 2, 33, -19, 6, 11, -43, + 25, 0, -19, 57, -54, 31, -9, -43, 58, -52, 36, 11, -44, 50, -44, 8, + 23, -24, 12, 6, -34, 25, -9, -15, 50, -55, 35, -7, -25, 49, -48, 32, + -23, -18, 37, -30, 28, 8, -27, 7, -2, -19, 22, 10, -11, 10, -27, 4, + -16, 18, 29, -19, 20, -22, -36, 16, -2, 18, 14, 3, -24, -15, -5, 12, + 13, 20, 4, -40, 2, -23, 8, 29, 7, 9, -23, -10, -13, 5, 19, 9, + -3, -14, -7, -19, 21, 6, 5, 10, -20, 0, -14, 12, 0, 2, 5, -13, + 1, -3, 12, -12, 20, -13, -7, 6, -11, 5, 0, 5, -5, -4, 10, -10, + 2, 6, -5, -12, 18, -13, -9, 19, -17, 11, -1, 8, -5, -22, 26, -26, + 1, 29, -17, -7, 16, -22, -8, 23, -3, 4, -3, -2, -15, -20, 42, -21, + 4, 40, -55, 8, 8, -22, 21, 20, -17, 2, -14, -7, -2, 10, 31, -25, + 10, -3, -54, 40, 5, -12, 42, -17, -37, 13, -12, 7, 24, 10, -6, -36, + 12, -9, -25, 74, -24, -19, 38, -64, 5, 25, 0, 16, 1, -9, -25, -23, + 36, -8, 6, 50, -58, -12, 22, -53, 52, 18, -12, 16, -51, 15, -30, 25, + 46, -37, 31, -26, -49, 30, 9, -1, 42, -19, -28, -13, -5, 16, 4, 42, + -18, -40, 20, -30, 1, 49, -4, -15, 0, -21, -19, 21, 26, 0, -9, 9, + -43, -1, 26, -5, 21, -7, -6, -32, 9, 12, -3, 34, -17, -12, -17, -4, + 9, 7, 28, -19, -3, -13, -11, 7, 15, 15, -19, 15, -38, -5, 17, -1, + 29, -20, 15, -39, -11, 41, -33, 45, -8, -21, -11, -3, 7, 0, 28, -7, + -19, -8, 7, -20, 23, 24, -40, 24, -17, -16, 26, -9, 21, -27, 13, -11, + -22, 29, -7, 0, 22, -22, -16, 14, -12, 12, 11, -5, -6, -17, 14, -15, + 9, 30, -28, 5, 1, -26, 8, 18, -7, 1, 6, -12, -15, 9, 13, -13, + 13, 13, -42, 14, 3, -16, 20, 7, -3, -22, 25, -26, 4, 16, -7, 3, + -8, 17, -33, 14, 9, -21, 25, -3, -11, -1, 1, -13, 1, 23, -20, 26, + -18, 0, -18, 3, 24, -25, 36, -15, -29, 22, -22, 3, 24, -5, -1, 0, + -18, 2, -11, 20, 10, -17, 30, -37, -15, 29, -33, 39, 11, -23, 7, -34, + 8, 0, 11, 36, -27, -12, 9, -47, 29, 31, -29, 40, -37, -14, 3, -17, + 45, -11, 8, 12, -60, 20, -2, -2, 41, -12, -18, 3, -37, 27, 12, -4, + 37, -56, 17, -21, -5, 44, -20, 14, -2, -40, 20, 0, 3, 22, -13, -10, + -6, -16, 29, -12, 14, 15, -49, 24, -11, -7, 39, -18, 3, -20, -12, 19, + -10, 32, 2, -34, 10, -13, -13, 37, 1, -7, 3, -33, 4, 2, 18, 25, + -25, 8, -33, -13, 34, -7, 24, 4, -33, -10, -2, 2, 25, 12, -1, -25, + -12, 3, -18, 34, 12, -15, 4, -9, -25, 10, 17, -3, 9, 2, -13, -23, + 9, 8, -13, 37, -10, -15, 1, -13, -1, 0, 31, -15, 0, 5, -29, 6, + 5, 15, -9, 16, -9, -29, 15, -10, 3, 15, 9, -11, -12, 11, -29, 17, + 14, -7, 6, -6, -7, -24, 30, -11, 9, 18, -20, -8, -6, 6, -10, 22, + 10, -29, 14, -13, -8, 13, 17, -13, 2, 1, -24, 5, 5, 12, -10, 15, + -7, -28, 21, -2, -8, 22, -9, -14, -2, 6, -5, 5, 12, -7, -15, 14, + -4, -16, 27, -10, -14, 13, -5, -9, 10, 5, -8, -5, 16, -20, 2, 13, + -14, -3, 17, -18, 2, 10, -12, 9, -6, -2, -16, 13, 10, -15, 33, -24, + -17, 10, -4, 15, 1, 9, -23, -9, 6, -5, 5, 21, -10, -13, 11, -21, + -2, 19, -10, 23, -20, 10, -16, -21, 33, -17, 17, 18, -30, 1, -14, -1, + 20, -2, 18, -15, -24, 6, -5, 6, 36, -26, 6, -18, -23, 34, -12, 25, + 1, -30, -1, -11, 10, 22, -1, 4, -19, -28, 21, -11, 22, 25, -33, 4, + -21, -7, 22, 7, 19, -23, -13, -3, -13, 21, 17, -11, 7, -19, -12, 12, + -10, 30, -13, -5, 4, -30, 27, -9, 17, -3, -25, 13, -23, 13, 27, -15, + -5, 3, -35, 17, 19, -8, 29, -37, 1, -15, -10, 48, -20, 26, -7, -49, + 22, -23, 21, 33, -10, -8, -17, -34, 11, 19, 12, 40, -39, -14, -13, -36, + 64, -4, 20, 9, -55, 3, -24, 21, 31, 10, -1, -22, -30, -7, 12, 18, + 29, -10, -7, -28, -22, 22, 3, 26, 4, -13, -18, -16, 21, -9, 28, -1, + -21, 0, -12, 5, 6, 5, 10, -20, 1, 3, -20, 21, 7, -23, 24, -25, + -6, 21, -13, 25, -19, -8, 2, -14, 20, 13, -23, 25, -31, -7, 24, -16, + 20, 6, -25, 8, -24, 12, 15, -10, 24, -25, -2, 0, -12, 14, 10, -13, + 4, 1, -17, 9, 6, -9, 9, 0, -3, -8, 11, -10, -2, 7, -1, -6, + 6, 1, -12, 1, 18, -31, 23, -2, -21, 21, -6, -8, 15, -14, 4, -6, + -1, 17, -22, 20, -6, -35, 37, -17, -6, 47, -41, 6, -6, -16, 12, 16, + 6, 1, -36, 18, -26, 4, 59, -36, -1, 16, -64, 30, 14, 1, 16, -13, + 0, -35, 17, 13, -8, 12, 14, -45, 11, 12, -24, 27, 12, -27, 10, -6, + -9, 1, 14, -7, -6, 8, -4, -8, 8, 8, -24, 13, 7, -27, 28, -1, + -28, 27, -19, -2, 17, -5, 6, -10, -5, 4, -25, 32, 2, -22, 32, -28, + -20, 35, -20, 16, 7, -18, 1, -22, 20, 0, 2, 20, -15, -25, 24, -25, + 12, 25, -23, 10, -19, -5, 8, 2, 20, -6, -13, 0, -22, 12, 15, -3, + 13, -13, -25, 12, -6, 18, 13, -3, -14, -22, 3, -2, 14, 25, -10, -16, + -5, -13, 2, 22, 9, -2, -11, -12, -20, 15, 20, 1, 14, -19, -17, -9, + 1, 19, 5, 0, 4, -35, 17, -7, 5, 20, -16, 2, -8, -11, 11, -2, + 2, 7, -19, 15, -10, 2, 12, -14, -3, 2, -9, 17, -3, 2, -7, -16, + 10, 2, 9, 10, -14, -9, -6, -11, 21, 5, 4, 6, -24, -5, -4, 6, + 18, 0, 8, -21, -18, 8, -8, 21, 16, -11, -9, -12, -15, 15, 3, 27, + -9, -16, 5, -30, 13, 23, -11, 21, -19, -15, -3, -9, 30, -9, 14, -6, + -22, -5, 15, -11, 23, -1, -14, -4, -9, 8, 4, 1, 20, -34, 9, 1, + -17, 24, -6, 1, -9, 1, -4, 3, 6, 8, -16, 0, 2, -13, 11, 21, + -31, 24, -21, -4, 13, -2, 7, -9, -3, 0, -18, 29, -4, -9, 16, -19, + -13, 25, -5, -1, 15, -24, 4, -15, 22, 4, -11, 20, -21, -25, 39, -23, + 14, 14, -23, 1, -8, 3, 12, -9, 23, -19, -18, 24, -22, 5, 30, -32, + 11, 2, -21, 18, -6, 5, 1, -9, 13, -22, 4, 19, -28, 26, 3, -28, + 21, -4, -25, 32, -15, 5, 0, -2, -4, -9, 15, 0, -13, 21, -14, -20, + 31, -19, 2, 17, -14, -9, 12, -6, 4, -1, 4, -17, -1, 12, -2, 0, + 20, -31, -8, 12, -8, 17, 14, -13, -16, -9, -7, 20, 11, 18, -13, -28, + -3, -12, 13, 40, -12, 4, -20, -32, 8, 17, 14, 21, -10, -28, -18, -2, + 11, 22, 17, 0, -34, -6, -3, -17, 50, 1, -13, 4, -22, -21, 17, 16, + 4, 7, 0, -27, -11, 4, 10, 2, 24, -6, -28, 7, -12, -2, 33, -3, + -6, 2, -37, 3, 9, 7, 24, -4, -14, -6, -24, 25, -1, 11, 16, -36, + -9, 12, -25, 45, 5, -20, 11, -36, 11, 7, 0, 30, -32, -1, 7, -33, + 37, 0, -9, 15, -21, -10, 12, -15, 24, -8, 3, 4, -20, 7, 3, -15, + 28, -14, -7, 13, -23, 2, 11, 0, 4, 7, -9, -16, 1, 7, -7, 19, + -3, -12, -14, 15, -10, 7, 30, -26, -13, 15, -30, 15, 26, -12, -1, -8, + -9, -5, 13, 22, -12, -12, 7, -36, 17, 31, -24, 27, -21, -24, 15, -10, + 26, 4, -12, 4, -36, 13, 14, -5, 27, -14, -22, 7, -12, 6, 23, -13, + 7, -19, -2, 7, -8, 25, -5, -17, 18, -25, 3, 14, -8, 4, 0, -1, + -11, 4, 12, -18, 15, 2, -23, 12, -2, -7, 12, 1, -1, -15, 11, -3, + -17, 41, -24, -7, 13, -25, 3, 22, -9, 15, -12, -9, 0, -17, 32, -5, + -5, 19, -49, 19, 3, -11, 45, -30, 2, -4, -28, 29, 0, 7, 12, -34, + 6, -10, 1, 33, -9, -6, 4, -41, 25, 2, 4, 29, -40, 8, -17, -9, + 42, -16, 16, -10, -33, 11, -7, 22, 12, -6, -6, -25, -4, 18, -3, 25, + -4, -29, 5, -17, 8, 22, 1, 4, -22, 1, -13, 2, 31, -19, 9, 2, + -36, 17, 5, -7, 20, -11, -2, -13, 4, 9, -18, 24, -3, -30, 33, -19, + -11, 31, -21, 6, 0, -5, 3, -10, 17, -7, -19, 30, -24, 0, 26, -23, + 3, 7, -17, 9, -3, 9, -1, -17, 23, -25, -3, 34, -27, 10, 15, -34, + 9, 1, 1, 7, -1, 12, -31, 4, 16, -27, 32, 10, -33, 10, -1, -27, + 29, 9, -9, 0, -1, -16, -6, 24, 2, -17, 23, -20, -24, 33, -11, -2, + 17, -7, -21, 13, 1, -7, 10, 1, -12, -9, 13, -1, -5, 20, -16, -15, + 15, -8, 5, 13, -10, -7, -9, 5, 2, 10, 7, -7, -22, 12, -13, 6, + 26, -14, -6, 0, -17, 3, 16, 6, 0, -11, 3, -26, 13, 15, -6, 7, + 4, -29, 6, 7, -3, 13, 1, -11, -9, 2, -1, 3, 9, -3, -8, 1, + -4, 0, 5, 0, 0, -2, 0, -1, 0, 0, -2, 11, 23, 22, 24, 25, + 20, 21, 15, 40, -1, -24, -42, -5, -19, -11, -8, 4, -46, -31, -14, -33, + -40, -44, -48, -89, -63, -47, -33, -27, -10, -6, 22, 25, 26, 28, 37, 11, + 15, 51, 44, 54, 66, 66, 71, 111, 84, 70, 63, 47, 39, 22, 47, -28, + -79, -111, -90, -91, -112, -81, -87, -49, -46, -5, -24, 26, 24, 47, 29, 23, + 30, 30, 13, -1, 4, -14, 17, 35, 62, 31, 53, 59, 72, 64, 27, 26, + 9, 9, -61, -44, -88, -74, -81, -83, -124, -96, -37, -78, -48, -56, -68, -60, + 7, 44, 39, 54, 77, 102, 110, 108, 89, 101, 100, 105, 64, 22, -1, 44, + 40, -19, -29, -35, -16, -27, -40, -77, -82, -113, -104, -93, -57, -72, -56, -3, + 1, 7, -1, 49, 39, 30, 31, 23, 10, 31, 11, 7, -19, -2, -2, 28, + 62, 92, 75, 33, 34, -20, -47, -61, -85, -105, -93, -119, -112, -54, -70, -67, + -32, -1, 4, 4, 20, 29, 62, 70, 54, 62, 78, 115, 92, 85, 78, 52, + 21, 19, 27, 2, -8, 13, 0, 5, 3, 9, 18, 0, -59, -61, -45, -57, + -65, -76, -89, -102, -48, -24, 17, 6, 26, 33, 35, 26, 41, 63, 20, 12, + 29, 34, 8, 7, 31, 21, 31, 39, 33, -5, -8, -55, -57, -98, -94, -88, + -64, -82, -74, -39, -14, 3, 16, 22, 8, 2, 17, 5, 36, 76, 74, 71, + 57, 73, 62, 47, 30, 32, 19, 4, 7, -14, -18, -2, 17, -5, 13, 22, + 31, 10, 8, -13, -47, -80, -85, -86, -71, -73, -60, -35, -10, 9, 19, 49, + 53, 47, 60, 73, 43, 33, 20, 13, -1, -7, -7, 7, 9, -2, 5, -14, + -40, -69, -61, -66, -67, -84, -58, -58, -33, 2, -7, -5, 12, 32, 18, 25, + 19, 24, 65, 59, 62, 64, 63, 55, 60, 52, 31, 19, -12, -26, -4, -7, + -10, -3, 6, -22, -14, 12, 19, 4, -26, -38, -40, -56, -61, -66, -59, -65, + -51, -20, 29, 40, 51, 52, 62, 61, 53, 26, 20, 6, 8, 6, 9, -14, + -14, -15, -2, -11, -23, -36, -38, -60, -77, -69, -60, -51, -56, -44, -27, 10, + -2, 14, 10, 22, 16, 41, 60, 39, 35, 60, 62, 43, 45, 63, 52, 17, + 12, 15, -1, -2, 0, -38, -48, -32, -22, -7, 3, 13, 10, -2, -1, -8, + -12, -25, -48, -46, -52, -49, -36, -17, 9, 17, 26, 48, 57, 55, 69, 60, + 32, 6, 4, -6, -20, -24, -9, -21, -25, -14, -18, -38, -38, -32, -51, -52, + -60, -34, -6, -6, -16, -11, -2, -1, 17, 19, 3, 11, 25, 31, 41, 39, + 33, 33, 41, 34, 34, 23, 21, 15, 6, -13, -24, -28, -20, -8, -12, -19, + -12, -5, 9, 14, 2, -12, -25, -28, -21, -28, -23, -22, -18, -26, -5, 24, + 45, 46, 47, 39, 33, 36, 42, 29, 7, -5, -10, -21, -29, -39, -39, -31, + -24, -29, -39, -51, -43, -27, -22, -18, -25, -26, -20, 9, 19, 18, 4, -2, + 19, 30, 38, 25, 24, 28, 33, 41, 38, 34, 32, 38, 24, 8, 4, -8, + -11, -15, -25, -31, -25, -20, -22, -15, -11, -9, -12, -17, -20, -20, -15, -6, + -11, -8, 0, 11, 29, 19, 17, 17, 18, 28, 31, 25, 18, 23, 18, 10, + 1, -7, -18, -26, -24, -30, -41, -38, -44, -32, -31, -31, -35, -25, -12, -2, + -8, -11, -13, -13, -2, 8, 15, 19, 29, 35, 37, 39, 43, 42, 40, 35, + 27, 25, 18, 15, 9, 4, -4, -15, -28, -28, -26, -28, -18, -15, -25, -23, + -12, -11, -14, -10, -2, -4, -1, 8, 15, 19, 22, 25, 16, 16, 17, 5, + 7, 13, 18, 13, 9, 6, 6, 4, -4, -21, -31, -28, -37, -39, -34, -38, + -38, -32, -17, -6, -4, -14, -19, -9, 3, -2, 3, 4, 7, 8, 13, 23, + 35, 38, 43, 42, 31, 25, 23, 17, 8, 3, 4, -7, -7, -10, -13, -20, + -19, -28, -33, -30, -23, -18, -13, -17, -12, 3, 14, 23, 31, 27, 23, 21, + 22, 19, 12, 4, 2, 2, -2, 0, 4, 11, 11, 6, 4, -2, -5, -14, + -17, -30, -38, -44, -42, -28, -21, -23, -21, -15, -15, -4, 8, 11, 4, -7, + -15, -7, 5, 10, 21, 26, 28, 27, 34, 37, 36, 28, 19, 10, 11, 8, + -2, -18, -17, -19, -19, -22, -24, -21, -24, -18, -17, -13, -19, -13, -1, 12, + 19, 22, 21, 19, 19, 30, 34, 24, 13, 7, 2, 1, 1, 2, -1, -2, + -6, 0, 0, -2, -15, -21, -17, -21, -28, -32, -31, -31, -32, -27, -24, -17, + -4, 1, -3, -1, 1, 4, 7, 8, 15, 16, 15, 15, 20, 32, 36, 38, + 32, 19, 12, 3, 2, -2, -4, -11, -19, -17, -15, -11, -16, -20, -27, -30, + -28, -22, -13, -6, -2, 2, 12, 23, 29, 45, 44, 36, 32, 21, 16, 14, + 10, 1, -9, -8, -2, -1, -7, -13, -13, -12, -9, -11, -18, -24, -26, -28, + -30, -24, -21, -21, -21, -11, -11, -10, 0, -2, 0, 4, 12, 13, 14, 12, + 17, 22, 28, 30, 28, 20, 16, 13, 8, 2, -2, -6, -15, -14, -18, -15, + -15, -16, -18, -18, -16, -19, -18, -17, -10, 0, -1, 4, 13, 22, 37, 39, + 36, 27, 27, 32, 26, 15, 6, -1, -4, -5, -7, -11, -11, -9, -15, -15, + -14, -18, -21, -19, -17, -21, -19, -15, -15, -10, -15, -14, -12, -11, -6, -2, + 1, -2, 1, 5, 14, 22, 33, 35, 23, 18, 16, 13, 11, 6, 1, -9, + -18, -11, -6, -7, -8, -9, -11, -11, -12, -13, -17, -21, -24, -24, -15, -4, + 7, 12, 17, 25, 30, 28, 31, 32, 31, 27, 22, 15, 12, 3, -2, -8, + -6, -3, -9, -13, -22, -24, -20, -18, -22, -24, -18, -14, -13, -10, -11, -9, + -3, -2, -3, -5, -10, -10, -5, -1, 4, 11, 15, 19, 22, 27, 23, 20, + 16, 14, 5, -3, -11, -15, -16, -12, -12, -11, -5, 1, -3, -10, -13, -15, + -11, -10, -10, -11, -8, -3, 2, 7, 9, 15, 25, 30, 33, 31, 25, 21, + 20, 16, 13, 7, -2, -8, -5, -4, -11, -20, -21, -22, -21, -17, -20, -21, + -22, -19, -19, -11, -4, -2, -2, -2, 2, 5, 2, 0, 0, -3, 1, 8, + 16, 13, 14, 17, 15, 13, 8, 5, -1, -6, -10, -13, -14, -14, -13, -10, + -7, -8, -8, -6, -6, -3, -1, -1, -9, -12, -7, 3, 13, 17, 14, 13, + 17, 22, 23, 24, 18, 15, 18, 18, 18, 15, 8, 0, -5, -8, -11, -15, + -17, -21, -26, -26, -24, -26, -24, -13, -9, -6, -3, -2, 3, 4, 6, 7, + 5, 2, 4, 2, -2, -4, -3, 5, 13, 17, 10, 3, -1, -2, -4, -5, + -11, -14, -13, -11, -8, -8, -8, -6, -3, 0, -1, -5, -5, 0, 4, 3, + 1, 2, 0, 0, 6, 13, 20, 17, 17, 18, 21, 18, 14, 13, 11, 11, + 7, 9, 3, -5, -12, -14, -18, -21, -23, -26, -26, -13, -3, -6, -13, -14, + -5, 5, 8, 3, 0, 1, 3, 6, 4, -1, -1, 1, 3, 7, 5, 3, + 0, 1, -1, 3, 0, -3, -11, -11, -9, -10, -9, -8, -5, -7, -7, -10, + -9, -6, -1, 4, 6, 4, 2, 5, 10, 13, 9, 12, 13, 14, 15, 16, + 13, 12, 10, 13, 14, 13, 8, 2, -1, -4, -6, -9, -15, -20, -21, -19, + -14, -16, -22, -21, -13, -5, -3, -3, -1, 3, 5, 10, 9, 9, 6, 8, + 7, 7, 7, 3, -4, -6, -4, -1, -4, -8, -10, -11, -8, -4, -6, -10, + -7, -8, -11, -11, -8, -5, -4, 0, 3, 3, 8, 10, 10, 12, 12, 11, + 10, 13, 12, 10, 6, 8, 9, 9, 11, 13, 11, 9, 10, 7, 2, -3, + -8, -9, -14, -16, -16, -19, -18, -14, -13, -11, -11, -10, -5, -1, 3, 5, + 2, 2, 9, 14, 11, 9, 10, 7, 2, 0, 2, -2, -9, -13, -15, -18, + -17, -15, -13, -10, -5, -5, -7, -7, -4, -1, 0, -2, -4, -2, 1, 4, + 9, 10, 10, 11, 11, 13, 14, 10, 11, 9, 9, 4, 6, 5, 4, 5, + 7, 8, 10, 9, 4, -4, -8, -9, -10, -11, -12, -14, -15, -17, -15, -9, + -4, -1, -6, -5, 2, 8, 8, 6, 5, 3, 4, 5, 9, 10, 10, 5, + -1, -5, -10, -12, -14, -16, -18, -17, -11, -10, -11, -8, -5, -2, -2, 0, + 3, 4, 5, 3, 2, 3, 5, 9, 12, 12, 11, 10, 12, 14, 12, 8, + 5, 0, -1, 1, 3, 0, 1, 3, 5, 6, 5, 0, -5, -11, -10, -13, + -12, -13, -15, -14, -8, -4, -3, -3, -4, 0, 4, 5, 3, 6, 4, 4, + 7, 10, 9, 9, 8, 5, 5, 2, -4, -10, -15, -17, -20, -22, -22, -19, + -14, -11, -10, -8, -6, 0, 3, 5, 3, 4, 8, 11, 11, 12, 13, 12, + 12, 15, 15, 16, 16, 13, 11, 6, 3, -2, -5, -5, -3, -2, -1, 2, + 0, -3, -4, -5, -7, -10, -12, -11, -12, -11, -8, -4, -2, 0, 1, 2, + 2, 2, 4, 3, 3, 4, 5, 9, 10, 6, 2, 1, 2, 0, -3, -7, + -13, -18, -19, -18, -16, -18, -20, -19, -14, -8, -4, -1, 3, 3, 5, 7, + 9, 9, 10, 12, 13, 13, 13, 13, 16, 15, 13, 9, 6, 3, 2, 1, + 0, -3, -5, -6, -4, -2, -2, -4, -4, -5, -5, -3, -3, -4, -6, -6, + -7, -4, 0, 2, 3, 2, 2, 1, 2, 2, 1, 4, 5, 4, 1, 0, + 2, 2, 0, -2, -6, -8, -6, -7, -9, -11, -15, -18, -19, -18, -18, -17, + -13, -9, -2, 2, 3, 5, 10, 12, 13, 14, 14, 15, 17, 17, 16, 16, + 15, 13, 11, 7, 2, -6, -10, -8, -6, -8, -8, -7, -6, -6, -3, -4, + -6, -5, -3, -2, -2, 0, 1, 0, 2, 2, 3, 2, 3, 2, 3, 3, + 5, 2, 0, 4, 6, 5, -1, -4, -2, -1, -2, -6, -8, -9, -10, -12, + -10, -14, -17, -22, -22, -21, -19, -15, -8, -3, 1, 7, 12, 12, 15, 19, + 22, 21, 18, 16, 16, 16, 13, 12, 6, 3, 3, 2, -3, -6, -7, -12, + -12, -11, -8, -9, -8, -7, -3, 0, 0, 0, 0, -2, -2, 0, 1, 2, + 2, 4, 6, 6, 7, 5, 4, 3, 4, 5, 3, 0, -2, -2, -4, -6, + -10, -8, -8, -10, -11, -12, -12, -12, -13, -16, -16, -16, -14, -11, -8, -4, + -2, 1, 6, 12, 17, 19, 20, 20, 21, 21, 19, 13, 10, 9, 5, 0, + -3, -4, -4, -5, -6, -6, -4, -7, -10, -12, -12, -12, -10, -7, -4, -2, + 4, 6, 8, 7, 7, 7, 7, 8, 8, 7, 5, 6, 6, 4, 1, -1, + -1, 0, -3, -7, -10, -10, -8, -11, -14, -14, -12, -11, -9, -6, -8, -8, + -8, -11, -13, -12, -9, -8, -5, 0, 4, 8, 11, 14, 18, 18, 20, 23, + 23, 20, 14, 9, 4, 0, -3, -6, -8, -8, -8, -8, -9, -10, -11, -10, + -9, -8, -8, -7, -6, -3, 0, 3, 6, 12, 16, 16, 14, 10, 8, 9, + 7, 4, 1, 0, 0, -2, -1, 0, 0, -3, -7, -10, -13, -13, -12, -13, + -15, -14, -13, -9, -6, -5, -5, -7, -8, -9, -7, -6, -5, -7, -5, 1, + 8, 13, 17, 19, 20, 21, 22, 22, 18, 12, 9, 5, -1, -5, -9, -11, + -13, -12, -12, -11, -10, -8, -7, -7, -6, -7, -6, -3, 0, 1, 3, 7, + 10, 11, 12, 15, 15, 14, 9, 6, 3, 1, 0, -2, -2, -2, -3, -6, + -8, -10, -11, -13, -15, -15, -15, -13, -12, -12, -7, -5, -5, -5, -4, -3, + -3, -4, -4, -1, -1, 1, 4, 7, 10, 12, 14, 17, 20, 22, 19, 14, + 8, 5, 2, -2, -5, -10, -14, -13, -11, -10, -10, -10, -10, -8, -6, -3, + -3, -3, -1, -1, 2, 6, 10, 13, 14, 15, 15, 15, 13, 11, 8, 5, + 1, -1, -3, -3, -6, -10, -12, -12, -12, -12, -13, -15, -18, -19, -15, -11, + -6, -4, -3, -4, -4, -2, 1, 4, 2, -1, -2, 1, 4, 6, 8, 7, + 7, 11, 14, 15, 15, 15, 13, 10, 6, 1, -3, -6, -9, -13, -15, -15, + -13, -11, -9, -9, -9, -7, -3, 0, 2, 2, 4, 7, 11, 15, 16, 14, + 11, 12, 13, 15, 13, 9, 4, 1, -1, -4, -6, -8, -11, -15, -17, -17, + -17, -17, -15, -13, -13, -12, -10, -7, -6, -4, 1, 2, 2, 3, 4, 5, + 4, 4, 3, 5, 6, 6, 8, 7, 7, 9, 11, 10, 9, 8, 5, 2, + 0, -2, -6, -10, -13, -13, -14, -14, -13, -11, -9, -4, -1, -1, -1, 2, + 6, 8, 10, 11, 12, 14, 14, 14, 13, 11, 10, 7, 4, 2, 3, 1, + -3, -6, -10, -14, -17, -18, -18, -19, -19, -17, -15, -13, -9, -5, -1, 1, + 0, 1, 3, 5, 6, 6, 6, 7, 8, 9, 8, 4, 1, 0, 2, 4, + 5, 6, 5, 4, 4, 4, 3, 1, -3, -7, -9, -11, -12, -12, -12, -11, + -10, -7, -4, -2, 1, 4, 5, 8, 11, 13, 14, 14, 11, 11, 11, 10, + 10, 9, 6, 5, 3, 1, -2, -5, -10, -14, -16, -17, -18, -19, -20, -19, + -17, -14, -10, -5, -1, 1, 3, 5, 6, 6, 6, 6, 6, 6, 6, 6, + 8, 7, 6, 4, 2, 0, -1, 0, 0, 1, 2, 1, 1, 2, 1, -2, + -5, -8, -9, -10, -11, -12, -12, -10, -7, -4, -1, 2, 8, 11, 13, 15, + 15, 13, 12, 11, 10, 9, 8, 6, 5, 4, 4, 3, 0, -3, -6, -10, + -14, -18, -21, -22, -21, -18, -16, -13, -10, -6, -3, 0, 3, 5, 5, 5, + 6, 7, 8, 8, 8, 7, 8, 7, 6, 5, 4, 1, 0, -2, -4, -4, + -5, -4, -4, -3, -2, -1, -2, -3, -4, -7, -8, -9, -9, -9, -8, -5, + -2, 2, 4, 8, 11, 14, 15, 15, 14, 12, 10, 7, 5, 4, 4, 2, + 1, 1, 2, -1, -3, -7, -10, -15, -18, -18, -18, -18, -17, -15, -11, -7, + -3, 1, 3, 4, 5, 6, 7, 7, 8, 8, 9, 10, 10, 9, 6, 4, + 2, 0, -3, -4, -6, -7, -7, -6, -5, -3, -2, -2, -2, -2, -3, -4, + -5, -6, -6, -6, -6, -5, -4, -1, 4, 7, 9, 11, 12, 12, 11, 10, + 9, 8, 7, 5, 3, 3, 2, 1, 0, -1, -4, -7, -8, -10, -13, -14, + -15, -15, -15, -14, -11, -9, -6, -3, 0, 2, 4, 5, 6, 7, 8, 9, + 10, 10, 9, 8, 6, 5, 3, 1, -3, -6, -8, -8, -7, -7, -7, -6, + -4, -2, 0, -1, -2, -3, -3, -3, -3, -4, -3, -3, -1, 1, 3, 4, + 6, 7, 8, 9, 10, 10, 9, 7, 6, 6, 4, 3, 2, 1, -1, -2, + -4, -6, -9, -11, -12, -12, -12, -11, -11, -10, -9, -8, -7, -5, -4, -1, + 1, 3, 5, 7, 9, 10, 11, 10, 9, 8, 7, 6, 2, -1, -3, -4, + -6, -7, -7, -7, -7, -6, -5, -5, -4, -3, -3, -4, -4, -4, -3, -2, + 0, 0, 1, 1, 2, 4, 6, 6, 7, 7, 8, 7, 7, 7, 7, 7, + 6, 5, 2, 0, -2, -4, -5, -7, -8, -8, -8, -9, -10, -10, -9, -8, + -7, -7, -7, -5, -3, -2, 0, 1, 2, 4, 6, 9, 10, 11, 12, 10, + 8, 6, 3, 1, -2, -4, -6, -7, -7, -7, -7, -8, -7, -7, -6, -6, + -5, -4, -3, -3, -2, -1, 1, 2, 2, 3, 4, 5, 5, 5, 6, 6, + 6, 5, 5, 6, 6, 6, 4, 3, 2, 1, -1, -3, -4, -6, -8, -9, + -9, -8, -8, -6, -5, -5, -5, -6, -6, -6, -5, -4, -2, 0, 2, 4, + 6, 7, 8, 9, 9, 9, 9, 6, 4, 1, -1, -3, -5, -6, -7, -7, + -7, -6, -6, -6, -6, -6, -5, -4, -3, -3, -2, -1, 1, 3, 4, 5, + 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 1, + -1, -3, -4, -5, -6, -7, -7, -7, -7, -7, -6, -5, -4, -4, -3, -3, + -3, -3, -2, -1, 0, 1, 3, 5, 7, 8, 8, 8, 7, 6, 4, 2, + 0, -2, -3, -4, -5, -6, -7, -7, -7, -7, -6, -6, -5, -5, -5, -3, + -2, 0, 1, 2, 3, 4, 5, 6, 6, 6, 5, 5, 4, 3, 3, 3, + 3, 3, 3, 2, 1, 1, -1, -2, -3, -4, -5, -6, -6, -7, -6, -5, + -4, -3, -3, -3, -3, -3, -2, -1, -1, 0, 1, 1, 1, 2, 3, 5, + 6, 6, 6, 5, 4, 2, 1, 0, -2, -4, -5, -5, -6, -6, -6, -7, + -7, -7, -6, -5, -4, -3, -2, -1, 0, 2, 3, 3, 4, 4, 5, 5, + 5, 4, 4, 4, 4, 3, 3, 2, 1, 1, 0, 0, -1, -1, -2, -3, + -4, -5, -5, -5, -5, -5, -4, -4, -3, -3, -2, -1, -1, -1, -1, 0, + 0, 0, 1, 2, 3, 3, 4, 4, 4, 4, 4, 3, 1, 0, 0, -2, + -3, -4, -5, -5, -6, -6, -6, -5, -4, -4, -4, -3, -2, -2, -1, 0, + 2, 3, 3, 4, 4, 4, 4, 3, 3, 3, 3, 2, 2, 1, 1, 1, + 0, -1, -1, -2, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2, -2, + -2, -1, -1, -1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, + 2, 1, 1, 0, 0, -1, -1, -2, -3, -3, -3, -4, -4, -4, -4, -3, + -3, -2, -1, -1, -1, 0, 1, 1, 1, 2, 2, 2, 3, 3, 2, 2, + 1, 1, 1, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -5, -41, -25, -37, -9, 28, 14, 6, 1, + 19, 16, -83, -53, -35, -44, -29, 8, -23, -29, -6, -20, -22, -19, -40, -2, + 14, 34, 78, 59, 73, 93, 73, 83, 124, 94, 87, 61, 98, 80, 29, 27, + 6, 8, -9, -8, -26, -33, -35, -32, -25, -32, -28, -59, -46, -31, -19, -12, + -12, 14, 14, -41, -59, -46, -33, -32, -52, -31, -29, -49, -51, -53, -85, -53, + -60, -100, -85, -84, -66, -37, -26, -11, -8, 22, 41, 33, 39, 27, 29, 75, + 59, 45, 52, 69, 66, 73, 90, 91, 103, 81, 46, 16, -21, -32, -13, -34, + -22, -42, -51, -35, -53, -62, -45, -35, -34, -29, 25, 62, 61, 39, -8, -20, + -5, -7, 2, 28, 1, -24, 8, 29, 11, -9, -54, -34, -35, -57, -41, -63, + -50, -16, -18, 26, 23, -2, 38, 9, 17, 41, 39, 82, 64, 64, 103, 64, + 43, 43, 51, 26, -3, 30, 1, 9, 14, -26, 20, -27, -50, -39, -47, -31, + -23, -33, 25, 56, 51, 20, -19, -60, -41, -27, -10, 3, -36, -30, -22, -46, + -5, -12, -7, -4, -54, 3, -25, -10, -1, -42, -75, -27, -84, -60, -88, -107, + -73, -29, -67, -53, 9, -10, 17, -29, -33, 55, 12, 7, 121, 70, 42, 123, + 96, 127, 74, 28, 51, 21, 60, 23, -10, 25, 103, 113, 65, 45, 15, -1, + 10, 2, -26, 1, -16, 19, 27, -8, -8, -24, -20, -17, -35, -86, -87, -32, + -51, -26, -60, -60, -50, -15, -31, -30, -50, -55, -19, 22, 14, 30, 49, 42, + 15, -11, -57, -15, -29, -65, -37, -56, -29, 15, 70, 69, 36, 24, 19, 21, + 19, 4, 60, 55, 18, -17, 0, -2, -21, 51, 49, -6, 22, 14, -24, -63, + -5, 4, -53, -33, -1, -37, -34, 40, 30, 12, -6, -1, 12, 12, 23, 20, + 43, 34, 11, -26, -40, 25, 56, -1, -41, -50, -37, -10, 20, -58, -65, -43, + -26, 42, 57, 77, 57, 26, -4, -10, -57, -45, -23, -49, -1, -59, -41, -26, + -27, 24, 52, -3, -12, 19, -44, -31, 33, 11, -14, 43, 31, 7, 58, 84, + 45, 35, 18, -5, 6, -21, -6, -20, -7, 41, 53, 29, 25, 55, 68, 37, + -29, -17, -41, -67, -76, -90, -112, -104, -60, -21, 25, 16, -23, -9, 30, 47, + 17, 3, 19, 4, -2, 30, 24, 1, 26, 33, 34, 10, 14, 1, -5, 16, + -2, -60, -32, -51, -48, -38, -34, -42, -20, 16, 17, -16, -32, -6, 4, -39, + -18, 1, -20, -22, 55, 70, 34, 5, -1, 13, 2, 1, 28, 20, -31, -2, + 51, 26, 24, 19, 11, -1, 2, 30, 13, 2, 70, 36, 15, 24, 5, 9, + 14, 48, 43, 8, 2, -10, 18, 33, 22, -27, -19, -17, -22, 11, 19, -5, + 0, -55, -60, -49, -63, -72, -45, -80, -55, -18, -8, 32, 52, 22, 0, -40, + -42, -30, -68, -51, -9, -67, -52, -10, 7, 35, 12, 36, 64, 23, 13, 64, + 39, 32, 73, 3, 6, -10, -6, 16, 18, 53, 51, 21, -20, -15, 13, -3, + 2, -39, -30, -7, -3, 6, 10, -4, -25, -7, -10, -10, -18, -31, -23, -38, + -48, -3, -26, -43, -7, 11, 31, 62, 41, -7, -34, -42, -24, 17, 12, 44, + 25, 24, 18, 11, 32, 51, 46, 46, 51, 33, 24, 32, 30, 40, 8, -30, + -39, -30, -44, -19, -33, -55, -41, -36, -70, -67, -64, -34, -37, -46, 1, 19, + 27, 81, 23, 13, 10, -5, -18, -19, -51, -14, -48, -75, 11, 51, 43, 63, + 37, 20, 19, 4, -23, 27, 47, 71, 29, 16, 15, -17, -11, 32, 40, 22, + 6, 16, -7, 5, 34, 61, 12, -21, -24, -13, -38, -41, -36, -33, 2, 9, + -45, -54, -36, 12, -18, -41, -25, -18, 19, 31, -11, -16, -22, -62, -65, -68, + -42, -4, -48, -49, 4, 38, 65, 47, 12, -20, -20, -8, 3, 32, 69, 84, + 44, 28, 31, 18, 36, 57, 74, 35, 19, 6, 24, 29, 36, 35, 6, -13, + -25, -43, -45, -35, -33, -44, -23, -41, -57, -52, -41, -35, -21, -16, -22, -11, + 33, 42, 14, 19, 16, 0, -6, -34, -17, -37, -25, -7, 6, 48, 47, 3, + -14, -17, -19, -11, -9, -11, 42, 42, 16, 1, 6, 15, 51, 42, 33, 29, + 20, -5, -3, 4, 54, 42, 8, -30, -19, -15, -15, -20, -6, -7, -24, -32, + -24, -17, -1, -16, -18, -36, -55, -38, -2, 8, 16, 7, -21, -35, -56, -67, + -17, -58, -67, -36, 21, 67, 48, 15, 8, 13, -9, -8, -1, 21, 107, 56, + 40, 56, 32, 33, 71, 60, 36, 30, 3, 31, 15, 4, 21, 2, -2, -25, + -30, -26, -13, -9, -26, -20, -34, -34, -51, -28, 6, -9, -24, -49, -67, -54, + -54, -52, -41, -42, -58, -37, 16, 39, 31, 16, 19, 11, -4, -23, -5, 24, + 1, 10, 24, 26, 15, 34, 70, 77, 56, 33, 43, 28, 17, 25, 12, 2, + 0, -12, -15, -2, 10, -19, -28, -45, -41, -28, -17, -3, -2, -9, -3, -25, + -45, -14, 23, 10, -5, -19, -32, -22, -10, -1, -15, -16, -6, 13, 48, 70, + 55, 23, 23, 10, -8, -14, 6, 8, -12, -5, 13, 10, -14, 0, 33, 23, + 18, 43, 21, 26, 33, 13, -14, -7, -3, -31, -29, -5, -5, -25, -27, -35, + -56, -45, -21, -17, -40, -14, 2, -23, -38, -9, 8, -16, -16, -7, -13, -25, + -4, -12, -21, -14, 3, 13, 44, 65, 60, 40, 15, 5, -20, -22, -3, 3, + 20, 39, 39, 9, 6, 21, 48, 24, 25, 25, 11, 0, 4, -5, -31, -34, + -22, -45, -40, -24, -24, -41, -38, -47, -54, -45, -16, -22, -32, -7, 16, -1, + -11, 23, 31, -1, -10, -20, -19, -9, 15, -10, -28, -21, 4, 24, 45, 60, + 56, 46, 30, 26, 23, 36, 48, 33, 46, 40, 34, 19, 12, 23, 43, 37, + 41, 43, 22, 24, 11, -11, -2, -5, 8, -28, -33, -11, -5, -26, -30, -25, + -45, -21, -8, -26, -35, -37, -39, -54, -56, -20, -23, -42, -52, -49, -63, -47, + -31, -29, -16, -21, -7, 14, 26, 48, 32, 12, -10, -22, -24, -6, 0, 33, + 44, 31, 25, 15, 10, 34, 48, 38, 14, 9, 16, 12, -23, -15, -15, -8, + -9, -19, -22, -2, -8, -10, -32, -27, 4, 12, -5, 1, -1, 4, -5, -3, + -5, 10, 37, 18, -8, -19, -3, 0, -10, -5, -31, -32, -29, -2, 18, 32, + 33, 14, -12, -15, 6, 8, 36, 66, 48, 38, 37, 42, 29, 49, 50, 42, + 28, 25, 33, 15, 2, 4, 2, 4, 2, -11, -1, 6, 3, 9, -14, -12, + -5, -12, -33, -36, -29, -26, -38, -44, -42, -38, -38, -52, -67, -70, -50, -32, + -27, -29, -38, -26, -27, 1, 21, 23, 16, -17, -34, -26, -18, -20, 2, 11, + 13, 5, 10, 13, 12, 28, 33, 35, 14, 14, 14, -8, -24, -25, -8, -16, + -23, -14, 12, 8, 21, 25, 13, 25, 29, 25, 6, 3, 36, 26, 34, 11, + 30, 29, 34, 23, 0, 1, 7, 8, 1, -10, -9, -13, 5, 17, 30, 26, + 25, 3, -11, -4, -4, 9, 13, 17, 6, 4, 17, -1, -4, 9, 16, 22, + 3, -2, -4, -16, -28, -22, -13, -34, -37, -31, -9, -7, -12, -16, -26, -12, + -14, -11, -23, -16, -24, -33, -24, -30, -17, -28, -34, -44, -51, -34, -24, -22, + -25, -2, 14, 23, 38, 46, 43, 28, 10, -6, -11, 1, 0, 5, 18, 16, + -3, 12, 27, 23, 32, 48, 42, 34, 21, 21, 10, -3, -10, -10, -20, -38, + -34, -29, -22, -16, -15, -17, -9, 7, 6, 6, -6, 1, 7, 6, 3, 11, + 30, 30, 15, 11, 11, 10, 17, 22, 23, 24, 9, 15, 5, -2, 4, 3, + -17, -21, -4, -21, -6, 8, -9, -1, 0, 8, -7, -18, -16, -3, -14, -13, + -8, -17, -10, -8, -26, -37, -28, -17, -35, -17, -10, 1, -6, 1, 25, 32, + 26, 9, -18, -19, 1, -12, -20, 2, 12, 5, -4, 15, 14, 15, 15, 17, + 14, 2, 6, 3, -18, -21, -9, -1, -15, -11, -15, -22, -1, 3, -7, 0, + 14, 14, -4, -13, 4, 18, 12, 15, 19, 25, 28, 27, 12, 9, 9, -10, + -17, -4, -5, -4, -20, -19, 11, 20, 13, 0, -19, -8, 6, -9, 6, 26, + 18, 14, 17, 22, 24, 18, 21, 37, 20, 7, 11, -8, -11, -4, -3, -8, + -22, -16, -18, -15, -4, -9, -21, -10, 5, -8, -7, -17, -7, -9, -20, -28, + -35, -31, -23, -23, -29, -28, -28, -33, -28, -24, -6, 0, -4, 7, 29, 25, + 15, -6, -19, 1, -2, -22, 4, 10, 1, 9, 10, 13, 4, 6, 21, 15, + 5, 21, 11, -18, -21, -15, -3, -4, -15, -15, -19, 4, 19, 11, 2, 17, + 16, 2, 14, 14, 17, 20, 22, 20, 10, 16, 27, 12, 8, 11, 5, -9, + -10, -6, -1, -7, -12, -3, 3, 8, 9, -5, -3, 6, -5, -6, 23, 14, + 11, 12, 21, 21, 4, 18, 30, 7, 12, 25, 3, -11, -16, -15, -10, -13, + -8, -6, -21, 2, -2, -25, -18, -8, -22, -22, -17, -12, -7, -12, -15, -20, + -41, -28, -24, -23, -12, -12, -15, -10, -7, 2, 1, 6, 18, 29, 23, 21, + 20, 9, -3, -9, -9, -10, -15, -8, -11, -2, 6, 14, 7, 7, 11, 9, + 14, 2, 3, 7, 6, 6, -21, -20, -10, -12, -15, -16, -18, -14, -11, -14, + 0, 0, -5, 3, 14, 12, 9, 0, -11, 5, 5, 12, 11, -1, 5, 3, + 1, 4, -1, -1, 13, 16, 8, 14, 9, -2, -7, -11, -17, -12, -5, -9, + -10, -13, -4, 1, 0, 4, 5, 0, 2, 3, 5, 14, 18, 9, -3, 2, + 15, 14, 6, 2, 1, -1, -5, -6, 0, 0, 0, 7, 20, 22, 23, 13, + 13, 17, 20, 35, 25, 20, 20, 14, 17, 16, 3, 7, 18, 15, 13, 17, + 6, -5, -6, -13, -23, -19, -19, -22, -22, -24, -17, -18, -22, -27, -31, -30, + -29, -30, -33, -36, -34, -37, -47, -38, -24, -28, -27, -31, -30, -28, -26, -20, + -14, -14, -9, 4, 17, 21, 15, 12, 25, 29, 33, 33, 30, 30, 31, 19, + 20, 14, 4, 10, 17, 18, 21, 28, 19, 20, 20, 5, -2, -3, -7, -10, + -2, 1, 4, 6, 4, 5, 3, 2, -1, -4, -7, -10, -3, -6, -16, -5, + -1, -8, -7, -6, -9, -10, -11, -7, -6, -10, -11, 2, 11, 7, 1, 6, + 12, 16, 18, 15, 11, 14, 16, 9, 11, 6, 5, 13, 14, 13, 11, 0, + -11, -4, -4, -8, -7, -5, -6, -3, -1, 2, -1, -6, -7, -9, -9, -9, + -15, -11, -14, -17, -16, -18, -17, -12, -7, -8, -7, -6, -2, -3, -12, -15, + -15, -18, -13, -19, -23, -24, -21, -21, -13, -12, -7, -3, -7, -6, -4, 2, + 1, 1, 3, 9, 23, 28, 23, 17, 24, 27, 22, 19, 16, 19, 10, 9, + 10, 10, 19, 8, 11, 16, 15, 11, 13, 14, 7, 5, -3, -7, -12, -15, + -16, -17, -10, -5, 4, -2, -2, -9, -13, -9, -8, -10, -10, -12, -5, 3, + 7, 3, 9, 3, 4, -1, -2, 2, -4, -9, -4, 0, 4, 4, -6, -3, + 12, 10, 15, 12, 7, 7, 1, -1, 8, 11, 9, 9, 13, 17, 17, 9, + 11, 4, 0, -3, -6, -8, -9, -10, -17, -20, -24, -17, -19, -22, -20, -21, + -15, -16, -19, -23, -21, -28, -26, -15, -14, -4, -1, -6, -3, -1, 4, 9, + 2, 4, 7, 7, 11, 15, 6, 17, 24, 16, 15, 9, 6, 6, 3, 1, + 3, 2, -2, 6, 6, 6, 3, -6, -3, -8, -7, -10, -13, -17, -18, -16, + -19, -13, -9, -3, 4, 10, 7, 7, 12, 11, 13, 10, 6, 1, 2, 4, + 4, 10, 10, 7, 4, 1, 4, -5, -12, -3, 1, 10, 7, 6, 4, 19, + 22, 20, 23, 16, 15, 19, 17, 14, 9, 7, 4, 4, 2, 5, 3, 0, + 0, -7, -7, -8, -7, -14, -15, -18, -25, -21, -21, -16, -13, -14, -17, -18, + -23, -21, -23, -29, -32, -33, -30, -23, -13, -11, -10, -8, -7, -2, 1, -3, + -1, 5, 13, 17, 13, 11, 13, 16, 14, 10, 11, 8, 16, 13, 4, 0, + 7, 13, 14, 15, 15, 17, 17, 9, 8, 9, 9, 2, 5, 11, 14, 7, + 4, 11, 10, 5, 7, 2, -1, -4, -9, -16, -15, -12, -9, -15, -23, -21, + -22, -22, -20, -22, -22, -21, -22, -22, -13, -6, 4, 2, -2, 2, 7, 6, + 10, 8, 9, 12, 21, 16, 11, 7, 11, 13, 11, 10, 11, 13, 9, 6, + 6, 5, 4, -5, 1, 4, 5, -1, -2, 6, 3, 3, -3, -10, -14, -14, + -14, -16, -8, -6, -1, -6, -7, -5, -7, -6, -9, -8, -8, -4, -5, -8, + -6, 3, 12, 4, -2, 3, 1, 1, -1, -4, -4, 5, 6, 1, -4, -3, + 5, 9, 8, 18, 20, 22, 15, 11, 11, 15, 12, 9, 11, 11, 11, 5, + 10, 12, 5, 3, -2, -4, -9, -9, -16, -17, -14, -12, -14, -20, -15, -16, + -17, -17, -19, -20, -19, -15, -17, -15, -13, -2, -3, -13, -8, 0, 4, 7, + 6, 4, 11, 13, 14, 11, 5, 6, 3, -1, -2, 2, 3, -1, -2, -6, + -4, -1, -3, 0, 3, 1, -2, -5, -5, -3, -6, -9, -7, -15, -13, -10, + -8, -4, 1, 9, 7, 2, 8, 8, 9, 12, 14, 7, 12, 12, 12, 8, + 14, 19, 11, 7, 10, 13, 10, 2, -2, -6, -1, 2, 6, 3, 1, 4, + 2, 2, 5, 8, 8, 7, 7, 2, 0, -3, -6, -3, -1, -6, -12, -9, + -6, -7, -9, -10, -14, -16, -12, -12, -11, -13, -16, -16, -20, -18, -14, -10, + -8, -9, -13, -9, -8, -9, -7, -9, -8, -3, -4, -3, -6, 0, 2, 3, + -3, 2, 5, 1, 6, 5, 5, 10, 11, 17, 15, 20, 25, 20, 15, 17, + 13, 12, 11, 7, 4, -1, -2, 6, 7, 7, 9, 10, 7, 9, 7, 5, + 5, 1, -6, -2, -5, -6, -3, -3, -1, -3, -5, -3, -6, -8, -7, -8, + -11, -12, -16, -19, -19, -14, -14, -17, -17, -11, -12, -15, -6, -8, -12, -12, + -9, -7, -6, 2, 9, 6, 8, 11, 13, 15, 14, 11, 7, 3, 3, 4, + 7, 9, 10, 6, 6, 5, 7, 11, 11, 4, 1, 1, -3, -5, -1, -1, + -1, -5, -2, -1, -1, 1, 1, -3, -7, -7, -9, -12, -11, -3, -3, -7, + -6, -6, -5, -5, 0, -3, -4, -2, 2, -1, 0, 6, 7, 7, 4, 3, + 5, -1, 0, -1, -7, -9, -8, -11, -5, 0, -1, 0, 2, 2, 5, 10, + 10, 7, 7, 7, 8, 8, 9, 11, 9, 8, 9, 6, 4, 2, 0, -3, + -5, -8, -8, -12, -8, -1, -4, -4, -5, -7, -9, -6, -5, -6, -8, -6, + -3, -7, 0, 5, 6, 3, 1, 6, 6, 4, 3, 1, -2, -4, -6, -4, + 3, 7, 3, 0, -1, -3, -2, -1, -2, -5, -8, -9, -7, -9, -8, -6, + -9, -7, -9, -7, -6, -7, -6, -7, -7, -7, -7, -8, -2, 1, 2, 4, + 3, 5, 6, 10, 11, 9, 10, 12, 9, 9, 11, 9, 10, 8, 7, 7, + 6, 7, 5, 4, 5, 4, -1, -4, -3, -5, -1, -2, -4, -4, -4, -4, + -2, -2, -3, -4, -2, -1, 0, 1, 8, 8, 4, 4, 4, 2, -2, -3, + -5, -6, -9, -10, -8, -5, 2, 1, -2, -2, -2, -2, -2, -5, -5, -7, + -7, -3, -4, -6, -4, -3, -5, -7, -5, -4, -7, -9, -6, -6, -9, -7, + -6, -2, 3, 3, 4, 5, 3, 4, 5, 2, 0, 2, 3, 2, 5, 7, + 10, 9, 7, 7, 6, 4, 1, -2, -5, -6, -10, -10, -8, 2, 8, 7, + 6, 7, 5, 5, 7, 6, 3, 4, 3, 4, 1, 3, 2, 4, 2, 1, + 1, -1, -3, -3, -4, -6, -9, -9, -9, -7, -6, -5, -5, -4, -5, -2, + -1, -2, -3, -1, -1, -3, -2, 2, 2, 3, 4, 4, 2, 0, -1, -3, + -4, -4, -5, -7, -2, 2, 2, -1, -3, -1, -4, -3, -2, -4, -4, -2, + -1, -2, -4, -2, -2, -1, -2, -2, -2, -3, -2, 0, 2, 0, -2, -2, + 0, 2, 3, 5, 4, 4, 4, 6, 3, 1, 0, 0, 0, 0, 5, 5, + 4, 6, 4, 2, 0, -2, -3, -6, -9, -8, -10, -10, -2, 3, 4, 4, + 4, 5, 4, 4, 5, 4, 4, 4, 4, 2, 3, 2, 2, 2, 1, 1, + 0, -2, -3, -3, -4, -6, -8, -7, -4, -6, -3, -3, -3, -2, 1, 0, + -1, -2, -2, -1, -1, 0, 1, 0, 0, 1, 0, 0, 0, -1, -2, -3, + -3, -4, -5, -4, -3, -3, -3, -3, -3, -3, -2, -1, 0, -1, 0, 0, + 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 2, 3, + 3, 2, 2, 0, -1, -1, -2, -3, -3, -4, -5, -4, 0, 3, 3, 3, + 3, 2, 3, 4, 6, 4, 4, 3, 2, 1, 2, 1, 0, 0, -1, -2, + -3, -3, -2, -2, -3, -3, -3, -3, -3, -2, -2, -2, -2, -2, -2, -2, + -2, -3, -2, -3, -2, -2, 0, 0, 0, 0, 0, -1, -1, -2, -2, -3, + -2, -4, -4, -3, 0, -1, 0, 0, 0, 0, 0, 1, 2, 1, 1, 1, + 0, 0, 0, -1, 0, -1, -1, -1, -1, -1, 0, 0, -1, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, + 0, 0, -1, -1, -2, -2, -2, -2, -2, -3, -3, -1, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 1, 0, 0, 0, -8, -33, -24, -25, -25, -26, -27, + -32, -28, -36, -31, -36, -22, -34, 11, -74, -14, 94, 41, 28, 33, 30, 40, + 34, 23, 41, 40, 60, 56, 59, 60, 44, 39, 54, 45, 52, 17, 44, 62, + 34, 33, 19, 18, 43, 35, 22, 36, -15, -10, 32, -7, -12, -6, -8, -50, + -47, -44, -4, -25, -48, -76, -58, -75, -96, -85, -118, -114, -63, -106, -103, -83, + -110, -99, -84, -76, -58, -63, -61, -51, -53, -36, -32, -41, -27, -11, 11, 8, + 27, 19, 30, 35, 28, 57, 53, 38, 71, 51, 68, 110, 78, 89, 109, 97, + 82, 94, 115, 114, 79, 70, 79, 94, 85, 76, 84, 95, 83, 82, 55, 54, + 54, 41, 41, 27, 20, 6, -11, -21, -16, -14, -33, -33, -52, -54, -59, -62, + -71, -79, -88, -88, -78, -78, -72, -71, -94, -99, -93, -90, -78, -87, -105, -103, + -79, -62, -71, -78, -63, -61, -66, -49, -23, -10, -11, -24, -20, -4, -22, 9, + 8, 27, 43, 34, 38, 51, 83, 65, 58, 74, 75, 70, 73, 71, 65, 100, + 89, 94, 65, 84, 49, 49, 61, 54, 43, 51, 58, 53, 35, 40, 36, 38, + 34, 23, 14, -12, -10, -1, -1, -11, -12, -19, -33, -66, -52, -42, -37, -55, + -42, -28, -32, -29, -35, -41, -28, -25, -46, -85, -64, -62, -55, -49, -68, -55, + -53, -52, -47, -43, -26, -32, -41, -34, -35, -40, -26, -8, -1, -6, -11, 5, + -2, 8, 3, 8, 6, 4, 20, 29, 43, 24, 33, 20, 30, 24, 39, 38, + 40, 29, 37, 36, 39, 61, 58, 41, 51, 59, 51, 55, 58, 48, 32, 45, + 40, 27, 30, 41, 44, 26, 19, 23, -3, 7, 0, -3, 2, 3, -6, -5, + -14, -6, -10, -27, -45, -47, -41, -38, -50, -51, -46, -43, -45, -65, -65, -80, + -95, -82, -74, -66, -69, -67, -33, -31, -53, -48, -51, -43, -18, -24, -24, -33, + -26, -10, 0, -17, -6, 17, 31, 2, 23, 45, 46, 12, 75, 38, 63, 69, + 31, 38, 80, 57, 48, 59, 81, 74, 32, 52, 72, 24, 60, 44, 55, 40, + 28, 48, 33, 24, 10, -2, 21, 34, 13, 18, 7, -1, -12, -20, -18, -30, + -9, -7, -30, -27, -26, -38, -20, -54, -55, -64, -53, -36, -62, -37, -71, -47, + -42, -71, -45, -55, -50, -54, -56, -36, -37, -54, -36, -12, -38, -33, -26, -7, + -22, -44, -10, 2, 3, 15, 8, 18, 6, 12, 8, 15, 28, 22, 50, 35, + 55, 42, 36, 49, 52, 64, 48, 60, 49, 60, 62, 40, 47, 68, 52, 59, + 61, 44, 53, 44, 35, 31, 31, 47, 22, 6, 4, -7, 5, -4, -21, -13, + -9, -10, -27, -46, -32, -44, -46, -62, -44, -51, -67, -53, -59, -63, -74, -67, + -61, -61, -65, -47, -58, -57, -45, -41, -46, -41, -38, -22, -25, -34, -16, -10, + -18, 0, 1, -6, 5, 17, 15, 10, 23, 38, 28, 28, 54, 40, 19, 55, + 55, 41, 46, 53, 40, 49, 51, 52, 41, 56, 39, 53, 38, 33, 35, 18, + 15, 38, 30, 23, 27, 13, 11, 7, 16, -1, 0, 0, 13, -6, -10, -15, + -10, -10, -24, -20, -16, -38, -36, -21, -40, -32, -42, -38, -52, -53, -41, -48, + -58, -50, -47, -37, -41, -45, -29, -41, -6, -48, -24, -25, -15, -9, -10, -10, + -10, -1, -17, 4, 3, 10, -4, 9, 15, 25, 24, 19, 23, 34, 28, 33, + 37, 38, 26, 36, 47, 35, 46, 45, 28, 35, 32, 32, 24, 21, 26, 23, + 19, 37, 20, 9, 29, -2, 26, 24, 8, 4, 14, 21, 11, -9, -8, 4, + -9, -31, -11, -15, -21, -24, -29, -22, -33, -26, -29, -48, -32, -44, -28, -22, + -35, -30, -38, -31, -46, -44, -36, -27, -23, -29, -24, -11, -20, -28, -13, -34, + -19, -1, 7, -3, -1, 6, -3, 5, 4, 8, 17, 26, 19, 33, 27, 16, + 35, 14, 36, 39, 22, 32, 31, 19, 32, 23, 29, 21, 30, 29, 23, 31, + 13, 24, 17, 11, 26, 18, 12, 5, 23, 16, 9, 15, -10, 3, 18, -15, + -4, -4, 6, -14, -15, -5, -34, -11, -20, -18, -8, -17, -29, -30, -29, -19, + -34, -35, -20, -36, -20, -16, -21, -38, -16, -30, -24, -25, -19, -18, -15, -7, + -5, -5, -10, -23, -3, -14, 0, -1, -12, -9, 7, 7, 2, 12, 5, 7, + 19, 10, 21, 21, 27, 30, 22, 18, 34, 22, 11, 26, 24, 20, 21, 25, + 29, 22, 27, 27, 20, 10, 20, 16, 22, 15, 16, 16, 5, 19, 10, 3, + 22, -5, -5, -7, -16, -4, -11, -22, -7, -16, -11, -23, -16, -30, -24, -28, + -20, -29, -24, -32, -22, -22, -30, -17, -23, -28, -22, -20, -21, -21, -17, -30, + -15, -14, -20, -9, 3, 6, 5, -20, 10, 13, -2, 11, 8, -1, 7, 16, + 5, 22, 23, 13, 22, 13, 22, 25, 15, 16, 11, 15, 13, 7, 12, 19, + 18, 20, 12, 23, 11, 6, 10, 1, 11, 19, 5, 20, 0, 11, 11, 1, + 14, 15, -3, -1, -7, 6, -6, -9, -9, 4, -3, -10, -20, -14, -9, -14, + -7, -10, -5, -4, -29, -14, -12, -26, -21, -27, -18, -10, -19, -27, -18, -8, + -25, -8, -13, -15, -14, -15, 5, -13, -7, -11, -4, -12, 0, 15, 5, 4, + 1, 11, 6, 4, 3, 6, 21, 19, 8, 15, 13, 6, 14, 16, 18, 17, + 20, 15, 11, 15, 24, 13, 11, 19, 7, 17, 14, 6, 17, 7, 7, 6, + 6, 5, 11, 0, 6, 0, -6, 5, 1, -11, -6, -1, -8, -9, -15, -7, + -4, -16, -17, -13, -13, -17, -14, -12, -12, -28, -13, -19, -25, -31, -24, -17, + -17, -16, -7, -15, -12, -8, -15, -8, -16, -10, -4, -1, -2, 3, 5, 2, + -2, 5, 3, 6, 10, 8, 11, 14, 14, 13, 15, 22, 16, 14, 18, 13, + 17, 19, 16, 10, 17, 8, 17, 14, 3, 14, 7, 10, 10, 7, 6, 6, + -1, 6, 1, 0, 12, -6, 6, 12, -4, -5, -4, -2, -2, -1, -2, -8, + -11, -9, -11, -11, -18, -6, -5, -16, -9, -14, -10, -13, -10, -11, -15, -14, + -14, -12, -17, -17, -17, -7, -11, -14, -15, -12, -6, -15, -5, -13, -9, 0, + 12, -2, -2, 6, 2, -7, 4, 10, 2, 9, 8, 7, 4, 5, 11, 15, + 11, 10, 18, 9, 13, 13, 13, 21, 11, 18, 19, 13, 14, 16, 6, 8, + 1, 19, 11, 10, 11, 1, 3, -1, -1, 5, -11, 5, -1, -5, -3, -13, + -10, -6, -7, -5, -15, -10, -11, -18, -8, -16, -20, -18, -9, -12, -17, -21, + -21, -13, -21, -8, -10, -10, -5, -16, -7, 2, -6, -6, -9, -7, -2, -9, + -5, 6, -7, 1, 3, -1, 2, 1, 2, 9, 8, 5, 15, 12, 1, 11, + 9, 8, 10, 15, 14, 5, 13, 17, 14, 15, 10, 7, 16, 5, 5, 5, + 8, 9, 10, 10, 7, 0, 4, 6, 9, -10, -4, 5, 2, -1, 0, -3, + -4, -5, -10, -5, -8, -9, -10, -3, -13, -6, -9, -20, -15, -11, -18, -14, + -10, -12, -20, -14, -14, -7, -12, -21, -14, -9, -8, -11, -5, -2, -7, -4, + 4, -2, -3, -1, 0, -1, 8, 6, 9, 7, 10, 6, 3, 4, 7, 10, + 11, 6, 9, 17, 11, 9, 7, -2, 16, 13, 12, 18, 5, 16, 9, 4, + 9, 6, 8, 9, 4, 4, 3, -2, -3, 2, -6, -3, 1, -7, -6, -3, + -6, -14, -8, -9, -4, -13, -9, -8, -16, -10, -12, -13, -11, -7, -8, -12, + -9, -8, -7, -11, -4, -8, -7, -8, -3, -13, -10, -3, 6, -5, -5, 0, + -5, -3, 6, -2, -2, 4, -2, 6, 2, -2, 5, 5, -2, 5, 15, 13, + 4, 6, 6, 14, 9, 4, 8, 7, 3, 11, 12, 2, 10, 7, 10, 8, + 4, 6, 2, 0, 3, 2, 4, 2, -6, -2, 2, -4, 3, -5, -6, -5, + -5, -5, -4, -8, -7, -4, -4, -7, -8, -7, -13, -10, -10, -11, -9, -8, + -8, -7, -11, -7, -3, -9, -6, -7, -3, -4, -5, 3, -3, -1, -2, -4, + 1, 4, 0, 3, 0, 5, 2, 0, 5, 4, 1, 3, 1, 0, 1, 7, + 3, 0, 4, 3, 6, 5, 0, 9, 5, 7, 6, 3, 6, 2, 3, 5, + -4, 9, 0, 4, 10, 0, 5, 1, -2, 4, -3, -3, -2, 0, 2, -7, + 3, -10, -1, -6, -9, -2, -4, -10, -3, -7, -6, -4, -10, -6, -6, -11, + -6, 0, -6, -8, -4, -1, -9, -10, 0, -6, -7, -2, -7, 1, -5, -5, + -1, 1, -6, 2, 0, -3, -1, 7, -4, 0, 7, 0, 8, 2, 3, 4, + 4, 2, 5, -1, 6, 7, 5, 6, 4, 2, 4, 6, 8, 6, 3, 1, + 8, 9, 2, -1, 4, 3, 4, 3, -3, 7, 4, 3, -2, 2, -4, -6, + -2, -5, -2, -3, 0, -5, -6, -13, -5, -6, -11, -9, -10, -5, -4, -9, + -9, -7, -7, -8, -8, -6, -5, -7, -5, -1, -3, -4, -2, -2, 2, -3, + 1, 2, -3, 1, 2, 1, 0, 1, 5, 0, 2, 5, 2, 0, 4, 1, + 7, 3, 2, 6, 0, 5, 7, 5, 5, 1, 3, 3, 5, 10, 3, 4, + 8, 2, 7, 3, -2, 3, 0, -1, -1, 1, 0, 1, -3, -2, -5, -4, + -3, -1, -7, -8, -4, -4, -10, -2, -8, -8, -8, -8, -9, -6, -8, -9, + -4, -2, -7, -5, -2, -7, -6, -9, -2, 0, -4, 4, -6, -3, -4, -1, + 2, 1, 2, 9, 0, 3, 0, 6, 4, 0, 5, 6, 2, 7, 7, 5, + 7, 6, 8, 6, 6, 5, 5, 1, 6, 5, -1, 3, 4, -1, 4, 1, + 4, 3, -5, 0, 4, 1, 4, -2, -3, -4, 0, -4, -8, -2, -5, -4, + -8, -6, -5, -3, -3, -7, -9, -6, -10, -10, -6, -6, -5, -4, -7, -6, + -4, -10, -3, -10, 0, -2, -2, -6, -1, 3, -3, -3, 1, 2, 1, 4, + 3, 4, 3, 4, 1, 2, 6, 5, 5, 5, 7, 9, 1, 5, 4, 4, + 7, 2, 9, 2, 4, 8, 2, 5, 6, 3, -2, -2, -1, -2, -1, 1, + -2, -4, 1, -6, -2, -5, -3, -5, -5, -6, -4, -3, -4, -10, -4, -3, + -8, -4, 0, -3, -5, -6, -6, -3, -1, -7, -3, 1, -1, -4, -2, 1, + -2, 0, -1, -2, 0, 0, 5, -2, 0, 3, 3, 1, 5, 2, 4, 1, + 4, 1, 2, 3, 3, 3, 4, 3, 3, 5, 1, 4, 2, 3, 1, 2, + 0, 2, 1, -2, -2, -1, 0, -2, -1, -1, -3, -5, -2, 0, -5, -1, + 0, -5, -2, -2, -2, -3, -3, -1, -4, -1, -2, -4, -2, -1, -2, -1, + 0, -3, -1, -1, 0, 1, -1, -1, 3, -4, -2, -2, 4, -2, -1, -1, + -1, 0, 0, -1, -1, -1, -1, 2, 0, -1, 2, -1, 0, -1, 2, 0, + 3, 5, -2, 1, 2, 0, 5, 0, -3, 4, -3, 1, 2, 0, 4, -1, + -2, 1, 0, 0, 0, -1, 1, -2, 0, 1, 1, 0, -5, 1, -2, -1, + 0, -2, -3, -1, -3, 0, -2, -3, -4, 1, -2, -3, -2, -2, -1, -1, + -2, -1, -4, -5, 2, -4, 0, 1, -1, 2, -2, -1, 0, 0, 1, -3, + 3, 2, 0, -2, 2, 1, 2, -2, 5, 3, -2, -2, -1, 1, 0, 0, + 1, 3, 2, 0, 0, -1, -2, 1, 1, 2, 1, 1, -1, 0, -1, -1, + -1, -3, 1, 1, 2, -2, -1, 0, 0, -2, 0, -1, -1, 2, -2, 1, + -1, 0, 0, -1, -1, -2, 0, -1, 1, -1, -1, 2, -2, 0, -1, -1, + 2, -1, 0, -3, -1, 0, 0, 0, -3, -3, -2, 0, 0, -1, -1, 0, + -4, 2, 0, -2, 0, 1, -3, -1, 2, 1, 0, -1, 0, 0, -1, 0, + 2, -1, -1, 0, 0, -2, 1, 1, 0, 1, 0, 2, -3, -2, 2, -1, + -1, 2, -2, 1, 1, 0, 0, 1, 1, 0, -4, 3, -1, 2, 0, 2, + -1, -2, 0, 1, 1, -1, -1, -1, -1, -1, -2, -2, -2, -2, -2, -1, + -1, 1, 0, -5, 0, -1, -1, -1, 1, -1, 1, -1, 1, 0, -2, 0, + -2, 1, -1, 1, 0, -1, -2, 0, -1, 0, 0, 2, 0, 0, 0, 1, + 0, 0, 2, 0, -1, 0, 0, 0, 2, -1, 1, 1, -1, -1, 0, 0, + 1, 1, 0, 0, 0, 0, -1, 0, 0, -2, 0, 0, -1, 1, -2, -1, + -1, -1, -2, -1, -2, 1, -1, 0, -2, -2, 1, -2, -1, 1, 0, 1, + 1, -1, -1, 0, -1, 0, 0, 0, -2, 0, -1, 0, 0, -1, -2, -2, + -2, 1, -1, 0, 0, -1, 1, 1, -2, -1, -2, -1, 1, -1, -1, -2, + -2, 0, 0, 1, -1, -1, -1, -1, -2, 2, 0, 0, 1, 1, 1, -2, + 0, -1, 0, -1, -1, 2, 0, -1, -1, -1, 1, -1, 2, 0, -1, 1, + 1, 0, 1, 0, -1, -1, -1, -1, -3, 0, 0, -1, 1, 0, 0, -2, + -2, -2, 0, -1, 0, 0, -1, 0, -1, -2, -1, -2, 0, -2, 0, 0, + -1, -2, 1, -2, 0, -1, -2, 2, 0, -1, 2, -1, 1, -1, 0, 0, + -1, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, -1, -1, 0, -2, -1, + 0, 0, 1, 0, 0, 0, 0, -1, -1, 1, -1, -2, -1, 0, 0, -2, + 0, -1, 0, 0, 0, 1, 0, 0, -1, 1, 0, -1, 0, 1, -1, 0, + -1, -2, 0, -1, 0, -1, -1, -1, 0, -1, 0, 0, 0, -1, -1, 0, + -2, 0, 0, 0, -2, -2, 0, -2, -1, -1, -1, -2, 0, -1, -1, -1, + 0, 0, -1, -1, 0, 1, -1, -1, 0, -1, 0, 0, 1, 1, 0, 0, + -1, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 1, 0, 0, -1, 0, + 0, -1, -1, 0, -1, -1, 0, -1, 0, -1, -1, 0, -2, -1, 0, -1, + -1, -1, -1, 0, -1, 0, 0, 0, 0, -1, 1, 0, 0, 0, -1, -1, + 0, -1, -1, 0, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, 0, -1, + 0, -2, 0, -1, -1, -1, 0, -1, -1, 0, -1, 0, 0, 0, -2, -1, + 0, -1, -1, 0, 1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, + 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, + -1, 0, 0, -1, -1, -1, 0, 0, -1, -1, 0, -1, 0, 0, 0, -1, + 0, -1, -1, 0, -2, -1, -1, -1, 0, -1, 0, -1, -1, 0, 0, -1, + 0, -1, 0, -1, -1, -1, 0, -1, 0, -1, 0, 0, -1, 0, -1, 0, + 0, -1, -1, 0, 0, 0, -1, 0, -1, 0, 1, -1, 0, 0, 0, 0, + 0, -1, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, -1, 0, 1, + -1, -1, -1, 0, 0, -1, -1, -1, -1, 0, -1, 0, 0, 0, 0, 0, + 0, -1, -1, 0, -1, -1, 0, -1, 0, -1, -1, -1, -1, 0, -1, -1, + -1, -1, -1, -1, -1, 0, -1, 0, -1, 0, 0, -1, -1, 0, -1, 0, + -1, 0, 0, -1, 0, -1, -1, -1, 0, -1, 0, 0, 0, 0, 0, -1, + -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, + 0, -1, 0, -1, 0, 0, 0, -1, -1, 0, 0, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 0, 0, -1, -1, -1, 0, 0, 0, -1, 0, -1, -1, + 0, -1, 0, 0, -1, -1, -1, -1, -1, 0, 0, -1, 0, 0, -1, 0, + 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, + -1, 0, 0, 0, 0, -1, 0, 0, -1, 0, -1, 0, 0, -1, -1, -1, + 0, -1, -1, 0, -1, -1, 0, 0, -1, -1, -1, -1, 0, -1, -1, 0, + 0, -1, 0, 0, 0, -1, -1, 0, -1, -1, -1, 0, 0, -1, -1, -1, + -1, -1, 0, -1, 0, 0, -1, -1, 0, 0, -1, 0, 0, -1, -1, -1, + 0, -1, 0, 0, -1, -1, 0, 0, -1, -1, 0, 0, 0, -1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, + 0, 0, 0, -1, 0, -1, 0, -1, -1, -1, -1, -1, -1, 0, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 0, -4, 11, 6, 16, 10, -16, -48, + -44, 2, 67, 42, -17, -51, 15, 71, 12, -22, -14, -44, -35, 11, 17, -18, + 2, -15, 19, 12, -1, -44, -15, 50, 45, -25, -61, 17, 10, -10, 31, 18, + -72, -27, 57, 26, -13, -17, -2, 6, -1, -23, -54, 17, 39, 8, 30, 28, + -6, -71, -5, 33, 27, -5, 17, 10, -23, -6, 12, -26, -6, -7, -9, -14, + 11, 37, 41, 8, -33, -14, 8, -31, -38, 13, 9, 15, 35, 33, 11, 17, + -41, -48, -33, 29, 25, 16, -9, -9, -17, -19, -29, 43, 64, -2, -55, -42, + -1, -21, -4, 29, 34, -25, -67, -29, 1, 51, 49, 25, -6, -15, -48, -76, + -3, 60, 78, 33, 19, 13, -38, -35, -35, -2, 62, 19, -4, -12, -4, -4, + -32, -30, 8, 68, -43, -66, -28, 55, 51, 20, -28, -29, -19, 20, -2, 8, + 21, -15, -43, 24, 22, -7, -2, 35, 15, -2, -24, -12, 3, 31, 13, -15, + -20, -17, -17, 26, -26, 24, -3, 7, 21, 26, -3, -17, -26, -50, -26, 33, + 58, 49, -22, -67, -17, 24, 7, -57, 5, 42, -11, -3, 32, -3, 7, 13, + -11, -9, 27, 17, 1, -5, -9, -18, -19, -3, -23, -5, 7, -8, 9, 13, + 12, -5, 7, -37, 22, 26, 21, 24, -20, -35, 23, 24, -35, -15, 46, -38, + -48, -14, -4, 0, -22, 3, 43, 38, -1, -14, -8, -5, -14, 1, 21, 23, + 29, -19, -47, -42, -49, -10, 66, 77, 48, -29, -32, 1, -11, 8, 17, -17, + 3, 43, 33, -22, -19, -41, 29, 22, -42, 9, 63, 28, -23, -59, -65, 7, + 53, -22, -10, -27, -30, 36, 48, -4, -6, -22, -16, 10, 14, -7, 22, 50, + -4, -25, -41, -55, -62, 23, 68, -16, -31, 49, 57, 21, -38, 14, 12, -43, + -49, -16, 28, 7, -12, -50, -17, 49, 65, 18, 1, -8, 28, 2, -27, -13, + 12, -11, -52, 4, 31, -32, -39, 15, 8, -19, 6, 25, -1, -23, 13, 34, + 59, 36, -16, -5, -7, -28, -30, 1, -14, -42, 10, 43, 26, -25, -37, -61, + 1, 63, 62, 1, -36, -24, 38, -7, -26, 27, 10, 4, 2, -19, -22, -27, + -24, 0, 33, -8, -57, -12, 62, 77, 51, -10, -42, -27, -28, -31, -3, 5, + 21, 10, 15, -27, -18, -18, -10, 3, 17, 19, 18, -16, -20, 25, -3, -19, + -5, 32, 17, -3, -32, -8, 2, -11, -24, -17, -11, 3, 42, 15, -12, -2, + 26, 9, -4, -30, -3, 16, 7, 13, 34, 40, 114, 11, -104, -71, 7, -14, + -34, -26, 35, 45, 47, 7, -7, -16, 11, -6, -29, -32, 1, 24, 32, 10, + 29, -10, -74, -80, -20, 18, 9, 18, 61, 38, -27, -44, 13, 16, -26, 20, + 69, 14, -14, -46, -7, -6, -35, 0, 9, 5, 58, 71, -36, -78, -15, 43, + 34, -61, -101, -27, 45, 26, -10, 23, 69, 69, 5, -72, -62, 19, 16, -37, + -60, 37, 60, 10, -49, -10, -2, -1, 43, 44, 10, -50, -5, 19, 8, -43, + -58, -17, 32, 28, 4, -1, -18, -10, 13, 8, 1, 1, 22, -3, -4, 9, + -8, -9, 17, 3, -15, -8, 14, 11, -14, -11, -5, 13, -24, -34, -1, -16, + -4, 32, 35, -32, 9, 22, 12, -27, -16, 14, 15, 0, -2, -12, -31, -24, + 14, 48, 10, -14, -7, -22, 4, -8, -14, 19, 21, -21, -25, -12, 19, 24, + 19, 27, -3, -15, -16, 10, 21, -14, 3, 8, 3, -11, -33, -16, 7, 5, + -8, 2, -3, 12, 5, -34, -19, -6, 26, 19, 0, -4, -12, 5, 12, 20, + 16, 19, 18, -13, -42, -26, -1, 0, -18, -16, 10, 27, 23, -5, -7, 9, + -8, 7, 22, 10, -28, -51, -26, 13, 44, 17, 16, 25, 14, -32, -45, -36, + -40, -3, 22, 41, 34, -12, -35, -31, 18, 3, 31, 28, 4, -21, 2, -14, + -24, -23, 19, -6, -7, -10, -1, -13, -13, 21, 52, 28, 7, 1, -25, -36, + 2, 34, 10, -37, -31, -13, 19, 11, -4, -20, 15, -5, -18, 40, -13, 15, + -36, 14, 18, 17, -21, 6, -39, 21, 7, -26, 8, -33, 24, 30, 32, -11, + -26, -47, -39, 62, 10, 11, 5, -17, -21, 10, 0, 18, 15, -22, 7, 13, + 14, -8, -9, 30, 33, -34, -41, -32, 37, 24, -19, -15, 1, 2, 10, 10, + -27, -46, -14, -9, 9, 47, 1, -22, -18, 5, 37, 29, -3, -19, -19, -18, + 8, 17, 1, -11, -6, -20, 27, 37, -2, -28, -34, -3, 22, 54, 34, -31, + -43, -28, -30, -33, 26, 49, 45, 43, -15, -58, -13, -2, -27, -7, 41, 11, + 19, -50, -74, -28, 31, 75, 39, -45, -7, 99, 44, -83, -47, 45, -1, -30, + 23, 29, -55, -30, 31, 28, -19, 2, -44, -46, -49, 30, 22, 58, 31, -50, + -20, 9, -38, -53, 49, 37, -9, 13, -25, -18, 18, -27, -7, 17, 3, 24, + 57, 26, -51, -52, -54, -43, 53, 85, 31, -36, -44, 7, 13, 19, -23, -33, + 36, 47, -38, -11, 37, -19, -6, 18, 17, 2, 31, 54, -29, -72, -80, -1, + 27, 52, 10, -29, -40, -48, -72, 24, 108, 66, -44, -76, -32, -24, 21, 69, + 54, 24, -2, -8, -28, -44, -50, 34, 95, 45, -40, -72, -32, 6, 28, -1, + 18, -7, 27, 1, -14, 21, -8, -51, -62, -24, 64, 56, 12, 19, -36, -22, + 10, 20, -10, -1, -5, -51, 36, 72, -42, -51, 70, 45, -48, -27, 54, 19, + -46, 8, 0, -46, 10, 37, 35, -21, -32, -22, -44, -82, -33, 59, 105, 48, + -32, -36, -31, 18, 60, -12, -49, 10, 89, 28, 12, 8, -45, -21, -6, -16, + -32, -17, -18, 3, 29, -3, 0, -20, -51, -31, 24, 52, 1, -17, -20, 1, + 35, 15, 5, 35, 27, 18, -19, 8, -71, -74, -8, 88, 57, -45, -37, 17, + 51, -1, -13, -4, 3, -13, -24, -7, 30, -7, -25, -1, 16, -8, -43, -70, + 11, 85, 77, 12, -62, -57, 35, 53, -33, -96, 8, 82, 21, -38, 25, 39, + -1, -27, -14, 18, -16, -45, -24, 42, 7, -9, 22, 32, -39, -5, -8, -49, + -17, 60, 88, 21, -93, -20, 82, 31, -26, -63, -17, 52, -28, -25, 13, -2, + -32, -46, 55, 56, -37, 6, -57, -33, 65, 63, 5, -25, -31, 69, 86, -32, + -34, -56, -23, -47, 14, 44, -23, 19, 6, 60, -27, -69, -37, 20, -14, -5, + 50, 44, 15, 13, -23, -60, -46, 23, 40, -5, -25, 6, 46, -4, -10, -27, + -12, 28, 45, 10, -13, -33, -19, -39, 42, 32, -23, -25, 24, -17, 13, 25, + 13, -32, 13, 48, 4, -93, -5, 40, -7, 37, -39, -37, 41, 1, -13, -33, + 43, -53, 106, 8, -57, -93, 55, 40, 56, -24, -4, -19, 7, -23, -65, -18, + 34, -30, 7, 66, 92, 3, -43, -37, -23, 12, -7, -17, 14, -15, -9, -18, + 18, 51, -1, -57, -17, 23, 19, 15, -40, -1, 0, -8, 39, -13, -43, 72, + 57, -1, -54, -17, 32, -19, 11, 0, 36, 25, -23, -86, 21, -3, 14, -17, + 76, 37, 23, 2, -23, -54, -42, -80, 61, 60, 63, -12, -57, -44, 15, 35, + 26, 11, -44, -22, 8, 33, -24, -17, 21, 38, -25, -39, 16, 43, -36, -28, + 54, 10, -52, -18, -34, -14, 76, 60, 24, -32, -19, 16, -13, -68, -5, 30, + -13, -23, -14, 61, 24, 35, 39, 4, -50, -58, -39, 0, 43, 43, 21, 24, + -20, -46, -36, 38, 8, -67, -8, 61, 38, 10, -12, 5, -4, -16, -47, -5, + -18, -20, 37, 41, 24, 4, 7, -19, 11, -52, 0, 17, 20, -30, -33, -16, + 60, 34, -15, -46, -77, 14, 29, 26, 21, 25, 8, 7, 36, 23, -39, -16, + 21, 11, -23, 11, -4, -6, -35, 13, -8, -49, -17, 44, 19, -25, -17, 9, + -5, -5, -1, -31, 11, 15, 17, -8, -31, -51, 12, 54, 85, 32, 4, -58, + -35, -31, 0, 10, 21, -20, -20, -29, 15, 26, -7, 8, 4, 0, 30, 2, + -26, 2, 19, 15, -18, -13, -20, -19, 47, 33, -6, -51, -30, -12, 12, 30, + 34, 31, 4, -45, -81, -7, -22, 1, 73, 98, 24, -67, -13, 19, -32, -86, + 6, 94, 4, -47, 21, -11, -50, 22, -3, -2, 50, 20, -37, -59, 35, 28, + -16, -36, -30, -11, 4, 69, 98, -65, -84, 73, 27, -90, -17, 84, 10, -51, + -14, 40, -24, -11, 16, -34, -26, 38, -43, -34, 58, 85, -33, -51, 17, 7, + 4, 52, 25, -35, 0, 44, -21, -47, 40, 44, -69, -65, 37, 35, -21, 4, + 32, -60, -75, 21, 64, 60, -6, -11, 6, 2, -41, -34, 19, 31, 9, 7, + -1, 11, 6, -11, -26, -23, 16, 35, -39, -68, 6, 56, -3, -42, 29, 28, + 3, 28, 14, -37, -16, 11, -8, -18, 15, -1, -8, 43, -20, -67, -12, 34, + 7, -12, -9, 5, -4, 7, -12, 27, -3, -68, 26, 96, 30, -33, -28, -25, + 19, 27, -33, -48, -3, 37, -1, -35, -11, 5, 42, 36, 6, -48, -38, 26, + 54, -23, -41, 52, 44, -32, -22, 28, -23, -32, 12, 41, -16, -6, -6, -17, + -18, -14, -12, -5, 18, 52, 45, -10, -16, 29, 11, -36, -26, 7, 36, 12, + -57, -48, 48, 70, 16, 21, -13, -46, -33, -62, -63, -21, 94, 94, 20, -110, + -47, 41, 67, -16, -57, -40, 85, 71, 7, -39, 15, -29, -50, -41, 18, -40, + -42, 38, 69, 21, -8, -58, -19, 23, 24, -20, -10, 11, 41, 7, -6, -30, + -23, 2, 16, 57, 38, -11, -50, 36, -16, -51, -51, 81, 24, -68, -84, 39, + 112, 62, -79, -104, 24, 102, 15, -38, 20, 22, -49, -91, 15, 51, 30, -1, + -15, -30, -12, 17, 42, -17, -48, 0, 49, 35, 2, -19, -16, -30, 9, 17, + -12, -4, -15, 5, 34, -1, -56, -64, 7, 48, 54, -16, -51, 20, 62, -17, + -27, -9, -10, -29, -1, 35, 44, -20, -23, -2, -12, -4, 31, 24, -24, -14, + 2, -28, -27, 49, 61, -54, -61, 6, 23, -20, 2, 41, 26, 2, 15, -5, + 6, -16, -36, -16, 2, -54, -53, -18, 62, 64, 10, -3, 91, 39, -54, -103, + -5, 16, -31, -28, 75, 105, -32, -114, -52, 68, 32, -52, -19, 25, 54, 61, + 14, -40, 12, 1, -56, -31, 74, 40, -73, -66, 0, 49, 36, 24, -20, 0, + 13, -40, -99, -11, 55, 31, -33, 39, 24, 3, -18, 7, 10, 4, -29, 17, + 19, 27, -30, -41, 9, 33, -24, -25, 30, 28, -34, -57, 8, -7, -46, 5, + 48, -22, -6, 57, 58, -31, -72, -2, 72, 44, -53, -42, 41, 1, -54, 30, + 54, -6, -79, -14, 33, -6, -22, 14, 10, -5, -8, 13, 23, 21, -47, -74, + 22, 24, -10, -7, 39, 2, 12, -7, -2, 4, 33, -20, -33, 18, 22, -88, + -71, 26, 81, 14, -37, 3, -24, 6, -8, 11, 40, 18, -7, -17, 20, -8, + -15, -41, -11, 27, 52, -27, -46, 33, 21, 46, -30, -13, 26, -91, -106, -47, + 54, 109, 67, -87, -90, 38, 92, 31, -10, -69, -73, -27, -6, 24, -6, 20, + 30, 45, 33, -13, -25, 10, 57, -16, -32, 0, -14, -55, -20, 4, 7, -4, + 3, 18, -11, 34, 11, -45, -45, -125, -38, -2, 19, 72, 82, 99, 98, 35, + -51, -81, -53, 3, -39, 23, -4, -58, -63, -24, 40, 84, 48, -7, -18, -2, + -8, -20, -10, 3, 21, 17, -39, -66, -20, -2, 37, 30, 39, 34, -5, -41, + -26, 33, 40, 18, -2, 11, 13, -20, -60, -21, 33, -25, -35, 30, 65, 22, + 13, -15, 2, 16, 11, -68, -18, 74, 10, -74, -34, -39, -17, 8, 59, 39, + -22, -38, -8, 9, 30, 23, 11, -3, -12, 10, -1, 59, 9, -28, -72, -27, + 32, 68, -11, -3, 27, 4, -33, -39, 7, -1, -5, -7, 26, -14, -26, -40, + -12, 5, 5, 1, -12, 64, 63, -41, -56, 10, 26, 40, -26, -44, -42, 25, + -6, 3, -1, 10, 9, -1, 9, 1, -28, 10, 24, 26, -33, -36, 46, 20, + -43, -52, -35, 22, 53, 30, -6, 18, -16, -49, -36, 45, 10, 21, 7, 9, + -33, -50, 21, 73, 33, -42, -46, 42, -12, -18, 5, -50, -25, 68, 55, -31, + -79, -7, 77, 25, -6, 29, 78, 24, -87, -41, -30, -41, -23, 75, 35, -32, + -65, -7, -13, 3, 41, 34, -24, -33, 25, 14, -52, -28, 19, 76, 45, -45, + -47, -5, 24, 9, -14, -41, -5, 49, 22, 10, -31, -35, -1, -6, 3, 10, + -1, -12, -20, -51, 9, 79, 53, -36, -38, -13, -14, -15, 50, 50, -36, -33, + 0, 5, 22, 23, 24, -51, -81, -27, 56, 42, -10, -16, 0, 0, -5, 16, + 12, -19, 11, 10, -15, -1, -32, -17, 1, 11, 62, -16, -21, 9, 21, -29, + -50, 16, 82, 17, -35, -4, 11, 3, 8, 8, -9, -13, 10, -39, -63, -19, + 54, 58, -16, -25, 18, 38, -8, -50, -54, -17, 18, 47, 17, -33, -45, 0, + 52, 57, -5, -34, -17, 32, 10, -28, -10, -21, -3, -9, -20, 20, 47, 22, + 5, -4, -15, -37, -22, -28, 9, 37, -18, -13, 3, 15, -33, -47, 20, 73, + 0, -36, 33, 60, -11, -77, -13, 42, 13, -20, 9, 47, 22, -27, 29, 6, + -71, -78, -20, 21, 4, 27, 23, 19, 31, 45, -29, -54, -10, 37, -78, -46, + -14, 67, 108, 57, 12, -62, -108, -15, 116, 56, -58, -110, -33, 33, 30, -39, + -26, 11, 29, 22, 8, 52, 76, 31, 0, -31, -50, -10, 59, 54, -13, -84, + -65, -60, 0, 35, 105, 61, -30, -117, -62, 35, 88, 57, 48, -38, -85, 41, + 12, -21, -6, 7, 15, 73, -30, -72, -37, 25, 0, -5, 65, 76, -90, -78, + 24, 47, 2, -14, 40, 83, 0, -32, -46, -62, -26, 50, 37, -4, -44, -40, + 55, 31, -38, -13, -17, -30, -4, 7, 68, 39, 1, -23, -38, -30, 6, -35, + 14, 52, -9, -62, -47, 45, 44, 11, -17, -9, 6, 16, 34, -3, -32, -21, + -33, -3, 21, 26, -39, 11, 65, 33, 19, -1, -49, -85, -97, 66, 58, -93, + -15, 15, 5, 81, 76, 29, -2, -52, -51, -30, 65, 38, -45, -14, 1, 28, + 22, 43, 19, -59, -109, -29, 29, -14, -22, -41, 0, 54, 76, 16, 8, 23, + 15, -47, -39, -8, 5, 36, -6, -3, -4, 13, 13, 21, -47, -53, -6, -9, + -27, -44, 8, 86, 64, 12, -5, -32, -10, -20, -27, -23, 8, 30, 1, 16, + 42, -35, -8, 4, -39, -11, -62, -29, 108, 87, -20, -104, -18, -55, 8, 47, + -16, 29, 38, 4, -44, -39, -20, 38, -13, 23, 82, 30, -67, -93, 26, 79, + 20, -79, -74, -23, 33, 59, 80, 39, -42, -100, 0, 19, 38, 9, -55, 9, + -15, 22, 68, -17, -55, -23, 1, 87, 19, -56, -60, 32, 37, 38, -67, -33, + -1, 31, 24, 15, -30, -5, -36, -29, -27, 8, 27, -9, 12, 29, 38, 33, + 0, -39, -18, 6, 19, 18, 8, 1, -33, 9, -1, 2, -29, -66, 0, 41, + 6, -50, -13, 9, 73, -28, -47, -21, 30, 68, 31, 32, 29, -46, -14, 13, + -44, -75, -3, 62, 55, 9, -49, -1, 54, 19, -6, 7, 16, 38, 13, -26, + -55, -76, -23, 16, 21, -33, -22, 16, 61, 25, -14, -35, 12, 23, -7, -17, + -32, -10, -16, -1, 7, 18, -1, 19, -2, -1, 21, -14, 1, -44, -44, -23, + -29, -1, 28, -28, 47, 64, 12, -4, -15, -37, -7, 24, 50, 6, -15, -26, + -5, 20, 12, -25, -21, -2, -18, -23, 9, 16, 24, 36, -30, -35, -12, 32, + 19, -13, 19, -6, 2, -2, -22, -11, 14, 50, 10, -21, -55, -14, 23, 6, + 6, -6, -26, -25, -8, 25, 14, 24, 14, -13, 18, 11, 23, -34, -49, -45, + 6, 39, 37, 3, 0, -29, 8, 26, -6, -7, -21, 2, -11, 6, 16, -1, + -17, 6, 32, -4, -54, -9, 22, -14, 6, 27, -1, -2, 34, 33, 8, 1, + -8, -14, -32, 23, -22, -23, -29, -12, 5, 25, 22, -4, 14, 5, 24, -39, + -29, 17, -21, -80, -60, -9, 78, 99, 81, -41, -53, 22, 11, -69, -22, -2, + 70, 80, 18, -56, -54, -79, -27, 56, 46, 28, -1, 12, -37, -76, 23, 64, + -4, -5, 4, 0, -2, -5, 10, -4, -9, 5, 3, 3, -2, 6, -2, -1, + 0, 2, 0, 1, -2, 2, -3, -2, 0, 1, -1, 0, 0, -1, -1, -1, + 0, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, -1, -1, -1, -1, 0, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -2, -3, -5, -6, -5, -5, + -3, 0, -1, -3, -1, 7, 16, 20, 8, -8, -24, -35, -39, -36, -35, -42, + -47, -35, -14, 0, 8, 17, 28, 45, 60, 65, 64, 66, 67, 60, 50, 39, + 26, 14, 5, -14, -40, -54, -56, -56, -55, -47, -36, -20, 1, 13, 15, 16, + 12, 2, -10, -20, -33, -43, -42, -38, -43, -40, -28, -17, -7, 6, 21, 34, + 48, 60, 63, 64, 66, 61, 54, 51, 41, 23, 10, 1, -18, -37, -46, -54, + -63, -60, -46, -30, -13, 5, 15, 16, 17, 11, -2, -11, -21, -34, -44, -45, + -43, -42, -33, -21, -17, -10, 5, 23, 39, 54, 62, 61, 62, 63, 59, 53, + 47, 38, 23, 10, -5, -23, -36, -42, -51, -61, -61, -48, -26, -2, 14, 16, + 13, 13, 9, -1, -14, -27, -36, -42, -44, -48, -44, -31, -17, -10, -8, 1, + 21, 47, 65, 67, 58, 54, 58, 61, 54, 41, 31, 23, 11, -9, -30, -41, + -44, -45, -54, -61, -52, -21, 11, 25, 19, 8, 4, 7, 2, -15, -33, -39, + -39, -44, -51, -48, -34, -12, -2, -4, -2, 19, 54, 74, 72, 58, 47, 51, + 59, 54, 40, 26, 20, 7, -16, -37, -46, -44, -42, -51, -58, -47, -15, 19, + 31, 25, 9, -1, -1, -4, -15, -30, -37, -41, -51, -55, -48, -28, -11, -4, + -2, 6, 28, 58, 73, 74, 63, 50, 45, 46, 49, 42, 31, 19, -6, -30, + -43, -44, -42, -51, -54, -49, -33, -3, 18, 30, 31, 17, 2, -13, -15, -15, + -25, -31, -45, -62, -60, -45, -24, -16, -10, 6, 20, 40, 58, 68, 74, 69, + 55, 41, 37, 44, 43, 34, 15, -17, -41, -48, -46, -51, -59, -51, -34, -16, + 3, 17, 29, 33, 23, 2, -15, -18, -18, -22, -31, -50, -64, -61, -42, -30, + -24, -8, 13, 35, 50, 57, 65, 70, 70, 58, 42, 40, 41, 40, 32, 6, + -23, -45, -53, -55, -64, -60, -45, -24, -1, 10, 19, 27, 28, 23, 4, -9, + -17, -22, -23, -36, -53, -61, -60, -47, -36, -22, -3, 19, 44, 56, 60, 65, + 65, 65, 60, 52, 45, 39, 37, 23, -2, -26, -49, -63, -66, -63, -55, -42, + -16, 3, 14, 25, 25, 22, 19, 11, -2, -17, -20, -29, -44, -50, -58, -64, + -53, -32, -13, 0, 25, 45, 53, 65, 68, 61, 60, 63, 60, 47, 42, 33, + 7, -10, -26, -56, -73, -68, -57, -53, -37, -12, -1, 14, 32, 26, 16, 17, + 16, 1, -12, -19, -38, -52, -47, -55, -65, -50, -23, -9, 4, 27, 40, 48, + 68, 72, 59, 58, 67, 64, 52, 42, 21, -5, -16, -31, -60, -73, -62, -54, + -49, -34, -17, -4, 17, 32, 24, 13, 18, 20, 6, -11, -29, -46, -48, -46, + -54, -59, -41, -17, -5, 6, 20, 35, 54, 71, 68, 55, 60, 74, 71, 53, + 27, 5, -6, -16, -35, -62, -70, -57, -49, -45, -40, -25, 4, 25, 29, 15, + 7, 23, 27, 10, -20, -46, -47, -41, -39, -47, -55, -34, -11, -1, 4, 11, + 38, 67, 72, 62, 48, 61, 83, 76, 49, 9, -9, -7, -15, -31, -59, -70, + -55, -48, -46, -43, -21, 16, 29, 22, 6, 1, 25, 32, 10, -28, -57, -47, + -34, -30, -38, -49, -33, -12, -4, 3, 17, 50, 72, 68, 55, 44, 61, 86, + 77, 41, -2, -16, -10, -13, -28, -56, -69, -58, -52, -47, -35, -7, 22, 25, + 13, -4, -2, 25, 33, 7, -35, -58, -46, -29, -22, -32, -44, -34, -16, -5, + 8, 30, 59, 72, 65, 46, 39, 62, 87, 76, 33, -8, -20, -13, -10, -28, + -57, -70, -62, -51, -42, -24, 3, 23, 23, 4, -15, -4, 25, 34, 3, -38, + -55, -45, -23, -17, -32, -43, -34, -15, -1, 14, 41, 64, 73, 59, 35, 35, + 64, 89, 73, 26, -11, -23, -14, -11, -33, -60, -69, -59, -48, -39, -14, 11, + 25, 17, -11, -24, -3, 30, 35, -3, -40, -54, -41, -18, -19, -36, -41, -28, + -10, 0, 21, 51, 70, 71, 47, 24, 36, 72, 93, 65, 17, -14, -22, -13, + -17, -43, -62, -63, -52, -48, -36, -5, 19, 26, 5, -26, -27, 5, 40, 31, + -12, -42, -50, -34, -20, -28, -37, -33, -17, -8, -1, 29, 61, 75, 64, 31, + 19, 44, 85, 93, 51, 9, -15, -18, -16, -30, -50, -57, -52, -48, -52, -32, + 3, 25, 20, -10, -34, -21, 19, 42, 20, -17, -40, -43, -35, -30, -32, -32, + -21, -12, -12, 3, 37, 67, 72, 50, 25, 24, 57, 92, 81, 42, 6, -12, + -18, -25, -39, -53, -52, -44, -49, -51, -28, 6, 25, 13, -17, -32, -11, 29, + 39, 8, -24, -38, -37, -33, -36, -39, -30, -10, -3, -9, 3, 38, 68, 71, + 46, 23, 32, 68, 92, 71, 31, 5, -7, -16, -31, -50, -55, -45, -37, -49, + -53, -27, 8, 23, 8, -20, -24, 3, 34, 28, -6, -28, -32, -30, -35, -46, + -43, -23, 0, 0, -10, 5, 41, 67, 65, 42, 30, 47, 77, 83, 52, 23, + 10, 2, -16, -43, -60, -55, -38, -36, -53, -53, -25, 8, 19, 3, -14, -8, + 17, 29, 9, -17, -24, -22, -26, -43, -53, -42, -14, 4, -3, -9, 10, 44, + 63, 58, 43, 43, 63, 77, 64, 38, 24, 20, 7, -23, -52, -62, -49, -38, + -45, -57, -49, -19, 6, 11, 2, -1, 12, 22, 13, -7, -18, -15, -17, -32, + -50, -52, -32, -11, -4, -8, -3, 21, 44, 55, 53, 52, 63, 70, 64, 49, + 35, 34, 24, 0, -29, -53, -54, -50, -51, -56, -57, -37, -17, -2, 7, 9, + 20, 21, 12, 1, -13, -11, -13, -24, -36, -49, -40, -30, -22, -12, -9, 10, + 25, 38, 51, 57, 70, 71, 62, 57, 44, 42, 34, 15, -4, -30, -42, -53, + -65, -61, -61, -49, -35, -22, -2, 10, 25, 27, 15, 11, -1, -8, -14, -22, + -27, -37, -37, -37, -40, -26, -14, -2, 10, 24, 42, 54, 68, 73, 65, 65, + 60, 49, 36, 27, 15, -7, -25, -43, -63, -69, -65, -61, -54, -36, -13, 3, + 18, 26, 23, 20, 16, 1, -16, -21, -20, -31, -37, -38, -40, -38, -25, -15, + -7, 11, 34, 48, 56, 66, 71, 72, 73, 61, 43, 34, 29, 11, -14, -31, + -46, -63, -69, -72, -69, -53, -28, -7, 3, 16, 27, 30, 28, 15, -3, -14, + -19, -25, -39, -42, -37, -38, -35, -30, -19, -2, 18, 39, 47, 56, 69, 75, + 78, 71, 60, 49, 35, 22, -1, -20, -32, -50, -65, -76, -75, -63, -49, -27, + -9, 6, 22, 28, 31, 27, 16, 6, -13, -26, -36, -43, -41, -42, -42, -36, + -27, -10, 2, 18, 38, 52, 64, 70, 73, 79, 76, 70, 50, 27, 11, -5, + -21, -41, -62, -69, -72, -68, -61, -50, -26, -4, 13, 21, 23, 32, 35, 27, + 6, -21, -33, -37, -42, -48, -53, -45, -31, -19, -8, 3, 23, 45, 59, 65, + 65, 73, 88, 88, 69, 40, 19, 10, -6, -30, -54, -69, -69, -68, -67, -59, + -43, -18, 2, 10, 15, 22, 39, 46, 27, -3, -28, -34, -37, -48, -56, -60, + -48, -29, -16, -1, 14, 35, 52, 58, 60, 64, 80, 96, 88, 64, 34, 16, + 6, -11, -36, -62, -77, -75, -68, -58, -47, -33, -14, -1, 7, 15, 28, 43, + 44, 24, -6, -30, -38, -40, -49, -63, -68, -56, -30, -5, 15, 27, 40, 51, + 59, 63, 72, 84, 91, 83, 60, 32, 12, 1, -14, -45, -73, -84, -78, -62, + -46, -36, -28, -17, 0, 11, 20, 31, 38, 35, 20, -6, -28, -40, -46, -58, + -72, -71, -52, -26, 4, 26, 37, 45, 54, 64, 69, 74, 81, 80, 73, 59, + 35, 13, -5, -28, -54, -75, -79, -74, -63, -43, -30, -21, -11, 0, 14, 23, + 29, 33, 23, 14, -2, -25, -41, -58, -69, -71, -64, -43, -24, 3, 33, 47, + 56, 60, 64, 73, 74, 75, 73, 62, 56, 38, 13, -12, -42, -57, -69, -77, + -71, -63, -44, -25, -15, -3, 2, 13, 26, 23, 24, 19, 8, -2, -24, -44, + -64, -74, -64, -60, -45, -16, 9, 34, 53, 63, 68, 66, 75, 73, 63, 66, + 62, 49, 34, 11, -17, -43, -54, -66, -82, -72, -52, -43, -28, -10, 0, 4, + 18, 27, 16, 13, 20, 8, -11, -26, -47, -66, -63, -59, -63, -47, -7, 20, + 34, 56, 69, 65, 73, 81, 67, 54, 61, 63, 44, 25, 6, -23, -37, -44, + -69, -85, -69, -48, -39, -26, -7, -4, 5, 27, 25, 9, 10, 15, 5, -17, + -34, -52, -62, -54, -54, -60, -40, -5, 21, 41, 59, 67, 66, 78, 81, 64, + 53, 58, 56, 39, 18, -3, -24, -34, -45, -64, -76, -67, -51, -37, -21, -8, + -3, 11, 22, 20, 11, 9, 11, -4, -23, -38, -56, -57, -53, -50, -42, -31, + -5, 21, 41, 63, 67, 72, 77, 69, 67, 58, 56, 49, 28, 16, -8, -28, + -35, -50, -53, -62, -65, -53, -44, -20, -2, 2, 14, 10, 14, 17, 7, 5, + -13, -27, -37, -60, -58, -55, -42, -22, -18, -2, 13, 36, 69, 73, 76, 71, + 62, 70, 60, 53, 42, 23, 16, -13, -35, -45, -51, -40, -46, -58, -60, -52, + -17, 4, 8, 11, 5, 14, 15, 4, -4, -20, -23, -37, -62, -67, -59, -27, + -2, -3, -3, 3, 36, 70, 77, 75, 66, 67, 70, 57, 46, 32, 29, 19, + -17, -49, -62, -46, -25, -33, -54, -68, -51, -15, 4, 8, 6, 11, 18, 8, + -7, -19, -16, -12, -35, -68, -83, -56, -9, 13, 7, -7, 4, 40, 66, 73, + 69, 73, 80, 69, 46, 27, 31, 42, 24, -23, -68, -69, -36, -14, -25, -57, + -66, -43, -16, -3, -2, 11, 28, 23, -2, -31, -29, -4, -1, -34, -83, -89, + -45, 3, 22, 6, -3, 16, 41, 56, 55, 68, 93, 93, 65, 23, 12, 38, + 53, 27, -38, -80, -64, -29, -12, -31, -54, -49, -34, -22, -24, -11, 28, 47, + 25, -24, -51, -27, 5, 5, -43, -90, -79, -34, 6, 11, 4, 17, 31, 39, + 34, 38, 79, 114, 105, 50, 3, 12, 44, 56, 16, -49, -72, -54, -28, -29, + -44, -37, -27, -28, -41, -45, -5, 46, 61, 17, -44, -53, -20, 7, -6, -53, + -78, -62, -27, -7, -6, 14, 41, 45, 26, 11, 38, 93, 127, 101, 34, 1, + 20, 48, 42, -1, -41, -53, -45, -40, -51, -44, -18, -9, -34, -61, -47, 7, + 57, 58, 2, -46, -43, -14, -5, -27, -52, -58, -46, -31, -26, -12, 28, 59, + 45, 10, 6, 50, 104, 124, 87, 30, 11, 30, 40, 19, -9, -26, -35, -44, + -58, -62, -38, -4, -6, -46, -67, -37, 21, 56, 43, -4, -37, -30, -15, -25, + -40, -44, -38, -38, -43, -38, -9, 40, 64, 37, 5, 14, 65, 106, 107, 75, + 36, 26, 34, 24, 4, -8, -10, -24, -53, -70, -64, -30, 0, -16, -53, -61, + -22, 28, 43, 29, -2, -21, -20, -26, -39, -43, -34, -26, -43, -54, -40, 0, + 46, 56, 30, 12, 30, 75, 97, 90, 69, 47, 38, 29, 13, 2, 0, -1, + -27, -61, -71, -55, -25, -14, -32, -50, -41, -6, 22, 25, 17, 4, -8, -19, + -31, -38, -35, -28, -35, -53, -54, -29, 7, 31, 32, 23, 28, 51, 72, 78, + 72, 65, 55, 42, 30, 19, 15, 11, -8, -36, -58, -58, -42, -35, -35, -43, + -40, -18, 0, 12, 14, 11, 9, -4, -15, -25, -31, -28, -36, -49, -53, -45, + -18, 1, 12, 19, 23, 43, 58, 64, 68, 64, 64, 57, 46, 40, 28, 22, + 9, -17, -35, -48, -47, -44, -47, -45, -44, -31, -12, -2, 7, 10, 9, 7, + -2, -8, -19, -28, -32, -44, -51, -48, -37, -21, -9, 5, 16, 26, 43, 55, + 60, 64, 63, 61, 58, 55, 48, 34, 21, 6, -13, -27, -39, -49, -53, -50, + -46, -41, -32, -16, -3, 5, 11, 9, 6, 5, -4, -17, -32, -40, -42, -44, + -42, -40, -32, -12, 5, 17, 24, 35, 50, 58, 64, 64, 60, 65, 61, 50, + 34, 18, 10, -2, -18, -38, -58, -56, -49, -45, -41, -38, -22, -4, 8, 14, + 8, 11, 10, -5, -20, -38, -41, -36, -37, -40, -48, -37, -12, 4, 14, 19, + 27, 46, 59, 66, 63, 62, 70, 64, 50, 34, 22, 17, 8, -11, -38, -59, + -57, -50, -49, -47, -43, -28, -6, 10, 16, 10, 14, 8, 1, -5, -5, -4, + -5, 5, 2, 2, 1, -1, 0, 1, 0, 2, 0, 0, -2, -1, -1, 2, + 1, 1, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, -1, -1, -1, + 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, + -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, + -1, 0, 1, 0, 0, 0, 1, 0, 1, 0, -3, -10, -11, -8, -13, -25, + -21, -10, 0, 2, 18, 41, 44, 42, 66, 62, 28, 10, 17, 17, -16, -10, + 25, 28, 29, 34, 47, 34, -7, 7, 25, -12, -43, -44, -40, -61, -85, -78, + -55, -42, -33, -10, 17, 31, 43, 59, 51, 25, 25, 40, 27, -1, 2, 25, + 30, 15, 12, 27, 26, 13, 16, 9, -24, -43, -37, -49, -83, -92, -62, -40, + -42, -36, 1, 33, 34, 45, 61, 46, 27, 32, 33, 10, -6, 15, 38, 26, + 4, 15, 35, 19, 7, 17, 3, -26, -41, -50, -67, -91, -82, -48, -40, -46, + -24, 18, 33, 32, 54, 62, 46, 30, 22, 20, 7, 4, 28, 33, 15, 10, + 22, 25, 9, 13, 18, -2, -29, -54, -65, -74, -86, -68, -49, -46, -32, -8, + 17, 29, 45, 65, 60, 43, 23, 13, 17, 12, 18, 28, 22, 19, 16, 13, + 14, 16, 24, 13, -13, -40, -66, -72, -75, -74, -64, -55, -36, -20, -9, 15, + 43, 63, 65, 51, 37, 17, 9, 19, 23, 21, 19, 24, 21, 3, 4, 24, + 31, 18, -2, -20, -49, -77, -74, -65, -71, -69, -47, -27, -27, -10, 38, 66, + 59, 52, 51, 34, 4, 11, 36, 26, 12, 22, 26, 2, -11, 25, 45, 18, + 0, -1, -23, -72, -83, -55, -65, -83, -61, -34, -37, -36, 23, 71, 55, 43, + 60, 55, 11, 1, 40, 37, 8, 16, 31, 6, -22, 14, 55, 27, -3, 8, + 2, -52, -83, -57, -56, -89, -79, -43, -43, -55, -4, 66, 61, 35, 56, 68, + 31, 4, 32, 46, 13, 7, 31, 16, -24, -4, 50, 42, 2, 7, 16, -25, + -67, -60, -54, -86, -95, -55, -44, -63, -32, 40, 62, 40, 47, 67, 48, 22, + 32, 42, 18, 4, 25, 25, -15, -16, 29, 44, 21, 11, 15, -5, -39, -49, + -59, -85, -96, -72, -52, -62, -50, 7, 45, 49, 50, 56, 56, 43, 42, 39, + 19, 9, 16, 21, 1, -16, 9, 32, 31, 24, 14, 5, -14, -34, -52, -81, + -94, -85, -71, -62, -55, -21, 21, 41, 53, 55, 55, 57, 51, 44, 26, 13, + 15, 11, 3, -3, 0, 19, 27, 29, 26, 11, 0, -16, -41, -70, -90, -88, + -85, -80, -57, -34, -3, 26, 42, 57, 57, 60, 64, 50, 33, 20, 17, 9, + -6, -1, 6, 10, 23, 26, 28, 22, 10, 1, -27, -60, -78, -87, -90, -94, + -74, -42, -20, 10, 34, 44, 57, 65, 71, 58, 35, 30, 23, 8, -5, -7, + 4, 7, 19, 33, 23, 19, 24, 17, -13, -53, -65, -75, -96, -98, -83, -61, + -40, -7, 32, 38, 38, 66, 83, 65, 36, 36, 37, 8, -7, 1, 0, -5, + 11, 39, 34, 10, 21, 36, 4, -45, -59, -59, -89, -106, -84, -67, -62, -32, + 21, 41, 30, 47, 85, 80, 41, 34, 45, 20, -8, 0, 9, -7, -6, 31, + 45, 21, 12, 32, 25, -27, -55, -52, -76, -104, -95, -70, -64, -57, -7, 33, + 34, 38, 67, 84, 57, 35, 46, 29, -1, -4, 7, 7, -8, 12, 41, 31, + 21, 24, 25, -5, -43, -45, -65, -98, -98, -82, -62, -58, -35, 13, 27, 38, + 59, 70, 67, 45, 49, 39, 2, -3, 2, 9, 9, 6, 30, 30, 24, 31, + 20, 3, -26, -37, -48, -91, -100, -88, -75, -53, -41, -9, 12, 23, 55, 65, + 61, 54, 51, 51, 14, -6, 1, 1, 15, 18, 26, 29, 16, 30, 28, 4, + -14, -29, -36, -71, -100, -93, -87, -64, -38, -16, 2, 6, 33, 61, 59, 56, + 54, 55, 32, 1, -3, -4, 5, 25, 36, 36, 17, 14, 25, 14, -4, -19, + -30, -53, -84, -94, -95, -82, -49, -16, 4, 2, 10, 37, 56, 61, 58, 54, + 42, 19, 3, -9, -8, 14, 41, 53, 32, 10, 7, 10, 10, -7, -25, -43, + -65, -81, -97, -99, -72, -29, 9, 11, 3, 10, 33, 61, 65, 55, 46, 30, + 19, 0, -17, -5, 29, 62, 57, 24, -1, -6, 10, 8, -16, -35, -54, -64, + -80, -105, -99, -57, -2, 26, 13, -2, 6, 42, 67, 60, 49, 36, 31, 22, + -10, -24, 1, 49, 77, 53, 9, -14, -4, 10, -4, -26, -47, -56, -58, -89, + -115, -93, -34, 23, 33, 6, -6, 16, 50, 62, 53, 39, 34, 40, 16, -24, + -26, 15, 71, 82, 38, -5, -13, -1, 3, -13, -39, -53, -48, -61, -103, -119, + -80, -6, 42, 27, -1, 2, 26, 51, 56, 43, 33, 43, 42, 4, -34, -23, + 37, 87, 70, 20, -6, -10, -3, -5, -27, -49, -48, -44, -72, -115, -118, -56, + 22, 43, 17, 3, 12, 33, 51, 45, 34, 38, 51, 38, -11, -42, -9, 59, + 86, 53, 13, -5, -5, -3, -19, -42, -50, -43, -45, -85, -127, -105, -28, 34, + 37, 15, 8, 23, 41, 42, 34, 33, 45, 55, 26, -27, -38, 12, 69, 77, + 40, 9, 1, 0, -13, -33, -48, -49, -39, -55, -102, -124, -83, -8, 37, 31, + 14, 19, 35, 39, 34, 30, 35, 51, 50, 9, -31, -25, 27, 72, 65, 30, + 12, 9, -2, -23, -42, -52, -46, -43, -71, -109, -112, -63, 7, 36, 25, 20, + 33, 42, 35, 29, 29, 40, 52, 35, -2, -28, -12, 40, 69, 51, 26, 18, + 13, -8, -33, -48, -50, -46, -57, -84, -107, -98, -43, 14, 29, 24, 30, 44, + 43, 30, 26, 34, 44, 40, 19, -8, -20, 4, 46, 59, 42, 29, 25, 10, + -18, -40, -46, -47, -57, -73, -91, -100, -78, -30, 13, 25, 30, 44, 48, 39, + 29, 31, 41, 35, 23, 9, -9, -5, 16, 43, 52, 40, 37, 25, 0, -23, + -41, -43, -54, -74, -82, -93, -86, -60, -26, 12, 26, 41, 53, 44, 40, 33, + 36, 38, 19, 12, 2, -3, 9, 18, 40, 48, 42, 41, 16, -6, -23, -41, + -45, -68, -84, -86, -90, -71, -52, -22, 15, 32, 52, 54, 45, 45, 36, 36, + 25, 6, 6, 0, 5, 15, 21, 41, 46, 46, 37, 10, -7, -24, -42, -57, + -81, -88, -88, -83, -62, -43, -14, 16, 41, 59, 55, 48, 48, 40, 27, 10, + 2, 2, 0, 8, 22, 30, 36, 45, 50, 32, 5, -9, -23, -48, -75, -86, + -86, -88, -81, -54, -26, -11, 16, 52, 65, 55, 50, 53, 39, 9, -2, 4, + 2, -4, 11, 36, 34, 27, 47, 51, 26, 0, -9, -23, -63, -91, -85, -81, + -89, -79, -38, -13, -11, 23, 62, 67, 55, 52, 56, 29, -8, -7, 7, 0, + -5, 19, 44, 30, 28, 49, 46, 21, -2, -10, -32, -79, -96, -83, -81, -87, + -67, -27, -11, 0, 36, 65, 67, 58, 54, 48, 14, -15, -7, 3, 1, 6, + 26, 35, 30, 38, 46, 37, 18, -2, -18, -48, -85, -96, -89, -81, -70, -52, + -30, -8, 20, 48, 63, 66, 59, 50, 33, 6, -14, -15, -2, 13, 20, 21, + 25, 36, 45, 42, 31, 12, -10, -31, -56, -84, -103, -96, -70, -50, -43, -31, + 0, 35, 58, 68, 65, 51, 37, 26, 8, -19, -25, 2, 27, 27, 17, 20, + 36, 45, 45, 29, 0, -27, -41, -55, -87, -111, -93, -57, -37, -33, -23, 5, + 41, 70, 77, 59, 36, 26, 24, 4, -24, -22, 7, 31, 33, 19, 14, 29, + 49, 50, 22, -16, -39, -48, -63, -92, -104, -86, -51, -25, -19, -16, 10, 53, + 82, 74, 47, 26, 19, 16, -1, -18, -16, 7, 35, 37, 18, 10, 31, 55, + 41, 4, -25, -45, -57, -73, -90, -95, -82, -42, -9, -8, -11, 20, 71, 84, + 57, 39, 27, 13, 2, -6, -9, -12, 8, 45, 41, 8, 5, 42, 56, 20, + -10, -24, -50, -73, -83, -83, -87, -76, -25, 10, -5, -9, 39, 84, 71, 44, + 38, 26, 2, -9, -2, -4, -11, 17, 52, 36, 0, 11, 50, 43, 3, -19, + -31, -57, -84, -84, -77, -82, -59, -9, 14, 1, 7, 55, 81, 61, 38, 29, + 20, -2, -10, -1, -4, 0, 26, 42, 30, 8, 20, 41, 28, -4, -31, -46, + -64, -84, -82, -79, -66, -37, -7, 15, 18, 30, 58, 68, 57, 33, 17, 9, + 0, -3, -7, 0, 15, 23, 31, 29, 23, 24, 22, 14, -12, -43, -63, -72, + -73, -83, -75, -47, -26, -2, 20, 37, 48, 50, 57, 52, 30, 6, -1, 11, + 0, -9, 7, 16, 24, 28, 32, 33, 15, 7, 2, -21, -55, -79, -66, -67, + -81, -63, -38, -12, 9, 29, 53, 48, 42, 51, 47, 22, -6, 5, 18, -4, + -7, 6, 22, 28, 26, 39, 28, 2, -2, -8, -35, -73, -76, -56, -67, -77, + -55, -20, 4, 16, 40, 54, 42, 41, 51, 37, 7, 0, 17, 13, -12, -9, + 20, 31, 25, 29, 33, 15, -5, -8, -22, -57, -74, -62, -57, -74, -71, -33, + 0, 11, 26, 44, 45, 41, 47, 45, 22, 3, 12, 19, 0, -15, 4, 30, + 32, 27, 26, 17, 3, -4, -14, -44, -69, -66, -56, -63, -74, -52, -11, 12, + 21, 29, 35, 41, 49, 51, 31, 9, 11, 19, 11, -8, -7, 20, 36, 34, + 22, 10, 6, 5, -4, -33, -64, -66, -58, -58, -67, -63, -29, 4, 20, 21, + 21, 35, 52, 57, 39, 12, 10, 18, 16, 3, -7, 8, 31, 39, 25, 5, + 3, 10, 5, -22, -58, -67, -58, -56, -60, -64, -45, -11, 15, 19, 12, 24, + 50, 62, 46, 17, 9, 18, 20, 12, 0, 2, 21, 37, 31, 7, 0, 11, + 14, -12, -51, -66, -58, -53, -54, -59, -54, -29, 3, 16, 9, 17, 44, 62, + 51, 22, 8, 17, 24, 21, 9, 1, 11, 30, 31, 14, 3, 11, 16, -4, + -43, -65, -58, -49, -50, -53, -55, -43, -16, 5, 10, 16, 38, 59, 54, 26, + 7, 18, 29, 24, 18, 8, 5, 16, 27, 23, 11, 14, 18, -1, -36, -63, + -56, -43, -48, -47, -49, -52, -36, -12, 8, 17, 35, 55, 50, 28, 9, 17, + 33, 25, 24, 20, 5, 4, 15, 27, 23, 20, 22, 0, -32, -58, -55, -40, + -47, -44, -39, -52, -54, -34, -2, 19, 35, 53, 46, 27, 12, 18, 34, 26, + 26, 33, 13, -6, 0, 22, 34, 32, 28, 3, -31, -53, -51, -39, -47, -45, + -30, -45, -66, -56, -19, 15, 38, 52, 43, 22, 13, 22, 35, 26, 26, 41, + 25, -7, -13, 10, 35, 46, 39, 10, -29, -50, -46, -37, -47, -46, -27, -35, + -65, -72, -42, 2, 38, 55, 43, 19, 11, 24, 36, 27, 26, 43, 37, 2, + -19, -6, 25, 53, 56, 20, -24, -46, -43, -36, -46, -48, -29, -28, -56, -77, + -64, -22, 31, 61, 45, 16, 10, 23, 35, 30, 26, 41, 42, 16, -14, -21, + 7, 51, 70, 36, -15, -38, -40, -35, -42, -49, -35, -29, -44, -71, -81, -49, + 14, 60, 50, 18, 10, 21, 34, 34, 26, 37, 43, 30, 0, -27, -13, 37, + 74, 54, 2, -29, -35, -32, -37, -49, -42, -32, -36, -57, -85, -73, -12, 46, + 57, 27, 9, 17, 32, 38, 28, 30, 41, 39, 18, -20, -27, 15, 62, 68, + 26, -17, -30, -28, -29, -45, -51, -40, -34, -45, -77, -86, -42, 18, 54, 43, + 14, 12, 29, 42, 34, 25, 33, 41, 30, -2, -24, -5, 36, 65, 50, 3, + -24, -24, -19, -33, -54, -52, -42, -45, -61, -75, -58, -15, 32, 48, 25, 10, + 24, 45, 45, 27, 26, 32, 28, 13, -4, -6, 14, 44, 55, 24, -11, -18, + -12, -20, -46, -57, -53, -54, -57, -63, -57, -33, 4, 35, 32, 16, 22, 40, + 49, 36, 26, 28, 23, 17, 8, 1, 10, 27, 43, 33, 5, -6, -8, -14, + -33, -53, -57, -61, -62, -61, -59, -38, -10, 15, 26, 20, 26, 40, 44, 41, + 30, 27, 25, 18, 12, 3, 9, 26, 33, 28, 13, 5, 5, -8, -25, -45, + -57, -60, -64, -66, -65, -49, -17, 6, 13, 16, 26, 43, 47, 39, 32, 27, + 27, 25, 13, 3, 6, 22, 35, 26, 13, 10, 12, 5, -17, -40, -54, -58, + -58, -68, -74, -61, -31, -1, 9, 10, 23, 40, 50, 45, 31, 24, 27, 31, + 20, 3, 2, 17, 32, 31, 16, 12, 15, 12, -4, -31, -51, -55, -54, -62, + -76, -73, -47, -17, 2, 8, 19, 37, 51, 50, 34, 24, 26, 31, 25, 9, + 4, 13, 26, 34, 25, 9, 13, 20, -2, -33, -44, -43, -58, -78, -77, -59, + -44, -33, -10, 17, 6, 12, -9, 32, 13, 4, -4, 6, -9, 27, 8, 2, + -1, -3, -2, 3, -4, -3, 2, 0, -2, 1, -2, 1, -4, 2, 1, 0, + -2, -1, -3, 2, 0, -1, -2, -2, -2, -1, -2, -2, -1, -2, -2, -2, + -2, -1, -2, -1, 0, -1, -2, -2, -2, -1, 0, -2, -2, -2, -2, -1, + -1, -2, -1, -2, -2, -2, -3, -1, -1, 0, 0, -1, -3, -2, 1, 3, + 0, 0, -2, -8, -21, -17, -2, 12, 20, 19, 6, -13, -28, -73, -67, -64, + -58, -39, -11, 19, 38, 60, 96, 80, 38, 12, 6, -20, -65, -83, -65, -61, + -56, -17, 22, 35, 49, 74, 94, 55, 16, 20, -5, -52, -89, -81, -53, -65, + -36, 21, 37, 48, 51, 85, 82, 25, 23, 9, -36, -80, -105, -58, -57, -54, + 7, 36, 54, 44, 58, 97, 48, 26, 16, -21, -61, -115, -83, -45, -57, -12, + 23, 57, 54, 36, 86, 77, 37, 21, -16, -40, -103, -110, -54, -46, -24, 6, + 43, 68, 36, 62, 86, 60, 30, -12, -34, -80, -119, -76, -44, -24, -5, 24, + 64, 51, 50, 76, 72, 48, 0, -34, -68, -106, -94, -56, -26, -7, 11, 45, + 59, 58, 66, 71, 60, 23, -27, -68, -93, -93, -72, -37, -8, 10, 25, 50, + 70, 68, 62, 62, 45, -10, -70, -88, -83, -79, -57, -15, 15, 13, 31, 73, + 80, 59, 53, 61, 15, -67, -89, -73, -75, -75, -33, 21, 11, 10, 66, 92, + 65, 42, 63, 42, -56, -92, -66, -66, -84, -57, 16, 19, -5, 50, 98, 76, + 39, 56, 60, -35, -95, -64, -53, -84, -79, 0, 28, -8, 29, 96, 89, 42, + 46, 69, -10, -90, -69, -41, -74, -95, -25, 28, -1, 13, 81, 101, 53, 37, + 69, 11, -77, -75, -38, -53, -103, -55, 22, 8, 6, 61, 104, 75, 29, 59, + 31, -61, -76, -43, -36, -91, -88, 6, 17, 1, 46, 96, 94, 34, 40, 48, + -40, -80, -47, -27, -69, -107, -27, 26, 4, 29, 87, 105, 51, 24, 46, -10, + -76, -58, -21, -49, -107, -62, 17, 16, 17, 70, 110, 67, 22, 38, 10, -60, + -71, -24, -28, -97, -85, -6, 25, 18, 50, 106, 84, 28, 31, 16, -38, -71, + -38, -17, -78, -94, -30, 15, 30, 41, 86, 92, 44, 31, 15, -25, -54, -53, + -26, -57, -88, -51, -2, 33, 45, 68, 88, 59, 35, 17, -15, -42, -55, -41, + -48, -73, -60, -19, 24, 50, 61, 74, 67, 46, 21, -8, -32, -48, -54, -53, + -57, -57, -34, 9, 50, 63, 59, 65, 58, 29, -1, -24, -38, -62, -67, -48, + -47, -40, -8, 43, 68, 48, 58, 66, 38, 6, -19, -26, -62, -85, -45, -35, + -39, -21, 28, 72, 41, 47, 74, 45, 15, -14, -17, -53, -102, -50, -24, -36, + -26, 10, 69, 42, 32, 81, 52, 21, -4, -15, -39, -109, -64, -12, -35, -26, + -1, 54, 47, 21, 79, 65, 20, 7, -12, -33, -100, -82, -8, -27, -32, -2, + 36, 47, 21, 66, 77, 25, 12, -2, -36, -88, -87, -18, -16, -36, -8, 27, + 36, 30, 56, 77, 39, 12, 6, -33, -84, -79, -30, -11, -29, -20, 19, 27, + 31, 58, 66, 50, 21, 5, -25, -81, -75, -32, -17, -17, -27, 2, 24, 28, + 61, 61, 48, 35, 4, -22, -71, -77, -31, -19, -12, -23, -18, 16, 29, 59, + 65, 45, 41, 10, -23, -59, -76, -37, -14, -11, -18, -29, -2, 29, 57, 68, + 51, 37, 16, -21, -55, -67, -44, -12, -5, -21, -29, -19, 19, 59, 68, 61, + 36, 14, -12, -55, -61, -44, -16, 3, -21, -29, -25, 0, 55, 72, 69, 43, + 8, -6, -49, -63, -39, -18, 5, -15, -31, -26, -18, 39, 78, 75, 53, 8, + -8, -40, -67, -37, -15, 2, -8, -30, -26, -29, 16, 79, 84, 59, 14, -11, + -33, -66, -42, -9, -2, -6, -23, -26, -33, -7, 66, 94, 67, 22, -9, -32, + -62, -48, -8, 0, -9, -16, -20, -35, -24, 46, 96, 78, 31, -2, -29, -59, + -51, -13, 1, -10, -13, -9, -31, -35, 23, 86, 88, 42, 5, -22, -57, -53, + -18, -3, -10, -13, 0, -19, -44, 2, 69, 90, 57, 12, -13, -50, -57, -21, + -9, -13, -13, 1, -3, -41, -17, 51, 82, 69, 23, -9, -37, -57, -25, -12, + -22, -15, 0, 10, -25, -32, 32, 69, 71, 37, -4, -25, -48, -30, -12, -32, + -23, -3, 14, -2, -33, 11, 56, 63, 49, 3, -18, -32, -31, -13, -37, -38, + -9, 11, 17, -16, -6, 41, 53, 51, 11, -17, -15, -23, -14, -35, -54, -22, + 4, 26, 10, -10, 26, 43, 46, 19, -19, -6, -5, -10, -30, -65, -42, -9, + 24, 35, 3, 12, 32, 37, 24, -20, -8, 14, 2, -23, -68, -62, -26, 10, + 50, 28, 11, 22, 27, 24, -19, -19, 24, 21, -8, -63, -78, -45, -11, 47, + 53, 23, 21, 19, 22, -17, -34, 21, 40, 15, -48, -89, -65, -34, 30, 68, + 44, 27, 16, 16, -11, -47, 3, 49, 39, -22, -89, -82, -55, 3, 68, 61, + 44, 21, 11, -6, -53, -21, 45, 56, 11, -74, -96, -72, -26, 52, 73, 60, + 39, 10, -3, -48, -44, 27, 61, 42, -43, -101, -88, -52, 27, 73, 70, 59, + 21, -1, -40, -60, 2, 52, 60, -4, -90, -100, -74, -2, 62, 72, 76, 42, + 5, -30, -66, -22, 34, 63, 33, -62, -104, -92, -31, 44, 68, 84, 66, 21, + -21, -64, -41, 13, 54, 55, -26, -94, -104, -57, 20, 56, 82, 84, 43, -6, + -57, -54, -10, 36, 60, 7, -70, -107, -78, -6, 40, 73, 92, 66, 12, -45, + -57, -27, 16, 52, 29, -41, -96, -90, -32, 20, 60, 91, 83, 34, -27, -52, + -37, -3, 34, 36, -15, -77, -91, -52, -1, 43, 83, 93, 53, -5, -42, -40, + -17, 14, 32, 1, -54, -81, -65, -21, 23, 71, 96, 67, 16, -25, -37, -24, + -5, 21, 6, -36, -64, -69, -37, 3, 54, 93, 73, 35, -6, -28, -25, -19, + 8, 4, -27, -46, -65, -46, -14, 34, 86, 73, 49, 15, -17, -19, -28, -4, + -3, -28, -32, -56, -48, -24, 15, 74, 67, 55, 36, -2, -10, -28, -14, -9, + -36, -25, -42, -50, -29, 1, 60, 59, 50, 55, 16, -3, -22, -20, -14, -46, + -29, -28, -48, -33, -5, 47, 50, 40, 64, 40, 4, -14, -17, -19, -53, -40, + -18, -40, -41, -6, 39, 39, 28, 61, 62, 17, -10, -7, -21, -59, -53, -20, + -28, -47, -11, 38, 29, 15, 52, 77, 36, -6, 1, -12, -63, -66, -25, -20, + -46, -19, 37, 28, 0, 38, 83, 54, 5, 5, -2, -57, -81, -34, -15, -44, + -22, 29, 31, -4, 16, 85, 68, 17, 15, 1, -44, -87, -54, -8, -42, -27, + 25, 24, 2, 0, 69, 88, 24, 25, 11, -42, -76, -75, -14, -25, -40, 23, + 18, -3, 3, 42, 96, 45, 22, 29, -39, -70, -75, -40, -8, -39, 7, 24, + -17, 8, 33, 79, 76, 22, 35, -21, -75, -64, -60, -15, -17, -14, 21, -21, + -4, 40, 59, 88, 45, 24, -3, -71, -61, -59, -38, 1, -14, 0, -17, -18, + 41, 54, 82, 74, 22, -3, -53, -61, -53, -54, -2, 3, -19, -25, -22, 30, + 57, 73, 92, 38, -15, -40, -51, -50, -58, -17, 17, -23, -44, -22, 19, 55, + 72, 97, 60, -22, -40, -35, -45, -55, -32, 14, -17, -60, -26, 11, 46, 75, + 97, 78, -17, -46, -23, -38, -45, -37, -1, -14, -66, -31, 3, 34, 80, 98, + 85, -4, -47, -19, -33, -33, -30, -20, -25, -63, -34, -4, 18, 79, 104, 84, + 9, -38, -18, -29, -27, -14, -30, -46, -63, -32, -5, 3, 68, 111, 84, 18, + -23, -12, -25, -28, -2, -25, -67, -75, -29, 1, -6, 46, 112, 91, 22, -11, + 0, -18, -33, -1, -9, -76, -96, -34, 9, -8, 22, 101, 102, 27, -2, 14, + -7, -36, -9, 4, -68, -114, -48, 13, -3, 5, 80, 109, 40, 4, 26, 6, + -33, -18, 6, -52, -120, -67, 7, 4, -1, 55, 103, 58, 14, 31, 17, -21, + -24, -4, -39, -110, -84, -10, 6, 2, 34, 87, 71, 29, 36, 25, -7, -23, + -16, -33, -96, -90, -29, -1, 6, 22, 68, 75, 45, 45, 31, 4, -15, -24, + -37, -84, -87, -43, -15, 3, 18, 53, 68, 57, 58, 38, 11, -7, -22, -45, + -81, -79, -48, -29, -10, 17, 45, 57, 61, 71, 50, 17, 0, -15, -49, -85, + -74, -45, -40, -25, 10, 42, 49, 55, 82, 65, 22, 7, -9, -43, -89, -80, + -34, -47, -40, -1, 35, 52, 43, 85, 84, 25, 17, -4, -38, -85, -92, -28, + -44, -55, -9, 21, 53, 42, 75, 100, 35, 22, 6, -38, -74, -99, -38, -34, + -65, -18, 12, 42, 51, 63, 102, 52, 25, 21, -36, -70, -90, -56, -30, -64, + -30, 7, 27, 55, 63, 90, 69, 33, 26, -26, -69, -79, -66, -43, -54, -37, + -1, 17, 49, 69, 79, 72, 50, 30, -15, -61, -75, -68, -58, -52, -33, -12, + 9, 42, 69, 78, 64, 60, 42, -9, -49, -71, -69, -68, -61, -25, -17, -1, + 38, 64, 77, 59, 62, 58, -3, -37, -62, -72, -72, -73, -24, -12, -11, 35, + 55, 73, 59, 58, 69, 8, -29, -48, -75, -76, -82, -31, -4, -14, 28, 49, + 63, 61, 54, 73, 22, -21, -36, -71, -82, -88, -42, 0, -9, 21, 43, 53, + 57, 56, 73, 33, -12, -25, -62, -89, -95, -49, -2, -2, 18, 37, 43, 49, + 60, 75, 38, -2, -16, -49, -89, -105, -54, -7, 1, 19, 31, 37, 38, 59, + 81, 39, 4, -7, -35, -83, -115, -62, -10, 0, 20, 27, 32, 30, 53, 87, + 43, 4, 0, -24, -70, -118, -75, -12, -2, 19, 24, 27, 27, 45, 89, 52, + 4, 1, -14, -55, -113, -87, -18, -3, 13, 20, 24, 28, 41, 85, 60, 7, + -3, -9, -40, -100, -91, -28, -4, 7, 10, 21, 30, 43, 82, 62, 13, -8, + -11, -26, -85, -87, -36, -10, 2, -4, 14, 35, 47, 81, 62, 18, -9, -21, + -20, -65, -78, -38, -19, -4, -16, 0, 39, 54, 85, 65, 20, -7, -31, -24, + -47, -62, -33, -26, -15, -25, -19, 35, 63, 90, 73, 22, -3, -39, -39, -35, + -43, -20, -26, -30, -34, -36, 24, 71, 94, 85, 29, -3, -40, -58, -34, -24, + -4, -16, -46, -47, -47, 6, 73, 100, 97, 42, -4, -39, -73, -45, -8, 12, + 0, -51, -64, -56, -13, 66, 104, 106, 64, 2, -40, -82, -63, -3, 27, 18, + -43, -82, -68, -28, 51, 104, 112, 86, 19, -42, -86, -81, -10, 40, 34, -26, + -90, -86, -41, 31, 98, 116, 104, 46, -38, -92, -95, -25, 46, 48, -6, -84, + -105, -55, 13, 84, 117, 114, 76, -20, -95, -105, -45, 41, 54, 8, -65, -112, + -70, -1, 65, 109, 115, 100, 14, -85, -106, -62, 21, 50, 13, -44, -104, -84, + -14, 45, 98, 112, 111, 53, -62, -105, -75, -3, 44, 12, -31, -85, -93, -27, + 27, 82, 110, 110, 81, -27, -95, -81, -27, 31, 11, -31, -66, -90, -39, 12, + 61, 106, 107, 94, 12, -73, -79, -48, 11, 13, -32, -57, -78, -46, -1, 38, + 97, 109, 96, 43, -41, -69, -62, -13, 13, -30, -58, -68, -46, -11, 17, 81, + 112, 97, 59, -7, -51, -67, -37, 6, -23, -62, -67, -42, -14, 2, 60, 110, + 99, 65, 20, -24, -63, -56, -7, -15, -63, -75, -40, -12, -8, 39, 102, 103, + 67, 35, 6, -48, -68, -25, -11, -56, -85, -46, -7, -10, 22, 86, 107, 72, + 41, 29, -25, -70, -42, -14, -42, -91, -62, -5, -6, 9, 67, 105, 84, 40, + 40, 3, -64, -56, -23, -30, -83, -85, -12, 3, 1, 50, 97, 96, 44, 36, + 28, -45, -69, -33, -22, -67, -101, -34, 13, 2, 31, 88, 104, 56, 28, 37, + -16, -71, -51, -18, -49, -103, -62, 9, 14, 18, 70, 109, 68, 26, 36, 6, + -58, -68, -23, -28, -97, -84, -7, 23, 19, 50, 106, 84, 28, 31, -21, -26, + -18, -30, -24, -77, -76, -48, -46, 31, 0, -1, 0, 0, 2, 0, 1, -2, + 1, 0, -6, -7, -5, -3, 0, -3, -4, -2, 2, 0, -8, -11, -14, -10, + -8, -4, 6, 13, 14, 9, 2, -6, -10, -9, -6, 9, 17, 15, 8, 0, + 1, -4, -12, -19, -14, -8, -4, 3, 6, -2, -4, -6, -7, -10, -8, -12, + -11, 3, 23, 27, 11, 4, -3, -5, 0, -9, -3, 6, 11, 19, 4, -8, + -17, -20, -21, -3, 5, 8, 2, 3, 5, 2, -3, -3, -12, 4, 1, 3, + -7, 0, 5, 6, 0, -7, -8, -5, -7, -5, -3, 4, 9, 5, -5, -5, + -5, -17, -7, 3, 17, 15, 7, -2, -5, -3, 3, -8, -5, -3, 3, 8, + 12, 5, -10, -27, -20, 1, 5, -4, -9, -17, 4, 10, 9, -2, -12, -16, + -12, -2, 8, 16, 13, 11, 16, 19, 10, -2, -16, -21, -11, 14, 15, 21, + 11, 6, -10, -8, -11, -24, -35, -31, -13, 9, 24, 17, -2, -11, -20, -11, + -19, -7, 3, 8, 22, 21, 21, 2, -7, -10, 12, 24, 18, -3, -19, -6, + 0, -5, -18, -17, 6, 12, 7, -16, -20, -22, -27, -19, -14, 12, 14, 3, + 0, 2, 8, -3, -5, -3, 21, 29, 17, 6, -8, 3, 3, 10, 10, 3, + 12, 4, -9, -18, -20, -20, -9, 6, 3, -9, -7, -14, -9, -8, -9, -23, + -19, 7, 17, 20, 9, 8, 5, 9, 18, 9, 8, -10, -10, -4, 9, 25, + -6, -19, -19, -5, -4, -7, -7, -17, -15, -7, -4, 0, 2, -2, -17, -4, + 14, 23, 15, 2, -7, -5, 9, 11, 1, 0, -3, 0, 0, 15, 14, -4, + -15, -20, -26, -22, -13, 0, 6, 12, 5, -10, 2, 8, -2, -18, -8, 6, + 20, 28, 23, 0, -16, -7, 9, 7, 10, -12, -21, -19, 7, 12, 4, -17, + -28, -24, -3, 14, 4, -19, -18, -9, 11, 22, 16, -13, -23, -15, 18, 32, + 32, 17, -4, 1, 14, 11, 1, -20, -19, -3, 9, 13, -4, -13, -16, -18, + -23, -12, -17, -16, -20, -15, -14, -4, 8, 12, 0, 8, 5, 12, 17, 26, + 25, 14, 10, 11, 11, 18, 15, 4, -9, -13, -8, -9, -14, -20, -28, -32, + -12, -9, -16, -17, -24, -18, -12, 5, 10, 4, 6, 8, 18, 35, 31, 17, + 1, 12, 21, 33, 18, 6, -10, -11, -4, -9, -13, -19, -24, -24, -24, -18, + -20, -18, -20, -13, -15, -10, -9, -5, 8, 10, 13, 23, 26, 29, 14, 13, + 13, 13, 16, 25, 19, 17, 4, -15, -18, -15, -14, -17, -34, -23, -16, -12, + -16, -26, -33, -23, -15, -4, 4, 10, 16, 19, 22, 29, 28, 7, 1, 2, + 18, 26, 30, 21, 9, 3, -4, -10, -16, -29, -31, -27, -4, -9, -11, -28, + -23, -17, -15, -13, -11, 4, 11, 9, 13, 16, 25, 18, 8, 10, 18, 17, + 8, 18, 17, 11, -5, -19, -17, -12, -19, -38, -27, -8, 0, -3, -14, -19, + -20, -14, -10, -13, -3, 6, 12, 26, 38, 34, 14, 2, -2, 11, 19, 14, + 8, 5, 16, 9, -7, -19, -24, -29, -36, -26, -13, -12, -22, -28, -20, 5, + -3, -10, -19, 7, 20, 18, 17, 24, 25, 14, 18, 19, 29, 21, 11, 10, + 9, 13, -13, -29, -27, -20, -24, -30, -22, -12, -7, -15, -22, -21, -13, -14, + -20, -8, 12, 26, 25, 21, 33, 27, 25, 16, 13, 16, 16, -2, 2, 11, + 9, -2, -17, -18, -16, -25, -25, -26, -27, -30, -35, -30, -12, -6, -6, -6, + -5, 19, 19, 11, 15, 17, 24, 23, 34, 28, 23, 13, 2, 9, 18, 16, + -14, -18, -12, -7, -9, -31, -37, -33, -24, -14, -24, -20, -16, -21, -15, -7, + 5, 9, 15, 20, 28, 38, 29, 21, 15, 22, 17, 4, 12, 6, 12, -4, + -9, -15, -16, -19, -40, -38, -34, -23, -18, -17, -8, -10, -3, -7, 1, 3, + 4, 11, 13, 36, 41, 36, 24, 9, 17, 20, 21, 14, -5, -9, -11, -8, + -19, -14, -24, -30, -23, -18, -25, -30, -24, -17, -20, -9, -3, 6, 8, 22, + 23, 20, 27, 18, 10, 10, 14, 18, 14, 23, 17, 6, 5, -4, -8, -26, + -19, -24, -25, -24, -21, -27, -28, -15, -19, -16, -9, 0, 7, 9, 17, 14, + 15, 24, 30, 29, 29, 32, 16, 10, 8, 0, -3, -10, -7, -17, -22, -25, + -30, -36, -32, -25, -26, -22, -12, -16, -11, -3, 5, 7, 13, 21, 21, 26, + 32, 28, 26, 28, 31, 17, 15, 15, 5, -4, -14, -18, -28, -25, -24, -28, + -32, -33, -32, -29, -18, -17, -20, -10, -4, 6, 6, 18, 22, 22, 37, 38, + 31, 27, 26, 23, 22, 23, 12, 4, -5, -2, -11, -19, -25, -35, -35, -36, + -36, -43, -32, -24, -20, -12, -7, -3, -7, 3, 13, 23, 29, 35, 37, 35, + 42, 33, 26, 22, 17, 12, 6, 4, -9, -23, -28, -34, -34, -33, -31, -40, + -36, -27, -25, -22, -30, -20, -11, 2, 12, 22, 22, 26, 28, 35, 47, 44, + 27, 29, 29, 29, 19, 2, 1, -9, -15, -21, -34, -35, -34, -40, -44, -42, + -34, -31, -26, -21, -9, -12, -3, 10, 17, 29, 26, 27, 34, 48, 50, 34, + 33, 25, 21, 16, 8, 3, -8, -11, -25, -30, -37, -37, -42, -51, -34, -28, + -21, -26, -25, -19, -13, 4, 9, 17, 29, 41, 33, 33, 44, 45, 32, 31, + 28, 22, 16, 5, -10, -13, -16, -23, -38, -39, -39, -45, -54, -40, -32, -24, + -22, -17, -14, 0, 6, 9, 18, 41, 43, 34, 32, 40, 40, 31, 30, 27, + 22, 19, 14, -2, -16, -21, -34, -48, -45, -41, -41, -41, -45, -38, -25, -21, + -17, -20, -7, 11, 17, 19, 36, 40, 42, 44, 47, 46, 39, 33, 26, 15, + 11, 8, -5, -19, -24, -29, -40, -44, -48, -44, -37, -37, -43, -43, -26, -19, + -14, -2, 13, 23, 31, 36, 36, 43, 41, 47, 46, 44, 40, 24, 15, 14, + 3, -12, -21, -23, -30, -36, -47, -51, -50, -47, -44, -46, -31, -19, -16, -11, + 2, 16, 20, 25, 29, 40, 53, 51, 49, 45, 41, 35, 25, 18, 7, 5, + -12, -18, -23, -34, -39, -56, -58, -54, -49, -50, -45, -35, -26, -12, -5, 6, + 17, 29, 41, 42, 47, 50, 46, 49, 50, 50, 39, 30, 16, 2, -8, -15, + -21, -30, -41, -49, -50, -46, -57, -63, -57, -41, -29, -24, -12, -3, 5, 12, + 22, 33, 41, 50, 51, 53, 57, 55, 46, 36, 29, 16, 2, -4, -11, -21, + -33, -40, -49, -47, -53, -60, -58, -51, -42, -34, -23, -13, -2, 5, 17, 27, + 39, 49, 48, 51, 56, 54, 58, 44, 37, 28, 18, 4, -3, -15, -29, -39, + -49, -49, -51, -62, -65, -64, -47, -42, -36, -26, -14, -5, 10, 24, 32, 45, + 50, 49, 62, 65, 63, 47, 42, 41, 36, 23, 7, -7, -22, -31, -41, -53, + -58, -62, -59, -62, -56, -54, -50, -44, -32, -16, 0, 11, 25, 35, 50, 54, + 55, 56, 66, 65, 62, 54, 45, 36, 23, 14, -4, -22, -44, -55, -52, -62, + -61, -66, -70, -68, -60, -54, -45, -29, -15, 4, 21, 34, 36, 44, 54, 62, + 70, 73, 68, 67, 59, 50, 37, 21, -5, -12, -25, -39, -48, -53, -63, -76, + -73, -71, -71, -67, -57, -45, -29, -12, 2, 13, 30, 42, 51, 61, 76, 71, + 63, 66, 71, 60, 50, 40, 23, -2, -9, -20, -41, -54, -59, -72, -79, -71, + -64, -73, -68, -60, -51, -36, -13, 2, 13, 27, 47, 54, 71, 78, 71, 60, + 72, 74, 65, 54, 39, 28, 7, -6, -23, -50, -59, -64, -69, -75, -70, -78, + -74, -73, -64, -52, -37, -13, 6, 18, 40, 51, 58, 64, 78, 79, 75, 68, + 64, 68, 57, 45, 21, 4, -16, -34, -50, -65, -75, -83, -80, -71, -69, -68, + -73, -63, -57, -36, -16, 6, 26, 45, 60, 70, 71, 79, 79, 81, 78, 80, + 64, 55, 36, 16, -4, -23, -38, -54, -63, -69, -81, -85, -87, -76, -72, -66, + -61, -52, -30, -12, 12, 24, 44, 55, 69, 78, 85, 84, 74, 70, 71, 71, + 62, 41, 17, -11, -25, -42, -55, -66, -75, -87, -87, -81, -74, -76, -76, -63, + -48, -32, -13, 7, 30, 51, 64, 76, 80, 82, 83, 81, 80, 82, 70, 61, + 42, 19, 0, -28, -49, -61, -72, -78, -87, -90, -89, -88, -87, -82, -69, -54, + -33, -13, 15, 36, 58, 68, 79, 90, 96, 90, 84, 86, 89, 79, 62, 38, + 22, -3, -29, -55, -69, -81, -89, -94, -94, -94, -94, -89, -74, -62, -52, -35, + -18, 14, 39, 54, 65, 76, 87, 98, 95, 94, 90, 82, 75, 69, 47, 26, + -6, -33, -57, -72, -82, -88, -97, -90, -91, -88, -83, -80, -75, -59, -33, -9, + 20, 42, 58, 68, 82, 90, 94, 93, 94, 88, 85, 77, 65, 43, 16, -10, + -37, -60, -71, -84, -89, -95, -97, -102, -95, -84, -80, -72, -57, -26, -4, 19, + 42, 62, 80, 89, 94, 97, 100, 99, 90, 83, 71, 65, 39, 14, -9, -43, + -65, -83, -90, -95, -98, -96, -100, -96, -88, -76, -66, -51, -24, -12, 21, 45, + 70, 85, 93, 95, 97, 101, 105, 92, 84, 69, 58, 35, 16, -14, -44, -68, + -86, -88, -96, -101, -101, -102, -97, -90, -74, -69, -50, -19, 9, 35, 56, 76, + 84, 92, 98, 96, 99, 97, 93, 84, 77, 59, 24, 2, -30, -52, -76, -87, + -93, -98, -100, -102, -100, -96, -89, -81, -73, -46, -18, 12, 36, 62, 82, 88, + 96, 104, 107, 105, 102, 92, 84, 77, 53, 26, -6, -35, -57, -75, -81, -92, + -103, -114, -111, -108, -98, -88, -83, -67, -35, -7, 20, 39, 60, 70, 89, 106, + 116, 107, 103, 99, 86, 90, 82, 53, 18, -13, -31, -52, -73, -92, -102, -106, + -104, -97, -106, -99, -101, -92, -72, -42, -5, 16, 38, 66, 86, 101, 99, 101, + 95, 112, 107, 99, 95, 81, 53, 16, -3, -29, -60, -81, -102, -98, -102, -102, + -112, -114, -101, -104, -88, -69, -34, -8, 14, 41, 67, 92, 94, 99, 103, 104, + 115, 109, 103, 90, 78, 52, 22, 0, -39, -65, -92, -95, -91, -103, -104, -118, + -110, -102, -93, -84, -71, -36, -15, 19, 52, 81, 94, 89, 98, 103, 115, 117, + 102, 92, 83, 80, 49, 23, -11, -43, -67, -90, -93, -102, -105, -110, -118, -104, + -100, -89, -83, -64, -36, -7, 28, 50, 74, 88, 95, 104, 103, 115, 107, 106, + 97, 87, 74, 50, 20, -17, -47, -75, -89, -93, -101, -102, -115, -117, -106, -97, + -88, -90, -73, -38, 2, 36, 60, 75, 84, 96, 104, 115, 115, 102, 98, 96, + 96, 84, 52, 10, -12, -32, -53, -71, -87, -101, -109, -112, -109, -106, -105, -102, + -92, -74, -48, -19, 7, 33, 56, 76, 91, 101, 108, 111, 111, 108, 103, 96, + 85, 63, 33, 1, -27, -51, -73, -90, -102, -109, -112, -110, -107, -103, -100, -93, + -76, -50, -19, 10, 36, 58, 76, 91, 101, 108, 111, 111, 108, 103, 96, 85, + 63, 33, 1, -27, -51, -73, -90, -102, -109, -112, -110, -107, -103, -100, -93, -76, + -50, -19, 10, 36, 58, 76, -1, -2, -15, 21, -17, 23, -30, 1, 34, -34, + 6, 5, -15, 19, 1, -25, 6, 20, -2, -28, 15, 10, -15, 0, -7, 10, + 7, -5, -9, -6, 19, -3, -21, 3, 20, -4, -20, 1, 16, -3, -8, -2, + 5, 1, -8, -6, 3, 9, 2, -13, -4, 15, -7, -9, 0, 3, 6, -7, + -7, 5, 8, -8, -4, 0, 1, 1, -6, -4, 7, 2, -2, -7, 0, 4, + -3, -4, 0, 2, 0, -2, -4, 1, 4, -2, -4, -3, 1, 3, -5, -4, + 4, 3, -6, -5, 4, -1, -2, -3, 0, 3, -3, -1, -4, 3, 3, -5, + -3, 1, 1, -2, -3, 1, 2, -2, -4, 0, 0, 0, -1, -3, 1, 1, + -3, -2, 1, 0, -2, -2, 0, 0, -2, -1, 0, -1, 1, -2, -2, 1, + 0, -2, 0, -1, 0, -1, -1, -1, 0, 0, -1, -3, 1, 1, -2, -2, + 0, 1, -1, -2, -1, 0, 0, 0, -2, -1, 1, 0, -3, 0, 2, -1, + -2, 0, 0, 0, -2, 0, -1, 0, -1, -1, 1, 0, -1, 0, -1, 1, + 0, -13, 5, 7, -11, 24, -50, 41, 4, -29, 14, -11, 8, 11, -15, -12, + 15, 18, -21, -14, 22, -2, -11, -3, -3, 18, -3, -5, -14, 9, 22, -24, + -16, 23, 12, -23, -8, 9, 10, -4, -8, -3, 11, -4, -14, 0, 8, 8, + -5, -14, 8, 10, -12, -4, -2, 10, 0, -11, -3, 11, 0, -7, -2, -1, + 7, -6, -8, 3, 6, 0, -3, -8, 7, 2, -7, -2, 2, 1, -2, -4, + -1, 3, 3, -4, -5, 1, 3, -3, -6, 2, 5, -1, -7, -1, 3, -1, + -4, -3, 5, 0, -3, -2, -1, 4, -1, -5, -1, 3, -1, -4, -1, 3, + 1, -4, -2, 1, 0, -2, -3, 0, 2, -1, -4, 1, 1, -1, -2, -2, + 1, -1, -3, 0, 0, 0, -1, -2, 0, 0, -2, -1, 0, -1, 0, -2, + -1, 0, -1, 0, -1, -2, 2, -1, -2, -1, 0, 1, -2, 0, -1, -1, + 0, -1, -2, 0, 1, -1, -3, 0, 1, -1, -3, 0, 1, -2, -1, 0, + 0, -1, -1, 0, -1, -1, -1, -1, 0, 0, -1, -1, 0, 0, -2, 0, + 0, 0, 0, -2, 1, -1, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, + -1, 0, 0, -1, 0, -1, 1, 0, 0, 0, 1, -1, -1, 0, 0, 0, + 1, -2, 4, -3, 3, -40, 71, -73, 67, -27, -68, 127, -80, 3, 5, 1, + 17, -14, 1, -30, 53, -3, -42, 15, 19, -9, -17, -1, 13, 16, -17, 4, + -32, 43, 15, -68, 18, 54, -38, -7, -1, 11, 7, -3, -18, 5, 25, -27, + -9, 9, 19, -6, -12, -8, 20, -1, -15, -1, 1, 17, -10, -16, 12, 12, + -13, 0, -6, 10, 2, -16, -1, 14, -4, 4, -11, -2, 12, -6, -8, 4, + 4, -2, -4, 1, -2, 4, 3, -7, -5, 8, 0, -10, 1, 4, 2, -4, + -6, 4, 1, -1, -7, 1, 8, -9, 2, -5, 3, 3, -4, -3, 0, 3, + -3, -5, 4, 3, -3, -4, 0, 2, 0, -3, -4, 5, 0, -5, -1, 2, + 0, -3, 0, -1, 2, -2, -4, 3, 0, -1, -2, -1, 2, -2, -2, 1, + -1, 0, -1, -3, 1, 1, -2, 1, -3, 1, 1, -3, -1, 1, 0, -1, + -2, 1, -1, -1, 1, -2, 1, -1, -1, -1, -1, 0, 1, -3, 0, 0, + 1, -4, 0, 1, -2, 0, -2, 0, 0, 0, -2, 1, -1, 0, -2, 0, + 2, -2, -1, 0, -1, 2, -2, -1, 1, -2, 0, -1, 1, -1, -1, -1, + 1, -2, 1, -1, -1, 2, -3, 0, 0, -1, 1, -1, 0, 1, 0, -2, + 0, -1, 1, -2, 0, 0, -1, 1, 0, -2, 0, 1, -2, 1, 0, 0, + -1, 0, 1, -1, -1, -1, 1, 1, -1, 0, 0, 0, -1, 1, 0, -1, + 1, 0, 0, 1, 0, -1, 1, 0, 3, -40, 58, -39, 12, 42, -117, 108, + 1, -66, 22, 17, 0, -9, 10, -39, 42, 4, -23, -12, 28, 3, -34, 9, + 17, 3, -9, 10, -29, 13, 53, -79, 3, 64, -26, -24, 16, -9, 14, 2, + -8, -15, 31, -9, -30, 11, 29, -15, -7, 0, 3, 6, -4, -9, -6, 22, + 1, -24, 9, 11, -8, 0, -2, 2, 8, -12, -6, 10, 2, 2, -9, -4, + 11, -2, -10, 3, 2, 3, -5, -1, 1, -1, 6, -4, -8, 9, 2, -8, + -3, 6, 3, -4, -3, -1, 6, -2, -8, 0, 9, -4, -3, -2, 2, 4, + -4, -1, -1, 4, -2, -6, 4, 2, -1, -4, 0, 1, 2, -3, -5, 3, + 3, -3, -4, 3, 0, -1, 0, -2, 2, 0, -3, 0, 3, 0, -3, -1, + 2, 0, -3, 1, 0, -1, 2, -2, -2, 2, -1, 0, -1, -1, 1, -1, + -2, 0, 0, 1, -3, 1, 0, -1, 1, -2, -1, 2, -2, -1, 0, -1, + 2, -3, -1, 1, 1, -2, -2, 2, 1, -2, -1, 0, 0, 1, -3, 1, + 0, 0, 0, -2, 3, 0, -2, 0, 0, 1, 0, -1, 1, -2, 0, 0, + 0, -1, 1, 0, 0, 0, -1, 1, -1, 1, 0, -1, 1, -2, 0, 1, + 1, 0, 1, -2, 1, 0, 1, 0, 0, 3, -1, 0, 1, 0, 0, 3, + -29, 35, -12, -16, 56, -88, 39, 62, -79, 5, 29, 1, -13, 12, -29, 26, + 17, -28, -3, 12, 5, -11, -19, 28, 1, -5, 9, -21, -7, 60, -56, -20, + 57, -10, -27, 21, -21, 16, 12, -12, -21, 24, 6, -29, 4, 19, 2, -7, + -5, -3, 7, 6, -11, -9, 11, 13, -18, -4, 13, 1, -3, -6, -1, 10, + -8, -6, 5, 3, 5, -3, -11, 4, 9, -11, 0, 4, 3, -4, -1, 0, + 0, 7, 0, -14, 7, 5, -7, -4, 4, 5, -1, -4, -4, 4, 1, -4, + -4, 7, -1, -1, -3, 0, 5, -1, -4, -1, 2, 0, -3, 1, 1, 2, + -2, -4, 1, 2, 0, -5, 2, 3, -2, -2, 1, 1, -2, 2, -3, 0, + 0, -1, -1, 0, 1, 0, -3, 0, 0, -1, 1, -1, -2, 1, -1, 0, + -2, 2, 1, -2, -1, 1, 0, -1, -1, 0, 1, -1, 0, -2, 1, 1, + -1, 0, -1, -1, 0, 0, -1, -1, 0, -1, -1, 2, -2, -1, 1, 0, + 0, -1, -1, 1, 0, -1, 1, -1, 0, 1, -3, 1, 1, -1, -1, 0, + 1, 0, 0, 0, -1, 0, 0, -1, 0, 1, 0, 0, 2, -2, 0, 1, + 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, -1, -1, -7, -9, 35, -52, + 59, -33, -32, 64, -15, -41, 19, 22, -20, 9, -11, -3, 33, -27, 2, 7, + -9, 19, -37, 24, 7, -11, 11, -1, -30, 37, 8, -57, 36, 19, -33, 14, + 0, -17, 26, 1, -20, -5, 26, -18, -13, 14, 7, -6, 4, -9, -4, 11, + 3, -14, -7, 20, 0, -18, 10, 1, 4, -5, -7, 6, 0, -3, -2, -2, + 8, 5, -11, -6, 10, -1, -10, 6, -2, -1, 1, -3, 0, 3, 5, -9, + -5, 9, -3, -4, 1, 1, 3, -1, -4, -1, 2, -2, -5, 5, -3, 0, + 1, -5, 4, 2, -3, -3, 0, 0, -2, 1, 0, -2, 3, -2, -5, 2, + 2, -2, -4, 3, 0, -2, 1, -2, -2, 5, -2, -6, 1, 2, -1, -1, + 0, 1, -1, -2, -1, -1, 2, 0, -4, 0, 1, 0, -3, 0, 2, 0, + -3, 0, 0, 1, -1, -1, 1, 0, -1, -2, 1, 0, 0, -1, 0, -2, + 1, 0, -1, 1, -1, 0, -2, 1, 1, -2, -1, 2, -2, 1, -3, 1, + 1, -1, 0, 0, -1, 1, 0, -2, 2, -1, -1, 0, 0, 1, 0, 1, + 0, -2, 1, 0, 0, -1, 1, 0, 0, 0, 0, -3, -20, 45, -56, 40, + -5, -34, 27, 24, -42, -1, 29, -14, -4, 2, -7, 24, -20, -1, 18, -25, + 25, -29, 9, 21, -26, 14, 4, -20, 7, 27, -42, 5, 31, -24, -2, 19, + -30, 21, 8, -11, -17, 20, 1, -22, 11, 7, -7, 6, -5, -7, 3, 11, + -6, -18, 11, 16, -20, 1, 5, 2, -3, -3, 0, -3, 4, -1, -7, 2, + 10, -9, -8, 7, 2, -9, 5, -1, -5, 2, 1, -3, -2, 9, -5, -8, + 4, 1, -5, 0, 1, 2, -1, 0, -5, 4, -1, -5, 4, -3, 1, 1, + -5, 3, 0, 0, -3, 0, -1, -2, 1, 2, -5, 2, 1, -5, -2, 3, + -1, -5, 2, 1, -4, 2, -1, -4, 2, 3, -7, -1, 2, 0, -2, 1, + 0, -2, -1, 0, -3, 1, 2, -3, -2, 3, 0, -3, -1, 1, 0, -1, + -2, -1, 1, 0, 0, -1, 0, 0, -2, 0, 0, 1, -2, 2, -3, 1, + 0, 0, -2, 1, 0, -1, 0, 0, -1, -1, 2, -3, 0, 0, -1, 0, + 0, -1, 1, 0, -4, -13, 32, -41, 31, -10, -10, 4, 22, -25, -8, 21, + -3, -14, 5, 1, 12, -23, 8, 18, -31, 25, -26, 10, 17, -23, 8, 5, + -9, 0, 16, -25, 2, 23, -22, -2, 22, -30, 15, 7, -6, -13, 12, 1, + -17, 9, 5, -6, 4, -3, -7, 5, 7, -6, -13, 7, 10, -11, 0, 0, + 4, -3, -3, 2, -7, 4, 2, -5, 0, 6, -3, -8, 4, 2, -8, 7, + 0, -8, -1, 6, 0, -8, 6, 0, -5, 1, 0, -5, 3, 2, -3, -2, + 4, -5, -1, -1, -2, 3, -4, 1, -1, -3, 3, -1, -2, -2, 1, -2, + -2, 1, 1, -4, 1, 2, -5, -3, 5, -3, -4, 4, -1, -4, 2, -1, + -4, 3, 1, -5, -2, 2, 0, -2, 2, -1, -4, 3, -1, -3, 0, 1, + -2, -2, 1, -1, -1, -1, 0, 0, -1, -1, -1, 0, -1, 1, -1, -1, + 0, -2, 1, 0, -1, -1, 0, -1, -1, -1, 2, -2, -1, 1, -1, -2, + 1, -1, -1, 1, -2, 1, -7, -3, 15, -23, 20, -16, 9, -12, 16, -12, + -8, 11, 5, -18, 6, 8, 0, -18, 16, 4, -19, 16, -17, 10, 5, -8, + -2, 9, -5, -4, 10, -17, 5, 13, -18, 2, 12, -17, 10, 0, -2, -8, + 7, -4, -7, 6, 1, -3, 1, 3, -9, -2, 10, -7, -8, 4, 6, -6, + 1, 0, 0, -2, 1, -1, -8, 6, 1, -5, 2, 4, -2, -4, 1, 1, + -7, 5, -1, -4, -2, 4, 0, -4, 4, -3, -4, 1, 0, -3, 0, 2, + -1, -2, 2, -2, -1, -3, 0, 3, -4, 3, -3, 0, 2, 0, -3, -1, + 1, -3, -1, 2, 0, -1, 0, 0, -3, 0, 1, -4, -1, 2, 0, -2, + 0, 1, -3, 1, 1, -3, -2, 2, -1, -1, 2, -1, -2, 1, 0, -1, + -1, -1, -3, -8, -16, -20, -7, 14, 20, 19, 18, 16, 11, 3, -9, -21, + -36, -43, -39, -24, 6, 38, 57, 55, 26, 0, -7, -10, -13, -12, -11, -29, + -56, -59, -37, 0, 43, 74, 87, 75, 37, -2, -31, -51, -59, -45, -15, -16, + -34, -20, -10, -5, 29, 61, 72, 51, 18, -2, -21, -39, -35, -24, 1, 0, + -31, -29, -23, -44, -13, 48, 82, 79, 46, 16, -4, -44, -58, -26, 3, 6, + -38, -52, -24, -42, -35, 47, 95, 88, 55, 19, 12, -22, -72, -38, 4, 3, + -31, -67, -29, -24, -60, 23, 112, 111, 72, 22, 7, -20, -90, -73, -1, 19, + -4, -57, -36, 3, -54, -32, 98, 125, 71, 14, 14, 0, -82, -106, 0, 42, + 10, -48, -32, -2, -54, -63, 72, 125, 82, 24, 14, -8, -57, -104, -22, 52, + 34, -34, -46, -16, -35, -83, 32, 127, 99, 26, 19, 4, -55, -110, -48, 45, + 36, -12, -26, -22, -41, -64, -7, 107, 113, 56, 6, 4, -41, -92, -74, 35, + 57, 12, -41, -21, -39, -67, -40, 86, 114, 71, 10, 22, -31, -83, -83, 16, + 46, 34, -28, -18, -42, -58, -60, 55, 108, 97, 3, 21, -8, -77, -102, 10, + 45, 42, -26, -2, -27, -68, -73, 45, 83, 92, 29, 25, -8, -56, -104, -13, + 35, 52, -6, -7, -22, -46, -91, 10, 80, 95, 35, 26, 8, -38, -106, -34, + 34, 42, 5, 1, -23, -39, -73, -28, 61, 89, 60, 20, 2, -7, -73, -86, + 24, 52, 26, -12, -11, -19, -58, -86, 46, 91, 62, 17, 22, -15, -39, -106, + 8, 55, 45, -13, -6, -30, -21, -102, 4, 82, 87, 7, 28, -3, -9, -115, + -32, 50, 63, -23, 8, -19, -18, -94, -28, 61, 96, 14, 39, -4, 1, -85, + -60, 23, 79, -3, 2, -20, -10, -82, -65, 25, 108, 28, 31, 19, 9, -65, + -74, -5, 78, 16, -3, -9, -14, -65, -76, -3, 93, 60, 29, 22, 13, -43, + -90, -30, 61, 49, -9, -1, 4, -52, -98, -16, 68, 72, 21, 38, 15, -31, + -94, -34, 32, 67, 5, 9, 0, -28, -111, -33, 40, 85, 24, 37, 23, -6, + -104, -44, 13, 69, 9, 14, 8, -11, -110, -53, 20, 80, 32, 48, 30, 5, + -87, -66, -7, 63, 33, 12, 2, 5, -86, -94, -2, 79, 46, 26, 44, 22, + -59, -88, -19, 54, 48, 13, 14, 4, -51, -112, -37, 67, 71, 21, 38, 29, + -29, -104, -50, 44, 63, 11, 10, 14, -24, -103, -67, 49, 88, 20, 27, 43, + -10, -90, -79, 24, 69, 21, 7, 18, -8, -82, -103, 17, 94, 38, 10, 54, + 12, -70, -97, 1, 68, 37, -4, 27, -6, -56, -104, -21, 82, 67, -3, 46, + 23, -37, -108, -31, 57, 58, -13, 29, 11, -32, -106, -50, 53, 92, -6, 38, + 38, -15, -105, -54, 34, 79, -12, 20, 22, -11, -98, -70, 22, 99, 4, 16, + 48, 14, -99, -75, 15, 82, 2, 0, 44, 8, -93, -80, 0, 84, 29, -3, + 57, 32, -79, -94, 1, 66, 27, -19, 49, 29, -73, -109, -7, 54, 52, -17, + 62, 53, -46, -113, -4, 43, 51, -30, 46, 37, -42, -128, -23, 26, 69, -18, + 51, 59, -2, -122, -30, 24, 66, -27, 31, 51, 1, -128, -48, 13, 71, -11, + 33, 66, 22, -110, -57, 8, 68, -9, 12, 53, 28, -104, -87, -4, 67, 8, + 8, 72, 53, -80, -91, -4, 59, 10, -13, 63, 44, -81, -109, -19, 46, 33, + -6, 76, 57, -43, -104, -24, 36, 42, -26, 55, 51, -34, -126, -39, 19, 58, + -21, 68, 71, -8, -114, -32, 2, 62, -24, 52, 54, -4, -120, -53, -22, 71, + -8, 49, 62, 31, -102, -52, -25, 70, -5, 24, 55, 35, -109, -69, -40, 59, + 16, 25, 65, 55, -80, -70, -37, 47, 23, 7, 48, 51, -73, -97, -48, 30, + 46, 6, 57, 74, -37, -98, -34, 21, 48, -10, 44, 58, -34, -123, -46, -2, + 61, 2, 50, 69, 10, -110, -40, -5, 59, -9, 31, 53, 19, -126, -59, -20, + 62, 8, 32, 64, 49, -105, -59, -16, 58, 2, 17, 50, 45, -102, -83, -31, + 46, 24, 15, 53, 69, -65, -86, -24, 42, 25, -4, 45, 64, -58, -112, -37, + 30, 41, -6, 51, 75, -24, -105, -32, 26, 41, -19, 39, 62, -14, -117, -51, + 7, 54, -13, 35, 78, 19, -105, -47, 9, 58, -19, 21, 69, 18, -113, -66, + -10, 52, -10, 14, 75, 42, -83, -60, -5, 52, 0, -3, 69, 43, -83, -83, + -21, 35, 17, -13, 72, 57, -54, -82, -10, 29, 28, -29, 65, 52, -45, -98, + -21, 1, 40, -30, 64, 63, -7, -94, -9, 1, 51, -36, 51, 54, -8, -115, + -23, -22, 47, -30, 48, 65, 24, -90, -13, -15, 46, -26, 30, 55, 21, -100, + -37, -26, 31, -10, 24, 65, 41, -71, -35, -10, 25, -2, 4, 58, 32, -69, + -61, -16, 2, 8, 1, 67, 42, -33, -56, -1, -1, 20, -13, 59, 33, -28, + -82, -10, -20, 22, -15, 64, 40, -1, -70, 0, -17, 29, -22, 53, 33, 1, + -84, -15, -29, 22, -19, 53, 43, 22, -64, -7, -19, 25, -18, 37, 38, 16, + -73, -30, -33, 11, -14, 32, 50, 31, -45, -17, -15, 16, -4, 16, 43, 23, + -49, -43, -30, -2, -1, 8, 52, 36, -25, -32, -13, -1, 11, -1, 42, 30, + -25, -49, -25, -18, 10, -7, 44, 40, -2, -34, -11, -15, 21, -6, 29, 33, + -5, -54, -29, -30, 13, -6, 29, 46, 15, -32, -10, -18, 16, -1, 13, 36, + 9, -45, -30, -32, 0, 1, 12, 43, 28, -23, -16, -16, 6, 9, 2, 33, + 22, -33, -34, -27, -11, 2, 1, 35, 36, -14, -16, -11, -5, 8, 3, 24, + 32, -19, -30, -29, -17, -4, 1, 20, 43, -5, -14, -13, -4, 0, 7, 11, + 39, -9, -23, -28, -17, -16, 1, 9, 44, 3, -7, -15, -4, -4, 7, 5, + 38, 3, -20, -30, -19, -19, -8, 0, 40, 17, -6, -7, -3, -2, -1, 4, + 32, 16, -20, -21, -26, -17, -18, -3, 28, 32, -7, -1, -9, 4, -9, 3, + 22, 34, -19, -14, -27, -13, -27, -10, 16, 44, -8, 5, -6, 3, -12, 1, + 13, 40, -12, -11, -25, -17, -27, -15, 5, 45, 4, 2, 0, 0, -9, -5, + 6, 38, 2, -17, -14, -20, -24, -23, 0, 38, 19, -4, 11, -4, -7, -10, + 4, 27, 20, -20, -9, -23, -22, -30, -6, 26, 35, -8, 12, 2, -4, -15, + 2, 20, 32, -16, -7, -15, -22, -37, -14, 18, 39, -3, 5, 8, -5, -18, + -2, 18, 34, -4, -14, -4, -21, -35, -25, 15, 36, 8, -4, 21, -5, -17, + -14, 23, 26, 9, -22, 4, -25, -32, -40, 14, 27, 24, -12, 30, 1, -8, + -26, 24, 21, 19, -28, 9, -20, -28, -51, 7, 23, 30, -15, 27, 9, -7, + -32, 16, 25, 23, -21, 4, -8, -27, -50, -10, 25, 29, -9, 13, 24, -7, + -28, -3, 34, 20, -12, -9, 10, -31, -43, -29, 30, 23, 2, -3, 38, -9, + -19, -19, 39, 18, -1, -20, 25, -29, -36, -42, 26, 17, 12, -14, 43, -3, + -15, -29, 35, 19, 6, -28, 27, -18, -36, -48, 16, 17, 15, -15, 39, 12, + -13, -29, 24, 24, 9, -25, 19, -1, -39, -50, 1, 18, 11, -11, 25, 26, + -14, -26, 12, 32, 10, -17, 6, 17, -33, -48, -14, 20, 6, -7, 11, 36, + -9, -26, -1, 34, 11, -9, -4, 25, -25, -49, -26, 19, 4, -4, 5, 41, + 3, -21, -8, 31, 12, -7, -11, 23, -13, -47, -37, 13, 6, -3, 1, 40, + 14, -17, -14, 26, 16, -2, -12, 20, -3, -40, -44, 2, 6, -2, -4, 35, + 24, -9, -19, 19, 17, 2, -13, 16, 5, -29, -48, -7, 4, 3, -7, 28, + 28, 2, -21, 13, 14, 9, -14, 11, 9, -15, -49, -17, -3, 6, -11, 20, + 30, 14, -23, 7, 12, 14, -11, 6, 10, -4, -46, -24, -10, 6, -8, 11, + 29, 24, -15, 0, 11, 14, -4, -2, 11, 3, -37, -36, -13, -3, -2, 2, + 28, 27, -2, -10, 14, 9, 7, -8, 13, 3, -21, -42, -14, -14, 4, -6, + 24, 24, 13, -16, 12, 3, 14, -8, 12, 4, -7, -44, -18, -20, 5, -6, + 18, 22, 23, -13, 6, 2, 13, -4, 5, 5, 1, -36, -26, -20, -1, -1, + 10, 23, 25, -3, -4, 5, 9, 5, -2, 8, 1, -24, -36, -18, -10, 4, + 1, 24, 23, 11, -9, 8, 4, 12, -7, 9, 1, -12, -40, -19, -16, 4, + -4, 21, 21, 16, -9, 6, 2, 13, -4, 6, 6, -4, -33, -24, -18, -2, + -2, 10, 21, 18, 0, -3, 3, 8, 6, -1, 8, 0, -18, -31, -19, -10, + 1, 0, 19, 20, 13, -5, 4, 5, 12, -4, 5, 2, -7, -34, -24, -17, + 1, -4, 13, 20, 21, -3, 2, 5, 14, 0, 2, 4, 0, -26, -28, -20, + -6, -4, 4, 18, 23, 6, -3, 5, 9, 7, -1, 6, 3, -14, -33, -22, + -14, -1, -1, 16, 22, 17, -4, 4, 4, 10, -2, 4, 3, -4, -30, -25, + -19, -2, -2, 11, 20, 23, 0, 0, 2, 10, 3, 1, 4, 1, -23, -30, + -22, -8, -1, 4, 19, 23, 10, -3, 4, 6, 8, -2, 5, 2, -13, -33, + -23, -15, 0, -1, 16, 21, 16, -3, 3, 4, 11, 0, 5, 6, -3, -27, + -25, -19, -4, -2, 9, 19, 19, 2, -3, 2, 8, 6, -1, 8, 0, 0, + 2, 33, 42, 58, 71, 79, 85, 88, 91, 94, 79, 95, 82, 106, 86, 105, + 47, 16, -6, 13, 44, 31, -15, -38, -36, 20, 70, 41, 48, 58, 24, -57, + -127, -119, -102, -126, -128, -111, -78, -82, -88, -87, -60, -66, -98, -104, -99, -97, + -99, -104, -101, -88, -87, -91, -61, -27, -34, -54, -55, -45, -24, -10, -5, -4, + 5, 34, 63, 101, 94, 78, 52, 51, 52, 74, 81, 77, 59, 46, 17, 7, + 39, 53, 47, 42, 66, 83, 73, 52, 28, 22, 11, 8, 11, 0, -15, -23, + -15, -14, -6, 16, 46, 62, 71, 76, 90, 102, 103, 103, 101, 100, 90, 75, + 63, 67, 49, 37, 28, 12, 5, 6, 15, 15, 8, -7, -12, -4, -10, -28, + -24, -17, -25, -50, -64, -81, -103, -116, -116, -113, -95, -72, -54, -41, -47, -65, + -65, -50, -33, -24, -7, 11, 8, -4, -13, -28, -51, -75, -90, -91, -90, -90, + -87, -88, -83, -84, -82, -81, -81, -76, -65, -71, -85, -84, -79, -83, -81, -77, + -72, -70, -65, -66, -66, -65, -66, -68, -61, -56, -51, -36, -13, -3, -5, -8, + -12, -12, 3, 16, 21, 31, 50, 69, 77, 82, 90, 102, 110, 114, 116, 117, + 118, 119, 116, 112, 109, 105, 98, 99, 103, 102, 91, 73, 64, 63, 61, 57, + 51, 40, 24, 35, 57, 75, 84, 79, 65, 37, 4, -26, -45, -57, -54, -46, + -45, -54, -67, -67, -48, -16, 15, 35, 44, 45, 44, 45, 46, 38, 23, 2, + -15, -34, -52, -60, -70, -77, -80, -79, -74, -77, -84, -86, -80, -72, -68, -72, + -80, -87, -92, -96, -101, -104, -104, -101, -93, -90, -89, -86, -85, -84, -83, -82, + -81, -79, -77, -76, -73, -71, -66, -62, -55, -39, -31, -27, -25, -31, -37, -46, + -51, -53, -54, -48, -45, -38, -20, 3, 24, 35, 39, 32, 16, 5, 3, 0, + -6, -13, -13, -11, -2, 14, 28, 40, 50, 53, 50, 55, 64, 74, 90, 105, + 108, 112, 106, 104, 109, 112, 123, 127, 127, 127, 127, 127, 127, 118, 113, 107, + 110, 114, 111, 104, 101, 101, 102, 103, 99, 99, 89, 73, 53, 35, 20, 0, + -22, -43, -63, -77, -82, -76, -65, -48, -36, -29, -24, -25, -29, -37, -40, -49, + -59, -67, -73, -76, -78, -79, -75, -73, -74, -75, -68, -52, -44, -30, -19, -9, + -6, -9, -13, -24, -33, -35, -31, -30, -35, -40, -44, -45, -51, -53, -54, -50, + -50, -47, -42, -50, -55, -54, -56, -56, -54, -54, -49, -48, -41, -32, -28, -18, + -13, -5, 6, 18, 33, 49, 60, 71, 78, 88, 95, 97, 93, 88, 91, 93, + 97, 98, 97, 94, 91, 85, 81, 72, 70, 66, 61, 60, 64, 66, 74, 83, + 92, 102, 108, 109, 107, 102, 97, 95, 91, 87, 80, 74, 67, 62, 61, 58, + 61, 61, 57, 53, 43, 35, 27, 25, 24, 20, 20, 22, 27, 34, 36, 32, + 21, 8, -3, -10, -16, -18, -16, -16, -19, -15, -11, -11, -12, -20, -34, -45, + -59, -72, -80, -89, -94, -95, -102, -111, -114, -111, -111, -108, -106, -104, -101, -98, + -93, -90, -86, -86, -83, -82, -81, -79, -76, -73, -70, -72, -78, -81, -79, -79, + -72, -60, -43, -31, -25, -27, -34, -37, -40, -42, -41, -39, -36, -34, -25, -12, + -4, 5, 12, 16, 17, 15, 13, 6, -4, -7, -8, -6, -1, 4, 7, 9, + 12, 16, 19, 19, 22, 28, 29, 28, 29, 30, 34, 40, 49, 57, 71, 78, + 85, 92, 96, 95, 89, 85, 86, 93, 99, 104, 102, 100, 94, 85, 77, 73, + 69, 66, 63, 60, 60, 59, 57, 52, 47, 41, 31, 18, 6, -3, -7, -11, + -12, -14, -18, -22, -23, -22, -24, -30, -37, -41, -44, -50, -56, -64, -67, -65, + -62, -58, -58, -58, -59, -61, -62, -66, -72, -78, -79, -77, -73, -68, -64, -61, + -56, -53, -54, -52, -52, -57, -63, -69, -70, -68, -65, -62, -59, -57, -56, -58, + -60, -61, -63, -64, -62, -61, -60, -58, -54, -49, -45, -42, -39, -36, -32, -28, + -22, -13, -7, -3, 2, 13, 28, 41, 52, 64, 71, 73, 73, 70, 64, 61, + 60, 64, 66, 65, 66, 64, 61, 60, 62, 65, 64, 66, 67, 67, 68, 66, + 64, 66, 68, 73, 76, 74, 72, 66, 58, 52, 46, 42, 38, 38, 41, 47, + 52, 52, 48, 45, 42, 40, 38, 34, 29, 27, 26, 28, 29, 28, 29, 30, + 31, 28, 24, 21, 19, 17, 14, 10, 6, 3, -4, -9, -15, -19, -26, -33, + -40, -49, -55, -60, -65, -70, -73, -72, -72, -71, -70, -71, -75, -78, -81, -83, + -86, -86, -85, -84, -82, -80, -77, -72, -69, -66, -63, -61, -61, -61, -61, -61, + -60, -58, -53, -48, -42, -36, -30, -28, -30, -32, -33, -32, -31, -28, -22, -18, + -10, -5, 0, 3, 6, 11, 16, 19, 22, 24, 26, 27, 29, 34, 40, 46, + 48, 48, 48, 45, 40, 36, 33, 31, 33, 35, 40, 48, 55, 62, 68, 73, + 76, 78, 78, 77, 79, 82, 85, 87, 87, 87, 86, 86, 86, 83, 78, 71, + 63, 55, 48, 44, 39, 36, 36, 36, 35, 32, 28, 24, 18, 13, 9, 6, + 4, 1, -2, -5, -11, -17, -20, -21, -20, -21, -24, -28, -32, -34, -33, -33, + -35, -37, -40, -43, -47, -52, -58, -63, -69, -74, -77, -80, -81, -82, -81, -80, + -77, -74, -69, -62, -54, -48, -48, -51, -54, -57, -57, -57, -56, -55, -55, -56, + -57, -56, -55, -54, -54, -54, -54, -52, -49, -45, -41, -38, -34, -31, -29, -27, + -24, -20, -17, -11, -7, -3, 0, 5, 10, 16, 22, 27, 31, 34, 38, 42, + 44, 45, 48, 50, 52, 57, 61, 64, 64, 65, 65, 63, 60, 57, 55, 55, + 58, 61, 63, 65, 67, 69, 71, 74, 77, 79, 79, 77, 74, 71, 68, 66, + 63, 60, 57, 55, 51, 46, 40, 36, 30, 25, 20, 17, 16, 17, 16, 14, + 12, 10, 7, 3, -1, -5, -11, -15, -17, -18, -18, -19, -21, -25, -29, -32, + -33, -33, -36, -39, -43, -46, -50, -53, -56, -58, -59, -60, -61, -62, -63, -65, + -66, -67, -68, -70, -72, -72, -70, -67, -63, -61, -60, -60, -58, -56, -54, -53, + -52, -52, -52, -51, -50, -49, -47, -45, -43, -40, -37, -35, -34, -32, -29, -25, + -21, -18, -14, -9, -4, 0, 4, 7, 11, 15, 18, 21, 25, 28, 33, 37, + 41, 44, 46, 47, 47, 46, 46, 45, 43, 42, 42, 43, 46, 48, 49, 50, + 52, 55, 59, 62, 65, 66, 67, 68, 69, 69, 70, 72, 74, 74, 73, 72, + 71, 69, 65, 61, 57, 53, 50, 46, 43, 38, 35, 32, 28, 23, 19, 17, + 17, 15, 13, 11, 9, 5, 1, -3, -6, -9, -12, -14, -17, -19, -23, -27, + -31, -35, -38, -40, -43, -46, -48, -52, -55, -57, -61, -64, -66, -67, -68, -69, + -70, -70, -70, -69, -69, -70, -71, -70, -66, -62, -59, -55, -52, -50, -46, -43, + -41, -38, -36, -35, -35, -34, -33, -33, -33, -33, -31, -30, -28, -26, -25, -24, + -21, -20, -20, -19, -19, -18, -17, -16, -15, -13, -11, -8, -3, 2, 9, 15, + 21, 27, 33, 38, 41, 45, 48, 51, 53, 55, 56, 56, 56, 56, 56, 56, + 56, 55, 57, 58, 60, 61, 62, 62, 64, 66, 68, 69, 71, 72, 73, 74, + 72, 70, 67, 63, 60, 57, 54, 50, 46, 41, 36, 31, 27, 23, 19, 16, + 14, 12, 11, 9, 8, 5, 2, -1, -4, -8, -10, -15, -18, -19, -20, -22, + -22, -23, -23, -24, -26, -29, -31, -33, -35, -36, -37, -38, -41, -44, -46, -48, + -50, -52, -54, -56, -59, -61, -63, -63, -64, -65, -64, -63, -62, -61, -60, -59, + -58, -57, -58, -57, -57, -55, -53, -50, -49, -47, -46, -43, -40, -37, -33, -31, + -28, -26, -23, -20, -16, -14, -12, -9, -5, -2, 1, 5, 9, 13, 17, 21, + 24, 26, 29, 32, 35, 37, 37, 38, 39, 41, 43, 44, 45, 46, 48, 50, + 51, 53, 52, 52, 50, 48, 47, 46, 46, 46, 46, 47, 48, 49, 51, 54, + 56, 58, 60, 61, 62, 62, 62, 61, 59, 57, 55, 54, 53, 52, 51, 49, + 46, 41, 36, 31, 27, 22, 18, 14, 11, 9, 6, 3, 0, -2, -5, -8, + -11, -16, -20, -25, -28, -31, -34, -37, -39, -41, -41, -42, -42, -42, -43, -45, + -46, -47, -49, -50, -52, -54, -56, -57, -58, -60, -61, -63, -64, -64, -64, -63, + -63, -61, -59, -58, -57, -55, -54, -53, -52, -52, -51, -50, -49, -47, -46, -45, + -44, -42, -40, -38, -35, -32, -30, -28, -25, -22, -19, -17, -15, -12, -9, -5, + -1, 3, 7, 11, 15, 19, 23, 25, 27, 30, 34, 36, 37, 38, 39, 40, + 42, 44, 45, 46, 47, 49, 50, 52, 53, 52, 51, 49, 47, 47, 46, 46, + 46, 47, 47, 48, 50, 52, 55, 57, 59, 61, 62, 62, 62, 61, 60, 58, + 56, 54, 54, 53, 51, 50, 47, 44, 39, 34, 29, 25, 20, 16, 13, 10, + 7, 4, 2, -1, -3, -6, -9, -14, -18, -22, -26, -30, -33, -35, -38, -40, + -41, -41, -42, -42, -43, -44, -46, -47, -48, -49, -51, -53, -55, -56, -57, -59, + -60, -62, -63, -64, -64, -63, -63, -62, -60, -59, -57, -56, -55, -53, -52, -52, + -51, -51, -50, -48, -46, -45, -44, -43, -41, -39, -36, -34, -31, -29, -26, -24, + -21, -16, -1, -2, -1, -3, 1, -2, -2, -4, 2, 6, 2, -2, -2, 0, + 7, 8, 4, -2, -2, 6, 5, 6, 0, -2, 5, 12, 10, 0, -5, -3, + 5, 10, 9, -7, -8, -7, 5, 8, 3, -9, -13, -5, 3, 5, -5, -9, + -4, 0, 6, 0, -4, -11, -7, 3, 4, 0, -5, 0, -1, 5, 1, 4, + -6, -5, -3, 12, 9, -2, -10, 4, 11, 8, -4, -5, -9, -6, 1, 19, + 13, -2, -22, 4, 9, 6, -26, -4, 3, 12, -9, 0, 2, 0, -15, 4, + 8, -8, -20, 0, 15, 8, -13, -2, -4, -4, -2, 12, 3, -14, -18, 1, + 21, 13, -9, -25, -8, 17, 15, 5, -14, -17, 5, 19, 13, -15, -17, -3, + 10, 20, 10, -27, -19, 5, 11, 12, 3, -13, -17, -1, 6, -3, -2, 1, + -1, -11, -17, 7, 7, -7, -7, -13, 9, 0, -5, 9, -5, -9, 6, 5, + -2, -16, -5, 15, 17, -10, -20, 1, 11, 14, -1, 1, 10, -11, -8, -1, + 18, 13, -2, -12, 1, -16, -2, 34, 27, -28, -42, -3, 42, 26, -14, -39, + -19, 7, 26, 25, -16, -55, -26, 32, 57, 4, -69, -48, 6, 75, 29, -51, + -67, -32, 51, 56, 7, -57, -75, 14, 63, 43, -29, -82, -27, 31, 56, 28, + -43, -81, -31, 59, 85, 1, -100, -59, 8, 102, 41, -42, -92, -52, 72, 79, + 29, -103, -85, -1, 117, 49, -54, -113, 7, 24, 94, -28, -39, -84, 39, 28, + 61, -44, -28, -67, 61, 23, 35, -40, -23, -37, 6, 38, 69, -42, -61, -53, + 58, 86, 2, -93, -24, 19, 72, 17, -19, -87, 45, 10, 64, -13, -45, -57, + 38, 48, 36, -51, -35, -37, 46, 26, 37, -73, -28, -12, 44, 22, 27, -84, + -22, 6, 70, 17, -24, -82, -7, 26, 79, 9, -63, -78, 6, 90, 68, -55, + -118, -3, 92, 62, -10, -73, -50, 14, 110, 15, -5, -118, 5, 69, 53, 22, + -81, -45, 29, 47, 80, -69, -28, -52, 58, 66, -1, -25, -59, -22, 107, 2, + 43, -108, -13, 20, 59, 56, -58, -66, -7, 34, 114, -42, -63, -50, 42, 69, + 44, -63, -37, -50, 114, 27, 18, -49, -81, 20, 74, 51, -14, -102, -4, 40, + 70, 38, -64, -73, 11, 60, 76, -41, -30, -78, 42, 46, 68, -63, -48, -56, + 89, 43, 28, -100, -53, 41, 60, 11, -6, -76, -16, 44, 52, 9, -67, -48, + 10, 69, 30, -1, -84, -4, 36, 72, -23, -22, -27, -33, 55, 74, -11, -86, + -1, 27, 36, 31, -7, -101, 49, 5, 66, -7, -46, -39, 9, 64, 44, -63, + -33, -22, 55, 23, 43, -79, -24, 5, 29, 54, -14, -59, -53, 63, 32, 20, + -34, -32, -36, 93, -2, 20, -35, -38, 18, 51, 61, -94, 15, -14, 17, 69, + 5, -87, 16, 28, 34, 1, 34, -57, -53, 118, -22, 34, -10, -71, 23, 70, + 25, -29, -7, -19, -3, 117, -33, -12, -21, -19, 43, 84, -38, -57, 33, 0, + 32, 41, -7, -103, 85, 2, 2, 58, -14, -103, 103, 7, -17, 34, -32, -59, + 71, 51, -78, 76, -65, -30, 63, 48, -66, 9, -11, -28, 52, 50, -72, -37, + 73, -61, 75, 7, -51, -44, 73, -3, -11, 40, -78, 7, 63, -15, -16, 30, + -53, 12, 38, 12, -42, 39, -63, 47, 23, 0, -23, -11, 8, -25, 60, -37, + -15, -3, -9, 12, 27, -14, -40, 22, 12, 14, 15, -31, -14, 15, 23, -12, + 14, -31, 19, 13, 32, -39, 27, -51, 43, 8, 0, 5, -26, 16, 4, 19, + -24, 17, -18, 6, -2, 49, -67, 39, -1, -30, 46, -13, -16, -9, 21, -17, + 27, 2, -34, 19, -3, 24, 8, -38, 13, -10, 22, 15, -34, 2, 4, -10, + 18, 14, -15, -15, 26, -12, 28, -21, 0, -6, 0, 7, 0, -15, 6, -2, + -18, 9, 8, -18, -15, 59, -94, 81, -40, -24, 14, -18, 25, -15, 4, -21, + -9, 24, -20, 3, 3, -52, 56, -29, 4, 5, -51, 45, -50, 73, -75, 13, + 17, -48, 38, -10, -16, 5, 4, -22, 3, 17, -27, -23, 42, -30, -5, 41, + -53, 10, 23, -28, 1, 29, -47, 9, 13, -3, -18, 9, -13, -11, 18, 12, + -53, 28, 1, -41, 41, 7, -61, 32, 0, -34, 16, 9, -74, 45, -23, -33, + 22, 39, -104, 49, 23, -96, 83, 5, -46, 36, -4, -45, 54, -25, -26, 21, + 2, -39, 51, -25, -25, 43, -22, -25, 30, -2, -32, 39, 14, -69, 42, 22, + -78, 60, 23, -83, 33, 44, -74, 19, 69, -113, 43, 53, -88, 51, 17, -74, + 42, 1, -38, 4, 39, -67, 12, 35, -39, -23, 73, -82, -5, 67, -71, -5, + 42, -36, -48, 78, -64, -4, 40, -48, -7, 50, -80, 17, 31, -56, 9, 6, + -18, -36, 43, -37, -29, 47, -47, -18, 33, -29, -27, 40, -30, -37, 51, -46, + -25, 61, -66, 7, 28, -48, 30, -15, -8, -6, 17, -14, -9, 26, -23, 4, + 9, -15, 12, -9, 16, -22, 7, 22, -51, 59, -29, -23, 54, -49, 6, 20, + -19, -11, 17, -3, -30, 32, -27, -5, 16, -28, 4, 4, -27, 32, -46, 27, + -18, -8, 11, -25, 18, -6, -17, 10, 1, -18, 24, -33, 10, 8, -12, -10, + 21, -19, 0, 8, -18, 14, 11, -44, 39, -22, -4, -6, 11, -15, -13, 17, + -17, -6, 13, -22, -1, 7, -5, -8, 0, 4, -24, 29, -23, 0, 20, -25, + -8, 30, -34, 31, -29, 11, -9, 21, -15, -1, 10, -9, -11, 32, -23, -2, + -14, 27, -19, 10, -4, -23, 14, 13, -45, 48, -44, 11, -4, -7, -3, 4, + -2, -34, -8, 37, -41, 20, -24, -4, -10, 2, 4, 12, -28, -30, 9, 32, + -16, 6, -46, -23, 60, 0, -22, -3, -23, -15, 48, 12, -34, -17, -18, 10, + 46, -1, -56, -8, 12, 9, 18, 13, -72, -3, 26, 9, 28, -14, -89, 15, + 67, -18, 1, -19, -52, 45, 26, -8, -5, -25, -25, 36, 38, -13, -36, -18, + -6, 55, 23, -51, -14, 4, 6, 25, 24, -41, -44, 38, 19, 10, 10, -59, + -14, 42, 1, 6, -8, -43, -1, 43, 10, -30, -10, -36, 18, 35, -20, -14, + -11, -19, 9, 20, -5, -22, -9, -6, 13, 26, -30, -23, 4, 1, 20, 9, + -20, -22, 3, -1, 17, 28, -26, -25, 16, -2, -4, 12, -10, -16, 24, -2, + -18, 17, -27, -1, 36, -6, -7, -4, -26, 6, 29, -3, -17, -6, -4, 18, + 18, -26, -10, -4, 6, 30, -1, -6, -24, 0, 24, 12, 2, -16, -25, 13, + 32, -3, -4, -3, -24, 15, 16, -7, 8, -20, -13, 36, 9, -24, -11, -10, + 10, 20, -1, -13, -10, -9, 20, 17, -12, -9, -15, 9, 20, -11, -14, -6, + 5, 10, 6, 5, -7, -11, 7, 19, 1, 3, -11, -10, 24, 14, -16, 2, + -9, 11, 14, 7, -1, -11, -4, 15, 24, 3, -24, -4, 4, 15, 13, -3, + -15, 0, 15, 8, 2, 0, -19, 16, 12, -1, 7, -13, -2, 18, 3, -3, + 5, -9, -10, 12, 9, -2, 8, -9, 4, 9, 6, 1, -8, 10, 4, -2, + 11, -14, 3, 5, 1, 9, 4, -15, 0, 10, 1, 5, -4, -10, 3, 7, + -1, 8, -13, 1, 4, 10, 6, -9, -3, 1, 6, 14, -3, -4, 4, -10, + 10, 13, -1, -4, 5, -3, 10, 13, -13, 4, 7, 1, 8, -1, 1, 4, + 5, 4, 11, -5, -2, 1, 8, 6, 1, 3, -1, -5, 11, 3, -3, 4, + -5, -1, 17, -4, -2, 6, -10, 10, 10, -4, 2, 3, -10, 10, 5, -2, + -2, -1, 4, 3, -1, -2, -4, 1, 6, -4, 6, -4, -10, 8, 2, -4, + 6, -4, -4, 12, -2, 2, 6, -9, 3, 2, 0, 7, -5, -3, 3, 2, + 4, -4, -2, 7, 3, 5, 9, -3, 1, 12, -3, 7, 6, -9, 4, 9, + -4, 12, 1, -7, 9, 2, 1, 10, -3, 1, 0, 0, 8, 0, -1, 5, + -2, 8, 1, -3, 10, 2, 0, 11, -4, -1, 6, -3, 2, 3, -5, 4, + 0, -5, 5, -3, 1, 3, 0, 4, -3, -3, 4, -2, -2, 5, -2, -1, + 6, -5, 2, 3, -4, 4, -2, -3, 11, -8, 0, 5, -1, 1, 0, -3, + 4, 2, 2, 6, -2, 4, 5, -3, 4, 7, -4, 11, -1, 0, 3, 0, + 3, 7, -2, 5, 1, 0, 6, 3, 2, 4, -1, 2, 6, 0, 3, 5, + -4, 6, 0, 2, 7, -4, -1, 2, -2, 7, 1, -1, 1, -2, 2, 4, + -5, 0, 4, -1, 2, -1, -2, 1, -2, 3, 2, -3, 3, -1, -4, 5, + -2, -2, 3, 0, -1, 2, -5, 2, 1, -4, 0, 1, -3, 5, -2, 2, + 2, -3, 1, 3, -2, 3, 1, -2, 4, 1, 2, 5, -2, 3, 1, 2, + 5, 0, -1, 4, 0, 1, 4, 2, 4, 4, -2, 0, 2, 3, 5, 0, + 0, 0, 1, 5, -2, -3, 4, 0, 1, 2, -2, -4, -4, -5, -6, -7, + -8, -9, -10, -11, -12, -13, -13, -14, -16, -18, -21, -25, -29, -34, -36, -38, + -39, -40, -42, -44, -47, -50, -53, -56, -58, -59, -58, -55, -50, -44, -38, -31, + -24, -18, -13, -9, -6, -3, 0, 3, 6, 9, 13, 17, 21, 27, 33, 42, + 53, 63, 74, 83, 91, 98, 104, 108, 111, 113, 115, 118, 119, 121, 123, 125, + 126, 127, 127, 127, 127, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, + 126, 125, 123, 121, 118, 114, 111, 107, 104, 101, 100, 99, 98, 98, 98, 98, + 98, 99, 98, 98, 97, 95, 92, 88, 81, 73, 63, 54, 46, 39, 33, 29, + 27, 25, 24, 22, 20, 18, 14, 10, 5, 0, -5, -8, -8, -7, -3, 2, + 8, 14, 19, 23, 26, 28, 29, 30, 31, 32, 32, 31, 30, 28, 24, 20, + 14, 9, 4, -1, -4, -7, -9, -10, -12, -13, -15, -17, -19, -22, -24, -25, + -25, -23, -21, -19, -17, -15, -15, -14, -15, -15, -16, -17, -17, -17, -16, -16, + -16, -17, -19, -22, -25, -30, -35, -39, -44, -47, -50, -53, -56, -58, -61, -63, + -64, -65, -65, -63, -60, -55, -49, -43, -38, -34, -32, -31, -31, -32, -33, -35, + -36, -37, -37, -36, -35, -34, -34, -34, -36, -39, -43, -49, -55, -61, -67, -72, + -77, -81, -85, -88, -90, -92, -94, -94, -95, -94, -94, -94, -94, -95, -96, -98, + -100, -102, -104, -105, -107, -108, -108, -109, -110, -110, -110, -109, -109, -109, -108, -108, + -109, -109, -109, -109, -108, -108, -107, -106, -106, -105, -105, -105, -105, -105, -105, -104, + -103, -101, -98, -93, -88, -82, -76, -70, -64, -58, -52, -47, -42, -38, -34, -31, + -29, -27, -25, -22, -18, -13, -7, -1, 6, 13, 20, 26, 32, 37, 41, 45, + 48, 51, 55, 58, 63, 68, 73, 77, 82, 85, 89, 91, 94, 96, 97, 98, + 99, 99, 99, 100, 100, 100, 101, 101, 101, 101, 101, 101, 99, 97, 95, 93, + 90, 87, 84, 81, 77, 73, 67, 60, 51, 40, 29, 17, 6, -5, -14, -23, + -31, -38, -45, -52, -58, -65, -70, -75, -80, -84, -87, -90, -92, -94, -95, -96, + -97, -98, -100, -101, -102, -102, -103, -103, -104, -104, -103, -102, -100, -97, -93, -89, + -86, -82, -79, -77, -75, -72, -70, -67, -63, -59, -53, -47, -40, -33, -26, -20, + -14, -9, -6, -3, 0, 3, 6, 9, 13, 17, 21, 26, 31, 37, 44, 51, + 58, 64, 70, 75, 79, 83, 86, 88, 90, 92, 93, 95, 96, 97, 98, 100, + 100, 101, 102, 102, 102, 102, 102, 102, 102, 102, 102, 103, 103, 103, 102, 102, + 102, 101, 100, 98, 96, 94, 92, 90, 89, 88, 88, 87, 87, 87, 87, 87, + 86, 85, 84, 82, 79, 76, 72, 67, 61, 55, 49, 43, 39, 35, 32, 30, + 29, 27, 25, 24, 21, 18, 15, 12, 8, 5, 3, 3, 4, 6, 9, 12, + 15, 18, 21, 23, 25, 27, 28, 30, 31, 31, 31, 30, 28, 25, 22, 18, + 14, 10, 7, 5, 3, 1, 0, -2, -4, -6, -9, -11, -14, -16, -17, -17, + -16, -14, -12, -11, -9, -9, -9, -10, -11, -12, -13, -14, -15, -15, -16, -16, + -17, -19, -22, -26, -30, -34, -38, -42, -45, -48, -50, -52, -53, -54, -55, -56, + -56, -55, -53, -50, -46, -42, -38, -35, -32, -31, -30, -31, -31, -33, -34, -35, + -36, -36, -36, -35, -35, -35, -36, -38, -41, -45, -49, -54, -59, -64, -68, -73, + -76, -80, -83, -86, -88, -89, -90, -91, -91, -91, -92, -92, -93, -95, -96, -98, + -100, -101, -102, -103, -104, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, + -105, -105, -104, -104, -103, -102, -102, -101, -100, -100, -100, -99, -99, -99, -98, -96, + -94, -91, -86, -82, -76, -71, -65, -59, -53, -48, -42, -37, -32, -28, -25, -22, + -19, -16, -13, -8, -3, 3, 9, 16, 22, 28, 35, 40, 45, 49, 53, 56, + 60, 63, 67, 71, 76, 80, 85, 88, 92, 94, 97, 99, 100, 102, 103, 103, + 104, 104, 104, 104, 105, 105, 105, 105, 105, 104, 103, 101, 99, 97, 94, 91, + 87, 84, 80, 76, 71, 65, 57, 48, 39, 28, 18, 8, -2, -11, -19, -27, + -34, -41, -47, -54, -60, -65, -70, -75, -79, -82, -85, -87, -89, -91, -92, -94, + -95, -96, -97, -98, -99, -100, -100, -100, -100, -100, -98, -96, -94, -90, -87, -84, + -81, -78, -76, -73, -71, -68, -65, -61, -57, -52, -46, -40, -33, -27, -21, -15, + -11, -7, -4, 0, 3, 7, 11, 15, 20, 24, 29, 35, 41, 48, 54, 61, + 67, 72, 77, 81, 85, 88, 90, 92, 94, 95, 97, 98, 99, 101, 102, 103, + 104, 104, 104, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 104, + 104, 103, 101, 99, 98, 96, 95, 93, 93, 92, 92, 91, 91, 90, 90, 88, + 87, 86, 84, 81, 78, 74, 69, 64, 59, 54, 49, 45, 42, 39, 37, 35, + 33, 31, 29, 27, 24, 21, 18, 15, 13, 11, 11, 12, 13, 15, 17, 20, + 22, 24, 25, 27, 28, 29, 30, 31, 31, 31, 30, 28, 26, 23, 20, 17, + 14, 11, 9, 8, 6, 5, 3, 1, -1, -4, -6, -8, -10, -11, -11, -11, + -10, -9, -8, -8, -8, -9, -10, -11, -13, -14, -15, -16, -17, -17, -18, -20, + -22, -25, -28, -31, -35, -38, -41, -44, -46, -47, -49, -50, -51, -52, -52, -52, + -51, -49, -47, -44, -40, -38, -35, -33, -33, -32, -33, -33, -34, -35, -36, -37, + -38, -38, -38, -38, -39, -40, -42, -45, -49, -53, -57, -61, -65, -69, -73, -76, + -79, -82, -85, -87, -88, -89, -90, -91, -91, -92, -93, -94, -95, -97, -98, -99, + -100, -101, -102, -103, -103, -104, -104, -104, -104, -104, -104, -104, -104, -104, -103, -103, + -103, -102, -102, -101, -100, -99, -99, -98, -97, -97, -96, -96, -95, -94, -92, -89, + -86, -82, -77, -72, -67, -61, -56, -50, -45, -39, -34, -29, -25, -21, -18, -14, + -11, -5, 4, 8, 14, 19, 25, 31, 37, 42, 47, 52, 57, 61, 65, 69, + 72, 76, 79, 83, 86, 89, 92, 95, 97, 99, 101, 102, 104, 104, 105, 106, + 106, 106, 106, 106, 106, 105, 104, 104, 103, 101, 99, 97, 95, 92, 89, 85, + 81, 77, 73, 68, 62, 57, 50, 43, 35, 28, 19, 12, 4, -4, -11, -18, + -25, -32, -38, -44, -50, -55, -61, -65, -69, -73, -77, -80, -82, -85, -87, -89, + -91, -92, -93, -95, -95, -96, -97, -97, -97, -96, -96, -95, -93, -92, -90, -88, + -86, -84, -82, -79, -77, -74, -71, -68, -64, -60, -55, -51, -46, -41, -36, -31, + -26, -21, -16, -11, -7, -2, 3, 8, 14, 19, 25, 30, 36, 42, 47, 53, + 58, 63, 68, 72, 76, 79, 82, 85, 87, 89, 91, 93, 95, 96, 98, 99, + 101, 102, 103, 103, 104, 105, 105, 105, 106, 106, 106, 106, 106, 106, 106, 105, + 105, 105, 104, 103, 103, 102, 101, 100, 99, 99, 98, 97, 96, 95, 93, 92, + 91, 89, 87, 85, 82, 79, 76, 73, 70, 67, 63, 60, 58, 55, 53, 50, + 48, 46, 44, 41, 39, 37, 34, 32, 31, 29, 28, 28, 27, 28, 28, 28, + 28, 29, 29, 29, 29, 30, 30, 30, 29, 29, 28, 27, 26, 25, 23, 22, + 20, 19, 17, 16, 15, 13, 12, 10, 8, 6, 4, 2, 1, -1, -2, -4, + -5, -6, -7, -9, -10, -12, -13, -15, -17, -19, -21, -22, -24, -26, -27, -29, + -31, -32, -34, -36, -38, -40, -42, -43, -45, -46, -47, -47, -48, -48, -49, -49, + -48, -48, -47, -46, -45, -44, -44, -43, -43, -43, -44, -44, -45, -46, -47, -48, + -49, -50, -51, -52, -53, -55, -57, -59, -61, -64, -67, -70, -72, -75, -78, -80, + -82, -84, -86, -88, -90, -91, -92, -94, -95, -96, -97, -98, -98, -99, -100, -101, + -101, -101, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -101, -101, -100, -100, + -99, -98, -97, -96, -95, -94, -93, -92, -91, -89, -88, -87, -85, -83, -81, -78, + -75, -71, -67, -63, -58, -54, -49, -44, -39, -33, -28, -23, -18, -13, -8, -3, + 2, 7, 13, 18, 23, 29, 35, 40, 45, 51, 55, 60, 64, 68, 71, 75, + 78, 82, 85, 88, 91, 93, 96, 98, 100, 101, 103, 104, 105, 105, 106, 106, + 106, 106, 105, 105, 104, 104, 103, 101, 100, 98, 95, 93, 90, 86, 83, 79, + 75, 70, 65, 60, 54, 47, 40, 33, 25, 18, 10, 2, -5, -12, -19, -26, + -32, -38, -44, -50, -55, -60, -65, -69, -73, -76, -79, -82, -84, -87, -89, -90, + -92, -93, -94, -95, -96, -96, -96, -96, -96, -95, -94, -93, -91, -90, -88, -86, + -84, -81, -79, -76, -74, -70, -67, -63, -59, -54, -49, -44, -39, -34, -29, -24, + -19, -14, -10, -5, -2, -1, 3, -2, 1, -3, 4, -2, 0, 0, 8, 0, + 10, -9, -7, -128, -72, 13, -44, -13, -18, 4, -4, 12, 3, 31, 4, 66, + 74, 38, 38, 36, 30, 25, 22, 18, 13, 7, 5, 2, 1, -5, -7, -9, + -9, -11, -14, -12, -14, -12, -16, -13, -16, -13, -14, -16, -11, -14, -10, -13, + -11, -13, -8, -8, -6, -6, -5, 0, -6, -3, -3, 3, -4, 6, -13, 17, + -5, -5, 15, -1, -23, 6, 23, 28, 35, 13, 41, -3, 24, 25, -4, 6, + 30, 4, 18, 10, -32, -64, -120, -64, -91, -76, -33, -45, -58, 2, 1, -19, + -14, 18, 48, 50, 59, 51, 53, 47, 46, 41, 37, 35, 26, 28, 19, 21, + 10, 13, 9, 3, 5, -4, 2, -5, -3, -8, -5, -8, -8, -10, -9, -10, + -10, -12, -7, -17, -8, -11, -14, -5, -15, -5, -4, -10, -13, 11, -22, 3, + -3, -4, -5, -11, 13, 2, -16, -9, -5, -12, 27, 15, 17, 21, 20, 20, + 8, 14, 13, 0, 10, 35, 10, -1, -12, -52, -89, -78, -58, -85, -74, -51, + -25, -25, -28, -30, -14, 12, 29, 44, 44, 51, 46, 50, 49, 43, 38, 36, + 32, 29, 23, 19, 17, 14, 10, 6, 6, 2, 4, -8, 3, -7, -3, -6, + -7, -11, -4, -12, -7, -6, -20, 1, -15, -14, -8, -7, -10, -10, -10, 2, + -14, -12, 7, -10, -8, -5, -6, 1, 6, -2, -12, -19, -3, 3, 2, 19, + 19, 14, 19, 24, 13, 5, 12, 12, 13, 21, 29, 5, -18, -43, -48, -64, + -82, -82, -71, -44, -37, -37, -40, -33, -23, 5, 20, 33, 38, 45, 48, 51, + 46, 44, 41, 38, 36, 27, 26, 24, 19, 13, 16, 5, 11, 4, -1, 3, + -4, -3, 1, -9, -7, -2, -9, -6, -13, -4, -6, -17, -8, -6, -15, -10, + -5, -10, -8, -10, -5, -7, -5, -2, -14, -10, 3, 5, -4, -3, -10, -17, + -10, 3, 4, 5, 18, 18, 18, 16, 16, 10, 5, 11, 23, 26, 22, 7, + -9, -16, -37, -62, -80, -76, -65, -46, -43, -43, -51, -41, -24, -4, 11, 24, + 32, 41, 47, 43, 49, 45, 41, 40, 33, 31, 31, 20, 23, 18, 11, 16, + 9, 5, 3, 2, 5, -2, -7, 2, -4, -10, -3, -5, -8, -10, -7, -8, + -14, -10, -8, -11, -9, -6, -14, -10, -2, -3, -12, -10, -7, -9, 0, 6, + -1, -11, -12, -11, -10, -7, 4, 7, 12, 17, 20, 18, 13, 6, 8, 19, + 22, 24, 17, 14, 5, -8, -29, -54, -77, -71, -55, -50, -44, -54, -57, -39, + -32, -15, 3, 15, 31, 34, 39, 47, 45, 44, 44, 37, 37, 33, 28, 27, + 18, 20, 21, 10, 7, 10, 7, 1, 2, 2, 0, -5, 0, -2, -7, -3, + -5, -8, -8, -5, -13, -13, -5, -6, -14, -11, -8, -8, -5, -5, -9, -17, + -10, -2, 0, -2, -1, -9, -12, -14, -12, -6, -1, 3, 11, 19, 19, 14, + 7, 9, 13, 17, 23, 22, 19, 21, 12, 2, -21, -55, -65, -59, -52, -47, + -56, -56, -50, -53, -38, -22, -7, 10, 18, 29, 36, 40, 45, 43, 38, 41, + 40, 32, 27, 26, 26, 19, 17, 17, 12, 9, 9, 6, 2, 4, 4, -1, + -2, 2, -3, -3, 0, -2, -8, -9, -7, -7, -7, -6, -8, -12, -6, -4, + -7, -12, -13, -10, -5, -2, -2, -3, -8, -12, -15, -16, -14, -13, -7, 2, + 8, 11, 8, 4, 5, 8, 13, 20, 22, 23, 24, 23, 19, 6, -13, -23, + -29, -32, -37, -42, -46, -53, -57, -53, -49, -39, -25, -12, -1, 10, 21, 28, + 32, 35, 36, 34, 34, 32, 28, 25, 24, 21, 18, 19, 16, 10, 7, 8, + 9, 8, 6, 5, 2, 3, 6, 7, 5, 2, -2, -4, -3, -1, -3, -4, + -3, -1, -3, -8, -13, -14, -11, -4, -1, -2, -4, -6, -11, -16, -19, -21, + -21, -17, -9, -3, 0, 0, -3, -5, -2, 4, 11, 18, 23, 25, 26, 24, + 17, 10, 5, -1, -7, -12, -20, -29, -37, -44, -51, -55, -54, -47, -39, -28, + -16, -4, 9, 18, 23, 27, 31, 31, 30, 30, 28, 23, 20, 22, 23, 20, + 14, 10, 9, 9, 10, 9, 6, 4, 4, 6, 9, 10, 7, 2, 0, 1, + -1, -2, -2, -1, 1, 2, -2, -10, -14, -11, -8, -5, -2, -1, -3, -6, + -9, -14, -20, -23, -23, -18, -11, -5, -3, -4, -6, -8, -4, 2, 7, 14, + 21, 25, 25, 23, 19, 13, 8, 4, -1, -9, -15, -23, -31, -39, -48, -53, + -51, -48, -44, -34, -20, -8, 3, 12, 20, 24, 27, 30, 31, 29, 24, 22, + 22, 23, 22, 18, 13, 10, 10, 11, 11, 9, 5, 3, 5, 10, 11, 9, + 7, 5, 4, 2, 0, -3, -1, 3, 5, 2, -3, -8, -11, -10, -7, -5, + -3, -2, -2, -4, -7, -14, -20, -24, -24, -19, -12, -6, -6, -8, -8, -8, + -7, -2, 5, 12, 19, 23, 24, 22, 20, 16, 12, 7, 1, -5, -10, -17, + -27, -36, -42, -47, -52, -51, -45, -36, -26, -12, 0, 9, 15, 21, 27, 30, + 29, 26, 23, 22, 23, 23, 21, 17, 12, 9, 10, 12, 10, 6, 3, 4, + 7, 10, 11, 9, 8, 9, 7, 2, -1, 0, 2, 6, 6, 3, -2, -7, + -9, -8, -6, -4, -3, -1, -1, -2, -6, -13, -21, -26, -24, -18, -13, -10, + -9, -10, -11, -11, -10, -5, 3, 10, 17, 21, 22, 22, 21, 19, 14, 8, + 5, 1, -7, -14, -21, -29, -38, -45, -49, -50, -48, -40, -28, -16, -6, 3, + 11, 19, 26, 27, 26, 24, 22, 22, 24, 24, 20, 14, 11, 11, 12, 11, + 8, 4, 3, 6, 8, 9, 9, 10, 11, 10, 6, 2, 0, 2, 5, 8, + 7, 3, -2, -5, -6, -7, -6, -4, -3, -1, 1, 1, -5, -13, -21, -24, + -23, -18, -14, -12, -11, -12, -13, -14, -13, -8, 0, 8, 14, 17, 21, 22, + 21, 18, 15, 12, 8, 2, -3, -9, -16, -24, -32, -40, -47, -51, -49, -41, + -30, -21, -12, -1, 9, 17, 23, 25, 24, 21, 21, 24, 24, 22, 17, 12, + 11, 13, 12, 8, 4, 3, 4, 6, 7, 7, 9, 11, 12, 10, 6, 3, + 3, 6, 9, 10, 8, 5, 1, -2, -3, -3, -2, -1, 1, 3, 3, 1, + -5, -12, -18, -20, -20, -18, -16, -16, -16, -17, -19, -20, -17, -11, -5, 1, + 8, 13, 17, 18, 18, 17, 16, 14, 11, 7, 2, -3, -8, -14, -22, -34, + -43, -46, -42, -35, -28, -20, -11, -2, 7, 15, 19, 19, 19, 19, 20, 20, + 17, 14, 11, 10, 9, 7, 1, -4, -6, -4, 0, 2, 4, 6, 7, 8, + 9, 8, 7, 7, 10, 13, 15, 15, 13, 9, 6, 3, 2, 4, 7, 9, + 11, 11, 7, 1, -5, -10, -13, -14, -14, -14, -16, -19, -23, -26, -28, -27, + -23, -18, -13, -7, -1, 6, 11, 14, 15, 14, 14, 15, 15, 12, 7, 2, + -1, -4, -11, -22, -34, -41, -40, -34, -26, -19, -12, -4, 4, 10, 14, 17, + 17, 18, 19, 18, 15, 12, 10, 9, 8, 6, 0, -6, -11, -10, -6, -1, + 3, 5, 6, 6, 6, 7, 7, 8, 10, 13, 16, 18, 17, 13, 9, 5, + 3, 4, 7, 11, 13, 14, 11, 5, -2, -7, -11, -12, -12, -13, -14, -17, + -22, -26, -28, -29, -27, -22, -17, -11, -5, 1, 7, 12, 14, 14, 13, 14, + 15, 14, 11, 5, 0, -2, -6, -15, -27, -37, -42, -38, -31, -24, -17, -9, + -1, 6, 12, 15, 17, 18, 19, 19, 17, 13, 11, 9, 9, 8, 4, -2, + -8, -11, -9, -4, 1, 4, 5, 6, 6, 6, 7, 7, 9, 11, 14, 17, + 18, 16, 12, 8, 4, 3, 5, 9, 12, 14, 13, 9, 2, -4, -9, -12, + -13, -12, -13, -15, -19, -23, -27, -29, -28, -25, -20, -15, -9, -3, 3, 9, + 13, 15, 14, 13, 15, 15, 13, 9, 3, -1, -3, -9, -19, -31, -40, -41, + -36, -28, -21, -14, -6, 2, 9, 13, 16, 17, 18, 19, 18, 16, 12, 10, + 9, 9, 7, 2, -4, -10, -11, -8, -2, 2, 5, 5, 6, 6, 7, 7, + 8, 9, 12, 16, 18, 17, 14, 10, 6, 4, 4, 6, 10, 13, 14, 12, + 7, 0, -6, -10, -12, -13, -13, -14, -16, -21, -25, -28, -29, -28, -24, -18, + -13, -7, -1, 6, 11, 14, 15, 13, 14, 15, 15, 12, 7, 2, -1, -5, + -12, -23, -35, -41, -40, -34, -26, -19, -12, -3, 4, 10, 14, 17, 18, 18, + 19, 18, 14, 11, 9, 9, 8, 6, 0, -7, -11, -10, -6, 0, 2, -1, + -2, -9, -24, 4, -3, 3, -3, 10, 7, 4, 13, -4, 1, 3, 3, 0, + 2, 8, -9, -9, 2, 1, -1, 7, 17, 21, 37, 25, 13, 14, -2, 15, + 20, 5, 0, -3, -7, -27, -14, -18, -19, -29, -20, -4, -18, -32, -30, -30, + -29, -32, -22, -26, -19, -19, -1, -6, 4, 7, 5, 2, 0, -8, -16, -12, + -13, -17, -17, 19, 20, 24, 16, 8, -4, 8, 0, 13, 28, 33, 16, 11, + 5, -3, -1, 4, 12, 12, 40, 20, 11, 4, 5, 8, -1, 2, 5, 5, + 22, 13, 21, 8, 9, 18, 20, 13, 20, 26, 11, 24, 17, 10, 27, 30, + 22, 28, 30, 41, 47, 57, 36, 36, 20, -16, 4, 6, -19, -21, -41, -39, + -33, -38, -41, -46, -42, -36, -18, -37, -65, -75, -77, -78, -62, -63, -62, -68, + -63, -63, -44, -50, -30, -41, -43, -26, -34, -35, -36, -45, -49, -27, 1, -6, + -4, -7, -20, -16, -20, -21, -13, 2, -6, -1, -12, 0, -1, 15, 19, 20, + 26, 37, 40, 46, 37, 50, 35, 34, 41, 43, 51, 54, 55, 50, 56, 47, + 59, 51, 51, 75, 67, 66, 71, 59, 60, 72, 75, 72, 80, 79, 82, 98, + 99, 87, 93, 62, 49, 58, 41, 42, 28, 5, -6, -6, -18, -24, -23, -30, + -25, -20, -38, -60, -75, -77, -80, -75, -71, -75, -70, -73, -69, -76, -60, -66, + -71, -66, -57, -62, -61, -61, -87, -90, -69, -63, -46, -31, -35, -47, -42, -53, + -63, -53, -45, -33, -36, -39, -37, -43, -39, -34, -30, -19, -9, 2, -9, -1, + -3, 1, -3, 5, 7, 15, 24, 22, 23, 20, 32, 43, 33, 48, 63, 67, + 70, 68, 52, 59, 73, 73, 77, 85, 73, 81, 103, 98, 116, 115, 87, 80, + 76, 72, 69, 60, 37, 27, 29, 12, 19, 4, -12, 1, 3, -3, -31, -42, + -57, -67, -67, -61, -61, -61, -48, -58, -51, -41, -46, -48, -40, -35, -33, -26, + -36, -67, -68, -65, -59, -47, -28, -34, -37, -36, -52, -61, -61, -47, -34, -39, + -39, -42, -42, -48, -36, -38, -37, -20, -19, -16, -16, -18, -20, -22, -26, -22, + -16, -15, 1, -4, -6, 10, 12, 13, 22, 32, 41, 54, 52, 44, 54, 66, + 61, 78, 81, 71, 87, 89, 99, 119, 107, 91, 77, 76, 69, 76, 68, 47, + 49, 35, 33, 37, 22, 14, 24, 37, 26, 13, -10, -26, -41, -43, -34, -40, + -34, -33, -43, -39, -25, -27, -27, -18, -25, -15, -1, -10, -29, -42, -39, -39, + -19, -7, -10, -10, -11, -20, -35, -44, -33, -30, -28, -36, -34, -47, -41, -36, + -46, -42, -34, -27, -29, -25, -34, -30, -32, -40, -36, -36, -31, -16, -25, -25, + -15, -21, -14, -9, -11, 1, 17, 15, 9, 25, 20, 25, 46, 39, 46, 50, + 51, 68, 85, 87, 72, 65, 52, 50, 59, 44, 42, 29, 23, 22, 23, 11, + -5, 8, 14, 19, 8, -6, -23, -38, -43, -42, -48, -41, -34, -42, -38, -19, + -23, -16, -15, -19, -10, 8, 8, -9, -18, -27, -30, -10, -4, 7, 6, 15, + 8, -8, -17, -15, -8, -11, -3, -15, -17, -14, -16, -27, -30, -26, -22, -19, + -21, -22, -19, -30, -27, -26, -36, -22, -9, -13, -10, -10, -8, -9, -6, -12, + -1, 16, 6, 11, 16, 6, 19, 24, 27, 38, 38, 38, 48, 71, 72, 78, + 66, 51, 54, 52, 49, 42, 32, 21, 25, 26, 13, 1, -1, 10, 15, 8, + 1, -22, -38, -47, -56, -58, -46, -43, -46, -33, -25, -17, -11, -9, -19, -9, + 16, 18, 12, 1, -17, -18, -9, 3, 9, 17, 24, 26, 9, -4, -1, -6, + 2, 9, 0, -2, 2, -3, -13, -16, -15, -8, -8, -8, -1, -6, -17, -11, + -22, -24, -16, -12, -9, -9, -9, -9, -6, -8, -16, 2, 6, 2, 13, 9, + 7, 10, 17, 19, 30, 31, 22, 37, 49, 61, 70, 56, 43, 37, 36, 31, + 32, 15, 4, 11, 9, 4, -14, -16, -7, -5, -1, -8, -28, -46, -56, -75, + -74, -67, -70, -67, -62, -55, -47, -36, -32, -42, -28, -9, 1, 4, -4, -17, + -30, -18, -12, -2, 4, 15, 21, 7, 1, -7, -6, -1, 7, 0, 0, 3, + -3, -8, -15, -18, -6, -9, -6, 5, -2, -2, 0, -7, -12, -7, -3, 2, + 7, 3, 4, 14, 2, 1, 12, 11, 17, 20, 19, 16, 19, 20, 24, 39, + 36, 37, 42, 55, 71, 84, 76, 63, 56, 47, 49, 46, 29, 18, 14, 18, + 11, -5, -11, -8, -3, 4, 4, -16, -27, -44, -60, -64, -59, -62, -62, -55, + -55, -47, -28, -32, -35, -29, -15, -3, 4, 3, -15, -25, -24, -13, -11, -3, + 10, 14, 12, 4, -5, -9, -1, 2, -1, 1, 1, -1, -7, -17, -16, -12, + -17, -8, 0, -1, -1, -2, -8, -13, -9, -9, 0, 9, 1, 14, 16, 6, + 7, 10, 12, 18, 26, 20, 22, 22, 16, 25, 32, 36, 34, 36, 43, 60, + 75, 72, 67, 52, 44, 50, 45, 38, 17, 14, 17, 11, -2, -9, -14, -10, + 0, -4, -12, -24, -41, -59, -67, -63, -70, -69, -62, -70, -55, -40, -38, -42, + -38, -29, -16, -3, -3, -9, -29, -31, -25, -26, -20, -7, 0, 2, -1, -14, + -18, -14, -14, -12, -10, -10, -4, -13, -21, -19, -22, -24, -16, -10, -6, -2, + -2, -10, -12, -15, -17, -4, -4, -5, 7, 9, 3, 4, 7, 5, 18, 23, + 22, 28, 25, 22, 27, 34, 39, 43, 38, 41, 62, 71, 79, 78, 62, 55, + 55, 57, 49, 31, 23, 30, 21, 15, 7, -5, 1, 8, 9, 8, -3, -16, + -39, -46, -50, -60, -55, -58, -62, -53, -36, -33, -34, -34, -29, -18, -6, 5, + -2, -17, -23, -22, -24, -17, -8, 1, 9, 10, -4, -7, -8, -9, -6, -9, + -6, 0, -11, -14, -14, -21, -24, -21, -16, -10, 1, -3, -3, -5, -14, -11, + -7, -7, -5, 6, 9, 4, 8, 1, 3, 11, 16, 20, 26, 24, 20, 25, + 29, 36, 41, 32, 40, 51, 64, 77, 78, 67, 55, 54, 57, 53, 33, 27, + 25, 22, 20, 9, -3, -3, 3, 7, 6, 4, -16, -32, -42, -55, -60, -61, + -64, -70, -62, -49, -39, -41, -40, -37, -33, -18, -5, -8, -16, -24, -29, -31, + -28, -24, -15, -1, 1, -7, -11, -14, -13, -14, -18, -11, -8, -14, -16, -16, + -25, -31, -29, -31, -20, -12, -13, -6, -11, -19, -19, -14, -17, -12, -1, 2, + 6, 7, 2, 4, 8, 11, 18, 24, 21, 22, 19, 21, 33, 33, 32, 32, + 40, 55, 71, 76, 72, 58, 55, 62, 56, 42, 34, 28, 29, 26, 17, 4, + 2, 6, 4, 13, 12, -4, -18, -30, -45, -50, -51, -59, -63, -61, -47, -37, + -33, -32, -34, -32, -19, -4, -3, -5, -13, -21, -23, -22, -24, -13, 1, 5, + 5, -3, -6, -1, -7, -9, -2, 1, -2, -2, -4, -13, -16, -22, -22, -15, + -10, -4, 2, -1, -11, -8, -7, -12, -6, 1, 6, 12, 11, 8, 9, 9, + 9, 20, 23, 26, 25, 20, 24, 32, 34, 35, 33, 35, 49, 63, 74, 74, + 58, 55, 60, 54, 45, 33, 27, 25, 26, 19, 6, 4, 1, 1, 9, 12, + -1, -10, -26, -43, -50, -54, -61, -70, -69, -61, -50, -43, -40, -44, -44, -34, + -18, -12, -9, -15, -24, -25, -28, -31, -22, -12, -2, 1, -8, -8, -5, -12, + -14, -8, -8, -8, -5, -9, -11, -18, -27, -26, -22, -19, -12, -1, -4, -9, + -8, -11, -14, -12, -8, 0, 7, 5, 5, 6, 0, 3, 8, 13, 20, 18, + 13, 15, 22, 27, 29, 25, 26, 36, 51, 70, 71, 59, 56, 57, 55, 47, + 37, 25, 24, 27, 17, 9, 3, -2, -2, 8, 9, 6, -2, -16, -34, -44, + -47, -54, -63, -66, -63, -55, -44, -39, -42, -44, -35, -23, -11, -4, -10, -16, + -17, -23, -25, -22, -13, 1, 6, 1, 1, 4, -2, -4, 1, -1, 4, 3, + 2, 2, -3, -12, -15, -14, -15, -7, 3, 5, 3, 2, 1, -2, -4, -4, + 3, 9, 10, 13, 11, 9, 8, 9, 15, 22, 22, 20, 19, 21, 27, 30, + 28, 28, 28, 42, 61, 69, 65, 60, 60, 58, 55, 47, 35, 30, 30, 24, + 18, 10, 0, -1, 2, 6, 7, 3, -8, -24, -36, -43, -50, -59, -65, -66, + -62, -52, -43, -43, -44, -41, -35, -21, -12, -12, -13, -17, -23, -26, -30, -24, + -12, -4, -5, -3, -2, -5, -6, -6, -5, -3, -2, -1, 2, 2, -5, -3, + 2, 8, 17, 26, 32, 42, 50, 56, 68, 73, 64, 63, 65, 48, 56, 71, + 48, 49, 50, 26, 30, 30, 16, 25, 21, -2, 0, -13, -15, -2, -19, -17, + -16, -50, -49, -49, -81, -85, -88, -108, -112, -116, -127, -126, -113, -113, -106, -79, + -65, -48, -17, 5, 20, 41, 58, 63, 69, 59, 28, 17, 0, -32, -41, -52, + -69, -63, -61, -59, -41, -26, -19, 6, 28, 33, 52, 67, 70, 81, 87, 84, + 90, 93, 84, 72, 69, 60, 45, 56, 57, 40, 46, 39, 25, 29, 25, 16, + 21, 12, -1, -3, -11, -8, -5, -16, -12, -21, -41, -38, -48, -68, -70, -77, + -91, -93, -98, -106, -103, -93, -92, -82, -60, -47, -30, -4, 13, 27, 44, 56, + 60, 62, 47, 23, 13, -8, -32, -40, -54, -64, -59, -59, -53, -36, -26, -14, + 12, 27, 36, 56, 66, 72, 84, 86, 86, 93, 92, 82, 73, 70, 57, 49, + 59, 52, 43, 47, 37, 29, 30, 24, 18, 18, 7, -2, -6, -11, -7, -10, + -16, -14, -29, -42, -42, -57, -71, -73, -83, -93, -96, -102, -107, -101, -93, -90, + -75, -55, -41, -22, 3, 19, 33, 50, 59, 61, 60, 41, 21, 10, -14, -33, + -43, -57, -63, -60, -61, -51, -36, -27, -9, 15, 26, 40, 59, 66, 74, 85, + 85, 88, 94, 90, 80, 75, 69, 56, 54, 60, 50, 47, 46, 36, 31, 30, + 23, 19, 15, 4, -3, -7, -10, -9, -14, -17, -19, -35, -44, -47, -63, -73, + -77, -88, -96, -98, -104, -107, -99, -92, -86, -69, -50, -35, -14, 9, 24, 38, + 54, 60, 61, 56, 36, 19, 4, -20, -35, -46, -60, -62, -61, -60, -48, -35, + -25, -3, 17, 27, 45, 60, 66, 77, 85, 86, 91, 94, 88, 80, 75, 67, + 56, 58, 59, 50, 49, 45, 36, 33, 30, 23, 19, 13, 2, -5, -8, -10, + -11, -16, -18, -25, -40, -45, -53, -68, -76, -81, -91, -97, -100, -106, -106, -97, + -90, -81, -63, -44, -28, -6, 15, 28, 44, 57, 61, 61, 52, 31, 16, -1, + -24, -37, -50, -61, -62, -62, -59, -46, -35, -22, 1, 18, 30, 48, 61, 68, + 79, 85, 87, 92, 93, 86, 80, 75, 66, 58, 60, 58, 51, 50, 44, 37, + 33, 29, 23, 17, 10, 0, -6, -9, -10, -14, -18, -21, -31, -43, -48, -59, + -72, -78, -85, -94, -99, -102, -107, -104, -95, -88, -76, -56, -39, -22, 2, 20, + 33, 49, 59, 61, 60, 47, 27, 12, -7, -27, -40, -53, -62, -62, -63, -57, + -44, -34, -18, 5, 19, 33, 51, 61, 70, 81, 85, 88, 94, 92, 85, 80, + 74, 65, 60, 62, 57, 52, 50, 43, 37, 33, 28, 22, 15, 8, -2, -7, + -10, -12, -16, -20, -24, -36, -46, -52, -64, -75, -81, -89, -97, -100, -104, -107, + -102, -93, -85, -70, -50, -33, -14, 8, 25, 38, 53, 61, 61, 58, 42, 24, + 8, -12, -30, -43, -56, -62, -63, -63, -54, -43, -32, -13, 7, 20, 37, 53, + 62, 72, 82, 85, 89, 94, 90, 84, 80, 73, 64, 62, 62, 56, 53, 49, + 43, 37, 33, 27, 20, 14, 5, -3, -8, -11, -13, -18, -22, -28, -40, -49, + -57, -69, -78, -84, -92, -99, -102, -105, -106, -99, -90, -81, -64, -44, -27, -7, + 14, 29, 43, 56, 61, 61, 54, 37, 20, 4, -17, -33, -46, -58, -62, -64, + -62, -52, -42, -29, -9, 9, 23, 40, 55, 64, 74, 83, 86, 91, 93, 89, + 84, 80, 72, 65, 64, 62, 56, 53, 49, 42, 37, 33, 26, 19, 12, 3, + -5, -8, -12, -16, -20, -24, -33, -44, -52, -61, -73, -80, -87, -95, -100, -103, + -106, -104, -96, -88, -76, -57, -38, -21, 0, 20, 33, 47, 59, 62, 60, 51, + 33, 17, -1, -21, -36, -49, -59, -63, -64, -61, -51, -40, -25, -5, 11, 26, + 43, 56, 65, 76, 83, 87, 92, 93, 88, 84, 79, 71, 65, 65, 61, 56, + 53, 48, 42, 37, 32, 25, 17, 10, 1, -6, -10, -13, -18, -22, -27, -37, + -48, -55, -65, -76, -83, -90, -97, -101, -104, -106, -102, -94, -84, -71, -51, -33, + -15, 7, 24, 38, 51, 60, 62, 59, 46, 29, 13, -6, -25, -39, -52, -60, + -63, -64, -59, -49, -38, -21, -1, 14, 29, 46, 57, 67, 78, 84, 88, 92, + 92, 87, 83, 78, 70, 66, 65, 61, 57, 53, 48, 42, 37, 31, 23, 15, + 7, -1, -7, -11, -15, -20, -24, -31, -41, -51, -59, -69, -79, -85, -93, -99, + -102, -105, -106, -100, -91, -80, -65, -45, -27, -8, 13, 29, 42, 55, 61, 61, + 56, 42, 25, 8, -11, -28, -42, -54, -61, -64, -64, -57, -47, -35, -17, 1, + 16, 33, 48, 59, 69, 79, 84, 89, 93, 91, 87, 83, 77, 70, 67, 65, + 60, 57, 53, 47, 41, 36, 29, 21, 14, 5, -3, -8, -12, -17, -22, -27, + -35, -45, -54, -63, -73, -81, -88, -95, -100, -103, -105, -104, -97, -88, -76, -58, + -39, -21, -1, 18, 33, 46, 58, 62, 61, 53, 38, 21, 4, -15, -31, -45, + -56, -62, -65, -64, -56, -46, -32, -13, 4, 19, 36, 50, 61, 71, 80, 85, + 90, 92, 90, 86, 82, 76, 70, 68, 65, 60, 57, 52, 46, 41, 35, 27, + 19, 12, 3, -5, -9, -14, -19, -24, -29, -38, -48, -57, -66, -76, -84, -91, + -97, -101, -104, -105, -102, -94, -84, -71, -52, -33, -15, 5, 23, 37, 50, 60, + 62, 60, 50, 34, 17, -1, -19, -35, -48, -58, -63, -65, -62, -54, -43, -28, + -10, 7, 22, 39, 52, 62, 73, 81, 86, 91, 92, 89, 86, 82, 75, 70, + 68, 64, 60, 57, 52, 46, 40, 34, 26, 17, 9, 1, -6, -11, -15, -21, + -26, -32, -42, -52, -60, -70, -79, -86, -93, -99, -102, -104, -105, -100, -91, -80, + -65, -46, -27, -9, 11, 28, 42, 54, 61, 62, 58, 46, 30, 13, -6, -23, + -38, -51, -60, -64, -65, -61, -52, -41, -25, -6, 9, 26, 42, 54, 64, 75, + 82, 87, 91, 91, 89, 85, 81, 74, 71, 68, 64, 60, 56, 51, 45, 39, + 32, 24, 16, 7, -1, -7, -12, -17, -23, -28, -36, -45, -55, -64, -73, -82, + -88, -95, -100, -103, -105, -104, -97, -88, -76, -59, -40, -22, -2, 17, 32, 45, + 57, 62, 62, 56, 42, 26, 9, -10, -27, -41, -53, -61, -65, -65, -60, -50, + -38, -21, -3, 12, 29, 44, 55, 66, 76, 82, 88, 91, 91, 88, 85, 80, + 74, 71, 68, 63, 60, 56, 50, 44, 38, 30, 22, 14, 5, -3, -9, -14, + -19, -25, -31, -39, -49, -58, -67, -77, -84, -91, -97, -101, -103, -105, -102, -95, + -84, -71, -53, -34, -16, 4, 22, 37, 49, 59, 63, 61, 53, 38, 22, 4, + -14, -30, -44, -56, -62, -66, -65, -58, -48, -35, -17, -1, 15, 32, 46, 57, + 68, 77, 83, 88, 91, 90, 88, 84, 79, 74, 71, 67, 63, 60, 55, 49, + 43, 37, 28, 20, 12, 3, -5, -10, -15, -21, -27, -33, -43, -52, -61, -70, + -79, -86, -93, -98, -102, -104, -104, -100, -92, -81, -66, -47, -28, -10, 10, 27, + 40, 53, 61, 63, 59, 49, 34, 18, -1, -18, -34, -47, -58, -63, -66, -64, + -56, -46, -31, -14, 2, 18, 35, 48, 59, 70, 78, 84, 89, 91, 90, 87, + 83, 78, 74, 71, 67, 63, 59, 54, 49, 42, 35, 27, 18, 9, 1, -6, + -12, -17, -23, -29, -36, -46, -55, -64, -73, -82, -89, -95, -100, -102, -104, -103, + -97, -88, -76, -60, -41, -23, -4, 15, 31, 44, 55, 62, 62, 57, 46, 30, + 13, -5, -22, -37, -50, -59, -64, -66, -62, -55, -43, -28, -11, 5, 22, 37, + 50, 61, 71, 79, 85, 89, 91, 89, 87, 82, 77, 73, 70, 66, 63, 59, + 53, 47, 41, 33, 24, 16, 7, -1, -8, -14, -19, -25, -32, -40, -49, -58, + -67, -76, -84, -91, -96, -101, -103, -104, -102, -95, -85, -72, -55, -37, -18, 1, + 19, 34, 47, 57, 62, 62, 56, 43, 28, 10, -8, -25, -39, -52, -60, -65, + -66, -62, -53, -42, -25, -9, 8, 24, 39, 51, 62, 72, 80, 86, 90, 90, + 89, 86, 82, 77, 73, 70, 66, 62, 58, 53, 47, 40, 33, 24, 15, 6, + -2, -8, -14, -19, -25, -32, -40, -49, -58, -67, -72, -103, -18, -76, 0, 0, + 0, 0, 1, 2, 3, 5, 6, 0, -7, -8, -15, -9, 10, 8, 17, 33, + 14, 5, 38, 44, 31, 63, 70, 51, 73, 82, 68, 85, 100, 96, 97, 103, + 115, 114, 112, 127, 122, 110, 116, 113, 109, 120, 120, 118, 113, 91, 93, 109, + 97, 98, 115, 110, 109, 120, 112, 94, 75, 63, 69, 72, 64, 64, 59, 45, + 39, 36, 35, 42, 42, 24, 5, 2, 3, 4, 7, 9, 11, 14, 17, 19, + 14, -3, -20, -26, -30, -26, -24, -31, -32, -34, -40, -39, -33, -34, -45, -56, + -60, -66, -64, -55, -60, -62, -56, -59, -58, -50, -56, -70, -73, -76, -86, -77, + -70, -80, -76, -71, -77, -71, -66, -76, -85, -82, -90, -95, -80, -82, -92, -85, + -86, -94, -85, -79, -86, -92, -90, -94, -101, -92, -85, -90, -84, -77, -78, -74, + -73, -85, -86, -85, -95, -85, -77, -90, -88, -83, -94, -93, -83, -81, -81, -86, + -89, -89, -94, -88, -77, -77, -71, -59, -58, -59, -63, -72, -74, -77, -73, -61, + -67, -72, -67, -73, -80, -74, -68, -60, -56, -65, -70, -67, -72, -66, -52, -49, + -40, -27, -27, -32, -39, -47, -50, -42, -30, -31, -34, -32, -38, -46, -46, -43, + -35, -20, -16, -24, -30, -30, -31, -24, -13, -6, 4, 13, 11, 3, -5, -9, + -2, 12, 15, 15, 16, 9, 3, -2, -5, -1, 12, 24, 30, 29, 20, 17, + 22, 25, 30, 41, 47, 49, 46, 37, 32, 41, 52, 54, 60, 61, 52, 48, + 45, 36, 35, 43, 51, 60, 67, 69, 60, 57, 63, 63, 64, 73, 75, 72, + 69, 63, 67, 78, 78, 82, 89, 80, 73, 76, 67, 60, 64, 67, 73, 79, + 83, 88, 82, 75, 80, 81, 77, 83, 83, 76, 74, 77, 83, 85, 86, 94, + 89, 80, 82, 78, 69, 68, 68, 69, 78, 80, 81, 90, 83, 73, 79, 77, + 70, 73, 70, 62, 65, 73, 75, 76, 84, 82, 70, 71, 69, 59, 57, 54, + 48, 53, 63, 64, 68, 76, 66, 57, 58, 51, 42, 40, 33, 28, 37, 46, + 49, 55, 56, 42, 37, 37, 27, 22, 20, 10, 4, 8, 15, 24, 30, 31, + 24, 14, 8, -3, -14, -21, -26, -26, -15, -4, -1, -4, -13, -21, -26, -34, + -39, -42, -50, -57, -63, -66, -60, -47, -43, -48, -51, -57, -66, -75, -82, -88, + -91, -88, -78, -74, -81, -86, -85, -92, -101, -100, -102, -109, -109, -110, -112, -113, + -115, -109, -106, -113, -113, -107, -110, -110, -106, -108, -112, -109, -110, -114, -111, -98, + -95, -98, -93, -93, -98, -94, -89, -81, -69, -65, -71, -73, -73, -77, -73, -62, + -56, -48, -40, -41, -45, -47, -47, -37, -20, -11, -4, 5, 4, 3, 6, 9, + 16, 30, 39, 47, 51, 44, 40, 45, 47, 50, 59, 64, 66, 68, 65, 65, + 75, 80, 78, 87, 95, 91, 93, 98, 96, 98, 104, 100, 96, 99, 104, 101, + 100, 106, 107, 105, 108, 109, 109, 110, 111, 110, 101, 87, 82, 84, 81, 82, + 88, 89, 90, 91, 85, 71, 57, 49, 48, 51, 52, 55, 59, 58, 58, 60, + 61, 61, 57, 42, 24, 14, 7, 5, 9, 11, 15, 20, 21, 19, 11, -3, + -18, -27, -33, -31, -25, -24, -21, -16, -16, -14, -11, -17, -29, -40, -49, -59, + -61, -55, -54, -52, -45, -42, -41, -41, -48, -59, -65, -72, -81, -79, -72, -73, + -69, -62, -61, -59, -60, -69, -76, -79, -87, -92, -84, -81, -82, -76, -72, -71, + -67, -66, -72, -79, -81, -87, -94, -92, -87, -86, -82, -76, -75, -75, -78, -85, + -87, -91, -96, -91, -82, -83, -80, -74, -74, -71, -64, -64, -68, -73, -77, -81, + -87, -88, -82, -79, -76, -70, -69, -72, -76, -80, -84, -87, -82, -71, -67, -64, + -58, -57, -55, -49, -43, -39, -40, -47, -54, -58, -64, -66, -61, -58, -54, -49, + -50, -55, -59, -63, -65, -58, -45, -38, -32, -25, -24, -23, -18, -13, -5, 3, + 4, -2, -11, -17, -23, -26, -23, -20, -18, -15, -18, -24, -28, -28, -21, -7, + 3, 11, 18, 20, 19, 22, 24, 30, 40, 47, 51, 49, 40, 32, 28, 24, + 23, 25, 25, 23, 20, 15, 15, 23, 34, 43, 51, 59, 59, 58, 59, 58, + 60, 67, 73, 78, 84, 85, 78, 71, 68, 63, 60, 60, 57, 53, 50, 50, + 56, 65, 70, 76, 84, 84, 81, 81, 79, 76, 79, 84, 87, 91, 96, 98, + 94, 88, 85, 81, 76, 73, 70, 66, 66, 70, 76, 80, 84, 91, 92, 87, + 86, 83, 78, 76, 78, 81, 85, 88, 91, 96, 93, 86, 83, 78, 71, 68, + 64, 61, 64, 71, 74, 78, 84, 86, 80, 76, 72, 64, 59, 56, 55, 59, + 66, 69, 74, 79, 76, 69, 64, 57, 48, 43, 39, 39, 45, 52, 56, 62, + 63, 55, 47, 41, 31, 21, 15, 8, 5, 9, 16, 24, 31, 35, 33, 26, + 19, 10, 0, -6, -9, -7, -7, -13, -17, -22, -26, -31, -34, -37, -40, -42, + -44, -46, -48, -50, -51, -54, -56, -58, -61, -64, -67, -70, -74, -78, -82, -86, + -90, -93, -97, -99, -102, -104, -106, -108, -109, -110, -111, -112, -113, -113, -114, -114, + -115, -115, -115, -115, -115, -114, -113, -111, -109, -107, -104, -100, -97, -93, -90, -87, + -84, -82, -80, -78, -76, -74, -73, -71, -69, -67, -65, -61, -58, -53, -48, -42, + -35, -28, -21, -13, -6, 1, 8, 15, 21, 26, 31, 35, 38, 41, 44, 46, + 48, 50, 52, 55, 58, 61, 64, 68, 72, 76, 80, 83, 87, 90, 92, 94, + 96, 98, 99, 100, 101, 102, 102, 103, 103, 103, 103, 104, 103, 103, 103, 102, + 101, 99, 97, 94, 92, 88, 85, 81, 78, 74, 71, 67, 64, 61, 58, 55, + 53, 51, 49, 47, 46, 44, 42, 40, 37, 34, 30, 26, 22, 17, 12, 8, + 3, -1, -5, -9, -13, -16, -20, -23, -26, -29, -31, -33, -35, -37, -38, -40, + -42, -44, -46, -48, -51, -54, -56, -59, -61, -64, -65, -67, -69, -70, -72, -74, + -75, -77, -78, -80, -81, -82, -83, -84, -85, -86, -86, -87, -88, -89, -90, -90, + -91, -92, -92, -92, -92, -92, -92, -91, -91, -92, -92, -92, -93, -93, -94, -94, + -94, -95, -95, -95, -95, -95, -95, -95, -95, -95, -94, -93, -92, -91, -90, -89, + -87, -86, -85, -85, -85, -84, -84, -85, -85, -85, -85, -85, -85, -85, -85, -85, + -84, -83, -82, -81, -79, -77, -75, -73, -70, -68, -65, -63, -62, -60, -59, -59, + -59, -59, -59, -59, -59, -60, -59, -59, -59, -58, -57, -55, -53, -50, -47, -44, + -40, -36, -32, -29, -25, -22, -20, -18, -17, -16, -15, -15, -16, -16, -16, -16, + -16, -16, -15, -13, -11, -9, -6, -2, 2, 6, 10, 15, 19, 22, 26, 29, + 31, 33, 35, 36, 36, 36, 36, 35, 35, 35, 35, 35, 36, 38, 40, 42, + 45, 48, 52, 55, 58, 61, 64, 67, 70, 72, 73, 74, 75, 76, 76, 76, + 75, 75, 74, 74, 74, 74, 74, 75, 77, 78, 80, 82, 83, 85, 87, 89, + 90, 91, 92, 93, 94, 94, 94, 94, 94, 93, 93, 92, 91, 91, 90, 90, + 90, 90, 91, 91, 92, 92, 93, 93, 94, 94, 94, 94, 94, 94, 94, 94, + 93, 93, 92, 92, 91, 90, 89, 88, 87, 87, 86, 86, 85, 85, 85, 84, + 84, 83, 83, 82, 81, 80, 79, 78, 77, 77, 76, 75, 74, 72, 71, 70, + 68, 67, 65, 64, 63, 61, 60, 58, 57, 55, 53, 50, 48, 45, 43, 40, + 38, 36, 34, 32, 30, 29, 27, 25, 23, 21, 19, 17, 14, 12, 9, 6, + 3, 0, -4, -8, -12, -17, -21, -25, -29, -33, -36, -39, -42, -45, -47, -49, + -51, -53, -55, -58, -60, -63, -65, -68, -71, -74, -77, -81, -84, -87, -91, -94, + -97, -99, -102, -104, -105, -107, -108, -109, -110, -111, -111, -112, -112, -113, -113, -113, + -113, -113, -113, -112, -111, -109, -107, -105, -102, -99, -96, -93, -90, -87, -84, -82, + -79, -77, -75, -73, -70, -69, -66, -64, -60, -58, -53, -49, -44, -39, -32, -27, + -19, -14, -8, -3, 3, 11, 22, 10, 8, 1, 1, 1, 1, 1, 2, 2, + 2, 2, 3, 3, 3, 3, 4, 4, 5, 5, 6, 5, 6, 6, 6, 6, + 6, 6, 7, 5, 7, 5, 6, 4, 6, 4, 4, 4, 4, 3, 3, 2, + 3, 1, 3, -2, 2, 0, 0, 0, 0, -2, -1, -2, -3, -3, 0, -5, + -1, -2, -2, -2, -1, 0, -3, -1, -1, 0, 1, -1, 0, -1, 0, 0, + 1, 0, 0, 1, -1, 1, -1, 1, -2, -1, -3, 0, -2, -1, -2, -2, + -2, -3, -2, -3, -4, -5, -6, -5, -9, -8, -9, -9, -9, -11, -10, -13, + -14, -14, -15, -16, -15, -17, -19, -19, -21, -18, -21, -20, -22, -20, -24, -21, + -22, -19, -20, -21, -17, -19, -16, -17, -15, -17, -13, -11, -10, -7, -5, -3, + 2, 6, 4, 8, 9, 18, 14, 31, 25, 24, 25, 24, 21, 13, 15, 15, + 11, 9, 1, 4, -20, -18, -38, -44, -57, -57, -55, -55, -52, -55, -46, -47, + -40, -32, -26, -19, -16, -2, 3, 13, 19, 28, 30, 37, 40, 44, 39, 38, + 35, 34, 37, 41, 48, 51, 53, 58, 61, 70, 74, 76, 76, 80, 81, 86, + 83, 83, 78, 78, 73, 69, 65, 55, 47, 40, 36, 29, 23, 16, 14, 8, + -2, -4, -11, -11, -19, -22, -26, -25, -34, -39, -40, -41, -45, -49, -51, -57, + -56, -58, -59, -66, -70, -70, -72, -65, -64, -59, -53, -49, -45, -34, -29, -21, + -15, -10, -6, -6, -3, -4, 2, 3, 3, 3, -1, -3, -11, -11, -13, -16, + -22, -24, -27, -32, -34, -37, -35, -31, -30, -26, -25, -22, -21, -15, -13, -15, + -10, -12, -12, -7, 2, 15, 22, 27, 24, 28, 22, 22, 21, 22, 17, 13, + 14, 9, 5, 2, -8, -12, -16, -14, -17, -17, -17, -17, -14, -8, -3, -3, + 0, 5, 3, 5, 6, 3, -2, -6, -9, -11, -13, -18, -19, -29, -42, -61, + -72, -79, -81, -83, -82, -79, -76, -65, -54, -42, -33, -24, -14, 0, 18, 33, + 48, 62, 75, 87, 93, 99, 100, 102, 102, 104, 102, 100, 100, 96, 93, 95, + 96, 105, 109, 112, 111, 110, 106, 106, 104, 102, 97, 93, 85, 80, 71, 60, + 48, 36, 26, 12, 0, -5, -13, -21, -28, -31, -36, -42, -49, -53, -56, -59, + -61, -63, -64, -64, -63, -67, -70, -77, -75, -77, -78, -79, -80, -81, -80, -75, + -69, -64, -57, -50, -43, -35, -26, -16, -6, 6, 13, 17, 22, 26, 25, 27, + 27, 26, 23, 19, 11, 5, -5, -12, -19, -24, -31, -37, -42, -45, -50, -49, + -48, -47, -43, -41, -38, -38, -37, -35, -35, -37, -42, -40, -33, -27, -20, -12, + -11, -13, -10, -9, -10, -10, -10, -13, -11, -9, -8, -11, -13, -16, -18, -17, + -15, -15, -14, -12, -8, -3, 3, 8, 16, 22, 25, 31, 34, 36, 36, 34, + 31, 25, 23, 24, 26, 23, 13, -1, -16, -29, -38, -45, -51, -56, -57, -54, + -48, -39, -34, -29, -20, -10, 0, 13, 27, 39, 54, 68, 79, 87, 92, 94, + 96, 94, 92, 89, 87, 82, 76, 72, 71, 74, 76, 81, 83, 83, 84, 84, + 85, 85, 82, 81, 82, 80, 75, 71, 66, 57, 46, 34, 24, 15, 5, -2, + -8, -13, -19, -26, -31, -37, -41, -44, -48, -53, -54, -53, -54, -54, -57, -61, + -64, -67, -70, -72, -75, -77, -79, -79, -76, -73, -70, -63, -58, -53, -47, -38, + -29, -21, -13, -6, 0, 4, 7, 7, 8, 8, 6, 5, -1, -8, -15, -22, + -30, -36, -41, -47, -51, -54, -56, -58, -59, -56, -50, -45, -42, -37, -31, -26, + -23, -23, -23, -24, -21, -14, -6, 2, 8, 12, 15, 18, 21, 20, 20, 20, + 20, 21, 23, 22, 18, 13, 10, 8, 6, 5, 4, 3, 2, 2, 4, 7, + 10, 13, 18, 22, 24, 26, 28, 27, 21, 14, 8, 5, 4, 2, -3, -12, + -24, -37, -50, -59, -67, -76, -80, -79, -75, -69, -61, -55, -47, -38, -27, -15, + -2, 11, 27, 43, 58, 71, 82, 90, 94, 96, 98, 98, 98, 95, 89, 84, + 81, 79, 81, 85, 88, 89, 91, 92, 92, 90, 89, 89, 88, 85, 82, 79, + 75, 67, 58, 48, 37, 25, 14, 4, -4, -10, -17, -24, -31, -37, -42, -47, + -51, -56, -59, -59, -59, -59, -61, -63, -65, -67, -70, -72, -74, -76, -78, -78, + -78, -75, -70, -66, -61, -56, -50, -41, -33, -23, -14, -6, 2, 10, 16, 19, + 21, 23, 24, 24, 22, 19, 13, 7, 0, -6, -14, -20, -25, -27, -32, -37, + -39, -39, -38, -36, -33, -30, -27, -22, -19, -19, -20, -23, -24, -22, -18, -13, + -8, -4, 0, 2, 5, 6, 5, 3, 2, 4, 6, 6, 5, 1, -2, -6, + -8, -9, -10, -11, -13, -12, -12, -11, -9, -4, 0, 4, 8, 13, 18, 20, + 19, 14, 10, 6, 4, 4, 4, 0, -8, -17, -28, -38, -49, -60, -68, -72, + -72, -70, -65, -59, -54, -46, -37, -27, -17, -5, 8, 22, 37, 51, 66, 77, + 84, 88, 91, 93, 94, 94, 91, 85, 79, 75, 74, 76, 77, 80, 83, 85, + 85, 85, 86, 86, 85, 85, 85, 83, 81, 77, 70, 64, 55, 44, 32, 22, + 13, 6, -1, -9, -16, -22, -27, -32, -38, -43, -46, -47, -47, -47, -48, -49, + -49, -50, -52, -54, -56, -59, -62, -64, -66, -65, -64, -61, -59, -56, -53, -48, + -41, -33, -25, -17, -10, -2, 4, 9, 13, 15, 16, 17, 17, 15, 11, 7, + 1, -7, -15, -22, -27, -33, -38, -43, -47, -49, -50, -50, -49, -46, -42, -37, + -31, -28, -28, -29, -30, -29, -26, -22, -17, -13, -8, -3, 2, 6, 7, 6, + 5, 6, 8, 10, 12, 11, 8, 5, 3, 1, -1, -2, -3, -4, -6, -7, + -6, -3, 0, 1, 5, 10, 16, 20, 21, 19, 15, 10, 8, 6, 6, 4, + 0, -5, -12, -22, -33, -45, -57, -65, -70, -72, -70, -68, -64, -58, -51, -44, + -36, -24, -13, -2, 11, 27, 43, 58, 70, 78, 83, 88, 92, 96, 97, 93, + 89, 85, 81, 80, 81, 83, 86, 88, 90, 91, 91, 91, 91, 91, 91, 91, + 89, 86, 83, 79, 72, 63, 52, 41, 30, 21, 13, 4, -5, -11, -17, -23, + -31, -38, -44, -47, -49, -50, -52, -54, -55, -57, -57, -58, -60, -63, -66, -69, + -72, -74, -73, -72, -70, -69, -67, -64, -59, -53, -45, -37, -30, -22, -14, -7, + -2, 3, 8, 10, 12, 12, 13, 12, 8, 3, -4, -10, -16, -21, -27, -33, + -37, -41, -44, -46, -48, -48, -45, -48, -43, -37, -33, -31, -32, -33, -32, -29, + -26, -22, -18, -12, -5, 1, 6, 9, 9, 9, 9, 11, 14, 16, 16, 14, + 12, 8, 5, 3, 2, 1, -1, -3, -4, -4, -2, -1, 2, 5, 11, 18, + 24, 27, 27, 24, 20, 17, 15, 13, 11, 9, 5, -1, -10, -22, -35, -49, + -61, -70, -75, -77, -76, -73, -69, -63, -56, -47, -36, -25, -13, 0, 16, 34, + 52, 67, 79, 88, 95, 101, 106, 109, 108, 105, 100, 95, 92, 90, 91, 93, + 96, 99, 100, 101, 101, 101, 101, 101, 101, 100, 97, 95, 91, 85, 78, 67, + 55, 43, 31, 21, 11, 1, -7, -14, -21, -29, -37, -45, -51, -54, -56, -58, + -60, -62, -64, -65, -66, -67, -69, -72, -76, -80, -82, -84, -83, -82, -80, -79, + -77, -73, -67, -60, -51, -42, -34, -25, -16, -8, -2, 4, 9, 12, 13, 14, + 14, 13, 9, 3, -5, -12, -18, -25, -31, -37, -42, -47, -50, -53, -54, -53, + -48, -41, -36, -32, -31, -31, -32, -31, -28, -25, -22, -17, -12, -5, 1, 1, + -2, -1, -9, -9, -6, 5, 6, -1, -10, 8, 24, 11, -2, -14, -9, -15, + -13, 5, 14, 12, -6, -1, -12, 1, -9, 12, 12, 10, 5, -19, -11, -13, + -2, 8, 5, 1, -2, -3, 9, -6, 6, 5, 6, -3, -17, -7, 3, 2, + -1, 0, 7, -7, 5, 4, 6, -18, -24, 6, 20, -1, -4, -1, 10, 3, + -10, 8, 7, -11, -17, -15, 5, 18, 4, 1, 8, -16, -4, 0, 11, 9, + -10, -15, 0, -22, -12, 19, 34, 16, -9, -16, -7, -12, -10, 13, 23, -1, + -10, -2, -3, -11, 13, 7, -6, -9, 3, 11, -10, -18, 12, 22, 7, -27, + -29, -4, 20, 20, 10, 8, -16, -26, -6, 22, 21, 7, 15, 8, -50, -50, + -7, 35, 22, -13, 32, 41, -33, -46, -10, 23, -7, -25, 23, 21, -38, -36, + 14, 44, 2, 2, 34, -14, -51, -29, 11, 19, 7, 22, 13, -23, -21, -8, + -9, 1, 14, 26, 26, -8, -34, -33, 4, 1, -6, -2, 16, -7, -23, 12, + 27, 5, 6, 6, 0, -8, 0, -1, -17, -13, -12, 3, 9, 4, 11, 23, + 36, 0, -43, -16, 4, -21, -26, 27, 16, -25, 3, 65, 4, -34, 24, -10, + -38, -14, 13, 4, -15, 36, 44, -42, -51, 20, -5, -6, 68, 20, -18, -39, + -11, 9, 17, 6, -33, -20, -13, 48, 30, 22, -4, -9, -53, -20, 32, 32, + -16, 17, -11, -36, -8, -5, 39, 28, 33, 21, -64, -48, 3, -22, 15, 62, + -26, 0, 3, 5, 73, -14, -48, -20, -59, 4, 70, 60, -7, -2, -88, -22, + -17, 39, 17, 33, -3, 15, 28, -47, -80, -37, 5, 7, 104, 16, -99, -92, + -36, 109, 78, 26, -15, -92, -21, 62, 48, -51, -81, -25, 55, 63, 35, 21, + -115, -54, 101, 73, -41, -110, -66, 50, 107, 45, -8, -109, -38, 12, 102, 3, + 17, -45, -2, -36, 39, 46, -12, -28, -27, -17, 17, -18, 82, -5, -3, -25, + -5, -14, 15, 9, -3, -17, -6, 2, 7, -36, -13, 6, 21, -23, -20, 16, + -18, 3, -2, 26, 0, 13, -23, -2, -19, -28, -18, 15, 12, 22, -4, 23, + -17, -22, -9, -18, -4, 11, 13, 0, 34, -16, -20, 26, 23, 15, -4, -25, + 7, 8, -9, 8, 44, 1, -40, 17, -32, 9, -30, -52, 52, 3, 2, -21, + 83, 58, -14, -46, -61, -12, -67, -20, 64, 72, 57, -10, 5, 1, -77, 31, + -47, -39, 12, 22, 57, 28, 0, 9, -76, 15, -74, 33, -12, 39, 114, -35, + -36, -38, -23, 27, -21, 14, 56, 47, 6, -72, -61, -4, 18, -4, 19, 13, + 45, 71, 48, -1, -125, -52, -56, -20, -18, -12, 51, 78, 68, -46, 32, -40, + -29, -28, -81, -25, 75, 42, 58, -38, 1, -29, -34, 31, -36, -14, 10, 64, + 37, 2, -31, -72, -17, -33, 30, -52, -54, 25, 43, 70, 81, -9, -73, 4, + -65, 15, -28, 25, 0, 28, 19, 51, -26, 6, 0, -37, -15, -22, -20, -16, + -5, 50, 56, 67, 25, 16, -35, -29, -14, -39, 19, -24, -52, -13, -32, -10, + 39, 33, 59, 6, 37, 55, 11, -9, -35, -15, -57, -56, -36, -34, 19, 19, + 6, 20, 17, -11, 5, 26, 19, 16, 7, -20, -26, -55, -62, -36, -18, 19, + 37, 47, 25, -6, -14, 1, -4, -13, 12, 23, 34, 38, 41, 33, 31, -10, + -56, -52, -49, -31, -40, -21, -12, 0, 5, 12, 22, 22, 21, 31, 12, 2, + -8, -4, -18, -7, 3, 1, -1, 11, 12, 18, 17, 9, -2, -12, -13, -11, + -1, 8, 3, 3, 2, 5, -5, -16, -15, -13, -8, -12, -9, -2, -1, 2, + 7, 10, 7, 11, 14, 7, -1, -4, 5, -3, -2, 0, -6, -10, -1, -5, + 3, 9, 0, -8, -9, -6, -6, 0, 6, 3, 6, 7, 10, 0, -8, -3, + -5, -1, -8, -7, -4, -3, -3, 0, -1, -6, 2, 7, 7, 5, 4, 10, + 5, 8, -1, -11, -15, -11, -15, -10, -1, -8, -12, -5, 1, 3, 6, 8, + 11, 18, 22, 26, 10, -10, -1, -15, -3, -21, -16, -14, -12, -7, -8, -18, + -20, -11, 9, 20, 27, 26, 11, 1, 21, 6, 3, -9, -15, -9, -20, 3, + 5, 21, 14, 6, 11, -21, -22, -6, -21, -23, -18, 11, 6, 5, 21, 9, + 23, 16, -3, -30, -7, -27, -4, 5, 18, 22, 16, 2, 7, -1, -2, -10, + -14, -10, -17, -10, -15, -16, 3, 12, 30, 18, -1, -6, -15, -3, 5, 11, + -18, -2, 8, 21, 11, -13, -4, -30, -7, 0, 12, 25, -3, 17, 14, -20, + -6, -27, -41, -11, -12, 23, -8, 13, 24, 18, 27, -11, -8, -12, -2, 17, + 23, 13, -20, -21, -2, -21, -34, -46, -23, 28, 48, 9, -10, 8, 29, 27, + 5, -29, -12, 13, -5, -2, -35, 1, 3, 24, 13, 17, -18, -30, -21, 14, + -1, 6, -8, 48, 45, -7, -34, -49, -32, -6, -26, 20, 29, 76, 30, -21, + -66, -36, -15, 40, -5, 29, 3, 10, -39, -25, -2, 24, 19, 19, -4, -8, + 3, -22, -23, -18, 13, 17, -3, -25, 23, 66, 26, -18, -27, -34, -30, -30, + 36, 25, 28, -22, -17, -7, -22, 21, 18, 42, 8, -25, -28, -31, -10, 15, + 18, 0, -1, -5, 16, -12, 13, 13, 12, -8, -37, -9, 13, -5, 8, -3, + 13, -8, 4, 24, -16, -43, -18, 26, 26, -11, -9, 19, 9, -15, 9, 15, + -12, -31, -27, 8, 29, 5, 7, 17, -33, -14, 14, 23, -1, -18, -18, -4, + -35, -17, 47, 71, -16, -20, -11, -16, -25, 6, 37, 14, -18, 1, -8, -14, + 10, 14, 2, -20, 0, 20, -10, -25, 14, 32, 7, -39, -38, -3, 34, 25, + 13, 3, -24, -34, 5, 38, 18, 7, 29, -30, -74, -41, 36, 40, -12, 26, + 55, -17, -59, -26, 28, -2, -31, 24, 25, -44, -39, 21, 44, -1, 10, 33, + -34, -50, -12, 18, 13, 20, 17, -6, -31, -10, -6, -1, 7, 12, 14, 6, + -16, -24, 6, 9, -16, -16, 6, 2, -10, 13, 12, -10, 0, 11, 11, 10, + -3, -22, -22, -12, -7, 19, 17, -2, -12, 6, 16, 7, -11, -1, -20, -22, + -8, 26, 16, -3, 12, 1, -33, 2, 30, -23, -5, 28, -17, -19, 21, 9, + -28, -14, 25, -1, 4, 24, 0, -26, -9, 7, 2, -2, 20, -10, -11, 5, + -3, -4, 8, -9, 14, 18, 25, -22, -15, -22, -3, -12, 27, 30, 15, -11, + -26, -4, 15, -7, -14, 23, -23, -4, 34, -2, -38, 14, -11, -24, 16, 34, + 11, -13, 3, -3, -19, -34, 0, -3, 24, 43, 1, -12, -38, -25, -11, 23, + 35, 12, -28, -25, -16, 7, 22, 1, -10, 8, 8, -3, 6, -24, -20, -13, + 9, 31, 12, -16, 7, -29, 5, 8, -28, 3, 4, 12, 26, -9, -15, -5, + -20, 9, 21, 0, 1, -9, 0, 8, -3, -7, -9, -3, 22, 8, 3, -11, + -9, -11, 3, 15, 9, -10, 1, -3, -3, -2, -5, 9, 0, 12, 7, -15, + -7, 0, -8, 5, 9, -5, 7, -7, 10, 4, -11, -2, -8, -4, 9, 9, + 0, -2, -11, -3, -4, 3, 4, 3, -2, 3, 3, -8, -9, -2, 0, 3, + 5, -1, -10, -7, 2, 8, 3, 0, -5, -5, 2, 4, -2, -5, -3, 2, + 3, 0, 2, -5, -3, 3, 2, -2, -4, -2, 1, 2, 1, 0, 0, 0, + 0, -1, -7, -9, -5, 0, 2, 2, 5, 6, 0, -11, -13, -5, 3, 1, + 0, 0, 1, -3, -9, -6, -1, 5, 3, -3, -5, -3, -1, -4, -3, -1, + 2, -2, -9, -7, -2, -5, -18, -31, -36, -36, -41, -38, -29, -21, -27, -31, + -26, -4, 37, 65, 67, 44, 22, 10, 2, -4, 8, 32, 44, 38, 24, 17, + 9, 4, 3, 12, 26, 32, 32, 23, 16, 7, 1, -7, -13, -8, 1, -5, + -39, -72, -79, -64, -49, -40, -24, -1, 12, 0, -25, -44, -43, -30, -14, 1, + 13, 13, 4, 4, 16, 34, 46, 55, 65, 73, 67, 53, 54, 58, 62, 60, + 51, 38, 33, 20, -7, -27, -40, -46, -55, -58, -41, -9, 7, 8, 2, -26, + -49, -71, -92, -101, -93, -80, -70, -71, -73, -65, -67, -69, -61, -42, -15, 15, + 18, -5, -33, -54, -54, -40, -18, 2, 21, 21, 3, -28, -52, -33, 9, 35, + 33, 30, 34, 45, 46, 43, 54, 63, 65, 61, 56, 43, 45, 59, 77, 96, + 104, 112, 115, 100, 78, 53, 22, -3, -6, 5, 24, 37, 38, 35, 25, 3, + -19, -38, -51, -46, -33, -34, -42, -47, -48, -38, -27, -30, -40, -48, -45, -30, + -24, -38, -44, -43, -47, -34, -13, 7, 27, 30, 9, -18, -38, -22, 19, 47, + 70, 83, 68, 28, -13, -41, -41, -19, -1, 10, 8, 4, 4, -7, -12, 6, + 32, 42, 31, 0, -39, -71, -99, -115, -111, -85, -56, -46, -61, -74, -66, -45, + -22, 4, 21, 27, 25, 1, -30, -51, -37, 4, 37, 40, 26, 17, 12, 12, + 5, 1, 2, 12, 29, 43, 44, 45, 54, 45, 28, 10, 13, 26, 32, 43, + 59, 67, 62, 60, 66, 72, 61, 34, 11, 0, 1, -6, -18, -12, 19, 47, + 51, 32, 9, -8, -22, -26, -27, -30, -29, -12, 7, 18, 13, -1, -11, -11, + 5, 16, 14, 11, 5, -19, -47, -54, -29, 13, 37, 42, 33, 9, -17, -31, + -21, 14, 61, 81, 68, 39, 4, -26, -46, -38, -17, -1, 1, -4, -14, -25, + -23, -4, 24, 43, 49, 37, 4, -48, -97, -123, -116, -89, -66, -65, -73, -67, + -64, -66, -69, -46, 3, 36, 27, -3, -25, -39, -38, -39, -36, -24, -9, 5, + 13, 13, 4, -1, -13, -15, 0, 22, 47, 65, 76, 67, 35, 3, -4, 6, + 27, 47, 58, 68, 72, 73, 72, 66, 59, 62, 61, 49, 28, -5, -30, -27, + 9, 40, 51, 46, 40, 28, 1, -30, -56, -57, -41, -13, 5, 12, 7, -11, + -38, -54, -40, -16, 12, 23, 13, -16, -49, -62, -55, -29, 4, 38, 45, 28, + -5, -36, -36, -5, 39, 68, 77, 73, 55, 8, -35, -46, -29, -15, -15, -16, + -12, -9, -23, -30, -18, 16, 48, 51, 24, -18, -45, -72, -96, -111, -101, -80, + -67, -71, -79, -77, -70, -46, -22, -7, -4, -5, -4, -2, -15, -37, -43, -42, + -27, -5, 9, 27, 38, 27, 4, -14, -15, 6, 30, 61, 93, 90, 52, 16, + 2, 1, 5, 11, 34, 64, 79, 71, 48, 35, 43, 61, 59, 46, 27, 1, + -22, -33, -25, -9, 15, 37, 56, 54, 28, -10, -44, -58, -49, -27, -8, 20, + 29, 0, -42, -66, -60, -34, -7, 16, 30, 15, -20, -50, -64, -49, -11, 21, + 34, 34, 17, -7, -31, -29, 3, 43, 69, 78, 73, 45, 10, -20, -32, -33, + -26, -12, -6, -18, -41, -44, -27, -6, 10, 17, 19, 18, -4, -49, -87, -108, + -100, -84, -87, -93, -83, -67, -54, -45, -45, -35, -23, -13, 6, 17, 14, 1, + -22, -40, -35, -18, 2, 28, 57, 63, 33, -7, -21, -4, 23, 57, 89, 102, + 94, 68, 37, 8, -4, 4, 37, 71, 88, 79, 54, 46, 55, 62, 55, 53, + 54, 46, 20, -14, -40, -41, -16, 15, 44, 60, 59, 30, -21, -61, -70, -54, + -26, 10, 29, 19, -16, -49, -63, -58, -33, 4, 29, 26, -1, -33, -49, -50, + -34, -9, 16, 34, 34, 9, -20, -25, -9, 13, 29, 54, 87, 91, 56, 11, + -12, -11, -12, -20, -22, -17, -11, -12, -22, -25, -15, 3, 19, 19, 9, -11, + -38, -62, -76, -92, -107, -109, -95, -68, -53, -49, -49, -58, -63, -48, -25, -5, + 12, 12, -7, -36, -56, -56, -32, 8, 50, 64, 36, 6, -10, -15, -11, 9, + 47, 94, 118, 100, 58, 14, -3, 3, 19, 44, 72, 83, 78, 75, 66, 53, + 45, 52, 66, 70, 52, 22, -8, -36, -36, -14, 21, 63, 84, 63, 14, -29, + -55, -54, -42, -12, 28, 40, 14, -24, -52, -58, -42, -22, 6, 19, 16, -5, + -34, -49, -43, -24, -12, 2, 14, 22, 10, -10, -20, -16, 3, 28, 60, 72, + 61, 42, 25, 1, -26, -44, -46, -31, -25, -26, -32, -30, -24, -12, -12, -15, + 0, 6, -3, -23, -47, -79, -112, -128, -115, -84, -61, -45, -42, -51, -64, -68, + -61, -33, 9, 29, 12, -28, -54, -64, -56, -30, 9, 36, 41, 34, 10, -18, + -38, -29, 13, 70, 105, 106, 79, 48, 31, 12, -1, 12, 51, 78, 89, 87, + 75, 66, 49, 44, 56, 73, 79, 66, 23, -23, -42, -39, -9, 31, 65, 75, + 52, 7, -32, -54, -57, -30, 3, 24, 19, 2, -18, -39, -50, -39, -10, 8, + 10, -2, -12, -18, -21, -29, -33, -16, 11, 28, 17, 1, -4, 3, -3, -6, + 13, 42, 64, 67, 56, 29, 2, -21, -36, -42, -40, -25, -15, -10, -7, -10, + -27, -38, -24, 2, 19, 14, -6, -44, -86, -115, -121, -109, -81, -45, -27, -36, + -58, -76, -81, -53, -13, 11, 8, -11, -24, -40, -58, -62, -30, 11, 42, 44, + 17, -15, -36, -38, -22, 15, 53, 84, 88, 73, 52, 19, -6, -9, 13, 44, + 71, 88, 93, 79, 54, 42, 46, 67, 82, 79, 54, 20, -10, -28, -27, 0, + 46, 70, 61, 29, 2, -18, -38, -45, -23, 7, 16, 10, -8, -22, -26, -30, + -32, -23, -13, -2, 6, -6, -15, -16, -18, -20, -9, 0, 2, 11, 19, 17, + -2, -21, -12, 14, 33, 50, 65, 61, 43, 19, -17, -44, -50, -42, -21, 1, + 11, 1, -31, -56, -45, -22, -1, 17, 18, -4, -44, -95, -126, -123, -95, -56, + -36, -41, -51, -59, -68, -60, -38, -15, 5, 14, 7, -17, -47, -61, -37, 1, + 27, 33, 24, 7, -13, -30, -43, -26, 13, 47, 70, 74, 68, 48, 12, -19, + -14, 14, 46, 74, 81, 75, 64, 52, 48, 56, 67, 82, 78, 44, 9, -12, + -20, -8, 18, 41, 57, 46, 23, 0, -23, -33, -21, -10, -10, -2, 3, 5, + -2, -19, -33, -32, -24, -16, -11, -14, -6, 7, -2, -20, -25, -16, -6, 6, + 17, 27, 22, 2, -10, -11, 0, 24, 51, 68, 79, 65, 25, -19, -49, -48, + -30, -9, 8, 10, -12, -40, -57, -57, -34, -1, 25, 24, -7, -56, -95, -111, + -102, -84, -69, -57, -44, -42, -59, -74, -71, -47, -17, 0, 3, -6, -21, -37, + -38, -27, -6, 15, 23, 22, 12, -4, -23, -32, -26, 1, 36, 63, 82, 78, + 46, 12, -1, 2, 20, 41, 64, 81, 79, 66, 59, 61, 67, 75, 76, 66, + 49, 27, 5, -7, 2, 24, 41, 44, 38, 28, 13, -5, -19, -21, -17, -11, + -2, 4, 4, -2, -14, -28, -32, -27, -21, -16, -13, -1, 6, -4, -21, -25, + -17, -7, 6, 0, 0, -4, -4, -5, -8, -4, 3, 8, 6, 1, 1, 2, + 3, 3, -2, -7, -11, -10, -5, -2, 4, 6, 0, -2, -5, -4, -4, -9, + -9, -7, -11, -11, -10, -7, 4, 0, -4, -4, -1, 4, 0, -4, -3, -5, + -6, -5, -4, 4, -1, 2, 11, 5, -13, -20, -30, -49, -50, -34, -22, -33, + -27, -20, -17, 0, 34, 70, 73, 42, 3, -26, -37, -25, -1, 25, 48, 71, + 75, 44, 22, 45, 69, 57, 44, 52, 58, 24, -23, -41, -50, -58, -67, -82, + -66, -29, -29, -41, -34, -19, -4, -4, -1, 20, 50, 56, 35, 12, 4, -8, + -15, 4, 28, 44, 46, 34, 17, 2, 0, 11, 28, 42, 22, -28, -51, -45, + -34, -39, -37, -19, -17, -30, -32, -18, -4, 9, 19, 38, 35, 3, -24, -35, + -40, -23, -11, -25, -47, -52, -51, -58, -61, -52, -47, -37, -17, -5, -5, -16, + -31, -24, -11, -1, -3, -23, -40, -48, -40, -12, 15, 25, 17, -5, -2, 14, + 21, 15, -12, -26, -18, -2, 28, 48, 55, 52, 42, 35, 35, 42, 38, 36, + 40, 53, 55, 52, 44, 36, 49, 57, 56, 57, 55, 50, 39, 27, 31, 30, + 15, 11, 12, 6, 4, 14, 28, 23, 1, -6, -17, -35, -44, -41, -33, -22, + -9, -6, -12, -15, -13, -27, -29, -7, 14, -5, -55, -71, -49, -33, -37, -46, + -33, -18, -43, -89, -96, -65, -23, 2, 8, 20, 24, -11, -50, -51, -12, 15, + 4, 1, 20, 47, 53, 43, 52, 77, 98, 114, 110, 100, 88, 53, 10, -29, + -55, -71, -83, -77, -58, -55, -57, -52, -48, -47, -46, -12, 34, 59, 52, 25, + -10, -33, -21, 18, 49, 54, 46, 18, 13, 30, 41, 48, 54, 53, 44, 24, + 1, -13, -25, -43, -38, -28, -35, -55, -71, -64, -40, -13, 10, 24, 38, 41, + 21, -1, -11, 1, 15, 7, -6, -13, -39, -57, -64, -51, -20, -12, -24, -37, + -30, -4, 17, 21, 12, -7, -16, -15, -7, 6, 1, -20, -34, -30, -1, 32, + 44, 36, 22, 25, 21, 6, 1, -2, -13, -5, 19, 28, 24, 12, 11, 16, + 19, 38, 54, 49, 38, 28, 28, 39, 52, 49, 32, 25, 33, 45, 49, 39, + 40, 46, 20, -9, -6, 6, 1, -22, -29, 10, 48, 33, -17, -51, -55, -44, + -49, -50, -36, -33, -57, -84, -71, -21, 11, 13, 4, -1, -8, -32, -45, -32, + -10, 2, -13, -37, -39, -42, -57, -65, -63, -36, -11, 10, 33, 22, -12, -34, + -28, -12, 2, 8, 6, -2, -4, 0, 10, 22, 36, 57, 82, 104, 122, 127, + 109, 70, 17, -28, -45, -36, -20, -33, -68, -102, -114, -103, -76, -45, -20, -7, + -11, -10, -2, 6, 0, -14, -5, 30, 48, 29, 3, -8, 10, 39, 67, 86, + 83, 59, 32, 17, 32, 46, 40, 11, -29, -48, -57, -68, -69, -57, -43, -26, + -13, -2, 1, 1, 3, 4, 8, 21, 20, 11, 3, -2, -6, -26, -39, -33, + -34, -36, -28, -23, -27, -28, -17, -1, 0, -6, -10, -9, -7, -12, -26, -44, + -54, -38, -16, 0, 18, 27, 17, -3, -18, -3, 19, 11, -9, -7, 10, 14, + 5, 5, 18, 29, 29, 12, 16, 38, 43, 14, 2, 24, 55, 59, 33, 17, + 24, 44, 65, 75, 77, 55, 15, -16, -20, 6, 31, 27, 17, 18, 19, 17, + 7, 0, -5, -20, -22, -25, -49, -69, -73, -58, -45, -29, -4, 9, -1, -23, + -51, -52, -24, -2, 11, 12, -16, -51, -75, -77, -67, -59, -59, -54, -35, -15, + -9, -9, -9, -7, -8, -12, -1, 15, 22, 10, -14, -34, -28, -14, 11, 64, + 113, 127, 117, 97, 87, 84, 68, 50, 37, 36, 24, -15, -58, -78, -84, -71, + -40, -14, -12, -34, -48, -41, -14, 20, 37, 35, 16, -6, 1, 14, 15, 20, + 23, 24, 38, 58, 69, 57, 40, 54, 73, 75, 65, 40, -3, -49, -68, -56, + -42, -42, -53, -59, -44, -23, -9, -3, -11, -18, -13, -11, -5, 3, 13, 4, + -25, -39, -22, -14, -16, -27, -38, -37, -42, -55, -51, -21, 8, 10, -8, -12, + -4, -10, -39, -55, -38, -13, -4, -11, -15, -3, 15, 12, 2, 11, 28, 34, + 15, -5, 3, 11, 6, 12, 25, 25, 13, 10, 15, 27, 48, 55, 38, 23, + 17, 23, 32, 23, 32, 57, 75, 75, 52, 22, 10, 5, 12, 28, 33, 23, + 2, -14, -4, 19, 30, 25, 15, 1, -27, -64, -78, -67, -49, -45, -48, -42, + -31, -25, -40, -50, -39, -18, -4, 13, 19, 12, -10, -43, -59, -53, -47, -54, + -61, -51, -20, -2, -12, -23, -25, -18, 5, 33, 51, 45, 16, -16, -46, -53, + -38, -6, 33, 57, 74, 81, 75, 77, 89, 105, 114, 110, 83, 39, -6, -25, + -28, -39, -48, -52, -55, -59, -67, -67, -57, -42, -23, -3, 10, 3, -19, -33, + -30, -8, 20, 23, 2, -18, -17, 12, 40, 58, 65, 65, 66, 71, 64, 54, + 38, 1, -41, -62, -47, -26, -31, -49, -55, -42, -21, -17, -19, -10, -2, -3, + -10, -13, 2, 13, -10, -38, -27, 3, 8, -18, -46, -61, -65, -53, -36, -18, + -5, -6, -14, -22, -18, -12, -19, -29, -28, -21, -10, -15, -24, -18, -4, 16, + 23, 17, 14, 10, 9, 13, 15, 28, 35, 19, 4, 2, -2, 9, 34, 62, + 66, 43, 13, -2, 15, 42, 50, 48, 51, 56, 56, 45, 44, 45, 48, 40, + 33, 31, 27, 10, -10, -4, 16, 41, 52, 48, 31, -1, -36, -56, -50, -27, + -14, -25, -43, -60, -67, -47, -31, -38, -47, -40, -17, 13, 32, 28, -10, -50, + -68, -62, -40, -21, -20, -33, -58, -72, -63, -45, -28, -11, 18, 48, 42, 15, + -14, -43, -54, -40, -15, 4, 2, -5, 0, 20, 55, 91, 113, 120, 109, 89, + 77, 63, 43, 26, 20, 12, -13, -47, -69, -68, -53, -49, -49, -36, -28, -27, + -27, -28, -12, 5, 1, -9, -2, 14, 10, -25, -39, -6, 21, 35, 41, 53, + 73, 82, 74, 64, 54, 39, 9, -23, -37, -30, -22, -30, -52, -62, -54, -32, + -9, 2, 5, -3, -17, -25, -17, -1, 13, 8, -7, -12, -7, -7, -21, -40, + -51, -51, -38, -21, -16, -22, -29, -33, -23, -10, -2, -9, -24, -33, -33, -29, + -21, -8, 3, 2, -10, -18, -11, 8, 26, 32, 27, 21, 14, 7, 1, 3, + 12, 22, 35, 45, 43, 29, 13, 10, 20, 37, 54, 59, 45, 28, 28, 37, + 48, 55, 60, 60, 43, 17, 0, -3, 9, 24, 31, 31, 28, 28, 26, 14, + -5, -22, -31, -30, -21, -7, -8, -34, -63, -82, -80, -63, -45, -28, -14, -5, + 3, 2, -11, -27, -39, -33, -11, 2, -8, -39, -73, -95, -91, -54, -8, 19, + 16, 4, 5, 14, 14, 2, -8, -14, -19, -33, -45, -38, -19, 2, 21, 54, + 93, 106, 90, 74, 80, 97, 98, 76, 52, 34, 10, -18, -37, -36, -27, -35, + -52, -62, -56, -44, -39, -37, -29, -17, -8, -2, 3, 4, -4, -16, -27, -32, + -19, 1, 19, 41, 60, 70, 71, 67, 64, 61, 53, 38, 14, -8, -21, -29, + -34, -38, -39, -29, -15, 0, 5, -5, -19, -25, -16, 5, 19, 17, 6, -3, + -7, 0, -1, 1, -2, -5, 0, 0, 2, 0, -3, -2, 0, 1, 0, -2, + -2, -2, 0, 3, 3, -2, -5, -1, -1, -1, -4, 3, 9, 1, -1, -2, + -11, -7, 1, 9, 11, 8, -4, -11, -12, -9, -4, 18, 15, 14, 1, -22, + -29, -14, 3, 30, 29, 14, -2, -35, -43, -11, 13, 36, 42, 15, -16, -49, + -44, -10, 28, 47, 38, 11, -25, -66, -39, 4, 36, 58, 33, -3, -44, -65, + -29, 19, 52, 54, 23, -13, -59, -65, -15, 32, 69, 49, 8, -30, -74, -51, + 3, 43, 71, 40, -5, -48, -77, -31, 16, 57, 67, 24, -15, -67, -72, -12, + 36, 66, 59, 5, -31, -80, -51, 3, 49, 75, 37, -2, -59, -81, -28, 20, + 67, 66, 22, -23, -76, -65, -10, 41, 78, 48, 4, -36, -85, -47, 6, 59, + 80, 31, -8, -69, -82, -22, 29, 73, 63, 17, -31, -81, -63, -1, 47, 79, + 47, 3, -56, -90, -40, 19, 75, 73, 28, -25, -86, -74, -10, 48, 85, 56, + 6, -51, -93, -48, 11, 67, 86, 33, -11, -78, -87, -29, 36, 89, 66, 13, + -38, -91, -60, 2, 50, 83, 48, 0, -56, -90, -41, 16, 71, 78, 30, -17, + -80, -75, -20, 31, 82, 62, 15, -32, -85, -66, -7, 48, 84, 50, 4, -53, + -87, -44, 8, 62, 78, 35, -8, -65, -83, -30, 23, 70, 71, 24, -20, -76, + -75, -12, 32, 73, 62, 15, -30, -85, -62, -2, 41, 76, 51, 9, -39, -86, + -52, 1, 45, 79, 46, 8, -49, -89, -46, 3, 54, 80, 43, 7, -55, -83, + -50, 0, 53, 76, 54, 11, -52, -83, -55, 0, 40, 67, 58, 22, -32, -79, + -67, -11, 28, 63, 52, 37, -9, -70, -63, -28, 10, 42, 49, 53, 8, -46, + -64, -41, 1, 22, 38, 51, 39, -16, -63, -46, -23, 5, 33, 38, 48, 14, + -42, -57, -29, -5, 22, 37, 40, 28, -23, -53, -39, -10, 14, 30, 40, 31, + -1, -48, -40, -18, 11, 19, 31, 26, 14, -20, -50, -25, -5, 11, 31, 30, + 14, 0, -35, -39, -4, -1, 19, 27, 17, 9, -10, -39, -21, -8, 9, 24, + 26, 13, -5, -19, -30, -12, -1, 17, 25, 16, 3, -19, -26, -13, -6, 17, + 22, 20, 5, -16, -32, -19, -1, 23, 27, 23, 4, -30, -33, -23, -1, 35, + 35, 24, -2, -41, -45, -21, 9, 45, 41, 22, -12, -50, -46, -18, 28, 55, + 45, 10, -27, -78, -42, 0, 53, 66, 32, -1, -61, -74, -28, 27, 64, 64, + 24, -28, -80, -66, -15, 53, 84, 48, 5, -59, -94, -41, 17, 75, 80, 26, + -21, -91, -79, -12, 48, 87, 55, 10, -58, -96, -46, 9, 80, 81, 30, -23, + -84, -80, -15, 49, 90, 49, 9, -57, -95, -45, 17, 76, 79, 26, -20, -91, + -75, -18, 52, 90, 52, 6, -59, -92, -41, 15, 68, 80, 31, -21, -87, -76, + -13, 45, 87, 49, 11, -60, -94, -35, 14, 80, 68, 22, -23, -89, -66, -7, + 47, 93, 44, -8, -61, -95, -31, 24, 86, 75, 10, -35, -96, -66, -1, 61, + 100, 44, -12, -77, -105, -33, 32, 97, 92, 16, -44, -111, -90, -5, 65, 121, + 65, -3, -80, -123, -59, 17, 98, 111, 46, -25, -112, -109, -33, 42, 112, 90, + 30, -55, -115, -84, -17, 66, 105, 71, 13, -73, -113, -61, 0, 77, 96, 56, + 4, -80, -108, -50, 8, 78, 93, 47, 3, -88, -98, -40, 7, 65, 76, 53, + 18, -71, -90, -44, 0, 39, 57, 43, 34, -19, -69, -54, -19, 18, 32, 31, + 34, 7, -40, -36, -21, -1, 12, 12, 25, 27, -9, -32, -14, -14, 2, 0, + 1, 20, 19, -2, -13, -11, -18, -12, -2, 18, 24, 12, -2, -14, -19, -19, + -12, 18, 24, 22, -2, -15, -32, -20, 3, 22, 26, 17, -13, -31, -27, -13, + 17, 33, 32, 5, -29, -47, -29, 2, 33, 42, 32, -6, -53, -52, -24, 22, + 51, 41, 27, -32, -74, -45, 0, 45, 59, 33, -1, -62, -66, -31, 26, 73, + 49, 17, -42, -80, -42, -8, 63, 72, 28, -10, -75, -72, -23, 32, 88, 47, + 13, -56, -93, -38, 10, 76, 69, 26, -20, -96, -66, -10, 48, 90, 47, 0, + -69, -103, -29, 25, 87, 73, 18, -35, -104, -68, -2, 61, 93, 47, -5, -83, + -98, -31, 30, 92, 68, 17, -39, -97, -63, -5, 64, 88, 35, -9, -74, -86, + -22, 31, 85, 54, 13, -44, -93, -46, 9, 65, 75, 23, -17, -75, -78, -15, + 39, 84, 54, 3, -52, -96, -46, 12, 71, 90, 29, -18, -89, -87, -26, 36, + 86, 72, 26, -37, -106, -77, -12, 45, 99, 68, 22, -46, -108, -73, -10, 43, + 87, 69, 19, -27, -92, -79, -12, 27, 63, 57, 26, 4, -53, -75, -35, 12, + 33, 37, 31, 26, -9, -53, -39, -16, 6, 20, 23, 22, 13, -8, -22, -23, + -18, -3, 9, 25, 19, 4, -8, -20, -17, -10, 6, 16, 17, 13, -8, -34, + -21, -6, 17, 33, 23, 6, -32, -51, -23, 11, 36, 46, 31, -11, -46, -65, + -31, 15, 59, 55, 28, -20, -73, -64, -26, 42, 78, 51, 14, -53, -85, -48, + -4, 70, 80, 38, -16, -80, -76, -32, 39, 90, 58, 19, -59, -99, -50, 14, + 71, 75, 36, -21, -94, -70, -23, 51, 88, 53, 9, -68, -97, -40, 16, 83, + 73, 29, -33, -100, -61, -13, 58, 87, 41, 0, -74, -81, -35, 24, 87, 55, + 20, -41, -88, -58, 0, 69, 73, 34, -5, -86, -75, -20, 38, 79, 49, 13, + -48, -90, -39, 2, 71, 68, 31, -16, -84, -67, -15, 38, 79, 42, 12, -50, + -85, -37, 2, 62, 71, 34, -5, -83, -75, -24, 27, 82, 51, 27, -30, -88, + -54, -15, 44, 73, 50, 16, -49, -81, -47, -6, 38, 58, 50, 27, -31, -69, + -52, -13, 15, 36, 45, 33, -5, -41, -44, -23, 2, 14, 27, 33, 10, -25, + -20, -18, -6, 1, -1, 17, 22, 3, -13, -10, -17, -13, -6, 13, 24, 15, + 1, -11, -19, -19, -16, 12, 24, 24, 3, -12, -29, -26, -1, 18, 27, 19, + -4, -31, -28, -19, 11, 30, 35, 12, -21, -46, -35, -6, 28, 42, 36, 5, + -46, -57, -31, 10, 50, 43, 33, -16, -71, -55, -9, 35, 62, 38, 10, -51, + -71, -40, 11, 69, 58, 24, -26, -81, -50, -18, 48, 79, 37, 1, -62, -81, + -32, 16, 84, 59, 20, -37, -96, -50, -2, 63, 78, 33, -4, -85, -80, -20, + 33, 88, 59, 10, -50, -107, -47, 14, 75, 85, 27, -19, -95, -83, -15, 47, + 94, 60, 8, -66, -105, -46, 15, 83, 81, 26, -23, -91, -76, -18, 48, 92, + 47, 1, -59, -94, -36, 18, 78, 66, 19, -27, -91, -60, -3, 53, 80, 35, + -8, -62, -86, -28, 27, 79, 66, 13, -38, -94, -62, 1, 56, 95, 42, -6, + -75, -96, -39, 22, 80, 80, 36, -20, -97, -92, -24, 30, 93, 79, 32, -27, + -102, -87, -22, 31, 81, 79, 29, -14, -81, -91, -25, 19, 56, 63, 31, 11, + -39, -77, -47, 3, 31, 37, 33, 27, 3, -48, -46, -20, 0, 18, 22, 23, + 16, -3, -20, -19, -15, -4, 2, 8, 5, 0, 0, 0, 0, 2, 2, 5, + 9, 12, 14, 12, 7, 6, 4, 0, -1, -1, 1, -2, -2, -11, -17, -32, + -41, -49, -55, -58, -61, -61, -65, -61, -57, -47, -37, -27, -22, -15, -5, 6, + 12, 16, 21, 27, 28, 32, 33, 35, 41, 44, 45, 47, 50, 54, 57, 56, + 53, 53, 54, 50, 50, 52, 54, 56, 52, 53, 54, 50, 49, 46, 43, 38, + 33, 27, 19, 8, 2, -11, -20, -27, -29, -30, -32, -35, -42, -52, -57, -57, + -59, -48, -40, -27, -13, 4, 13, 20, 18, 14, 11, 7, 3, -1, -3, -10, + -11, -20, -28, -46, -60, -72, -82, -92, -97, -97, -97, -94, -90, -81, -71, -61, + -55, -55, -53, -47, -38, -29, -23, -11, -6, -3, 1, 2, 5, 6, 3, 3, + 5, 15, 24, 28, 30, 30, 35, 37, 36, 39, 39, 44, 47, 48, 56, 62, + 73, 84, 91, 96, 95, 91, 85, 76, 72, 63, 55, 47, 44, 43, 41, 38, + 31, 19, 7, 0, -9, -7, -4, 8, 22, 40, 54, 67, 71, 70, 64, 56, + 45, 32, 24, 15, 12, 3, -3, -21, -42, -66, -84, -102, -117, -124, -128, -127, + -124, -118, -107, -96, -86, -86, -88, -86, -80, -70, -63, -50, -40, -33, -25, -23, + -20, -18, -18, -21, -25, -22, -14, -8, -3, -3, -1, 1, 0, 1, -3, -1, + 2, 4, 13, 24, 35, 49, 59, 67, 70, 69, 68, 59, 54, 46, 40, 31, + 29, 27, 25, 23, 20, 12, -1, -9, -19, -22, -21, -11, 3, 23, 41, 60, + 71, 76, 73, 71, 65, 56, 50, 44, 42, 35, 33, 24, 9, -13, -31, -48, + -65, -76, -83, -83, -82, -77, -69, -59, -46, -40, -40, -41, -38, -30, -24, -13, + -2, 8, 17, 22, 24, 25, 23, 20, 13, 9, 11, 15, 19, 16, 12, 9, + 4, 1, -6, -10, -11, -14, -12, -5, 3, 15, 26, 35, 40, 41, 41, 35, + 28, 19, 12, 3, -2, -6, -7, -10, -13, -19, -31, -39, -50, -56, -58, -52, + -41, -22, -3, 18, 34, 46, 48, 47, 45, 38, 32, 26, 24, 20, 19, 15, + 5, -14, -32, -49, -65, -79, -88, -91, -91, -88, -82, -75, -63, -52, -47, -46, + -46, -38, -31, -21, -8, 4, 17, 26, 31, 36, 39, 42, 40, 35, 36, 39, + 47, 48, 45, 43, 38, 36, 30, 24, 22, 19, 18, 23, 29, 40, 50, 61, + 68, 72, 74, 71, 66, 57, 50, 40, 32, 24, 21, 16, 12, 7, -3, -14, + -26, -38, -45, -46, -43, -31, -16, 3, 18, 33, 39, 39, 36, 31, 22, 13, + 8, 3, -1, -4, -9, -24, -42, -60, -77, -94, -107, -115, -119, -120, -116, -112, + -103, -91, -81, -78, -80, -75, -69, -61, -51, -39, -25, -13, -5, 2, 8, 14, + 17, 16, 15, 16, 24, 31, 32, 32, 29, 29, 27, 22, 21, 20, 19, 22, + 26, 35, 46, 59, 70, 77, 83, 85, 84, 79, 74, 66, 59, 50, 46, 41, + 38, 35, 29, 21, 11, 0, -9, -14, -16, -11, 0, 16, 30, 48, 58, 62, + 61, 58, 51, 40, 31, 25, 19, 15, 13, 4, -11, -28, -44, -61, -76, -87, + -95, -100, -100, -99, -95, -86, -75, -68, -69, -68, -67, -62, -56, -49, -38, -27, + -19, -13, -9, -3, 2, 1, -1, -3, 0, 7, 10, 10, 6, 5, 4, 0, + -4, -5, -7, -7, -7, -2, 5, 16, 27, 36, 44, 49, 52, 50, 46, 40, + 35, 26, 22, 18, 15, 15, 13, 9, 4, -5, -14, -19, -23, -21, -14, 0, + 15, 33, 49, 60, 63, 63, 61, 53, 44, 38, 32, 27, 27, 23, 14, 0, + -14, -29, -44, -58, -67, -74, -76, -76, -73, -67, -55, -45, -41, -41, -41, -39, + -35, -30, -23, -12, -3, 4, 9, 14, 20, 21, 20, 17, 15, 19, 24, 26, + 24, 21, 20, 18, 12, 9, 6, 3, 0, 1, 4, 11, 21, 30, 38, 43, + 47, 48, 45, 38, 32, 23, 15, 9, 5, 3, 1, -2, -5, -13, -22, -30, + -37, -41, -40, -30, -18, -3, 15, 30, 38, 41, 41, 37, 27, 19, 12, 6, + 3, 2, -2, -13, -25, -39, -53, -67, -78, -88, -92, -92, -91, -86, -77, -63, + -54, -50, -48, -47, -43, -38, -32, -23, -11, -1, 6, 11, 19, 25, 27, 26, + 24, 26, 31, 36, 38, 36, 37, 37, 34, 32, 29, 27, 24, 22, 23, 27, + 35, 45, 53, 61, 67, 70, 71, 66, 60, 51, 42, 34, 28, 24, 21, 18, + 16, 11, 2, -8, -16, -24, -28, -25, -17, -5, 10, 26, 39, 45, 47, 45, + 37, 27, 18, 9, 3, 0, -2, -10, -22, -36, -51, -67, -81, -93, -102, -107, + -108, -107, -102, -90, -78, -71, -67, -66, -63, -59, -56, -49, -39, -28, -19, -13, + -6, 1, 7, 8, 6, 5, 8, 14, 19, 19, 19, 20, 20, 19, 16, 15, + 13, 12, 11, 13, 20, 30, 39, 49, 57, 63, 68, 68, 65, 58, 51, 43, + 37, 32, 29, 27, 26, 24, 19, 11, 2, -5, -12, -14, -9, 0, 13, 30, + 46, 56, 62, 65, 61, 53, 44, 35, 26, 22, 20, 15, 6, -6, -20, -36, + -51, -66, -78, -87, -91, -92, -92, -85, -74, -65, -58, -56, -55, -52, -50, -46, + -40, -30, -20, -14, -8, -2, 5, 7, 6, 3, 2, 5, 10, 11, 10, 9, + 9, 8, 5, 2, 0, -2, -5, -5, -3, 5, 14, 23, 32, 39, 46, 50, + 49, 45, 38, 31, 24, 17, 14, 11, 10, 9, 7, 2, -5, -12, -20, -25, + -25, -19, -8, 7, 24, 40, 50, 58, 60, 56, 49, 41, 31, 24, 22, 20, + 15, 6, -5, -19, -34, -48, -61, -72, -79, -83, -85, -81, -72, -62, -52, -47, + -44, -41, -39, -35, -31, -24, -13, -5, 1, 7, 14, 20, 22, 21, 19, 18, + 22, 25, 25, 24, 23, 23, 20, 17, 15, 12, 10, 7, 5, 9, 16, 24, + 33, 40, 47, 53, 56, 54, 48, 41, 33, 25, 20, 15, 11, 9, 8, 5, + -2, -10, -19, -27, -32, -31, -25, -15, 0, 17, 30, 40, 46, 46, 42, 35, + 25, 15, 10, 9, 5, -2, -11, -23, -37, -52, -65, -79, -89, -95, -99, -100, + -95, -85, -74, -65, -60, -55, -52, -48, -44, -40, -29, -18, -10, -4, 4, 12, + 18, 20, 19, 17, 20, 24, 27, 27, 26, 26, 25, 23, 21, 19, 17, 15, + 12, 13, 17, 25, 34, 41, 49, 57, 62, 65, 63, 57, 51, 42, 35, 30, + 25, 22, 21, 19, 15, 8, 0, -9, -17, -21, -20, -14, -3, 13, 26, 38, + 48, 53, 52, 47, 39, 28, 19, 15, 13, 8, 0, -10, -22, -37, -51, -65, + -79, -88, -95, -100, -99, -94, -84, -74, -67, -61, -58, -55, -51, -49, -43, -33, + -23, -17, -10, -2, 6, 10, 11, 9, 9, 12, 15, 17, 16, 16, 16, 14, + 12, 11, 9, 8, 5, 3, 4, 10, 18, 26, 34, 42, 50, 57, 59, 57, + 52, 45, 38, 32, 27, 23, 21, 20, 19, 14, 8, 1, -9, 2, 5, 7, + 8, -1, 6, 15, 1, 20, 28, 1, 37, 41, 31, 29, 27, 61, 40, -12, + 38, 52, -16, -20, -1, -23, -48, -56, -63, -61, -77, -100, -88, -76, -103, -113, + -98, -103, -118, -120, -108, -107, -104, -110, -118, -104, -109, -128, -107, -83, -106, -86, + -94, -100, -77, -113, -88, -43, -77, -46, -44, -69, -34, -54, -39, 4, -30, 11, + 18, -25, 20, 16, 10, 52, 35, 52, 74, 33, 55, 74, 59, 70, 81, 85, + 91, 81, 72, 89, 94, 82, 80, 99, 100, 85, 86, 91, 100, 91, 81, 91, + 102, 83, 74, 92, 95, 63, 62, 75, 71, 63, 39, 54, 74, 15, 1, 31, + 6, -5, -13, -20, -8, -44, -59, -38, -69, -73, -67, -86, -90, -68, -73, -77, + -49, -82, -70, -43, -76, -27, 0, -29, 22, 25, -5, 44, 45, 29, 66, 71, + 49, 84, 92, 73, 92, 74, 72, 91, 37, 48, 99, 47, 31, 44, 36, 33, + -5, -11, 26, 6, -33, -22, -6, -32, -55, -44, -45, -52, -63, -73, -55, -51, + -77, -79, -61, -73, -91, -83, -70, -77, -74, -82, -85, -68, -88, -98, -57, -67, + -77, -58, -75, -66, -64, -78, -33, -37, -50, -19, -47, -38, -23, -41, 3, 6, + -7, 30, 0, -4, 24, 15, 31, 45, 44, 66, 44, 34, 58, 54, 59, 67, + 71, 87, 78, 60, 73, 84, 78, 76, 86, 95, 89, 76, 85, 94, 89, 73, + 82, 99, 85, 66, 75, 93, 75, 50, 56, 69, 59, 31, 31, 61, 29, -15, + 15, 5, -15, -14, -36, -25, -29, -69, -55, -53, -82, -78, -76, -95, -88, -69, + -80, -65, -63, -86, -58, -67, -59, -12, -28, -9, 29, -8, 13, 44, 22, 44, + 68, 53, 62, 91, 74, 81, 89, 64, 84, 78, 35, 78, 86, 44, 43, 47, + 45, 22, -5, 17, 21, -16, -24, -14, -14, -34, -50, -40, -36, -63, -71, -58, + -60, -69, -78, -78, -67, -81, -98, -78, -71, -89, -85, -84, -86, -82, -99, -82, + -60, -76, -75, -74, -76, -71, -86, -68, -37, -51, -34, -41, -57, -37, -51, -31, + -7, -17, -3, 1, 7, 22, 31, 46, 57, 41, 43, 56, 63, 62, 68, 85, + 86, 80, 84, 92, 96, 93, 93, 104, 105, 96, 99, 108, 106, 102, 98, 102, + 111, 99, 87, 106, 110, 85, 80, 88, 89, 79, 68, 70, 81, 48, 25, 39, + 32, 18, 9, 12, 0, -29, -31, -38, -60, -52, -63, -79, -71, -66, -62, -59, + -62, -74, -72, -73, -81, -43, -21, -28, 8, 10, -10, 16, 28, 27, 42, 50, + 47, 66, 76, 68, 81, 73, 67, 72, 39, 40, 67, 41, 23, 25, 22, 12, + -16, -22, -5, -27, -51, -44, -45, -57, -68, -73, -71, -74, -91, -89, -84, -90, + -97, -98, -98, -102, -105, -108, -103, -97, -105, -109, -101, -107, -113, -106, -92, -87, + -90, -92, -92, -92, -100, -92, -57, -56, -54, -40, -59, -58, -54, -61, -23, -9, + -12, 16, 0, -14, 4, 5, 17, 32, 41, 57, 55, 43, 54, 66, 67, 68, + 84, 89, 87, 87, 91, 98, 100, 96, 104, 109, 105, 103, 108, 111, 109, 105, + 105, 113, 111, 99, 102, 115, 104, 88, 90, 97, 93, 80, 75, 86, 75, 37, + 40, 43, 33, 20, 20, -14, -26, -36, -53, -52, -65, -75, -75, -69, -69, -69, + -74, -77, -76, -74, -59, -34, -26, -9, 9, 5, 13, 32, 39, 42, 53, 58, + 61, 73, 77, 77, 73, 61, 57, 46, 29, 37, 37, 17, 6, 2, -10, -27, + -38, -41, -46, -58, -68, -69, -75, -85, -89, -92, -97, -101, -103, -106, -107, -108, + -112, -111, -112, -115, -115, -115, -113, -111, -116, -115, -112, -116, -117, -110, -101, -98, + -101, -101, -98, -101, -101, -86, -69, -65, -59, -57, -62, -58, -54, -39, -19, -12, + 1, 7, -1, 5, 16, 24, 36, 46, 58, 64, 61, 64, 74, 79, 81, 90, + 96, 97, 100, 100, 104, 108, 107, 111, 114, 113, 115, 115, 115, 118, 117, 116, + 118, 119, 116, 115, 116, 117, 111, 104, 105, 107, 99, 93, 95, 91, 71, 57, + 53, 47, 38, 29, 23, 14, -11, -28, -38, -49, -58, -67, -73, -80, -84, -84, + -83, -82, -80, -78, -74, -67, -56, -42, -29, -16, -4, 7, 18, 29, 40, 49, + 57, 64, 70, 74, 78, 79, 77, 72, 67, 60, 53, 48, 42, 33, 23, 14, + 4, -6, -16, -24, -32, -40, -48, -55, -61, -68, -74, -78, -83, -87, -91, -94, + -96, -99, -101, -103, -104, -106, -107, -107, -107, -107, -107, -108, -107, -107, -107, -105, + -101, -98, -96, -94, -93, -91, -87, -82, -74, -67, -62, -57, -54, -49, -43, -35, + -25, -16, -7, -1, 4, 10, 17, 25, 33, 41, 49, 55, 59, 63, 69, 74, + 78, 83, 88, 91, 93, 96, 98, 100, 102, 104, 106, 107, 107, 108, 108, 109, + 109, 108, 108, 108, 107, 105, 104, 102, 99, 94, 91, 87, 83, 78, 73, 66, + 56, 46, 37, 28, 19, 9, 0, -11, -23, -35, -45, -55, -64, -71, -78, -83, + -85, -84, -83, -81, -79, -75, -70, -61, -49, -36, -23, -10, 2, 12, 24, 35, + 45, 53, 61, 67, 72, 76, 79, 78, 75, 70, 65, 58, 52, 46, 39, 29, + 20, 11, 1, -9, -18, -26, -34, -42, -50, -56, -63, -69, -74, -79, -83, -88, + -91, -94, -96, -98, -101, -102, -104, -105, -106, -106, -106, -106, -106, -106, -106, -106, + -105, -102, -98, -96, -94, -92, -90, -88, -84, -77, -70, -64, -59, -55, -51, -45, + -38, -29, -20, -11, -4, 2, 7, 13, 21, 29, 37, 44, 51, 56, 60, 65, + 70, 75, 80, 84, 88, 91, 93, 96, 98, 100, 102, 104, 105, 106, 107, 107, + 108, 108, 107, 107, 107, 106, 104, 103, 101, 99, 95, 91, 87, 83, 78, 73, + 67, 59, 49, 39, 30, 21, 12, 3, -8, -19, -31, -41, -51, -60, -68, -75, + -81, -84, -85, -84, -82, -80, -77, -73, -65, -55, -42, -29, -16, -4, 7, 18, + 29, 40, 49, 57, 64, 70, 74, 78, 79, 77, 73, 68, 62, 56, 50, 44, + 36, 26, 17, 7, -3, -12, -20, -28, -36, -44, -51, -58, -64, -70, -75, -79, + -84, -88, -91, -93, -96, -98, -100, -102, -103, -105, -105, -105, -105, -105, -105, -105, + -105, -104, -102, -99, -96, -94, -92, -90, -88, -85, -79, -72, -66, -61, -56, -52, + -47, -41, -33, -24, -15, -8, -1, 4, 10, 17, 24, 32, 40, 47, 53, 57, + 62, 67, 72, 77, 81, 85, 89, 91, 94, 96, 98, 100, 102, 104, 105, 105, + 106, 106, 107, 106, 106, 106, 105, 104, 102, 101, 99, 95, 91, 87, 83, 79, + 74, 68, 61, 52, 42, 33, 24, 15, 5, -5, -15, -27, -38, -48, -57, -66, + -72, -79, -83, -85, -85, -83, -81, -79, -75, -69, -60, -48, -35, -23, -10, 2, + 13, 24, 35, 45, 54, 61, 67, 72, 77, 78, 79, 76, 72, 66, 60, 54, + 49, 41, 32, 23, 12, 3, -4, -17, -15, 1, -1, 0, 0, 1, 3, 5, + 9, 13, 18, 24, 32, 38, 32, 18, -9, -48, -73, -41, 2, -3, -24, -34, + -44, -72, -111, -124, -62, 40, 40, -51, -35, 45, 46, -22, -79, 35, 78, -47, + -98, -88, -69, -57, -44, -31, -17, -9, -3, 6, 41, 85, 43, -91, -128, -65, + -25, -21, -19, -12, 2, 16, 29, 39, 49, 48, 10, -69, -47, 50, 8, -52, + -44, 5, 21, -40, -42, 33, 79, 66, 38, 24, 25, 26, 18, 21, 70, 117, + 98, 28, -1, 20, 22, 0, 1, 9, -10, -49, -33, 39, 68, 39, -5, -17, + -58, -76, 78, 104, 17, 6, -23, -43, -13, 58, 85, 43, 21, 35, 46, 31, + 22, 35, 14, -48, -74, -38, 6, 10, -8, -17, -24, -37, -60, -69, -41, 15, + 27, -21, -26, 18, 28, -1, -41, 5, 51, -9, -51, -48, -38, -31, -24, -16, + -8, -2, 1, 6, 23, 52, 41, -39, -83, -50, -19, -13, -12, -8, 1, 10, + 20, 27, 34, 35, 15, -40, -46, 27, 16, -35, -38, -6, 19, -18, -35, 17, + 61, 55, 33, 21, 22, 25, 21, 18, 52, 98, 92, 31, -5, 9, 17, -1, + -2, 7, -7, -47, -43, 24, 62, 39, -3, -20, -48, -88, 46, 113, 25, 4, + -20, -45, -25, 42, 82, 47, 19, 28, 42, 32, 18, 30, 19, -39, -77, -51, + -4, 10, -6, -18, -25, -37, -57, -70, -50, 4, 26, -15, -33, 9, 27, 6, + -38, -12, 50, 6, -47, -50, -40, -32, -25, -17, -10, -3, 0, 4, 17, 45, + 47, -23, -82, -60, -24, -14, -13, -10, -2, 7, 16, 24, 30, 33, 18, -32, + -56, 13, 23, -31, -41, -15, 19, -6, -35, 4, 52, 55, 35, 21, 22, 25, + 22, 15, 41, 89, 94, 38, -5, 4, 16, 2, -2, 7, -4, -41, -48, 12, + 58, 43, 2, -20, -38, -89, 14, 118, 38, 3, -15, -43, -32, 28, 78, 53, + 19, 24, 40, 34, 18, 26, 23, -28, -75, -61, -14, 10, -2, -16, -24, -34, + -53, -68, -55, -7, 25, -8, -36, 1, 27, 12, -31, -26, 45, 22, -39, -50, + -41, -32, -25, -17, -10, -4, 0, 3, 13, 38, 51, -5, -77, -69, -31, -15, + -14, -11, -4, 5, 13, 21, 27, 31, 20, -24, -61, -3, 28, -23, -43, -23, + 15, 5, -32, -6, 43, 53, 36, 22, 21, 26, 24, 14, 32, 79, 95, 46, + -3, 0, 15, 5, -1, 7, -1, -36, -52, 2, 53, 46, 7, -18, -30, -84, + -15, 114, 55, 4, -10, -40, -37, 15, 72, 59, 22, 20, 36, 36, 19, 23, + 26, -18, -70, -68, -25, 7, 2, -13, -22, -32, -49, -65, -59, -16, 22, -1, + -36, -8, 25, 17, -22, -35, 34, 36, -29, -48, -42, -32, -25, -18, -10, -4, + 0, 3, 10, 32, 52, 11, -67, -76, -38, -16, -13, -11, -6, 3, 11, 19, + 25, 30, 22, -15, -62, -19, 30, -14, -43, -30, 9, 13, -25, -15, 33, 51, + 37, 23, 21, 26, 26, 15, 24, 68, 94, 54, 0, -3, 13, 8, 1, 8, + 2, -30, -53, -8, 47, 49, 13, -16, -25, -75, -41, 102, 73, 6, -5, -36, + -40, 2, 65, 64, 25, 18, 33, 37, 21, 21, 27, -8, -63, -73, -36, 2, + 5, -10, -21, -30, -45, -62, -61, -25, 17, 5, -35, -17, 21, 21, -13, -39, + 20, 46, -16, -46, -42, -32, -25, -17, -10, -4, 0, 3, 8, 27, 50, 25, + -54, -81, -46, -19, -13, -12, -7, 1, 9, 17, 23, 28, 23, -8, -59, -35, + 27, -5, -42, -35, 2, 20, -16, -20, 24, 47, 38, 24, 21, 27, 28, 17, + 18, 58, 91, 62, 5, -6, 10, 10, 3, 9, 5, -24, -52, -17, 40, 50, + 18, -13, -22, -64, -60, 83, 90, 12, -3, -31, -41, -8, 55, 67, 30, 17, + 30, 37, 24, 19, 27, 1, -54, -75, -46, -4, 7, -7, -18, -28, -41, -58, + -61, -32, 11, 10, -31, -24, 17, 23, -4, -39, 5, 52, -2, -42, -42, -32, + -25, -17, -10, -4, 0, 3, 6, 22, 47, 35, -38, -82, -55, -23, -13, -12, + -8, -1, 7, 15, 21, 26, 23, -1, -53, -48, 20, 5, -39, -39, -6, 22, + -5, -22, 14, 43, 38, 25, 21, 27, 29, 19, 15, 47, 86, 68, 12, -7, + 7, 11, 4, 10, 7, -18, -50, -25, 33, 51, 24, -10, -20, -52, -72, 58, + 103, 21, -1, -26, -41, -17, 44, 67, 35, 16, 27, 36, 26, 18, 25, 8, + -45, -76, -55, -13, 7, -3, -16, -26, -38, -55, -61, -38, 4, 13, -26, -30, + 11, 25, 4, -36, -10, 51, 14, -37, -42, -33, -24, -17, -10, -4, 1, 3, + 6, 18, 42, 42, -22, -80, -63, -28, -14, -12, -9, -3, 5, 12, 19, 24, + 23, 3, -46, -58, 9, 14, -34, -41, -14, 21, 6, -21, 4, 36, 38, 26, + 21, 26, 30, 22, 13, 37, 78, 73, 20, -7, 4, 11, 6, 10, 10, -11, + -45, -33, 22, 49, 29, -4, -18, -40, -75, 23, 108, 40, 1, -18, -39, -26, + 28, 65, 42, 17, 22, 34, 29, 18, 23, 15, -30, -71, -65, -27, 3, 2, + -11, -22, -34, -49, -58, -45, -7, 13, -16, -35, -1, 24, 13, -23, -26, 37, + 36, -20, -39, -34, -24, -17, -10, -4, 1, 3, 5, 12, 33, 46, 6, -64, + -75, -40, -17, -12, -10, -5, 2, 9, 15, 20, 22, 10, -30, -65, -18, 20, + -19, -42, -27, 11, 21, -8, -8, 22, 34, 27, 22, 26, 31, 27, 14, 22, + 60, 75, 34, -4, -2, 8, 8, 11, 14, -2, -36, -42, 6, 44, 36, 4, + -15, -26, -66, -24, 95, 71, 8, -10, -33, -32, 7, 56, 51, 21, 17, 29, + 32, 20, 19, 20, -12, -59, -72, -45, -8, 5, -5, -17, -28, -42, -54, -50, + -21, 9, -5, -36, -16, 19, 21, -7, -34, 12, 51, 4, -33, -34, -25, -17, + -10, -4, 1, 4, 5, 9, 23, 44, 29, -39, -79, -55, -24, -13, -10, -7, + -1, 6, 12, 16, 20, 14, -15, -62, -46, 16, -2, -39, -36, -2, 29, 9, + -12, 8, 28, 27, 23, 25, 31, 31, 17, 13, 43, 72, 46, 2, -5, 5, + 8, 11, 16, 5, -26, -44, -8, 36, 40, 12, -12, -19, -52, -53, 67, 94, + 20, -5, -27, -35, -7, 45, 55, 27, 15, 25, 32, 23, 17, 21, 0, -47, + -73, -57, -19, 4, 0, -13, -24, -37, -50, -51, -29, 3, 1, -32, -26, 12, + 23, 3, -32, -6, 52, 22, -26, -34, -25, -17, -10, -4, 1, 5, 6, 8, + 18, 39, 38, -21, -76, -64, -30, -14, -10, -8, -2, 4, 10, 15, 18, 14, + -9, -56, -57, 7, 7, -35, -39, -10, 27, 18, -10, 2, 23, 26, 23, 24, + 31, 32, 20, 11, 35, 67, 51, 7, -6, 3, 8, 11, 17, 8, -20, -44, + -15, 31, 41, 16, -9, -17, -43, -61, 44, 102, 31, -2, -23, -35, -15, 36, + 56, 32, 0, -27, 1, -1, -1, 3, -4, -2, 1, -1, -2, 2, 3, -6, + 1, 2, -6, 2, 2, -4, -1, 2, -5, 1, 4, -4, 0, -1, 0, -1, + -2, 2, 2, -6, 0, 4, -3, -3, 4, -2, -3, -2, 0, 1, 1, -2, + -2, 3, -8, 27, -42, 11, 21, -35, 34, -25, 12, 9, -24, 14, 13, -38, + 53, -42, -3, 46, -73, 55, -16, -9, 28, -49, 38, -12, -21, 49, -51, 20, + 32, -73, 64, -28, -7, 32, -50, 42, -11, -30, 49, -21, -31, 46, -25, -7, + 20, -22, 18, -16, -10, 21, -23, 5, 28, -35, 8, 0, 8, -26, 19, 6, + -11, -20, 64, -46, -18, 51, -73, 119, -117, 46, 36, -80, 67, -46, 22, 0, + -24, 56, -59, 14, 26, -40, 24, -9, 20, -20, -15, 43, -26, -11, 9, 14, + -3, -31, 6, 54, -62, 3, 67, -78, 20, 21, -25, 31, -41, 18, 27, -53, + 32, 15, -48, 37, -11, 4, -12, -3, 31, -24, -21, 42, -10, -45, 55, -32, + 34, -43, -14, 86, -78, 8, 39, -35, -2, 13, 2, 5, -11, -4, 7, 5, + -31, 37, -4, -28, 28, -9, -11, 10, -1, 4, -18, 17, -9, -13, 24, -18, + 20, -18, -30, 59, -25, -29, 48, -15, -29, 23, 4, -3, -18, 14, 6, -8, + -19, 19, 8, -13, 0, 13, -18, 4, 1, 0, 0, 10, -14, -12, 39, -46, + 23, 9, -22, 23, -20, -22, 63, -42, -28, 77, -66, 12, 38, -56, 31, 27, + -77, 66, -11, -39, 59, -33, -41, 92, -54, -50, 96, -36, -46, 46, -17, 31, + -43, -28, 98, -57, -50, 84, -22, -44, 39, -8, 17, -28, -13, 63, -67, 16, + 10, 3, -15, -4, 36, -34, -1, 26, -27, -2, 13, 7, -22, 0, 27, -11, + -19, 6, 26, -42, 14, 18, -7, -14, -10, 37, -14, -24, 25, -4, -5, -10, + 3, 35, -39, -7, 31, -8, -23, 15, 4, -1, -25, 28, 7, -35, 34, -16, + -1, 9, -35, 45, -22, -17, 48, -52, 24, 22, -65, 48, 7, -45, 47, -19, + -33, 71, -70, 46, -7, -52, 68, -25, -35, 48, -13, -17, 14, 2, -12, 8, + -10, 1, 22, -32, 4, 34, -26, -18, 29, -7, -19, 15, -7, 15, -8, -29, + 50, -22, -35, 53, -19, -37, 47, -9, -40, 41, 1, -27, 7, 3, 0, 0, + -7, 13, -7, -21, 26, 14, -44, 11, 40, -51, 10, 26, -28, 16, -13, -3, + 31, -42, 11, 34, -52, 11, 34, -43, 10, 29, -19, -21, 27, -10, -5, 10, + -14, 11, 3, -35, 43, 3, -52, 37, 22, -66, 49, -12, -19, 50, -58, 16, + 42, -70, 50, -2, -42, 60, -69, 43, 11, -57, 54, -8, -31, 23, -8, -7, + 24, -32, 11, 21, -51, 60, -44, -6, 68, -87, 33, 45, -79, 50, -7, -13, + 21, -40, 31, 12, -41, 18, 24, -39, 15, 7, -17, 25, -20, -12, 43, -47, + 17, 6, -16, 10, 4, -11, -1, 14, -10, -7, 6, 9, -23, 9, 3, 13, + -30, 16, 16, -33, 17, 4, -17, 23, -29, 3, 54, -86, 50, 11, -41, 30, + -23, 15, 18, -60, 56, 7, -65, 49, -4, -12, 1, -6, 19, -4, -33, 35, + -10, -12, 13, -2, -2, -2, 2, -10, 16, -8, -11, 19, -6, -19, 24, -14, + 9, 3, -24, 24, -6, -13, 19, -11, -6, 6, -9, 16, -8, -10, 14, -10, + -1, -5, 16, -8, -25, 37, -11, -27, 37, -14, -13, 19, -17, 14, -5, -15, + 26, -27, 10, 11, -23, 22, -5, -19, 25, -7, -28, 44, -35, 0, 25, -31, + 31, -10, -26, 46, -41, 2, 33, -40, 24, 8, -43, 44, -12, -25, 37, -25, + -6, 29, -27, 5, 24, -40, 24, -1, -25, 23, -1, -6, -2, -1, 14, -24, + 8, 13, -11, 0, -13, 16, 15, -56, 43, 12, -35, 14, -9, 18, -10, -19, + 28, -3, -27, 23, -2, -14, 27, -35, 10, 35, -68, 44, 7, -43, 46, -21, + -25, 56, -35, -21, 51, -33, -8, 28, -27, 19, -2, -26, 36, -26, 3, 13, + -12, 6, -10, 8, -14, 15, -12, 0, 13, -9, -16, 32, -27, 3, 23, -49, + 49, -17, -31, 63, -64, 25, 36, -76, 61, -11, -47, 75, -54, -9, 69, -81, + 32, 29, -63, 46, -7, -26, 39, -31, 6, 18, -26, 13, -5, 5, -5, -2, + 5, -12, 17, -17, -2, 22, -25, 1, 20, -19, 3, 6, -6, 3, -9, 10, + -6, -3, 7, -7, -3, 12, -5, -5, -11, 24, -7, -23, 24, 0, -14, 0, + 12, -10, -2, 5, 0, 1, -10, 10, -2, -17, 26, -11, -16, 28, -22, 6, + 4, -17, 30, -27, -7, 46, -54, 15, 29, -42, 25, -4, -15, 26, -29, 11, + 15, -28, 19, -7, 1, 8, -20, 14, 1, -15, 11, -2, -2, 0, -10, 15, + -5, -12, 15, -1, -15, 12, 4, -15, 9, -1, -9, 9, -5, -6, 13, -12, + 1, 6, -6, -3, 6, -4, 0, -6, 11, -9, -2, 13, -12, -2, -1, 8, + -11, 4, 2, -6, 4, -4, 4, 0, -13, 15, 0, -21, 23, -5, -15, 15, + -2, -9, 6, -2, -4, 2, 3, -1, -7, 7, -2, -9, 6, 2, -9, 4, + 5, -12, 10, -9, 4, 5, -16, 12, -2, -13, 20, -13, -4, 17, -23, 14, + 2, -20, 22, -13, -3, 15, -22, 12, 4, -18, 17, -7, -7, 13, -14, 6, + 4, -10, 9, -5, -6, 7, 0, -7, 8, -4, -1, 0, -6, 4, 7, -14, + 2, 13, -16, 3, 10, -15, 7, -1, -10, 14, -10, -2, 11, -9, -4, 7, + -6, 3, -3, -5, 9, -6, -3, 5, 1, -7, 3, -2, 0, -2, 0, 4, + -3, -2, 4, -6, 4, -2, -2, 0, 1, 0, -7, 7, -2, -7, 9, -7, + -4, 11, -15, 11, -2, -9, 9, -4, -3, 2, 3, -7, 5, 0, -5, 6, + -7, 1, 7, -10, -2, 13, -9, -4, 8, -4, -2, -1, 1, 1, -7, 4, + 5, -8, 0, 6, -6, 0, 3, -4, 0, 1, -2, 2, -4, -4, 8, -7, + -1, 6, -9, 8, -3, -6, 12, -12, 1, 10, -11, 1, 5, -6, 3, -2, + -3, 7, -10, 2, 7, -12, 5, 2, -5, 3, -5, 0, 6, -10, 3, 4, + -8, 2, 2, -3, 3, -8, 8, 2, -14, 10, 3, -12, 8, 2, -11, 8, + -2, -6, 9, -7, -4, 10, -9, -1, 7, -7, 1, 3, -8, 8, -2, -8, + 10, -3, -5, 5, -6, 3, 1, -8, 10, -5, -5, 7, -4, -2, 2, -3, + 1, -1, -3, 4, -3, 0, 0, 0, 0, -4, 3, -2, -3, 3, -5, 3, + 0, -7, 5, 1, -8, 5, 1, -6, 6, -5, 0, 3, -7, 3, 2, -6, + 3, 2, -6, 3, 1, -3, -2, 5, -4, -1, 3, -4, 0, 0, -3, 5, + -5, -3, 7, -5, -3, 6, -4, 0, -1, -3, 3, -2, -1, 2, -1, -2, + 1, -2, 1, -1, -7, 8, -1, 5, -7, 13, -22, 8, -7, 8, -110, -28, + 24, 54, 36, 2, 60, -45, 57, 42, -43, 20, 41, -66, 24, -11, 18, -18, + -38, -63, -36, 30, -11, 33, 25, 30, 18, 11, -18, -5, 5, -46, 40, 1, + -13, -18, -20, -31, 20, 10, 29, -7, -18, 40, -29, -17, 42, -19, 6, -4, + 6, -8, 10, -26, -5, 3, 1, -17, 6, 0, 19, -1, 8, 0, -6, -10, + -1, -12, -1, 1, -3, 8, -7, 4, 11, 4, 14, -13, 16, -19, -4, -13, + -13, -14, 6, 4, -1, 4, 11, -1, 11, -1, 1, -4, -1, -15, 6, -9, + 1, -1, 0, 3, 1, -8, 3, -1, -1, 2, -2, 2, -2, 1, -5, -7, + 3, -3, 6, -3, 4, -1, 0, -4, 2, -7, 3, -6, -1, -1, 4, 0, + 3, -2, 2, -5, 5, -8, -3, -3, 2, -5, 7, -1, 4, -2, 4, -10, + 6, -6, -1, -4, 5, -13, 7, -6, 5, -8, 17, -20, 14, -6, 9, -40, + 71, -127, 9, -73, 127, 76, -28, 74, -32, 8, -62, -49, -38, 40, -68, 22, + -12, 68, 10, 39, -10, 0, 35, -23, 0, -59, -15, -7, -3, -23, 1, -20, + 37, 27, 2, 30, -2, 17, 2, -5, -7, -27, -29, 16, -3, -11, 1, -16, + -5, -8, -10, 7, 32, 9, 5, -4, 16, 5, -8, -17, -16, 5, -13, 8, + 11, 15, -10, -9, 0, -1, 2, 7, -3, -23, 9, 2, 3, 1, -13, -1, + -6, 11, -6, 8, 1, 12, -12, 9, -14, 8, -1, 0, -3, -13, 4, -7, + -4, 8, 5, -5, -7, 4, -2, -3, 2, 3, -6, 8, -3, 1, -3, -2, + 2, -6, 2, -4, -3, -4, 3, 1, 0, 0, 1, -1, -1, 2, -2, 0, + -4, -2, 1, 2, 0, -3, 1, -3, 0, -1, -3, -6, 2, -2, 3, -4, + 10, -8, 9, -5, 12, -19, 46, 37, -128, 60, -90, 102, -65, 40, -57, 39, + -6, 23, -8, 19, 24, 15, -17, -47, -27, -36, -16, 21, 3, 23, 14, 50, + -8, 19, 25, 7, -9, -28, -63, -37, 0, -42, 54, -17, 68, -3, 30, -12, + -4, 11, -15, 9, -25, -15, -2, -27, -25, 38, -8, -13, 33, 24, 12, -38, + 39, -12, -3, -17, -44, 38, 2, 27, 3, -5, -4, -13, -30, -56, -4, 11, + 1, 9, 17, 46, 25, -14, 6, -3, -7, -21, 2, 16, -5, -22, 2, -2, + 6, -12, -25, -15, 10, 9, 8, 11, 43, 8, -5, -22, -16, 14, -31, 16, + 7, -7, -26, -20, -2, 9, 11, 26, 7, 6, -20, -13, 0, 4, 17, -17, + -18, 10, 2, -10, 27, -8, 24, -23, -14, 1, 0, 13, -19, 14, 10, -16, + 16, -4, -20, 20, -33, 2, 2, 24, 21, -3, -26, -24, -18, -18, 10, 10, + 24, 18, 2, 9, -24, 16, -14, -8, 9, -5, -14, 8, -5, 30, -11, 11, + -13, -15, -12, 7, 4, -13, -13, 13, -13, 12, 23, 9, 0, 14, -10, -9, + -35, -2, -21, 12, -1, 17, 19, 11, -4, 0, -18, -24, 11, -10, 1, 11, + 12, -13, -16, 10, -23, 21, 9, -9, 3, 12, -6, 3, -5, 12, 0, -2, + 0, -19, -9, 5, -11, -7, 10, 1, -3, 9, 18, -6, 0, -1, 1, -13, + 2, 1, -3, -8, 17, -4, -9, 18, -15, 8, -1, -11, -5, -14, 11, -5, + -7, 12, 16, -7, 7, -3, -11, -5, -6, 1, 4, -3, -3, 15, 5, 0, + 3, 6, -16, 4, -14, -6, -9, -4, 2, 11, 11, 7, -2, 4, -12, -7, + -14, -6, -7, 9, 4, 7, -2, 6, 5, 6, -4, -3, -4, 7, -7, -11, + -9, 0, -3, 7, -2, -2, 3, 13, -4, -6, -15, 9, -7, -1, 4, 6, + 5, 8, -6, -8, 0, -11, -4, 6, -8, 4, 3, 5, 13, -4, -9, -3, + 4, -3, -3, 4, -1, -12, 6, -14, 2, 3, 15, 2, 6, -7, -8, 3, + 1, -2, 3, -3, -12, -6, -14, 7, -2, 13, 6, 10, 6, 0, -2, -10, + -12, -8, -6, -7, -6, 6, 4, -2, 5, 2, 0, -1, 3, -11, 4, 0, + 20, -8, -2, 0, -1, -3, 7, -3, -4, -2, -6, -10, -10, -8, 1, 2, + 5, 8, 2, 5, 8, 3, 4, 3, -2, -15, 0, -1, -7, -2, -5, -10, + 10, -1, 5, 3, 5, -1, -2, -8, -5, -9, 1, -8, 6, 5, 4, 1, + 1, 2, 3, -2, 4, -7, 1, -7, -9, -2, 0, 2, 3, 6, -8, 8, + 3, 0, -2, -9, -3, -2, 0, 3, -1, -2, -3, 7, -3, 10, -8, 1, + -12, 3, -7, 2, -3, 7, 4, 4, 0, 0, -6, -1, -5, -3, -4, -7, + 0, 5, 7, 0, 2, -3, 10, -1, 3, -7, -5, -4, -9, -3, -7, 5, + -4, 9, 2, 1, 4, 5, 0, -5, 1, -8, 4, -9, 5, -5, 0, 3, + -2, -1, 1, 1, -7, 7, 0, 3, -5, 0, -3, -1, -1, -5, -1, 1, + -1, 1, -1, 0, 2, 0, 2, -7, -7, 4, -1, 0, 3, 4, -1, -3, + -4, -6, 3, -2, 4, -1, 5, -2, -1, -5, -2, -4, 1, 3, 2, 2, + 0, -3, 1, 1, -3, -3, -1, 1, -3, -2, -1, -2, -3, -1, 0, 4, + 3, 5, 2, 1, -4, -9, -3, -7, 1, -2, 7, -2, 3, 3, 3, 1, + 0, -1, -6, -7, -6, -4, -1, 1, 0, 5, 2, -2, 2, -3, -1, 3, + -1, 1, -4, -4, -5, 0, -7, 2, -4, 3, 4, 1, 2, -1, -1, -2, + -2, 0, -1, 1, -1, -1, -3, 1, 1, 3, -3, -1, 1, 1, -2, -3, + -8, -5, 0, -1, 5, 2, 3, 1, -2, -1, -1, -3, 1, 1, -2, -3, + -3, -1, 0, -1, 1, 2, 2, 5, 0, -1, -2, -1, -2, 0, -4, 0, + -5, -1, -1, 0, 1, 5, 4, -2, -1, -2, 0, -6, -1, 0, 1, -1, + -2, 1, 0, 0, 3, 1, -2, 1, -2, -4, -1, 0, -1, -1, -4, -2, + -4, 2, -1, 1, 0, 3, 2, 0, 4, -1, 4, -6, 2, -4, -3, -5, + -4, -3, 0, 2, 0, 1, 4, 2, 2, -2, -2, -5, -6, -5, -3, -2, + 1, -1, 0, 0, 2, 2, 2, 0, 4, -2, 3, 2, -1, -2, -3, -3, + -3, -5, -5, -5, -1, -1, 0, 2, 2, 4, 1, 2, 1, 2, -1, -1, + -3, -4, -5, -3, -2, -2, -1, 1, 4, 2, 2, 2, 1, -1, -2, -6, + -2, -3, 2, -1, 1, -2, 0, 2, 1, 2, -2, 1, 0, -2, -2, -3, + 0, -2, -1, -1, 0, -2, -2, 1, 0, 2, -1, 1, -1, 0, -1, -1, + 0, -1, 0, -2, 2, 0, 2, 2, 5, 3, 6, 8, 12, 13, -6, -110, + -7, 51, -99, -128, 10, -28, -39, 25, -33, -27, 41, 34, -5, 17, 23, 25, + 24, 23, 20, 24, 25, 24, 21, 20, 23, 23, 16, 20, 9, 20, 18, 10, + 14, 5, 14, 11, 7, 5, 3, 10, 2, 7, -4, 0, 3, 0, -3, -5, + -6, -1, -12, -4, -17, -10, 9, -42, -40, 65, 40, -58, 29, 72, 39, 50, + 31, -1, 30, 25, -7, -4, -33, -47, -29, -49, -74, -69, -71, -79, -61, -51, + -57, -53, -34, -20, -22, -16, -10, -6, -2, 1, 3, 4, 8, 8, 12, 10, + 9, 14, 13, 12, 12, 13, 12, 12, 14, 12, 12, 12, 12, 13, 12, 9, + 11, 11, 11, 7, 8, 7, 8, 9, 2, 5, 8, -6, 2, 17, -17, -20, + 18, 5, -15, 15, 27, 21, 37, 44, 41, 46, 38, 26, 32, 26, -4, -15, + -6, -20, -44, -50, -54, -60, -59, -58, -58, -54, -46, -38, -32, -26, -19, -14, + -9, -5, -1, 2, 5, 7, 8, 10, 11, 12, 13, 13, 14, 14, 14, 13, + 13, 14, 15, 14, 11, 13, 14, 13, 12, 10, 12, 12, 10, 10, 8, 6, + 11, 9, -1, 5, 11, -1, -6, 1, -1, -4, 0, -1, 0, 14, 25, 24, + 28, 37, 38, 38, 38, 31, 22, 14, 4, -5, -15, -26, -38, -47, -52, -54, + -56, -57, -55, -51, -45, -39, -34, -28, -22, -17, -13, -8, -3, -1, 2, 5, + 7, 8, 10, 11, 12, 13, 13, 13, 13, 14, 14, 13, 13, 14, 13, 12, + 13, 13, 12, 11, 12, 11, 9, 11, 9, 6, 7, 8, 5, 3, 2, 0, + 0, 0, -2, -3, 0, 3, 6, 11, 18, 23, 27, 31, 34, 35, 32, 27, + 21, 14, 5, -5, -15, -26, -35, -43, -48, -52, -53, -53, -52, -49, -44, -40, + -35, -29, -24, -19, -14, -10, -6, -3, 1, 3, 5, 7, 9, 10, 11, 12, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 13, 12, 11, 13, 11, 10, + 10, 9, 9, 8, 7, 7, 5, 4, 3, 2, 0, -1, -1, 0, 2, 4, + 8, 12, 17, 22, 25, 28, 30, 30, 28, 24, 19, 12, 3, -5, -14, -23, + -31, -37, -43, -46, -46, -48, -47, -43, -41, -38, -33, -29, -25, -21, -16, -12, + -8, -5, -2, 0, 3, 5, 7, 9, 10, 11, 12, 12, 13, 14, 13, 13, + 13, 13, 13, 12, 12, 12, 11, 11, 11, 10, 9, 9, 8, 7, 7, 6, + 5, 4, 4, 3, 3, 3, 3, 5, 6, 8, 10, 12, 14, 17, 18, 19, + 20, 19, 17, 14, 10, 5, 0, -6, -11, -17, -22, -26, -29, -32, -34, -34, + -35, -34, -32, -31, -28, -26, -23, -20, -17, -14, -11, -8, -5, -3, 0, 2, + 4, 6, 7, 8, 9, 10, 11, 11, 12, 12, 12, 12, 11, 11, 11, 10, + 10, 9, 9, 8, 8, 7, 7, 6, 5, 5, 5, 4, 4, 5, 5, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 13, 13, 13, 12, 10, 8, 5, 2, + -2, -6, -10, -14, -18, -21, -24, -26, -28, -29, -29, -30, -29, -28, -27, -25, + -23, -20, -18, -15, -12, -10, -7, -4, -2, 0, 2, 4, 6, 7, 9, 10, + 10, 11, 11, 12, 12, 12, 12, 11, 11, 11, 10, 10, 9, 9, 8, 8, + 7, 7, 6, 6, 5, 5, 5, 5, 6, 6, 7, 7, 8, 9, 10, 11, + 12, 13, 13, 13, 12, 11, 10, 8, 5, 2, -1, -5, -9, -13, -16, -19, + -22, -24, -26, -27, -28, -28, -28, -27, -26, -24, -22, -20, -18, -15, -13, -10, + -7, -5, -2, 0, 2, 4, 5, 7, 8, 9, 10, 11, 11, 11, 11, 11, + 11, 11, 11, 10, 10, 9, 9, 8, 8, 7, 7, 6, 6, 6, 5, 5, + 5, 5, 6, 6, 6, 7, 8, 9, 10, 11, 11, 12, 12, 12, 11, 10, + 9, 7, 5, 2, -1, -5, -8, -12, -15, -18, -21, -23, -25, -26, -27, -27, + -27, -26, -25, -24, -22, -20, -18, -16, -13, -11, -8, -6, -3, -1, 1, 3, + 4, 6, 7, 8, 9, 10, 10, 10, 11, 11, 11, 10, 10, 10, 10, 9, + 9, 8, 8, 7, 7, 6, 6, 6, 5, 5, 5, 5, 6, 6, 6, 7, + 8, 9, 9, 10, 11, 11, 11, 11, 11, 10, 9, 7, 4, 2, -1, -4, + -7, -11, -14, -17, -19, -21, -23, -24, -25, -26, -26, -25, -24, -23, -22, -20, + -18, -16, -13, -11, -9, -6, -4, -2, 0, 2, 4, 5, 7, 8, 9, 9, + 10, 10, 11, 11, 11, 11, 10, 10, 10, 9, 9, 8, 8, 7, 7, 7, + 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 8, 9, 9, 10, 11, 11, + 11, 11, 10, 10, 8, 7, 5, 2, -1, -3, -7, -10, -13, -15, -18, -20, + -22, -23, -24, -25, -25, -24, -24, -23, -21, -20, -18, -16, -14, -11, -9, -7, + -5, -2, 0, 1, 3, 5, 6, 7, 8, 9, 9, 10, 10, 10, 10, 10, + 10, 10, 9, 9, 8, 8, 8, 7, 7, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 7, 7, 8, 8, 9, 9, 9, 10, 9, 9, 8, 7, 6, 4, + 2, 0, -2, -5, -7, -10, -12, -15, -17, -18, -20, -21, -21, -22, -22, -21, + -21, -20, -18, -17, -15, -13, -12, -10, -8, -6, -4, -2, 0, 1, 3, 4, + 5, 6, 7, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 8, 7, + 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, + 8, 8, 8, 8, 7, 6, 5, 4, 3, 1, -1, -3, -5, -7, -9, -10, + -12, -14, -15, -16, -17, -18, -18, -18, -18, -17, -17, -16, -15, -13, -12, -11, + -9, -7, -6, -4, -3, -1, 0, 1, 3, 4, 5, 5, 6, 7, 7, 7, + 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 5, + 4, 3, 2, 0, -1, -3, -5, -7, -9, -10, -12, -13, -15, -16, -17, -17, + -18, -18, -18, -17, -17, -16, -15, -14, -12, -11, -9, -8, -6, -5, -3, -2, + -1, 1, 2, 3, 4, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 6, 6, 5, 4, 3, 2, 0, -1, -3, + 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 5, + 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 6, 7, 8, 9, 10, 10, + 11, 12, 12, 13, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 26, + 27, 29, 29, 29, 28, 28, 28, 29, 30, 31, 31, 31, 31, 28, 19, -8, + -41, -53, -57, -59, -60, -62, -62, -63, -64, -65, -65, -66, -67, -69, -69, -69, + -72, -74, -73, -74, -76, -78, -79, -81, -82, -82, -83, -81, -83, -85, -81, -81, + -88, -90, -80, -64, -47, -32, -23, -18, -15, -13, -12, -12, -12, -13, -13, -13, + -13, -13, -12, -12, -11, -9, -7, -6, -4, -2, -1, 0, 1, 2, 4, 5, + 7, 10, 12, 14, 16, 18, 19, 18, 19, 21, 19, 20, 22, 22, 22, 25, + 27, 28, 29, 29, 29, 29, 29, 30, 31, 31, 31, 33, 34, 34, 35, 34, + 33, 31, 30, 29, 26, 25, 26, 25, 22, 22, 21, 20, 20, 19, 19, 19, + 18, 18, 18, 17, 17, 17, 17, 16, 16, 16, 15, 13, 13, 14, 14, 15, + 13, 12, 13, 13, 11, 12, 14, 14, 16, 17, 15, 16, 19, 19, 19, 19, + 21, 19, 17, 18, 19, 18, 15, 15, 17, 18, 18, 13, 11, 14, 15, 14, + 11, 6, 5, 10, 13, 17, 18, 11, 2, -2, -2, -3, 2, 14, 24, 30, + 37, 47, 52, 52, 56, 63, 65, 65, 63, 65, 72, 75, 73, 71, 73, 77, + 82, 82, 77, 77, 82, 90, 99, 104, 99, 89, 84, 86, 94, 106, 119, 127, + 126, 117, 104, 87, 64, 42, 24, 10, -2, -15, -22, -25, -27, -30, -35, -37, + -36, -34, -33, -36, -40, -42, -44, -43, -44, -48, -53, -57, -59, -57, -53, -52, + -53, -57, -62, -68, -73, -75, -75, -71, -63, -56, -48, -40, -34, -29, -26, -23, + -22, -21, -19, -19, -20, -21, -22, -22, -22, -22, -22, -21, -21, -21, -20, -19, + -19, -18, -18, -17, -17, -16, -14, -14, -13, -11, -9, -9, -9, -9, -9, -8, + -8, -8, -8, -8, -7, -6, -7, -6, -4, -3, -2, -2, -3, -4, -3, -3, + -2, -1, 0, 0, -1, -1, 0, -1, -1, -1, -3, -5, -5, -8, -10, -10, + -9, -9, -10, -11, -11, -11, -11, -11, -10, -9, -10, -10, -10, -11, -12, -12, + -13, -12, -11, -12, -14, -14, -11, -10, -12, -11, -11, -12, -12, -11, -11, -13, + -12, -9, -6, -6, -7, -7, -6, -5, -4, -4, -5, -8, -12, -11, -8, -4, + -3, -5, -6, -7, -9, -12, -13, -8, -3, -2, -4, -8, -11, -14, -15, -17, + -19, -19, -15, -8, -1, 2, 4, 8, 12, 17, 23, 26, 25, 24, 25, 30, + 36, 40, 39, 36, 33, 32, 33, 37, 43, 49, 53, 53, 49, 45, 43, 43, + 46, 52, 60, 67, 76, 82, 82, 78, 69, 58, 47, 37, 26, 14, 2, -9, + -16, -21, -24, -28, -32, -35, -37, -38, -37, -36, -36, -36, -39, -43, -46, -49, + -51, -49, -47, -46, -45, -45, -48, -52, -58, -62, -65, -66, -65, -62, -58, -54, + -50, -45, -39, -34, -30, -28, -25, -23, -21, -20, -20, -20, -20, -19, -18, -19, + -20, -18, -17, -18, -17, -17, -18, -17, -16, -15, -15, -13, -12, -10, -10, -10, + -9, -8, -7, -6, -4, -4, -5, -6, -5, -4, -4, -3, -2, -2, -1, -1, + -1, 0, 2, 3, 2, 2, 3, 2, 1, 2, 4, 5, 5, 4, 4, 4, + 3, 2, 2, 1, 0, 0, -1, -4, -5, -4, -2, -2, -3, -3, -3, -2, + -1, -2, -3, -2, -3, -4, -4, -3, -4, -6, -7, -4, 0, 0, -2, -4, + -4, -3, -2, -2, -3, -4, -4, -3, -2, -1, 3, 6, 8, 6, 3, 0, + 0, 2, 4, 5, 4, 3, 2, 2, 2, 1, 0, -1, 2, 7, 11, 9, + 6, 2, -1, -3, -3, -5, -7, -8, -6, -3, 2, 8, 13, 17, 18, 18, + 19, 23, 28, 34, 40, 42, 42, 40, 39, 39, 40, 42, 46, 50, 55, 59, + 59, 55, 51, 48, 48, 51, 57, 63, 70, 76, 82, 86, 88, 89, 86, 80, + 71, 61, 51, 43, 34, 25, 18, 10, 2, -5, -9, -12, -13, -12, -12, -13, + -14, -17, -22, -26, -29, -28, -27, -25, -24, -24, -25, -27, -31, -35, -40, -43, + -46, -47, -49, -49, -46, -43, -40, -36, -32, -28, -24, -21, -18, -16, -14, -13, + -13, -12, -11, -11, -12, -11, -10, -9, -11, -11, -11, -12, -12, -12, -10, -10, + -10, -10, -9, -8, -7, -6, -5, -4, -4, -4, -4, -4, -3, -2, -2, -1, + -2, -3, -2, -1, 0, 0, 1, 2, 3, 2, 1, 1, 2, 3, 3, 4, + 5, 4, 4, 5, 6, 7, 6, 4, 3, 3, 3, 2, -1, -3, -3, -1, + -1, -2, -3, -3, -2, -1, 1, 0, -1, -1, -2, -5, -6, -5, -4, -4, + -4, -4, -6, -6, -4, -1, 0, -2, -6, -9, -10, -8, -5, -4, -3, -3, + -1, 1, 1, -1, -3, -4, -2, 0, 2, 2, 0, -3, -6, -7, -6, -4, + -3, -2, -1, -1, -1, 0, 1, 0, -3, -9, -14, -18, -18, -15, -12, -9, + -8, -7, -5, -3, -2, 0, 5, 11, 17, 22, 25, 24, 23, 21, 20, 22, + 27, 32, 37, 40, 41, 40, 39, 37, 35, 34, 34, 35, 39, 45, 52, 59, + 66, 71, 73, 75, 74, 71, 65, 60, 55, 48, 39, 28, 17, 7, -1, -7, + -11, -13, -13, -14, -17, -21, -24, -28, -31, -32, -32, -32, -32, -31, -29, -29, + -30, -33, -36, -40, -44, -47, -50, -52, -54, -55, -54, -52, -49, -47, -43, -39, + -35, -31, -28, -26, -24, -22, -21, -19, -18, -17, -17, -16, -15, -16, -18, -17, + -16, -16, -17, -18, -18, -17, -16, -16, -14, -13, -13, -12, -12, -12, -11, -10, + -10, -9, -7, -8, -9, -10, -10, -8, -6, -5, -6, -6, -5, -3, -3, -4, + -4, -4, -3, -2, -2, -1, -1, -1, 0, 2, 3, 3, 3, 2, 1, 0, + -1, -1, -1, -2, -3, -5, -5, -4, -2, -3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, + 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 3, 2, 0, + -1, 1, 2, 1, -1, -1, 2, 2, 0, 1, 2, 2, -1, -4, -10, -21, + -30, -36, -41, -44, -40, -30, -18, -10, -8, -11, -13, -8, 3, 18, 32, 41, + 44, 45, 48, 49, 43, 32, 23, 14, 7, 8, 16, 27, 35, 37, 30, 18, + 9, 5, 3, 2, 1, 1, -1, -6, -11, -12, -6, -2, -5, -11, -18, -28, + -39, -47, -55, -69, -86, -99, -102, -92, -70, -46, -28, -15, -3, 7, 17, 26, + 28, 24, 23, 30, 42, 53, 57, 50, 36, 21, 5, -5, -4, 6, 20, 31, + 35, 34, 29, 26, 27, 37, 56, 76, 85, 80, 71, 63, 55, 47, 34, 13, + -13, -32, -39, -40, -46, -65, -93, -117, -128, -128, -126, -120, -110, -96, -78, -58, + -36, -14, 3, 10, 20, 41, 60, 68, 63, 54, 45, 39, 36, 32, 28, 29, + 35, 41, 47, 46, 41, 39, 43, 53, 68, 80, 78, 64, 46, 28, 13, 3, + -9, -35, -64, -80, -82, -74, -66, -71, -91, -111, -121, -118, -105, -86, -68, -57, + -49, -37, -22, -7, 5, 14, 26, 42, 55, 56, 46, 35, 25, 14, 6, 2, + 1, 3, 11, 22, 32, 40, 43, 42, 46, 60, 77, 88, 90, 78, 54, 30, + 14, 2, -15, -37, -62, -82, -90, -89, -86, -90, -99, -107, -109, -101, -81, -54, + -29, -14, -5, 7, 24, 40, 49, 56, 68, 83, 92, 92, 87, 74, 54, 32, + 12, -5, -19, -25, -24, -18, -7, 1, -1, -6, -4, 13, 41, 69, 84, 80, + 63, 44, 32, 29, 25, 11, -10, -25, -31, -35, -40, -48, -65, -87, -104, -109, + -102, -87, -69, -58, -54, -42, -21, 0, 13, 29, 51, 71, 84, 89, 86, 75, + 54, 33, 14, -3, -19, -29, -27, -22, -18, -11, -8, -16, -26, -19, 2, 24, + 40, 48, 42, 27, 21, 29, 34, 24, 7, -5, -14, -23, -28, -32, -45, -67, + -82, -85, -78, -63, -46, -34, -29, -24, -13, 0, 12, 25, 44, 65, 79, 85, + 86, 78, 60, 41, 27, 12, -5, -15, -15, -14, -13, -8, -7, -17, -27, -23, + -3, 23, 44, 51, 43, 25, 12, 11, 14, 8, -3, -10, -15, -22, -28, -30, + -36, -55, -73, -78, -74, -71, -63, -51, -43, -39, -34, -25, -18, -9, 8, 28, + 46, 56, 61, 62, 58, 47, 36, 28, 20, 12, 11, 16, 19, 20, 21, 15, + 0, -6, 10, 37, 57, 63, 55, 36, 15, 2, -3, -9, -19, -27, -34, -43, + -49, -49, -52, -66, -82, -86, -81, -77, -71, -61, -51, -47, -43, -35, -22, -12, + 2, 24, 47, 58, 63, 67, 66, 58, 51, 45, 34, 18, 9, 7, 7, 7, + 8, 1, -14, -24, -12, 18, 47, 64, 68, 63, 53, 42, 37, 38, 36, 29, + 21, 16, 11, 5, -2, -17, -36, -49, -52, -56, -62, -63, -61, -61, -63, -60, + -56, -49, -37, -19, 2, 17, 25, 30, 34, 37, 37, 37, 34, 25, 15, 11, + 13, 14, 14, 8, -7, -21, -16, 9, 37, 53, 60, 61, 53, 40, 33, 34, + 32, 22, 14, 12, 10, 6, -2, -15, -32, -48, -57, -60, -63, -67, -66, -63, + -63, -65, -64, -58, -49, -34, -13, 6, 16, 21, 28, 34, 38, 41, 43, 36, + 25, 19, 21, 26, 27, 20, 4, -11, -11, 7, 31, 53, 66, 70, 66, 57, + 49, 47, 44, 33, 21, 17, 16, 10, 1, -9, -26, -46, -60, -67, -76, -84, + -84, -80, -78, -79, -78, -73, -65, -52, -32, -11, 4, 10, 17, 25, 32, 36, + 40, 37, 24, 13, 15, 23, 23, 11, -5, -19, -25, -16, 9, 38, 59, 70, + 72, 67, 63, 63, 60, 50, 39, 32, 28, 22, 14, 3, -14, -34, -53, -65, + -76, -87, -94, -93, -91, -94, -96, -93, -86, -76, -56, -30, -9, 4, 16, 29, + 40, 51, 63, 65, 52, 39, 39, 45, 42, 29, 11, -7, -22, -24, -8, 19, + 42, 54, 60, 63, 61, 58, 57, 53, 43, 36, 36, 34, 28, 21, 11, -5, + -24, -39, -52, -65, -75, -77, -75, -75, -78, -80, -78, -73, -61, -43, -23, -9, + 1, 10, 23, 39, 52, 56, 47, 36, 35, 41, 42, 33, 17, -2, -24, -35, + -26, -3, 18, 32, 42, 50, 52, 53, 52, 47, 38, 31, 30, 31, 29, 26, + 22, 14, -1, -18, -33, -46, -58, -65, -65, -65, -71, -79, -81, -79, -75, -62, + -42, -27, -21, -14, 1, 19, 34, 40, 36, 29, 27, 31, 38, 39, 29, 9, + -12, -27, -28, -14, 8, 25, 37, 50, 62, 67, 66, 62, 53, 42, 36, 37, + 36, 32, 30, 25, 12, -7, -24, -39, -54, -65, -67, -67, -72, -78, -81, -82, + -81, -70, -51, -35, -29, -23, -7, 15, 30, 37, 40, 35, 25, 25, 36, 41, + 33, 15, -6, -26, -36, -27, -9, 7, 20, 35, 50, 58, 59, 58, 52, 43, + 37, 37, 37, 36, 34, 31, 24, 8, -11, -29, -44, -57, -67, -70, -73, -79, + -86, -92, -93, -87, -72, -59, -53, -46, -29, -9, 7, 20, 28, 26, 19, 17, + 27, 38, 38, 26, 7, -12, -25, -26, -15, 1, 14, 28, 47, 61, 67, 68, + 68, 63, 54, 51, 53, 51, 49, 49, 47, 34, 14, -5, -22, -39, -56, -65, + -67, -73, -86, -96, -97, -92, -86, -77, -69, -61, -49, -28, -6, 10, 22, 27, + 25, 24, 33, 49, 56, 48, 32, 13, -5, -15, -12, -2, 7, 18, 35, 50, + 59, 63, 65, 61, 53, 48, 46, 44, 43, 46, 49, 43, 27, 10, -6, -25, + -45, -53, -53, -60, -75, -87, -90, -90, -88, -81, -75, -72, -65, -48, -25, -6, + 5, 10, 13, 18, 31, 49, 60, 58, 44, 28, 12, -1, -7, -7, -1, 8, + 23, 41, 54, 61, 65, 66, 63, 56, 48, 43, 41, 42, 44, 43, 37, 25, + 8, -12, -32, -44, -49, -53, -64, -80, -91, -95, -93, -89, -85, -82, -78, -68, + -50, -27, -6, 0, -1, 0, 0, 0, 1, 2, 3, 6, 9, 13, 17, 19, + 13, -4, -15, -10, 4, 19, 26, 15, -9, -16, 6, -2, -18, 38, 64, 21, + -48, 30, 82, -23, -63, -50, -26, -7, 12, 26, 47, 83, 100, 3, -108, -87, + -30, -6, 5, 18, 33, 46, 47, 21, -52, -46, 48, 3, -54, -32, 22, 25, + -7, 12, 9, -18, -33, -24, 2, 44, 88, 92, 10, -28, -1, 1, 20, 42, + 1, -17, 53, 72, 12, -16, -74, -31, 127, 52, 1, -35, -46, 13, 39, -13, + -13, 13, 12, 11, 8, -57, -80, -44, -5, 14, 18, 6, -13, -26, -11, -8, + -24, 3, 30, 14, -28, -12, 41, -2, -37, -35, -23, -12, -1, 6, 17, 34, + 53, 19, -55, -67, -32, -13, -5, 2, 12, 19, 24, 14, -24, -47, 12, 11, + -36, -35, -1, 18, -3, 0, 5, -13, -25, -22, -5, 19, 53, 69, 21, -28, + -10, -5, 6, 28, 8, -25, 23, 57, 17, -17, -49, -63, 84, 70, 3, -23, + -50, -6, 36, -2, -20, 8, 14, 9, 13, -37, -82, -58, -19, 8, 17, 10, + -9, -26, -19, -7, -24, -9, 25, 22, -17, -28, 33, 16, -32, -37, -27, -15, + -4, 4, 13, 27, 48, 35, -35, -72, -43, -17, -7, -1, 9, 16, 23, 17, + -12, -51, -7, 21, -27, -40, -12, 19, 6, -3, 5, -9, -22, -23, -8, 11, + 42, 68, 38, -23, -16, -6, 3, 25, 19, -24, 8, 54, 31, -13, -33, -76, + 46, 95, 13, -13, -48, -20, 32, 13, -22, 2, 15, 10, 15, -17, -77, -67, + -31, 3, 17, 15, -3, -21, -23, -7, -20, -18, 18, 27, -4, -34, 17, 33, + -21, -36, -29, -16, -6, 4, 11, 23, 42, 47, -12, -69, -54, -22, -8, -2, + 7, 15, 22, 20, -2, -46, -27, 23, -13, -41, -22, 15, 16, -2, 4, -5, + -18, -21, -10, 5, 32, 64, 53, -12, -21, -6, 0, 21, 27, -16, -6, 48, + 42, -6, -22, -71, 2, 106, 31, -6, -41, -32, 22, 25, -18, -4, 15, 12, + 14, -1, -64, -74, -42, -5, 16, 19, 4, -16, -25, -10, -14, -23, 9, 29, + 9, -31, -2, 42, -5, -33, -30, -18, -8, 3, 9, 19, 36, 51, 10, -58, + -63, -29, -11, -2, 4, 13, 20, 21, 6, -35, -44, 16, 1, -38, -30, 7, + 23, 3, 2, -2, -16, -20, -12, 2, 23, 56, 62, 3, -24, -7, -2, 17, + 30, -5, -17, 37, 49, 4, -17, -57, -37, 99, 55, 0, -31, -41, 9, 33, + -10, -11, 13, 14, 12, 9, -47, -78, -53, -15, 12, 20, 9, -10, -24, -14, + -11, -25, -2, 27, 18, -21, -20, 39, 13, -29, -31, -20, -9, 1, 8, 17, + 30, 49, 29, -41, -70, -39, -15, -4, 2, 11, 17, 21, 11, -22, -52, 0, + 14, -31, -36, -4, 25, 11, 1, -1, -13, -19, -13, 0, 15, 45, 65, 20, + -24, -10, -4, 12, 30, 8, -22, 24, 52, 17, -14, -39, -61, 71, 81, 8, + -21, -44, -5, 34, 2, -16, 9, 16, 11, 14, -29, -76, -62, -27, 6, 20, + 15, -4, -21, -19, -9, -23, -12, 22, 25, -8, -30, 26, 30, -20, -31, -23, + -11, -1, 8, 14, 25, 44, 42, -19, -69, -50, -20, -6, 1, 9, 15, 20, + 15, -11, -51, -19, 20, -20, -39, -15, 23, 20, 2, 0, -11, -17, -14, -2, + 9, 35, 63, 37, -19, -14, -5, 8, 28, 18, -22, 9, 50, 28, -11, -26, + -68, 32, 100, 22, -13, -43, -18, 30, 15, -17, 4, 16, 12, 15, -12, -69, + -69, -39, -2, 18, 19, 2, -17, -22, -10, -19, -20, 15, 27, 4, -31, 7, + 41, -7, -30, -25, -13, -3, 6, 12, 22, 38, 48, 3, -61, -60, -27, -9, + 0, 7, 13, 19, 17, -2, -44, -37, 18, -7, -39, -24, 15, 28, 7, 0, + -9, -16, -14, -3, 6, 25, 57, 49, -9, -18, -7, 3, 25, 26, -15, -4, + 45, 38, -5, -18, -61, -8, 103, 42, -6, -37, -30, 21, 25, -13, -3, 16, + 13, 14, 2, -56, -73, -49, -12, 15, 21, 8, -11, -23, -13, -15, -24, 4, + 28, 14, -25, -12, 42, 9, -26, -26, -15, -5, 5, 11, 19, 32, 48, 22, + -46, -67, -36, -12, -2, 4, 12, 17, 18, 4, -33, -50, 6, 6, -35, -31, + 4, 31, 14, 0, -8, -15, -14, -4, 4, 17, 48, 57, 4, -21, -8, -1, + 21, 30, -5, -15, 36, 44, 5, -14, -46, -40, 88, 67, 2, -29, -37, 9, + 31, -6, -9, 14, 15, 13, 11, -40, -74, -58, -24, 9, 22, 13, -6, -21, + -17, -13, -25, -6, 25, 21, -13, -25, 33, 26, -19, -27, -18, -6, 3, 10, + 16, 27, 45, 36, -26, -69, -46, -17, -4, 2, 10, 15, 18, 9, -22, -55, + -11, 15, -26, -36, -8, 30, 23, 2, -6, -14, -14, -6, 4, 11, 37, 59, + 19, -20, -10, -4, 16, 31, 7, -20, 23, 47, 15, -13, -32, -58, 58, 88, + 13, -21, -40, -5, 32, 4, -13, 10, 17, 12, 14, -23, -70, -65, -35, 1, + 20, 17, 0, -18, -20, -12, -23, -16, 19, 25, -1, -30, 16, 39, -8, -26, + -20, -8, 1, 9, 14, 23, 39, 44, -5, -63, -57, -24, -7, 1, 8, 13, + 17, 12, -12, -52, -30, 17, -15, -38, -18, 23, 32, 7, -6, -13, -14, -7, + 3, 8, 27, 55, 33, -16, -13, -6, 10, 30, 17, -20, 10, 46, 25, -9, + -21, -60, 19, 100, 31, -13, -39, -17, 27, 15, -13, 4, 17, 13, 15, -8, + -61, -69, -46, -10, 17, 21, 6, -13, -22, -13, -20, -22, 10, 27, 9, -27, + -4, 44, 6, -24, -22, -11, -1, 8, 13, 20, 33, 46, 14, -50, -65, -33, + -11, 0, 5, 12, 15, 14, -4, -43, -46, 10, -2, -36, -27, 13, 36, 15, + -4, -13, -14, -8, 3, 7, 18, 49, 43, -7, -16, -7, 5, 27, 24, -14, + -3, 42, 33, -3, -16, -51, -17, 97, 51, -3, -38, -5, -13, 1, -7, 5, + -22, -32, -35, -32, -43, -35, -55, -42, -66, -48, -80, -57, -17, -128, -59, -76, + 0, -26, 1, -33, 21, 3, 16, 15, 26, 43, 28, 66, 6, 97, 40, 103, + 67, 101, 102, 98, 94, 21, 98, 90, 57, 78, 89, 81, 61, -6, 54, 4, + 62, 19, 27, 34, 12, 16, 14, -17, 19, -5, -2, -13, -38, -24, -3, -33, + -14, -11, -16, 0, -13, 7, -26, -13, -16, 6, -57, -23, -28, -13, -9, -34, + -32, -20, -87, -62, -28, -38, -75, -37, -27, -41, -71, -48, -30, -44, -83, -67, + -52, -48, -45, -46, -45, -63, -47, -40, -32, -45, -24, -32, -43, -21, -17, 0, + 21, 26, 43, 51, 62, 47, 41, 55, 57, 68, 34, 53, 63, 62, 71, 60, + 61, 56, 53, 56, 54, 38, 50, 58, 50, 40, 28, 54, 39, 41, 38, 22, + 32, 20, -3, 19, -1, -7, -6, -16, -16, -14, -27, -29, -46, -66, -61, -51, + -54, -61, -41, -50, -47, -52, -55, -45, -44, -28, -58, -56, -31, -37, -36, -32, + -18, -16, -34, -29, -9, -21, -20, -30, -22, -17, -19, -8, -12, -14, -6, -14, + -6, -11, -2, 4, -6, 9, 8, 17, 23, 13, 31, 13, 24, 30, 28, 29, + 30, 43, 34, 37, 52, 42, 44, 50, 67, 59, 49, 54, 48, 43, 51, 45, + 42, 62, 47, 39, 37, 36, 24, 28, 13, 3, 9, -11, -3, -9, -14, -18, + -34, -27, -29, -39, -42, -38, -46, -37, -46, -43, -41, -35, -38, -31, -38, -34, + -39, -39, -34, -48, -44, -47, -49, -54, -52, -44, -53, -37, -47, -38, -31, -38, + -27, -19, -19, -15, -16, 0, 0, 2, 7, 13, 29, 22, 32, 32, 39, 47, + 41, 40, 55, 48, 41, 44, 57, 43, 36, 47, 43, 42, 37, 32, 32, 27, + 33, 36, 30, 23, 25, 25, 22, 18, 22, 20, 16, 8, 6, 12, 7, 0, + 1, 3, -5, -14, -9, -7, -8, -19, -15, -16, -23, -21, -21, -32, -31, -29, + -26, -27, -29, -33, -26, -29, -30, -39, -28, -41, -43, -35, -34, -32, -29, -28, + -28, -25, -27, -24, -27, -27, -27, -22, -23, -17, -9, -10, -14, -10, -8, -4, + -2, -1, -3, 5, 4, 10, 11, 7, 13, 11, 14, 27, 22, 22, 22, 27, + 36, 34, 36, 37, 45, 44, 47, 48, 51, 49, 52, 51, 52, 48, 50, 47, + 48, 42, 40, 29, 33, 24, 22, 12, 5, 0, -3, -5, -9, -21, -21, -25, + -19, -28, -28, -30, -33, -39, -42, -42, -46, -46, -45, -42, -43, -47, -47, -36, + -32, -30, -34, -31, -22, -29, -29, -30, -26, -28, -30, -21, -26, -27, -21, -19, + -16, -11, -12, -8, -2, 1, -4, 1, 0, 1, 9, 8, 7, 12, 10, 13, + 20, 17, 18, 21, 26, 29, 30, 30, 29, 34, 33, 34, 33, 30, 32, 33, + 28, 33, 29, 35, 32, 31, 30, 31, 30, 25, 27, 24, 21, 21, 20, 16, + 17, 12, 6, 4, -3, 1, -6, -7, -11, -13, -11, -10, -8, -13, -12, -9, + -17, -14, -19, -24, -22, -24, -30, -32, -30, -33, -37, -39, -40, -42, -39, -41, + -39, -40, -41, -35, -35, -35, -37, -36, -33, -30, -25, -25, -19, -16, -16, -10, + -6, -7, -4, -2, 1, 3, 6, 10, 9, 15, 17, 18, 17, 13, 19, 18, + 17, 19, 20, 24, 24, 27, 27, 29, 30, 26, 28, 28, 27, 28, 26, 25, + 24, 25, 20, 19, 17, 18, 15, 12, 13, 10, 6, 8, 6, 3, 4, 3, + 0, -3, 0, -1, -2, -5, -4, -5, -4, -5, -6, -8, -9, -9, -12, -11, + -16, -16, -15, -15, -13, -17, -16, -17, -17, -21, -20, -25, -24, -24, -24, -26, + -30, -30, -27, -30, -26, -26, -27, -27, -25, -24, -19, -20, -17, -13, -12, -8, + -8, -8, -6, -5, -2, -1, 0, 3, 8, 10, 12, 16, 18, 24, 25, 25, + 28, 30, 28, 32, 33, 31, 32, 31, 35, 33, 31, 31, 27, 28, 26, 23, + 23, 20, 22, 18, 16, 13, 11, 9, 5, 4, -2, -2, -3, -8, -9, -11, + -12, -13, -15, -15, -15, -15, -15, -14, -12, -12, -13, -13, -8, -11, -10, -12, + -10, -12, -12, -8, -8, -9, -9, -9, -8, -9, -10, -11, -11, -10, -13, -14, + -13, -16, -16, -17, -17, -18, -19, -18, -17, -16, -16, -15, -15, -13, -12, -10, + -12, -10, -9, -8, -6, -6, -3, 0, 0, 1, 2, 2, 3, 4, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 12, 13, 14, 14, 15, 15, 15, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 15, 15, 14, 13, 13, 12, 11, 10, + 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, -1, -1, -2, -3, -4, -5, + -5, -6, -7, -7, -8, -9, -9, -10, -11, -11, -12, -12, -13, -13, -13, -13, + -14, -14, -14, -15, -15, -15, -15, -15, -15, -16, -16, -16, -15, -15, -15, -14, + -13, -13, -12, -11, -10, -9, -8, -7, -6, -5, -4, -2, -1, 0, 1, 2, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 12, 13, 13, 14, 14, 15, 15, + 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 16, 16, 15, 15, + 14, 14, 13, 12, 11, 10, 9, 7, 6, 5, 3, 1, 0, -2, -4, -5, + -7, -9, -10, -11, -13, -14, -15, -15, -16, -17, -17, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -17, -17, -16, -16, -15, -14, -14, -13, -12, + -11, -10, -9, -8, -7, -6, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 9, 10, 11, 11, 12, 13, 13, 13, 14, 14, 14, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 14, 14, 14, 13, 12, 12, + 11, 10, 9, 8, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0, -1, 0, + 0, -1, 2, 1, 0, 1, 4, 2, 2, 2, 5, 2, 5, 5, 8, 4, + 13, 15, 19, -62, -65, 56, -18, -128, -39, 15, -57, -10, 19, -22, -11, 36, + 30, 5, 19, 25, 17, 21, 21, 16, 21, 18, 17, 17, 15, 14, 13, 12, + 10, 6, 8, 6, 6, -1, 1, -4, 7, -10, -36, 35, 64, -25, -18, 83, + 50, 22, 39, 21, 19, -4, -20, 28, 0, -88, -55, -5, -55, -83, -64, -58, + -77, -61, -22, -39, -57, -15, 2, -14, -9, -1, 1, 1, 2, 9, 5, 6, + 11, 9, 9, 10, 11, 12, 12, 10, 9, 9, 13, 7, 3, 14, 4, -3, + 2, 2, 17, 40, 12, 14, 55, 58, 44, 39, 38, 37, 6, 4, 31, -6, + -50, -25, -15, -49, -52, -41, -60, -68, -32, -25, -47, -36, -9, -5, -7, -3, + 3, 4, 6, 8, 11, 9, 10, 14, 14, 11, 13, 15, 14, 13, 14, 12, + 11, 12, 12, 8, 8, 3, 4, 5, -1, 8, 32, 21, 14, 43, 50, 39, + 47, 39, 20, 23, 16, 5, -9, -23, -26, -34, -48, -37, -48, -71, -56, -34, + -43, -49, -36, -20, -14, -13, -9, -4, -1, 1, 3, 6, 6, 6, 9, 10, + 8, 10, 11, 11, 11, 11, 10, 10, 10, 10, 6, 6, 4, 3, 6, -3, + 2, 25, 23, 16, 34, 38, 43, 51, 31, 19, 38, 22, -10, -7, 0, -25, + -45, -34, -32, -54, -62, -47, -39, -45, -47, -36, -24, -19, -16, -11, -6, -3, + 0, 2, 4, 6, 7, 8, 10, 11, 9, 11, 12, 11, 11, 12, 11, 10, + 10, 8, 7, 6, 3, 5, 4, 0, 13, 28, 23, 19, 36, 50, 42, 30, + 31, 39, 24, -6, -2, 7, -21, -40, -27, -34, -51, -51, -44, -42, -45, -45, + -37, -27, -22, -18, -13, -9, -6, -2, 1, 2, 5, 7, 7, 9, 11, 10, + 10, 12, 12, 11, 12, 11, 10, 10, 9, 7, 7, 4, 5, 7, 1, 7, + 27, 24, 15, 34, 47, 37, 32, 36, 36, 26, 4, -1, 4, -13, -30, -27, + -34, -47, -46, -42, -43, -45, -44, -38, -31, -25, -21, -17, -12, -8, -5, -1, + 1, 3, 5, 6, 8, 9, 10, 10, 10, 11, 11, 11, 11, 11, 10, 9, + 7, 7, 6, 3, 6, 5, 6, 17, 23, 19, 29, 40, 35, 33, 36, 34, + 26, 14, 3, 0, -6, -18, -26, -32, -39, -40, -38, -39, -41, -40, -36, -31, + -27, -23, -19, -15, -12, -8, -4, -2, 0, 3, 4, 5, 7, 8, 9, 9, + 9, 10, 10, 10, 10, 10, 9, 8, 8, 8, 7, 8, 10, 11, 14, 19, + 22, 25, 28, 29, 29, 29, 27, 21, 14, 7, -1, -5, -11, -19, -26, -29, + -31, -32, -33, -34, -33, -32, -29, -26, -24, -21, -18, -15, -12, -9, -6, -4, + -2, 0, 2, 3, 5, 6, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, + 10, 10, 11, 12, 14, 16, 18, 20, 22, 23, 24, 24, 23, 20, 17, 12, + 7, 2, -3, -8, -13, -17, -21, -23, -25, -26, -27, -27, -27, -26, -25, -23, + -21, -19, -17, -14, -12, -9, -7, -5, -3, -1, 1, 2, 4, 5, 6, 6, + 7, 7, 8, 8, 9, 9, 10, 10, 11, 12, 13, 15, 16, 18, 19, 21, + 22, 22, 22, 21, 19, 17, 13, 9, 4, 0, -5, -10, -14, -18, -21, -23, + -25, -26, -26, -26, -26, -25, -23, -22, -20, -18, -15, -13, -11, -9, -6, -4, + -2, 0, 1, 3, 4, 5, 6, 7, 7, 8, 8, 8, 9, 9, 10, 11, + 12, 13, 14, 15, 17, 18, 20, 21, 21, 21, 21, 19, 17, 14, 11, 7, + 2, -3, -7, -11, -15, -19, -21, -23, -25, -25, -26, -25, -25, -24, -22, -21, + -19, -17, -15, -12, -10, -8, -6, -4, -2, 0, 1, 3, 4, 5, 6, 6, + 7, 8, 8, 9, 9, 10, 11, 11, 12, 13, 15, 16, 17, 19, 20, 20, + 21, 20, 19, 18, 15, 12, 8, 4, 0, -4, -9, -13, -16, -19, -21, -23, + -24, -25, -25, -25, -24, -23, -21, -20, -18, -16, -14, -12, -9, -7, -5, -3, + -2, 0, 1, 3, 4, 5, 6, 6, 7, 8, 8, 9, 10, 10, 11, 12, + 13, 14, 15, 17, 18, 19, 20, 20, 20, 19, 18, 16, 13, 10, 6, 2, + -2, -6, -10, -13, -16, -19, -21, -23, -24, -24, -24, -24, -23, -22, -20, -19, + -17, -15, -13, -11, -8, -6, -5, -3, -1, 0, 2, 3, 4, 5, 6, 7, + 7, 8, 9, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, + 19, 18, 16, 14, 11, 8, 4, 0, -3, -7, -11, -14, -17, -19, -21, -22, + -23, -23, -23, -23, -22, -21, -19, -18, -16, -14, -12, -10, -8, -6, -4, -2, + -1, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 10, 11, 12, 12, 13, + 14, 15, 16, 17, 18, 19, 19, 19, 18, 17, 15, 12, 9, 6, 3, -1, + -5, -9, -12, -15, -17, -19, -21, -22, -23, -23, -23, -22, -21, -20, -18, -17, + -15, -13, -11, -9, -7, -6, -4, -2, -1, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 9, 10, 11, 12, 13, 14, 15, 16, 17, 17, 18, 18, 18, 17, + 16, 14, 12, 10, 7, 4, 0, -3, -6, -9, -12, -15, -17, -18, -20, -20, + -21, -21, -21, -20, -19, -18, -17, -15, -14, -12, -10, -9, -7, -5, -4, -2, + -1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 14, + 15, 15, 16, 16, 16, 16, 16, 15, 14, 12, 11, 8, 6, 3, 0, -3, + -6, -9, -12, 1, -1, 2, -1, 4, 2, 8, 5, 10, -5, 0, 5, 17, + -11, 0, 19, -17, 26, 65, 15, 29, 3, 35, 67, 50, 88, 59, 117, 28, + -6, -16, 29, 63, 62, -40, 59, 22, -95, -49, -55, 19, 36, -15, 26, -117, + 60, 8, -101, -115, 23, 60, -32, -106, -84, -88, -127, -99, -117, -110, -56, -42, + -53, -79, -44, 43, 10, -11, 72, 22, 61, 10, -92, -106, -111, -35, -68, -128, + -67, -36, -118, -97, -96, -4, 75, 70, 113, 36, 73, 115, 37, 6, 79, 97, + 89, -8, -38, -8, -72, -8, -29, -35, 73, 98, 66, 12, 40, 113, 106, 87, + 126, 112, 127, 87, -3, -21, -23, 40, 14, -68, -20, 21, -57, -67, -67, -4, + 69, 53, 90, 17, 36, 78, -7, -54, -2, 32, 21, -71, -109, -89, -124, -103, + -114, -113, -37, -4, -30, -88, -83, 15, 13, -35, 42, 28, 33, 14, -90, -92, + -104, -37, -34, -115, -73, -9, -75, -89, -85, -29, 67, 51, 97, 55, 47, 115, + 46, -9, 42, 90, 96, 26, -36, 11, -43, -25, -6, -37, 59, 104, 88, 31, + 22, 96, 116, 69, 110, 119, 119, 109, 11, -15, -26, 18, 37, -45, -32, 34, + -13, -62, -62, -30, 61, 47, 75, 46, 14, 72, 14, -58, -35, 16, 30, -38, + -109, -78, -109, -116, -102, -123, -57, -2, -11, -58, -95, -18, 22, -41, -3, 36, + 20, 31, -69, -94, -100, -72, -21, -91, -92, -9, -33, -82, -81, -57, 48, 52, + 70, 81, 35, 97, 69, -10, 8, 66, 94, 55, -27, 4, -5, -40, -1, -33, + 30, 102, 101, 61, 19, 70, 121, 72, 77, 123, 112, 121, 36, -13, -21, -10, + 38, -18, -43, 27, 25, -40, -59, -45, 40, 54, 52, 68, 15, 56, 35, -48, + -58, -12, 25, -10, -98, -84, -83, -122, -101, -123, -81, -8, -3, -28, -85, -47, + 20, -28, -39, 23, 18, 31, -38, -99, -92, -97, -35, -66, -102, -26, -3, -60, + -77, -69, 18, 59, 47, 87, 46, 73, 86, 3, -13, 34, 80, 70, -8, -12, + 19, -32, -12, -21, 3, 91, 105, 87, 34, 51, 114, 89, 53, 106, 115, 119, + 65, -10, -13, -25, 20, 4, -45, 9, 44, -8, -49, -51, 14, 61, 39, 68, + 34, 39, 51, -30, -67, -41, 7, 5, -76, -96, -65, -111, -110, -115, -103, -20, + -1, -9, -58, -65, 8, -9, -55, -6, 17, 24, -11, -94, -89, -102, -64, -50, + -101, -51, 6, -30, -66, -71, -12, 59, 40, 72, 67, 58, 91, 24, -21, 6, + 56, 74, 14, -22, 23, -8, -24, -14, -13, 71, 106, 101, 62, 42, 101, 105, + 49, 76, 114, 114, 87, 3, -12, -23, -6, 13, -37, -11, 45, 24, -29, -49, + -8, 57, 40, 53, 54, 32, 56, -6, -65, -61, -21, 6, -52, -101, -65, -85, + -115, -109, -116, -42, 0, -1, -27, -65, -12, 7, -51, -37, 7, 17, 6, -76, + -95, -94, -91, -52, -90, -76, -2, -4, -46, -66, -35, 46, 46, 49, 78, 57, + 85, 50, -17, -13, 26, 64, 34, -22, 9, 18, -22, -14, -18, 42, 103, 105, + 88, 50, 83, 114, 63, 49, 96, 110, 99, 26, -14, -15, -23, 6, -24, -29, + 33, 45, 0, -38, -23, 44, 50, 37, 60, 38, 52, 21, -54, -70, -48, -7, + -31, -95, -78, -63, -104, -108, -117, -69, -4, -1, -5, -47, -30, 13, -33, -58, + -14, 8, 11, -50, -99, -87, -101, -70, -77, -92, -22, 10, -22, -52, -46, 23, + 55, 36, 70, 66, 74, 69, -2, -23, 1, 43, 43, -11, -8, 29, -4, -17, + -16, 18, 91, 105, 102, 71, 72, 112, 83, 40, 70, 101, 102, 50, -10, -10, + -24, -10, -13, -36, 14, 52, 27, -18, -28, 26, 58, 33, 51, 49, 46, 40, + -34, -70, -66, -31, -22, -81, -92, -56, -83, -105, -112, -91, -17, 0, 2, -22, + -37, 7, -12, -61, -39, -5, 7, -27, -93, -90, -96, -90, -72, -95, -48, 9, + -1, -33, -46, 0, 55, 37, 50, 72, 68, 77, 20, -25, -15, 17, 40, 3, + -20, 22, 19, -12, -14, 2, 70, 105, 106, 92, 72, 104, 100, 48, 46, 83, + 98, 70, 3, -12, -16, -23, -11, -34, -8, 46, 47, 11, -21, 8, 57, 41, + 36, 53, 45, 48, -6, -64, -72, -57, -28, -61, -98, -65, -60, -94, -105, -103, + -41, 1, 0, -1, -29, -6, 5, -48, -60, -26, -3, -12, -74, -97, -86, -100, + -80, -89, -74, -6, 13, -10, -35, -18, 41, 48, 33, 64, 68, 75, 46, -15, + -25, -7, 24, 16, -20, 4, 33, 5, -11, -5, 43, 98, 105, 105, 85, 93, + 110, 67, 35, 59, 87, 81, 25, -13, -9, -23, -18, -27, -25, 30, 55, 37, + -1, -3, 46, 53, 29, 44, 47, 48, 20, -48, -72, -72, -47, -48, -93, -82, + -51, -73, -96, -102, -66, -6, 0, 5, -10, -16, 10, -26, -66, -49, -20, -10, + -51, -98, -86, -93, -93, -85, -88, -32, 14, 8, -16, -23, 22, 54, 32, 45, + 67, 70, 61, 4, -27, -21, 2, 17, -13, -13, 29, 26, -1, -5, 23, 83, + 104, 106, 100, 90, 110, 87, 40, 38, 68, 80, 45, -6, -9, -14, -24, -23, + -32, 8, 52, 53, 25, 1, 31, 60, 35, 30, 45, 45, 36, -24, -68, -76, + -67, -49, -80, -94, -57, -54, -81, -95, -82, -23, 2, 1, 4, -12, 4, -5, + -57, -65, -40, -20, -36, -87, -94, -83, -97, -87, -90, -57, 2, 18, 2, -12, + 8, 10, -20, 30, 25, 21, 14, 4, 15, -48, -33, 11, -70, 54, -5, -21, + -8, -3, 73, -52, 65, -55, 80, -28, -67, -3, -13, 21, -49, -2, 11, 36, + 59, -60, 34, -28, 21, -25, -45, 54, 5, 0, -19, -12, 20, 54, -51, -23, + 22, 36, -59, -20, 8, 28, -9, -54, 127, -44, 69, -128, 5, 69, -8, -98, + 45, 69, 20, -97, 23, -7, 121, -81, -2, -21, 51, -67, -14, -24, 127, -60, + 45, -116, 127, -29, -93, -23, 107, -5, -21, -62, 37, 41, 29, -74, -63, 103, + 24, -59, -44, 62, 43, -28, -46, 7, 72, 19, -70, -47, 42, 53, -68, -13, + 37, 59, -38, -60, 39, 66, 27, -128, 36, 77, 15, -74, -15, 75, 38, -49, + -11, -39, 16, -8, -30, 35, 41, -1, -2, 17, -68, 99, -97, 60, -49, 32, + -44, -29, 82, -26, 39, -35, 10, 38, -20, -21, -92, 83, -24, 13, 31, -33, + 22, 45, -31, -24, 9, -24, -32, 42, -17, 34, 7, -27, 6, 61, -9, -34, + -5, -8, -17, -6, -34, 17, 43, -9, 35, -34, 16, 27, -24, -17, -17, 5, + -17, 42, -31, 22, 17, -26, -22, 32, 41, -27, -25, -10, -5, 16, -2, 13, + -1, 48, -33, -27, 6, 16, 13, -37, -11, 18, 25, -42, -11, 46, -7, -15, + 9, 15, 4, -3, -36, -24, 31, -8, 14, 12, 27, -19, -17, -14, -7, 42, + -5, -15, 5, 1, -15, 14, 43, -19, 1, -25, -35, 16, 16, 29, -12, 8, + -14, 1, 21, -8, -12, -22, -4, 24, 26, -16, -22, 37, 3, -41, 7, 4, + 3, 30, 4, -27, 11, -6, -26, 33, 23, -23, -14, -20, -7, -4, 36, 0, + 18, 10, -27, 1, 1, 16, -1, -4, -44, -5, 17, 9, 13, -4, -3, 31, + 24, -14, -26, 9, -27, -28, 19, 22, 32, -11, -15, 5, 15, -23, -21, 16, + 14, 18, -11, -26, 13, 10, -12, -12, 11, 14, -6, -13, -3, 6, -6, 3, + 12, 32, 14, -22, -45, -10, 37, 11, -50, -11, 50, 22, -13, -4, -4, 15, + -16, -33, 7, 34, -9, -14, -1, 21, 15, -14, -12, -6, 7, 8, 2, 0, + -5, 6, 15, 4, -9, 13, 3, -51, -18, 27, 10, 5, -11, 6, -1, 5, + 22, 2, -14, -39, -12, 19, 17, 4, 11, 5, -25, 2, 23, 8, 2, -3, + -39, -22, 4, 18, 6, 14, 25, 20, -17, -20, 17, 7, -43, -38, -18, 17, + 24, -6, 30, 44, 6, -36, -20, 7, 24, 1, -69, -25, 47, 15, -4, 35, + 19, -18, -22, -12, 20, 39, -36, -49, 9, 28, -16, 9, 34, 36, -22, -69, + -16, 39, 7, -28, -3, 33, -18, -7, 18, 53, 24, -37, -61, -10, 38, 2, + -24, -11, 12, 17, 0, 28, 50, -5, -59, -57, 22, 14, -15, -5, 22, 9, + -20, 19, 33, 31, -33, -62, -13, -2, 45, -9, -4, -3, 19, 8, -8, 40, + 8, -16, -44, -19, 16, 3, 23, -32, 22, 5, -9, 5, 26, 21, -27, -18, + -45, 3, 15, 0, 7, 7, 7, 13, 18, -10, 3, -5, -30, -30, -3, 9, + 31, 17, -10, 19, 28, -33, -20, 31, 14, -67, -27, 13, 20, 29, 1, -2, + 24, -3, -26, -12, 32, -7, -31, -17, 5, 22, 11, -6, 6, 7, 2, 7, + 5, -12, -22, -17, -24, 22, 47, 1, 2, 10, 5, -29, -5, 13, 1, -30, + -28, -5, 23, 25, 6, 5, 1, 7, 0, 5, 3, -33, -37, -6, 19, 20, + 26, -1, -15, 21, 9, -14, -13, 0, -11, -24, -9, 9, 23, 1, 1, 32, + 11, -25, -18, 5, -5, -6, -9, -10, 2, 18, 4, 12, 6, -2, -8, 2, + 2, -7, 2, -22, -5, 17, 25, 15, -5, -1, -24, -8, -10, -5, 12, 7, + -4, -10, 4, 8, 22, 11, -1, -12, -31, -17, 6, 12, 11, 5, -3, -1, + 22, 0, -4, 3, -18, -17, -3, 16, 9, 2, -5, 0, 4, -9, 18, 17, + -22, -19, -8, -6, 21, 11, -6, -16, 33, 13, -15, -3, -15, 1, -3, -10, + -7, 8, 17, -11, 9, 19, 0, 5, 0, -18, -13, 2, -20, 10, 29, -11, + -13, 5, 11, 16, 4, -25, -21, 13, -5, 1, 3, -1, 6, 13, -7, -1, + 17, -6, -6, -9, -6, -3, -1, 1, 18, 11, -22, 2, 18, -2, -15, 1, + 5, -12, -10, -7, 9, 26, 10, -11, 5, 0, -7, -3, -11, -9, -3, 2, + -10, 19, 28, -3, -3, -4, 9, -14, -5, -7, 8, -3, -27, 5, 37, 11, + -2, 3, -27, -15, 12, -2, 14, 2, -8, -16, 22, 11, -1, 10, -17, -8, + -5, -23, 2, 29, 8, -21, 8, 12, 6, 8, -17, 3, -2, -12, -27, 16, + 25, -5, -7, 2, 19, 1, -15, 7, 2, -5, -34, 2, 18, 17, -10, 2, + 18, -1, -12, -10, 5, 1, -16, -9, 12, 21, 4, -10, 2, 12, 1, -19, + -11, 20, 5, -14, -21, 5, 17, -5, 3, 17, 4, -25, -5, 5, 4, 0, + -5, 2, 2, -1, 1, 13, 0, -11, -8, 3, 2, -1, -3, -3, 11, 8, + -6, 2, 7, 4, -5, -23, -2, 14, -1, -15, -2, 15, 10, 1, -4, 16, + 1, -24, -12, 8, 8, -20, -2, 14, 13, 10, 2, 2, -9, -6, -9, -3, + 5, 7, -3, -9, 0, 2, 8, 3, -1, 2, -4, 0, -1, -1, -1, -2, + -8, -14, -19, -28, -51, -53, -49, -48, -49, -44, -37, -30, -23, -14, -8, -11, + -5, 3, 11, 2, 0, 8, 19, 10, 1, 6, 18, 15, 4, 4, 17, 19, + 13, 9, 20, 27, 26, 26, 33, 42, 45, 53, 59, 68, 69, 83, 89, 92, + 85, 88, 91, 80, 56, 37, 29, 9, -25, -54, -65, -74, -94, -113, -112, -103, + -101, -103, -93, -79, -66, -62, -50, -41, -33, -27, -17, -11, -12, -8, 0, 7, + -1, -2, 5, 15, 8, -1, 3, 15, 13, 2, 2, 12, 17, 12, 8, 15, + 23, 24, 25, 29, 38, 42, 50, 56, 65, 68, 78, 87, 91, 87, 87, 91, + 84, 64, 43, 33, 16, -14, -44, -60, -70, -87, -107, -111, -105, -101, -103, -96, + -84, -70, -64, -55, -45, -36, -30, -22, -14, -14, -11, -4, 4, 0, -3, 1, + 11, 8, -1, 0, 10, 12, 3, 0, 9, 15, 11, 7, 14, 22, 23, 24, + 28, 37, 42, 49, 55, 64, 67, 78, 87, 91, 88, 88, 93, 86, 67, 47, + 36, 20, -10, -40, -56, -67, -84, -104, -109, -105, -101, -103, -96, -85, -71, -65, + -56, -46, -38, -31, -23, -16, -15, -12, -6, 2, -1, -5, 0, 9, 6, -1, + -1, 8, 11, 3, 0, 8, 14, 11, 7, 13, 21, 23, 23, 27, 37, 41, + 48, 54, 63, 67, 77, 86, 91, 89, 89, 93, 87, 70, 51, 39, 23, -6, + -36, -53, -64, -81, -101, -107, -103, -100, -102, -96, -85, -72, -66, -57, -47, -39, + -32, -25, -17, -16, -13, -7, 0, -3, -5, -1, 7, 6, -2, -2, 7, 9, + 2, -1, 7, 13, 10, 7, 12, 20, 22, 23, 27, 36, 41, 48, 54, 63, + 68, 77, 87, 91, 91, 91, 95, 89, 73, 54, 43, 27, -1, -31, -49, -61, + -78, -98, -105, -102, -99, -101, -96, -85, -73, -66, -58, -48, -40, -33, -26, -19, + -17, -14, -9, -2, -4, -6, -3, 5, 4, -3, -3, 5, 8, 1, -1, 6, + 12, 10, 7, 11, 20, 22, 23, 27, 35, 41, 47, 54, 62, 68, 76, 86, + 91, 91, 92, 96, 91, 76, 58, 46, 30, 3, -27, -45, -57, -75, -94, -103, + -100, -98, -100, -96, -85, -74, -67, -59, -49, -41, -34, -28, -20, -19, -15, -10, + -3, -5, -7, -4, 3, 3, -4, -4, 4, 7, 1, -2, 5, 11, 9, 6, + 11, 19, 21, 22, 26, 35, 40, 46, 53, 61, 67, 76, 86, 91, 92, 93, + 97, 93, 78, 61, 49, 33, 7, -22, -41, -54, -72, -91, -100, -99, -97, -100, + -96, -86, -74, -67, -60, -51, -42, -35, -29, -22, -20, -17, -11, -5, -6, -8, + -5, 2, 1, -5, -5, 2, 5, 0, -3, 3, 10, 8, 5, 10, 18, 21, + 21, 25, 34, 39, 45, 52, 61, 67, 75, 85, 91, 92, 94, 97, 94, 81, + 64, 52, 37, 11, -18, -37, -51, -69, -88, -98, -98, -96, -99, -95, -86, -75, + -68, -61, -52, -44, -36, -30, -23, -21, -17, -13, -6, -7, -9, -6, 0, 0, + -5, -5, 1, 4, -1, -3, 2, 8, 8, 5, 10, 17, 20, 21, 25, 33, + 39, 45, 51, 60, 66, 75, 85, 91, 93, 94, 98, 95, 83, 67, 55, 40, + 15, -14, -33, -48, -66, -85, -96, -96, -95, -98, -95, -86, -75, -69, -62, -53, + -45, -38, -32, -25, -22, -19, -14, -8, -9, -10, -8, -2, -1, -6, -7, -1, + 2, -2, -4, 1, 7, 6, 5, 8, 16, 19, 20, 24, 32, 38, 44, 50, + 59, 66, 74, 84, 91, 93, 95, 99, 97, 85, 70, 58, 43, 18, -10, -30, + -45, -63, -82, -93, -95, -94, -97, -95, -87, -76, -70, -63, -54, -46, -39, -33, + -26, -23, -20, -16, -10, -10, -12, -9, -3, -3, -7, -8, -2, 1, -2, -5, + 0, 6, 6, 4, 8, 15, 18, 20, 23, 31, 37, 43, 50, 58, 65, 74, + 83, 91, 93, 96, 100, 98, 87, 72, 61, 46, 22, -6, -27, -42, -60, -79, + -91, -94, -93, -97, -95, -87, -77, -70, -64, -55, -47, -40, -34, -28, -25, -22, + -17, -12, -11, -13, -11, -5, -4, -8, -9, -3, 0, -4, -6, -1, 5, 5, + 3, 7, 14, 18, 19, 23, 30, 36, 42, 49, 57, 65, 73, 83, 90, 94, + 96, 100, 99, 89, 75, 63, 49, 25, -2, -23, -38, -56, -76, -88, -92, -92, + -95, -94, -87, -77, -71, -65, -57, -48, -41, -36, -29, -26, -23, -19, -13, -12, + -14, -12, -7, -6, -9, -10, -5, -1, -4, -7, -2, 2, 5, 4, 6, 12, + 18, 20, 24, 30, 38, 45, 52, 61, 70, 79, 89, 99, 106, 109, 113, 115, + 109, 96, 81, 66, 44, 16, -12, -32, -52, -74, -92, -101, -104, -107, -108, -103, + -94, -85, -78, -70, -60, -52, -45, -38, -33, -29, -25, -19, -16, -17, -16, -12, + -9, -10, -12, -9, -5, -5, -7, -5, 0, 3, 3, 5, 11, 17, 20, 23, + 29, 37, 44, 51, 59, 69, 78, 88, 98, 105, 110, 114, 116, 110, 98, 84, + 69, 48, 20, -7, -29, -49, -71, -89, -99, -102, -105, -107, -103, -94, -86, -79, + -71, -62, -54, -47, -40, -34, -30, -26, -21, -18, -18, -17, -14, -10, -12, -14, + -11, -5, -10, 43, -94, 44, -13, 27, -98, 1, 9, 77, 63, 4, 8, -128, + 63, -73, 78, -116, 127, -14, 111, -87, -67, -43, -45, 38, 53, 99, -37, 14, + -51, -58, -23, -32, 34, 27, 75, 9, 51, -104, -71, -33, 27, 67, 0, -1, + 25, 0, -35, 1, -70, 28, -4, 109, 3, 5, -42, -7, 42, -15, 37, -62, + 67, -14, 48, -85, -46, -94, 37, 35, 23, 15, -79, 35, -50, 91, -64, 40, + -69, 46, 20, 43, -21, -51, 8, -1, 95, -47, 69, -104, 98, -44, 74, -61, + -14, -19, 7, 52, -40, 8, -89, 58, -53, 106, -106, 42, -82, 61, -1, -8, + -10, -59, 53, -18, 85, -83, 63, -73, 89, -32, 50, -62, 10, 13, 20, 62, + -81, 41, -84, 88, -32, 41, -78, 27, -30, 51, -6, -42, 6, -49, 74, -41, + 41, -89, 27, -33, 57, 0, -16, -8, -4, 45, 8, 20, -63, 36, -29, 75, + -23, -17, -23, -14, 45, -7, 17, -56, 20, -12, 45, -16, -13, -31, 6, 31, + -7, 17, -81, 40, -35, 73, -34, 0, -31, 10, 35, -4, 19, -60, 44, -30, + 83, -66, 41, -87, 59, -6, 23, -4, -59, 34, -33, 77, -70, 49, -89, 88, + -45, 63, -62, 4, -20, 18, 46, -49, 45, -101, 91, -56, 78, -79, 35, -51, + 67, -12, -2, -14, -49, 66, -35, 72, -87, 51, -74, 83, -38, 29, -36, -10, + 23, 3, 30, -59, 27, -59, 91, -44, 41, -63, 12, 2, 23, 8, -36, 14, + -35, 66, -38, 32, -59, 25, -11, 40, -6, -25, -2, -24, 55, -25, 29, -58, + 30, -17, 41, -18, -17, -3, -13, 50, -25, 26, -63, 35, -23, 50, -22, -5, + -18, 0, 33, -19, 22, -67, 57, -39, 63, -45, 6, -27, 13, 23, -6, 15, + -55, 44, -42, 70, -59, 36, -60, 56, -13, 15, -9, -50, 49, -38, 72, -63, + 37, -65, 67, -48, 55, -51, 10, 2, -5, 45, -61, 46, -83, 91, -58, 72, + -69, 23, -27, 35, -8, -3, -2, -33, 66, -61, 79, -100, 67, -60, 66, -26, + 13, -21, -13, 23, -11, 29, -49, 40, -53, 80, -67, 52, -63, 28, 6, -1, + 23, -45, 25, -30, 42, -25, 22, -42, 33, -26, 39, -26, -9, 10, -28, 61, + -50, 33, -43, 18, 2, 6, 4, -18, 4, -8, 24, -21, 22, -49, 50, -40, + 52, -35, -10, 17, -34, 64, -53, 38, -47, 37, -28, 40, -47, 33, -32, 28, + 3, -20, 30, -69, 79, -75, 88, -72, 39, -34, 22, -7, 9, -18, 1, 19, + -27, 58, -89, 81, -90, 89, -58, 42, -27, -5, 16, -21, 29, -34, 28, -37, + 59, -65, 72, -90, 69, -45, 31, 6, -36, 40, -53, 56, -47, 39, -42, 40, + -38, 50, -52, 34, -31, 7, 32, -47, 62, -79, 66, -51, 41, -27, 12, -10, + 12, -5, 3, -5, -18, 33, -44, 70, -75, 60, -52, 27, 4, -19, 22, -29, + 27, -15, 18, -31, 26, -36, 50, -41, 35, -31, 3, 19, -37, 55, -62, 51, + -38, 25, -11, 1, -13, 12, -7, 13, 4, -33, 38, -56, 72, -64, 52, -43, + 20, 6, -20, 25, -40, 34, -25, 38, -41, 43, -68, 68, -59, 53, -28, -7, + 27, -45, 63, -70, 56, -60, 59, -41, 48, -56, 39, -43, 35, -3, -19, 40, + -70, 85, -81, 76, -75, 48, -36, 41, -20, 12, -23, 0, 16, -23, 51, -76, + 78, -82, 80, -57, 29, -23, 3, 14, -2, 9, -29, 17, -31, 55, -51, 53, + -66, 49, -27, 17, 3, -35, 36, -33, 44, -27, 11, -30, 24, -18, 37, -29, + 4, -3, -15, 45, -47, 42, -57, 46, -19, 18, -11, -20, 10, -3, 24, -18, + 14, -46, 52, -50, 64, -57, 25, -14, 1, 33, -42, 30, -52, 50, -28, 47, + -54, 32, -49, 53, -25, 14, -4, -34, 57, -54, 69, -78, 46, -45, 52, -21, + 21, -37, 7, 1, 3, 29, -57, 56, -74, 90, -66, 47, -51, 16, 6, 10, + 10, -29, 9, -32, 58, -47, 59, -84, 65, -49, 52, -24, -18, 14, -30, 61, + -39, 31, -57, 39, -38, 67, -56, 37, -46, 26, 10, -15, 18, -49, 45, -27, + 42, -37, 11, -24, 30, -15, 21, -34, 15, -5, 11, 5, -24, 11, -16, 30, + -16, 6, -20, 7, 3, 11, -9, -5, -6, 4, 16, -15, 9, -29, 22, -6, + 14, -6, -16, 9, -12, 28, -22, 15, -27, 22, -11, 21, -23, 5, -10, 8, + 17, -22, 19, -42, 41, -31, 39, -37, 20, -20, 19, -3, -7, 2, -17, 27, + -20, 30, -43, 30, -34, 38, -24, 13, -13, -1, 16, -16, 19, -36, 28, -21, + 30, -22, 7, -17, 11, 2, 1, 1, -19, 22, -21, 32, -34, 18, -21, 17, + 6, -8, 5, -25, 21, -13, 24, -24, 12, -22, 24, -11, 10, -14, -7, 15, + -11, 28, -36, 21, -30, 30, -10, 10, -13, -5, 6, -2, 14, -22, 15, -25, + 33, -22, 23, -31, 11, -6, 8, 11, -21, 14, -28, 32, -23, 25, -31, 19, + -15, 19, -7, -7, 1, -13, 26, -19, 24, -37, 25, -24, 30, -18, 6, -9, + -2, 17, -16, 17, -34, 27, -19, 28, -21, 6, -15, 10, 4, 0, 2, -20, + 22, -19, -21, 0, -3, -3, 2, 1, -1, 2, -2, -1, 4, 3, -3, -15, + -21, -20, -23, -42, -45, -31, -27, -17, -8, 9, 29, 41, 44, 33, 20, 13, + 6, 12, 16, 25, 43, 44, 33, 33, 35, 15, -5, -3, 8, 16, 8, -10, + -6, 8, 4, -4, 1, -18, -38, -43, -51, -54, -55, -71, -85, -68, -58, -61, + -50, -33, -27, -15, -5, 22, 67, 100, 109, 114, 110, 91, 69, 50, 37, 35, + 46, 48, 37, 36, 14, -24, -38, -42, -38, -38, -59, -91, -86, -57, -44, -32, + -15, -26, -44, -30, -30, -30, -16, -31, -50, -34, -43, -59, -49, -44, -52, -62, + -69, -50, -4, 47, 83, 105, 120, 111, 88, 72, 55, 57, 76, 69, 59, 55, + 41, 10, -18, -32, -28, -19, -36, -68, -76, -72, -71, -46, -35, -47, -43, -43, + -61, -48, -28, -25, -22, -19, -23, -15, -7, 3, 4, -8, -28, -37, -5, 42, + 72, 107, 127, 122, 117, 90, 48, 37, 48, 51, 54, 56, 43, 24, -8, -37, + -33, -11, -28, -55, -61, -75, -75, -51, -58, -55, -33, -33, -41, -35, -30, -21, + -16, -17, -24, -26, -20, -18, -17, -12, -36, -72, -65, -45, -6, 53, 88, 106, + 119, 107, 71, 52, 50, 59, 75, 87, 85, 76, 43, -1, -7, 9, -1, -13, + -34, -69, -80, -74, -80, -73, -65, -67, -65, -56, -44, -33, -23, -18, -24, -25, + -16, -20, -9, -1, -21, -38, -55, -64, -40, 3, 39, 82, 113, 114, 95, 71, + 54, 56, 68, 76, 87, 94, 57, 10, -9, -17, -17, -15, -35, -60, -75, -89, + -92, -85, -76, -71, -74, -70, -53, -41, -20, -9, -9, 4, 4, 10, 33, 38, + 25, 15, -17, -43, -33, -15, 3, 40, 77, 94, 91, 69, 37, 31, 33, 37, + 68, 96, 82, 53, 25, 8, 22, 28, 9, -9, -27, -46, -56, -65, -62, -61, + -60, -51, -51, -39, -25, -23, -11, -3, -15, -10, 5, 12, 20, 18, -11, -41, + -52, -47, -34, -2, 33, 65, 82, 70, 51, 45, 28, 21, 49, 74, 86, 74, + 33, 5, 10, 14, 7, -10, -28, -45, -67, -68, -73, -76, -66, -66, -65, -46, + -39, -31, -9, -3, -6, 1, 8, 22, 41, 49, 33, 8, -16, -34, -30, -17, + 7, 49, 73, 64, 63, 50, 19, 5, 13, 32, 62, 65, 37, 8, -5, 4, + -1, -8, -15, -36, -50, -57, -71, -65, -53, -58, -49, -37, -40, -28, -10, -3, + 0, 2, -2, 5, 30, 41, 36, 22, -7, -33, -39, -46, -30, 15, 44, 56, + 72, 65, 44, 21, 2, 15, 42, 59, 49, 18, 2, -3, -4, 0, -10, -25, + -34, -52, -65, -59, -56, -50, -37, -33, -33, -25, -12, -2, 10, 12, 3, 6, + 27, 42, 52, 43, 16, -3, -24, -48, -41, -11, 16, 48, 67, 78, 75, 49, + 21, 13, 36, 64, 63, 47, 25, -1, -2, 2, -12, -18, -28, -53, -65, -71, + -76, -70, -55, -53, -49, -41, -35, -24, -1, 5, 1, 4, 8, 28, 51, 43, + 26, 18, -14, -42, -51, -49, -23, 5, 31, 55, 67, 58, 26, -2, 11, 35, + 49, 55, 35, 8, 3, -2, -5, -6, -13, -30, -38, -49, -61, -56, -45, -43, + -36, -31, -37, -25, -7, 1, 6, 1, -10, 11, 33, 29, 27, 17, -6, -34, + -58, -67, -57, -34, -4, 21, 50, 63, 37, 11, 8, 17, 45, 63, 55, 39, + 26, 12, 11, 10, -1, -11, -19, -35, -51, -52, -52, -45, -35, -36, -41, -31, + -24, -9, 9, -3, -12, 2, 19, 33, 40, 37, 25, -3, -30, -51, -59, -42, + -24, -3, 38, 58, 51, 32, 8, 2, 25, 45, 50, 49, 35, 18, 16, 19, + 10, 9, 4, -13, -27, -36, -45, -36, -24, -32, -29, -31, -33, -10, 6, 1, + -4, -6, 4, 19, 30, 37, 30, 12, -13, -48, -59, -57, -56, -35, 2, 31, + 48, 41, 12, -2, 7, 25, 41, 52, 44, 29, 25, 22, 18, 20, 15, 1, + -6, -26, -38, -28, -26, -21, -17, -31, -33, -19, -4, 0, -8, -16, -15, -11, + 9, 19, 22, 24, -2, -34, -49, -61, -70, -57, -32, 4, 38, 46, 26, 5, + -1, 7, 29, 45, 44, 38, 32, 23, 27, 30, 23, 24, 14, -8, -16, -24, + -24, -12, -10, -19, -27, -26, -9, -2, -4, -6, -16, -14, -2, 8, 23, 34, + 17, -6, -26, -47, -61, -62, -50, -18, 26, 50, 48, 31, 12, 6, 24, 40, + 44, 51, 40, 29, 34, 28, 27, 32, 20, 7, -5, -23, -26, -19, -9, -12, + -25, -25, -17, -8, 1, -4, -13, -12, -16, -9, 13, 26, 23, 8, -13, -37, + -55, -71, -78, -59, -18, 16, 35, 34, 8, -3, 4, 13, 31, 40, 34, 34, + 29, 23, 30, 31, 27, 21, 7, -6, -21, -21, -10, -10, -19, -24, -28, -17, + -6, -8, -9, -9, -19, -21, -5, 12, 23, 22, 5, -16, -34, -55, -80, -78, + -56, -22, 18, 33, 24, 14, 3, 7, 25, 31, 37, 41, 33, 29, 29, 32, + 33, 30, 24, 7, -16, -22, -18, -15, -14, -24, -31, -22, -13, -12, -8, -6, + -18, -27, -22, -6, -5, -1, -1, -1, 1, 2, 7, 13, 19, 10, -12, -31, + -13, 17, 29, -4, -29, 24, 53, 18, 92, 15, -15, 23, 13, -35, -52, 127, + 9, 3, -9, 31, -63, -64, -5, -50, 14, 33, -29, -42, 0, 43, 39, -15, + -59, -45, 3, 33, 12, -35, -10, 51, 18, 49, 55, -28, 16, 4, 3, -64, + 54, 53, -12, 0, 5, -4, -72, -7, -31, -14, 26, -2, -37, -14, 17, 35, + 4, -33, -45, -12, 15, 21, -16, -23, 22, 28, 12, 55, -7, -2, 7, 7, + -34, -10, 65, -4, 1, -5, 14, -46, -28, -9, -29, 13, 13, -23, -23, 4, + 27, 18, -17, -39, -25, 5, 20, 0, -26, 1, 34, 7, 41, 24, -20, 11, + 1, -6, -45, 53, 22, -6, -4, 9, -17, -52, -4, -30, -6, 20, -9, -29, + -8, 18, 27, -2, -33, -36, -6, 16, 13, -20, -16, 27, 19, 18, 49, -17, + 3, 2, 6, -42, 9, 55, -9, 1, -3, 9, -54, -19, -16, -24, 16, 7, + -27, -19, 8, 28, 12, -22, -40, -20, 8, 19, -7, -25, 9, 31, 7, 48, + 9, -14, 9, 2, -17, -35, 62, 9, -2, -6, 13, -30, -44, -4, -31, 2, + 18, -15, -27, -3, 22, 24, -8, -36, -32, -2, 17, 8, -23, -9, 31, 13, + 28, 40, -21, 8, 1, 3, -47, 29, 43, -9, 0, 1, 1, -57, -11, -22, + -17, 19, 2, -28, -14, 12, 29, 7, -27, -39, -14, 11, 17, -13, -22, 17, + 27, 10, 51, -4, -7, 7, 5, -27, -19, 64, -1, 1, -6, 14, -41, -34, + -8, -30, 8, 15, -20, -24, 2, 25, 20, -14, -38, -27, 2, 18, 2, -25, + -1, 33, 9, 37, 29, -21, 11, 0, -3, -46, 46, 29, -7, -2, 7, -9, + -54, -6, -27, -10, 20, -4, -28, -9, 16, 28, 1, -30, -37, -8, 14, 14, + -18, -17, 25, 22, 16, 50, -13, 1, 4, 5, -37, 0, 59, -7, 2, -4, + 12, -49, -24, -13, -26, 13, 11, -23, -19, 6, 27, 15, -19, -39, -21, 6, + 18, -4, -24, 7, 32, 8, 45, 15, -16, 10, 2, -12, -39, 58, 16, -3, + -5, 11, -22, -48, -4, -30, -2, 19, -10, -26, -4, 20, 25, -5, -34, -33, + -4, 16, 10, -21, -11, 30, 16, 25, 43, -19, 7, 1, 4, -44, 20, 49, + -8, 1, -1, 6, -54, -15, -19, -20, 17, 6, -26, -15, 10, 29, 9, -23, + -39, -16, 9, 17, -10, -22, 15, 29, 10, 50, 2, -10, 8, 3, -22, -26, + 63, 5, 0, -6, 14, -34, -39, -6, -30, 4, 17, -15, -24, 0, 24, 22, + -11, -36, -28, 1, 17, 5, -23, -3, 32, 12, 34, 33, -21, 10, 0, 0, + -46, 39, 36, -7, -1, 4, -3, -54, -9, -24, -14, 19, 0, -26, -10, 14, + 28, 4, -27, -37, -11, 12, 15, -15, -18, 22, 24, 14, 50, -9, -2, 5, + 5, -32, -8, 61, -3, 2, -5, 14, -44, -29, -10, -27, 10, 13, -20, -20, + 4, 26, 17, -16, -37, -23, 4, 18, -1, -23, 5, 32, 9, 42, 20, -18, + 11, 1, -7, -41, 53, 22, -4, -3, 9, -14, -50, -6, -27, -7, 19, -6, + -26, -5, 18, 26, -2, -31, -34, -6, 14, 11, -19, -12, 28, 19, 22, 45, + -17, 4, 2, 5, -40, 11, 54, -6, 2, -3, 10, -51, -20, -16, -23, 14, + 9, -23, -15, 8, 28, 12, -20, -38, -18, 7, 17, -7, -22, 13, 30, 10, + 47, 7, -12, 9, 2, -17, -31, 61, 10, 0, -5, 13, -26, -43, -6, -29, + 0, 18, -11, -23, -1, 22, 23, -8, -34, -30, -1, 15, 7, -22, -5, 31, + 14, 30, 37, -20, 9, 0, 2, -44, 30, 42, -7, 1, 2, 2, -53, -12, + -21, -17, 17, 4, -25, -11, 12, 28, 6, -25, -37, -13, 10, 15, -13, -18, + 20, 26, 13, 49, -5, -5, 6, 4, -27, -16, 62, 1, 2, -5, 14, -38, + -34, -9, -28, 6, 15, -16, -20, 3, 25, 19, -13, -36, -25, 2, 16, 1, + -23, 3, 32, 11, 38, 25, -19, 11, 0, -4, -43, 46, 29, -4, -2, 7, + -8, -51, -8, -25, -10, 18, -2, -25, -7, 16, 27, 0, -28, -35, -8, 12, + 12, -17, -13, 26, 21, 19, 46, -14, 2, 3, 4, -36, 2, 57, -4, 3, + -4, 12, -46, -25, -13, -25, 11, 12, -20, -16, 7, 27, 14, -18, -37, -20, + 5, 16, -5, -21, 10, 31, 10, 45, 12, -14, 10, 1, -12, -36, 57, 16, + -1, -4, 11, -20, -46, -6, -28, -4, 18, -8, -23, -3, 20, 24, -5, -32, + -31, -4, 13, 8, -20, -6, 29, 17, 27, 39, -19, 7, 0, 3, -42, 21, + 47, -6, 2, 0, 7, -51, -17, -18, -20, 15, 7, -23, -12, 10, 28, 8, + -22, -37, -15, 8, 15, -10, -19, 18, 27, 13, 47, 0, -8, 8, 3, -24, + -20, 52, -36, -2, 0, -2, 3, 5, -4, -28, 22, -43, 36, -13, -127, -43, + 2, -18, 126, 78, -127, -48, 68, -74, -67, 33, 62, 83, 42, -32, -46, -70, + -26, 115, 21, -66, 72, 52, -27, 44, 50, 50, 61, 28, -12, 3, -59, 49, + 3, -19, 39, 94, 16, 31, 6, 29, 3, -100, -1, -4, -60, 19, 7, -29, + -28, -38, -3, -47, -20, -21, -1, 5, -55, -12, -55, -39, 26, 47, -22, -9, + -41, -21, -19, -37, 0, 45, -56, 24, 75, -50, -9, 31, 28, 26, 13, -3, + -15, -27, 1, 1, -31, -10, 38, -1, 7, 43, 19, 21, 41, 33, 9, -17, + -3, -42, -76, -30, -8, -9, -1, 21, 22, 38, 32, 22, 0, -18, -32, -58, + -12, 5, -48, -13, 64, 29, -2, 2, 19, 43, 25, -19, -39, -69, -92, -15, + 23, 30, 30, 51, 37, 35, 37, 30, -27, -63, 5, -30, -56, -16, 26, 52, + 20, 14, 59, 27, -9, 22, -4, -20, -37, -17, -34, -34, -1, 35, 26, 31, + 5, -16, 4, 33, 22, 8, 5, -28, -41, -20, -10, -6, -2, -16, 12, 31, + -23, 7, -2, -39, -28, -13, 8, 5, 16, -4, -6, -18, -24, -27, -50, -6, + 5, 12, 0, -2, -14, -23, 5, -28, -10, 2, 28, 15, 2, 22, 27, 41, + 31, 2, 12, 31, 5, 12, -6, 15, 40, 34, 18, 26, 26, 12, 34, 23, + 34, 30, 22, 10, -26, -22, 1, 0, -1, 12, -4, -21, -5, -5, -20, -31, + -25, -24, -42, -44, -41, -41, -37, -29, -28, -29, -40, -17, -21, -38, -42, -38, + -40, -36, -13, -14, -8, -15, -7, -6, 5, 12, -1, -17, -1, 9, 2, 16, + 30, 27, 37, 36, 38, 36, 36, 19, 45, 45, 33, 26, 33, 28, 36, 31, + 17, 12, 22, 11, 11, 17, 5, -13, 6, 10, 2, -6, 2, 9, 15, -6, + -8, -23, -44, -3, -11, -35, -25, -35, -23, -21, 0, -11, -21, -17, 11, -6, + -11, -17, -33, -16, -16, -4, -7, -7, -9, -4, 1, 1, -3, 6, 7, 4, + -17, -11, -6, -4, 1, 3, 6, 4, 5, -4, 17, 7, 3, 9, -20, 0, + -7, -3, -5, 4, 9, 16, 2, 3, 8, 15, 15, 1, -3, 8, -1, 5, + 14, 7, 4, 8, -8, 2, -3, 5, 11, 5, 3, -4, 10, 17, 13, -11, + -5, 1, -3, 0, -6, -12, 2, -3, 13, -5, -25, -15, -7, 4, 1, -8, + -4, -12, -16, 3, 9, -6, 3, -21, -4, 4, -14, 1, -1, -2, 3, -8, + -5, 0, 7, -2, -3, -1, 3, -9, 5, -4, -17, -1, 9, 3, 7, 1, + -4, -3, 5, 2, -7, -9, 12, -6, -14, -16, 2, -1, 16, 2, 2, 7, + -6, -26, 3, -2, -4, -2, 10, 3, -7, 3, 8, 9, 5, 4, 1, -5, + -5, 11, 8, 7, 11, 12, -1, -5, -16, 13, 7, 2, 11, 4, -4, 9, + -8, -8, 14, 11, -8, 0, -1, -5, -2, -1, -10, -5, -9, -9, -16, -12, + -8, -16, 5, -10, -4, -11, -3, 1, 0, -3, -5, -13, -9, -2, -8, 5, + -9, -7, -2, 2, -11, -7, 13, 8, -3, 2, 7, -2, -1, 5, 0, 11, + 6, 13, 15, 1, -4, 9, 5, 3, 8, -3, -4, 16, 4, 11, 9, 0, + 8, 1, -6, -5, -18, 3, 7, -18, -4, 0, -3, -3, -6, -4, -5, -5, + -10, -2, -9, -5, -2, -4, -11, -2, 1, -5, -2, 11, -6, -9, 1, 4, + -6, -1, -5, 1, 2, 9, 5, 0, 4, 4, -2, 7, 0, -10, 5, 2, + -3, 0, -6, 7, -4, -3, 6, -1, -6, -1, -1, 2, -2, -6, -3, 0, + 8, -6, 4, -1, -5, -3, 3, 1, -5, -6, -2, -3, 5, 6, 0, 7, + -3, 3, -1, 0, -2, 9, 1, 1, -3, 4, 5, -5, 2, -2, 2, -11, + -2, -4, 11, 4, 5, 0, -5, -12, -6, -5, -5, 3, -2, -2, 2, 2, + 1, 0, -1, -8, -5, -5, -3, 2, -1, 3, -1, 3, 0, -1, 0, -1, + 1, 1, -4, -4, 2, -2, 1, -6, 1, 2, 4, 2, 2, -5, -1, 6, + -3, -1, -4, 11, 3, -9, -2, -6, -3, 2, 4, 2, 1, 2, 4, 3, + -6, -4, -3, -2, 0, 2, -2, 5, 2, -1, 3, -9, -3, -3, -4, -4, + -1, 0, -2, 7, 3, 1, 1, -2, -4, -2, -3, -2, -4, 2, 4, -1, + 2, 3, 0, 3, -1, 0, -2, -2, -3, 1, -1, -4, 5, -1, 5, 0, + -3, -2, -1, -4, 3, -1, -3, -2, -2, -1, 0, 0, 1, -1, 0, -2, + -2, 0, -3, -1, 0, 0, 1, 1, -2, -1, 1, -3, 1, 2, 0, -1, + 0, -1, 1, 5, -2, 1, -3, -3, -1, -3, 0, 1, 3, 2, -1, -1, + -2, -2, -1, 1, 0, -1, -2, -2, -2, -3, -3, -3, -2, -2, -2, -2, + -2, -2, -2, -1, 0, 1, 1, -2, -2, 0, 0, 2, -3, -16, -22, -20, + -28, -35, -31, -17, 19, 33, 36, 33, 34, 40, 36, 25, 18, 20, 18, 14, + 17, 12, 14, 10, -24, -36, -27, -38, -55, -69, -66, -47, -33, -13, 3, 5, + 10, 22, 25, 15, 28, 43, 41, 51, 56, 58, 58, 31, -18, -52, -64, -71, + -92, -105, -98, -77, -50, -17, 23, 59, 85, 99, 94, 76, 55, 14, -9, -5, + -7, -18, -17, -35, -53, -53, -33, -23, -33, -36, -15, 17, 32, 24, 12, 19, + 37, 54, 49, 38, 21, -14, -44, -30, -22, -15, 5, 8, -1, -26, -42, -46, + -49, -51, -37, -17, 1, -4, -19, -4, 45, 84, 91, 79, 57, 3, -30, -29, + -35, -25, -8, -6, -26, -61, -75, -73, -77, -72, -54, -19, 9, 6, -10, 3, + 47, 85, 92, 103, 92, 45, 21, 6, 4, 16, 27, 27, -1, -48, -69, -78, + -80, -84, -72, -33, -10, -24, -41, -20, 40, 82, 99, 123, 102, 69, 49, 30, + 27, 34, 42, 41, -2, -58, -96, -108, -103, -106, -83, -37, -10, -18, -38, -18, + 40, 65, 92, 110, 84, 44, 1, -26, -23, -7, 21, 32, 7, -39, -78, -84, + -79, -82, -61, -19, 5, -14, -52, -25, 25, 59, 102, 127, 116, 86, 40, 13, + 4, 9, 27, 29, 4, -47, -88, -94, -87, -83, -56, -18, 15, -13, -49, -30, + -2, 29, 69, 87, 80, 50, 9, -15, -27, -10, 18, 44, 36, -9, -45, -53, + -53, -46, -33, 6, 31, -8, -36, -28, -11, 21, 54, 76, 76, 44, 4, -33, + -53, -45, -18, 13, 10, -35, -62, -70, -61, -44, -19, 38, 63, 30, 9, 4, + 9, 35, 60, 81, 75, 51, 14, -25, -44, -37, -9, 29, 24, -11, -41, -59, + -51, -54, -33, 23, 35, 6, -13, -28, -18, 8, 43, 73, 76, 63, 33, -1, + -21, -22, 10, 43, 35, 5, -32, -47, -51, -68, -44, 6, 14, 0, -21, -34, + -25, 0, 37, 65, 73, 64, 35, 5, -22, -25, 11, 40, 39, 13, -20, -28, + -42, -64, -32, 6, 15, -1, -25, -39, -39, -16, 19, 44, 58, 53, 27, -2, + -39, -38, -2, 30, 40, 13, -16, -19, -45, -60, -29, 6, 17, 1, -21, -40, + -44, -24, 9, 38, 58, 51, 38, 8, -31, -29, 0, 34, 44, 9, -11, -23, + -58, -69, -42, -6, 9, 0, -16, -33, -36, -12, 19, 55, 72, 68, 58, 18, + -22, -25, -6, 29, 31, 2, -5, -23, -57, -69, -45, -8, 12, 10, 0, -22, + -24, -7, 20, 52, 61, 65, 59, 21, -15, -28, -11, 26, 20, 2, -2, -22, + -56, -71, -49, -14, 3, 8, -5, -26, -28, -19, 14, 42, 54, 71, 67, 38, + 8, -11, 16, 47, 37, 26, 18, -10, -51, -74, -59, -35, -19, -12, -24, -37, + -44, -34, 0, 24, 44, 67, 64, 43, 3, -18, 11, 35, 28, 22, 18, -4, + -47, -68, -55, -34, -11, -7, -15, -27, -43, -32, -1, 18, 42, 58, 60, 43, + -8, -29, -6, 11, 7, 4, 4, -17, -59, -75, -66, -41, -13, -3, 1, -11, + -29, -19, 1, 19, 42, 53, 64, 45, -8, -28, -9, 7, 4, 4, 9, -13, + -51, -71, -69, -43, -19, -7, 3, -11, -25, -17, -2, 23, 43, 60, 78, 55, + 1, -19, -5, 8, 3, 7, 13, -8, -41, -66, -67, -40, -19, 3, 16, 1, + -7, -5, 10, 34, 46, 67, 87, 62, 11, -13, -1, 8, 4, 15, 20, 1, + -33, -64, -65, -48, -30, -2, 6, -5, -14, -18, 1, 21, 32, 62, 86, 66, + 20, -3, 6, 7, 5, 16, 20, 7, -29, -62, -65, -59, -39, -13, -5, -8, + -22, -27, -6, 7, 17, 49, 74, 58, 14, -5, -2, -4, -3, 7, 14, 6, + -32, -59, -66, -63, -40, -16, -2, -2, -19, -20, -1, 6, 18, 49, 77, 62, + 21, 3, -1, -5, -2, 5, 18, 10, -26, -50, -65, -64, -43, -24, -5, -6, + -24, -23, -8, -2, 10, 45, 75, 60, 25, 6, -4, -4, -5, 3, 20, 8, + -20, -43, -60, -58, -45, -24, 1, -1, -15, -12, -1, 3, 16, 53, 83, 70, + 42, 19, 9, 7, 3, 16, 29, 17, -7, -35, -55, -56, -49, -24, 2, -1, + -11, -7, 3, 4, 16, 55, 83, 75, 50, 25, 15, 6, 0, 13, 21, 13, + -9, -40, -58, -66, -62, -35, -11, -11, -18, -13, -3, -7, 9, 49, 75, 74, + 51, 28, 19, 5, 1, 13, 20, 16, -3, -28, -48, -62, -61, -37, -16, -13, + -20, -15, -12, -19, -5, 21, 50, 61, 47, 28, 15, -1, -6, 0, 9, 14, + 1, -19, -37, -55, -56, -38, -16, -11, -13, -9, -9, -16, -8, 18, 48, 59, + 44, 28, 9, 15, -3, 2, -5, 3, 3, 4, 1, 7, -2, 7, -4, 2, + -124, -37, 33, -48, 7, -27, 8, -14, 77, 26, -9, 26, 7, 20, 10, 13, + 8, 9, 7, 4, 5, 2, 3, 2, 1, -1, 0, -3, -2, -5, 1, -10, + 11, 70, -6, 21, 5, 27, -2, 41, -15, -61, -66, -128, 0, -48, -21, -46, + -6, -55, 23, 53, -6, 11, 2, 14, 11, 10, 11, 8, 9, 9, 8, 5, + 8, 5, 6, 5, 6, 2, 7, -4, 6, 5, -23, 62, 29, 24, 8, 33, + 4, 32, 36, -30, -16, -124, -58, -39, -18, -51, -3, -43, -40, 53, 19, 12, + 4, 9, 12, 13, 10, 11, 9, 8, 11, 6, 5, 8, 6, 3, 9, 1, + 7, 2, -5, 22, -33, 20, 37, 35, 7, 29, 14, 8, 52, -5, 17, -64, + -84, -70, -15, -55, -23, -12, -72, 1, 28, 16, 8, 6, 7, 12, 10, 8, + 11, 6, 8, 10, 5, 4, 10, 1, 8, 4, 2, 10, -15, 26, -16, -9, + 14, 42, 17, 19, 29, -3, 42, 14, 28, -8, -45, -92, -37, -41, -54, 0, + -53, -48, 2, 18, 10, 8, 4, 8, 12, 8, 10, 10, 6, 9, 10, 2, + 10, 5, 3, 9, -2, 18, -16, 17, 3, -9, -12, 26, 28, 13, 35, 3, + 27, 19, 31, 17, 4, -60, -67, -33, -66, -22, -22, -58, -38, 2, 11, 9, + 7, 4, 9, 10, 8, 10, 9, 5, 12, 5, 5, 9, 2, 11, -5, 21, + -8, 4, 10, 5, -17, -1, 28, 11, 34, 13, 20, 17, 28, 24, 27, -6, + -61, -41, -57, -51, -17, -36, -56, -32, -1, 7, 8, 5, 6, 8, 10, 8, + 12, 6, 9, 9, 5, 9, 1, 15, -7, 15, 5, -2, 4, 14, -3, -18, + 15, 8, 28, 21, 20, 16, 23, 23, 29, 30, -20, -38, -45, -63, -38, -23, + -43, -53, -29, -5, 5, 5, 5, 5, 9, 7, 11, 8, 8, 10, 5, 12, + -2, 16, -1, 4, 11, 4, -3, 8, 15, -16, 0, 1, 16, 23, 23, 17, + 20, 21, 21, 39, 19, -14, -28, -52, -58, -33, -28, -47, -50, -30, -6, 2, + 5, 4, 6, 6, 9, 10, 7, 12, 3, 15, 0, 10, 8, 1, 6, 11, + 2, -4, 20, -1, -6, -5, 4, 15, 24, 20, 18, 23, 15, 30, 38, 13, + -6, -27, -56, -52, -30, -34, -48, -50, -28, -8, 2, 3, 5, 5, 6, 11, + 5, 13, 3, 12, 6, 5, 10, 5, 2, 7, 13, -8, 10, 11, 0, -6, + -4, 3, 17, 23, 16, 24, 18, 17, 36, 32, 13, -1, -30, -57, -45, -31, + -36, -51, -49, -28, -7, -1, 3, 6, 2, 11, 5, 12, 6, 9, 10, 5, + 8, 8, 5, -1, 16, 1, -1, 11, 9, -1, -5, -5, 4, 20, 17, 20, + 24, 14, 23, 37, 29, 16, 2, -33, -53, -42, -30, -39, -52, -49, -27, -9, + -3, 5, 0, 8, 5, 10, 8, 6, 10, 6, 7, 6, 11, -3, 8, 11, + 0, 2, 11, 8, -1, -5, -7, 9, 18, 16, 24, 20, 14, 27, 35, 27, + 21, 1, -33, -50, -38, -32, -42, -53, -48, -25, -14, -1, -2, 4, 3, 6, + 9, 5, 9, 7, 7, 4, 12, 4, 1, 10, 6, 2, 6, 10, 4, 0, + -6, -2, 11, 14, 18, 22, 17, 20, 32, 34, 28, 20, 0, -26, -36, -34, + -37, -45, -54, -44, -30, -13, -8, -3, 1, 2, 6, 4, 7, 8, 8, 2, + 8, 10, 1, 4, 6, 5, 5, 9, 6, 1, -3, -5, 3, 10, 14, 18, + 18, 17, 26, 35, 35, 29, 17, -1, -17, -24, -32, -41, -50, -51, -44, -28, + -18, -12, -5, -2, 2, 3, 3, 6, 9, 4, 3, 9, 6, 2, 2, 4, + 5, 9, 10, 4, -2, -5, -1, 5, 10, 14, 16, 15, 19, 30, 38, 37, + 29, 15, 1, -5, -14, -31, -43, -50, -52, -42, -29, -22, -16, -9, -3, 0, + 0, 2, 6, 6, 2, 4, 7, 6, 2, 1, 2, 6, 11, 10, 2, -5, + -4, 0, 5, 10, 14, 15, 14, 21, 32, 39, 38, 29, 14, 4, 0, -3, + -19, -32, -40, -43, -41, -36, -31, -25, -19, -12, -9, -8, -6, -1, 2, 2, + 0, -3, -4, -1, 3, 6, 6, 2, -3, -6, -2, 2, 2, 1, 2, 7, + 16, 25, 32, 35, 35, 36, 36, 33, 24, 11, -3, -18, -32, -40, -42, -40, + -36, -30, -25, -18, -12, -9, -8, -5, -1, 2, 2, 0, -3, -4, -1, 3, + 7, 6, 2, -4, -5, -2, 2, 2, 1, 2, 8, 17, 25, 32, 35, 36, + 36, 36, 32, 23, 10, -4, -20, -33, -41, -42, -40, -35, -30, -24, -18, -12, + -9, -8, -5, -1, 3, 2, -1, -4, -4, -1, 4, 7, 6, 1, -4, -5, + -2, -1, 3, 1, 3, 5, 3, -3, -1, -1, 1, -15, 1, 1, -5, -7, + 7, -2, -4, 3, -2, -5, -1, -3, -3, -1, 6, 3, 2, 3, -26, -117, + 35, -8, -19, 24, 58, -7, -6, 25, -9, 7, 4, 10, 2, 7, 6, 6, + 0, 6, -2, -1, -3, -3, 8, 71, 0, 17, 27, 20, -102, -115, 39, -32, + -18, -5, 58, -15, -12, 13, -10, -4, 1, 2, 1, 0, 6, 2, 1, 2, + 0, -4, 0, -5, 2, 67, 9, 14, 28, 29, -72, -126, 27, -25, -19, -14, + 58, -6, -11, 13, -5, -3, 3, 3, 4, 1, 8, 3, 3, 3, 3, -2, + 2, -3, -3, 62, 17, 14, 27, 35, -45, -128, 11, -19, -20, -22, 53, 1, + -12, 11, -3, -4, 2, 3, 4, 1, 7, 3, 3, 3, 3, -2, 2, -2, + -9, 57, 22, 14, 25, 37, -23, -125, -8, -15, -20, -30, 46, 9, -12, 10, + -2, -3, 0, 3, 3, 1, 6, 4, 2, 3, 2, -2, 1, 0, -16, 50, + 26, 13, 22, 37, -2, -117, -27, -13, -18, -36, 36, 16, -13, 9, -2, -2, + -2, 3, 2, 2, 4, 5, 1, 4, 2, -1, 0, 4, -20, 43, 29, 15, + 20, 36, 14, -102, -43, -15, -16, -40, 26, 22, -12, 8, -2, -2, -3, 3, + 1, 3, 2, 6, 1, 5, 1, 0, -1, 7, -23, 35, 31, 18, 18, 33, + 27, -83, -57, -20, -14, -42, 14, 26, -9, 7, -2, 0, -5, 3, 1, 4, + 1, 7, 0, 5, 1, 1, -2, 10, -24, 26, 31, 20, 17, 30, 36, -62, + -65, -27, -12, -43, 2, 28, -7, 6, -2, 0, -5, 3, 0, 4, 0, 7, + 0, 5, 1, 2, -4, 11, -23, 17, 32, 22, 16, 27, 42, -44, -67, -36, + -9, -42, -8, 28, -3, 5, -1, 1, -5, 2, 0, 4, 1, 7, 1, 5, + 1, 3, -5, 13, -22, 10, 31, 23, 17, 22, 45, -25, -66, -45, -8, -40, + -18, 27, 0, 5, -1, 1, -5, 1, 0, 4, 0, 6, 2, 4, 2, 3, + -6, 14, -19, 2, 29, 25, 19, 19, 47, -10, -60, -54, -10, -37, -27, 24, + 4, 4, 0, 1, -5, 0, 0, 3, 1, 5, 2, 4, 2, 4, -7, 15, + -16, -4, 27, 25, 21, 15, 48, 4, -51, -61, -12, -33, -34, 19, 7, 4, + 1, 0, -4, -1, 0, 3, 2, 5, 3, 3, 3, 5, -8, 15, -11, -10, + 24, 25, 23, 12, 45, 15, -39, -66, -18, -28, -40, 12, 10, 4, 2, 1, + -3, -2, 0, 2, 2, 4, 3, 3, 3, 5, -8, 13, -6, -14, 19, 25, + 25, 10, 43, 24, -25, -67, -25, -24, -45, 4, 11, 5, 3, 0, -2, -3, + -1, 1, 2, 3, 3, 3, 2, 6, -9, 11, -2, -17, 15, 24, 27, 9, + 39, 31, -13, -66, -33, -19, -48, -3, 11, 5, 3, 1, -2, -3, -1, 1, + 2, 4, 3, 3, 2, 8, -9, 9, 3, -18, 10, 22, 29, 9, 35, 35, + 0, -61, -41, -17, -49, -11, 10, 6, 3, 2, -2, -3, -2, 1, 1, 4, + 3, 5, 1, 9, -9, 7, 6, -18, 5, 20, 29, 10, 32, 38, 11, -47, + -45, -18, -47, -20, 5, 6, 4, 2, -1, -3, -2, 0, 1, 5, 1, 6, + 1, 7, -7, 6, 6, -16, 1, 16, 27, 11, 29, 40, 20, -30, -43, -23, + -46, -28, -2, 4, 4, 2, -1, -3, -2, -1, 0, 6, -1, 7, 2, 5, + -6, 5, 6, -15, -3, 13, 25, 12, 26, 41, 26, -14, -36, -26, -44, -35, + -11, 1, 4, 2, 0, -4, -3, -3, -1, 7, -2, 7, 4, 4, -6, 4, + 7, -13, -6, 10, 23, 12, 24, 42, 31, 0, -24, -28, -42, -40, -19, -4, + 4, 2, 1, -4, -3, -4, -3, 8, -3, 6, 6, 3, -6, 4, 7, -11, + -8, 7, 20, 12, 21, 41, 34, -2, -31, -34, -29, -21, -12, -3, -4, -10, + -7, -5, -6, -4, 5, 8, -3, -1, 7, -1, -11, -7, 0, 1, 6, 16, + 28, 33, 33, 30, 13, -1, -26, -35, -30, -24, -14, -5, -4, -11, -7, -5, + -6, -6, 3, 8, -2, -2, 7, 1, -11, -9, -1, 0, 4, 14, 26, 32, + 33, 32, 17, 3, -22, -34, -31, -25, -16, -6, -3, -10, -8, -5, -6, -7, + 2, 9, 0, -3, 6, 3, -9, -10, -2, 0, 3, 12, 24, 32, -1, 0, + -3, -1, -8, -5, -16, -5, -14, -4, -13, -5, -1, -7, 16, -17, 28, -16, + 47, 1, 70, 35, 97, 71, 98, 66, 32, -5, -71, -69, -122, -69, -105, -33, + -67, -6, -35, 2, -12, -2, 4, -12, 16, -19, 29, -16, 44, 2, 66, 37, + 92, 76, 95, 74, 33, 5, -69, -63, -122, -69, -106, -36, -66, -11, -33, -3, + -9, -7, 7, -16, 18, -22, 29, -17, 42, 3, 61, 40, 86, 81, 91, 82, + 34, 15, -67, -57, -122, -69, -105, -40, -64, -17, -29, -9, -6, -12, 10, -20, + 20, -23, 28, -17, 39, 4, 56, 42, 80, 85, 88, 89, 35, 24, -63, -53, + -119, -70, -104, -45, -62, -22, -26, -14, -2, -16, 12, -23, 20, -25, 27, -16, + 35, 7, 51, 45, 74, 89, 85, 96, 38, 32, -58, -49, -116, -72, -102, -50, + -60, -27, -24, -19, 0, -20, 14, -24, 20, -24, 24, -14, 31, 10, 45, 48, + 69, 92, 82, 102, 40, 39, -53, -45, -112, -74, -100, -55, -57, -33, -21, -24, + 3, -24, 15, -26, 19, -24, 22, -12, 27, 12, 40, 50, 63, 95, 80, 106, + 43, 45, -47, -42, -107, -76, -97, -60, -55, -38, -18, -28, 4, -26, 15, -27, + 18, -23, 19, -10, 23, 15, 35, 53, 59, 97, 78, 110, 47, 50, -39, -39, + -102, -79, -94, -65, -52, -43, -16, -32, 5, -28, 14, -27, 16, -21, 15, -7, + 18, 18, 30, 55, 54, 98, 76, 113, 51, 55, -32, -37, -96, -81, -91, -70, + -50, -48, -15, -35, 6, -30, 13, -26, 13, -19, 11, -5, 13, 20, 25, 56, + 50, 99, 75, 115, 56, 59, -24, -35, -90, -83, -88, -75, -48, -52, -14, -38, + 5, -30, 11, -25, 10, -17, 7, -2, 9, 22, 21, 57, 47, 99, 75, 116, + 61, 62, -15, -33, -82, -86, -84, -80, -47, -56, -14, -39, 4, -30, 9, -24, + 6, -15, 3, 1, 5, 24, 17, 57, 44, 98, 75, 116, 66, 65, -6, -31, + -75, -88, -81, -83, -46, -59, -14, -41, 3, -30, 6, -22, 3, -12, -1, 3, + 1, 26, 13, 57, 41, 96, 75, 115, 72, 68, 2, -29, -69, -89, -78, -87, + -45, -62, -15, -42, 0, -29, 3, -20, -1, -10, -5, 5, -2, 26, 11, 56, + 40, 94, 76, 114, 77, 69, 12, -28, -61, -91, -75, -89, -45, -64, -16, -42, + -2, -28, 0, -18, -5, -8, -9, 7, -6, 27, 8, 55, 38, 91, 77, 112, + 82, 71, 20, -25, -55, -91, -73, -91, -46, -65, -18, -42, -5, -26, -4, -15, + -10, -5, -13, 9, -9, 27, 7, 53, 37, 88, 78, 110, 87, 72, 29, -23, + -48, -90, -71, -93, -47, -66, -21, -41, -9, -24, -8, -13, -13, -3, -16, 9, + -11, 27, 5, 51, 37, 84, 79, 108, 93, 74, 37, -20, -42, -90, -70, -94, + -49, -66, -24, -40, -12, -23, -12, -12, -16, -2, -18, 10, -12, 25, 5, 48, + 37, 80, 81, 105, 98, 75, 45, -16, -36, -88, -68, -94, -51, -66, -28, -39, + -16, -21, -15, -10, -19, -1, -21, 10, -13, 24, 4, 45, 37, 76, 82, 102, + 102, 76, 52, -13, -30, -85, -67, -94, -54, -66, -31, -38, -20, -19, -19, -9, + -22, 0, -22, 9, -14, 22, 4, 41, 37, 71, 83, 99, 105, 77, 59, -8, + -25, -82, -67, -93, -56, -65, -35, -37, -23, -18, -22, -7, -25, 0, -24, 8, + -14, 20, 5, 37, 38, 67, 84, 96, 108, 79, 65, -3, -20, -79, -66, -92, + -59, -65, -39, -36, -27, -17, -25, -7, -27, -1, -24, 6, -14, 17, 6, 34, + 39, 63, 84, 93, 111, 80, 71, 1, -15, -75, -66, -90, -62, -64, -43, -35, + -31, -16, -28, -6, -28, -1, -25, 5, -14, 14, 6, 30, 39, 58, 85, 90, + 113, 82, 76, 7, -11, -70, -66, -88, -66, -62, -46, -34, -34, -15, -30, -7, + -30, -2, -25, 2, -13, 11, 7, 26, 40, 53, 84, 87, 115, 84, 81, 13, + -7, -65, -66, -85, -68, -61, -50, -33, -37, -15, -32, -7, -30, -4, -25, 0, + -12, 7, 9, 19, 37, 52, 80, 97, 118, 113, 98, 54, 7, -41, -72, -87, + -87, -75, -65, -47, -42, -29, -30, -22, -24, -19, -19, -14, -9, -2, 8, 17, + 36, 50, 77, 95, 117, 115, 101, 60, 13, -35, -69, -85, -88, -75, -66, -49, + -44, -31, -31, -23, -25, -20, -20, -15, -9, -2, -1, 0, 0, 0, 0, -1, + -1, -1, 3, 9, 14, 14, 10, -3, -17, -13, 1, 1, 23, 33, -14, -55, + -59, -80, -75, -35, -7, 51, 40, -29, -35, -53, -128, -31, 111, 72, 46, 55, + -19, -73, -23, 14, 64, 104, 87, 105, 68, -54, -76, -1, -18, 12, 92, 23, + -79, -93, -105, -119, -64, -20, 39, 70, 2, -45, -52, -107, -82, 73, 106, 56, + 53, 12, -57, -37, 14, 52, 105, 101, 94, 85, -5, -75, -25, -1, -8, 59, + 52, -45, -89, -94, -117, -90, -42, 1, 53, 29, -29, -45, -79, -104, 3, 99, + 78, 63, 42, -25, -49, -7, 30, 83, 112, 103, 99, 40, -54, -58, -11, -7, + 36, 68, -4, -80, -98, -114, -106, -57, -15, 33, 42, -10, -46, -66, -97, -45, + 68, 90, 67, 53, 4, -40, -20, 18, 60, 103, 107, 100, 69, -15, -62, -31, + -9, 15, 60, 31, -50, -90, -108, -115, -79, -33, 11, 42, 15, -33, -58, -87, + -75, 21, 87, 79, 63, 27, -26, -33, 1, 40, 88, 111, 105, 85, 20, -50, + -49, -17, 5, 46, 49, -17, -77, -102, -115, -95, -49, -7, 31, 28, -15, -50, + -76, -84, -21, 64, 84, 71, 45, -4, -32, -13, 22, 66, 103, 108, 95, 50, + -23, -56, -32, -5, 30, 55, 14, -53, -92, -111, -107, -68, -24, 16, 34, 4, + -37, -66, -85, -53, 32, 81, 77, 58, 17, -25, -24, 6, 46, 89, 108, 101, + 71, 6, -49, -45, -16, 15, 49, 36, -26, -77, -103, -110, -85, -41, 0, 30, + 20, -21, -55, -79, -72, -5, 65, 81, 67, 36, -10, -28, -8, 27, 71, 102, + 104, 85, 34, -31, -51, -29, 1, 37, 48, 2, -57, -93, -109, -97, -58, -16, + 20, 28, -4, -42, -70, -79, -36, 39, 78, 74, 51, 9, -24, -18, 11, 51, + 91, 105, 94, 57, -6, -48, -41, -12, 22, 48, 26, -33, -79, -103, -104, -74, + -32, 6, 28, 12, -27, -60, -78, -59, 8, 66, 78, 62, 27, -13, -24, -3, + 33, 74, 100, 99, 74, 20, -35, -48, -25, 8, 40, 40, -7, -61, -94, -106, + -88, -49, -9, 21, 21, -11, -47, -72, -71, -22, 45, 76, 71, 43, 2, -22, + -13, 16, 56, 91, 101, 85, 43, -15, -47, -36, -6, 28, 45, 16, -38, -80, + -102, -97, -65, -24, 11, 25, 4, -33, -63, -75, -46, 18, 66, 75, 56, 19, + -15, -20, 2, 38, 77, 98, 93, 62, 8, -38, -44, -20, 14, 41, 32, -15, + -64, -94, -101, -79, -40, -2, 22, 15, -17, -52, -72, -61, -9, 49, 74, 66, + 36, -2, -21, -9, 22, 61, 91, 96, 76, 31, -22, -45, -32, 0, 32, 40, + 7, -43, -82, -99, -89, -56, -17, 14, 21, -2, -38, -65, -69, -33, 26, 66, + 71, 50, 13, -16, -16, 7, 43, 79, 95, 85, 50, -2, -40, -40, -14, 20, + 40, 24, -22, -66, -93, -95, -70, -32, 3, 21, 9, -23, -55, -70, -51, 1, + 52, 71, 60, 28, -6, -19, -4, 27, 64, 90, 91, 66, 19, -27, -43, -26, + 6, 34, 35, -1, -48, -83, -96, -81, -47, -10, 16, 17, -9, -43, -66, -62, + -22, 33, 66, 67, 43, 7, -16, -13, 12, 48, 80, 91, 77, 39, -10, -40, + -36, -8, 24, 38, 17, -28, -69, -92, -89, -62, -25, 7, 19, 4, -29, -58, + -67, -42, 10, 55, 70, 55, 22, -9, -17, 0, 33, 68, 90, 86, 57, 10, + -31, -41, -21, 12, 36, 30, -8, -53, -85, -94, -75, -41, -5, 17, 13, -15, + -48, -67, -57, -13, 39, 68, 64, 37, 3, -16, -9, 18, 54, 84, 91, 72, + 30, -17, -41, -33, -2, 28, 37, 10, -35, -74, -94, -86, -56, -19, 10, 17, + -2, -36, -63, -66, -34, 19, 60, 70, 51, 17, -11, -15, 5, 39, 74, 92, + 83, 49, 1, -36, -40, -16, 18, 37, 24, -17, -61, -90, -93, -70, -34, 1, + 18, 8, -22, -55, -69, -50, -2, 47, 70, 61, 31, -3, -17, -5, 26, 62, + 88, 90, 65, 19, -25, -42, -27, 5, 33, 33, 1, -45, -81, -95, -81, -48, + -11, 14, 15, -10, -43, -66, -61, -22, 31, 65, 68, 43, 9, -14, -11, 12, + 49, 80, 92, 76, 38, -10, -39, -36, -8, 24, 38, 16, -27, -70, -92, -89, + -61, -25, 7, 17, 3, -31, -59, -68, -39, 8, 55, 55, 19, 0, -9, -10, + -14, -13, -21, -30, -32, -44, -49, -57, -65, -72, -83, -98, -104, -117, -123, -128, + -127, -128, -128, -128, -128, -127, -128, -120, -117, -109, -100, -90, -83, -72, -66, -55, + -50, -33, -42, -18, -29, -18, 15, -6, 11, 7, 19, 3, 38, 5, 48, 44, + 64, 57, 97, 82, 111, 104, 110, 107, 120, 116, 125, 126, 126, 126, 126, 127, + 117, 125, 123, 100, 127, 101, 124, 102, 121, 109, 126, 96, 125, 116, 127, 90, + 119, 87, 127, 90, 118, 95, 123, 93, 106, 90, 100, 104, 74, 84, 73, 97, + 72, 71, 57, 66, 80, 36, 59, 38, 55, 35, 57, -6, 64, 10, 25, 19, + 19, -22, 65, -26, 14, 2, -17, -12, 22, -40, -3, -31, -24, -38, -1, -56, + -6, -48, -36, -54, -19, -56, -33, -49, -69, -49, -52, -53, -60, -61, -84, -76, + -85, -96, -95, -95, -114, -93, -117, -104, -93, -101, -98, -100, -101, -96, -78, -95, + -71, -70, -72, -52, -63, -70, -43, -77, -41, -48, -65, -53, -53, -59, -42, -56, + -37, -64, -54, -52, -50, -54, -56, -54, -55, -62, -51, -47, -44, -67, -60, -63, + -56, -64, -53, -48, -61, -53, -58, -38, -48, -32, -38, -34, -28, -26, -23, -25, + -22, -6, -7, -12, -1, 5, 6, 6, -7, 22, -4, 27, 15, 18, 24, 37, + 30, 47, 24, 53, 29, 63, 29, 46, 46, 51, 52, 53, 36, 54, 65, 55, + 33, 64, 36, 69, 54, 26, 62, 66, 36, 68, 30, 47, 54, 58, 20, 55, + 31, 40, 50, 35, 19, 56, 33, 25, 46, 18, 22, 42, 21, 25, 32, 19, + 19, 26, 18, 23, 29, 24, 7, 27, 6, 33, 8, 17, -2, 14, 3, 23, + 14, 7, 5, -9, -13, -10, -23, -12, -16, -27, -8, -18, -15, -3, -18, -24, + -5, -23, -9, 0, -11, 4, -1, 4, 2, 5, -2, 3, -1, -7, 4, -11, + 1, -12, -4, -7, -10, -11, -11, -16, -23, -15, -20, -22, -23, -20, -30, -23, + -31, -25, -32, -35, -41, -34, -44, -39, -34, -49, -33, -30, -36, -29, -33, -14, + -24, -32, -18, -15, -7, -9, -11, 5, -14, 27, -11, 16, -10, 13, -9, 23, + -10, 19, 10, 18, 11, 29, 1, 47, 27, -4, 45, 3, 43, 40, 14, 13, + 57, 16, 34, 27, 22, 30, 32, 14, 24, 27, 20, 20, 17, 4, 20, 20, + 8, 8, 0, 10, -3, 17, -8, -1, -4, 1, 0, 6, -7, -3, -3, -13, + -5, -6, -18, -5, -28, -12, -13, -5, -11, -5, -28, -7, -15, -10, -6, -28, + -16, -12, -17, -8, -10, -19, -10, -24, -30, -32, -26, -31, -36, -32, -33, -27, + -25, -26, -26, -25, -25, -23, -16, -22, -10, -11, -7, -7, 4, -10, 10, -9, + 11, -8, 4, -6, 4, -8, 3, -4, 2, -3, -5, -3, -11, -8, -6, -12, + -11, -7, -24, -4, -17, -9, -18, -28, -16, -29, -23, -38, -24, -34, -22, -38, + -18, -27, -10, -22, -19, -21, -2, -23, 10, -19, 0, 4, 16, 7, 0, 3, + 17, 14, 26, 8, 25, 27, 30, 25, 38, 31, 49, 37, 42, 45, 48, 55, + 63, 46, 54, 54, 56, 59, 56, 47, 50, 53, 47, 50, 44, 42, 35, 40, + 31, 37, 35, 27, 20, 23, 19, 26, 24, 18, 11, 14, 18, 24, 18, 12, + 10, 3, 12, 2, 9, 4, 0, 0, 3, -4, 11, 1, 1, -1, -5, -7, + 1, -6, -1, 2, -4, 1, -1, -7, -9, -11, -21, -19, -20, -28, -27, -22, + -29, -24, -26, -32, -22, -25, -31, -24, -19, -22, -11, -19, -15, -4, -5, -4, + 0, -6, -6, 2, -9, -5, -5, -9, -10, -7, -18, -8, -14, -14, -19, -29, + -25, -16, -25, -30, -30, -30, -21, -29, -38, -37, -36, -41, -44, -53, -48, -43, + -44, -55, -46, -40, -33, -36, -40, -40, -28, -25, -24, -23, -17, -15, 1, -3, + -1, 5, 2, 9, 1, 4, 12, 13, 14, 15, 9, 21, 26, 32, 31, 28, + 28, 41, 38, 49, 45, 46, 53, 56, 57, 57, 57, 58, 55, 48, 56, 56, + 56, 45, 39, 41, 41, 44, 42, 25, 28, 27, 24, 28, 21, 14, 17, 8, + 15, 22, 13, 15, 16, 3, 11, 10, 4, 6, 4, -8, 0, -2, -2, -3, + -2, 1, 3, -3, -3, -6, -8, -5, 4, 3, 2, -4, -2, -1, 5, 3, + -2, -2, -2, 3, 7, -2, -26, -37, -34, -30, -13, -14, -21, -24, -27, -24, + -13, -7, -15, 6, 3, -30, -50, -48, -47, -41, -26, -8, 28, 43, 38, 57, + 63, 56, 75, 118, 127, 117, 99, 86, 85, 66, 46, 59, 80, 69, 43, 27, + -6, -47, -74, -80, -71, -57, -40, -44, -56, -78, -88, -78, -59, -52, -51, -56, + -57, -47, -36, -36, -39, -39, -32, -17, 6, 24, 33, 10, -14, -14, -2, -11, + -20, -15, -24, -28, -28, -25, -28, -54, -73, -65, -43, -18, 6, 27, 21, 23, + 17, 22, 18, 16, 31, 50, 45, 25, 22, 8, -20, -17, 8, 29, 10, -22, + -41, -45, -51, -53, -31, -18, -23, -7, 37, 54, 38, 36, 60, 100, 119, 120, + 122, 125, 110, 88, 94, 99, 90, 85, 82, 54, 26, -5, -49, -83, -85, -67, + -36, -14, -30, -55, -76, -86, -65, -41, -45, -60, -53, -43, -35, -34, -41, -43, + -45, -35, 10, 40, 32, 3, -3, -14, -30, -38, -33, -23, -29, -26, -18, -10, + -17, -37, -46, -58, -61, -45, -17, -4, -2, 19, 31, 27, 13, 22, 38, 49, + 59, 69, 60, 23, -13, -11, 13, 24, 19, 24, 8, -30, -58, -58, -66, -85, + -90, -61, -19, -1, -11, -5, 25, 42, 61, 92, 109, 106, 110, 104, 93, 93, + 89, 82, 86, 81, 71, 51, 13, -40, -74, -87, -73, -35, -24, -50, -71, -73, + -53, -50, -58, -68, -60, -61, -54, -30, -25, -40, -52, -25, 13, 32, 45, 49, + 44, 28, 22, 29, 32, 20, 3, 7, 6, 0, -1, -4, -30, -63, -69, -62, + -57, -49, -25, 2, 17, 24, 27, 30, 10, 4, 38, 77, 66, 32, 13, 7, + 0, 9, 31, 43, 23, -11, -25, -23, -46, -83, -87, -63, -42, -19, -6, -3, + 6, 27, 49, 81, 108, 121, 123, 124, 115, 110, 98, 80, 78, 77, 77, 69, + 54, 8, -56, -99, -92, -53, -46, -64, -75, -73, -70, -75, -62, -67, -86, -88, + -54, -28, -33, -46, -50, -40, -24, -3, 29, 51, 48, 34, 44, 44, 30, 18, + 13, -3, -15, -7, -1, -10, -36, -56, -65, -79, -100, -91, -64, -52, -40, -5, + 20, 9, -14, -9, 21, 49, 59, 58, 49, 25, -1, 11, 39, 39, 22, 19, + 20, 8, -19, -49, -72, -69, -58, -43, -27, -24, -13, -5, 12, 38, 74, 97, + 110, 124, 126, 126, 114, 105, 100, 87, 91, 108, 115, 73, 5, -41, -49, -49, + -53, -45, -49, -69, -77, -60, -51, -71, -94, -96, -68, -49, -46, -44, -45, -60, + -60, -27, 0, 11, 26, 37, 37, 37, 40, 42, 34, 8, -1, 14, 15, -5, + -12, -18, -44, -75, -85, -88, -98, -99, -76, -36, -12, -19, -24, -11, -9, 1, + 36, 71, 58, 29, 13, 17, 33, 33, 30, 35, 44, 44, 27, -3, -39, -51, + -61, -55, -41, -31, -25, -29, -21, -1, 23, 46, 76, 102, 109, 110, 116, 118, + 92, 61, 76, 112, 120, 93, 57, 14, -28, -54, -50, -46, -60, -83, -82, -64, + -62, -82, -89, -93, -101, -88, -59, -52, -64, -75, -76, -63, -50, -30, -1, 9, + 8, 11, 32, 44, 36, 29, 32, 27, 20, 22, 28, 24, 0, -21, -30, -45, + -78, -97, -83, -66, -50, -32, -17, -16, -23, -20, 4, 38, 51, 47, 37, 28, + 29, 27, 27, 31, 42, 54, 55, 43, 20, -5, -29, -40, -37, -30, -27, -23, + -15, -12, -11, 8, 43, 67, 78, 100, 122, 126, 107, 84, 81, 92, 106, 115, + 110, 79, 31, -3, -13, -26, -47, -56, -56, -58, -58, -56, -59, -72, -86, -84, + -66, -57, -56, -56, -60, -74, -74, -51, -32, -24, -14, 3, 14, 15, 19, 28, + 33, 19, 11, 22, 29, 18, 8, 9, 0, 0, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -1, + -1, -1, -1, -1, -1, -1, -1, 0, -1, -3, -2, -1, 0, 2, -4, -13, + -21, -23, -19, -8, 7, 17, 23, 26, 33, 38, 32, 17, -5, -17, -24, -20, + -6, -3, -16, -29, -26, -17, -5, -1, 2, 7, 11, 17, 15, 9, 9, 3, + 10, 15, 9, -14, -33, -27, -18, -6, -7, -10, -6, 0, 12, 15, 29, 38, + 36, 32, 11, 0, -30, -45, -50, -39, -23, -27, -24, -15, 6, 25, 37, 51, + 46, 40, 0, -19, -22, -34, -30, -40, -45, -51, -34, -1, 25, 48, 40, 43, + 51, 64, 58, 5, -22, -49, -63, -69, -68, -58, -54, -16, 13, 44, 66, 61, + 68, 72, 86, 47, -17, -56, -82, -88, -93, -72, -58, -40, 4, 45, 94, 98, + 84, 65, 68, 71, 15, -46, -88, -90, -88, -85, -62, -56, -34, -4, 41, 80, + 82, 74, 54, 70, 66, 25, -29, -70, -74, -90, -87, -79, -73, -46, -10, 54, + 90, 103, 88, 76, 90, 69, 25, -38, -76, -96, -119, -111, -103, -81, -57, -12, + 50, 90, 113, 98, 100, 112, 103, 60, -11, -54, -95, -121, -124, -119, -95, -71, + -10, 53, 103, 116, 93, 91, 89, 80, 31, -28, -67, -108, -122, -128, -110, -87, + -53, 8, 60, 107, 107, 89, 83, 83, 76, 27, -14, -52, -84, -99, -103, -82, + -72, -40, 4, 53, 92, 92, 88, 85, 97, 87, 42, 3, -45, -74, -106, -111, + -105, -101, -70, -30, 27, 65, 77, 83, 87, 106, 90, 58, 16, -30, -67, -101, + -100, -101, -93, -68, -27, 29, 60, 77, 79, 93, 111, 96, 71, 24, -21, -73, + -109, -118, -127, -118, -98, -50, 6, 43, 65, 70, 99, 115, 108, 82, 40, -1, + -53, -80, -94, -105, -101, -82, -31, 18, 56, 66, 72, 95, 103, 97, 64, 29, + -15, -63, -85, -102, -105, -104, -81, -35, 13, 53, 58, 69, 86, 97, 94, 67, + 39, -12, -54, -80, -97, -102, -103, -77, -38, 9, 40, 45, 60, 77, 95, 88, + 70, 41, -8, -46, -74, -87, -99, -100, -78, -42, 10, 37, 50, 66, 89, 110, + 103, 91, 57, 9, -33, -68, -86, -105, -105, -89, -51, -2, 23, 40, 53, 80, + 99, 98, 89, 53, 8, -37, -68, -90, -107, -106, -94, -51, -5, 25, 43, 58, + 86, 95, 98, 86, 52, 9, -36, -64, -92, -105, -108, -95, -53, -11, 22, 37, + 57, 81, 90, 96, 82, 52, 6, -34, -64, -92, -104, -113, -97, -59, -18, 15, + 31, 58, 79, 92, 98, 87, 57, 9, -29, -63, -87, -100, -109, -91, -58, -13, + 16, 36, 62, 78, 93, 96, 88, 56, 12, -25, -62, -83, -101, -106, -89, -57, + -15, 6, 30, 52, 71, 87, 94, 89, 55, 18, -21, -55, -76, -96, -100, -88, + -53, -16, 6, 31, 53, 76, 93, 105, 98, 64, 26, -18, -52, -78, -99, -105, + -95, -59, -26, 0, 24, 45, 66, 81, 97, 88, 62, 28, -12, -40, -67, -84, + -95, -83, -50, -21, 4, 24, 47, 64, 81, 96, 85, 63, 26, -11, -41, -69, + -88, -102, -91, -64, -36, -12, 10, 34, 51, 74, 87, 81, 62, 26, -7, -40, + -63, -83, -95, -83, -58, -31, -10, 14, 34, 51, 75, 85, 82, 61, 30, -3, + -34, -57, -81, -92, -83, -60, -36, -15, 11, 27, 47, 69, 80, 79, 59, 30, + -5, -33, -57, -82, -93, -84, -61, -38, -15, 10, 25, 48, 68, 80, 77, 58, + 29, -4, -30, -56, -80, -89, -78, -54, -34, -8, 10, 0, 0, 1, 0, -2, + -2, -5, -8, -3, 3, -4, -10, 2, 8, 3, 4, 5, -3, -9, 10, 26, + 26, 12, -4, -40, -64, -50, 1, 55, 69, 28, -23, -65, -83, -52, 13, 67, + 67, 39, 16, -15, -48, -38, 10, 53, 44, 5, -5, -14, -43, -35, 16, 54, + 37, -1, -26, -53, -82, -37, 35, 67, 44, 2, -10, -20, -39, -19, 27, 55, + 42, 3, -26, -67, -107, -62, 43, 110, 102, 43, -18, -63, -91, -35, 73, 120, + 77, -6, -72, -113, -109, -36, 53, 78, 50, 0, -46, -72, -71, -20, 67, 112, + 100, 44, -24, -88, -123, -84, 5, 71, 97, 66, 7, -53, -100, -80, -1, 83, + 127, 108, 38, -57, -121, -119, -57, 24, 84, 97, 62, -4, -77, -97, -46, 32, + 101, 108, 56, -20, -103, -119, -69, 18, 105, 126, 90, 6, -92, -126, -90, -3, + 85, 108, 75, 0, -86, -117, -85, -6, 76, 115, 101, 30, -68, -118, -105, -33, + 57, 105, 102, 41, -46, -104, -112, -59, 25, 95, 121, 81, -5, -88, -126, -94, + -12, 63, 101, 76, 7, -67, -107, -73, 11, 94, 127, 102, 21, -74, -124, -95, + -21, 57, 101, 82, 21, -48, -89, -59, 6, 67, 95, 60, -11, -82, -115, -81, + -13, 52, 84, 52, -9, -68, -96, -56, 9, 66, 93, 63, 10, -52, -86, -54, + 1, 60, 96, 70, 19, -44, -80, -51, 0, 55, 94, 69, 20, -42, -88, -76, + -40, 24, 79, 72, 34, -28, -75, -63, -23, 35, 71, 48, 4, -57, -95, -67, + -10, 62, 103, 75, 18, -61, -110, -86, -22, 61, 110, 90, 37, -45, -100, -87, + -39, 34, 81, 70, 33, -39, -88, -76, -24, 54, 94, 76, 32, -46, -100, -92, + -42, 35, 73, 62, 26, -46, -97, -93, -44, 36, 81, 75, 35, -38, -87, -81, + -26, 58, 99, 85, 37, -44, -101, -103, -46, 47, 98, 97, 56, -27, -90, -99, + -49, 37, 88, 95, 62, -12, -74, -93, -51, 27, 69, 71, 35, -30, -78, -87, + -38, 41, 84, 90, 57, -11, -71, -96, -56, 21, 69, 86, 60, -4, -67, -97, + -61, 12, 65, 88, 65, 3, -61, -94, -60, 14, 71, 96, 68, 3, -66, -104, + -70, 3, 59, 84, 59, -1, -67, -107, -76, -3, 59, 89, 64, 3, -67, -111, + -82, -9, 57, 92, 76, 26, -43, -93, -71, -9, 50, 80, 64, 16, -51, -100, + -79, -17, 49, 88, 77, 30, -41, -95, -79, -17, 49, 87, 77, 34, -36, -92, + -78, -19, 44, 82, 73, 33, -37, -95, -84, -23, 47, 89, 83, 43, -30, -92, + -83, -28, 39, 79, 74, 40, -28, -87, -82, -31, 34, 71, 67, 35, -31, -88, + -85, -36, 28, 68, 69, 44, -20, -79, -83, -43, 19, 59, 64, 41, -25, -89, + -100, -61, 9, 60, 76, 57, -10, -75, -90, -51, 22, 74, 88, 66, 1, -61, + -78, -42, 25, 71, 84, 63, -1, -67, -90, -59, 8, 59, 81, 68, 8, -56, + -85, -62, 1, 50, 74, 63, 7, -53, -84, -60, 5, 55, 80, 70, 17, -43, + -76, -55, 4, 49, 73, 65, 17, -41, -77, -62, -9, 38, 68, 64, 17, -43, + -84, -73, -22, 23, 56, 57, 18, -36, -77, -68, -23, 20, 51, 52, 16, -36, + -77, -70, -26, 18, 54, 59, 28, -22, -64, -59, -20, 21, 56, 63, 36, -12, + -55, -52, -16, 25, 58, 63, 35, -14, -59, -57, -22, 18, 51, 57, 31, -16, + -58, -58, -27, 10, 43, 51, 30, -16, -59, -60, -28, 12, 48, 57, 35, -13, + -59, -64, -35, 7, 47, 63, 47, 1, -46, -55, -32, 7, 47, 0, 0, -1, + -1, -4, 1, -1, -3, -13, -8, -14, -3, -2, -2, 1, 8, 5, 7, -21, + -13, -2, -6, -8, -22, -6, 5, 11, 34, 41, 33, 13, 28, 33, 48, 35, + 21, -3, -26, -18, -10, 3, 7, 22, 21, 63, 40, 41, 43, 4, -8, -43, + -63, -77, -77, -59, -18, 3, 2, -21, -46, -74, -90, -108, -101, -94, -89, -84, + -85, -77, -59, -50, -33, -7, 18, 37, 47, 64, 101, 127, 125, 127, 126, 126, + 126, 122, 100, 87, 62, 37, 28, 27, 25, 27, 34, 25, -4, -45, -85, -123, + -128, -126, -128, -127, -123, -92, -73, -55, -45, -37, -33, -32, -33, -43, -53, -55, + -43, -20, 3, 20, 34, 42, 49, 55, 63, 74, 84, 93, 101, 107, 112, 117, + 109, 92, 63, 33, 8, -13, -25, -29, -30, -27, -27, -32, -46, -63, -82, -98, + -109, -116, -121, -118, -104, -80, -49, -12, 21, 45, 58, 64, 66, 66, 61, 51, + 44, 37, 32, 32, 33, 33, 28, 23, 15, 8, 3, 2, 9, 16, 20, 24, + 23, 14, -1, -20, -37, -48, -53, -52, -47, -38, -26, -13, -5, -1, -4, -10, + -22, -34, -43, -48, -46, -34, -16, 5, 25, 45, 65, 78, 84, 83, 71, 55, + 39, 24, 9, -3, -12, -23, -34, -45, -57, -65, -71, -71, -63, -49, -34, -21, + -11, -2, 2, 8, 11, 12, 14, 14, 20, 28, 38, 50, 58, 63, 61, 56, + 46, 33, 17, -1, -19, -34, -45, -48, -44, -32, -19, -5, 5, 7, 4, -2, + -7, -11, -15, -18, -21, -23, -26, -28, -30, -31, -29, -26, -20, -12, -1, 11, + 21, 32, 42, 51, 55, 55, 52, 46, 41, 37, 32, 30, 28, 27, 24, 19, + 12, -1, -21, -45, -67, -89, -103, -107, -101, -90, -70, -51, -33, -18, -2, 11, + 23, 33, 39, 44, 49, 52, 57, 59, 59, 56, 52, 48, 41, 35, 28, 20, + 15, 11, 4, 0, -5, -11, -18, -25, -34, -42, -47, -48, -46, -40, -33, -27, + -24, -21, -24, -32, -42, -51, -56, -58, -56, -47, -35, -18, 2, 24, 48, 70, + 88, 99, 104, 102, 97, 89, 79, 69, 59, 49, 37, 27, 14, 0, -14, -29, + -44, -58, -71, -81, -87, -88, -88, -85, -81, -77, -72, -63, -51, -37, -21, -5, + 12, 29, 43, 53, 59, 61, 57, 48, 36, 24, 13, 8, 8, 15, 25, 38, + 48, 54, 54, 50, 43, 33, 22, 11, 3, -6, -15, -25, -35, -46, -54, -61, + -65, -68, -69, -69, -68, -64, -59, -52, -43, -32, -20, -7, 6, 19, 31, 42, + 51, 58, 62, 64, 62, 58, 52, 44, 35, 26, 17, 9, 1, -5, -10, -15, + -18, -19, -20, -19, -18, -16, -15, -14, -14, -15, -16, -17, -18, -19, -19, -19, + -19, -18, -16, -14, -11, -9, -6, -3, 0, 3, 6, 10, 14, 18, 22, 27, + 32, 35, 37, 37, 35, 30, 23, 14, 4, -6, -15, -24, -31, -36, -39, -40, + -39, -37, -32, -26, -19, -10, -1, 8, 17, 24, 29, 32, 33, 32, 29, 25, + 20, 15, 11, 7, 3, -1, -5, -9, -14, -19, -24, -28, -31, -32, -31, -27, + -23, -16, -10, -3, 2, 7, 10, 12, 13, 13, 13, 12, 10, 8, 7, 5, + 5, 5, 5, 6, 8, 10, 13, 17, 20, 23, 25, 26, 25, 21, 16, 9, + 1, -7, -16, -24, -31, -37, -42, -47, -49, -51, -52, -51, -48, -43, -37, -30, + -20, -7, 6, 19, -1, -4, -4, 0, -1, -4, -3, 4, 4, -2, -3, 2, + 1, -4, 0, 5, 0, -4, 2, -10, -26, -29, -34, -49, -61, -44, -21, -8, + -3, -3, 1, 20, 32, 38, 32, 12, -4, 1, 14, 28, 51, 68, 78, 80, + 72, 38, 1, -6, 16, 23, 2, -14, -15, -20, -33, -62, -65, -37, -18, -27, + -29, -26, -45, -38, 8, 52, 55, 31, 26, 16, 17, 45, 80, 87, 77, 62, + 54, 24, -23, -50, -43, -28, -47, -72, -86, -86, -87, -61, -35, -38, -57, -69, + -55, -27, 1, 4, 22, 45, 54, 31, 0, -7, -5, -3, 0, -9, -21, -20, + -15, -27, -31, -10, 5, 9, 3, -21, -67, -83, -46, -3, 8, 18, 22, 4, + -3, 5, 35, 52, 67, 72, 83, 89, 71, 37, 19, 25, 8, -11, -37, -58, + -80, -85, -68, -33, -24, -57, -60, -34, -16, -14, 17, 73, 96, 77, 48, 17, + -7, -9, 4, -1, -3, 6, 3, -12, -10, 19, 33, 33, 41, 35, -29, -70, + -64, -38, -18, 3, 17, -5, -26, -35, -5, 31, 63, 73, 86, 94, 80, 64, + 50, 46, 37, 28, -2, -32, -65, -91, -84, -63, -59, -82, -97, -80, -66, -65, + -43, 8, 49, 60, 61, 42, 27, 23, 23, 14, 15, 18, 10, -12, -17, -9, + -13, 8, 35, 42, 2, -41, -76, -87, -67, -46, -31, -32, -45, -72, -53, -5, + 32, 46, 72, 92, 96, 92, 77, 75, 73, 61, 44, 12, -32, -68, -72, -54, + -58, -75, -85, -67, -57, -61, -60, -46, -11, 24, 35, 22, 15, 6, -1, -13, + 8, 23, 8, -1, -1, -6, -8, 35, 71, 86, 79, 50, -11, -46, -38, -31, + -29, -21, -30, -64, -68, -43, -12, 10, 28, 62, 89, 88, 84, 85, 90, 89, + 95, 83, 28, -32, -53, -36, -44, -62, -64, -55, -59, -54, -52, -48, -23, 19, + 48, 37, 39, 42, 31, 12, 19, 20, 5, 4, 1, -23, -40, -14, 14, 42, + 68, 64, 14, -33, -53, -52, -32, -18, -24, -43, -67, -62, -36, -18, -1, 25, + 54, 57, 58, 56, 54, 50, 66, 80, 44, -21, -50, -40, -52, -69, -77, -60, + -56, -54, -53, -62, -49, -9, 28, 41, 58, 58, 47, 43, 49, 41, 34, 37, + 18, -19, -44, -47, -36, 1, 35, 38, 19, -20, -62, -71, -59, -36, -34, -47, + -63, -63, -50, -38, -17, 7, 37, 56, 74, 80, 73, 61, 87, 116, 99, 47, + -7, -26, -22, -20, -32, -57, -72, -76, -76, -71, -47, -9, 13, 24, 29, 29, + 25, 27, 52, 68, 62, 9, -38, -67, -66, -39, -11, -4, -24, -37, -47, -51, + -49, -44, -55, -39, -6, -17, -52, -54, -19, 1, 15, 24, 31, 41, 55, 71, + 79, 89, 111, 115, 88, 54, 22, -2, -8, -5, -7, -27, -49, -57, -69, -72, + -64, -30, -3, 17, 31, 37, 29, 14, 39, 67, 73, 47, 10, -40, -72, -58, + -23, -12, -19, -19, -39, -49, -42, -46, -62, -44, -8, -11, -36, -51, -39, -15, + 0, 13, 21, 25, 40, 55, 63, 73, 95, 115, 115, 85, 53, 20, 2, -1, + -2, -10, -32, -48, -64, -73, -77, -62, -33, -9, 16, 33, 31, 18, 17, 44, + 67, 70, 49, 6, -45, -69, -53, -24, -13, -19, -24, -40, -47, -45, -50, -62, + -43, -10, -13, -37, -51, -39, -15, 0, -3, -1, 1, -1, -6, -6, -4, -1, + -2, -6, -8, -7, -4, -5, -10, -14, -16, -16, -16, -17, -18, -18, -17, -15, + -15, -16, -15, -13, -10, -9, -9, -11, -13, -14, -11, -9, -8, -9, -7, -3, + -2, -5, -8, -6, 1, 5, 4, 1, 0, 1, 4, 4, 4, 5, 7, 9, + 9, 8, 8, 9, 10, 9, 5, 2, 3, 5, 7, 7, 9, 11, 11, 12, + 14, 14, 12, 8, 7, 8, 5, 1, 3, 8, 9, 9, 10, 14, 16, 15, + 14, 12, 11, 9, 7, 3, -2, -3, 3, 5, 0, -5, -1, -1, -6, -10, + -16, -23, -28, -29, -32, -39, -36, -23, -16, -19, -19, -10, -7, -12, -11, -5, + -6, -11, -13, -11, -9, -8, -2, 6, 8, 8, 9, 6, 2, 4, 8, 9, + 4, 4, 12, 18, 17, 14, 17, 20, 20, 16, 9, 7, 7, 5, 3, 4, + 1, -2, 0, 3, 2, -1, 1, 3, 3, 1, 2, 2, 0, 3, 6, 9, + 8, 0, -5, -3, 7, 12, 8, -2, -2, 9, 10, 2, -3, 2, 5, 1, + -3, -5, -6, -2, -3, -11, -20, -26, -28, -30, -32, -37, -43, -45, -43, -40, + -42, -41, -31, -22, -20, -18, -16, -16, -19, -15, -8, -3, -3, 3, 17, 26, + 22, 16, 18, 23, 27, 26, 23, 17, 15, 21, 25, 24, 25, 31, 36, 32, + 29, 23, 17, 15, 11, 5, 1, 4, 6, 8, 6, 7, 8, 10, 14, 18, + 22, 20, 17, 14, 15, 13, 10, 15, 15, 12, 9, 10, 15, 14, 9, 3, + 6, 10, 5, -3, -9, -16, -16, -10, -11, -20, -24, -18, -20, -32, -42, -48, + -55, -70, -84, -95, -100, -92, -75, -65, -68, -67, -56, -55, -51, -41, -33, -37, + -42, -38, -33, -31, -26, -6, 19, 30, 25, 25, 28, 30, 27, 19, 16, 18, + 31, 44, 46, 48, 56, 71, 77, 74, 66, 54, 47, 37, 19, 3, 2, 3, + 3, 4, 13, 20, 21, 25, 24, 25, 19, 18, 19, 19, 14, 6, 17, 14, + 1, 3, 12, 27, 29, 25, 13, 14, 24, 22, 6, -7, -7, 0, 11, 12, + 1, 0, 10, 8, -13, -32, -46, -52, -57, -70, -88, -106, -101, -81, -74, -82, + -75, -49, -37, -42, -44, -42, -46, -51, -47, -40, -32, -27, -6, 3, 16, 32, + 29, 25, 24, 30, 54, 69, 74, 78, 90, 108, 118, 124, 117, 107, 102, 93, + 76, 61, 50, 41, 35, 31, 26, 13, 4, 0, -1, 0, -6, -12, -10, -8, + -4, 0, -3, -20, -31, -27, -18, -16, -22, -29, -28, -9, 0, -3, -1, 2, + 11, 20, 24, 18, 22, 34, 32, 16, -1, -18, -34, -46, -55, -67, -91, -102, + -91, -72, -73, -81, -68, -55, -55, -65, -74, -79, -87, -87, -83, -81, -77, -60, + -25, 4, 4, -3, 0, 13, 29, 29, 24, 23, 29, 51, 67, 72, 77, 88, + 105, 114, 122, 116, 106, 100, 93, 77, 63, 51, 42, 36, 31, 27, 15, 5, + 0, -1, 0, -4, -10, -9, -7, -3, 2, -1, -16, -28, -26, -16, -13, -18, + -25, -25, -8, 2, 1, 2, 5, 13, 21, 26, 20, 23, 35, 35, 20, 3, + -14, -32, -45, -54, -67, -91, -102, -90, -72, -75, -82, -68, -56, -56, -66, -75, + -81, -88, -88, -83, -82, -77, -59, -22, 4, 1, -1, -2, -3, -3, -1, -1, + -6, -8, -9, -12, -5, 6, 15, 21, 22, 21, 9, -8, -16, -23, -32, -22, + 4, 27, 32, 17, -2, -21, -34, -37, -30, -24, -3, 24, 47, 58, 50, 23, + -12, -41, -52, -47, -33, -2, 28, 48, 45, 28, 0, -36, -58, -53, -34, -4, + 26, 52, 75, 73, 45, -5, -66, -101, -90, -61, -14, 23, 59, 87, 89, 63, + 10, -46, -79, -80, -55, -23, -3, 27, 58, 62, 41, -6, -66, -92, -77, -29, + 19, 41, 65, 74, 69, 42, -9, -73, -109, -107, -67, -17, 23, 70, 104, 111, + 83, 21, -56, -104, -109, -62, -21, 4, 34, 68, 89, 75, 19, -46, -89, -85, + -38, -1, 23, 45, 64, 74, 62, 8, -53, -98, -93, -47, -9, 16, 36, 62, + 86, 78, 13, -67, -121, -109, -56, -9, 25, 58, 89, 109, 81, 8, -70, -119, + -106, -56, -7, 32, 63, 90, 108, 74, -3, -89, -128, -118, -70, -22, 23, 62, + 101, 126, 98, 26, -64, -117, -110, -72, -32, 6, 44, 93, 124, 100, 28, -63, + -116, -110, -71, -26, 16, 54, 101, 121, 92, 13, -86, -128, -120, -79, -28, 15, + 60, 111, 127, 95, 11, -83, -127, -116, -80, -29, 15, 67, 117, 127, 100, 17, + -75, -118, -108, -75, -31, 7, 60, 109, 123, 87, 3, -83, -118, -106, -67, -23, + 13, 62, 106, 119, 85, 3, -77, -106, -95, -61, -27, 2, 52, 103, 124, 97, + 19, -61, -95, -92, -63, -34, -4, 45, 94, 116, 87, 8, -63, -91, -85, -58, + -36, -9, 36, 81, 104, 76, 2, -60, -87, -77, -52, -32, -2, 48, 97, 119, + 86, 7, -59, -90, -85, -65, -50, -22, 26, 78, 107, 79, 11, -49, -78, -73, + -58, -46, -18, 31, 85, 112, 75, 1, -59, -84, -73, -55, -40, -12, 30, 80, + 106, 74, 10, -46, -70, -62, -49, -39, -13, 31, 86, 110, 74, 8, -49, -70, + -59, -46, -33, -6, 38, 92, 111, 76, 13, -42, -62, -56, -51, -44, -23, 19, + 75, 97, 67, 8, -44, -63, -58, -56, -48, -26, 19, 75, 94, 64, 8, -40, + -55, -50, -49, -42, -25, 18, 69, 85, 57, 4, -41, -54, -51, -50, -45, -28, + 18, 71, 88, 60, 8, -35, -46, -47, -48, -46, -30, 16, 66, 84, 59, 9, + -30, -41, -43, -42, -40, -22, 25, 73, 88, 60, 8, -30, -42, -46, -45, -42, + -21, 28, 74, 83, 52, -1, -36, -46, -45, -40, -37, -17, 26, 66, 73, 41, + -10, -42, -54, -53, -48, -43, -19, 27, 68, 76, 44, -4, -34, -44, -41, -37, + -33, -10, 34, 71, 75, 40, -7, -36, -47, -43, -39, -35, -9, 35, 72, 75, + 39, -7, -38, -49, -45, -43, -38, -11, 33, 68, 70, 36, -4, -31, -39, -36, + -35, -31, -5, 36, 69, 69, 35, -4, -31, -38, -35, -37, -33, -8, 31, 64, + 63, 31, -7, -34, -42, -40, -43, -38, -12, 28, 61, 59, 27, -10, -34, -40, + -38, -41, -35, -9, 31, 63, 60, 29, -6, -31, -37, -38, -42, -35, -10, 29, + 60, 56, 27, -8, -30, -33, -34, -38, -32, -10, 28, 56, 51, 23, -9, -29, + -32, -34, -38, -33, -10, 29, 55, 50, 23, -9, -28, -30, -33, -37, -32, -8, + 32, 56, 52, 23, 23, 0, -2, 0, -2, -6, -6, -6, -5, -2, -1, 5, + 15, 20, 11, 12, 12, 6, 0, -8, -19, -12, -4, -19, -19, -4, 4, -7, + -3, 5, 8, 11, 14, 9, 9, 8, -4, -11, -6, -8, -16, -14, -7, -1, + -3, 1, 10, 13, 24, 28, 12, 10, 14, 11, -14, -29, -19, -12, -21, -25, + -16, 2, 0, -11, -7, 7, 10, 0, 0, 5, 11, 6, 10, 21, 13, 7, + 14, 4, -4, -9, -5, -11, -16, -7, -3, 3, 15, -2, 2, 17, 6, -19, + -16, 3, 3, -14, -10, 7, 7, 4, 8, 11, 4, -5, -12, -9, -6, -14, + -13, -17, -13, -8, 5, 9, 3, 10, 12, 24, 28, 26, 35, 20, -3, 24, + 23, -19, -31, -23, -23, -38, -34, -18, -10, -8, -6, -4, -1, 5, -4, -8, + 2, 15, 12, 26, 56, 37, 10, 25, 25, -4, -21, -24, -23, -26, -30, -27, + -8, 10, -5, 3, 30, 6, -26, -7, 13, -2, -19, -2, 11, 3, 14, 21, + 8, 12, 5, -19, -26, -12, 9, 1, -8, -8, 20, 27, 17, 16, 15, 0, + 23, 39, 11, -4, -13, -21, -21, -32, -36, -27, -20, -24, -10, -4, 5, 14, + 4, -11, -10, 7, -8, -7, 7, 7, 2, 15, 29, 55, 26, 4, 22, 37, + 32, 14, 10, 18, 7, -1, -28, -49, -24, -14, -41, -53, -37, -28, -27, -15, + 1, 2, 14, 14, 13, 3, 0, 1, 18, 9, 7, 11, 23, 23, 25, 16, + -7, 1, 13, 26, 26, 9, 13, 28, 28, 1, -29, -29, -26, -27, -43, -43, + -31, -12, -26, -15, 6, 16, 6, 22, 11, -4, 0, 3, 0, -4, -20, -9, + 15, 23, 19, 7, 25, 19, 42, 63, 40, 13, 22, 24, 1, -41, -60, -55, + -63, -69, -61, -31, -7, 10, 8, 0, 7, 4, 4, 20, 5, -4, 9, 27, + 31, 27, 23, 13, 19, 12, 2, 4, 15, 20, 35, 19, 16, 26, 3, -30, + -48, -31, -40, -60, -59, -47, -13, -3, 12, 22, 11, 7, 9, 8, 3, -10, + -34, -5, 6, 24, 38, 19, 13, 21, 40, 15, 2, 27, 26, 16, 44, 47, + -7, -43, -41, -29, -44, -80, -81, -58, -26, -17, 3, 16, 30, 19, 10, 25, + 16, 6, -12, -3, 13, 30, 38, 20, 17, 22, 25, 18, 13, 16, -3, 1, + 32, 44, -11, -48, -51, -34, -38, -49, -64, -70, -23, -10, -14, -1, 20, 18, + 20, 21, 11, 3, -8, -3, 13, 14, 22, 18, 32, 37, 30, 25, 16, 27, + 27, 18, 37, 52, 12, -26, -56, -57, -46, -71, -92, -86, -50, -21, -10, 8, + 15, 15, 18, 28, 17, 1, 1, 2, 13, 13, 23, 23, 21, 29, 31, 29, + 15, 20, 33, 32, 29, 46, 21, -31, -49, -53, -51, -66, -82, -76, -54, -32, + -10, 12, 19, 29, 18, 3, 0, 16, 20, 29, 31, 20, 25, 31, 43, 41, + 34, 44, 27, 29, 65, 54, -15, -70, -79, -63, -86, -114, -114, -79, -26, -2, + 6, 18, 19, 10, 19, 26, 15, 5, 0, 16, 23, 29, 30, 21, 25, 28, + 37, 37, 38, 44, 32, 29, 66, 65, -7, -67, -74, -59, -82, -114, -117, -85, + -31, -2, 11, 20, 18, 9, 20, 30, 15, 5, 0, 0, 1, 1, 2, 3, + 3, 3, 4, 4, 5, 6, 6, 7, 8, 8, 7, 7, 7, 7, 7, 6, + 4, 3, 2, 0, -1, -2, -3, -5, -6, -8, -9, -9, -11, -12, -14, -15, + -17, -17, -17, -18, -19, -19, -19, -18, -17, -16, -15, -13, -11, -8, -7, -6, + -5, -3, -1, 0, 0, 1, 3, 5, 8, 10, 12, 14, 17, 19, 21, 23, + 26, 27, 28, 28, 28, 26, 25, 24, 23, 23, 21, 19, 18, 16, 15, 14, + 13, 12, 11, 11, 11, 10, 8, 6, 5, 5, 4, 2, 0, -2, -4, -5, + -7, -10, -11, -12, -13, -14, -15, -15, -15, -15, -15, -16, -17, -18, -18, -19, + -21, -23, -25, -27, -28, -29, -29, -30, -30, -29, -27, -25, -23, -22, -20, -18, + -16, -14, -13, -12, -11, -11, -10, -9, -8, -6, -5, -4, -3, -1, 1, 3, + 4, 6, 7, 8, 8, 9, 10, 11, 12, 13, 13, 13, 13, 15, 18, 21, + 23, 24, 25, 25, 28, 31, 33, 34, 34, 32, 31, 31, 31, 30, 27, 22, + 16, 12, 10, 9, 7, 3, -5, -13, -19, -22, -22, -23, -25, -28, -31, -33, + -33, -32, -32, -31, -32, -33, -32, -29, -25, -21, -19, -19, -19, -19, -18, -15, + -9, -3, 2, 6, 9, 12, 16, 21, 27, 32, 37, 39, 40, 40, 39, 39, + 40, 41, 40, 38, 35, 34, 34, 33, 29, 22, 16, 11, 10, 11, 12, 12, + 10, 8, 7, 5, 3, 2, 0, -6, -12, -19, -23, -23, -22, -23, -26, -30, + -33, -33, -33, -34, -35, -37, -40, -45, -50, -53, -52, -48, -42, -37, -32, -27, + -22, -20, -18, -16, -16, -18, -21, -26, -30, -33, -34, -35, -36, -38, -40, -41, + -41, -38, -36, -36, -38, -41, -40, -38, -34, -30, -27, -25, -22, -20, -16, -15, + -16, -17, -18, -16, -13, -10, -7, -4, -2, 1, 6, 11, 16, 21, 24, 25, + 26, 24, 22, 19, 18, 19, 22, 24, 26, 30, 33, 38, 44, 50, 56, 61, + 63, 68, 72, 74, 73, 68, 64, 57, 50, 47, 46, 44, 37, 21, 3, -11, + -20, -23, -25, -30, -33, -36, -36, -34, -31, -27, -22, -21, -22, -21, -18, -21, + -24, -27, -31, -33, -32, -27, -21, -14, -13, -17, -17, -10, 0, 10, 15, 16, + 14, 8, 6, 10, 16, 25, 34, 39, 43, 47, 53, 62, 72, 82, 89, 92, + 90, 84, 79, 77, 77, 76, 67, 54, 42, 33, 26, 18, 5, -11, -27, -41, + -53, -65, -73, -77, -79, -81, -86, -93, -102, -110, -116, -118, -120, -124, -127, -128, + -128, -126, -122, -116, -107, -96, -85, -78, -72, -64, -54, -45, -39, -40, -46, -49, + -49, -47, -45, -44, -45, -45, -44, -42, -38, -33, -29, -26, -23, -20, -18, -14, + -11, -8, -5, -2, 2, 7, 11, 10, 8, 7, 9, 16, 22, 26, 28, 31, + 34, 39, 44, 49, 53, 57, 60, 62, 63, 63, 65, 66, 63, 57, 51, 46, + 46, 50, 53, 54, 55, 54, 55, 57, 63, 69, 73, 75, 73, 69, 66, 64, + 65, 63, 55, 43, 30, 18, 11, 3, -6, -15, -23, -29, -32, -32, -28, -22, + -16, -13, -16, -16, -11, -2, 9, 15, 1, 0, 0, 0, -1, 0, -3, 0, + -1, 0, -18, 21, -22, 23, -41, 20, 84, -39, 50, -61, 26, -126, -19, -37, + 15, 2, 70, -33, 127, -55, 117, -73, 15, -45, -50, 8, -11, 23, 33, 1, + 26, -67, 26, -25, 14, -45, 57, -124, 12, -4, -23, 107, -54, 127, -49, 43, + 27, -59, -30, 15, -128, 5, -128, 86, -39, 82, 12, 62, 9, 51, -59, 53, + -95, 67, -92, 68, -28, 94, 21, 47, -11, -1, -41, 0, -25, -9, 18, -68, + 15, -27, 49, -27, 103, -4, 3, -36, 58, -98, 56, -116, -31, -123, 25, -58, + 89, -21, 110, -25, 73, -28, 39, -21, 35, -40, 37, -20, 50, 55, 51, 6, + 1, -47, -11, -32, -23, 38, -67, 3, -54, 34, -55, 79, 1, 32, -61, 89, + -86, 53, -67, -10, -128, -6, -68, 51, -4, 82, 15, 83, -16, 63, -24, 55, + -29, 8, 0, 6, 11, 54, 14, 16, -39, -9, -12, -47, 37, -40, -22, -60, + 21, -76, 51, -17, 74, -63, 98, -36, 44, -33, 24, -113, -37, -89, 20, -30, + 67, 18, 87, 0, 67, -6, 38, 1, -2, -18, -5, -20, 32, 17, 21, -8, + -30, 15, -47, 11, -17, 11, -97, 43, -87, 27, -36, 91, -41, 66, 3, 44, + -28, 55, -74, -37, -92, -21, -37, 33, -1, 75, 22, 36, 14, 26, 8, 8, + -12, -7, -21, -1, 27, 11, 21, -30, 21, -37, -3, -13, 23, -27, -32, -10, + -23, -44, 56, -1, 43, -12, 76, -29, 48, -9, -25, -71, -70, -48, -20, 2, + 9, 56, 8, 56, -10, 52, -12, 31, -29, 27, -60, 62, -42, 83, -45, 30, + -24, 4, -26, 33, -23, 5, -18, -25, -53, -7, -6, -6, 19, 16, 31, 3, + 58, -14, 0, -64, -33, -58, -8, -43, 42, -18, 57, -9, 54, 1, 47, -3, + 36, -18, 3, 4, 6, 2, -17, 8, -14, -27, 35, 2, -3, 1, -8, -43, + -34, -1, -22, 12, 2, 37, -6, 53, 14, 16, -43, -22, -75, -2, -67, 23, + -24, 39, -3, 39, 6, 44, 9, 37, 5, 1, 3, 5, 12, -18, 0, 0, + -31, 5, 23, 1, -3, 10, -20, -48, -6, -30, 7, -18, 35, -4, 32, 21, + 39, -26, -1, -75, -9, -65, -3, -28, 20, -5, 32, 5, 36, 20, 30, 30, + 3, 10, -1, 16, -10, -7, -1, -17, -23, 18, 14, -3, 8, 9, -45, -14, + -35, -1, -27, 18, -2, 29, 1, 61, -14, 20, -56, -19, -51, -22, -38, 9, + -14, 22, 5, 24, 27, 23, 41, 13, 20, -7, 23, -2, -8, -2, -9, -26, + -6, 14, 11, -11, 37, -33, -12, -38, -6, -33, 7, -14, 30, -12, 55, 4, + 33, -32, -14, -45, -22, -43, -7, -15, 18, 18, 33, 17, 41, 22, 15, 14, + 8, -24, -16, -18, -16, -7, 6, 16, -2, 8, -14, -6, -23, 0, -22, 1, + -23, 21, 4, 24, -1, 9, -9, -11, -14, -13, -16, -14, -15, -12, -16, -5, + 8, 28, 25, 28, 34, 27, 15, 16, 2, -20, -22, -20, -15, -8, 10, 11, + 7, -3, -5, -16, -10, -13, -5, -16, -5, 4, 17, 13, 6, 1, -9, -1, + -2, -3, -4, -4, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -6, + -6, -6, -6, -6, -5, -3, -3, -5, -5, -5, -7, -8, -5, 4, 5, 13, + 12, -12, -5, 10, 5, 4, 0, 3, 26, 33, 10, -15, -69, -89, -25, 25, + 58, 70, 22, -41, -62, -31, 18, 17, -17, -12, -9, 20, 99, 96, 0, -88, + -123, -69, 61, 116, 54, -11, -45, -28, 40, 38, -42, -59, -53, -31, 63, 78, + -9, -65, -83, -59, 48, 110, 50, -11, -51, -54, 41, 96, 9, -87, -119, -77, + 42, 118, 67, -18, -57, -46, 24, 89, 81, 22, -43, -77, -65, -41, -23, -3, + 4, 8, -13, -54, -52, -21, 30, 89, 86, 8, -49, -76, -56, 30, 55, 52, + 47, -7, -45, -49, -48, -10, 68, 74, 43, 22, -27, -25, 12, 20, -5, -43, + -69, -46, 21, 53, 51, 38, -8, -32, 6, 20, -1, -19, -56, -67, -26, 27, + 76, 95, 23, -64, -60, -15, 33, 39, -8, -37, -24, -7, 7, 4, -25, -23, + -10, -14, -7, -5, -12, 2, 28, 31, 37, 21, -18, -16, -4, -22, -37, -46, + -56, -8, 58, 64, 53, 31, -9, -9, -2, -57, -85, -52, -13, 59, 92, 21, + -42, -47, -33, 27, 75, 27, -22, -38, -44, 18, 77, 32, -21, -46, -50, 34, + 89, 22, -37, -60, -56, 31, 95, 36, -27, -57, -82, -15, 53, 15, -13, -25, + -44, 14, 66, 14, -32, -53, -62, 25, 96, 50, 3, -32, -56, 25, 98, 51, + -9, -56, -78, 7, 92, 71, 28, -31, -92, -42, 28, 20, 24, 8, -34, 22, + 70, 18, -17, -53, -88, -20, 39, 7, -2, -8, -28, 35, 80, 19, -23, -55, + -93, -22, 63, 54, 47, 19, -52, -35, 2, -36, -32, -18, -49, -9, 41, 15, + 26, 34, -22, -6, 31, 1, 8, 9, -43, -15, 30, -3, -1, -7, -73, -48, + 6, -14, 5, 13, -47, -30, 12, -13, 6, 18, -37, -13, 39, 27, 45, 38, + -37, -32, 12, 3, 32, 46, -10, 6, 48, 16, 15, 15, -32, -2, 47, 24, + 26, 18, -51, -51, -15, -29, -1, 19, -28, -15, 21, 2, 18, 22, -34, -24, + 13, -3, 15, 14, -45, -34, 7, 10, 38, 31, -34, -30, 4, 5, 43, 61, + 13, 4, 6, -22, 4, 24, -13, -13, -10, -34, 0, 23, -16, -16, -13, -42, + -18, -4, -36, -17, 5, -10, 14, 22, -21, -22, -16, -37, -6, 20, -2, 17, + 36, 19, 43, 43, -9, -15, -12, -29, 6, 31, 6, 10, 7, -23, -2, 9, + -23, -15, -10, -26, 3, 20, -5, 1, 0, -22, 5, 22, -6, -8, -16, -37, + -5, 20, 2, 11, 6, -19, 11, 33, 12, 20, 16, -7, 20, 35, 11, 11, + -3, -28, 2, 19, -1, 3, -6, -29, -5, 2, -25, -17, -12, -16, 22, 34, + 3, -4, -21, -36, 4, 26, 8, -1, -30, -54, -23, -3, -11, 0, -12, -27, + 7, 24, 13, 19, -1, -21, 10, 27, 14, 17, 0, -14, 18, 33, 19, 14, + -17, -41, -10, 9, 2, 7, -14, -30, 4, 20, 9, 9, -15, -35, -3, 16, + 9, 0, -1, -2, -3, 4, 7, 4, -2, -3, 0, 3, -1, -1, 4, 5, + -2, -13, -9, 1, 4, 2, 1, 2, 2, -2, -8, -4, 0, 4, 4, -3, + -4, -3, 1, 2, -1, 3, 14, 1, -7, -12, -4, -2, 1, 1, 9, 5, + -6, -5, -2, -1, -1, 1, 14, 6, -6, -7, 3, 8, -2, -4, 13, 12, + -10, -17, -10, -5, -4, 2, 3, 7, -6, -6, -1, -1, -4, 1, 11, 6, + -6, -9, 10, 11, 3, 1, 14, 15, -12, -20, -12, -9, -15, -1, 7, 2, + -16, -7, 6, 0, -2, 10, 26, 17, -6, -11, 24, 21, 1, 0, 18, 15, + -17, -31, -28, -23, -14, 0, -4, 0, -16, -8, 8, -4, -3, 7, 15, 5, + -3, -3, 26, 25, 12, 8, 28, 17, -15, -28, -18, -17, -18, -7, -3, -7, + -20, 0, 7, 1, -9, 6, 9, -4, -9, 2, 15, 24, 34, 31, 10, -4, + -15, -29, -17, -21, -41, -40, -5, 19, -20, 3, 11, 33, 28, 21, 18, 15, + 16, 3, -1, 18, 17, 15, 1, -15, -10, -5, -14, -42, -48, -43, -26, 4, + -29, -14, -9, 32, 20, 12, 15, 21, 39, 24, 8, 26, 33, 6, -3, 0, + 1, -7, -16, -41, -44, -51, -34, -3, -6, -6, -19, 26, 10, 15, 35, 46, + 32, 20, 16, 23, 38, 15, -4, -10, 17, -6, -41, -48, -53, -70, -52, -9, + -9, -22, -15, 19, 24, 22, 30, 49, 34, 10, 1, 15, 33, 15, 1, 17, + 46, 12, -38, -59, -50, -57, -46, -13, -16, -30, -24, 26, 37, 33, 30, 45, + 40, 2, -11, 17, 41, 24, -4, 16, 48, 15, -38, -67, -64, -65, -46, -18, + -18, -35, -32, 35, 39, 37, 21, 45, 42, -2, -19, 14, 37, 22, 7, 24, + 40, 13, -42, -68, -63, -63, -38, -6, -12, -34, -25, 39, 43, 39, 17, 47, + 45, 3, -19, 21, 45, 25, 2, 21, 31, 0, -45, -71, -78, -83, -48, 2, + 7, -27, -32, 34, 45, 49, 23, 44, 36, 5, -5, 38, 60, 27, -13, 21, + 42, -13, -69, -81, -86, -79, -38, -9, -11, -41, -36, 38, 56, 45, 10, 43, + 43, 10, -6, 36, 57, 41, 10, 36, 46, -16, -67, -66, -71, -80, -44, -8, + -5, -29, -27, 30, 43, 46, 20, 52, 39, -9, -21, 40, 68, 42, -1, 20, + 32, -14, -70, -86, -94, -90, -45, -2, 0, -31, -17, 36, 47, 46, 18, 44, + 29, -2, -11, 46, 74, 51, 14, 36, 46, -15, -78, -87, -91, -89, -46, -12, + -11, -28, -5, 41, 46, 40, 17, 51, 33, -6, -13, 49, 75, 52, 15, 30, + 34, -21, -79, -88, -93, -88, -42, -9, -4, -25, -3, 36, 40, 34, 16, 44, + 23, -8, -10, 52, 83, 55, 17, 38, 31, -31, -82, -91, -93, -82, -39, -16, + -10, -25, 5, 33, 42, 32, 20, 54, 25, -9, -3, 59, 85, 63, 24, 37, + 24, -39, -86, -92, -97, -80, -34, -17, -15, -24, 10, 35, 45, 32, 16, 45, + 12, -23, -2, 62, 78, 53, 21, 37, 26, -39, -91, -95, -96, -77, -29, -16, + -16, -25, 10, -1, 0, 3, 21, -26, 18, -30, 32, -19, -15, -27, 2, 0, + 103, -84, -53, -52, 79, 51, 36, -69, -31, 48, 71, 33, -74, -64, 10, 51, + 49, -68, -91, -16, 30, 33, -31, -58, -42, 14, 24, -25, 23, -71, 79, -22, + 123, -74, 28, 28, 115, 99, -7, 9, -15, 72, 1, 16, -47, -5, -71, -18, + -75, -26, -71, -28, -56, -24, -57, -19, -33, -5, 7, -3, 14, -8, 82, 100, + 23, -32, -15, 80, 98, 68, -30, -21, 24, 71, 28, -41, -96, -22, 32, 37, + -57, -110, -67, 28, 35, -22, -112, -79, 13, 70, 27, -55, -63, 31, 95, 86, + -4, -40, 29, 110, 110, 28, -50, -12, 66, 80, 14, -87, -81, -7, 36, -5, + -95, -118, -42, 26, 8, -69, -121, -48, 37, 60, -6, -68, -29, 67, 104, 61, + -24, -17, 70, 123, 92, -5, -43, 23, 82, 67, -28, -96, -54, 18, 30, -39, + -115, -96, -7, 25, -13, -99, -101, -13, 52, 42, -35, -62, 9, 88, 93, 28, + -32, 15, 97, 118, 58, -29, -24, 51, 82, 39, -61, -88, -26, 28, 9, -70, + -117, -63, 7, 14, -46, -109, -71, 15, 55, 16, -51, -42, 43, 94, 75, 2, + -21, 48, 107, 101, 23, -36, 4, 65, 70, 1, -81, -69, -3, 26, -19, -94, + -106, -32, 14, -3, -74, -103, -37, 34, 46, -10, -56, -12, 66, 91, 49, -15, + 1, 74, 111, 76, -4, -28, 31, 72, 50, -33, -85, -43, 11, 15, -46, -106, + -80, -11, 13, -26, -92, -84, -8, 44, 29, -30, -48, 19, 80, 81, 26, -18, + 27, 91, 103, 49, -22, -10, 48, 68, 22, -60, -75, -22, 17, -5, -71, -105, + -54, 3, 3, -49, -98, -58, 14, 44, 11, -44, -27, 45, 85, 65, 5, -8, + 53, 100, 87, 21, -26, 11, 60, 56, -6, -74, -58, -4, 13, -25, -90, -91, + -29, 7, -12, -72, -90, -29, 32, 37, -10, -46, -2, 66, 83, 47, -8, 10, + 74, 101, 68, -3, -19, 31, 62, 38, -36, -77, -40, 6, 4, -49, -100, -72, + -12, 3, -31, -86, -73, -4, 37, 25, -28, -36, 25, 75, 74, 25, -9, 34, + 88, 94, 43, -16, -4, 47, 58, 15, -57, -69, -22, 6, -12, -73, -96, -50, + -4, -7, -53, -89, -49, 13, 36, 5, -37, -17, 47, 77, 59, 9, 2, 58, + 92, 79, 19, -17, 16, 54, 45, -13, -69, -52, -8, 3, -33, -85, -82, -29, + -2, -20, -68, -79, -23, 24, 29, -11, -34, 7, 61, 73, 41, 0, 22, 73, + 90, 58, 1, -9, 32, 52, 26, -36, -69, -35, -3, -7, -53, -90, -63, -16, + -7, -36, -78, -60, -4, 29, 16, -22, -23, 29, 68, 64, 26, 2, 42, 80, + 81, 38, -8, 5, 42, 44, 4, -53, -57, -21, -2, -22, -69, -83, -43, -10, + -15, -51, -77, -38, 11, 27, 3, -27, -5, 46, 68, 52, 13, 15, 58, 83, + 68, 19, -8, 21, 46, 32, -16, -60, -44, -12, -6, -36, -76, -74, -34, -10, + -20, -57, -73, -33, 12, 27, 3, -1, -6, -11, -3, 4, 0, -7, -8, 1, + 21, 14, 28, 33, 25, -1, 7, 4, -13, -21, -44, -29, -17, -31, -32, 2, + 0, -20, 4, 3, 4, 0, -2, -5, -4, -14, 3, 14, 9, 28, 34, 54, + 43, 54, 39, 19, 17, -1, 5, -23, -31, -25, -35, -46, -60, -29, -29, -13, + -37, -22, -16, -20, -27, -21, -6, -16, 8, -5, 15, 26, 69, 65, 74, 85, + 81, 76, 51, 22, -10, -10, -19, -3, -39, -73, -55, -36, -18, -45, -49, -45, + -52, -47, -74, -73, -56, -31, -15, -16, -5, 18, 65, 86, 108, 94, 97, 90, + 79, 54, 30, 19, 10, 25, -16, -34, -37, -9, -16, -35, -44, -60, -60, -50, + -62, -70, -66, -44, -34, -34, -29, -10, 23, 61, 85, 79, 75, 70, 61, 41, + 31, 7, 8, 3, -22, -42, -28, 0, -13, -29, -39, -52, -56, -55, -58, -60, + -57, -41, -35, -37, -19, 5, 35, 71, 87, 85, 97, 112, 97, 71, 56, 52, + 53, 43, 18, -7, -3, 10, 0, -17, -39, -55, -58, -64, -80, -106, -121, -112, + -110, -113, -105, -82, -51, -8, 16, 20, 45, 66, 66, 49, 46, 59, 75, 78, + 63, 62, 74, 80, 80, 69, 51, 27, 11, 0, -14, -40, -53, -48, -55, -68, + -71, -56, -34, -1, 14, 24, 49, 62, 59, 42, 34, 43, 47, 43, 26, 30, + 33, 38, 26, 4, -17, -41, -66, -81, -92, -112, -120, -115, -116, -128, -125, -103, + -71, -36, -11, 9, 33, 56, 59, 54, 61, 67, 77, 77, 77, 79, 74, 75, + 73, 55, 30, 10, -21, -38, -46, -61, -70, -67, -70, -81, -77, -64, -45, -23, + -4, 10, 30, 44, 44, 39, 42, 48, 51, 50, 51, 58, 58, 65, 65, 47, + 29, 12, -14, -31, -41, -53, -63, -60, -62, -64, -58, -44, -26, -11, 1, 10, + 20, 22, 17, 9, 5, 6, 6, 2, 4, 10, 10, 17, 19, 9, 7, -1, + -14, -18, -13, -14, -9, 1, 7, 12, 17, 23, 31, 35, 36, 35, 38, 31, + 21, 16, 3, 0, -8, -11, -11, -13, -19, -20, -23, -34, -39, -51, -69, -78, + -81, -83, -83, -78, -70, -60, -47, -34, -19, 2, 20, 39, 57, 60, 66, 67, + 63, 61, 53, 50, 51, 47, 37, 32, 23, 13, 6, -3, -17, -23, -28, -34, + -37, -35, -27, -15, -2, 4, 12, 23, 30, 44, 47, 43, 41, 35, 29, 22, + 15, 13, 14, 7, -1, -5, -11, -19, -20, -25, -37, -43, -41, -43, -47, -47, + -40, -29, -17, -7, 5, 13, 23, 38, 44, 37, 34, 31, 23, 17, 6, 1, + -2, -10, -20, -25, -35, -45, -50, -54, -64, -68, -65, -66, -65, -59, -47, -30, + -19, -7, 5, 14, 28, 48, 62, 66, 72, 75, 78, 76, 67, 60, 56, 46, + 32, 20, 9, -2, -10, -21, -35, -43, -44, -49, -56, -57, -51, -38, -25, -13, + -2, 9, 25, 42, 56, 59, 64, 65, 67, 65, 57, 52, 49, 41, 28, 18, + 8, -2, -10, 0, 8, 13, 21, 20, 20, 17, 10, 8, -2, -6, -17, -21, + -29, -23, -25, -14, -7, -2, 7, 10, 20, 21, 22, 23, 19, 14, 9, -2, + -6, -18, -20, -28, -25, -23, -18, -10, -3, 5, 9, 22, 17, 28, 22, 21, + 17, 11, 2, -8, -18, -23, -27, -26, -24, -19, -13, -6, 3, 9, 17, 20, + 28, 24, 25, 21, 13, 6, -5, -14, -21, -29, -29, -30, -23, -19, -7, -1, + 10, 18, 25, 29, 27, 28, 20, 17, 5, -7, -13, -26, -29, -30, -30, -27, + -20, -12, 0, 11, 19, 25, 27, 30, 26, 28, 19, 11, -2, -12, -24, -30, + -35, -34, -30, -24, -14, -2, 9, 18, 23, 28, 26, 33, 31, 29, 24, 12, + 5, -12, -23, -30, -37, -36, -36, -26, -19, -5, 5, 19, 22, 32, 32, 36, + 35, 26, 21, 3, -6, -22, -34, -41, -44, -38, -31, -18, -6, 6, 15, 23, + 32, 33, 39, 34, 31, 23, 10, -2, -21, -32, -44, -47, -45, -37, -23, -12, + 6, 13, 28, 30, 38, 40, 40, 38, 23, 17, -6, -15, -35, -42, -50, -49, + -41, -31, -14, 0, 14, 26, 35, 42, 45, 45, 40, 27, 18, -4, -14, -33, + -42, -54, -52, -47, -36, -21, -5, 13, 24, 39, 43, 52, 47, 42, 36, 20, + 7, -15, -32, -45, -55, -56, -54, -43, -27, -8, 12, 26, 38, 45, 50, 51, + 48, 40, 27, 9, -11, -30, -46, -58, -62, -58, -49, -31, -11, 9, 24, 41, + 45, 54, 53, 54, 45, 30, 14, -10, -27, -48, -58, -67, -64, -56, -35, -15, + 6, 24, 37, 45, 54, 56, 56, 49, 39, 18, 0, -26, -45, -60, -74, -70, + -63, -41, -23, 4, 21, 39, 48, 53, 61, 58, 59, 43, 29, 3, -20, -46, + -64, -77, -77, -69, -50, -27, 0, 20, 36, 49, 56, 64, 64, 63, 51, 34, + 6, -17, -46, -65, -79, -83, -76, -58, -33, -6, 17, 38, 49, 60, 67, 68, + 66, 53, 37, 13, -13, -38, -65, -79, -90, -82, -68, -41, -15, 14, 36, 52, + 63, 70, 73, 69, 62, 44, 19, -8, -38, -63, -83, -93, -90, -77, -49, -20, + 12, 34, 54, 65, 72, 75, 76, 65, 51, 26, -1, -33, -62, -86, -98, -96, + -86, -58, -29, 6, 32, 54, 66, 73, 79, 76, 73, 58, 36, 4, -27, -60, + -85, -101, -104, -92, -70, -36, -1, 31, 53, 70, 75, 81, 80, 78, 65, 41, + 15, -24, -56, -84, -105, -109, -101, -79, -46, -7, 25, 56, 65, 77, 82, 85, + 83, 69, 51, 19, -14, -50, -83, -103, -115, -107, -88, -55, -17, 21, 50, 67, + 81, 86, 89, 85, 79, 55, 28, -8, -46, -77, -103, -116, -117, -97, -67, -25, + 1, 39, 66, 81, 92, 96, 97, 90, 73, 45, 11, -27, -64, -97, -120, -128, + -117, -89, -49, -5, 35, 65, 81, 93, 98, 99, 91, 75, 46, 12, -27, 28, + -9, -42, -57, -50, -18, 33, 77, 77, 17, -64, -96, -55, 22, 73, 68, 17, + -43, -77, -67, -15, 59, 102, 79, 12, -48, -71, -57, -28, -3, 11, 10, -3, + -17, -4, 44, 88, 79, 10, -69, -103, -74, -6, 54, 75, 53, -4, -63, -80, + -38, 32, 73, 59, 7, -43, -67, -57, -18, 33, 71, 71, 24, -31, -47, -17, + 20, 23, -14, -58, -73, -47, 10, 73, 110, 93, 20, -62, -97, -68, -6, 43, + 54, 28, -13, -51, -65, -35, 26, 74, 69, 12, -50, -68, -37, 9, 37, 37, + 16, -12, -26, -7, 36, 65, 45, -19, -87, -112, -75, -7, 58, 97, 92, 41, + -30, -75, -62, -3, 49, 52, 7, -44, -63, -45, -6, 37, 60, 42, -5, -42, + -41, -3, 38, 41, 8, -33, -51, -38, 3, 54, 90, 79, 12, -76, -127, -106, + -29, 47, 78, 63, 23, -19, -36, -16, 24, 50, 35, -15, -59, -64, -27, 17, + 40, 35, 11, -20, -39, -26, 19, 63, 67, 14, -61, -97, -72, -5, 64, 101, + 87, 26, -49, -96, -86, -32, 24, 40, 17, -11, -17, -3, 24, 51, 55, 29, + -20, -66, -69, -23, 35, 55, 25, -26, -59, -55, -14, 44, 86, 80, 23, -56, + -105, -87, -19, 48, 79, 67, 27, -18, -46, -43, -14, 17, 16, -20, -54, -47, + 3, 59, 83, 66, 18, -35, -64, -54, -8, 44, 59, 18, -48, -87, -72, -16, + 49, 88, 84, 37, -31, -81, -79, -26, 33, 52, 29, -5, -19, -6, 20, 34, + 27, -5, -51, -84, -71, -9, 62, 95, 71, 12, -40, -58, -37, 8, 52, 63, + 22, -53, -103, -88, -23, 47, 80, 64, 24, -14, -33, -28, -3, 21, 18, -15, + -45, -39, 5, 57, 78, 54, -1, -60, -97, -89, -29, 50, 92, 67, 0, -53, + -57, -13, 38, 64, 52, 10, -44, -82, -76, -26, 28, 49, 32, 1, -14, -1, + 24, 40, 38, 9, -43, -87, -79, -13, 69, 110, 80, 4, -65, -90, -69, -21, + 32, 58, 39, -9, -48, -45, 0, 52, 69, 46, 5, -34, -57, -50, -14, 23, + 28, -8, -48, -48, 4, 71, 99, 69, 3, -63, -99, -88, -30, 46, 92, 78, + 16, -45, -66, -44, -6, 25, 34, 16, -24, -55, -43, 10, 67, 80, 37, -22, + -48, -29, 7, 30, 27, -5, -51, -84, -73, -11, 71, 116, 95, 27, -43, -84, + -84, -43, 18, 63, 60, 10, -44, -53, -9, 41, 49, 14, -31, -57, -50, -15, + 29, 61, 57, 14, -37, -51, -14, 38, 63, 47, -1, -61, -106, -105, -47, 44, + 115, 113, 42, -36, -64, -42, -2, 23, 20, -3, -28, -39, -21, 24, 64, 59, + 7, -48, -67, -47, -7, 36, 59, 47, 2, -55, -77, -31, 55, 111, 89, 7, + -75, -113, -96, -42, 21, 62, 64, 28, -13, -18, 17, 45, 28, -2, -7, -6, + -7, -7, -8, -8, -8, -8, -7, -6, -5, -4, -3, -3, -2, -2, -1, 0, + 1, 2, 4, 5, 6, 8, 9, 10, 11, 12, 13, 13, 14, 15, 16, 17, + 17, 17, 17, 17, 16, 16, 15, 15, 14, 14, 13, 12, 10, 10, 9, 8, + 7, 6, 5, 5, 4, 3, 2, 1, 0, -2, -3, -4, -5, -6, -7, -8, + -9, -10, -11, -12, -13, -13, -14, -14, -14, -14, -14, -15, -15, -15, -15, -16, + -16, -14, -14, -12, -10, -13, -10, -13, -7, -3, -5, -1, -1, -5, -5, 8, + 13, 10, 10, 15, 16, 17, 30, 34, 19, 17, 22, 29, 27, 22, 16, 1, + -3, 8, 18, 11, 6, 8, 8, 1, 6, 18, 5, -8, -4, 4, 5, 3, + 5, -3, -6, 12, 30, 23, 9, 5, 6, 9, 15, 27, 20, 2, 0, 10, + 17, 8, -1, -4, -8, -8, -3, -7, -19, -28, -24, -22, -31, -42, -47, -50, + -50, -42, -35, -35, -43, -41, -31, -27, -23, -17, -9, -7, 3, 26, 37, 38, + 37, 41, 39, 39, 49, 55, 50, 46, 53, 58, 51, 44, 36, 24, 9, 5, + 2, -12, -25, -28, -26, -33, -42, -44, -55, -66, -69, -62, -60, -65, -57, -42, + -33, -26, -15, -5, -6, 0, 15, 29, 34, 41, 55, 61, 62, 68, 71, 62, + 49, 49, 49, 39, 29, 24, 14, -2, -10, -16, -34, -56, -67, -70, -77, -83, + -85, -88, -93, -92, -79, -74, -78, -74, -61, -49, -41, -23, -9, -2, 11, 35, + 54, 56, 58, 64, 69, 73, 81, 91, 86, 77, 78, 77, 67, 50, 39, 24, + 6, -4, -10, -22, -41, -49, -52, -62, -73, -81, -87, -98, -97, -83, -74, -70, + -63, -46, -33, -23, -6, 9, 18, 26, 48, 69, 77, 85, 97, 106, 107, 111, + 114, 104, 89, 83, 84, 75, 60, 50, 34, 13, -5, -16, -34, -59, -74, -80, + -86, -95, -97, -96, -104, -104, -95, -86, -86, -82, -66, -49, -32, -11, 12, 26, + 36, 55, 73, 81, 84, 94, 104, 107, 114, 120, 116, 102, 92, 88, 73, 54, + 37, 21, 0, -16, -23, -37, -58, -76, -85, -94, -108, -114, -116, -120, -119, -106, + -89, -84, -78, -64, -49, -37, -21, 1, 13, 25, 46, 71, 88, 95, 105, 113, + 112, 113, 116, 112, 97, 91, 91, 83, 68, 51, 35, 11, -10, -23, -38, -60, + -80, -86, -93, -102, -107, -110, -116, -121, -114, -102, -98, -93, -77, -55, -38, -18, + 1, 13, 25, 46, 71, 88, 95, 105, 113, 112, 113, 116, 112, 97, 91, 91, + 83, 68, 51, 35, 11, -10, -23, -38, -60, -80, -86, -93, -102, -107, -110, -116, + -121, -114, -102, -98, -93, -77, -55, -38, -18, 1, -3, -7, -8, -3, 1, 0, + 3, -5, -9, -14, -15, -4, 0, 7, 12, 12, 11, 18, 16, 14, 14, 11, + 20, 14, 19, 7, 12, 8, 13, 8, 7, 9, 0, 9, -7, -4, -5, -8, + -7, -9, -7, -2, -7, -4, 1, 1, 0, -2, 3, 2, 1, 2, 1, -2, + -3, -7, -2, -2, -2, -5, -4, -4, -4, 3, 6, 8, 3, 0, -3, -2, + 3, 4, 3, 2, 2, -2, 1, 0, 2, 3, 9, 8, 2, -3, -4, -2, + 1, 4, 0, -2, 3, 1, 7, 1, -4, 0, 2, 3, 1, 1, 2, -5, + 3, -3, -4, -3, -8, 2, -7, 1, -3, -2, -5, -8, -7, -8, -7, -5, + -7, -4, -8, -10, -7, -8, -7, -5, 0, -2, 0, -2, -3, -3, -2, 0, + 1, 0, 1, 0, -3, -3, -5, -5, -9, -9, -13, -16, -21, -26, -25, -25, + -16, -16, -12, -13, -15, -9, 3, 25, 44, 66, 68, 66, 49, 17, 13, 18, + 41, 51, 40, 35, 25, 23, -2, -16, -28, -8, -4, -12, -18, -34, -29, -31, + -28, -18, -4, 2, 16, 13, 20, 9, 4, 2, -3, -4, -9, -9, -9, -8, + -9, -10, -13, -14, -15, -13, -4, 7, 13, 19, 18, 16, 9, 7, 4, 6, + 8, 7, 7, 3, -3, -15, -19, -24, -21, -16, -9, 0, 3, 7, 4, 4, + -3, -2, 6, 13, 20, 14, 16, 14, 11, 7, 0, -4, -3, -3, -7, -12, + -12, -9, -5, -5, -7, -9, -4, -2, -2, -2, -4, -9, -10, -13, -13, -14, + -15, -13, -9, -8, -9, -9, -7, -4, 2, 2, 6, 9, 8, 11, 9, 11, + 9, 8, 6, 0, -7, -13, -21, -29, -36, -45, -53, -63, -72, -73, -61, -41, + 0, 52, 98, 109, 81, 64, 54, 78, 77, 45, 39, 44, 25, 19, 6, -8, + 25, 30, 44, 62, 46, -20, -85, -89, -88, -47, -29, -30, 2, 11, 8, 12, + 24, 33, 29, 25, 22, 1, -15, -34, -37, -36, -41, -36, -28, -15, 2, 9, + 11, 14, 12, 8, 12, 17, 18, 19, 23, 20, 20, 20, 8, -5, -14, -15, + -15, -13, -13, -18, -19, -24, -29, -32, -31, -23, -12, -2, 12, 20, 23, 24, + 25, 20, 22, 18, 16, 14, 9, 7, 2, 1, -9, -10, -19, -15, -12, -13, + -8, -5, -4, -4, -7, -10, -12, -12, -16, -14, -8, -9, -13, -14, -18, -15, + -10, -5, -3, 3, 4, 6, 11, 13, 13, 16, 16, 16, 12, 6, -3, -10, + -16, -21, -28, -37, -48, -61, -77, -88, -87, -68, -34, 28, 92, 127, 99, 64, + 50, 72, 92, 55, 43, 51, 41, 32, 4, -8, -7, -17, -23, -31, -33, -35, + -32, -28, -23, -18, -12, -8, -4, -2, 0, 1, 2, 2, 3, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 3, 4, 6, 7, 7, 7, 8, 9, 9, 8, + 8, 9, 11, 14, 18, 22, 27, 32, 33, 30, 21, 6, -12, -30, -45, -54, + -56, -51, -41, -29, -17, -9, -3, 0, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 3, 3, 3, 3, 3, 2, 3, 4, 5, 8, 9, 10, 9, 8, 7, + 7, 8, 10, 15, 20, 25, 30, 35, 39, 39, 32, 19, 0, -22, -42, -56, + -62, -61, -53, -40, -27, -15, -7, -3, -1, 0, 0, 0, 0, 2, 3, 4, + 5, 5, 5, 4, 2, 0, -1, 0, 2, 5, 8, 9, 10, 10, 9, 9, + 8, 9, 10, 14, 19, 24, 28, 32, 34, 38, 36, 29, 17, -5, -28, -49, + -61, -65, -61, -52, -39, -25, -14, -7, -3, -2, -1, -2, -1, 0, 2, 4, + 6, 7, 7, 5, 3, 0, -1, -1, 0, 3, 7, 11, 13, 14, 13, 12, + 10, 8, 8, 9, 12, 17, 22, 26, 29, 31, 33, 31, 26, 18, 3, -16, + -35, -50, -59, -61, -56, -46, -35, -23, -14, -6, -2, 0, 1, 2, 3, 4, + 4, 5, 5, 5, 4, 2, 1, -1, -1, 0, 2, 5, 9, 12, 13, 13, + 12, 11, 9, 7, 7, 8, 11, 15, 20, 24, 29, 33, 35, 34, 30, 21, + 4, -16, -37, -55, -66, -68, -63, -50, -35, -21, -9, -1, 4, 5, 5, 4, + 4, 3, 3, 3, 3, 2, 2, 1, 0, -1, -1, 1, 6, 10, 13, 15, + 15, 13, 11, 8, 5, 4, 4, 7, 11, 17, 22, 27, 32, 36, 39, 39, + 36, 24, 6, -20, -48, -70, -81, -79, -67, -48, -29, -12, -1, 5, 7, 7, + 4, 2, 1, 1, 2, 2, 3, 2, 2, -1, -2, -3, -3, -1, 3, 8, + 13, 16, 17, 16, 12, 8, 3, -1, -3, -2, 2, 11, 21, 29, 36, 38, + 39, 42, 48, 57, 52, 23, -27, -76, -107, -113, -98, -71, -42, -18, -1, 8, + 12, 13, 10, 7, 3, 1, 1, 2, 3, 2, 1, 0, -2, -3, -3, -1, + 2, 8, 13, 17, 18, 17, 12, 7, 1, -3, -4, -3, 20, 30, 38, 41, + 39, 38, 46, 65, 75, 45, -23, -89, -126, -127, -101, -64, -31, -7, 5, 11, + 13, 14, 13, 9, 4, 1, 0, 1, 2, 1, -1, -3, -4, -4, -2, 2, + 6, 10, 14, 18, 18, 15, 9, 1, -6, -10, -13, -10, -4, 7, 20, 0, + 14, 19, 23, 26, 28, 28, 26, 23, 18, 11, 3, -4, -10, -16, -21, -23, + -24, -22, -20, -16, -12, -8, -3, 3, 8, 13, 19, 23, 26, 27, 26, 23, + 17, 10, 4, -3, -9, -15, -20, -24, -25, -25, -22, -17, -11, -3, 3, 9, + 14, 18, 20, 22, 23, 23, 21, 17, 13, 6, 1, -6, -11, -15, -18, -20, + -19, -19, -17, -16, -13, -11, -8, -5, -1, 2, 5, 7, 9, 9, 8, 6, + 3, 0, -3, -7, -10, -14, -17, -19, -19, -18, -16, -12, -7, -2, 3, 8, + 13, 16, 18, 19, 17, 14, 8, -1, -11, -21, -31, -38, -41, -40, -34, -25, + -12, 2, 17, 32, 45, 56, 62, 65, 63, 58, 49, 38, 25, 10, -6, -18, + -28, -37, -44, -51, -59, -64, -64, -56, -40, -17, 7, 29, 46, 56, 58, 59, + 56, 51, 45, 33, 19, 4, -13, -26, -39, -49, -56, -59, -55, -46, -34, -19, + -4, 10, 21, 30, 40, 46, 51, 52, 49, 43, 31, 18, 5, -8, -16, -21, + -23, -26, -29, -35, -39, -42, -40, -34, -22, -11, 2, 11, 18, 21, 24, 23, + 22, 19, 14, 7, -3, -13, -21, -30, -39, -46, -50, -52, -49, -42, -31, -17, + -3, 12, 26, 39, 49, 57, 60, 58, 51, 39, 22, 1, -23, -47, -68, -82, + -89, -88, -77, -60, -37, -11, 16, 43, 65, 83, 94, 100, 101, 96, 87, 71, + 51, 29, 4, -18, -38, -58, -75, -91, -104, -109, -105, -87, -61, -27, 8, 39, + 67, 87, 97, 97, 88, 71, 54, 36, 16, -2, -23, -42, -57, -70, -75, -75, + -71, -60, -43, -23, -1, 18, 31, 47, 57, 66, 71, 68, 61, 49, 32, 17, + 1, -11, -22, -33, -41, -47, -54, -59, -63, -62, -57, -46, -30, -12, 1, 17, + 30, 41, 49, 50, 47, 40, 29, 17, 3, -14, -30, -46, -60, -70, -76, -77, + -73, -63, -48, -28, -4, 20, 44, 65, 81, 91, 93, 88, 77, 60, 37, 11, + -19, -49, -76, -97, -109, -110, -100, -81, -56, -25, 7, 38, 67, 91, 109, 121, + 127, 126, 116, 96, 68, 38, 8, -18, -43, -68, -90, -110, -124, -127, -116, -91, + -59, -22, 14, 47, 77, 98, 107, 105, 93, 74, 54, 33, 13, -6, -26, -45, + -60, -71, -78, -79, -74, -61, -42, -21, 1, 18, 33, 49, 60, 68, 73, 70, + 62, 48, 32, 15, 0, -13, -24, -34, -42, -48, -55, -61, -65, -65, -60, -48, + -32, -15, 2, 19, 32, 43, 50, 51, 47, 40, 28, 16, 1, -14, 2, -2, + 2, -5, -3, -1, 0, -4, -4, -6, -4, -6, -4, -4, -7, -6, -7, -6, + -1, 0, 3, 13, 14, 16, 12, 13, 2, 1, 0, -1, -1, -1, -2, -2, + -2, -3, -3, -4, -8, -4, -4, -5, -5, -5, -7, -9, -12, -8, -14, -11, + -14, -18, -8, 1, 31, 71, 68, 24, -5, -11, -7, -5, -5, -5, -3, -2, + -5, -5, -9, -8, -7, -7, -9, -12, -11, -17, -14, -16, -15, -20, -26, -30, + -27, -15, 16, 51, 87, 101, 70, 8, -18, -11, -14, -7, -7, -1, -2, -5, + -7, -12, -14, -10, -10, -13, -14, -13, -16, -16, -17, -18, -35, -31, -30, -34, + -9, 16, 56, 84, 89, 60, 30, 5, -7, -5, -8, -3, -4, -4, -6, -12, + -14, -13, -10, -12, -12, -9, -10, -8, -12, -13, -15, -19, -23, -26, -33, -29, + -28, -9, 12, 43, 71, 88, 72, 48, 29, -2, -16, -19, -12, -12, -12, -7, + -11, -10, -10, -10, -11, -13, -15, -18, -19, -17, -16, -15, -13, -12, -13, -9, + -13, -17, -21, -18, 2, 34, 59, 87, 92, 98, 38, -30, -24, -27, -18, -16, + -11, -11, -13, -15, -12, -14, -15, -18, -17, -20, -18, -15, -10, -7, -3, -1, + 2, -8, -11, -22, -22, -20, 7, 31, 61, 97, 106, 43, -23, -28, -25, -20, + -12, -7, -5, -7, -10, -13, -13, -13, -11, -14, -15, -15, -12, -8, -7, -4, + -2, -4, -10, -15, -19, -26, -10, 12, 42, 72, 101, 90, 20, -25, -27, -22, + -18, -10, -6, -9, -11, -16, -17, -16, -14, -10, -8, -9, -9, -9, -9, -9, + -8, -5, -3, -6, -10, -17, -24, -21, 4, 30, 61, 84, 96, 79, -16, -38, + -27, -26, -17, -12, -8, -12, -13, -14, -14, -11, -8, -4, -4, -7, -9, -8, + -10, -12, -8, -5, -4, -7, -10, -18, -24, -11, 14, 42, 70, 79, 93, 36, + -32, -26, -28, -19, -15, -9, -9, -13, -16, -14, -12, -8, -5, -3, -7, -9, + -9, -9, -11, -8, -5, -1, -6, -9, -15, -24, -23, 6, 28, 63, 86, 127, + 37, -45, -27, -28, -26, -19, -4, -5, -8, -11, -12, -14, -12, -8, -4, -8, + -8, -10, -8, -13, -8, -8, -3, -8, -8, -16, -23, -17, 7, 34, 69, 83, + 113, 37, -50, -28, -25, -22, -16, 0, -3, -8, -12, -12, -14, -14, -10, -5, + -7, -6, -9, -9, -13, -9, -10, -7, -9, -9, -15, -20, -14, 8, 33, 64, + 81, 90, 57, -29, -28, 0, -4, 10, 10, 11, -15, 4, -1, 3, -11, 11, + 2, -12, 3, 18, -10, -62, 89, -16, -95, 118, -128, 122, -128, 112, -100, 109, + -121, 120, -104, 58, 10, -88, 127, -102, 6, 98, -126, 35, 89, -111, -7, 112, + -53, -94, 92, 64, -106, -53, 109, 52, -100, -75, 86, 95, -45, -119, -12, 111, + 74, -58, -118, -27, 97, 100, -4, -107, -95, 17, 109, 92, -4, -99, -109, -26, + 78, 115, 66, -27, -104, -109, -41, 55, 112, 98, 32, -53, -109, -105, -44, 41, + 102, 109, 67, -4, -74, -112, -102, -47, 27, 88, 112, 93, 45, -19, -78, -110, + -105, -65, -4, 59, 101, 110, 87, 43, -13, -67, -103, -111, -89, -44, 13, 65, + 100, 109, 93, 59, 14, -36, -78, -104, -108, -90, -53, -6, 43, 83, 104, 106, + 88, 57, 17, -27, -66, -95, -108, -102, -80, -44, -2, 41, 77, 99, 106, 98, + 77, 46, 10, -29, -64, -91, -105, -105, -91, -64, -29, 10, 48, 78, 98, 105, + 100, 84, 59, 30, -3, -36, -65, -88, -101, -105, -99, -83, -60, -32, -1, 30, + 58, 80, 96, 103, 102, 94, 80, 62, 40, 16, -10, -35, -58, -78, -92, -101, + -104, -100, -91, -77, -58, -36, -13, 12, 36, 57, 75, 89, 98, 102, 102, 97, + 88, 76, 61, 44, 25, 5, -15, -35, -54, -70, -84, -94, -101, -104, -103, -98, + -89, -77, -63, -46, -27, -8, 12, 31, 49, 65, 79, 90, 97, 102, 104, 102, + 97, 90, 81, 70, 57, 42, 27, 10, -7, -24, -40, -56, -70, -81, -91, -99, + -103, -105, -105, -101, -95, -87, -76, -63, -49, -34, -18, -1, 16, 32, 48, 62, + 74, 85, 93, 100, 104, 105, 105, 102, 97, 90, 82, 72, 61, 48, 35, 21, + 6, -9, -24, -38, -52, -65, -76, -86, -94, -101, -105, -108, -108, -106, -102, -96, + -87, -78, -66, -54, -40, -26, -11, 4, 19, 34, 48, 61, 73, 83, 92, 99, + 104, 107, 108, 108, 105, 101, 96, 89, 80, 70, 60, 48, 36, 22, 9, -5, + -19, -33, -46, -58, -69, -80, -89, -96, -102, -107, -109, -110, -110, -107, -102, -97, + -89, -80, -70, -59, -47, -33, -20, -6, 7, 19, 30, 41, 50, 58, 65, 71, + 75, 78, 79, 80, 79, 77, 74, 70, 65, 60, 54, 48, 42, 36, 29, 22, + 16, 10, 4, -2, -7, -12, -16, -19, -22, -24, -26, -27, -27, -27, -26, -25, + -23, -22, -19, -17, -14, -12, -10, -1, -1, -4, -9, -9, -7, -6, -7, -3, + 4, 8, 10, 11, 13, 10, 4, -3, -10, -15, -13, -9, -10, -11, -5, 4, + 12, 14, 12, 13, 14, 9, 1, -8, -15, -21, -23, -22, -13, -3, 7, 17, + 24, 27, 19, 11, 16, 15, -5, -24, -29, -23, -27, -32, -21, 5, 18, 20, + 21, 24, 24, 15, 11, 8, -6, -30, -31, -19, -17, -24, -14, 2, 17, 15, + 12, 17, 16, 19, 8, -5, -2, -1, -17, -17, -3, 6, 5, -4, 0, 1, + -12, -9, 9, 11, -4, -14, -8, 9, -2, -21, -14, 4, 9, 9, 11, 18, + 21, 10, 8, 16, 10, 26, 35, 6, -14, -28, -25, -24, -55, -65, -33, -17, + 1, -6, -6, 8, 23, 33, 49, 37, 19, 16, 11, 24, 42, 17, -37, -36, + 3, 7, -23, -36, -9, 9, -12, -20, -8, -2, -4, -23, -17, -6, 0, 10, + 24, 24, 40, 46, 33, 39, 26, 5, 6, 9, -12, -26, -33, -42, -61, -52, + -43, -37, -21, -4, 7, 13, 28, 36, 31, 24, 1, -1, 20, 24, 23, 21, + 26, 27, 8, -32, -44, -3, 28, -1, -36, -30, -6, 13, -12, -34, -18, -6, + 9, 21, 25, 16, 10, 38, 62, 46, 17, -11, -7, 10, -8, -44, -53, -33, + -35, -38, -29, -27, -16, 0, 1, 9, 37, 50, 36, 2, -20, -12, 15, 21, + 24, 32, 29, 20, 23, 12, -8, -3, 4, -10, -5, 2, -19, -63, -70, -21, + 20, 41, 23, 33, 57, 61, 42, 21, 15, 10, -45, -82, -60, -29, -44, -77, + -50, -7, 4, -4, 10, 32, 56, 42, 1, -10, -18, 2, 22, 28, 33, 42, + 47, 43, 47, 11, -23, 0, 10, -40, -81, -70, -28, -29, -68, -29, 19, 6, + 7, 21, 40, 41, 32, 22, 28, 47, 69, 66, 35, 21, 15, -3, -20, -34, + -24, -6, -19, -59, -47, -42, -35, -28, 15, 45, 51, 66, 78, 83, 37, 1, + 13, 7, -51, -81, -92, -83, -87, -74, -58, -73, -51, 12, 35, 26, 35, 47, + 69, 70, 63, 65, 49, 47, 68, 73, 52, 33, 15, -12, -30, -50, -51, -46, + -45, -60, -50, -50, -50, -54, -24, 38, 78, 90, 106, 99, 40, -6, -11, -46, + -110, -127, -107, -76, -67, -53, -41, -41, -23, 14, 33, 27, 34, 49, 70, 71, + 66, 65, 51, 51, 69, 72, 52, 32, 10, -12, 0, -5, -2, -5, 2, -29, + 22, 0, -27, 67, -59, 45, -13, -37, 28, 65, -4, 6, 60, 5, 58, 44, + 60, 27, 43, 96, 71, 81, 48, 96, 70, 23, 90, 66, 80, 88, 40, 20, + 61, 64, 12, 36, 24, 4, 7, 5, -27, -38, -26, -33, -49, -50, -70, -69, + -93, -92, -94, -104, -104, -101, -110, -107, -111, -111, -126, -87, -119, -100, -94, -112, + -93, -93, -80, -81, -76, -58, -56, -70, -30, -21, -42, -13, -3, 2, 8, 20, + 28, 41, 45, 59, 62, 69, 84, 85, 90, 103, 109, 111, 118, 121, 121, 123, + 121, 122, 121, 122, 121, 122, 121, 121, 120, 121, 120, 121, 120, 121, 120, 120, + 119, 120, 119, 120, 118, 105, 106, 110, 83, 89, 92, 75, 67, 61, 57, 47, + 40, 33, 24, 17, 10, 3, -2, -10, -20, -31, -31, -37, -49, -50, -63, -66, + -69, -74, -79, -91, -89, -92, -95, -102, -106, -104, -107, -113, -113, -110, -113, -116, + -114, -115, -114, -115, -114, -113, -114, -113, -114, -113, -112, -113, -109, -105, -111, -106, + -107, -103, -100, -103, -99, -97, -98, -99, -92, -92, -93, -92, -92, -90, -88, -90, + -88, -86, -89, -85, -85, -87, -85, -85, -82, -83, -82, -80, -78, -79, -76, -74, + -73, -73, -69, -68, -66, -64, -65, -62, -58, -56, -56, -52, -50, -47, -43, -42, + -39, -35, -33, -31, -27, -23, -21, -16, -16, -8, -7, -3, 1, 0, 10, 15, + 15, 19, 26, 29, 30, 38, 41, 42, 47, 54, 54, 57, 63, 68, 69, 72, + 77, 78, 80, 85, 84, 86, 87, 86, 87, 86, 85, 86, 85, 84, 85, 84, + 83, 84, 83, 82, 82, 83, 82, 81, 82, 81, 80, 81, 80, 79, 80, 79, + 79, 78, 79, 78, 78, 77, 74, 70, 66, 64, 61, 55, 52, 49, 45, 40, + 35, 32, 29, 24, 19, 15, 12, 8, 4, 0, -4, -8, -11, -15, -17, -20, + -25, -26, -29, -32, -34, -37, -39, -41, -43, -45, -46, -48, -49, -50, -50, -52, + -52, -53, -52, -53, -54, -53, -53, -52, -52, -51, -50, -50, -49, -48, -48, -46, + -45, -44, -42, -41, -40, -39, -37, -35, -34, -32, -30, -28, -27, -24, -23, -22, + -20, -19, -17, -15, -14, -13, -12, -10, -9, -8, -8, -6, -6, -5, -4, -4, + -3, -3, -2, -2, -1, -2, -1, -2, -1, -1, 0, -1, -1, 1, 0, 0, + -3, -1, 1, -4, -4, -3, -2, -5, -3, 0, -1, -1, -3, -1, 0, 2, + 0, -2, -5, 5, 4, 1, 7, 2, 2, 1, 8, 1, 6, 2, -4, 2, + 1, -4, 6, -8, -3, -7, -2, -6, -1, -9, 1, -2, -4, 1, 2, 1, + -2, 8, 2, 0, 14, 9, 10, 5, 3, 5, 6, 4, 3, -8, -2, -4, + -10, -1, -5, -3, -4, -6, -13, -5, -4, -4, -3, 2, -13, -6, 3, 6, + 6, 7, 1, 1, 6, 6, 16, 13, 9, 10, 9, 2, 7, 10, 4, -4, + -3, -17, -7, -6, -6, -10, -17, -17, -10, -11, -9, -5, -6, -8, 2, 1, + 8, 19, 15, 18, 24, 19, 16, 17, 19, 11, 7, 1, -5, -8, -9, -15, + -8, -9, -14, -20, -19, -9, -18, -10, -13, -23, -13, -12, -7, 0, -1, 5, + 16, 12, 28, 30, 32, 34, 34, 19, 24, 23, 16, 11, 5, -7, -19, -17, + -16, -21, -26, -23, -32, -31, -30, -25, -26, -24, -19, -13, -9, -1, 0, 4, + 6, 13, 15, 19, 17, 13, 8, 8, 8, 7, 0, -4, -8, -10, -7, -5, + -6, -6, -9, -12, -8, -10, -9, -9, -11, -13, -12, -9, -4, -1, 4, 9, + 19, 27, 31, 26, 16, 14, 16, 16, 12, 1, -8, -14, -11, -9, -6, -11, + -11, -12, -14, -10, -11, -13, -15, -19, -23, -19, -14, -8, -5, -1, 8, 34, + 62, 59, 12, 14, 32, 22, 6, 20, 6, -9, -54, -16, -1, -19, 7, -15, + -13, -12, -14, -15, -14, -22, -24, -30, -30, -20, -12, -6, 3, 26, 66, 88, + 39, 0, 47, 36, -2, 26, -23, 21, 13, -6, -60, -42, 6, -22, 4, -18, + -16, -4, -16, -19, -24, -39, -31, -25, -32, -26, -11, 12, 55, 104, 75, 10, + 35, 62, 9, 26, -16, -8, 19, 3, -9, -61, -46, 2, -26, -7, -16, -10, + 2, -7, -22, -23, -38, -40, -37, -44, -33, -8, 37, 101, 124, 36, -5, 89, + 20, 38, 5, -26, 3, 1, 5, -28, -65, -21, 1, -22, -12, -26, 1, -7, + -10, -24, -26, -33, -37, -48, -50, -36, 5, 63, 122, 109, 7, 35, 84, 5, + 59, -36, -4, -11, -1, -5, -40, -55, -4, -15, -21, -16, -22, 5, -10, -17, + -20, -27, -23, -44, -54, -62, -23, 29, 114, 127, 51, 7, -2, -4, -2, 4, + 11, 14, 10, 2, -7, -9, -9, -15, -16, -7, 3, 2, -10, -21, -17, 6, + 10, -8, -28, -11, 45, 66, 64, 47, 36, 49, 49, 27, 9, -12, -18, -25, + -30, -11, 0, -5, 0, -1, -18, -36, -33, -18, -10, -13, -31, -26, -25, -17, + 4, 28, 70, 89, 48, 9, -32, -58, -56, -70, -57, -17, -38, -48, -35, -32, + -7, 35, 38, 53, 62, 44, 33, 27, -6, -35, -52, -65, -54, -40, -43, -30, + -25, 2, 63, 54, 34, 17, 34, 70, 60, 8, -15, -3, 0, 39, 55, 35, + 39, 60, 75, 36, 20, -7, -25, -66, -110, -89, -89, -71, -36, -12, 9, 31, + 41, 54, 46, 45, 59, 41, 22, 3, -69, -110, -126, -116, -64, -15, 9, 29, + 33, 30, 56, 42, 12, 23, 6, -27, -36, -21, -22, -32, -21, -30, -29, -5, + 9, 16, 22, -9, -12, 31, 24, -17, -41, -23, 32, 32, 26, 34, 64, 66, + 109, 104, 51, 5, 12, 16, -36, -58, -59, -66, -63, -82, -64, -23, -9, 11, + 16, 20, 19, 13, 12, 33, 37, 41, 46, 28, 7, -58, -93, -79, -64, -33, + -1, 22, -4, 2, 19, 4, -7, -3, -3, 5, 1, -10, -3, 12, -6, -38, + -29, -17, -5, 11, 2, -33, -20, 44, 42, 20, -30, -24, 9, 44, 38, 20, + 36, 71, 61, 86, 72, 25, -8, 10, 17, -35, -54, -63, -67, -70, -78, -58, + -16, -7, 19, 22, 20, 21, 29, 21, 16, 35, 36, 16, -8, -27, -61, -58, + -67, -43, 3, 35, 38, -2, -2, 10, -9, -29, -14, -5, -1, -5, 2, 12, + -6, -32, -23, -22, -16, -5, 3, -9, -29, 27, 56, 39, 11, -27, -28, 23, + 34, 28, 18, 20, 62, 82, 71, 74, 24, -4, 16, 18, -39, -54, -65, -61, + -52, -64, -49, -11, -4, 12, 17, 16, 25, 24, 6, 23, 36, 18, 18, -1, + -42, -50, -90, -43, 3, 35, 38, -2, -2, 10, -9, -29, -14, -5, -1, -5, + 2, 12, -6, -32, -23, -22, -16, -5, 3, -9, -29, 27, 56, 39, 11, -27, + -28, 23, 34, 28, 18, 20, 62, 82, 71, 74, 24, -4, 16, 18, -39, -54, + -65, -61, -52, -64, -49, -11, -4, 12, 17, 16, 25, 24, 6, 23, 36, 18, + 18, -1, -42, -50, -90, -43, 0, 1, 6, -11, 19, -25, 24, -15, 11, -6, + 1, 9, -6, -3, 11, -18, 28, -23, 8, 6, -2, -1, 0, -5, 18, -23, + 24, -28, 27, -12, -1, -2, 6, 4, -14, 19, -29, 42, -40, 22, -6, -3, + 14, -16, 4, 8, -9, 13, -22, 17, 5, -24, 37, -34, 20, -4, -11, 19, + -20, 21, -16, 1, 17, -17, 5, -9, 25, -31, 31, -40, 32, -11, -7, 4, + -4, 13, -23, 29, -40, 51, -49, 20, 3, -20, 38, -47, 34, -21, 14, -9, + 4, -13, 20, -29, 37, -57, 59, -48, 23, -5, -7, 5, -6, -5, 13, -17, + 9, -4, -12, 22, -19, -8, 10, -5, -7, 8, -18, 19, -13, 5, -12, 6, + -10, 18, -40, 66, -91, 82, -56, 17, 19, -51, 56, -45, 30, -19, 5, -6, + 7, -9, -4, -2, -5, 13, -19, 1, 20, -28, 13, -6, 0, -17, 33, -48, + 38, -16, -20, 53, -75, 75, -61, 30, -12, -9, 2, 5, -9, -7, 15, -17, + 9, 4, -46, 70, -85, 86, -67, 29, 18, -60, 76, -70, 29, -8, -1, 1, + 14, -58, 93, -118, 127, -125, 85, -36, -2, 17, -39, 46, -61, 70, -99, 122, + -120, 56, 15, -85, 116, -101, 30, 43, -108, 127, -122, 72, -38, -3, 20, -31, + 29, -37, 42, -50, 63, -72, 40, -7, -46, 66, -82, 53, -25, 1, 1, -1, + -3, 3, -24, 24, -34, 27, -24, 36, -49, 37, -38, 35, -42, 13, -4, -14, + 14, -29, 42, -58, 58, -60, 41, -39, 27, -35, 27, -32, 25, -37, 43, -50, + 32, -20, -4, 4, -14, 16, -43, 66, -93, 79, -58, 27, -11, -21, 34, -40, + 24, -7, -25, 31, -29, 19, -18, -2, 1, -6, 4, -31, 47, -63, 62, -64, + 32, 2, -29, 23, -21, 19, -41, 59, -76, 62, -52, 26, -11, -1, -10, 6, + -10, -7, 17, -42, 34, -12, -34, 73, -106, 92, -61, 26, -24, 8, -7, -2, + 3, -24, 31, -44, 27, -9, -22, 38, -43, 15, -4, -3, -2, -12, 5, 1, + -7, 7, -25, 17, -17, 4, -15, 27, -40, 34, -18, 6, -13, 12, -3, -9, + -6, 8, -18, 18, -36, 54, -55, 30, -25, 26, -41, 38, -49, 48, -38, 8, + 16, -40, 47, -52, 34, -12, -4, 2, -13, 0, 1, 6, -11, 19, -25, 24, + -15, 11, -6, 1, 9, -6, -3, 11, -18, 28, -23, 8, 6, -2, -1, 0, + -5, 18, -23, 24, -28, 27, -12, -1, -2, 6, 4, -14, 19, -29, 42, -40, + 22, -6, -3, 14, -16, 4, 8, -9, 13, -22, 17, 5, -24, 37, -34, 20, + -4, -11, 19, -20, 21, -16, 1, 17, -17, 5, -9, 25, -31, 31, -40, 32, + -11, -7, 4, -4, 13, -23, 29, -40, 51, -49, 20, 3, -20, 38, -47, 34, + -21, 14, -9, 4, -13, 20, -29, 37, -57, 59, -48, 23, -5, -7, 5, -6, + -5, 13, -17, 9, -4, -12, 22, -19, -8, 10, -5, -7, 8, -18, 19, -13, + 5, -12, 6, -10, 18, -40, 66, -91, 82, -56, 17, 19, -51, 56, -45, 30, + -19, 5, -6, 7, -9, -4, -2, -5, 13, -19, 1, 20, -28, 13, -6, 0, + -17, 33, -48, 38, -16, -20, 53, -75, 75, -61, 30, -12, -9, 2, 5, -9, + -7, 15, -17, 9, 4, -46, 70, -85, 86, -67, 29, 18, -60, 76, -70, 29, + -8, -1, 1, 14, -58, 93, -118, 127, -125, 85, -36, -2, 17, -39, 46, -61, + 70, -99, 122, -120, 56, 15, -85, 116, -101, 30, 43, -108, 127, -122, 72, -38, + -3, 20, -31, 29, -37, 42, -50, 63, -72, 40, -7, -46, 66, -82, 53, -25, + 1, 1, -1, -3, 3, -24, 24, -34, 27, -24, 36, -49, 37, -38, 35, -42, + 13, -4, -14, 14, -29, 42, -58, 58, -60, 41, -39, 27, -35, 27, -32, 25, + -37, 43, -50, 32, -20, -4, 4, -14, 16, -43, 66, -93, 79, -58, 27, -11, + -21, 34, -40, 24, -7, -25, 31, -29, 19, -18, -2, 1, -6, 4, -31, 47, + -63, 62, -64, 32, 2, -29, 23, -21, 19, -41, 59, -76, 62, -52, 26, -11, + -1, -10, 6, -10, -7, 17, -42, 34, -12, -34, 73, -106, 92, -61, 26, -24, + 8, -7, -2, 3, -24, 31, -44, 27, -9, -22, 38, -43, 15, -4, -3, -2, + -12, 5, 1, -7, 7, -25, 17, -17, 4, -15, 27, -40, 34, -18, 6, -13, + 12, -3, -9, -6, 8, -18, 18, -36, 54, -55, 30, -25, 26, -41, 38, -49, + 48, -38, 8, 16, -40, 47, -52, 34, -12, -4, 2, -13, -1, -2, -1, -4, + -3, -25, -41, 8, 16, 27, 2, 16, 1, 13, 21, -8, -6, -29, 17, 8, + 8, 20, -13, 5, 4, 25, 17, 30, 22, 14, 15, 19, 7, 51, -16, -15, + -32, -13, 12, -8, -17, -49, -27, -29, -29, -52, -66, -55, -32, -20, -41, -21, + -36, -11, -16, 22, 3, 19, 0, -6, -10, 0, -38, -17, -35, -19, -27, 0, + -35, -27, -9, -17, -14, -2, 20, 50, 63, 57, 49, 70, 70, 97, 81, 68, + 52, 78, 93, 98, 102, 56, 34, 20, 53, 60, 45, 24, -18, 21, -10, 0, + -38, -79, -38, -37, -13, -27, -41, -50, -51, 14, 10, 16, -21, -13, -22, -20, + -48, -53, -55, -66, -76, -65, -91, -105, -92, -87, -101, -79, -56, -34, -7, -4, + 7, 20, 15, 26, 29, 32, -8, 36, 47, 50, 66, 29, 18, -33, -11, -4, + -10, -24, -42, -31, -22, 2, -23, -75, -34, -36, 5, 1, 1, -17, -47, 20, + 43, 68, 28, 30, 9, 29, 7, -9, -5, -32, -46, -36, -15, -40, -35, -15, + -26, -21, 2, 21, 49, 62, 83, 87, 106, 77, 97, 94, 67, 60, 85, 79, + 110, 80, 61, 1, 8, 16, 50, 36, 2, -22, 4, -2, 21, -35, -33, -19, + 4, 24, 19, 10, -58, -23, 18, 45, 34, 8, -12, -6, -5, -48, -51, -75, + -72, -77, -37, -65, -80, -57, -66, -68, -38, -38, 2, 10, 38, 31, 58, 22, + 39, 37, 27, -9, 23, 9, 35, 18, 15, -31, -50, -44, -5, 6, -10, -63, + -41, -56, -15, -41, -71, -45, -37, 7, -6, 5, -56, -71, -6, 21, 41, 8, + -13, -14, -40, -30, -41, -40, -56, -31, -31, -9, -15, -5, 10, 42, 27, 73, + 82, 73, 73, 79, 70, 38, 28, 31, 23, 45, 42, 44, 30, -40, 8, 28, + 52, 30, -18, -29, -40, -14, -45, -50, -55, -68, -39, -6, -29, -45, -59, -32, + 4, 31, 23, 16, 20, 11, -1, 1, -28, -45, -53, -56, -67, -60, -55, -40, + -31, -25, -16, 11, 20, 36, 67, 70, 75, 77, 81, 65, 46, 38, 34, 39, + 51, 44, 57, 7, -4, 13, 37, 46, 19, -8, -29, -1, -9, -21, -32, -43, + -55, -58, -40, -8, 15, 29, 38, 44, 59, 63, 51, 20, -20, -47, -61, -58, + -48, -42, -43, -35, -15, 15, 41, 55, 61, 62, 70, 67, 45, 11, -31, -62, + -80, -78, -71, -62, -54, -39, -15, 18, 50, 68, 79, 83, 92, 88, 57, 16, + -31, -71, -94, -95, -90, -83, -71, -55, -28, 7, 49, 77, 93, 100, 109, 107, + 78, 36, -20, -71, -99, -104, -100, -92, -83, -69, -43, -5, 42, 79, 100, 108, + 114, 112, 90, 51, -9, -65, -100, -110, -105, -95, -87, -76, -52, -11, 35, 75, + 100, 107, 111, 106, 90, 52, -4, -60, -97, -109, -99, -87, -80, -65, -35, 5, + 43, 75, 91, 95, 93, 87, 71, 31, -19, -64, -93, -99, -88, -76, -66, -44, + -9, 28, 59, 79, 84, 80, 71, 59, 35, -5, -45, -76, -96, -95, -77, -59, + -39, -9, 28, 61, 86, 98, 93, 74, 52, 28, -6, -43, -72, -94, -108, -99, + -77, -52, -20, 19, 56, 84, 106, 115, 106, 79, 45, 3, -40, -74, -93, -108, + -112, -100, -79, -46, -1, 45, 78, 100, 113, 118, 108, 81, 39, -19, -67, -93, + -103, -108, -104, -94, -74, -32, 19, 61, 88, 102, 108, 109, 100, 73, 21, -44, + -87, -102, -104, -97, -90, -78, -49, 0, 46, 78, 90, 92, 89, 87, 77, 43, + -15, -72, -101, -104, -93, -79, -69, -47, -3, 47, 84, 96, 89, 74, 65, 58, + 37, -7, -61, -99, -110, -101, -82, -62, -38, 2, 49, 92, 112, 106, 82, 59, + 41, 18, -19, -61, -95, -111, -110, -98, -74, -39, 6, 54, 99, 122, 123, 104, + 79, 50, 12, -32, -72, -100, -111, -110, -106, -90, -54, -4, 49, 99, 123, 126, + 113, 95, 69, 24, -27, -72, -102, -114, -109, -104, -94, -64, -16, 36, 87, 116, + 121, 111, 97, 76, 36, -15, -61, -94, -110, -108, -98, -86, -60, -19, 29, 77, + 104, 109, 99, 86, 67, 35, -7, -47, -82, -98, -101, -92, -77, -48, -14, 25, + 67, 92, 95, 83, 66, 45, 18, -9, -37, -62, -77, -81, -78, -54, -16, 0, + 0, 0, 12, -10, 16, -14, -18, 17, -31, -2, 3, -19, -8, 17, 28, 37, + 31, -1, -25, -16, -47, -13, -43, -22, 6, 34, 41, 49, 41, 27, 6, -33, + -62, -54, -59, -32, -13, 29, 53, 73, 60, 54, 16, -19, -58, -77, -89, -42, + -46, 17, 55, 78, 86, 81, 33, -3, -35, -84, -110, -75, -70, 0, 39, 78, + 92, 105, 70, 13, -15, -82, -107, -103, -84, -41, 20, 81, 85, 127, 86, 39, + -4, -63, -103, -99, -107, -69, 2, 68, 82, 127, 84, 58, 28, -44, -88, -104, + -108, -83, -13, 29, 69, 116, 87, 77, 40, -16, -65, -89, -104, -89, -40, -1, + 47, 96, 90, 85, 52, 9, -38, -62, -96, -95, -62, -22, 21, 73, 78, 86, + 65, 35, -15, -41, -80, -92, -69, -48, 1, 43, 65, 80, 73, 49, 8, -23, + -59, -75, -74, -60, -22, 17, 49, 69, 65, 60, 25, -1, -36, -59, -70, -61, + -40, -9, 30, 52, 57, 63, 37, 17, -12, -41, -61, -57, -50, -30, 9, 30, + 49, 60, 47, 28, 6, -20, -49, -51, -53, -42, -11, 13, 34, 53, 50, 34, + 18, -3, -35, -39, -52, -49, -23, 0, 18, 41, 47, 36, 31, 10, -21, -28, + -43, -49, -31, -13, 2, 28, 39, 35, 38, 19, -7, -18, -33, -42, -36, -26, + -12, 19, 30, 34, 36, 22, 6, -5, -25, -38, -36, -29, -17, 8, 19, 26, + 35, 28, 12, 3, -17, -30, -29, -29, -22, -3, 9, 19, 33, 26, 14, 8, + -9, -18, -22, -28, -25, -9, 3, 15, 22, 20, 18, 12, 1, -11, -22, -24, + -21, -13, -3, 8, 11, 20, 21, 12, 5, -6, -19, -16, -17, -17, -7, 3, + 8, 20, 17, 7, 7, -2, -11, -13, -16, -17, -5, 2, 5, 12, 13, 8, + 6, 3, -9, -11, -9, -14, -5, 1, -3, 6, 11, 6, 7, 2, -6, -4, + -4, -10, -6, -3, -4, 5, 8, 2, 5, 4, -2, 0, -3, -9, -4, -3, + -3, 2, 3, 0, 6, 4, 0, -1, -2, -2, 0, 0, 0, 12, -10, 16, + -14, -18, 17, -31, -2, 3, -19, -8, 17, 28, 37, 31, -1, -25, -16, -47, + -13, -43, -22, 6, 34, 41, 49, 41, 27, 6, -33, -62, -54, -59, -32, -13, + 29, 53, 73, 60, 54, 16, -19, -58, -77, -89, -42, -46, 17, 55, 78, 86, + 81, 33, -3, -35, -84, -110, -75, -70, 0, 39, 78, 92, 105, 70, 13, -15, + -82, -107, -103, -84, -41, 20, 81, 85, 127, 86, 39, -4, -63, -103, -99, -107, + -69, 2, 68, 82, 127, 84, 58, 28, -44, -88, -104, -108, -83, -13, 29, 69, + 116, 87, 77, 40, -16, -65, -89, -104, -89, -40, -1, 47, 96, 90, 85, 52, + 9, -38, -62, -96, -95, -62, -22, 21, 73, 78, 86, 65, 35, -15, -41, -80, + -92, -69, -48, 1, 43, 65, 80, 73, 49, 8, -23, -59, -75, -74, -60, -22, + 17, 49, 69, 65, 60, 25, -1, -36, -59, -70, -61, -40, -9, 30, 52, 57, + 63, 37, 17, -12, -41, -61, -57, -50, -30, 9, 30, 49, 60, 47, 28, 6, + -20, -49, -51, -53, -42, -11, 13, 34, 53, 50, 34, 18, -3, -35, -39, -52, + -49, -23, 0, 18, 41, 47, 36, 31, 10, -21, -28, -43, -49, -31, -13, 2, + 28, 39, 35, 38, 19, -7, -18, -33, -42, -36, -26, -12, 19, 30, 34, 36, + 22, 6, -5, -25, -38, -36, -29, -17, 8, 19, 26, 35, 28, 12, 3, -17, + -30, -29, -29, -22, -3, 9, 19, 33, 26, 14, 8, -9, -18, -22, -28, -25, + -9, 3, 15, 22, 20, 18, 12, 1, -11, -22, -24, -21, -13, -3, 8, 11, + 20, 21, 12, 5, -6, -19, -16, -17, -17, -7, 3, 8, 20, 17, 7, 7, + -2, -11, -13, -16, -17, -5, 2, 5, 12, 13, 8, 6, 3, -9, -11, -9, + -14, -5, 1, -3, 6, 11, 6, 7, 2, -6, -4, -4, -10, -6, -3, -4, + 5, 8, 2, 5, 4, -2, 0, -3, -9, -4, -3, -3, 2, 3, 0, 6, + 4, 0, -1, -2, -2, 0, -1, -1, -3, -7, -14, -23, -32, -45, -55, -66, + -74, -83, -88, -80, -77, -71, -64, -54, -46, -37, -31, -25, -19, -12, -6, -1, + 4, 8, 12, 17, 21, 23, 25, 25, 27, 29, 32, 35, 36, 34, 32, 31, + 32, 35, 37, 37, 35, 31, 29, 29, 31, 33, 34, 32, 29, 26, 25, 27, + 30, 32, 31, 29, 27, 27, 29, 31, 34, 35, 35, 35, 36, 38, 41, 43, + 45, 47, 49, 52, 55, 57, 59, 61, 63, 66, 69, 70, 70, 68, 66, 63, + 61, 58, 54, 47, 36, 24, 11, 1, -9, -20, -33, -48, -64, -78, -89, -97, + -103, -110, -116, -123, -128, -128, -126, -121, -116, -112, -107, -102, -95, -88, -78, -69, + -61, -54, -47, -41, -34, -27, -21, -16, -12, -7, -2, 2, 5, 6, 8, 10, + 13, 16, 19, 19, 19, 17, 18, 19, 22, 24, 24, 22, 19, 18, 19, 21, + 23, 24, 22, 19, 17, 18, 20, 22, 24, 24, 22, 21, 22, 24, 27, 29, + 30, 30, 31, 32, 35, 37, 40, 42, 45, 47, 50, 53, 56, 58, 60, 62, + 66, 68, 70, 69, 68, 65, 63, 61, 59, 54, 46, 36, 24, 13, -1, -14, + -28, -43, -57, -68, -78, -86, -94, -102, -109, -114, -117, -117, -115, -112, -109, -106, + -101, -96, -89, -81, -73, -67, -59, -53, -46, -40, -34, -28, -23, -18, -13, -9, + -5, -2, 0, 2, 5, 7, 10, 12, 14, 15, 15, 15, 16, 18, 19, 20, + 20, 19, 18, 18, 19, 21, 22, 22, 21, 20, 19, 21, 23, 24, 25, 25, + 25, 25, 26, 29, 31, 33, 34, 35, 36, 38, 40, 43, 46, 48, 51, 53, + 56, 59, 62, 65, 68, 71, 74, 77, 78, 79, 78, 77, 76, 74, 71, 66, + 58, 49, 39, 28, 17, 6, -6, -20, -35, -50, -64, -75, -85, -94, -102, -110, + -117, -122, -124, -123, -121, -118, -114, -110, -106, -99, -92, -84, -76, -69, -61, -55, + -48, -41, -34, -29, -23, -18, -13, -9, -5, -2, 0, -1, -1, 0, 2, 0, + 3, 2, 2, 4, 5, 4, 4, 4, 4, 5, 3, 4, 3, 1, 2, 0, + 0, -1, -3, -4, -2, -3, -5, -3, -4, -5, -5, -4, -3, -3, -6, -5, + -4, -2, -5, -5, -2, -3, -3, -3, 1, 4, 4, 8, 8, 8, 13, 12, + 13, 14, 12, 9, 8, 6, 6, 3, -2, -2, -5, -5, -4, -5, -11, -16, + -12, -7, -3, -5, -10, -11, -6, -2, -2, -1, -4, -6, -6, -7, -8, -5, + -2, 2, 5, 6, 8, 8, 9, 13, 16, 16, 14, 11, 7, 5, 4, 2, + 0, -2, -3, -3, 0, -3, -13, -28, -11, 7, -1, -15, -1, -5, -18, -10, + 6, 11, -11, -1, -10, -14, -13, -13, -4, 4, 6, 14, 13, 10, 10, 15, + 17, 24, 24, 13, 12, 10, 1, 0, 2, -4, 0, -6, 2, 7, -22, -68, + 2, 35, -40, 14, -24, -3, -10, -9, -20, -3, 28, 2, -9, -12, -28, -19, + -4, -1, 15, 17, 17, 16, 12, 16, 22, 25, 28, 6, 17, 9, -1, -2, + -3, 2, 12, -6, 6, -5, -35, -89, 32, 28, -39, 20, -36, 9, -20, -9, + -34, 3, 34, 8, -16, -11, -37, -15, -3, 0, 26, 18, 13, 15, 13, 25, + 27, 29, 20, 3, 21, 2, -2, 0, -8, 11, 16, -1, 8, -21, -76, -81, + 87, -25, 4, -4, -23, 6, -26, -20, -35, 23, 28, 0, -18, -16, -43, 2, + -9, 17, 25, 15, 9, 18, 17, 37, 28, 35, 3, 14, 12, -5, -1, -1, + -5, 27, 0, 16, -11, -49, -128, 36, 40, -36, 35, -41, 21, -27, -14, -45, + 4, 24, 20, -23, -6, -41, -9, -1, 6, 23, 19, 5, 15, 14, 33, 35, + 40, 16, 5, 16, -3, -5, 4, -12, 24, 10, 18, 1, -38, -128, -21, 72, + -50, 42, -38, 19, -16, -16, -43, -10, 21, 24, -22, -11, -30, -15, 6, 4, + 22, 18, 6, 11, 13, 27, 39, 42, 22, 4, -3, -2, -2, -5, -3, -5, + -3, -2, -6, -5, -5, -6, -5, -3, -5, -3, -5, -4, -6, -3, -1, -2, + -1, 0, -2, 1, 2, 1, 4, 4, 5, 5, 5, 8, 10, 11, 9, 10, + 11, 8, 5, 10, 7, 5, 5, 0, -3, 1, 0, -5, -2, -8, -9, -7, + -7, -5, -9, -11, -9, -8, -8, -7, -9, -7, -6, -7, -5, -6, -5, -3, + -3, -3, -4, -4, -2, 0, 1, 2, 5, 9, 12, 16, 19, 22, 22, 24, + 22, 22, 19, 13, 11, 7, 7, 4, -2, -7, -9, -9, -8, -10, -14, -14, + -15, -15, -13, -14, -17, -18, -14, -12, -12, -8, -9, -7, -6, -6, -6, -8, + -9, -9, -11, -13, -11, -6, -1, 3, 9, 20, 27, 33, 37, 46, 46, 42, + 37, 28, 21, 14, 11, 10, 14, 20, -2, -40, -47, -22, -5, -4, -1, 4, + -15, -53, -56, -7, -33, -14, -2, -19, -7, -8, -15, -6, -9, -8, -3, -9, + -15, -18, -26, -19, -6, -5, -6, 0, 12, 22, 29, 30, 28, 32, 29, 21, + 15, 13, 5, 5, 3, 19, 30, 3, -68, -26, 2, -17, 17, -12, 15, -1, + -12, -48, -43, -19, -1, 3, 6, -8, -4, -10, -10, -4, 0, -6, -1, -7, + -9, -17, -12, -6, -9, -14, -5, 14, 33, 33, 41, 32, 41, 35, 20, 10, + 8, 4, 10, -2, 36, 40, 3, -110, -8, -7, -6, 16, -18, 27, -2, -4, + -56, -57, -33, 16, -2, 12, -11, -5, -17, -9, -5, 10, -6, 0, -12, -11, + -20, -10, -8, -12, -17, -3, 17, 38, 34, 45, 36, 51, 37, 18, 4, -3, + 3, 8, 8, 54, 48, -34, -128, 28, -33, 28, -13, 1, 21, 3, -20, -59, + -65, -10, 17, -1, 7, -17, -10, -19, -8, 5, 11, -4, -2, -16, -17, -20, + -9, -11, -18, -11, 3, 31, 36, 41, 41, 44, 53, 30, 10, 1, -13, 12, + -5, 42, 63, 43, -127, -55, 19, -27, 28, -1, 0, 3, 5, 8, 12, 14, + 15, 15, 14, 12, 8, 5, 1, -3, -9, -14, -17, -19, -18, -16, -12, -8, + -5, -4, -2, -1, -1, -2, -3, -4, -3, -2, -1, -1, 0, 0, 0, 2, + 8, 12, 16, 19, 23, 26, 34, 40, 39, 28, 11, -8, -26, -36, -40, -39, + -35, -27, -19, -10, -5, -6, -10, -12, -15, -14, -12, -9, -5, -3, -1, 1, + 6, 8, 7, 7, 7, 8, 13, 20, 28, 35, 43, 48, 55, 57, 51, 32, + 3, -29, -56, -68, -67, -60, -46, -31, -17, -7, -4, -7, -11, -15, -16, -15, + -10, -5, -1, 1, 3, 5, 7, 9, 11, 12, 12, 10, 13, 19, 26, 36, + 43, 51, 58, 65, 61, 40, 6, -30, -60, -75, -73, -64, -49, -32, -16, -5, + -1, -4, -11, -18, -23, -23, -19, -12, -5, 2, 8, 12, 13, 11, 9, 8, + 8, 10, 15, 21, 27, 32, 37, 42, 49, 55, 63, 55, 32, -3, -39, -66, + -79, -73, -56, -39, -24, -12, -7, -7, -12, -19, -24, -24, -21, -14, -6, 3, + 8, 11, 12, 11, 10, 10, 10, 11, 14, 17, 21, 27, 33, 41, 49, 56, + 63, 66, 49, 15, -27, -61, -82, -85, -73, -52, -33, -18, -9, -5, -7, -12, + -18, -21, -20, -15, -9, -1, 4, 8, 12, 15, 15, 14, 11, 8, 7, 10, + 15, 22, 32, 45, 59, 72, 86, 95, 75, 22, -40, -93, -119, -120, -97, -64, + -32, -9, 5, 9, 5, -3, -14, -21, -23, -20, -13, -5, 4, 12, 17, 18, + 15, 10, 7, 4, 3, 6, 9, 15, 21, 30, 40, 56, 77, 99, 99, 54, + -19, -86, -123, -127, -103, -66, -27, 1, 16, 18, 11, -1, -12, -21, -23, -21, + -16, -8, 1, 9, 16, 19, 16, 11, 8, 5, 5, 7, 9, 14, 19, 27, + 35, 49, 68, 90, 101, 73, 6, -66, -114, -128, -113, -78, -39, -6, 13, 19, + 11, -1, 0, 10, 30, 35, 40, 39, 37, 28, 18, 6, -9, -20, -30, -35, + -33, -30, -28, -23, -24, -23, -19, -20, -15, -11, -8, -3, 0, 1, 0, -2, + -4, -1, 0, 10, 15, 21, 27, 25, 25, 22, 13, 10, -5, -9, -15, -19, + -17, -17, -12, -7, 0, 4, 10, 8, 5, -5, -13, -23, -31, -30, -24, -13, + 11, 36, 62, 81, 83, 78, 54, 35, 19, -11, -29, -49, -57, -47, -35, -20, + -19, -26, -27, -33, -30, -26, -22, -11, -8, 3, 11, 6, 0, -16, -23, -23, + -11, 9, 23, 35, 45, 51, 46, 49, 26, 12, -13, -26, -37, -45, -31, -35, + -17, -4, 8, 23, 24, 23, 9, -10, -22, -37, -40, -38, -33, -12, 22, 67, + 100, 119, 111, 79, 50, 10, -12, -32, -52, -69, -62, -38, -14, -9, -21, -42, + -60, -50, -39, -19, -4, -1, 3, 15, 19, 2, -16, -43, -57, -48, -21, 19, + 38, 63, 66, 69, 74, 59, 39, 4, -33, -52, -67, -58, -39, -25, 2, 10, + 32, 35, 36, 18, -7, -25, -37, -31, -28, -23, -10, 11, 53, 101, 121, 123, + 92, 48, 11, -24, -42, -60, -66, -67, -48, -20, 2, -16, -41, -67, -87, -62, + -44, -10, 8, 19, 30, 34, 35, 4, -36, -66, -78, -75, -27, 22, 49, 83, + 91, 97, 90, 69, 39, -18, -61, -104, -98, -75, -32, 19, 47, 68, 70, 56, + 16, -33, -77, -89, -76, -47, 7, 35, 64, 100, 123, 125, 107, 60, 5, -39, + -76, -94, -101, -93, -69, -36, -3, 17, 10, -15, -56, -80, -86, -69, -40, -7, + 25, 49, 66, 72, 54, 19, -19, -55, -77, -67, -40, 4, 45, 76, 96, 100, + 92, 67, 32, -11, -56, -88, -91, -73, -33, 9, 41, 61, 65, 52, 17, -28, + -67, -80, -68, -36, 6, 47, 82, 114, 126, 114, 74, 18, -32, -73, -93, -101, + -93, -70, -36, -3, 17, 10, -15, 0, -1, -2, -2, 0, 2, 3, 6, 7, + 6, 6, 3, 2, -1, -4, -8, -12, -14, -13, -13, -11, -5, -1, 5, 10, + 14, 17, 19, 18, 15, 12, 7, 3, 1, -2, -4, -4, -7, -11, -13, -16, + -16, -12, -9, -6, -3, -1, -1, -1, -4, -8, -11, -15, -16, -15, -10, -2, + 7, 18, 25, 28, 28, 24, 16, 10, 4, -2, -5, -5, -4, -4, -1, 0, + 0, 1, 1, 0, -1, -3, -6, -11, -11, -14, -16, -17, -19, -19, -16, -10, + -2, 8, 19, 27, 33, 35, 32, 26, 21, 14, 7, 0, -6, -11, -18, -25, + -31, -32, -27, -19, -9, 1, 10, 15, 14, 10, 0, -13, -28, -38, -42, -40, + -26, -4, 17, 40, 58, 66, 62, 51, 35, 17, 3, -8, -16, -18, -18, -15, + -13, -15, -17, -17, -15, -13, -11, -12, -3, -2, 1, -3, -15, -28, -36, -42, + -40, -28, -11, 14, 45, 63, 70, 69, 56, 44, 36, 21, 3, -12, -18, -26, + -37, -47, -58, -55, -41, -20, 4, 22, 34, 43, 37, 22, -7, -43, -71, -88, + -86, -64, -31, 7, 56, 99, 115, 106, 85, 48, 17, 1, -14, -28, -33, -20, + -11, -12, -18, -37, -44, -41, -29, -23, -7, 15, 31, 40, 33, 8, -27, -56, + -73, -74, -63, -33, 4, 50, 93, 101, 91, 79, 56, 43, 24, 5, -17, -32, + -31, -43, -56, -63, -72, -57, -32, 3, 26, 46, 62, 63, 45, 9, -39, -85, + -112, -106, -84, -49, 6, 60, 104, 127, 115, 83, 46, 16, -1, -16, -21, -26, + -16, -2, -8, -25, -47, -67, -62, -49, -26, 2, 34, 60, 74, 65, 33, -21, + -71, -98, -92, -77, -36, 21, 69, 106, 112, 88, 58, 29, 9, -8, -18, -24, + -17, -4, -10, -26, -47, -67, -62, -49, -26, 2, 34, 60, 74, 65, 33, 17, + 16, -38, 9, 40, -58, 27, 43, -80, 52, -2, -54, 64, -27, -17, 32, 4, + -49, 53, -22, -47, 90, -73, 17, 42, -45, 8, 23, -41, -1, 58, -74, 40, + 25, -66, 56, -19, -45, 58, -9, -39, 45, 3, -48, 55, -41, -27, 78, -66, + 13, 40, -38, 0, 29, -51, 12, 57, -79, 38, 31, -64, 40, -4, -47, 63, + -16, -40, 55, -16, -32, 45, -31, -29, 76, -64, 0, 58, -49, 4, 31, -52, + 31, 5, -35, 45, -21, 4, -5, 3, -17, -7, 55, -72, 43, 35, -88, 80, + -57, 3, 45, -62, 53, -14, -2, -17, 46, -77, 42, 23, -61, 75, -54, 39, + -40, 31, -42, 25, 11, -48, 93, -97, 62, -27, -13, 7, 0, 30, -59, 82, + -74, 28, 10, -53, 65, -47, 46, -41, 40, -48, 7, 45, -95, 127, -99, 43, + -9, -25, 40, -58, 84, -84, 78, -66, 11, 50, -96, 111, -85, 51, -26, -14, + 36, -60, 91, -84, 58, -26, -22, 56, -87, 98, -71, 47, -25, -11, 44, -84, + 103, -92, 69, -32, -3, 25, -59, 87, -90, 70, -45, 17, 16, -57, 81, -73, + 50, -33, 14, 0, -35, 75, -84, 69, -42, 8, 11, -46, 74, -69, 57, -47, + 36, -26, -20, 69, -89, 83, -58, 37, -24, -7, 41, -58, 54, -53, 53, -42, + 14, 28, -54, 52, -55, 46, -41, 22, 30, -57, 58, -64, 56, -54, 26, 31, + -55, 63, -73, 66, -68, 49, -3, -38, 61, -71, 75, -87, 69, -15, -27, 37, + -55, 74, -84, 73, -34, -5, 26, -59, 74, -85, 84, -33, -12, 30, -57, 65, + -85, 86, -40, 9, 15, -50, 69, -94, 93, -53, 15, 11, -38, 58, -86, 96, + -64, 11, 21, -30, 17, -3, -3, 0, 0, -3, -4, -4, -3, -4, -4, -5, + -6, -6, -8, -5, -6, -3, 0, 2, 4, 7, 8, 12, 12, 14, 13, 13, + 12, 8, 7, 2, 2, -4, -6, -10, -11, -12, -12, -14, -10, -9, -3, -3, + 2, 3, 3, 2, 1, 1, -3, -3, -4, -3, -3, -3, -4, 0, -3, -3, + -3, 0, -3, 0, -3, 0, 1, 0, 0, 0, 0, 0, -3, 1, -3, 1, + -3, 2, 1, 0, 0, -3, -4, -5, -9, -10, -15, -16, -17, -17, -14, -10, + -3, 4, 9, 14, 19, 24, 25, 26, 28, 30, 34, 42, 31, 9, -31, -39, + -23, -15, -17, -23, -30, -23, -12, -10, 4, 9, 19, 13, 14, 6, 0, -9, + -11, -12, -9, -8, 0, 0, 2, 1, 1, -3, -3, -5, -3, -5, -3, -4, + 0, -3, -4, -4, -3, -5, -3, -5, -3, 0, 3, 2, 7, 7, 7, 3, + 0, -14, -17, -26, -26, -28, -21, -17, -11, -10, 2, 6, 19, 18, 32, 32, + 60, 69, 98, 60, 7, -58, -8, -8, -14, -39, -30, -14, -47, -21, -45, -3, + 7, 20, 14, 31, 12, 10, -15, -5, -23, -14, -15, -4, -8, 2, 1, 7, + -3, 2, -8, -4, -6, -6, -3, 0, -6, -6, -8, -10, -11, -12, -9, -9, + -4, -3, 0, 8, 10, 12, 15, 13, 4, -10, -15, -30, -32, -30, -23, -22, + -19, -14, -4, 3, 10, 14, 26, 40, 70, 102, 127, 62, -17, -39, 9, -25, + -9, -87, -12, -16, 0, -30, -27, -19, -9, 6, 18, 21, 19, 6, 0, -9, + -17, -14, -16, -8, -6, 0, 4, 4, -5, -4, -11, -3, -6, 2, 2, 0, + -6, 0, -2, -4, -8, -14, -21, -25, -28, -32, -36, -40, -44, -48, -51, -55, + -59, -63, -67, -71, -74, -78, -82, -86, -90, -94, -98, -101, -84, -60, -38, -15, + 8, 28, 27, 23, 19, 16, 11, 21, 46, 68, 93, 109, 106, 102, 98, 95, + 91, 87, 83, 79, 75, 71, 67, 64, 60, 56, 52, 49, 45, 41, 37, 33, + 30, 26, 22, 18, 15, 11, 7, 3, -1, -5, -9, -13, -17, -20, -24, -28, + -32, -35, -39, -43, -47, -51, -54, -58, -62, -66, -69, -73, -77, -81, -85, -89, + -93, -97, -100, -105, -95, -70, -48, -23, -7, -10, -14, -17, -22, -18, 4, 26, + 50, 72, 96, 107, 103, 100, 96, 92, 88, 84, 80, 76, 72, 68, 64, 61, + 57, 53, 49, 46, 42, 38, 34, 30, 26, 23, 19, 15, 11, 8, 4, 0, + -4, -8, -11, -15, -19, -23, -27, -30, -35, -38, -43, -46, -51, -54, -58, -61, + -66, -56, -31, -9, 16, 33, 30, 26, 22, 18, 15, 11, 7, 3, -1, -5, + -9, -13, -16, -20, -24, -28, -32, -36, -40, -43, -48, -51, -55, -59, -63, -50, + -26, -4, 20, 42, 64, 67, 62, 59, 55, 51, 47, 43, 39, 35, 31, 27, + 23, 20, 16, 12, 8, 4, 0, -4, -7, -11, -15, -19, -22, -27, -17, 8, + 30, 55, 72, 69, 65, 61, 57, 54, 50, 46, 42, 38, 34, 30, 26, 22, + 18, 15, 11, 7, 3, 0, -4, -8, -12, -15, -19, -23, -27, -31, -35, -38, + -42, -46, -50, -54, -57, -61, -65, -69, -73, -77, -81, -85, -89, -92, -96, -100, + -100, -79, -64, -47, -31, -15, 0, 0, -4, -3, -6, -8, 6, 10, -8, -13, + 22, 55, 15, -58, -102, -88, -25, 51, 77, 79, 82, 19, -45, -107, -128, -88, + 19, 81, 86, 71, 35, -16, -50, -73, -55, -27, -14, 7, 77, 89, 31, -22, + -27, -61, -86, -34, 40, 55, 67, 80, 57, -1, -48, -60, -41, -46, -31, 28, + 62, 47, 43, 33, -5, -34, -45, -52, -33, 26, 66, 70, 41, 17, -34, -79, + -93, -41, -6, 22, 53, 93, 62, 17, -20, -66, -118, -88, -4, 45, 60, 69, + 67, 2, -72, -109, -95, -78, -7, 67, 101, 78, 69, 19, -56, -110, -89, -64, + -19, 45, 100, 86, 36, -11, -65, -107, -108, -41, 24, 69, 93, 111, 56, -15, + -70, -81, -88, -38, 30, 88, 90, 83, 43, -24, -81, -82, -57, -24, 38, 100, + 115, 70, 26, -25, -75, -108, -66, -20, 29, 71, 105, 67, 7, -46, -67, -83, + -60, 0, 58, 82, 81, 57, -9, -72, -99, -78, -60, -8, 54, 95, 69, 44, + 0, -51, -92, -69, -26, 18, 53, 81, 63, 6, -44, -74, -88, -79, -19, 40, + 75, 75, 72, 18, -42, -80, -74, -69, -25, 32, 76, 66, 39, 5, -41, -82, + -76, -34, 3, 42, 79, 88, 38, -12, -49, -74, -92, -48, 8, 51, 70, 83, + 50, -7, -58, -68, -65, -43, 13, 70, 82, 62, 34, -17, -72, -94, -65, -28, + 17, 69, 101, 71, 25, -21, -60, -88, -66, -13, 37, 62, 82, 68, 11, -47, + -73, -79, -66, -15, 49, 82, 76, 57, 11, -51, -88, -78, -48, -9, 49, 0, + 0, 0, 0, 0, 0, -3, -5, -5, -7, -6, -2, 5, 16, 24, 21, 17, + 12, 3, -10, -31, -44, -47, -42, -28, -2, 26, 29, 36, 35, 1, -26, -39, + -52, -53, -38, -10, -32, -41, -7, 2, 22, 65, 89, 74, 15, -16, -24, 12, + 62, 39, 6, -12, -3, 47, 48, 21, 109, 127, 119, 53, -9, 19, 9, -50, + -55, -43, -71, -46, -5, -2, -20, -12, -9, 12, -27, -66, -50, -8, -19, -58, + -22, -8, -19, -34, -42, 10, 32, -4, 4, 46, 96, 34, -51, -10, -8, -93, + -70, -58, -46, -16, -32, -30, 6, 7, -41, -29, 3, 25, 73, 67, 45, 37, + 30, 83, 0, -31, -4, -50, -28, -41, -75, -110, -53, -13, -3, 22, 14, 14, + 13, 7, 9, 38, 47, 39, 17, -8, 90, 75, -5, -29, -46, -54, -102, -66, + -35, -27, -29, -21, 32, 5, 1, 1, -2, 16, 16, 19, 30, 50, 89, 41, + 6, 40, -10, -15, -41, -46, -43, -77, -100, -100, -48, -37, -26, -4, -9, 0, + 13, 36, 70, 75, 59, 34, 12, -13, -27, 37, 71, 48, 53, 37, 7, 8, + 34, 48, 40, 31, 25, 2, -20, -15, -5, 12, -11, -49, -20, 15, -13, -42, + -29, 16, -6, -58, -28, 17, 12, -20, -11, 16, -3, -37, -14, 3, -32, -10, + 40, 54, 53, 27, -3, -5, -34, -47, -49, -90, -68, -36, -32, -31, -16, 26, + 3, 0, -2, -2, 15, 16, 19, 30, 51, 88, 40, 6, 39, -10, 3, -2, + 11, -7, 23, 19, 74, 39, 32, -13, -21, -7, -39, -44, -128, -58, -21, 52, + -86, -74, -94, 75, 61, 72, -38, 13, 59, 116, 71, -9, -33, -12, 68, -2, + -35, -128, -42, -43, 39, -78, -57, -81, 56, 59, 63, -13, 7, 69, 98, 87, + -13, -9, -24, 70, -11, -23, -128, -42, -48, 28, -68, -61, -69, 34, 64, 46, + 8, -5, 79, 82, 100, -17, 5, -29, 69, -13, -21, -122, -49, -43, 11, -55, + -72, -54, 13, 73, 30, 23, -16, 87, 72, 107, -17, 10, -26, 64, -6, -26, + -109, -61, -31, -6, -40, -86, -41, -4, 80, 17, 31, -22, 88, 70, 106, -10, + 6, -16, 53, 7, -37, -93, -76, -17, -21, -28, -99, -33, -15, 83, 12, 31, + -21, 83, 76, 98, 2, -4, -1, 41, 24, -49, -77, -89, -6, -31, -20, -106, + -32, -19, 79, 14, 23, -15, 71, 87, 87, 17, -16, 13, 30, 39, -57, -67, + -97, -1, -34, -19, -106, -38, -16, 69, 23, 11, -5, 56, 100, 75, 32, -28, + 25, 22, 50, -59, -62, -98, -2, -30, -24, -100, -52, -9, 55, 36, -4, 5, + 41, 112, 67, 43, -34, 30, 21, 55, -53, -65, -93, -11, -18, -34, -88, -69, + 0, 41, 48, -17, 12, 29, 118, 65, 49, -34, 28, 27, 53, -42, -72, -83, + -23, -6, -44, -77, -85, 5, -69, 1, -12, -29, -28, -13, 1, 9, -4, -27, + -18, -5, 11, 65, 87, 54, 59, 66, 30, 12, 8, -6, -7, 4, -7, -39, + -59, -63, -48, -23, -13, -6, 22, 61, 68, 15, -59, -87, -41, 3, 5, -10, + -17, -17, -20, -23, -20, -28, -17, -3, -10, -29, 23, 11, 25, 52, 56, 62, + 80, 54, 22, -15, -31, -38, -5, 11, -9, -7, -36, -44, -6, 52, 127, 26, + -68, -125, -105, 22, 15, -27, -27, 13, 25, 69, 28, -42, -77, -57, -70, 15, + 44, 14, 26, 57, 69, 43, 33, 41, 33, 32, 25, -50, -98, -100, -38, 24, + 7, -35, -38, -2, 76, 64, 15, -79, -93, -50, -12, 27, 45, 32, -4, 23, + 6, -36, -47, -33, -52, -15, 37, 78, 49, 40, 17, 14, 14, 70, 81, 60, + -3, -4, -12, -42, -50, -28, -20, 5, 9, 27, 46, -13, -69, -99, -88, -47, + 5, -4, -10, 17, 39, -12, -8, -21, -16, 22, 9, -9, 1, 15, 15, 33, + 29, 17, 11, 38, 72, 29, -8, -36, -27, -42, 17, -40, 25, 25, 8, -3, + 14, 15, 2, 43, 33, -2, -19, -24, -8, 2, -69, -114, -94, -77, -87, 22, + 27, 19, 24, 57, 121, 94, 40, -27, -29, 4, 28, -12, 5, -21, -28, -18, + 0, -9, 1, 36, 22, 7, 6, 12, 7, 8, 55, 6, -2, -7, -13, -12, + -12, -8, -5, -5, -1, -4, -4, -3, -1, 5, 11, 15, 18, 16, 11, 5, + -5, -12, -16, -17, -14, -10, -7, -3, -2, -3, -3, -5, -3, 2, 9, 18, + 22, 23, 18, 11, -2, -14, -20, -22, -18, -12, -8, -5, -3, -5, -6, -6, + -5, 1, 11, 22, 30, 31, 24, 15, -1, -12, -20, -23, -19, -13, -8, -3, + -3, -2, -6, -8, -9, -5, 6, 21, 32, 35, 29, 19, 1, -15, -27, -29, + -25, -15, -9, -4, -1, -2, -7, -14, -15, -10, 4, 24, 42, 48, 43, 26, + 4, -20, -36, -38, -30, -17, -7, -3, 0, -1, -4, -16, -24, -19, -3, 26, + 49, 61, 60, 40, 9, -23, -45, -52, -39, -22, -5, -2, 1, 3, -2, -18, + -32, -30, -10, 22, 55, 77, 78, 52, 15, -22, -51, -66, -52, -29, -5, 0, + 2, 9, 6, -15, -37, -42, -22, 10, 55, 89, 99, 71, 22, -20, -58, -79, + -68, -35, -8, 6, 1, 12, 13, -9, -37, -50, -35, 0, 46, 93, 116, 90, + 33, -15, -60, -89, -84, -44, -9, 10, 3, 13, 19, -3, -35, -53, -43, -12, + 34, 91, 127, 109, 46, -9, -57, -95, -96, -57, -13, 11, 7, 10, 25, 2, + -2, -35, 0, 2, 7, 12, -7, -79, -68, 2, -6, -5, 19, 40, 33, 55, + 56, 17, 32, 32, 2, -20, 5, 51, 27, -21, -13, -11, -17, -20, -6, -63, + -125, -116, -86, -59, -34, 11, 23, 20, 39, 66, 50, 47, 54, 46, 11, -4, + 44, 67, 30, 11, 16, 6, -2, 7, -4, -77, -114, -107, -70, -50, -20, 29, + 26, 12, 48, 69, 44, 47, 49, 28, -8, 9, 53, 49, 15, 9, 8, -3, + -11, 7, -33, -107, -123, -101, -62, -49, -5, 25, 6, 13, 55, 49, 32, 40, + 39, 7, -17, 18, 49, 32, 7, 8, 1, -12, -3, 7, -62, -113, -109, -74, + -50, -31, 23, 32, 13, 40, 69, 48, 46, 54, 42, 2, 1, 42, 52, 25, + 10, 11, 0, -11, 10, -10, -90, -115, -101, -64, -52, -15, 29, 16, 10, 51, + 59, 41, 46, 49, 25, -9, 15, 48, 42, 15, 10, 7, -9, -7, 16, -43, + -107, -113, -89, -60, -47, 4, 27, 4, 19, 58, 47, 38, 46, 43, 6, -9, + 28, 47, 29, 10, 11, 2, -14, 5, 5, -73, -111, -106, -73, -56, -29, 24, + 22, 6, 40, 61, 43, 43, 52, 37, -3, 6, 41, 47, 23, 12, 11, 0, + -14, 1, 3, 5, 5, 6, 8, 6, 4, 0, -4, -5, -6, -9, -9, -11, + -11, -12, -13, -13, -13, -12, -11, -9, -5, -2, -1, 1, 4, 6, 9, 11, + 12, 12, 11, 8, 5, 2, -2, -2, -2, -2, 0, -1, -1, -2, -5, -5, + -5, -1, 4, 10, 17, 20, 22, 19, 15, 7, -1, -9, -15, -19, -21, -21, + -18, -16, -13, -11, -12, -15, -19, -23, -24, -20, -13, -3, 9, 20, 34, 44, + 50, 46, 35, 21, 7, -4, -14, -20, -19, -13, -8, 2, 0, -5, -15, -28, + -32, -29, -14, 0, 11, 27, 42, 58, 59, 45, 22, 4, -15, -26, -37, -43, + -42, -37, -17, 1, 18, 23, 8, -5, -29, -47, -47, -43, -25, -5, 20, 52, + 80, 92, 76, 43, 9, -20, -35, -38, -46, -41, -29, -12, 19, 35, 22, 4, + -34, -53, -58, -40, -26, -16, 14, 47, 88, 108, 90, 50, 16, -9, -36, -51, + -64, -64, -52, -33, -1, 32, 40, 24, 3, -29, -62, -58, -65, -52, -18, 23, + 68, 114, 127, 95, 41, 1, -36, -54, -56, -68, -55, -35, -17, 19, 42, 29, + 13, -16, -46, -60, -54, -56, -47, -11, 29, 72, 116, 127, 94, 41, -3, 0, + 16, 39, 54, 46, 18, 7, -15, -36, -9, -6, -16, -5, -15, -30, -23, -35, + -20, 22, 3, -19, -20, -13, -9, 19, 23, 10, 12, 35, 66, 54, 4, -43, + -58, -15, -10, 16, 55, 18, -39, -38, -30, 2, 9, 27, 51, -32, -60, -72, + -4, 32, 71, 19, -8, 56, -2, -42, 10, 21, -6, 31, -9, -70, 8, -6, + -19, -93, -20, -5, -31, 10, 5, 56, 24, -45, 11, 66, 48, 61, 89, 49, + -57, -6, -20, -69, -104, -83, -50, 32, 10, -16, -87, -78, 30, 127, 63, -17, + -91, -2, -12, 45, 83, 30, 56, 54, 42, 7, 79, -26, -52, -64, -97, 12, + -3, -107, -99, -39, 34, 86, 19, -25, 25, 90, -8, -38, 65, 36, 10, 30, + 36, 19, -6, 38, -47, -101, -52, -45, 30, -9, -106, 18, -10, -37, 16, 100, + -94, -111, -25, -35, -12, -8, -9, 51, 24, -5, -70, -52, -52, -19, -11, 48, + 93, 61, 17, 113, 125, 73, -16, -30, -57, -78, -116, -55, -38, -10, -5, -4, + 38, 31, -3, -46, -46, -50, -20, -10, 52, 84, 48, 14, 115, 119, 64, -16, + -1, 4, 0, -9, -11, -1, 6, 2, -2, 4, -6, -10, -2, 11, 14, 3, + -10, -15, -1, 17, 4, 6, 4, -12, -18, 6, 10, 4, 6, -8, -36, 2, + 3, 3, 5, 15, -20, -17, 9, 8, 11, 17, -8, -26, 18, 2, 5, 5, + 13, -24, -8, -2, 2, 5, 7, -21, -18, 13, 5, -5, 17, 7, -14, -13, + -12, 0, 14, 3, -12, -26, 13, 3, 10, 18, 12, -15, -14, -1, 3, 19, + 0, -10, -29, 11, 4, 17, 15, 12, -24, -20, 6, 9, 22, -3, -13, -15, + 9, 1, 7, 6, 18, -19, -26, -18, 2, 22, 0, -25, -20, 15, 8, -4, + 8, 31, -12, -20, -15, 9, 33, 9, -29, -2, 27, 7, -11, 8, 20, -20, + -41, -10, 15, 35, 15, -21, 11, 49, 6, -6, 4, 3, -48, -76, -35, 14, + 37, 22, -24, 29, 68, 20, 3, 7, -5, -68, -90, -59, 19, 36, 28, -13, + 59, 93, 30, 2, 18, -25, -88, -105, -81, 13, 26, 30, -4, 88, 109, 33, + 0, 22, -30, -88, -112, -76, 17, 31, 18, 5, 94, 114, 30, -4, 0, 4, + -30, -1, 0, -2, -2, -2, -1, 4, 11, 18, 30, 7, -64, -60, -30, -7, + 0, 2, 22, 67, 117, 23, -128, -74, -30, -5, -2, 1, 19, 62, 116, 38, + -123, -82, -31, -8, -1, -1, 16, 57, 114, 52, -117, -88, -33, -10, -2, -3, + 14, 52, 112, 64, -108, -96, -35, -13, -2, -4, 12, 49, 108, 77, -99, -102, + -37, -15, -2, -5, 10, 43, 104, 86, -87, -109, -40, -18, -2, -6, 8, 40, + 100, 95, -73, -115, -42, -21, -2, -8, 7, 35, 95, 102, -59, -120, -45, -24, + -2, -8, 5, 32, 90, 109, -44, -124, -49, -26, -3, -9, 3, 28, 85, 114, + -29, -126, -53, -28, -4, -9, 2, 25, 81, 116, -13, -127, -58, -29, -6, -9, + 0, 22, 75, 119, 3, -126, -63, -31, -7, -9, -2, 19, 70, 120, 18, -124, + -69, -32, -9, -9, -3, 16, 65, 119, 34, -63, -107, -58, -23, -11, -7, 7, + 46, 107, 89, -52, -109, -62, -25, -12, -8, 5, 42, 104, 97, -41, -87, -70, + -36, -18, -11, 0, 30, 85, 100, -2, -87, -5, 11, -23, -10, -3, -20, -3, + -17, -24, -33, -26, -1, -13, -12, -6, -9, 6, 25, 19, -7, -1, 22, -6, + -20, 13, 6, -12, 26, 48, 0, -7, 34, 23, 4, 32, 23, -41, -11, 49, + -3, -30, 35, 45, -14, -2, 62, 18, -44, -2, 26, -4, -28, -6, 16, 2, + -9, -9, 2, 18, 24, 9, -25, -57, -36, 30, 38, -21, -63, -37, 9, 37, + 40, 0, -56, -56, 3, 39, 20, -23, -52, -58, -46, 8, 67, 56, -18, -61, + -18, 36, 70, 95, 73, -35, -128, -127, -73, -17, 32, 48, 29, 28, 60, 106, + 113, 91, 36, -26, -67, -90, -91, -71, -44, -25, -13, 9, 36, 51, 69, 70, + 32, -40, -92, -99, -70, -25, 12, 29, 21, 3, -9, 10, 21, 12, -11, -22, + -27, -44, -23, 10, 30, 25, 24, 39, 18, 3, 8, 19, -1, -19, -8, 6, + 5, 13, 50, 43, 37, 36, 40, 37, 4, 12, -10, -33, -31, -25, -1, 1, + 7, 14, 10, -4, -11, -10, -6, -19, -42, -28, -54, -51, -18, -5, 3, 2, + -10, -10, 10, 28, 27, 16, 5, -5, -24, -26, -7, -14, -25, -16, 53, 33, + -49, -30, 53, 50, -24, -34, 40, 82, -118, -23, 120, -56, -70, -72, 106, -10, + -48, 3, 87, 28, -126, -16, 81, 4, -84, -51, 38, 62, -32, 36, 84, -12, + -41, 72, -42, -60, -64, 4, 77, -24, -79, -9, 122, 6, -94, 52, 43, 35, + 13, -62, -7, -89, 24, -30, 16, 29, 56, -59, 83, 42, 31, 36, -76, -2, + -128, -2, 45, 27, -104, -31, 66, 21, 19, 36, 121, 11, -76, -26, -93, 34, + 24, -34, -65, -53, 53, 17, 73, 46, 75, -9, -64, -21, -103, 41, 51, -41, + -83, -43, 108, 6, -11, 28, 127, 2, -84, -38, -72, 39, 17, -23, -15, -67, + 37, 6, 29, 64, 79, 17, -39, -39, -120, 55, 23, -17, -62, -51, 81, 23, + 20, 24, 99, -38, -99, 4, 17, -66, -41, -33, 63, 62, 16, 53, 91, 56, + -65, -36, -99, -38, 14, -47, -29, -38, 35, 83, 9, 48, 83, 62, -45, -31, + -103, -49, 14, 2, 6, -33, 33, -4, -1, 34, -93, 60, -49, 68, -21, 41, + -38, -38, 27, -87, 127, -34, 38, -3, -34, -2, -85, 79, -24, 4, 75, -23, + 11, -70, 1, -6, -6, 63, -48, 76, -71, 2, -7, -15, 46, -32, 48, -25, + -5, 10, -31, 18, -23, 5, 6, 17, 11, 3, 24, -46, -21, -1, -5, 31, + 1, 36, -23, -11, -4, -29, 14, -5, 29, 9, -2, -2, -20, -2, -15, 13, + 7, 4, 15, -11, 4, -13, -1, 1, -13, 15, -6, 9, 9, -2, -4, -11, + -2, -11, 7, 12, 9, 5, -6, -6, -16, -2, 3, 6, 13, 1, 7, -14, + -3, -11, -1, 8, 0, 18, -3, -3, -6, -13, 0, 4, 2, 9, 2, 2, + -6, -4, -1, -8, 2, 4, 2, 7, -4, 2, 1, -7, -3, -2, 0, 2, + 8, -2, 2, -1, -7, -3, -1, 3, 4, 3, 3, -3, -4, -4, 0, 2, + 1, 5, -1, -2, 1, -4, -1, 1, 0, 2, -5, -8, -3, -3, -9, -2, + -2, 5, 10, 16, 11, 5, -3, -5, -1, -4, -6, -7, -15, -18, -27, -31, + -21, -11, 22, 56, 90, 66, -17, -25, -25, 0, -12, -15, -25, -32, -39, -37, + -26, 6, 33, 65, 69, 44, -1, -13, -12, 1, 0, -9, -14, -22, -40, -44, + -42, -23, 8, 39, 60, 84, 57, -16, -25, -19, 2, -8, -11, -18, -32, -51, + -45, -32, -6, 28, 54, 85, 96, -5, -29, -23, -7, -10, -17, -16, -28, -53, + -44, -40, -7, 22, 52, 82, 112, 17, -37, -25, -20, -11, -18, -10, -23, -33, + -51, -40, -23, 10, 45, 65, 96, 64, -21, -35, -34, -19, -20, -13, -5, -14, + -35, -41, -39, -17, 9, 45, 58, 82, 98, -2, -57, -47, -23, -12, -11, -2, + -18, -28, -39, -36, -24, -1, 26, 57, 84, 121, 23, -65, -50, -40, -12, -11, + -4, -14, -20, -34, -32, -27, -5, 19, 56, 80, 127, 15, -66, -50, -2, -5, + -5, 2, 10, 8, -7, -16, -9, 6, 17, 8, -19, -20, 14, 38, 34, 20, + -5, 1, 50, 37, -50, -54, -66, -32, 32, -3, -13, -18, -17, 46, 89, -17, + -62, 45, 127, 57, -57, -67, -109, -11, 88, -31, -90, -88, -27, 63, 97, -27, + -105, -44, 65, 110, 60, -12, -30, -27, 17, 49, -2, -39, -6, 30, -16, -36, + -43, 32, 67, -54, -58, -38, -21, 47, 95, 76, -33, -78, -62, 10, 107, 24, + -106, -107, 12, 52, 27, 78, 8, -75, 25, 6, -26, 59, 32, -17, -7, -19, + 11, 32, -51, -52, 41, -9, -13, 94, 2, -65, 5, -46, -86, 34, 62, 85, + 29, -93, -89, -29, 44, 35, -31, -33, -19, 56, 127, 7, -9, -62, -52, 23, + 46, 44, -56, -16, -55, -46, 22, 83, -13, -42, -7, 13, 81, 49, 3, -9, + -30, -47, -30, 3, 23, 6, -7, -20, -44, 10, 96, -13, 0, 16, 31, 47, + 61, 75, 87, 98, 107, 115, 121, 125, 127, 127, 125, 121, 116, 108, 99, 88, + 75, 62, 47, 32, 16, 0, -16, -31, -47, -61, -75, -87, -98, -108, -116, -122, + -126, -128, -128, -126, -123, -117, -109, -100, -89, -77, -64, -49, -34, -18, -2, 14, + 29, 45, 59, 73, 86, 97, 106, 114, 121, 125, 127, 127, 126, 122, 116, 109, + 100, 89, 77, 63, 49, 34, 18, 2, -14, -30, -45, -60, -73, -86, -97, -107, + -115, -121, -126, -128, -128, -127, -123, -118, -110, -101, -91, -79, -65, -51, -36, -20, + -4, 12, 28, 43, 58, 72, 84, 96, 106, 114, 120, 124, 127, 127, 126, 122, + 117, 109, 100, 90, 78, 64, 50, 35, 19, 3, -13, -29, -44, -59, -73, -85, + -97, -107, -115, -121, -125, -128, -128, -127, -123, -118, -110, -101, -91, -79, -65, -51, + -36, -20, -4, 12, 2, 5, 5, 0, -16, -9, -2, -19, 4, 18, 6, 10, + -16, -21, 22, -2, 3, -7, 21, 43, -57, -37, 46, -39, -31, 78, 23, -23, + -10, -10, -7, -52, 44, 50, -44, 9, -9, -46, 47, 12, -75, 40, 45, 32, + -10, -25, -15, -45, 24, 44, -40, -10, 18, -48, -29, 63, 44, -30, -1, 83, + -45, -94, 96, 0, -103, 21, 29, -42, 21, 80, -25, -15, 26, 39, -79, -18, + 73, -111, -45, 61, 29, 55, -22, -77, 40, 9, -72, 78, 35, -1, -1, -69, + 12, -50, -42, 123, 45, -7, -39, -86, 3, 51, 30, 28, -4, -33, -41, -66, + 54, -8, -30, 127, -7, -30, -32, -39, 48, -65, 20, 121, -33, -14, -53, -32, + 46, -24, 36, 98, -49, -39, -61, 1, 49, -54, 65, 59, -83, -11, -49, 32, + 39, -72, 113, 59, -83, -11, -49, 32, 39, -72, 113, 59, -2, -4, -4, -7, + -8, -8, -7, -4, -3, -2, 1, 4, 6, 6, 6, 4, 2, 0, -2, -3, + -4, -7, -7, -5, -3, 0, 4, 9, 11, 11, 9, 7, 4, 1, -3, -7, + -9, -12, -13, -16, -19, -19, -13, -2, 9, 17, 19, 20, 18, 13, 8, 3, + 0, -2, -3, -8, -14, -21, -25, -21, -9, 4, 15, 23, 28, 25, 20, 9, + -7, -21, -14, 3, 3, -18, -38, -49, -32, -7, 8, 14, 26, 37, 42, 37, + 26, 7, -18, -27, -5, 8, -7, -24, -34, -40, -32, -19, 1, 17, 42, 56, + 58, 40, -19, -81, 1, 67, 0, -60, -49, -27, -24, 0, -18, -24, -8, 37, + 67, 70, 59, 34, -42, -81, 7, 51, -12, -54, -37, -14, -25, -14, -16, -24, + 4, 55, 75, 102, 52, -102, -104, 90, 30, -48, -76, 1, -14, 0, -2, -2, + -3, -5, -7, -8, -8, -7, -6, -4, -2, 0, 1, 3, 4, 6, 6, 6, + 6, 5, 4, 3, 1, 0, 0, -3, -4, -7, -10, -11, -11, -8, -6, 1, + 5, 6, 8, 11, 11, 8, 5, 5, 2, 1, 0, 0, -2, 1, -4, -16, + -36, -27, -5, 6, -3, -6, 0, -6, 2, 27, 24, 19, 16, 9, 3, 0, + -4, 2, 1, 9, 19, -14, -79, -32, 22, -4, -22, -14, 25, 8, -11, 13, + 28, 16, 19, 16, 1, -2, -4, -3, -6, 28, 38, -59, -111, 25, 16, -16, + -40, 16, 24, -20, 4, 24, 29, 17, 27, 13, 1, -10, -6, -10, -8, 43, + 61, -68, -128, 28, 12, -15, -39, 12, 21, -28, 12, 37, 25, 12, 27, 11, + 0, -16, -2, -12, -11, 52, 67, -68, 35, 54, 47, 4, -60, -92, -68, -27, + 0, -2, -18, -20, -6, 2, -8, -15, -11, -3, 3, -7, -11, -6, -2, 7, + 15, 18, 19, 22, 27, 40, 40, 29, 20, 24, 28, 34, 30, 25, 32, 20, + 14, 9, 16, 19, 17, 6, -1, 3, -6, -14, -23, -18, -7, 1, -18, -18, + -24, -25, -24, -35, -35, -35, -21, -12, -14, -21, -17, -29, -24, -31, -34, -9, + -11, -9, -3, -7, -7, 6, -17, -22, 7, 16, 14, -4, -11, 10, 33, 24, + 21, 27, 3, -19, -25, -18, 17, 50, 48, 49, 61, 31, -48, -103, -73, 9, + 56, 70, 82, 109, 127, 71, -46, -127, -96, -30, -4, 9, 47, 103, 117, 60, + -39, -110, -119, -94, -64, -40, -4, 35, -8, -14, -9, -5, -4, -3, 6, 18, + 19, 6, -14, -20, -12, -3, -3, -6, 2, 21, 28, 13, -16, -26, -14, -6, + -6, -7, 1, 27, 36, 18, -15, -27, -15, -3, -2, -10, -6, 25, 41, 22, + -17, -34, -18, -4, -3, -16, -12, 29, 56, 31, -24, -44, -20, -4, -1, -19, + -22, 31, 73, 47, -27, -62, -25, -2, 4, -21, -36, 26, 91, 61, -27, -79, + -33, 0, 10, -18, -49, 14, 106, 82, -24, -94, -40, 8, 14, -12, -59, 1, + 112, 105, -19, -106, -51, 12, 16, -4, -63, -13, 110, 127, -12, -114, -51, 0, + -1, -4, -8, -11, -8, -2, 0, 7, 14, 21, 46, 92, 120, 76, -36, -121, + -119, -73, -31, -7, 3, 2, -4, -6, 2, 22, 60, 106, 116, 43, -72, -128, + -105, -57, -21, -3, 3, -1, -6, -5, 7, 33, 76, 117, 102, 5, -100, -127, + -89, -43, -13, 0, 2, -3, -7, -2, 14, 46, 92, 122, 79, -34, -118, -118, + -72, -31, -8, 1, 0, -5, -7, 2, 23, 61, 107, 118, 46, -69, -126, -104, + -56, -21, -4, 1, 0, -4, -5, 0, 16, 48, 87, 103, 60, -25, -87, -94, + -58, -20, -4, -11, 12, 24, 31, -36, 29, -9, 2, -38, -5, -5, -10, -33, + -10, -24, -20, -39, -36, -18, -38, -58, -5, -22, -15, -15, 90, -42, -3, -8, + 25, 6, 28, 25, 17, 25, -16, 28, 80, 22, 12, -6, 35, 22, 8, -7, + 28, 29, -19, 7, 8, -1, -29, -23, 10, -23, -13, -26, -17, -20, -33, -41, + -19, -28, -64, -13, -21, -13, -29, 54, 25, -20, -36, 42, -4, 13, 52, -8, + 47, -14, 9, 42, 88, -12, 20, -5, 43, 22, -11, 127, 127, -128, -128, -128, + -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, + -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, + -128, -128, -128, -128, -128, -128, -128, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, -128, 1, 4, 7, 10, 12, 16, 19, 22, 25, 28, 31, 35, 38, 42, + 45, 49, 51, 56, 58, 63, 65, 70, 73, 78, 80, 85, 87, 93, 95, 100, + 102, 108, 109, 117, 114, 127, 85, -63, -60, -64, -60, -62, -59, -61, -59, -61, + -58, -60, -58, -59, -58, -58, -57, -57, -55, -55, -54, -54, -52, -51, -50, -49, + -47, -46, -44, -43, -41, -40, -37, -36, -34, -32, -30, -28, -25, -24, -21, -19, + -16, -14, -11, -9, -6, 1, 1, 4, 7, 10, 12, 16, 19, 22, 25, 28, + 31, 35, 38, 42, 45, 49, 51, 56, 58, 63, 65, 70, 73, 78, 80, 85, + 87, 93, 95, 100, 102, 108, 109, 117, 114, 127, 85, -63, -60, -64, -60, -62, + -59, -61, -59, -61, -58, -60, -58, -59, -58, -58, -57, -57, -55, -55, -54, -54, + -52, -51, -50, -49, -47, -46, -44, -43, -41, -40, -37, -36, -34, -32, -30, -28, + -25, -24, -21, -19, -16, -14, -11, -9, -6, 1, -3, -19, -24, -14, -8, -19, + -12, -10, -5, -12, -50, -19, 23, 35, 4, -20, -7, -26, 9, 40, 69, 16, + -88, -69, -38, -32, -27, 41, 65, 55, 18, -40, -38, -20, 66, 127, 121, 57, + -23, -55, -48, 13, 53, 31, -20, -38, -13, 10, 8, 0, 12, 17, 13, 2, + -1, -3, -3, 6, 13, 7, -17, -24, -12, 4, 3, -10, -20, -32, -22, -18, + -12, -3, 6, 16, 22, 29, 30, 27, 20, 11, 0, -7, -12, -11, -5, 0, + -3, -14, -20, -16, -9, -9, -17, -25, -29, -31, -33, -35, -33, -29, -25, -22, + -20, -17, -14, -13, -12, -11, -9, -10, -13, -15, -11, -5, 3, 9, 10, 9, + 9, 12, 18, 30, 50, 80, 119, 127, 102, 82, 77, 60, 37, 5, -34, -70, + -84, -83, -74, -60, -46, -29, -12, -2, 6, -23, 28, -20, 50, 50, -14, 14, + -28, -2, 28, 52, -25, -13, -52, 43, -41, -9, -26, 36, -25, -20, -17, 3, + -11, 38, 30, -61, 12, -6, 5, 45, 41, -4, 4, -20, -12, 45, 33, -11, + -29, -44, 27, -17, -36, -1, 17, -11, -31, -12, 4, -10, 37, 20, -39, -23, + 0, -104, -55, -11, 24, 33, 30, 7, -15, -31, -30, -25, -23, -20, -9, 10, + 31, 59, 91, 111, 115, 92, 51, 7, -33, -64, -81, -81, -71, -51, -22, 16, + 52, 74, 82, 81, 68, 38, 0, -40, -81, -112, -124, -102, -57, -11, 0, 7, + -23, -58, -85, -100, -104, -100, -92, -81, -69, -57, -45, -33, -22, -11, -1, 8, + 18, 27, 37, 49, 62, 79, 99, 118, 124, 111, 84, 53, 26, 5, -8, -14, + -15, -12, -6, 2, 12, 21, 28, 26, 9, -22, -58, -20, 7, 10, 21, -14, + 9, 22, 57, 62, 127, 56, 28, 26, -28, 10, -81, -31, -81, -35, -19, -55, + -27, -4, -4, 23, 49, 88, 85, 22, 1, 0, -3, 18, -22, -12, -39, -14, + -47, -67, -53, -53, -33, -20, 8, -22, 25, 30, 6, -19, -62, -19, 10, 83, + 57, -67, -88, -52, 63, 127, 42, -63, -121, -70, 82, 111, 46, -43, -114, -35, + 45, 73, 39, -19, -54, -41, 9, 49, 24, -16, -14, -9, -6, 10, 8, -22, + 25, 30, 6, -19, -62, -19, 10, 83, 57, -67, -88, -52, 63, 127, 42, -63, + -121, -70, 82, 111, 46, -43, -114, -35, 45, 73, 39, -19, -54, -41, 9, 49, + 24, -16, -14, -9, -6, 10, 8, -22, 25, 30, 6, -19, -62, -19, 10, 83, + 57, -67, -88, -52, 63, 127, 42, -63, -121, -70, 82, 111, 46, -43, -114, -35, + 45, 73, 39, -19, -54, -41, 9, 49, 24, -16, -14, -9, -6, 10, -18, -15, + 80, 127, 20, 18, 72, 60, -36, 22, 33, -73, -105, -27, 29, 25, 8, 43, + 23, -22, -35, -14, -8, -34, -25, -5, -18, -46, -13, -28, -3, -19, -10, -28, + -10, 17, -18, 96, 127, 123, 127, 126, 126, 95, 61, 22, -17, -56, -95, -118, + -123, -128, -128, -128, -128, -128, -128, -128, -128, -124, -93, -55, -17, 25, 62, 100, + 107, 119, 119, 127, 41, -4, -4, -10, -27, -62, -102, -128, -117, -85, -76, -49, + -25, -7, 15, 24, 14, 0, -9, -12, -3, 33, 81, 105, 111, 101, 80, 62, + 45, 30, 16, 8, 1, -4, 126, 86, -44, -68, -88, -63, 4, 84, 127, 14, + -29, -51, -127, -47, 58, 87, 82, 24, -17, -112, -113, 18, 46, 72, 102, 19, + -72, -118, -51, 9, 27, 126, 19, -53, -114, -108, 15, 122, 111, 21, -71, -70, + 5, 59, 83, 23, -72, -84, -49, 12, 37, 38, -28, -65, -26, 7, -2, 11, + 5, 23, 68, 19, 27, -54, 15, -24, -31, 46, 71, 81, -24, -33, -87, -41, + -71, -61, -70, -36, -44, -3, 12, -25, -20, 20, 68, 85, 127, 15, 50, -5, + 27, 51, 82, 106, 127, 118, 101, 92, 74, 52, 39, 37, 14, -41, -105, -108, + -94, -119, -124, -93, -57, -40, -37, -45, -51, -41, -5, 51, 127, 127, -128, -128, + -128, -128, -128, -128, -128, -128, -128, -128, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127 +}; + +const EAS_U32 eas_sampleLengths[] = +{ + 16820, 16708, 16592, 11754, 10954, 10295, 9922, 7489, + 5779, 5462, 4452, 3779, 3115, 3093, 3057, 3024, + 2818, 2776, 2171, 2168, 2052, 1902, 1835, 1614, + 1603, 1528, 1517, 1480, 1455, 1424, 1387, 1302, + 1262, 1254, 1230, 1227, 1185, 1181, 1178, 1168, + 1132, 1120, 1034, 1033, 1018, 994, 964, 926, + 907, 886, 881, 866, 830, 817, 816, 813, + 749, 748, 739, 720, 652, 610, 610, 583, + 564, 561, 556, 549, 542, 535, 530, 530, + 516, 508, 492, 478, 461, 448, 437, 431, + 423, 418, 403, 402, 400, 394, 387, 387, + 367, 357, 347, 347, 341, 336, 334, 329, + 325, 312, 294, 284, 277, 265, 255, 233, + 230, 213, 207, 205, 194, 193, 184, 181, + 181, 167, 164, 158, 152, 152, 145, 139, + 128, 103, 100, 88, 87, 84, 84, 72, + 71, 55, 46, 45, 43, 40, 40, 40, + 37, 35, 32, 32, 30, 29, 27, 23, + 22, 21, 21, 21, 21, 20 +}; + +const EAS_U32 eas_sampleOffsets[] = +{ + 0x00000000, 0x000041b4, 0x000082f8, 0x0000c3c8, 0x0000f1b2, 0x00011c7c, 0x000144b3, 0x00016b75, + 0x000188b6, 0x00019f49, 0x0001b49f, 0x0001c603, 0x0001d4c6, 0x0001e0f1, 0x0001ed06, 0x0001f8f7, + 0x000204c7, 0x00020fc9, 0x00021aa1, 0x0002231c, 0x00022b94, 0x00023398, 0x00023b06, 0x00024231, + 0x0002487f, 0x00024ec2, 0x000254ba, 0x00025aa7, 0x0002606f, 0x0002661e, 0x00026bae, 0x00027119, + 0x0002762f, 0x00027b1d, 0x00028003, 0x000284d1, 0x0002899c, 0x00028e3d, 0x000292da, 0x00029774, + 0x00029c04, 0x0002a070, 0x0002a4d0, 0x0002a8da, 0x0002ace3, 0x0002b0dd, 0x0002b4bf, 0x0002b883, + 0x0002bc21, 0x0002bfac, 0x0002c322, 0x0002c693, 0x0002c9f5, 0x0002cd33, 0x0002d064, 0x0002d394, + 0x0002d6c1, 0x0002d9ae, 0x0002dc9a, 0x0002df7d, 0x0002e24d, 0x0002e4d9, 0x0002e73b, 0x0002e99d, + 0x0002ebe4, 0x0002ee18, 0x0002f049, 0x0002f275, 0x0002f49a, 0x0002f6b8, 0x0002f8cf, 0x0002fae1, + 0x0002fcf3, 0x0002fef7, 0x000300f3, 0x000302df, 0x000304bd, 0x0003068a, 0x0003084a, 0x000309ff, + 0x00030bae, 0x00030d55, 0x00030ef7, 0x0003108a, 0x0003121c, 0x000313ac, 0x00031536, 0x000316b9, + 0x0003183c, 0x000319ab, 0x00031b10, 0x00031c6b, 0x00031dc6, 0x00031f1b, 0x0003206b, 0x000321b9, + 0x00032302, 0x00032447, 0x0003257f, 0x000326a5, 0x000327c1, 0x000328d6, 0x000329df, 0x00032ade, + 0x00032bc7, 0x00032cad, 0x00032d82, 0x00032e51, 0x00032f1e, 0x00032fe0, 0x000330a1, 0x00033159, + 0x0003320e, 0x000332c3, 0x0003336a, 0x0003340e, 0x000334ac, 0x00033544, 0x000335dc, 0x0003366d, + 0x000336f8, 0x00033778, 0x000337df, 0x00033843, 0x0003389b, 0x000338f2, 0x00033946, 0x0003399a, + 0x000339e2, 0x00033a29, 0x00033a60, 0x00033a8e, 0x00033abb, 0x00033ae6, 0x00033b0e, 0x00033b36, + 0x00033b5e, 0x00033b83, 0x00033ba6, 0x00033bc6, 0x00033be6, 0x00033c04, 0x00033c21, 0x00033c3c, + 0x00033c53, 0x00033c69, 0x00033c7e, 0x00033c93, 0x00033ca8, 0x00033cbd +}; + +/*---------------------------------------------------------------------------- + * S_EAS + *---------------------------------------------------------------------------- +*/ +const S_EAS easSoundLib = +{ + 0x01534145, + 0x00105622, + eas_banks, + eas_programs, + eas_regions, + eas_articulations, + eas_sampleLengths, + eas_sampleOffsets, + eas_samples, + 0, + 1, + 1, + 377, + 185, + 150, + 0 +}; /* end S_EAS */ + +/*---------------------------------------------------------------------------- + * Statistics + * + * Number of banks: 1 + * Number of programs: 1 + * Number of regions: 377 + * Number of articulations: 185 + * Number of samples: 150 + * Size of sample pool: 212050 + *---------------------------------------------------------------------------- +*/ +/* end wt_200k_G.c */ -- cgit v1.2.3 From 8df4ccb34061ac9b18f800cccd58fed52a7038f8 Mon Sep 17 00:00:00 2001 From: Jean-Michel Trivi <> Date: Fri, 3 Apr 2009 18:25:35 -0700 Subject: AI 144575: am: CL 144573 Checking in Sonivox' JetCreator code. Original author: jmtrivi Merged from: //branches/cupcake/... Automated import of CL 144575 --- jet_tools/JetCreator/JetAudition.py | 509 ++++++++++ jet_tools/JetCreator/JetCreator.py | 1431 +++++++++++++++++++++++++++++ jet_tools/JetCreator/JetCreatorhlp.dat | 119 +++ jet_tools/JetCreator/JetCtrls.py | 567 ++++++++++++ jet_tools/JetCreator/JetDebug.py | 71 ++ jet_tools/JetCreator/JetDefs.py | 560 +++++++++++ jet_tools/JetCreator/JetDialogs.py | 1031 +++++++++++++++++++++ jet_tools/JetCreator/JetFile.py | 775 ++++++++++++++++ jet_tools/JetCreator/JetHelp.py | 33 + jet_tools/JetCreator/JetPreview.py | 200 ++++ jet_tools/JetCreator/JetSegGraph.py | 361 ++++++++ jet_tools/JetCreator/JetStatusEvent.py | 38 + jet_tools/JetCreator/JetSystemInfo.py | 40 + jet_tools/JetCreator/JetUtils.py | 788 ++++++++++++++++ jet_tools/JetCreator/ReadMe1st.txt | 44 + jet_tools/JetCreator/eas.py | 1229 +++++++++++++++++++++++++ jet_tools/JetCreator/img_Copy.py | 51 ++ jet_tools/JetCreator/img_Cut.py | 104 +++ jet_tools/JetCreator/img_Find.py | 85 ++ jet_tools/JetCreator/img_New.py | 61 ++ jet_tools/JetCreator/img_Open.py | 79 ++ jet_tools/JetCreator/img_Paste.py | 41 + jet_tools/JetCreator/img_Print.py | 62 ++ jet_tools/JetCreator/img_Redo.py | 79 ++ jet_tools/JetCreator/img_Save.py | 99 ++ jet_tools/JetCreator/img_Undo.py | 81 ++ jet_tools/JetCreator/img_favicon.py | 61 ++ jet_tools/JetCreator/img_splash.py | 1157 +++++++++++++++++++++++ jet_tools/JetCreator/midifile.py | 1579 ++++++++++++++++++++++++++++++++ 29 files changed, 11335 insertions(+) create mode 100755 jet_tools/JetCreator/JetAudition.py create mode 100755 jet_tools/JetCreator/JetCreator.py create mode 100755 jet_tools/JetCreator/JetCreatorhlp.dat create mode 100755 jet_tools/JetCreator/JetCtrls.py create mode 100755 jet_tools/JetCreator/JetDebug.py create mode 100755 jet_tools/JetCreator/JetDefs.py create mode 100755 jet_tools/JetCreator/JetDialogs.py create mode 100755 jet_tools/JetCreator/JetFile.py create mode 100755 jet_tools/JetCreator/JetHelp.py create mode 100755 jet_tools/JetCreator/JetPreview.py create mode 100755 jet_tools/JetCreator/JetSegGraph.py create mode 100755 jet_tools/JetCreator/JetStatusEvent.py create mode 100755 jet_tools/JetCreator/JetSystemInfo.py create mode 100755 jet_tools/JetCreator/JetUtils.py create mode 100755 jet_tools/JetCreator/ReadMe1st.txt create mode 100755 jet_tools/JetCreator/eas.py create mode 100755 jet_tools/JetCreator/img_Copy.py create mode 100755 jet_tools/JetCreator/img_Cut.py create mode 100755 jet_tools/JetCreator/img_Find.py create mode 100755 jet_tools/JetCreator/img_New.py create mode 100755 jet_tools/JetCreator/img_Open.py create mode 100755 jet_tools/JetCreator/img_Paste.py create mode 100755 jet_tools/JetCreator/img_Print.py create mode 100755 jet_tools/JetCreator/img_Redo.py create mode 100755 jet_tools/JetCreator/img_Save.py create mode 100755 jet_tools/JetCreator/img_Undo.py create mode 100755 jet_tools/JetCreator/img_favicon.py create mode 100755 jet_tools/JetCreator/img_splash.py create mode 100755 jet_tools/JetCreator/midifile.py diff --git a/jet_tools/JetCreator/JetAudition.py b/jet_tools/JetCreator/JetAudition.py new file mode 100755 index 0000000..bc0d4de --- /dev/null +++ b/jet_tools/JetCreator/JetAudition.py @@ -0,0 +1,509 @@ +""" + File: + JetAudition.py + + Contents and purpose: + Auditions a jet file to simulate interactive music functions + + Copyright (c) 2008 Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +""" + +from __future__ import with_statement + +import wx +import sys +import thread +import time + +from JetUtils import * +from JetDefs import * +from JetCtrls import JetListCtrl, JetTrackCtrl +from JetSegGraph import SegmentGraph, Marker +from eas import * +from JetStatusEvent import * + +CMD_QUEUE_AND_CANCEL = 'QueueNCancel' +CMD_QUEUE_AND_CANCEL_CURRENT = 'QueueCancelCurrent' +CMD_MUTEALL = 'MuteAll' +CMD_UNMUTEALL = 'UnMuteAll' +CMD_ORIGINALMUTES = 'MuteOrg' +CMD_STOP = 'Stop' +CMD_PAUSE = 'Pause' +CMD_PLAY = 'Play' + +STATUS_PENDING = 'Pending' +STATUS_PLAYING = 'Playing' +STATUS_COMPLETE = 'Complete' +STATUS_CANCELED = 'Canceled' +STATUS_QUEUED = 'Queued' + +LOAD_QUEUE_DISPLAY = 'LOAD_QUEUE' +GRAPH_POSITION_UPDATE = 'GRAPH_POS' +NEW_SEGMENT_DISPLAY = 'NEW SEG' +CLR_INFO = 'CLR_INFO' + +class Audition(wx.Dialog): + """ Initializes Audition window controls, then spawns off a thread to be ready for playback commands """ + def __init__(self, jet_file, pSize): + wx.Dialog.__init__(self, None, -1, title=JetDefs.DLG_AUDITION) + + self.jet = None + self.playerLock = threading.RLock() + self.jet_file = jet_file + self.queueSegs = [] + self.keepPlaying = True + self.nextSegNum = 0 + self.currentSegmentIndex = None + self.currentSegmentName = "" + self.playCommand = "" + self.threadShutdown = True + + panel = wx.Panel(self, -1) + + self.segList = JetListCtrl(panel) + self.segList.AddCol(JetDefs.GRD_SEGMENTS, 180) + self.segList.AddCol(JetDefs.GRD_LENGTH, 20) + + self.segList.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnQueueSegment) + self.segList.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnSegListClick) + + self.queueList = JetListCtrl(panel) + self.queueList.AddCol(JetDefs.GRD_QUEUE, 180) + self.queueList.AddCol(JetDefs.GRD_STATUS, 20) + + self.trackList = JetTrackCtrl(panel) + self.trackList.AddCol(JetDefs.GRD_TRACK, JetDefs.MUTEGRD_TRACK) + self.trackList.AddCol(JetDefs.GRD_CHANNEL, JetDefs.MUTEGRD_CHANNEL) + self.trackList.AddCol(JetDefs.GRD_NAME, JetDefs.MUTEGRD_NAME) + self.trackList.BindCheckBox(self.OnTrackChecked) + + self.btnMuteAll = wx.Button(panel, -1, JetDefs.BUT_MUTEALL) + self.btnUnMuteAll = wx.Button(panel, -1, JetDefs.BUT_MUTENONE) + self.btnMuteOrg = wx.Button(panel, -1, JetDefs.BUT_ORGMUTES) + hMuteButs = wx.BoxSizer(wx.HORIZONTAL) + hMuteButs.Add(self.btnMuteAll, 1, wx.EXPAND) + hMuteButs.Add(self.btnUnMuteAll, 1, wx.EXPAND) + hMuteButs.Add(self.btnMuteOrg, 1, wx.EXPAND) + vMuteButs = wx.BoxSizer(wx.VERTICAL) + vMuteButs.Add(self.trackList, 1, wx.EXPAND) + vMuteButs.Add((-1, 5)) + vMuteButs.Add(hMuteButs, 0, wx.EXPAND) + + self.btnQueue = wx.Button(panel, -1, JetDefs.BUT_QUEUE) + self.btnCancelNQueue = wx.Button(panel, -1, JetDefs.BUT_CANCELANDQUEUE) + hSegButs = wx.BoxSizer(wx.HORIZONTAL) + hSegButs.Add(self.btnQueue, 1, wx.EXPAND) + hSegButs.Add(self.btnCancelNQueue, 1, wx.EXPAND) + vSegButs = wx.BoxSizer(wx.VERTICAL) + vSegButs.Add(self.segList, 1, wx.EXPAND) + vSegButs.Add((-1, 5)) + vSegButs.Add(hSegButs, 0, wx.EXPAND) + + self.btnQueueCancelCurrent = wx.Button(panel, -1, JetDefs.BUT_CANCELCURRENT) + self.btnPause = wx.Button(panel, -1, JetDefs.BUT_PAUSE) + self.btnStop = wx.Button(panel, -1, JetDefs.BUT_STOP) + hQueueButs = wx.BoxSizer(wx.HORIZONTAL) + hQueueButs.Add(self.btnQueueCancelCurrent, 1, wx.EXPAND) + hQueueButs.Add(self.btnPause, 1, wx.EXPAND) + hQueueButs.Add(self.btnStop, 1, wx.EXPAND) + vQueueButs = wx.BoxSizer(wx.VERTICAL) + vQueueButs.Add(self.queueList, 1, wx.EXPAND) + vQueueButs.Add((-1, 5)) + vQueueButs.Add(hQueueButs, 0, wx.EXPAND) + + self.Bind(wx.EVT_BUTTON, self.OnQueueSegmentViaBut, id=self.btnQueue.GetId()) + self.Bind(wx.EVT_BUTTON, self.OnCancelNQueue, id=self.btnCancelNQueue.GetId()) + self.Bind(wx.EVT_BUTTON, self.OnStop, id=self.btnStop.GetId()) + self.Bind(wx.EVT_BUTTON, self.OnQueueCancelCurrent, id=self.btnQueueCancelCurrent.GetId()) + self.Bind(wx.EVT_BUTTON, self.OnPause, id=self.btnPause.GetId()) + self.Bind(wx.EVT_BUTTON, self.OnMuteAll, id=self.btnMuteAll.GetId()) + self.Bind(wx.EVT_BUTTON, self.OnUnMuteAll, id=self.btnUnMuteAll.GetId()) + self.Bind(wx.EVT_BUTTON, self.OnMuteOrg, id=self.btnMuteOrg.GetId()) + + EVT_JET_STATUS(self, self.OnJetStatusUpdate) + + BORDER = 10 + hboxTop = wx.BoxSizer(wx.HORIZONTAL) + hboxTop.Add(vSegButs, 1, wx.EXPAND) + hboxTop.Add((5, -1)) + hboxTop.Add(vQueueButs, 1, wx.EXPAND) + hboxTop.Add((5, -1)) + hboxTop.Add(vMuteButs, 1, wx.EXPAND) + + self.log = wx.TextCtrl(panel, -1) + self.graph = SegmentGraph(panel, size=(-1, 50)) + self.graph.ClickCallbackFct = self.GraphTriggerClip + + vboxBot = wx.BoxSizer(wx.VERTICAL) + vboxBot.Add(self.log, 0, wx.EXPAND) + vboxBot.Add((-1, 5)) + vboxBot.Add(self.graph, 1, wx.EXPAND) + + hboxMain = wx.BoxSizer(wx.VERTICAL) + hboxMain.Add(hboxTop, 2, wx.EXPAND | wx.ALL, BORDER) + hboxMain.Add(vboxBot, 1, wx.EXPAND | wx.ALL, BORDER) + + panel.SetSizer(hboxMain) + + self.LoadSegList() + self.initHelp() + + self.SetSize(pSize) + self.CenterOnParent() + + wx.EVT_CLOSE(self, self.OnClose) + + thread.start_new_thread(self.PlaySegs, ()) + + def initHelp(self): + """ Initializes context sensitive help text """ + self.SetExtraStyle(wx.DIALOG_EX_CONTEXTHELP ) + self.SetHelpText(GetJetHelpText(JetDefs.AUDITION_CTRLS, '')) + self.segList.SetHelpText(GetJetHelpText(JetDefs.AUDITION_CTRLS, JetDefs.AUDITION_SEGLIST)) + self.queueList.SetHelpText(GetJetHelpText(JetDefs.AUDITION_CTRLS, JetDefs.AUDITION_QUEUELIST)) + self.trackList.SetHelpText(GetJetHelpText(JetDefs.AUDITION_CTRLS, JetDefs.AUDITION_TRACKLIST)) + self.graph.SetHelpText(GetJetHelpText(JetDefs.AUDITION_CTRLS, JetDefs.AUDITION_GRAPH)) + + def OnMuteAll(self, event): + """ Sets command to mute all tracks """ + self.SetPlayCommand(CMD_MUTEALL) + + def OnUnMuteAll(self, event): + """ Sets command to un-mute all tracks """ + self.SetPlayCommand(CMD_UNMUTEALL) + + def OnMuteOrg(self, event): + """ Sets command to set mute flags to their original values """ + self.SetPlayCommand(CMD_ORIGINALMUTES) + + def OnTrackChecked(self, index, checked): + """ Mutes or un-mutes a track interactively """ + with self.playerLock: + trackNum = self.trackList.GetTrackNumber(index) + self.SetMuteFlag(trackNum, checked) + + def SetMuteFlag(self, trackNum, mute): + """ Mutes or un-mutes a track """ + with self.playerLock: + try: + sync = JetDefs.DEFAULT_MUTE_SYNC + self.jet.SetMuteFlag(trackNum, mute, sync) + logging.info("SetMuteFlag() Track:%d Mute:%d Sync:%d" % (trackNum, mute, sync)) + return True + except: + return False + + def LoadSegList(self): + """ Loads the list of segments """ + with self.playerLock: + self.segList.DeleteAllItems() + for segment in self.jet_file.GetSegments(): + info = MidiSegInfo(segment) + index = self.segList.InsertStringItem(sys.maxint, StrNoneChk(segment.segname)) + self.segList.SetStringItem(index, 1, TimeStr(info.iLengthInMs)) + + def GraphTriggerClip(self, sClipName, iEventId): + """ Triggers a clip """ + with self.playerLock: + try: + self.jet.TriggerClip(iEventId) + self.log.SetValue(JetDefs.PLAY_TRIGGERCLIP_MSG % (iEventId, sClipName)) + return True + except: + return False + + def OnSegListClick(self, event): + """ Sets current segment name based on what's clicked """ + with self.playerLock: + self.currentSegmentIndex = event.m_itemIndex + self.currentSegmentName = getColumnText(self.segList, event.m_itemIndex, 0) + + def OnCancelNQueue(self, event): + """ Sets command to cancel the currently playing segment and queues another """ + if self.currentSegmentIndex == None: + return + self.SetPlayCommand(CMD_QUEUE_AND_CANCEL) + + def OnPause(self, event): + """ Sets a command to pause playback """ + if self.currentSegmentIndex == None: + return + self.SetPlayCommand(CMD_PAUSE) + + def OnStop(self, event): + """ Sets a command to stop playback """ + if self.currentSegmentIndex == None: + return + self.SetPlayCommand(CMD_STOP) + + def OnQueueCancelCurrent(self, event): + """ Sets a command to cancel the currently playing segment """ + if self.currentSegmentIndex == None: + return + self.SetPlayCommand(CMD_QUEUE_AND_CANCEL_CURRENT) + + def OnQueueSegmentViaBut(self, event): + """ Queues a segment via the button """ + if self.currentSegmentIndex == None: + return + with self.playerLock: + segNum = self.currentSegmentIndex + segment = self.jet_file.GetSegment(self.currentSegmentName) + self.QueueOneSegment(segment, segNum) + + def OnQueueSegment(self, event): + """ Queues a segment """ + with self.playerLock: + segNum = event.m_itemIndex + segment = self.jet_file.GetSegment(getColumnText(self.segList, segNum, 0)) + self.QueueOneSegment(segment, segNum) + + def QueueOneSegment(self, segment, segNum): + """ Queues one segment """ + with self.playerLock: + userID = len(self.queueSegs) + if FileExists(segment.dlsfile): + dls_num = FindDlsNum(self.jet_file.libraries, segment.dlsfile) + else: + dls_num = -1 + self.queueSegs.append(QueueSeg(segment.segname, userID, segNum, dls_num, segment.repeat, segment.transpose, segment.mute_flags, STATUS_PENDING)) + self.LoadQueueDisplay() + + def SetKeepPlayingFlag(self, val): + """ Sets a flag to continue play loop or shut down """ + with self.playerLock: + self.keepPlaying = val + + def GetKeepPlayingFlag(self): + """ Gets the play flag """ + with self.playerLock: + return self.keepPlaying + + def SetThreadShutdownFlag(self, val): + """ Set a flag to shutdown thread """ + with self.playerLock: + self.threadShutdown = val + + def GetThreadShutdownFlag(self): + """ Gets the thread shutdown flag """ + with self.playerLock: + return self.threadShutdown + + def SetPlayCommand(self, cmd): + """ Sets a play command """ + with self.playerLock: + self.playCommand = cmd + + def GetPlayCommand(self): + """ Gets a play command """ + with self.playerLock: + return self.playCommand + + def SetStatus(self, index, status): + """ Sets the status of a segment """ + with self.playerLock: + self.queueSegs[index].status = status + + def GetStatus(self, index): + """ Gets the status of a segment """ + with self.playerLock: + return self.queueSegs[index].status + + def LoadQueueDisplay(self): + """ Loads up the displayed queue list """ + with self.playerLock: + self.queueList.DeleteAllItems() + for item in self.queueSegs: + index = self.queueList.InsertStringItem(sys.maxint, item.name) + self.queueList.SetStringItem(index, 1, item.status) + + def NextSegment(self): + """ Gets the next segment in the queueu """ + with self.playerLock: + num = len(self.queueSegs) + for i in range(num): + if self.queueSegs[i].status == STATUS_PENDING: + return i + return -1 + + def PlaySegs(self): + """ Sets up a loop looking for jet file actions based on UI commands """ + self.jet = JET() + self.jet.eas.StartWave() + self.jet.OpenFile(self.jet_file.config.filename) + + self.SetKeepPlayingFlag(True) + while self.GetKeepPlayingFlag(): + self.SetThreadShutdownFlag(False) + + time.sleep(.5) + index = self.NextSegment() + if index != -1: + lastID = -1 + + Queue(self.jet, self.queueSegs[index]) + + self.SetStatus(index, STATUS_QUEUED) + + wx.PostEvent(self, JetStatusEvent(LOAD_QUEUE_DISPLAY, None)) + + self.jet.Play() + self.paused = False + wx.PostEvent(self, JetStatusEvent(CMD_PLAY, None)) + + while self.GetKeepPlayingFlag(): + self.jet.Render() + status = self.jet.Status() + + if status.currentUserID <> lastID and status.currentUserID <> -1: + wx.PostEvent(self, JetStatusEvent(NEW_SEGMENT_DISPLAY, status.currentUserID)) + if lastID != -1: + self.SetStatus(lastID, STATUS_COMPLETE) + self.SetStatus(status.currentUserID, STATUS_PLAYING) + lastID = status.currentUserID + wx.PostEvent(self, JetStatusEvent(LOAD_QUEUE_DISPLAY, None)) + + if status.numQueuedSegments == 0: + break + + self.jet.GetAppEvent() + + index = self.NextSegment() + if (index >= 0) and (status.numQueuedSegments < 2): + Queue(self.jet, self.queueSegs[index]) + self.SetStatus(index, STATUS_QUEUED) + wx.PostEvent(self, JetStatusEvent(LOAD_QUEUE_DISPLAY, None)) + + wx.PostEvent(self, JetStatusEvent(GRAPH_POSITION_UPDATE, status.location)) + + playCmd = self.GetPlayCommand() + if playCmd == CMD_QUEUE_AND_CANCEL or playCmd == CMD_STOP or playCmd == CMD_QUEUE_AND_CANCEL_CURRENT: + if playCmd == CMD_QUEUE_AND_CANCEL or playCmd == CMD_STOP: + num = len(self.queueSegs) + for i in range(num): + curStatus = self.GetStatus(i) + if curStatus == STATUS_PENDING or curStatus == STATUS_PLAYING or curStatus == STATUS_QUEUED: + self.SetStatus(i, STATUS_CANCELED) + + if playCmd == CMD_QUEUE_AND_CANCEL_CURRENT: + self.SetStatus(status.currentUserID, STATUS_CANCELED) + num = len(self.queueSegs) + for i in range(num): + curStatus = self.GetStatus(i) + if curStatus == STATUS_QUEUED: + self.SetStatus(i, STATUS_PENDING) + + if playCmd == CMD_QUEUE_AND_CANCEL: + segNum = self.currentSegmentIndex + segment = self.jet_file.GetSegment(self.currentSegmentName) + wx.PostEvent(self, JetStatusEvent(CMD_QUEUE_AND_CANCEL, (segment, segNum))) + + #MAC has a 'pop' when clearing the queue; not sure why so this avoids it + if OsWindows(): + self.jet.Clear_Queue() + else: + self.jet = self.SafeJetRestart(self.playerLock, self.jet, self.jet_file.config.filename) + + if playCmd == CMD_ORIGINALMUTES: + wx.PostEvent(self, JetStatusEvent(CMD_ORIGINALMUTES, segment.mute_flags)) + + if playCmd == CMD_UNMUTEALL: + wx.PostEvent(self, JetStatusEvent(CMD_UNMUTEALL, None)) + + if playCmd == CMD_PAUSE: + wx.PostEvent(self, JetStatusEvent(CMD_PAUSE, None)) + + if playCmd == CMD_MUTEALL: + wx.PostEvent(self, JetStatusEvent(CMD_MUTEALL, None)) + + self.SetPlayCommand('') + + if self.GetStatus(lastID) != STATUS_CANCELED: + self.SetStatus(lastID, STATUS_COMPLETE) + + wx.PostEvent(self, JetStatusEvent(LOAD_QUEUE_DISPLAY, None)) + wx.PostEvent(self, JetStatusEvent(CLR_INFO, None)) + + SafeJetShutdown(self.playerLock, self.jet) + self.SetThreadShutdownFlag(True) + + def OnJetStatusUpdate(self, evt): + """ All UI needed from within thread called via postevent otherwise mac crashes """ + if evt.mode == LOAD_QUEUE_DISPLAY: + self.LoadQueueDisplay() + elif evt.mode == GRAPH_POSITION_UPDATE: + self.graph.UpdateLocation(evt.data) + elif evt.mode == NEW_SEGMENT_DISPLAY: + self.currentSegmentName = getColumnText(self.queueList, evt.data, 0) + segment = self.jet_file.GetSegment(self.currentSegmentName) + info = self.graph.LoadSegment(segment) + self.trackList.DeleteAllItems() + if info <> None: + for track in info.trackList: + self.trackList.AddTrackRow(track) + self.trackList.CheckTracks(segment.mute_flags) + self.log.SetValue(self.currentSegmentName) + elif evt.mode == CMD_QUEUE_AND_CANCEL: + self.QueueOneSegment(evt.data[0], evt.data[1]) + elif evt.mode == CMD_ORIGINALMUTES: + self.trackList.CheckTracks(evt.data) + elif evt.mode == CMD_UNMUTEALL: + num = self.trackList.GetItemCount() + for i in range(num): + self.trackList.CheckItem(i, False) + elif evt.mode == CMD_MUTEALL: + num = self.trackList.GetItemCount() + for i in range(num): + self.trackList.CheckItem(i) + elif evt.mode == CLR_INFO: + self.log.SetValue("") + self.graph.ClearGraph() + self.graph.UpdateLocation(0) + elif evt.mode == CMD_PLAY: + self.btnPause.SetLabel(JetDefs.BUT_PAUSE) + elif evt.mode == CMD_PAUSE or evt.mode == CMD_PLAY: + if not self.paused: + self.jet.Pause() + self.paused = True + self.btnPause.SetLabel(JetDefs.BUT_RESUME) + else: + self.jet.Play() + self.paused = False + self.btnPause.SetLabel(JetDefs.BUT_PAUSE) + + def SafeJetRestart(self, lock, jet, filename): + """ Shuts down the jet engine """ + SafeJetShutdown(lock, jet) + with lock: + jet = JET() + jet.eas.StartWave() + jet.OpenFile(filename) + return jet + + def OnClose(self, event): + """ When exiting the audition window, shut down jet play thread """ + i = 0 + while(not self.GetThreadShutdownFlag() and i < 5): + #Make sure we shutdown the playing thread, but don't wait forever + self.SetKeepPlayingFlag(False) + logging.info("Waiting on shutdown %d" % (self.GetThreadShutdownFlag())) + time.sleep(.5) + i = i + 1 + + #make certain we clean up + if self.jet is not None: + SafeJetShutdown(self.playerLock, self.jet) + self.Destroy() + diff --git a/jet_tools/JetCreator/JetCreator.py b/jet_tools/JetCreator/JetCreator.py new file mode 100755 index 0000000..a6f9eb6 --- /dev/null +++ b/jet_tools/JetCreator/JetCreator.py @@ -0,0 +1,1431 @@ +""" + File: + JetCreator.py + + Contents and purpose: + Jet file creation utility for JET sound engine + + Copyright (c) 2008 Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +""" + +from __future__ import with_statement + +import wx +import sys +import thread +import copy +import wx.html +import operator + +from wx.lib.mixins.listctrl import CheckListCtrlMixin, ListCtrlAutoWidthMixin +from eas import * +from JetFile import * +from JetUtils import * +from JetCtrls import * +from JetDialogs import * +from JetSegGraph import SegmentGraph, Marker +from JetAudition import * +from JetStatusEvent import * + +import img_favicon +import img_New + +provider = wx.SimpleHelpProvider() +wx.HelpProvider_Set(provider) + + +class JetCreator(wx.Frame): + """ Main window of JetCreator utility """ + def __init__(self, parent, id, jetConfigFile, importFlag=False): + wx.Frame.__init__(self, parent, id, size=(1050, 720), style=wx.DEFAULT_FRAME_STYLE | wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX) + + self.myicon = img_favicon.getIcon() + self.SetIcon(self.myicon) + self.UndoStack = [] + self.RedoStack = [] + self.queueSegs = [] + self.clipBoard = None + self.jet = None + self.playerLock = threading.RLock() + self.SetKeepPlayingFlag(True) + self.currentSegmentName = None + self.currentSegmentIndex = None + self.currentEventName = None + self.currentEventIndex = None + self.currentCtrl = "" + self.currentJetConfigFile = jetConfigFile + self.paused = False + self.eventlistSort = (0, 1) + self.seglistSort = (0, 1) + if self.currentJetConfigFile == "": + FileKillClean(JetDefs.UNTITLED_FILE) + self.currentJetConfigFile = JetDefs.UNTITLED_FILE + + self.jet_file = JetFile(self.currentJetConfigFile, "") + + if not ValidateConfig(self.jet_file): + FileKillClean(JetDefs.UNTITLED_FILE) + self.currentJetConfigFile = JetDefs.UNTITLED_FILE + self.jet_file = JetFile(self.currentJetConfigFile, "") + + if self.currentJetConfigFile == JetDefs.UNTITLED_FILE: + self.LoadDefaultProperties() + + self.initLayout() + self.initStatusBar() + self.createMenuBar() + self.createToolbar() + self.SetCurrentFile(self.currentJetConfigFile) + self.initHelp() + + self.graph.ClickCallbackFct = self.GraphTriggerClip + + EVT_JET_STATUS(self, self.OnJetStatusUpdate) + + wx.EVT_CLOSE(self, self.OnClose) + + self.Centre() + self.Show(True) + + if importFlag: + self.OnJetImportArchive(None) + + self.eventList.OnSortOrderChangedAlert = self.OnEventSortOrderChanged + self.segList.OnSortOrderChangedAlert = self.OnSegSortOrderChanged + + def initLayout(self): + """ Initializes the screen layout """ + panel = wx.Panel(self, -1) + + hboxMain = wx.BoxSizer(wx.HORIZONTAL) + + leftPanel = wx.Panel(panel, -1) + leftTopPanel = wx.Panel(leftPanel, -1) + leftBotPanel = wx.Panel(leftPanel, -1) + rightPanel = wx.Panel(panel, -1) + + self.segList = JetCheckListCtrl(rightPanel) + for title, width, fld in JetDefs.SEGMENT_GRID: + self.segList.AddCol(title, width) + + self.eventList = JetListCtrl(rightPanel) + for title, width, fld in JetDefs.CLIPS_GRID: + self.eventList.AddCol(title, width) + + self.eventList.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnEventListClick) + self.segList.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnSegListClick) + self.segList.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnSegmentUpdate) + self.eventList.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnEventUpdate) + + self.segList.BindCheckBox(self.OnSegmentChecked) + + BUT_SIZE = (95, 25) + self.btnAddSeg = wx.Button(leftTopPanel, -1, JetDefs.BUT_ADD, size=BUT_SIZE) + self.btnRevSeg = wx.Button(leftTopPanel, -1, JetDefs.BUT_REVISE, size=BUT_SIZE) + self.btnDelSeg = wx.Button(leftTopPanel, -1, JetDefs.BUT_DELETE, size=BUT_SIZE) + self.btnMoveSeg = wx.Button(leftTopPanel, -1, JetDefs.BUT_MOVE, size=BUT_SIZE) + + self.btnQueueAll = wx.Button(leftTopPanel, -1, JetDefs.BUT_QUEUEALL, size=BUT_SIZE) + self.btnDequeueAll = wx.Button(leftTopPanel, -1, JetDefs.BUT_DEQUEUEALL, size=BUT_SIZE) + self.btnPlay = wx.Button(leftTopPanel, -1, JetDefs.BUT_PLAY, size=BUT_SIZE) + self.btnPause = wx.Button(leftTopPanel, -1, JetDefs.BUT_PAUSE, size=BUT_SIZE) + self.btnAudition = wx.Button(leftTopPanel, -1, JetDefs.BUT_AUDITION, size=BUT_SIZE) + + self.btnAddEvt = wx.Button(leftBotPanel, -1, JetDefs.BUT_ADD, size=BUT_SIZE) + self.btnRevEvt = wx.Button(leftBotPanel, -1, JetDefs.BUT_REVISE, size=BUT_SIZE) + self.btnDelEvt = wx.Button(leftBotPanel, -1, JetDefs.BUT_DELETE, size=BUT_SIZE) + self.btnMoveEvents = wx.Button(leftBotPanel, -1, JetDefs.BUT_MOVE, size=BUT_SIZE) + + self.Bind(wx.EVT_BUTTON, self.OnSegmentAdd, id=self.btnAddSeg.GetId()) + self.Bind(wx.EVT_BUTTON, self.OnSegmentUpdate, id=self.btnRevSeg.GetId()) + self.Bind(wx.EVT_BUTTON, self.OnSegmentDelete, id=self.btnDelSeg.GetId()) + self.Bind(wx.EVT_BUTTON, self.OnSegmentsMove, id=self.btnMoveSeg.GetId()) + + self.Bind(wx.EVT_BUTTON, self.OnSelectAll, id=self.btnQueueAll.GetId()) + self.Bind(wx.EVT_BUTTON, self.OnDeselectAll, id=self.btnDequeueAll.GetId()) + self.Bind(wx.EVT_BUTTON, self.OnPlay, id=self.btnPlay.GetId()) + self.Bind(wx.EVT_BUTTON, self.OnPause, id=self.btnPause.GetId()) + self.Bind(wx.EVT_BUTTON, self.OnAudition, id=self.btnAudition.GetId()) + + self.Bind(wx.EVT_BUTTON, self.OnEventAdd, id=self.btnAddEvt.GetId()) + self.Bind(wx.EVT_BUTTON, self.OnEventUpdate, id=self.btnRevEvt.GetId()) + self.Bind(wx.EVT_BUTTON, self.OnEventDelete, id=self.btnDelEvt.GetId()) + self.Bind(wx.EVT_BUTTON, self.OnEventsMove, id=self.btnMoveEvents.GetId()) + + BORDER = 5 + BUT_SPACE = 3 + vBoxLeftTop = wx.BoxSizer(wx.VERTICAL) + vBoxLeftBot = wx.BoxSizer(wx.VERTICAL) + + vBoxLeftTop.Add(self.btnAddSeg, 0, wx.TOP, BORDER) + vBoxLeftTop.Add(self.btnRevSeg, 0, wx.TOP, BUT_SPACE) + vBoxLeftTop.Add(self.btnDelSeg, 0, wx.TOP, BUT_SPACE) + vBoxLeftTop.Add(self.btnMoveSeg, 0, wx.TOP, BUT_SPACE) + vBoxLeftTop.Add((-1, 12)) + vBoxLeftTop.Add(self.btnQueueAll, 0, wx.TOP, BUT_SPACE) + vBoxLeftTop.Add(self.btnDequeueAll, 0, wx.TOP, BUT_SPACE) + vBoxLeftTop.Add(self.btnPlay, 0, wx.TOP, BUT_SPACE) + vBoxLeftTop.Add(self.btnPause, 0, wx.TOP, BUT_SPACE) + vBoxLeftTop.Add(self.btnAudition, 0, wx.TOP, BUT_SPACE) + + vBoxLeftBot.Add(self.btnAddEvt, 0) + vBoxLeftBot.Add(self.btnRevEvt, 0, wx.TOP, BUT_SPACE) + vBoxLeftBot.Add(self.btnDelEvt, 0, wx.TOP, BUT_SPACE) + vBoxLeftBot.Add(self.btnMoveEvents, 0, wx.TOP, BUT_SPACE) + + leftTopPanel.SetSizer(vBoxLeftTop) + leftBotPanel.SetSizer(vBoxLeftBot) + + vboxLeft = wx.BoxSizer(wx.VERTICAL) + vboxLeft.Add(leftTopPanel, 1, wx.EXPAND) + vboxLeft.Add(leftBotPanel, 1, wx.EXPAND) + vboxLeft.Add((-1, 25)) + + leftPanel.SetSizer(vboxLeft) + + self.log = wx.TextCtrl(rightPanel, -1) + self.graph = SegmentGraph(rightPanel, size=(-1, 50)) + + vboxRight = wx.BoxSizer(wx.VERTICAL) + vboxRight.Add(self.segList, 4, wx.EXPAND | wx.TOP, BORDER) + vboxRight.Add((-1, 10)) + vboxRight.Add(self.eventList, 3, wx.EXPAND | wx.TOP, BORDER) + vboxRight.Add((-1, 10)) + vboxRight.Add(self.log, 0, wx.EXPAND) + vboxRight.Add((-1, 5)) + vboxRight.Add(self.graph, 1, wx.EXPAND) + vboxRight.Add((-1, 10)) + + rightPanel.SetSizer(vboxRight) + + hboxMain.Add(leftPanel, 0, wx.EXPAND | wx.RIGHT | wx.LEFT, BORDER) + hboxMain.Add(rightPanel, 1, wx.EXPAND) + hboxMain.Add((BORDER, -1)) + + panel.SetSizer(hboxMain) + + pnlGraph = wx.Panel(leftBotPanel, -1) + graphSizer1 = wx.BoxSizer(wx.VERTICAL) + pnlGraph.SetSizer(graphSizer1) + + graphBox = wx.StaticBox(pnlGraph, wx.ID_ANY, label='Graph') + graphSizer2 = wx.StaticBoxSizer(graphBox, wx.VERTICAL) + + self.chkGraphLabels = wx.CheckBox(pnlGraph, -1, JetDefs.GRAPH_LBLS) + self.chkGraphClips = wx.CheckBox(pnlGraph, -1, JetDefs.GRAPH_TRIGGER) + self.chkGraphAppEvts = wx.CheckBox(pnlGraph, -1, JetDefs.GRAPH_APP) + + graphSizer2.Add(self.chkGraphLabels, 0, wx.TOP, BUT_SPACE) + graphSizer2.Add(self.chkGraphClips, 0, wx.TOP, BUT_SPACE) + graphSizer2.Add(self.chkGraphAppEvts, 0, wx.TOP | wx.BOTTOM, BUT_SPACE) + graphSizer1.Add((-1, 10)) + graphSizer1.Add(graphSizer2) + + vBoxLeftBot.Add(pnlGraph, 0, wx.TOP, BUT_SPACE) + + self.Bind(wx.EVT_CHECKBOX, self.OnSetGraphOptions, id=self.chkGraphLabels.GetId()) + self.Bind(wx.EVT_CHECKBOX, self.OnSetGraphOptions, id=self.chkGraphClips.GetId()) + self.Bind(wx.EVT_CHECKBOX, self.OnSetGraphOptions, id=self.chkGraphAppEvts.GetId()) + + + def initHelp(self): + """ Initializes the help text for screen elements """ + self.SetHelpText(GetJetHelpText(JetDefs.MAIN_DLG_CTRLS, '')) + self.segList.SetHelpText(GetJetHelpText(JetDefs.MAIN_DLG_CTRLS, JetDefs.MAIN_SEGLIST)) + self.eventList.SetHelpText(GetJetHelpText(JetDefs.MAIN_DLG_CTRLS, JetDefs.MAIN_EVENTLIST)) + self.graph.SetHelpText(GetJetHelpText(JetDefs.AUDITION_CTRLS, JetDefs.AUDITION_GRAPH)) + + def initStatusBar(self): + """ Initializes the status bar """ + self.statusbar = self.CreateStatusBar() + + def OnSelectAll(self, event): + """ Called from select all button """ + num = self.segList.GetItemCount() + for i in range(num-1, -1, -1): + self.segList.CheckItem(i) + + def OnDeselectAll(self, event): + """ Called from deselect all button """ + num = self.segList.GetItemCount() + for i in range(num-1, -1, -1): + self.segList.CheckItem(i, False) + + def LoadSegList(self): + """ Loads up the list of segments """ + self.seglistSort = (IniGetValue(self.currentJetConfigFile, JetDefs.INI_SEGSORT, JetDefs.INI_SEGSORT_0, 'int', 0), IniGetValue(self.currentJetConfigFile, JetDefs.INI_SEGSORT, JetDefs.INI_SEGSORT_1, 'int', 1)) + segments = self.jet_file.GetSegments() + if self.seglistSort[0] == 0: + self.SegSort(segments, "segname") + elif self.seglistSort[0] == 1: + self.SegSort(segments, "filename") + elif self.seglistSort[0] == 2: + self.SegSort(segments, "dlsfile") + elif self.seglistSort[0] == 3: + self.SegSort(segments, "start") + elif self.seglistSort[0] == 4: + self.SegSort(segments, "end") + elif self.seglistSort[0] == 5: + self.SegSort(segments, "quantize") + elif self.seglistSort[0] == 6: + self.SegSort(segments, "transpose") + elif self.seglistSort[0] == 7: + self.SegSort(segments, "repeat") + elif self.seglistSort[0] == 8: + self.SegSort(segments, "mute_flags") + listDataMap = [] + self.currentSegmentIndex = None + self.currentSegmentName = None + self.segList.DeleteAllItems() + self.eventList.DeleteAllItems() + self.menuItems[JetDefs.MNU_UPDATE_SEG].Enable(False) + self.menuItems[JetDefs.MNU_DELETE_SEG].Enable(False) + self.menuItems[JetDefs.MNU_MOVE_SEG].Enable(False) + + self.menuItems[JetDefs.MNU_ADD_EVENT].Enable(False) + self.menuItems[JetDefs.MNU_MOVE_EVENT].Enable(False) + self.menuItems[JetDefs.MNU_UPDATE_EVENT].Enable(False) + self.menuItems[JetDefs.MNU_DELETE_EVENT].Enable(False) + self.menuItems[JetDefs.MNU_MOVE_EVENT].Enable(False) + for segment in self.jet_file.GetSegments(): + index = self.segList.InsertStringItem(sys.maxint, StrNoneChk(segment.segname)) + self.segList.SetStringItem(index, 1, FileJustName(StrNoneChk(segment.filename))) + self.segList.SetStringItem(index, 2, FileJustName(StrNoneChk(segment.dlsfile))) + self.segList.SetStringItem(index, 3, mbtFct(segment.start, 1)) + self.segList.SetStringItem(index, 4, mbtFct(segment.end, 1)) + self.segList.SetStringItem(index, 5, StrNoneChk(segment.quantize)) + self.segList.SetStringItem(index, 6, StrNoneChk(segment.transpose)) + self.segList.SetStringItem(index, 7, StrNoneChk(segment.repeat)) + self.segList.SetStringItem(index, 8, StrNoneChk(segment.mute_flags)) + + self.segList.SetItemData(index, index) + listDataMap.append((getColumnText(self.segList, index, 0).upper(), getColumnText(self.segList, index, 1).upper(), getColumnText(self.segList, index, 2).upper(), MbtVal(getColumnText(self.segList, index, 3)), MbtVal(getColumnText(self.segList, index, 4)), int(getColumnText(self.segList, index, 5)), int(getColumnText(self.segList, index, 6)), int(getColumnText(self.segList, index, 7)), int(getColumnText(self.segList, index, 8)))) + + self.segList.itemDataMap = listDataMap + self.segList.InitSorting(9) + self.graph.ClearGraph() + + def LoadEventsForSeg(self, segName): + """ Loads up the events associated with a segment """ + self.currentEventIndex = None + self.eventList.DeleteAllItems() + self.menuItems[JetDefs.MNU_UPDATE_EVENT].Enable(False) + self.menuItems[JetDefs.MNU_DELETE_EVENT].Enable(False) + self.menuItems[JetDefs.MNU_MOVE_EVENT].Enable(False) + self.eventlistSort = (IniGetValue(self.currentJetConfigFile, JetDefs.INI_EVENTSORT, JetDefs.INI_EVENTSORT_0, 'int', 0), IniGetValue(self.currentJetConfigFile, JetDefs.INI_EVENTSORT, JetDefs.INI_EVENTSORT_1, 'int', 1)) + segment = self.jet_file.GetSegment(self.currentSegmentName) + if segment is not None: + if self.eventlistSort[0] == 0: + self.EventSort(segment.jetevents, "event_name") + elif self.eventlistSort[0] == 1: + self.EventSort(segment.jetevents, "event_type") + elif self.eventlistSort[0] == 2: + self.EventSort(segment.jetevents, "event_start") + elif self.eventlistSort[0] == 3: + self.EventSort(segment.jetevents, "event_end") + elif self.eventlistSort[0] == 4: + self.EventSort(segment.jetevents, "track_num") + elif self.eventlistSort[0] == 5: + self.EventSort(segment.jetevents, "channel_num") + elif self.eventlistSort[0] == 6: + self.EventSort(segment.jetevents, "event_id") + listDataMap = [] + for jet_event in self.jet_file.GetEvents(segName): + index = self.eventList.InsertStringItem(sys.maxint, StrNoneChk(jet_event.event_name)) + self.eventList.SetStringItem(index, 1, StrNoneChk(jet_event.event_type)) + self.eventList.SetStringItem(index, 2, mbtFct(jet_event.event_start, 1)) + self.eventList.SetStringItem(index, 3, mbtFct(jet_event.event_end, 1)) + self.eventList.SetStringItem(index, 4, StrNoneChk(jet_event.track_num)) + self.eventList.SetStringItem(index, 5, StrNoneChk(jet_event.channel_num + 1)) + self.eventList.SetStringItem(index, 6, StrNoneChk(jet_event.event_id)) + + self.eventList.SetItemData(index, index) + listDataMap.append((getColumnText(self.eventList, index, 0).upper(), getColumnText(self.eventList, index, 1).upper(), MbtVal(getColumnText(self.eventList, index, 2)), MbtVal(getColumnText(self.eventList, index, 3)), int(getColumnText(self.eventList, index, 4)), int(getColumnText(self.eventList, index, 5)), int(getColumnText(self.eventList, index, 6)))) + + self.eventList.itemDataMap = listDataMap + self.eventList.InitSorting(7) + + def OnEventListClick(self, event): + """ Sets the current event variable when selecting from the list """ + self.currentCtrl = "eventList" + self.currentEventIndex = event.m_itemIndex + self.currentEventName = getColumnText(self.eventList, event.m_itemIndex, 0) + self.menuItems[JetDefs.MNU_UPDATE_EVENT].Enable(True) + self.menuItems[JetDefs.MNU_DELETE_EVENT].Enable(True) + self.menuItems[JetDefs.MNU_MOVE_EVENT].Enable(True) + + def OnSegmentChecked(self, index, checked): + """ Selects the segment when checkbox clicked """ + ClearRowSelections(self.segList) + SetRowSelection(self.segList, index, True) + + def SelectSegment(self, segName): + """ Selects a segment by segment name """ + itm = self.segList.FindItem(-1, segName) + self.segList.EnsureVisible(itm) + ClearRowSelections(self.segList) + SetRowSelection(self.segList, itm, True) + + def SelectEvent(self, eventName): + """ Selects an event by event name """ + itm = self.eventList.FindItem(-1, eventName) + self.eventList.EnsureVisible(itm) + ClearRowSelections(self.eventList) + SetRowSelection(self.eventList, itm, True) + + def OnSegListClick(self, event): + """ Loads up a segment when the list is clicked """ + self.currentCtrl = "segList" + self.currentSegmentIndex = event.m_itemIndex + self.currentSegmentName = getColumnText(self.segList, event.m_itemIndex, 0) + self.LoadEventsForSeg(getColumnText(self.segList, event.m_itemIndex, 0)) + self.menuItems[JetDefs.MNU_UPDATE_SEG].Enable(True) + self.menuItems[JetDefs.MNU_DELETE_SEG].Enable(True) + self.menuItems[JetDefs.MNU_MOVE_SEG].Enable(True) + self.menuItems[JetDefs.MNU_ADD_EVENT].Enable(True) + info = self.graph.LoadSegment(self.jet_file.GetSegment(self.currentSegmentName), showLabels=IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHLABELS, JetDefs.F_GRAPHLABELS, 'bool', 'True'), showClips=IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHCLIPS, JetDefs.F_GRAPHCLIPS, 'bool', 'True'), showAppEvts=IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHAPPEVTS, JetDefs.F_GRAPHAPPEVTS, 'bool', 'True')) + if info == None: + self.log.SetValue("") + else: + iLength = info.iLengthInMs + if iLength > 0: + self.log.SetValue("%s %.2f Seconds" % (self.currentSegmentName, iLength / 1000.00)) + else: + self.log.SetValue("%s" % (self.currentSegmentName)) + + def OnSegmentAdd(self, event): + """ Calls the dialog box for adding a segment """ + saveState = JetState(self.jet_file, self.currentSegmentIndex, self.currentEventIndex) + + dlg = SegEdit(JetDefs.MAIN_ADDSEGTITLE, self.currentJetConfigFile) + + for filename in self.jet_file.GetMidiFiles(): + dlg.je.ctrls[JetDefs.F_MIDIFILE].Append(filename) + for library in self.jet_file.GetLibraries(): + dlg.je.ctrls[JetDefs.F_DLSFILE].Append(library) + + result = dlg.ShowModal() + if result == wx.ID_OK: + if len(dlg.lstReplicate) > 0: + if dlg.chkReplaceMatching: + self.jet_file.DeleteSegmentsMatchingPrefix(dlg.replicatePrefix) + + for replicate in dlg.lstReplicate: + self.jet_file.AddSegment(replicate[0], dlg.GetValue(JetDefs.F_MIDIFILE), + mbtFct(replicate[1],-1), mbtFct(replicate[2],-1), + JetDefs.MBT_ZEROSTR, + SegmentOutputFile(dlg.GetValue(JetDefs.F_SEGNAME), self.currentJetConfigFile), + dlg.GetValue(JetDefs.F_QUANTIZE), + [], dlg.GetValue(JetDefs.F_DLSFILE), + None, + dlg.GetValue(JetDefs.F_TRANSPOSE), + dlg.GetValue(JetDefs.F_REPEAT), + dlg.GetValue(JetDefs.F_MUTEFLAGS)) + + self.LoadSegList() + self.SelectSegment(dlg.lstReplicate[0][0]) + else: + self.jet_file.AddSegment(dlg.GetValue(JetDefs.F_SEGNAME), dlg.GetValue(JetDefs.F_MIDIFILE), + dlg.GetValue(JetDefs.F_START), dlg.GetValue(JetDefs.F_END), + JetDefs.MBT_ZEROSTR, + SegmentOutputFile(dlg.GetValue(JetDefs.F_SEGNAME), self.currentJetConfigFile), + dlg.GetValue(JetDefs.F_QUANTIZE), + [], dlg.GetValue(JetDefs.F_DLSFILE), + None, + dlg.GetValue(JetDefs.F_TRANSPOSE), + dlg.GetValue(JetDefs.F_REPEAT), + dlg.GetValue(JetDefs.F_MUTEFLAGS)) + self.LoadSegList() + self.SelectSegment(dlg.GetValue(JetDefs.F_SEGNAME)) + self.UndoAdd(saveState) + dlg.Destroy() + + def OnSegmentUpdate(self, event): + """ Calls the dialog box for updating a segment """ + if self.currentSegmentName is None: + return + + segment = self.jet_file.GetSegment(self.currentSegmentName) + if segment == None: + return + + saveState = JetState(self.jet_file, self.currentSegmentIndex, self.currentEventIndex) + + dlg = SegEdit(JetDefs.MAIN_REVSEGTITLE, self.currentJetConfigFile) + + for filename in self.jet_file.GetMidiFiles(): + dlg.je.ctrls[JetDefs.F_MIDIFILE].Append(filename) + for library in self.jet_file.GetLibraries(): + dlg.je.ctrls[JetDefs.F_DLSFILE].Append(library) + + dlg.SetValue(JetDefs.F_SEGNAME, segment.segname) + dlg.SetValue(JetDefs.F_MUTEFLAGS, segment.mute_flags) + dlg.SetValue(JetDefs.F_MIDIFILE, segment.filename) + dlg.SetValue(JetDefs.F_DLSFILE, segment.dlsfile) + dlg.SetValue(JetDefs.F_START, segment.start) + dlg.SetValue(JetDefs.F_END, segment.end) + dlg.SetValue(JetDefs.F_QUANTIZE, segment.quantize) + dlg.SetValue(JetDefs.F_TRANSPOSE, segment.transpose) + dlg.SetValue(JetDefs.F_REPEAT, segment.repeat) + dlg.jetevents = segment.jetevents + + result = dlg.ShowModal() + if result == wx.ID_OK: + self.jet_file.UpdateSegment(self.currentSegmentName, dlg.GetValue(JetDefs.F_SEGNAME), + dlg.GetValue(JetDefs.F_MIDIFILE), + dlg.GetValue(JetDefs.F_START), dlg.GetValue(JetDefs.F_END), + JetDefs.MBT_ZEROSTR, #dlg.GetValue(JetDefs.F_LENGTH), + SegmentOutputFile(dlg.GetValue(JetDefs.F_SEGNAME), self.currentJetConfigFile), + dlg.GetValue(JetDefs.F_QUANTIZE), + [], dlg.GetValue(JetDefs.F_DLSFILE), + None, + dlg.GetValue(JetDefs.F_TRANSPOSE), + dlg.GetValue(JetDefs.F_REPEAT), + dlg.GetValue(JetDefs.F_MUTEFLAGS)) + + if len(dlg.lstReplicate) > 0: + if dlg.chkReplaceMatching: + self.jet_file.DeleteSegmentsMatchingPrefix(dlg.replicatePrefix) + + for replicate in dlg.lstReplicate: + self.jet_file.AddSegment(replicate[0], dlg.GetValue(JetDefs.F_MIDIFILE), + mbtFct(replicate[1],-1), mbtFct(replicate[2],-1), + JetDefs.MBT_ZEROSTR, + SegmentOutputFile(dlg.GetValue(JetDefs.F_SEGNAME), self.currentJetConfigFile), + dlg.GetValue(JetDefs.F_QUANTIZE), + [], dlg.GetValue(JetDefs.F_DLSFILE), + None, + dlg.GetValue(JetDefs.F_TRANSPOSE), + dlg.GetValue(JetDefs.F_REPEAT), + dlg.GetValue(JetDefs.F_MUTEFLAGS)) + + self.LoadSegList() + self.SelectSegment(dlg.lstReplicate[0][0]) + else: + self.LoadSegList() + self.SelectSegment(dlg.GetValue(JetDefs.F_SEGNAME)) + self.UndoAdd(saveState) + dlg.Destroy() + + def OnSegmentDelete(self, event): + """ Confirms the deletion segment(s) by user action """ + if self.currentSegmentName is None: + return + + segment = self.jet_file.GetSegment(self.currentSegmentName) + if segment == None: + return + + count = 0 + deleteMsg = '' + item = self.segList.GetFirstSelected() + while item != -1: + if count == 0: + deleteMsg = getColumnText(self.segList,item,0) + else: + if count == 40: + deleteMsg = deleteMsg + "\n" + "....more" + elif count < 40: + deleteMsg = deleteMsg + "\n" + getColumnText(self.segList,item,0) + count = count + 1 + item = self.segList.GetNextSelected(item) + + if YesNo(JetDefs.MAIN_CONFIRM, deleteMsg + JetDefs.MAIN_CONFIRM_SEG_DLT, False): + item = self.segList.GetFirstSelected() + while item != -1: + segName = getColumnText(self.segList,item,0) + self.SegmentDelete(segName) + item = self.segList.GetNextSelected(item) + + self.graph.ClearGraph() + self.LoadSegList() + + def SegmentDelete(self, segName): + """ Deletes a segment """ + saveState = JetState(self.jet_file, self.currentSegmentIndex, self.currentEventIndex) + self.jet_file.DeleteSegment(segName) + self.UndoAdd(saveState) + + def OnSegmentsMove(self, event): + """ Move segment(s) """ + if self.currentSegmentName is None: + return + + lstMoveItems = [] + count = 0 + item = self.segList.GetFirstSelected() + while item != -1: + max = GetMidiInfo(self.jet_file.GetSegment(getColumnText(self.segList,item,0)).filename).endMbtStr + lstMoveItems.append((getColumnText(self.segList,item,0), mbtFct(getColumnText(self.segList,item,3),-1), mbtFct(getColumnText(self.segList,item,4),-1), max)) + count = count + 1 + item = self.segList.GetNextSelected(item) + + if count == 0: + InfoMsg("Move", "Select one or more items to move.") + return + + dlg = JetMove("Move Segments") + dlg.lstMoveItems = lstMoveItems + result = dlg.ShowModal() + if result == wx.ID_OK: + if len(dlg.lstMoveMbt) > 0: + saveState = JetState(self.jet_file, self.currentSegmentIndex, self.currentEventIndex) + + for moveitem in dlg.lstMoveMbt: + self.jet_file.MoveSegment(moveitem[0], moveitem[1], moveitem[2]) + + self.LoadSegList() + self.UndoAdd(saveState) + + dlg.Destroy() + + def UndoAdd(self, saveState): + """ Adds the current state to the undo stack """ + self.UndoStack.append(saveState) + self.menuItems[JetDefs.MNU_UNDO].Enable(True) + + def RedoAdd(self, saveState): + """ Adds the current state the the redo stack """ + self.RedoStack.append(saveState) + self.menuItems[JetDefs.MNU_REDO].Enable(True) + + def OnRedo(self, event): + """ Redo if there's one in the stack """ + if len(self.RedoStack) > 0: + self.UndoAdd(JetState(self.jet_file, self.currentSegmentIndex, self.currentEventIndex)) + state = self.RedoStack.pop() + self.jet_file = copy.deepcopy(state.jet_file) + self.LoadSegList() + self.currentSegmentIndex = state.currentSegmentIndex + if self.currentSegmentIndex != None: + SetRowSelection(self.segList, self.currentSegmentIndex, True) + if len(self.RedoStack) == 0: + self.menuItems[JetDefs.MNU_REDO].Enable(False) + + def OnUndo(self, event): + """ Undo if there's one in the stack """ + if len(self.UndoStack) > 0: + self.RedoAdd(JetState(self.jet_file, self.currentSegmentIndex, self.currentEventIndex)) + state = self.UndoStack.pop() + self.jet_file = copy.deepcopy(state.jet_file) + self.LoadSegList() + self.currentSegmentIndex = state.currentSegmentIndex + if self.currentSegmentIndex != None: + SetRowSelection(self.segList, self.currentSegmentIndex, True) + if len(self.UndoStack) == 0: + self.menuItems[JetDefs.MNU_UNDO].Enable(False) + + def OnEventAdd(self, event): + """ Calls a dialog box to add an event to the current segment """ + if self.currentSegmentName is None: + return + + segment = self.jet_file.GetSegment(self.currentSegmentName) + if segment == None: + return + + saveState = JetState(self.jet_file, self.currentSegmentIndex, self.currentEventIndex) + + dlg = EventEdit(JetDefs.MAIN_ADDEVENTTITLE, self.currentJetConfigFile) + editSegment = copy.deepcopy(segment) + dlg.SetSegment(editSegment) + dlg.SetEventId() + + result = dlg.ShowModal() + if result == wx.ID_OK: + if dlg.GetValue(JetDefs.F_ETYPE) == JetDefs.E_EOS: + #check for an existing EOS event + events = self.jet_file.GetEvents(self.currentSegmentName) + for evt in events: + if evt.event_type == JetDefs.E_EOS: + self.jet_file.DeleteEvent(self.currentSegmentName, evt.event_name) + dlg.SetValue(JetDefs.F_ESTART, dlg.GetValue(JetDefs.F_EEND)) + + if len(dlg.lstReplicate) > 0: + if dlg.chkReplaceMatching: + self.jet_file.DeleteEventsMatchingPrefix(self.currentSegmentName, dlg.replicatePrefix) + + for replicate in dlg.lstReplicate: + self.jet_file.AddEvent(self.currentSegmentName, replicate[0], + dlg.GetValue(JetDefs.F_ETYPE), + dlg.GetValue(JetDefs.F_EEVENTID), + dlg.GetValue(JetDefs.F_ETRACK), + dlg.GetValue(JetDefs.F_ECHANNEL), + mbtFct(replicate[1],-1), + mbtFct(replicate[2],-1)) + self.SelectSegment(self.currentSegmentName) + self.SelectEvent(dlg.lstReplicate[0][0]) + else: + self.jet_file.AddEvent(self.currentSegmentName, dlg.GetValue(JetDefs.F_ENAME), + dlg.GetValue(JetDefs.F_ETYPE), + dlg.GetValue(JetDefs.F_EEVENTID), + dlg.GetValue(JetDefs.F_ETRACK), + dlg.GetValue(JetDefs.F_ECHANNEL), + dlg.GetValue(JetDefs.F_ESTART), + dlg.GetValue(JetDefs.F_EEND)) + + self.SelectSegment(self.currentSegmentName) + self.SelectEvent(dlg.GetValue(JetDefs.F_ENAME)) + + self.UndoAdd(saveState) + dlg.Destroy() + + def OnEventUpdate(self, event): + """ Calls the dialog box to update the current event """ + if self.currentSegmentName is None: + return + + if self.currentEventName is None: + return + + segment = self.jet_file.GetSegment(self.currentSegmentName) + if segment == None: + return + + curEvent = copy.deepcopy(self.jet_file.GetEvent(self.currentSegmentName, self.currentEventName)) + if curEvent == None: + return + + saveState = JetState(self.jet_file, self.currentSegmentIndex, self.currentEventIndex) + + #only want the event we are editing to show up in graph + editSegment = copy.deepcopy(segment) + editSegment.jetevents = [] + editSegment.jetevents.append(curEvent) + + dlg = EventEdit(JetDefs.MAIN_REVEVENTTITLE, self.currentJetConfigFile) + dlg.SetSegment(editSegment) + dlg.SetValue(JetDefs.F_ENAME, curEvent.event_name) + dlg.SetValue(JetDefs.F_ETYPE, curEvent.event_type) + dlg.SetValue(JetDefs.F_ESTART, curEvent.event_start) + dlg.SetValue(JetDefs.F_EEND, curEvent.event_end) + dlg.SetValue(JetDefs.F_ETRACK, curEvent.track_num) + dlg.SetValue(JetDefs.F_ECHANNEL, curEvent.channel_num) + dlg.SetValue(JetDefs.F_EEVENTID, curEvent.event_id) + dlg.OnEventSelect() + + result = dlg.ShowModal() + if result == wx.ID_OK: + if dlg.GetValue(JetDefs.F_ETYPE) == JetDefs.E_EOS: + dlg.SetValue(JetDefs.F_ESTART, dlg.GetValue(JetDefs.F_EEND)) + + self.jet_file.UpdateEvent(self.currentSegmentName, + self.currentEventName, + dlg.GetValue(JetDefs.F_ENAME), + dlg.GetValue(JetDefs.F_ETYPE), + dlg.GetValue(JetDefs.F_EEVENTID), + dlg.GetValue(JetDefs.F_ETRACK), + dlg.GetValue(JetDefs.F_ECHANNEL), + dlg.GetValue(JetDefs.F_ESTART), + dlg.GetValue(JetDefs.F_EEND)) + + if len(dlg.lstReplicate) > 0: + if dlg.chkReplaceMatching: + self.jet_file.DeleteEventsMatchingPrefix(self.currentSegmentName, dlg.replicatePrefix) + + for replicate in dlg.lstReplicate: + self.jet_file.AddEvent(self.currentSegmentName, replicate[0], + dlg.GetValue(JetDefs.F_ETYPE), + dlg.GetValue(JetDefs.F_EEVENTID), + dlg.GetValue(JetDefs.F_ETRACK), + dlg.GetValue(JetDefs.F_ECHANNEL), + mbtFct(replicate[1],-1), + mbtFct(replicate[2],-1)) + self.SelectSegment(self.currentSegmentName) + self.SelectEvent(dlg.lstReplicate[0][0]) + else: + self.SelectSegment(self.currentSegmentName) + self.SelectEvent(dlg.GetValue(JetDefs.F_ENAME)) + self.UndoAdd(saveState) + dlg.Destroy() + + def OnEventDelete(self, event): + """ Confirms the deletion of event(s) """ + if self.currentSegmentName is None: + return + + if self.currentEventName is None: + return + + curEvent = self.jet_file.GetEvent(self.currentSegmentName, self.currentEventName) + if curEvent == None: + return + + count = 0 + deleteMsg = '' + item = self.eventList.GetFirstSelected() + while item != -1: + if count == 0: + deleteMsg = getColumnText(self.eventList,item,0) + else: + if count == 40: + deleteMsg = deleteMsg + "\n" + "....more" + elif count < 40: + deleteMsg = deleteMsg + "\n" + getColumnText(self.eventList,item,0) + count = count + 1 + item = self.eventList.GetNextSelected(item) + + + if YesNo(JetDefs.MAIN_CONFIRM, deleteMsg + JetDefs.MAIN_CONRIRM_EVT_DLT, False): + item = self.eventList.GetFirstSelected() + while item != -1: + eventName = getColumnText(self.eventList,item,0) + self.EventDelete(eventName) + item = self.eventList.GetNextSelected(item) + + self.SelectSegment(self.currentSegmentName) + self.LoadEventsForSeg(self.currentSegmentName) + + def EventDelete(self, eventName): + """ Deletes an event """ + saveState = JetState(self.jet_file, self.currentSegmentIndex, self.currentEventIndex) + self.jet_file.DeleteEvent(self.currentSegmentName, eventName) + self.UndoAdd(saveState) + + def OnEventsMove(self, event): + """ Move event(s) """ + if self.currentSegmentName is None: + return + + if self.currentEventName is None: + return + + segment = self.jet_file.GetSegment(self.currentSegmentName) + if segment == None: + return + + curEvent = self.jet_file.GetEvent(self.currentSegmentName, self.currentEventName) + if curEvent == None: + return + + lstMoveItems = [] + count = 0 + item = self.eventList.GetFirstSelected() + while item != -1: + lstMoveItems.append((getColumnText(self.eventList,item,0), mbtFct(getColumnText(self.eventList,item,2),-1), mbtFct(getColumnText(self.eventList,item,3),-1), segment.end)) + count = count + 1 + item = self.eventList.GetNextSelected(item) + + if count == 0: + InfoMsg("Move", "Select one or more items to move.") + return + + dlg = JetMove("Move Events") + dlg.lstMoveItems = lstMoveItems + result = dlg.ShowModal() + if result == wx.ID_OK: + if len(dlg.lstMoveMbt) > 0: + saveState = JetState(self.jet_file, self.currentSegmentIndex, self.currentEventIndex) + + for moveitem in dlg.lstMoveMbt: + self.jet_file.MoveEvent(self.currentSegmentName, moveitem[0], moveitem[1], moveitem[2]) + + self.SelectSegment(self.currentSegmentName) + self.LoadEventsForSeg(self.currentSegmentName) + + self.UndoAdd(saveState) + + dlg.Destroy() + + def OnJetOpen(self, event): + """ Calls a dialog box to get a jet config file to open """ + dlg = JetOpen() + result = dlg.ShowModal() + if result == JetDefs.ID_JET_OPEN: + self.jet_file = JetFile(dlg.fileName , "") + if not ValidateConfig(self.jet_file): + FileKillClean(JetDefs.UNTITLED_FILE) + self.currentJetConfigFile = JetDefs.UNTITLED_FILE + self.jet_file = JetFile(self.currentJetConfigFile, "") + else: + self.SetCurrentFile(dlg.fileName) + elif result == JetDefs.ID_JET_NEW: + self.jet_file = JetFile("" , "") + self.SetCurrentFile(JetDefs.UNTITLED_FILE) + self.LoadDefaultProperties() + elif result == JetDefs.ID_JET_IMPORT: + self.OnJetImportArchive(event) + dlg.Destroy() + + def OnJetSaveAs(self, event): + """ Calls a dialog box to allow saving the current jet file as another name """ + defDir = IniGetValue(JetDefs.JETCREATOR_INI, JetDefs.INI_DEFAULTDIRS, JetDefs.JTC_FILE_SPEC, 'str', str(os.getcwd())) + dialog = wx.FileDialog(None, JetDefs.SAVE_PROMPT, defDir, "", JetDefs.JTC_FILE_SPEC, wx.SAVE | wx.OVERWRITE_PROMPT ) + if dialog.ShowModal() == wx.ID_OK: + IniSetValue(JetDefs.JETCREATOR_INI, JetDefs.INI_DEFAULTDIRS, JetDefs.JTC_FILE_SPEC, str(FileJustPath(dialog.GetPath()))) + self.currentJetConfigFile = FileJustRoot(dialog.GetPath()) + ".jtc" + self.jet_file.config.filename = FileJustRoot(self.currentJetConfigFile) + ".jet" + self.jet_file.SaveJetConfig(self.currentJetConfigFile) + self.jet_file.WriteJetFileFromConfig(self.currentJetConfigFile) + self.SetCurrentFile(self.currentJetConfigFile) + dialog.Destroy() + + def OnJetSave(self, event): + """ Saves the current jet file to disk """ + if self.currentJetConfigFile == JetDefs.UNTITLED_FILE: + self.OnJetSaveAs(event) + else: + self.jet_file.SaveJetConfig(self.currentJetConfigFile) + self.jet_file.WriteJetFileFromConfig(self.currentJetConfigFile) + + def OnJetNew(self, event): + """ Initializes the state to a new jet file """ + self.jet_file = JetFile("" , "") + self.SetCurrentFile(JetDefs.UNTITLED_FILE) + self.LoadDefaultProperties() + + def SetCurrentFile(self, fileName): + """ Sets the state for the current jet file """ + self.clipBoard = None + self.currentJetConfigFile = fileName + self.SetTitle(JetDefs.MAIN_TITLEPREFIX + FileJustName(fileName)) + AppendRecentJetFile(fileName) + self.LoadSegList() + self.graph.ClearGraph() + self.chkGraphLabels.SetValue(IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHLABELS, JetDefs.F_GRAPHLABELS, 'bool', 'True')) + self.chkGraphClips.SetValue(IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHCLIPS, JetDefs.F_GRAPHCLIPS, 'bool', 'True')) + self.chkGraphAppEvts.SetValue(IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHAPPEVTS, JetDefs.F_GRAPHAPPEVTS, 'bool', 'True')) + + def createMenuBar(self): + """ Creates a menu bar """ + self.menuItems = {} + menuBar = wx.MenuBar() + for eachMenuData in JetDefs.MENU_SPEC: + menuLabel = eachMenuData[0] + menuItems = eachMenuData[1:] + menuBar.Append(self.createMenu(menuItems), menuLabel) + self.SetMenuBar(menuBar) + + def createMenu(self, menuData): + """ Creates a menu from the structure menuData in JetDefs """ + menu = wx.Menu() + for eachLabel, eachStatus, eachHandler, eachEnable in menuData: + if not eachLabel: + menu.AppendSeparator() + continue + self.menuItems[eachLabel] = menu.Append(-1, eachLabel, eachStatus) + self.menuItems[eachLabel].Enable(eachEnable) + try: + self.Bind(wx.EVT_MENU, getattr(self, eachHandler) , self.menuItems[eachLabel]) + except: + print("def " + eachHandler + "(self, event): pass") + return menu + + def createToolbar(self): + """ Creates the toolbar """ + toolbar = self.CreateToolBar() + toolbar.SetToolBitmapSize((32,32)) + self.toolItems = {} + for eachTool in JetDefs.TOOLBAR_SPEC: + if eachTool[0] == '-': + toolbar.AddSeparator() + else: + b = __import__(eachTool[1]) + bitMap = b.getBitmap() + self.toolItems[eachTool[0]] = toolbar.AddLabelTool(-1, label=eachTool[0], + bitmap=bitMap, + shortHelp=eachTool[0], longHelp=eachTool[2]) + self.Bind(wx.EVT_TOOL, getattr(self, eachTool[3]) , self.toolItems[eachTool[0]]) + toolbar.Realize() + + def OnAudition(self, event): + """ Calls the audition window for simple preview of jet file """ + jet_file = CreateTempJetFile(self.jet_file) + + w, h = self.GetSize() + w = w - 50 + if w < 900: + w = 900 + h = h - 50 + if h < 650: + h = 650 + dlg = Audition(jet_file, (w,h)) + dlg.ShowModal() + CleanupTempJetFile(jet_file) + + def SetKeepPlayingFlag(self, val): + """ Sets a flag to communicate playing state to the play thread """ + with self.playerLock: + self.keepPlaying = val + + def GetKeepPlayingFlag(self): + """ Gets the playing state flag """ + with self.playerLock: + return self.keepPlaying + + def GraphTriggerClip(self, sClipName, iEventId): + """ Triggers a clip when they click on the graph """ + with self.playerLock: + try: + self.jet.TriggerClip(iEventId) + self.log.SetValue(JetDefs.PLAY_TRIGGERCLIP_MSG % (iEventId, sClipName)) + return True + except: + return False + + def OnHelpJet(self, event): + """ Loads the jet help file """ + import webbrowser + webbrowser.open(JetDefs.MAIN_HELPFILE) + return + + def OnHelpJetGuidelines(self, event): + """ Loads the authoring guidelines file """ + import webbrowser + webbrowser.open(JetDefs.MAIN_HELPGUIDELINESFILE) + return + + def OnAbout(self, event): + """ Loads the about dialog box """ + dlg = JetAbout() + result = dlg.ShowModal() + dlg.Destroy() + + def OnJetImportArchive(self, event): + """ Imports a jet archive file """ + defDir = IniGetValue(JetDefs.JETCREATOR_INI, JetDefs.INI_DEFAULTDIRS, JetDefs.ARCHIVE_FILE_SPEC, 'str', str(os.getcwd())) + dialog = wx.FileDialog(None, JetDefs.IMPORT_ARCHIVE_PROMPT, defDir, "", JetDefs.ARCHIVE_FILE_SPEC, wx.OPEN) + if dialog.ShowModal() == wx.ID_OK: + IniSetValue(JetDefs.JETCREATOR_INI, JetDefs.INI_DEFAULTDIRS, JetDefs.ARCHIVE_FILE_SPEC, str(FileJustPath(dialog.GetPath()))) + defDir = IniGetValue(JetDefs.JETCREATOR_INI, JetDefs.INI_DEFAULTDIRS, JetDefs.ARCHIVE_FILE_SPEC + "Dir", 'str', str(os.getcwd())) + dlg1 = wx.DirDialog(self, JetDefs.IMPORT_ARCHIVEDIR_PROMPT, style=wx.DD_DEFAULT_STYLE, defaultPath=defDir) + if dlg1.ShowModal() == wx.ID_OK: + IniSetValue(JetDefs.JETCREATOR_INI, JetDefs.INI_DEFAULTDIRS, JetDefs.ARCHIVE_FILE_SPEC + "Dir", str(FileJustPath(dlg1.GetPath()))) + if YesNo(JetDefs.MAIN_IMPORTTITLE, JetDefs.MAIN_IMPORTMSG % (dialog.GetPath(),dlg1.GetPath()), False): + projectPath = dlg1.GetPath() + zipFile = dialog.GetPath() + z = __import__('zipfile') + + if not z.is_zipfile(zipFile): + wx.MessageBox(JetDefs.IMPORT_ARCHIVE_NO_JTC) + else: + zip = z.ZipFile(zipFile, 'r') + + jtcFile = "" + fileList = zip.namelist() + + isArchive = False + for myFile in fileList: + if myFile == 'JetArchive': + isArchive = True + break + if not isArchive: + wx.MessageBox(JetDefs.IMPORT_NOT_JET_ARCHIVE) + else: + for myFile in fileList: + if FileJustExt(myFile) == '.JTC': + jtcFile = myFile + break + if jtcFile == "": + wx.MessageBox(JetDefs.IMPORT_ARCHIVE_NO_JTC) + else: + for name in zip.namelist(): + ext = FileJustExt(name) + if ext == '.MID' or ext == '.DLS' or ext == '.JET': + file(FileFixPath(projectPath + "/" + name), 'wb').write(zip.read(name)) + else: + if len(ext) > 0 and ext != '.DS_STORE': + file(FileFixPath(projectPath + "/" + name), 'w').write(zip.read(name)) + zip.close() + self.currentJetConfigFile = FileFixPath(projectPath + "/") + jtcFile + self.jet_file = JetFile(self.currentJetConfigFile, "") + + #fix paths + self.jet_file.config.filename = FileJustRoot(self.currentJetConfigFile) + ".JET" + for index, segment in enumerate(self.jet_file.segments): + self.jet_file.segments[index].filename = FileFixPath(projectPath + "/" + segment.filename) + if segment.dlsfile > "": + self.jet_file.segments[index].dlsfile = FileFixPath(projectPath + "/" + segment.dlsfile) + self.jet_file.segments[index].output = FileFixPath(projectPath + "/" + segment.output) + + for index, library in enumerate(self.jet_file.libraries): + self.jet_file.libraries[index] = FileFixPath(projectPath + "/" + library) + + if ValidateConfig(self.jet_file): + self.jet_file.SaveJetConfig(self.currentJetConfigFile) + self.jet_file.WriteJetFileFromConfig(self.currentJetConfigFile) + self.jet_file = JetFile(self.currentJetConfigFile , "") + self.SetCurrentFile(self.currentJetConfigFile) + + dlg1.Destroy() + dialog.Destroy() + + def OnJetExportArchive(self, event): + """ Exports the current setup to an archive file """ + self.OnJetSave(event) + defDir = IniGetValue(JetDefs.JETCREATOR_INI, JetDefs.INI_DEFAULTDIRS, JetDefs.ARCHIVE_FILE_SPEC, 'str', str(os.getcwd())) + dialog = wx.FileDialog(None, JetDefs.EXPORT_ARCHIVE_PROMPT, defDir, "", JetDefs.ARCHIVE_FILE_SPEC, wx.SAVE | wx.OVERWRITE_PROMPT ) + if dialog.ShowModal() == wx.ID_OK: + IniSetValue(JetDefs.JETCREATOR_INI, JetDefs.INI_DEFAULTDIRS, JetDefs.ARCHIVE_FILE_SPEC, str(FileJustPath(dialog.GetPath()))) + ExportJetArchive(FileJustRoot(dialog.GetPath()) + ".zip", self.currentJetConfigFile, self.jet_file) + dialog.Destroy() + + def OnCopy(self, event): + """ Copies the current segment or event to the clipboard """ + if self.currentCtrl == JetDefs.MAIN_SEGLIST: + if self.currentSegmentName is None: + return "" + + segment = self.jet_file.GetSegment(self.currentSegmentName) + if segment == None: + return "" + self.clipBoard = JetCutCopy(self.currentCtrl, segment, self.currentSegmentName) + return self.currentCtrl + elif self.currentCtrl == JetDefs.MAIN_EVENTLIST: + if self.currentSegmentName is None: + return "" + + if self.currentEventName is None: + return "" + + segment = self.jet_file.GetSegment(self.currentSegmentName) + if segment == None: + return "" + + curEvent = self.jet_file.GetEvent(self.currentSegmentName, self.currentEventName) + if curEvent == None: + return "" + self.clipBoard = JetCutCopy(self.currentCtrl, curEvent, self.currentSegmentName) + return self.currentCtrl + + def OnCut(self, event): + """ Cuts the current segment or event to the clipboard """ + retCopy = self.OnCopy(event) + if retCopy == JetDefs.MAIN_SEGLIST: + self.SegmentDelete(self.currentSegmentName) + self.LoadSegList() + elif retCopy == JetDefs.MAIN_EVENTLIST: + self.EventDelete(self.currentEventName) + self.LoadEventsForSeg(self.currentSegmentName) + + def OnPaste(self, event): + """ Pastes the current segment or event from the clipboard """ + if self.clipBoard is not None: + if self.currentCtrl == JetDefs.MAIN_SEGLIST and self.clipBoard.objType == JetDefs.MAIN_SEGLIST: + saveState = JetState(self.jet_file, self.currentSegmentIndex, self.currentEventIndex) + self.jet_file.segments.append(self.clipBoard.GetObj(self.jet_file.segments)) + self.UndoAdd(saveState) + self.LoadSegList() + elif self.currentCtrl == JetDefs.MAIN_EVENTLIST and self.clipBoard.objType == JetDefs.MAIN_EVENTLIST and self.clipBoard.currentSegmentName == self.currentSegmentName: + for segment in self.jet_file.segments: + if segment.segname == self.currentSegmentName: + saveState = JetState(self.jet_file, self.currentSegmentIndex, self.currentEventIndex) + segment.jetevents.append(self.clipBoard.GetObj(segment.jetevents)) + self.UndoAdd(saveState) + self.LoadEventsForSeg(self.currentSegmentName) + self.graph.LoadSegment(self.jet_file.GetSegment(self.currentSegmentName), showLabels=IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHLABELS, JetDefs.F_GRAPHLABELS, 'bool', 'True'), showClips=IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHCLIPS, JetDefs.F_GRAPHCLIPS, 'bool', 'True'), showAppEvts=IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHAPPEVTS, JetDefs.F_GRAPHAPPEVTS, 'bool', 'True')) + + def OnJetProperties(self, event): + """ Opens a dialog box for jetfile properties """ + dlg = JetPropertiesDialog() + dlg.SetValue(JetDefs.F_JETFILENAME, self.jet_file.config.filename) + dlg.SetValue(JetDefs.F_COPYRIGHT, StrNoneChk(self.jet_file.config.copyright)) + dlg.SetValue(JetDefs.F_CHASECONTROLLERS, StrNoneChk(self.jet_file.config.chase_controllers)) + dlg.SetValue(JetDefs.F_DELETEEMPTYTRACKS, StrNoneChk(self.jet_file.config.delete_empty_tracks)) + + result = dlg.ShowModal() + if result == wx.ID_OK: + self.jet_file.config.filename = dlg.je.ctrls[JetDefs.F_JETFILENAME].GetValue() + self.jet_file.config.copyright = dlg.je.ctrls[JetDefs.F_COPYRIGHT].GetValue() + self.jet_file.config.chase_controllers = dlg.je.ctrls[JetDefs.F_CHASECONTROLLERS].GetValue() + self.jet_file.config.delete_empty_tracks = dlg.je.ctrls[JetDefs.F_DELETEEMPTYTRACKS].GetValue() + dlg.Destroy() + + def OnPreferences(self, event): + """ Opens a dialog box to capture preferences and saves them to a configuration file """ + dlg = JetPreferences() + dlg.SetValue(JetDefs.F_COPYRIGHT, IniGetValue(JetDefs.JETCREATOR_INI, JetDefs.INI_PREF_SECTION, JetDefs.F_COPYRIGHT)) + dlg.SetValue(JetDefs.F_CHASECONTROLLERS, IniGetValue(JetDefs.JETCREATOR_INI, JetDefs.INI_PREF_SECTION, JetDefs.F_CHASECONTROLLERS, 'bool', True)) + dlg.SetValue(JetDefs.F_DELETEEMPTYTRACKS, IniGetValue(JetDefs.JETCREATOR_INI, JetDefs.INI_PREF_SECTION, JetDefs.F_DELETEEMPTYTRACKS, 'bool', False)) + result = dlg.ShowModal() + if result == wx.ID_OK: + IniSetValue(JetDefs.JETCREATOR_INI, JetDefs.INI_PREF_SECTION, JetDefs.F_COPYRIGHT, dlg.GetValue(JetDefs.F_COPYRIGHT)) + IniSetValue(JetDefs.JETCREATOR_INI, JetDefs.INI_PREF_SECTION, JetDefs.F_CHASECONTROLLERS, dlg.GetValue(JetDefs.F_CHASECONTROLLERS)) + IniSetValue(JetDefs.JETCREATOR_INI, JetDefs.INI_PREF_SECTION, JetDefs.F_DELETEEMPTYTRACKS, dlg.GetValue(JetDefs.F_DELETEEMPTYTRACKS)) + dlg.Destroy() + + def LoadDefaultProperties(self): + """ Loads default properties from the a configuration file """ + self.jet_file.config.copyright = IniGetValue(JetDefs.JETCREATOR_INI, JetDefs.INI_PREF_SECTION, JetDefs.F_COPYRIGHT) + self.jet_file.config.chase_controllers = IniGetValue(JetDefs.JETCREATOR_INI, JetDefs.INI_PREF_SECTION, JetDefs.F_CHASECONTROLLERS, 'bool', True) + self.jet_file.config.delete_empty_tracks = IniGetValue(JetDefs.JETCREATOR_INI, JetDefs.INI_PREF_SECTION, JetDefs.F_DELETEEMPTYTRACKS, 'bool', False) + + def OnClose(self, event): + """ Called upon closing the JetCreator main window """ + if self.isDirty(): + ret = YesNoCancel(JetDefs.MAIN_JETCREATOR, JetDefs.MAIN_SAVEBEFOREEXIT, True) + if ret == wx.ID_YES: + self.OnJetSave(None) + if ret == wx.ID_CANCEL: + return + + if self.jet is not None: + SafeJetShutdown(self.playerLock, self.jet) + self.Destroy() + + def OnPlay(self, event): + """ Plays the currently queued segments """ + if self.btnPlay.GetLabel() == JetDefs.BUT_PLAY: + if not ValidateConfig(self.jet_file): + return + + #make sure something is queued + iQueued = False + num = self.segList.GetItemCount() + for seg_num in range(num): + if self.segList.IsChecked(seg_num): + iQueued = True + if not iQueued: + InfoMsg(JetDefs.MAIN_PLAYSEG, JetDefs.MAIN_PLAYSEGMSG) + return + + for segment in self.jet_file.segments: + if FileExists(segment.dlsfile): + if not segment.dlsfile in self.jet_file.libraries: + self.jet_file.libraries.append(segment.dlsfile) + + self.eventList.DeleteAllItems() + num = self.segList.GetItemCount() + for seg_num in range(num): + if seg_num == 0: self.log.Clear() + if self.segList.IsChecked(seg_num): + segment = self.jet_file.GetSegment(getColumnText(self.segList, seg_num, 0)) + if segment != None: + #so we can determine which segment is playing, make these the same + userID = seg_num + if FileExists(segment.dlsfile): + dls_num = FindDlsNum(self.jet_file.libraries, segment.dlsfile) + else: + dls_num = -1 + self.queueSegs.append(QueueSeg(segment.segname, userID, seg_num, dls_num, segment.repeat, segment.transpose, segment.mute_flags)) + + if len(self.queueSegs) == 0: + return + + self.btnPlay.SetLabel(JetDefs.BUT_STOP) + + thread.start_new_thread(self.PlaySegs, ()) + else: + with self.playerLock: + self.jet.Clear_Queue() + self.SetKeepPlayingFlag(False) + + def PlaySegs(self): + """ Thread writes a temporary copy of the jet file, and calls the library to play it """ + if len(self.queueSegs) == 0: + return + + jet_file = CreateTempJetFile(self.jet_file) + + if not ValidateConfig(jet_file): + CleanupTempJetFile(jet_file) + return + + self.jet = JET() + self.jet.eas.StartWave() + self.jet.OpenFile(jet_file.config.filename) + + lastID = -1 + + # queue first segment and start playback + Queue(self.jet, self.queueSegs[0]) + index = 1 + self.jet.Play() + self.paused = False + + # continue playing until all segments are done + self.SetKeepPlayingFlag(True) + while self.GetKeepPlayingFlag(): + self.jet.Render() + status = self.jet.Status() + + if status.currentUserID <> lastID and status.currentUserID <> -1: + wx.PostEvent(self, JetStatusEvent(JetDefs.PST_PLAY, status.currentUserID)) + lastID = status.currentUserID + + # if no more segments - we're done + if status.numQueuedSegments == 0: + break + + self.jet.GetAppEvent() + + # if less than 2 segs queued - queue another one + if (index < len(self.queueSegs)) and (status.numQueuedSegments < 2): + Queue(self.jet, self.queueSegs[index]) + index += 1 + + wx.PostEvent(self, JetStatusEvent(JetDefs.PST_UPD_LOCATION, status.location)) + + + SafeJetShutdown(self.playerLock, self.jet) + + self.queueSegs = [] + + CleanupTempJetFile(jet_file) + + wx.PostEvent(self, JetStatusEvent(JetDefs.PST_DONE, None)) + + def OnJetStatusUpdate(self, evt): + """ These are screen updates called for from within the thread. Communication + is via a postevent call. + """ + if evt.mode == JetDefs.PST_PLAY: + segName = getColumnText(self.segList, evt.data, 0) + self.LoadEventsForSeg(segName) + self.log.SetValue(segName) + ClearRowSelections(self.segList) + SetRowSelection(self.segList, evt.data, True) + elif evt.mode == JetDefs.PST_UPD_LOCATION: + self.graph.UpdateLocation(evt.data) + elif evt.mode == 3: + self.graph.UpdateLocation(0) + ClearRowSelections(self.segList) + self.eventList.DeleteAllItems() + self.SetKeepPlayingFlag(False) + self.btnPlay.SetLabel(JetDefs.BUT_PLAY) + self.btnPause.SetLabel(JetDefs.BUT_PAUSE) + + def OnPause(self, evt): + """ Pauses the playback """ + if self.jet is None: + return + if not self.paused: + self.jet.Pause() + self.paused = True + self.btnPause.SetLabel(JetDefs.BUT_RESUME) + else: + self.jet.Play() + self.paused = False + self.btnPause.SetLabel(JetDefs.BUT_PAUSE) + + def isDirty(self): + if len(self.UndoStack) == 0 and len(self.RedoStack) == 0: + return False + else: + return True + + def OnSetGraphOptions(self, evt): + """ Sets graph options """ + IniSetValue(self.currentJetConfigFile, JetDefs.F_GRAPHLABELS, JetDefs.F_GRAPHLABELS, self.chkGraphLabels.GetValue()) + IniSetValue(self.currentJetConfigFile, JetDefs.F_GRAPHCLIPS, JetDefs.F_GRAPHCLIPS, self.chkGraphClips.GetValue()) + IniSetValue(self.currentJetConfigFile, JetDefs.F_GRAPHAPPEVTS, JetDefs.F_GRAPHAPPEVTS, self.chkGraphAppEvts.GetValue()) + self.graph.LoadSegment(self.jet_file.GetSegment(self.currentSegmentName), showLabels=IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHLABELS, JetDefs.F_GRAPHLABELS, 'bool', 'True'), showClips=IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHCLIPS, JetDefs.F_GRAPHCLIPS, 'bool', 'True'), showAppEvts=IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHAPPEVTS, JetDefs.F_GRAPHAPPEVTS, 'bool', 'True')) + + def OnEventSortOrderChanged(self): + """ Called when sort order has changed """ + IniSetValue(self.currentJetConfigFile, JetDefs.INI_EVENTSORT, JetDefs.INI_EVENTSORT_0, self.eventList.GetSortState()[0]) + IniSetValue(self.currentJetConfigFile, JetDefs.INI_EVENTSORT, JetDefs.INI_EVENTSORT_1, self.eventList.GetSortState()[1]) + self.LoadEventsForSeg(self.currentSegmentName) + self.graph.LoadSegment(self.jet_file.GetSegment(self.currentSegmentName), showLabels=IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHLABELS, JetDefs.F_GRAPHLABELS, 'bool', 'True'), showClips=IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHCLIPS, JetDefs.F_GRAPHCLIPS, 'bool', 'True'), showAppEvts=IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHAPPEVTS, JetDefs.F_GRAPHAPPEVTS, 'bool', 'True')) + + def EventSortCmp(self, a, b): + """ Sorts based on selected sort order """ + if self.eventlistSort[0] == 0 or self.eventlistSort[0] == 1: + if self.eventlistSort[1] == 1: + return cmp(a[0].upper(), b[0].upper()) + else: + return cmp(b[0].upper(), a[0].upper()) + elif self.eventlistSort[0] == 2 or self.eventlistSort[0] == 3: + if self.eventlistSort[1] == 1: + return cmp(MbtVal(a[0]), MbtVal(b[0])) + else: + return cmp(MbtVal(b[0]), MbtVal(a[0])) + else: + return cmp(a[0], b[0]) + + def EventSort2(self, seq, attr): + """ Does Sorting """ + intermed = map(None, map(getattr, seq, (attr,)*len(seq)), xrange(len(seq)), seq) + intermed.sort(self.EventSortCmp) + return map(operator.getitem, intermed, (-1,) * len(intermed)) + + def EventSort(self, lst, attr): + """ Does Sorting """ + lst[:] = self.EventSort2(lst, attr) + + def OnSegSortOrderChanged(self): + """ Called when sort order has changed """ + IniSetValue(self.currentJetConfigFile, JetDefs.INI_SEGSORT, JetDefs.INI_SEGSORT_0, self.segList.GetSortState()[0]) + IniSetValue(self.currentJetConfigFile, JetDefs.INI_SEGSORT, JetDefs.INI_SEGSORT_1, self.segList.GetSortState()[1]) + self.LoadEventsForSeg(self.currentSegmentName) + self.graph.LoadSegment(self.jet_file.GetSegment(self.currentSegmentName), showLabels=IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHLABELS, JetDefs.F_GRAPHLABELS, 'bool', 'True'), showClips=IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHCLIPS, JetDefs.F_GRAPHCLIPS, 'bool', 'True'), showAppEvts=IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHAPPEVTS, JetDefs.F_GRAPHAPPEVTS, 'bool', 'True')) + + def SegSortCmp(self, a, b): + """ Sorts based on selected sort order """ + if self.seglistSort[0] == 0: + if self.seglistSort[1] == 1: + return cmp(a[0].upper(), b[0].upper()) + else: + return cmp(b[0].upper(), a[0].upper()) + elif self.seglistSort[0] == 1 or self.seglistSort[0] == 2: + if self.seglistSort[1] == 1: + return cmp(FileJustName(a[0]).upper(), FileJustName(b[0]).upper()) + else: + return cmp(FileJustName(b[0]).upper(), FileJustName(a[0]).upper()) + elif self.seglistSort[0] == 3 or self.seglistSort[0] == 4: + if self.seglistSort[1] == 1: + return cmp(MbtVal(a[0]), MbtVal(b[0])) + else: + return cmp(MbtVal(b[0]), MbtVal(a[0])) + else: + return cmp(a[0], b[0]) + + def SegSort2(self, seq, attr): + """ Does Sorting """ + intermed = map(None, map(getattr, seq, (attr,)*len(seq)), xrange(len(seq)), seq) + intermed.sort(self.SegSortCmp) + return map(operator.getitem, intermed, (-1,) * len(intermed)) + + def SegSort(self, lst, attr): + """ Does Sorting """ + lst[:] = self.SegSort2(lst, attr) + +if __name__ == '__main__': + """ Sets the logging level, then calls the open dialog box before initializing main window""" + + logLevel = IniGetValue(JetDefs.JETCREATOR_INI, JetDefs.INI_LOGGING, JetDefs.INI_LOGGING) + if logLevel == 'DEBUG': + logging.basicConfig(level=logging.DEBUG, format='%(funcName)s[%(lineno)d]: %(message)s') + elif logLevel == 'INFO': + logging.basicConfig(level=logging.INFO, format='%(funcName)s[%(lineno)d]: %(message)s') + elif logLevel == 'ERROR': + logging.basicConfig(level=logging.ERROR, format='%(funcName)s[%(lineno)d]: %(message)s') + elif logLevel == 'WARNING': + logging.basicConfig(level=logging.WARNING, format='%(funcName)s[%(lineno)d]: %(message)s') + else: + install_release_loggers() + + app = wx.App(None) + + if not os.path.isdir(JetDefs.TEMP_JET_DIR): + os.mkdir(JetDefs.TEMP_JET_DIR) + + openFile = "" + dlg = JetOpen() + result = dlg.ShowModal() + if result == wx.ID_CANCEL: + dlg.Destroy() + elif result == JetDefs.ID_JET_IMPORT: + dlg.Destroy() + + au = JetCreator(None, -1, "", importFlag=True) + app.MainLoop() + else: + openFile = dlg.fileName + dlg.Destroy() + + au = JetCreator(None, -1, openFile) + app.MainLoop() + diff --git a/jet_tools/JetCreator/JetCreatorhlp.dat b/jet_tools/JetCreator/JetCreatorhlp.dat new file mode 100755 index 0000000..4a08b07 --- /dev/null +++ b/jet_tools/JetCreator/JetCreatorhlp.dat @@ -0,0 +1,119 @@ +[EVTDLG_CTRLS] +labels = +play = Plays the segment with associated event attributes. To trigger the event, click the event in the timeline. +midi file = Displays the MIDI file associated with the segment. This is pulled in from the segment attributes. +quantize = Displays the quantization associated with the segment. This is pulled in from the segment attributes. +cancel = +event type = Selects the type of trigger event. +track mutes = Displays the track mute assignments associated with the segment. This is pulled in from the segment attributes. +event = +pause = +graph = +trigger = +replicate = +starting m/b/t = Sets the starting measure, beat, and tick for the event. +channel = Selects the MIDI channel for the event. +eventid = Sets the ID of the event. Each event must have a unique ID. +app events = +repeat = Displays the repeat count of the segment. This is pulled in from the segment attributes. +ok = +track = Selects the MIDI track (not the channel) for the event. +transpose = Displays the transpose value of the segment. This is pulled in from the segment attributes. +un-mute = +segment = Displays the name of the segment. This is pulled in from the segment attributes. +event name = Identifies the name of the event. +segment name = Identifies the name of the segment. This is pulled in from the segment attributes. +trigger clips = +length = +ending m/b/t = Sets the ending measure, beat, and tick for the segment. +dls file = Displays the DLS file associated with the segment. This is pulled in from the segment attributes. + +[MOVE_CTRLS] +ok = +move = +starting m/b/t = +cancel = +preview = +increment m/b/t = + +[MAIN_DIALOG_CTRLS] +seglist = The list of segments display here. You may add, revise, or delete segments using the buttons at the left. You may also double click to edit a segment. +eventlist = The list of events for the currently selected segment display here. Double click to edit, or use the buttons at the left to add, revise, or delete and event. + +[SEGDLG_CTRLS] +labels = +app events = +midi file = Selects the source MIDI file from which the segment will be created. +quantize = Selects the quantization amount for the segment. Use 0 for no quantization. +display empty tracks = +play segment = +cancel = Cancels any changes and exits the segment window. +track mutes = Checking a mute box will mute the associated track. You should mute a track if you intent to add a trigger event for that track. +pause = +graph = +replicate = +starting m/b/t = Sets the starting measure, beat, and tick for the segment. +play midi file = +play = Plays the segment. +repeat = Sets the number of repeats for the segment. +graph type = +transpose = Sets the transposition value for the segment, in semitones (half-steps). +audition = Click this button to audition the JET file. This is an interactive playback mode that simulates a how the JET file will work in production. +ok = Confirms segment attributes and closes segment window. +segment = +segment name = Identifies the name of the segment. +trigger clips = +length = +ending m/b/t = Sets the ending measure, beat, and tick for the segment. +dls file = Selects the source DLS file, if any, for the given segment. + +[PREFERENCES_CTRLS] +ok = +preferences = +copyright = The copyright in this field will default on new JET files. It can be overridden in the Properties setting for a specific JET file. +chase controllers = This option will force JET to chase controllers up to the beginning of a given segment. This help keep a segment in sync with its parent MIDI file. +cancel = +delete empty tracks = This option will tell JET to delete any empty tracks from the output file. + +[REPLICATE_CTRLS] +ok = +replace existing items matching prefix = +replicate = +number = +name prefix = +starting m/b/t = +cancel = +preview = +increment m/b/t = + +[JET_PROPERTIES_CTRLS] +omit empty tracks = +jet project properties = +ok = +copyright = +chase controllers = If on, MIDI CC messages and program changes will be read from the beginning of the segment when playing or triggering events in the middle of the segment. This should almost always be checked. +jet file = +export = Export will collect all the source MIDI, DLS and JET files into a single .ZIP file. +cancel = +delete empty tracks = Selecting this will delete any empty MIDI tracks. + +[AUDITION_CTRLS] +seglist = The list of segments in the JET file display here. Double click on a segment to add it to the play queue, or use the buttons below. +tracklist = The tracks in the segment currently playing segment display here. Tracks which are muted are checked. Click on a track to toggle its mute status. +queuelist = The currently queued segments display here. Each segment displays its current run status. You may modify the playback state with the buttons below. +graph = The currently playing segment is displayed graphically here. You may trigger clips by clicking within their boundaries on the graph. + +[EXPORT_CTRLS] +omit empty tracks = Selecting this will delete any empty MIDI tracks. +copyright = +chase controllers = If on, MIDI CC messages and program changes will be read from the beginning of the segment when playing or triggering events in the middle of the segment. This should almost always be checked. +jet file = +export = Export will collect all the source MIDI, DLS and JET files into a single .ZIP file. +cancel = + +[PREFERENCES] +cancel = +ok = +preferences = +use project directories = + diff --git a/jet_tools/JetCreator/JetCtrls.py b/jet_tools/JetCreator/JetCtrls.py new file mode 100755 index 0000000..9b3ca5d --- /dev/null +++ b/jet_tools/JetCreator/JetCtrls.py @@ -0,0 +1,567 @@ +""" + File: + JetCtrls.py + + Contents and purpose: + Auditions a jet file to simulate interactive music functions + + Copyright (c) 2008 Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +""" + +import wx +import sys + +from wx.lib.mixins.listctrl import CheckListCtrlMixin, ListCtrlAutoWidthMixin, ColumnSorterMixin +from JetUtils import * +from JetDefs import * + +class JetSpin(wx.SpinCtrl): + """ Spin control """ + def __init__(self, parent, id=-1,value=wx.EmptyString,pos=wx.DefaultPosition,size=wx.DefaultSize,style=wx.SP_ARROW_KEYS,min=0,max=100,initial=0): + wx.SpinCtrl.__init__(self, parent, id=id,value=value,pos=(pos[0]-MacOffset(),pos[1]),size=size,style=style,min=min,max=max,initial=initial) + + def SetValue(self, val): + try: + if type(val).__name__=='str': + wx.SpinCtrl.SetValue(self, int(val)) + else: + wx.SpinCtrl.SetValue(self, val) + except: + wx.SpinCtrl.SetValue(self, 0) + +class JetSpinOneBased(JetSpin): + """ Spin control that's one based """ + def __init__(self, parent, id=-1,value=wx.EmptyString,pos=wx.DefaultPosition,size=wx.DefaultSize,style=wx.SP_ARROW_KEYS,min=0,max=100,initial=0): + wx.SpinCtrl.__init__(self, parent, id=id,value=value,pos=(pos[0]-MacOffset(),pos[1]),size=size,style=style,min=min,max=max,initial=initial) + + def SetValue(self, val): + try: + if type(val).__name__=='str': + wx.SpinCtrl.SetValue(self, int(val) + 1) + else: + wx.SpinCtrl.SetValue(self, val + 1) + except: + wx.SpinCtrl.SetValue(self, 1) + + def GetValue(self): + val = wx.SpinCtrl.GetValue(self) + val = val - 1 + return val + +class JetCheckBox(wx.CheckBox): + """ Checkbox control """ + def __init__(self, parent, id=-1,label=wx.EmptyString,pos=wx.DefaultPosition,size=wx.DefaultSize): + wx.CheckBox.__init__(self, parent, id=id, label=label, pos=pos, size=size) + + def SetValue(self, val): + try: + if type(val).__name__=='str': + if val == 'True': + val = True + else: + val = False + wx.CheckBox.SetValue(self, val) + else: + wx.CheckBox.SetValue(self, val) + except: + wx.CheckBox.SetValue(self, False) + +class JetRadioButton(wx.RadioButton): + """ Radio button control """ + def __init__(self, parent, id=-1,label=wx.EmptyString,pos=wx.DefaultPosition,size=wx.DefaultSize): + wx.RadioButton.__init__(self, parent, id=id, label=label, pos=pos, size=size) + + def SetValue(self, val): + try: + if type(val).__name__=='str': + if val == 'True': + val = True + else: + val = False + wx.RadioButton.SetValue(self, val) + else: + wx.RadioButton.SetValue(self, val) + except: + wx.RadioButton.SetValue(self, False) + +class JetListCtrl(wx.ListCtrl, ListCtrlAutoWidthMixin, ColumnSorterMixin): + """ List control """ + def __init__(self, parent, id=-1, pos=wx.DefaultPosition, size=wx.DefaultSize): + wx.ListCtrl.__init__(self, parent, id, pos=pos, size=size, style=wx.LC_REPORT | wx.SUNKEN_BORDER) + ListCtrlAutoWidthMixin.__init__(self) + self.iCol = 0 + self.iWidth = 0 + self.OnSortOrderChangedAlert = None + self.iInitialized = False + + def AddCol(self, title, width): + self.InsertColumn(self.iCol, title) + if width > 0: + self.SetColumnWidth(self.iCol, width) + else: + width = self.GetColumnWidth(self.iCol) + self.iCol += 1 + self.iWidth = self.iWidth + width + self.SetSize((self.iWidth + 10, -1)) + + def AddRows(self, values): + for value in values: + iCol = 0 + for row in value: + if iCol == 0: + index = self.InsertStringItem(sys.maxint, row) + else: + self.SetStringItem(index, iCol, row) + iCol = iCol + 1 + + # Used by the ColumnSorterMixin, see wx/lib/mixins/listctrl.py + def GetListCtrl(self): + return self + + def InitSorting(self, cols): + if not self.iInitialized: + ColumnSorterMixin.__init__(self, cols) + self.iInitialized = True + + def OnSortOrderChanged(self): + if self.OnSortOrderChangedAlert is not None: + self.OnSortOrderChangedAlert() + + def __OnColClick(self, evt): + oldCol = self._col + self._col = col = evt.GetColumn() + self._colSortFlag[col] = int(not self._colSortFlag[col]) + self.OnSortOrderChanged() + +class JetCheckListCtrl(wx.ListCtrl, CheckListCtrlMixin, ListCtrlAutoWidthMixin, ColumnSorterMixin): + """ List control with checkboxes on each line """ + def __init__(self, parent, id=-1, pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.LC_REPORT | wx.SUNKEN_BORDER): + wx.ListCtrl.__init__(self, parent, id, pos=pos, size=size, style=style) + CheckListCtrlMixin.__init__(self) + ListCtrlAutoWidthMixin.__init__(self) + + self.iCol = 0 + self.iWidth = 0 + self.OnSortOrderChangedAlert = None + self.iInitialized = False + + def AddCol(self, title, width): + self.InsertColumn(self.iCol, title) + if width > 0: + self.SetColumnWidth(self.iCol, width) + else: + width = self.GetColumnWidth(self.iCol) + self.iCol += 1 + self.iWidth = self.iWidth + width + self.SetSize((self.iWidth + 10, -1)) + + def OnCheckItem(self, index, flag): + if hasattr(self, 'BindCheckBoxFct'): + self.BindCheckBoxFct(index, flag) + + def BindCheckBox(self, fct): + self.BindCheckBoxFct = fct + + def AddRows(self, values): + for value in values: + iCol = 0 + for row in value: + if iCol == 0: + index = self.InsertStringItem(sys.maxint, row) + else: + self.SetStringItem(index, iCol, row) + iCol = iCol + 1 + + # Used by the ColumnSorterMixin, see wx/lib/mixins/listctrl.py + def GetListCtrl(self): + return self + + def InitSorting(self, cols): + if not self.iInitialized: + ColumnSorterMixin.__init__(self, cols) + self.iInitialized = True + + def OnSortOrderChanged(self): + if self.OnSortOrderChangedAlert is not None: + self.OnSortOrderChangedAlert() + + def __OnColClick(self, evt): + oldCol = self._col + self._col = col = evt.GetColumn() + self._colSortFlag[col] = int(not self._colSortFlag[col]) + self.OnSortOrderChanged() + +class JetTrackCtrl(JetCheckListCtrl): + """ List control specifically designed to show tracks in midi file """ + def __init__(self, parent, id=-1, pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.LC_REPORT | wx.SUNKEN_BORDER): + wx.ListCtrl.__init__(self, parent, id, pos=pos, size=size, style=style) + CheckListCtrlMixin.__init__(self) + ListCtrlAutoWidthMixin.__init__(self) + + self.iCol = 0 + self.iWidth = 0 + self.muteFlags = 0 + + def SetValue(self, muteFlags): + self.muteFlags = muteFlags + + def GetValue(self): + return self.muteFlags + + def CheckTracks(self, muteFlags): + num = self.GetItemCount() + for iRow in range(num): + track_num = self.GetTrackNumber(iRow) + self.CheckItem(iRow, GetMute(track_num, muteFlags)) + + def AddTrackRow(self, track, loadEmpty=False): + if loadEmpty or not track.empty: + index = self.InsertStringItem(sys.maxint, str(track.track)) + self.SetStringItem(index, 1, str(track.channel)) + self.SetStringItem(index, 2, str(track.name)) + + def GetTrackNumber(self, index): + return getColumnValue(self, index, 0) + +class JetFileCombo(): + """ Combo box with file open button """ + def __init__(self, parent, pos=(0,0), size=(200,-1), title='Open File', spec='*.*', id=-1): + self.spec = spec + self.title = title + self.EventFire = False + BUTWIDTH = 20 + BORDER = 5 + w = size[0] - (BUTWIDTH + BORDER) + col = pos[0] + w + BORDER + + self.cmb = wx.ComboBox(parent, id, "", pos=(pos[0]-MacOffset(),pos[1]), size=(w, -1), style=wx.CB_DROPDOWN) + self.btn = wx.Button(parent, -1, "...", pos=(col, pos[1]+MacOffset()), size=(BUTWIDTH,self.cmb.GetSize()[1])) + self.btn.Bind(wx.EVT_BUTTON, self.OnBrowse, self.btn) + + def OnBrowse(self, event): + os = __import__('os') + defDir = IniGetValue(JetDefs.JETCREATOR_INI, JetDefs.INI_DEFAULTDIRS, self.spec, 'str', str(os.getcwd())) + if OsWindows(): + defDir = defDir.replace('/','\\') + else: + defDir = defDir.replace('\\', '/') + + dlg = wx.FileDialog(None, self.title, defDir, '', self.spec, wx.FD_OPEN) + ret = dlg.ShowModal() + if ret == wx.ID_OK: + IniSetValue(JetDefs.JETCREATOR_INI, JetDefs.INI_DEFAULTDIRS, self.spec, str(FileJustPath(dlg.GetPath()))) + val = dlg.GetPath() + + self.Append(val) + self.cmb.SetValue(val) + + if self.EventFire: + SendEvent(self.cmb, wx.EVT_COMBOBOX.evtType[0]) + dlg.Destroy() + + def SetEventFire(self, fire): + self.EventFire = fire + + def GetValue(self): + return StrNoneChk(self.cmb.GetValue()) + + def SetValue(self, val): + try: + self.cmb.SetValue(val) + except: + pass + + def Append(self, val): + try: + self.cmb.Append(val) + except: + pass + + def SetFocus(self): + self.cmb.SetFocus() + + def SetListValues(self, list): + self.cmb.AppendItems(list) + + def Enable(self, enable): + self.cmb.Enable(enable) + self.btn.Enable(enable) + + def SetHelpText(self, Lbl): + self.cmb.SetHelpText(Lbl) + self.btn.SetHelpText(Lbl) + +class JetFileText(): + """ Capture a filename with a button to browse for a file """ + def __init__(self, parent, pos=(0,0), size=(200,-1), title='Open File', spec='*.*', id=-1): + self.spec = spec + self.title = title + BUTWIDTH = 20 + BORDER = 5 + w = size[0] - (BUTWIDTH + BORDER) + col = pos[0] + w + BORDER + + self.txt = wx.TextCtrl(parent, id, "", pos=(pos[0]-MacOffset(),pos[1]), size=(w, -1)) + self.btn = wx.Button(parent, -1, "...", pos=(col, pos[1]), size=(BUTWIDTH,self.txt.GetSize()[1])) + self.btn.Bind(wx.EVT_BUTTON, self.OnBrowse, self.btn) + + def OnBrowse(self, event): + os = __import__('os') + defDir = IniGetValue(JetDefs.JETCREATOR_INI, JetDefs.INI_DEFAULTDIRS, self.spec, 'str', str(os.getcwd())) + if OsWindows(): + defDir = defDir.replace('/','\\') + else: + defDir = defDir.replace('\\', '/') + + dlg = wx.FileDialog(None, self.title, defDir, '', self.spec, wx.FD_OPEN) + ret = dlg.ShowModal() + if ret == wx.ID_OK: + IniSetValue(JetDefs.JETCREATOR_INI, JetDefs.INI_DEFAULTDIRS, self.spec, str(FileJustPath(dlg.GetPath()))) + val = dlg.GetPath() + self.txt.SetValue(val) + dlg.Destroy() + + def GetValue(self): + return StrNoneChk(self.txt.GetValue()) + + def SetValue(self, val): + try: + self.txt.SetValue(val) + except: + pass + + def Append(self, val): + try: + self.txt.Append(val) + except: + pass + + def SetFocus(self): + self.txt.SetFocus() + + def Enable(self, enable): + self.txt.Enable(enable) + self.btn.Enable(enable) + + def SetHelpText(self, Lbl): + self.txt.SetHelpText(Lbl) + self.btn.SetHelpText(Lbl) + +def YesNo(title, question, default): + """ Simple Yes/No question box """ + dlg = wx.MessageDialog(None, question, title, wx.YES_NO | wx.ICON_QUESTION) + if dlg.ShowModal() == wx.ID_YES: + result = True + else: + result = False + dlg.Destroy() + return result + +def YesNoCancel(title, question, default): + """ Simple Yes/No question box """ + dlg = wx.MessageDialog(None, question, title, wx.YES_NO | wx.CANCEL | wx.ICON_QUESTION) + result = dlg.ShowModal() + dlg.Destroy() + return result + +def ErrorMsg(title, message): + """ Dipslay an error message """ + dlg = wx.MessageDialog(None, message, title, wx.ICON_ERROR) + dlg.ShowModal() + dlg.Destroy() + +def InfoMsg(title, message): + """ Displays an informational message """ + dlg = wx.MessageDialog(None, message, title, wx.ICON_INFORMATION) + dlg.ShowModal() + dlg.Destroy() + +class TimeCtrl(wx.Frame): + """ Combination of controls to capture measure, beat, tick times """ + def __init__(self, parent, pos=(0,0), minimums=(1,1,0), maximums=(999,4,480), value=JetDefs.MBT_DEFAULT, ctlName=''): + wx.Frame.__init__(self, parent, -1) + + self.ChangeCallbackFct = None + self.ctlName = ctlName + self.mx = maximums + self.mn = minimums + self.maxTicks = 0 + self.iCtrl = 0 + p1 = pos[0] + top = pos[1] + MacOffset() + w1 = 30 + self.time = (wx.TextCtrl(parent, -1, str(value[0]), pos=(p1, top), size=(w1, -1), style=wx.TE_NOHIDESEL), + wx.TextCtrl(parent, -1, str(value[1]), pos=(p1 + (w1 + 3), top), size=(w1, -1), style=wx.TE_NOHIDESEL), + wx.TextCtrl(parent, -1, str(value[2]), pos=(p1 + (w1 + 3) *2, top), size=(w1, -1), style=wx.TE_NOHIDESEL), + ) + h = self.time[2].GetSize().height + w = self.time[2].GetSize().width + self.time[2].GetPosition().x + 8 + + self.spin = wx.SpinButton(parent, -1, (w, top), (h*2/3, h), wx.SP_VERTICAL) + self.spin.SetValue(1) + self.spin.SetRange(-999,999) + + self.spin.Bind(wx.EVT_SPIN_UP, self.OnSpinUp, self.spin) + self.spin.Bind(wx.EVT_SPIN_DOWN, self.OnSpinDown, self.spin) + + self.time[0].Bind(wx.EVT_SET_FOCUS, self.OnFocusMeasure, self.time[0] ) + self.time[1].Bind(wx.EVT_SET_FOCUS, self.OnFocusBeat, self.time[1] ) + self.time[2].Bind(wx.EVT_SET_FOCUS, self.OnFocusTick, self.time[2] ) + + self.time[0].Bind(wx.EVT_KILL_FOCUS, self.OnChangeVal, self.time[0] ) + self.time[1].Bind(wx.EVT_KILL_FOCUS, self.OnChangeVal, self.time[1] ) + self.time[2].Bind(wx.EVT_KILL_FOCUS, self.OnChangeVal, self.time[2] ) + + self.SetValue(value) + + def UnBindKillFocus(self): + self.time[0].Unbind(wx.EVT_KILL_FOCUS, self.time[0]) + self.time[1].Unbind(wx.EVT_KILL_FOCUS, self.time[1]) + self.time[2].Unbind(wx.EVT_KILL_FOCUS, self.time[2]) + + def SetChangeCallbackFct(self, ChangeCallbackFct): + self.ChangeCallbackFct = ChangeCallbackFct + + def OnChangeVal(self, event=None): + if not OsWindows(): + self.time[self.iCtrl].SetSelection(-1,-1) + if int(self.time[self.iCtrl].GetValue()) > self.mx[self.iCtrl]: + self.time[self.iCtrl].SetValue(str(self.mx[self.iCtrl])) + if int(self.time[self.iCtrl].GetValue()) < self.mn[self.iCtrl]: + self.time[self.iCtrl].SetValue(str(self.mn[self.iCtrl])) + if self.ChangeCallbackFct is not None: + self.ChangeCallbackFct() + if event is not None: + event.Skip() + + def OnSpinUp(self, event): + if int(self.time[self.iCtrl].GetValue()) < self.mx[self.iCtrl]: + self.time[self.iCtrl].SetValue(str(int(self.time[self.iCtrl].GetValue()) + 1)) + self.OnChangeVal() + + def OnSpinDown(self, event): + if int(self.time[self.iCtrl].GetValue()) > self.mn[self.iCtrl]: + self.time[self.iCtrl].SetValue(str(int(self.time[self.iCtrl].GetValue()) - 1)) + self.OnChangeVal() + + def OnFocusMeasure(self, event): + self.iCtrl = 0 + + def OnFocusBeat(self, event): + self.iCtrl = 1 + + def OnFocusTick(self, event): + self.iCtrl = 2 + + def SetValue(self, mbt): + try: + if type(mbt).__name__=='str' or type(mbt).__name__=='unicode': + mbt = ConvertStrTimeToTuple(mbt) + mbt = mbtFct(mbt, 1) + self.time[0].SetValue(str(mbt[0])) + self.time[1].SetValue(str(mbt[1])) + self.time[2].SetValue(str(mbt[2])) + except: + self.time[0].SetValue(str(self.mn[0])) + self.time[1].SetValue(str(self.mn[1])) + self.time[2].SetValue(str(self.mn[2])) + if not OsWindows(): + self.time[0].SetSelection(-1,-1) + self.time[1].SetSelection(-1,-1) + self.time[2].SetSelection(-1,-1) + + def GetValue(self, typ='str'): + try: + if typ == 'str': + ret = "%d:%d:%d" % (int(self.time[0].GetValue()), int(self.time[1].GetValue()), int(self.time[2].GetValue())) + else: + ret = (int(self.time[0].GetValue()), int(self.time[1].GetValue()), int(self.time[2].GetValue())) + except: + ret = self.minimums + return mbtFct(ret, -1) + + def Enable(self, enable): + self.time[0].Enable(enable) + self.time[1].Enable(enable) + self.time[2].Enable(enable) + self.spin.Enable(enable) + + def SetFocus(self): + self.time[0].SetFocus() + + def SetMaxMbt(self, m, b, t): + self.mx = (m,b,t) + + def GetMaxMbt(self): + return "%d:%d:%d" % self.mx + + def SetMinMbt(self, m, b, t): + self.mn = (m,b,t) + + def SetMaxTicks(self, maxTicks): + self.maxTicks = maxTicks + + def GetMaxTicks(self): + return self.maxTicks + + def SetHelpText(self, Lbl): + self.spin.SetHelpText(Lbl) + self.time[0].SetHelpText(Lbl) + self.time[1].SetHelpText(Lbl) + self.time[2].SetHelpText(Lbl) + + def GetMeasure(self): + return int(self.time[0].GetValue()) + + def GetBeat(self): + return int(self.time[1].GetValue()) + + def GetTick(self): + return int(self.time[2].GetValue()) + +if __name__ == '__main__': + """ Test code for controls """ + class TestFrame(wx.Frame): + def __init__(self, parent, id, title): + wx.Frame.__init__(self, parent, id, title, size=(350, 220)) + + panel = wx.Panel(self, -1) + + self.tc = TimeCtrl(panel, pos=(30, 20), maximums=(25, 4, 120), value=(2, 3, 4)) + #tc.Enable(True) + #tc.SetValue((2,3,4)) + #tc.SetValue("1:2:3") + #print(tc.GetValue()) + + js = JetSpin(panel, -1, pos=(30, 100)) + js.SetValue("1") + #js.SetValue(1) + + #fl = JetFileCombo(panel) + + wx.EVT_CLOSE(self, self.OnClose) + + self.Centre() + self.Show(True) + + def OnClose(self, event): + self.tc.UnBindKillFocus() + self.Destroy() + + app = wx.App(None) + TestFrame(None, -1, 'TestFrame') + app.MainLoop() + + diff --git a/jet_tools/JetCreator/JetDebug.py b/jet_tools/JetCreator/JetDebug.py new file mode 100755 index 0000000..dcff7a6 --- /dev/null +++ b/jet_tools/JetCreator/JetDebug.py @@ -0,0 +1,71 @@ +""" + File: + JetDebug.py + + Contents and purpose: + Dumps info from various jet file structures for debugging + + Copyright (c) 2008 Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +""" + +from JetUtils import * + +def DumpEvent(evt): + print("event_name: %s" % evt.event_name) + print("event_type: %s" % evt.event_type) + print("event_id: %d" % evt.event_id) + print("track_num: %d" % evt.track_num) + print("channel_num: %d" % evt.channel_num) + print("event_start: %s" % evt.event_start) + print("event_end: %s" % evt.event_end) + +def DumpQueueSeg(queueSeg): + print("name: %s" % queueSeg.name) + print("userID: %d" % queueSeg.userID) + print("seg_num: %d" % queueSeg.seg_num) + print("dls_num: %d" % queueSeg.dls_num) + print("repeat: %d" % queueSeg.repeat) + print("transpose: %d" % queueSeg.transpose) + print("mute_flags: %d" % queueSeg.mute_flags) + +def DumpSegments1(segments): + for segment in segments: + DumpSegment(segment) + +def DumpSegment(segment): + print("userID: %d" % segment.userID) + print("name: %s" % segment.name) + print("seg_num: %d" % segment.seg_num) + print("dls_num: %d" % segment.dls_num) + print("repeat: %d" % segment.repeat) + print("transpose: %d" % segment.transpose) + print("mute_flags: %d" % segment.mute_flags) + +def DumpSegments(segments): + for segment in segments: + DumpSegment1(segment) + +def DumpSegment1(segment): + print(segment.segname) + print(segment.filename) + print(segment.start) + print(segment.end) + print(segment.length) + print(segment.output) + print(segment.quantize) + print(segment.dlsfile) + print(segment.dump_file) + + diff --git a/jet_tools/JetCreator/JetDefs.py b/jet_tools/JetCreator/JetDefs.py new file mode 100755 index 0000000..b1e73cd --- /dev/null +++ b/jet_tools/JetCreator/JetDefs.py @@ -0,0 +1,560 @@ +""" + File: + JetDefs.py + + Contents and purpose: + Holds definitions used throughout JetCreator + + Copyright (c) 2008 Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +""" + +import wx + +class JetDefs(): + def CreateHelpIniFile(self): + """ Used to create the help data file for context sensitive help """ + self.CreateHelpIniForDialog("SEGDLG_CTRLS") + self.CreateHelpIniForDialog("EVTDLG_CTRLS") + self.CreateHelpIniForDialog("PREFERENCES_CTRLS") + self.CreateHelpIniForDialog("JET_PROPERTIES_CTRLS") + self.CreateHelpIniForDialog("REPLICATE_CTRLS") + self.CreateHelpIniForDialog("MOVE_CTRLS") + + def CreateHelpIniForDialog(self, dlgName): + """ Used to create the help data file for context sensitive help """ + print("\n" + dlgName) + lst = getattr(self, dlgName) + u = __import__('JetUtils') + for ctrl in lst: + fld = ctrl[0] + if fld[0:2] != "fr": + if u.IniGetValue(self.JETCREATOR_HLP, dlgName, fld) == "": + u.IniSetValue(self.JETCREATOR_HLP, dlgName, fld, "") + print(fld) + + DEFAULT_MUTE_SYNC = False + + TEMP_JET_DIR = "./Tmp/" + TEMP_JET_CONFIG_FILE = "./Tmp/Temp.jtc" + UNTITLED_FILE = "Untitled.jtc" + JETCREATOR_INI = "JetCreator.ini" + JETMIDIFILES_INI = "JetMidiFiles.ini" + JETCREATOR_HLP = "JetCreatorhlp.dat" + + #Postevent message defines + PST_UPD_LOCATION = 1 + PST_PLAY = 2 + PST_DONE = 3 + PST_PAUSE = 4 + PST_RESUME = 5 + PST_MIDI_INFO = 6 + + #Dialog titles and prompts + DLG_JETOPEN = "Open Jet File" + DLG_PREFERENCES = "Preferences" + DLG_ABOUT = "About" + DLG_PROPERTIES = "Jet Project Properties" + DLG_AUDITION = "Audition Jet File" + DLG_REPLICATE = "Replicate Event" + DLG_MOVE = "Move Events" + MAIN_TITLEPREFIX = 'Jet Creator - ' + MAIN_DLG_CTRLS = 'JET_CREATOR' + MAIN_SEGLIST = 'segList' + MAIN_EVENTLIST = 'eventList' + MAIN_ADDSEGTITLE = "Add Segments" + MAIN_REVSEGTITLE = "Revise Segments" + MAIN_ADDEVENTTITLE = "Add Event" + MAIN_REVEVENTTITLE = "Revise Event" + MAIN_CONFIRM = "Confirm Deletion" + MAIN_CONFIRM_SEG_DLT = "\n\nOkay to delete segment(s)?" + MAIN_CONRIRM_EVT_DLT = "\n\nOkay to delete event(s)?" + MAIN_PLAYSEG = "Play Segments" + MAIN_PLAYSEGMSG = "Queue one or more segments by checking them in the list, then play." + MAIN_HELPTITLE = "Jet Creator Help" + MAIN_HELPFILE = "JET Creator User Manual.htm" + MAIN_HELPGUIDELINESTITLE = "Jet Authoring Guidelines" + MAIN_HELPGUIDELINESFILE = "JET Authoring Guidelines.htm" + MAIN_IMPORTTITLE = "Import Project" + MAIN_IMPORTMSG = "Okay to import\n\n%s\n\ninto\n\n%s?" + MAIN_SAVEBEFOREEXIT = "Save project before exiting?" + MAIN_JETCREATOR = "Jet Creator" + + #Audition window defines + AUDITION_CTRLS = 'AUDITION_CTRLS' + AUDITION_SEGLIST = 'segList' + AUDITION_QUEUELIST = 'queueList' + AUDITION_TRACKLIST = 'trackList' + AUDITION_GRAPH = 'graph' + + PLAY_TRIGGERCLIP_MSG = 'Triggered Clip %d: %s' + + #Config file defines + RECENT_SECTION = "Recent" + DIR_SECTION = "Directories" + IMAGES_DIR = "ImagesDir" + INI_PREF_SECTION = "Preferences" + INI_PROJECT_DIRS = "chkProjectDir" + INI_LOGGING = "Logging" + INI_DEFAULTDIRS = "Directories" + INI_DISPEMPTYTRACKS = "DisplayEmptyTracks" + INI_EVENTSORT = "EventSort" + INI_EVENTSORT_0 = "EventSort0" + INI_EVENTSORT_1 = "EventSort1" + INI_SEGSORT = "SegSort" + INI_SEGSORT_0 = "SegSort0" + INI_SEGSORT_1 = "SegSort1" + + #Mbt defines + MBT_DEFAULT = (0,0,0) + MBT_MIN = 0 + MBT_ZEROSTR = "0:0:0" + + #File open dialog specs + APPLICATION_TITLE = "Jet Creator" + MIDI_FILE_SPEC = 'MIDI Files (*.mid)|*.mid|All Files (*.*)|*.*' + DLS_FILE_SPEC = 'DLS Files (*.dls)|*.dls|All Files (*.*)|*.*' + JTC_FILE_SPEC = 'Jet Content Files (*.jtc)|*.jtc|All Files (*.*)|*.*' + ARCHIVE_FILE_SPEC = 'Jet Archive Files (*.zip)|*.zip|All Files (*.*)|*.*' + OPEN_PROMPT = "Open Jet Creator File" + SAVE_PROMPT = "Save Jet Creator File" + EXPORT_ARCHIVE_PROMPT = "Save Jet Archive" + MUST_SAVE_FIRST = "You must save your JetCreator project before exporting it." + IMPORT_ARCHIVE_PROMPT = "Select the Jet Archive to import" + IMPORT_ARCHIVEDIR_PROMPT = "Choose a directory:\n\nYour imported project files will be placed there." + IMPORT_ARCHIVE_NO_JTC = "This does not appear to be a JetCreator archive file." + IMPORT_NOT_JET_ARCHIVE = "Not a recognized Jet Archive file." + + #Button texts + BUT_ADD = 'Add' + BUT_REVISE = 'Revise' + BUT_DELETE = 'Delete' + BUT_PLAY = 'Play' + BUT_STOP = 'Stop' + BUT_MOVE = 'Move' + BUT_QUEUEALL = 'Queue All' + BUT_DEQUEUEALL = 'Dequeue All' + BUT_UNMUTE = 'Un-Mute' + BUT_MUTE = 'Mute' + BUT_AUDITION = 'Audition' + BUT_QUEUE = 'Queue' + BUT_MUTEALL = 'Mute All' + BUT_MUTENONE = 'Mute None' + BUT_ORGMUTES = 'Original Mutes' + BUT_CANCELANDQUEUE = 'Cancel && Queue' + BUT_CANCELCURRENT = 'Next' + BUT_PAUSE = 'Pause' + BUT_RESUME = 'Resume' + BUT_PLAYSEG = 'Play Segment' + BUT_PLAYMIDI = 'Play MIDI File' + + #Grid defines + GRD_TRACK = "Track" + GRD_CHANNEL = "Channel" + GRD_NAME = "Name" + GRD_SEGMENTS = "Segments" + GRD_LENGTH = "Length" + GRD_QUEUE = "Queue" + GRD_STATUS = "Status" + + #Menu defines + MNU_ADD_SEG = "Add Segment" + MNU_UPDATE_SEG = "Revise Segment" + MNU_DELETE_SEG = "Delete Segment" + MNU_MOVE_SEG = "Move Segment(s)" + MNU_ADD_EVENT = "Add Event" + MNU_UPDATE_EVENT = "Revise Event" + MNU_DELETE_EVENT = "Delete Event" + MNU_MOVE_EVENT = "Move Events(s)" + MNU_UNDO = "Undo\tctrl+z" + MNU_REDO = "Redo\tctrl+y" + + HLP_QUANTIZE = "The quantize element is optional and defaults to 0 if omitted.\nThis value sets a window size in ticks for the breaks in\n a segment when notes are extracted from a larger file. \nSee the section on Quantization for further detail \non the operation of this parameter." + + #Status bar messages + SB_NEW = "New JET Creator file" + SB_OPEN = "Open JET Creator file" + SB_SAVE = "Save Jet Creator file and generate .JET output file" + SB_SAVEAS = "Save JET Creator file as another file" + SB_EXIT = "Exit the application" + SB_CUT = "Cuts the current segment or event to the clipboard" + SB_COPY = "Copies the current segment or event to the clipboard" + SB_PASTE = "Pastes the current segment or event from the clipboard" + SB_UNDO = "Undo the last segment or event edit." + SB_REDO = "Reverse the last segment or event undo edit." + SB_IMPORT_PROJ = "Imports a JetCreator project archive." + SB_EXPORT_PROJ = "Saves all project files to an archive." + + #Defines the menus + MENU_SPEC = (("&File", + ("&New", SB_NEW, 'OnJetNew', True), + ("&Open...", SB_OPEN, 'OnJetOpen', True), + ("&Save", SB_SAVE, 'OnJetSave', True), + ("Save As...", SB_SAVEAS, 'OnJetSaveAs', True), + ("", "", "", True), + ("Import Project...", SB_IMPORT_PROJ, "OnJetImportArchive", True), + ("Export Project...", SB_EXPORT_PROJ, "OnJetExportArchive", True), + ("Properties...", "Sets properties specific to this Jet project", 'OnJetProperties', True), + ("", "", "", True), + ("Exit", SB_EXIT, 'OnClose', True)), + ("&Edit", + (MNU_UNDO, "Undo", 'OnUndo', False), + (MNU_REDO, "Redo", 'OnRedo', False), + ("C&ut\tctrl+x", "Cut", 'OnCut', True), + ("&Copy\tctrl+c", "Copy", 'OnCopy', True), + ("&Paste\tctrl+v", "Paste", 'OnPaste', True)), + ("Jet", + ("Preferences", "Set user preferences including defaults for new project files.", 'OnPreferences', True)), + ("Segments", + (MNU_ADD_SEG, "Add a new segment to the segment list", 'OnSegmentAdd', True), + (MNU_UPDATE_SEG, "Revise the segment attributes", 'OnSegmentUpdate', False), + (MNU_DELETE_SEG, "Delete the segment from the segment list", 'OnSegmentDelete', False), + (MNU_MOVE_SEG, "Move one or more segments by incrementing or decrementing their time values", 'OnSegmentsMove', False)), + ("Events", + (MNU_ADD_EVENT, "Add a new event for the currently selected segment", 'OnEventAdd', False), + (MNU_UPDATE_EVENT, "Revise the current event's attributes", 'OnEventUpdate', False), + (MNU_DELETE_EVENT, "Delete the event from the event list for this segment", 'OnEventDelete', False), + (MNU_MOVE_EVENT, "Move one or more events by incrementing or decrementing their time values", 'OnEventsMove', False)), + ("Help", + ("JET Creator User Manual", "Get help on the JET Creator", "OnHelpJet", True), + ("JET Authoring Guidelines", "Guidelines helpful for JET content creation", "OnHelpJetGuidelines", True), + ("About", "About the JET Creator", "OnAbout", True)) + ) + + #Define the toolbar + TOOLBAR_SPEC = ( + ("-", "", "", ""), + ("New", "img_New", SB_NEW, "OnJetNew"), + ("Open", "img_Open", SB_OPEN, "OnJetOpen"), + ("Save", "img_Save", SB_SAVE, "OnJetSave"), + ("-", "", "", ""), + ("Cut", "img_Cut", SB_CUT, "OnCut"), + ("Copy", "img_Copy", SB_COPY, "OnCopy"), + ("Paste", "img_Paste", SB_PASTE, "OnPaste"), + ("-", "", "", ""), + ("Undo", "img_Undo", SB_UNDO, "OnUndo"), + ("Redo", "img_Redo", SB_REDO, "OnRedo"), + ) + + F_HLPBUT = "hlpButton" + F_OK = "btnOk" + F_CANCEL = "btnCancel" + F_MIDIFILE = "filecmbMidiFile" + F_DLSFILE = "filecmbDlsFile" + F_SEGNAME = "txtSegName" + F_START = "tmStart" + F_END = "tmEnd" + F_QUANTIZE = "spnQuantize" + F_REPEAT = "spnRepeat" + F_TRANSPOSE = "spnTranspose" + F_MUTEFLAGS = "grd2MuteFlags" + F_SYNCMUTE = "chkSync" + F_ETYPE = "cmbEventType" + F_ENAME = "txtEventName" + F_ESTART = "tmEventStart" + F_EEND = "tmEventEnd" + F_EID = "spnEventID" + F_ETRACK = "spnEventTrack" + F_ECHANNEL = "spn1EventChannel" + F_EEVENTID = "spnEventID" + F_EMUTEBUT = "btnMute" + F_ETRIGGERBUT = "btnTriggerClip" + F_GRAPH = "graphPlay" + F_PAUSE = "btnPause" + F_ADDSEG = "btnAddSeg" + F_UPDSEG = "btnUpdateSeg" + F_DELSEG = "btnDeleteSeg" + F_PLAY = "btnPlay" + F_PLAYMIDI = "btnPlayMidi" + F_EASPLAY = "btnEasPlay" + F_ADDCLIP = "btnAddEvent" + F_UPDCLIP = "btnUpdateEvent" + F_DELCLIP = "btnDeleteEvent" + F_EXPORT = "btnOkExport" + F_JETFILENAME = "filecmbJetFileName" + F_COPYRIGHT = "txtCopyright" + F_JFILE = "filetxtJetFileName" + F_JOPEN = "btnOpen" + F_JNEW = "btnNew" + F_JIMPORT = "btnImport" + F_JLIST = "lstRecent" + F_ERRGRID = "grdErrors" + F_CHASECONTROLLERS = "chkChaseControllers" + F_DELETEEMPTYTRACKS = "chkDeleteEmptyTracks" + F_OPTMIDI = "optMidiGraph" + F_OPTSEG = "optSegGraph" + F_RDOGRAPH = "rdoboxGraphType" + F_DISPEMPTYTRACKS = "chkDisplayEmptyTracks" + F_GRAPHLABELS = "chkGraphLabels" + F_GRAPHCLIPS = "chkGraphClips" + F_GRAPHAPPEVTS = "chkGraphAppEvts" + F_REPLICATE = "btnReplicate" + + GRAPH_LBLS = "Labels" + GRAPH_TRIGGER = "Trigger Clips" + GRAPH_APP = "App Events" + + #IDs for dialogs + ID_JET_OPEN = 0 + ID_JET_NEW = 1 + ID_JET_IMPORT = 2 + + #Event types + E_CLIP = 'TriggerClip' + E_EOS = 'End of Segment' + E_APP = 'App Controller' + + INTWIDTH = 70 + TIMEWIDTH = 70 + + #Definitions of fields in the edit frame + TM_WIDTH = 100 + TRACK_MIN = 1 + TRACK_MAX = 32 + EVENTID_MIN = 1 + EVENTID_MAX = 63 + APPCONTROLLERID_MIN = 80 + APPCONTROLLERID_MAX = 83 + #NEEDS TO DEFAULT TO RANGE OF BOTH POSSIBLE TYPES + DEFAULTID_MIN = 1 + DEFAULTID_MAX = 100 + + #Mins and maxs for dialog values + QUANTIZE_MIN = 0 + QUANTIZE_MAX = 9 + CHANNEL_MIN = 1 + CHANNEL_MAX = 16 + TRANSPOSE_MIN = -12 + TRANSPOSE_MAX = 12 + REPEAT_MIN = -1 + REPEAT_MAX = 100 + + #Standardize the columns + BUTSIZE = wx.DefaultSize + COLSIZE = 120 + COL1 = 30 + COL2 = COL1 + COLSIZE + COL3 = COL2 + COLSIZE + COL4 = COL3 + COLSIZE + COL5 = COL4 + COLSIZE + COL6 = COL5+ COLSIZE + COL7 = COL6 + COLSIZE + ROWSIZE = 50 + ROW1 = 40 + ROW2 = ROW1 + ROWSIZE + ROW3 = ROW2 + ROWSIZE + ROW4 = ROW3 + ROWSIZE + ROW5 = ROW4 + ROWSIZE + ROW6 = ROW5 + ROWSIZE + ROW7 = ROW6 + ROWSIZE + BUTOFF = 25 + BUTROW1 = 25 + FILEPATH_GRIDWIDTH = 120 + FILEPATH_WIDTH = 250 + + #Segment grid column definitions + SEGMENT_GRID = [('Segment Name', 200, F_SEGNAME), + ('MIDI File', FILEPATH_GRIDWIDTH, F_MIDIFILE), + ('DLS File', FILEPATH_GRIDWIDTH, F_DLSFILE), + ('Start', TIMEWIDTH, F_START), + ('End', TIMEWIDTH, F_END), + ('Quantize', 0, F_QUANTIZE), + ('Transpose', 0, F_TRANSPOSE), + ('Repeat', 0, F_REPEAT), + ('Mute Flags', 0, F_MUTEFLAGS) + ] + + #Clips grid column definitions + CLIPS_GRID = [('Event Name', 200, F_ENAME), + ('Type', 100, F_ETYPE), + ('Start',TIMEWIDTH, F_ESTART), + ('End',TIMEWIDTH, F_EEND), + ('Track',0, F_ETRACK), + ('Channel',0, F_ECHANNEL), + ('EventID',0, F_EEVENTID) + ] + + #Jet open dialog control definitions + JETOPEN_SIZE = (365+200,360) + JETOPEN_CTRLS = [ + ('Jet Creator Files', 'frCreator', 20, 20, (234+200, 244 + ROWSIZE), 0, 0, -1, [], "", True, ""), + ('Open', F_JOPEN, BUTROW1, COL3+200, BUTSIZE, 0, 0, ID_JET_OPEN, [], "OnOk", True, ""), + ('New', F_JNEW, BUTROW1+BUTOFF*1, COL3+200, BUTSIZE, 0, 0, ID_JET_NEW, [], "OnNew", True, ""), + ('Import', F_JIMPORT, BUTROW1+BUTOFF*2, COL3+200, BUTSIZE, 0, 0, ID_JET_IMPORT, [], "OnJetImport", True, ""), + ('Cancel', F_CANCEL, BUTROW1+BUTOFF*3, COL3+200, BUTSIZE, 0, 0, wx.ID_CANCEL, [], "", True, ""), + ('', F_JFILE, ROW1, COL1, 200+200, 0, 0, -1, JTC_FILE_SPEC, "", True, ""), + ('Recent Files', F_JLIST, ROW2, COL1, (200+200,200), 0, 0, -1, [], "", True, ""), + ] + + #Jet properties dialog control definitions + JET_PROPERTIES_SIZE = (465,460) + JET_PROPERTIES_CTRLS = [ + ('Jet Project Properties', 'frProperties', 20, 20, (334, 344 + ROWSIZE), 0, 0, -1, [], "", True, ""), + ('Ok', F_OK, BUTROW1, COL3+100, BUTSIZE, 0, 0, wx.ID_OK, [], "OnOk", True, ""), + ('Cancel', F_CANCEL, BUTROW1+BUTOFF*1, COL3+100, BUTSIZE, 0, 0, wx.ID_CANCEL, [], "", True, ""), + ('Jet File', F_JETFILENAME, ROW1, COL1, 300, 0, 0, -1, JTC_FILE_SPEC, "", True, ""), + ('Copyright', F_COPYRIGHT, ROW2, COL1, 300, 0, 0, -1, [], "", True, ""), + ('Chase Controllers', F_CHASECONTROLLERS, ROW3, COL1, 200, 0, 0, -1, [], "", True, ""), + ('Delete Empty Tracks', F_DELETEEMPTYTRACKS, ROW4 - ROWSIZE/2, COL1, 200, 0, 0, -1, [], "", True, ""), + ] + + #Preferences dialog control definitions + PREFERENCES_SIZE = (465,460) + PREFERENCES_CTRLS = [ + ('Preferences', 'frPreferences', 20, 20, (334, 344 + ROWSIZE), 0, 0, -1, [], "", True, ""), + ('Ok', F_OK, BUTROW1, COL3+100, BUTSIZE, 0, 0, wx.ID_OK, [], "OnOk", True, ""), + ('Cancel', F_CANCEL, BUTROW1+BUTOFF*1, COL3+100, BUTSIZE, 0, 0, wx.ID_CANCEL, [], "", True, ""), + ('Copyright', F_COPYRIGHT, ROW1, COL1, 300, 0, 0, -1, [], "", True, ""), + ('Chase Controllers', F_CHASECONTROLLERS, ROW2, COL1, 200, 0, 0, -1, [], "", True, ""), + ('Delete Empty Tracks', F_DELETEEMPTYTRACKS, ROW3 - ROWSIZE/2, COL1, 200, 0, 0, -1, [], "", True, ""), +# ('Use Project Directories', INI_PROJECT_DIRS, ROW1, COL1, 150, 0, 0, -1, [], "", True, ""), + ] + + #Error dialog control definitions + ERRORCOLW = 220 + ERRORDLG_SIZE = (600,400) + ERRORDLG = [ + ('Ok', F_OK, BUTROW1, 500, BUTSIZE, 0, 0, wx.ID_OK, [], "OnOk", True, ""), + ('', F_ERRGRID, BUTROW1, COL1, (200,300), 0, 0, -1, [], "", True, ""), + ] + + #Event dialog control definitions + BGR = 100 + EVT_OFFSET = 525+BGR + EVTDLG_SIZE = (375+EVT_OFFSET,530) + ID_MUTE = 124 + ID_MIDIFILE = 123 + ID_TRIGGERCLIP = 122 + SEGFRAME_SIZE = (500+BGR, 344 + ROWSIZE) + TRACKGRD_SIZE = (70, SEGFRAME_SIZE[1]-50) + GRAPH_SIZE = (760, 50) + AUDCOL=190 + EVTDLG_CTRLS = [ + ('Segment', 'frSeg', 20, 20, SEGFRAME_SIZE, 0, 0, -1, [], "", False, ""), + ('Segment Name', F_SEGNAME, ROW1, COL1, 200+BGR, 0, 0, -1, [], "", False, ""), + ('MIDI File', F_MIDIFILE, ROW2, COL1, FILEPATH_WIDTH+BGR, 0, 0, ID_MIDIFILE, MIDI_FILE_SPEC, "", False, ""), + ('DLS File', F_DLSFILE, ROW3, COL1, FILEPATH_WIDTH+BGR, 0, 0, -1, DLS_FILE_SPEC, "", False, ""), + ('Starting M/B/T', F_START, ROW4, COL1, TM_WIDTH, 0, 0, -1, [], "", False, ""), + ('Ending M/B/T', F_END, ROW5, COL1, TM_WIDTH, 0, 0, -1, [], "", False, ""), + ('Quantize', F_QUANTIZE, ROW6, COL1, INTWIDTH, QUANTIZE_MIN, QUANTIZE_MAX, -1, [], "", False, HLP_QUANTIZE), + ('Repeat', F_REPEAT, ROW4, AUDCOL, INTWIDTH, REPEAT_MIN, REPEAT_MAX, -1, [], "", False, ""), + ('Transpose', F_TRANSPOSE, ROW5, AUDCOL, INTWIDTH, TRANSPOSE_MIN, TRANSPOSE_MAX, -1, [], "", False, ""), + ('Event', 'frEventg', 20+EVT_OFFSET, 20, (234, 344 + ROWSIZE), 0, 0, -1, [], "", True, ""), + ('Ok', F_ADDCLIP, BUTROW1, COL3+EVT_OFFSET, BUTSIZE, 0, 0, wx.ID_OK, [], "OnOk", True, ""), + ('Cancel', F_CANCEL, BUTROW1+BUTOFF*1, COL3+EVT_OFFSET, BUTSIZE, 0, 0, wx.ID_CANCEL, [], "OnClose", True, ""), + ('Replicate', F_REPLICATE, BUTROW1+BUTOFF*2, COL3+EVT_OFFSET, BUTSIZE, 0, 0, wx.ID_CANCEL, [], "OnReplicate", True, ""), + ('Event Name', F_ENAME, ROW1, COL1+EVT_OFFSET, 200, 0, 0, -1, [], "", True, ""), + ('Event Type', F_ETYPE, ROW2, COL1+EVT_OFFSET, 120, 0, 0, -1, [E_CLIP, E_EOS, E_APP], "OnEventSelect", True, ""), + ('Starting M/B/T', F_ESTART, ROW3, COL1+EVT_OFFSET, TM_WIDTH, 0, 0, -1, [], "", True, ""), + ('Ending M/B/T', F_EEND, ROW4, COL1+EVT_OFFSET, TM_WIDTH, 0, 0, -1, [], "", True, ""), + ('Track', F_ETRACK, ROW5, COL1+EVT_OFFSET, INTWIDTH, TRACK_MIN, TRACK_MAX, -1, [], "", True, ""), + ('Track Mutes', F_MUTEFLAGS, ROW1, COL3 + 15+BGR, TRACKGRD_SIZE, 0, 0, -1, [], "", False, ""), + ('Channel', F_ECHANNEL, ROW6, COL1+EVT_OFFSET, INTWIDTH, CHANNEL_MIN, CHANNEL_MAX, -1, [], "", True, ""), + ('EventID', F_EEVENTID, ROW7, COL1+EVT_OFFSET, INTWIDTH, DEFAULTID_MIN, DEFAULTID_MAX, -1, [], "", True, ""), + ('Play', F_PLAY, BUTROW1+BUTOFF*4, COL3+EVT_OFFSET, BUTSIZE, 0, 0, -1, [], "OnPlay", True, ""), + ('Trigger', F_ETRIGGERBUT, BUTROW1+BUTOFF*5, COL3+EVT_OFFSET, BUTSIZE, 0, 0, ID_TRIGGERCLIP, [], "OnTriggerClip", False, ""), + ('Un-Mute', F_EMUTEBUT, BUTROW1+BUTOFF*6, COL3+EVT_OFFSET, BUTSIZE, 0, 0, ID_MUTE, [], "OnMute", False, ""), + ('Pause', F_PAUSE, BUTROW1+BUTOFF*7, COL3+EVT_OFFSET, BUTSIZE, 0, 0, -1, [], "OnPause", False, ""), + ('Graph', F_GRAPH, 430, 20, (EVTDLG_SIZE[0]-40,60), 0, 0, -1, [], "", True, ""), + (GRAPH_LBLS, F_GRAPHLABELS, (BUTROW1+BUTOFF*10)+70, COL3+EVT_OFFSET+5, 200, 0, 0, -1, [], "OnSetGraphOptions", True, ""), + (GRAPH_APP, F_GRAPHCLIPS, (BUTROW1+BUTOFF*10)+90, COL3+EVT_OFFSET+5, 200, 0, 0, -1, [], "OnSetGraphOptions", True, ""), + (GRAPH_TRIGGER, F_GRAPHAPPEVTS, (BUTROW1+BUTOFF*10)+110, COL3+EVT_OFFSET+5, 200, 0, 0, -1, [], "OnSetGraphOptions", True, ""), + ("Graph", "boxGraph", (BUTROW1+BUTOFF*10)+45, COL3+EVT_OFFSET, (90,95), 0, 0, -1, [], "", True, ""), + + ] + + #Segment dialog control definitions + BGR = 100 + AUDCOL = 560 + COLADD = 500 + BGR + SEGDLG_SIZE = (890+BGR,530) + SEGFRAME_SIZE = (375+BGR, 394) + AUDFRAME_SIZE = (350, 394) + TRACKGRD_SIZE = (200, AUDFRAME_SIZE[1]-60) + MUTEGRD_TRACK = 50 + MUTEGRD_CHANNEL = 60 + MUTEGRD_NAME = 100 + BIGBUT = (100, 25) + FILEPATH_WIDTH = 350 + SEGDLG_CTRLS = [ + ('Segment', 'frSeg', 20, 20, SEGFRAME_SIZE, 0, 0, -1, [], "", True, ""), + ('Audition', 'frAudition', SEGFRAME_SIZE[0]+30, 20, AUDFRAME_SIZE, 0, 0, -1, [], "", True, ""), + ('Segment Name', F_SEGNAME, ROW1, COL1, 200+BGR, 0, 0, -1, [], "", True, ""), + ('MIDI File', F_MIDIFILE, ROW2, COL1, FILEPATH_WIDTH+BGR, 0, 0, ID_MIDIFILE, MIDI_FILE_SPEC, "", True, ""), + ('DLS File', F_DLSFILE, ROW3, COL1, FILEPATH_WIDTH+BGR, 0, 0, -1, DLS_FILE_SPEC, "", True, ""), + ('Starting M/B/T', F_START, ROW4, COL1, TM_WIDTH, 0, 0, -1, [], "", True, ""), + ('Ending M/B/T', F_END, ROW5, COL1, TM_WIDTH, 0, 0, -1, [], "", True, ""), + ('Quantize', F_QUANTIZE, ROW6, COL1, INTWIDTH, QUANTIZE_MIN, QUANTIZE_MAX, -1, [], "", True, HLP_QUANTIZE), + ('Repeat', F_REPEAT, ROW1, AUDCOL+100+BGR, INTWIDTH, REPEAT_MIN, REPEAT_MAX, -1, [], "", True, ""), + ('Transpose', F_TRANSPOSE, ROW2, AUDCOL+100+BGR, INTWIDTH, TRANSPOSE_MIN, TRANSPOSE_MAX, -1, [], "", True, ""), + ('Track Mutes', F_MUTEFLAGS, ROW1, COL3 + 145+BGR, TRACKGRD_SIZE, 0, 0, -1, [], "", True, ""), + ('Display Empty Tracks', F_DISPEMPTYTRACKS, ROW1+TRACKGRD_SIZE[1]+20, COL3 + 145+BGR, 200, 0, 0, -1, [], "OnSetTrackDisplayOption", True, ""), + ('Ok', F_ADDSEG, BUTROW1, COL3 + COLADD, BIGBUT, 0, 0, wx.ID_OK, [], "OnOk", True, ""), + ('Cancel', F_CANCEL, BUTROW1+BUTOFF*1, COL3 + COLADD, BIGBUT, 0, 0, wx.ID_CANCEL, [], "OnClose", True, ""), + ('Replicate', F_REPLICATE, BUTROW1+BUTOFF*2, COL3 + COLADD, BIGBUT, 0, 0, wx.ID_CANCEL, [], "OnReplicate", True, ""), + + ('Play Segment', F_PLAY, BUTROW1+BUTOFF*4, COL3 + COLADD, BIGBUT, 0, 0, -1, [], "OnPlay", True, ""), + ('Play MIDI File', F_PLAYMIDI, BUTROW1+BUTOFF*5, COL3 + COLADD, BIGBUT, 0, 0, -1, [], "OnPlayMidi", True, ""), + ('Pause', F_PAUSE, BUTROW1+BUTOFF*6, COL3 + COLADD, BIGBUT, 0, 0, -1, [], "OnPause", False, ""), + ('Graph', F_GRAPH, 430, 20, (SEGDLG_SIZE[0]-40,60), 0, 0, -1, [], "", True, ""), + ('Graph', F_RDOGRAPH, (BUTROW1+BUTOFF*10), COL3 + COLADD, (100,140), 0, 0, -1, ["MIDI File", "Segment"], "OnSetGraphType", True, ""), + + (GRAPH_LBLS, F_GRAPHLABELS, (BUTROW1+BUTOFF*10)+70, COL3 + COLADD+5, 200, 0, 0, -1, [], "OnSetGraphOptions", True, ""), + (GRAPH_APP, F_GRAPHCLIPS, (BUTROW1+BUTOFF*10)+90, COL3 + COLADD+5, 200, 0, 0, -1, [], "OnSetGraphOptions", True, ""), + (GRAPH_TRIGGER, F_GRAPHAPPEVTS, (BUTROW1+BUTOFF*10)+110, COL3 + COLADD+5, 200, 0, 0, -1, [], "OnSetGraphOptions", True, ""), + ] + + + REPLICATE_MAX = 999 + F_RPINCREMENT = "tmIncrement" + F_RPGRDPREVIEW = "grdPreview" + F_RPPREFIX = "txtPrefix" + F_RPREPLACE = "chkReplaceMatching" + F_RPMOVE = "chkMoveMatching" + F_RPNUMBER = "spnNumber" + F_RPBUT = "btnPreview" + REPLICATE_GRID = [('Event Name', 200, F_ENAME), + ('Start',TIMEWIDTH, F_ESTART), + ('End',TIMEWIDTH, F_EEND) + ] + REPLICATE_SIZE = (515,550) + REPLICATEGRID_SIZE = (350,310) + REPLICATE_CTRLS = [ + ('Replicate', 'frRep', 20, 20, (384, 480), 0, 0, -1, [], "", True, ""), + ('Ok', F_OK, BUTROW1, COL3+150, BUTSIZE, 0, 0, wx.ID_OK, [], "OnOk", True, ""), + ('Cancel', F_CANCEL, BUTROW1+BUTOFF*1, COL3+150, BUTSIZE, 0, 0, wx.ID_CANCEL, [], "", True, ""), + ('Preview', F_RPBUT , BUTROW1+BUTOFF*2, COL3+150, BUTSIZE, 0, 0, -1, [], "OnPreview", True, ""), + ('Name Prefix', F_RPPREFIX, ROW1, COL1, 300, 0, 0, -1, [], "", True, ""), + ('Replace Existing Items Matching Prefix', F_RPREPLACE, ROW3, COL1, 200, 0, 0, -1, [], "", True, ""), + ('Preview', F_RPGRDPREVIEW, ROW4-20, COL1, REPLICATEGRID_SIZE, 0, 0, -1, [], "", True, ""), + ('Starting M/B/T', F_ESTART, ROW2, COL1, TM_WIDTH, 0, 0, -1, [], "", True, ""), + ('Increment M/B/T', F_RPINCREMENT, ROW2, COL2+20, TM_WIDTH, 0, 0, -1, [], "", True, ""), + ('Number', F_RPNUMBER, ROW2, COL3+40, INTWIDTH, 1, REPLICATE_MAX, -1, [], "", True, ""), + ] + + + MOVE_SIZE = (350,390) + MOVE_CTRLS = [ + ('Move', 'frRep', 20, 20, (384, 480), 0, 0, -1, [], "", True, ""), + ('Ok', F_OK, BUTROW1, COL3+150, BUTSIZE, 0, 0, wx.ID_OK, [], "OnOk", True, ""), + ('Cancel', F_CANCEL, BUTROW1+BUTOFF*1, COL3+150, BUTSIZE, 0, 0, wx.ID_CANCEL, [], "", True, ""), + ('Preview', F_RPBUT , BUTROW1+BUTOFF*2, COL3+150, BUTSIZE, 0, 0, -1, [], "OnPreview", True, ""), + ('Starting M/B/T', F_ESTART, ROW1, COL1, TM_WIDTH, 0, 0, -1, [], "", True, ""), + ('Increment M/B/T', F_RPINCREMENT, ROW1, COL2+20, TM_WIDTH, 0, 0, -1, [], "", True, ""), + ('Preview', F_RPGRDPREVIEW, ROW2, COL1, MOVE_SIZE, 0, 0, -1, [], "", True, ""), + ] + +if __name__ == '__main__': + jd = JetDefs() + jd.CreateHelpIniFile() diff --git a/jet_tools/JetCreator/JetDialogs.py b/jet_tools/JetCreator/JetDialogs.py new file mode 100755 index 0000000..67d689b --- /dev/null +++ b/jet_tools/JetCreator/JetDialogs.py @@ -0,0 +1,1031 @@ +""" + File: + JetDialogs.py + + Contents and purpose: + Dialog boxes used in JetCreator + + Copyright (c) 2008 Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +""" + +import wx +import thread +import wx.lib.newevent + +from JetDefs import * +from JetCtrls import * +from JetFile import * +from JetUtils import * +from JetPreview import * +from JetSegGraph import * +from eas import * +from JetStatusEvent import * + +PLAY_SEGMENT = 1 +PLAY_MIDI = 2 + +class JetEdit(): + """ Class used to build dialog box controls from the definitions in JetDefs """ + def __init__(self, panel, ctrlList, callbackClass): + LBL_OFFSET = 15 + + ctrls = getattr(JetDefs, ctrlList) + self.ctrls = {} + for Lbl, Text, Row, Col, Len, Min, Max, Id, Lst, Fct, Enabled, HelpText in ctrls: + try: + iDisplayLbl = True + if Text[0:3] == "btn": + self.ctrls[Text] = wx.Button(panel, Id, Lbl, wx.Point(Col, Row), size=Len) + if Fct > "": + self.ctrls[Text].Bind(wx.EVT_BUTTON, getattr(callbackClass, Fct), self.ctrls[Text], id=Id) + if Id == wx.ID_OK: + self.ctrls[Text].SetDefault() + iDisplayLbl = False + else: + if Text[0:3] == "txt": + self.ctrls[Text] = wx.TextCtrl(panel, Id, "", wx.Point(Col, Row + LBL_OFFSET +3), wx.Size(Len,-1)) + elif Text[0:4] == "spn1": + self.ctrls[Text] = JetSpinOneBased(panel, Id, "", wx.Point(Col, Row + LBL_OFFSET), wx.Size(Len,-1), min=Min, max=Max) + elif Text[0:3] == "spn": + self.ctrls[Text] = JetSpin(panel, Id, "", wx.Point(Col, Row + LBL_OFFSET), wx.Size(Len,-1), min=Min, max=Max) + elif Text[0:3] == "cmb": + self.ctrls[Text] = wx.ComboBox(panel, Id, "", wx.Point(Col, Row + LBL_OFFSET), wx.Size(Len,-1), Lst, wx.CB_DROPDOWN | wx.CB_READONLY ) + self.ctrls[Text].SetValue(Lst[0]) + if Fct > "": + self.ctrls[Text].Bind(wx.EVT_COMBOBOX, getattr(callbackClass, Fct), self.ctrls[Text]) + elif Text[0:2] == "tm": + self.ctrls[Text] = TimeCtrl(panel, pos=(Col, Row + LBL_OFFSET), ctlName=Text) + elif Text[0:7] == "filecmb": + self.ctrls[Text] = JetFileCombo(panel, pos=(Col, Row + LBL_OFFSET), size=wx.Size(Len,-1), title=Lbl, spec=Lst, id=Id) + elif Text[0:7] == "filetxt": + self.ctrls[Text] = JetFileText(panel, pos=(Col, Row + LBL_OFFSET), size=wx.Size(Len,-1), title=Lbl, spec=Lst, id=Id) + elif Text[0:2] == "fr": + self.ctrls[Text] = wx.StaticBox(parent=panel, id=wx.ID_ANY, label=Lbl, pos=(Row, Col), size=Len) + iDisplayLbl = False + elif Text[0:3] == "chk": + self.ctrls[Text] = JetCheckBox(panel, Id, label=Lbl, pos=(Col, Row), size=wx.Size(Len,-1)) + iDisplayLbl = False + if Fct > "": + self.ctrls[Text].Bind(wx.EVT_CHECKBOX , getattr(callbackClass, Fct), self.ctrls[Text]) + elif Text[0:6] == "rdobox": + self.ctrls[Text] = wx.RadioBox(panel, Id, label=Lbl, pos=(Col, Row), size=Len, choices=Lst, majorDimension=1, style=wx.RA_SPECIFY_COLS) + iDisplayLbl = False + if Fct > "": + self.ctrls[Text].Bind(wx.EVT_RADIOBOX , getattr(callbackClass, Fct), self.ctrls[Text]) + elif Text[0:3] == "opt": + self.ctrls[Text] = JetRadioButton(panel, Id, label=Lbl, pos=(Col, Row), size=wx.Size(Len,-1)) + iDisplayLbl = False + self.ctrls[Text].SetValue(Lst) + if Fct > "": + self.ctrls[Text].Bind(wx.EVT_RADIOBUTTON , getattr(callbackClass, Fct), self.ctrls[Text]) + elif Text[0:3] == "lst": + self.ctrls[Text] = wx.ListBox(panel, Id, pos=(Col, Row), size=Len) + iDisplayLbl = False + elif Text[0:4] == "grd2": + self.ctrls[Text] = JetTrackCtrl(panel, Id, pos=(Col, Row + LBL_OFFSET), size=Len, style=wx.LC_REPORT | wx.SUNKEN_BORDER) + iDisplayLbl = True + elif Text[0:3] == "grd": + self.ctrls[Text] = JetListCtrl(panel, Id, pos=(Col, Row), size=Len) + iDisplayLbl = False + elif Text[0:5] == "graph": + self.ctrls[Text] = SegmentGraph(panel, pos=(Col, Row), size=Len) + iDisplayLbl = False + elif Text[0:3] == "hlp": + self.ctrls[Text] = wx.ContextHelpButton(panel, Id, pos=(Col, Row)) + iDisplayLbl = False + elif Text[0:3] == "lbl": + self.ctrls[Text] = wx.StaticText(panel, Id, Lbl, wx.Point(Col, Row), size=wx.Size(Len[0],Len[1])) + iDisplayLbl = False + elif Text[0:3] == "box": + self.ctrls[Text] = wx.StaticBox(panel, wx.ID_ANY, Lbl, pos=(Col, Row), size=Len) + iDisplayLbl = False + + if iDisplayLbl: + self.ctrls[Lbl] = wx.StaticText(panel, Id, Lbl, wx.Point(Col, Row)) + if not Enabled: + self.ctrls[Text].Enable(False) + + helpText = IniGetValue(JetDefs.JETCREATOR_HLP, ctrlList, Lbl) + if helpText > "": + self.ctrls[Text].SetHelpText(helpText) + + #except AttributeError: + #No stub function for testing + #print("def " + Fct + "(self, event): pass") + except: + raise + + def GetValue(self, fld): + """ Gets the value of a control """ + return self.ctrls[fld].GetValue() + + def SetValue(self, fld, val): + """ Sets the value of a control """ + self.ctrls[fld].SetValue(val) + +class JetOpen(wx.Dialog): + """ Opens a jet definition file """ + def __init__(self): + wx.Dialog.__init__(self, None, -1, JetDefs.DLG_JETOPEN) + self.fileName = "" + self.je = JetEdit(self, "JETOPEN_CTRLS", self) + fileList = GetRecentJetFiles() + self.je.ctrls[JetDefs.F_JLIST].AppendItems(fileList) + if len(fileList) > 0: + self.je.ctrls[JetDefs.F_JFILE].SetValue(fileList[0]) + self.Bind(wx.EVT_LISTBOX_DCLICK, self.OnOpen) + self.Bind(wx.EVT_LISTBOX, self.OnClick) + self.SetSize(JetDefs.JETOPEN_SIZE) + self.CenterOnParent() + + def OnJetImport(self, event): + """ Exit the dialog with flag to import """ + self.EndModal(JetDefs.ID_JET_IMPORT) + + def OnClick(self, event): + """ Clicking on item in listbox """ + sValue = self.je.ctrls[JetDefs.F_JLIST].GetString(self.je.ctrls[JetDefs.F_JLIST].GetSelection()) + self.je.ctrls[JetDefs.F_JFILE].SetValue(sValue) + + def OnOpen(self, event): + """ Double clicking on item in listbox """ + sValue = self.je.ctrls[JetDefs.F_JLIST].GetString(self.je.ctrls[JetDefs.F_JLIST].GetSelection()) + self.je.ctrls[JetDefs.F_JFILE].SetValue(sValue) + if self.Validate(): + self.fileName = self.je.ctrls[JetDefs.F_JFILE].GetValue() + AppendRecentJetFile(self.fileName) + self.EndModal(JetDefs.ID_JET_OPEN) + + def OnOk(self, event): + """ Clicking the ok button """ + if self.Validate(): + self.fileName = self.je.ctrls[JetDefs.F_JFILE].GetValue() + AppendRecentJetFile(self.fileName) + self.EndModal(JetDefs.ID_JET_OPEN) + + def OnNew(self, event): + """ Exit the dialog with flag to create new blank jet file """ + self.EndModal(JetDefs.ID_JET_NEW) + + def Validate(self): + """ Validates the filename """ + if len(self.je.ctrls[JetDefs.F_JFILE].GetValue()) == 0: + InfoMsg("Jet Filename", "The Jet filename is blank.") + self.je.ctrls[JetDefs.F_JFILE].SetFocus() + return False + if not FileExists(self.je.ctrls[JetDefs.F_JFILE].GetValue()): + InfoMsg("MIDI File", "The file does not exist.") + self.je.ctrls[JetDefs.F_JFILE].SetFocus() + return False + return True + +class JetPreferences(wx.Dialog): + """ Preferences dialog box """ + def __init__(self): + wx.Dialog.__init__(self, None, -1, JetDefs.DLG_PREFERENCES) + self.SetExtraStyle(wx.DIALOG_EX_CONTEXTHELP) + self.je = JetEdit(self, "PREFERENCES_CTRLS", self) + self.SetSize(JetDefs.PREFERENCES_SIZE) + self.CenterOnParent() + + def OnOk(self, event): + self.EndModal(wx.ID_OK) + + def GetValue(self, fld): + return self.je.ctrls[fld].GetValue() + + def SetValue(self, fld, val): + self.je.ctrls[fld].SetValue(val) + + +class JetAbout(wx.Dialog): + """ About dialog box """ + def __init__(self): + wx.Dialog.__init__(self, None, -1, JetDefs.DLG_ABOUT) + img = __import__('img_splash') + bmp = img.getBitmap() + b = wx.StaticBitmap(self, -1, bmp) + self.SetSize((bmp.GetWidth(), bmp.GetHeight())) + self.CenterOnParent() + s = __import__('sys') + print(s.platform) + + def OnOk(self, event): + self.EndModal(wx.ID_OK) + + def GetValue(self, fld): + return self.je.ctrls[fld].GetValue() + + def SetValue(self, fld, val): + self.je.ctrls[fld].SetValue(val) + + +class JetPropertiesDialog(wx.Dialog): + """ Properties dialog box """ + def __init__(self): + wx.Dialog.__init__(self, None, -1, JetDefs.DLG_PROPERTIES) + self.SetExtraStyle(wx.DIALOG_EX_CONTEXTHELP) + self.je = JetEdit(self, "JET_PROPERTIES_CTRLS", self) + self.SetSize(JetDefs.JET_PROPERTIES_SIZE) + self.CenterOnParent() + + def OnOk(self, event): + self.EndModal(wx.ID_OK) + + def GetValue(self, fld): + return self.je.ctrls[fld].GetValue() + + def SetValue(self, fld, val): + self.je.ctrls[fld].SetValue(val) + + +class JetErrors(wx.Dialog): + """ Errors dialog box """ + def __init__(self, title): + wx.Dialog.__init__(self, None, -1, title) + self.je = JetEdit(self, "ERRORDLG", self) + self.SetSize(JetDefs.ERRORDLG_SIZE) + self.CenterOnParent() + + def OnOk(self, event): + self.EndModal(wx.ID_OK) + + def SetErrors(self, errors): + self.je.ctrls[JetDefs.F_ERRGRID].AddCol("Error", JetDefs.ERRORCOLW) + self.je.ctrls[JetDefs.F_ERRGRID].AddCol("Description", JetDefs.ERRORCOLW) + self.je.ctrls[JetDefs.F_ERRGRID].AddRows(errors) + + +class SegEdit(wx.Dialog): + """ Dialog box to edit segments """ + def __init__(self, title, currentJetConfigFile): + wx.Dialog.__init__(self, None, -1, title) + self.SetExtraStyle(wx.DIALOG_EX_CONTEXTHELP) + self.currentJetConfigFile = currentJetConfigFile + self.je = JetEdit(self, "SEGDLG_CTRLS", self) + self.je.ctrls[JetDefs.F_MIDIFILE].cmb.Bind(wx.EVT_KILL_FOCUS, self.OnMidiChanged) + self.je.ctrls[JetDefs.F_MIDIFILE].cmb.Bind(wx.EVT_COMBOBOX, self.OnMidiChanged) + self.je.ctrls[JetDefs.F_MIDIFILE].SetEventFire(True) + self.je.ctrls[JetDefs.F_MUTEFLAGS].AddCol(JetDefs.GRD_TRACK, JetDefs.MUTEGRD_TRACK) + self.je.ctrls[JetDefs.F_MUTEFLAGS].AddCol(JetDefs.GRD_CHANNEL, JetDefs.MUTEGRD_CHANNEL) + self.je.ctrls[JetDefs.F_MUTEFLAGS].AddCol(JetDefs.GRD_NAME, JetDefs.MUTEGRD_NAME) + self.je.ctrls[JetDefs.F_MUTEFLAGS].BindCheckBox(self.OnEventChecked) + self.je.ctrls[JetDefs.F_START].SetChangeCallbackFct(self.UpdateGraph) + self.je.ctrls[JetDefs.F_END].SetChangeCallbackFct(self.UpdateGraph) + self.je.ctrls[JetDefs.F_DISPEMPTYTRACKS].SetValue(IniGetValue(self.currentJetConfigFile, JetDefs.F_DISPEMPTYTRACKS, JetDefs.F_DISPEMPTYTRACKS, 'bool', 'False')) + self.je.ctrls[JetDefs.F_GRAPHLABELS].SetValue(IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHLABELS, JetDefs.F_GRAPHLABELS, 'bool', 'True')) + self.je.ctrls[JetDefs.F_GRAPHCLIPS].SetValue(IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHCLIPS, JetDefs.F_GRAPHCLIPS, 'bool', 'True')) + self.je.ctrls[JetDefs.F_GRAPHAPPEVTS].SetValue(IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHAPPEVTS, JetDefs.F_GRAPHAPPEVTS, 'bool', 'True')) + self.replicatePrefix = "" + self.lstReplicate = [] + self.chkReplaceMatching = False + + EVT_JET_STATUS(self, self.OnJetStatusUpdate) + wx.EVT_CLOSE(self, self.OnClose) + + self.Player = None + self.segment = None + self.graphSegment = None + self.jetevents = [] + self.lastMidiFile = "" + self.lastMidiInfo = None + self.playMode = PLAY_SEGMENT + self.graphMode = PLAY_MIDI + self.SetSize(JetDefs.SEGDLG_SIZE) + self.CenterOnParent() + + def OnClose(self, event): + """ Closing the dialog box """ + self.ShutdownPlayer() + self.je.ctrls[JetDefs.F_START].UnBindKillFocus() + self.je.ctrls[JetDefs.F_END].UnBindKillFocus() + self.EndModal(wx.ID_CANCEL) + + def ShutdownPlayer(self): + """ Shutdown player flag """ + if self.Player is not None: + self.Player.SetKeepPlayingFlag(False) + + def OnMidiChanged(self, event): + """ When new midi file selected, get its info """ + self.UpdateMaxMbt() + event.Skip() + + def UpdateMaxMbt(self): + """ Get midi info in thread so UI smoother """ + thread.start_new_thread(self.UpdateMaxMbtThread, ()) + + def UpdateMaxMbtThread(self): + """ Thread to get midi file info """ + if self.je.ctrls[JetDefs.F_MIDIFILE].GetValue() == self.lastMidiFile: + return + self.lastMidiFile = self.je.ctrls[JetDefs.F_MIDIFILE].GetValue() + self.lastMidiInfo = GetMidiInfo(self.je.ctrls[JetDefs.F_MIDIFILE].GetValue()) + wx.PostEvent(self, JetStatusEvent(JetDefs.PST_MIDI_INFO, self.lastMidiInfo)) + + def GetValue(self, fld): + """ Gets a control value """ + return self.je.ctrls[fld].GetValue() + + def SetValue(self, fld, val): + """ Sets a control value """ + self.je.ctrls[fld].SetValue(val) + if self.je.ctrls[fld] == self.je.ctrls[JetDefs.F_MIDIFILE]: + self.UpdateMaxMbt() + + def OnOk(self, event): + """ Exits dialog box """ + self.ShutdownPlayer() + if self.Validate(): + self.je.ctrls[JetDefs.F_START].UnBindKillFocus() + self.je.ctrls[JetDefs.F_END].UnBindKillFocus() + self.EndModal(wx.ID_OK) + + def Validate(self): + """ Validates the control values before exiting """ + if not CompareMbt(self.je.ctrls[JetDefs.F_START].GetValue(), self.je.ctrls[JetDefs.F_END].GetValue()): + InfoMsg("Start/End", "The segment starting and ending times are illogical.") + self.je.ctrls[JetDefs.F_START].SetFocus() + return False + if len(self.je.ctrls[JetDefs.F_SEGNAME].GetValue()) == 0: + InfoMsg("Segment Name", "The segment must have a name.") + self.je.ctrls[JetDefs.F_SEGNAME].SetFocus() + return False + if len(self.je.ctrls[JetDefs.F_MIDIFILE].GetValue()) == 0: + InfoMsg("MIDI File", "The segment must have a midi file selected.") + self.je.ctrls[JetDefs.F_MIDIFILE].SetFocus() + return False + if not FileExists(self.je.ctrls[JetDefs.F_MIDIFILE].GetValue()): + InfoMsg("MIDI File", "The MIDI file does not exist.") + self.je.ctrls[JetDefs.F_MIDIFILE].SetFocus() + return False + if len(self.je.ctrls[JetDefs.F_DLSFILE].GetValue()) > 0: + if not FileExists(self.je.ctrls[JetDefs.F_DLSFILE].GetValue()): + InfoMsg("DLS File", "The DLS file does not exist.") + self.je.ctrls[JetDefs.F_DLSFILE].SetFocus() + return False + self.je.ctrls[JetDefs.F_MUTEFLAGS].SetValue(ComputeMuteFlagsFromList(self.je.ctrls[JetDefs.F_MUTEFLAGS])) + return True + + def SetSegment(self, mode): + """ Builds the segment info for graphing """ + if mode == PLAY_SEGMENT: + jetevents = self.jetevents + segment = JetSegment(self.GetValue(JetDefs.F_SEGNAME), + self.GetValue(JetDefs.F_MIDIFILE), + self.GetValue(JetDefs.F_START), + self.GetValue(JetDefs.F_END), + JetDefs.MBT_ZEROSTR, + self.GetValue(JetDefs.F_SEGNAME), + self.GetValue(JetDefs.F_QUANTIZE), + jetevents, + self.GetValue(JetDefs.F_DLSFILE), + None, + self.GetValue(JetDefs.F_TRANSPOSE), + self.GetValue(JetDefs.F_REPEAT), + self.GetValue(JetDefs.F_MUTEFLAGS)) + else: + jetevents = [] + segment = JetSegment(self.GetValue(JetDefs.F_SEGNAME), + self.GetValue(JetDefs.F_MIDIFILE), + JetDefs.MBT_ZEROSTR, + self.lastMidiInfo.endMbtStr, + JetDefs.MBT_ZEROSTR, + self.GetValue(JetDefs.F_SEGNAME), + self.GetValue(JetDefs.F_QUANTIZE), + jetevents, + self.GetValue(JetDefs.F_DLSFILE), + None, + 0, + 0, + 0) + return segment + + def OnEventChecked(self, index, checked): + """ Track is checked so mute or unmute it """ + if self.Player is not None: + trackNum = self.je.ctrls[JetDefs.F_MUTEFLAGS].GetTrackNumber(index) + self.Player.SetMuteFlag(trackNum, checked) + + def OnPlay(self, event): + """ Play the segment button pressed """ + if self.je.ctrls[JetDefs.F_PLAY].GetLabel() == JetDefs.BUT_STOP: + self.Player.SetKeepPlayingFlag(False) + return + + if not self.Validate(): + return + + self.playMode = PLAY_SEGMENT + self.graphSegment = self.SetSegment(self.graphMode) + self.UpdateGraph() + self.Player = PreviewPlayer(self.je.ctrls[JetDefs.F_PLAY], self.SetSegment(self.playMode)) + self.Player.SetGraphCtrl(self.je.ctrls[JetDefs.F_GRAPH], self) + self.PlayerThread = thread.start_new_thread(self.Player .Start, ()) + + def OnPlayMidi(self, event): + """ Play the whole midi file pressed """ + if self.je.ctrls[JetDefs.F_PLAYMIDI].GetLabel() == JetDefs.BUT_STOP: + self.Player.SetKeepPlayingFlag(False) + return + + if not self.Validate(): + return + + self.playMode = PLAY_MIDI + self.graphSegment = self.SetSegment(self.graphMode) + self.UpdateGraph() + self.Player = PreviewPlayer(self.je.ctrls[JetDefs.F_PLAYMIDI], self.SetSegment(self.playMode)) + self.Player.SetGraphCtrl(self.je.ctrls[JetDefs.F_GRAPH], self) + self.PlayerThread = thread.start_new_thread(self.Player .Start, ()) + + def OnSetGraphType(self, event): + """ Sets the type of graph """ + self.SetGraphType(event.GetInt()) + + def SetGraphType(self, iMode): + """ Sets the type of graph """ + if iMode == 1: + self.graphMode = PLAY_SEGMENT + else: + self.graphMode = PLAY_MIDI + self.graphSegment = self.SetSegment(self.graphMode) + self.UpdateGraph() + + def OnGraphUpdate(self, evt): + """ Calls graph control to draw """ + self.je.ctrls[JetDefs.F_GRAPH].DoDrawing() + + def UpdateGraph(self): + """ Updates values for graph control """ + if self.graphMode == PLAY_SEGMENT: + self.je.ctrls[JetDefs.F_GRAPH].LoadSegment(self.graphSegment, showLabels=IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHLABELS, JetDefs.F_GRAPHLABELS, 'bool', 'True'), showClips=IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHCLIPS, JetDefs.F_GRAPHCLIPS, 'bool', 'True'), showAppEvts=IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHAPPEVTS, JetDefs.F_GRAPHAPPEVTS, 'bool', 'True')) + else: + if self.playMode == PLAY_SEGMENT: + iMidiMode = True + else: + iMidiMode = False + self.je.ctrls[JetDefs.F_GRAPH].LoadSegment(self.graphSegment,(self.GetValue(JetDefs.F_SEGNAME), self.GetValue(JetDefs.F_START), self.GetValue(JetDefs.F_END)), iMidiMode, showLabels=IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHLABELS, JetDefs.F_GRAPHLABELS, 'bool', 'True'), showClips=IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHCLIPS, JetDefs.F_GRAPHCLIPS, 'bool', 'True'), showAppEvts=IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHAPPEVTS, JetDefs.F_GRAPHAPPEVTS, 'bool', 'True')) + + def OnJetStatusUpdate(self, evt): + """ All UI needed by thread must be called via Postevent or OS X crashes """ + if evt.mode == JetDefs.PST_UPD_LOCATION: + self.je.ctrls[JetDefs.F_GRAPH].UpdateLocation(evt.data) + elif evt.mode == JetDefs.PST_PLAY: + if self.playMode == PLAY_SEGMENT: + self.je.ctrls[JetDefs.F_PLAY].SetLabel(JetDefs.BUT_STOP) + self.je.ctrls[JetDefs.F_PLAYMIDI].Enabled = False + else: + self.je.ctrls[JetDefs.F_RDOGRAPH].Enabled = False + self.je.ctrls[JetDefs.F_PLAYMIDI].SetLabel(JetDefs.BUT_STOP) + self.je.ctrls[JetDefs.F_PLAY].Enabled = False + + self.je.ctrls[JetDefs.F_PAUSE].Enabled = True + self.je.ctrls[JetDefs.F_PAUSE].SetLabel(JetDefs.BUT_PAUSE) + elif evt.mode == JetDefs.PST_DONE: + self.je.ctrls[JetDefs.F_RDOGRAPH].Enabled = True + if self.playMode == PLAY_SEGMENT: + self.je.ctrls[JetDefs.F_PLAY].SetLabel(JetDefs.BUT_PLAYSEG) + self.je.ctrls[JetDefs.F_PLAYMIDI].Enabled = True + else: + self.je.ctrls[JetDefs.F_PLAYMIDI].SetLabel(JetDefs.BUT_PLAYMIDI) + self.je.ctrls[JetDefs.F_PLAY].Enabled = True + + self.je.ctrls[JetDefs.F_PAUSE].Enabled = False + self.je.ctrls[JetDefs.F_PAUSE].SetLabel(JetDefs.BUT_PAUSE) + elif evt.mode == JetDefs.PST_PAUSE: + self.je.ctrls[JetDefs.F_PAUSE].SetLabel(JetDefs.BUT_RESUME) + elif evt.mode == JetDefs.PST_RESUME: + self.je.ctrls[JetDefs.F_PAUSE].SetLabel(JetDefs.BUT_PAUSE) + elif evt.mode == JetDefs.PST_MIDI_INFO: + ClearRowSelections(self.je.ctrls[JetDefs.F_MUTEFLAGS]) + self.md = evt.data + if self.md.err == 0: + self.je.ctrls[JetDefs.F_END].SetMaxMbt(self.md.maxMeasures+1,self.md.maxBeats,self.md.maxTicks) + if self.je.ctrls[JetDefs.F_END].GetValue() == JetDefs.MBT_ZEROSTR: + self.je.ctrls[JetDefs.F_END].SetValue((self.md.maxMeasures,0,0)) + self.je.ctrls[JetDefs.F_START].SetMaxMbt(self.md.maxMeasures+1,self.md.maxBeats,self.md.maxTicks) + self.je.ctrls[JetDefs.F_MUTEFLAGS].DeleteAllItems() + loadEmpty = IniGetValue(self.currentJetConfigFile, JetDefs.INI_DISPEMPTYTRACKS, JetDefs.INI_DISPEMPTYTRACKS, 'bool', 'False') + for track in self.md.trackList: + self.je.ctrls[JetDefs.F_MUTEFLAGS].AddTrackRow(track, loadEmpty) + self.je.ctrls[JetDefs.F_MUTEFLAGS].CheckTracks(self.je.ctrls[JetDefs.F_MUTEFLAGS].GetValue()) + self.graphSegment = self.SetSegment(self.graphMode) + self.UpdateGraph() + + def OnSetTrackDisplayOption(self, evt): + IniSetValue(self.currentJetConfigFile, JetDefs.INI_DISPEMPTYTRACKS, JetDefs.INI_DISPEMPTYTRACKS, self.je.ctrls[JetDefs.F_DISPEMPTYTRACKS].GetValue()) + loadEmpty = IniGetValue(self.currentJetConfigFile, JetDefs.INI_DISPEMPTYTRACKS, JetDefs.INI_DISPEMPTYTRACKS, 'bool', 'False') + if self.md is not None: + self.je.ctrls[JetDefs.F_MUTEFLAGS].DeleteAllItems() + if self.md.err == 0: + for track in self.md.trackList: + self.je.ctrls[JetDefs.F_MUTEFLAGS].AddTrackRow(track, loadEmpty) + + def OnPause(self, evt): + """ Pauses the playback """ + self.Player.Pause() + + def OnSetGraphOptions(self, evt): + """ Sets graph options """ + IniSetValue(self.currentJetConfigFile, JetDefs.F_GRAPHLABELS, JetDefs.F_GRAPHLABELS, self.je.ctrls[JetDefs.F_GRAPHLABELS].GetValue()) + IniSetValue(self.currentJetConfigFile, JetDefs.F_GRAPHAPPEVTS, JetDefs.F_GRAPHAPPEVTS, self.je.ctrls[JetDefs.F_GRAPHAPPEVTS].GetValue()) + IniSetValue(self.currentJetConfigFile, JetDefs.F_GRAPHCLIPS, JetDefs.F_GRAPHCLIPS, self.je.ctrls[JetDefs.F_GRAPHCLIPS].GetValue()) + self.UpdateGraph() + + def OnReplicate(self, evt): + dlg = JetReplicate("Replicate Segment") + dlg.SetValue(JetDefs.F_RPREPLACE, True) + dlg.SetName(self.GetValue(JetDefs.F_SEGNAME)) + dlg.event_type = "SEGMENT" + dlg.event_max = self.je.ctrls[JetDefs.F_START].GetMaxMbt() + dlg.length = MbtDifference(ConvertStrTimeToTuple(self.GetValue(JetDefs.F_START)), ConvertStrTimeToTuple(self.GetValue(JetDefs.F_END))) + result = dlg.ShowModal() + if result == wx.ID_OK: + self.replicatePrefix = dlg.GetValue(JetDefs.F_RPPREFIX) + self.lstReplicate = dlg.lstReplicate + self.chkReplaceMatching = dlg.GetValue(JetDefs.F_RPREPLACE) + self.EndModal(wx.ID_OK) + else: + dlg.Destroy() + +class EventEdit(wx.Dialog): + """ Event edit dialog box """ + def __init__(self, title, currentJetConfigFile): + wx.Dialog.__init__(self, None, -1, title) + self.SetExtraStyle(wx.DIALOG_EX_CONTEXTHELP) + self.title = title + self.currentJetConfigFile = currentJetConfigFile + self.je = JetEdit(self, "EVTDLG_CTRLS", self) + self.je.ctrls[JetDefs.F_MUTEFLAGS].AddCol(JetDefs.GRD_TRACK, JetDefs.MUTEGRD_TRACK) + self.je.ctrls[JetDefs.F_MUTEFLAGS].AddCol(JetDefs.GRD_CHANNEL, JetDefs.MUTEGRD_CHANNEL) + self.je.ctrls[JetDefs.F_MUTEFLAGS].AddCol(JetDefs.GRD_NAME, JetDefs.MUTEGRD_NAME) + self.je.ctrls[JetDefs.F_ESTART].SetChangeCallbackFct(self.UpdateGraph) + self.je.ctrls[JetDefs.F_EEND].SetChangeCallbackFct(self.UpdateGraph) + self.je.ctrls[JetDefs.F_GRAPHLABELS].SetValue(IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHLABELS, JetDefs.F_GRAPHLABELS, 'bool', 'True')) + self.je.ctrls[JetDefs.F_GRAPHCLIPS].SetValue(IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHCLIPS, JetDefs.F_GRAPHCLIPS, 'bool', 'True')) + self.je.ctrls[JetDefs.F_GRAPHAPPEVTS].SetValue(IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHAPPEVTS, JetDefs.F_GRAPHAPPEVTS, 'bool', 'True')) + EVT_JET_STATUS(self, self.OnJetStatusUpdate) + self.segment = None + self.Player = None + self.event_id = 1 + self.replicatePrefix = "" + self.lstReplicate = [] + self.chkReplaceMatching = False + + wx.EVT_CLOSE(self, self.OnClose) + self.SetSize(JetDefs.EVTDLG_SIZE) + self.CenterOnParent() + + def OnGraphUpdate(self, evt): + """ Calls the graph module to update the graph """ + self.je.ctrls[JetDefs.F_GRAPH].DoDrawing() + + def OnJetStatusUpdate(self, evt): + """ Updates to UI needed by play thread come through here otherwise OS X crashes """ + if evt.mode == JetDefs.PST_UPD_LOCATION: + self.je.ctrls[JetDefs.F_GRAPH].UpdateLocation(evt.data) + elif evt.mode == JetDefs.PST_PLAY: + self.je.ctrls[JetDefs.F_PAUSE].SetLabel(JetDefs.BUT_PAUSE) + self.je.ctrls[JetDefs.F_PLAY].SetLabel(JetDefs.BUT_STOP) + self.je.ctrls[JetDefs.F_PAUSE].Enabled = True + self.je.ctrls[JetDefs.F_ETRIGGERBUT].Enabled = True + self.je.ctrls[JetDefs.F_EMUTEBUT].Enabled = True + elif evt.mode == JetDefs.PST_DONE: + self.je.ctrls[JetDefs.F_EMUTEBUT].SetLabel(JetDefs.BUT_UNMUTE) + self.je.ctrls[JetDefs.F_PLAY].SetLabel(JetDefs.BUT_PLAY) + self.je.ctrls[JetDefs.F_PAUSE].Enabled = False + self.je.ctrls[JetDefs.F_PAUSE].SetLabel(JetDefs.BUT_PAUSE) + self.je.ctrls[JetDefs.F_ETRIGGERBUT].Enabled = False + self.je.ctrls[JetDefs.F_EMUTEBUT].Enabled = False + elif evt.mode == JetDefs.PST_PAUSE: + self.je.ctrls[JetDefs.F_PAUSE].SetLabel(JetDefs.BUT_RESUME) + elif evt.mode == JetDefs.PST_RESUME: + self.je.ctrls[JetDefs.F_PAUSE].SetLabel(JetDefs.BUT_PAUSE) + + def OnPause(self, evt): + """ Pause the player """ + self.Player.Pause() + + def UpdateGraph(self): + """ Called back from player thread to update the graph """ + if len(self.segment.jetevents) == 0: + self.segment.jetevents.append(JetEvent(self.je.ctrls[JetDefs.F_ENAME].GetValue(), + self.je.ctrls[JetDefs.F_ETYPE].GetValue(), + 1, + self.je.ctrls[JetDefs.F_ETRACK].GetValue(), + self.je.ctrls[JetDefs.F_ECHANNEL].GetValue(), + self.je.ctrls[JetDefs.F_ESTART].GetValue(), + self.je.ctrls[JetDefs.F_EEND].GetValue())) + + self.segment.jetevents[0].event_name = self.je.ctrls[JetDefs.F_ENAME].GetValue() + self.segment.jetevents[0].event_type = self.je.ctrls[JetDefs.F_ETYPE].GetValue() + self.segment.jetevents[0].event_start = self.je.ctrls[JetDefs.F_ESTART].GetValue() + self.segment.jetevents[0].event_end = self.je.ctrls[JetDefs.F_EEND].GetValue() + self.je.ctrls[JetDefs.F_GRAPH].LoadSegment(self.segment, showLabels=IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHLABELS, JetDefs.F_GRAPHLABELS, 'bool', 'True'), showClips=IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHCLIPS, JetDefs.F_GRAPHCLIPS, 'bool', 'True'), showAppEvts=IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHAPPEVTS, JetDefs.F_GRAPHAPPEVTS, 'bool', 'True')) + + def OnClose(self, event): + """ Called when dialog is closed """ + self.ShutdownPlayer() + self.je.ctrls[JetDefs.F_ESTART].UnBindKillFocus() + self.je.ctrls[JetDefs.F_EEND].UnBindKillFocus() + self.EndModal(wx.ID_CANCEL) + + def ShutdownPlayer(self): + """ Sets flag to kill play loop """ + if self.Player is not None: + self.Player.SetKeepPlayingFlag(False) + + def GetValue(self, fld): + """ Gets the value of a control """ + return self.je.ctrls[fld].GetValue() + + def SetValue(self, fld, val): + """ Sets the value of a control """ + self.je.ctrls[fld].SetValue(val) + + def SetEventId(self): + """ Sets the eventid value """ + if self.title == JetDefs.MAIN_ADDEVENTTITLE: + iNextEventId = -1 + for evt in self.segment.jetevents: + if evt.event_type == JetDefs.E_CLIP: + if iNextEventId < evt.event_id: + iNextEventId = evt.event_id + self.je.ctrls[JetDefs.F_EEVENTID].SetValue(iNextEventId + 1) + + def OnEventSelect(self, event=None): + """ Adjusts the dialog box controls for various types of events """ + eType = self.je.ctrls[JetDefs.F_ETYPE].GetValue() + if eType == JetDefs.E_EOS: + self.je.ctrls[JetDefs.F_ENAME].SetValue(JetDefs.E_EOS) + self.je.ctrls[JetDefs.F_ENAME].Enable(False) + self.je.ctrls[JetDefs.F_ESTART].Enable(False) + self.je.ctrls[JetDefs.F_EEND].Enable(True) + self.je.ctrls[JetDefs.F_ETRIGGERBUT].Enable(False) + self.je.ctrls[JetDefs.F_EEVENTID].Enable(False) + elif eType == JetDefs.E_CLIP: + if len(self.je.ctrls[JetDefs.F_ENAME].GetValue()) == 0 or self.je.ctrls[JetDefs.F_ENAME].GetValue() == JetDefs.E_EOS or self.je.ctrls[JetDefs.F_ENAME].GetValue() == JetDefs.E_APP: + self.je.ctrls[JetDefs.F_ENAME].SetValue(JetDefs.E_CLIP) + self.je.ctrls[JetDefs.F_ENAME].Enable(True) + self.je.ctrls[JetDefs.F_ESTART].Enable(True) + self.je.ctrls[JetDefs.F_EEND].Enable(True) + self.je.ctrls[JetDefs.F_ETRIGGERBUT].Enable(True) + self.je.ctrls[JetDefs.F_EEVENTID].Enable(True) + self.je.ctrls[JetDefs.F_EEVENTID].SetRange(JetDefs.EVENTID_MIN, JetDefs.EVENTID_MAX) + if self.je.ctrls[JetDefs.F_EEVENTID].GetValue() < JetDefs.EVENTID_MIN: + self.je.ctrls[JetDefs.F_EEVENTID].SetValue(JetDefs.EVENTID_MIN) + if self.je.ctrls[JetDefs.F_EEVENTID].GetValue() > JetDefs.EVENTID_MAX: + self.je.ctrls[JetDefs.F_EEVENTID].SetValue(JetDefs.EVENTID_MAX) + self.SetEventId() + elif eType == JetDefs.E_APP: + if len(self.je.ctrls[JetDefs.F_ENAME].GetValue()) == 0 or self.je.ctrls[JetDefs.F_ENAME].GetValue() == JetDefs.E_EOS: + self.je.ctrls[JetDefs.F_ENAME].SetValue(JetDefs.E_APP) + self.je.ctrls[JetDefs.F_ENAME].Enable(True) + self.je.ctrls[JetDefs.F_ESTART].Enable(True) + self.je.ctrls[JetDefs.F_EEND].Enable(False) + self.je.ctrls[JetDefs.F_ETRIGGERBUT].Enable(False) + self.je.ctrls[JetDefs.F_EEVENTID].Enable(True) + self.je.ctrls[JetDefs.F_EEVENTID].SetRange(JetDefs.APPCONTROLLERID_MIN, JetDefs.APPCONTROLLERID_MAX) + if self.je.ctrls[JetDefs.F_EEVENTID].GetValue() < JetDefs.APPCONTROLLERID_MIN: + self.je.ctrls[JetDefs.F_EEVENTID].SetValue(JetDefs.APPCONTROLLERID_MIN) + if self.je.ctrls[JetDefs.F_EEVENTID].GetValue() > JetDefs.APPCONTROLLERID_MAX: + self.je.ctrls[JetDefs.F_EEVENTID].SetValue(JetDefs.APPCONTROLLERID_MAX) + + def OnOk(self, event): + """ Exits the dialog box """ + self.ShutdownPlayer() + if self.Validate(): + self.je.ctrls[JetDefs.F_ESTART].UnBindKillFocus() + self.je.ctrls[JetDefs.F_EEND].UnBindKillFocus() + self.EndModal(wx.ID_OK) + + def Validate(self): + """ Validates the control values prior to exiting """ + if len(self.je.ctrls[JetDefs.F_ENAME].GetValue()) == 0: + InfoMsg("Event Name", "The event must have a name.") + self.je.ctrls[JetDefs.F_ENAME].SetFocus() + return False + if len(self.je.ctrls[JetDefs.F_ETYPE].GetValue()) == 0: + InfoMsg("Event Name", "The event type must be selected.") + self.je.ctrls[JetDefs.F_ETYPE].SetFocus() + return False + if self.je.ctrls[JetDefs.F_ETYPE].GetValue() == JetDefs.E_CLIP: + if not CompareMbt(self.je.ctrls[JetDefs.F_ESTART].GetValue(), self.je.ctrls[JetDefs.F_EEND].GetValue()): + InfoMsg("Start/End", "The event starting and ending times are illogical.") + self.je.ctrls[JetDefs.F_ESTART].SetFocus() + return False + if MbtVal(self.je.ctrls[JetDefs.F_ESTART].GetValue()) < MbtVal(self.je.ctrls[JetDefs.F_START].GetValue()): + InfoMsg("Event Starting Time", "The event starting time is illogical.") + self.je.ctrls[JetDefs.F_ESTART].SetFocus() + return False + if MbtVal(self.je.ctrls[JetDefs.F_EEND].GetValue()) > MbtVal(self.je.ctrls[JetDefs.F_END].GetValue()): + InfoMsg("Event Ending Time", "The event ending time is illogical.") + self.je.ctrls[JetDefs.F_ESTART].SetFocus() + return False + if self.je.ctrls[JetDefs.F_ETYPE].GetValue() == JetDefs.E_APP: + self.je.ctrls[JetDefs.F_EEND].SetValue(self.je.ctrls[JetDefs.F_ESTART].GetValue()) + if self.je.ctrls[JetDefs.F_ETYPE].GetValue() == JetDefs.E_EOS: + self.je.ctrls[JetDefs.F_ESTART].SetValue(self.je.ctrls[JetDefs.F_EEND].GetValue()) + return True + + def SetSegment(self, segment): + """ Sets the segment values, then calls the graph update """ + self.segment = segment + md = GetMidiInfo(segment.filename) + if md.err == 0: + self.SetValue(JetDefs.F_SEGNAME, segment.segname) + self.SetValue(JetDefs.F_MUTEFLAGS, segment.mute_flags) + self.SetValue(JetDefs.F_MIDIFILE, segment.filename) + self.SetValue(JetDefs.F_DLSFILE, segment.dlsfile) + self.SetValue(JetDefs.F_START, segment.start) + self.SetValue(JetDefs.F_END, segment.end) + self.SetValue(JetDefs.F_QUANTIZE, segment.quantize) + self.SetValue(JetDefs.F_TRANSPOSE, segment.transpose) + self.SetValue(JetDefs.F_REPEAT, segment.repeat) + maxMeasures = abs(int(self.je.ctrls[JetDefs.F_END].GetValue('int')[0])) + self.je.ctrls[JetDefs.F_EEND].SetMaxMbt(maxMeasures+1,md.maxBeats,md.maxTicks) + self.je.ctrls[JetDefs.F_ESTART].SetMaxMbt(maxMeasures+1,md.maxBeats,md.maxTicks) + minMeasures = abs(int(self.je.ctrls[JetDefs.F_START].GetValue('int')[0])) + self.je.ctrls[JetDefs.F_EEND].SetMinMbt(minMeasures+1,0,0) + self.je.ctrls[JetDefs.F_ESTART].SetMinMbt(minMeasures+1,0,0) + self.je.ctrls[JetDefs.F_END].GetValue('int') + self.je.ctrls[JetDefs.F_ETRACK].SetRange(1, md.maxTracks) + self.je.ctrls[JetDefs.F_MUTEFLAGS].DeleteAllItems() + for track in md.trackList: + self.je.ctrls[JetDefs.F_MUTEFLAGS].AddTrackRow(track) + self.je.ctrls[JetDefs.F_MUTEFLAGS].CheckTracks(self.je.ctrls[JetDefs.F_MUTEFLAGS].GetValue()) + self.je.ctrls[JetDefs.F_MUTEFLAGS].SetTextColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_GRAYTEXT)) + self.je.ctrls[JetDefs.F_GRAPH].LoadSegment(segment, showLabels=IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHLABELS, JetDefs.F_GRAPHLABELS, 'bool', 'True'), showClips=IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHCLIPS, JetDefs.F_GRAPHCLIPS, 'bool', 'True'), showAppEvts=IniGetValue(self.currentJetConfigFile, JetDefs.F_GRAPHAPPEVTS, JetDefs.F_GRAPHAPPEVTS, 'bool', 'True')) + + def OnPlay(self, event): + """ Plays the segment allowing interaction with events """ + if self.je.ctrls[JetDefs.F_PLAY].GetLabel() == JetDefs.BUT_STOP: + self.Player.SetKeepPlayingFlag(False) + return + + if not self.Validate(): + return + + jetevents = [] + jetevents.append(JetEvent(self.GetValue(JetDefs.F_ENAME), self.GetValue(JetDefs.F_ETYPE), + self.event_id, int(self.GetValue(JetDefs.F_ETRACK)), + int(self.GetValue(JetDefs.F_ECHANNEL)), + self.GetValue(JetDefs.F_ESTART), self.GetValue(JetDefs.F_EEND))) + + segment = JetSegment(self.GetValue(JetDefs.F_SEGNAME), + self.GetValue(JetDefs.F_MIDIFILE), + self.GetValue(JetDefs.F_START), + self.GetValue(JetDefs.F_END), + JetDefs.MBT_ZEROSTR, + self.GetValue(JetDefs.F_SEGNAME), + self.GetValue(JetDefs.F_QUANTIZE), + jetevents, + self.GetValue(JetDefs.F_DLSFILE), + None, + self.GetValue(JetDefs.F_TRANSPOSE), + self.GetValue(JetDefs.F_REPEAT), + self.GetValue(JetDefs.F_MUTEFLAGS)) + + self.Player = PreviewPlayer(self.je.ctrls[JetDefs.F_PLAY], segment) + self.Player.SetGraphCtrl(self.je.ctrls[JetDefs.F_GRAPH], self) + self.je.ctrls[JetDefs.F_GRAPH].ClickCallbackFct = self.GraphTriggerClip + self.Player.trigger_button = self.je.ctrls[JetDefs.F_ETRIGGERBUT] + self.Player.mute_button = self.je.ctrls[JetDefs.F_EMUTEBUT] + thread.start_new_thread(self.Player .Start, ()) + + def GraphTriggerClip(self, sClipName, iEventId): + """ Triggers a clip via graph """ + if self.Player is not None: + self.Player.GraphTriggerClip(sClipName, iEventId) + + def OnMute(self, event): + """ Mutes a track """ + if self.Player is not None: + self.Player.MuteTrackViaButton(self.je.ctrls[JetDefs.F_EMUTEBUT], + int(self.je.ctrls[JetDefs.F_ETRACK].GetValue())) + + def OnTriggerClip(self, event): + """ Triggers a clip """ + if self.Player is not None: + self.Player.TriggerClip(self.event_id) + + def OnSetGraphOptions(self, evt): + """ Sets graph options """ + IniSetValue(self.currentJetConfigFile, JetDefs.F_GRAPHLABELS, JetDefs.F_GRAPHLABELS, self.je.ctrls[JetDefs.F_GRAPHLABELS].GetValue()) + IniSetValue(self.currentJetConfigFile, JetDefs.F_GRAPHAPPEVTS, JetDefs.F_GRAPHAPPEVTS, self.je.ctrls[JetDefs.F_GRAPHAPPEVTS].GetValue()) + IniSetValue(self.currentJetConfigFile, JetDefs.F_GRAPHCLIPS, JetDefs.F_GRAPHCLIPS, self.je.ctrls[JetDefs.F_GRAPHCLIPS].GetValue()) + self.UpdateGraph() + + def OnReplicate(self, evt): + dlg = JetReplicate("Replicate Event") + dlg.SetValue(JetDefs.F_RPREPLACE, True) + dlg.SetName(self.GetValue(JetDefs.F_ENAME)) + dlg.event_type = self.GetValue(JetDefs.F_ETYPE) + dlg.event_max = self.segment.end + dlg.length = MbtDifference(ConvertStrTimeToTuple(self.GetValue(JetDefs.F_ESTART)), ConvertStrTimeToTuple(self.GetValue(JetDefs.F_EEND))) + result = dlg.ShowModal() + if result == wx.ID_OK: + self.replicatePrefix = dlg.GetValue(JetDefs.F_RPPREFIX) + self.lstReplicate = dlg.lstReplicate + self.chkReplaceMatching = dlg.GetValue(JetDefs.F_RPREPLACE) + self.EndModal(wx.ID_OK) + else: + dlg.Destroy() + +class JetReplicate(wx.Dialog): + """ Replicate dialog box """ + def __init__(self, title): + wx.Dialog.__init__(self, None, -1, title) + self.SetExtraStyle(wx.DIALOG_EX_CONTEXTHELP) + self.je = JetEdit(self, "REPLICATE_CTRLS", self) + + self.je.ctrls[JetDefs.F_RPINCREMENT].SetMinMbt(0,0,0) + self.je.ctrls[JetDefs.F_RPINCREMENT].SetValue((-1,-1,-1)) + self.je.ctrls[JetDefs.F_RPNUMBER].SetValue(1) + for title, width, fld in JetDefs.REPLICATE_GRID: + self.je.ctrls[JetDefs.F_RPGRDPREVIEW].AddCol(title, width) + self.lstReplicate = [] + + self.SetSize(JetDefs.REPLICATE_SIZE) + self.CenterOnParent() + + def OnOk(self, event): + self.EndModal(wx.ID_OK) + + def GetValue(self, fld): + return self.je.ctrls[fld].GetValue() + + def SetValue(self, fld, val): + self.je.ctrls[fld].SetValue(val) + + def SetName(self, name): + for i in range(len(name), 1, -1): + if not name[i-1].isdigit() and name[i-1] <> ' ': + break + else: + name = name[0:i-1] + self.SetValue(JetDefs.F_RPPREFIX, name) + + def Validate(self): + if self.GetValue(JetDefs.F_RPPREFIX) == '': + InfoMsg("Message", "Prefix is required.") + return False + return True + + def OnPreview(self, event): + if not self.Validate(): + return + start = MbtVal(self.GetValue(JetDefs.F_ESTART)) + max = MbtVal(self.event_max) + increment = MbtVal((self.je.ctrls[JetDefs.F_RPINCREMENT].GetMeasure(), self.je.ctrls[JetDefs.F_RPINCREMENT].GetBeat(), self.je.ctrls[JetDefs.F_RPINCREMENT].GetTick())) + + self.lstReplicate = [] + iTo = int(self.GetValue(JetDefs.F_RPNUMBER)) + for i in range(iTo): + evt_name = "%s %.2d" % (self.GetValue(JetDefs.F_RPPREFIX), i) + s_ticks = start + (i * increment) + s_mbt = TicksToMbt(s_ticks) + evt_start = "%d:%d:%d" % (s_mbt[0]+1, s_mbt[1]+1, s_mbt[2]) + if self.event_type == JetDefs.E_CLIP or self.event_type == "SEGMENT": + e_ticks = s_ticks + self.length + e_mbt = TicksToMbt(e_ticks) + evt_end = "%d:%d:%d" % (e_mbt[0]+1, e_mbt[1]+1, e_mbt[2]) + else: + e_ticks = s_ticks + evt_end = evt_start + if s_ticks <= max and e_ticks <= max: + self.lstReplicate.append((evt_name, evt_start, evt_end)) + + self.je.ctrls[JetDefs.F_RPGRDPREVIEW].DeleteAllItems() + self.je.ctrls[JetDefs.F_RPGRDPREVIEW].AddRows(self.lstReplicate) + +class JetMove(wx.Dialog): + """ Move events dialog box """ + def __init__(self, title): + wx.Dialog.__init__(self, None, -1, title) + self.SetExtraStyle(wx.DIALOG_EX_CONTEXTHELP) + self.je = JetEdit(self, "MOVE_CTRLS", self) + + self.je.ctrls[JetDefs.F_RPINCREMENT].SetMinMbt(-999,-4,-480) + self.je.ctrls[JetDefs.F_RPINCREMENT].SetValue((-1,-1,-1)) + for title, width, fld in JetDefs.REPLICATE_GRID: + self.je.ctrls[JetDefs.F_RPGRDPREVIEW].AddCol(title, width) + self.lstMove = [] + self.lstMoveMbt = [] + self.lstMoveItems = [] + + self.SetSize(JetDefs.REPLICATE_SIZE) + self.CenterOnParent() + + def OnOk(self, event): + self.EndModal(wx.ID_OK) + + def GetValue(self, fld): + return self.je.ctrls[fld].GetValue() + + def SetValue(self, fld, val): + self.je.ctrls[fld].SetValue(val) + + def OnPreview(self, event): + increment = MbtVal((abs(self.je.ctrls[JetDefs.F_RPINCREMENT].GetMeasure()), abs(self.je.ctrls[JetDefs.F_RPINCREMENT].GetBeat()), abs(self.je.ctrls[JetDefs.F_RPINCREMENT].GetTick()))) + if self.je.ctrls[JetDefs.F_RPINCREMENT].GetMeasure() < 0 or self.je.ctrls[JetDefs.F_RPINCREMENT].GetBeat() < 0 or self.je.ctrls[JetDefs.F_RPINCREMENT].GetTick() < 0: + increment = 0 - increment + self.lstMove = [] + self.lstMoveMbt = [] + for itm in self.lstMoveItems: + max = MbtVal(itm[3]) + evt_name = itm[0] + start = MbtVal(itm[1]) + s_ticks = start + increment + + s_mbt = TicksToMbt(s_ticks) + evt_start = "%d:%d:%d" % (s_mbt[0]+1, s_mbt[1]+1, s_mbt[2]) + evt_start_save = "%d:%d:%d" % s_mbt + + end = MbtVal(itm[2]) + e_ticks = end + increment + e_mbt = TicksToMbt(e_ticks) + evt_end = "%d:%d:%d" % (e_mbt[0]+1, e_mbt[1]+1, e_mbt[2]) + evt_end_save = "%d:%d:%d" % e_mbt + + if s_ticks <= max and e_ticks <= max and s_ticks >= 0 and e_ticks >= 0: + self.lstMove.append((evt_name, evt_start, evt_end)) + self.lstMoveMbt.append((evt_name, evt_start_save, evt_end_save)) + + self.je.ctrls[JetDefs.F_RPGRDPREVIEW].DeleteAllItems() + self.je.ctrls[JetDefs.F_RPGRDPREVIEW].AddRows(self.lstMove) + +if __name__ == '__main1__': + """ Test dialogs """ + app = wx.PySimpleApp() + + #dlg = JetOpen() + #dlg = JetPropertiesDialog() + #dlg = ExportDialog("Export Jet File") + #dlg = JetAbout() + + dlg = JetReplicate("Replicate Event") + dlg.SetValue(JetDefs.F_RPREPLACE, True) + dlg.event_max = "5:0:0" + dlg.event_type = JetDefs.E_APP + dlg.length = 480 + dlg.SetName("abc 02") + result = dlg.ShowModal() + if result == wx.ID_OK: + print("OK") + + dlg.Destroy() + +if __name__ == '__main1__': + """ Test Segment dialog """ + app = wx.PySimpleApp() + + helpProvider = wx.SimpleHelpProvider() + wx.HelpProvider_Set(helpProvider) + + dlg = SegEdit("Segments", JetDefs.UNTITLED_FILE) + dlg.SetValue(JetDefs.F_SEGNAME, "Test Segment Name") + dlg.SetValue(JetDefs.F_MIDIFILE, '/Users/BHruska/JetContent/jenn_Burning Line.mid') + dlg.SetValue(JetDefs.F_MIDIFILE, 'C:/_Data/JetCreator/JetDemo1/jenn_Burning Line.mid') + dlg.SetValue(JetDefs.F_DLSFILE, '') + dlg.SetValue(JetDefs.F_START, '4:0:0') + dlg.SetValue(JetDefs.F_END, '8:0:0') + dlg.SetValue(JetDefs.F_QUANTIZE, 6) + + result = dlg.ShowModal() + dlg.Destroy() + +if __name__ == '__main__': + """ Test Event dialog """ + app = wx.PySimpleApp() + + jetevents = [] + + segment = JetSegment("Test Segment Name", 'C:/_Data/JetCreator/JetDemo1/jenn_Burning Line.mid', + '0:0:0', '4:0:0', None, + "Test Segment Name", 6, jetevents, + '', None, 0,0,3) + + dlg = EventEdit("Event Edit", JetDefs.UNTITLED_FILE) + dlg.SetValue(JetDefs.F_ENAME, "Test Event Name") + dlg.SetValue(JetDefs.F_ETYPE, "TriggerClip") + dlg.SetSegment(segment) + + result = dlg.ShowModal() + dlg.Destroy() + + + diff --git a/jet_tools/JetCreator/JetFile.py b/jet_tools/JetCreator/JetFile.py new file mode 100755 index 0000000..d29db7e --- /dev/null +++ b/jet_tools/JetCreator/JetFile.py @@ -0,0 +1,775 @@ +""" + File: + JetFile.py + + Contents and purpose: + Auditions a jet file to simulate interactive music functions + + Copyright (c) 2008 Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +""" + +from __future__ import with_statement + +import logging +import ConfigParser +import struct +import os +import sys +import midifile + +from JetUtils import * +from JetDefs import * + +VERSION = '0.1' + +# JET file defines +JET_HEADER_STRUCT = '<4sl' +JET_HEADER_TAG = 'JET ' +JET_VERSION = 0x01000000 + +# JET chunk tags +JET_INFO_CHUNK = 'JINF' +JET_SMF_CHUNK = 'JSMF' +JET_DLS_CHUNK = 'JDLS' + +# JINF defines +JINF_STRUCT = '<4sl4sl4sl4sl' +JINF_JET_VERSION = 'JVER' +JINF_NUM_SMF_CHUNKS = 'SMF#' +JINF_NUM_DLS_CHUNKS = 'DLS#' + +# JCOP defines +JCOP_STRUCT = '<4sl' +JCOP_CHUNK = 'JCOP' + +# JAPP defines +JAPP_STRUCT = '<4sl' +JAPP_CHUNK = 'JAPP' + +# config file defines +OUTPUT_SECTION = 'output' +OUTPUT_FILENAME = 'filename' +OUTPUT_COPYRIGHT = 'copyright' +OUTPUT_APP_DATA = 'app_data' +OUTPUT_CHASE_CONTROLLERS = 'chase_controllers' +OUTPUT_OMIT_EMPTY_TRACKS = 'omit_empty_tracks' +SEGMENT_SECTION = 'segment' +SEGMENT_FILENAME = 'filename' +SEGMENT_DLSFILE = 'dlsfile' +SEGMENT_NAME = 'segname' +SEGMENT_START = 'start' +SEGMENT_END = 'end' +SEGMENT_END_MARKER = 'end_marker' +SEGMENT_QUANTIZE = 'quantize' +SEGMENT_OUTPUT = 'output' +SEGMENT_LENGTH = 'length' +SEGMENT_DUMP_FILE = 'dump' +SEGMENT_TRANSPOSE = 'transpose' +SEGMENT_REPEAT = 'repeat' +SEGMENT_MUTE_FLAGS = 'mute_flags' +LIBRARY_SECTION = 'libraries' +LIBRARY_FILENAME = 'lib' +CLIP_PREFIX = 'clip' +APP_PREFIX = 'app' + +# JET events +JET_EVENT_MARKER = 102 +JET_MARKER_LOOP_END = 0 +JET_EVENT_TRIGGER_CLIP = 103 + +class JetSegment (object): + """ Class to hold segments """ + def __init__ (self, segname, filename, start=None, end=None, length=None, output=None, quantize=None, jetevents=[], dlsfile=None, dump_file=None, transpose=0, repeat=0, mute_flags=0): + self.segname = segname + self.filename = filename + self.dlsfile = dlsfile + self.start = start + self.end = end + self.length = length + self.output = output + self.quantize = quantize + self.dump_file = dump_file + self.jetevents = jetevents + #API FIELDS FOR UI + self.transpose = transpose + self.repeat = repeat + self.mute_flags = mute_flags + +class JetEvent (object): + """ Class to hold events """ + def __init__(self, event_name, event_type, event_id, track_num, channel_num, event_start, event_end): + self.event_name = event_name + self.event_type = event_type + self.event_id = event_id + self.track_num = track_num + self.channel_num = channel_num + self.event_start = event_start + self.event_end = event_end + +class JetFileException (Exception): + """ Exceptions class """ + def __init__ (self, msg): + self.msg = msg + def __str__ (self): + return self.msg + +class JetSegmentFile (midifile.MIDIFile): + def ConvertMusicTimeToTicks (self, s): + measures, beats, ticks = s.split(':',3) + return self.ConvertToTicks(int(measures), int(beats), int(ticks)) + + def ExtractEvents (self, start, end, length, quantize, chase_controllers): + if (start is None) and (end is None) and (length is None): + logging.debug('ExtractEvents: No change') + return + + if start is not None: + start = self.ConvertMusicTimeToTicks(start) + else: + start = 0 + if end is not None: + end = self.ConvertMusicTimeToTicks(end) + elif length is not None: + length = self.ConvertMusicTimeToTicks(length) + end = start + length + + if quantize is not None: + quantize = int(quantize) + else: + quantize = 0 + + self.Trim(start, end, quantize, chase_controllers=chase_controllers) + #self.DumpTracks() + + def SyncClips (self): + """Add controller events to the start of a clip to keep it synced.""" + values = None + last_seq = 0 + for track in self.tracks: + for event in track.events: + + # find start of clip and chase events from last save point + if (event.msg_type == midifile.CONTROL_CHANGE) and \ + (event.controller == JET_EVENT_TRIGGER_CLIP) and \ + ((event.value & 0x40) == 0x40): + logging.debug('Syncing clip at %d ticks' % event.ticks) + values = track.events.ChaseControllers(event.seq, last_seq, values) + + #BTH; Seems to fix chase controller bug when multiple clips within segment + #last_seq = event.seq + + # generate event list from default values + clip_events = values.GenerateEventList(event.ticks) + + #for evt in clip_events: + # logging.info(evt) + + track.events.InsertEvents(clip_events, event.seq + 1) + + def AddJetEvents (self, jetevents): + for jet_event in jetevents: + if jet_event.event_type == JetDefs.E_CLIP: + #DumpEvent(jet_event) + + # sanity check + if jet_event.track_num >= len(self.tracks): + raise JetFileException('Track number %d of out of range for clip' % jet_event.track_num) + if jet_event.channel_num > 15: + raise JetFileException('Channel number %d of out of range for clip' % jet_event.channel_num) + if jet_event.event_id > 63: + raise JetFileException('event_id %d of out of range for clip' % jet_event.event_id) + + logging.debug('Adding trigger event for clip %d @ %s and %s' % (jet_event.event_id, jet_event.event_start, jet_event.event_end)) + + events = midifile.EventList() + events.append(midifile.ControlChangeEvent( + self.ConvertMusicTimeToTicks(jet_event.event_start), + 0, + jet_event.channel_num, + JET_EVENT_TRIGGER_CLIP, + jet_event.event_id | 0x40)) + + events.append(midifile.ControlChangeEvent( + self.ConvertMusicTimeToTicks(jet_event.event_end), + sys.maxint, + jet_event.channel_num, + JET_EVENT_TRIGGER_CLIP, + jet_event.event_id)) + + # merge trigger events + self.tracks[jet_event.track_num].events.MergeEvents(events) + + elif jet_event.event_type == JetDefs.E_EOS: + if jet_event.track_num >= len(self.tracks): + raise JetFileException('Track number %d of out of range for end marker' % jet_event.track_num) + if jet_event.channel_num > 15: + raise JetFileException('Channel number %d of out of range for end marker' % jet_event.channel_num) + + events = midifile.EventList() + logging.debug('Adding end marker at %s' % jet_event.event_start) + events.append(midifile.ControlChangeEvent( + self.ConvertMusicTimeToTicks(jet_event.event_start), + 0, + jet_event.channel_num, + JET_EVENT_MARKER, + JET_MARKER_LOOP_END)) + self.tracks[jet_event.track_num].events.MergeEvents(events) + + elif jet_event.event_type == JetDefs.E_APP: + if jet_event.track_num >= len(self.tracks): + raise JetFileException('Track number %d of out of range for app marker' % jet_event.track_num) + if jet_event.channel_num > 15: + raise JetFileException('Channel number %d of out of range for app marker' % jet_event.channel_num) + if jet_event.event_id > 83 or jet_event.event_id < 80: + raise JetFileException('EventID %d out of range for application controller' % jet_event.event_id) + + events = midifile.EventList() + logging.debug('Adding application controller at %s' % jet_event.event_start) + events.append(midifile.ControlChangeEvent( + self.ConvertMusicTimeToTicks(jet_event.event_start), + 0, + jet_event.channel_num, + jet_event.event_id, + jet_event.event_id)) + self.tracks[jet_event.track_num].events.MergeEvents(events) + +class JetFile (object): + """Write a JET file based on a configuration file.""" + def __init__ (self, config_file, options): + self.config_file = config_file + self.config = config = ConfigParser.ConfigParser() + if self.config_file == "": + self.InitializeConfig(JetDefs.UNTITLED_FILE) + if not FileExists(self.config_file): + self.InitializeConfig(self.config_file) + + config.read(self.config_file) + self.ParseConfig(options) + + def DumpConfig (self): + """Drump configuration to log file.""" + # dump configuration + config = self.config + for section in config.sections(): + logging.debug('[%s]' % section) + for option, value in config.items(section): + logging.debug('%s: %s' % (option, value)) + + def ParseConfig (self, options): + """Validate the configuration.""" + # check for output name + config = self.config + if config.has_option(OUTPUT_SECTION, OUTPUT_FILENAME): + config.filename = config.get(OUTPUT_SECTION, OUTPUT_FILENAME) + else: + raise JetFileException('No output filename in configuration file') + if config.filename == '' or config.filename == None: + config.filename = FileJustRoot(self.config_file) + ".JET" + config.chase_controllers = True + if config.has_option(OUTPUT_SECTION, OUTPUT_CHASE_CONTROLLERS): + try: + config.chase_controllers = config.getboolean(OUTPUT_SECTION, OUTPUT_CHASE_CONTROLLERS) + except: + pass + + config.delete_empty_tracks = False + if config.has_option(OUTPUT_SECTION, OUTPUT_OMIT_EMPTY_TRACKS): + try: + config.delete_empty_tracks = config.getboolean(OUTPUT_SECTION, OUTPUT_OMIT_EMPTY_TRACKS) + except: + pass + + config.copyright = None + if config.has_option(OUTPUT_SECTION, OUTPUT_COPYRIGHT): + config.copyright = config.get(OUTPUT_SECTION, OUTPUT_COPYRIGHT) + + config.app_data = None + if config.has_option(OUTPUT_SECTION, OUTPUT_APP_DATA): + config.app_data = config.get(OUTPUT_SECTION, OUTPUT_APP_DATA) + + # count segments + segments = [] + seg_num = 0 + while 1: + + # check for segment section + segment_name = SEGMENT_SECTION + str(seg_num) + if not config.has_section(segment_name): + break + + # initialize some parameters + start = end = length = output = end_marker = dlsfile = dump_file = None + transpose = repeat = mute_flags = 0 + jetevents = [] + + # get the segment parameters + segname = config.get(segment_name, SEGMENT_NAME) + filename = config.get(segment_name, SEGMENT_FILENAME) + if config.has_option(segment_name, SEGMENT_DLSFILE): + dlsfile = config.get(segment_name, SEGMENT_DLSFILE) + if config.has_option(segment_name, SEGMENT_START): + start = config.get(segment_name, SEGMENT_START) + if config.has_option(segment_name, SEGMENT_END): + end = config.get(segment_name, SEGMENT_END) + if config.has_option(segment_name, SEGMENT_LENGTH): + length = config.get(segment_name, SEGMENT_LENGTH) + if config.has_option(segment_name, SEGMENT_OUTPUT): + output = config.get(segment_name, SEGMENT_OUTPUT) + if config.has_option(segment_name, SEGMENT_QUANTIZE): + quantize = config.get(segment_name, SEGMENT_QUANTIZE) + if config.has_option(segment_name, SEGMENT_DUMP_FILE): + dump_file = config.get(segment_name, SEGMENT_DUMP_FILE) + #API FIELDS + if config.has_option(segment_name, SEGMENT_TRANSPOSE): + transpose = config.get(segment_name, SEGMENT_TRANSPOSE) + if config.has_option(segment_name, SEGMENT_REPEAT): + repeat = config.get(segment_name, SEGMENT_REPEAT) + if config.has_option(segment_name, SEGMENT_MUTE_FLAGS): + mute_flags = config.get(segment_name, SEGMENT_MUTE_FLAGS) + + if config.has_option(segment_name, SEGMENT_END_MARKER): + end_marker = config.get(segment_name, SEGMENT_END_MARKER) + track_num, channel_num, event_time = end_marker.split(',',2) + #jetevents.append((JetDefs.E_EOS, 0, int(track_num), int(channel_num), event_time, '')) + jetevents.append(JetEvent(JetDefs.E_EOS, JetDefs.E_EOS, 0, int(track_num), int(channel_num), event_time, event_time)) + + # check for jetevents + for jetevent, location in config.items(segment_name): + if jetevent.startswith(CLIP_PREFIX): + event_name, event_id, track_num, channel_num, event_start, event_end = location.split(',', 5) + jetevents.append(JetEvent(event_name, JetDefs.E_CLIP, int(event_id), int(track_num), int(channel_num), event_start, event_end)) + + # check for appevents + for jetevent, location in config.items(segment_name): + if jetevent.startswith(APP_PREFIX): + event_name, event_id, track_num, channel_num, event_start, event_end = location.split(',', 5) + jetevents.append(JetEvent(event_name, JetDefs.E_APP, int(event_id), int(track_num), int(channel_num), event_start, event_end)) + + segments.append(JetSegment(segname, filename, start, end, length, output, quantize, jetevents, dlsfile, dump_file, int(transpose), int(repeat), int(mute_flags))) + seg_num += 1 + + self.segments = segments + if not len(segments): + #TODO: Check for segments when writing + #raise JetFileException('No segments defined in configuration file') + pass + + # count libraries + libraries = [] + lib_num = 0 + while 1: + library_name = LIBRARY_FILENAME + str(lib_num) + if not config.has_option(LIBRARY_SECTION, library_name): + break + libraries.append(config.get(LIBRARY_SECTION, library_name)) + lib_num += 1 + self.libraries = libraries + + def WriteJetFileFromConfig (self, options): + """Write JET file from config file.""" + + # open the output file and write the header + output_file = open(self.config.filename, 'wb') + jet_header = struct.pack(JET_HEADER_STRUCT, JET_HEADER_TAG, 0) + output_file.write(jet_header) + + # write the JINF chunk + jet_info = struct.pack(JINF_STRUCT, + JET_INFO_CHUNK, struct.calcsize(JINF_STRUCT) - 8, + JINF_JET_VERSION, JET_VERSION, + JINF_NUM_SMF_CHUNKS, len(self.segments), + JINF_NUM_DLS_CHUNKS, len(self.libraries)) + output_file.write(jet_info) + + # write the JCOP chunk (if any) + if self.config.copyright is not None: + size = len(self.config.copyright) + 1 + if size & 1: + size += 1 + extra_byte = True + else: + extra_byte = False + jet_copyright = struct.pack(JCOP_STRUCT, JCOP_CHUNK, size) + output_file.write(jet_copyright) + output_file.write(self.config.copyright) + output_file.write(chr(0)) + if extra_byte: + output_file.write(chr(0)) + + # write the app data chunk (if any) + if self.config.app_data is not None: + size = os.path.getsize(self.config.app_data) + if size & 1: + size += 1 + extra_byte = True + else: + extra_byte = False + jet_app_data = struct.pack(JAPP_STRUCT, JAPP_CHUNK, size) + output_file.write(jet_app_data) + with open(self.config.app_data, 'rb') as f: + output_file.write(f.read()) + if extra_byte: + output_file.write(chr(0)) + + # copy the MIDI segments + seg_num = 0 + for segment in self.segments: + logging.debug('Writing segment %d' % seg_num) + + # open SMF file and read it + jet_segfile = JetSegmentFile(segment.filename, 'rb') + jet_segfile.ReadFromStream() + + # insert events + jet_segfile.AddJetEvents(segment.jetevents) + + # trim to length specified in config file + jet_segfile.ExtractEvents(segment.start, segment.end, segment.length, segment.quantize, self.config.chase_controllers) + + # chase controller events and fix them + if self.config.chase_controllers: + jet_segfile.SyncClips() + + # delete empty tracks + if self.config.delete_empty_tracks: + jet_segfile.DeleteEmptyTracks() + + # write separate output file if requested + if segment.output is not None: + jet_segfile.SaveAs(segment.output) + + # write dump file + if segment.dump_file is not None: + with open(segment.dump_file, 'w') as f: + jet_segfile.DumpTracks(f) + + # write the segment header + header_pos = output_file.tell() + smf_header = struct.pack(JET_HEADER_STRUCT, JET_SMF_CHUNK, 0) + output_file.write(smf_header) + start_pos = output_file.tell() + + # write SMF file to output file + jet_segfile.Write(output_file, offset=start_pos) + jet_segfile.close() + + # return to segment header and write actual size + end_pos = output_file.tell() + file_size = end_pos - start_pos + if file_size & 1: + file_size += 1 + end_pos += 1 + output_file.seek(header_pos, 0) + smf_header = struct.pack(JET_HEADER_STRUCT, JET_SMF_CHUNK, file_size) + output_file.write(smf_header) + output_file.seek(end_pos, 0) + + seg_num += 1 + + # copy the DLS segments + for library in self.libraries: + if FileExists(library): + # open SMF file and get size + lib_file = (open(library,'rb')) + lib_file.seek(0,2) + file_size = lib_file.tell() + lib_file.seek(0) + + # write the library header + dls_header = struct.pack(JET_HEADER_STRUCT, JET_DLS_CHUNK, file_size) + output_file.write(dls_header) + + # copy DLS file to output file + output_file.write(lib_file.read()) + lib_file.close() + + # write the header with the read data size + file_size = output_file.tell() + output_file.seek(0) + jet_header = struct.pack(JET_HEADER_STRUCT, JET_HEADER_TAG, file_size - struct.calcsize(JET_HEADER_STRUCT)) + output_file.write(jet_header) + output_file.close() + + def GetMidiFiles(self): + """ Gets a list of midifiles """ + midiFiles = [] + for segment in self.segments: + if segment.filename not in midiFiles: + midiFiles.append(segment.filename) + return midiFiles + + def GetLibraries(self): + """ Gets the libraries """ + return self.libraries + + def GetEvents(self, segName): + """ Gets the events for a segment """ + for segment in self.segments: + if segment.segname == segName: + return segment.jetevents + return None + + def GetEvent(self, segName, eventName): + """ Gets a single event from a segment """ + for segment in self.segments: + if segment.segname == segName: + for event in segment.jetevents: + if event.event_name == eventName: + return event + return None + + def AddEvent(self, segname, event_name, event_type, event_id, track_num, channel_num, event_start, event_end): + """ Adds an event """ + for segment in self.segments: + if segment.segname == segname: + segment.jetevents.append(JetEvent(event_name, event_type, int(event_id), int(track_num), int(channel_num), event_start, event_end)) + + def ReplaceEvents(self, segname, newEvents): + """ Replaces all events """ + for segment in self.segments: + if segment.segname == segname: + segment.jetevents = newEvents + return segment + + def UpdateEvent(self, segname, orgeventname, event_name, event_type, event_id, track_num, channel_num, event_start, event_end): + """ Updates an event """ + for segment in self.segments: + if segment.segname == segname: + for jetevent in segment.jetevents: + if jetevent.event_name == orgeventname: + jetevent.event_name = event_name + jetevent.event_type = event_type + jetevent.event_id = event_id + jetevent.track_num = track_num + jetevent.channel_num = channel_num + jetevent.event_start = event_start + jetevent.event_end = event_end + + def DeleteSegmentsMatchingPrefix(self, prefix): + """ Deletes all segments matching name """ + iOnce = True + iAgain = False + while(iOnce or iAgain): + iOnce = False + iAgain = False + for segment in self.segments: + if segment.segname[0:len(prefix)].upper() == prefix.upper(): + self.segments.remove(segment) + iAgain = True + + def DeleteEvent(self, segname, event_name): + """ Deletes an event """ + for segment in self.segments: + if segment.segname == segname: + for jetevent in segment.jetevents: + if jetevent.event_name == event_name: + segment.jetevents.remove(jetevent) + + def DeleteEventsMatchingPrefix(self, segname, prefix): + """ Deletes all events matching name """ + for segment in self.segments: + if segment.segname == segname: + iOnce = True + iAgain = False + while(iOnce or iAgain): + iOnce = False + iAgain = False + for jetevent in segment.jetevents: + if jetevent.event_name[0:len(prefix)].upper() == prefix.upper(): + segment.jetevents.remove(jetevent) + iAgain = True + + def MoveEvent(self, segname, movename, event_start, event_end): + """ Move an event """ + for segment in self.segments: + if segment.segname == segname: + for jetevent in segment.jetevents: + if jetevent.event_name == movename: + jetevent.event_start = event_start + jetevent.event_end = event_end + return + + def GetSegments(self): + """ Gets all segments """ + return self.segments + + def GetSegment(self, segName): + """ Gets one segment by name """ + for segment in self.segments: + if segment.segname == segName: + return segment + return None + + def AddSegment(self, segname, filename, start, end, length, output, quantize, jetevents, dlsfile, dump_file, transpose, repeat, mute_flags): + """ Adds a segment """ + if length == JetDefs.MBT_ZEROSTR: + length = None + if end == JetDefs.MBT_ZEROSTR: + end = None + self.segments.append(JetSegment(segname, filename, start, end, length, output, quantize, jetevents, dlsfile, dump_file, transpose, repeat, mute_flags)) + + def UpdateSegment(self, orgsegname, segname, filename, start, end, length, output, quantize, jetevents, dlsfile, dump_file, transpose, repeat, mute_flags): + """ Updates a segment """ + if length == JetDefs.MBT_ZEROSTR: + length = None + if end == JetDefs.MBT_ZEROSTR: + end = None + for segment in self.segments: + if segment.segname == orgsegname: + segment.segname = segname + segment.filename = filename + segment.start = start + segment.end = end + segment.length = length + segment.output = output + segment.quantize = quantize + segment.dlsfile = dlsfile + segment.transpose = transpose + segment.repeat = repeat + segment.mute_flags = mute_flags + + def MoveSegment(self, segname, start, end): + """ Moves a segment """ + for segment in self.segments: + if segment.segname == segname: + segment.start = start + segment.end = end + return + + def DeleteSegment(self, segname): + """ Deletes a segment """ + for segment in self.segments: + if segment.segname == segname: + self.segments.remove(segment) + + def SaveJetConfig(self, configFile): + """ Saves the jet config file """ + if self.config.filename == '' or self.config.filename == None: + self.config.filename = FileJustRoot(configFile) + ".JET" + config = ConfigParser.ConfigParser() + config.add_section(OUTPUT_SECTION) + config.set(OUTPUT_SECTION, OUTPUT_FILENAME, self.config.filename) + config.set(OUTPUT_SECTION, OUTPUT_CHASE_CONTROLLERS, self.config.chase_controllers) + config.set(OUTPUT_SECTION, OUTPUT_OMIT_EMPTY_TRACKS, self.config.delete_empty_tracks) + if self.config.copyright is not None: + config.set(OUTPUT_SECTION, OUTPUT_COPYRIGHT, self.config.copyright) + if self.config.app_data is not None: + config.set(OUTPUT_SECTION, OUTPUT_APP_DATA, self.config.app_data) + + self.libraries = [] + seg_num = 0 + for segment in self.segments: + segment_name = SEGMENT_SECTION + str(seg_num) + config.add_section(segment_name) + config.set(segment_name, SEGMENT_NAME, segment.segname) + config.set(segment_name, SEGMENT_FILENAME, segment.filename) + + config.set(segment_name, SEGMENT_DLSFILE, segment.dlsfile) + if FileExists(segment.dlsfile): + if not segment.dlsfile in self.libraries: + self.libraries.append(segment.dlsfile) + config.set(segment_name, SEGMENT_START, segment.start) + if segment.end > JetDefs.MBT_ZEROSTR and len(segment.end) > 0: + config.set(segment_name, SEGMENT_END, segment.end) + if segment.length > JetDefs.MBT_ZEROSTR and len(segment.length) > 0: + config.set(segment_name, SEGMENT_LENGTH, segment.length) + config.set(segment_name, SEGMENT_OUTPUT, segment.output) + config.set(segment_name, SEGMENT_QUANTIZE, segment.quantize) + if segment.dump_file is not None: + config.set(segment_name, SEGMENT_DUMP_FILE, segment.dump_file) + config.set(segment_name, SEGMENT_TRANSPOSE, segment.transpose) + config.set(segment_name, SEGMENT_REPEAT, segment.repeat) + config.set(segment_name, SEGMENT_MUTE_FLAGS, segment.mute_flags) + + clip_num = 0 + app_num = 0 + for jet_event in segment.jetevents: + if jet_event.event_type == JetDefs.E_CLIP: + clip_name = CLIP_PREFIX + str(clip_num) + s = "%s,%s,%s,%s,%s,%s" % (jet_event.event_name, jet_event.event_id, jet_event.track_num, jet_event.channel_num, jet_event.event_start, jet_event.event_end) + config.set(segment_name, clip_name, s) + clip_num += 1 + elif jet_event.event_type == JetDefs.E_APP: + app_name = APP_PREFIX + str(app_num) + s = "%s,%s,%s,%s,%s,%s" % (jet_event.event_name, jet_event.event_id, jet_event.track_num, jet_event.channel_num, jet_event.event_start, jet_event.event_end) + config.set(segment_name, app_name, s) + app_num += 1 + elif jet_event.event_type == JetDefs.E_EOS: + s = "%s,%s,%s" % (jet_event.track_num, jet_event.channel_num, jet_event.event_start) + config.set(segment_name, SEGMENT_END_MARKER, s) + + seg_num += 1 + + lib_num = 0 + config.add_section(LIBRARY_SECTION) + for library in self.libraries: + library_name = LIBRARY_FILENAME + str(lib_num) + config.set(LIBRARY_SECTION, library_name, library) + lib_num += 1 + + FileKillClean(configFile) + cfgfile = open(configFile,'w') + config.write(cfgfile) + cfgfile.close() + + def InitializeConfig(self, configFile): + """ Initializes the values for an empty flag """ + self.config.filename = FileJustRoot(configFile) + ".JET" + self.config.chase_controllers = True + self.config.delete_empty_tracks = False + self.config.copyright = None + self.config.app_data = None + self.segments = [] + self.libraries = [] + self.config_file = configFile + self.SaveJetConfig(configFile) + + + +#--------------------------------------------------------------- +# main +#--------------------------------------------------------------- +if __name__ == '__main__': + sys = __import__('sys') + optparse = __import__('optparse') + + # parse command line options + parser = optparse.OptionParser(version=VERSION) + parser.set_defaults(log_level=logging.INFO, log_file=None) + parser.add_option('-d', '--debug', action="store_const", const=logging.DEBUG, dest='log_level', help='Enable debug output') + parser.add_option('-l', '--log_file', dest='log_file', help='Write debug output to log file') + (options, args) = parser.parse_args() + + # get master logger + logger = logging.getLogger('') + logger.setLevel(options.log_level) + + # create console logger + console_logger = logging.StreamHandler() + console_logger.setFormatter(logging.Formatter('%(message)s')) + logger.addHandler(console_logger) + + # create rotating file logger + if options.log_file is not None: + file_logger = logging.FileHandler(options.log_file, 'w') + file_logger.setFormatter(logging.Formatter('%(message)s')) + logger.addHandler(file_logger) + + # process files + for arg in args: + print arg + jet_file = JetFile(arg, options) + jet_file.WriteJetFileFromConfig(options) + diff --git a/jet_tools/JetCreator/JetHelp.py b/jet_tools/JetCreator/JetHelp.py new file mode 100755 index 0000000..1606a2a --- /dev/null +++ b/jet_tools/JetCreator/JetHelp.py @@ -0,0 +1,33 @@ +""" + File: + JetHelp.py + + Contents and purpose: + Displays the help text + + Copyright (c) 2008 Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +""" + +import wx +import wx.html +from JetDefs import * + +app = wx.PySimpleApp() +frame = wx.Frame(None, -1, JetDefs.MAIN_HELPTITLE, size=(800,600)) +html1 = wx.html.HtmlWindow(frame, -1) +html1.LoadPage(JetDefs.MAIN_HELPFILE) +frame.Center() +frame.Show() +app.MainLoop() diff --git a/jet_tools/JetCreator/JetPreview.py b/jet_tools/JetCreator/JetPreview.py new file mode 100755 index 0000000..34c16d3 --- /dev/null +++ b/jet_tools/JetCreator/JetPreview.py @@ -0,0 +1,200 @@ +""" + File: + JetPreview.py + + Contents and purpose: + Plays the preview of a segment or event via the dialog box + + Copyright (c) 2008 Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +""" + +from __future__ import with_statement + +import wx +import threading + +from JetDefs import * +from JetCtrls import * +from JetFile import * +from JetUtils import * +from eas import * +from JetStatusEvent import * + +class PreviewPlayer(wx.Frame): + """ Segment player """ + def __init__ (self, play_button, segment): + self.segment = segment + self.play_button = play_button + self.mute_button = None + self.trigger_button = None + self.playerLock = threading.RLock() + self.SetKeepPlayingFlag(False) + self.graph = None + + def SetGraphCtrl(self, graph, parentWin): + """ Sets the graph control for the player """ + self.graph = graph + self.parentWin = parentWin + + def SetGraphCallbackFct(self, ClickCallbackFct): + """ Sets the callback function for the graph control to update """ + self.ClickCallbackFct = ClickCallbackFct + + def GraphTriggerClip(self, sClipName, iEventId): + """ Triggers a clip by clicking on it """ + with self.playerLock: + try: + self.jet.TriggerClip(iEventId) + return True + except: + return False + + def SetMuteFlag(self, trackNum, mute): + """ Sets a mute flag """ + sync = JetDefs.DEFAULT_MUTE_SYNC + with self.playerLock: + try: + self.jet.SetMuteFlag(trackNum, mute, sync) + logging.info("SetMuteFlag() Track:%d Mute:%d Sync:%d" % (trackNum, mute, sync)) + return True + except: + return False + + def TriggerClip(self, eventID): + """ Triggers a clip via function """ + with self.playerLock: + try: + self.jet.TriggerClip(eventID) + logging.info("TriggerClip() eventID: %d" % eventID) + return True + except: + return False + + def MuteTrackViaButton(self, button, trackNum): + """ Mutes a track via a button """ + with self.playerLock: + self.mute_button = button + if button.GetLabel() == JetDefs.BUT_MUTE: + if self.SetMuteFlag(trackNum, True): + button.SetLabel(JetDefs.BUT_UNMUTE) + else: + if self.SetMuteFlag(trackNum, False): + button.SetLabel(JetDefs.BUT_MUTE) + + def Start(self): + """ Starts the playback. Called as a thread from dialog boxes """ + self.paused = False + + wx.PostEvent(self.parentWin, JetStatusEvent(JetDefs.PST_PLAY, None)) + + # create a temporary config file, and jet output file + FileKillClean(JetDefs.TEMP_JET_CONFIG_FILE) + + self.jet_file = JetFile(JetDefs.TEMP_JET_CONFIG_FILE, "") + + self.jet_file.AddSegment(self.segment.segname, + self.segment.filename, + self.segment.start, + self.segment.end, + self.segment.length, + SegmentOutputFile(self.segment.segname, JetDefs.TEMP_JET_CONFIG_FILE), + self.segment.quantize, + self.segment.jetevents, + self.segment.dlsfile, + None, + self.segment.transpose, + self.segment.repeat, + self.segment.mute_flags) + userID = 0 + dls_num = -1 + seg_num = 0 + + if len(self.segment.dlsfile) > 0: + self.jet_file.libraries.append(self.segment.dlsfile) + dls_num = 0 + + self.jet_file.SaveJetConfig(JetDefs.TEMP_JET_CONFIG_FILE) + self.jet_file.WriteJetFileFromConfig(JetDefs.TEMP_JET_CONFIG_FILE) + + if not ValidateConfig(self.jet_file): + return + + self.queueSegs = [] + self.queueSegs.append(QueueSeg(self.segment.segname, userID, seg_num, dls_num, self.segment.repeat, self.segment.transpose, self.segment.mute_flags)) + + self.jet = JET() + self.jet.eas.StartWave() + self.jet.OpenFile(self.jet_file.config.filename) + + # queue first segment and start playback + index = 0 + Queue(self.jet, self.queueSegs[index]) + + index += 1 + self.jet.Play() + + self.SetKeepPlayingFlag(True) + while self.GetKeepPlayingFlag(): + self.jet.Render() + status = self.jet.Status() + + # if no more segments - we're done + if status.numQueuedSegments == 0: + break + + self.jet.GetAppEvent() + + # if less than 2 segs queued - queue another one + if (index < len(self.queueSegs)) and (status.numQueuedSegments < 2): + Queue(self.jet, self.queueSegs[index]) + index += 1 + + wx.PostEvent(self.parentWin, JetStatusEvent(JetDefs.PST_UPD_LOCATION, status.location)) + + SafeJetShutdown(self.playerLock, self.jet) + + FileKillClean(SegmentOutputFile(self.segment.segname, JetDefs.TEMP_JET_CONFIG_FILE)) + FileKillClean(JetDefs.TEMP_JET_CONFIG_FILE) + FileKillClean(self.jet_file.config.filename) + + self.SetKeepPlayingFlag(False) + + wx.PostEvent(self.parentWin, JetStatusEvent(JetDefs.PST_DONE, None)) + + wx.PostEvent(self.parentWin, JetStatusEvent(JetDefs.PST_UPD_LOCATION, 0)) + + def SetKeepPlayingFlag(self, val): + """ Sets the flag to tell us wheter to keep playing """ + with self.playerLock: + self.keepPlaying = val + + def GetKeepPlayingFlag(self): + """ Gets the keep playing flag """ + with self.playerLock: + return self.keepPlaying + + def Pause(self): + """ Pauses playback """ + if self.jet is None: + return + if not self.paused: + self.jet.Pause() + self.paused = True + wx.PostEvent(self.parentWin, JetStatusEvent(JetDefs.PST_PAUSE, None)) + else: + self.jet.Play() + self.paused = False + wx.PostEvent(self.parentWin, JetStatusEvent(JetDefs.PST_RESUME, None)) + diff --git a/jet_tools/JetCreator/JetSegGraph.py b/jet_tools/JetCreator/JetSegGraph.py new file mode 100755 index 0000000..04d4ca3 --- /dev/null +++ b/jet_tools/JetCreator/JetSegGraph.py @@ -0,0 +1,361 @@ +""" + File: + JetSegGraph.py + + Contents and purpose: + Draws the event graph and progress bar + + Copyright (c) 2008 Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +""" + + +import wx +import logging + +from JetUtils import * +from JetDefs import * + +GRAPH_COLORS = [ + '#C0E272', + '#85CF89', + '#CF9683', + '#749EDE', + '#9FB5B1', + '#B095BF', + '#FE546D', + '#B3BB97', + '#FFFFB8', + + ] + +PROGRESS_BAR = '#0000CC' +EOS_BAR = '#095000' +APP_BAR = '#B3BB97' + + +class Marker(): + """ Defines portions of the graph for events """ + def __init__(self, sEventType, iEventId, sName, sStartMbt, sEndMbt, iStartMeasure, ppqn): + self.sEventType = sEventType + self.iEventId = iEventId + self.sName = sName + self.StartMbt = ConvertStrTimeToTuple(sStartMbt) + self.EndMbt = ConvertStrTimeToTuple(sEndMbt) + self.iStartMeasure = iStartMeasure + self.iStart = 0 + self.iEnd = 0 + self.iWidth = 0 + self.iHeight = 0 + self.iTop = 0 + self.iUpdate = False + self.sColor = '#FFFFB8' + self.ppqn = ppqn + self.isDirty = False + + def CalcCoord(self, step, height, ColorFct): + """ Calculates the coordinates in pixels for graphing the shaded regions """ + #measures + iStartM = self.StartMbt[0] - self.iStartMeasure + iEndM = self.EndMbt[0] - self.iStartMeasure + self.iStart = step * iStartM + self.iEnd = step * iEndM + #beats + self.iStart = self.iStart + ((step / 4.0) * (self.StartMbt[1]-1)) + self.iEnd = self.iEnd + ((step / 4.0) * (self.EndMbt[1]-1)) + #ticks + pctTickOfBeat = (float(self.StartMbt[2]) / float(self.ppqn)) + self.iStart = self.iStart + ((pctTickOfBeat * (step / 4.0))) + pctTickOfBeat = (float(self.EndMbt[2]) / float(self.ppqn)) + self.iEnd = self.iEnd + ((pctTickOfBeat * (step / 4.0))) + + self.iWidth = self.iEnd - self.iStart + + self.iHeight = height + self.sColor = ColorFct() + self.iUpdate = False + +class SegmentGraph(wx.Panel): + """ Draws the player graph bar """ + def __init__(self, parent, pos=wx.DefaultPosition, size=wx.DefaultSize, ClickCallbackFct=None, showLabels=True, showClips=True, showAppEvts=True): + wx.Panel.__init__(self, parent, -1, pos=pos, size=size, style=wx.BORDER_STATIC) + self.iLocationInMs = 0 + self.iLengthInMs = 0 + self.iLengthInMeasures = 0 + self.iMarkerTop = 15 + self.iScaleTop = 0 + self.iEdges = 5 + self.iStartMeasure = 0 + self.iMidiMode = False + self.ClickCallbackFct = ClickCallbackFct + self.iColor = 0 + self.showLabels = showLabels + self.showClips = showClips + self.showAppEvts = showAppEvts + + self.font = wx.Font(8, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, 'Courier') + + self.Markers = [] + self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM) + self.Bind(wx.EVT_PAINT, self.OnPaint) + self.Bind(wx.EVT_SIZE, self.OnSize) + self.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown) + + #initialize buffer + self.OnSize(None) + + def ClearGraph(self): + """ Clears the graph values """ + self.iLocationInMs = 0 + self.iLengthInMs = 0 + self.iLengthInMeasures = 0 + self.iMarkerTop = 15 + self.iScaleTop = 0 + self.iEdges = 5 + self.iStartMeasure = 0 + self.iMidiMode = False + self.iColor = 0 + self.Markers = [] + self.iLocationInMs = 0 + self.DoDrawing() + + def LoadSegment(self, segment, segMarker=None, iMidiMode=False, showLabels=True, showClips=True, showAppEvts=True): + """ Loads up the segment drawing the graph """ + if segment is None: + self.ClearGraph() + return None + self.iMidiMode = iMidiMode + self.showLabels = showLabels + self.showClips = showClips + self.showAppEvts = showAppEvts + self.Markers = [] + self.iLocationInMs = 0 + info = MidiSegInfo(segment) + #disable graph for debugging + #return info + self.iLengthInMs = info.iLengthInMs + self.ppqn = info.ppqn + self.StartMbt = mbtFct(ConvertStrTimeToTuple(segment.start), 1) + self.EndMbt = mbtFct(ConvertStrTimeToTuple(segment.end), 1) + self.LengthMbt = None + self.iStartMeasure = self.StartMbt[0] + self.iLengthInMeasures = self.EndMbt[0] - self.StartMbt[0] + + for jet_event in segment.jetevents: + if self.showClips and jet_event.event_type == JetDefs.E_CLIP: + self.AddMarker(JetDefs.E_CLIP, jet_event.event_id, jet_event.event_name, mbtFct(jet_event.event_start,1), mbtFct(jet_event.event_end,1), self.iStartMeasure, self.ppqn) + elif jet_event.event_type == JetDefs.E_EOS: + self.AddMarker(JetDefs.E_EOS, jet_event.event_id, jet_event.event_name, mbtFct(jet_event.event_end,1), mbtFct(jet_event.event_end,1), self.iStartMeasure, self.ppqn) + elif self.showAppEvts and jet_event.event_type == JetDefs.E_APP: + self.AddMarker(JetDefs.E_APP, jet_event.event_id, jet_event.event_name, mbtFct(jet_event.event_start,1), mbtFct(jet_event.event_end,1), self.iStartMeasure, self.ppqn) + + if segMarker is not None: + self.AddMarker(JetDefs.E_CLIP, 0, segMarker[0], mbtFct(segMarker[1],1), mbtFct(segMarker[2],1), self.iStartMeasure, self.ppqn) + + self.DoDrawing() + return info + + def AddMarker(self, sEventType, iEventId, sName, sStartMbt, sEndMbt, iStartMeasure, ppqn): + """ Adds a marker to the list """ + if not CompareMbt(sStartMbt, sEndMbt): + sEndMbt = sStartMbt + self.Markers.append(Marker(sEventType, iEventId, sName, sStartMbt, sEndMbt, iStartMeasure, ppqn)) + + def OnLeftDown(self, event): + """ Calls the function assicated with an event """ + pt = event.GetPosition() + for Marker in self.Markers: + if pt[0] >= Marker.iStart and pt[0] <= Marker.iEnd and pt[1] >= Marker.iTop and pt[1] <= Marker.iTop + Marker.iHeight: + if self.ClickCallbackFct != None: + self.ClickCallbackFct(Marker.sName, Marker.iEventId) + + def GetAColor(self): + """ Gets a color """ + color = GRAPH_COLORS[self.iColor] + self.iColor = self.iColor + 1 + if self.iColor >= len(GRAPH_COLORS): + self.iColor = 0 + return color + + def OnSize(self, event=None): + """ Repaints for resizing of screen """ + if OsWindows(): + # The Buffer init is done here, to make sure the buffer is always + # the same size as the Window + Size = self.GetClientSizeTuple() + + # Make new offscreen bitmap: this bitmap will always have the + # current drawing in it, so it can be used to save the image to + # a file, or whatever. + self._Buffer = wx.EmptyBitmap(*Size) + self.DoDrawing(None) + if event is not None: + event.Skip() + + def OnPaint(self, event=None): + """ Painting of windows """ + if OsWindows(): + dc = wx.BufferedPaintDC(self, self._Buffer) + else: + dc = wx.AutoBufferedPaintDC(self) + dc.Background = wx.Brush(wx.WHITE) + self.DoDrawing(dc) + + def DoDrawing(self, dc=None): + """ Does the actual drawing of the control """ + if dc is None: + if OsWindows(): + dc = wx.BufferedDC(wx.ClientDC(self), self._Buffer) + else: + dc = wx.AutoBufferedPaintDC(self) + dc.Background = wx.Brush(wx.WHITE) + + dc.Clear() + + self.iColor = 0 + gWidth, gHeight = self.GetSize() + gWidth = gWidth - (self.iEdges * 2) + step = int(gWidth / (self.iLengthInMeasures + .01)) + + for Marker in self.Markers: + Marker.CalcCoord(step, gHeight, self.GetAColor) + + """ eliminate overlaps; establish colors """ + iClips = 0 + iMarkers = 0 + for index, Marker in enumerate(self.Markers): + if Marker.sEventType == JetDefs.E_CLIP: + iClips = iClips + 1 + iOverlaps = 1 + for index1, Marker1 in enumerate(self.Markers): + if Marker.sEventType == JetDefs.E_CLIP: + if index != index1 and not Marker1.iUpdate: + if Marker.iStart <= Marker1.iStart and Marker.iEnd <= Marker1.iEnd and Marker.iEnd >= Marker1.iStart: + iOverlaps = iOverlaps + 1 + Marker.iUpdate = True + Marker1.iUpdate = True + if not Marker.iUpdate and Marker.iStart >= Marker1.iStart and Marker.iEnd >= Marker1.iEnd and Marker.iStart <= Marker1.iEnd: + iOverlaps = iOverlaps + 1 + Marker.iUpdate = True + Marker1.iUpdate = True + if iOverlaps > 1: + iTop = 0 + for index1, Marker1 in enumerate(self.Markers): + if Marker.sEventType == JetDefs.E_CLIP: + if Marker1.iUpdate: + Marker1.iHeight = gHeight / iOverlaps + Marker1.iTop = iTop * Marker1.iHeight + iTop = iTop + 1 + elif Marker.sEventType == JetDefs.E_APP: + iMarkers = iMarkers + 1 + + for Marker in self.Markers: + if Marker.sEventType == JetDefs.E_CLIP: + dc.SetPen(wx.Pen(Marker.sColor)) + dc.SetBrush(wx.Brush(Marker.sColor)) + dc.DrawRectangle(Marker.iStart + self.iEdges, Marker.iTop, Marker.iWidth, Marker.iHeight) + width, height = dc.GetTextExtent(Marker.sName) + k = ((Marker.iStart + Marker.iEnd) / 2) - (width/2) + self.iEdges + if self.showLabels or self.iMidiMode: + dc.DrawText(Marker.sName, k, ((Marker.iTop+Marker.iHeight/2) - (height*.5))) + if self.iMidiMode: + self.iMidiModeStart = Marker.iStart + elif Marker.sEventType == JetDefs.E_EOS: + dc.SetPen(wx.Pen(EOS_BAR)) + dc.SetBrush(wx.Brush(EOS_BAR)) + dc.DrawRectangle(Marker.iStart + self.iEdges, Marker.iTop, 1, Marker.iHeight) + width, height = dc.GetTextExtent(Marker.sName) + k = Marker.iStart - (width/2) + self.iEdges + dc.DrawText(Marker.sName, k, ((Marker.iTop+Marker.iHeight/2) - (height*.5))) + elif Marker.sEventType == JetDefs.E_APP: + dc.SetPen(wx.Pen(APP_BAR)) + dc.SetBrush(wx.Brush(APP_BAR)) + dc.DrawRectangle(Marker.iStart + self.iEdges, Marker.iTop, 1, Marker.iHeight) + width, height = dc.GetTextExtent(Marker.sName) + k = Marker.iStart - (width/2) + self.iEdges + if self.showLabels or self.iMidiMode: + dc.DrawText(Marker.sName, k, ((Marker.iTop+Marker.iHeight/2) - (height*.5))) + + + """ Draw scale """ + if gWidth == 0: + iDiv = 50 + else: + iDiv = (gWidth)/18 + if iDiv == 0: + iDiv = 50 + scale = ((self.iLengthInMeasures / iDiv) + 1) + if scale == 0: + scale = 1 + beatStep = step / 4.0 + dc.SetFont(self.font) + j = 0 + lastEnd = 0 + num = range(self.iStartMeasure, self.iStartMeasure + self.iLengthInMeasures + 1, 1) + dc.SetPen(wx.Pen('#5C5142')) + for i in range(0, (self.iLengthInMeasures+1)*step, step): + k = i + self.iEdges + dc.DrawLine(k, self.iScaleTop, k, self.iScaleTop+8) + if i != (self.iLengthInMeasures)*step: + for iBeat in range(1,4): + k = i+(iBeat * beatStep) + self.iEdges + dc.DrawLine(k, self.iScaleTop, k, self.iScaleTop+4) + width, height = dc.GetTextExtent(str(num[j])) + k = i-(width/2) + self.iEdges + if k > lastEnd: + if j == 0 or (j % scale) == 0: + dc.DrawText(str(num[j]), k, self.iScaleTop+8) + lastEnd = k + width + j = j + 1 + + """ Updates the location bar in case screen moved or resized """ + if self.iLocationInMs > 0 and self.iLengthInMs > 0: + iOffset = 0 + if self.iMidiMode: + iOffset = self.iMidiModeStart + + till = gWidth * (self.iLocationInMs / self.iLengthInMs) + dc.SetPen(wx.Pen(PROGRESS_BAR)) + dc.SetBrush(wx.Brush(PROGRESS_BAR)) + dc.DrawRectangle(self.iEdges + iOffset, gHeight-6, till, 3) + + def UpdateLocation(self, iLocationInMs): + """ Updates the location bar """ + #disable graph for debugging + #return info + + self.iLocationInMs = iLocationInMs + if self.iLocationInMs > 0 and self.iLengthInMs > 0: + if OsWindows(): + dc = wx.BufferedDC(wx.ClientDC(self), self._Buffer) + else: + dc = wx.AutoBufferedPaintDC(self) + dc.Background = wx.Brush(wx.WHITE) + + iOffset = 0 + if self.iMidiMode: + iOffset = self.iMidiModeStart + + gWidth, gHeight = self.GetSize() + gWidth = gWidth - (self.iEdges * 2) + + till = gWidth * (self.iLocationInMs / self.iLengthInMs) + dc.SetPen(wx.Pen(PROGRESS_BAR)) + dc.SetBrush(wx.Brush(PROGRESS_BAR)) + dc.DrawRectangle(self.iEdges + iOffset, gHeight-6, till, 3) + self.isDirty = True + else: + if self.isDirty: + self.DoDrawing() + self.isDirty = False diff --git a/jet_tools/JetCreator/JetStatusEvent.py b/jet_tools/JetCreator/JetStatusEvent.py new file mode 100755 index 0000000..64b4b50 --- /dev/null +++ b/jet_tools/JetCreator/JetStatusEvent.py @@ -0,0 +1,38 @@ +""" + File: + JetStatusEvent.py + + Contents and purpose: + Creates an event for postevent callbacks + + Copyright (c) 2008 Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +""" + +import wx + +EVT_JET_STATUS_ID = wx.NewId() + +def EVT_JET_STATUS(win, func): + win.Connect(-1, -1, EVT_JET_STATUS_ID, func) + +class JetStatusEvent(wx.PyEvent): + """Used for posting events out of play thread back to UI""" + def __init__(self, mode, data): + wx.PyEvent.__init__(self) + self.SetEventType(EVT_JET_STATUS_ID) + self.mode = mode + self.data = data + + diff --git a/jet_tools/JetCreator/JetSystemInfo.py b/jet_tools/JetCreator/JetSystemInfo.py new file mode 100755 index 0000000..a9ac932 --- /dev/null +++ b/jet_tools/JetCreator/JetSystemInfo.py @@ -0,0 +1,40 @@ +""" + File: + JetSystemInfo.py + + Contents and purpose: + Displays the system info regarding os version, wxPython version, and Python version + + Copyright (c) 2008 Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +""" + +import sys +import os +import string +import wx + +print("") +print("wxPython Version:") +print(wx.__version__) + +print("") +print("Python Version:") +print(sys.version) + +print("") +print("Python Paths:") +for dir in string.split(os.environ['PYTHONPATH'], os.pathsep): + print dir + diff --git a/jet_tools/JetCreator/JetUtils.py b/jet_tools/JetCreator/JetUtils.py new file mode 100755 index 0000000..d81e34d --- /dev/null +++ b/jet_tools/JetCreator/JetUtils.py @@ -0,0 +1,788 @@ +""" + File: + JetUtils.py + + Contents and purpose: + Utilities used throughout JetCreator + + Copyright (c) 2008 Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +""" + +from __future__ import with_statement + +import wx +import os +import copy +import ConfigParser +import logging +import time +import tempfile + +from JetDefs import * +from JetDebug import * +from midifile import TimeBase, trackGrid + +class JetCutCopy(object): + """ Handles cut/copy/pasting of events and segments """ + def __init__ (self, objType, objSave, currentSegmentName): + self.objType = objType + self.objSave = copy.deepcopy(objSave) + self.currentSegmentName = currentSegmentName + + def GetObj(self, objList): + """ Gets an object """ + objSave = copy.deepcopy(self.objSave) + if self.objType == JetDefs.MAIN_SEGLIST: + oldName = objSave.segname + i = len(oldName) - 1 + while i > 0: + if not oldName[i].isdigit(): + break + i = i - 1 + oldName = oldName[0:i+1] + i = 1 + while True: + newName = oldName + str(i) + if self.UniqueSegName(newName, objList): + break + i = i + 1 + objSave.segname = newName + elif self.objType == JetDefs.MAIN_EVENTLIST: + oldName = objSave.event_name + i = len(oldName) - 1 + while i > 0: + if not oldName[i].isdigit(): + break + i = i - 1 + oldName = oldName[0:i+1] + i = 1 + while True: + newName = oldName + str(i) + if self.UniqueEventName(newName, objList): + break + i = i + 1 + objSave.event_name = newName + return objSave + + def UniqueSegName(self, nameVal, seglist): + for nm in seglist: + if nm.segname == nameVal: + return False + return True + + def UniqueEventName(self, nameVal, eventlist): + for nm in eventlist: + if nm.event_name == nameVal: + return False + return True + + +class JetState(object): + """ Saves the state for cut/copy/paste """ + def __init__ (self, jet_file, currentSegmentIndex, currentEventIndex): + self.jet_file = copy.deepcopy(jet_file) + self.currentSegmentIndex = currentSegmentIndex + self.currentEventIndex = currentEventIndex + +def Queue (jet, queueSeg): + """ Queues a segment """ + jet.QueueSegment(queueSeg.userID, queueSeg.seg_num, queueSeg.dls_num, queueSeg.repeat, queueSeg.transpose, queueSeg.mute_flags) + +class QueueSeg(object): + """ Object representing a segment """ + def __init__ (self, name, userID, seg_num, dls_num=-1, repeat=0, transpose=0, mute_flags=0, status=''): + self.name = name + self.userID = userID + self.seg_num = seg_num + self.dls_num = dls_num + self.repeat = repeat + self.transpose = transpose + self.mute_flags = mute_flags + self.status = status + #DumpQueueSeg(self) + +def FindDlsNum(libraries, dlsfile): + """ Looks for a dls file in the library list """ + for index, library in enumerate(libraries): + if library == dlsfile: + return index + return -1 + +def SetRowSelection(list, row, state): + """ Sets the selection status of a list row """ + if state: + list.SetItemState(row, wx.LIST_STATE_SELECTED, wx.LIST_STATE_SELECTED) + else: + list.SetItemState(row, ~wx.LIST_STATE_SELECTED, wx.LIST_STATE_SELECTED) + +def ClearRowSelections(list): + """ Clears the list rows selection status """ + index = list.GetFirstSelected() + while index != -1: + SetRowSelection(list, index, False) + index = list.GetNextSelected(index) + +def getColumnText(list, index, col): + """ Sets the text of a column """ + item = list.GetItem(index, col) + return item.GetText() + +def getColumnValue(list, index, col): + """ Gets the text of a column """ + item = list.GetItem(index, col) + v = str(item.GetText()) + if len(v) > 0: + return int(item.GetText()) + else: + return 0 + +def StrNoneChk(fld): + """ Returns a blank string if none """ + if fld is None: + return "" + return str(fld) + +def ConvertStrTimeToTuple(s): + """ Converts a string time to a tuple """ + try: + measures, beats, ticks = s.split(':',3) + return (int(measures), int(beats), int(ticks)) + except: + return JetDefs.MBT_DEFAULT + +def FileRelativePath(target, base=os.curdir): + """ Returns relative file path """ + if not os.path.exists(target): + return target + + if not os.path.isdir(base): + return target + + base_list = (os.path.abspath(base)).split(os.sep) + target_list = (os.path.abspath(target)).split(os.sep) + if os.name in ['nt','dos','os2'] and base_list[0] <> target_list[0]: + return target + for i in range(min(len(base_list), len(target_list))): + if base_list[i] <> target_list[i]: break + else: + i+=1 + rel_list = [os.pardir] * (len(base_list)-i) + target_list[i:] + return os.path.join(*rel_list) + +def FileFixPath(fileSpec): + """ Tweaks slashes """ + return fileSpec.replace("\\", "/") + +def FileKillClean(fileName): + """ Deletes a file skipping errors """ + try: + os.remove(fileName) + except: + pass + +def FileJustRoot(fileName): + """ Gets just the root of the file name """ + try: + return os.path.splitext(fileName)[0] + except: + return "" + +def FileJustName(fileName): + """ Gets just the filename, without the path """ + try: + return os.path.split(fileName)[1] + except: + return "" + +def FileJustPath(fileName): + """ Gets just the path, without the file name """ + try: + return os.path.split(fileName)[0] + except: + return "" + +def FileJustExt(fileName): + """ Gets just the extension of the file """ + try: + ext = os.path.splitext(fileName)[1] + return ext.upper() + except: + return "" + +def FileDateTime(fileName): + """ Gets the date/time of a file """ + try: + filetime = time.ctime(os.path.getmtime(fileName)) + return filetime + except: + return "" + +def FileExists(fileName): + """ Checks if a file exists """ + try: + return os.path.exists(fileName) + except: + return False + +def IniSetValue(configFile, section, option, value): + """ Sets the value of a config file field """ + config = ConfigParser.ConfigParser() + config.read(configFile) + if not config.has_section(section): + config.add_section(section) + config.set(section, option, value) + cfgfile = open(configFile,'w') + config.write(cfgfile) + cfgfile.close() + +def IniGetValue(configFile, section, option, retType='str', default=''): + """ Gets the value of a config file field """ + ret = default + config = ConfigParser.ConfigParser() + config.read(configFile) + if config.has_section(section): + if config.has_option(section, option): + ret = config.get(section, option) + if retType =='int': + try: + ret = int(ret) + except: + ret = 0 + elif retType == 'float': + try: + ret = float(ret) + except: + ret = 0 + elif retType == 'bool': + try: + if ret[0].upper()=='T': + ret = True + else: + ret = False + except: + ret = False + elif retType == 'list': + try: + ret = eval(ret) + except: + ret = [] + return ret + +def GetRecentJetFiles(): + """ Builds a list of recent jet files """ + fileList = [] + config = ConfigParser.ConfigParser() + config.read(JetDefs.JETCREATOR_INI) + if config.has_section(JetDefs.RECENT_SECTION): + for count in range(0, 10): + sFile = "File" + str(count) + if config.has_option(JetDefs.RECENT_SECTION, sFile): + sFileName = config.get(JetDefs.RECENT_SECTION, sFile) + if FileExists(sFileName): + if sFileName != JetDefs.UNTITLED_FILE: + #fileList.append(FileRelativePath(config.get(JetDefs.RECENT_SECTION, sFile))) + fileList.append(config.get(JetDefs.RECENT_SECTION, sFile)) + return fileList + +def AppendRecentJetFile(jetFile): + """ Appends to a list of recent jet files """ + addedFiles = [] + fileList = GetRecentJetFiles() + config = ConfigParser.ConfigParser() + config.read(JetDefs.JETCREATOR_INI) + if config.has_section(JetDefs.RECENT_SECTION): + config.remove_section(JetDefs.RECENT_SECTION) + config.add_section(JetDefs.RECENT_SECTION) + config.set(JetDefs.RECENT_SECTION, "File0", jetFile) + addedFiles.append(jetFile) + count = 1 + for file in fileList: + if file not in addedFiles: + sFile = "File" + str(count) + config.set(JetDefs.RECENT_SECTION, sFile, file) + addedFiles.append(file) + count += 1 + FileKillClean(JetDefs.JETCREATOR_INI) + cfgfile = open(JetDefs.JETCREATOR_INI,'w') + config.write(cfgfile) + cfgfile.close() + +def CompareMbt(mbt1, mbt2): + """ Compates to measure/beat/tick values """ + try: + m1, b1, t1 = mbt1.split(':',3) + m2, b2, t2 = mbt2.split(':',3) + if int(m1) > int(m2): + return False + elif int(m1) == int(m2) and int(b1) > int(b2): + return False + elif int(b1) == int(b2) and int(t1) > int(t2): + return False + elif int(m1) == int(m2) and int(b1) == int(b2) and int(t1) == int(t2): + return False + else: + return True + except: + return False + +def MbtVal(mbt): + """ Converts mbts to ticks """ + if type(mbt).__name__=='str' or type(mbt).__name__=='unicode': + mbt1 = mbt + else: + mbt1 = "%d:%d:%d" % mbt + try: + return TimeBase().ConvertStrTimeToTicks(mbt1) + except: + return 0 + +def TicksToMbt(ticks): + """ Converts ticks to mbts """ + return TimeBase().ConvertTicksToMBT(ticks) + +def TicksToStrMbt(ticks): + """ Converts ticks to mbts """ + return TimeBase().ConvertTicksToStr(ticks, '%02d:%02d:%02d') + +def MbtDifference(mbt1, mbt2): + """ Returns difference between mbt values """ + return TimeBase().MbtDifference(mbt1, mbt2) + +def PlayMidiFile(midiFile, dlsFile=''): + """ Plays a midi file """ + try: + e = __import__('eas') + + if midiFile == '': + return + eas = e.EAS() + if dlsFile > '': + eas.LoadDLSCollection(dlsFile) + eas.StartWave() + audio_file = eas.OpenFile(midiFile) + audio_file.Prepare() + audio_file.Play() + audio_file.Close() + eas.StopWave() + eas.Shutdown() + except: + return + +def SegmentOutputFile(segName, configFile): + """ Computes a segment output file """ + configPath = FileJustPath(configFile) + "/" + segOutput = configPath + "Seg_" + segName + ".mid" + return segOutput + +def ComputeMuteFlags(jet_file, segName): + """ Computes mute flags """ + muteFlag = 0 + for jet_event in jet_file.GetEvents(segName): + muteFlag = SetMute(jet_event.track_num, muteFlag) + return muteFlag + +def ComputeMuteFlagsFromList1(list): + """ Computes mute flags from a list """ + muteFlag = 0 + num = list.GetItemCount() + for iRow in range(num): + track_num = list.GetTrackNumber(iRow) + if list.IsChecked(iRow): + muteFlag = SetMute(track_num, muteFlag) + else: + muteFlag = ClearMute(track_num, muteFlag) + return muteFlag + +def ComputeMuteFlagsFromList(list): + """ Computes mute flags from a list """ + muteFlags = 0 + num = list.GetItemCount() + for iRow in range(num): + track_num = list.GetTrackNumber(iRow) + if list.IsChecked(iRow): + muteFlags = SetMute(track_num, muteFlags) + return muteFlags + + +def SetMuteFlag(track, muteFlag, mute): + """ Sets a mute flag """ + if mute: + SetMute(track, muteFlag) + else: + ClearMute(track, muteFlag) + +def SetMute(track, muteFlag): + """ Sets a mute flag """ + try: + muteFlag |= 1 << (track) + return muteFlag + except: + #bad argument + return muteFlag + +def ClearMute(track, muteFlag): + """ Clears a mute flag """ + try: + muteFlag &= ~(1 << (track)) + return muteFlag; + except: + #bad argument + return muteFlag + +def GetMute(track, muteFlag): + """ Get a mute flag """ + try: + if (muteFlag & ( 1 << (track))) == 0: + return False + else: + return True + except: + #bad argument + return False + +def InfoMsg(msgTitle, msgText): + """ Display a simple informational message """ + dlg = wx.MessageDialog(None, + message=msgText, + caption=msgTitle, + style=wx.OK|wx.ICON_INFORMATION + ) + dlg.ShowModal() + dlg.Destroy() + +def SendEvent (mycontrol, evt): + """ Sends an event """ + cmd = wx.CommandEvent(evt) + cmd.SetEventObject(mycontrol) + cmd.SetId(mycontrol.GetId()) + mycontrol.GetEventHandler().ProcessEvent(cmd) + +def GetJetHelpText(dlgName, fld): + """ Gets the jet help text file """ + return IniGetValue(JetDefs.JETCREATOR_HLP, dlgName, fld) + +def ExportJetArchive(fileName, jetConfigFile, jetFile): + """ Exports all files into a zip archive file """ + z = __import__('zipfile') + zip = z.ZipFile(fileName, 'w') + + #zip the original .JET file + if FileExists(jetFile.config.filename): + zip.write(jetFile.config.filename, FileJustName(jetFile.config.filename)) + + #make copy of object so we can modify it + jet_file = copy.deepcopy(jetFile) + + #zip the files, without paths + for segment in jet_file.GetSegments(): + if FileExists(segment.filename): + if not FileJustName(segment.filename) in zip.namelist(): + zip.write(segment.filename, FileJustName(segment.filename)) + if FileExists(segment.output): + if not FileJustName(segment.output) in zip.namelist(): + zip.write(segment.output, FileJustName(segment.output)) + + #zip the library files + for library in jet_file.GetLibraries(): + if FileExists(library): + if not FileJustName(library) in zip.namelist(): + zip.write(library, FileJustName(library)) + + #remove the paths on filenames + for segment in jet_file.GetSegments(): + segment.filename = FileJustName(segment.filename) + segment.dlsfile = FileJustName(segment.dlsfile) + segment.output = FileJustName(segment.output) + + #remove paths + for index, library in enumerate(jet_file.libraries): + jet_file.libraries[index] = FileJustName(library) + + #create temporary .JTC file so we can modify paths to files + tmpConfigFile = JetDefs.TEMP_JET_CONFIG_FILE + FileKillClean(tmpConfigFile) + + #save the file + jet_file.SaveJetConfig(tmpConfigFile) + + #zip it and rename it back to original name without path + zip.write(tmpConfigFile, FileJustName(jetConfigFile)) + + #create a flag file so we know this is a jet archive + zip.write(tmpConfigFile, "JetArchive") + + zip.close() + + FileKillClean(tmpConfigFile) + +def ValidateConfig(test_jet_file): + """ Validates the contents of a config file """ + dImp = __import__('JetDialogs') + errors = [] + fatalError = False + for segment in test_jet_file.segments: + logging.debug(segment.filename) + if segment.filename is not None and len(segment.filename) > 0 and not FileExists(segment.filename): + errors.append(("Segment MIDI file not found", segment.filename)) + fatalError = True + if segment.dlsfile is not None and len(segment.dlsfile) > 0 and not FileExists(segment.dlsfile): + errors.append(("Segment DLS file not found; removing from config", segment.dlsfile)) + segment.dlsfile = "" + + logging.debug(test_jet_file.config.filename) + + if len(errors) == 0: + return True + else: + dlg = dImp.JetErrors("Jet Definition File Errors") + dlg.SetErrors(errors) + result = dlg.ShowModal() + dlg.Destroy() + if fatalError: + return False + else: + return True + +def release_getLogger(name): + """ passing original handler with debug() method replaced to empty function """ + + def dummy(*k, **kw): + pass + + global __orig_getLogger + log = __orig_getLogger(name) + setattr(log, 'debug', dummy) + setattr(log, 'info', dummy) + setattr(log, 'error', dummy) + setattr(log, 'critical', dummy) + return log + +def install_release_loggers(): + """ Save original handler, installs newer one """ + global __orig_getLogger + __orig_getLogger = logging.getLogger + setattr(logging, 'getLogger', release_getLogger) + +def restore_getLogger(): + """ Restores original handler """ + global __orig_getLogger + if __orig_getLogger: + setattr(logging, 'getLogger', __orig_getLogger) + +def GetMidiFileLength(midiFile): + """ Gets the length of a midi file via eas """ + e = __import__('eas') + + if not FileExists(midiFile): + return 0 + + eas = e.EAS() + audio_file = eas.OpenFile(midiFile) + audio_file.Prepare() + midiLength = eas.audio_streams[0].ParseMetaData() + audio_file.Close() + eas.Shutdown() + return midiLength + +def GetMidiInfo(midiFile): + """ Gets midi file info """ + m = __import__('midifile') + md = m.GetMidiInfo(midiFile) + return md + +def PrintMidiInfo(midiFile): + """ Prints info about a midi file """ + mi = GetMidiInfo(midiFile) + if mi.err == 0: + print("ppqn: " + str(mi.ppqn)) + print("beats_per_measure: " + str(mi.beats_per_measure)) + print("ending mbt: " + str(mi.endMbt)) + print("ending mbt str: " + mi.endMbtStr) + print("maxMeasures: " + str(mi.maxMeasures)) + print("maxBeats: " + str(mi.maxBeats)) + print("maxTicks: " + str(mi.maxTicks)) + print("maxTracks: " + str(mi.maxTracks)) + print("totalTicks: " + str(mi.totalTicks)) + for track in mi.trackList: + print(track) + else: + print("Error opening") + +def MidiSegInfo(segment): + """ Midi file info saved in config file for speed """ + class segInfo: + iMsPerTick = 0 + bpm = 4 + ppqn = 480 + total_ticks = 0 + iLengthInMs = 0 + iTracks = 0 + trackList = [] + + ver = "1.5" + ret = segInfo() + savedVer = IniGetValue(JetDefs.JETMIDIFILES_INI, segment.filename, "Ver") + savedDateTime = IniGetValue(JetDefs.JETMIDIFILES_INI, segment.filename, "DateTime") + dateTime = FileDateTime(segment.filename) + if ver != savedVer or dateTime != savedDateTime: + mi = GetMidiInfo(segment.filename) + if mi.err == 0: + IniSetValue(JetDefs.JETMIDIFILES_INI, segment.filename, "Ver", ver) + IniSetValue(JetDefs.JETMIDIFILES_INI, segment.filename, "DateTime", str(dateTime)) + IniSetValue(JetDefs.JETMIDIFILES_INI, segment.filename, "PPQN", str(mi.ppqn)) + IniSetValue(JetDefs.JETMIDIFILES_INI, segment.filename, "BPM", str(mi.beats_per_measure)) + IniSetValue(JetDefs.JETMIDIFILES_INI, segment.filename, "totalTicks", str(mi.totalTicks)) + IniSetValue(JetDefs.JETMIDIFILES_INI, segment.filename, "maxTracks", str(mi.maxTracks)) + iLengthInMs = GetMidiFileLength(segment.filename) * 1000 + IniSetValue(JetDefs.JETMIDIFILES_INI, segment.filename, "LengthInMs", str(iLengthInMs)) + if iLengthInMs > 0: + IniSetValue(JetDefs.JETMIDIFILES_INI, segment.filename, "MsPerTick", str(iLengthInMs / mi.totalTicks)) + #have to write out the tracklist in format that can be saved in INI file + tl = [] + for track in mi.trackList: + tl.append((track.track, track.channel, track.name)) + IniSetValue(JetDefs.JETMIDIFILES_INI, segment.filename, "Tracks", tl) + + trackList = [] + tl = IniGetValue(JetDefs.JETMIDIFILES_INI, segment.filename, "Tracks", 'list', []) + for t in tl: + trackList.append(trackGrid(t[0], t[1], t[2],False)) + iTracks = IniGetValue(JetDefs.JETMIDIFILES_INI, segment.filename, "maxTracks", 'int', 0) + iMsPerTick = IniGetValue(JetDefs.JETMIDIFILES_INI, segment.filename, "MsPerTick", 'float', 0) + bpm = IniGetValue(JetDefs.JETMIDIFILES_INI, segment.filename, "BPM", 'int', 0) + ppqn = IniGetValue(JetDefs.JETMIDIFILES_INI, segment.filename, "PPQN", 'int', 480) + if iMsPerTick == 0 or bpm == 0 or ppqn == 0: + return ret + tb = TimeBase(ppqn, bpm) + total_ticks = tb.ConvertStrTimeToTicks(segment.length) + if total_ticks == 0: + total_ticks = tb.MbtDifference(tb.ConvertStrTimeToTuple(segment.start), tb.ConvertStrTimeToTuple(segment.end)) + if total_ticks == 0: + return ret + + ret.iTracks = iTracks + ret.iMsPerTick = iMsPerTick + ret.bpm = bpm + ret.ppqn = ppqn + ret.total_ticks = total_ticks + ret.iLengthInMs = total_ticks * iMsPerTick + ret.trackList = trackList + return ret + +def TimeStr(ms): + """ Returns a time string """ + s=ms/1000 + m,s=divmod(s,60) + h,m=divmod(m,60) + d,h=divmod(h,24) + if m > 0: + return "%d Min %d Sec" % (m,s) + else: + return "%d Seconds" % (s) + +def mbtFct(mbt, mod): + """ Converts times """ + if type(mbt).__name__=='str' or type(mbt).__name__=='unicode': + mbt = ConvertStrTimeToTuple(mbt) + retType = 'str' + else: + retType = 'int' + + m = mbt[0]+mod + b = mbt[1]+mod + t = mbt[2] + if m < 0: + m = 0 + if b < 0: + b = 0 + if b > 4: + b = 4 + if t < 0: + t = 0 + + if retType == 'str': + return "%d:%d:%d" % (m, b, t) + else: + return (m, b, t) + +def OsWindows(): + """ Tells us whether windows or os x """ + if os.name == 'nt': + return True ; + else: + return False ; + +def MacOffset(): + """ Mac screen coordinates funky on some controls so we finagle a few pixels """ + if not OsWindows(): + return 3 + else: + return 0 + +def SafeJetShutdown(lock, jet): + """ Makes sure we do the jet shutdown properly """ + with lock: + #MAKE SURE WE CLEANUP + #try: jet.Clear_Queue() + #except: pass + + try: jet.eas.StopWave() + except: pass + + try: jet.Shutdown() + except: pass + + jet = None + + +def CreateTempJetFile(org_jet_file): + """ Creates temporary jet file for playback testing """ + dirname = JetDefs.TEMP_JET_DIR + if not os.path.isdir(dirname): + os.mkdir(dirname) + + tmpConfigFile = dirname + FileJustName(org_jet_file.config_file) + FileKillClean(tmpConfigFile) + + jet_file = copy.deepcopy(org_jet_file) + + for tmp in jet_file.segments: + tmp.output = dirname + FileJustName(tmp.output) + + jet_file.config_file = tmpConfigFile + jet_file.config.filename = dirname + FileJustName(jet_file.config.filename) + FileKillClean(jet_file.config.filename) + + jet_file.SaveJetConfig(tmpConfigFile) + jet_file.WriteJetFileFromConfig(tmpConfigFile) + + return jet_file + +def CleanupTempJetFile(jet_file): + """ Cleans up temporary files """ + FileKillClean(jet_file.config.filename) + FileKillClean(jet_file.config_file) + for tmp in jet_file.segments: + FileKillClean(tmp.output) + +def GetNow(): + return time.asctime() + + +if __name__ == '__main__': + """ Tests functions """ + pass + + \ No newline at end of file diff --git a/jet_tools/JetCreator/ReadMe1st.txt b/jet_tools/JetCreator/ReadMe1st.txt new file mode 100755 index 0000000..121ae32 --- /dev/null +++ b/jet_tools/JetCreator/ReadMe1st.txt @@ -0,0 +1,44 @@ +# +# Copyright (C) 2009 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the 'License'); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an 'AS IS' BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +PREREQUISITES + +JetCreator was created and tested with: + +Python Version 2.5.4 +wxPython Version 2.8.7.1 + +These can be downloaded here: + +PC + +http://www.python.org/download/releases/2.5.4/ +http://www.wxpython.org/download.php + +MAC + +http://wiki.python.org/moin/MacPython/Leopard +http://www.wxpython.org/download.php + + + +INSTALLING + +1. Install Python +2. Install wxPython +3. Unzip or copy the JetCreator directory +4. Execute JetCreator.py +5. Use Import to import simple example project off Demos directory diff --git a/jet_tools/JetCreator/eas.py b/jet_tools/JetCreator/eas.py new file mode 100755 index 0000000..127314b --- /dev/null +++ b/jet_tools/JetCreator/eas.py @@ -0,0 +1,1229 @@ + +from __future__ import with_statement + +import threading +import logging +import time +from ctypes import * +from JetUtils import OsWindows + + +# stream state +EAS_STATE_READY = 0 +EAS_STATE_PLAY = 1 +EAS_STATE_STOPPING = 2 +EAS_STATE_PAUSING = 3 +EAS_STATE_STOPPED = 4 +EAS_STATE_PAUSED = 5 +EAS_STATE_OPEN = 6 +EAS_STATE_ERROR = 7 +EAS_STATE_EMPTY = 8 + +# EAS error codes +EAS_SUCCESS = 0 +EAS_FAILURE = -1 +EAS_ERROR_INVALID_MODULE = -2 +EAS_ERROR_MALLOC_FAILED = -3 +EAS_ERROR_FILE_POS = -4 +EAS_ERROR_INVALID_FILE_MODE = -5 +EAS_ERROR_FILE_SEEK = -6 +EAS_ERROR_FILE_LENGTH = -7 +EAS_ERROR_NOT_IMPLEMENTED = -8 +EAS_ERROR_CLOSE_FAILED = -9 +EAS_ERROR_FILE_OPEN_FAILED = -10 +EAS_ERROR_INVALID_HANDLE = -11 +EAS_ERROR_NO_MIX_BUFFER = -12 +EAS_ERROR_PARAMETER_RANGE = -13 +EAS_ERROR_MAX_FILES_OPEN = -14 +EAS_ERROR_UNRECOGNIZED_FORMAT = -15 +EAS_BUFFER_SIZE_MISMATCH = -16 +EAS_ERROR_FILE_FORMAT = -17 +EAS_ERROR_SMF_NOT_INITIALIZED = -18 +EAS_ERROR_LOCATE_BEYOND_END = -19 +EAS_ERROR_INVALID_PCM_TYPE = -20 +EAS_ERROR_MAX_PCM_STREAMS = -21 +EAS_ERROR_NO_VOICE_ALLOCATED = -22 +EAS_ERROR_INVALID_CHANNEL = -23 +EAS_ERROR_ALREADY_STOPPED = -24 +EAS_ERROR_FILE_READ_FAILED = -25 +EAS_ERROR_HANDLE_INTEGRITY = -26 +EAS_ERROR_MAX_STREAMS_OPEN = -27 +EAS_ERROR_INVALID_PARAMETER = -28 +EAS_ERROR_FEATURE_NOT_AVAILABLE = -29 +EAS_ERROR_SOUND_LIBRARY = -30 +EAS_ERROR_NOT_VALID_IN_THIS_STATE = -31 +EAS_ERROR_NO_VIRTUAL_SYNTHESIZER = -32 +EAS_ERROR_FILE_ALREADY_OPEN = -33 +EAS_ERROR_FILE_ALREADY_CLOSED = -34 +EAS_ERROR_INCOMPATIBLE_VERSION = -35 +EAS_ERROR_QUEUE_IS_FULL = -36 +EAS_ERROR_QUEUE_IS_EMPTY = -37 +EAS_ERROR_FEATURE_ALREADY_ACTIVE = -38 + +# special result codes +EAS_EOF = 3 +EAS_STREAM_BUFFERING = 4 + +# buffer full error returned from Render +EAS_BUFFER_FULL = 5 + +# file types +file_types = ( + 'Unknown', + 'SMF Type 0 (.mid)', + 'SMF Type 1 (.mid)', + 'SMAF - Unknown type (.mmf)', + 'SMAF MA-2 (.mmf)', + 'SMAF MA-3 (.mmf)', + 'SMAF MA-5 (.mmf)', + 'CMX/QualComm (.pmd)', + 'MFi (NTT/DoCoMo i-mode)', + 'OTA/Nokia (.ott)', + 'iMelody (.imy)', + 'RTX/RTTTL (.rtx)', + 'XMF Type 0 (.xmf)', + 'XMF Type 1 (.xmf)', + 'WAVE/PCM (.wav)', + 'WAVE/IMA-ADPCM (.wav)', + 'MMAPI Tone Control (.js)' +) + +stream_states = ( + 'Ready', + 'Play', + 'Stopping', + 'Stopped', + 'Pausing', + 'Paused', + 'Open', + 'Error', + 'Empty' +) + +# iMode play modes +IMODE_PLAY_ALL = 0 +IMODE_PLAY_PARTIAL = 1 + +# callback type for metadata +EAS_METADATA_CBFUNC = CFUNCTYPE(c_int, c_int, c_char_p, c_ulong) + +# callbacks for external audio +EAS_EXT_PRG_CHG_FUNC = CFUNCTYPE(c_int, c_void_p, c_void_p) +EAS_EXT_EVENT_FUNC = CFUNCTYPE(c_int, c_void_p, c_void_p) + +# callback for aux mixer decoder +EAS_DECODER_FUNC = CFUNCTYPE(c_void_p, c_void_p, c_int, c_int) + +# DLL path +if OsWindows(): + EAS_DLL_PATH = "EASDLL.dll" +else: + EAS_DLL_PATH = "libEASLIb.dylib" + +eas_dll = None + +# logger +eas_logger = None + +#--------------------------------------------------------------- +# InitEASModule +#--------------------------------------------------------------- +def InitEASModule (dll_path=None): + global eas_dll + global eas_logger + + + # initialize logger + if eas_logger is None: + eas_logger = logging.getLogger('EAS') + + # initialize path to DLL + if dll_path is None: + dll_path=EAS_DLL_PATH + + # intialize DLL + if eas_dll is None: + eas_dll = cdll.LoadLibrary(dll_path) + +#--------------------------------------------------------------- +# S_JET_CONFIG +#--------------------------------------------------------------- +class S_JET_CONFIG (Structure): + _fields_ = [('appLowNote', c_ubyte)] + +#--------------------------------------------------------------- +# S_EXT_AUDIO_PRG_CHG +#--------------------------------------------------------------- +class S_EXT_AUDIO_PRG_CHG (Structure): + _fields_ = [('bank', c_ushort), + ('program', c_ubyte), + ('channel', c_ubyte)] + +#--------------------------------------------------------------- +# S_EXT_AUDIO_EVENT +#--------------------------------------------------------------- +class S_EXT_AUDIO_EVENT (Structure): + _fields_ = [('channel', c_ubyte), + ('note', c_ubyte), + ('velocity', c_ubyte), + ('noteOn', c_ubyte)] + +#--------------------------------------------------------------- +# S_MIDI_CONTROLLERS +#--------------------------------------------------------------- +class S_MIDI_CONTROLLERS (Structure): + _fields_ = [('modWheel', c_ubyte), + ('volume', c_ubyte), + ('pan', c_ubyte), + ('expression', c_ubyte), + ('channelPressure', c_ubyte)] + +#--------------------------------------------------------------- +# WAVEFORMAT +#--------------------------------------------------------------- +class WAVEFORMAT (Structure): + _fields_ = [('wFormatTag', c_ushort), + ('nChannels', c_ushort), + ('nSamplesPerSec', c_ulong), + ('nAvgBytesPerSec', c_ulong), + ('nBlockAlign', c_ushort), + ('wBitsPerSample', c_ushort)] + +#--------------------------------------------------------------- +# EAS_Exception +#--------------------------------------------------------------- +class EAS_Exception (Exception): + def __init__ (self, result_code, msg, function=None): + self.msg = msg + self.result_code = result_code + self.function = function + def __str__ (self): + return self.msg + +#--------------------------------------------------------------- +# Log callback function +#--------------------------------------------------------------- +# map EAS severity levels to the Python logging module +severity_mapping = (logging.CRITICAL, logging.CRITICAL, logging.ERROR, logging.WARNING, logging.INFO, logging.DEBUG) +LOG_FUNC_TYPE = CFUNCTYPE(c_int, c_int, c_char_p) +def Log (level, msg): + eas_logger.log(severity_mapping[level], msg) + return level +LogCallback = LOG_FUNC_TYPE(Log) + +#--------------------------------------------------------------- +# EAS_Stream +#--------------------------------------------------------------- +class EAS_Stream (object): + def __init__ (self, handle, eas): + eas_logger.debug('EAS_Stream.__init__') + self.handle = handle + self.eas = eas + + def SetVolume (self, volume): + """Set the stream volume""" + eas_logger.debug('Call EAS_SetVolume: volume=%d' % volume) + with self.eas.lock: + result = eas_dll.EAS_SetVolume(self.eas.handle, self.handle, volume) + if result: + raise EAS_Exception(result, 'EAS_SetVolume error %d on file %s' % (result, self.path), 'EAS_SetVolume') + + def GetVolume (self): + """Get the stream volume.""" + eas_logger.debug('Call EAS_GetVolume') + with self.eas.lock: + volume = eas_dll.EAS_GetVolume(self.eas.handle, self.handle) + if volume < 0: + raise EAS_Exception(volume, 'EAS_GetVolume error %d on file %s' % (volume, self.path), 'EAS_GetVolume') + eas_logger.debug('EAS_GetVolume: volume=%d' % volume) + return volume + + def SetPriority (self, priority): + """Set the stream priority""" + eas_logger.debug('Call EAS_SetPriority: priority=%d' % priority) + with self.eas.lock: + result = eas_dll.EAS_SetPriority(self.eas.handle, self.handle, priority) + if result: + raise EAS_Exception(result, 'EAS_SetPriority error %d on file %s' % (result, self.path), 'EAS_SetPriority') + + def GetPriority (self): + """Get the stream priority.""" + eas_logger.debug('Call EAS_GetPriority') + priority = c_int(0) + with self.eas.lock: + result = eas_dll.EAS_GetPriority(self.eas.handle, self.handle, byref(priority)) + if result: + raise EAS_Exception(result, 'EAS_GetPriority error %d on file %s' % (result, self.path), 'EAS_GetPriority') + eas_logger.debug('EAS_GetPriority: priority=%d' % priority.value) + return priority.value + + def SetTransposition (self, transposition): + """Set the transposition of a stream.""" + eas_logger.debug('Call EAS_SetTransposition: transposition=%d' % transposition) + with self.eas.lock: + result = eas_dll.EAS_SetTransposition(self.eas.handle, self.handle, transposition) + if result: + raise EAS_Exception(result, 'EAS_SetTransposition error %d on file %s' % (result, self.path), 'EAS_SetTransposition') + + def SetPolyphony (self, polyphony): + """Set the polyphony of a stream.""" + eas_logger.debug('Call EAS_SetPolyphony: polyphony=%d' % polyphony) + with self.eas.lock: + result = eas_dll.EAS_SetPolyphony(self.eas.handle, self.handle, polyphony) + if result: + raise EAS_Exception(result, 'EAS_SetPolyphony error %d on file %s' % (result, self.path), 'EAS_SetPolyphony') + + def GetPolyphony (self): + """Get the polyphony of a stream.""" + eas_logger.debug('Call EAS_GetPolyphony') + polyphony = c_int(0) + with self.eas.lock: + result = eas_dll.EAS_GetPolyphony(self.eas.handle, self.handle, byref(polyphony)) + if result: + raise EAS_Exception(result, 'EAS_GetPolyphony error %d on file %s' % (result, self.path), 'EAS_GetPolyphony') + eas_logger.debug('EAS_SetPolyphony: polyphony=%d' % polyphony.value) + return polyphony.value + + def SelectLib (self, test_lib=False): + eas_logger.debug('Call EAS_SelectLib: test_lib=%s' % test_lib) + with self.eas.lock: + result = eas_dll.EAS_SelectLib(self.eas.handle, self.handle, test_lib) + if result: + raise EAS_Exception(result, 'EAS_SelectLib error %d on file %s' % (result, self.path), 'EAS_SelectLib') + + def LoadDLSCollection (self, path): + eas_logger.debug('Call EAS_LoadDLSCollection: lib_path=%d' % path) + with self.eas.lock: + result = eas_dll.EAS_LoadDLSCollection(self.eas.handle, self.handle, path) + if result: + raise EAS_Exception(result, 'EAS_LoadDLSCollection error %d on file %s lib %s' % (result, self.path, path), 'EAS_LoadDLSCollection') + + def RegExtAudioCallback (self, user_data, prog_chg_func, event_func): + """Register an external audio callback.""" + eas_logger.debug('Call EAS_RegExtAudioCallback') + if prog_chg_func is not None: + prog_chg_func = EAS_EXT_PRG_CHG_FUNC(prog_chg_func) + else: + prog_chg_func = 0 + if event_func is not None: + event_func = EAS_EXT_EVENT_FUNC(event_func) + else: + event_func = 0 + with self.eas.lock: + result = eas_dll.EAS_RegExtAudioCallback(self.eas.handle, self.handle, user_data, prog_chg_func, event_func) + if result: + raise EAS_Exception(result, 'EAS_RegExtAudioCallback error %d on file %s' % (result, self.path), 'EAS_RegExtAudioCallback') + + def SetPlayMode (self, play_mode): + """Set play mode on a stream.""" + eas_logger.debug('Call EAS_SetPlayMode: play_mode=%d' % play_mode) + with self.eas.lock: + result = eas_dll.EAS_SetPlayMode(self.eas.handle, self.handle, play_mode) + if result: + raise EAS_Exception(result, 'EAS_SetPlayMode error %d on file %s' % (result, self.path), 'EAS_SetPlayMode') + +""" +EAS_PUBLIC EAS_RESULT EAS_GetMIDIControllers (EAS_DATA_HANDLE pEASData, EAS_HANDLE streamHandle, EAS_U8 channel, S_MIDI_CONTROLLERS *pControl); +""" + +#--------------------------------------------------------------- +# EAS_File +#--------------------------------------------------------------- +class EAS_File (EAS_Stream): + def __init__ (self, path, handle, eas): + EAS_Stream.__init__(self, handle, eas) + eas_logger.debug('EAS_File.__init__') + self.path = path + self.prepared = False + + def Prepare (self): + """Prepare an audio file for playback""" + if self.prepared: + eas_logger.warning('Prepare already called on file %s' % self.path) + else: + with self.eas.lock: + eas_logger.debug('Call EAS_Prepare for file: %s' % self.path) + result = eas_dll.EAS_Prepare(self.eas.handle, self.handle) + if result: + raise EAS_Exception(result, 'EAS_Prepare error %d on file %s' % (result, self.path), 'EAS_Prepare') + self.prepared = True + + def State (self): + """Get stream state.""" + with self.eas.lock: + eas_logger.debug('Call EAS_State for file: %s' % self.path) + state = c_long(-1) + result = eas_dll.EAS_State(self.eas.handle, self.handle, byref(state)) + if result: + raise EAS_Exception(result, 'EAS_State error %d on file %s' % (result, self.path), 'EAS_State') + eas_logger.debug('EAS_State: file=%s, state=%s' % (self.path, stream_states[state.value])) + return state.value + + def Close (self): + """Close audio file.""" + if hasattr(self, 'handle'): + with self.eas.lock: + eas_logger.debug('Call EAS_CloseFile for file: %s' % self.path) + result = eas_dll.EAS_CloseFile(self.eas.handle, self.handle) + if result: + raise EAS_Exception(result, 'EAS_CloseFile error %d on file %s' % (result, self.path), 'EAS_CloseFile') + + # remove file from the EAS object + self.eas.audio_streams.remove(self) + + # clean up references + del self.handle + del self.eas + del self.path + + def Pause (self): + """Pause a stream.""" + eas_logger.debug('Call EAS_Pause') + with self.eas.lock: + result = eas_dll.EAS_Pause(self.eas.handle, self.handle) + if result: + raise EAS_Exception(result, 'EAS_Pause error %d on file %s' % (result, self.path), 'EAS_Pause') + + def Resume (self): + """Resume a stream.""" + eas_logger.debug('Call EAS_Resume') + with self.eas.lock: + result = eas_dll.EAS_Resume(self.eas.handle, self.handle) + if result: + raise EAS_Exception(result, 'EAS_Resume error %d on file %s' % (result, self.path), 'EAS_Resume') + + def Locate (self, secs, offset=False): + """Set the playback position of a stream in seconds.""" + eas_logger.debug('Call EAS_Locate: location=%.3f, relative=%s' % (secs, offset)) + with self.eas.lock: + result = eas_dll.EAS_Locate(self.eas.handle, self.handle, int(secs * 1000 + 0.5), offset) + if result: + raise EAS_Exception(result, 'EAS_Locate error %d on file %s' % (result, self.path), 'EAS_Locate') + + def GetLocation (self): + """Get the stream location in seconds.""" + eas_logger.debug('Call EAS_GetLocation') + msecs = c_int(0) + with self.eas.lock: + result = eas_dll.EAS_GetLocation(self.eas.handle, self.handle, byref(msecs)) + if result: + raise EAS_Exception(result, 'EAS_GetLocation error %d on file %s' % (result, self.path), 'EAS_GetLocation') + msecs = float(msecs.value) / 1000 + eas_logger.debug('EAS_GetLocation: location=%.3f' % msecs) + return msecs + + def GetFileType (self): + """Get the file type.""" + eas_logger.debug('Call EAS_GetFileType') + file_type = c_int(0) + with self.eas.lock: + result = eas_dll.EAS_GetFileType(self.eas.handle, self.handle, byref(file_type)) + if result: + raise EAS_Exception(result, 'EAS_GetFileType error %d on file %s' % (result, self.path), 'EAS_GetFileType') + file_type = file_type.value + if file_type < len(file_types): + file_desc = file_types[file_type] + else: + file_desc = 'Unrecognized type %d' % file_type + eas_logger.debug('EAS_GetFileType: type=%d, desc=%s' % (file_type, file_desc)) + return (file_type, file_desc) + + def SetRepeat (self, count): + """Set the repeat count of a stream.""" + eas_logger.debug('Call EAS_SetRepeat: count=%d' % count) + with self.eas.lock: + result = eas_dll.EAS_SetRepeat(self.eas.handle, self.handle, count) + if result: + raise EAS_Exception(result, 'EAS_SetRepeat error %d on file %s' % (result, self.path), 'EAS_SetRepeat') + + def GetRepeat (self): + """Get the repeat count of a stream.""" + eas_logger.debug('Call EAS_GetRepeat') + count = c_int(0) + with self.eas.lock: + result = eas_dll.EAS_GetRepeat(self.eas.handle, self.handle, byref(count)) + if result: + raise EAS_Exception(result, 'EAS_GetRepeat error %d on file %s' % (result, self.path), 'EAS_GetRepeat') + eas_logger.debug('EAS_GetRepeat: count=%d' % count.value) + return count.value + + def SetPlaybackRate (self, rate): + """Set the playback rate of a stream.""" + eas_logger.debug('Call EAS_SetPlaybackRate') + with self.eas.lock: + result = eas_dll.EAS_SetPlaybackRate(self.eas.handle, self.handle, rate) + if result: + raise EAS_Exception(result, 'EAS_SetPlaybackRate error %d on file %s' % (result, self.path), 'EAS_SetPlaybackRate') + + def ParseMetaData (self): + """Parse the metadata in a file.""" + eas_logger.debug('Call EAS_ParseMetaData') + length = c_int(0) + with self.eas.lock: + result = eas_dll.EAS_ParseMetaData(self.eas.handle, self.handle, byref(length)) + if result: + raise EAS_Exception(result, 'EAS_ParseMetaData error %d on file %s' % (result, self.path), 'EAS_ParseMetaData') + return float(length.value) / 1000.0 + + def RegisterMetaDataCallback (self, func, buf, buf_size, user_data): + """Register a metadata callback.""" + eas_logger.debug('Call EAS_RegisterMetaDataCallback') + with self.eas.lock: + if func is not None: + callback = EAS_METADATA_CBFUNC(func) + else: + callback = 0 + result = eas_dll.EAS_RegisterMetaDataCallback(self.eas.handle, self.handle, callback, buf, buf_size, user_data) + if result: + raise EAS_Exception(result, 'EAS_RegisterMetaDataCallback error %d on file %s' % (result, self.path), 'EAS_RegisterMetaDataCallback') + + def GetWaveFmtChunk (self): + """Get the file type.""" + eas_logger.debug('Call EAS_GetWaveFmtChunk') + wave_fmt_chunk = c_void_p(0) + with self.eas.lock: + result = eas_dll.EAS_GetWaveFmtChunk(self.eas.handle, self.handle, byref(wave_fmt_chunk)) + if result: + raise EAS_Exception(result, 'EAS_GetWaveFmtChunk error %d on file %s' % (result, self.path), 'EAS_GetWaveFmtChunk') + return cast(wave_fmt_chunk, POINTER(WAVEFORMAT)).contents + + def Play (self, max_time=None): + """Plays the file to the end or max_time.""" + eas_logger.debug('EAS_File.Play') + if not self.prepared: + self.Prepare() + if max_time is not None: + max_time += self.eas.GetRenderTime() + while self.State() not in (EAS_STATE_STOPPED, EAS_STATE_ERROR, EAS_STATE_EMPTY): + self.eas.Render() + if max_time is not None: + if self.eas.GetRenderTime() >= max_time: + eas_logger.info('Max render time exceeded - stopping playback') + self.Pause() + self.eas.Render() + break + +#--------------------------------------------------------------- +# EAS_MIDIStream +#--------------------------------------------------------------- +class EAS_MIDIStream (EAS_Stream): + def Write(self, data): + """Write data to MIDI stream.""" + with self.eas.lock: + result = eas_dll.EAS_WriteMIDIStream(self.eas.handle, self.handle, data, len(data)) + if result: + raise EAS_Exception(result, 'EAS_WriteMIDIStream error %d' % result, 'EAS_WriteMIDIStream') + + def Close (self): + """Close MIDI stream.""" + if hasattr(self, 'handle'): + with self.eas.lock: + eas_logger.debug('Call EAS_CloseMIDIStream') + result = eas_dll.EAS_CloseMIDIStream(self.eas.handle, self.handle) + if result: + raise EAS_Exception(result, 'EAS_CloseFile error %d' % result, 'EAS_CloseMIDIStream') + + # remove file from the EAS object + self.eas.audio_streams.remove(self) + + # clean up references + del self.handle + del self.eas + +#--------------------------------------------------------------- +# EAS_Config +#--------------------------------------------------------------- +class EAS_Config (Structure): + _fields_ = [('libVersion', c_ulong), + ('checkedVersion', c_int), + ('maxVoices', c_long), + ('numChannels', c_long), + ('sampleRate', c_long), + ('mixBufferSize', c_long), + ('filterEnabled', c_int), + ('buildTimeStamp', c_ulong), + ('buildGUID', c_char_p)] + +#--------------------------------------------------------------- +# EAS +#--------------------------------------------------------------- +class EAS (object): + def __init__ (self, handle=None, dll_path=None, log_file=None): + if eas_dll is None: + InitEASModule(dll_path) + if log_file is not None: + eas_logger.addHandler(log_file) + eas_logger.debug('EAS.__init__') + self.Init(handle) + + def __del__ (self): + eas_logger.debug('EAS.__del__') + self.Shutdown() + + def Init (self, handle=None): + """Initializes the EAS Library.""" + eas_logger.debug('EAS.Init') + + # if we are already initialized, shutdown first + if hasattr(self, 'handle'): + eas_logger.debug('EAS.Init called with library already initalized') + self.ShutDown() + + # setup the logging function + eas_dll.SetLogCallback(LogCallback) + + # create some members + self.handle = c_void_p(0) + self.audio_streams = [] + self.output_streams = [] + self.aux_mixer = None + + # create a sync lock + self.lock = threading.RLock() + with self.lock: + # set log callback + + # get library configuration + self.Config() + + # initialize library + if handle is None: + self.do_shutdown = True + eas_logger.debug('Call EAS_Init') + result = eas_dll.EAS_Init(byref(self.handle)) + if result: + raise EAS_Exception(result, 'EAS_Init error %d' % result, 'EAS_Init') + else: + self.do_shutdown = False + self.handle = handle + + # allocate audio buffer for rendering + AudioBufferType = c_ubyte * (2 * self.config.mixBufferSize * self.config.numChannels) + self.audio_buffer = AudioBufferType() + self.buf_size = self.config.mixBufferSize + + def Config (self): + """Retrieves the EAS library configuration""" + if not hasattr(self, 'config'): + eas_logger.debug('Call EAS_Config') + eas_dll.EAS_Config.restype = POINTER(EAS_Config) + self.config = eas_dll.EAS_Config()[0] + eas_logger.debug("libVersion=%08x, maxVoices=%d, numChannels=%d, sampleRate = %d, mixBufferSize=%d" % + (self.config.libVersion, self.config.maxVoices, self.config.numChannels, self.config.sampleRate, self.config.mixBufferSize)) + + def Shutdown (self): + """Shuts down the EAS library""" + eas_logger.debug('EAS.Shutdown') + if hasattr(self, 'handle'): + with self.lock: + # close audio streams + audio_streams = self.audio_streams + for f in audio_streams: + eas_logger.warning('Stream was not closed before EAS_Shutdown') + f.Close() + + # close output streams + output_streams = self.output_streams + for s in output_streams: + s.close() + + # shutdown library + if self.do_shutdown: + eas_logger.debug('Call EAS_Shutdown') + result = eas_dll.EAS_Shutdown(self.handle) + if result: + raise EAS_Exception(result, 'EAS_Shutdown error %d' % result, 'EAS_Shutdown') + del self.handle + + def OpenFile (self, path): + """Opens an audio file to be played by the EAS library and + returns an EAS_File object + + Arguments: + path - path to audio file + + Returns: + EAS_File + + """ + with self.lock: + eas_logger.debug('Call EAS_OpenFile for file: %s' % path) + stream_handle = c_void_p(0) + result = eas_dll.EAS_OpenFile(self.handle, path, byref(stream_handle)) + if result: + raise EAS_Exception(result, 'EAS_OpenFile error %d on file %s' % (result, path), 'EAS_OpenFile') + + # create file object and save in list + stream = EAS_File(path, stream_handle, self) + self.audio_streams.append(stream) + return stream + + def OpenMIDIStream (self, stream=None): + """Opens a MIDI stream. + + Arguments: + stream - open stream object. If None, a new synth + is created. + + Returns: + EAS_MIDIStream + + """ + with self.lock: + eas_logger.debug('Call EAS_OpenMIDIStream') + stream_handle = c_void_p(0) + if stream.handle is not None: + result = eas_dll.EAS_OpenMIDIStream(self.handle, byref(stream_handle), stream.handle) + else: + result = eas_dll.EAS_OpenMIDIStream(self.handle, byref(stream_handle), 0) + if result: + raise EAS_Exception(result, 'EAS_OpenMIDIStream error %d' % result, 'EAS_OpenMIDIStream') + + # create stream object and save in list + stream = EAS_MIDIStream(stream_handle, self) + self.audio_streams.append(stream) + return stream + + def OpenToneControlStream (self, path): + """Opens an MMAPI tone control file to be played by the EAS + library and returns an EAS_File object + + Arguments: + path - path to audio file + + Returns: + EAS_File + + """ + with self.lock: + eas_logger.debug('Call EAS_MMAPIToneControl for file: %s' % path) + stream_handle = c_void_p(0) + result = eas_dll.EAS_MMAPIToneControl(self.handle, path, byref(stream_handle)) + if result: + raise EAS_Exception(result, 'EAS_MMAPIToneControl error %d on file %s' % (result, path), 'EAS_OpenToneControlStream') + + # create file object and save in list + stream = EAS_File(path, stream_handle, self) + self.audio_streams.append(stream) + return stream + + def Attach (self, stream): + """Attach a file or output device to the EAS output. + + The stream object must support the following methods as + defined in the Python wave module: + close() + setparams() + writeframesraw() + + Arguments: + stream - open wave object + + """ + self.output_streams.append(stream) + stream.setparams((self.config.numChannels, 2, self.config.sampleRate, 0, 'NONE', None)) + + def Detach (self, stream): + """Detach a file or output device from the EAS output. See + EAS.Attach for more details. It is the responsibility of + the caller to close the wave file or stream. + + Arguments: + stream - open and attached wave object + """ + self.output_streams.remove(stream) + + def StartWave (self, dev_num=0, sampleRate=None, maxBufSize=None): + """Route the audio output to the indicated wave device. Note + that this can cause EASDLL.EAS_RenderWaveOut to return an + error code if all the output buffers are full. In this case, + the render thread should sleep a bit and try again. + Unfortunately, due to the nature of the MMSYSTEM interface, + there is no simple way to suspend the render thread. + + """ + if sampleRate == None: + sampleRate = self.config.sampleRate + if maxBufSize == None: + maxBufSize = self.config.mixBufferSize + with self.lock: + result = eas_dll.OpenWaveOutDevice(dev_num, sampleRate, maxBufSize) + if result: + raise EAS_Exception(result, 'OpenWaveOutDevice error %d' % result, 'OpenWaveOutDevice') + + def StopWave (self): + """Stop routing audio output to the audio device.""" + with self.lock: + result = eas_dll.CloseWaveOutDevice() + if result: + raise EAS_Exception(result, 'CloseWaveOutDevice error %d' % result, 'CloseWaveOutDevice') + + def Render (self, count=None, secs=None): + """Calls EAS_Render to render audio. + + Arguments + count - number of buffers to render + secs - number of seconds to render + + If both count and secs are None, render a single buffer. + + """ + + # determine number of buffers to render + if count is None: + if secs is not None: + count = int(secs * float(self.config.sampleRate) / float(self.buf_size) + 0.5) + else: + count = 1 + + # render buffers + eas_logger.debug('rendering %d buffers' % count) + samplesRendered = c_long(0) + with self.lock: + for c in range(count): + # render a buffer of audio + eas_logger.debug('rendering buffer') + while 1: + if self.aux_mixer is None: + result = eas_dll.EAS_RenderWaveOut(self.handle, byref(self.audio_buffer), self.buf_size, byref(samplesRendered)) + else: + result = eas_dll.EAS_RenderAuxMixer(self.handle, byref(self.audio_buffer), byref(samplesRendered)) + + if result == 0: + break; + if result == EAS_BUFFER_FULL: + time.sleep(0.01) + else: + raise EAS_Exception(result, 'EAS_Render error %d' % result, 'EAS_Render') + + # output to attached streams + for s in self.output_streams: + s.writeframesraw(self.audio_buffer) + + def GetRenderTime (self): + """Get the render time in seconds.""" + eas_logger.debug('Call EAS_GetRenderTime') + msecs = c_int(0) + with self.lock: + result = eas_dll.EAS_GetRenderTime(self.handle, byref(msecs)) + if result: + raise EAS_Exception(result, 'EAS_GetRenderTime error %d' % result, 'EAS_GetRenderTime') + msecs = float(msecs.value) / 1000 + eas_logger.debug('EAS_GetRenderTime: time=%.3f' % msecs) + return msecs + + def SetVolume (self, volume): + """Set the master volume""" + eas_logger.debug('Call EAS_SetVolume: volume=%d' % volume) + with self.lock: + result = eas_dll.EAS_SetVolume(self.handle, 0, volume) + if result: + raise EAS_Exception(result, 'EAS_SetVolume error %d' % result, 'EAS_SetVolume') + + def GetVolume (self): + """Get the stream volume.""" + eas_logger.debug('Call EAS_GetVolume') + volume = c_int(0) + with self.lock: + result = eas_dll.EAS_GetVolume(self.handle, 0, byref(volume)) + if result: + raise EAS_Exception(result, 'EAS_GetVolume error %d' % result, 'EAS_GetVolume') + eas_logger.debug('EAS_GetVolume: volume=%d' % volume.value) + return volume.value + + def SetPolyphony (self, polyphony, synth_num=0): + """Set the polyphony of a synth.""" + eas_logger.debug('Call EAS_SetSynthPolyphony: synth_num=%d, polyphony=%d' % (synth_num, polyphony)) + with self.lock: + result = eas_dll.EAS_SetSynthPolyphony(self.handle, synth_num, polyphony) + if result: + raise EAS_Exception(result, 'EAS_SetSynthPolyphony error %d on synth %d' % (result, synth_num), 'EAS_SetPolyphony') + + def GetPolyphony (self, synth_num=0): + """Get the polyphony of a synth.""" + eas_logger.debug('Call EAS_GetSynthPolyphony: synth_num=%d' % synth_num) + polyphony = c_int(0) + with self.lock: + result = eas_dll.EAS_GetSynthPolyphony(self.handle, synth_num, byref(polyphony)) + if result: + raise EAS_Exception(result, 'EAS_GetSynthPolyphony error %d on synth %d' % (result, synth_num), 'EAS_GetPolyphony') + eas_logger.debug('Call EAS_GetSynthPolyphony: synth_num=%d, polyphony=%d' % (synth_num, polyphony.value)) + return polyphony.value + + def SetMaxLoad (self, max_load): + """Set the maximum parser load.""" + eas_logger.debug('Call EAS_SetMaxLoad: max_load=%d' % max_load) + with self.lock: + result = eas_dll.EAS_SetMaxLoad(self.handle, max_load) + if result: + raise EAS_Exception(result, 'EAS_SetMaxLoad error %d' % result, 'EAS_SetMaxLoad') + + def SetParameter (self, module, param, value): + """Set a module parameter.""" + eas_logger.debug('Call EAS_SetParameter: module=%d, param=%d, value=%d' % (module, param, value)) + with self.lock: + result = eas_dll.EAS_SetParameter(self.handle, module, param, value) + if result: + raise EAS_Exception(result, 'EAS_SetParameter error %d (param=%d, value=%d)' % (result, param, value), 'EAS_SetParameter') + + def GetParameter (self, module, param): + """Get the polyphony of a synth.""" + eas_logger.debug('Call EAS_GetParameter: module=%d, param=%d' % (module, param)) + value = c_int(0) + with self.lock: + result = eas_dll.EAS_GetParameter(self.handle, module, param, byref(value)) + if result: + raise EAS_Exception(result, 'EAS_SetParameter error %d (param=%d)' % (result, param), 'EAS_GetParameter') + eas_logger.debug('Call EAS_SetParameter: module=%d, param=%d, value=%d' % (module, param, value.value)) + return value.value + + def SelectLib (self, test_lib=False): + eas_logger.debug('Call EAS_SelectLib: test_lib=%s' % test_lib) + easdll = cdll.LoadLibrary('EASDLL') + with self.lock: + result = eas_dll.EAS_SelectLib(self.handle, 0, test_lib) + if result: + raise EAS_Exception(result, 'EAS_SelectLib error %d' % result, 'EAS_SelectLib') + + def LoadDLSCollection (self, path): + eas_logger.debug('Call EAS_LoadDLSCollection: lib_path=%s' % path) + with self.lock: + result = eas_dll.EAS_LoadDLSCollection(self.handle, 0, path) + if result: + raise EAS_Exception(result, 'EAS_LoadDLSCollection error %d lib %s' % (result, path), 'EAS_LoadDLSCollection') + + def SetAuxMixerHook (self, aux_mixer): + + # if aux mixer has bigger buffer, re-allocate buffer + if (aux_mixer is not None) and (aux_mixer.buf_size > self.config.mixBufferSize): + buf_size = aux_mixer.buf_size + else: + buf_size = self.config.mixBufferSize + + # allocate audio buffer for rendering + AudioBufferType = c_ubyte * (2 * buf_size * self.config.numChannels) + self.audio_buffer = AudioBufferType() + self.buf_size = buf_size + self.aux_mixer = aux_mixer + + def SetDebugLevel (self, level=3): + """Sets the EAS debug level.""" + with self.lock: + eas_logger.debug('Call EAS_SetDebugLevel') + eas_dll.EAS_DLLSetDebugLevel(self.handle, level) + +#--------------------------------------------------------------- +# EASAuxMixer +#--------------------------------------------------------------- +class EASAuxMixer (object): + def __init__ (self, eas=None, num_streams=3, sample_rate=44100, max_sample_rate=44100): + eas_logger.debug('EASAuxMixer.__init__') + self.Init(eas, num_streams, sample_rate, max_sample_rate) + + def __del__ (self): + eas_logger.debug('EASAuxMixer.__del__') + self.Shutdown() + + def Init (self, eas=None, num_streams=3, sample_rate=44100, max_sample_rate=44100): + """Initializes the EAS Auxilliary Mixer.""" + eas_logger.debug('EASAuxMixer.Init') + + if hasattr(self, 'eas'): + raise EAS_Exception(-1, 'EASAuxMixer already initialized', 'EASAuxMixer.Init') + + # initialize EAS, if necessary + if eas is None: + eas_logger.debug('No EAS handle --- initializing EAS') + eas = EAS() + self.alloc_eas = True + else: + self.alloc_eas = False + self.eas = eas + + # initialize library + eas_logger.debug('Call EAS_InitAuxMixer') + buf_size = c_int(0) + result = eas_dll.EAS_InitAuxMixer(eas.handle, num_streams, sample_rate, max_sample_rate, byref(buf_size)) + if result: + raise EAS_Exception(result, 'EAS_InitAuxMixer error %d' % result, 'EAS_InitAuxMixer') + self.buf_size = buf_size.value + self.streams = [] + eas.SetAuxMixerHook(self) + + def Shutdown (self): + """Shuts down the EAS Auxilliary Mixer""" + eas_logger.debug('EASAuxMixer.Shutdown') + if not hasattr(self, 'eas'): + return + + with self.eas.lock: + if len(self.streams): + eas_logger.warning('Stream was not closed before EAS_ShutdownAuxMixer') + for stream in self.streams: + self.CloseStream(stream) + + self.eas.SetAuxMixerHook(None) + + # shutdown library + eas_logger.debug('Call EAS_ShutdownAuxMixer') + result = eas_dll.EAS_ShutdownAuxMixer(self.eas.handle) + if result: + raise EAS_Exception(result, 'EAS_ShutdownAuxMixer error %d' % result, 'EAS_ShutdownAuxMixer') + + # if we created the EAS reference here, shut it down + if self.alloc_eas: + self.eas.Shutdown() + self.alloc_eas = False + del self.eas + + def OpenStream (self, decoder_func, inst_data, sample_rate, num_channels): + """Opens an audio file to be played by the JET library and + returns a JET_File object + + Arguments: + callback - callback function to decode more audio + + """ + with self.eas.lock: + eas_logger.debug('Call EAS_OpenAudioStream') + decoder_func = EAS_DECODER_FUNC(decoder_func) + stream_handle = c_void_p(0) + result = eas_dll.EAS_OpenAudioStream(self.eas.handle, decoder_func, inst_data, sample_rate, num_channels, stream_handle) + if result: + raise EAS_Exception(result, 'EAS_OpenAudioStream error %d on file %s' % (result, path), 'EAS_OpenAudioStream') + self.streams.add(stream_handle) + return stream_handle + + def CloseStream (self, stream_handle): + """Closes an open audio stream.""" + with self.eas.lock: + eas_logger.debug('Call EAS_CloseAudioStream') + result = eas_dll.JET_CloseFile(self.eas.handle, stream_handle) + if result: + raise EAS_Exception(result, 'EAS_CloseAudioStream error %d' % result, 'EAS_CloseAudioStream') + +#--------------------------------------------------------------- +# JET_Status +#--------------------------------------------------------------- +class JET_Status (Structure): + _fields_ = [('currentUserID', c_int), + ('segmentRepeatCount', c_int), + ('numQueuedSegments', c_int), + ('paused', c_int), + ('location', c_long), + ('currentPlayingSegment', c_int), + ('currentQueuedSegment', c_int), + ] + +#--------------------------------------------------------------- +# JET_File +#--------------------------------------------------------------- +class JET_File (object): + def __init__ (self, handle, jet): + eas_logger.debug('JET_File.__init__') + self.handle = handle + self.jet = jet + +#--------------------------------------------------------------- +# JET +#--------------------------------------------------------------- +class JET (object): + def __init__ (self, eas=None): + # eas_logger.debug('JET.__init__') + self.Init(eas) + + def __del__ (self): + eas_logger.debug('JET.__del__') + self.Shutdown() + + def Init (self, eas=None, config=None): + """Initializes the JET Library.""" + # eas_logger.debug('JET.Init') + + if hasattr(self, 'eas'): + raise EAS_Exception(-1, 'JET library already initialized', 'Jet.Init') + + # create some members + if eas is None: + # eas_logger.debug('No EAS handle --- initializing EAS') + eas = EAS() + self.alloc_eas = True + else: + self.alloc_eas = False + self.eas = eas + self.fileOpen = False + + # handle configuration + if config is None: + config_handle = c_void_p(0) + config_size = 0 + else: + jet_config = S_JET_CONFIG() + jet_config.appLowNote = config.appLowNote + config_handle = c_void_p(jet_config) + config_size = jet_config.sizeof() + + # initialize library + # eas_logger.debug('Call JET_Init') + result = eas_dll.JET_Init(eas.handle, config_handle, config_size) + if result: + raise EAS_Exception(result, 'JET_Init error %d' % result, 'JET_Init') + + def Shutdown (self): + """Shuts down the JET library""" + eas_logger.debug('JET.Shutdown') + if not hasattr(self, 'eas'): + return + + with self.eas.lock: + if self.fileOpen: + eas_logger.warning('Stream was not closed before JET_Shutdown') + self.CloseFile() + + # shutdown library + eas_logger.debug('Call JET_Shutdown') + result = eas_dll.JET_Shutdown(self.eas.handle) + if result: + raise EAS_Exception(result, 'JET_Shutdown error %d' % result, 'JET_Shutdown') + + # if we created the EAS reference here, shut it down + if self.alloc_eas: + self.eas.Shutdown() + self.alloc_eas = False + del self.eas + + def OpenFile (self, path): + """Opens an audio file to be played by the JET library and + returns a JET_File object + + Arguments: + path - path to audio file + + """ + with self.eas.lock: + eas_logger.debug('Call JET_OpenFile for file: %s' % path) + result = eas_dll.JET_OpenFile(self.eas.handle, path) + if result: + raise EAS_Exception(result, 'JET_OpenFile error %d on file %s' % (result, path), 'JET_OpenFile') + + def CloseFile (self): + """Closes an open audio file.""" + with self.eas.lock: + eas_logger.debug('Call JET_CloseFile') + result = eas_dll.JET_CloseFile(self.eas.handle) + if result: + raise EAS_Exception(result, 'JET_CloseFile error %d' % result, 'JET_CloseFile') + + def QueueSegment (self, userID, seg_num, dls_num=-1, repeat=0, tranpose=0, mute_flags=0): + """Queue a segment for playback. + + Arguments: + seg_num - segment number to queue + repeat - repeat count (-1=repeat forever, 0=no repeat, 1+ = play n+1 times) + tranpose - transpose amount (+/-12) + + """ + with self.eas.lock: + eas_logger.debug('Call JET_QueueSegment') + result = eas_dll.JET_QueueSegment(self.eas.handle, seg_num, dls_num, repeat, tranpose, mute_flags, userID) + if result: + raise EAS_Exception(result, 'JET_QueueSegment error %d' % result, 'JET_QueueSegment') + + def Clear_Queue(self): + """Kills the queue.""" + with self.eas.lock: + eas_logger.debug('Call JET_Clear_Queue') + result = eas_dll.JET_Clear_Queue(self.eas.handle) + if result: + raise EAS_Exception(result, 'JET_Clear_Queue error %d' % result, 'JET_Clear_Queue') + + def GetAppEvent(self): + """Gets an App event.""" + with self.eas.lock: + eas_logger.debug('Call JET_GetEvent') + result = eas_dll.JET_GetEvent(self.eas.handle, 0, 0) + return result + + def Play(self): + """Starts JET playback.""" + with self.eas.lock: + eas_logger.debug('Call JET_Play') + result = eas_dll.JET_Play(self.eas.handle) + if result: + raise EAS_Exception(result, 'JET_Play error %d' % result, 'JET_Play') + + def Pause(self): + """Pauses JET playback.""" + with self.eas.lock: + eas_logger.debug('Call JET_Pause') + result = eas_dll.JET_Pause(self.eas.handle) + if result: + raise EAS_Exception(result, 'JET_Pause error %d' % result, 'JET_Pause') + + def Render (self, count=None, secs=None): + """Calls EAS_Render to render audio. + + Arguments + count - number of buffers to render + secs - number of seconds to render + + If both count and secs are None, render a single buffer. + + """ + # calls JET.Render + with self.eas.lock: + self.eas.Render(count, secs) + + def Status (self): + """Get JET status.""" + with self.eas.lock: + eas_logger.debug('Call JET_Status') + status = JET_Status() + result = eas_dll.JET_Status(self.eas.handle, byref(status)) + if result: + raise EAS_Exception(result, 'JET_Status error %d' % result, 'JET_Status') + eas_logger.debug("currentUserID=%d, repeatCount=%d, numQueuedSegments=%d, paused=%d" % + (status.currentUserID, status.segmentRepeatCount, status.numQueuedSegments, status.paused)) + return status + + def SetVolume (self, volume): + """Set the JET volume""" + eas_logger.debug('Call JET_SetVolume') + with self.eas.lock: + result = eas_dll.JET_SetVolume(self.eas.handle, volume) + if result: + raise EAS_Exception(result, 'JET_SetVolume error %d' % result, 'JET_SetVolume') + + def SetTransposition (self, transposition): + """Set the transposition of a stream.""" + eas_logger.debug('Call JET_SetTransposition') + with self.eas.lock: + result = eas_dll.JET_SetTransposition(self.eas.handle, transposition) + if result: + raise EAS_Exception(result, 'JET_SetTransposition error %d' % result, 'JET_SetTransposition') + + def TriggerClip (self, clipID): + """Trigger a clip in the current segment.""" + eas_logger.debug('Call JET_TriggerClip') + with self.eas.lock: + result = eas_dll.JET_TriggerClip(self.eas.handle, clipID) + if result: + raise EAS_Exception(result, 'JET_SetTransposition error %d' % result, 'JET_TriggerClip') + + def SetMuteFlag (self, track_num, mute, sync=True): + """Trigger a clip in the current segment.""" + eas_logger.debug('Call JET_SetMuteFlag') + with self.eas.lock: + result = eas_dll.JET_SetMuteFlag(self.eas.handle, track_num, mute, sync) + if result: + raise EAS_Exception(result, 'JET_SetMuteFlag error %d' % result, 'JET_SetMuteFlag') + + def SetMuteFlags (self, mute_flags, sync=True): + """Trigger a clip in the current segment.""" + eas_logger.debug('Call JET_SetMuteFlags') + with self.eas.lock: + result = eas_dll.JET_SetMuteFlags(self.eas.handle, mute_flags, sync) + if result: + raise EAS_Exception(result, 'JET_SetMuteFlag error %d' % result, 'JET_SetMuteFlags') + + diff --git a/jet_tools/JetCreator/img_Copy.py b/jet_tools/JetCreator/img_Copy.py new file mode 100755 index 0000000..6df3f2e --- /dev/null +++ b/jet_tools/JetCreator/img_Copy.py @@ -0,0 +1,51 @@ +#---------------------------------------------------------------------- +# This file was generated by C:\Python25\Lib\site-packages\wx-2.8-msw-unicode\wx\tools\img2py.py +# +from wx import ImageFromStream, BitmapFromImage, EmptyIcon +import cStringIO, zlib + + +def getData(): + return zlib.decompress( +'x\xda\x01\xd3\x02,\xfd\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00 \x00\ +\x00\x00 \x08\x06\x00\x00\x00szz\xf4\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\ +\x08d\x88\x00\x00\x02\x8aIDATX\x85\xcd\x97Mk\x13A\x18\xc7\xff\xcf\xce\xee\ +\x9a\xe0!9X\xfa\t\x92\x8dh\xfd\x06\x82\x07\x11z\n\xf8\x1dz\xd0[%\x8d"\x05O\ +\x966*\x05\xf1\x05\xf1\xe0I\xc5\xb3w\xa9\x96\xe2QQ\x0f\x01\xb5*B$x\xc8\x8b\ +\xdb$\xe6e\xc6C\xdc\xcd\xce\xb2\xb3/\xbaA\x1f\x08\x99\xd9\x99\x9d\xffo\xfe\ +\xcf3\x9b\r\xf0\x8f\x83\x00`{\xbbvn0\x1c-\xa6\xb9\xb0a\x18\xdf+\x17\xaa\xb7\ +\xa3\xe6\xe9\x000\x18\x8e\x16/U/\xa7\xa9\x8f\xcd\xda\xc6B\x9cy\xba\xb7\xd3n\ +\xb7S\x11\xcf\xe7\xf3\xb1\xe7j\xa9(\xfeE\xe8\xd1S\xe2\x07\xe7|>\x00\x8f\x9f<\ +<\xdf\xedvb\xe5\xd4\t"`\xb3v\xf5\x8aR\xd80\xdeVV\xab\'\x02\x01\xea\xf5\xba\ +\xd4\xefv;\x0b\x17\xd7\xd2-\xd2\xadk\x1bK\x80\xc2\x81R\xa9$\xf5\x9f\xef>\x03\ +\x90N\x91\x12\x11r\xb9\x9c\xdb\xff?\x8b\xd0\x9f\x82\xb4B\x08\x11\x0f@\x95\ +\x824\x84\xfd\x10\xa1\xa7@u\xac\x928\xe4\x08\n!P(\x14\xa0\xeb\xb2\xa42\x05ag\ +\xda\xefP\x98\xb0\x1f"\xd2\x01\xce9\x8a\xc5\xa2tmwo\'R0J8h<\x10\xc0\x0f\x13\ +\x14\xaa\x14\x84\tZ\x96\x15x\x8f\x04\xe0\x08&MA\xd8\xae\xfdcD\xa4\x06p \xfc)\ +\xd8{\xf9"\x10$\xae\xddsIA\\A`j\xbf\n\xc2\x05\xe0\x9c\xbb\x82a\xf6\x0b!\xdc|\ +F\xd9\xed|{\xdbD$\xad/\x01\xc4\x11\x8f#\x185?\x14\xc0\x1b\xfek\xce\x02\xaa\ +\x14D\xc1X\x96\x05"J\'\x05\x7fR\x80\x8c1\xf5\x930\xed\x14x\xc74M\x03c\xcc\ +\x05\xd0\xb4\xd9\x8f\xb0\x04\x90\xc9d$\x08\xefD\x7f1\xc5\xd9=\x11I\xc2N\xbb\ +\xf1\xad\x01\x011\x030L\xa3y\xeb\xceM\xe5\xff\x02\xa2\x19T\x12\xbb\x89\x08\ +\xf7\x1f\xdc\x83i\x9a\x00\x00\xd301\x1c\r\x91\xcdd\xa7\x8b:\x00\x95\xd5\xea]\ +\x9580}\xb7\xe3\x9c+m\x0e\xb3\x1b\x00N\x9f:\x03\xe7\xfe\xc1`\x80\xd7o^\x81@\ +\x8f\\\x808\x11\x04\xe0m\xab\xecf\x8c\x81s\x8eV\xab\x05!\x04>\xec\xbf\x87\ +\xdd\xb7;}\xfb\xe7Jb\x00\xd5\xaeU\xc2\xba\xae\x83s\x8e^\xaf\x07\xdb\xb6\xf1\ +\xe5\xebg\xf4\xfa?ZG\x8f/\x9d,/\x97{\x89\x00&\x93\t\xb2\xd9\xacT\x8cD\x04"\ +\x82\xa6i\xd2\x871\x06!\x04\x0e\x0el\x00\xc0\xfe\xa7\x8fh4\x1b\x02\x02;\x87\ +\x8e\x1c>[^.\xbbo\xb7\x14,\'\xc7\xf5\x1b[\xef\xc6\x93\xf1\xb1\xb8\xb0N\x88\ +\xdf\xb5\xaei\xac9\x16\x93\x95\xf5\xb5\xf5\xa7I\xd7\x98{\xfc\x02\\\xe5\x0c\ +\xee\x86\xfe\xecP\x00\x00\x00\x00IEND\xaeB`\x82h\xfd>s' ) + +def getBitmap(): + return BitmapFromImage(getImage()) + +def getImage(): + stream = cStringIO.StringIO(getData()) + return ImageFromStream(stream) + +def getIcon(): + icon = EmptyIcon() + icon.CopyFromBitmap(getBitmap()) + return icon + diff --git a/jet_tools/JetCreator/img_Cut.py b/jet_tools/JetCreator/img_Cut.py new file mode 100755 index 0000000..2ce5ca5 --- /dev/null +++ b/jet_tools/JetCreator/img_Cut.py @@ -0,0 +1,104 @@ +#---------------------------------------------------------------------- +# This file was generated by C:\Python25\Lib\site-packages\wx-2.8-msw-unicode\wx\tools\img2py.py +# +from wx import ImageFromStream, BitmapFromImage, EmptyIcon +import cStringIO, zlib + + +def getData(): + return zlib.decompress( +'x\xda\x01-\x08\xd2\xf7\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00 \x00\ +\x00\x00 \x08\x06\x00\x00\x00szz\xf4\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\ +\x08d\x88\x00\x00\x07\xe4IDATX\x85\xad\x97{PU\xc7\x1d\xc7\xbf\xbb{\xce\xb9\ +\x8fs/\xf7\x12^\x82T\xb8\x02Q\xab\xc18\nV\x1b\x9f\xa0M\x1f\x99\xb6\x7f\x946&\ +\x13;M\x94\xe9\xa4\x99vb\x0c\x125\xe6\x86\xd2\x82\x8f\x90L\x9264\xd3vR\x9b4\ +\xb1\xc9\xc4\xcc\xb4\xd3\xd6\x17\xad\xd1&\x05\xb5>\x88\x164 p\x91\xc7\xe5\ +\xa1\xf7r\x9f\xe7\xecn\xff\xc0\xeb\xe0\x03\x84iw\xe67\xe7\xcc\xd9\xdf~\x7f\ +\x9f\xf3\xdb\xfd\xed\xd9C0A{\xe9\xe5\xddU\xf1xl[$\x14wz\xbd\xde\x91\x89|om\ +\xbb_\xaa\xad3M\xf3\'*\xb3\xda7m\xda\x14\x19\xcf\x8f\x8e\xd7Q[[\x9b\xc59\x7f\ +:#=#\x96\xe4\xb2{\xa7\x12\xbc\xa6\xe6\xc5\xfb@HyZZzL\xc0\xdc4\x91\xef\xb8\ +\x00\xaaF\xdfY\\\xbcX[S\xba\xd6"\t~X\xbd\xbbz\xf6d\x82K)\x89f\xb1\xee]\xfa\ +\xa5/[\xd6\x96~\xc5\xc2(\xad\x98h\xec\x1d\x01jj\xaa\x96*\x9a\xb2\xb0 \xff^EJ\ +\x82%\xc5K,6E{k2\x00;\xf7\xd4lp:\x93\xf2rsr\xa9\x10\x12\xc5\xc5\xc5v\x9b\xa2\ +\xd5N\t\x00\x94\xce\xcf\xce\xfa\x02\xe3\x9cCJ\t\x8f\'\x8fZ\xad\xb6\xb9\xb5\ +\xbb\x7f\xf6\xc8D\xc1\xab\xab\xab\xd3\x18%\xbbW\xaf*u\xc4\xe3\x06\xa4\x94\ +\xc8\xcc\x9cN\xa5\x94ES\x02\xe0\xc0\xd9\xcf\xdb.1\t\t\x000\x0c\x13kJJuF\xd8\ +\xab;^\xd9\x914\x9e\x98M\xd7^\x9d\xfb\xc5y\x9a\xa2\xa8\x90R\x82R\x8a\x93\xa7\ +\x1a#\x9c\xf3O\xa6\x04\xb0\xf5\xd9\xad\xc7\xa5D\xdd\xf1\xe3\xc7\xc2\x94RH)a\ +\xb5\xda\x91\x9f\x9foM\xe2\x8e\x9a;\x8d\xf9\xf9\xae\xaa\xe5\x84\x90\x87\xee\ +\x9b7\xdf\xc29\x07\x00\x84BAttv\x85B\xc1\xe8\xfa)\x01\x00@(\x18y\xd1\xd7\xdd\ +5\x12\x0c^\x03!\x04\x9c\x0b\x14-*\xb6\x11\x8a\xf5;wV\x17\x8e\xf5\xad\xaf\xaf\ +W-\x8a\xe5w%\xabJ\xed\x86a\x02\x004M\xc5\xe1\x86\xc3!a\x98\x1b&*\xe1q\x01\ +\xbc^o\xd80\x8d\x8d\x87\x8f\x1c\ni\xdahJ\xe3q\x03\x0f,]fe\x9a\xf6\x96\x94\ +\x92$|\x83\xc1\xe1-\xe9\x19\xe9\xa9n\xf7=\x10B\x80\x10\x82\x8b\x17[\xcch,\ +\xdaXQ\xb1u\xffx1&\x04\x00\x80\xcag\xb7}\x14\x8b\xc5\x9aZ/\xfe\xc7$\x84@J ++\ +\x9b&9\x9c\xf9\xbbv\xd5\xac\x07\x80]\xbb\xaa<\xa0d\xcb\xf2\x07V\xeb\xf1x\x1c\ +RJ0F\xd0t\xf2D\xdc\x88\xf2\x1fL\xa4\x7fW\x00\x00\x88\xc7\xf8\xe3M\'N\xc4\x15\ +E\x81\x94\x12\xb1X\x0c%\xab\xd78\x08#\xaf\xd4\xd5\xedp3\xd5\xf6\x9b\xc5\xc5K\ +4\xc3\x18]\xf5\x16\x8b\x05G\x8f\xfd=D\xa4\xac\xa9\xac\xac\xbc\xfc?\x03TVV\ +\xb6I)^>v\xfch81\x15\x84P\xcc\x993W\xe3\xc2\xfe\x81\xc5b)\xca\xcd\xf1(\x89\ +\xd4_\xbd6\x84\xbe>\xff\xa0\xd3\x99|\xc7\xc5:e\x00\x00\x18\tD\xaa|\xdd]\xc1\ +\x91\x91 \x00\xc04M\xdc_x\xbf\x952\xba\xaahQ\xb1\x1e\x89D \xa5\x84\xddn\xc7\ +\x91\x86\xc3!3\x1e\x7f\xac\xbc\xbc\xdc\xf8\xbf\x01x\xbd\xde\xa8\xc9\x8d\xc7\ +\x0f7\x1c\n\xd9\xedvH)\x11\x89D\xb1jE\t9s\xf64\x84\x10P\x14\x05\xe7\x9a\xcf\ +\xc4Mn\xfe\xa5\xa2b\xeb?&\xa3;i\x00\x00\xd8\xb2y\xdb\x9f\xe3F\xfc\xd3K\x9f\ +\xb7\x9a\x8a\xa2\xe0\xe2\xa5\x16$\'\'C\xd34\\\xeeh\x07S\x18\xce5\x9f\x8b\t#\ +\xf4\xe4d5\xa7\x04\x00\x00<\x1e\xdd\xd0\xd8\xd4\x18\xb7X,\xf0u\xfb\xd0\xdf\ +\xdf\x8f\x15\xcbV\xa2\xa5\xf5\x02\x0e\x1e\xfak\x88ss\xcb\xe6\xcd\xde\xfe\xa9\ +h\xb2\xa98\x1f<\xd8p\xf5\xeb32\x9f\x18\x94"yu\xc9\x83H\xec\x92$\x1cF\xef\xc7\ +G\r\xc7\x81\x86\xb2?\xf5\xf4\x88\xa9h*Sq~\xc3\x86E\xeaG\xef{\x06=y8u\xb2\x11\ +\xe6o\xeb\x119\xff\x19b\x83\x03\xb0\xc5c\xbat\xba\x9e\x07\xb0}*\x9a\xe4\xee.\ +\xa3\xad\x1eP\x15\x079\xbf sf\x9e:#\x97\xb4gg\xa1\xf7\x83\xbd\xc8w\xa5!\xdb\ +\x99\x02P\xe0\xe3\xce\x960\xe7r\xd6\xc6\x08|\x93\xd5\x1d7\x03o\x03\xc9\x92\ +\xd2\'UB\xd6q)\xb3A\xa0Q\x83)\x16\xc2\x88>0\x00\xe3\\S\x04 \x1fv\x04\x87\xbe\ +\x95\xa2\xeav\xcdb\x81\xc7\x9d\xaeu\x0e\x0f\x9c~\x97A\x95\x00e\x94v\x19\x9c\ +\xbf\xab\n\xf1Z\x1904\xe9\x0c\xbc\r|\x87P\xfa\xebT\x97K\xc9\xce\xc8\xb0\xb9t\ +\x1d\x12@\xdf\xd0\x10\xda|>X\xdc\xb6\xa8?6r\xc4\x19\x10\xdf\x0e:\xc9{\x19\ +\xba\xeb\xab\xd3T\xa7\xc5a\xb7\xa3y\xa8\x1bk\xe7\x15\x81\x00\x18\x0e\x04\xd0\ +\xe6\xf3E\xae\x0c\x0c\x98\xe0\xfc\x89u\xc0\xbe\xbb\x02\xfc\x81\xd2g(c/\x14\ +\xe6\xe5\xe9\x86i\xa2\xa3\xb7\xf7Z0\x1c\xd6\x18c\xea\xc29s\x94p$\x82\xcf:\ +\xda\xfbX\xdc\x9c^\x06\xf0\xd7\xd2\xe0\xb0G\xe9\xd1\x99\xee\xf4\xf9\x0e\xa8\ +\x94ZU\xb4uv\x07\xb8\x10$\xc5\xe9$3\xb3\xb3\x1d\x94R4]\xb8\x1029\xafz\xd84o:\ +\x1d\xddT\x86\xef\x00e\x84R\xef\xc2\xd9\xb3\xf5\xce\xde\xdeps[[\xd7\xf0\xc8\ +\xc8\xf7\x15!R\xa2\xdcx\xee|[\x1b2RR L\x91T\x06p\x00\xf8\x91\x1f#AU\xac\xbc<\ +\xd4\x0fS%h\xef\xba\x12\x88\xc5b\x0fs\xc3\x98\xdd;4\xb4\xe5_\xcd\xcd\xc3\x1d\ +==\xd1\xa5\x85\x85\xbaB\xe9\xf6\xdfS\xfa\xdd;\x02\xec\x03\\\x84\xd27\xe7\x17\ +\x14\xd8\xdb\xbb\xbb\xc3\x83\x81@\xa3[\x88\x82\xc7\x80\xfde@D\x13\xf8c8\x16\ +\x8b(\x8a\x02Hy\xd3\xda\xf9\xf1\x10\x02jDr]\xd7\x117\x0c\x85\x00\'\xd7\x01W\ +\x1e\x05^gBx\xae\xf8\xfd\xad\x97:;cEs\xe7\xea\n!\xbf\xda\x07\xdcs\x1b\x80Iiy\ +\xaa\xdb\xad\x00\xc0\xc0\xd5\xab#n!\x1e\xfc\x1a\x10K\xf4s`Y\xb2\xae\x1b\xc1P\ +\x08\nc\xed\xb7N\x9dBY\xbb\xce,p\xdal\xa6\x00V&\x9e\x97\x01\xd7\x98\x10\xcb\ +\xbb\xfd\xfe(\x01\x90\x95\x96\xa6\x1a\x94n\xbc\r\x80\x12\xb2>;=\xdd\xee\xeb\ +\xef\x0f\x9bB\xfctl\xf0z\xc0\xce\x18\xdbyonnRgOO\x94\x0b\xb1\xf7V\x00.\xc4\ +\xde\xae\x9e\x9e\xa8\'++\x89R\xba\xa7\x1e\xb0\x8f\x85\x90\xc0\xce\x8e\x9e\ +\x9e\xa8\';\xdb\xa62v\xe3\x88F\xc7\x08x\x1c\xba\x8eP8\x1c\'\xc0\xa9\xb1\xc1\ +\x93\x18;\x90\x99\x9a\xea\xd24\r>\xbf\xdf0\x84\xf8\xe5m\x19\x10\xe2\x17\xdd~\ +\xbf\xa1i\x1aR\\\xae\x14\'\xa5\x07\xc7Bp!\x9a\x82\xa1P\xd4\xe5t\xc2\xe4<\xf7\ +6\x00B\x88\t\x00\xba\xcd\xc6\x08P\xf8\x14\x90\xf4&\xb0\xce\xc1X[fj\xea\x82y\ +\x05\x05\xb6O\xce\x9c\t\rJ\xf9\xf4z@\x02H\x01\x90\x9a\xb02\x80\x0c\x00\x9bN\ +\xb7\xb6\x86f\xe5\xe4XS\xdd\xee\x05\x0eJ\xdb\xeb\x81u\x8f\x00I\x84\xd2\x85\ +\x0e]W)\xa5\x00pc\xbb\xbeQ\x86\xef)\xca\x87\x0599\xdfLq\xb9Hcss\xc8\xe4\x9c%\ +\xe9\xba1\xdb\xe3qZ5\r\xff<{6\xdck\x9a\xf5Oq\xfe\xc6up\x8a\x9b\xcbX\x02\x10u\ +\x8cm\x9c\xceX\xf9\xc2Y\xb3\xecQ\xc3@\x9b\xcf\x17\x0c\x84\xc3\x9a\xaa(\xa2d\ +\xf1b\xdbp O\x9c?\xff\xb7\xef\x19\xc67\x00\xf0\x84\x80R\x03\x14\xe40\xf6\ +\xe9\xac\xdc\\\xc7\x8ci\xd3\xa8\xaa(\x08\x8c\x8c\xa0\xbd\xbb;\xea\xf3\xfb\ +\xf9\x05)_\xa8\x12\xe2\x00\x00\x15\xa3;h\xc2\x18FK\xd2L\xd8s\x94\x96\xce\x03\ +\xb6g\xa5\xa51\xcf\xf4\xe9\xd6\x14\xb7\x1b\x00\xe0\xeb\xeb\x13\xffni\t^4\xcd\ +\x15\xcf\x03-\x00\x8c\xb1o@\xeb\x80\xc2tE\xd9CF\xffd(\x08\xe9\x1d\xe6|\xff\ +\xfbR\xeem\x00\x82\xd7\x83%\x8c\x8c19\xc68\x00\xbe\x0cp\x96\x11\xf2h\x8a\xa2\ +\x80Cu`\x98\x06\xf1D\x8c\xd1\xbf\x8f0:2\xc2\xfe}/\xd0\xda\xda\xb6f\ +\xee\xdc|\x1bV\xa0\xd8n\x8d\xdcbt\xf43\x0e\x1d~\x95\xb6\xd6v\x06?\x1c\xe3\ +\xca\xdb\x9f29\xbbDc\x8d\x87\x83{\x9a9\xf9R7\xcf>\xb3\x93\xdf\xfc\xf6\xd7\ +\xb44\xb7\xb1\xff\xf9\x17\x1e\xa9\x80T\x0e\xa0\xb8\n\x84\x10\xdc\x99\xb9Mo\ +\xef+x}\xf5\x1c\xe9\xfb\x13\xff\xba\xa7\xf3\x8d\xd7\xbb\xf8\xe5w{\xf9\xf6\ +\x1b_ k;8\xf6\xfdw\x99\x8e\xa69y\xe2\xcbLMO\x92J\xa7\xf2\xb9QJ\x81\r\x01\x00\ +\xcc\xce\xce\xe0v\xbbhmm\xe7\xcd\x9f\x0cq\xe2@\x88\xaf\xbc\x18dsC%^\xb7B\xc0\ +\xabr`w3\xa7z\xb7\xf1\x9d\xb7?f)c\xb1o\xdf\xf3|\xf2\xc90B\x08l\xdb\xde8@)\ +\xa9"\x93\xe3<\xb7{\x0f\xbf\xff`\x8c\x9d\x9d\x9b\xe8\xde\xde\x82\xac(\xc8\ +\xb2\x8c\xaa(8T\x15\x97\xd3I]\xb5\x8f\x03{\x83\xfc\xf4\xf2\x08\xdb\xb6ngrj\ +\x02\xc306\xbe\x04\xb9\x97s\x96Sa.\x1a\xc5S\xe1a\xf0\xfa,;\x83\x01\x0c\xd3B7\ +,4\xc3\xc4\xb0,\xc0F\x126+\xbaAK}\x15\xb7\xa6\xee\x93\xcad\xa9\xf6\xfb\x99_\ +\x98/\xbb\x04\xebnD9\xcbjY4-\xcb\x9d\x85eL-\xcbr2\x8d\xa6J(\x92\x00\x1e\xc8\ +\xfb\x9f{1\x16\x17\x93\xe8\x96\xc0\xad\nn\xdf]\xc4\xe9r\xa3kZY\x80\xb29\x00p\ +\xe3\xc6\r$\xe9\xc1+\xaa\xea@7t\x02~\x0fK\x1a\xc8\xaa\x03Eu\xe0p9q\xb9\xdc\ +\x98B\xc1_]M\xc7S\xcd\xb4lj$k\x80m\xe9,%\x128\x1c\x8e\x87\x02\x97U\xc00\x8c\ +\xfcZ\xf5\xf4\xf4\xa0\xad\xd2764\x92I\xaf\xf0\xc5\x1d~>\xbeu\x1b\xd9\xc8P\ +\xe9\x92Q0\x11\xb6\x8e,l\x0c\x0b\xb2\xa6\xe0\xce\xa2Nm\xa5J\xad\xcf\xc9\xfc\ +\xfc<\r\r\x8de\x01\x1eY\x05\x85\x1bQ8\xbc\x8d\x91\xd1\x11N\xbc\xf4\x0c\x8b\ +\xf1\x15\x12Y\x99*_\r\x81\xc6&\xda\xdb;\x08\x05\x83l\xd9\xd2IM\xa0\x89kc\xf7\ +\xf9\xe6kA\xa6\xa7\xa7I$\x12\xcc\xcdE7\xae@\xb9\x8dhS\xd3&\xae_\xbf\xca\xc2|\ +\x94\xf3\xdf\xda\xcf\x9b?~\x9f\xb1\xc9Y\x9em\xf7R[%\xa3\xeb\x16\xe3w\xd3\xdc\ +\xf8\xe7}\xfa\xde\xd8M\xb8\xa3\x8eH$A\xd7\x9en\xce\x9d?\xc7\xe1C\xafnL\x81\ +\xc2%(\xb6\xde\x97\x0f\xf1\xfe_\x86H\xc4\xe6\x18\xf8\xe1a\x0e\xedm\xe3o\x13\ +\xcb\xfclp\x8aw\x86\x17\xe9h\xaa\xe5\xf2\x0f^a\xdbS~&\'#$b\xcbd2Y\x9e\xfb\ +\xdc\x1e\x06\x07\x07P\x1d\n}}}kb>t|\x1d?~\xdc\xbep\xe1\x02\xb1X\x0c!\x04\x86\ +a\xe0\xf1x0M\x93\xb1\xb11VV2L\xfc;BMM\r={{\x08\xd47\xa0:\x1c\x98\x86I,~\x9fO\ +?\xbb\xc9\xd0\xd0\x10\xa1`\x98\x96\xe66\x0c\xc3 \x1a\x8d\xa2\xaa*\x13\x93\ +\x11F\xff1\xfa\x07aI\'/]\xba\x94,\tp\xf4\xe8Q\xfb\xe2\xc5\x8b%\x01r\xa5)I\ +\x12ssQ\xc6\'\xc6\x99\x9d\xb9C2\x95DUT|>?\xa1P\x98`g\x88s\xe7\x7fAUU\x15\x9d\ +[B\xe8\x9a\xce\xc2\xc2\x02\x0e\x87\x83\xb9\x85(W\xaf~8b(\xf6\xc1\x81\x8b\x03\ +w\x1f\xeb0\xca\xd9\x83kv\x03\x8d\x8dM\xf9\xbd"w\x82\xe6\xec\xeb_{\x8b\x0b\ +\xbf\xea\xe7\xda\xf5\x8f\xd8\xdb\xf5y\xea\xea\xea\x88\xc7\xe3\x84\x83a\x02\r\ +\xf5;\x06~w\xe5\xe7\xc0\x91\xe2\x1c\xf0\n!\x96l\xdb\xc6\xeb\xf5\xe2\xf5z\xf1\ +\xf9|\xb8\xddn***\xf0x<8\x9d\xce\xfc\xbf%M\xd3H\xa7\xd3\xa4R)\x92\xc9$\x89D\ +\x82D"A<\x1e\'\x9dNs\xf4\xc8\xebl\xeex\x9a?\xbf\xfbG,\xcb\xa4\xa5\xb5\x99\ +\xb6\xcd\xcdtwwc\xc3\x8b\xb0\xb6\n\xaa\x80\xfa\x99\x99\x99\x1f\x9d:u\xea{B\ +\x08w\xf1\x97\xe7.\xac\xb9\x83\xa5\xd4s\xa1\x1a9\x97\x15\x89\xcbW.s\xec\xd81\ +\xda]m\x0c\x0f\x0fc\xdb\xf6G\x80\\\x98\x03N \x00\xd4\x02\xfe\xd5\xbe\\\xc4 \ +\x17\xb8\xb4\xearA+\n\xdc\x06\xacU\xcf\xb4?\xdd\xde\xbec\xfb\xf6\x13N\x973l\ +\x99\xe6\x07)c\xe5\xad\xf7\xdeyo\xba\xd4%\xce\t\xb8V\xdbr\x97\xeeN,\x88\xf9\x03\xa4\ +\x94A\xff.!R\xc0\x05S\xb1\x00qi\x88\x93\xbf\x1f )5Q\xa3]-\xde\x7fe\x93N\\\ +\x11\x8et\x9eX\x07\x92G5\x8f\x92G}\x1d1\xb5\xa8\x13\\o\xe6=\xd4\x1f\x83\x9e\ +\x85\x88;G\xb5N\xe0c\xbb`\x08 i|5\xdaY\x94\x19\x949<5\x02\xff2\x8a[\x0e\xbb\ +\xefOp\x9d?\xa1\xe0^\x82;\x00W\xe5\xb4\xf5\xda\x8c\x02\xd8\xdc\xdc\x8c\x05\ +\x88\xbb\x1a\xdbL\x89\xca\xeec\x96>l=E\xdbO\x99lnA\xccJ\xe8\ +\x9cCU\xa3\xa8\xae\xd9\x92J\x19\xa7\x0f\x81\x02\xeag0r\nD\x00\x81L\xf3b\xe7\ +\x19\x9f\x7f\x16\xfe\xc4dsK$\xaa\x8e\x91\n\x0c\xda85\x01s8fPN\xf0\x1c!z\x01\ +\x92\xc5\x9b\x05~\xf9\xf5Gd\xb2\xfe\xa4\x7f\xce\xb1\xbb \xcd\xf9\xd5\xd6\xb3\ +(eT\xcb\xd1PA)Po\x0c\x95\xdcx\x00\xfd\x11\xa6\xb5g\x92\xa9\xeaeJS\x01\x06w\ +\xbd\x9e]wm\x18\xb5{&\x02\x84a\x18\xeb4\r(\x0e`\xd0\xc6V \xceq\xda:pS\x80\ +\xc4\x85\x08`cc\x03c\x86\x0bg\\@cLjm\x0c\xcd\x1e\x86\xe1e\xaeVVVFnLI\x8e\x93\ +\x14\x8a\xb3\x91)\x18\xdc\x9aG)\x11\xbf&\xa4\xdb\xc8\x14\x8c\xe34\xed]\x1aLl\ +\x17$\xb5\xe1M\xc0z\xcbz\x92\xddH\x81\xdb\xb4k\xed\x05iv\x13\xe5n\x04\xd0\ +\xdf\x19i \xaa:\x12l\x10\xa0$"g\xaaZ*\x95J\x88D\xe7\x02k\xed\x7f\xae\x0b\x80\ +l6{\x0e\xdc\x03N\x80\xd6 \xc0\x14P\xde\xdb\xdb\xfbzuu\xf5+\x91\xee\x89\xe2\ +\x96LU\x9b\xbb\xbb\xbb\xdf\x00\x0b@\x00\x1c\x00\xbe_\xc3\x1c0\x0f\xdc\x01\ +\xa6\xbb\xe3\xe0\x96\xfc7\x89\x82}\x0b\xd4\x80\xbf\x80\x0b\x88?\x1d\xe7\x80|\ +\xf7~[\xa7g\x07t\x88do\xd1\xf7?\xfd\x1fi[\xcc\xd5\x90zP\xe4\x00\x00\x00\x00I\ +END\xaeB`\x82\xd34\xc5\xd2' ) + +def getBitmap(): + return BitmapFromImage(getImage()) + +def getImage(): + stream = cStringIO.StringIO(getData()) + return ImageFromStream(stream) + +def getIcon(): + icon = EmptyIcon() + icon.CopyFromBitmap(getBitmap()) + return icon + diff --git a/jet_tools/JetCreator/img_Open.py b/jet_tools/JetCreator/img_Open.py new file mode 100755 index 0000000..7a1fe25 --- /dev/null +++ b/jet_tools/JetCreator/img_Open.py @@ -0,0 +1,79 @@ +#---------------------------------------------------------------------- +# This file was generated by C:\Python25\Lib\site-packages\wx-2.8-msw-unicode\wx\tools\img2py.py +# +from wx import ImageFromStream, BitmapFromImage, EmptyIcon +import cStringIO, zlib + + +def getData(): + return zlib.decompress( +'x\xda\x01\x96\x05i\xfa\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00 \x00\ +\x00\x00 \x08\x06\x00\x00\x00szz\xf4\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\ +\x08d\x88\x00\x00\x05MIDATX\x85\xed\x96Ol\x13\xd9\x1d\xc7?ofl\'v\xb6\x0eN\ +\x1c\xa5E\x02\xad@P$\x96C\xb47\n\xe5\x92Ks\xe1\x88\xb6R9\xf5\xc4\xa9\xf7\x82\ +\x84\xf6\x80\xe8\xb5\x87\xaa\x08\xf5\x86\xca\xa1Zi\x0fU\xa5\xa5\xda\xf6\xd0U\ +\xcb\x8av\xd5\x06*6 \xc7I\x086\x8e\'x<\xf6\x8cg\xe6\xfd\xe9!\xb1\xeb\xb1M \ +\xab\xaa\xbd\xf4;\x1a\xbd\xf7~\xbf7\xef\xfb\xfd\xfd\xde{\xf3\x1e\xfc\x8f!\ +\x0er\xae\xac\xac\xfc\x00\xf8m&\x93\xe9\x8e\xf6\xb5,\x0b\xdb\xb6\xb1m[\xd8\ +\xb6\x8d\xe38\xfd6\x96eaY\x96\rd\x87m\xc3\xe5\xad[\xb7\x04\x80s\xa0:!\xbe\ +\x9c\x9e\x9e\xe6\xfe\xfd\xfb\x05)%\xc6\x18\x00\x8c1\x83\xb7\x8f\xd1\xb6eYd2\ +\x99\xd4x}\xff\xf5\xeb\xd7\x076\x07\xe0\xea\xd5\xab\x7fL\x92\xe4\xfb\x93D\ +\x84a8,(U\xbe\r\xc3\x82\xfaPJ\xa1\xb5V)\x01I\x92\x9c\xbfq\xe3\x06\xadV+\x15\ +\x811\x86\xdb\xb7o\x03\xe0\xba.\x0f\x1e\x9f?\xd4\xea\x0f\x82 eK\x92\x84g\xcf\x9e\xc5B\ +\x88\xbbc\x02\x80W\xbe\xef\xeb\xb3g\xcfb\x8c\xa1R\xa9p\xf9\xf2e\xfe\xf9t\x8d\ +\x9f}\x161\xfe;\xf9\x86\xc8.\x17\x81\xd7\x1f\xfexy\\@\xbb\xdd\x16\xae\xeb\ +\xd2h4\xd8\xdc\xdc\xe4\xe8\xd1\xa3|\xfe\xe7U\x8e-\xce\xf0\x93\x8f\xce\x1f\ +\x9e\xcc\xf4\x8bq\xf9\x06\x88"\xc9O\x7f\xf9\x87-\x07\xc0\xb2\xacW\x9e\xe7\ +\xe5\x16\x16\x16\xd8\xde\xde\xe6\xd4\xa9St:\x1dZ!|\xa7<\x8b\xebG\xacnx\x07\ +\xf1\xa4\x08\xc7m\xe9\xf6\xd1\xb9i^\xbf\xee\x80\xb1>\xb7\x00\xee\xdd\xbb\xd7\ +\x8e\xa2\x08\xd7u\xa9T*\\\xb8p\x81f\xb3\xc9n (\x15\xf3\xb4\x03\x99"4\x801\ +\xa0\xf7\x0f m\x0c\x1a\xb3\xdf\xde\xf3\x19\xdd\xef\xb3\xdf6{\xd2\x946d\x1d\ +\x8b\xaf7\x9b]%\xe5\xef\xad\xfe\xc0B\x88V\xa1P I\x12fff\x10B\xd0\xe8\x18f\ +\xbf\x95\xc7\x0f\xe5D\xc2\x14\xc1(a\xff\x19\x9c\x9c \x95!L$SY\x9b\xb5\x8d\ +\xa6\xb0\x84\xf9bp\x1c[\x96\xb5\xdbl6\xcb\x9dN\x87L&\x83\xd6\x9a\xa6\xaf\x98\ +\xc9gi\xf5\x12t\xff(\x9e\x98\xde\xfe1\xfd\xe6\xe9I\x94&\x91\x9a\xc2\x94\x83\ +\xeb\x85D\xb1\x8c\xbf\xbc\xfb\xa3\xf5\xe1\x0c\xd4\x1c\xc7!\x08\x02\n\x85\x02\ +\xb6\xed\xe0v$\xf9\xa9\x0ca\xac\'\xa6S\x0fE\xb7\x175\x83z\xdf\xa7\x94\xa1\ +\x97(b\xa91@>g\xb3Q\xf3\x10\xb6\xf5\x05\x0c]H\xb4\xd6\xdb\xbb\xbb\xbb(\xa5\ +\x10B\xb0\xd3\xd1\x94\x8f\x14\xe8%\x06\xa5\xf4X\x84\x93\x16\xdfp\x1f\xa5\xcd\ +\xe0\x1dF\xd6\xb1Y\x7f\xe1vu\xac~\x93\x12\xa0\x94Z\x97R\x1a\xc7qD\x14El4c\ +\x16\xe6\xde\xc3\x0f\x93At}B\xdd_\x07z\x7f\xae\x87\xa7c\x90\xa1q\x08\xb1w\ +\xaf\xdb\xac\xb7l\xa9\xad\xcfF3\xf0\xaa\xd5jER\xca\xa9\x9b7o\xd2\x9e\xfb\x1e\ +\x1f\x9e\xbfD\x10)\xa4\xdeK\xa52\x06\xa3\'\x0f\xfe.\xc896\xf5\xdd\x0e\xc6\ +\x98\xdaW\xbf\xfa\xe8eJ\x00P\xeb\xf5z\xc9\xc5\x8b\x17\xa7vvvx\x18|\x9b\xfcT\ +\x16/HH\xf6\xa7`\x14\x93\xae\\\x03\xdf\x04\x9b\xb0`\xf3\xe5\xae4\xda|\xd2\ +\xb7\r\xef\x82\x86\xef\xfb*\x97\xcbQ\xf7\x14\xf6\xb4C\x8cE\x10\xff\xfb\x1f\ +\x80\x99<\xf0\x81\xc4\xfb\x06\x01\xc4\x89a\xe3e\xb3\'5\xbf\x1e\x13 \xa5|\xe5\ +\xfb\xbeS.\x97\xa9\x89\xf7\x99/\xcf\xe3\xf7$Z\x8dl\xbf7P\x9aqS\nB\x08Z\xcd6I\ +\xac[\x7f\xbb\xfb\xc3\xbf\x8e\tx\xfc\xf8qx\xe2\xc4\x89\xdcW\xf5)B{\x8ecG\x8a\ +\xf4b5>\xd2\x9bx&\x90\xa6\xfd\x86j\xb5\x16\x06\xbb[?\x07\xde\x03\xfc\x94\x80\ +\'O\x9eD\xc7\x8f\x1f\x7f\xda0\xc7>@\x1a\x9e\xfc\xfd\xeb\x03\xc9\x0f\x03\x03\ +\xca\x08\x81\x8a:\xffX\xfb\xf4\xe3\xdf\x01\xd9\xbeo\xf8\x82_\xcc\xe5r\xe5bi\ +\xe1}\x91?R\x92I\x92\x1d\x1f\xea\xf0\xd0\xda\xc8^";Bi\x154+u\xa0\tl\x03jT\ +\x00@\x0e(\x02\xd3@\x86\xff\x1c$\x90\x00\x1e\xd0\xe5\xedk\xf9\xff\xf8\xef\ +\xe1_\x86IG\x92\xf3G\x04=\x00\x00\x00\x00IEND\xaeB`\x82\x8f\x9d\xc6\xf3' ) + +def getBitmap(): + return BitmapFromImage(getImage()) + +def getImage(): + stream = cStringIO.StringIO(getData()) + return ImageFromStream(stream) + +def getIcon(): + icon = EmptyIcon() + icon.CopyFromBitmap(getBitmap()) + return icon + diff --git a/jet_tools/JetCreator/img_Paste.py b/jet_tools/JetCreator/img_Paste.py new file mode 100755 index 0000000..842c4a7 --- /dev/null +++ b/jet_tools/JetCreator/img_Paste.py @@ -0,0 +1,41 @@ +#---------------------------------------------------------------------- +# This file was generated by C:\Python25\Lib\site-packages\wx-2.8-msw-unicode\wx\tools\img2py.py +# +from wx import ImageFromStream, BitmapFromImage, EmptyIcon +import cStringIO, zlib + + +def getData(): + return zlib.decompress( +'x\xda\x01\xdd\x01"\xfe\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00 \x00\ +\x00\x00 \x08\x06\x00\x00\x00szz\xf4\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\ +\x08d\x88\x00\x00\x01\x94IDATX\x85\xed\x97\xbdN\xc30\x14\x85OJ\x06gK6\x18;\ +\xa6\x1bk^\xa1\x8fS\xb5\x08\x18\x10\x03c\x07\x84X\x902\xb6o\x90\x951\xdd\xca\ +\xd6\x8c\x1e\x93\xcd\x06\x06\xdf\xad\x0c\xb4\x15HIs\x9dDD\x958[,\xfb\x9e/\ +\xbe\xd7\x7f\x8e38C\x9fr\x01\xe0\xe9\xe5qKZw\x1cZ`:\xbbrX\x00\xa45&\x93\xdbN\ +\xed\xe7\xf3\x07V?\xf7\xe7\x87\xeeh\x16|\xdfg\xf7\x1dt\xe2\xd8B\xff\x00nYc\ +\x96e\x8d\x82\r\x87C\x08!\xda\x03\x84a\xd8\x08\xa0\x89N#\x05i\x9aB)\xb2\x0e~\ +s}\xbf\x05\x80 \x00\xa6\xb3\xbb\xd2M\x89\x95\x82$y\x85\x94\xd6\xfe,\x9dF\n\ +\xfe\x1c\xa0,\x05{\x8dF\xe7\x10\xc2\xab\rLd\xb0\xd9\x14\xcd\x00\x8e\xc9\x18\ +\x821\x9c\x9e\xbc\xa2\xb5N\x81\xd6\xc4\nN\xccUS\x99\x02\xa2\xf2\x00ax\xc1\ +\xda\xedV+\t\x98z\x88R\x80*s\x00H\xd3n\xd7\xe3/\x80c\xc6{\x8d\xc7\x97\xa8\ +\x9b\x80\xf5ZBJ\xde\xdd\xc2\xba\x08\x93\xe4\xcdv\x08\x0f\x80\xf3\xf7\x00\x10\ +E\xbc\x13\x8f\x88X\xe9\xb2\x9e\x81,\xcbm\x87t\x0b\xd0\xe4Pb\x01\x10\x91\xf5e\ +\xa2L\x9e\x07\xf8>v\x85*vm\xd5\xd0;\x00\x818~nm\x0e|\x1bGQx\xb8\x19\x17E\x81\ +<\xaf\xae\x05\x17@\xed\x03b\x7f\xae\xf3!\xc4\xc1\\)\x05)\xab\xeb\xc6\xba\x06\ +8\xd2Z\xc3\x18\x03M\x1aRJ,\x16\x8bv\x00A\xc07\xf7< \xcfs(RX\xc6K(\xa5\xf0\ +\xfe\xf1Y9\xc3N\xdf\x8f\xd3\xdeoD\xbd\x03|\x01\xd0i\x97\xf5j]\xc4\xe0\x00\ +\x00\x00\x00IEND\xaeB`\x82q\x05\xc6\xef' ) + +def getBitmap(): + return BitmapFromImage(getImage()) + +def getImage(): + stream = cStringIO.StringIO(getData()) + return ImageFromStream(stream) + +def getIcon(): + icon = EmptyIcon() + icon.CopyFromBitmap(getBitmap()) + return icon + diff --git a/jet_tools/JetCreator/img_Print.py b/jet_tools/JetCreator/img_Print.py new file mode 100755 index 0000000..cf2e00d --- /dev/null +++ b/jet_tools/JetCreator/img_Print.py @@ -0,0 +1,62 @@ +#---------------------------------------------------------------------- +# This file was generated by C:\Python25\Lib\site-packages\wx-2.8-msw-unicode\wx\tools\img2py.py +# +from wx import ImageFromStream, BitmapFromImage, EmptyIcon +import cStringIO, zlib + + +def getData(): + return zlib.decompress( +'x\xda\x01\xf5\x03\n\xfc\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00 \x00\ +\x00\x00 \x08\x06\x00\x00\x00szz\xf4\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\ +\x08d\x88\x00\x00\x03\xacIDATX\x85\xe5\x97\xcfK+W\x14\xc7?\x93d\x921&5\xc4TD\ +\x9fZ4\xb8x\xbc\x85F\xe9?P\xca\xdb\n\xee\xdd\xd5TT\xac\xbb\x16\xe9+B\x97>\ +\xa5.Z(B\xb7.\xba.v\xe9>\x1b\x17\x82P\x8a\xf8\xe3\x11SS\x13\'\xc6\x9a\x99;s\ +\xbbp2L\x12\x7f\xcc3\xb6]\xf4\x0b\x87\xdc{\xee\x99s\xbe|\xcf\xbdw&\xf0\x7f\ +\x87r\xdf\xc2\xc6\xc6\xc6\x0f\x86a\xcc\x02\x816k\xd8\xe1p\xf8\xc7\xe5\xe5\ +\xe5\xb9\xbb\x16C\xf7=e\x9a\xe6\xec\xd2\xd2R\xbb\xc5\x01\x02\x9b\x9b\x9b\xb3\ +\xc0\xfb\x11\x90R\x06\x00\xce\xce\xce\xda\xaa\xde\xdb\xdb\xeb\xe6z/\x02^\x9c\ +\x9c\x9c\xdc\xe9\x17BP*\x95H\xa5R(Jc7\x07\x06\x06|\x11|\x94\x80\xaa\xaa\x0c\ +\x0f\x0f\xdfY|oo\x8fZ\xad\x86\x10\x82\xd1\xd1Q_\x05\x9fD\xe0\xf8\xf8\x18\x00\ +)\xa5\xeb\xcf\xe7\xf3T\xabU\x00\n\x85\x02\x00\xf1x\xdc]\x1f\x1c\x1c|\x1e\x02\ +\xa1P\xa8E\x81\x83\x83\x03\xb7x\x1d\xe7\xe7\xe7\xa4\xd3ib\xb1\x98\xeb\xf3\ +\x12~2\x01UU9::r\xe7\xa5R\x89\xd3\xd3\xd3\x968\xdb\xb6\xc9\xe5r\x8c\x8c\x8c\ +\x10\x08\x04\x18\x1a\x1az\xb4\xb8o\x02\xe9t\x1a\x80b\xb1\xc8\xfe\xfe\xfe\xbd\ +\xb1\xb5Z\r]\xd7\x99\x9c\x9c\xf4U\xdc7\x81\xc3\xc3Cw\x9e\xc9d\x00\xc8\xe5r-\ +\xb1SSS\xa8\xaa\xda\xe0\x13B\xb4G@\xd7uR\xa9\x94;o>n^\xdc\xdc\xdc \x84h\x88\ +\t\x85\x1e.\xf1\xe0\xaaa\x18\xeeE\xe4M\xaa(\x8a\xab\x84\xd7_,\x16[\x88\xf6\ +\xf4\xf4\xf8\'\x90\xcdf?\x0e\x06\x83\xbfX\x96\xd5\rpqqqgR/\x9a}\xcd\xf3\xba\ +\x02\xd9lV\x86\x82\xc1B\xcd0>\xd9\xda\xdar7\x92\x1b\xbd\xb8\xb8\x18\t\x06\ +\x83\xbf\xaf\xac\xac\xf4\'\x12\t\xd6\xd7\xd7\x19\x1b\x1b\xa3R\xa9\xb4$\xbe\ +\xebx\xddG\xa4\xb3\xb3\x93\\.\xc7\xc2\xc2\x02\xe5r\x99\xb5\xb5\xb5\xdf\x92\ +\xc9\xe4\xcb\xd5\xd5U\xd1\xac\xc0W333=\x89D\x02\x80d2\xe9^0\xed\xe0\xea\xea\ +\x8ax<\xce\xf5\xf55\xb1X\x8c\xe9\xe9\xe9\x8f\xb6\xb7\xb7\xbf\x04\xbem\x08\ +\x9c\x9f\x9f/Y\x96%m\xdb\xf6e\x96e=\xc9\x84\x10rn\xee\xf3\xabz]W\x01!DBJI>\ +\xff\x0eUU9=}\x87\xa6i$\x93I\xa4\x94\xdc\xaa.AJl)\x01\x89\xb4Ar\xdb\x0ey;\ +\xb9]\x93\xcd~\x89\xaeW0\x85\xc9\xf8\xf8\x04\xb6-;[\x08\x00X\x96\xc5\xe5\xe5\ +%\x03/\x06\xb1,\x8b\xae\x0f\xe2D;\xa2\x9e\x88zr\x1a}@\xe3\xb6h\x8e\x93\x9c\ +\x15\xfe\xe0\xe6\xafk\x8cZ\xad\xe1\xe9\x86\xf7\xb4eY\xec\xec\xfc\x8a\x10&/\ +\xfa\xfb\xd14\x8dpX\xf5X\x98p$L\xa4\xc1"D"\x114\xcdk\x1aZ\x87F\x87c\x00\xbb\ +\xbb\xbb\x00\x18\xa6\xd1@\xa0E\x81\xbe\xbe>\xbe~\xf3\r\xa6i6\x04\xd6\xf7\xf8\ +\xe3\xaf\x97V\xa8\xaa\xca\xabW/o\t\x18\x0f\x10\xb0m\x8b\x89\x89\x0c\x99\xcc8\ +RJl\xdbv\xfa\xef\x19\xdb6\xb6\xe3\x93\x8e\xcf\xf63v~\xcd&\x02--\xf8\xa7a4)\ +\xfb\xef\x13\xf8\xaf\x15hnA}\x0fD\x02\x81\x80Q\xa9\xe8\xe1h4\xea\xe9\xbbs\ +\xde\xbdc\xdb{\x0f8{\xc1\xcfX\xdaH\t\xba~\x89\xa2(\x16\x90\x04\xca!G\x85\xae\ +j\xb5\xfa\xfd\xdb\xb7\x1b_\xf8\xf9\x8cj\x07\x8a\xa2P.\x97\x7fr\x08H\xc5Q\xa1\ +\x1bH\xbd~\xfd\xe9|w\xf7\x87\x9fI)}}\xae?\x01V\xa9T\xfaygg\xe7;\xe0O\xa0P?\ +\xde\x9a\xc3\xa8\x0b\x88:\xa4\x9e\xe3_\x91\x17\xa6\x93\xd3\x04\xae\x80s\xe0\ +\xb2\xf9\x05\xaf\x02a \xf2\xcc\xc5\x01,\xc7L\xc0\xe0iw\xda\xf3\xe3o\xfe\xfdT\ +R\xd6\x04\xb1Y\x00\x00\x00\x00IEND\xaeB`\x829\x9b\xe7\xcb' ) + +def getBitmap(): + return BitmapFromImage(getImage()) + +def getImage(): + stream = cStringIO.StringIO(getData()) + return ImageFromStream(stream) + +def getIcon(): + icon = EmptyIcon() + icon.CopyFromBitmap(getBitmap()) + return icon + diff --git a/jet_tools/JetCreator/img_Redo.py b/jet_tools/JetCreator/img_Redo.py new file mode 100755 index 0000000..10624f4 --- /dev/null +++ b/jet_tools/JetCreator/img_Redo.py @@ -0,0 +1,79 @@ +#---------------------------------------------------------------------- +# This file was generated by C:\Python25\Lib\site-packages\wx-2.8-msw-unicode\wx\tools\img2py.py +# +from wx import ImageFromStream, BitmapFromImage, EmptyIcon +import cStringIO, zlib + + +def getData(): + return zlib.decompress( +'x\xda\x01\xb6\x05I\xfa\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00 \x00\ +\x00\x00 \x08\x06\x00\x00\x00szz\xf4\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\ +\x08d\x88\x00\x00\x05mIDATX\x85\xd5\x95Yl\x94U\x14\xc7\xff\xf7~\xcb,\xdd\xe8\ +\x12JK+\xb4bE\x8a .mR7\x12\x16\x83\x0eBb\x9a\x10\x83\xf1\x05\xa1\xf0\xe2\x93\ +>\xca\x83/\x9a\xa8\xf1\xc1\x18[\x9e \x06\x03\x06\x0cK\x13pCQD\xa0-\x96\xb6`)\ +HK;\xa5e:\xcct\xda\x99\xf9\x96\xbb\xf8\xd0\xce\xf81|C\x01\x93\x1a\xcf\xe4\ +\xe4\xdc;\xdf\xbd\xf7\xff\xbb\xe7\x9c\x99\x0f\xf8\xbf\xdb\xfa\x16\xed\xd3\ +\x9d;A\x1ft\xff\x03o\xfc\xc7\xc8\x8e\xceJ\xedx\xe3\xc7\xf0\xfd\'\x00\x04 K\ +\xab\x1a^\xb0\x0b\xf43\x81f\x94\xcc:\x00\x00\xd4-^\xa5\xd7\xd7\xae^\xa2P\xad\ +sc\xb3\xe7\xe1Y\x07\xa0D\xc1\xe2\xca\'\x94UOn\x9c\'(\xda\x02\xcd\xea3\xb3\ +\x06@@@\xa1"l\x0f\xa0\xbct!\r4l\x9a\xa3Q\xfd\xc4\xfa\x16=0;\x00\x84\x80\x12\ +\n\x02\x8a\x885\x88\x82\xfcBlx\xf1\x8d\x1c\xaf\xee\xd9\xf7j\x8b\xda4\xf3\x05\ +\xee\xc3\x02\xcd\xf0\x03\xfaZ\xaa`\x13\x01\x9e\x86\xc4\\\n5\xaf)\xf0>\x86\ +\xcd.pi\x83K\x0b9J1\x08S\xd1z\xfa\xabx<\x19\xfb\xfc\xd0[\xf6\xbb\xff\x1a`\ +\xc3.\xcfJ\x10\xf9uy\xd1C\x9e\x9a\x05+rK\xf2KI\xae\xa7\x10~=\x1f\x94\xa8\x18\ +Nv\x81I\x1bB\xda`\xd2\x86\x97\xe6B\x85\x1f\xdf\x9d=\x10\x8f\xc6\xa2\xad\xf3\ +\x84\xb5\xb9e\x1b\xec\xfb\x06h\xdc\x0f\xdd\x1c\xd7>*\xf4\x95mY[\xf7\x9aoA\ +\xd1\xe3H\xb2(L\x19\x87-\x0c\xd8"\tK&\xc1\xa5\x05.\x19\xb8\xb4`\xf0\t\x0c\ +\x1b\xddP\x89\x17\xa5\xfa\xa3\xb8\xd0\xf3Gbt\xec\xc6y\tk\xdd\xe1-\x98\xb8g\ +\x80\x97?\xf3\xcf\xd3\xbc\xf6/\xf5\x8f\xac\xablX\xfc\x8a\x87\xc3DR\x8cCH\x06\ +&\xadtL\xa5>\x05\xd0\x9fhC\x92G\x01\x00\x1e\x9a\x8b\xf9\xdee\xb8\xd8\xd7c\ +\x0e\r\xf5\xf7\x9b\t\xbb\xee\xd8\xdb\x88\xa54\xd4\xbb\x01\xe8>\xbb\xa5n\xf1\ +\x9a\xaa\xe7j\x02\xca\x04\x0b\x81b\xaa\xd9\xa6\xc8I:\x12\xc77\x13,\x94\x16\ +\x07\x80\x1c\xb5\x18\xb6\xcd\x10\x1e\x0b1\x10\x1ct\x8a\xdf\x15 \xf0\x85g\xd5\ +\xfc95k\xea\x17\xadS\xa2v\x10\x00 \x89\n@\xa6?H\xcfR#\xe0\xa6\xd9\x97>\xa3D\ +\xaf\x86\x87\x17\xe2\xd4\xb9\x9f\x13\xa6e\xbewx\xab\xfdI\xa6\x8e+@\xe3~\xe8\ +\xd6\xb8\xd8\xbdzE\xa37\xce\xc3`\xd2\x04\x85\n\t\t"\t\xbcJ\x1e\x14\xa29v\x10\ +\x04\x8d\x0b\x88\xd9\xa3\xb0D\x02\x00P\xea\xa9\x011\xfd8\xd5~2aY\xd6\x8e#\ +\xdb\xec\xddnZ\xae\x00fD\xdb\\]Q[\x94\x93\x93\x83\x885\x08JTH\x00\xf9j)4\xe9\ +C\xdfH\xa7\x0c\x86{\x93c\xb1\x90\x88L\x84\xfdo\xae}\x87J)\x10\xb2\xae\x02\ +\x00\xca\xbcK\xc0\xe2\x14g:~M0\xce^?\xb2\xcd>\x94-\xd3\xae\x00\x92\xa2\xb6\ +\xba\xb4\xd6;\xc9\xc6 $\x03\x01E\xbe^\x8a\xe1[W\xf1]\xdb\xfed\xcc\x88\xee\ +\x85\x94\' d/\xa1\xda\xefR\n\x8c\x98\xbd0\xf88\xca\xbdK\x91\x8cq\xb4\x9d\xff\ +-.!\x03G\xb6Z?e\x13\xcf\n@\x15\xfaXqn\x19\xb1D\x12\\2\xcc\xd1\xe6\xe3\xcap7?\ +\xd6\xb6g\x84s\xd9x\xb4\x89\x9dN\xad\xdd\xb8K\x95\xa3F\x1f\xc2\xe65T\xf8\x96\ +#:6):z\xda\'\xc0\xf9\xea\xc3M\xac\xedn\xe2Y\x01\x88D\xb5\xa6i0\xc5\x04T\xaa#\ +i%p\xacm\xaf\xc5\x98Z\xdf\xba=\x19t\xae\x15R \xce\xc3\xa8\xf0-Gh$\xcc\xbbz;#\ +\x82\xe3\xf9\xa3M\xec\xcf\x99\xc4\xb3\x02\x08!K\x18IBH\x0e\x0f\xc9A\xe7\x95\ +\xd3I)\xf9\x87\xad\xdb\xad\xa0\xdbz&\r\\\x1f\x18d}\xfd\x97G\x04W\x9e=\xba\ +\xcd\xb8~/\xe2@\x96\x97\x91B\xd0\x1dI\xdc\xc4\xd4OK\xe0\xdaH\xaf$\x9c\xb8v1\ +\x00\\\xea\xeb\xb1\xfa\xfa/\xff\xa5X\xfaS\xf7#\x9e\x15\xc0c\xc8=\xe1\xc8\x80\ +M@`K\x0b\xb6\x95`0\xcc\xe8\xf4z\x05S\x99K9\x82\xc1\xa1\xee\xf8\x15\xbb\xe1\ +\x9b\x1d\xf1[\xd3\xcf\x95\xe9\xb53\xfe\xd5\xbb\x03\xd8\xf6\xc1\xe1\xa1\x9e\ +\x0e.\x18,\x91@\x91\xd7\x17\xb9\xd9\x0b\x1d\xb8\xc3=\x9c\x89\xd6K_Z/\xfd\xf0\ +\x01\x8c\x8cg\x9a\xc3\xd5l@\x8a\x1bT\xe7q\xd8+V\x8a\x11\xb5P\xd9\xe0\xf3\xe7\ +k\x8c\xc6\x153v\xf3\xc2\xc5\xef\xe5\xb5\x8c\xdb+7:\xc4\xd1\x1b\xdd\xe0\x8e\ +\x9b\xa7n\x9f\x99\x89T\xbc\r\xc2\t@\x9c\x87\x04;\xf8@e]<\xe4/*h\xc8\xc9\x9d\ +\xa3NN\x06\xcd\xeb\xed\xf6\xc9\xc48\x88\x13\xc0\x9aL\x97$\x13\xc0)\xe8\xe6\ +\x00 \x9d\x00\xd4\xb99\x1e\x07=w\xc0\xe8Z\xb0f\xfcJ^Aq\xb9?//\xaf\xb04::\xd8\ +\xcdB\xc6d\x1aVs\x11\x9eI\xd4ii\x00g\x8a\x9c\xf4\xb4}_\xf2\xaa\xaf"r\xaar\ +\xd1\xc2\x12_\xb9\xaf\xcaW1yk\xe0\x9c\x1de\xc6m\r\xe9\x9a^`\xfa=\xe5>\x96\ +\x99\x19\xc8FL.\xffhLt}\xdb\x7f.\xb7\\\x1d*\xa9*\xa8([F\xd5\xe8\xa8\x88\xc5G\ +\xb9\r@8\x9cO\x1f\x9c\x9aK\xc7\\f\xb8\x00 2\x89o+Cf6\x00P\xe4\x82V.\xf3\xe9s\ ++\x85\x8f\xeaR\t\rQ\xb3\xff\xaca ~\xc7\xe1\x99 NP6\x1d]\xeb\xe2,Cf\x07g\xa6\ +\xda-\xe5\xae7\x9d\x1e\xf3i\xbfM\xecn\x96\x12\xcb\xecjdD\xd7\xfa\xe2\xceR\ +\xb8\n<\x88\x91\x8cq\xb6f\x9b\xd1\xfe\x06%@\xa0\xd7\xa5<\xcc\xbe\x00\x00\x00\ +\x00IEND\xaeB`\x82\xe2\xa8\xb4\xdb' ) + +def getBitmap(): + return BitmapFromImage(getImage()) + +def getImage(): + stream = cStringIO.StringIO(getData()) + return ImageFromStream(stream) + +def getIcon(): + icon = EmptyIcon() + icon.CopyFromBitmap(getBitmap()) + return icon + diff --git a/jet_tools/JetCreator/img_Save.py b/jet_tools/JetCreator/img_Save.py new file mode 100755 index 0000000..9e19146 --- /dev/null +++ b/jet_tools/JetCreator/img_Save.py @@ -0,0 +1,99 @@ +#---------------------------------------------------------------------- +# This file was generated by C:\Python25\Lib\site-packages\wx-2.8-msw-unicode\wx\tools\img2py.py +# +from wx import ImageFromStream, BitmapFromImage, EmptyIcon +import cStringIO, zlib + + +def getData(): + return zlib.decompress( +'x\xda\x01\xb3\x07L\xf8\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00 \x00\ +\x00\x00 \x08\x06\x00\x00\x00szz\xf4\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\ +\x08d\x88\x00\x00\x07jIDATX\x85\xc5\x97}l\x14\xc7\x15\xc0\x7f3\xbb\xf7\xe1\ +\xb3\xcf\x17\x1f\x0e&\xfe\xc06N\x1cc\x02D\xb81\xf9\xc0\xd0\xf0i\xd2\x98P\x82\ +\xd34*\x89PR\xaa\xf4\x9fTj\xaaP%-j\x155\x91h*\xf5\x8fV*\x8d\xfa\x0fU\xd5D\ +\xa5Q\x9aF!T\x90\x94\xb4I\xaa\x94&\x18T\x01&\xe5\xcb\x18\xf7(\xf6\xf9|\xbb\ +\xbe\xdb\xdd\x99\xe9\x1f\xe6\xb6\xb6\x81\xd0(T\x1d\xe9ig\xe6\xcd\xce\xfb\xed\ +{o\xdf\xec\xc2\xff\xb9\x89\xab-h\xfe\xc2\xf3\x9d\x1a\xf1\x15)X\n"j\xc0A\xe9w\ +\x8c\xe1\xe5S\xbb\xb7\xbe\xff?\x03\xa8_\xfdB\xda\xb2\xbd_U\x94\xc7\xef\\8\ +\xaf\xa9\xbcqV\x95\xbc\xae\xb2\x8c P\x9c\x19\x1a\xd1\x07\xfaN\x142Y\xe7#e\ +\xfc\x07\x06^\x7f\xe6\xec5\x05\xa8\xeb~\xbe>"\xcd\xfe\x8e[\x1as\x8b\x17\xb6T\ +\t)gGl\x0bK\x82%%R\n\x84\x80CG\xcf\xaa7\xf6\x1f\xca\x17\x03\xd35\xf0\xc6\xd6\ +C\xd7\x04\xa0\xbdw[4\x9f\x8f\xbf\xdd\xb5h\xce9\x84\xac?\x9b\x19\x9de\xdbve\ +\xc3\r\xe9\xca\x85mu\xd2\x92\x92\xa2\xa7\xd0\xc6\x90\x88\xd9\x0c\xfd+\xc7/_{\ +?\xa3}\xff\xd6\xd3o>s\xee\xd3\x02X\xd3\'\x12\x8dk\x9e\x98Q\x95\xb8k\xf0|\xae\ +\xed\xf8\x99\xcc\xfe\x91Q\xf7\xd9\x91\x9c\xf3\xca\xc9\xb3\x99\xb2#\x1f\x9fk\ +\xbe\xa9\xa9&bG,\x8a\x9e"_\xf0I\xa7\x12TT\xc4\xcbN\x0c\x8c\xcc\xc9\xf6\xff\ +\xe1\xe5\xcf\xe4\x81\xfa\xde\x17\xcad\xbe\xb8\xcf\x92\xf2\x96\x00u\xcf\x99\ +\xd7\x9f~g\xb2\xbe\xb1\xfb\xf9\x07gT\'~\xfe\xf0}wU\x8c\x8c\x15\t\x94\xc6\x18\ +CM\xba\x9c_\xfcf\x7f\xee\xc2ha\xc9\xa7\r\x85\x9c<\xb0r\xc5[\x81\xd3\x81V\x1b\ +\xa6\x1b\x078\xb5{\xeb\xaf\x87\x87\xc7\x7fw\xecDF\xd9\x96\xc4\x0f4E_\xe3\x8c\ +\xfb,jo.\x97\xe8\xcd\x9f\xc68L\xf3\xc0\xec\xb5\xcf\xdeo\x0cm\xb7\'\x0f\xbe\ +\xa4\xb5\xfeY$\x12\xf9\xbcm\xdbS G\xfd\x04\xe3\xd7-b\xd5\xd2\x0e\x86\x86\xf3\ +\x04j"\x17\xe2Q\xc9K\xaf\xbe\xc5\xe7*\x8fb\x8c\t\xd7+\xa5\x94\xe7y\xbb\\\xd7\ +}x\xf7\xee\xdd\xc5\xe9\x00\xf6\xe4\x816\xf2\xb4T\xeaoJ\xa9\x9fl\xda\xb4iyOO\ +\x0fR\xcapCc\x0cy\xb7\xc8\xdd[^DJ\xf0\x02\x8d\xd6\x86\xb1q\x9f\x9at\ni\'\xd8\ +\xb1c\x07\xc6\x98\xc9b\xed\xdc\xb9\xf3\x81\xbd{\xf7\xfe\x15\xd8\xfe\x89\x00\ +\x9egNw\xdexfL\\\x10\x8bW\xaf^\xcdko\xf7\xf1\x8d\x1f\xbdy\x89\xdbl["\x84\xc0\ +\xf3\x15Z\x1b\xb41\xc4"\x16N\xc1c\xee\xc6\x1fOY\xbb~Y+O\xf4\xaee\xdf\xbe}\ +\x8f\x01?\x04\xcc\x94\xbd&\x0f2\xfb\x9e\xfeg\xac\xea\xfe/\xaf\\\xb92mY\x16\ +\x9dsk\xf8\xce\xa3Kx\xf1\xd5>\x96\xdf5\x9f\xb2x\x14K\nlK"\x00\xcf\xd7hc\xd0\ +\xda`\x04l\xdd\xb2\x16)\x05\xc6\xc0_\x0e\x9e\xe0\xdc\xd0y\xbe\xfe\xc5\x05\ +\xa4R)\xe6\xcd\x9b\xd7\n,\xdf\xb5k\xd7\xde+\x02\\t\xf3\xa3\xdd\xdd\xdd\xe4\ +\xf3y|\xdfgMg\x13\x99a\x97\xdf\xbf\xfbw\xee\xbec\x1e\x99\xec8n!\xc0`0f",n1\ +\xe0\x95?\x1e\xc7-\x06t\xb4\xd6\x10x\x05\x0e\x1d9\xc9O\xbf\xb9\x1c\xad\x02\ +\x1c\xc7a\xd5\xaaU\x1c>|\xf8k\xc0\x14\x80)\t\xb6a\xc3\x869555\xcb\xeb\xea\ +\xeap\x1c\x07\xdb\xb6\xb1m\x9b\xcd\xf7.`Qk5\xef}x\x94\x99Ue(c\xc8\xe6\x8b\ +\x0c]p\xf8\xc7\xe0(g\xcf\xe7\xc9\xe6\x8b\xb4\xd4\xa6\x88\xdb\xf0\xe7\x03Gy\ +\xee\xf1\xa5\xa4S\t\xa4\x94\x8c\x8f\x8f\xd3\xda\xdaJ2\x99\xbc\xaf\xa7\xa7\ +\xa7\xe6\x8a\x00B\x88\xc76n\xdc(\\\xd7-\x8d\xd1Z\xa3\x94\xe2\xc9\x87:\x99\ +\x95\x8a\xf1\xde\x87\xc7I\'\xe3d\xc7\x8a\xe4\\\x0f\xa5\'BZ[]A\xf3\r\x95\xec}\ +\xf70\xdfz\xa8\x83\xe6\x1b*1\xc6 \x84\xc0\x18\x83\xef\xfb\xacX\xb1"\x1a\x89D\ +6_\x16`\xd9\xb2e\xb6\x10\xe2\x91\x8e\x8e\x0e\xf2\xf9<\xb6mc\x8cA)E\x10\x04\ +\xa8\xc0\xe7\xbb\x9b\x17\x13\xc5\xe7\xe3\x93g\xb9m\xee,\xa2\x91\x89BZY\x1e\ +\xe5\xb6\xb6\x1a\xdez\xf70=w6\xd2\xd96\x13\xa5T\xf8\xf6H)q]\x97\xce\xceN\x80\ +-\xdb\xb6m\x93\x97\x00\xa4\xd3\xe9{\xba\xba\xbaj#\x91\x08\x85B\x01)%A\x10\ +\xe0y\x1e\xc5b\x91b\xb1\x88V\x01\xcf>v;\xb9\xec(\x83C\x17X\x9f\x07\xa0\xac\xac,,FJ)\x94RT\x96I\xb6mZ\xc8\x81\ +\x83\xfd\xfc\xe9\xc0q\xfa\x8e\x9c\xe4\xc9\xde6,a\x08\x82\x00\xad5\x00\xf1x\ +\x1c!\x04\xb9\\\x0e\xad5\x85B\x81\x96\x96\x16*++{z{{\xebB\x00\xdb\xb6\x1fY\ +\xbf~\xbd\xed\xba.B\x88P\xc6\xc7\xc7\xf1}\x9f\xf2\xf2r\x12\x89\x04\xd1h\x14!\ +\x04\x96eQ[]\xceS\x0f\xdeB\xdf\x91S<\xf5\xa5y\xcc\xac*\'\x1a\x8d\x92H$H&\x93\ +$\x93I<\xcf\xc3q\x1c\xa4\x94H)\x89D"(\xa5X\xb2d\x89\xad\x94z\x14.\xd6\x01!\ +\xc4C\x1d\x1d\x1d\xb8\xaeKmm-\xd9l\x96\xb1\xb11\x84\x10\x04A\x10\xf6-\xcb"\ +\x99L\x96\xea\x05\xb7\xa7\xd3\xfc\xf6\x07\rT\x94\xd9H)\xd1Z\xa3\xb5\x9e\xc8\ +\x17\xad\xc3{\xa4\x94\xa4R)\xaa\xab\xab\x19\x18\x18\xa0\xb3\xb3\x93={\xf6l\ +\x02\xbe_*D7%\x93I\xc6\xc6\xc6\x18\x1c\x1cDk\x8d\x94\x13\xe9aYVhPk\x1d\xe6Ci\ +\x1c\xb3\xc1\xf7\xfd)\x9e\x8b\xc5b\x08\xf1\x9fs\xce\x18C>\x9f\xc7q\x1c\xb4\ +\xd6\\\x7f\xfd\xf5h\xado\x0c=\x00\xc4<\xcf\xc3\xb6\xed\xf0\xc6\xc9\x07P\xe9Z\ +\x82\xba\x92~\xb2\xae$\x93u\xa5\xdc\x18\x1a\x1a\n\xfba)\x0e\x82\x80c\xc7\x8e\ +]\xb2\x81\xd6z\xfa\xe9v\xd9\xb9\xffv-@mmm\x08\x1b>R\x89\x08\xe0\x83\x0f>\xa0\ +\xaf\xaf\x8f\xfe\xfe~\x06\x06\x06\xc8d2d\xb3Y\x1c\xc7\xa1X,\x86E\xa6T\xe5\ +\x8c1\x0c\x0f\x0f\xd3\xd0\xd0@6\x9b\xa5\xa1\xa1\x81\x91\x91\x11f\xcf\x9eM6\ +\x9b\xa5\xa9\xa9)\xbcN\xb7\x15\x02LvW)\xeeWj\x97s\xfbt\xdd\x95\xc2\x01\xa0\ +\x94\xfad\x0f\xc4b\xb1)\xf1\xfe$\x90\xe9\x9bO\xd7]\xaeM\xb6\x15\xe6@\x89\xca\ +\x18C{{;J\xa9\xb0\x84\x96\\\xae\x94B\x081\xa5\xce_\rf\xfa\\\xe9\xd56\xc6\xe8\ +\x10\xc0\x18s\xf2\xd4\xa9SM7\xdf|s\x988\xa5\xe4)\xf5\xaf&uuuh\xadioo\xc7\xf3\ +<\xda\xda\xda(\x14\n\xb4\xb6\xb6\xe28\x0e---\xe4r9R\xa9\x14\x83\x83\x83\x18c\ +\x8e\x02q\x1b\xc0u\xddoo\xdf\xbe}\xbbeY\xf5W\xf5\xfb5hA\x10\x0cd2\x99\xe7\ +\x80h\xa9Z\xc4\x81\x19@\x15P\tD\x81\xc85\xb6\xeb1\xf1#T\x00r\xc0y\xe0\xfc\ +\xe4\xcfr\x01\x94_\x948\x97\xf9k\xfa\x8c-\xb8(\x05 \x7f\x11\x88\x7f\x03\xca\ +\x8e`}\xd3\xc8\x9b>\x00\x00\x00\x00IEND\xaeB`\x82\xfca\xccs' ) + +def getBitmap(): + return BitmapFromImage(getImage()) + +def getImage(): + stream = cStringIO.StringIO(getData()) + return ImageFromStream(stream) + +def getIcon(): + icon = EmptyIcon() + icon.CopyFromBitmap(getBitmap()) + return icon + diff --git a/jet_tools/JetCreator/img_Undo.py b/jet_tools/JetCreator/img_Undo.py new file mode 100755 index 0000000..d5339a4 --- /dev/null +++ b/jet_tools/JetCreator/img_Undo.py @@ -0,0 +1,81 @@ +#---------------------------------------------------------------------- +# This file was generated by C:\Python25\Lib\site-packages\wx-2.8-msw-unicode\wx\tools\img2py.py +# +from wx import ImageFromStream, BitmapFromImage, EmptyIcon +import cStringIO, zlib + + +def getData(): + return zlib.decompress( +'x\xda\x01\xf3\x05\x0c\xfa\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00 \ +\x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\x00\x00\x00\x04sBIT\x08\x08\x08\x08\ +|\x08d\x88\x00\x00\x05\xaaIDATX\x85\xd5\x97klT\xc7\x15\xc7\x7fs\xef\xdd\xf5\ +\xda^\xdb\x18;\x88\xf2\x067\x01\x1a\'$\xc4T\x8aM)\xc1\xc9\x07\xac\xa8\xe9\ +\x87\x88$R\xe2\x00!\tAj\x91"%RZ\xa2\xaa\x8f\xa8\xfd\x10\xa9B\xfeDKx\xb6Q\xde\ +o\xa1\xa0\xe6\x81\x8c\r\x08\xec\x90\xd4\xe088\x10\xe3\x801v\xec]\xaf\xf7u\ +\x1f3\xd3\x0f\xf6\xdd\x98\xcdbl\x17U\xea\x91\x8ef\xee\xee\x99\xf9\xff\xee\ +\xcc9s\xef\x85\xffW\xd3\x1a\xd1\xb4\x9b?\xb6\xec\xa0\xe4\xbf\x99GLe\xd0\xb1\ +\xfd\x14+\xcd[JQ\xebjJ\xef\xda@t\xaa\x00\xc6d\x074\xee\xe5&\xa5E\xdb\x9c\x9b\ +\x1fX%\x0c\xcb\x99\xaa\xf0\x94\x00\x9avQgY\x85\x9f\xddX\xfd\x9b\xb93\x16\xfd\ +"\x80@\xff\xcf\x00\x9a\xf7\xf2|h\xda\x827+k_,,,\x0e\x8b)\xee\xde\x0f\xcc\xba\ +V\xc0\xc1}\x14\x16\xc1+\xa5\xb3\xd6\xdc=\x7f\xf9\x93!\xed\xb6#\xed\xaf1\x82\ +\x0b\xb9\x1e\x10\xe3\x02\x1c\xdd\xcd\x02%\x8c\x7f\xcd[\xb6e~\xf9\xbc\xda\x80\ +L\xb7\xa0e\x1f\x08\xeb\xba\x88\x8f\x0b\xd0\xbc\x8b5\xe4\x85\xdf^Z\xfd\xa7\ +\xa2\x82\xd2yB\xa6Z\xd1*\x0e\x98\x8c\xec\x9c@ \xcc\x80A\xcf\x91}D\x11t)\xc5\ +\x1bBq\xa0f\x03\x1d\x13\x05\xc8y\x1bM{y\xba\xa0\xf8\xc7/\xdcT\xf3\x87\x90\ +\x15\x90H\xfb\x0ch\x1b\xad\xedL\x1b\x08\xaf\x055\x8c\xf4\xa2x\xce\x00N\xfc,\ +\xb1\xfeo\x9c\xbe\xee\xcf=-\x9d\x8f<\x97M\xab\x1e\xa3\x7fR\x00\x9f\xee&\x144\ +\xd9S:\xab\xf6\xbe\x85\xcb\x9f\niy\x1e\xed\xf5\x02\xa0\xf1@\xbb\xa3\x00\x0e(\ +\x17\xad\x86\x90^/\xa8a\x84\x11\xc6\xcc[\x8a\xb0\xe62p\xe1\x0b\xaf\xf7\xebci\ +\xd7\x8dl^Y\xcf?\'\x04\xd0\xb4\x93"\x11\xa0y\xf6\x92\x87\x17\xcf\\|_\xd0K\ +\xb5\x80\x8e\x93)\x14-\x01\x0f\xad]Pq\xdc\xc4!\xb4\xfc\xe1\r\n\xa3\x14+\xff\ +\xa7h\xf36\xba\xda\xdeK\'\x06\xbf<\x1a\x1ddm\xddV\xec\\\x00\x992\\\xb9\x89a\ +\x0c^\x1a\xb8\xd8$];\x82a\x95\xa3U\x1aT\nT\n\xad\xd3hm\xa3e\x04\'~0\xa78\x80\ +V\x11\xdc\xc4Adr?\x15\xcb\xef\rM\x9fs{u\xc94\xfe|\xcd\x15\xf0\xed\xf0\x1e\ +\xd6ZyE\xaf/\xae~\xae \xbf\xb0Dx\xe9\x13\xa0=@\xa1e\x0c7\xf11\xe8\xd4\xe8\ +\xd0\xf1\xcf!a\x96a\x15?J\xe7\xf1w\xd3\xe9\xc8\xd9U5\x1b9qM\x00\x80\xe6}T\ +\x82\xf9IE\xd5\x96\xe9%3\x97\x99^\xa2\x11\xe5v\xe3\xa5\x8e\x83N\x02\x10*\xdf\ +\x06Z\xa2u\nt\x1a-\x07\xf1\xd2m(\xe7\x0c 3s\x99y\xb7\xe0\xc8\x15\xba\xf3\xf8\ +\xae\xf3%!\x16W\xae\xe3\x8a\xe3;\xe7IXS\xcf)\x90\x95\xe7Z\x1b\xbe\xeci\x7f\ +\xd9\x11\xd6\x8fPnWF|\x04]p\xeaP\x83\xd7~xO\xf2\xec\xc9\xf7\x87/wu:\x1eU\xe4\ +\x95\xfd\x1a3\xb4"\x13&\xed\xd3\xe4\x87\xb5()\x9f\x7fC$\xc5C\xd9ZW=\x8ak\xea\ +\xe9\xb3=V\\>\xf7\xc9\x87\xe7Z_MY\xe1\xfb1CU\xdf\x07h\x17\xcfKK7\x11]=\xdcw\ +\xf1\xc1K\xe7N>\xdbyl\x7f\xcf7\x9f\xedN\ns\tV\xc1\xea\xd1\xe9\x152\xd5BQ\xf9\ +\xdc\x02\x03~2a\x00\x80\xbb6\x90\xbe\xf3\x11~\x19\x1f\xec\xda\xde\xd1\xfc\ +\xf7\x946n\xc5*\xbc\x1b0\xd0jd5\x1cA\xe7\xca\x8d\x1c\xf8\xd9z\xb6G#,\x8a\xf5\ +G\xffz\xba\xf9\xb5\xb4\xe7\x15`\xe6\xdd\x0c\x80\x92\x03\x04C\x960\x0cn\x9d\ +\x14\x00\x80\x10\xe8\xeaz\x9e\xb3\x93COt4\xefO\xda\xa9\x00\x81p\x1dZ%\xc8N\ +\xc2\xba\xad\xd85\xeb\xd9\xa6\xa4\xfd\xdb\xeeS\x8dI#\xb0\x00D\x10\xad\xe2X\ +\x01\xd0p\xe3\xa4\x01|[\xb9\x9e\x7f(\xd7\xbd\xa7\xb3\xe5\xc3\xa1\xc8\xe5\x8b\ +j\xa4\x12r[O>\xdbS\xf1\xf8\xb7C\xdf\x9d\xd7\xc2\x9c\x81\xc0@\x88\x04ZS6e\x00\ +\x80\x9a\x8d\x1c\xf1\xd0\xb7_\xfc\xea\xe4\xb7=_5\xba(\x9d\xb3\x8a\xd6\xadC*\ +\xcd\xdfR\xb1~W\x88 \x18\x05\xa4\x87\xfb\x11\x82\xf6\xa9\x02\x88\xd1X\xf3\ +\xe7\xf5tw\xb6s\xc7\xc0\x85\x0b\'\xb4V\xc1\x7f\x9f!\xc0\xc8C\xcdw\x130\x94b\ +\xd8sS\x1e(\x84\xc8ch0jK\xc9\x07\x13\x05\xf0\x05- 0\xeaA\xdf\x1f\xfd\x0b\xa9\ +_5Pg\xdb\xbct\xe12\x01 o\xec\xff@\xd0\xf1(V\xca\x10h\x89\xeb(\xa2\x97b\x9e\ +\xe9\xb2#[(\xfbq\xec\x0b\xfb.\xb2\xfa\x19omE\xd4>\xc93\xc5\xc5\x88QQ\x18\xc9\ +J\xbdb\tV~\x88\xcd\xa5e\x96\xad\xb4J\xf6\x9e\xed3l\xa5^\\\xf381\xfc\xda\xcc\ +\x01`L\xc0\x05Y0\xb1XF\xd8o\xd5\xd3\x1bX\x1b\x0e[N _u\xf4v\x0fN\x8b\x0c\xd9G\ +\xb7\xed\xa4\x81\x91\xed\xf1\xc7* \x93D\x82\xef\xdf4|\xcf\xbe\x1e\xfb\xdbX\ +\x10\xdf\x14\xa0v\xfe\x9e;\x97T\x88M3\xe6\x05\x93\xc9\xa8S<\xd0\xafO\xff\xae\ +\x81\x17\x9a>\'\xe9\xc7\x8c\xba\x04\x94?\xc1\xd5\x84\'\xd2\x17\x80\xaa\x98\ +\x83\xf9\xfcfV/Z@Ua\x11v2A\xe0|7\x1f=\xb3\x9d\xc6K\x97p\xb2\x85\xfd\xfe\xd8\ +\x15\xc8u\xd7\xb9V\xe1\x8a\x15\xa8\xba\x85\x82UwP\xb6l)\x15\xb3\xca\x99\xedH\ +\x86\xa3Qz?=B\xdb\xcew\xf8.\x87\xa8\x7f-\xc7n\xc1x\x10W$b8\x8c9}:V\xc5l\x82\ +\x95\x8b(\xbca&\xf9\xf9`y\xe0\xf5v\x13oj#\xd6\xda\x81\x9d%\xa8\xb3@\xa4\x9f7\ +\xb9\x0e\x92\tUA\x8e\xb1c\x13\xd1\x17\xccn=\xb2\xce\xefk\xbd[\x8f\x0706f\xac\ +\xb8\xdff\xaf\xc0U\x05&kW\x13\xf7mR\x9fk\xff\x01\xb0\x15\x95\x01\xe1\xb3\xd2\ +\x81\x00\x00\x00\x00IEND\xaeB`\x825\x1a\xdc\x86' ) + +def getBitmap(): + return BitmapFromImage(getImage()) + +def getImage(): + stream = cStringIO.StringIO(getData()) + return ImageFromStream(stream) + +def getIcon(): + icon = EmptyIcon() + icon.CopyFromBitmap(getBitmap()) + return icon + diff --git a/jet_tools/JetCreator/img_favicon.py b/jet_tools/JetCreator/img_favicon.py new file mode 100755 index 0000000..39b2dde --- /dev/null +++ b/jet_tools/JetCreator/img_favicon.py @@ -0,0 +1,61 @@ +#---------------------------------------------------------------------- +# This file was generated by C:\Python25\Lib\site-packages\wx-2.8-msw-unicode\wx\tools\img2py.py +# +from wx import ImageFromStream, BitmapFromImage, EmptyIcon +import cStringIO, zlib + + +def getData(): + return zlib.decompress( +'x\xda\x01\xd4\x03+\xfc\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00 \x00\ +\x00\x00 \x08\x06\x00\x00\x00szz\xf4\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\ +\x08d\x88\x00\x00\x03\x8bIDATX\x85\xc5\x97klSe\x18\xc7\x7f\xef9\xed\xda\xb5\ +\xdd\xa8\xeb\xec\x9cd\xc9\xe6\xb0&\x18#\xc6(\xd1\xb0(\n\x0eG\xb8\x05GLX\xe2\ +\x17\xa3\x04\xd4hP\x13t&\x98\r\xbf\x90h\xe2\x06Y\xf8`d\x18!r\t\xa0f\xb0\xa0s\ +\xea\xbc\x8d\xc5!c\x85Ywi\xe9\xd8\xad[\xaf\xf3\xf4z\xfc\xe2t\x10l\xc7\xba\ +\xd6\xff\xc7s\x9e\xff\xf3\xfe\xce\xfb\xbe\xcf\x93\xe7\x08!\xc9\xfc\x9f\xd2\ +\x00$\xe21u\xbe\t\xa2\xfc\x8e\x8a\x96\x1cJ\xe7\xe5\x97\xe6\xbb0\x80\xcb\xe9b\ +[\xfdS\xf4xN\xcf;GZ\x00\xa1\xa0\x82\xe3\xd28\xae\xc0\xb7\xc0\xfc61-\x00I\x96\ +\xc83\xdc\xc6h\xf0\x02\xed\x83u\xd9\x07\x00PU\x15\x93\xc1\x8c\xdd\x7f\x90\ +\xf6\xc1\xfa\xec\x03\xe8\x8d2mGGq\xfc,\xe8\x8f6\xf3\xd5\xc0.Tu\xee\xc7\x916\ +\x80\x90\x12X,\x054\xbd:\xc2\xe9F\x0f\xfd\xcag\xb4\xbbj\xb3\x070\x1d\x88\xf3\ +P\x95\x91\xc3g\xdf\xe3\xf2\x17e4l\xbf\x8a}\xeaSz=G\xb2\x03 !\x11\x0c\x06\x88\ +\x96\xb4\xd0\xda\xd5\x88nb\x05Mo8\xe9\xf1\x1f@\x89y\xb3\x00 \x0b\xc6\x06TF\ +\xc6\x878\x1f|\x87\x83gw\xe2\xe9\xb6\xd1r\xbc\x93\xf1\xf8\x8f\x99\x070\xe4\ +\xcbt\x9d\xf3\xb1\xa7\xe6\n=\xdd\x7fp5\xaf\x81\x17k+\xe8\xfa2\x8e\'|)\xf3\ +\x00\x01\x9fB\xf5\xf6{yv\xfd\xcb\xec\xd92\xc4\xe7\x87z(\xad\xec\xa6\xd0\x9a\ +\xcf\xc4X\xea#\xd0\xa4\x0b@B\x837<\xc8\x0bu\x1bX\xf9h\x0b\xeb7\xadE\xda/\xb1\ +\xe95\x0b"\x91\x93\xd2\xbe \x8d\xc8\xa03\xf1M\xdf\x07\xdc\xb7\xd6\xc3\xf1c\'\ +i|\xc5I(\xe4\xe7N\xeb\x92\xcc\x03\x18\xf2\xb4\x1cmt`\xef\x08\xd36\xb4\x9b\ +\x077O\xb2\xb5\xfay\x8e5\xb8\x91\xf5J\xa6\x01T\x0cfXv\xd7j\x9a\xdf\xf2\xd1\ +\xbc\xdb\xcd\xd7}{Y\xb9-\x84\x7f8\x07\xf7x_\xa6\x01\xc0\xe7\xf3\xf2\xfa\x8e\ +\x9dtv\x9e\'2\xf0\x00o>}\x11\xaf\xda\xcd\x86\x97,(\x81\xd4\xfe\xf4[\xb1\x10L\ +(\x1e\xca\xcb\xcb\xf9\xbe\xe3;\xaa+w\xf0\xf6F;\xd6R\r\x8b\x8b\xeeN\xe9O\xbf\ +\n\xfe\x86\x98\xd1\xbe\xfd\x8d\xa0\n>\xaam\xa2\xe2d?**\x02\xf1\x9f\xde\xb4w\ +\xe0f\xfap\xdf\xfb\x14\xe9\x96\xd1\xf5k\'q\x82Ic3\x02 KZ\xaa\xd6l\xe4\xda`\ +\x08A$\xfb\x00\x006\xdb\x124\x1a\x19\t}\xe6\x00\xb4\xc2D4|\xf3\xe1cl\xca\x89\ +>W\x87\xc0\x984\xc7-_\xc2\xc9?\x1d8&\xcf\xe0\x8f\xb8\xf0\xfb\xe2\x94\xd8\x0c\ +\xc4c\x80\xee\xfa8\x87\xfb\'V\xad{2e\xbe[\x02\xe8p\xee\xe5\xb7\xd1C\x84\xe3\ +\x01$\xa1A\x96%\xee\x7f\xdcDTQ\x99\xfd\xa1\xc3\xc3nb\xdaQ*\x96>\xb70\x00*\tZ\ +\xaf\xec\xa2w\xea0\xb9\x9a\x02\x0cZ\xcb?\xef\x94\x88\x97\x1bG\xf2~\xd7E\xb6\ +\xae\xa9\'W*^\x18\x80\x8fO\xd43b\xfe\x84Bs1\xb3\xe7M\x95\x04\x92\xd0\xb0H_z]\ +\xfc\x8a\xe5\x95\x90\xa4\xf6g+\xe5%\xbc\xe6\x1e\xe5\xc8\x89\x03\xdcQl%\x91\ +\xf8\xf7\xb9\x10\x02%\xe6\xc1fY\xc7\xed\xc6\xa57\xb8\xe6\xb6\xf8\x9c\x00"\ +\xb1i.\xfc0\xc2\xb47\x81\xb9PK\xaeIFgT\x99\xf4\r\xb38g5O\x94\xd5%\xedt\xa9$\ +\x84$\'\xfd9U\xd58\xcfTo\xa6\xed\x97S\xac\xaa\xc9gQA\x0e\t\xc5\xc4\xf2{\xb6P\ +S\xf5.\x06c\xf2:O\x1b`F\xad\xe7\xce`\xef\xbdLiY\t\x8f<\xfc\x18\xd6\xa2\xc2\ +\xb4\x16\x9e\xd1_\xa4\x9cO6P\x7f\x0e\x9e\x00\x00\x00\x00IEND\xaeB`\x82\x80\ +\xab\xe3<' ) + +def getBitmap(): + return BitmapFromImage(getImage()) + +def getImage(): + stream = cStringIO.StringIO(getData()) + return ImageFromStream(stream) + +def getIcon(): + icon = EmptyIcon() + icon.CopyFromBitmap(getBitmap()) + return icon + diff --git a/jet_tools/JetCreator/img_splash.py b/jet_tools/JetCreator/img_splash.py new file mode 100755 index 0000000..beb94a9 --- /dev/null +++ b/jet_tools/JetCreator/img_splash.py @@ -0,0 +1,1157 @@ +#---------------------------------------------------------------------- +# This file was generated by C:\Python25\Lib\site-packages\wx-2.8-msw-unicode\wx\tools\img2py.py +# +from wx import ImageFromStream, BitmapFromImage, EmptyIcon +import cStringIO, zlib + + +def getData(): + return zlib.decompress( +'x\xda\xbc\x9b\xe3s%\xbe\x1f\xefOmlmlm\xb7[\xdb\xc6\xd9\xb6[\xebT[\xdb\xb6\ +\xdd\x9e\xda\xb6vk\xdb\xc6\xd6\xb6\xad\xfb\xfd=\xb8\x7f\xc2\xbd\x0f2\xc9d&\ +\xc9L\xf0\xce\xfb\x95\xf9$BEI\x1a\x05\x91\x00\x11\x00\x00\xa0\xc8\xcaH\xa8\ +\x01\x00\x10,\xff\xa5\xef\xf0\x90\xff\xd5\xd0|\xefW\xfd/\x83r\x12\x93\xd5\ +\x80\x87\x87_\xdfQ\xde\x06\x00\xc8\x00\xb2\x12\xa2\x1a\xeeY\xe7\x9dnY\xd9\ +\x9a\x1e\xcc\xaf\x02W\xaf%\xd6\x91\x9e\x841\x94\x95\x7f\xcbVa+\xff\xf8\xdb\ +\xfc5\x84/\tEZ\t\xb5\xc7\xb4\x87\xcf\'\x10\xdb\xce"\nsT\x16S\x84Gh\xd9\xd9\ +\x1fp\x8d\x86\n5\xc4d\xbd\x84-Dm\x01\xea-\x14\xe3\xbbX\x16e\xccNX\x80\xfc\ +\xce|\xaeH\xad}\xbc\xecV\xc1\x82\x89\xe8\xbcNv\x8fww\xca9\xab\x8d\xdd\x0f\ +\xd5\x8f\x8fn\x9dQ\xa0P\xf61Z\x13x\x91Oe\xb7\xbch\xf6\xb1pZu\x13|3d\xec\xe4\ +\xf2\xfah\xf6P\xc4\xb1\x05-)|q\x183+\xc6\xc2\xe8\xfc@v\xaeT\xd5!\x15\xd1\x0c\ +\x82qZ\x93\xb2<\x85\x18\xb3d6\r\x95\x92!\xf61<\xfa\xff\xd7\xcd\x0cE\xac8{&\ +\x0c\x01\x0b\x13P\x80\xa6\xe3\xad]R\xfd\x07ko\xfaT+\xa6WM\x88\x90\x1d,\xf9?\ +\x04y\xa1\xd72\xde8\xe1\xb9\x10\xa0\x904\x90 \xe3\xa7#w\xa4X\x1a\xba\xa7\xc6\ +\xfd\xc1n\x0e\x1a\'\x1fS\xc5\x0fB!\x05\x14\xf8\xc2\xf0Fh T|*\x91"A\x9b\xedK\ +\x80E\xbe_\x88o\x0e\xf4/\x01(\x9c\x9c\x18e\xec\x8f_x\xcdCh\rW\xc1\x08\xe3?E\ +\xf7Z\x19\xd3\xaae\x1e=\xca\x85\xf6\xbfR;\xfbnsC`\x16\x0b\xcc\x17\x11\xb7T\ +\x196\x01\x92^\x94\xd6b7\x15\xe6\x8d\x97C\xae\xb0Z\xcd+e\x9d\x8e\xa4 \x16\ +\xaf\x83\x8a\x90\xe9H/}Nf\x06p\x80\xa6\xf3=\x10E|\x12\x17\xfc\xc3\xc8QY7o\ +\xe6\xab\xc9\x02\xae\xa2\x0f\xed\x07\x8e?\x14\x90\x87\x9b#qF\xa6\x0e\x94\xe3\ +\x0c\xf0\xc7\x92A&\x03\xdc\x91\x01\x9b\xdb\xfd\xdc\xcc\xfd\x18\x14-|\x07\xea\ +\xfe\x02eM\x96\xe0ez^{\xe5\xd0\\\xfc3\xe2\x7f\xa9Q\x1f}\x81\xfb0\x00VtT\x08h\ +\xe5\xa2e\xac\x10\xd8\xe8P\x8f\xae\x8ci\xef\xeaV\x14\xa1\x93\xd52\xa7\xb2=\ +\x80P\xde\x14\xccL\x98<\x10%J\xfc\xb95dP\xaf\x0c\x88"f\x8b\xc7\xff\xe6\x8d1\ +\xfa8x\x11\x83#\xaa:Eb\x96\xe8\xb0\xb5\xab\x07\xf9>\xb8\x07Z\xe2\xc6\x0b\xc2\ +,\xff\x8bF!!\xa3\xeex\x1c\x1e\x13\xca\xbd\x07"D\x94|\x02\x1bYN\xe6\x99G\xc8L\ +\x05\x8c\xd7{-\x8aH\x19tO\x8a\x08\x8f"E\x85\xae\x83\xfa6 FQQ\xe4\x9f:Y\xdb;\ +\xaf;\x1b-\x9b>\xfd\x879t\x05\x12o\xd8\xd6\xb8\'v)\xb6\xa6KH\xa4\x8c\xb78\ +\x9ax\x83\xb5\xa5\x1c\xdcT\x80\xd3\xe7\r\x9e\xe3\x97G\x96"`\xcc,\xeb\x9b\x08\ +\xf6\xc0\x01DK\xe0\xf1\x0f\xf5a\x91\xafO\xd0\xbeO\x88R\x7fG\xcd|\x81C?\xfe\ +\xfe\xa5\t\x7fg\xc0\x1d\xb8:#\x93\x8e\xf2\x1c\tQ^\xcf\xea\x13"\x98\xec\x02\ +\xc3\xaa5\xe5v\xf9\xdb\xcf}}\'\xec\xc9Y\x00\\\xc1K?\x91\xd13A\x9f4t\x83\x125\ +\xc4\xc3\x08\xe6{\x1fZ;\xbd\tv~l\xf9\xdc\x7f\x89\xaam\xdf\xde\x1a\xe6\xd2\ +\x0f\xc5|4C\xa0\xd5\x10\xf1\xb7\x8a\xff\x833\x90\x13{\xe0\xc5\xe7\xd7\xd9\ +\xed$\xe9\xf5\xf4*\xb4\x85\x00\xd0\x803?\x8c\x18\x88\x87\x9c\xd3\xe0\xf7Z\ +\xa8C\x1aB\xf3\xdaHV]\x06\xfe\t\xedc\x0cK\xfd.Y,\x92x\x15\xd1\x87\xa4KD\xb6H\ +f\xfd\xab\xbb\xc0aL\x02R^\x1dB0\xba\x88\xe3\x0e\xb7\xe5]RkA\x84\x10D\xe2\\\ +\xbc\xfc- \x88\x17\xa6\xa8\xd0n\xb9\x05J\x98\xf3\x8e\x1a\x0b\n\xa2\xb0\x17>\ +\\\xcdR.1\xd4\x01%-\xceZ7\x8b&\x1f\xb3\x05\x8cP\x06\x920\xc5\x06\xdc\x05G\ +\xbc\xf9~B\x96\xb1\x96&&q~\xeb\x13A\xc1R\xc28\xa5+\xd0\xdfv\xbc\xbf3WH\xe7p\ +\xa2l\xb6 \xcc6\x15\x0e\x87\x80Cu\x11\xfekUJ3@\x0b\x8a\xd4\x1dC$\xb7\x10r^a\ +\xd89_\x839\x8a\xc6W\x85i\x93\x81]]2\x0fH\x87\x04"\xe5e\xba\xb9U\xf9y|\xbd\ +\xa6\xad\xb7^\xf2zn\xab\xc4E\x84\x01\xe3I\xe4T\xa0p\xf19:@\xbf\xeeF\xfe6J\ +\xb1\xe4\xf08\x9c\x8f\x9c\n\xc4\xe0\x9bd\x92\x9c\xb2O\xa5\x18,}\x84y\xf9\xfe\ +5\xd6A\x85V\x17\x91Q\xd3\x93S\xa4-\xb1\xf2W\x93\x95\xbe\x93R\x93u\x1c-H\x9d\ +\xa58-\xc2\x92<\xdd|\xdcS\xaeZ3>\x8d\x06\xfb\xd7!rp\xa8V$\xdc\x17\xa8\xf0\ +\xa9\'\x98\x0e\x84\x9fZ\xe3*Q\x1b\xa2\x0f\xf1j\xd0+\xf3MS\xad\xe4\x935\xf8C\ +\xf2\xc7\x91\xaa\x19\x08=\xf7\xd8\xb5\xfa\xb4\x18\xc4\xd1i\x19p9HLf\xa9>\xe0\ +\xa6\x07:\x87\xc5\xda\xfc\x98kli\xfeH\xc8\xbe\x88\xab\xfa\xf7\xf2\x92\xb0\ +\x88\xabH\xe2`\xe35\x8d\xc4{3$\x01\x94D/\xdb)\n\xef\xe0\xee`\x98\xaaF?>]\x7f\ +\xd1]\xdf:\xffq\x1b\xae\x1c7khoh\xa0\xbe\xf1^2\x96\xba\xd3\x7f\x98^L9ijp4/\ +\xf8\x01\x17\xfb\xf8\xfb\xf8\xd8\xc3h<\x80\xf4\xdd\x93\xb0$\xc6\xe3\xe9o\xe1\ +\x96`\x8b\xd17\xc6&\xac\xe7$\x1aL@@\x8d\x0cF\x8d\xcc\x02\xbc\xbfO\xf6\xf8#\ +\xb1\x9e\x91Z\xd5\x1f\x15C\xc4\xc0\x1c\xfb\r\x9fv\xe6\xdc\x9b8\x7f\x7f\x15\ +\xf7\xfc\xc6\xe8\x19yFJ*\xb9\xd2\xcf&\x93\xafY\xf35/\xfd\xe3;\xe2\x9c)F\xc5\ +\xe3\t\x05\x8e!\xf5\x83S\xe9\x85\xc9\xf2r\xf0\x0f\x82(\xaa**\xe5\xf8;X\xe5}\ +\xaa8\xda\xce\x1er\x19z\xe3\x8bq\xaf\x96\x0b\xa1\xcd\xf5\xf5\xa3\xc9\x85\xf2\ +2\xdcJ\x99\xecH\xa0\xfb~V\xa4j\x88J\xff\xbdl\x8c\x894\xe7\xd4\xe0\x08\x19\ +\x9dr\x17\xb3j\x87\xd6\x93C\xf7\xe3\x01\x94\x8ek+\xe9\xd9\xa3\xfd\x18\x19\ +\x01\n\xab\xaceJ\t"\x8f\xddP\x99d\xa3\xcePl\x15w\x8fz6\xc2\x1d\x81\x1c\xd6\ +\x02\x02\xb2`\xe7I\x90\xb2\xad\xd7=\xcf:\x1a\xf19;_3\x11\xad\x894\n\xe1\x96\ +\x06\xc7\xd3\xbf\xfa\xe0\x122\x7f\x1b\x9b04\xa2\xd3\xadY\xd7\xe7\xed\xd9\xbd\ +\xca\xe5\xab\xce\xb3\xb0i=\xfb\xcb\xe73\x96\x8c&\xd3\x9b\x05Z\xf5r\x10\xc6I\ +\x18A\x19\xb3\xfd\xe2T\xce\xe7\x91\xbe\xd0\x1f\xd0:\x04\xc4"Fq\xa4e\xc1\xc8\ +\xac\x04\xe5\xfc!\xd5\xb7\xd1\x0c\xbe\xfe\x97F)\xa6\x1c~\xfdP4\x81o\xfe\xa2m\ +^\x8eg\xfaV[\xb3K\xb3\x1bI\xea\x9el\xe0\x19\x85~4+\xe8\xa6\xae\x16\xab\xd3\ +\x81!|Lp\x9d\n\x00H6\xcd\x08\xbbFIejb\x84o\x98#j\x8b\x0e+\xd0\xf8R\x98\x89\ +\xb6\x81v\x1al\x94f\xc0y\xc2\x013\x85\xd2#\xb0-r~\xa2u\xe3\xbd\x9e\xf6\xe4Z#\ +\xa5A\xc6\t\xb3\xe5\xfc\xa9L\xc3\xc9L"\x11jZ\x80\x90\x10f%mp\xb6\xb6d\xf7\ +\x9b\xef\xbe\xf6\xfe\xfbw\xab\xbf71\x9aJ\xa4\x0f\x8f\xa3\x85\x9b*\'\xa1\xd2\ +\xcd4\x1d\x94\x02\x00\xbf\xa6\xb7\x904To\xbf\xf5^\xd2\x877W\x00\xbd\xed{]\ +\x08.\x8f\x1fHwO\x0c:\x9b5V\xa8\x8b\xad\x82/^!\xc2L\xff\xe5\xdf\xea\xe7u\xe8\ +\x86\xdb\xe5\x996\x08\xc4\xfa\xad\x0c\xa6\x02j\xc0}4\x99E\x8fu\'N[%W\x8ev\ +\x07ln\xbf\x1a\x99.\x8a\xb5\xb2U\xef\xfd05M|\xbez\xcc.o\xabq\x91%\xa9nK\xba\ +\xee.\x99\x958\x92\xaf&\xde\x07Igl7\x1c\xe9C,_\x99\xf8\xea4\xd4\xd5\xba\xb6\ +\x88;\xa04\xeb\xb6d\xb3\xf9V+\xbc\xde\xe1;\x0f\xf1#\x04W%[\x8cx\x81\x12\x02w\ +\x02\xff+\xe2\xa9\xb3\xa5ki\x90\x97h \x1c\x9e\x00Z\xbc\xd5\xef\xf5~\xdcM\xa0\ +N\x7f;\xef\x832%\xa7\xcc{:\x13\xd4\xf91\xa6\xdd\xcc\x85\r@\xa6K\xc0\x92\x7f\ +\xa8\xbbg\xe5w\x15xJ*\xd5\xff\x1c\x9dgyz\x04\x97S\'\xcf*.\xf20\xf3~\xcdy\x14\ +\x0eG[\x84\xf3O\n\x9c\xdc\x9a\xac\xf9\x95Y\xaf\xb6m\x08{X\xcd\xe7S\xf8\x80\ +\xe4\xc6\x8eK\xd62\xb78\xbdF\x0bF\xa1\x03=\xa4\xe4\xbf\x8b\xd3u\xc4\x06\xc0\ +\twy/\x0b\xc6U\xf1\xdb\xd7\xf1\x9b\xf4(YX\x15\xf5&|\xdc\xa7M\xda\xbe,\x90\ +\xeaii\xeaA\xf8S\xd1\xf4\xc6c\xf8S!\n\xdc\xdf\x1f\xf2\xfb6\xa5\xaa\x14\xf6\ +\x12\xed\x10\xef\x9f\xc2\xa8\xdbvX\x1d6\xc9>\x88b\x14\x90\xcd5\xe0 ~?\x82N.\ +\x1a\xea\xf8\xa5\x0cIG\x06\xfb\xf2\x90\x1ag\xc3\xef\xde\xadZ\x1a\xe7>}\xc0\ +\xf1\x85*\xf2(\x87\xf0>\xc2\x9e2\x9d\xa7\x83\xfanx\xf0\xf8\x95s\x97-W\xb8B8\ +\xfdq\xb2\x12*Is!}\x13i\x0e\xa9\x8d\xedks\xb6%\xbc\xf5\xd8*\xe5p\x88\x82mB\ +\x80\xc3(p4Na\r\xca\xf8\xdb\xf3\x85e84\x12\xc9\x84\x1et\x7f\x14k\xbb\xe2\xb7\ +|Wm\x90\xd2\x93tr\x14\xfdq\xfd.\xdb\nl3\xf28t\x0cl\x9b\xb6\xc0\x01\xbd\x91Ik\ +@\x13^dL\x92n\xb8>\xbf\x89\xaasq$\x0cLD\x07\xb7\x9e\x1d\tp\xd6\x1b\xddD\xf0\ +\xed\xe7%e|Q^.\x08m\xdd\x14\x1e1_\xde\x11\x93t-\xc5\xb8\xbfIVV&~s?\x00\x87\ +\xd4\xc0\x0ej\xa5\xd9\xbe\x1c\x1fB\t_\x17\x18\xab\xd1\xa1\xf0L\xf8\xdaK\\d\ +\xe5\xa1\x83~6\xb6\xe6!\x89\xd8\xbe\x1d\xaa\xb3\xfc\xe6+R\x13\xddb\xf9\xbe\t\ +\xcf\xc6\xf5\x95T\xdbY\\\xd3\xc27\xd2)\xc2\x07E\x11\xc2\x07\xbf\x07\xd9\x8b\ +\x7f\x13\xe3\xa5)\xdcb\x0c\'{\x94\x81h\xdb\xfe\xb2k\x8d\xa3\x14\x13\x8aa\xa8\ +\xf1\xcb\x10Q\n\x0c\x86\xc6i\xf7\xbe\xd8\xb4\xfb\x18?-\xf4\xf1a\x95=\xd1\x91\ +\xe2|\xdf\xbaJw:y\x07\x85|\xebMG\x83B\xabpw&\x95\x88\xc1rw>\x98\xba\x12\xba\ +\xf66\xb7\x9bRE>\xe981\x11~\xe9\x92\xff\xef\xa8\xc7\xe0\xacU&_tt\xcd-z\xbd{\ +\xa1Uy9\x0f2C8\x16\x00\xc7\xb0(\xcb\xaf\xf3|.L4\xa7s\xd8\xd8\x0b\x0f\x92\xd4\ +\xe5[\xa2\x01\x86`5\x0c(\xa1w\x9e\xee\x95\x96\xcaLN \xf1O\xcd\xb7\xde\xd6\\\ +\xb7\x8f\xc0\x93\x10=\x15\xc3\x84\xa0Bh4\x19\x14\x9c\xa6\x1f\x1cAT\xb0\x1e\ +\xbe\xcb[\xb6B\xce\xdd}`B;-\x81;\x1d\xd8\xd9<\xba`3M\x93\x99\xf5\xc0]\xd4\ +\x0c\xb6\xc3\r\xcd\xdc\'\x16#\x8cr_\xb2T\xfb]\x8b\x10g\xd6\xfb\xe2\ra=\xa7\ +\x8bF\x1b?\xeb"r\xe0uby\xeb\x96}ow\\\xd5\xdf\x1e\xc6\x88JIl\xd0f\xbf!Jo?\x00\ +3\x1d\x08\xe4\xd4\x13\xd8\xe1\xb0\xcb}\x93\x08\xb1f-\x9a\xa2_\xbex\x1b6\xf8\ +\xed>\x9e\xbfG\x18\xcd\n\xdd\xfds%\x00\x91>/\xdf\r\x9f\xa6R\x06\x02\xde\xe8\ +\xb3\x01\x7f\x8b@\xdd\x8d\x0e\x06\x11\x8e\xa6\x04\xb20\x83\xcdA\xb9\xd3^]\ +\xfa\xcb\x15\x1a\x91\x96-\xd7\xb5\x0f\r$\xc4\xa8v\xec\x05\x9c\xfb\xe1s\xdf\ +\x9e,\xf7\xa7\xbcpK\xfbB\n\xf0Ws\x12\xb8M f\xac<\\1\t\xe7\x9b\'VH\xe0\xa1\ +\xcb\xafy\xf9\x87\xb8\x179\xea\x9d\x0b\xce\x81\x13a\xe13D\x87\xa5\xba\xbc\ +\x9a\xf3N*-(,\xbdl\xea7\xbe\xaa\x9eND^ \x98\n\xa6\xf6A\xb6=W\x04\x19\xb61o1(\ +\xd4\x81"4a*\x8f\xfe}\x80\t\xd7\xa0\xd1\xde\xca4L\x03Z\x19-\x1f\xb9\xad\x15>\ +\xff\xde\xa0\xfd\x88\xc7\xa0\xc3\xfad\xe7S\xa8/\xe0\xef\x7f&\xe2\xb1\xba\xbb\ +\xc3\xea\xe6\x1d\x04\x80\x86\xda1\xfd\x07D\xf6\xa72D\xb4\x8a\x7f\xa7\xbbX\ +\x93L\xba\xfa\x98#,m\xe6,:\x15\xd5n7\xfb\n\xeb~\x1fh\xe0\xb2\x81_\x17J46"\ +\x9b-\x82;\xb5\xa6\x17v\x1d\x1f\\f\xb4\x1d\x8dp\xb3\xffP\t\xcf\xc07\xc2\xf8\ +\xa0\x806\x9aH\x99Q\xc7\xf7\x1e\x01\xd1\x8b\xdapj\x15\xcf\xe49\xf7u\xbf\xee\ +\x85,\xb3d\xd5\xec\x16\xaa\xf3D\xce\xb2\x06\xfc\xda\xef\xe4\xe7\x95S1\x11c\ +\x1f\xa1M\x84=;\xb5\xf3q\xb8"\x86U>\xa0:\xf2\x9e\xc5/\xa36\xa2C(\x04a\x92\ +\xc3\xc2\x04\xad\x85 \xa0 \x1d)}F\x03\x8cS\xec\xc1\x1e\xaep\xc8\xb0\xd0\xbb|\ +\x0b\xed\x9f\xc3\xd3\xfa\xee\x7f\xec\x98\xb6\xf3~M\xee\xa4)~-\xbd\xec\tI`\ +\xe2\xb1\x933\xce\xb2\xa1\xd3r\xbcK\x87\xd5\xe5PN\x88\xcfh\xf16%\xfc\x1b8C9\r\xd3\ +l\xd5\xaccL\x9e\xa2\xb7\xf6\x1c\x88A\xe4\x85`\x90\xf1\xbf\x8d\x07d\x05,\xde!\ +\x14=\x08S}3+\x1b\x97\xdb\x96J\x10=p\x1b\x06\xb2\xb8\xc0\xf8\xaa\x97\x04w\ +\xc284\x9b\x85\xea\x11\xea\xae#\x14z\x11OSe!\x8a*\xeaP\xe9\x8f\xafQ\xd3n4\ +\xedD\xa9\xa8!*\xa4\xb8\xb9\xdde\xa1\x81\xef\xe9(p\xbd\xfcP$\xa4\xf3\xe2\xa1\ +Q\xc8\xe5N\xb2\xff\xb4"\x9d\xc9\xe7z\x18T\x85b\x88\x88\x83C\x10\nM\xa9\xa2\ +\xae~\xf3\x10\xa7\xef\xf1Q\xac>\x01\xef$\xe83\xdc\xed}\xd4 \xad\xd9\x8a:\xa0\ +\x08\x8f\xcb\x1d\x9d\xfe\xb60\x99\xa6\x90\xf9\x03\xe3\x90\x81\x1c\xc4yc\xac\ +\x14c\xddJ2!\xf5\xcb\x88\xb17\x05\x1a\xda\x125\xa2\x17\xb5\xe5\xe9\xf2\x9f\ +\x0b\x9e\xff\xb7\xdc\xb6\x93]\x8f\xa3X\xd4\xb6\xfcoF\xa4\xd4\xa9H&\xe4\x86\ +\xa9\xad\xddJ\xb1sJ/\x1dG\xd4T\x7fOz\xd0^\xbd[\xf1\xacN\xc1\x84\x15\xd4\xc3!\ +\x01\xf4\xc9\xb3.9\xa4\x1du\xd7K\xa6\x8f\xe9h?\xc7Xa\x14\xb3\x91\xa0\rG\x11\ +\xbcw\x07ffv6Q\x84\xb7\x9eKH\xb6LN\xa1s\xe2\x97\x95>\xfa&f\xafb}\x8d\n\x8e\ +\xbf\x06\xa1<\x16A\xc6+\xb8\xbf\xab\xc0\xf7\xafNW\xe5\xce(\x94\xa2g\xcbS\xd2\ +\x06\xee\xeb\x8f\x8f\x06\xc8=%\xec\x98\x9c\x8ekX\x80\xd1\xff<\xef4\xd3\xc5\xa8\x10\x08`\x1f\x92zZ\xdd\x05\x88\x0fsLw\xe2\xdd\x06\ +\xa80U\x15f\xa3\xe7\x90\x9f\xc7\xc2-\xd1\x1b\x8d\xb5\xeazL-F\x95\xa8B\xf0\ +\x91MB\xd2\x03\x18\x1al\xc7\r=\x8dF\xff\xe4j\xeb{R\x82\x96<\x9f\x85E\xd0F\ +\xea\xc6\x0e\xd19U_\xab"\xd44\xf4\x80\xab\xacN\xe7^}i\xdf\xb01H\t\xe2\x18\ +\x86\x03c\x17f[\xeff]x^\x9b\xe0j\x0c\xa2A\xbe\xbd\x0b,\xca\x84w5\xa2Cl=\xc7\ +\r=\xf5\\\x1a\x8a\xee\x1f\x1e_\xe3\x1ep\x85\xb8\x17W\xc2m\xde\xe3\xc3\xa8\ +\xa4[2s\r=\x0b\x80\xf0`\xd5\x04\xce\x05\xcd\xd6p\xa3\xa1\x95\xcc\x92X\x8f011\ +\xf4>\r\x8b\xa5\xb5\xcf\xeb\xc6j\x83\xc9tO\x0c\x03\x92\xfd`\x94\x8a,/\x8c\ +\xe6\xc5B\xd9\xc0_\x19\xc8\xc3=\x1d\xbc\xac\xe1\xda\x85[:\x83\xa1\x86\x94\ +\x19\x88(\xb8\n\xcfy\x12g\xd9V\xf0|\x81\xdauD\xd0".\x8a\x8e\x17\x05\xa3V\xf7\ +\x04\xc1\xdd\xaa\xef\x85\x95\xae\xb0\x05S\xc9\x1f\x01\xcb\t\xacEl\x18\x84U\ +\xa2\xc6\xfd%>\xb0\x1ew\x8b\xf3RqD\xb0\xe3Z\xf6\xe9\x01\xdb\xdcf\xc8\xb1~\ +\xaf:\xcavv6\xb5*Ed;\xcc\xd9\xf3\xef7:8\xf1\xa8\xa0\xe0}\xaa\x8b\xf2~\x00\ +\xd8\xfbbO\x13\xb9R6/\xd6X\xc3m\xba\xff\x8cDo\xc3J\x06\xaf\x9c\xe6~\xa9\x01\ +\x08K\x9e\xb7\xb4\xb4{G\xaa\xff;\xe0v\xf2\x9b\xfdv\xbd\xed\xdb\xd9\x95\xd0`\ +\x8f\x04\xc4\xaf\xfaVe\xfc\\\x14)\x95\xacx\x9a\x9fM5\xba\x8dI\x03Y\xda\x14v>\ +G\x92\x19wl\xa8_\xce\xc8C\xe1\x18\x1a\x94\x01\xf2\t\xb3\x9e\x02swb*M\x96d\ +\x16\xbd\xb3\x04\x8cCj\xbe\xda03\xec\xef1ym\x02N\x863\xa5\x9c\xeb\xed\x18\ +\x18n\xafs5\xa5\xfa\xef"\xc2m\x13\xd1\x87\x1a\x8e{\x99\xcc\xc2~\xffHi\xf08\ +\x7fx8\x0e\x90\xf7\xcc\x9a\x1a\xf7\x9f\x1dr\xf9\xb1\x97\x95\xc0>\x16g\xa3\ +\xd5\xfa\x98\xd4\nC\xe6\xb1^\xd1\x04e\xc0i\xf4\xacU8@F\xaea\xcf\x7f9h\\\x10%\ +Z\xfd%\xeb\xc4\xd6Z~L\xc9\x96\xf6M\xfd\xa6Fn\x94\x97\xdc(\xe0\x8c\x81\r\x92\ +\xd2`\x9f\x1f\x96s\x81\x05$\xd2k\xfa\xf5w\xd0P\xa3\xf9%\xa9/\xfd\x19\xf2\x98\ +l\x9d\xcc\xbd\xc7\x17\x9bP#3[\x823m\x17x\x96\xb2\xedp\xa4\xde\xa1\xcb\x93\ +\xb5\x87\x13\xe8\xaaX4\x9c}\x07\x9d\xf0H?\xd0\xd4\xa9\xe2\xfd\xac\xb2\x11\\\ +\x92N\xefv5B\xba\x0bd\xfd\x81\x16\xdfZ\x102S\xfbqf\xd7\xda\xea\xda\x93\xa5\ +\x86`\xa0\xae\xf3r\xa2\xc3l\xec\xcc\x1cLG@yc\xe8_~\xcd\xe52j\xe0s\xacf^\x0e\ +\x0e\xa0O\xf5\xbe\xbb< \xe4&F\xac\xca%\xdb\x951a\xd7\xd6\xc0\xea\xb1\xc4\x0c\ +\xddz\x9d\xf2(\xb9/\x80\x97\xefq\x96?\xab\xbf\x12\xa8c\xe6\xf0\xde\x1d\xa3C\ +\xf4\x9dJ\xaf\x15\x07\xfcwc\x7fL\x91\xd6\xceJTTT|\x9d.\x8d\x07\xbd)\xec\xdc\ +\xa9\'\xbc\xac(CA\x99\x0f\x85\x9c\x93\xc2\x90\x15\xad/\xd7c\x1d\x02\xf0<\x9a\ +\xbc\xc4\xc3\x9d\xb1\xd5\xfe\xc9\xdd:\x8a\x84-\xebmkh\xec\x1d\x8e\xd8)\x9b0G\ +\xb3\x07\xbf-5\xf9\x1e\xd8_\xf1\x01\x8b\xe5-\xe8\xa9\xd3\x94\xde\xc2D\x89\ +\x85\xa1\xee\x85\xef\x99\x94\x18\xca\x82\xf5Yo\x94\t\xad\xa8gi\xe4\xa0\xaaI\ +\x05\x95;\xef\xa5\x83\x1e\x84-"\x8c\n0\xb8 \xd4 \x97\'}\xcb\x02]\xfa\x06\x08\ +\x81\x02\x832B\x8d/&p\xed<\x90\xfe\xb2\x86ZA\xdc\xfa\x1d\x86 )\xca\xe2~d\x87\ +\x98\x88\x92S:y\xd0\xc7\x95\xf0/\xefm\xc1\xb4\xdf]e\x07\xf3\xd0\xe8\x81e\xa9\ +\xa6\x96\xb4\x890x\xdf\x87b*xK\xff\n\xad\x80\xa4\xa0f6\x92\xbc\xac\xcc\xac\ +\xa3E\xb0\x04P\xa1\x1e8\xa3\xaa1\xfd\x85Z\nRdp\'r\x05l%:a\xd6g\x18\xd59\xc5t\ +\xbf\x81Z\xbc/>KS\xaf\xe0k\x91\xfe\x9d\x04\xd9e\xaak\xaa\xdb@\x17\x02\x9e\ +\x8aW{F\x8fzE\xf8\xc4\x0e\xa7\xf0\x9cF%\xf7&-\xd0\xc14\xf4v\xddN\x96n\xb5\ +\xad\x13{\x05\xacs\xb3\x86\xfe\xc1\xa3y\x89\xde\xe3)\x8d8\xd3\xd9d\xd49K,\ +\xbc\xe6\xe8\x7f\xc2r\xd6\x1a\\\xe7EE\xa2\x03\x9c\x81\xdb\xec\xdc\xa6\xa2M\ +\x18\xc7\xe7\'o\xa7>\xdd\'\'B\xb6\xf4\x06\xef\xf3\xf2\xa7\x95Id\xec0\xbd[\ +\x96?T?\x84$\x91;N{\xfd(\x08\xdeD\x0b\xa1\x87)\xde\xbc\x97\x03\xa6\xb6\xfc\ +\xe9\xeb~\x9f!\'\x9e\xfcLX\xd8lx\xde~.\x19\xff\xd6\xe7\x95\xd1\x1fV\x16\xae\ +\x0f\xdd\xd8\x99-\xcfs\xd9\x1ed\\\xe4\x01\xe3\x8fo\xb25\xaf\xb5\xe8\xb8f\x12\ +\xf9\xc1\xe2Hg\xd6\xe6\x1b\xb20\x9dyo)\x87h\xb4\xa2\xee\xc5\x9f\xd6Y\xf7V\ +\xa3\xde\x98+\xde.\xf53];\xa6\xb2\xddw\xcaO\xa3^\xc8BT\xa3\xd02\xf7\xca\xf3\ +\xb5X\xc7\xd3\x07\xce\xbf\x80V\xfdd\x88\xc3\x8e\xc40\xc8\xb4\rr\xa4\xdd\xb4\ +\x90[\x92\xeb\x90X\xc09/\'\x1e&\xeb(U\x9b\xc7\xb6\xc3\xb3\xe5\x17F\xa2\x85a\ +\x84\x7f\xb7~;\x92J\x0fZ*\xbef2\x1c\x9c\xf3\xc3k\xca\xd9Z\xb4\xeb\x05\xd5^\ +\xd04\xe3\x17\x8d\x18\xba`\xde\xf1\xc9\xc5\xdbPge\xe3\x11\x10e/lY\xbf\xdb"\ +\x92m\xcdI\xc5\xe4\xf0\x9a_Pk"\x88\xfa9\xbfu:\x0c*?G\xe5\xf92\xe7\x9e\xd0\ +\xad\x96\x1a\xa2Xv\x86\x85K)P\x0b\x19\x1a\x0f\xf9\xf1\xe6\xa9\xbb\xa4\x8b\ +\xef\x9bIH$\x02\n\xdd@\x97\xfdQC\xcd\xe6\x9e\x84\x0c\rz\x14\xb8\xc3\xcc\x9a\ +\x12\xd0\xe5\xf1\xd4\xb8\xae\x13\x978Z}\x95\xcec\xfe\xfa\x83c\x9a\x11\xde\ +\x92\x95\n;\x84%\x97\x0fv\x95\xd6\xa3\xb4\xd8\xb2`\xd3\x10\xf5\x9e\xfa\xf1\ +\xf7\x99f\xc1\x90\xday\x98\xc0KUD\x06\r\xbd\xee;8p\xe26\x18I\xd4\t\xb3f\xf3Q\ +8\x1a!\x85U\xfa0\x99\xcf\xaf\xcf`\x80[\xc9Z\xe1\x85\xc7\x9c>T\xd4\xd8n4\xe3?\ +4\xaf\xf2\xac\xf00\x91y\xc8\xaf\xb1|\x03\x19\xac\xb1\xad\x08Hl(\xf7.\xcc\xd5\ +\xb1\x16Z\x81X\xd2_\xa9 ,T*\x113\xc2\x89?\xf8\xfd^\xe6\xe0\xd8Y\x8aAB\xeb\ +\xa2f,\x13\n\x94*\xa3\xdb\xf2\xe9T6\x90b3\x19l_\x88\xb7\xd0\xfc@\x132\xaa\ +\xa9\xa1\x82\xd5\xbd\xffV\xfc\xf8"\x1f\xfc\x9cb\xfdtaw\x85?\xe1\x8e\xaah]\ +\xc7\x02\xefc\xbc\xc8\xdd\x17cU\xd1\xee\xec+\x1fO\xce\x86\x81\x13\xaa\x80Q\ +\x11\xeaE\xea\xfb\xb7\x90\xc7\xdc\x98s_\xc2\xe26\x87g2\xe2\x90\xb3yf\xfb\xc4\ +ZX\xca\x9f\xdc\x0ejOj\xc9\xe0k-\xb5g/\xdb#q|\xf9B\xfbmN\x083g\x1b\xcc\x8eP/\ +\x13\x00\xc1\xdbGPA\xffy\xba\x04\xc3\xa9Zj%EY\xb26\x7f\xd6}\x9f\x9d\xd2\xebg\ +\xa2\x9a#\xdd\xed\xb3R#\xecq[\xbcx\xf6D\xf0o\xf0n\xa8\xeba\x0c_\n\x9d\x99o\ +\x13~\x8e\x92O\xfa\x9c\xd1\xaab\xc4\xfb\x0c6\xef;\xbe\xd4,+\x19\xc7\xba\xdf\ +\xef\x93\x92\xa0\xa7\xb7h,\xf9k@P\xbe\xccr\x13f\x90\xd8\x8d\x1fu\xe6\xe3\xd7\ +z\xc2\xde\xd9\xa2\xa3\x7f\x85\xbb*O\xfeN\x83\x11\x103!\xc3\xa6\x94\xab\xc2\ +\xdf\x825\x9d-s\xb2\xa7\x16\x9cY\xa3\x1cL\xb29\xd1_\xb4\x8c\xdaQw\x15\x8bq\ +\x81\xf7]9\x82\x91\xfb7$<2\xc7P\xc7[\xc7\x8d\xdf.\x99\xf3p\'L\x10\xe3\xea\ +\xfa\xcd\x19p]\xd8\x0e\xbd\xd1\xd0K\xde\xb2\x1dK\xf5\xcdph;\x921%)\x9a\xfe]y\ +\xa2\xe3\x1b\x8e\x1br\x94\xe3\xeb\xfe@-\x9c\x15\xb29\xa0*\x9fY[\xc0\xce\xfb\ +\x99Z\x9c\x19\xf7\xfd\x96\xebM\x94\x838\x19)X\x83\x9dmdo\\\xc7\xf2\xb3\xe1\ +\x05\x13@\x95>\xed\x1b\xa3\xae\xc8\x95\xd4/\xddF\xea\xed\xc8Q\xce\xca&\x0eYY\ +\xa9\x883\x9d\x89\xde*\x8e\xacd\xcd=X\n7W\x86\xa1\x97\x15)\xe9D\x03\x1bG bW\ +\xde\xb3\xf16"\x1f\xcc\xfe\xe7\xa7X\xa0W\xaa0\x00s\xe6\x1b\xe4\xce?\xfc=;\ +\xcfy\xc6\x10\'\xd8 \x1e\x1a\xab\xbf\xcd:h_\xfb\'iA\xb3o\x915\xd5[\xce\xdb\ +\xff\xc9\xa5|\x86R\xe6\x8a\xfd\xfa\x9b\xbe\x89\xb6V\xb3\xa1Kf\xf03\xd3\xe8\ +\x1c\xaf M\xe6\x16\x84t\xa5G/\xbc\xe1~\x1do\xaf-4\xf4\xa1\xc0\xfb-\x13\xe9\ +\xba\xe7\xf5\xe7\x8f\x96\xc4F\x9c\xc5\x93w\x9e\xbb\xa9\xad\x9e"d\xca\x16\xa2\ +\xd7.\x1e>yCT\xea\xbcI\xbc\x870\x82\x18\x14\xb7\xb6B\xfa\x0eb\xe6\x8a\xa8\ +\xd4\xce\xect\xdeG=\x12\xde\xef\x11P\xc1\xebuG5\x01\xeb\xe1\xe4\xfc\xec\xf6\ +\x82\xe10\xad\xed\xb0\x0c\xfb\x89t_\xd3+C\x83\x1aj\x0b\x98\x9c\xea\xc6{]\xfc\ +\xdc\xa4\x1d\xc2\x97|\xfb\xb0\\\xc4w\xef\xf4wY)$\xa9\x03\xceT0\xe2B>\t\xd0#\ +\xb9AQ\x1b\xa8\xc2a2a\xe8\xf1\xd68\x8a\xa1\xb8\x98\x1c\xb4\xf9\x08\x07\xf94\ +\xfa\x91l}\x01\xe5}\x80t\xb47\x0f\xeb\xf5\x84\xea\xf68z\x87\xc9@\'\xc6xZ\x13\ +J\xaa\xe32\xf2\xd8\xd7(l\xfe\x98_\'\xe5\xd7\xbb\xf4\x0b\xbfg;n\\\x9a\xb1\xfd\ +\xfb\xa0z\x87m\x8di3\xf2\x05\xaf)E\x00\xb4Fd8z+\xba\xeaz\x92l!\xe1\x85}v+\ +\xce\x86o55\xde\x1dc\x88\x97x\xcd2\x05\xac\xb4\xe1O]\x0eS\xd1\x11\xfd\xbb \ +\x95P\x99\x07=a\xddn\x1fM8\xc8\xa7BO\x00\xb5\xa0\xe0G\xeb\xd6\xdf\x7f\xfe\ +\xaf\x15`\xe5\x8d\x86\xbc\xfc6\xbek\xb7q\xeb>\x95`N \xce_&%\x13\x19(2R\xd3\ +\xfas\xd6\xe5\xa2\x9de\xc2\xa0C\x13\xe3\xdd\x88\xe2L\xe1\x16\x87+\xb7\xbd\ +\x80\x84]\xe9(\xdf:\xc6\xe4o\xda\xe1f\xea\xb9\xab\x9b\x81!\x1d\xc2dX\x83\x17,\ +\xfdk\xb4V4\xa4\x80\x07\xa2\xa4"\x7f\x02\xc0\n\xd4{W\xc6\xf3\x82{2J"M?\xef\ +\xd9\x1c:\x98\xef\nQO\x1d\x98!\xa0\xc8vT\xd2!\xeeJ\xe3\xd89T\x14\x83\xe4\x8c\ +\xd1\xbe@a\x92m*\xa1x\xa2\x1a\x13\x94\xebI\x90\xb4\xd8\xad~\xc7\x91\x15|\xfe\ +\xb1*\x08\xa3R\x0b\xebW\xaf.n\xca+\xef\x18\xd4O\x8f\xed\xa9.OE\xd0B\xcf5\x7f\ +\xe7\xa9\xb9\xbe\xe7\x8c^K\x8a\xc3\xdb\xee3Jy.\x99R\x10!\x12p\xc0+\x90\xb8ds\ +\xc0\x0b\xe0a\xcca\x16W\xaf\xbc\xac\xd2\xe8w\x94\xb3\\\xd0\xf3%0\xae\xa6\x8e\ +i\xb9;4J\xb2\xc5\xc6gJU\xae\xb8<\x0bO\x04bq\x01\xc3\xff\xbc\x8e\xd1\xb9,2\ +\x85\xdf~),,`\x90\xf1\xb6}\xb2\xcf\x10eU \x02~\x9d\xf5\x0e7|\xca\n\xb5\xa9\ +\xb3\x7f\x96Ld\x85\xa5\xc8\xee\xa5\x1cmhZ\xa2\x00,\xac0\x10\xb6q\tm\xcf\xa7\ +\x89\'\xd7\xb3$\xd1\x8e\xe2\xd6PKz\x0f\xdf\xd0\x93\xe1\xc7\x87\xdb#)w\xc8\ +\xee\xd4\x93)pd\xa5j\xff:\xd3\xcb\x86\xfc(\xe6\xa0z\xd9fi\x05g\xa0(\xe0G\xc3\ +E\x0e\xfa\x0fk\xda\xe2$Y\xe3(1\xdc,1U_\xc0\xc5\xddgj\xdfo\'N9OU\xd5\x17\x0f{\ +\xfd\x82\x7f\xa3\t\x85\xcbw\x9a"&\x9c\xda\x95\xb9\xa7\x1d\xb5\xcb\xb1i\x0c,t\ + \x83\x97\x90\x8e){\xb9gJ\x13UTX\x80Q\xa5|\x8b{\xf4>\x92\xb6\x16\xdb\x03\\\ +\xba\x1bN\xbe\xa6\xa1\x11\xde,UNw>6\xab\x174\x17\x00\xb2QA\x11Y\xdf\xe5\xbc\ +\xe68\xc8\rIz\x8a\xbe\xd9U\x18\x07\x15\x88)@\x83\x7f1{\x17?\x8c\x98\xa0U{m\ +\xe4\xd4\x00\x8d\x90\xe1\xcb\xabE\xa4\x0ci\xc8\xe4\xd6\xfe\x8c\xef\x06,tJ\ +\xa7Q\x8b\xa1a\x96\xcd\xe0\xcf\xed4\xe3\x06\x07\x89E\x87\xce\xacR\xcap\x10j\ +\x0b\x13\x0e\xd5\x81v\x92|\x86Sa)\x04\xef\x16a\x92\xa3\xff\x95\x99\xca\x12\ +\xe2i\xf3\\Df|QJ\xe1\xa1\xe8O\x14\x8bT\x10\xa3\xd9y[\xdf\x8fg\xf706\xce\x0b\ +\xab\x15|p\xdaiBe\x98\x89\xf9\x1f\x9fZ\xaf\xcf\xffu\xbe\x0bx\xcb\xb5\xfb\x18\ +\x1b\xcb\xfe\xba0\'\xb4}\x7f\x19\xe2A[\x90\xbbO3\xdd$\x02\xc0\xeav\x1a\xb2Ot\ +\xec\xbf\x05\x99Y?\x91\xf0_6\xfe\xdbH\xe2\xc1J\x0e6\xb3v{\xb8\'\xc8[fL\xd75\ +\xf6\xe5\xb6\x15J\x9f\x83\xa2\xee\r\xb1\xfe\xa9\xa9\xce\xeb*q\xd1\xb3\'\xe8c\ +zs}\xbd~/\xebR\xc2\xe9\xae\x8e\x183\xe6#\xfd\x8aJ|\xca\xdf\xdc\xe2|\x93\xe5\ +\xb0\xcc\x046.\xaaH\xd4\x90V\x17\xe8r|+dp\xed3\x1d\\[\xca}w\xc4\x1c\x00)V\ +\xbd\xcd\xac3\x8bl\xaaR\x8c\xe5\x95\xe6\xa2$\xdb[\x99\x13\x85\x90e\x91k^\x10\ +\xb0d\xbe\xc4\xc5\xd9y\xd6z\xe4\x87\x87\xcfhp\xaaj\x99o]\x1a\xfc\xeep\x18\ +\xbb&d\xce\xfd\xbc\xa8(\x12\xe2\xf85\x10-I\xccd\xean\x86\xa1&\xb6w\xd1I\xb8H\ +(\x11\xb8&\xf3\xe7\x9b\x0b.\x16\x9f\xfd\xcfoD\xbe{\x04,\xda\x14E\xda#\xa0\ +\xe2\xbcJ\xbb\xa3\xfa\xcf\xce\x07`\xa1L\x98\x18\xb5\xe4(\xea\xbe4\xc4\x0c=u\ +\xcc\x9f\xc3>\xd9V\xc1\xf5G\xae\xd2\xeb\xfb\xd8\xfb\xd0\xfeN\x16\xa1\xc6\x07\ +\nM\x857\xd7G\x85z+O9\xd4\x0b\x05\xe2\xbeS\xe2\xdc\x8d\x86+i\x9f%Q0O\xa4d!\ +\xba\x06\xdd`&\xcc\x8d\x96B\xd72\xbb\xad\xe9F\xc7\x89\xc9\xd2o^C\xf26\xc3\ +\xa5\xf5\xf9n+\x9b\xf5D\x98#\xe4\xa2\x1f\xa1\xd7\xd9\x81\xca\xb5\x16\xc0\xe7\ +A\xa7\xcc\xb3Szy\x95\xbd\xc7\x16f\xb6\x1e\xfa\xe8\xf2\x0c\x00wsq\xd7\xbe\xbb\ +2\x1a(\xd5\xf2\xf4f\x99w~\xf8\xa0R0\xbd\x18z\xb1\xf8\x8c\xfbB\x8f\xdd\xea\ +\x94L\x11"\x1f\xb1\x0fn\x8b\xcdm\xfc\xb2_g\x9dO\xb2\x93\xed\x87\xe9K\'\xa9\ +\x90\x81\x01\x83A\xe7\x91v\x00\xe1\xcfA\x16\xbf\xdd_\xa6\xe6\xc61\x18\xbfqo\ +\x9f\x18\t\xa3\xb0\xa6\x0c\xdf\x80\xe8k\xec\xbbk\x19\x85\xb6\x05=a\x02t\xe22\ +\x89\xc8\xd5\xe7|\xb7\xd7P\xd3S\x1buG^\xa13\xe3\x1d\xb9\xf6\xfe\xad\xa6\xab\ +\x84z>6\xbb\xf0\xd0\xb9\xe9\xe9\x19\xfd\x0c9|\xd6\xa6\xf8J\x1f\xeaI\xdesD\ +\x14\xd3\xb2\xb1\xc4[J\x7f\x18q\x02E)0q\xa6\xa2\xa0KI\x80\xdb\x87\xcam\xd5f\ +\xcf\xcd\xe84\x00lH\xec\xde\x12(\xe1\x95?G\xb9\xc6\xea!\xde\x95\xa2\x7f-\xb9\ +\xf7\x15x\xf0\xf5y\xae\xfe\x1d\xea\x94\xc6t\x95\x97\x18\x17\x04\xd1\xc6`q`V\ +\xe3UqE\xa0z\x8eG\xbb\xec\xb6\x85$\xc1\x97\x1dP\x82\xf3\x1eGn\xb3\xa9~\xff\ +\x10S\x1f\xb9\xd9t\x1e\\\xdb\x00\xd4h\x0b\xf0\x1en\xa0\xf8\x0b^\xe8A\xf7$\ +\xdb\xf7\xb2%\xd2\xca5\xf9\xb5\x8dt\x14\x1a\xf9\x8a\xf0U\x90S\x16\xcb\xa0\ +\xf6\x86kn,;\xbcc\x81\x13\x93\xc9\x9aZZn\x93x\xbaq@\x04j:\xf0l\xce\x8fO>;\ +\xb1\xc0NA\xf0\x9c\xdf\xe74\x0ej\xa5\x0b\x9b\x94U>z\x98\xd8\xbd\xe9\xd2gF^\ +\x13\x7f\xb2\xe4l\xc8\xf6t\x9bpXsH\x88\xfa\xa1[\x1e\n\xc5_Yt\xa9\x8c\x16\x8a\ +\xd4i\xd3\xcfaw\xc3\x9flN\xb1X\x01\xb8.\xfe\x01B\x88\xb2\xafA\x82\x84~-\x8fc\ +G\xae>\x8beC\x9f\x98:\xe1#\xba\xd5k\xb9g\xac\xee\xf9H\xeb\xbcR\xa1L1\xb2\x81\ +\x8c\xce{\x8c\x05\xf4\xe5\x88\xc63\xc9\x1e,f\x06\x97\x16\t\xa4{XL\x01\xee]\ +\xd4\xa7\x8b\x12!\x0b\xba^\x97_5\n\xa1\xe2\x9d\x91?0\x0e\x17v\xd2X\xba\xbe,\ +\xb6b\xbf/\xd7\xb0W\x92\xdb\xab\r\x08\x1f\xc4\xf9\x84\x14\x9aZ\x81\xc4\x92x\ +\x93\x84P\xa8q\xac\xac\xca\xa1\xe4\xd1]{\xf1\x04\x98\xe9\xfeo,\xc0\xb3i4\xd3\ +\xc0}r\x88\x13\x8d\xff\xc4\x15e\xad\xb7\xf1b\x0b\xc4\x1b\x14\xc0\xdd{\xd0UY\ +\xb7\xdb\xbe\x81\\\xd3S\xbf-\xceK\x1c\x91v"\xa1$Un\x14~\x0c?p\x16\xe1\xdb\ +\x8a\x82O3\x94\x82\n\x04\xd7\x0c\xfe\xfbM\x8e!#\x8a\xc0\xf4K\x15\xc2\x80\xac\ +\xdf\xd9\xffh\x8a\xc4\xf2\x94\x162\t\xd1E\x05\xbc\x1a\x9d\xba#\x8a\x15\xe6\ +\xb0\x9f\xbd\xe8\xcbJ|\xba\xe0@O\x90G\xd6v\xcf\xe9$<\x12\xe8\xf4y\x94xwY-\ +\x86B\x96\xe7\xc6f d@\x1c\xae_WrQ\x89V\xd3\xd9\xd0\xfe\xe4O\x9e6\r\x13\xa1\ +\x1e\x7f\x10\x08Q\x10\x1cnA\xde9\x0e\xc58\xc0\x1d\xc5\x8e>E\xcdX\x8f\x97\x15\ +CSl\xf2\xad\xce{\xc8>\xa1@\x08\x80e\xf4k\x02\xae\xb4%\x03?\xd9\xd9%%)u\xa2C\ +\x9aJ5]\r\xd8\xe1\xce[C<\xddq\x1f\xd0\xd54\x1e?\x9e9P\xfb\xe8x :\x87\xdc\xf4\ +\xbb&\x10\x97f\xaf\xaf\xf0\xf4\xb0\xc2#\x04\x06_\x95\x1d\x8aA\xdd\xa6\xa0b\ +\xa7\x81\xb5\xb6\xe3a,#/\xa4\x90o\n\xab\xc7d\xdc-\xd9\xc2\xdcZg\xb8\xa5e\n\ +\xba\xc3\xb3\xd7\xb4/%\xf5\x1c\x96K\x83\x95r\xa0W|{\xfa\x94\x00\'4\xcb\xfc~\ +\x01\xfd\x95\xf3\x0e\x92+?C\xb6\x0c\x9d\x87\x95\xeb\xf0c\x02D\x02\xff\x88!\ +\xf4\xd0\x15\xd2\xdc\x0f\xcf!~J\x07i\xa7\xf4\xb9\xee\x96\xea\xfaD"\xed\\V\ +\xcc\xb6"\xfd#9\xe7k\xbe\xa7\xbcE\rK,"`j\x94\xa2\xc6\xef\xc8zI\xc9\xb6-\xf6\ +\xd4[\xc8=f ,R\x12\x16p\xd1\xc9\xf2\xe9\xfeq\xe6J\xe2!\x80I\x86\x01\xe59\x81\ +\xdb\x07\xff\x9fH\xd3\xd4\x07!\xa1\xc6a\xb4?\xde\'\xd4\xc6\x9d6\xce\xa5\xa9^\ +\xe3tR\x90\xce3d\xa3\xa0\xe1\xec\xb7\x98\xfe\xc5\xa5\x1bu\x88\x89\xc2Uz\x81T\ +$:\xd6\x00`\'AuZk\x9e\xbf\n\xa8B$\x15\xdc-\x81\x1d\x88:\xc4v"\x86\xb7\xa3\ +\xee\x03\xdf\x19\xc3hI\xc5Q\x99\xabM\x0b\xcc\x91\x05B\xc3\xf4\xba\xc8\x8d\ +\xd7\x8a\xda\xd8\xfa\xad1\xd1\xa9\x11\xc9\xff~YL\x87*\xc2\x19WTB\xd4\xf3Yh9x\ +\x98\x1e(\x01\xd4\xc1\x99%\xcaV*\xc8\x97\x7f\xe0-\xf7\xc9\xc5\x11\x86\xaaL\'\ +W\xc5\x9b\x02\x1a1J\xd0\t,!=\x0b\x0b=M\xeeQ\x90[\xa6\x81\x8a\rw[\x00\x15\xcd\ +L\xef\xd3C\xf9pD\x7f\xc3\xa9\xf9\x88\xb5\x9b\xbd\xff\xd9E>\xd0\xcaw:\xfar\ +\xfa\xa00+e\x14s\x91y\x8cl\x08+\xa0\xec\xde\xd9\xf4\xdb\xb2\xf5\xd1gY\xbd\ +\xa3\xf1\x08\x0c{\xa91\xb2\x837\xb62G\xae\xab\xe0\xc3\xee\x9b\x01\x9f\xb3\ +\x81\xee?t\xe4\xb1@"\x90\xbe\x04g7W\xff_\xac\xd9\xef\x8b\xf2\xd3-\xba\xc9\ +\xbb\xc6h\xfel\xd4\xc2\x07\xf2\xd0\x11\xda;G\xf3v\xc2l\x1c\xe2\x9e\xbd\xcf:\ +\xe61\x9e\x95\xf8@\x0b\x15L\'j\x9d\'\x9f\xaf\xbfz~H\x90\xa9\xc1\xdb\\\x8c\ +\xa1\xf62e8\xe6\xc4\xef\xbeF\x80\xf8\xffV\xfbN-]U\x84\xab\x96S\xa8\xc5\x98_\ +\x9c\x96\x0bg*Z\x16\xd5_\xa8\xd3\x18I\xa1Fo\x052\xd2\xbf\xb8\x95\x8c\t\xde\ +\xad4\xff\x19H\xfb\xc3\x8d{\x18x\xbd\xc8\xb1\x00\x0f\xc1\x98\xfa3\xaf\x8f\ +\x1f\xb3^n\x9e\x08\xae\xf1t\x82va7\xd9\x07\x8a\xc4\xdb\xb11\x83fg!"\x14\x93|\ +4\x94\xe9\x8d\xd4\xdb\xcai\xdf\x1a\x87q\x19\x8b\x8f\xb69\x97~\xaa\x08;Q\x84\ +\x99\xc8\xdb\xb9\'\xf8\x95aS\xe0*#*\xf3+\x10\xa4\xcfE\xeb[0\x95\x8c\x18x\x08\ +#\xdf\xeamz\x17@\x1aF \x9d\x7f\xaexm\x13XS\xff\xaa\x0b\x0e\xae#\xe6\xd8\xdc8\ +\xe2/\\\xe0$\xac"\xb8\xcd \x0b\x96j\x14?\xc0\xc9b\xeb\x0f\xcb\xceE\xb1\xbf~\ +\x15\xa4\x12\x89\x971t}\x89\xbeB\xae\xcd\xa8\xbe\x96\x92e\nI\xd8\x07o\x18\ +\xac\xaf~\xda/\x08$\x08\x07\xe2\xc1\'~\xefM\x17x\xcb\xcfN\xda\xbd\xf5(D\xf0\ +\xe7\x9d\x89\x08\xcf\x10l\xb1:\xaa\xdfDO\x82\x0f\x97%f\xc8\xb1;;\x7f\x9a\xb2\ +\xbf\x08,\x0f\xa8\x93\xb3\xbe\x9d\x07\x87=\xcdC\xea\x84"\xc4do\x9c\xac\xde\ +\xc7Pd\xd1E\x18\x0bh\xf5\xd1G@\xa02\x87~\xe5\xab\xeb\x0c\x1d5\xdfCd"\xea\x9b\ +\xc97\xf4Q=/\x87\x19\xac\xfd9\xf1\xe7\xa8\xae,\x1fC\xd8\x96\x10cc\xd8nG\x13\ +\xe86\xd3l\x17\x15-\x06KC\xe2\xef\x1b\x1e\x97\xef!\x9b\x0f\xab\x04\xbc\xf3\ +\x12\xe4\xd1\x97w\xdb\xcf\xd9\xd8u\x1f\xaf\x1e\x0e\x8d\x03\x17\x07\xe6\xe3MU\ +!\xfb\xfa\xe9};\x0f\xc4\xf9c\x05\x88rY* \xf5\x81\xb3X\xa7\xea\x14\x0b\x9c\ +\xc1\xe0\xb1\x1d\x93\xb3~\xbas\xfb\x96\xeb\xf3Hiq[\xbf#z\x86"\xdc\xc8\xf4t\ +\xed\x14\xc2\x0c\x96\xa4\xa4\x94I\xd2\x01M\x87\x86\xa1\xbb\x1c\x9a\xa0\xb5\ +\x07\'\x92\xaa\x9dk\x15?\xe0`\xbf\x05\xfd\xf4\xef\x97F\xf1\r\x16\x80\xa8\xb8\ +\xcc\xadcz\xd1\xea\x95\x1e=,\xf4\x86\xdf~\xf8\xeb\x7f\xe0\x18<`\x12DS\xbe\ +\xfb\xb3fUo\xa4\xde\x9c\xb5x\x7f\x16\xe8U\xd6\xb2\xdd\xf7\x1f"\xa5\x880\x97\ +\xcdP\xfd\xeb\xeb\xb7J\x0c^\x8d\x90\xa6\xf7\xbf\xf0Z\xf7\xa0\x97\x1eR\xc2\ +\xae\xa8#\x1bj\x14\xc9\xfa\xedm\x89\x06@\xcb\xf5\xa7\xeb\x90^S\x19W\xc3\x97\ +\n\'IX\x91\xc5\x84\x1c_\xbe\xec\xba2\'\xd4\xf8W\x94Zb\xe7\xe7*\xab\xee\x12"\ +\xb6\xa8[V\x91\x17\xdf\xdde\xbdzC\xc2\x05\x1f\xcc\xbct\xf4,\\R\x0e9\xbb\x98\ +\xd6\x8fp\x03\xe0\xfc\xd9\xf2\xcf\xfeS<\xaa\xc4\xb7\x1eR\xd1\xde\x9f\xf5\x8f\ +\xa9\x04\x03\x11D\xb9V\xcb\x0b\x85\xa0\xa5\xf9\xac\x978I4\xa9\xaa\x93m\xfd\ +\xaeQ\xfd\xcf\xdf8T\xe2\x97\x8c\xbc\xf1\x8dS\xfd\xc5\xae\xba\r\x14\xb1\x01\ +\x900x\xeb\x7fX\t\x95\xc2u\xc8\x18\xb0]~\xc5\x1cq\xec\xc1\xf4\x11h\xfa}d\xc1\ +e\xbb\xb1\x05\xd2\xf1:,\xd5\n\xfe\xb7\xab\xf6\xdd/-~\x98d\xc3@}\xa3G\xcfar{\ +\xa1\x13\x11\xd5gk\xcd(`^p`\xc7\xb6\x13\xf6\xb0\xe2\x88_$\xe2\x80\xb2\xaf*\ +\xb5\x1bl\xe36o1\xddIF\xf7\xfe\xe9\xcepr&TjVT\x81\x81\x0e\x8eTG\xca\xf9\xcb\ +\xc1\xbb\xe7\xe7\x98\xae%3\x1b\xdd\xae\x1a\xe3@o\xb2*\n\xa6aI\x17\xa2\x96W&\ +\x068\xe0\xf6\x90I\x9d\x0b/<\xc4x\xf9U\x1e\x9eV\xd0\x7f\xbe.\r\x9aH/\xfa\xdc\ +\x1e\xbe\x18G4.\x90\xc9q\xec\x1az]i^\xea\xc7\xb8\x0fm!\xc1R<\xab\x0f\x9d\xa8\ +\x9b\xec\x84\xcb\x0e2\xb8`W\xe0\x83\xe2\xba\x1fB\xff\n\xdbVt\xf5\xf4\x87\xdd\ +\xc5\xb3\xe1\x0e4\xb1\x08>\xeev]\xc1PP\nA\xc4\xdb\x8a\xf5c\xfbC\xc2\x16\xd2\ +\xc9l,\xd7s\x92\xf8\xb3\xde.\xb2\xbcn\x18\x0eA\xe9UZ\x920\xfeq\x95^\x9a\x18o\ +\xc0\xdb5\x1a\xe1\xa0F\x1c\x9fkGamTmnd\xc9\xbcQ\x0c\x88@P\xcd\xa8P\xab\xee4\ +\xbf\x98\xcf\xdcL\xa3"!\x00\xc0\xee\x8d\xfd\xf3\x0b\x9c\x85\x1f`\x92\xe9?\ +\xc3U\xc6\xff\xa9\x8dp\'\x87\x1e!\xd2z\xc9\xdbp\xa5\xc2\xe2_Uc\xf9\xfa\\\xc1\ +\rpi^\x8c:RDN\xc9i\x10\x14 \x03)\x13\x92\x7fG\xe5\xe40\xa7oj\xce|\xca\xda\ +\x80\x0f\xeb\x8d\x92\x08\x13\xf6\x7f\xc8|\x0cD\x1e2A\x0cRU\xf8O\x19\x89\xaa\ +\xbe\xb1"A>\xdc\xefw]o\x1cdo\x0cg\x1f_\xb42\x13\xf1\x1b\xe3\xe5E\xfd\xe7\xf2\ +<\x8d\xe4GL\xd8\xfe\x88\xdc\xca\xf3\x9c{8\x9a\x11\xe2\xbd\'\x98\xc7\x04\xe4\ +\x08q\xc9\x91\xc7\xfa\x15,\xab\x16>\xda\xe2\x019\xae^y\x85m,=\x0b{\xe0K9Q\ +\x18s[\\\xbe|"\xd1\xcbF\x11\x1dEi8u\xe5`\xbf\x80\xc8\x1cMn\xb5\xd3\xba\x1e\ +\x8c\x88aY\xc4\xf1\xbf\xaf6\xb5\xe0/\xe7\x01\xc4\xcb\xee\x11\xd0\xea\xdc\x98\ +\xcf\xe6`Gt\x90\x94x\xfc\x0fN.\x93\t\xafi\xe27\xf2_V%X\x85eb\x8f.\xd5Z]\x1fN\ +\x04\xff\x88w^Q\x80\xf5?x\xcd\xad\xeb\x82z\xa1\xb4\x1a\xdc\x1b\xd2\x83\x93*#\ +\x83\x87\xc2r6\x83\x19{PFL*]g\xec\x1f\n@x\xb4\x19F\xef\x15\x8d~\x83\xe9\xc2&\ +\x02F\x04\x88\x92\x19\x10\x87;\xb7T\xa7S\x90\xf0aU\x12|\x00\xc3\xf5K[\xad\ +\xb1\xed\x04\x8c\xc2\xd1\xaa\x08\x97f\xaeR\xea\x18\x94`\xdf\xff\xa0\xad\xe5\ +\xf2\x14\'\xc1m\xcb\xfe3+\xc3\xc4\x18\xdc4\xfa\x9f\xd7\xf6rt\xead-\x869S\xc0\ +\xdc\x13\x16\xaa\x03Y[\x87\xc1\xcd\x9d\x1bN_\xc5r\xcck(\x83\xd7\xb1Q\x13\xa1\ ++e\xadt?\xb8\x8e69\x9c\xee\xdb\x1b\xc8\xb8;3\x027|l.6\xce\x90,\x1f\xe4D\xa8c\ +:\x84\x12<{\x00@p\xef\xd3\x8b\x89t\x1b\x0f8\xdf~yn5\x98\xe4X\x0b6\xca\xd9\ +\x90\x92l~\xa8\x0bN\xa4\xcb\xd9\xb8\xeb\xb6\xef\xa4\xafa\xa5\xf0\xcf\xf1)u\x8b\x81{\xd4\ +\x02\xeb\xec\xbb\xaf\xf1\xb5\x14\x80\x04<\x17\xe5#9\xc8\x11\xd2\xdc\xaf\xec\ +\x844\x17\xfeu\xd2\x93E\n\xfa\x1czC+P?}\xa6\xf4\xe2Tl6j\xb6\xf0\xa8\xbc\xb8}\ +\x833:;w\x0fc\xde\xd8\xf9\xd07H\xf9\xa9\xce\xf6|\xc7Hs\xfa\xeb\x92\x04;&\xeb\ +\x0f\xef\xb7\xfa\x91\x1c\r\x81\x82\xbb\xb3\xa7+\xf5b\xd0_\xbd\xf4M\x01\xef\ +\xb5"\xa9\xbe\x83;\xd7G\xd2\x0b\xed\xe6G\xff>\xf1\x9b\xe7\n\xbd<\xc5\xcc\x15\ +\xd6N3\t\xac0j\xaa\xd3\xaf\xa1\xc3\x00I\xdcX\xb4Y\x98|\xfc\xc5\x00k\x03\xa1\ +\xf7\x8a\xf3\x115\xc8\x16\xca\x86\x0e\x03Z\xff\xa9\xcd\xcf\x03BW\x82\x8e\x0c\ +:\xdd\x02\xc8\xe3\x02\x8f$\x84\x87\x90\x89\xb0\x82e\xba\x86W\x87r\x88\xffx\ +\xab\xcbs\xda\x0e\x02\x9f\xc7x\xc5\xdc\xf6\x97\xbf\xfbt\\\x18\x1b\xd1V\xf6\ +\xa6\xae\xdf\x1di\x96\x1d`\x07>\x04\x18\xffo\xce\xf5~\nn\xc9+/\xbe\x04C|\x98\ +\x04\xbe\x96O\xb0\x16\x18q\xe7U\xfb\xfe0\xb0}\xc1\x00\xb3\'2\xc9\x98s\xc3\ +\x05\x976\tFX\xf1\xf1v\xeb\xc0\x0e\x83)q4\x1a?:\x9eO\xe7.\xd0W\xf9k\xf9\xf5\ +\x14\x13\x94\x03&E\xaf]\xe2h\xd4\xc1w\x19\xde1\xf8\xf1C\x0bF2B\x8ec"\xf7~51\ +\xc6\x8c\xc4P\xbeG3gE\xc0E\xe3\xef\x8ef\xf6\xd3\xf4\xe2o\xb5\x1f\x89\x90\x85\ +\xcf\xba\x9e\xe7\xb31vg\x0f\x1b"\xfak\xef\xfa\xa8\xb5\x1d\x90\xda\xaf\xe1\ +\xc1\xfc\x845\xda+\x05\xac2#Q\x8a\xd8\xef\x0f\xafz\x90\xe6\xf7\xca\xcc\xeb\ +\xa8N\x9a,Vt\x7f\\\x11\xdf\xf24\\\x07\x12%\x93h8\x97\x124(,*\xb4\xba\xf2\x9b\ ++y\x98\x1c!\xe1\x1b^gK\xe3\xaa\xba`\x17\xf2*\x97\xcea0\xa1Dj\xaf\xcb\x8f\xb9\ +\xa2J\xa3\x89\xb5QD\x1aL\xd9A\xc5]\x93\x80\x88\x947#Ye\xe5\xcbG\xfe\\r\xd6*\ +\xa9\xcf\xd3\xa5\x90\xc5~zd\xb9\x9ey\xf8\xb9\x8e0\x7f\xcf=`#s\xf6\x98\x02\ +\x05\xc04\x9cN\xfe\xad*\x996\x90\x80\x9ef\x8a\xc0\x0b\tP\x1c\t\xc5\xe9V\xe4\ +\xb6\x91p\x99v\xa1\xa1,\xd0\x81!\xa9\x9d7h\x19<\x97\xeb\xfa[\xf0\x19\xca\x8e\ +\xfaX\x1d\x08\xe6\x06*\x83=\x10\x17\x93\xfa\xff:f9\x80s z\xca\xd6x\xff\xc3\ +\x188\xe92w\x80\x06\xcd\xa1\xe7\xf9\x0c\xc5\xd9\xd6o\x00\xddK\x81\xda\x17\ +\xbe\xa1\xbe\xca58\xe4\x08\x9e\xebR\x1dh\xee\xee\xb88e\xb2\xd1Y\xb9L|~.\x8f\ +\xa0\xd7p\x9d\xf5\x9bL\xb4\x08P\xbb\xbb2x\r\x08x\xea\xf0h\x11\x85gA\xc7\x0c\ +\xba\xb9\xc1^\x87\xdf\xd7\xd3\x95\xa4\x11V\xc6\xb5\x8a.n-\xbf\xddf1\xf0\x7fQ\ +!\xa3\xbf?=$\x9cB\xf3\x8e9\xbcK\x0b\x84\xce\xc571\x8auwZ\xc2\xbd\xf4>\x14\ +\xf1b\xd9\xb1\xf5\x19\xee\xb0\x9cT\xec5e\xadH\x87\x12\x8fgBY\xb4\x15\xf2\x1d\ +\xb7\x1e\xe2YD\xc8\xe2)\x0e\xf2t\x1f\xe3\xb9z\xb1Y\xbe\xf9\xf4V\\\x8b>\xc9E\ +\x90\xcbQ\x85O\x8bA\x9c\xf8\xf3427\tw9|\xe2\xf5ndA\xe2\x0bs,~\x18\xf8=B\xde\ +\x82-\x8a\xee\xab\xf9\xefdn\x15"On\xa81|Oh\xa7\x9b\xd9\xebM\x86\x19\x1dt\xc5\ +\x93d\\)\xe1\xe3?I\x88\x01\xff\x01\x19<\x96\xecO7\xbc\t\xa3$\x8f\xc4\xdba\ +\xed\xa9<\x1eK\x0b\xf3\xdbk\xc2C\xc5gg\xd6"\x936^\x86\xb5\xb7%\x96\x8d\xf7#\ +\x0c\xf1\x0b\xf3\x9f4\x87\x9c\xed\xea\xfb\xbeAu5KL\xe9\xf3\x8c\xb0b!\x08\n\ +\x8c\x07&\x95\xeb$:\xf5)M\xff\xe1\x16\xa7\x86\xa6)\x1dbir1\x16s\x97\x96\xe3\ +\xe8s9fX\x14/W\x10\x15\xe4\xd3\x0cK+l\'\x15\xf5\x93\xa4\xf5\xc3\xfd\xb7+YJ\ +\x94\xb3\x96\x8b\xf5\xb95\xec\xd3\xfe\x1e\x89\x10\x9e\xee\x9b\x8ezE\x17\x15\ +\x84\xb4e\x90\x12\xe2\xb3{X\x06\x86\xac=\xe2\xd6\xdbuhs&_\xf0\x7f\x1d\rX\xe3\ +(F\xf1\x92\xd7\xb7\x10|\x9bF\xa2\xde!r\xf5\xa9~\x1b`\xc2=\x8aw*\xb3\x07\xd9\ +\xcb\xcdN]\xde\xcboi\xdb\xc6{\xd7\xe8\x96\xb8Y\x94\xcf\xaf\xd3\x88\x97\xf3\ +\xa2\xb8p"\xf3\x06R\xd7|\xac \x99\x7f\'\n\xff\xb6\xd8\xd8\xdfN\x0b\x9b\xe0\ +\x80\x92\xf6\x8d :\xe2\xf9;`\xe1\xf54U\xbe\xc4{V\x1bC8o\xdd\xf3\x1aN\xda\x93\ +;8xt\x9e\x00\xb84\x9a\x97\xa1\xb1\xbf5\xe7\xe2=\x1d\xf5\xf6\x95\xc6\x13D\r\ +\xda\x9c\x9d\xc2\xbf\xabA@\xd14D?\xe0\x907~\xcf\xee\x93\xbb\xb9\xfd\t\xc0m\ +\xf6n+>\x89\xa1Tw\xa1F\x7f`]\xf5>\xde\x9a\xa0\xadk\x04\x0bq\xb3\x8ay\xd0\x8a\ +K!;^\x14\xc8\x92o\xd7\xb2J\x17\xae`\x8e\xb7\xb2\xe8,SW,\xeb\xf3Q\x91\x1aI\ +\xfbB%\xb7\xd8\x89\x07H\x95?/(\xe2\x02\x17Ee\n\xc1\xab\x9f\xe2\x1bh\x9f\x8eI\ +\xe3\xa5\xbdb\xfdL?JQ\xe8e\x8a\xe1\x1c\x8e\xd0xB\xcf=J\xa1]\x0e\x9fK\x08k\ +\xc10\x08\x12;\xb7\x91\xe9\xb2\x04v#\x13\x1aK\x07g\xae~_G,\x90|.\xc6\xfda\ +\x9b\x0f\xe0*KI\xf4\xd8\xf0\xa7p:H\xd9~2\'\xf3X\x9f/\x14\'d!I1\n\x14\xe7\xd7\ +\x7fK\x1f[~\xeeAZ \x8fA\xbc\xb4,f\x1d\xa6\x94\xb7\xe9\xf4\x04U\x88\x1e\xc6\ +\x8b\xd6K\x15\x997\xe0\xd4\xd0\\\xbb4\x82\xc3\x88\xd2GYlY;\x99\xa36\xfa\x0b\ +\xbd\x16\x08\x00\x8a\xf6xjb\xbbB\xce\xa8\xe1\x9d\xc4\xbf_\xd6\x11\x82\xe5M"\ +\xf2\xb8\xc5\xd6T\xaf\x80\xec\xde\xbcM\xc8\xd1\xe5\x0f\x0e\xcc\n\xe7\x04N\ +\xebp\x1e\xc8\x075c\x1d-O\x04#L%S3U\xb8\x93S\xe9\xd4\xa6?V\'4\x1fE\xa5gDPU \ +\x07\xf2u\xdc\x08\x8b\xabR!\xd7\x93\x01 \xf0p\xa639=\xf7Y\xa1B\x96\x94\xa9\ +\xfe\xda(\xc3\xf9\xb7\xad\xad\xc18\x81\x1b\x07\xe8\x01\x89t\xc4A=\xe2\x1a\ +\xf3\'L(\xa4\xbeo!\xac\x10N\xb1\x94\xff6\x84\xfd\x1c\xfc\xbc\xd0\x98\xdc\x9f\ +dJ\xccY\xf5I#C3\xda\xaf\x8eX~\xdb\x08\x8a\xb9Ct\xae\xd4\x9d\xeec\xb6v\x94\ +\xd4\xb4aP\x870\xe2\xd3\x8fT1\xa7"\x02\x8d\xde\xd0\x9e\xbc\xf7.\x81VU\x95\ +\x8a\x9f\xa7\xca\x06\x9a\x9a\x17\x05\x889/\x910SyR\xc50<\xd2#\xb7\xfd^[\xce\ +\x9b\x1d\'&\xc62h\xc1s\xa2\x97oq1:na\x15\x1d\x96?\x19\xd0K+\xe7S\x9e]M3p\x88\ +eK\xc0\xeb.\xfb\xb8\xf9\xfaHJ\xf1\xf1\xc5\x06t\xd9\x7f\x89\xd9\xf6&t\xc7\xaf\ +y4\xa8\xebW~^\xef\xb2\x96t\xfe\x00\x18{_$\x7f\xf1\x16<\n@dk\xf4\xb8\xff1\xff\ +\xb8\xab6\xe0\xad&7\x9b\xd9\xb5/\x13\xe5\xbe|+\xfd\xd0\xab\xc4SJ\xa8\xd0\x18\ +\xbb\xae\x9cjo\xa7\xb7\\\x10]@\x88\xb0uV\x9b\x1d\x97\xe10\xff\xde\x95\xae\ +\x17h3TQ\xf4y\xea\xf4U\x1d\xe9\x02H\xb6$\x93\x9f\xe9\x97\x91\x9fZ\xca\xf0\ +\xc7`\xbd\xab\xdd\xfd\xd7\xe6~\xf9C$:\xf5$\x15\x96Z\x93)k\x1f0\xd40\xf82\x0c\ +\xb7\'+\x07!\x81\x91\xae\xdbh\xbf\x96(\xff\xab\x0c[\x0e\xb8r\xa3\xff\xf5\xe0\ +\x95\xc3cZ\xcc\xc9\xc8\x1b\xf4\x82\xec\\\xd7\\\xbd\xb7\x99k\x97GK\xdb\x94\ +\x1c\x1f\xf75\xbb[\x9eD@\xb9\x0f\x0b]\x1b\xfc\x12\x7f\x8b\xe3\xea\xf8\xc7O\ +\xa9\xe7\xcb\xe1\xe8\xb6f\x8f\xec\xbd\xd4N\x9f\xb5\xa6\x9c})\x9aM\xc2\xcd\ +\xa1\x89\x11z\x10\x8e\xd2\xe4\xc4\xf1e\x9b\x9f\x05\x8b>\xff\xe6\x13\xad8\xd1\ +\xcfgx\xaef\x93\x13\xa5\x95\x89\xd5\xc7\x85iI\x1d\x7f\x010B\xf8\xfc\x92\x85w\ +;\xb8\xe1\xf6p\xf4\x1a)\xf6U\x1a\xec\x93=.CO\xc4\xc9c\xde\x97\x0b\x12\x10\ +\xe7\xb8\xfc\xce\x98L\xbaL\xa0\xf9\x15\xca\x8b\xc6\xbd4\xc9\xddh\xff\xfc\xbc\ +\xdaRk\xbb\xee\xf7e\x19{\x86->\xdfI<\x9e\xbb\xee\xdb\x1e\xd6\'a\x08L\x89Y\ +\x9e\xf0\xcd\xabo\xc0\xf7G\xf6=\x88\r\x0e^\xdc\xec\x82\xc2a\x08\xcc\xe5\xe6\ +\x99\xbe\x14\x9eP\xce\xe6\xd4\x88\xe9>\xfd\xf7\x06\xa0\x95\xe0\xf2\xce\xb9\ +\x1a\xbd\xda(\x95k\x8bw\xb49D\x01\xa8\x07u\\T\xdcAp)Z\xc8\x04*\x19\xba^\xf4\ +\x8d\x8a\xc0s\x85p\xc4\x80\x85\xcd\xb5\xe9E\xc5\x02\xe3\xa8.\xaf\x95;\xbf\ +\x9a\xe5q\x14\x7f"\xa55\x15[\xf3\\|\xbdy\xf9a"c\x04\x99\x8f\xce\x1c\x8c\xbe\ +\xa1]\x9c<\xb6~|$\x05(\x82\xf1\xabv1y\xf4\x1cW\xb3\xd8\xf2\x85(9\x10H*IAV\ +\xa6e\x10\x9f1\xed~\xf3kK\xa8EN\xa0h\xbd\x1f~\xde\xb4F\xc7\xbb\xf6\x81Dr\x00\ +\x99d\x1c\xedD\x1c\x08\xb2\x90\xdc%]a\x0fcuN{hz\xce\xbc\xce\x8f\xe7\xb4K-\ +\x9c\x8e\xb2\xd0\xfd\x147\xc6\\H\xd8,\x18~\xb6\x87\x08\x19\xe8\x13\x87\x8b\ +\xe7\xc5T\xe1\xbb\x80\xd7F<\xa5\x95t\xa1\xf9\xe3[?D\xe6\xd5\x9c{\x8b\xb3\x1d\ +\xe9>\xd9y:E;\x92\xad:2?z\xe4\x97K\x8c\x1b\xf3HQ\x86\x8d\xeb\xb3\xa9\xaf\xd9\ +2\xf0\x1d\x84\'\x1b\xa0{\xed\xf6\x88\x85\xf4\xd9wbC\x95L\xfdY\xe5\x0fA\xf9\ +\xf3\x1f\xc3\xa5o\xc1\xc6\xef?V\xda?\xcb\xd3l\x7fj\xcd\x04\x9c1d\xd6vo\xd3\ +\x98X\x1d\xe2\x1e\x1d\x1f\x08r\xa6J\xc6\xdc\x12\x14\xe2\xc3/\xa7\xb9:?\xd8\ +\xd0\xfcm\xdf\xd3\x84\xd7y\t\x86Z\xc0\x0b\xee\xe5\x10>\x85\xa4\xe6d\xee2\x1d\ +\xc3\x1d\x94a3\xbf\xbe\xd6W\xc2\x10\xae\x13\xdb{\x99\xa5\x8bf\xc6\x932E\xe47\ +\x92\xec\xab!\xa8\x92\xbfAv\x8a\x0e\xa7\x86\x1e\x8a\xad\xca\xd9\x14H\x94\xd9\ +\xe1\xc4F\xb7\xb5r\xeao:\xdc\x19Q\xdb\xd9\xbbd\x900\x93gg\x87\x15\xd6#P2\xf0\ +9M]\xd6o5d/\xcf\xc1\xbaNH\xe1\xff\xbc4\xf0M\x1a\xcc\xeag-D\xeb(#S\x97\xba\ +\x00\xbb\xc5\x0f\xa4\\\x9c*\xda\xbd\xbd\xd1xyjh\xc4\xd8j)\x1e\xd0l}\x81\xcfp\ +\x14\x99u\xc7\x93\xb0\x15\'e\xd8\xa4~D\xbb\x1b\x0fN\xd1\xfc\xb4\xbdc\x15\x1d\ +|@*\r\xe6N\xc1\x89V\xf8\xce\xd0\x96d\xc02$\x89\xb0\xd6\x16\x04u\xd0\xf0w\x92\ +U\x19/\x06\xb4\x99\xe1\xd1\xd8\xac\x83\xeas\x91\xb3\x85\x17\x8cO\xea\xe9\xe2\ +\xdd<\x10\x8c"\x13C\tT7=\xd0Yp\xacC\x04\xd8\x10\x0b\xeb\xb4\x1dL\x0b\xdc~ a\ +\xa5\xb4\xbdw\xba\xb2\x99\x1b\xf4\x9f\x04\x9b\xe9|uL\xbb\xa94\xfd"`\x16|\xba\ +b\xd5\xfa4\xb7\xa8\xe3\xc6w\xd8{7\x98$\xfa\xf0\xfb\xbb\xade\xdf`\xee\xf3\xe3\x0f\xde\x9a\ +:^\xcb\xd5\xa9\xe7\xd7\x91oWc\xb5\x0e\x02\x95tL\xd9\xfb\xd8p\xadnC\xde\xa0\ +\xf1\xabX\xef"VQ\x08\xdbd\xed\x14&C\x8b\xdf\xc5\xe5\x168<`\xecs\x96\xe2\x14\ +\xcf\x8d\xf8[\x10)\x95\x935\xa5\x99\xb3=\xec\x8dN\xbe\xca\\1\xb3\xaa;\x9a\ +\x8f\xe7A,\xcd\xcf\xdfp\xf3\xee\xf3\xb2R\xc68\xda\xbf\xca3\x18_xd\xfbd]\x01b\ +\xb8?Byl\xf9\xef{\xd4Y|\xc96\x07\xb0F6\x12\xe3-\xcc4\xa2\x08P\xdf\xe6j\xcct\ +\x84\xba\x1a?\xbe%.\x12\xf9n\xfc#\xd5\x94W\x1f\xc5\x96\xf8=\x03\x80BIS\xfeZ\ +\x02\x1e}\xc87s\xce0Ri^=\xbfS\x10n\xf9\x9e?\x93pDA\x03\xc8\xda\xf7Fo\x1dX\ +\xefv\x1ekL|\xdaI|w\x86\x0cl>\x9c0\xaf\xb6\xb7/\xfad\xfdnBW\xbf\xf43\xa3G(e]\ +u\x94h\xf5\xe5\xd2=\x10\xa6z\x04\xa8L\xd5\x9e\x06\x05\xdd \xd1\x1d\xde\xdaR/\ +\x84\xda\x04\xb2\xe6$\xfe\x94Fi\xfa,q\nfCYf\xb0\x19)\xb3\xfb#M\xbe$\x8eTI\x03c\xf4?V\xfa\\\xc5%Y\xaf\ +\xe3]HD\xb4\xca\x97\xde!0\x84\xc0\xa7O\x85\xc5\xd5rS\xf6<\x8a\xcb\xfd\x9a\ +\xef\xf6h\xe2O\xbb\xbb6n\xb3\xbf\x0c\xe6\x17r\xfb\xe0M"\xe8\xd7\x8b\x175B\ +\x180\x06i\xcc\x89\xc8\xcb\xdc)\xe4\xfej\xf9 |\x12\x82\xbb\xb1\x92\xfa93\xb3\ +\xb8l\x07\xab\x95\xce\xa4\xee\x8es\xd3\x9b\x14\x87\xac\xe2x\xb5\xc3\x0cd\xe9\ +]\x08SS\xa4,W\xf1\\Y\xbez\x9b\xf4\x11\xde"\xb0\x8a\x1f\xf6\xc2\xe7\xdc\xe4KD\ +\xf8H\xe2\xb9\xb0\xed\xfexL\xfa\xec\x9d\x083t\xd6\x8a\x12\xd4\x1b\x7ft\xadA/\ +\xfc\x06\xebz\xdf\xd9d\xb6%\xb8\xe9\x19\x06l\xd1\xa0\xea\x0f\x02+\xf9\xa7&N\ +\xf5L\x86u}UN\xfa\xfds\xfdm)fY\xd1\xb5=vwI\x02\xe4\xe7Iz\xfc\x85\xceK\x03a\ +\x12\x8b*[\xa4\xc8\xd5\x08\x8ay\xf3\x7f\xd9\x0c\xda\xa84\xaa\xa9\xb4{\x1b\ +\xfa\xd8:;\xb5\xc3\x94\xf3YD\x8e\xc40\xa5\xe5\x8e_\xa4\x83-~\xb8\xee\xb7~\ +\xf2\xf6:I\x8dsyl\x0e\x94+=B\xf6\x9bn>\xda\xda\x98s\x8eA\xaf\xb3_\x90G\xc6\ +\x89\xb3`\xcfq\xffNuJ\x85\x83\xa9\x0e\x7fr\xba\xfeP\xa9H\xba:\xff"\xe1\x8a\ +\x82\xb7\x1e+\xb0\xfb\xe0\xbeW\xe7\x84\xa9\x89\x84\'>\xaa}g\xae\xa6\x99\xe4\ +\x7f\xb2Po\xe7\xe71-\\z\x1c\xb0]p8\x1d*$\xa5\xd7\xa0R\x07g\xa5\xb2\xab\xb5\ +\xb5Y\x9c)\xb4\x96}\xa9\x19\x14\x1eJ\xbc2\xdb^^\xef*\xe5\xe3"\x7f\xf8n\xea\ +\xfa\xfay\x1f\x9dV$\x86Jz\xb9>\xb7\x94P\xc6\x0c\xde\xea0\x9d\xc5\x12\x9b\xde\ +\x16\x88\xca8\xb4\x83\xf2\x0f\x90\x88\xdf/\xe2\xe4\xfa\xd9yr{\xe2\xc2\x85\ +\xcdb+\xbc\xed\xb46\x9f)\xd4\xd2\xe6\xb2W"N\xc7\xe6j\n\x04\xaaaK\xa2q\x86\ +\xa2\x8b\x14\xda\xd8]\xbc\xef`\xb2\xf8~\\\x1e-\xd9\xf1a\xa5\xda\\6\xcd\xe6z|\ +\x05\xba\xe9\xf24V|\xcf\xf7\xc8\x87\xfeH\x1eq\xd4\xc4\x9f&\xf7_Y[{A\xdb\xf2{\ +\xfc,m\xe9\xa9D\xa4G\x8f\x8c\xfa\xb5\x1e0u\xc8\xa6\xb8\'\xb5H\x9e,\x14l:\xac\ +\x03\x8b\x87+\xb3\x9dOc\xf0\xba\xb3\xa7C\x8b\x85bD\x17\x897\x11$\xfbc\xbe\ +\xd9v<\xe0!3naQC\x81\x80g"\xd0\n \xaeOX\x98s\x0fC\xa4\xd5\x8d8(&B\x9b<}\xf92\ +\x06\xce\xdeJg\xbb\xbc\xe0\x90\xeaj\xffxFZG\xfb268r\x04 \xcch\xf0w\x97\xdb\ +\xfe4Y\xa4\x0cB\xdc\xb8,d@s\x13\xcel$\x01\x80\xd29.\xc5\x9dt\x84\xb4\xf7B\ +\xc3\xb89T\xb9-\x06E\xb90\x8d\xec\xef\xf1\xc8\xf4\x86\xddl\xf8\xee\xedtP\xff\ +m\xcdw\xafO`\x91\xf1\xb6\xf8:\xa8\x03\xe5m\x0e$0\xe1,4\xb7\x1e\xff;gh\xceU\ +\xf0\xe5f\x94\x92\x04%\xd1\x1d;\xbb\x08\xad(\x95\xb6\x11\x08\xc7\xb3\xe04\ +\xcc\xbb>\xa4Q\x0b\xd1^rK\x19R\x9d\xa7\xd8\xc2\x8f\xf6\xd8\x83\xc7\xa0\xf2\n\ +e\t\x05\xd1\xe7\xf8_\x90\x86\xee\x93\xff\x084\xdd6\xb2ra\xd9\x89\xabF\xdeG\ +\xe1\x08A\xcf\xf6[CaK\xba\x08\xc7p8\xc4\x13\xceL\xa4Q\xe4\xe8\xb0z\xcd\x17w\ +\xd2\x9e\x06\xc7\xa7\xeb\xab\x1b\xedp\t4IVy<\xd4ya\xc0\x1fK\xd15\x99\xc2N\ +\x13\xfc\xe6\xd1\x1e\xad\x9dmsS\xe5.\x16\xabk-,>n0)\xb9\xed.;fw`y\x87)\xd1!\ +\xec\xf4B6\xe1,\xda\x1a\x98\x12\xa9\x93\xd3\x0b\x83f\xd0S\x90\xb2\xdd\xea\ +\x9c+\xe5\x02n\x89\xd1XQh\x04\xc5i\t7\x1a\x1aFi\xe5\xb0\x9d\x9d\xf5VWea;\x8b\ +\xf9i\xb4\xdc\xf3\xe0\x1dx\xeb\xf65\xc3\xc9<\xe6\xa7;\x9b\xb9*\xfd!\x8f\x17\ +\'\xa7\xc8\xc6\xda\xdaM\'i\x8d\x9f\xa5\xb2\x97\xb2\x1d\xd8_(y\x82\xa3\x08uw\ +\xb0,8\x81\xbd\xad\xfc\xb5D8\xdd\xef?\xb5\xa9\xd7RpM\xb8\xabt8\x82\x9a\x16nq\ +<\xaa\xcf\xd9\x9b\xa2\xef,\xe2\x84X\x9c\xd7\x95IA\x107/\x96\x9e\xea\xed\x9d3\ +j^\xf4\xbb\x8d]\xfe\xcf\x9aA&@b\x07\x80\xe1\xc0\xb3\x01\xe5lN\x0f\x18\xfecN\ +\xed_\x87\x83\x1b[>\xc3\xd69\x95r\x04\x10e\xe4G\xed\xa8\xae\x82\xf3\xae\xa6\ +\'\x9b&\x0c\xa8\x0f\xbf)\x17\xb4\x8dU\x8a!-\xca\xb2\x16\xe6\xeeK\x90\xa8\xbd\ +\xeb\xba\xda\xa8\x98Q\x8d\xe9q\x1a\xdb\x0b`CCwSA8D\xc6\xa9\x07\xb1x\xa6vGs\ +\x1f\xc4\x0cO\xae\x9f\xb7\xf6OQ\xc3\x0feQ]c\xb472\x15\xc6\xbf\xf7\xcc\n\xad\ +\xa7I\xd7\x9d\xb5\xc7\xaf\xcf\x06t\x17\x04\xf03\x05\x03\x0c\x95\xd2\xd3\xfb\ +\x1e\xb6\xc97\xeb@\xcb\xcb\xc02\x99l>\x07\x05\xe0 \xed\xac5\xc6G\xe4\xd4{\ +\x87l\xeeT&C)\x12\x07\x9eb\xb4\xd5\x7f\xf3`\xffV\x8f\xcb\xfc\xfbSaF\x15\x869\ +Y\x04\x89G\xc1F\xf0\xba?\xb6Kob\xc5\xaa\x0c\x02\xdbV\n\xbet\x83\xcb\xca\x93h\ +\xab\xce]w\xcf\xac\xc7\xb2\x11\x16\x80\xc8b\xcf\xf3\xd5\x9a\xfb\xf4\xf0\xf8u\ +}f7I ;\xfd\x9cw\x8d\xa0;m\xa8\x10A\t\x93X\xe5\x85\xb8\xde\\y\xf7R\xfd\xc6\ +\xdd\xe1m(\xaf3\xbc\xd9\xbfA\x9d\x8f\x91\x83\x80\xf9\xeb\xf4\x84\xd6s\xea\ +\xf9\xdb|\xe6\xd9\xd1\x04Q\xf3q_j[\x05"H\x8d\x87^\'\x10\x12A;\\\x99\x12\xf0H\ +z\xe9\xe1\xf8\xf2\xb3\xd8\xb4\x05\x99\x0e\xf1\xc1\x10\xc6_\xeb\xb2g>b2G\xc8s\ +\xaa\xaa^\x82\x80^\x05\x85\x92\x99\xc4\xa0\xde\xe9k\xc7\x163F\x12\x96\x0b\ +\xa2\x03!\x1b\xad \x0b\xd9XA\xad\x0c*\xa4nu^z:\x9b\x8b\x00\xbe\x81\xc7\x8f\ +\xe3L6\x15$b5\x11\xcd6\x1a\xc6\xce\xe5Z_gv\xb7c\x88\xc7\xe7\xd4\xde\xe6\xd9\ +\x8a\x89\xad\x11M\xd8\xf5\'\xde\xac\xdf\xdb\xba\xe6\xf8[\xf2&m\x05\xfd\xf7\ +\x97\x0fS\xd1/\xd4\x80QL\xdd\xd8\x86R\xa7\xf2r\x95\xe4\xd3\x88\xb1\x1d\x97# \ +\x90\xd3\xac\x96y7y\xec\xdc\x94\xba\xe13\xb7\x89\xc6\xeaZ\xf2\x84\x7f,\x10+\ +\xe6\x9cLI\xd7\xa8\xd6<[\xc0\xa6\x9a\xb5\xab?\x1d$\xa9\xbd\x80\x1e\x18\xb3\ +\xc3\x18\xa7\xf5G\x90\xe5L\x84\xba\xc5R%\xf4\x1b]\xb4\xd0\xa1\x14\xe8\xb7\ +\x92x\xe8\x97!\xdfH\x8f`_\xec\x12E\x89@i1\x1d\xfd\x9d9\x19qTnD\x80\x10Y\x8d\ +\xc9\x10N\x90@\xb4>\x0f\xe8\x15\xa6\xa5\xb5\xc5\xed\xe19oS\xed\xf7\xf9u\t[a\ +\x05\n\x01\xaaf\xe8\xa4!\xf4\x04\\\xaf\xb5\x14t\xdc\xafT+\xfc\r1\x87\xea\xbb\ +G\xa7HFq\x1ad:e\x17\xc9\xec\x98h\xaf\x9e\x0f\xcb\xf0\xb4\x06K\x19i\xe5\xa0yJ\ +F\xc4\xdb"#\x12{I8&\xe3-Ny\x17\xe1\x93`T\x85\x98\x90\x08\x06\xf6\xbdj\xfbD\n\ +\xdb\x04\xef\xf6T^\x7f(\x86f\xe8\x1d\xb9\xa7\xc0\xab\x9dE\x03\x06\x18\x06,\ +\x84\tJ\x9d\x00$\xe4\x85\xed\x08\xb0\xbd\xd1D\x00\xbc\x19\xab\x15\xdd)\x90z"\ +\xe0x\x88j/\x18\x0bO\xa2\xde\x97\x10\xff\xee$\xaa\xb0\x80n2,eW)f\xe7F@\x99\ +\xce\x99\xdd\xc2\xc2c\xcb\'\x9d"t\x01\\\x16\xefe\xda\x1a\x9dM}\xdb\x01\x80\ +\x87c\xe4\xe4\xa5(7Xq\xdf)("\xbbPv\x8f\xd2v\x15\xf7(\x1a`\x85\xc3\x87j@\x7f\ +\x8d\xaaA+H\xdf\xdb\x8716\x12\xff\x8eb\x9eW(\x18\xd8w:,^\x1a\xd0\n\xa2w\xfe\ +\x96r\x8a\xe0C\x18\xfd4\xd0\xbd\xce\x80\xa2\xd0\xb8\x82[l\xc6C94\x1a\xad\x89\ +\xc2\xfe\x83\xf6\x02\xe8\x81\xfb\x8d\xea|\x88}\x8cvO\x18\xbb\xfb)+\xee\x7f%,\ +\xd5\xff?\xff\xac\xff?5\xeb\xd5.\x1dr7\xb2\xdfQ\x93\t\n\x91\xf7\xd8#\x9d?\ +\x17\x17\xa9>\xae%\xc8\xe52\xed\x16S\xfd\xa3;\x07\xe0@\x1b\xf7+\x92\xbc\x08\ +\x93V\xc3\xf2{\xab\xea\x03|\xe8\x11.\x9e\x1b\xf8\x98\xf1\xa08\xfc\x1a{\xae\ +\x8diT\x88\x01\xdd4h\r\x9d\x05C|\xffw\x93\xdd\xc9\xc4v\x07\xef\xc6\x15\x951\ +\x18\x95\xa48\xb8\x0b\xac\x07o\xe0WA\xf6\xf5\xb9\xd4\xca\xf9;\xb3\x8eo\xf1\ +\x10=\xf1\xa4\xa8\x10L\x10\xc1\x8b#\x92\x1dhS\x0f\x9f\x0b\xad\xb1\x96qX\xea\ +\xeeM\xc0\x93\x05\x0fIM\x10\x1a^\xc3\xf2&H<\x14\xc5$\xdf|\xd9e\r\xb6\xc7\x18\ +8\x90sG\xb6$g\xed\xd7\xd2t;\xbe\x07\xd7fx\x0c\x9d5py}oW\x12ho#\x86-\x84\x14\ +\x0b\xea\xc5d\xd6\xed\xf3M\x85Mq\xa1\xd0\xd5\xd3?\xbe8\xd9\xa2\xd5\xb7`\xfa\ +\xe7@\xeck\xbf\xf3\xf8;\x88\x86xA\x04g\x8bT\x7f\xc8\x8f.Kr\x95V\xdbZ\x15wR(\ +\xa1\xa0\xbb"\x03.\xef\x1a\x1el.U\xb6s\xf7\xcc\x15$\xe9\x03\xec\xc1\xf2\x17e\ +l*\xe4\x15\x89t\x16,j"\xd3\x13\x8d\x0fq\xb5\xb3\xfb\xbf\xb1\x00SeE\xd9\x1bg\ +\xf3Q\x16onY\xcc1\xd5\x19\x00\xc8\xb6O\xdd4Q\x112\x95v\xf4`\xd1\xf1\xa2g\x03\ +L\xf3\x18\x82(\xacj\xca\xc4\xd4lCK\x985$1\xa9md\xa1\xdf\xbd\x82\xff\xe9)\xc9\ +\x07\xf6\x0e@+O\xc1\x8aLlnB\xd7`\xad\xde\xe1\x8a\x18`\x01Y\xcezG\x86\r\xa8\ +\xffRY\x8e\xcaD\xfd_x\xa1\xc1[}\xdd\xf2\x13\xe9i\xc8\xe8jJ\x0c<\xfd\x03\x02\ +\xdfi\xc6\xa4\x8e~{(\xc4t\xb3\xcf\x81\xca\xf4\xebn\xec/V%\xc5\xa9\x96U\x9d\ +\xa1/\x9e\xf8\xac\xe6T\xe4\xca\x96\xaf\x03\xa4\xb7\xaf\xbf\x06jl\x19\x82\x97\ +\xca8\n/\x8e\xcavg\x91z_>\xcb\t\x06\xee\xf2\xd2\xcbz\x1a\xe4.\xf8\xd9\xc7\ +\x9bS\xd8\xb8<~\xaf}\x87\xca\x17\x17\xbf\xba\xfe\x1b\x9f\xa9\x7fK\xc5@\x90N\ +\xf6\xe5\xab\xe5\xa9\xba\xd7FW\x13|\xc4M\x9bY`S@\xdeM+\x0c\xafR\xcf\xe4\xb9\ +\x87>9\xd6\xafF\xfdM\xc4\xb2\xc7\xf5\xff3\x8cP\xad\x13\x1bNE\x8ag|\x1f\xa0\xae\xf2\ +\xd9as\xb8\xad\xe5\xccs\xb2-\xde\xd5{\xe71Q\xf4\xcc\xaf\x07\xde\xde\xb1\xb8\ +\xf9g8\xe2@\xb9\xfei\x7f\xc9\x93h\xf2\xe9OpS\xe0\xb7 \x94%\xbb1\x14\xd0\x83e\ +<\x8d\x81\xdfU\xff\xba\xedi[\xc1[\x1a?i\x7f\xd7I\xb9\xea.{\xf7\xfd\xd8PJ\xbf\ +\xd1\xc5Z\x19\x04\x10qD\x0c\x1b\x8a\x11\x08\x11\t\xc9\x0cs\tZQ\xf3!\x88\x90\ +\x93&!\xa8/\xc9\xe3\xa8\xd71\xce?\xb0i\x9c%8Q\xe0y\xb7y>\x9b[*\xce\xd4r\xff\ +\xf4\xec.YT2\xd7\xde\x1e~\xa2\xfd &j\xfb\xee\\Pxwi$F\xb1\xf2a\xf2\x8c%\xfb\ +\xef\xf8\xc5YM\xc7M4v\xfb\xb3\x8a\x88\x87\xa8\xed\x81\xe5\xa2d\xe0\xf9\xe5\ +\xb0B\x96\xc0\xe5\xcf\xabOg\xb5\x8eb\xacV$\xbb@\x00=\xae\x97\x04F\\\x10z\xbf\ +\xfd\xee\xc3\xec?\x9b\x0cA4\x08\x9d?^\x0e\x80m\xbd\x14/t\xf8\x9cm\x84\x19Q\ +\xd5\xbe\xe2\xeb~\xfcuB\x8b\x14\xc9&*\x82d\xb6\xf9x*\x1b\xbe\xa9\xf5X\xb1-\ +\x0f\xaf\xa8y\x85\x82\xf2\x0b\xf1v\xed\xe8L\x97r\xe5\xfe\x13\xddd7\x86\x111\ +\xbdt\xecl\x1c\xe77#iJv\x94\x88\xd1\xda\x0f\xba\x98\xf4RI\xe3A\xe0~\xc26xp\ +\xf3\xb1\xfe\xe5\xeb[\xcf\xc6\xc0\xa3\xc3\x9dh\xcb\xcdq\xff\xc2\xab\xd1W\x01\ +7B\x97%\x86\xf7^\x8b\x9b\x03\x06\x9d\xda\xb5\x17\x88\x11a\xda\xe5\x9c\xde\ +\x1dy7\nb\x0b\x1eO\xfaxT\xac!l\x88\xc26\x1d\xcf,!\xef\xd8\x916"\x95\xdb}\xc7\ +\xcf6Y\x1c\x91\x82\x9a\xe0\x99\xa7\xb5\x81\x19b\xc6(`)\x14V\x10Zm\xafp\x12\ +\xa8\xc6\xb1\r\xe6y\xfa\xf4\t\x13A\xd8$F\xe0\xaa?\xd50#\xfb\xe5_\xc0\xf6\x8b\ +\x88\x1c \xccH\x04\xe6?\x8f\xcb[t+:\xf6SJ\x1f3R\xec\xb7F\x8c\x9f\xb2[&\xa9@\ +\xa6\xa3\xcb\tFF\x88Hhv \xe4H\x04D\xd1_\x84 \xfa\xa0:\x99\xf6\x1f\x08\xa2\ +\x16\x95\xf5\x90b\x11dA-\xab=MK\x10}\x1d\xd8\x9d\xcf\x8a\xed\xd3\xb6\xd4\x08\ +M\xd8 q\xa3Lpm\xb3\xff\x1b\x90\xdb\x08\x19B"\xa1\xf8W\x91\x90\x14\xe7^\x90\ +\x05#3r\xdf[xn~\xdbB\xddn\xb4j\xe4\xa2\x9f\xff\xed\xc6\x9c\x87\x80ABn\x8a@\ +\x0c\x99\xae\xa6\xffo8R\x10\x18\xaeh\xa05\xc7|j\xf6\xcd\xfa\xe5g\xafhT\xe6\ +\xebA\x9c\x01\x11k\xb4\xd4\xb3l\x96\xe0w\xd9:0!\x86y\xd1ki\xd0\x101\x9c\x9f\xb0\x85\x9c\xb1\xdf\xc8h \xf0/\xdf\ +\xb7\xc6\xe9\xae\x94iB\x10!N!\xc6(\x05\xaan\x8b\x1f>\xc8\x0et\xf2\xcb#"\x98\ +\xca\xd8z2\x08!\x01T\xa4\x8f\xcf.\x80`\xfd62\xb8\x8f\xd8\\j\x9f\x81\x8a\xd5\ +\x8a\xd7\xfd\xcfz\xcfK.LT\xd2\x9d\xd3\xae\xb7\xd7\x08\x19\x14I\xe0=#\xc2\xb7\ +\x19t5\x98\x88\x84\xd9\x9b2#S\x13<`\xc9\x9a\x16\xac\x06\xa6FD!;\xa3\xe0\xf5>\ +\x8d\rM>\xb2\xc9\xf4\xcb\xa6\xe9q\xb5q\xa8zR-\x99 \xcf\x99\xecY\x9a\xbd\xb7t\ +\x84q\xd0\xbc\xff\xe5\x8dRi1\x8a\xaa\xf7\xdej\xad\xb3\x8e\x14\x074\xc9\xa1\ +\x01j\xfc\x9a\xe8\x85\x89\xf9\xe3\ +\xe5\xcf\xe6\xdb\x83\x9a\xd3t\xde\xca\xb5\xd9\x0b\xcf\xfe\xcc\xe7U\xec9J\xf9\ +\x9e\xe6i\x7f\xdd\xc3HE\x84^\x88\xeaA\xcf\xed\xaeaU\xf7\xc5\xdf\xd9\x92\x89\ +\x03\x17\xefM\xcbv.zO\x0e$\xb3!\x08\x87\xec\xe43U\xd7m\x117\r\xa7`\xc7\xf6\ +\xa9\xd0S\xffFs\xb3\x06h\xe9\xbe\xbf\xadM3\xde0\xbc9\xb7;\xed\x1ej\xeb\x88 \ +\x93\xbb\xbe\xd5\x0e\xdf\xe7\x1aZ\xcaI\x1f\x1b\x1b\xed\xe9jix\x1a#\xe1wy\xbc\ +.\xf1qx\x19\xa3\xcbF\xd6\xd0\xd2\xf2\xba\r\x17\xfar\xd7\x90\xfe\xfe\xbe\xa1\ +\xe4\x19\xd6\x13`|\xf6\xbc6\x11(U\xa3?\xdb\xfc\x14\xa9\xe8\xb6\xc6\x84\xf8+\ +\xd6\xdes}u\xdf\x04\xf5\xed\xc9\xac\xd8\xb3\xaeCkn\xdfGP\xeb\xfa\xb3t@@p\xdf\ +G\xfajR\xe6\xc0d\xd5-\xff`\xc6I\t\x94\x91B\xf0\x8a\x81\xc0\x9f\xa7\x96K\x06#\ +fT\xd9\xb3\x1c!\xef\xc7\xb1OB\x9d\x7f6C\x82\xa9\xaaD\n\x9f|`*do$\xb8JR\x8bsP\ +\x82\xfe\x1b3\xa2\' \xd2\x8e\xfa8\x05j\\\xefy\xdew\xf7\\\xbfN~\nW\xcc\x11hyZ\ +\x0e\xec>\x9b\xd0\x15t[\x8c\x05\xe1}s\xfb;\x06\x13\xa2\\\xef\xb1\x1f\x1d>k\ +\xebx\xbb|\xbf\xb8\xc1\x7fO\xf9\xf2\xd7\xd2\xf0)\xe9b9\xd6\x13Qj\xf3a\xbaF\ +\xf0\xf6\xe7q\x85\xa1\x8f\xd3\x99\x1c\xcbev*B\xc0\xc5<3\xa5$kX\xcf\xf5\xf4\ +\xd9\xd3\xdd\xe2\xe6\x83a\xcf\xe3\x1a\xdd\xa2\x80\xd3&\xb3x\x13\xda\xf9xd*\ +\xbb$a.\xe9\xf3\xb5|UU\x84\xac\xe5\xe4N\xee\xf3\x8d\xa2\x05vW\x17\xf3y\x9d\ +\xee\xdb*\xc3{Q(Qx\\\xb6\xdf\xd5uK \xeb(\xe6I\xd7\xd9\xc2\xb2\xa8\xa3\'\xcf\ +\x89\x1a\xc2\x7f\x84(D\x1e\xf7\xb8\x98a\x15\xa0\x9f^x["\xaaL\x89\xe3\xf1\x11\ +\xaf7Zq\xad\xd8\xf5\xbc\xb9\xc0\xd9&\x88\xc3\xb1\x94\xddp\ts\x08=k\x18\xdd$9\ +o\x80\x042\xc8\x08\xf3.\xdf\x1c\x96 \xe3.\x85\xc2A\xdc\xf0\x8e\xaa \xd9\xa6\ +\xd1=\x0e$\x07F\xc3!A,\xeb\xed\xb5\xe8="\xab\x16\rR\xa5\xdb|\x1a\x9a*q\xb4\ +\xb1\x7f\xda\xdd\xec\xb8\x1dXv\x1d\x0b:x\xa3-\xfa\xd1\xaf\xb4\xe1-\x0eqe\xfb\ +m\xdc\x9f\x1c_\xc7\xfb\xd3\xf8\x03\xc1\x8e>4LAXw\x83\xe5S\x15h\xe8\x80\x9b\ +\xaf\xe4\xd62\x80=\xf9\xe1(%\x9e\xe3{\x10\xf3;\xf0O\xb3\xda+\xf1\x8f\xeci\ +\x02\xd7\x0b\x1b\xa9.\x817\x94\x82\xfe\xa6\xc7\x1fAF*\xb2\xb6d~\x17\xb7\x8b/\ +\xeb\xb7s\x93\x0e\'G\xda\x81\x8c\xe0\xc6\x1a\x83A\xe2\xc7\xd3\xb0\t\xecu\xb8\ +p\xd0l\xc9d\x81\x18!/"\x0fv-zT\xf4X\x90\x12\x886}\xe2\t\x84?>\xa7\x0e\nB\xdd\ +w\n\xb6\xc5\xd3\xecW17Z"\xee(\xaa:\xf8C&\xa4\x10\x9d\xeb\xf5f\xa3u\x05M\xb8D\ +\xcezNr\xa80\xe3\xa0\x0f\x13\x04+&\xab\x9eU\xcc\xf2\x87N]\xbc:u\x05\xb1j\xf0\ +oh\x1b\x191\x82\x96\x88\xa9\x08\xed\x8c\x10\xd1\x88\xc1T\x1b\xce\xc7\xaf\xb9\ +\x9b\x9ag\xd8\xfe#\xd3lA\xf8u\xddc\x86\x91t\x91\x1d\xe8\x17\xcaF\xfb\x8e\xd5\ +\xec\xb7\x7f\x0b\xc9\x10\xdc\x0c\xe3Oe\x0f\t\x08\x87\xedj\x1f\xd2\xb2\xc1\ +\xdb\xa7\xe5\x1c\x1an\x1c\x1dK\x82G\xf8\xb7\xb32!\x7f\xb6\xd9\x86g\r\x14\t\x04\r\xe9\ +\x11A\xb7\x16\xc4^V\xe1\xf6<{\x02\x93>#.2k\x11\x94A\xc4Z\xa5\xfaz\x98_\xd6\ +\x80\x0c\x13\xf3\xf4\x0f\x04\xb8\x96\xc1r\xfc\x87\xda\xfcV\xf4\x94\xf2\xe0\ +\xcaV\n-\xfe\x14\xb4\xde47\xcb\x87\xa1\x996\xd5\x99\xd8\xd4\x1c\xa2w;\x92\ +\x0b\xeb\x97;\x9f6\xf9\xee\xf6\x01JYW\x19{\x03J\x7f\xddk\xa4\x04\xd2C\x1eCA\ +\x81\'I\xe1\xd92P\xe1\x13K\xf5b\x1aq\xb1&H_\xfd-\xcb\xc1^\xef\x86\xde\x9eJ&\ +\x10\x13\x07%}\x1d\xed\x05\x81\x9c\x8e\xaeg\x84h\x0c\xe7\xe3r\x9fF\xf8\x1e\ +\xaaZ\x9a\xba\xd2\x85\x86A\tl \xc4\xd7\x10\x10\x9a\\&\x9d\xa3uI_\x10\xd9\x8a\ +]\x90\n\x06\xe2\x7fW\\z\xee\xaad!\xdf.\x9a\x03\x8a\xd5\x9e\x8a\xc03uj\x16\ +\xa6\x9c\\\xcbv\x8d\xbe\xd2t\xa8Z\x89~\xa0$\x84\x91I\x82\xf37m %\x1f\xab\xaf\ +H\xc6\x95\x06\xfd\xad\xe8\x15`<\x8ej\xd1\x10B\xe5X\x8cU\n\xc2azz\xd2\xc6\xa6\ +K\xe3\xb1\x97\xa9\xae\xa0P\xa2bl\x82T3\x18%!\x88\x06M\xe3\x1dG\\\x97\xebQ\tG\ +:8;\xd2<\x0c\t\x99\x8c\x18\xb3/l\x8f\x1f\x81\xbb\xb9y\xecy\xdf\xde\x87K\t\ +\x8c\x82\xb7BL\xd8\xf0\xf7\xaan\x801|\x03-\x00V\x80\xfd4!\x10\xb3\xacA\x022J\ +\xb8\x1f\xa3ALC\xb0\x8b\xc4M\xc5q\xf0\xd4\x0b\xa7\xca\xe67\x9d\xfa\xc5\x10\ +\xa2\x8e\xea\xb4\xe3\x96\x87|\xbe\xaf\xab\x99<\xd6\x8b\xde;\x82\x10J0\xf9\ +\x8d\xa3\x00\xd4\x8b\xa3\x05\x8b\xe0gl\nA\x92b\x93\xad\xb1ZNw\xc4\'\xf9\x16\ +\xb5\xc8\x952.q\xf5\xa7%X\x8bJ\x936,\xec\xbf\xc6\xcc\xbe\x96\xdd\xbbm\xbb\xe6\x9e\x98\xa0\xba\x86o\x80\xbf\x13\xc3\ +\x1d\xd9\xd3|\xed\xbb{\xb7\xaer\xb5\xc2\xf7\x9a"*"\xc2Q\x89\x86\xde\xaf\xc8 \ +$\xc8}\xc9O\x82\x05>O\x81\x8d4\xc2L\xbe\xde\x90\x0e\xd7\x0b9a|\xff3\x0e\xe1\ +\x880\xc6\x00S\xe9Y\xd6\xee\xd4)\x84!\x83xZ\xdcD\xbe\xdcc\x0c-u\x1c(N\xe5c\ +\x98b\xa6]\xac\x0e\x12\x19\xfa\xda\xde\xc6V|\xe93\x9a\x9b\r\x96FFqd~\xa6D[.s\ +\r\'\x11\x95\xd0\xddF\xc5\xfc\xf0\xf3\xc9\x87\x1e\x13\x9b\xff\xce\xf1A\xf0\ +\xba!\x15+p\xf7\x0bG\x89\x02Q+\xd99\xe3\xab\xcd\xe7\x87\x03\x8b\x9e\xcb3\x9f\ +D\x84\x9fn\x7f\xe6:Pg"g\x0fp\x83\tEF\xc8\x9f.)\x03\xc6\xbcSw;^\xbc\x8c^\xd6\ +\xd8\x92\x1e\xaf\x97\x8b\xb2\x85\xeezz\xd1[\xd6\xd7\xb0N\x1e{J\x97\xdfXN\xbc\ +\\N\xd5mv:\xfbI\'\xed\x13]\ni\x1e\xe0\xc6\xb8{B\x909\r\xbco\xecQP8\xb6\x88^m\ +\x1e\xb5\x1d4O\xda;\xc9?\x9e\x19\xe6\x08>U\xf7\xa1\x83\x9cN\xe7:6\x03\xb7\ +\xa7\xfa\xc9\x16\x00\x1c%\x1d\x02\xd5B\x07\xd2g%\x10\x14\xb2y1\x06\x1b\xdc\ +\x89(\x85\x89:"\xc0\xb4L\xb3=u\x8d\xd7-b\xbe\x9b\x1f\x84\xfa\x8b^n\x87\x0e\ +\xd7\x12\x1d[\xcf\x9e\x8f$\xcf\xee\\A\xcd^,\xa9\x82\x97\xe3o\x0e\\Q\xa4\xc6\ +\x843\x91"\xac\x84\xbf&\xe9\x14^%=\x15?\x08-\xdfp\x07\x15r\xd2 \xedN\xd5\xad\ +\xd7tu\x91\xa5\xbf\x0b\x86\x17\xa7T\xc7\xbb=\xd3\xf9\x1eg\xfb\xe5f#0\x0e\xfe\ +\x07\xf0\xdc\xb3\xd9Kb[\xc8\x15\xdc\xbe\xaa\xc2\xd1\xaa\r`9hN\\8\x17\x1f\xc9\ +O$\x9e\x87#\xdd\x97\xc6\x97q\xd3aE\x99\xa0\xe3\xd3\xa4\'\xec\xaa\x1e\x7fy\ +\xc6\xda\x9d)\xd7\xcb\x93\xb6\xb2\xdc\xee\xe6\xdb"9\xddL\xb7a\xd2\x87*\x97c\ +\xca\x97\xaf\x93\xf2\xf6\x15 #\x80\xf7\x1a\x84\xd4\x14\xb3y;\xa0\xb7\x82k\ +\xee\x07\xe3\x8a\x81\x07\x07-\x1bk\x7f\xab\xaa\xb0\x9b\xd6k\x7f\x83\x1e\xcf\ +\x84\xd2V9\x92\x8f[\xcd\x9b\\&\xed\xbb\xbb}\xf9\x1c\xda\x10\xfa\xeeJ\x9e\x1c\ +\x1fm\xff\x96\xce\xce\xb3\x90\xdcer\x13\x01h|\xc5A\xb6\xc0\xf6_K\xdc\x01]\t\ +\xc72\xf7U\xd0\x10s\xcb\xda\xdd\x03\xe5\xb1\xce\x8b\xa3\x03\x82\x96\t\x95\ +\xb1\xb3\xa6\xc4\t%\xba\xde\x7f\xb7;\xf6v \xa9\x08\xceO:\xa1 \xcc\x94\x99\ +\xf0\x9e"\x8a{\t\xc5\x83E!\x9fEM\x08v\xab\xdb\x9f\xa2\xc3\x89I\xba\xf0\x91(\ +\x83\xfeJ\x1eX\xd2\xe1\x14&~\xd9kP\xef!\x0b\x16\x1f\xf5p\x8c\t]\xf3\xf56^:\ +\xe4\xaf9\xd1\x13\xa7\xd5\xfbBN=\x10"\xbd\xf0\xb4gtV\x92\xac\xa5\x9b\xdc\xf3\ +\xef1\x8b\xdf\xe5j\xe3;65\x08a\xff%\xf5E\xbd3\xc3&\x1a1\xc7%\x01M\xe1\xb1\ +\xe1k\xe5!\xdb\xed\xc3\xd1\xd9e`\xcc\xa6J+&\x048\xadA\xe6\xb1\xe3^\xef\x98M\ +\xb9$\xd6\xe3D\xd2^\xd3\xe8^`\xd2!\n\x87\x89\xaf\xc6`y\x13h^\xe1\x06\x19\xf7\ +i\xac|\xdc\x12+*\xa8\x0cB)\xf8\xe2*\x0c\x1e\xc2\x01-\xe3}\xf7BN\n\x1e\xe4\ +\xc8\x92\x1d`e\xca\xfej\x8a,\x8c"e\x9bV\xe96\xfc\nj\x8d\x7f6YG\xc0,Vp\xb84\ +\x1ad\xec\xfc\x05)\x8a\x0c\xb3\xc8\x860y\x1ad\x1c\x14\x0c\xc2\x93A\xd1#f\xa7\ +\xd1y\x8f\x9c\x80\x93\xf0\x83\xc9\xc6H\x02ci\x04\x936U\x1c)$\x18i\x04\'\x91\ +\r1\xb2\x97\xc8\xaf\x12\x19\t\x9428\x84Q\xfd\xb7\xc8\xb6@\x0b\xf6\x1fw\xa7\ +\xeb_"\xe4\x01\xb2\x9a\x8eh\x82*\xed!\x10\xb1(_\xec\xb8LwsoJoc\xaa\xbe\xc9\ +\xa5\xca\xc5\x04Y=4j\xe0\x071(\x84\x90\xaf\xff7\x0e\xa8\xc8\xa4\x84\xdbN\xe9\ +\x9a\x8fe~\xb0YM/\x99\x89y\x89\x1a\x9f\x98y^\n\xf3\'\xa8\xf2PcR\x89\x9d\x98:\ +\xe8\xb54q\xc68\xf8\x97\xb7\xd1\xe029\x98J\xaa\xd1-zD\xc9\x04\x05?\xbedF\x07\ +\x9f\x11\xceM\xacd\x84\xe9-"1\xac\xa7\xed|\xbe\xd5\x9d\x10\xc36D\x9c?\xe0\ +\xe9#lw\x88\x91VK\xbe.\xb5\xaf7\x8diz\xee`|\xb1\xb7\xdc?\x12\xc3Md\xc8__{P\ +\xac\xee\xd9\xbe\xf0\x88\xc0=S\xaaHd\x14\xc9\xa6{\xa1\xf4\x19\xcc|\x0fJ\xd2a\ +4\xc0~EEP\xe3b"\x1b\x83`\x94g\x16\n6r\x96\xfdEo3\t\x06\x85J\r\x16\x0eB\x17\t\ +uf\x18X\xe2\xce\x03\xe2\xb9\x90\x8e\xfe\x0e\xaa\xae\xbb\x1d\xab9g6\x1c:\x80\ +\x1b\x85e\x87\xcd"\x9a1{Q\x06uQ\x89\x83\x90\x9a\xa9\tdO\x8a\xea\x0bw<\x8a\ +\xbe.*\x1a+\x97\x11\xae\xa2o\x89|\xce\xb3\xc2\xfa\x9e\x93:\xfd\x17\xbc\xc8\ +\xb2q\xcc\xac\xfe\xdd\xebOl\x8f\xff\xc3uM\x1c\xd3I\xdb\xec\xc5\xfd\xab\x8e\ +\xe7\x99\x80\xa7\xec \xe6"\xb4U\xf1\xab\xce\x9d\xca2\xab\xb6i\x07\xcf\x8b\ +\x98b5\xb7\xb3\xd6Z\xe8x\xac\x80\xa0""\x08\x14Y=\xdb\xc6*\xce\xe4\xc0O\x18\ +\xb4L,<=\xda\xcd\xa9\xfaA<*\x08\x93D\x8a\x13M\xcfd\tB-\xc7\xf5\xb3\xebJ\xe5\xc7P\x13\xfc\xd6\xbfVi\x0eL\x8b\ +\x01a\xc6RIj\xcf\xcd&\xe5\x04\xd3\xb2)3\xa1\x0e\xf8Z\xda\x9c\'g\xdc\xc5*eN<\ +\x95\xf42<\xe4)\xe6\xda\x8b7\x89\x89\xb8b\x85\xb97Jl\x99\xe3\xedz\xd5\xe6\ +\xf8\x02||\xbf\x89\xc9HI?\x06\x12\xc4J\x90\x98\xd63\x1d\\\xdd\x07\x07#\xc8N\ +\xbfy\xf3&\xcc\x98\x87\x1c\xcbg\x14\x8d\xc1\x8a\xa1\x96\xda*\xad\xe8\xe8\xc6\ +\x87@\x1c\x01\xa4\x9d\x02\x0b\xecX\xa7@\x0f=\xb4\x14O[t\x07\x19\x99\x99\x99\ +\x91@\x87v/\x96\x97\x97\xfd\x04\r\x9f?&C\nU\xca\x80Ez6s\xa5h\xea\x97\x99B]/\ +\xe9\xf0"\xfb\xfa\xbe\xfadB\xccZi\xbeE\x81\x19\xbfIL\x90\x85\x87\x85\xd1\xd2\ +\xd1\x8d\xbf\xc3\n/\xd0\xd9s\xc1\xe0%\x8d]x3{9{v\xab9[jjjjP\x93Z\n\xbd\xf1y\ +\x9f\x88\x1a\xaa*E\x83w\xe1\xd3\x85o\x12\xc0h\x11\x03f\x0c\x95\xa8\x9f\x86\ +\xba\xb8\xbb\xbb\xc7\xc6\xc7\xbf\xcf//\x8f\xca?l\xa7\x88\x1e\xc4\x8b\x1c\x98\ +\x9aJ(\xb6\xceS\x1a9\xbe\x192a\xd3Nqm\xd3cO\x97+RI\x94\xa2I\x97\x03>\x91\xfe\ +\xf8l\xdf\x9f\x98\x98\xe8\xc5O\x11?\xdc\xbf\xcdJ-x\xbf\x97\xec\xd0\xe2\xeb\ +\xe7\xe7ge5rv\x9byKq\x87hH)"FQZ^>\n\xcd\xcfeI\x95UW\xe7\x98=d\xfe\x00;:\xca\ +\xc8\xceF\xae\xab\xfcX\x9bou\x1e\xb0\xdb\xdb\x0b\x92\x9f\xdf\xb9h\xdd<\xc3F\ +\x02\x07\xf4\xf4\xd4\xd4L\x1e\xdf8\xac6W\xd5\xd4(.\xde\x04\x07\x07\xeb\xb1\ +\x1c\xb8\xb4Q\'J\xf9\xfa>\x00Q\x8dB\xd1\x91\xc0\x03\xff9\xf1\xd8\xb5\xac>\ +\x05\xf4l\x9e\xa5\x9a{\x9b\x99\r\xec^\xb0\x0e\xa1\xa0\xa0P\'FT\x1fC\xcc\xea\ +\xfd\xb6\xc3S\xa2\xe9\xff\x9bmZ;i\xac\xdc\xb9d\xa0\xa6k\xf8\x99\xdf\x8b\x9e\ +\xdf\xf7\x85<$$$].lr\xaa\xb8\xb8XM]\x9e6\xb9\x9e\xe9U\xc8WP\xed*<\x86\xadc\ +\x1d\x0b\xb4\xed\xd4\xda\xd3#\x84\x83\x9av\x90\x021K\xda\xcf\x05myt\xa8\x96\ +\xe1\x7f\xdf\xcf\xef\xc4\xf7ae\x94\xceO\x0e-\xca\xce\xce\xe6\'\xf8\xf4\xfd\ +\xa0\xd6a\x9d\x8fb\xf6QC\xd8\xa8h\xea.\xd99^\xe8\x99\xc7\x9a\xeb\xdfR\xf5L\ +\xbe]\x06\xddC\xfd\xb7\xfc\xa0^\x98[R\x1bq\xf4\xe0\xcf\x81\x0f:\xf1\x1f~\xed\ +]ycHK\xdd\xa4\x07^\xbe\x9a\xcd\x15\xf8\xe4R_S\xf3)]N\xe5?\x18\x0c6L\xe1;F\ +\xde\xb7{\x813\x8f@\x95(u}{\x1bMR\xd0\xfb;\xdf\xd8nO\x83\xda\x9e\x06\xe7\x16\ +H\x01\x15\xce\x14\'s\xee\xe4\xf0\xae\xb3\xfe\xe2g\xf9\xdd\x0bI\t\t)K\x17\x94\ +\xa3v\xa0\x87v.xpi)\xe2\xc3E\xf2\xfc\x04k\x8e\xf9\x8af8c]\x7f\x84\xd4Cu\xe2h\ +\xb3b\xea\x84\xa9~\x96\x97W\x1f\xb7WONL$\x19q2 \x07\x01mu\xb5*LE5\xa6\x16\ +\xfcc\x90\x80\x97$u\xdc"[\x81\xce\xfd\xd4\x0c(4\xad\xb5E\x9aL\x91\x15d\x00\ +\xe66\xc3(\xf6\x9d\xc6z\xb6X\xbeL-\xea:s\xf1x\xdc\xa2\x01\xe6\xa6\x93T\x98\ +\x93\x93S]\xcd"#\xce\xc8\xd2\xa6\x17\xb7\xe3D\x90\n1si#\x07\xb5\xea\xb1|TS\ +\x9f\xb7\xe3\x92\xfd\r\xcc\x88\x18\xf5;\xe9\xa4\xe1\xddw\xefy)\xe2;\xf4XH\ +\x998\xe5W[\x1c)\xcd\xa5\x86j\xb5\x06q\xb5\xbeV\xee-\x1f\xae\xe8\xf7\x04\x98\ +\xa8\xad\xd6\x1b.\x87\x08\x82\xc1\xa9\xd1?\xae\xb9\xaa\xc7\x13|\xeeT\xa7%\ +\x07\xc8UL+\x196i\xdb\xccp\xf7\x13\xc2\xe2M\xe6\xd9\xf5.\\\x1bL\xf8\xfc\xe7\ +\x9d\xcc\x97\x97\x96\xb0\xb5\xa7E\xcb\xf3ES\xbc\xc5K\xf2\'\x98\x84\xf2l\xa4\ +\xad }Y)\x8aJ\xe3\xd3G\xa9=\xa4\xe5\xf7Z\x06\xa1\xc9>\x04\xc8\r\x95Q\xf3\xc9\ +b[\x02;2\xbc\x84\x06\xe6\xa3N\xde\x07\xb2\xb6%\xe5o\xbb\xf99Z%\xccF+V\x84\ +\xc8\xe2F\xb3\x89\xf4\x90\x13\x05\x83Z\xa9\xbb_4\x0f\xdf\xabs\x92\xa6j\x9a\ +\x0c\xee"\xec\xbb\xf2\xcf_6\x1e\x0e\x99\x7f\xd7\x92\xc7U\xe7OW\xba\xb07U\x16\ +\xad\x8d"\x0c\x87\xba\xd5\t#:#\x0b\x94\x93&\xc1\xa1\xe8\xc2\x0ez7\x95\xd8\ +\xea\xd1\xaa\xa7\xa8\x0b\xc2\x9f\xdd!\x1a:}\xc5\x15\xaa1\xd0\xf4w\xe0\x9b\ +\x9f\xc6\xed\x17.\xee\x83\xecJ\xbe\xe7\xc5\x13\xca\x89Q)\xaa\x95\x04o?{i\xec\ +_\xa1\x11\xcco\xd5\x1f(\x13\xf6\x8d\xd1\x11\xda\x98\x05\x88\xeb\xce\xe7\x9f~\ +\x9cHa\xc6&\xd0U\xfc\xf9\xce\xea\xfcTH\xc00OQ}C\xdc\xc2\xd2\xb2\x7f\xbb\x96\ +\x17\xe9\xf7_\xc2\xef\xd9&U)\xde\xf0\xfc\xe3\xd4\xaag\xb9#\xd82a\x93^G\xc4\ +\xa8\x08m\xf2r\x9d\xe9\xab\xb6\xa4\x1f\xa9\x83r\xc3\xfe\xcc\xd8&h\x07\xe8y}\ +\xe8\xcc?d\xba\x9e\xff\x1e\x1f/T\xcdr\x02\xef\xad3$J66\xbe\x00\x85\xca&\xd9\ +\x12\x1e\x18\x1c\x14\xd7N9.\x13\xa1\xc1{\xb7\x89\x1b\xa0\x11\x87T`*\x1c,\x0c\ +\x02\xa9\xa9\xc7\x0e\xefF\xe5\x9b5h_\xea\xc7\r\x9a,\xdbi(\xe3\xab\xab\xf3\ +\xc2\xbd\xc3\x801\x9em$2\xf02vq\xa9W\x18eN\x86\xb8\xb9\xbb\xff\x08W\xbd\xd4b\ +\xe2\x12\x14\xecv?^x~\x0e0\x90\xa1N\\\xaa3\r/:\x8d\xfd\x96Oo1\xc9\x1e\xcd\ +\x0fJ\x18\xb7\x006P}\\PP@\xf0\x81\xc8\x8a\xa6\xd69bxWQ\xe8\x89\xf3\xa5\xccz\ +\x05@\x00\x01\xb20ef\xf5XM~`#h\xa1"\x04\x9b)\x9a_g\x1b\xe5hM\'\xf8\x13\xa5\ +\xac2\xc2"\x0cj<\x17\xab\xf5#\xd2 f#\xb6H\xb8\xafPP\xe8\xbb\x87w\xf3\x12\xac\ +8Ic%p\xa7\x1dZT\xa5X\x89\xfd\xee\xa1\xa9\xde\xb80\xb7\x8cQQ6\xdb\xc5\x88\xf0\ +s\x942\x94\xdc\xc9\xc5\xe5\xe5t\x85\x12oT\x02\xb5\xba\x1fc\xd3c\xc8\xda\xd4\ +\x9a\xb6\xc6\xfd\xac\xfc\x14\x8a\xd4\x89\xa5\xcc*\xf4\xf8\xe5\x0bw7\xdf\xa9\ +\x95\x84H\xdb\x8aI\xd1C\xc3\xc2\xc3\xeb\n\xcb\xcc\xb4\xf7\xff\x16\x0e\xb9E|J\ +]\x8c\xd8ri\x1bY\xac\xa3`\x03\x07\x83<\xa9\xf3\xc6\x08\xc4\xf3B\x1c\x819\x8b\ +\x9b\x8e\x8d\x8b\xf3\xe1\xa7\xa0\x7f\xcb\x12/F\xedf\x12\xa7\x92\x9e\x1d\x0f\ +\xbb\xa3\xf8\xee\xad Y0\xed\'\x18\x1f\xe1\x864\xc9\xe4\x11K\x80\xdbP\xa4T\ +\xc7\xd7\xd5\xd5\x05@q\xb0pP\xdc\xbe\xc9\xcd\x07\xbd$\x12\x96\x9c\xc5\x1f\ +\x99\xddZ\xd6\xa3\xdf\xb9\x15\xda\x1a\x91\xae\xfcM\xdc\xb9|\x9b\xce\xe8\x81@\ +\x86$\xd4\xd5\xcbz2J\xec\xf7N2\x15J\x80!O\x82\x98\xf1\x90+\x94\xcc\xb6\xe9M\ +\xec^\x00\xc8 I\x8d\xdb\xb3I\x89\x89\xd2\xb0|b\x1a/ \x81DLJ*C\x9b\x9c\xa7T\n\ +\xa0\ta\xf42\xfc\x0f@ yy\xef.w4\xd5\x9bzz\x02]\\f\xcen\xc3\xfb\xb7\x81\xa9D\ +\xd98?g}k\x00\xd4\xb7\xbc<\x89\x8c\xe8;\xdf+\xcf\x91\xfc\xab\x8a\x08\x1enn\ +\xc95\xd3\x98D\xc6\xc8\xe5\xfb%\xa8K\xe2\x953\x13!\x06\x12x\xb5\xd9\xfe\xca\ +\x8b?\xab"\xa2\x94\xfe\xf7\xd6\x96\x91\xa2\xe2\xe4\xdc\x1c\xbew\xfaa\xbbBR||\ +\xfc\x1b\xa8\x84\x84\x04\xbe\xf8\xbb\xe5\x88\xba\xbd{\xb4\xa27W\xaa\xaa\xaa\ +\x00h\xc6\x98\xe5pLg\xea\x89n\xef\x94\xad\x0c\x0c 5\xe5\x95\x97744$\'\'/\xdb\ +q\xa5\xcbu\x9f\xff\xc2\xa0\x88\xa7\xa3\x88?p\xe1\xed\xd9\x14\xe2\xe4\x14\x0b\ +\x83.-i\xd1&\x93PP\xd0Z:\\\x82\xb1\xc3\xfb\xe7j\xb1\xc2\xdf\'C\xa4\x92\xcc\ +\x88%\xd8\xd3\xaf\x1f\x9e\x06\xe0&-\xf4\xde\x01W\xd8\x19\x93\x07\x00\xeaO\ +\x1eD\x0f\x9a\x04\xf4\xe4\xc6kl;\xf1P\xc4\xab\x8a\x97;\xeb\xfe4\xe0\x94\x81\ +\xd0\xe2E\xcagri\x83_\xf7Oq\x8e\xc3\xdc.q\x80\x9c\xd5\xd6\xe2`\x85\xb7]\x14\ +\xd0\x03}\xe9\xf5\x17V\x024\x0ff\x7f\x84D\xc1\x9c\xd0\x9a\x037uRh\xba\x14\ +\xcdH\x0cp\x8f\xd9\xd9\xd9\x08b\xf4P\x93:\xe2\x1b\xe2\xcb\xa3\xa5F\xeb7$\xfa\ +\x04U\x9f\xd8=\xdb\xf2\xac\xe2\x92\xa5h:\rj\x06)\nR\xdeE7\x96\x94\x0c\x9b\ +\xb8\xb8"\xb6\x96\x94XZYE\xb0\xefy\x14L\x1e\xc8\xd2\xe0E\x8a}+7b\x89\xab\x7f\ +\xfb\xf6-\xf4\x0f3Q\xc8\xe5\x1e\xbb\x17\x7f\xce\xf4\xb4\xb2\xd8Z\xb7\xff\x97\ +\x0f\xe9YY\x85\x7f\n\xd9X\xf0\xd1\x13\xbb\x84?\xa8\x84\xc5\x0b\xfe-\x9d<\x10\ +\x1d\xd0\xef\xf0\x00\xe6REyB0\x17\xa0\x02\x97\xb2Rc\xe9\xda*\xdd\x96\x14\xb2\ +.\xf2Ns\x91<%Vb\xce\x16\xc5\xc1(T&\xb2\xd7\xb3\xb1,\xa9\xb6\x0e\x0eq\x1cY\ +\x14R\x99\xceU\xbf\n\xf2 9y\x06\x97w\xbb\xf1\x8a\xf2\xf2\xd3\xe6\xaa\x8d\xf6\ +#\x8e\x1d\xec\x92\\\x98!\'\xa2\xfa\x8bD\x84\x84\xf4\t\x8d\xaa\x9fM\xd3\x8e \ +\xc4\xd1b\xd4\x9c\xf9\xef\xf3\xcd\xbf\xe6wu\xad3\xd1P\xaf\xc0=\xe4g\x81\xf2\ +\xfd\xdav\xfa\xf8\x83\xfa\x06\\\xac\xae$v\xed\xd3\xf5\xf0\x07\xee\xfb|\x7f\ +\x004V\xb7\xffCkrc>}a\xfa\xf8\xafL\xfb\x11\x08D\x9a\x05d\xf8\xb5n\x842~\x18\ +\x16\x87\x97C\x93\x0c9YmQTW\x0f\x08\xc6\x99\xe4\xc7A\x9d\xfa\xa6\x1a\x18\x18\ +\xc8\x9e>\xe7\x9e\xbd\xd0\xa2R\xf6=\x9f\x9e\x869\xd6G\x89\xbd\xad\xad\x8b\ +\x95\x9d}\xc7\x89g\xcd\xc1sp\x81#\xe4\x87_\xfd=c\xb476\xf8\xecu\xac\xd9\xfbu\ +\x03\xc4\xe28\x82\xf8a\xeb\xe9$\xc9Yw`F\xb2s\xea\x1a\x1dN\x9dxVVW\xfd\x05)\ +\xd7\x11\xd0\x88|\t2\xe57\xe9r\xfd\xd8)\xfem\xd2\xbca\x19\x90?\xac\xf2\x9acC\ +?x\xdf\x99\x13D\x0f\xde!{\xc4\xb0\x9d\xda\xc4D\x00\xb4\xdf\xd3\xb3y|s\t]\xf0\ +\x7f\xf8s\xff\xf4\xdc\xd6\xd6\x96\x93C\xf1\x8f\x8f\x81\xb1;CRJ\x02\xf0\xce\ +\xe7\x06H\x96e\xc3\xf2\x9f?\x1e\x01\x8e\xd9\xd5\xc7k\xd2\xed~\x8c\xd8\xa0\ +\x85J\xedd\x85\x12\xe6\xd7\x11D\x8ap3\xed\xb8\xe1\xdd\xc6\xd6\xa8\x08\xb1w\ +\xf1\xc3\xbb7>\xd6C\xb6\x13\x80\x96\xb2\x04\xd0\x90\xf6\x03G\xd2\x82\x11\xdc\ +\xe3\x0b\tV\x0c\x9b\xfc\xec\xe1Gy\xd7\xaf1u@\xb1\x14\x80\x97\x9c\x9c\x9a\x9d\ +@\xb4\x9a_9DRN]}\xb4Bi\xc2,\xd8gjD=K\x8b\xa9\xd9v\x91e\xe6]{\xb5d\x81rx\x7f\ +\x1e\xbd\x8c\xa3\xe3\'wAu\xf5u\x07O\xe0\x1d(!\x10@F\xa0\xfb\xdcR\x19\xe4\xf5\ +\xf1\xc5\xd9*\x04\x99\x96\xf3\xdb\xabUS/\xbd\xf8\xf1\x93\x1f\xe8\x0f\xae\xbc\ +\x87\x96.v\x87#\xb1\xe7\xc4\xc7r\xc6\xa7\xad\x00\x82\xad\xab\xabs\xe2\x91\ +\xdby\x8d\x89Y8k\xad\xbfxu\xdfY^\x0e\xec2\x8b\xc2\xd2\xd2\x12\x97\x8d46\xac\ +\x7f\x1b\xd8\xfb\xcc\x9f\x186j!\xcd\x06P-\x10\x00\x9e\xe2,\xa7\xceM\x1e\x8e\ +\xfc,=;D\x0e<\xc5\x01);\xfe\xbbP\xa5\x0b\xe0\x0b\xb0 g\xec\xe4B\xa9\x070\xbd\ +\xbe\n\x8cQ\x97\xd7\xb3\x8a\xaa\x8b\xd8\xa1"_\xe3\x92]kyX\ +\xca\xfd\xb1\xc6\xdaH9\x1b\'\xa7\xee\xa4\x15\x97w5\xd2\x7f\x18\xf3\xeaC\xbf7\ +\xb7\xee\x9e\xe1\x0bg\x86\x10\xe4\x8c7\x9a\xba\xdc\x19\x81\x0b\xbb\xb6\xbe\ +\x109\rt\xb1A/~\x85a\xf3L\xb1\x8f\xc1\xb7\x9fI\'\x87\xa2\x9e\xeawt\xee\xcdo\ +\x8cF\x83\'WBg\xc2n\x08\xcc#\x96\xa5\x7f\xfb\xc5M\xeaU\x8b\x83\xa2\x9d\x03 \ +\x07.\xa8\x13\x86\xabV\xacd\xaf\xfbKGR\xa28\x12H\xf7\x98\x02\xab\x97\xd6\x19\ +-\xc4KD\x7f_\xd5\xa44{\xc0>\x0b\x97H\x8f2\x0cs\xa3\xfc\xc6\x0e\xd5 W\xfd\xdd\ +_\x81F\x85\xb9kK\x06\xd8\xc5\xfbi\xfb\xb8(\x8f2\xedX-\xbeR\xe82^\x03\x8a\xf7\ +\xc8\xe7e\x15\x9f\xa6S\x03\xb6N\xae+\xe6U\xe7\x14w\x86QcOY\xff\n\xde\x8c\xef\ +\x92\x15\xa5F\xa1\x0e\x9d\xcd\xc6\x8cg\xad\xa3\x88\xf7\x99\xbf\xeb\xd7\x16\ +\x16\x08Q\x91,,,(\xfc\xce\xfb,s\xfd=,,\xf6\x0f\xa7\x0b\x0c\xef\x7fk\x9aiw\ +\x03\x02\xea\xd5\xabW\x96\x16\x16\\vK\xb5\xae\x07\x13\xa9\x06>\xd6\x01\x01\ +\xcf\x91t9\t\xe6\xde7G\xf3\xc1\xc2F/\xcfOd\\v?\xd5\xd6\xd7\xd7\xab\xaa\xaa\ +\xda\xab\xcf\x96\x1b,\x03\x02\x02\xec\xecN\xb6\xc3)5\xd4o\x96-s\x91\x83..\ +\x9c\xb5Stuu\xb9\x1d7\x1e\xd7\\\'\xb3\x05|\xb9\xc8\xb1&\'\'===\x03\xe1\xb6\ +\x86\xbeGe%~\x82\x9b\x86\x8f\x83\x86\'\x1b]\x1d55\x8e\xc0\xaa\x80f\x00\x16\ +\xf6\x02\xber\xd3\x7f\xb9\xa9\t|\x02~8m\xa8MAA\x91b\xdeVP`z\xb5?n\xbbX\x1d;h\ +2G\x05H$\xe0\xafe\xbb\x94\xa8\x82\x824\x80\x83\xca\xcb\x03\x1eV7\xf7%[HL#\ +\xc5~\x9d\xdd\x06>\x1d\x1b\xbe\xdcO\x06\x9e\xba\xf1\xa9\x96\xcd=>\xfa\xf1\ +\x90\x17\xc3\x95\x14t\xd4\xd5s\xbd\xf7I\xf8z\xa9\xa4\x93\xaa\x8f\xbfx\x9e\ +\xd2\x1c\xe0\x19$\xaewx\xe6~\xf1t03\xdb\xeb\rF\xbc\xf7\x0b\xb8=]\x17\x15\x15\ +\x8d\xe7\xbf\x8c\xb8\xc3\xf9\xef\x92\x18\x04"\xb0\xf9\xf7\xbf\x00\xd1\x02\ +\x94\xf8F\xbb\xe7\x87\x05\xf1Ige\x93\x07\xefs\x17\xad8e\x0c\xaa\x04s\xe3Y\n\ +\xb7kL\xea\xd2\x8a\xad\xc3\x8c\xf9\xff\x1e\x164\xe2\xfc2L,a\xa2&\r\x03,d\xb3\ +\xdd\xf2\xb7\x08\xc0\x84\x91\xa7\xbe\xee\xa7\xba\xd5.\x99\x05D\xe0\x1f\xf8j\ +\x1b\x06S\xd9w\x18\xcc\xdaE\x1e\x90:{\x87\xe4\xf1\xc3\xb3\xb0k\xe0sH \x11\ +\xae\xa4\xa4$$\x9a\x9b\x18s\xc6\x1c\xbcG\xc1& \x00\xf7\xe8\x00~K\x84\x93::X\ +\xe3\x9b\xb7\x83/\xce\x80\x8f\x1eQj\xad\xc3\x97]\\?\x03sc%.LshY\xf5c\xc3NY\ +\x8b\xf0\xf5\xf19,)\xb6\x06\x92\xb0\x13,\x1f\x18\xb6~2*\x1b\xfb\x06=TJ\xc1\ +\xf9x\xec\x15Blg\xdf\xc5\xc50%\xf7Cg\xd2\x15V\xec1PL?\xbf\xac\xb5O\x87\x04\ +\x9e-d\xe4\xe4kM\xb6D\xeb\xd4_\x17\xc7\x80\xe0\xbf\x93\xe3.Vj\x8bv#\xc3\xdc\ +\xda+*\xa2S\xe4p\x12\xc1\x1f\xa4\xd9_\xa6M8\x19p\xc4\x95\xc9\xb1$\x01\xebT2\ +\x0b\x80\xce1s\xd7\x11\x1c\xfe\xe1eH\x8a\xc6\xe5\xf1\xce\xb9\xdd&H\x86\xa6\ +\xec\xc4\xa3\xa3\xbc\xfc\x9fu\xe4N\x1d\xfd\xcc\xc5e\xd1\xb2\n\xe3$\xf7f\x9d2\ +\xf6\xbc\x1c+L\x03\xb2\xeb\xd0\x92\xb9)\x0b**\x08|\xd4y\xfb{\x13\x88\xd5\x14\ +!\xbe\x7f0\xe8\xa3g;\xba^\xb2\xd5\x1e|\x08H\xab\x9fA\x8b\xdd\xf2\xce\xed\xc3\ +\xf0\xd0\x90\x14"(h\xf0\xad\x87\x9d]\x8c\xa7d\xcff\xee(\xf4\xf0\x07\x00\xcej\ +J\x19\xef\xa1W\xf7\xd3\xd3\xd3ZL\x12\x1b\xa2klQVT\xa3\xf5\xd0\xb5fs\x1dbL\ +\x14\x08>\x12\xc8\xd5\x85\x14\x03Gy\xd1\xbd\x9d.\x8c\x9f\xaco\xee\x0c\x12\ +\x1eq Ag:>\xd1\x84\x14\xde\xcf\xc6\xce.\xa2 \xad\x96\xad\xf6q\xd0\x1f\xec\ +\xad\xb1\xff\xdf\x1a\xda\x12\x93\xdc`[~z\xf0/\xb9\xae\xfd\xe9-u\xf2\x9eME\ +\xac\xb2\xbd\xab\x95\xcd\xcd\xc9\x07\x9c.0(`6\x91\x97\xe0\x9e0S\xc0\x9c\xd2\ +\xf7\xa4\x0e\xd0\x98\x9eY\x00:\xf5l\xd6\xd0G\xad\xc2\x8b\x1d\xaa\xca\xcb\xf3\ +\xe9\xa3\xf2\x01.P\xd1\xf9\x9d\xf5ps\x99\xc5\xc0\x0b\xfaO$\x0f\xc0 \xf4\x92\ +\x9e\xc0\xac\xc9\x03\x88!\x17a\xf4\xbd_7\xc0/\xb6\x19\xcd\xb5\xb5\xbd2\x9a\ +\x9a\xf4QI\n%$\xa6\x85\xfa\x88\xc1\xa0\'l\x10\xc0Kk\x8f\x9c\xf2\x80"\x05h\ +\xa1\x93\x10\xf0\x12\xffs\x0e\x80\x15\x8e\x88[F\xf8\x9d\xc0\xbb\x94&Yz\xa6BL\ +S]\xdd\xd7\xd7\x97@|{\x03\xb2\xffru\xcfO\xf9\x15\xa9\xda\x9bs\xe9\xb9l\xff\ +\xea\xb7\xa17?\x85N;}\xa0\xb94A\xa4\x18\xca\xabW\xd6X\xb4\xd2I\xb30\x1aw\xd2\ +\xf8\xe1\xb7X\xc3\xbf~\x89\x04\x06\xf6T\x1f\x0f\x10\x9e\x82G\xaf\xf6\x04;\ +\xea\xb4bN\t\x7f~\x8b\x18\xdb\x13\x90\xabn1\xa8I}\t6\x03\xf3\xee\xcep\xf4\ +\x98\xf5\x1e\\\xe1\xcaB\xf6h=-/\xa1\x1f\x96G\x90s|\x852_\x16\xf8\x18\x0e\x80\ +\x94\xdfB\xa7o<\x00\x1d\\Xm\x9dE\x1d\x7f\x04\xd8d=\x16\xc9\xf4\x04d\x8cb2z\ +\xe4j{\xbdX\xa1\x1c\xe3\x8d\xc0\x0e3\xce\xab\xc9\xcbF\xaf\x0b\xe9\xc5K\x9ay\ +\x97je\x9f&\xd4\xfd\xf3\xcb\x97c\xc7`\x9bzu\xc6:\x9d\x11\xf6\xdf\x04^\x81y\ +\x17\xdc\xcesX5\r\xbe\x9f\xcb\x0f\xd4M\xed\xb2\xb7\xf7[4\xbf\xae\x0cY|8\xef\ +\x16}\x7f\x10\xdb\xc4\xbd\x907C(T\xf5M\xe7r\xbb\xab\xc7\x84\xc1\xeb"\x9d\xa2\ +\xb2\x91\xd7\x81e\xa5\x1e\xe7\xdbg\xcfU\xdb\xef\xba\xf0\xefr\xe2\xa1\x1al\ +\xe1\xa4[?\xca\xfd\xcf\x85\xb7V\x86~\xcc\xc4\xa6r\xf6o\x14\xc0[b\xf2\x8f\x19\ +\x8a\x14:\xda=\xbe6\xed\x1a\xa6\x04w\xc5|D\xed\x0ctF~\x99\xf1\x12H\x16(\x15\ +\x0b\xe2\xfbb\x15\x9b\xff\x89q\x02\xeaqa\xee\xd4a\xc2\x90\xca\xb9\xf2\xc9\ +\xd6\n\xa7\x15\xc5\xe9\xc7\x9f\xef\xc7\'\x8a\xeex3&\xf6\x06\x84\x1dG\xf1~\ +\x10\xe3\x1d\x17\xcb\xa4\xb3\xec^\xf0"\x97\xc6\xf3\x7f\xc3P\x9b_\xd0\x9bi(C/\ +\x9fki\x97\x9c\xfa\x97Be0\x86\x1e\xa2\x967\x17:**Nu\x13\x06*2\xd2F\xcf\xff\ +\xf3\xd9\xe1\xff\xcf\x97o\xb1/ED|\x0e\xd0\xc0\xf4\x16\xca7a>\xaa\xd41\xd5\ +\xfd)\x11\xb2\x88S\xaf\xcc\xdey\xebgs\xa0\xa4\xf8\x9c\x1a\xd3\x10\x83\x9az24\ +\xcf\xde\x86\xbe\xde\xc1\xc2\x95D\x1eSw\x99k\x81\xeb\x8d\xe4\xda\x18\xa5\xad\ +\x1d@m\x12\xabQ\xb1\x80\x9e:\xcf\x07\x85j\xbc\x89g\xd3x\xfe\xad\xd2d\xb3\x9c\ +\xd2\x02\x81\xca\xd8V\x7f\x96\xfe%:\xf6M\x9d)\x82Z\xedM\x13\xff\xcbJ~\xca\ +\x81\xea\x05\xd9\xfc\x1d\x9f\xdeV\x14\xda\xb1\xf5\xcc\x8a\xf3\xc7\x80\xca({\ +\x93\x00si\x13\xd8\xefeE\xf1\xd6K\xea^\xb3t!i\xbe]\xa9\ +\xed?\xa5\xb2\xbc\xdf\xc9\x99/5<\n\xea\xc7R)\xc6\xbf\x1e\x9buJ>\x12\xb5vb\ +\xa8\x8b}\xfe\xa6&\xa6\xce\xa5#\xf6\xa9FZ\\\x8b\xb4h\xa7\xc2\xa6\x90\x9dH\ +\xbf:\x80\xf9\xbabZ\x92y\x1b\xd8\xda\xaeql\x8b\x12\xec\x8b:\xb9m\xde\x89\xe8\ +\xc2\x82&`\x142X>NV\x99|-/?j\x9f@dt\x19\xca\x8a\xe2\x8e\x86\x8e^\x8e\x00\x12\ +/s<\x85\x0e\xe1\xcd\xd3\x98}\xe6\xb8E2\xc4\x0c0e\xf1v\x84e($,\xbc\x95z*\xc6\ +\x1as^\xd0$\xb5=\xad\xc1\x96\xe8\xe8\xe8\xf2r\r9uy\x14\x8aq\xd6\x18\x9bD[\ +\x8eYB\xacp\xdbN\ruw@=l\xf5\x85tx\x9ey\xf0e\x03\x10\x05\x02\xb4#?\xc5\xa2\ +\xbb@\xb6\x02%\x8f\xd3V\xdc\x97S+{{\xe4 -\xa6?\xbf0>\x8d\xd4\xafMO\x7fE\x06\ +\xdc\xf4\xf0\xaes\xea\xa8y\xcb\xaat\xb1\x16\x13\xd7\xe7\xcf?\xc6-\x08\xc4\ +\x11\x82\x00P\x8c\x8f\x8b\xa3\x10\xf4\xd3R\xc6\xd7_\xbc=Yv\xdd\xea\r\xbe\xbf\ +\xbf\x07,\xce2\xdc#\xbc?Q\x8e\x96\x8e\x96\x16\xa0\x06\xb61\xf4\x89\xee\\\xdc\xbd\x8f\xe7\xc7\x03\xc2\xa57sMr1(+?\ +\xba\xba\xe7rX;ti\x1b\xdb\xe6\x0f\x10\x17WS\xf8H\x914y\xd0\xf3\x08\xfdD\xf9\ +\xc5cl\xf7b\x8e\xe2\x81\x81\xe0&\xa1\xbb\xbb[\x89\xfez\xe4}<(\xa8\xfa\x18\ +\xd8\xe0\x82\xbb\x00a4B\xd0,\x8cI\xf3\xfd\rf\xf1\xbe\xe6\xb2\x9d\xc7p\xdc[\ +\x98\x9b\xcf\xeeP,?`\x89\xcf\xe3\xd4\xaa\xea\xa1\xe0L\xd7j\xabC\xe5\x11UE\ +\x81&@@\tS)\xbd\x9f\x84@ \x079\xbe,\xc9\x10\xfa(\x11w\xce\x16\xb3{/\xcd\x8ez\ +q\\\xdb\xde\xb3[\xb2\xb0`\xc0\xcd\xb1\'JQ\x99p\x92\xbeF\t\xe1\xffVl\r\xd4!\ +\x192\xa5\xd8\xb2ZE\xff\xfb\xd7/p\xe0\xe8{\xc7\x95F4\\\xc0\xe3\xea\xb1,^_s\ +\x9a\xdb\x12\x0f\xf5\xf6\x82pW\x0f\xae\xac3\x86\\\xb1PB\x92\x93\x93\xff\xf9y\ +\xc0\xe4cc#\x81\xf9I\xcd\xf1b%L\xeb\x88\x05R\xfb\xc9\r(J&Z\x00\xbdmd\xf4\x93\ +\x9fTZ\xa5\xee\xd0\xe6Rk\xe3R\xb1Wt,\xd6(@]^-~X4\xb7\xf8\x1d+\xe6{r,\xc7\xcd\ +\xee\xae\x8c^\xc2D?A\xca2\xcf\x8dW(((\xa5\x88V\x19\\||>\x90\x9d\xc3\xed\x9bE\ +\xc3\x92jC\x03B\xe3\xc5j\xfdz&\xc0\xdeQ\xe0a\xa20\x0b\x04\x0b\x1d\xb7\x1bt\ +\xb4\xcav\xcb\xd3\xe0\xcd\x99\xda\x8a\xe9ji\x81@W\xb7\xe5w\xb16D6C\x1f\x96\ +\x9666&\x18S\xc6-\xdc\xf5\xcf`\xb0\xba\x01`\xaf\x00\xbf\xe4\xc0D]\xb0\xc8\ +\xc2p\xd1C\x99.CE\xde)(\xeb/\x02\xaa\xe7u\xff\xb9O\xd7\xa3\xeb\xe5\x08\xa0\ +\x0e\xca\x8f.\xbc\x0e;$\n\x94e9;\xf1\x0bRb/\x17\x1a\xcd\x14\xde+?A5\xcc:Bc\ +\xf7\xf9+\x8a\x9a\xf6T\x13c\xe7w\x0cU\x14\xfe\x9a\xed\xd7h\x90\xa9\xf94M\xff\ +\x0b\xb2\x87\t\xc1\xe6zK\x8c\x9a\x8d\x97\xd7\xbaeu\x16\xc6\x19\xfa\x1d\x03\ +\xa2\xea\xcd\x9f\xe3sY\x89\x9b#EC\x9f\xbcR\x06\xeaM\n\xbc\x9f\xd2\x16\xd2\ +\xb1\x81\xc9\x07mo\x1b\xc7\x0f\xbf\x89\x14\xeb4p\xb4\xb4<\xb8\xbb\xf324\xcc\ +\x15oj\xd7c\x91\x9f\xad_\xae\x1c\x85\x8a\x0c$&\xe2\xf6l\n\xb1\xb3\x03]\xd4f\ +\x107h\xb2\xbb\xbb\x1b)\x06\x06\x81\x83\x83\xf2\xe9\xb7\x9d\xb4R\xa0\x07\xb9\ +\x81\x1bg\xb7\x07.\xbc\xf2\xb3c\xcd\x8407`\xbd\xf8a\x80\xce\xd3;@?\xe9\xa3>\ +\xe8pe\xbe%!\xb9\xf0\xe2\x0f\x16\xa6J\x97\x03\x07\x95\x97\x03\x12\x88_\xe4\ +\xdf\xe9s2\xe0\x94\xa9q]\x8dx\xc8)\xde\xbe\xf5\xbf\x84\xd0\x01\x9agfqQ\xd2\ +\x1a\x01h\x0eDa\x1er\r\xfcP\x0b\xacka\xde\xd2\xf2r\xeb\x95n\xff\x87o}[\xbd\ +\xbd\xc2,\xa9\xb2E*\xff\xdb/^x\xe9\xa5\x98\x7f\xcc\x8e\xa1\xafY$\x8b\x14\x03\ +t(\xd3\xe8w!\xea?\xb7\xb7\x80\xc0\xb0_\xe5*\x99\x85T1\x89\x99\xc5\xc0\xda)P\ +\x91\xacHiG]\x98\x08U\xf1?$C\xc6&&\x86v/\xb4\x98\x8a\xff\x89\x96BQ\t\t\t7}\ +\xee\x16\t\xbe\xec\x89\x83\xab6\xbd\t\xc0\xf9\x93\xc7\x19\xb1\x12\xa3"\xd1{\ +\xb3\x12\x8fA]\xbe3\x8f\xcb\x0f\r\x0f\x1b\x06\xdcC76\x0clZ\x9cx\xf8\xb9\xb8\ +\x08\xd1C\xc1\xc1 h\n\xc4\x0c\xf8J\x9f%\xf5\xdf3\x8at\xf0gy2J\xca\x12\x144$p\ +{\xb5e\x83\xb6\xbazG{;\xdf\x97/0W\xd5\xb6m\'\x1e\x1cT7ww\x04\xc0(\x97\xb4\ +\x9f\xab\xf5\x19999%\xcc\xa8(F\x88Q\xcf\xfd\xba\xf7\x13$\x8d\xfd\x18%B\xb0-\ +\x8f\x04\xf2\xe8\x10\xf8g\xfe6\xec\xb8F\xc5\xc1 \xfd\xc5\xf1\xdcO\xe4X%*e\ +\xffN\xdaU\x00\xf1\xcbB\x14?\xcc\x91>&\x8a-\xb0\xe7\xc6gZ\x97\xb6y\xe6\xd9\ +\xa6G3\x7fr\xc2Db\x05\xe4\x17PO6\xf0\x1b\x9f\xb2\xee\xffy(u}{{U<\x94\xc4\x1b\ +U\x94\xee\xc1\x9eNNB\x82\x16*\x02\x8c.\xe0BIcg\x16\x0b\x1f!Y\xcd~\xb6\xa5\ +\x11\xb2\x97\xee..\x00\xc2\xcc\xf0\xe0c\x853\xc6e\xf8\xf1\x14\xb6d\x14\xbb{x\ +d\x88N\x99%\xbd\xcb\x07t\x7fr\xc8\x86\x82\xa2\xa2+\xdcf\x08\xd0\xeb\xde.x\ +\xa2\x8b7\x97\xb8\x11C\x97b\xd4_\xff\xceV\xd2\xb3\xa7c\xbe.\x02\x9450%\xfbce\ +\xfd\xb8\xad|\xa4\xc4\xc4R4x\xd3Vn\xc7\x0bUj\xf4h\xbdp\xc2(i\xf1\xf3\xed7\ +\xb8!}T\x0cp\xc0D\xfcJ0)I\x0b\xe8\xd9\xccz\xe9\xed\xed\x05\xe6\x9bZ\xc5\x90M\ +\xd6|\x82\x03\x1f=\xd1;\x0b\xf8i$R:\x9aB\tG2D\x89a\xbfx\xc2\x8c}m\xe7g~\x97\ +\xc1\xa7\xcf#{{4-\xec>>>30\xce\xc9q\xa8K\xe2\xdf|\xe7X\x9d\x90n\x17 9\x12\ +\xac\xa2\xca\xf82#U\x85\xf2\x99\\\x89E6@Y\xffx\xf1\xfb\x1d\xf5\xc9.r\x8e\xc3\ +=\xc8\xc2\xfab\xdf\x92\xc6\x8d\x13\xdcz\xf1\xe3\x03\xf5\xb9*\xd9s-\x9a\x9eV>\ +b\xceS\x8a\xe0\x0b\xba\xbfR\xee\xbf\xd4(jW}\x06j\x90\x0cq\xf2\x1d\xa7& x\x1b\ ++\xf1Y\xbe _\x80"\xbe\xfa\x18\x11\x11\x11\xea\xfa\nk\x88X3in\xf6[\x1fU\xbao\ +\'\xf5\xdc\xd6\xbc\x0b\xeb.\xdeCl\xc4\xe1\xed\xc3,\xcc\xed\xdf\xe3\xb2]\xa0E\ +\xef\xfd(F\x17B\xdd\xf4K\x94\x13\xe2\x8d?u\x9e\xff\xea\xed\r2\xb7\x8e{O\x8c\ +\x19\x17\x1bk\xceNB\xea\xf8\xef`\x86\x96\xe7\xd3w\nB"\xa2\xfb\xad\x0c\x88YXx\ +8\x80>L\xb64\xfc?\xf2\xe9\xeb\xb4\x98pP\xd3\xe6CG\xa1\xf9}h\xb8\xd8\x94\x82v\ +\xb8\xfdP\x80fXH\xb7\xa4Cg"\xd2F\xa1V]Q\xc7\x9c\xf4\xe3=\xe6\xda\xc0\x1e\xa1\ +\x9f\xa3\x06M\xf4J\x12A\xf5L\xabp\x8f\x9a\xc5/\xdc\xdc\xa9\x10\xb3\xb1\xfb\ +\xe4\xc8\xaf\xd9\xab*\xb6\xb2\xab*\x1a\x065\x8b\xc77+p\x0fuusm \x9d\x80\xfa\ +\x1dH0O\xcf\x88X\x98/\xc5\x9f\x11\xe2\x0flC\x029\xf1\x90\xb7W\xfbv\x19\xa8\ +\xec\xc2\xe1\xf0N\xed,\x05\xba\xcf\x11\xc6\xc4\x85\xf5CCCc\x974\xc9\x90?\x7f\ +<~\x0f;\xb4\xd4h7\xd0&J)y6\xce\x89(\xe3W\x87\'C\n\xfb\xb7\x7f\xaa\xd1H|\xfc\ +\xb1S_\xa5\xdd\x10&(\xe0\xaf\xa4\xaeNb\x8a\xdfVR\x12\x9e1:\xc3\x18\x16\x16\ +\x06\x0c\x02\xe41\xcf\x9c\xc6\xe6^\xed#\xf4\xc6\x07pU\x9e\x98=\x9b\x93\x04\ +\xad\x9bg\xb9YYY\x99\x99W\x0fO49\xda\x1f\xd9\xd7\xf4XR\x99F\x05\x04\x04\xe6\ +\x8e\xfd\x04\ri\xf0\xb6}Z;\x0f2Gw\xaa\xaa\xacW\xd6\xd6\xc8\x05\x10\x83V\xe1\ +\\\x9a\x85(,}\x12\xbf\xe7\xb6\x9d\xfe\xeb7VW\x7fxx\x80!\xa6\x15A\xa0.\xf5L_\ +\xb2\x158\xa4\x81\xee\x181kB\x95\xbf\x81\x1d\x1f\x03\xd0\xec\x05 \x8c\xbf %\ +\xc8\xcd\xc3\x83\x8f\x1cKA\xdf\x01QNQQ\xf5?+N>\x1e\x1e\xc03!\x04}\x02gr\x14f\ +T\x94\xcb\xa4\x10\x10)\xcer\x02\x81UY\xb9\xce{1\xb4W\xab\xbe\xfa\xe0\n\xe4\ +\xcda\xb9\xde\xdc\xc6&\n\x93\xee\xef\x91\xde\xb3\x15g;\x001\xf5t\xe3m\xd0+ov\ +\xc7\xc7\x00\xa1\xd7$\x9d\x11\xbb\xc3\xf1\xaa\xcf\x80E72\n\xf2*\xb2\xd6\xb9_\ +\x00S\xcb\xcc\x84~2!L#\xcd\xfd\xfb\xdat\xcc\xa1\xe5\x13\x0bK\x06\xf2\x94{6\ +\x9bD\x11\xe6\xeb\xd7\xca\xfe\x15\xcc\xefT\x16\xbf\x9b/\xff\x03\xd3]\x86\xfa\ +Q\xe8o\x8b\x063\xe7\xf4~\xe6\xdc\x9c\xc2\xa6\x81m2D\xb3\xa5\xd9R\xc72\xac\ +\x1aZ\xf3_71\xd5\xc75=\xcf\xed\xda\x16\x14\xe3\x8f\xaevvL\xe9rC\xbb\xce\xa0\ +\xffyZ\xe8\xdb\xb5\x01\xf4;2\x18A\x07\x9d+\x95\x00\x15\x89:\x11\xd54\xa6r\n\ +\x18\xcdF\x06\xc3\xfd&\xce\xd4u\x07\x00#\xe6\x8e\xef\xb8?\xbe\xf0\xed\xd7\ +\x1fj\'\x15\x86\x86\x86^>\xebQl~\x93\xade#\x8dU\xf1\xd1_|\xf8\xfb\xf7\xc4\ +\xc3\x97\x93\xf4-\x05\xc5>\xbc\xa3\xb5\x15 VZ:\xba\xb299\xda\xfe/\xd4\xe3\ +\xd8\xcc\xe0\x8bp\xfb\xd5f\x92\xb0\xaf\x1f#\xd8\x08\x01\xfa\xcc\xc3\x89=\xc4\ +g\xe7\xe4\xe4\x14\x14T\x98\xa5#\xad\x03Q\x91c\xc5\xc7\xc4\xc4\xc4\xc7g\x92%\ +\xd2H\x17\xa9\xc0\xdc2\x8a\x19\x1f\xe1\x000\x8doZINt~\x1a\x16be\x88\x02\x0cT\ +\xd7W\xf5\xf9\xcf\xb6\x0b\tM$\x91b\x11\xabz\'o\xbfx\xfc;@\x00\x1a\xd2\x0eI~\ +\x16$<\xdb\x98\x97\xf7NP\xeed\xb5e\x92\x9f\xf5\xe6\xe6F\xf9\x19\x940y\xa0\ +\xae\x1e+F\xdd\xf9z\xdb\xa4\\IU4R_o\x05\xb0\x973\xfa\xed\xd5\xb6\x19\x7f\xf6\ +\x92\x15\x05\x9f\xaeg\xf7\x8f\x90\xc0\xc10\x18lyY\x9b\x1e.,\x934\x90.\x81\ +\xddI\xc8\x89]\xb2\x06LX\x9d\x1d\xad(\xa9\x1d\xa0\\\xe6\x10P3\xb9\xec\xf3\ +\x131dD\x89\xb5\xcf:\x05`\xc162\x04\x00I\xf9\xfb\xfb\xe3\xa7\xb3\x15[\x93"g\ +\xf8\x16\x1a\x13w"K\xb5)\xe7\x15\xcez\x8d211\x9d\xffU\xf1\x9d\xd1=J\x01\x18\ +\xf0\xbb\x10%Fi\xdeONk7\xbe\xec\xae\xae\xae\xce\x10\xef.\x83\x1cc\xc1\\\xba\ +\xfe\x1c\xd9__\xbb\xbea\xd7\xa8}f\xc1St\xc0*L,\xaa\xa9\x89g\x93\xb8p\xd7\x9f\ +\x84\xba\xf8A\xf3\x87h%\xab\x9e$\xc4\xf8=O\xd7\x1e\x1f\x1fON\xec$%\xc3\x17\ +\x8f\xcdc\xaa\xf4;\xfet?\x9c>L\xc7\x07\x14\x1e\xf3\xdd\xdc\xd0\xe5x}\x93\x12\ +\x8f\xfe\x00\xea}e\x018qD{~\x8a\xb3\xd3\xd3\x05\xf7\xae\x8e\x8e\xcc\xc2\xb6\ +\x97\xe7\x87/||^c\x0b\x0b\x1a:2\xbc^\xe7[\xd3\x05\x92\xaaes\xfb\xe3\x99\x1d\ +\x1d\x1do"\x07\x80u==\xb9\x97\xedz\x9eoj\xca\xb0\x9d\x03f4n\x00\xd1\xa8\xab\ +\xab\x0b@H\xe51\x9f\xb9\xac\xbaS\x9b\xde+,\xf2\xb4\xf4t\xd8\xe9)\x80\x03\xc0\ +\xbe\x1be\xff=\x10\xa6\x8c1q\xd8\xe8\xbcO\xb7\xccI\xcf\xcc\xcc\xcc\xcd\r\xbc\ +\xdb\x0e\xcf\xf5\xdeO\x8f\x8c\x8c\x8c%\xe3\xf6\xf0\xf4lin>j\x17\xe4\xe0\x10\ +\xf5\x89\x94c8R\x01H\xf8\x156EVz\xfa\xbf\x98z\xceC?M\xe9\x8c\x06#\xbe\xa2\ +\x08\xb83\x8e\xda\x9c\x9f\xff0\xcaN\xfd\xb8\x9ac\x8a\x90\xf2>\xdd\xec\t\x84\xaf4\ +]]]UUU\xd1\x84\xac\xc2s\xd2\xd2\xd2rs5\xf1\xcd\x9d\x9d\xa7\x0f\xae\x80\x06\ +\x80\xafw\xa4z*\x89+Sx\xef\xe1\xaaH\xbe}\xfbv\xd10P\x00w\x06\xeeQ\xa2\xc2\ +\x10\xde\xff\x15.Q\x89\x8a\x04\xae\xd3\xb2\x0b\x08\xd8\x80{\x1c\\\xdd7XN\xce\ +\x90b2\x8f\xbc\xe5\xf7J\x90!\'\'_k\xb0\xc4\xfe\x8ei\x01\xba\xdb!\xea!\x8e\ +\x1e\x9c\xc8\x11\xe8\xb0\x9c\xcc\xa9\xab\xabC|\x85\x95\xf5\xc53\x0e\xaf\xda\ +\xa0+#\xf07\xe0\x0cF\xa13\xb0\xeb\xf3s\xd6\xcf\x9f\x8a\x808\xcf\x0e\x0f\x0f\ +\x81\xb8#\xe8\x80B\xd3d2\x8d\x02i\xfb\x19\x0e\x94\xc7\xc4\xc4DD]\xddFz\xe3\ +\x0c\x16\xd4\xf7\xf7\xe6X\xb3\xc6\xe05\x08\x08\x8b\x8c\xcbn+\xd7\xf1`"\xbb\ +\xa1\xa1\xe1\xfa^j+\xfb\x8b\xa7\neA\xcd\x9f\xa6\x1a\xff\xd8\xeb\xda\xc5c\xf8\ +\xe1\xa1\xb0\x98\xab\xbe\xc7\xc9\x12\x9b\x90\x90"\xe2\x9b2\x1cA\x18\xd5\x97\ +\xc3\xde`D\xe0\x06\xfd\xfd\xfd\x9cQ\xb8e\x1eg\x1b\x80\xfe\x05\x8aJDDT\xf6\ +\x05R/W\xd5\x12\xf0\xe4S~\x03\x8c\x91\xbaY@@\x00\xb0z&\xb7c\xb5\x047\xa8\xf4\ +vI\xe1\xfe\xdc\xda\x1bC]\x01{^A\xeb\xfd\xcb\xe8\xeb2\r\xa5lp\x9a\xe9\xfe\xd5\ +=\xb3n\xf3\xde\x15\x00\xb5\xe2\x1c\xbeW\x95\xad\ns\tUaR7R\xb6\\\x0f\xc7c%\ +\x14\xc6G\x90\x85,\xf4\xf2\x93<\xc3z\t\xf7\x00\x86\xd1\x93\xe2\t\x94\xca\x94\ +\xbc"n\x8d\x93\xac\xd41.\x8a\xf8\x8eu\x87#\xcc\xf9\xfa\xf6J\x8b\xc6\x9f\x06\ +\x94q\x97(\xd0\x17\xd1"\x12d5!4m\xe6@\xd7\x9cy\xc1\xbcA\x96\xfa1\xad\xb1\x1a\ +&\x93\xef\x18\x86\xcf\xc9\x07\xac\xbc\xbc\xbc\x9f?\x0f\xa6\x8a\x8e\x87\xb1)\ +\xaa\x180\xc8Jy\x0b\x95\xd27\x7f\xf0\x1e\xf4h6sH\xdfP\x1b;JRc\xaai\x82\xe6\r\ +i\xf6\xd7\xbf\xa1#8V\xa9z\xaa\x80:B\x86\xb3\x02c\x8f\xa6\x107\xdb\xaa\xd2\ +\xde)\x9a\x94\x99\x0e\xe21\xf3f\x8a\x92c\xbd\xa2L\xad0W\xaf\xeb_,\xbbb\xd9\ +\x95\xb2\xf5FH\x99.\nc\xaf\xac\x1a`\xe1\xd5\xd1\x8c\xf1\xd3\xb6)\x9cp\xfa\ +\xb6yV"/\x02\xda\xd2\x8dK\xcd\x84\x98\x0f\x1a6\xfb\x94\xf5\xb0\xd9\xeeub\x16\ +\x98\x92 \x06\xbeF \xcd\x81\xfb\xa6\x0e\x90k\xc5\xa3i\xbc7~\xfa\xa1#HVc<%\ +\x821\x8e3\xf6\xd0\x0c\x06k\xe2\x7f\x8b\x15\x9f\x13z\xae\xda\xbacv\xb2\x17\ +\xad\xadc?2\xf4\xc5\xc1\xb1\xc2G";\x16\x89\xbd\x11@\x08\x96\xf8Z{\xc1~n@X\ +\x83\x8c\xc4\x82\xd67\xe4\xf3\x8e\x98\xde\xa9\xe8\x9d\x83S\'h\x94\xb6\xfcC\ +\xe7\x8a\xe2\xbfK\x0e\x87F\x83j\xd5\x90\xab\xe9\xff\xb7\x8b\xff\xa5B\xf0\x7f\ +\x7f\x0c\xf0\x18hhJ,\xe3\xacr\x9c\x05\x02^\xd2\xe2\nb\xd5"F\xdf\xfe\x17]\xf7\ +x\x8e' ) + +def getBitmap(): + return BitmapFromImage(getImage()) + +def getImage(): + stream = cStringIO.StringIO(getData()) + return ImageFromStream(stream) + +def getIcon(): + icon = EmptyIcon() + icon.CopyFromBitmap(getBitmap()) + return icon + diff --git a/jet_tools/JetCreator/midifile.py b/jet_tools/JetCreator/midifile.py new file mode 100755 index 0000000..63449c0 --- /dev/null +++ b/jet_tools/JetCreator/midifile.py @@ -0,0 +1,1579 @@ +""" + File: + midifile.py + + Contents and purpose: + Utilities used throughout JetCreator + + Copyright (c) 2008 Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +""" + +import logging +import struct +import copy +import array + +# JET events +JET_EVENT_MARKER = 102 +JET_MARKER_LOOP_END = 0 +JET_EVENT_TRIGGER_CLIP = 103 + +# header definitions +SMF_HEADER_FMT = '>4slHHH' +SMF_RIFF_TAG = 'MThd' + +SMF_TRACK_HEADER_FMT = '>4sl' +SMF_TRACK_RIFF_TAG = 'MTrk' + +# defaults +DEFAULT_PPQN = 120 +DEFAULT_BEATS_PER_MEASURE = 4 +DEFAULT_TIME_FORMAT = '%03d:%02d:%03d' + +# force note-offs to end of list +MAX_SEQ_NUM = 0x7fffffff + +# MIDI messages +NOTE_OFF = 0x80 +NOTE_ON = 0x90 +POLY_KEY_PRESSURE = 0xa0 +CONTROL_CHANGE = 0xb0 +PROGRAM_CHANGE = 0xc0 +CHANNEL_PRESSURE = 0xd0 +PITCH_BEND = 0xe0 + +# System common messages +SYSEX = 0xf0 +MIDI_TIME_CODE = 0xf1 +SONG_POSITION_POINTER = 0xf2 +SONG_SELECT = 0xf3 +RESERVED_F4 = 0xf4 +RESERVED_F5 = 0xf5 +TUNE_REQUEST = 0xf6 +END_SYSEX = 0xf7 + +# System real-time messages +TIMING_CLOCK = 0xf8 +RESERVED_F9 = 0xf9 +START = 0xfa +CONTINUE = 0xfb +STOP = 0xfc +RESERVED_FD = 0xfd +ACTIVE_SENSING = 0xfe +SYSTEM_RESET = 0xff + +ONE_BYTE_MESSAGES = ( + TUNE_REQUEST, + TIMING_CLOCK, + RESERVED_F9, + START, + CONTINUE, + STOP, + RESERVED_FD, + ACTIVE_SENSING, + SYSTEM_RESET) + +THREE_BYTE_MESSAGES = ( + NOTE_OFF, + NOTE_ON, + POLY_KEY_PRESSURE, + CONTROL_CHANGE, + PITCH_BEND) + +MIDI_MESSAGES = ( + NOTE_OFF, + NOTE_ON, + POLY_KEY_PRESSURE, + CONTROL_CHANGE, + CHANNEL_PRESSURE, + PITCH_BEND, + SYSEX) + +# Meta-events +META_EVENT = 0xff +META_EVENT_SEQUENCE_NUMBER = 0x00 +META_EVENT_TEXT_EVENT = 0x01 +META_EVENT_COPYRIGHT_NOTICE = 0x02 +META_EVENT_SEQUENCE_TRACK_NAME = 0x03 +META_EVENT_INSTRUMENT_NAME = 0x04 +META_EVENT_LYRIC = 0x05 +META_EVENT_MARKER = 0x06 +META_EVENT_CUE_POINT = 0x07 +META_EVENT_MIDI_CHANNEL_PREFIX = 0x20 +META_EVENT_END_OF_TRACK = 0x2f +META_EVENT_SET_TEMPO = 0x51 +META_EVENT_SMPTE_OFFSET = 0x54 +META_EVENT_TIME_SIGNATURE = 0x58 +META_EVENT_KEY_SIGNATURE = 0x59 +META_EVENT_SEQUENCER_SPECIFIC = 0x7f + +# recurring error messages +MSG_NOT_SMF_FILE = 'Not an SMF file - aborting parse!' +MSG_INVALID_TRACK_HEADER = 'Track header is invalid' +MSG_TYPE_MISMATCH = 'msg_type does not match event type' + +LARGE_TICK_WARNING = 1000 + +# default control values +CTRL_BANK_SELECT_MSB = 0 +CTRL_MOD_WHEEL = 1 +CTRL_RPN_DATA_MSB = 6 +CTRL_VOLUME = 7 +CTRL_PAN = 10 +CTRL_EXPRESSION = 11 +CTRL_BANK_SELECT_LSB = 32 +CTRL_RPN_DATA_LSB = 38 +CTRL_SUSTAIN = 64 +CTRL_RPN_LSB = 100 +CTRL_RPN_MSB = 101 +CTRL_RESET_CONTROLLERS = 121 + +RPN_PITCH_BEND_SENSITIVITY = 0 +RPN_FINE_TUNING = 1 +RPN_COARSE_TUNING = 2 + +MONITOR_CONTROLLERS = ( + CTRL_BANK_SELECT_MSB, + CTRL_MOD_WHEEL, + CTRL_RPN_DATA_MSB, + CTRL_VOLUME, + CTRL_PAN, + CTRL_EXPRESSION, + CTRL_BANK_SELECT_LSB, + CTRL_RPN_DATA_LSB, + CTRL_SUSTAIN, + CTRL_RPN_LSB, + CTRL_RPN_MSB) + +MONITOR_RPNS = ( + RPN_PITCH_BEND_SENSITIVITY, + RPN_FINE_TUNING, + RPN_COARSE_TUNING) + +RPN_PITCH_BEND_SENSITIVITY = 0 +RPN_FINE_TUNING = 1 +RPN_COARSE_TUNING = 2 + +DEFAULT_CONTROLLER_VALUES = { + CTRL_BANK_SELECT_MSB : 121, + CTRL_MOD_WHEEL : 0, + CTRL_RPN_DATA_MSB : 0, + CTRL_VOLUME : 100, + CTRL_PAN : 64, + CTRL_EXPRESSION : 127, + CTRL_RPN_DATA_LSB : 0, + CTRL_BANK_SELECT_LSB : 0, + CTRL_SUSTAIN : 0, + CTRL_RPN_LSB : 0x7f, + CTRL_RPN_MSB : 0x7f} + +DEFAULT_RPN_VALUES = { + RPN_PITCH_BEND_SENSITIVITY : 0x100, + RPN_FINE_TUNING : 0, + RPN_COARSE_TUNING : 1} + +# initialize logger +midi_file_logger = logging.getLogger('MIDI_file') +midi_file_logger.setLevel(logging.NOTSET) + + +class trackGrid(object): + def __init__ (self, track, channel, name, empty): + self.track = track + self.channel = channel + self.name = name + self.empty = empty + def __str__ (self): + return "['%s', '%s', '%s']" % (self.track, self.channel, self.name) + + +#--------------------------------------------------------------- +# MIDIFileException +#--------------------------------------------------------------- +class MIDIFileException (Exception): + def __init__ (self, stream, msg): + stream.error_loc = stream.tell() + self.stream = stream + self.msg = msg + def __str__ (self): + return '[%d]: %s' % (self.stream.error_loc, self.msg) + +#--------------------------------------------------------------- +# TimeBase +#--------------------------------------------------------------- +class TimeBase (object): + def __init__ (self, ppqn=DEFAULT_PPQN, beats_per_measure=DEFAULT_BEATS_PER_MEASURE): + self.ppqn = ppqn + self.beats_per_measure = beats_per_measure + + def ConvertToTicks (self, measures, beats, ticks): + total_beats = beats + (measures * self.beats_per_measure) + total_ticks = ticks + (total_beats * self.ppqn) + return total_ticks + + def ConvertTicksToMBT (self, ticks): + beats = ticks / self.ppqn + ticks -= beats * self.ppqn + measures = beats / self.beats_per_measure + beats -= measures * self.beats_per_measure + return (measures, beats, ticks) + + def ConvertTicksToStr (self, ticks, format=DEFAULT_TIME_FORMAT): + measures, beats, ticks = self.ConvertTicksToMBT(ticks) + return format % (measures, beats, ticks) + + def ConvertStrTimeToTuple(self, s): + try: + measures, beats, ticks = s.split(':',3) + return (int(measures), int(beats), int(ticks)) + except: + return (0,0,0) + + def ConvertStrTimeToTicks(self, s): + measures, beats, ticks = self.ConvertStrTimeToTuple(s) + return self.ConvertToTicks(measures, beats, ticks) + + def MbtDifference(self, mbt1, mbt2): + t1 = self.ConvertToTicks(mbt1[0], mbt1[1], mbt1[2]) + t2 = self.ConvertToTicks(mbt2[0], mbt2[1], mbt2[2]) + return abs(t1-t2) + + +#--------------------------------------------------------------- +# Helper functions +#--------------------------------------------------------------- +def ReadByte (stream): + try: + return ord(stream.read(1)) + except TypeError: + stream.error_loc = stream.tell() + raise MIDIFileException(stream, 'Unexpected EOF') + +def ReadBytes (stream, length): + bytes = [] + for i in range(length): + bytes.append(ReadByte(stream)) + return bytes + +def ReadVarLenQty (stream): + value = 0 + while 1: + byte = ReadByte(stream) + value = (value << 7) + (byte & 0x7f) + if byte & 0x80 == 0: + return value + +def WriteByte (stream, value): + stream.write(chr(value)) + +def WriteBytes (stream, bytes): + for byte in bytes: + WriteByte(stream, byte) + +def WriteVarLenQty (stream, value): + bytes = [value & 0x7f] + value = value >> 7 + while value > 0: + bytes.append((value & 0x7f) | 0x80) + value = value >> 7 + bytes.reverse() + WriteBytes(stream, bytes) + +#--------------------------------------------------------------- +# EventFilter +#--------------------------------------------------------------- +class EventFilter (object): + pass + +class EventTypeFilter (object): + def __init__ (self, events, exclude=True): + self.events = events + self.exclude = exclude + def Check (self, event): + if event.msg_type in self.events: + return not self.exclude + return self.exclude + +class NoteFilter (EventFilter): + def __init__ (self, notes, exclude=True): + self.notes = notes + self.exclude = exclude + def Check (self, event): + if event.msg_type in (NOTE_ON, NOTE_OFF): + if event.note in self.notes: + return not self.exclude + return self.exclude + +class ChannelFilter (EventFilter): + def __init__ (self, channel, exclude=True): + self.channel = channel + self.exclude = exclude + def Check (self, event): + if event.msg_type in (NOTE_ON, NOTE_OFF, POLY_KEY_PRESSURE, CONTROL_CHANGE, CHANNEL_PRESSURE, PITCH_BEND): + if event.channel in self.channel: + return not self.exclude + return self.exclude + +#--------------------------------------------------------------- +# MIDIEvent +#--------------------------------------------------------------- +class MIDIEvent (object): + """Factory for creating MIDI events from a stream.""" + @staticmethod + def ReadFromStream (stream, seq, ticks, msg_type): + if msg_type == SYSEX: + return SysExEvent.ReadFromStream(stream, seq, ticks, msg_type) + elif msg_type == END_SYSEX: + return SysExContEvent.ReadFromStream(stream, seq, ticks, msg_type) + elif msg_type == META_EVENT: + return MetaEvent.ReadFromStream(stream, seq, ticks, msg_type) + else: + high_nibble = msg_type & 0xf0 + if high_nibble == NOTE_OFF: + return NoteOffEvent.ReadFromStream(stream, seq, ticks, msg_type) + elif high_nibble == NOTE_ON: + return NoteOnEvent.ReadFromStream(stream, seq, ticks, msg_type) + elif high_nibble == POLY_KEY_PRESSURE: + return PolyKeyPressureEvent.ReadFromStream(stream, seq, ticks, msg_type) + elif high_nibble == CONTROL_CHANGE: + return ControlChangeEvent.ReadFromStream(stream, seq, ticks, msg_type) + elif high_nibble == PROGRAM_CHANGE: + return ProgramChangeEvent.ReadFromStream(stream, seq, ticks, msg_type) + elif high_nibble == CHANNEL_PRESSURE: + return ChannelPressureEvent.ReadFromStream(stream, seq, ticks, msg_type) + elif high_nibble == PITCH_BEND: + return PitchBendEvent.ReadFromStream(stream, seq, ticks, msg_type) + else: + stream.Warning('Ignoring unexpected message type 0x%02x' % msg_type) + def WriteTicks (self, stream, track): + WriteVarLenQty(stream, self.ticks - track.ticks) + track.ticks = self.ticks + def WriteRunningStatus (self, stream, track, filters, msg, data1, data2=None): + if not self.CheckFilters(filters): + return + self.WriteTicks(stream, track) + status = msg + self.channel + if track.running_status != status: + WriteByte(stream, status) + track.running_status = status + WriteByte(stream, data1) + if data2 is not None: + WriteByte(stream, data2) + def CheckFilters (self, filters): + if filters is None or not len(filters): + return True + + # never filter meta-events + if (self.msg_type == META_EVENT) and (self.meta_type == META_EVENT_END_OF_TRACK): + return True + + # check all filters + for f in filters: + if not f.Check(self): + return False + return True + + def TimeEventStr (self, timebase): + return '[%s]: %s' % (timebase.ConvertTicksToStr(self.ticks), self.__str__()) + +#--------------------------------------------------------------- +# NoteOffEvent +#--------------------------------------------------------------- +class NoteOffEvent (MIDIEvent): + def __init__ (self, ticks, seq, channel, note, velocity): + self.name = 'NoteOff' + self.msg_type = NOTE_OFF + self.seq = seq + self.ticks = ticks + self.channel = channel + self.note = note + self.velocity = velocity + @staticmethod + def ReadFromStream (stream, seq, ticks, msg_type): + ticks = ticks + channel = msg_type & 0x0f + note = ReadByte(stream) + velocity = ReadByte(stream) + if msg_type & 0xf0 != NOTE_OFF: + stream.seek(-2,1) + raise MIDIFileException(stream, MSG_TYPE_MISMATCH) + return NoteOffEvent(ticks, seq, channel, note, velocity) + def WriteToStream (self, stream, track, filters=None): + # special case for note-off using zero velocity + if self.velocity > 0: + self.WriteRunningStatus(stream, track, filters, NOTE_ON, self.note, self.velocity) + if track.running_status == (NOTE_OFF + self.channel): + self.WriteRunningStatus(stream, track, filters, NOTE_ON, self.note, self.velocity) + else: + self.WriteRunningStatus(stream, track, filters, NOTE_ON, self.note, 0) + def __str__ (self): + return '%s: ch=%d n=%d v=%d' % (self.name, self.channel, self.note, self.velocity) + +#--------------------------------------------------------------- +# NoteOnEvent +#--------------------------------------------------------------- +class NoteOnEvent (MIDIEvent): + def __init__ (self, ticks, seq, channel, note, velocity, note_length, note_off_velocity): + self.name = 'NoteOn' + self.msg_type = NOTE_ON + self.ticks = ticks + self.seq = seq + self.channel = channel + self.note = note + self.velocity = velocity + self.note_length = note_length + self.note_off_velocity = note_off_velocity + @staticmethod + def ReadFromStream (stream, seq, ticks, msg_type): + channel = msg_type & 0x0f + note = ReadByte(stream) + velocity = ReadByte(stream) + if msg_type & 0xf0 != NOTE_ON: + stream.seek(-2,1) + raise MIDIFileException(stream, MSG_TYPE_MISMATCH) + if velocity == 0: + return NoteOffEvent(ticks, seq, channel, note, velocity) + return NoteOnEvent(ticks, seq, channel, note, velocity, None, None) + def WriteToStream (self, stream, track, filters=None): + self.WriteRunningStatus(stream, track, filters, NOTE_ON, self.note, self.velocity) + def __str__ (self): + if self.note_length is not None: + return '%s: ch=%d n=%d v=%d l=%d' % (self.name, self.channel, self.note, self.velocity, self.note_length) + else: + return '%s: ch=%d n=%d v=%d' % (self.name, self.channel, self.note, self.velocity) + +#--------------------------------------------------------------- +# PolyKeyPressureEvent +#--------------------------------------------------------------- +class PolyKeyPressureEvent (MIDIEvent): + def __init__ (self, ticks, seq, channel, note, value): + self.name = 'PolyKeyPressure' + self.msg_type = POLY_KEY_PRESSURE + self.ticks = ticks + self.seq = seq + self.channel = channel + self.note = note + self.value = value + @staticmethod + def ReadFromStream (stream, seq, ticks, msg_type): + channel = msg_type & 0x0f + note = ReadByte(stream) + value = ReadByte(stream) + if msg_type & 0xf0 != POLY_KEY_PRESSURE: + stream.seek(-2,1) + raise MIDIFileException(stream, MSG_TYPE_MISMATCH) + return PolyKeyPressureEvent(ticks, seq, channel, note, value) + def WriteToStream (self, stream, track, filters=None): + self.WriteRunningStatus(stream, track, filters, POLY_KEY_PRESSURE, self.note, self.value) + def __str__ (self): + return '%s: ch=%d n=%d v=%d' % (self.name, self.channel, self.note, self.value) + +#--------------------------------------------------------------- +# ControlChangeEvent +#--------------------------------------------------------------- +class ControlChangeEvent (MIDIEvent): + def __init__ (self, ticks, seq, channel, controller, value): + self.name = 'ControlChange' + self.msg_type = CONTROL_CHANGE + self.ticks = ticks + self.seq = seq + self.channel = channel + self.controller = controller + self.value = value + @staticmethod + def ReadFromStream (stream, seq, ticks, msg_type): + channel = msg_type & 0x0f + controller = ReadByte(stream) + value = ReadByte(stream) + if msg_type & 0xf0 != CONTROL_CHANGE: + stream.seek(-2,1) + raise MIDIFileException(stream, MSG_TYPE_MISMATCH) + if controller >= 120: + return ChannelModeEvent(ticks, seq, channel, controller, value) + return ControlChangeEvent(ticks, seq, channel, controller, value) + def WriteToStream (self, stream, track, filters=None): + self.WriteRunningStatus(stream, track, filters, CONTROL_CHANGE, self.controller, self.value) + def __str__ (self): + return '%s: ch=%d c=%d v=%d' % (self.name, self.channel, self.controller, self.value) + +#--------------------------------------------------------------- +# ChannelModeEvent +#--------------------------------------------------------------- +class ChannelModeEvent (MIDIEvent): + def __init__ (self, ticks, seq, channel, controller, value): + self.name = 'ChannelMode' + self.msg_type = CONTROL_CHANGE + self.ticks = ticks + self.seq = seq + self.channel = channel + self.controller = controller + self.value = value + @staticmethod + def ReadFromStream (stream, seq, ticks, msg_type): + channel = msg_type & 0x0f + controller = ReadByte(stream) + value = ReadByte(stream) + if msg_type & 0xf0 != CONTROL_CHANGE: + stream.seek(-2,1) + raise MIDIFileException(stream, MSG_TYPE_MISMATCH) + if controller < 120: + return ControlChangeEvent(ticks, seq, channel, controller, value) + return ChannelModeEvent(ticks, seq, channel, value) + def WriteToStream (self, stream, track, filters=None): + self.WriteRunningStatus(stream, track, filters, CONTROL_CHANGE, self.controller, self.value) + def __str__ (self): + return '%s: ch=%d c=%d v=%d' % (self.name, self.channel, self.controller, self.value) + +#--------------------------------------------------------------- +# ProgramChangeEvent +#--------------------------------------------------------------- +class ProgramChangeEvent (MIDIEvent): + def __init__ (self, ticks, seq, channel, program): + self.name = 'ProgramChange' + self.msg_type = PROGRAM_CHANGE + self.ticks = ticks + self.seq = seq + self.channel = channel + self.program = program + @staticmethod + def ReadFromStream (stream, seq, ticks, msg_type): + channel = msg_type & 0x0f + program = ReadByte(stream) + if msg_type & 0xf0 != PROGRAM_CHANGE: + stream.seek(-1,1) + raise MIDIFileException(stream, MSG_TYPE_MISMATCH) + return ProgramChangeEvent(ticks, seq, channel, program) + def WriteToStream (self, stream, track, filters=None): + self.WriteRunningStatus(stream, track, filters, PROGRAM_CHANGE, self.program) + def __str__ (self): + return '%s: ch=%d p=%d' % (self.name, self.channel, self.program) + +#--------------------------------------------------------------- +# ChannelPressureEvent +#--------------------------------------------------------------- +class ChannelPressureEvent (MIDIEvent): + def __init__ (self, ticks, seq, channel, value): + self.name = 'ChannelPressure' + self.msg_type = CHANNEL_PRESSURE + self.ticks = ticks + self.seq = seq + self.channel = channel + self.value = value + @staticmethod + def ReadFromStream (stream, seq, ticks, msg_type): + channel = msg_type & 0x0f + value = ReadByte(stream) + if msg_type & 0xf0 != CHANNEL_PRESSURE: + stream.seek(-1,1) + raise MIDIFileException(stream, MSG_TYPE_MISMATCH) + return ChannelPressureEvent(ticks, seq, channel, value) + def WriteToStream (self, stream, track, filters=None): + self.WriteRunningStatus(stream, track, filters, CHANNEL_PRESSURE, self.value) + def __str__ (self): + return '%s: ch=%d v=%d' % (self.name, self.channel, self.value) + +#--------------------------------------------------------------- +# PitchBendEvent +#--------------------------------------------------------------- +class PitchBendEvent (MIDIEvent): + def __init__ (self, ticks, seq, channel, value): + self.name = 'PitchBend' + self.msg_type = PITCH_BEND + self.ticks = ticks + self.seq = seq + self.channel = channel + self.value = value + @staticmethod + def ReadFromStream (stream, seq, ticks, msg_type): + channel = msg_type & 0x0f + value = (ReadByte(stream) << 7) + ReadByte(stream) - 0x2000 + if msg_type & 0xf0 != PITCH_BEND: + stream.seek(-2,1) + raise MIDIFileException(stream, MSG_TYPE_MISMATCH) + return PitchBendEvent(ticks, seq, channel, value) + def WriteToStream (self, stream, track, filters=None): + value = self.value + 0x2000 + if value < 0: + value = 0 + if value > 0x3fff: + value = 0x3fff + self.WriteRunningStatus(stream, track, filters, PITCH_BEND, value >> 7, value & 0x7f) + def __str__ (self): + return '%s: ch=%d v=%d' % (self.name, self.channel, self.value) + +#--------------------------------------------------------------- +# SysExEvent +#--------------------------------------------------------------- +class SysExEvent (MIDIEvent): + def __init__ (self, ticks, seq, msg): + self.name = 'SysEx' + self.msg_type = SYSEX + self.ticks = ticks + self.seq = seq + self.length = len(msg) + self.msg = msg + @staticmethod + def ReadFromStream (stream, seq, ticks, msg_type): + pos = stream.tell() + length = ReadVarLenQty(stream) + msg = ReadBytes(stream, length) + if msg_type != SYSEX: + stream.seek(pos,0) + raise MIDIFileException(stream, MSG_TYPE_MISMATCH) + return SysExEvent(ticks, seq, msg) + def WriteToStream (self, stream, track, filters=None): + if not self.CheckFilters(filters): + return + self.WriteTicks(stream, track) + WriteByte(stream, SYSEX) + WriteVarLenQty(stream, self.length) + WriteBytes(stream, self.msg) + track.running_status = None + def __str__ (self): + fmt_str = '%s: f0' + ' %02x'*self.length + return fmt_str % ((self.name,) + tuple(self.msg)) + +#--------------------------------------------------------------- +# SysExContEvent +#--------------------------------------------------------------- +class SysExContEvent (MIDIEvent): + def __init__ (self, ticks, seq, msg): + self.name = 'SysEx+' + self.msg_type = END_SYSEX + self.ticks = ticks + self.seq = seq + self.length = len(msg) + self.msg = msg + @staticmethod + def ReadFromStream (stream, seq, ticks, msg_type): + pos = stream.tell() + length = ReadVarLenQty(stream) + msg = ReadBytes(stream, length) + if msg_type != END_SYSEX: + stream.seek(pos,0) + raise MIDIFileException(stream, MSG_TYPE_MISMATCH) + return SysExContEvent(ticks, seq, msg) + def WriteToStream (self, stream, track, filters=None): + if not self.CheckFilters(filters): + return + self.WriteTicks(stream, track) + WriteByte(stream, END_SYSEX) + WriteVarLenQty(stream, self.length) + WriteBytes(stream, self.msg) + track.running_status = None + def __str__ (self): + fmt_str = '%s:' + ' %02x'*self.length + return fmt_str % ((self.name,) + tuple(self.msg)) + +#--------------------------------------------------------------- +# MetaEvent +#--------------------------------------------------------------- +class MetaEvent (MIDIEvent): + def __init__ (self, ticks, seq, meta_type, msg): + self.name = 'MetaEvent' + self.msg_type = META_EVENT + self.ticks = ticks + self.seq = seq + self.meta_type = meta_type + self.length = len(msg) + self.msg = msg + @staticmethod + def ReadFromStream (stream, seq, ticks, msg_type): + pos = stream.tell() + meta_type = ReadByte(stream) + length = ReadVarLenQty(stream) + msg = ReadBytes(stream, length) + if msg_type != META_EVENT: + stream.seek(pos,0) + raise MIDIFileException(stream, MSG_TYPE_MISMATCH) + obj = MetaEvent(ticks, seq, meta_type, msg) + return obj + def WriteToStream (self, stream, track, filters=None): + if not self.CheckFilters(filters): + return + self.WriteTicks(stream, track) + WriteByte(stream, META_EVENT) + WriteByte(stream, self.meta_type) + WriteVarLenQty(stream, self.length) + WriteBytes(stream, self.msg) + track.running_status = None + def __str__ (self): + fmt_str = '%s: %02x' + ' %02x'*self.length + return fmt_str % ((self.name, self.meta_type) + tuple(self.msg)) + +#--------------------------------------------------------------- +# MIDIControllers +#--------------------------------------------------------------- +class MIDIControllers (object): + def __init__ (self): + self.controllers = [] + self.rpns = [] + for channel in range(16): + self.controllers.append({}) + self.controllers[channel] = copy.deepcopy(DEFAULT_CONTROLLER_VALUES) + self.rpns.append({}) + self.rpns[channel] = copy.deepcopy(DEFAULT_RPN_VALUES) + self.pitchbend = [0] * 16 + self.program = [-1] * 16 + self.pressure = [0] * 16 + + def __str__ (self): + output = [] + for channel in range(16): + output.append('channel=%d' % channel) + output.append(' program=%d' % self.program[channel]) + output.append(' pressure=%d' % self.pressure[channel]) + + output.append(' controllers') + for controller in self.controllers[channel].keys(): + output.append(' %03d: %03d' % (controller, self.controllers[channel][controller])) + + output.append(' rpns') + for rpn in self.rpns[channel].keys(): + output.append(' %05d: %05d>' % (controller, self.rpns[channel][rpn])) + return '\n'.join(output) + + + def Event (self, event): + """Process an event and save any changes in controller values""" + # process control changes + if event.msg_type == CONTROL_CHANGE: + self.ControlChange(event) + elif event.msg_type == CHANNEL_PRESSURE: + self.PressureChange(event) + elif event.msg_type == PROGRAM_CHANGE: + self.ProgramChange(event) + elif event.msg_type == PITCH_BEND: + self.PitchBendChange(event) + + def PitchBendChange (self, event): + """Monitor pitch bend change.""" + self.pitchbend[event.channel] = event.value + + def ProgramChange (self, event): + """Monitor program change.""" + self.program[event.channel] = event.program + + def ControlChange (self, event): + """Monitor control change.""" + controller = event.controller + if controller in MONITOR_CONTROLLERS: + channel = event.channel + self.controllers[channel][controller] = event.value + if (controller == CTRL_RPN_DATA_MSB) or (controller == CTRL_RPN_DATA_LSB): + rpn = (self.controllers[channel][CTRL_RPN_MSB] << 7) + self.controllers[channel][CTRL_RPN_LSB] + if rpn in MONITOR_RPNS: + value = (self.controllers[channel][CTRL_RPN_DATA_MSB] << 7) + self.controllers[channel][CTRL_RPN_DATA_LSB] + self.rpns[channel][rpn] = value + + # reset controllers + elif event.controller == CTRL_RESET_CONTROLLERS: + self.ResetControllers[event.channel] + + def PressureChange (self, event): + """Monitor pressure change.""" + self.pressure[event.channel] = event.value + + def ResetControllers (self, channel): + """Reset controllers to default.""" + self.controllers[channel] = DEFAULT_CONTROLLER_VALUES + self.rpns[channel] = DEFAULT_RPN_VALUES + self.pressure[channel] = 0 + + def GenerateEventList (self, ticks, ref_values=None): + """Generate an event list based on controller differences.""" + events = EventList() + + # if no reference values, based on default values + if ref_values is None: + ref_values = MIDIControllers() + + # iterate through 16 MIDI channels + for channel in range(16): + + # generate RPN changes + for rpn in self.rpns[channel].keys(): + value = self.rpns[channel][rpn] + if value != ref_values.rpns[channel][rpn]: + events.append(ControlChangeEvent(ticks, -1, channel, CTRL_RPN_MSB, rpn >> 7)) + events.append(ControlChangeEvent(ticks, -1, channel, CTRL_RPN_LSB, rpn & 0x7f)) + events.append(ControlChangeEvent(ticks, -1, channel, CTRL_RPN_DATA_MSB, value >> 7)) + events.append(ControlChangeEvent(ticks, -1, channel, CTRL_RPN_DATA_LSB, value & 0x7f)) + + # generate controller changes + for controller in self.controllers[channel].keys(): + if self.controllers[channel][controller] != ref_values.controllers[channel][controller]: + events.append(ControlChangeEvent(ticks, -1, channel, controller, self.controllers[channel][controller])) + + # generate pressure changes + if self.pressure[channel] != ref_values.pressure[channel]: + events.append(ChannelPressureEvent(ticks, -1, channel, self.pressure[channel])) + + # generate program changes + if self.program[channel] != ref_values.program[channel]: + if self.program[channel] in range(128): + events.append(ProgramChangeEvent(ticks, -1, channel, self.program[channel])) + + # generate pitch bend changes + if self.pitchbend[channel] != ref_values.pitchbend[channel]: + if self.pitchbend[channel] in range(-8192,8191): + events.append(PitchBendEvent(ticks, -1, channel, self.pitchbend[channel])) + + return events + +#--------------------------------------------------------------- +# EventList +#--------------------------------------------------------------- +class EventList (list): + def __init__ (self): + list.__init__(self) + + def FixNoteLengths (self): + midi_file_logger.debug('Fix note lengths') + + # search for note-on's in event list + for index in range(len(self)): + event = self[index] + if event.msg_type == NOTE_ON: + note_off_ticks = event.ticks + event.note_length + + # check for note-on occuring before end of current note + for i in range(index + 1, len(self)): + event_to_check = self[i] + if event_to_check.ticks >= note_off_ticks: + break + + # adjust note length + if (event_to_check.msg_type == NOTE_ON) and (event_to_check.note == event.note): + midi_file_logger.debug('Adjusting note length @ %d' % event.ticks) + event.note_length = event_to_check.ticks - event.ticks + break + + def ChaseControllers (self, end_seq, start_seq = 0, values = None): + midi_file_logger.debug('ChaseControllers from %d to %d' % (start_seq, end_seq)) + + # initialize controller values + if values is None: + values = MIDIControllers() + + # chase controllers in track + for i in range(start_seq, min(end_seq, len(self))): + values.Event(self[i]) + + # return new values + return values + + def SelectEvents (self, start, end): + midi_file_logger.debug('SelectEvents: %d to %d' % (start, end)) + selected = EventList() + for event in self: + if event.ticks >= start: + if event.ticks >= end: + break + midi_file_logger.debug('SelectEvent: %s' % event.__str__()) + selected.append(event) + return selected + + def MergeEvents (self, events): + # copy events and sort them by ticks/sequence# + self.extend(events) + self.SortEvents() + + def InsertEvents (self, events, seq): + self[seq:seq] = events + self.RenumberSeq() + + def DeleteEvents (self, start_index, end_index, move_meta_events=None): + # default parameters + if start_index is None: + start_index = 0 + if end_index is None: + end_index = len(self) + + #print("\n") + #for evt in self[start_index:end_index]: + # print("%d %s" % (evt.ticks, evt)) + + # delete events + delete_count = 0 + move_count = 0 + for event in self[start_index:end_index]: + #Bth; Added this so we always get clip end events; clips that ended on last measure wouldn't end on repeat + if (event.msg_type == CONTROL_CHANGE) and \ + (event.controller == JET_EVENT_TRIGGER_CLIP) and \ + ((event.value & 0x40) != 0x40): + pass + else: + if (move_meta_events is None) or (event.msg_type != META_EVENT): + self.remove(event) + delete_count += 1 + + # move meta-events + else: + event.ticks = move_meta_events + move_count += 1 + + midi_file_logger.debug('DeleteEvents: deleted %d events in range(%s:%s)' % (delete_count, start_index, end_index)) + midi_file_logger.debug('DeleteEvents: moved %d events in range(%s:%s)' % (move_count, start_index, end_index)) + + + def SeekEvent (self, pos): + for i in range(len(self)): + if self[i].ticks >= pos: + return i + return None + + def RenumberSeq (self): + seq = 0 + for event in self: + event.seq = seq + seq += 1 + + def SortEvents (self): + self.sort(self.EventSorter) + self.RenumberSeq() + + @staticmethod + def EventSorter (x, y): + if x.ticks == y.ticks: + return cmp(x.seq, y.seq) + else: + return cmp(x.ticks, y.ticks) + + def DumpEvents (self, output, timebase): + if output is not None: + for event in self: + output.write('%s\n' % event.TimeEventStr(timebase)) + else: + for event in self: + midi_file_logger.debug(event.TimeEventStr(timebase)) + +#--------------------------------------------------------------- +# MIDITrack +#--------------------------------------------------------------- +class MIDITrack (object): + """The MIDITrack class implements methods for reading, parsing, + modifying, and writing tracks in Standard MIDI Files (SMF). + + """ + def __init__ (self): + self.length = 0 + self.events = EventList() + self.end_of_track = None + self.channel = None + self.name = None + + def ReadFromStream (self, stream, offset, file_size): + self.stream = stream + ticks = 0 + seq = 0 + running_status = None + tick_warning_level = stream.timebase.ppqn * LARGE_TICK_WARNING + + # read the track header - verify it's an SMF track + stream.seek(offset) + bytes = stream.read(struct.calcsize(SMF_TRACK_HEADER_FMT)) + riff_tag, track_len = struct.unpack(SMF_TRACK_HEADER_FMT, bytes) + midi_file_logger.debug('SMF track header\n Tag: %s\n TrackLen: %d' % (riff_tag, track_len)) + if (riff_tag != SMF_TRACK_RIFF_TAG): + raise MIDIFileException(stream, MSG_INVALID_TRACK_HEADER) + self.start = stream.tell() + + # check for valid track length + if (self.start + track_len) > file_size: + stream.Warning('Ignoring illegal track length - %d exceeds length of file' % track_len) + track_len = None + + # read the entire track + note_on_list = [] + while 1: + + # save current position + pos = stream.tell() + + # check for end of track + if track_len is not None: + if (pos - self.start) >= track_len: + break + + # are we past end of track? + if self.end_of_track: + stream.Warning('Ignoring data encountered beyond end-of-track meta-event') + break; + + # read delta timestamp + delta = ReadVarLenQty(stream) + if ticks > tick_warning_level: + stream.Warning('Tick value is excessive - possibly corrupt data?') + ticks += delta + + # get the event type and process it + msg_type = ReadByte(stream) + + # if data byte, check for running status + if msg_type & 0x80 == 0: + + # use running status + msg_type = running_status + + # back up so event can process data + stream.seek(-1,1) + + # if no running status, we have a problem + if not running_status: + stream.Warning('Ignoring data byte received with no running status') + + # create event type from stream + event = MIDIEvent.ReadFromStream(stream, seq, ticks, msg_type) + + if self.channel == None: + try: + self.channel = event.channel + except AttributeError: + pass + + # track note-ons + if event.msg_type == NOTE_ON: + + """ + Experimental code to clean up overlapping notes + Clean up now occurs during write process + + for note_on in note_on_list: + if (event.channel == note_on.channel) and (event.note == note_on.note): + stream.Warning('Duplicate note-on\'s encountered without intervening note-off') + stream.Warning(' [%s]: %s' % (stream.timebase.ConvertTicksToStr(event.ticks), event.__str__())) + note_on.note_length = event.ticks - note_on.ticks - 1 + if note_on.note_length <= 0: + stream.Warning('Eliminating duplicate note-on') + event.ticks = note_on.ticks + self.events.remove(note_on) + """ + + note_on_list.append(event) + + # process note-offs + if event.msg_type == NOTE_OFF: + for note_on in note_on_list[:]: + if (event.channel == note_on.channel) and (event.note == note_on.note): + note_on.note_length = event.ticks - note_on.ticks + note_on.note_off_velocity = event.velocity + note_on_list.remove(note_on) + break + #else: + # stream.Warning('Note-off encountered without corresponding note-on') + # stream.Warning(' [%s]: %s' % (stream.timebase.ConvertTicksToStr(event.ticks), event.__str__())) + + # check for end of track + elif event.msg_type == META_EVENT and event.meta_type == META_EVENT_END_OF_TRACK: + self.end_of_track = event.ticks + + # BTH; get track name + elif event.msg_type == META_EVENT and event.meta_type == META_EVENT_SEQUENCE_TRACK_NAME: + self.name = array.array('B', event.msg).tostring() + + # append event to event list + else: + self.events.append(event) + seq += 1 + + # save position for port-mortem + stream.last_good_event = pos + + # update running statusc_str( + if msg_type < 0xf0: + running_status = msg_type + elif (msg_type < 0xf8) or (msg_type == 0xff): + running_status = None + + # check for stuck notes + #if len(note_on_list): + # stream.Warning('Note-ons encountered without corresponding note-offs') + + # check for missing end-of-track meta-event + if self.end_of_track is None: + self.last_tick = self.events[-1].ticks + stream.Warning('End of track encountered with no end-of-track meta-event') + + # if track length was bad, correct it + if track_len is None: + track_len = stream.tell() - offset - 8 + + return track_len + + def Write (self, stream, filters=None): + # save current file position so we can write header + header_loc = stream.tell() + stream.seek(header_loc + struct.calcsize(SMF_TRACK_HEADER_FMT)) + + # save a copy of the event list so we can restore it + save_events = copy.copy(self.events) + + # create note-off events + index = 0 + while 1: + if index >= len(self.events): + break + + # if note-on event, create a note-off event + event = self.events[index] + index += 1 + if event.msg_type == NOTE_ON: + note_off = NoteOffEvent(event.ticks + event.note_length, index, event.channel, event.note, event.note_off_velocity) + + # insert note-off in list + for i in range(index, len(self.events)): + if self.events[i].ticks >= note_off.ticks: + self.events.insert(i, note_off) + break + else: + self.events.append(note_off) + + # renumber list + self.events.RenumberSeq() + + # write the events + self.running_status = None + self.ticks = 0 + for event in self.events: + + # write event + event.WriteToStream(stream, self, filters) + + # restore original list (without note-off events) + self.events = save_events + + # write the end-of-track meta-event + MetaEvent(self.end_of_track, 0, META_EVENT_END_OF_TRACK,[]).WriteToStream(stream, self, None) + + # write track header + end_of_track = stream.tell() + track_len = end_of_track - header_loc - struct.calcsize(SMF_TRACK_HEADER_FMT) + stream.seek(header_loc) + bytes = struct.pack(SMF_TRACK_HEADER_FMT, SMF_TRACK_RIFF_TAG, track_len) + stream.write(bytes) + stream.seek(end_of_track) + + def Trim (self, start, end, slide=True, chase_controllers=True, delete_meta_events=False, quantize=0): + controllers = None + + if quantize: + # quantize events just before start + for event in self.events.SelectEvents(start - quantize, start): + midi_file_logger.debug('Trim: Moving event %s to %d' % (event.__str__(), start)) + event.ticks = start + + # quantize events just before end + for event in self.events.SelectEvents(end - quantize, end): + midi_file_logger.debug('Trim: Moving event %s to %d' % (event.__str__(), end)) + event.ticks = end + + # trim start + if start: + + # find first event inside trim + start_event = self.events.SeekEvent(start) + if start_event is not None: + + # chase controllers to cut point + if chase_controllers: + controllers = self.events.ChaseControllers(self.events[start_event].seq) + controller_events = controllers.GenerateEventList(0) + midi_file_logger.debug('Trim: insert new controller events at %d:' % start) + controller_events.DumpEvents(None, self.stream.timebase) + self.events.InsertEvents(controller_events, start_event) + + # delete events + midi_file_logger.debug('Trim: deleting events up to event %d' % start_event) + if delete_meta_events: + self.events.DeleteEvents(None, start_event, None) + else: + self.events.DeleteEvents(None, start_event, start) + + # delete everything except metadata + else: + self.events.DeleteEvents(None, None, start) + + # trim end + end_event = self.events.SeekEvent(end) + if end_event is not None: + midi_file_logger.debug('Trim: trimming section starting at event %d' % end_event) + self.events.DeleteEvents(end_event, None) + + # trim any notes that extend past the end + for event in self.events: + if event.msg_type == NOTE_ON: + if (event.ticks + event.note_length) > end: + midi_file_logger.debug('Trim: trimming note that extends past end %s' % event.TimeEventStr(self.stream.timebase)) + event.note_length = end - event.ticks + if event.note_length <= 0: + raise 'Error in note length - note should have been deleted' + + midi_file_logger.debug('Trim: initial end-of-track: %d' % self.end_of_track) + self.end_of_track = min(self.end_of_track, end) + + # slide events to start of track to fill hole + if slide and start: + midi_file_logger.debug('Trim: sliding events: %d' % start) + for event in self.events: + if event.ticks > start: + event.ticks -= start + else: + event.ticks = 0 + self.end_of_track = max(0, self.end_of_track - start) + midi_file_logger.debug('Trim: new end-of-track: %d' % self.end_of_track) + + self.events.RenumberSeq() + self.events.FixNoteLengths() + + def DumpEvents (self, output): + self.events.DumpEvents(output, self.stream.timebase) + if output is not None: + output.write('[%s]: end-of-track\n' % self.stream.timebase.ConvertTicksToStr(self.end_of_track)) + else: + midi_file_logger.debug('[%s]: end-of-track' % self.stream.timebase.ConvertTicksToStr(self.end_of_track)) + + +#--------------------------------------------------------------- +# MIDIFile +#--------------------------------------------------------------- +class MIDIFile (file): + """The MIDIFile class implements methods for reading, parsing, + modifying, and writing Standard MIDI Files (SMF). + + """ + def __init__ (self, name, mode): + file.__init__(self, name, mode) + self.timebase = TimeBase() + + def ReadFromStream (self, start_offset=0, file_size=None): + """Parse the MIDI file creating a list of properties, tracks, + and events based on the contents of the file. + + """ + + # determine file size - without using os.stat + if file_size == None: + self.start_offset = start_offset + self.seek(0,2) + file_size = self.tell() - self.start_offset + self.seek(start_offset,0) + else: + file_size = file_size + + # for error recovery + self.last_good_event = None + self.error_loc = None + + # read the file header - verify it's an SMF file + bytes = self.read(struct.calcsize(SMF_HEADER_FMT)) + riff_tag, self.hdr_len, self.format, self.num_tracks, self.timebase.ppqn = struct.unpack(SMF_HEADER_FMT, bytes) + midi_file_logger.debug('SMF header\n Tag: %s\n HeaderLen: %d\n Format: %d\n NumTracks: %d\n PPQN: %d\n' % \ + (riff_tag, self.hdr_len, self.format, self.num_tracks, self.timebase.ppqn)) + + # sanity check on header + if (riff_tag != SMF_RIFF_TAG) or (self.format not in range(2)): + raise MIDIFileException(self, MSG_NOT_SMF_FILE) + + # check for odd header size + if self.hdr_len + 8 != struct.calcsize(SMF_HEADER_FMT): + self.Warning('SMF file has unusual header size: %d bytes' % self.hdr_len) + + # read each of the tracks + offset = start_offset + self.hdr_len + 8 + self.tracks = [] + self.end_of_file = 0 + for i in range(self.num_tracks): + #print("Track: %d" % i) + + # parse the track + track = MIDITrack() + length = track.ReadFromStream(self, offset, file_size) + track.trackNum = i + + self.tracks.append(track) + + # calculate offset to next track + offset += length + 8 + + # determine time of last event + self.end_of_file = max(self.end_of_file, track.end_of_track) + + # if start_offset is zero, the final offset should match the file length + if (offset - start_offset) != file_size: + self.Warning('SMF file size is incorrect - should be %d, was %d' % (file_size, offset)) + + def Save (self, offset=0, filters=None): + """Save this file back to disk with modifications.""" + if (not 'w' in self.mode) and (not '+' in self.mode): + raise MIDIFileException(self, 'Cannot write to file in read-only mode') + self.Write(self, offset, filters) + + def SaveAs (self, filename, offset=0, filters=None): + """Save MIDI data to new file.""" + output_file = MIDIFile(filename, 'wb') + self.Write(output_file, offset, filters) + output_file.close() + + def Write (self, output_file, offset=0, filters=None): + """This function does the actual work of writing the file.""" + # write the file header + output_file.seek(offset) + bytes = struct.pack(SMF_HEADER_FMT, SMF_RIFF_TAG, struct.calcsize(SMF_HEADER_FMT) - 8, self.format, self.num_tracks, self.timebase.ppqn) + output_file.write(bytes) + + # write out the tracks + for track in self.tracks: + track.Write(output_file, filters) + + # flush the data to disk + output_file.flush() + + def ConvertToType0 (self): + """Convert a file to type 0.""" + if self.format == 0: + midi_file_logger.warning('File is already type 0 - ignoring request to convert') + return + + # convert to type 0 + for track in self.tracks[1:]: + self.tracks[0].MergeEvents(track.events) + self.tracks = self.tracks[:1] + self.num_tracks = 1 + self.format = 0 + + def DeleteEmptyTracks (self): + """Delete any tracks that do not contain MIDI messages""" + track_num = 0 + for track in self.tracks[:]: + for event in self.tracks.events: + if event.msg_type in MIDI_MESSAGES: + break; + else: + midi_file_logger.debug('Deleting track %d' % track_num) + self.tracks.remove(track) + track_num += 1 + + def ConvertToTicks (self, measures, beats, ticks): + return self.timebase.ConvertToTicks(measures, beats, ticks) + + def Trim (self, start, end, quantize=0, chase_controllers=True): + track_num = 0 + for track in self.tracks: + midi_file_logger.debug('Trimming track %d' % track_num) + track.Trim(start, end, quantize=quantize, chase_controllers=chase_controllers) + track_num += 1 + + def DumpTracks (self, output=None): + track_num = 0 + for track in self.tracks: + if output is None: + midi_file_logger.debug('*** Track %d ***' % track_num) + else: + output.write('*** Track %d ***' % track_num) + track.DumpEvents(output) + track_num += 1 + + def Warning (self, msg): + midi_file_logger.warning('[%d]: %s' % (self.tell(), msg)) + + def Error (self, msg): + midi_file_logger.error('[%d]: %s' % (self.tell(), msg)) + + def DumpError (self): + if self.last_good_event: + midi_file_logger.error('Dumping from last good event:') + pos = self.last_good_event - 16 + length = self.error_loc - pos + 16 + elif self.error_loc: + midi_file_logger.error('Dumping from 16 bytes prior to error:') + pos = self.error_loc + length = 32 + else: + midi_file_logger.error('No dump information available') + return + + self.seek(pos, 0) + for i in range(length): + if i % 16 == 0: + if i: + midi_file_logger.error(' '.join(debug_out)) + debug_out = ['%08x:' % (pos + i)] + byte = self.read(1) + if len(byte) == 0: + break; + debug_out.append('%02x' % ord(byte)) + if i % 16 > 0: + midi_file_logger.error(' '.join(debug_out)) + +def GetMidiInfo(midiFile): + """Bth; Get MIDI info""" + + class midiData(object): + def __init__ (self): + self.err = 1 + self.endMbt = "0:0:0" + self.totalTicks = 0 + self.maxTracks = 0 + self.maxMeasures = 0 + self.maxBeats = 0 + self.maxTicks = 0 + self.totalTicks = 0 + self.timebase = None + self.ppqn = 0 + self.beats_per_measure = 0 + self.trackList = [] + + md = midiData() + + try: + m = MIDIFile(midiFile, 'rb') + m.ReadFromStream() + + for track in m.tracks: + if track.channel is not None: + empty = False + trk = track.channel + 1 + else: + empty = True + trk = '' + md.trackList.append(trackGrid(track.trackNum, trk, track.name, empty)) + + md.endMbt = m.timebase.ConvertTicksToMBT(m.end_of_file) + md.endMbtStr = "%d:%d:%d" % (md.endMbt[0], md.endMbt[1], md.endMbt[2]) + md.maxMeasures = md.endMbt[0] + md.maxBeats = 4 + md.maxTicks = m.timebase.ppqn + md.maxTracks = m.num_tracks + md.totalTicks = m.end_of_file + md.timebase = m.timebase + md.ppqn = m.timebase.ppqn + md.beats_per_measure = m.timebase.beats_per_measure + + #add above if more added + md.err = 0 + + m.close() + except: + raise + pass + + return md + + + + +#--------------------------------------------------------------- +# main +#--------------------------------------------------------------- +if __name__ == '__main__': + sys = __import__('sys') + os = __import__('os') + + # initialize root logger + root_logger = logging.getLogger('') + root_logger.setLevel(logging.NOTSET) + + # initialize console handler + console_handler = logging.StreamHandler() + console_handler.setFormatter(logging.Formatter('%(message)s')) + console_handler.setLevel(logging.DEBUG) + root_logger.addHandler(console_handler) + + files = [] + dirs = [] + last_arg = None + sysex_filter = False + drum_filter = False + convert = False + + # process args + for arg in sys.argv[1:]: + + # previous argument implies this argument + if last_arg is not None: + if last_arg == '-DIR': + dirs.append(arg) + last_arg = None + + # check for switch + elif arg[0] == '-': + if arg == '-DIR': + last_arg = arg + elif arg == '-SYSEX': + sysex_filter = True + elif arg == '-DRUMS': + drum_filter = True + elif arg == '-CONVERT': + convert = True + else: + midi_file_logger.error('Bad option %s' % arg) + + # must be a filename + else: + files.append(arg) + + # setup filters + filters = [] + if sysex_filter: + filters.append(EventTypeFilter((SYSEX,))) + if drum_filter: + filters.append(ChannelFilter((9,),False)) + + + # process dirs + for d in dirs: + for root, dir_list, file_list in os.walk(d): + for f in file_list: + if f.endswith('.mid'): + files.append(os.path.join(root, f)) + + # process files + bad_files = [] + for f in files: + midi_file_logger.info('Processing file %s' % f) + midiFile = MIDIFile(f, 'rb') + try: + midiFile.ReadFromStream() + + #midiFile.DumpTracks() + #print('[%s]: end-of-track\n' % midiFile.timebase.ConvertTicksToStr(midiFile.end_of_file)) + + # convert to type 0 + if convert and (midiFile.format == 1): + midiFile.Convert(0) + converted = True + else: + converted = False + + # write processed file + if converted or len(filters): + midiFile.SaveAs(f[:-4] + '-mod.mid', filters) + + except MIDIFileException, X: + bad_files.append(f) + midi_file_logger.error('Error in file %s' % f) + midi_file_logger.error(X) + midiFile.DumpError() + midiFile.close() + + # dump problem files + if len(bad_files): + midi_file_logger.info('The following file(s) had errors:') + for f in bad_files: + midi_file_logger.info(f) + else: + midi_file_logger.info('All files read successfully') + -- cgit v1.2.3 From 336f0688347f92184ba9e68e3df8fbdef020cea8 Mon Sep 17 00:00:00 2001 From: Jean-Michel Trivi <> Date: Mon, 13 Apr 2009 17:55:56 -0700 Subject: AI 145974: am: CL 145803 Add Sonivox' JET documentation: authoring guidelines, JETCreator user manual, programming manual for the native library. Original author: jmtrivi Merged from: //branches/cupcake/... Automated import of CL 145974 --- docs/JET_Authoring_Guidelines.htm | 2442 +++++++++++++++++ docs/JET_Authoring_Guidelines_files/header.htm | 202 ++ docs/JET_Authoring_Guidelines_files/image001.jpg | Bin 0 -> 113715 bytes docs/JET_Authoring_Guidelines_files/image002.emz | Bin 0 -> 3093 bytes docs/JET_Authoring_Guidelines_files/image004.emz | Bin 0 -> 2896 bytes docs/JET_Authoring_Guidelines_files/image006.emz | Bin 0 -> 2840 bytes docs/JET_Authoring_Guidelines_files/image008.gif | Bin 0 -> 8332 bytes docs/JET_Authoring_Guidelines_files/image010.gif | Bin 0 -> 4439 bytes docs/JET_Authoring_Guidelines_files/image011.png | Bin 0 -> 84979 bytes docs/JET_Authoring_Guidelines_files/image012.gif | Bin 0 -> 35354 bytes docs/JET_Authoring_Guidelines_files/image013.gif | Bin 0 -> 8144 bytes docs/JET_Authoring_Guidelines_files/image014.gif | Bin 0 -> 8546 bytes docs/JET_Authoring_Guidelines_files/image015.emz | Bin 0 -> 2459 bytes docs/JET_Creator_User_Manual.htm | 3032 ++++++++++++++++++++++ docs/JET_Creator_User_Manual_files/header.htm | 220 ++ docs/JET_Creator_User_Manual_files/image001.emz | Bin 0 -> 3093 bytes docs/JET_Creator_User_Manual_files/image002.gif | Bin 0 -> 8144 bytes docs/JET_Creator_User_Manual_files/image003.emz | Bin 0 -> 2896 bytes docs/JET_Creator_User_Manual_files/image004.gif | Bin 0 -> 8546 bytes docs/JET_Creator_User_Manual_files/image005.emz | Bin 0 -> 2840 bytes docs/JET_Creator_User_Manual_files/image006.gif | Bin 0 -> 8332 bytes docs/JET_Creator_User_Manual_files/image007.emz | Bin 0 -> 2459 bytes docs/JET_Creator_User_Manual_files/image008.gif | Bin 0 -> 4439 bytes docs/JET_Creator_User_Manual_files/image009.png | Bin 0 -> 17097 bytes docs/JET_Creator_User_Manual_files/image010.jpg | Bin 0 -> 15103 bytes docs/JET_Creator_User_Manual_files/image011.png | Bin 0 -> 62984 bytes docs/JET_Creator_User_Manual_files/image012.jpg | Bin 0 -> 31618 bytes docs/JET_Creator_User_Manual_files/image013.png | Bin 0 -> 49892 bytes docs/JET_Creator_User_Manual_files/image014.jpg | Bin 0 -> 25662 bytes docs/JET_Creator_User_Manual_files/image015.png | Bin 0 -> 54424 bytes docs/JET_Creator_User_Manual_files/image016.jpg | Bin 0 -> 24013 bytes docs/JET_Creator_User_Manual_files/image017.png | Bin 0 -> 21566 bytes docs/JET_Creator_User_Manual_files/image018.jpg | Bin 0 -> 21521 bytes docs/JET_Creator_User_Manual_files/image019.png | Bin 0 -> 21236 bytes docs/JET_Creator_User_Manual_files/image020.jpg | Bin 0 -> 21251 bytes docs/JET_Creator_User_Manual_files/image021.png | Bin 0 -> 16350 bytes docs/JET_Creator_User_Manual_files/image022.jpg | Bin 0 -> 16546 bytes docs/JET_Creator_User_Manual_files/image023.png | Bin 0 -> 38252 bytes docs/JET_Creator_User_Manual_files/image024.jpg | Bin 0 -> 32400 bytes docs/JET_Creator_User_Manual_files/image025.emz | Bin 0 -> 3414 bytes docs/JET_Creator_User_Manual_files/image026.gif | Bin 0 -> 8166 bytes docs/JET_Creator_User_Manual_files/image027.emz | Bin 0 -> 2194 bytes docs/JET_Creator_User_Manual_files/image028.gif | Bin 0 -> 3717 bytes docs/JET_Creator_User_Manual_files/image029.jpg | Bin 0 -> 113715 bytes docs/JET_Creator_User_Manual_files/image030.emz | Bin 0 -> 3093 bytes docs/JET_Creator_User_Manual_files/image031.emz | Bin 0 -> 2896 bytes docs/JET_Creator_User_Manual_files/image032.emz | Bin 0 -> 2840 bytes docs/JET_Creator_User_Manual_files/image033.emz | Bin 0 -> 2459 bytes docs/JET_Creator_User_Manual_files/image034.emz | Bin 0 -> 3414 bytes docs/JET_Creator_User_Manual_files/image035.emz | Bin 0 -> 2194 bytes docs/JET_Programming_Manual.htm | 1333 ++++++++++ docs/JET_Programming_Manual_files/header.htm | 73 + docs/JET_Programming_Manual_files/image002.png | Bin 0 -> 6098 bytes docs/JET_Programming_Manual_files/image004.png | Bin 0 -> 6817 bytes docs/JET_Programming_Manual_files/image006.png | Bin 0 -> 5332 bytes docs/JET_Programming_Manual_files/image008.png | Bin 0 -> 3830 bytes docs/JET_Programming_Manual_files/image010.png | Bin 0 -> 3054 bytes docs/JET_Programming_Manual_files/image012.png | Bin 0 -> 8994 bytes docs/JET_Programming_Manual_files/image013.emz | Bin 0 -> 3093 bytes docs/JET_Programming_Manual_files/image014.emz | Bin 0 -> 2896 bytes docs/JET_Programming_Manual_files/image015.emz | Bin 0 -> 2840 bytes docs/JET_Programming_Manual_files/image016.emz | Bin 0 -> 2459 bytes docs/JET_Programming_Manual_files/image017.emz | Bin 0 -> 2194 bytes docs/JET_Programming_Manual_files/image018.emz | Bin 0 -> 3414 bytes 64 files changed, 7302 insertions(+) create mode 100644 docs/JET_Authoring_Guidelines.htm create mode 100755 docs/JET_Authoring_Guidelines_files/header.htm create mode 100755 docs/JET_Authoring_Guidelines_files/image001.jpg create mode 100755 docs/JET_Authoring_Guidelines_files/image002.emz create mode 100755 docs/JET_Authoring_Guidelines_files/image004.emz create mode 100755 docs/JET_Authoring_Guidelines_files/image006.emz create mode 100755 docs/JET_Authoring_Guidelines_files/image008.gif create mode 100755 docs/JET_Authoring_Guidelines_files/image010.gif create mode 100755 docs/JET_Authoring_Guidelines_files/image011.png create mode 100755 docs/JET_Authoring_Guidelines_files/image012.gif create mode 100755 docs/JET_Authoring_Guidelines_files/image013.gif create mode 100755 docs/JET_Authoring_Guidelines_files/image014.gif create mode 100755 docs/JET_Authoring_Guidelines_files/image015.emz create mode 100644 docs/JET_Creator_User_Manual.htm create mode 100755 docs/JET_Creator_User_Manual_files/header.htm create mode 100755 docs/JET_Creator_User_Manual_files/image001.emz create mode 100755 docs/JET_Creator_User_Manual_files/image002.gif create mode 100755 docs/JET_Creator_User_Manual_files/image003.emz create mode 100755 docs/JET_Creator_User_Manual_files/image004.gif create mode 100755 docs/JET_Creator_User_Manual_files/image005.emz create mode 100755 docs/JET_Creator_User_Manual_files/image006.gif create mode 100755 docs/JET_Creator_User_Manual_files/image007.emz create mode 100755 docs/JET_Creator_User_Manual_files/image008.gif create mode 100755 docs/JET_Creator_User_Manual_files/image009.png create mode 100755 docs/JET_Creator_User_Manual_files/image010.jpg create mode 100755 docs/JET_Creator_User_Manual_files/image011.png create mode 100755 docs/JET_Creator_User_Manual_files/image012.jpg create mode 100755 docs/JET_Creator_User_Manual_files/image013.png create mode 100755 docs/JET_Creator_User_Manual_files/image014.jpg create mode 100755 docs/JET_Creator_User_Manual_files/image015.png create mode 100755 docs/JET_Creator_User_Manual_files/image016.jpg create mode 100755 docs/JET_Creator_User_Manual_files/image017.png create mode 100755 docs/JET_Creator_User_Manual_files/image018.jpg create mode 100755 docs/JET_Creator_User_Manual_files/image019.png create mode 100755 docs/JET_Creator_User_Manual_files/image020.jpg create mode 100755 docs/JET_Creator_User_Manual_files/image021.png create mode 100755 docs/JET_Creator_User_Manual_files/image022.jpg create mode 100755 docs/JET_Creator_User_Manual_files/image023.png create mode 100755 docs/JET_Creator_User_Manual_files/image024.jpg create mode 100755 docs/JET_Creator_User_Manual_files/image025.emz create mode 100755 docs/JET_Creator_User_Manual_files/image026.gif create mode 100755 docs/JET_Creator_User_Manual_files/image027.emz create mode 100755 docs/JET_Creator_User_Manual_files/image028.gif create mode 100755 docs/JET_Creator_User_Manual_files/image029.jpg create mode 100755 docs/JET_Creator_User_Manual_files/image030.emz create mode 100755 docs/JET_Creator_User_Manual_files/image031.emz create mode 100755 docs/JET_Creator_User_Manual_files/image032.emz create mode 100755 docs/JET_Creator_User_Manual_files/image033.emz create mode 100755 docs/JET_Creator_User_Manual_files/image034.emz create mode 100755 docs/JET_Creator_User_Manual_files/image035.emz create mode 100644 docs/JET_Programming_Manual.htm create mode 100755 docs/JET_Programming_Manual_files/header.htm create mode 100755 docs/JET_Programming_Manual_files/image002.png create mode 100755 docs/JET_Programming_Manual_files/image004.png create mode 100755 docs/JET_Programming_Manual_files/image006.png create mode 100755 docs/JET_Programming_Manual_files/image008.png create mode 100755 docs/JET_Programming_Manual_files/image010.png create mode 100755 docs/JET_Programming_Manual_files/image012.png create mode 100755 docs/JET_Programming_Manual_files/image013.emz create mode 100755 docs/JET_Programming_Manual_files/image014.emz create mode 100755 docs/JET_Programming_Manual_files/image015.emz create mode 100755 docs/JET_Programming_Manual_files/image016.emz create mode 100755 docs/JET_Programming_Manual_files/image017.emz create mode 100755 docs/JET_Programming_Manual_files/image018.emz diff --git a/docs/JET_Authoring_Guidelines.htm b/docs/JET_Authoring_Guidelines.htm new file mode 100644 index 0000000..2ade2e3 --- /dev/null +++ b/docs/JET_Authoring_Guidelines.htm @@ -0,0 +1,2442 @@ + + + + + + + + +JET Authoring Guidelines + + + + + + + + +
+   Copyright (C) 2009 The Android Open Source Project
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+ +
+ +

JET™ Content Authoring Guidelines

+ +

JET Interactive Music Engine

+ +

Vrs 1.0

+ +

Authored by SONiVOX

+ +

www.sonivoxrocks.com

+ +

Copyright 2009 Sonic Network, Inc.

+ +

 

+ +

 

+ +

1         +Introduction

+ +

1.1        +Overview

+ +

This document contains content creation +guidelines for composers and sound designers authoring music and sound effects +for the SONiVOX JET platform.  JET is an +interactive music player for small embedded devices, including the Google Android +platform. It allows applications to include interactive music soundtracks, in MIDI format, that respond in real-time to game play +events and user interaction.

+ +

 

+ +

JET works in conjunction with SONiVOX’s +Embedded Audio Synthesizer (EAS) which is the MIDI +playback device for Android.  Both the +JET and EAS engines are integrated into the Android embedded platform as well +as inherent in the JET Creator application. As such, the JET content author can +be sure that the playback will sound exactly the same in both the JET Creator +and the final Android application playing back on Android mobile devices.

+ +

 

+ +

The JET content author works in up to three +different applications to create JET content; a standard MIDI +sequencer (Logic, Cubase, etc.), optionally a DLS2 instrument editor (Awave), +and the JET Creator application to add and audition JET interactive elements.

+ +

 

+ +

The final result is a .jet file that the +content author gives to the application programmer for use in the game or +application.

+ +

 

+ +

 

+ +

1.2        +Abbreviations and Common Terms

+ +

It is important to use a common set of +terms to minimize confusion. Since JET uses MIDI +in a unique way, normal industry terms may not always suffice. Here is the +definition of terms as they are used in this document and in the JET Creator +application:

+ +

 

+ +

Channel: MIDI data associated with a specific MIDI +channel. Standard MIDI allows for 16 channels of MIDI +data each of which are typically associated with a specific instrument.

+ +

 

+ +

Controller: A MIDI event consisting of a +channel number, controller number, and a controller value. The MIDI spec associates many controller numbers with +specific functions, such as volume, expression, sustain pedal, etc. JET also +uses controller events as a means of embedding special control information in a +MIDI sequence to provide for audio +synchronization.

+ +

 

+ +

DAW: Digital Audio Workstation. A common term for MIDI +and audio sequencing applications such as Logic, SONAR, Cubase and others.

+ +

 

+ +

EAS: Embedded MIDI Synthesizer. The +name of the SONiVOX MIDI synthesizer engine.

+ +

 

+ +

JET: Jet Interactive Engine. The name of the SONiVOX JET interactive +music engine.

+ +

 

+ +

Segment: A musical section such as a chorus or verse that is a component of +the overall composition. In JET, a segment can be an entire MIDI file or a +derived from a portion of a MIDI file.

+ +

 

+ +

SMF-0: Standard MIDI File Type 0, a MIDI file that contains a single +track, but may be made up of multiple channels of MIDI +data.

+ +

 

+ +

SMF-1: Standard MIDI File Type 1, a MIDI file that contains a one more +tracks, and each track may in turn be made up of one or more channels of MIDI data. By convention, each channel is stored on a +separate track in an SMF-1 file. However, it is possible to have multiple MIDI +channels on a single track, or multiple tracks that contain data for the same MIDI channel.

+ +

 

+ +

Track: A single track in a DAW containing a timed sequence of MIDI events. Be careful not to confuse Tracks with +Channels. A MIDI file may contain many tracks with several tracks utilizing the +same MIDI channel.

+ +

 

+ +

 

+ +

1         +The JET Interactive Music Concept

+ +

Interactive music can be defined as music +that changes in real-time according to non-predictable events such as user +interaction or game play events. In this way, interactive music is much more +engaging as it has the ability to match the energy and mood of a game much +closer than a pre-composed composition that never changes. In some applications +and games, interactive music is central to the game play. Guitar Hero is one +such popular game. When the end user successfully ‘captures’ the musical notes +coming down the fret board, the music adapts itself and simultaneously keeps +score of successes and failures. JET allows for these types of music driven +games as well.

+ +

 

+ +

There are several methods for making and +controlling interactive music and JET is one such method. This section +describes the features of JET and how they might be used in a game or software +application. It also describes how JET can be used to save memory in small +footprint devices such as Android enabled mobile handsets.

+ +

1.1.1       Data Compression

+ +

JET supports a flexible music format that +can be used to create extended musical sequences with a minimal amount of data. +A musical composition is broken up into segments that can be sequenced to +create a longer piece. The sequencing can be fixed at the time the music file +is authored, or it can be created dynamically under program control.

+ +

1.1.2       Linear Music Example

+ +

+ +

Figure 1: Linear Music Piece

+ +

 

+ +

This diagram shows how musical segments are +stored. Each segment is authored as a separate MIDI +file. A post-processing tool combines the files into a single container file. +Each segment can contain alternate music tracks that can be muted or un-muted +to create additional interest. An example might be a brass accent in the chorus +that is played only the last time through. Also, segments can be transposed up +or down.

+ +

 

+ +

The bottom part of the diagram shows how +the musical segments can be recombined to create a linear music piece. In this +example, the bridge might end with a half-step key modulation and the remaining +segments could be transposed up a half-step to match.

+ +

1.1.3          +Non-linear Music Example

+ +

+ +

Figure 2: Non-linear music piece

+ +

 

+ +

In this diagram, we see a non-linear music +piece. The scenario is a first-person-shooter (FPS) and JET is providing the +background music. The intro plays as the level is loading and then transitions +under program control to the Searching segment. This segment is repeated +indefinitely, perhaps with small variations (using the mute/un-mute feature) +until activity in the game dictates a change.

+ +

 

+ +

As the player nears a monster lair, the +program starts a synchronized transition to the Danger segment, increasing the +tension level in the audio. As the player draws closer to the lair, additional +tracks are un-muted to increase the tension.

+ +

 

+ +

As the player enters into combat with the +monster, the program starts a synchronized transition to the Combat segment. +The segment repeats indefinitely as the combat continues. A Bonus Hit +temporarily un-mutes a decorative track that notifies the player of a +successful attack, and similarly, another track is temporarily un-muted to +signify when the player receives Special Damage.

+ +

 

+ +

At the end of combat, the music transitions +to a victory or defeat segment based on the outcome of battle.

+ +

1.1.4          +Mute/Un-mute Synchronization

+ +

JET can also synchronize the muting and +un-muting of tracks to events in the music. For example, in the FPS game, it +would probably be desirable to place the musical events relating to bonuses and +damage as close to the actual game event as possible. However, simply un-muting +a track at the moment the game event occurs might result in a music clip +starting in the middle. Alternatively, a clip could be started from the +beginning, but then it wouldn’t be synchronized with the other music tracks.

+ +

 

+ +

However, with the JET sync engine, a clip +can be started at the next opportune moment and maintain synchronization. This +can be accomplished by placing a number of short music clips on a decorative +track. A MIDI event in the stream signifies +the start of a clip and a second event signifies the end of a clip. When the +application calls the JET clip function, the next clip in the track is allowed +to play fully synchronized to the music. Optionally, the track can be +automatically muted by a second MIDI event.

+ +

 

+ +

+ +

Figure 3: Synchronized Mute/Unmute

+ +

1.2        +Audio Synchronization

+ +

JET provides an audio synchronization API +that allows game play to be synchronized to events in the audio. The mechanism +relies on data embedded in the MIDI file at +the time the content is authored. When the JET engine senses an event during +playback it generates a callback into the application program. The timing of +the callback can be adjusted to compensate for any latency in the audio +playback system so that audio and video can be synchronized. The diagram below +shows an example of a simple music game that involves pressing the left and +right arrows in time with the music.

+ +

 

+ +

 

+ +

+ +

Figure 4: Music Game with Synchronization

+ +

 

+ +

The arrows represent events in the music +sequence where game events need to be synchronized. In this case, the blue +arrow represents a time where the player is supposed to press the left button, +and the red arrow is for the right button. The yellow arrow tells the game +engine that the sequence is complete. The player is allowed a certain time +window before and after the event to press the appropriate key.

+ +

 

+ +

If an event is received and the player has +not pressed a button, a timer is set to half the length of the window. If the +player presses the button before the timer expires, the game registers a +success, and if not, the game registers a failure.

+ +

 

+ +

If the player presses the button before the +event is received, a timer is set to half the length of the window. If an event +is received before the timer expires, the game registers a success, and if not, +the game registers a failure. Game play might also include bonuses for getting +close to the timing of the actual event.

+ +

 

+ +

2         +JET Content Authoring Overview

+ +

To author JET files and hear them playback interactively, +the content author will work in two or three applications which are designed to +work together smoothly. The first is application is any off-the-shelf MIDI sequencing application or Digital Audio Workstation +that supports VST (for PC) or AU (for Mac) plugins. (Logic, SONAR, Cubase, etc) +Here the author will compose their MIDI music +files using the SONiVOX EAS Synth plugin as the playback synthesizer.

+ +

 

+ +

Once the composer has completed their MIDI file(s), they import them into the JET Creator application. +Here the author will setup and audition the conditions for interactive playback +within the JET enabled game.

+ +

 

+ +

Optionally, the author may elect to create +a custom DLS soundbank. This can be created in any off-the-shelf DLS authoring +application, such as Awave from MJSoft, and loaded into JET Creator along with +the MIDI files.

+ +

 

+ +

Below is an overview of this process. A +more detailed explanation of each step follows.

+ +

 

+ +
    +
  • Launch digital audio workstation (DAW)
  • +
      +
    • Assign the SONiVOX EAS Synth plugin as the playback + synthesizer
    • +
    • Optionally load a custom DLS2 soundset
    • +
    • Compose and save MIDI file(s)
    • +
    +
  • Launch the JET Creator application
  • +
      +
    • Create segments using the MIDI + and DLS2 source files
    • +
    • Add interactive elements
    • +
    • Audition interactive elements
    • +
    • Save and Export JET files for use in the Android application
    • +
    +
+ +

 

+ +

Launch DAW – Content authors will need to +use a third party MIDI authoring application to compose their MIDI +files. It is recommended they use a digital audio workstation (DAW) application +that supports VST or AU plugins as this will enable them to listen to the EAS +MIDI Synthesizer and DLS2 soundsets that will be utilized in the Android +application itself. Some examples of popular DAWs include SONAR (PC) and LOGIC +(MAC).

+ +

 

+ +

Assign SONiVOX EAS Synth plugin as the +playback synthesizer – The SONiVOX EAS Synth plugin is a VST and AU compatible +virtual instrument that plugs into VST or AU compatible DAWs. This software +plugin uses the same SONiVOX EAS MIDI synthesizer engine and default General +MIDI  wavetable soundset inherent in +Android. Using this plugin allows content authors to hear the exact audio +rendering of the instruments and MIDI file +that will be used in their Android applications.

+ +

 

+ +

Optionally Load DLS2 Soundset – The SONiVOX +EAS Synth plugin allows for the loading of any DLS2 compatible soundset for +playback. These could include a new GM wavetable set, or a small collection of +just a few custom instruments for a given application. Note, the DLS file does +not replace the internal GM wavetable used by the EAS engine. DLS soundsets +play in conjunction with the internal GM wavetable.

+ +

 

+ +

Compose MIDI File – Compose MIDI soundtracks for the Android application.

+ +

 

+ +

Launch JET Creator – Once all DLS2 and MIDI source files have been authored, the content author +should launch the JET Creator and begin creating JET Segments. The segments +will reference the MIDI files and any custom +DLS2 soundbanks.

+ +

 

+ +

Assign JET Segment Attributes – After +creating segments the content author interactive elements. Interactive elements +include mute and unmute settings of individual tracks in the MIDI file(s) as +well as MIDI controller numbers that serve as +“events” in the game. These attributes tell the JET engine how and when to play +the different musical segments according to the JET API commands in the Android +application. See below for more detail on this.

+ +

 

+ +

Audition Interactive Playback – After +assigning the segment attributes and creating the JET file, the content author +can audition all interactive playback elements in the JET Audition window.

+ +

 

+ +

Save .jtc File – After the author is +satisfied with the result, it is recommended they save the JET Creator .jtc +file which will save their settings, references to source files, etc.

+ +

 

+ +

Export Files – Exporting the JET Creator +file will bundle all source files and their attributes into a single .zip file. +The zip file will also contain a .jet file for use by the Android application.

+ +

 

+ +

 

+ +

3         +EAS Synth Virtual Instrument Plugin

+ +

Included in the JET Creator package is the +EAS software synthesizer in plug-in format. The EAS plugin synth allows the +composer to hear the instruments used in Android as they are composing their MIDI sequence. The EAS Synth plugin allows for the +loading of custom DLS2 sounds as well.

+ +

 

+ +

3.1        +Installing the EAS Synth Plugin

+ +

Follow the instructions for your individual +DAW to install and utilize the plugin. For Mac users this will typically +involve copying the “EAS Synth.componant” file into your plugins folder which +is usually located at /Library/Audio/Plug-ins/Components. PC users will want to +install the “EAS Synth.dll” into the plugin folder that their DAW requires.

+ +

 

+ +

3.2        +Requirements and Settings for +using the EAS Synth Plugin

+ +

The EAS Synth is an embedded synthesizer +for small mobile devices. This means it does not have the flexibility of high +end synthesizers typically utilized in a professional application such as +Logic, Digital Performer, etc. As such, only the following attributes are +supported.

+ +

 

+ +

Macintosh:

+ +

 

+ +

Mac OSX (Intel) Macs

+ +

ASIO Supported Soundcards

+ +

Sample Rate:    44100 hz

+ +

Buffer Size:       256 kbytes

+ +

 

+ +

PC:

+ +

 

+ +

Windows 2000 or Vista +operating systems

+ +

ASIO supported soundcards

+ +

Sample Rate:    44100 hz

+ +

Buffer Size:       256 kbytes

+ +

 

+ +

3.3        +Assigning MIDI +Tracks to use the EAS Synth

+ +

Each DAW has its own particular method of +assigning MIDI tracks to virtual instrument +plugins such as the SONiVOX EAS Synth. Please consult the user manual for your +DAW for detailed instructions. Below are some general guidelines for Logic +(Mac) and SONAR (PC).

+ +

3.3.1          +LOGIC 8

+ +

The SONiVOX EAS Synth virtual instrument is +a multi-timbral synthesizer. (i.e. it plays back multiple instruments on unique +MIDI channels in a single instance) In Logic +8, however, you’ll want to set up 16 Logic Instruments, +each with their own instance of the EAS Synth. Each Instrument should be assigned +its own MIDI channel. Use Channel 10 for +Drums. The reason for this is that MIDI controller messages, such as Volume +(CC7) and Pan (CC10) will not be channelized if the plugin is assigned to only +a single Instrument and all MIDI tracks are +set to playback on that Instrument. In order for each MIDI +channel to respond to its own controller messages, you must assign 16 different +EAS Synth instances to 16 unique Logic Instruments.

+ +

 

+ +

A Logic 8 template file has been included +in the Android Cupcake release to facilitate the above.

+ +

 

+ +

Playback in Logic 8 may require you to be +in record enable mode for each track you are auditioning. To record enable +multiple tracks hold down the Option key.

+ +

 

+ +

To write out a standard MIDI +(type 1) file from Logic, you need to use the File Export command. IMPORTANT: +Most edits in Logic are non-destructive edits meaning they are not modifying +the actual data but rather adding an overlay onto to the data. Quantize is one +such non-destructive edit. Therefore when you export a MIDI +file, you may not see your quanitization settings.

+ +

 

+ +

In addition, the mix parameters for volume, +pan and program changes may not appear in the event list and therefore may not +write out with the MIDI file. Before exporting +a MIDI file in Logic it is recommended you do +the following:

+ +

 

+ +

Select All and use the “Insert MIDI > +Insert MIDI Settings as Events” command.

+ +

 

+ +

Select All and use the “Apply Quantization +Settings Destructively” command.

+ +

 

+ +

3.3.2          +Cakewalk SONAR 7

+ +

Sonar 7 is a bit easier to set up, use and +save than Logic 8. Simply open or start a new MIDI +file. Go to the Insert menu and select Insert Soft Synth>SONiVOX>EAS +Synth. Then assign each MIDI track’s output to +the EAS Synth. There is no need to record enable a track to hear it play back. +When saving, be sure to select MIDI Type 1.

+ +

 

+ +

SONAR 8 works similarly to SONAR 7.

+ +

 

+ +

3.3.3          +Digital Performer

+ +

We’ve seen some instances when creating +content with Digital Performer where notes with a release velocity of non-0 +will generate an extra note-on event in the EAS synth. If you are hearing a +doubling, editing the release velocity events to zero should fix this problem.

+ +

 

+ +

3.4        +Using Custom DLS2 Soundsets

+ +

The SONiVOX EAS Synthesizer supports two +simultaneous soundsets or wavetables. One is the internal General MIDI wavetable +inherent to the SONiVOX EAS Synthesizer. The other is a Downloadable Sounds +Level 2 (DLS2) soundset. The internal wavetable is a GM Level 1 compliant +wavetable with 127 melodic instruments and 1 drumkit. It is in a proprietary +SONiVOX format. The DLS2 soundsets are an open format published by the MIDI +Manufactures Association.

+ +

 

+ +

In the Android Cupcake release, the +internal wavetable is only 200 kbytes, very small, in order to be compliant +with all Android devices which may not have a lot of memory. DLS2 soundsets can +be any size that a particular device supports. Upgraded (larger) internal +wavetables as well as custom DLS2 instruments can be licensed from SONiVOX.

+ +

3.4.1          +Loading a DLS2 Soundset

+ +

To load a custom soundset, click on the +Load DLS button in the EAS Synth plugin interface. Browse to the DLS2 file you +wish to load and say OK. Only DLS Level 2 formatted soundsets are +supported.

+ +

 

+ +

3.4.2          +Using a DLS2 Soundset

+ +

Since both the internal EAS GM wavetable +and a custom DLS2 soundset are used simultaneously, you must be sure you have +your MIDI Program Changes set correctly. DLS2 instruments must be assigned to a +Bank other than the default GM bank +used by the internal synthesizer.

+ +

 

+ +

The internal EAS synthesizer is assigned to +Banks 121 (melodic instruments) and 120 (drum instruments). This follows the +General MIDI Level 1 specification. Note: Most MIDI +sequencers require you to use Bank 0 to select the default wavetable. Custom +DLS2 soundsets, therefore, should utilize a different Bank. We recommend Bank +1.

+ +

 

+ +

The EAS synth supports MSB (Controller 0), +LSB (Controller 32) Bank change messages. There are two places you need to set +this Bank and Program Change number. The first is in your DLS2 soundset. Using +Bank 1, each Instrument would be assigned MSB 1, LSB 0, then the Instrument +Program Change number. The second place to use the Bank and Program Change +number is in your MIDI sequence.

+ +

 

+ +

In your MIDI +track, the MSB should be sent first followed by the LSB and then the Instrument +number. For example, if your DLS2 instrument is assigned MSB 1, LSB 0, +Program1, you would send CC0, 1 followed by CC32, 0 followed by Program Change +Message 1. This might look like the following in an event window:

+ +

 

+ +

 

+ +

+ +

 

+ +

 

+ +

 

+ +

4         +JET Creator Guidelines

+ +

JET Creator is the desktop application +where you’ll edit and audition the JET interactive music elements. For details +on the JET Creator application please see the “JET Creator User Manual”. Below +are some additional guidelines to help you out.

+ +

 

+ +

 

+ +

 

+ +

4.1        +Order of Tasks

+ +

As with all projects, its best to discuss and +design the interactive music scheme with the game designer and programmer +before beginning your composition. An outline and/or specification can go a +long way in saving you from having to redo things after the game is in place.

+ +

 

+ +

In general you’ll want to first write your +music in your DAW of choice the way you’re used to composing, then break up the +final MIDI file as needed for the application. +Next, move to JET Creator and create all of your music segments in the order +easiest to preview them when played in order. Finally, add the JET Events to +control the segments via the Android game and Audition them as needed in JET +Creator. Finally, save the project in JET Creator and hand off the .jet file to +the programmer to integrate it in the game. After previewing there will likely +be changes to the MIDI file(s) and JET Creator +attributes.

+ +

 

+ +

4.2        +Conserving Memory

+ +

If you’re trying to conserve memory, +compose as few MIDI files as possible, and create several segments from that MIDI file. For example a 12 bar MIDI +file with three sections of 4 bars, A, B, C, can create a much longer song. +Simply create multiple segments that reference the one MIDI +file, then order them however you like. For example, A, A, B, A, C, A, B, A, A +would create a 36 bar song. Use JET to add repeats, transpose segments, and +interactively mute and unmute tracks to keep it even more interesting.

+ +

 

+ +

4.3        +Replicate

+ +

To make adding segments or events faster, +use the Replicate command. Replicate can add multiple segments or events at one +time and uses an offset parameter and prefix naming convention to keep things +easy to read. The MOVE command is also useful for moving multiple events by a +set number of measures, beats or ticks.

+ +

 

+ +

4.4        +Interactive Options

+ +

There are several interactive audio +concepts possible in JET. Below are a few examples although we hope developers +will come up with others we haven’t thought of! These are:

+ +

4.4.1          +Multiple Segment Triggering

+ +

In this method the application is +triggering specific segments based on events in the game. For example a hallway +with lots of fighting might trigger segment 1 and a hallway with no fighting +might trigger segment 2. Using JET TriggerClips in conjunction with this method +creates even more diversity.

+ +

4.4.2          +Mute Arrays

+ +

In this method the application is +triggering mute and unmute events to specific tracks in a single MIDI sequence. For example a hallway with lots of +fighting might play MIDI tracks 1-16 and a +hallway with no fighting might play the same midi file but mute tracks 9-16. +Using JET TriggerClips in conjunction with this method creates even more +diversity.

+ +

4.4.3          +Music Driven Gameplay

+ +

Music driven gaming is similar to what +Guitar Hero and JETBOY have done in that the music content determines how +graphic events are displayed. The application then queries the user response to +the graphic events and interactively modifies the music in response. In this +method the game is utilizing JET Application Events, MIDI controllers that are +embedded in the MIDI file and read by the game +in real-time. Based on the user response, multiple segment triggering and/or +mute arrays can be set.

+ +

 

+ +

 

+ +
+ + + + diff --git a/docs/JET_Authoring_Guidelines_files/header.htm b/docs/JET_Authoring_Guidelines_files/header.htm new file mode 100755 index 0000000..4284a7a --- /dev/null +++ b/docs/JET_Authoring_Guidelines_files/header.htm @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + +
+ +

+ +


+ +

+ +

 

+ +

 

+ +

 

+ +

 

+ +
+ +
+ +

+ +


+ +

+ +

 

+ +

 

+ +

 

+ +

 

+ +
+ +
+ +

+ +


+ +

+ +

 

+ +

 

+ +

 

+ +

 

+ +
+ +
+ +

+ +


+ +

+ +

 

+ +

 

+ +

 

+ +

 

+ +
+ +
+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +
+ +
+ +

+ +

 

+ +

 

+ +

 

+ +

 

+ +
+ +
+ +

 

+ +

 

+ +
+ +
+ +

 

+ +

 

+ +

 

+ +

 

+ +
+ +
+ +

SONiVOX JET Creator User Documentation    +Vrs.3   Page 1/13

+ +
+ + + + diff --git a/docs/JET_Authoring_Guidelines_files/image001.jpg b/docs/JET_Authoring_Guidelines_files/image001.jpg new file mode 100755 index 0000000..d244843 Binary files /dev/null and b/docs/JET_Authoring_Guidelines_files/image001.jpg differ diff --git a/docs/JET_Authoring_Guidelines_files/image002.emz b/docs/JET_Authoring_Guidelines_files/image002.emz new file mode 100755 index 0000000..f152c11 Binary files /dev/null and b/docs/JET_Authoring_Guidelines_files/image002.emz differ diff --git a/docs/JET_Authoring_Guidelines_files/image004.emz b/docs/JET_Authoring_Guidelines_files/image004.emz new file mode 100755 index 0000000..010c4bd Binary files /dev/null and b/docs/JET_Authoring_Guidelines_files/image004.emz differ diff --git a/docs/JET_Authoring_Guidelines_files/image006.emz b/docs/JET_Authoring_Guidelines_files/image006.emz new file mode 100755 index 0000000..a29ebfd Binary files /dev/null and b/docs/JET_Authoring_Guidelines_files/image006.emz differ diff --git a/docs/JET_Authoring_Guidelines_files/image008.gif b/docs/JET_Authoring_Guidelines_files/image008.gif new file mode 100755 index 0000000..17919fd Binary files /dev/null and b/docs/JET_Authoring_Guidelines_files/image008.gif differ diff --git a/docs/JET_Authoring_Guidelines_files/image010.gif b/docs/JET_Authoring_Guidelines_files/image010.gif new file mode 100755 index 0000000..54111a0 Binary files /dev/null and b/docs/JET_Authoring_Guidelines_files/image010.gif differ diff --git a/docs/JET_Authoring_Guidelines_files/image011.png b/docs/JET_Authoring_Guidelines_files/image011.png new file mode 100755 index 0000000..1573b01 Binary files /dev/null and b/docs/JET_Authoring_Guidelines_files/image011.png differ diff --git a/docs/JET_Authoring_Guidelines_files/image012.gif b/docs/JET_Authoring_Guidelines_files/image012.gif new file mode 100755 index 0000000..4300d15 Binary files /dev/null and b/docs/JET_Authoring_Guidelines_files/image012.gif differ diff --git a/docs/JET_Authoring_Guidelines_files/image013.gif b/docs/JET_Authoring_Guidelines_files/image013.gif new file mode 100755 index 0000000..eb1aa37 Binary files /dev/null and b/docs/JET_Authoring_Guidelines_files/image013.gif differ diff --git a/docs/JET_Authoring_Guidelines_files/image014.gif b/docs/JET_Authoring_Guidelines_files/image014.gif new file mode 100755 index 0000000..4e99824 Binary files /dev/null and b/docs/JET_Authoring_Guidelines_files/image014.gif differ diff --git a/docs/JET_Authoring_Guidelines_files/image015.emz b/docs/JET_Authoring_Guidelines_files/image015.emz new file mode 100755 index 0000000..31cba25 Binary files /dev/null and b/docs/JET_Authoring_Guidelines_files/image015.emz differ diff --git a/docs/JET_Creator_User_Manual.htm b/docs/JET_Creator_User_Manual.htm new file mode 100644 index 0000000..8582f5f --- /dev/null +++ b/docs/JET_Creator_User_Manual.htm @@ -0,0 +1,3032 @@ + + + + + + + + + + + +SONiVOX JET Creator User Manual + + + + + + + + +
+   Copyright (C) 2009 The Android Open Source Project
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+ +
+ +

JETCreator™ User Manual

+ +

Vrs 1.0

+ +

Content +Authoring Application for the

+ +

JET +Interactive Music Engine

+ +

Authored by SONiVOX

+ +

www.sonivoxrocks.com

+ +

Copyright 2009 Sonic Network, Inc.

+ + + +

 

+ +

 

+ +

1         +Introduction

+ +

1.1        +Overview

+ +

This document contains the user guidelines +for the SONiVOX JET Creator, an authoring application for creating and +auditioning JET files. JET is an interactive music player for small embedded +devices, including the Google Android platform. It allows applications to +include interactive music soundtracks, in MIDI +format, that respond in real-time to game play events and user interaction.

+ +

 

+ +

JET works in conjunction with SONiVOX’s +Embedded Audio Synthesizer (EAS) which is the MIDI +playback device for Android.  Both the +JET and EAS engines are integrated into the Android embedded platform as well +as inherent in the JET Creator application. As such, the JET content author can +be sure that the playback will sound exactly the same in both the JET Creator +and the final Android application playing back on Android mobile devices.

+ +

 

+ +

In addition to the graphical user +interface, there are two main functionalities taking place in JET Creator. The +first involves gathering all the source data (MIDI +files and DLS file), adding JET’s real-time attributes and building a JET +(.jet) file that the Android application will use. The second functionality +involves auditioning the interactive playback elements as they will take place +in the Android application.

+ +

 

+ +

The JET Creator application is written in +the Python programming language, therefore you need to have the current version +of Python and WXWidgets installed. There is both a Mac and Windows version.

+ +

 

+ +

 

+ +

1.2        +Abbreviations and Common Terms

+ +

 

+ +

It is important to use a common set of +terms to minimize confusion. Since JET uses MIDI +in a unique way, normal industry terms may not always suffice. Here is the +definition of terms as they are used in this document and in the JET Creator +application:

+ +

 

+ +

Channel: MIDI data associated with a specific MIDI +channel. Standard MIDI allows for 16 channels of MIDI +data each of which are typically associated with a specific instrument.

+ +

 

+ +

Controller: A MIDI event consisting of a +channel number, controller number, and a controller value. The MIDI spec associates many controller numbers with +specific functions, such as volume, expression, sustain pedal, etc. JET also +uses controller events as a means of embedding special control information in a +MIDI sequence to provide for audio synchronization.

+ +

 

+ +

DAW: Digital Audio Workstation. A common term for MIDI +and audio sequencing applications such as Logic, SONAR, Cubase and others.

+ +

 

+ +

EAS: Embedded MIDI Synthesizer. The +name of the SONiVOX MIDI synthesizer engine.

+ +

 

+ +

JET: Jet Interactive Engine. The name of the SONiVOX JET interactive +music engine.

+ +

 

+ +

M/B/T: Measures, Beats and Ticks

+ +

 

+ +

Segment: A musical section such as a chorus or verse that is a component of +the overall composition. In JET, a segment can be an entire MIDI file or a +derived from a portion of a MIDI file.

+ +

 

+ +

SMF-0: Standard MIDI File Type 0, a MIDI file that contains a single +track, but may be made up of multiple channels of MIDI +data.

+ +

 

+ +

SMF-1: Standard MIDI File Type 1, a MIDI file that contains a one more +tracks, and each track may in turn be made up of one or more channels of MIDI data. By convention, each channel is stored on a +separate track in an SMF-1 file. However, it is possible to have multiple MIDI +channels on a single track, or multiple tracks that contain data for the same MIDI channel.

+ +

 

+ +

Track: A single track in a DAW containing a timed sequence of MIDI events. Be careful not to confuse Tracks with +Channels. A MIDI file may contain many tracks with several tracks utilizing the +same MIDI channel.

+ +

 

+ +

 

+ +

1         +The JET Interactive Music Concept

+ +

Interactive music can be defined as music +that changes in real-time according to non-predictable events such as user +interaction or game play events. In this way, interactive music is much more +engaging as it has the ability to match the energy and mood of a game much +closer than a pre-composed composition that never changes. In some applications +and games, interactive music is central to the game play. Guitar Hero is one +such popular game. When the end user successfully ‘captures’ the musical notes +coming down the fret board, the music adapts itself and simultaneously keeps +score of successes and failures. JET allows for these types of music driven +games as well.

+ +

 

+ +

There are several methods for making and +controlling interactive music and JET is one such method. This section +describes the features of JET and how they might be used in a game or software +application. It also describes how JET can be used to save memory in small +footprint devices such as Android enabled mobile handsets.

+ +

1.1.1       Data Compression

+ +

JET supports a flexible music format that +can be used to create extended musical sequences with a minimal amount of data. +A musical composition is broken up into segments that can be sequenced to +create a longer piece. The sequencing can be fixed at the time the music file +is authored, or it can be created dynamically under program control.

+ +

1.1.2       Linear Music Example

+ +

+ +

Figure 1: Linear Music Piece

+ +

 

+ +

This diagram shows how musical segments are +stored. Each segment is authored as a separate MIDI +file. A post-processing tool combines the files into a single container file. +Each segment can contain alternate music tracks that can be muted or un-muted +to create additional interest. An example might be a brass accent in the chorus +that is played only the last time through. Also, segments can be transposed up +or down.

+ +

 

+ +

The bottom part of the diagram shows how +the musical segments can be recombined to create a linear music piece. In this +example, the bridge might end with a half-step key modulation and the remaining +segments could be transposed up a half-step to match.

+ +

1.1.3          +Non-linear Music Example

+ +

+ +

Figure 2: Non-linear music piece

+ +

 

+ +

In this diagram, we see a non-linear music +piece. The scenario is a first-person-shooter (FPS) and JET is providing the +background music. The intro plays as the level is loading and then transitions +under program control to the Searching segment. This segment is repeated indefinitely, +perhaps with small variations (using the mute/un-mute feature) until activity +in the game dictates a change.

+ +

 

+ +

As the player nears a monster lair, the +program starts a synchronized transition to the Danger segment, increasing the +tension level in the audio. As the player draws closer to the lair, additional +tracks are un-muted to increase the tension.

+ +

 

+ +

As the player enters into combat with the +monster, the program starts a synchronized transition to the Combat segment. +The segment repeats indefinitely as the combat continues. A Bonus Hit +temporarily un-mutes a decorative track that notifies the player of a +successful attack, and similarly, another track is temporarily un-muted to +signify when the player receives Special Damage.

+ +

 

+ +

At the end of combat, the music transitions +to a victory or defeat segment based on the outcome of battle.

+ +

1.1.4          +Mute/Un-mute Synchronization

+ +

JET can also synchronize the muting and +un-muting of tracks to events in the music. For example, in the FPS game, it would +probably be desirable to place the musical events relating to bonuses and +damage as close to the actual game event as possible. However, simply un-muting +a track at the moment the game event occurs might result in a music clip +starting in the middle. Alternatively, a clip could be started from the +beginning, but then it wouldn’t be synchronized with the other music tracks.

+ +

 

+ +

However, with the JET sync engine, a clip +can be started at the next opportune moment and maintain synchronization. This +can be accomplished by placing a number of short music clips on a decorative +track. A MIDI event in the stream signifies +the start of a clip and a second event signifies the end of a clip. When the +application calls the JET clip function, the next clip in the track is allowed +to play fully synchronized to the music. Optionally, the track can be +automatically muted by a second MIDI event.

+ +

 

+ +

+ +

Figure 3: Synchronized Mute/Unmute

+ +

1.2        +Audio Synchronization

+ +

JET provides an audio synchronization API +that allows game play to be synchronized to events in the audio. The mechanism +relies on data embedded in the MIDI file at +the time the content is authored. When the JET engine senses an event during +playback it generates a callback into the application program. The timing of +the callback can be adjusted to compensate for any latency in the audio +playback system so that audio and video can be synchronized. The diagram below +shows an example of a simple music game that involves pressing the left and +right arrows in time with the music.

+ +

 

+ +

 

+ +

+ +

Figure 4: Music Game with Synchronization

+ +

 

+ +

The arrows represent events in the music sequence +where game events need to be synchronized. In this case, the blue arrow +represents a time where the player is supposed to press the left button, and +the red arrow is for the right button. The yellow arrow tells the game engine +that the sequence is complete. The player is allowed a certain time window +before and after the event to press the appropriate key.

+ +

 

+ +

If an event is received and the player has +not pressed a button, a timer is set to half the length of the window. If the +player presses the button before the timer expires, the game registers a +success, and if not, the game registers a failure.

+ +

 

+ +

If the player presses the button before the +event is received, a timer is set to half the length of the window. If an event +is received before the timer expires, the game registers a success, and if not, +the game registers a failure. Game play might also include bonuses for getting +close to the timing of the actual event.

+ +

 

+ +

2         +JET Content Authoring Overview

+ +

To author JET files and hear them playback +interactively, the content author will work in two applications which are +designed to work together smoothly. The first is application is any +off-the-shelf MIDI sequencing application that +supports VST (for PC) or AU (for Mac) plugins. Here the author will compose +their MIDI music files using the plugin as the +synthesizer device. The second application is the JET Creator application. Here +the author will import their MIDI music files +(and optionally a DLS2 soundset) and setup the conditions for interactive +playback within the JET enabled game. Optionally the content author may create +a custom set of DLS instruments using an instrument editor that supports the +DLS Level 2 format. One such application is Awave from MJSoft.

+ +

 

+ +

Please see the JET Content Authoring Guidelines documentation for additional +details on content authoring.

+ +

 

+ +

3         +Installing and Launching JET +Creator

+ +

JET Creator is a python language +application, therefore, you must have Python and wxPython installed on your +machine.

+ +

 

+ +

JetCreator was created and tested with:

+ +

 

+ +

Python Version 2.5.4

+ +

wxPython Version 2.8.7.1

+ +

 

+ +

These can be downloaded here:

+ +

 

+ +

PC:

+ +

http://www.python.org/download/releases/2.5.4/

+ +

http://www.wxpython.org/download.php

+ +

 

+ +

MAC:

+ +

http://wiki.python.org/moin/MacPython/Leopard

+ +

http://www.wxpython.org/download.php

+ +

 

+ +

After installing Python and wxPython, +simply unzip or copy all the files in the JET Creator application directory to +a folder on your hard drive.

+ +

                                                    

+ +

To launch JET Creator go to a command +prompt and set the directory to where you’ve installed Python. Next run python +with the command:

+ +

 

+ +

python +jetcreator.py

+ +

 

+ +

 

+ +

4         +Using JET Creator

+ +

 

+ +

4.1        +File Types

+ +

There are a few different file types +associated with JET Creator.

+ +

 

+ +

.jtc        JET +Creator project file. This file contains all the information associated with a +JET Creator project. When you Save or Save-as out of JET Creator, this file +type is saved.

+ +

 

+ +

.jet        JET +File. This output file is automatically generated from JET Creator whenever you +save your JET Creator project. This is the file that bundles all JET assets +together into a single file that the Android application will use. Give this +file to the Android application developer.

+ +

 

+ +

.mid      MIDI File. This is the standard MIDI +type 1 file that JET Creator will use to make segments.

+ +

 

+ +

.seg      Segment +File. This is a JET Segment file. It has the same name as the MIDI +file which it references but contains additional Segment information.

+ +

 

+ +

.zip       Zip +Archive file. When you Export a JET Archive, a zip file is created that +contains all the assets (files) necessary for JET Creator. Use this to transfer +JET Creator projects to other people.

+ +

 

+ +

4.2        +Open Dialog

+ +

When +you first launch JET Creator you are presented with an open dialog like the +following.

+ +

 

+ +

+ +

 

+ +

 

+ +

Open will open an existing .jtc (JET Creator file) file. Use the browser +button to browse to the directory where you have saved your .jtc file.

+ +

 

+ +

New will create a new .jtc file.

+ +

 

+ +

Import will import a JET Archive (.zip) file.

+ +

 

+ +

Cancel will cancel the dialog and exit the application.

+ +

 

+ + + +

5         +Main Window

+ +

The main window of the JET Creator +application looks like the picture below. There are three main sections from +top to bottom: segment view, event view, and timeline.

+ +

 

+ +

The segment view section displays a list of +the current segments, which MIDI file and +(optionally) DLS2 file each segment is derived from. It also shows each +segments start and stop time and each segments quantize, transpose, repeat and +mute flag settings.

+ +

 

+ +

Just below the Segment view is the event +view. The event view section displays all events associated with a given +segment. Events only display when the segment they are assigned to is +highlighted. Each event displays its type, start and end points, track and midi +channel assignment, and its event ID.

+ +

 

+ +

Just below the Event view is the timeline +display. The timeline shows how many measures a given segment is as well as any +events associated with that segment. The timeline changes to display the +currently selected or playing segment. You can trigger an event in this window +while the segment is play by simply clicking on the event in the timeline +display.

+ +

 

+ +

 

+ +

+ +

 

+ +

JET +Creator Main Window

+ +

 

+ +

 

+ +

The buttons along the left side of main +window do the following:

+ +

 

+ +

Add:                    - +Displays the segment or event window for adding a new segment or event

+ +

Revise:                - +Displays the segment or event window for updating an existing segment or event

+ +

Delete:                 - +Deletes the selected segment or event (will ask for confirmation)

+ +

Move:                  - +Displays the move window which allows you to move selected segments or events +in time

+ +

Queue All:            - Queue’s +(selects) all segments for playback

+ +

Dequeue All:        - Dequeue’s +(deselects) all segments

+ +

Play:                    - +Starts playback of all queue’d segments. This button changes to Stop if any +segments are playing

+ +

Audition:              - +Displays the Audition window (see below)

+ +

 

+ +

5.1        +Segment Window

+ +

The segment window is where a given +segment’s attributes are assigned and auditioned, as shown in the picture +below. The left side of the window displays the segments attributes that are +stored in the JET file. The right side of the window allows the author to set +mute flags, repeat and transpose settings and audition the segment as it will +play in the JET game.

+ +

 

+ +

Note: the audition attributes (mute flags, repeat and transpose) are not stored in the JET content file +(.jet) but rather are defined by the game or application itself. In programming +language, these settings correspond directly with the API calls to the JET +engine. By including them here, the JET content author can simulate how the +segment will respond to the applications API commands during game play.

+ +

 

+ +

 

+ +

+ +

 

+ +

 

+ +

The segment parameters do the following:

+ +

 

+ +

Segment Name             - Sets +the name of the segment

+ +

MIDI File                       - +The name and location of the MIDI file from which +the segment is derived. The button to the immediate right will bring up a +browser for locating a midi file on the hard drive.

+ +

DLS File                       - +The name and location of the DLS2 file, if any, that the MIDI +file uses for that segment.

+ +

Starting M/B/T               - +Starting measure, beat and tick of the segment

+ +

Ending M/B/T                - +Ending measure, beat and tick of the segment

+ +

Quantize                       - +Quantize value for quantizing the current segment during playback

+ +

 

+ +

 

+ +

The audition fields are as follows:

+ +

 

+ +

Track Mutes                  - +Shows the MIDI tracks (not channels) +in the MIDI file. Clicking on a track’s +checkbox will mute that track.

+ +

Channel                        - +Displays the MIDI channel assigned to each +track

+ +

Name                            - +Displays the track name meta event (if present) for each track

+ +

Repeat                          - +Indicates the number of times a segment should repeat during playback

+ +

Transpose                     - +Indicates the transposition in semi-tones or half-steps a segment should +transpose during playback

+ +

 

+ +

To the right of the Audition window are a few additional buttons. +These do as follows:

+ +

 

+ +

OK                               - +Selecting OK confirms all segment settings and closes the segment window

+ +

Cancel                          - +Selecting Cancel cancels any changes and closes the segment window

+ +

Replicate                      - +Displays the Replicate Segment window for entering multiple segments at once. +See below.

+ +

Play/Stop Segment       - Starts +or Stops playback of the segment using the segment attributes assigned.

+ +

Play/Stop MIDI File       - +Starts or Stops playback of the MIDI file +which the segment is assigned to.

+ +

Pause/Resume              - +Pauses or Resumes playback.

+ +

 

+ +

 

+ +

5.2        +Event Window

+ +

The event window is where a given segment’s +event attributes are assigned and auditioned, as shown in the picture below. To +add an event to a segment, the author must first select the segment which will +contain the event, then select the Add button. This will bring up the Event +window.

+ +

 

+ +

+ +

 

+ +

 

+ +

There are two main sections to the event +window. The segment section on the left side of the event window is for display +only. It shows what the segment attributes are for the given segment. The Event +section, on the right side, is where events can be assigned. The following +parameters are available:

+ +

 

+ +

Event Name                    - +Assigns a name to an event

+ +

Event Type                     - +Selects which type of event to assign.

+ +

Starting M/B/T                - +Sets the starting measure, beat, and tick for the event

+ +

Ending M/B/T                 - +Sets the ending measure, beat, and tick for the event, if applicable

+ +

Track                              - +Sets which track in the given segment the event will apply to

+ +

Channel                          - +Sets which MIDI channel the event will apply +to. The MIDI channel should match the MIDI +channel of the track

+ +

Event ID                         - +Sets the event ID for the event. Multiple events can be assigned to the same +segment and therefore the Event ID is used to identify them

+ +

 

+ +

To the right of the Audition window are a few additional buttons. +These do as follows:

+ +

 

+ +

OK                               - +Selecting OK confirms all event settings and closes the event window

+ +

Cancel                          - +Selecting Cancel cancels any changes and closes the event window

+ +

Replicate                      - +Displays the Replicate Event window for entering multiple events at once. See +below.

+ +

Play/Stop                     - +Starts or Stops playback of the segment using the segment attributes assigned. +While the segment is playing, events can be triggered and auditioned.

+ +

Trigger                          - +Triggers the event assigned. This replicates the API command that the JET game +will use to trigger the event, therefore giving the content author a method for +auditioning the behaviour of the event.

+ +

Mute/UnMute                 - +Mute/UnMute will mute or unmute the track that the event is assigned to

+ +

Pause/Resume              - +Pauses or Resumes playback.

+ +

 

+ +

To audition the behaviour of an event, you +can select the Play button. This will initiate playback. The trigger button +will send the trigger event when pressed. This is equivalent to selecting the +green trigger event in the timeline.

+ +

 

+ +

Note: Trigger events are meant to unmute a +single track of a segment when triggered, then mute that track at the end of +the trigger segment. Therefore you should make sure the mute flag is set to +mute the track that a trigger event will be unmuting when receiving a trigger event. +

+ +

 

+ +

Please read Section 7 “Under The Hood” +below for details on how trigger events work and behave.

+ +

 

+ +

5.3        +Replicate Windows

+ +

Often in creating JET files, you’ll need to +create tens or even hundreds of events. You may also need to move events. The +Replicate and Move windows allow for this. There are two Replicate windows for +creating multiple segments or events. They look like the following:

+ +

 

+ +

+ +

 

+ +

Replicate Segment Window

+ +

 

+ +

 

+ +

 

+ +

+ +

 

+ +

Replicate Event Window

+ +

 

+ +

Both Replicate windows function the same. +After creating an initial segment or event, you can select the Replicate +button. The parameters are as follows:

+ +

 

+ +

Name Prefix                  - +Sets the prefix for the name of each segment or event created

+ +

Starting M/B/T               - +Sets the starting time for the first segment or event

+ +

Increment M/B/T            - +Sets the time between segments or events created.

+ +

Number                         - +Sets the number of segments or events you wish to create. If the number +overflows the length of the MIDI file (for +segments) or segment (for events), those objects will not be created.

+ +

Preview                         - +Preview allows you to examine the objects created before saying OK to insert +them.

+ +

 

+ +

 

+ +

5.4        +Move Windows

+ +

The Move function acts similarly to the +Replicate function in that it allows you to edit multiple segments or events at +one time, in this case move them in time. Like Replicate, there are two Move +windows, one for Segments and one for Events. The windows look like the +following:

+ +

 

+ +

+ +

 

+ +

Move Event Window

+ +

 

+ +

To use Move, first select the segments or +events you wish to move in time, then click the Move button. The parameters are +as follows:

+ +

 

+ +

Starting M/B/T               - +Sets the starting time for the first segment or event

+ +

Increment M/B/T            - +Sets the time in M/B/T you wish to move the objects by.

+ +

Preview                         - +Preview allows you to examine the objects created before saying OK to move +them.

+ +

 

+ +

 

+ +

5.5        +Audition Window

+ +

Clicking the Audition button in the main +window of the JET Creator application will open the Audition window. This is +where the content author or application programmer can simulate the interactive +playback as it may occur in the mobile application or game itself.

+ +

 

+ +

+ +

 

+ +

JET Audition Window

+ +

 

+ +

 

+ +

There are four main sections to the +audition window. The left most section displays the available segments and +their length in seconds. The middle section displays a running list of what +segments are queued for playback and what their playback status is. The far +right section displays the mute flags for the currently playing segment. The +timeline section at the bottom is the same as in the main window. It displays +the currently playing segment as well as a visual display of any event triggers +associated with that segment.

+ +

 

+ +

The Audition window allows you to queue up +any segment in any order for playback. To do this simply select the segment you +wish to cue and hit Queue. That segment will appear in the queue window and +start playing (if it is the first segment). Subsequently you can select any +other segment or segments and cue them up for playback. As the segments +complete playback, the next segment in the queue will begin playing. As is the +other windows of JET Creator, you can mute, unmute, trigger event clips, etc. +in realtime as each segment is playing back.

+ +

 

+ +

Specifically the buttons behave as follows:

+ +

 

+ +

Queue                           - +loads the selected segment into the queue and starts playback

+ +

Cancel and Queue         - +cancels the currently playing segment before queueing the selected segment for +playback

+ +

Cancel Current               - +cancels the currently playing segment in the queue and begins playback of the +next segment

+ +

Stop                             - +stops playback of all queued segments

+ +

Mute All                        - +mutes all tracks in the current segment

+ +

Mute None                    - +unmutes all tracks in the current segment

+ +

Original Mutes               - +sets the original mute flags for the current segment

+ +

 

+ +

The combination of these playback options +allows an author or application programmer to audition any behaviour an +interactive music application may encounter.

+ +

 

+ +

 

+ +

5.6        +JET Creator Menus

+ +

The JET Creator menus provide access to +many of the parameters in the main window plus a few additional parameters.

+ +

5.6.1          +File Menu

+ +

The File Menu contains the following +elements:

+ +

 

+ +

New                              - +Creates a new JET Creator file (.jtc)

+ +

Open                            - +Opens an existing JET Creator file

+ +

Save                             - +Saves the currently opened JET Creator file

+ +

Save As                        - +Saves the currently opened JET Creator file to a new file

+ +

Import Project               - Imports a JET Creator archive (.zip)

+ +

Export Project               - Exports a JET Creator archive (.zip)

+ +

Exit                              - +Exits the application

+ +

 

+ +

5.6.2          +Edit Menu

+ +

The Edit Menu contains the following +elements:

+ +

 

+ +

Undo                            - +Undo will undo the last edit made

+ +

Redo                            - +Redo will redo the last undo

+ +

Cut                               - +Copy selected parameter into clipboard and Delete selection

+ +

Copy                            - +Copy selected parameter into clipboard and keep selection

+ +

Paste                            - +Paste selected parameter

+ +

 

+ +

5.6.3          +JET

+ +

The Edit Menu contains the following +elements:

+ +

 

+ +

Properties                     - +Brings up the JET Creator priorities window. This window allows you to set the +following conditions for a given JET file:

+ +

Copyright Info               - Contains copyright info to be inserted into JET file

+ +

Chase Controllers          - Option to chase controllers (on/off). This should usually +be ON.

+ +

Delete Empty Tracks     - Deletes any empty MIDI tracks

+ +

 

+ +

5.6.4          +Segments

+ +

The Segments Menu contains the following +elements:

+ +

 

+ +

Add Segment                - +Brings up the Segment window

+ +

Update Segment           - Updates segment attributes

+ +

Delete Segment                        - Deletes the current segment from the +Segment List

+ +

 

+ +

5.6.5          +Help

+ +

The Help Menu will contain at least the +following elements:

+ +

 

+ +

JET Creator Help           - will launch PDF help document or go to on-line help

+ +

About                           - +JET Creator version number, SONiVOX info

+ +

 

+ +

 

+ +

6         +Trigger Events Explained

+ +

Breaking a MIDI +file into individual (non-linear) segments and queueing up those segments for +playback in a game based on events within the game is one way JET music files are +interactive. Trigger events are an additional method for interactive playback. +Both would be used together in an interactive game or application.

+ +

 

+ +

Trigger events allow for the following:

+ +

 

+ +
    +
  1. Tracks within a MIDI segment can be turned on or off based on game + events. For example the composer could author two drum tracks, one fast + and one slow. If the action in a game is fast, the fast drum track could + play. If the action in the game is slow, the slow drum track can play.
  2. +
  3. User actions can be compared to trigger events which are + pre-inserted into a music file at musically ‘correct’ places. Based on the + results, scoring or other game actions can take place.
  4. +
  5. Musical transitions between levels or action sequences can be + synchronized to be musically seemless.
  6. +
+ +

 

+ +

Under the hood, JET uses standard MIDI CC +events to accomplish these actions and to synchronize audio. The controllers +used by JET are among those not defined for specific use by the MIDI specification. The specific controller definitions +are as follows:

+ +

 

+ +

            Controllers +80-83           Reserved for use by +application

+ +

            Controller +102                JET event marker

+ +

            Controller +103                JET clip marker

+ +

            Controllers +104-119        Reserved for future use

+ +

 

+ +

6.1        +JET Clip Marker (CC103)

+ +

Controller 103 is reserved for marking +clips in a MIDI track that can be triggered by +the JET_TriggerClip API call. The clip ID is encoded in the low 6 bits of the +controller value. Bit 6 is set to one to indicate the start of a clip, and set +to zero to indicate the end of a clip.

+ +

 

+ +

For example, to identify a clip with a clip +ID of 1, the author inserts a MIDI controller +event with controller=103 and value=65 at the start of the clip and another +event with controller=103 and value=1 at the end of the clip. When the +JET_TriggerClip() function is called with a clip ID of 1, the track will be +un-muted when the controller value 65 is encountered and muted again when the +controller value 1 is encountered.

+ +

 

+ +

+ +

Figure 5: Synchronized Clip

+ +

 

+ +

In the figure above, if the +JET_TriggerClip() function is called prior to the first controller event, Track +3 will be un-muted when the first controller event occurs, the first clip will +play, and the track will be muted when the second controller event occurs. If +the JET_TriggerClip() function is called after the first controller event has +occurred, Track 3 will be un-muted when the third controller event occurs, the +second clip will play, and the track will be muted again when the fourth +controller event occurs.

+ +

 

+ +

Note: Normally, the track containing the clip is muted by the application +when the segment is initially queued by the call to JET_QueueSegment(). If it +is not muted, the clip will always play until Jet_TriggerClip() has been called +with the clip ID.

+ +

 

+ +

6.2        +JET Event Marker (CC102)

+ +

Controller 102 is reserved for marking +events in the MIDI streams that are specific +to JET functionality. Currently, the only defined value is 0, which marks the +end of a segment for timing purposes.

+ +

 

+ +

Normally, JET starts playback of the next +segment (or repeats the current segment) when the MIDI +end-of-track meta-event is encountered. Some MIDI +authoring tools make it difficult to place the end-of-track marker accurately, +resulting in synchronization problems when segments are joined together.

+ +

 

+ +

To avoid this problem, the author can place +a JET end-of-segment marker (controller=102, value=0) at the point where the +segment is to be looped. When the end-of-segment marker is encountered, the +next segment will be triggered, or if the current segment is looped, playback +will resume at the start of the segment.

+ +

 

+ +

The end-of-segment marker can also be used +to allow for completion of a musical figure beyond the end of measure that +marks the start of the next segment. For example, the content author might +create a 4-bar segment with a drum fill that ends on beat 1 of the 5th +bar – a bar beyond the natural end of the segment. By placing an end-of-segment +marker at the end of the 4th bar, the next segment will be +triggered, but the drum fill will continue in parallel with the next segment +providing musical continuity.

+ +

 

+ +

+ +

Figure 6: End-of-segment Marker

+ +

6.3        +Application Controllers +(CC80-83)

+ +

The application may use controllers in this +range for its own purposes. When a controller in this range is encountered, the +event is entered into an event queue that can be queried by the application. +Some possible uses include synchronizing video events with audio and marking a +point in a MIDI segment to queue up the next +segment. The range of controllers monitored by the application can be modified +by the application during initialization.

+ +

 

+ +
+ + + + diff --git a/docs/JET_Creator_User_Manual_files/header.htm b/docs/JET_Creator_User_Manual_files/header.htm new file mode 100755 index 0000000..e7a72f2 --- /dev/null +++ b/docs/JET_Creator_User_Manual_files/header.htm @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + +
+ +

+ +


+ +

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +
+ +
+ +

+ +


+ +

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +
+ +
+ +

+ +


+ +

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +
+ +
+ +

+ +


+ +

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +
+ +
+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +
+ +
+ +

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +
+ +
+ +

 

+ +

 

+ +

 

+ +
+ +
+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +
+ +
+ +

SONiVOX JET Creator User Documentation    +Vrs.3   Page 1/20

+ +

 

+ +
+ + + + diff --git a/docs/JET_Creator_User_Manual_files/image001.emz b/docs/JET_Creator_User_Manual_files/image001.emz new file mode 100755 index 0000000..f152c11 Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image001.emz differ diff --git a/docs/JET_Creator_User_Manual_files/image002.gif b/docs/JET_Creator_User_Manual_files/image002.gif new file mode 100755 index 0000000..eb1aa37 Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image002.gif differ diff --git a/docs/JET_Creator_User_Manual_files/image003.emz b/docs/JET_Creator_User_Manual_files/image003.emz new file mode 100755 index 0000000..010c4bd Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image003.emz differ diff --git a/docs/JET_Creator_User_Manual_files/image004.gif b/docs/JET_Creator_User_Manual_files/image004.gif new file mode 100755 index 0000000..4e99824 Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image004.gif differ diff --git a/docs/JET_Creator_User_Manual_files/image005.emz b/docs/JET_Creator_User_Manual_files/image005.emz new file mode 100755 index 0000000..a29ebfd Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image005.emz differ diff --git a/docs/JET_Creator_User_Manual_files/image006.gif b/docs/JET_Creator_User_Manual_files/image006.gif new file mode 100755 index 0000000..17919fd Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image006.gif differ diff --git a/docs/JET_Creator_User_Manual_files/image007.emz b/docs/JET_Creator_User_Manual_files/image007.emz new file mode 100755 index 0000000..31cba25 Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image007.emz differ diff --git a/docs/JET_Creator_User_Manual_files/image008.gif b/docs/JET_Creator_User_Manual_files/image008.gif new file mode 100755 index 0000000..54111a0 Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image008.gif differ diff --git a/docs/JET_Creator_User_Manual_files/image009.png b/docs/JET_Creator_User_Manual_files/image009.png new file mode 100755 index 0000000..0d5a14d Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image009.png differ diff --git a/docs/JET_Creator_User_Manual_files/image010.jpg b/docs/JET_Creator_User_Manual_files/image010.jpg new file mode 100755 index 0000000..d0dbb1d Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image010.jpg differ diff --git a/docs/JET_Creator_User_Manual_files/image011.png b/docs/JET_Creator_User_Manual_files/image011.png new file mode 100755 index 0000000..29c47ec Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image011.png differ diff --git a/docs/JET_Creator_User_Manual_files/image012.jpg b/docs/JET_Creator_User_Manual_files/image012.jpg new file mode 100755 index 0000000..ac54829 Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image012.jpg differ diff --git a/docs/JET_Creator_User_Manual_files/image013.png b/docs/JET_Creator_User_Manual_files/image013.png new file mode 100755 index 0000000..b0434d7 Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image013.png differ diff --git a/docs/JET_Creator_User_Manual_files/image014.jpg b/docs/JET_Creator_User_Manual_files/image014.jpg new file mode 100755 index 0000000..18212b3 Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image014.jpg differ diff --git a/docs/JET_Creator_User_Manual_files/image015.png b/docs/JET_Creator_User_Manual_files/image015.png new file mode 100755 index 0000000..807797e Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image015.png differ diff --git a/docs/JET_Creator_User_Manual_files/image016.jpg b/docs/JET_Creator_User_Manual_files/image016.jpg new file mode 100755 index 0000000..fa7931d Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image016.jpg differ diff --git a/docs/JET_Creator_User_Manual_files/image017.png b/docs/JET_Creator_User_Manual_files/image017.png new file mode 100755 index 0000000..ca200d1 Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image017.png differ diff --git a/docs/JET_Creator_User_Manual_files/image018.jpg b/docs/JET_Creator_User_Manual_files/image018.jpg new file mode 100755 index 0000000..64bb5c3 Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image018.jpg differ diff --git a/docs/JET_Creator_User_Manual_files/image019.png b/docs/JET_Creator_User_Manual_files/image019.png new file mode 100755 index 0000000..7867902 Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image019.png differ diff --git a/docs/JET_Creator_User_Manual_files/image020.jpg b/docs/JET_Creator_User_Manual_files/image020.jpg new file mode 100755 index 0000000..9943ae2 Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image020.jpg differ diff --git a/docs/JET_Creator_User_Manual_files/image021.png b/docs/JET_Creator_User_Manual_files/image021.png new file mode 100755 index 0000000..690dcad Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image021.png differ diff --git a/docs/JET_Creator_User_Manual_files/image022.jpg b/docs/JET_Creator_User_Manual_files/image022.jpg new file mode 100755 index 0000000..7b517fa Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image022.jpg differ diff --git a/docs/JET_Creator_User_Manual_files/image023.png b/docs/JET_Creator_User_Manual_files/image023.png new file mode 100755 index 0000000..43f0fb1 Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image023.png differ diff --git a/docs/JET_Creator_User_Manual_files/image024.jpg b/docs/JET_Creator_User_Manual_files/image024.jpg new file mode 100755 index 0000000..cea31c8 Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image024.jpg differ diff --git a/docs/JET_Creator_User_Manual_files/image025.emz b/docs/JET_Creator_User_Manual_files/image025.emz new file mode 100755 index 0000000..1668a8e Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image025.emz differ diff --git a/docs/JET_Creator_User_Manual_files/image026.gif b/docs/JET_Creator_User_Manual_files/image026.gif new file mode 100755 index 0000000..f9a4a89 Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image026.gif differ diff --git a/docs/JET_Creator_User_Manual_files/image027.emz b/docs/JET_Creator_User_Manual_files/image027.emz new file mode 100755 index 0000000..2b06699 Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image027.emz differ diff --git a/docs/JET_Creator_User_Manual_files/image028.gif b/docs/JET_Creator_User_Manual_files/image028.gif new file mode 100755 index 0000000..1d18152 Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image028.gif differ diff --git a/docs/JET_Creator_User_Manual_files/image029.jpg b/docs/JET_Creator_User_Manual_files/image029.jpg new file mode 100755 index 0000000..d244843 Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image029.jpg differ diff --git a/docs/JET_Creator_User_Manual_files/image030.emz b/docs/JET_Creator_User_Manual_files/image030.emz new file mode 100755 index 0000000..f152c11 Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image030.emz differ diff --git a/docs/JET_Creator_User_Manual_files/image031.emz b/docs/JET_Creator_User_Manual_files/image031.emz new file mode 100755 index 0000000..010c4bd Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image031.emz differ diff --git a/docs/JET_Creator_User_Manual_files/image032.emz b/docs/JET_Creator_User_Manual_files/image032.emz new file mode 100755 index 0000000..a29ebfd Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image032.emz differ diff --git a/docs/JET_Creator_User_Manual_files/image033.emz b/docs/JET_Creator_User_Manual_files/image033.emz new file mode 100755 index 0000000..31cba25 Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image033.emz differ diff --git a/docs/JET_Creator_User_Manual_files/image034.emz b/docs/JET_Creator_User_Manual_files/image034.emz new file mode 100755 index 0000000..1668a8e Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image034.emz differ diff --git a/docs/JET_Creator_User_Manual_files/image035.emz b/docs/JET_Creator_User_Manual_files/image035.emz new file mode 100755 index 0000000..2b06699 Binary files /dev/null and b/docs/JET_Creator_User_Manual_files/image035.emz differ diff --git a/docs/JET_Programming_Manual.htm b/docs/JET_Programming_Manual.htm new file mode 100644 index 0000000..198a9e6 --- /dev/null +++ b/docs/JET_Programming_Manual.htm @@ -0,0 +1,1333 @@ + + + + + + + + + + + +JET PROGRAMMING MANUAL + + + + + + + + +
+   Copyright (C) 2009 The Android Open Source Project
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+ +
+ +

JET™ Programming Manual

+ +

JET +Interactive Music Engine

+ +

Vrs 2.0

+ +

Authored by SONiVOX

+ +

www.sonivoxrocks.com

+ +

Copyright 2009 Sonic Network, Inc.

+ + + +

 

+ +

 

+ +

 

+ +

Introduction

+ +

This document contains programmer guidelines for the SONiVOX +JET Interactive Music System. JET is an interactive music player for small +embedded devices, including the Google Android platform. It allows applications +to include interactive music soundtracks, in MIDI +format, that respond in real-time to game play events and user interaction.

+ +

 

+ +

JET works in conjunction with SONiVOX’s Embedded Audio +Synthesizer (EAS) which is the MIDI playback +device for Android.  Both the JET and EAS +engines are integrated into the Android embedded platform as well as inherent +in JET Creator, an application for +authoring JET content files. As such, the JET content author can be sure that +the playback will sound exactly the same in both JET Creator and the final Android application playing back on +Android mobile devices.

+ +

 

+ +

The programmer of a JET application will want to work +closely with the content author in designing how real-time application events +and music will interactively work together. Once decided, the content author +will create the content and ultimately save a .jet file for the programmer to +include in the application.

+ +

 

+ +

Please see “JET Creator User Documentation” for additional +information on authoring JET content.

+ +

 

+ +

Abbreviations and Common Terms

+ +

It is important to use a common set of terms to minimize confusion. +Since JET uses MIDI in a unique way, normal +industry terms may not always suffice. Here is the definition of terms as they +are used in this document and in the JET Creator application:

+ +

 

+ +

Channel: MIDI data +associated with a specific MIDI channel. +Standard MIDI allows for 16 channels of MIDI +data each of which are typically associated with a specific instrument.

+ +

 

+ +

Controller: A MIDI event consisting of a channel number, controller +number, and a controller value. The MIDI spec +associates many controller numbers with specific functions, such as volume, +expression, sustain pedal, etc. JET also uses controller events as a means of +embedding special control information in a MIDI +sequence to provide for audio synchronization.

+ +

 

+ +

DAW: Digital Audio +Workstation. A common term for MIDI and audio +sequencing applications such as Logic, SONAR, Cubase and others.

+ +

 

+ +

EAS: Embedded MIDI Synthesizer. The name of the SONiVOX MIDI +synthesizer engine.

+ +

 

+ +

JET: Jet +Interactive Engine. The name of the SONiVOX JET interactive music engine.

+ +

 

+ +

Segment: A musical +section such as a chorus or verse that is a component of the overall +composition. In JET, a segment can be an entire MIDI file or a derived from a +portion of a MIDI file.

+ +

 

+ +

SMF-0: Standard +MIDI File Type 0, a MIDI file that contains a single track, but may be made up +of multiple channels of MIDI data.

+ +

 

+ +

SMF-1: Standard +MIDI File Type 1, a MIDI file that contains a one more tracks, and each track +may in turn be made up of one or more channels of MIDI +data. By convention, each channel is stored on a separate track in an SMF-1 +file. However, it is possible to have multiple MIDI channels on a single track, +or multiple tracks that contain data for the same MIDI +channel.

+ +

 

+ +

Track: A single +track in a DAW containing a timed sequence of MIDI +events. Be careful not to confuse Tracks with Channels. A MIDI file may contain +many tracks with several tracks utilizing the same MIDI +channel.

+ +

 

+ +

 

+ +

The JET +Interactive Music Concept

+ +

Interactive music can be defined as music that changes in +real-time according to non-predictable events such as user interaction or game +play events. In this way, interactive music is much more engaging as it has the +ability to match the energy and mood of a game much closer than a pre-composed +composition that never changes. In some applications and games, interactive +music is central to the game play. Guitar Hero is one such popular game. When +the end user successfully ‘captures’ the musical notes coming down the fret +board, the music adapts itself and simultaneously keeps score of successes and +failures. JET allows for these types of music driven games as well.

+ +

 

+ +

There are several methods for making and controlling +interactive music and JET is one such method. This section describes the +features of JET and how they might be used in a game or software application. +It also describes how JET can be used to save memory in small footprint devices +such as Android enabled mobile handsets.

+ +

 

+ +

JET Operation

+ +

JET supports a flexible music format that can be used to +create extended musical sequences with a minimal amount of data. A musical +composition is broken up into segments that can be sequenced to create a longer +piece. The sequencing can be fixed at the time the music file is authored, or +it can be created dynamically under program control.

+ +

Linear Music +Example

+ +

+ +

Figure 1: Linear Music Piece

+ +

 

+ +

This diagram shows how musical segments are stored. Each +segment is authored as a separate MIDI file. A +post-processing tool combines the files into a single container file. Each +segment can contain alternate music tracks that can be muted or un-muted to +create additional interest. An example might be a brass accent in the chorus +that is played only the last time through. Also, segments can be transposed up +or down.

+ +

 

+ +

The bottom part of the diagram shows how the musical +segments can be recombined to create a linear music piece. In this example, the +bridge might end with a half-step key modulation and the remaining segments +could be transposed up a half-step to match.

+ +

Non-linear Music Example

+ +

+ +

Figure 2: Non-linear music piece

+ +

 

+ +

In this diagram, we see a non-linear music piece. The +scenario is a first-person-shooter (FPS) and JET is providing the background +music. The intro plays as the level is loading and then transitions under +program control to the Searching segment. This segment is repeated +indefinitely, perhaps with small variations (using the mute/un-mute feature) +until activity in the game dictates a change.

+ +

 

+ +

As the player nears a monster lair, the program starts a +synchronized transition to the Danger segment, increasing the tension level in +the audio. As the player draws closer to the lair, additional tracks are +un-muted to increase the tension.

+ +

 

+ +

As the player enters into combat with the monster, the +program starts a synchronized transition to the Combat segment. The segment +repeats indefinitely as the combat continues. A Bonus Hit temporarily un-mutes +a decorative track that notifies the player of a successful attack, and +similarly, another track is temporarily un-muted to signify when the player +receives Special Damage.

+ +

 

+ +

At the end of combat, the music transitions to a victory or +defeat segment based on the outcome of battle.

+ +

Mute/Un-mute Synchronization

+ +

JET can also synchronize the muting and un-muting of tracks +to events in the music. For example, in the FPS game, it would probably be +desirable to place the musical events relating to bonuses and damage as close +to the actual game event as possible. However, simply un-muting a track at the +moment the game event occurs might result in a music clip starting in the +middle. Alternatively, a clip could be started from the beginning, but then it +wouldn’t be synchronized with the other music tracks.

+ +

 

+ +

However, with the JET sync engine, a clip can be started at +the next opportune moment and maintain synchronization. This can be +accomplished by placing a number of short music clips on a decorative track. A MIDI event in the stream signifies the start of a clip +and a second event signifies the end of a clip. When the application calls the +JET clip function, the next clip in the track is allowed to play fully +synchronized to the music. Optionally, the track can be automatically muted by +a second MIDI event.

+ +

 

+ +

+ +

Figure 3: Synchronized Mute/Unmute

+ +

Audio Synchronization

+ +

JET provides an audio synchronization API that allows game +play to be synchronized to events in the audio. The mechanism relies on data +embedded in the MIDI file at the time the +content is authored. When the JET engine senses an event during playback it +generates a callback into the application program. The timing of the callback +can be adjusted to compensate for any latency in the audio playback system so +that audio and video can be synchronized. The diagram below shows an example of +a simple music game that involves pressing the left and right arrows in time +with the music.

+ +

 

+ +

 

+ +

+ +

Figure 4: Music Game with +Synchronization

+ +

 

+ +

The arrows represent events in the music sequence where game +events need to be synchronized. In this case, the blue arrow represents a time +where the player is supposed to press the left button, and the red arrow is for +the right button. The yellow arrow tells the game engine that the sequence is +complete. The player is allowed a certain time window before and after the +event to press the appropriate key.

+ +

 

+ +

If an event is received and the player has not pressed a +button, a timer is set to half the length of the window. If the player presses +the button before the timer expires, the game registers a success, and if not, +the game registers a failure.

+ +

 

+ +

If the player presses the button before the event is +received, a timer is set to half the length of the window. If an event is +received before the timer expires, the game registers a success, and if not, +the game registers a failure. Game play might also include bonuses for getting +close to the timing of the actual event.

+ +

 

+ +

Operational Details

+ +

JET uses the standard EAS library calls to manage multiple MIDI streams that are synchronized to sound like a +seamless audio track. JET requires the use of the dynamic memory model, i.e. +support for malloc() and free() memory allocation functions or their +equivalent. JET also requires the DLS parser and synthesizer module to support +custom instruments in JET content files.

+ +

 

+ +

JET uses standard MIDI +events for audio synchronization. This simplifies the authoring process by +allowing content authors to use their favorite tools for developing content. +After the content has been developed, a simple post-processing tool pulls the +content together into a JET compatible content file.

+ +

Synchronization Events

+ +

JET uses MIDI controller +events to synchronize audio. The controllers used by JET are among those not +defined for specific use by the MIDI +specification. The specific controller definitions are as follows:

+ +

 

+ +

            Controllers +80-83                 Reserved for use by +application

+ +

            Controller 102                       JET event marker

+ +

            Controller +103                       JET clip marker

+ +

            Controllers +104-119             Reserved for future +use

+ +

 

+ +

Controllers 80-83 – Application Controllers

+ +

The application may use controllers in this range for its +own purposes. When a controller in this range is encountered, the event is +entered into an event queue that can be queried by the application. Some +possible uses include synchronizing video events with audio and marking a point +in a MIDI segment to queue up the next +segment. The range of controllers monitored by the application can be modified +by the application during initialization.

+ +

Controller 102 – JET Event Marker

+ +

Controller 102 is reserved for marking events in the MIDI streams that are specific to JET functionality. +Currently, the only defined value is 0, which marks the end of a segment for +timing purposes.

+ +

 

+ +

Normally, JET starts playback of the next segment (or +repeats the current segment) when the MIDI +end-of-track meta-event is encountered. Some MIDI +authoring tools make it difficult to place the end-of-track marker accurately, +resulting in synchronization problems when segments are joined together.

+ +

 

+ +

To avoid this problem, the author can place a JET +end-of-segment marker (controller=102, value=0) at the point where the segment is +to be looped. When the end-of-segment marker is encountered, the next segment +will be triggered, or if the current segment is looped, playback will resume at +the start of the segment.

+ +

 

+ +

The end-of-segment marker can also be used to allow for +completion of a musical figure beyond the end of measure that marks the start +of the next segment. For example, the content author might create a 4-bar +segment with a drum fill that ends on beat 1 of the 5th bar – a bar +beyond the natural end of the segment. By placing an end-of-segment marker at +the end of the 4th bar, the next segment will be triggered, but the +drum fill will continue in parallel with the next segment providing musical +continuity.

+ +

 

+ +

+ +

Figure 5: End-of-segment Marker

+ +

Controller 103 – JET Clip Marker

+ +

Controller 103 is reserved for marking clips in a MIDI track that can be triggered by the JET_TriggerClip +API call. The clip ID is encoded in the low 6 bits of the controller value. Bit +6 is set to one to indicate the start of a clip, and set to zero to indicate +the end of a clip.

+ +

 

+ +

For example, to identify a clip with a clip ID of 1, the +author inserts a MIDI controller event with +controller=103 and value=65 at the start of the clip and another event with controller=103 +and value=1 at the end of the clip. When the JET_TriggerClip() function is +called with a clip ID of 1, the track will be un-muted when the controller +value 65 is encountered and muted again when the controller value 1 is +encountered.

+ +

 

+ +

+ +

Figure 6: Synchronized Clip

+ +

 

+ +

In the figure above, if the JET_TriggerClip() function is +called prior to the first controller event, Track 3 will be un-muted when the +first controller event occurs, the first clip will play, and the track will be +muted when the second controller event occurs. If the JET_TriggerClip() +function is called after the first controller event has occurred, Track 3 will +be un-muted when the third controller event occurs, the second clip will play, +and the track will be muted again when the fourth controller event occurs.

+ +

 

+ +

Note: Normally, +the track containing the clip is muted by the application when the segment is +initially queued by the call to JET_QueueSegment(). If it is not muted, the clip +will always play until Jet_TriggerClip() has been called with the clip ID.

+ +

JET Programming

+ +

The JET library builds on functionality in the EAS library. +It is assumed that the reader is familiar with EAS and has implemented basic +EAS audio functionality in the application. Specifically, the application must +first initialize EAS by calling EAS_Init() and must call EAS_Render() at +appropriate times to render audio and stream it to the audio hardware. JET also +requires the use of the dynamic memory model which uses malloc() and free() or +functional equivalents.

+ +

 

+ +

Most JET function calls return an EAS_RESULT type which +should be checked against the EAS_SUCCESS return code. Most failures are not +fatal, i.e. they will not put the library in a state where it must be +re-initialized. However, some failures such as memory allocation or file +open/read errors will likely result in the specific open content failing to +render.

+ +

JET Application Initialization

+ +

The JET library is initialized by the JET_Init() function. +The application must first call EAS_Init() and then pass the EAS data handle +returned by EAS_Init() to the JET_Init() function. Currently, only a single JET +application can be active at a time.

+ +

 

+ +

The JET_Init function takes 3 arguments: The first is the +EAS data handle. The second is a pointer to a configuration structure +S_JET_CONFIG and the third is the size of the configuration structure. For most +applications, it is sufficient to pass a NULL pointer and size 0 for the +configuration data.

+ +

 

+ +

However, if desired, the configuration can be modified to +allow the application to monitor MIDI events +outside the normal range of controllers allocated for JET application events. +In this case, a configuration structure should be allocated and the data fields +initialized with the appropriate values with the low and high controller +numbers to be monitored. The size field should be the sizeof() of the data +structure. This is to allow for future enhancement of the configuration data +while maintaining compatibility.

+ +

JET Application Termination

+ +

When the JET application terminates, it should call +JET_Shutdown() to release the resources allocated by the JET engine.  If the application has no other use for the +EAS library, it should also call EAS_Shutdown().

+ +

JET Audio Processing

+ +

To start the JET engine, the content must first be opened +with the JET_OpenFile() function. Just as with EAS_OpenFile(), the file locator +is an opaque value that is passed to the EAS_HWOpenFile() function. It can +either be a pointer to a filename, or a pointer to an in-memory object, +depending on the user implementation of file I/O in the eas_host.c or +eas_hostmm.c module. Only a single JET content file can be opened at a time.

+ +

 

+ +

Once the JET file is opened, the application can begin +queuing up segments for playback by calling the JET_QueueSegment() function. +Generally, it is advisable to keep a minimum of two segments queued at all +times:  the currently playing segment +plus an additional segment that is ready to start playing when the current +segment finishes. However, with proper programming, it is possible to queue up +segments using a “just-in-time” technique. This technique typically involves +careful placement of application controller events near the end of a segment so +that the application is informed when a segment is about to end.

+ +

 

+ +

After the segment(s) are queued up, playback can begin. By +default, the segments are initialized in a paused state. To start playback, +call the JET_Play() function. Playback can be paused again by calling the JET_Pause() +function. Once initiated, playback will continue as long as the application +continues to queue up new segments before all the segments in the queue are +exhausted.

+ +

 

+ +

The JET_Status() function can be used to monitor progress. +It returns the number of segments queued, repeat count, current segment ID, and +play status. By monitor the number of segments queued, the application can +determine when it needs to queue another segment and when playback has +completed.

+ +

 

+ +

When playback has completed and the application is finished +with the contents of the currently open file, the application should call +JET_CloseFile() to close the file and release any resources associated with the +file.

+ +

JET_Init

+ +

EAS_PUBLIC EAS_RESULT JET_Init +(EAS_DATA_HANDLE easHandle, S_JET_CONFIG *pConfig, EAS_INT configSize)

+ +

 

+ +

Initializes JET library for use by application. Most +application should simply pass a NULL for pConfig and 0 for configSize, which +means that only controller events in the application range (80-83) will end up +in the application event queue. If desired, the application can instantiate an +S_JET_CONFIG data structure and set the controller range to a different range. +In this case, the configSize parameter should be set to sizeof(S_JET_CONFIG).

+ +

JET_Shutdown

+ +

EAS_PUBLIC EAS_RESULT JET_Shutdown +(EAS_DATA_HANDLE easHandle)

+ +

 

+ +

Releases resources used by the JET library. The application +should call this function when it is no longer using the JET library.

+ +

JET_ OpenFile

+ +

EAS_PUBLIC EAS_RESULT JET_OpenFile +(EAS_DATA_HANDLE easHandle, EAS_FILE_LOCATOR locator)

+ +

 

+ +

Opens a JET content file for playback. Content must be +formatted for use by the JET library, which is typically accomplished with the +jetfile.py script (see “Creating JET Content”). Only a single JET content file +can be opened at a time. However, since JET can contain many MIDI +files and DLS libraries, this limitation is normally not an issue.

+ +

JET_ CloseFile

+ +

EAS_PUBLIC EAS_RESULT JET_CloseFile +(EAS_DATA_HANDLE easHandle)

+ +

 

+ +

Closes a JET file and release the resources associated with it.

+ +

JET_ Status

+ +

EAS_PUBLIC EAS_RESULT JET_Status +(EAS_DATA_HANDLE easHandle, S_JET_STATUS *pStatus)

+ +

 

+ +

Returns the current JET status. The elements of the status +data structure are as follows:

+ +

 

+ +

typedef struct s_jet_status_tag

+ +

{

+ +

     EAS_INT   currentUserID;

+ +

     EAS_INT   segmentRepeatCount;

+ +

     EAS_INT   numQueuedSegments;

+ +

     EAS_BOOL paused;

+ +

} S_JET_STATUS;

+ +

 

+ +

currentUserID: An +8-bit value assigned by the application.

+ +

 

+ +

segmentRepeatCount: +Number of times left to repeat. Zero indicates no repeats, a negative number +indicates an infinite number of repeats. Any positive value indicates that the +segment will play n+1 times.

+ +

 

+ +

numQueuedSegments: +Number of segments currently queued to play including the currently playing +segment. A value of zero indicates that nothing is playing. Normally, the +application will queue a new segment each time the value is 1 so that playback +is uninterrupted.

+ +

JET_ QueueSegment

+ +

EAS_PUBLIC EAS_RESULT JET_QueueSegment +(EAS_DATA_HANDLE easHandle, EAS_INT segmentNum, EAS_INT libNum, EAS_INT +repeatCount, EAS_INT transpose, EAS_U32 muteFlags, EAS_U8 userID)

+ +

 

+ +

Queues up a JET MIDI segment for playback. The parameters +are as follows:

+ +

 

+ +

segmentNum: +Segment number as identified in the JET content configuration file.

+ +

 

+ +

libNum: The library +number as specified in the JET content configuration file. Use -1 to select the +standard General MIDI library.

+ +

 

+ +

repeatCount: The +number of times this segment should repeat. Zero indicates no repeat, i.e. play +only once. Any positive number indicates to play n+1 times. Set to -1 to repeat +indefinitely.

+ +

 

+ +

transpose: The +amount of pitch transposition. Set to 0 for normal playback. Range is -12 to ++12.

+ +

 

+ +

muteFlags: +Specific which MIDI tracks (not MIDI channels) +should be muted during playback. These flags can be changed dynamically using +the mute functions. Bit 0 = track 0, bit 1 = track 1, etc.

+ +

 

+ +

userID: 8-bit +value specified by the application that uniquely identifies the segment. This +value is returned in the JET_Status() function as well as by the application +event when an event is detected in a segment. Normally, the application keeps +an 8-bit value that is incremented each time a new segment is queued up. This +can be used to look up any special characteristics of that track including +trigger clips and mute flags.

+ +

JET_ Play

+ +

EAS_PUBLIC EAS_RESULT JET_Play +(EAS_DATA_HANDLE easHandle)

+ +

 

+ +

Starts playback of the current segment. This function must +be called once after the initial segments are queued up to start playback. It +is also called after JET_Pause() to resume playback.

+ +

JET_ Pause

+ +

EAS_PUBLIC EAS_RESULT JET_Pause +(EAS_DATA_HANDLE easHandle)

+ +

 

+ +

Pauses playback of the current segment. Call JET_Pause() to +resume playback.

+ +

JET_ SetMuteFlags

+ +

EAS_PUBLIC EAS_RESULT JET_SetMuteFlags +(EAS_DATA_HANDLE easHandle, EAS_U32 muteFlags, EAS_BOOL sync)

+ +

 

+ +

Modifies the mute flags during playback. If the sync parameter is false, the mute flags +are updated at the beginning of the next render. This means that any new notes +or controller events will be processed during the next audio frame. If the sync parameter is true, the mute flags +will be updated at the start of the next segment. If the segment is repeated, +the flags will take effect the next time segment is repeated.

+ +

JET_ SetMuteFlag

+ +

EAS_PUBLIC EAS_RESULT JET_SetMuteFlag +(EAS_DATA_HANDLE easHandle, EAS_INT trackNum, EAS_BOOL muteFlag, EAS_BOOL sync)

+ +

Modifies a mute flag for a single track during playback. If +the sync parameter is false, the mute +flag is updated at the beginning of the next render. This means that any new +notes or controller events will be processed during the next audio frame. If +the sync parameter is true, the mute +flag will be updated at the start of the next segment. If the segment is +repeated, the flag will take effect the next time segment is repeated.

+ +

JET_ TriggerClip

+ +

EAS_PUBLIC EAS_RESULT JET_TriggerClip +(EAS_DATA_HANDLE easHandle, EAS_INT clipID)

+ +

 

+ +

Automatically updates mute flags in sync with the JET Clip +Marker (controller 103). The parameter clipID +must be in the range of 0-63. After the call to JET_TriggerClip, when JET next +encounters a controller event 103 with bits 0-5 of the value equal to clipID and bit 6 set to 1, it will automatically un-mute the track containing +the controller event. When JET encounters the complementary controller event +103 with bits 0-5 of the value equal to clipID +and bit 6 set to 0, it will mute +the track again.

+ +

JET_ GetEvent

+ +

EAS_BOOL JET_GetEvent (EAS_DATA_HANDLE +easHandle, EAS_U32 *pEventRaw, S_JET_EVENT *pEvent)

+ +

 

+ +

Attempts to read an event from the application event queue, +return EAS_TRUE if an event is found and EAS_FALSE if not. If the application +passes a valid pointer for pEventRaw, +a 32-bit compressed event code is returned. If the application passes a valid +pointer for pEvent, the event is +parsed into the S_JET_EVENT fields. The application can pass NULL for either +parameter and that variable will be ignored. Normally, the application will +call JET_GetEvent() repeatedly to retrieve events until it returns EAS_FALSE.

+ +

JET_ ParseEvent

+ +

EAS_PUBLIC void JET_ParseEvent (EAS_U32 +event, S_JET_EVENT *pEvent)

+ +

Parses a 32-bit compressed event code into a data structure. +The application passes the event code received from JET_GetEvent(). The parsed +event data is returned in the memory pointed to by pEvent.

+ +

JET_GetAppData

+ +

EAS_RESULT JET_GetAppData +(EAS_DATA_HANDLE easHandle, EAS_I32 *pAppDataOffset, EAS_I32 *pAppDataSize)

+ +

Returns the offset and size of the JAPP chunk in the JET +file. The application can use the file I/O functions in the eas_host module to +retrieve application specific data from the file.

+ +

 

+ +

 

+ +

Creating JET Content

+ +

JET uses standard MIDI files and DLS files that can be +created with commercially available content tools such as Logic, Cubase, +Digital Performer, or SONAR for MIDI files and +Awave for DLS2 files. These source files are then bundled into a .jet package +file suitable for use in a JET application.

+ +

 

+ +

To create JET file use the “JET Creator” desktop +application. The JET Creator application is written in Python and includes a +full graphical interface. It is available for MAC and PC platforms. See “JET +Creator User Manual” for more information.

+ +
+ + + + diff --git a/docs/JET_Programming_Manual_files/header.htm b/docs/JET_Programming_Manual_files/header.htm new file mode 100755 index 0000000..8cc7121 --- /dev/null +++ b/docs/JET_Programming_Manual_files/header.htm @@ -0,0 +1,73 @@ + + + + + + + + + + + + + +
+ +

+ +


+ +

+ +
+ +
+ +

+ +


+ +

+ +
+ +
+ +

+ +


+ +

+ +
+ +
+ +

+ +


+ +

+ +
+ +
+ +

                                        JET +Programming Guide   vrs.2   Page 1/19

+ +
+ + + + diff --git a/docs/JET_Programming_Manual_files/image002.png b/docs/JET_Programming_Manual_files/image002.png new file mode 100755 index 0000000..931d4a4 Binary files /dev/null and b/docs/JET_Programming_Manual_files/image002.png differ diff --git a/docs/JET_Programming_Manual_files/image004.png b/docs/JET_Programming_Manual_files/image004.png new file mode 100755 index 0000000..93086b5 Binary files /dev/null and b/docs/JET_Programming_Manual_files/image004.png differ diff --git a/docs/JET_Programming_Manual_files/image006.png b/docs/JET_Programming_Manual_files/image006.png new file mode 100755 index 0000000..2916ddd Binary files /dev/null and b/docs/JET_Programming_Manual_files/image006.png differ diff --git a/docs/JET_Programming_Manual_files/image008.png b/docs/JET_Programming_Manual_files/image008.png new file mode 100755 index 0000000..d80d93c Binary files /dev/null and b/docs/JET_Programming_Manual_files/image008.png differ diff --git a/docs/JET_Programming_Manual_files/image010.png b/docs/JET_Programming_Manual_files/image010.png new file mode 100755 index 0000000..542a7f7 Binary files /dev/null and b/docs/JET_Programming_Manual_files/image010.png differ diff --git a/docs/JET_Programming_Manual_files/image012.png b/docs/JET_Programming_Manual_files/image012.png new file mode 100755 index 0000000..547759c Binary files /dev/null and b/docs/JET_Programming_Manual_files/image012.png differ diff --git a/docs/JET_Programming_Manual_files/image013.emz b/docs/JET_Programming_Manual_files/image013.emz new file mode 100755 index 0000000..f152c11 Binary files /dev/null and b/docs/JET_Programming_Manual_files/image013.emz differ diff --git a/docs/JET_Programming_Manual_files/image014.emz b/docs/JET_Programming_Manual_files/image014.emz new file mode 100755 index 0000000..010c4bd Binary files /dev/null and b/docs/JET_Programming_Manual_files/image014.emz differ diff --git a/docs/JET_Programming_Manual_files/image015.emz b/docs/JET_Programming_Manual_files/image015.emz new file mode 100755 index 0000000..a29ebfd Binary files /dev/null and b/docs/JET_Programming_Manual_files/image015.emz differ diff --git a/docs/JET_Programming_Manual_files/image016.emz b/docs/JET_Programming_Manual_files/image016.emz new file mode 100755 index 0000000..31cba25 Binary files /dev/null and b/docs/JET_Programming_Manual_files/image016.emz differ diff --git a/docs/JET_Programming_Manual_files/image017.emz b/docs/JET_Programming_Manual_files/image017.emz new file mode 100755 index 0000000..2b06699 Binary files /dev/null and b/docs/JET_Programming_Manual_files/image017.emz differ diff --git a/docs/JET_Programming_Manual_files/image018.emz b/docs/JET_Programming_Manual_files/image018.emz new file mode 100755 index 0000000..1668a8e Binary files /dev/null and b/docs/JET_Programming_Manual_files/image018.emz differ -- cgit v1.2.3 From 3e3119bdf871ebe4602f464ac5a3ee33d7d7e123 Mon Sep 17 00:00:00 2001 From: Jean-Michel Trivi <> Date: Thu, 16 Apr 2009 12:41:32 -0700 Subject: AI 146484: am: CL 146399 Add sources of the OSX native lib for JetCreator. Original author: jmtrivi Merged from: //branches/cupcake/... Automated import of CL 146484 --- .../darwin-x86/EASLIb.xcodeproj/project.pbxproj | 357 + arm-wt-22k/jetcreator_lib_src/darwin-x86/EASLib.c | 1809 +++ arm-wt-22k/jetcreator_lib_src/darwin-x86/EASLib.h | 31 + .../jetcreator_lib_src/darwin-x86/EASLibVst.c | 1504 ++ .../jetcreator_lib_src/darwin-x86/README.txt | 9 + .../jetcreator_lib_src/darwin-x86/eas_host_debug.h | 47 + .../jetcreator_lib_src/darwin-x86/eastestv37.c | 999 ++ .../easwt_vst_lib.xcodeproj/project.pbxproj | 645 + .../jetcreator_lib_src/darwin-x86/wt_44khz.c | 14723 +++++++++++++++++++ 9 files changed, 20124 insertions(+) create mode 100644 arm-wt-22k/jetcreator_lib_src/darwin-x86/EASLIb.xcodeproj/project.pbxproj create mode 100755 arm-wt-22k/jetcreator_lib_src/darwin-x86/EASLib.c create mode 100755 arm-wt-22k/jetcreator_lib_src/darwin-x86/EASLib.h create mode 100755 arm-wt-22k/jetcreator_lib_src/darwin-x86/EASLibVst.c create mode 100644 arm-wt-22k/jetcreator_lib_src/darwin-x86/README.txt create mode 100755 arm-wt-22k/jetcreator_lib_src/darwin-x86/eas_host_debug.h create mode 100755 arm-wt-22k/jetcreator_lib_src/darwin-x86/eastestv37.c create mode 100644 arm-wt-22k/jetcreator_lib_src/darwin-x86/easwt_vst_lib.xcodeproj/project.pbxproj create mode 100644 arm-wt-22k/jetcreator_lib_src/darwin-x86/wt_44khz.c diff --git a/arm-wt-22k/jetcreator_lib_src/darwin-x86/EASLIb.xcodeproj/project.pbxproj b/arm-wt-22k/jetcreator_lib_src/darwin-x86/EASLIb.xcodeproj/project.pbxproj new file mode 100644 index 0000000..dc24dec --- /dev/null +++ b/arm-wt-22k/jetcreator_lib_src/darwin-x86/EASLIb.xcodeproj/project.pbxproj @@ -0,0 +1,357 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 44; + objects = { + +/* Begin PBXBuildFile section */ + 9A56ACEA0F72B84D00D115A7 /* libeaswt_vst_lib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A56ACD80F72B7D600D115A7 /* libeaswt_vst_lib.a */; }; + C5AB01090E3400DC0051F183 /* EASLib.h in Headers */ = {isa = PBXBuildFile; fileRef = C5AB01070E3400DC0051F183 /* EASLib.h */; }; + C5AB010A0E3400DC0051F183 /* EASLib.c in Sources */ = {isa = PBXBuildFile; fileRef = C5AB01080E3400DC0051F183 /* EASLib.c */; }; + C5AB01240E3406090051F183 /* eas_config.c in Sources */ = {isa = PBXBuildFile; fileRef = C5AB01230E3406090051F183 /* eas_config.c */; }; + C5AB017A0E340DD60051F183 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C5AB01790E340DD60051F183 /* AudioUnit.framework */; }; + C5AB018C0E340EAA0051F183 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C5AB018B0E340EAA0051F183 /* AudioToolbox.framework */; }; + C5AB01910E340EC50051F183 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C5AB01900E340EC50051F183 /* CoreAudio.framework */; }; + C5AB02F60E341AAC0051F183 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C5AB02F50E341AAC0051F183 /* Carbon.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 9A56ACD70F72B7D600D115A7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 9A56ACD30F72B7D600D115A7 /* easwt_vst_lib.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = D2AAC046055464E500DB518D; + remoteInfo = easwt_vst_lib; + }; + 9A56ACFC0F72B8B200D115A7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 9A56ACD30F72B7D600D115A7 /* easwt_vst_lib.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = D2AAC045055464E500DB518D; + remoteInfo = easwt_vst_lib; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 9A56ACD30F72B7D600D115A7 /* easwt_vst_lib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = easwt_vst_lib.xcodeproj; sourceTree = ""; }; + C5AB01070E3400DC0051F183 /* EASLib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EASLib.h; sourceTree = ""; }; + C5AB01080E3400DC0051F183 /* EASLib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = EASLib.c; sourceTree = ""; }; + C5AB01230E3406090051F183 /* eas_config.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_config.c; path = ../../host_src/eas_config.c; sourceTree = SOURCE_ROOT; }; + C5AB01790E340DD60051F183 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = /System/Library/Frameworks/AudioUnit.framework; sourceTree = ""; }; + C5AB018B0E340EAA0051F183 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = ""; }; + C5AB01900E340EC50051F183 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = ""; }; + C5AB02F50E341AAC0051F183 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = ""; }; + D2AAC0630554660B00DB518D /* libEASLIb.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libEASLIb.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D289988505E68E00004EDB86 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 9A56ACEA0F72B84D00D115A7 /* libeaswt_vst_lib.a in Frameworks */, + C5AB017A0E340DD60051F183 /* AudioUnit.framework in Frameworks */, + C5AB018C0E340EAA0051F183 /* AudioToolbox.framework in Frameworks */, + C5AB01910E340EC50051F183 /* CoreAudio.framework in Frameworks */, + C5AB02F60E341AAC0051F183 /* Carbon.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 08FB7794FE84155DC02AAC07 /* EASLIb */ = { + isa = PBXGroup; + children = ( + 9A56ACD30F72B7D600D115A7 /* easwt_vst_lib.xcodeproj */, + C5AB02F50E341AAC0051F183 /* Carbon.framework */, + C5AB01900E340EC50051F183 /* CoreAudio.framework */, + C5AB018B0E340EAA0051F183 /* AudioToolbox.framework */, + C5AB01790E340DD60051F183 /* AudioUnit.framework */, + 08FB7795FE84155DC02AAC07 /* Source */, + 1AB674ADFE9D54B511CA2CBB /* Products */, + ); + name = EASLIb; + sourceTree = ""; + }; + 08FB7795FE84155DC02AAC07 /* Source */ = { + isa = PBXGroup; + children = ( + C5AB01230E3406090051F183 /* eas_config.c */, + C5AB01070E3400DC0051F183 /* EASLib.h */, + C5AB01080E3400DC0051F183 /* EASLib.c */, + ); + name = Source; + sourceTree = ""; + }; + 1AB674ADFE9D54B511CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + D2AAC0630554660B00DB518D /* libEASLIb.dylib */, + ); + name = Products; + sourceTree = ""; + }; + 9A56ACD40F72B7D600D115A7 /* Products */ = { + isa = PBXGroup; + children = ( + 9A56ACD80F72B7D600D115A7 /* libeaswt_vst_lib.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D2AAC0600554660B00DB518D /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + C5AB01090E3400DC0051F183 /* EASLib.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D2AAC0620554660B00DB518D /* EASLIb */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1DEB914A08733D8E0010E9CD /* Build configuration list for PBXNativeTarget "EASLIb" */; + buildPhases = ( + D2AAC0600554660B00DB518D /* Headers */, + D2AAC0610554660B00DB518D /* Sources */, + D289988505E68E00004EDB86 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 9A56ACFD0F72B8B200D115A7 /* PBXTargetDependency */, + ); + name = EASLIb; + productName = EASLIb; + productReference = D2AAC0630554660B00DB518D /* libEASLIb.dylib */; + productType = "com.apple.product-type.library.dynamic"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB914E08733D8E0010E9CD /* Build configuration list for PBXProject "EASLIb" */; + compatibilityVersion = "Xcode 3.0"; + hasScannedForEncodings = 1; + mainGroup = 08FB7794FE84155DC02AAC07 /* EASLIb */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 9A56ACD40F72B7D600D115A7 /* Products */; + ProjectRef = 9A56ACD30F72B7D600D115A7 /* easwt_vst_lib.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + D2AAC0620554660B00DB518D /* EASLIb */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 9A56ACD80F72B7D600D115A7 /* libeaswt_vst_lib.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libeaswt_vst_lib.a; + remoteRef = 9A56ACD70F72B7D600D115A7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXSourcesBuildPhase section */ + D2AAC0610554660B00DB518D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C5AB010A0E3400DC0051F183 /* EASLib.c in Sources */, + C5AB01240E3406090051F183 /* eas_config.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 9A56ACFD0F72B8B200D115A7 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = easwt_vst_lib; + targetProxy = 9A56ACFC0F72B8B200D115A7 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 1DEB914B08733D8E0010E9CD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + EXECUTABLE_PREFIX = lib; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "EAS_MAX_FILE_HANDLES=100", + "_DEBUG_CMF=1", + "JET_INTERFACE=1", + "MAX_SMF_STREAMS=32", + "NUM_OUTPUT_CHANNELS=2", + "_SAMPLE_RATE_44100=1", + "_8_BIT_SAMPLES=1", + "_FILTER_ENABLED=1", + "_NO_DEBUG_PREPROCESSOR=1", + "_CORE_CYCLES_PER_MEMORY_CYCLE=1", + "_IMA_DECODER=1", + "_XMF_PARSER=1", + "_DLS_PARSER=1", + "MAX_DLS_MEMORY=16777216", + "EAS_WT_SYNTH=1", + "MAX_SYNTH_VOICES=64", + "X_ENHANCER_ENABLED=1", + "_REVERB_ENABLED=1", + "_CHORUS_ENABLED=1", + "DLS_SYNTHESIZER=1", + "EXTERNAL_AUDIO=1", + "TEST_HARNESS=1", + "MMAPI_SUPPORT=1", + "X_MAXIMIZER_ENABLED=1", + "X_COMPRESSOR_ENABLED=1", + "X_STATS=1", + "X_DEBUG_DLS=1", + "X_OPTIMIZED_MONO=1", + "X_CHECKED_BUILD=1", + "_NO_ALIGN=1", + "_C_REFERENCE=1", + "XMAXIMIZER_USE_FLOATING_POINT=1", + "BUFFERED_FILE_ACCESS=1", + ); + HEADER_SEARCH_PATHS = ( + "${TARGET_BUILD_DIR}/**", + "../../Common/**", + "../../Parsers/**", + "../../Effects/**", + "../../WTSynth/**", + "../../FMSynth/**", + "../../SplitArch/**", + "../../Jet/**", + ); + INSTALL_PATH = /usr/local/lib; + MACOSX_DEPLOYMENT_TARGET = 10.4; + PRODUCT_NAME = EASLIb; + ZERO_LINK = YES; + }; + name = Debug; + }; + 1DEB914C08733D8E0010E9CD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = i386; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + EXECUTABLE_PREFIX = lib; + GCC_AUTO_VECTORIZATION = YES; + GCC_MODEL_TUNING = G5; + GCC_PREPROCESSOR_DEFINITIONS = ( + "BUFFERED_FILE_ACCESS=1", + "EAS_FILE_BUFFER_SIZE=1024", + "EAS_MAX_FILE_HANDLES=100", + "JET_INTERFACE=1", + "MAX_SMF_STREAMS=32", + "EAS_WT_SYNTH=1", + "NUM_OUTPUT_CHANNELS=2", + "_SAMPLE_RATE_44100=1", + "_8_BIT_SAMPLES=1", + "_FILTER_ENABLED=1", + "_NO_DEBUG_PREPROCESSOR=1", + "_CORE_CYCLES_PER_MEMORY_CYCLE=1", + "_IMA_DECODER=1", + "_XMF_PARSER=1", + "_DLS_PARSER=1", + "MAX_DLS_MEMORY=16777216", + "MAX_SYNTH_VOICES=64", + "X_ENHANCER_ENABLED=1", + "_REVERB_ENABLED=1", + "_CHORUS_ENABLED=1", + "DLS_SYNTHESIZER=1", + "EXTERNAL_AUDIO=1", + "TEST_HARNESS=1", + "MMAPI_SUPPORT=1", + "X_MAXIMIZER_ENABLED=1", + "X_COMPRESSOR_ENABLED=1", + "X_STATS=1", + "X_DEBUG_DLS=1", + "X_OPTIMIZED_MONO=1", + "X_CHECKED_BUILD=1", + "_NO_ALIGN=1", + "_C_REFERENCE=1", + "XMAXIMIZER_USE_FLOATING_POINT=1", + ); + GCC_UNROLL_LOOPS = YES; + HEADER_SEARCH_PATHS = ( + "${TARGET_BUILD_DIR}/**", + "../../Common/**", + "../../Parsers/**", + "../../Effects/**", + "../../WTSynth/**", + "../../FMSynth/**", + "../../SplitArch/**", + "../../Jet/**", + ); + INSTALL_PATH = /usr/local/lib; + MACOSX_DEPLOYMENT_TARGET = 10.4; + PRODUCT_NAME = EASLIb; + }; + name = Release; + }; + 1DEB914F08733D8E0010E9CD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PREBINDING = NO; + SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk"; + }; + name = Debug; + }; + 1DEB915008733D8E0010E9CD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = i386; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PREBINDING = NO; + SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1DEB914A08733D8E0010E9CD /* Build configuration list for PBXNativeTarget "EASLIb" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1DEB914B08733D8E0010E9CD /* Debug */, + 1DEB914C08733D8E0010E9CD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 1DEB914E08733D8E0010E9CD /* Build configuration list for PBXProject "EASLIb" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1DEB914F08733D8E0010E9CD /* Debug */, + 1DEB915008733D8E0010E9CD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/arm-wt-22k/jetcreator_lib_src/darwin-x86/EASLib.c b/arm-wt-22k/jetcreator_lib_src/darwin-x86/EASLib.c new file mode 100755 index 0000000..6f98bc1 --- /dev/null +++ b/arm-wt-22k/jetcreator_lib_src/darwin-x86/EASLib.c @@ -0,0 +1,1809 @@ +/* + * EASLib.c + * EASLIb + * + * + * Copyright (C) 2008 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include +#include +#include +#include + +#include "eas.h" +#include "eas_report.h" +#include "eas_host.h" +#include +#include + +#ifdef JET_INTERFACE +#include "jet.h" +#endif + + +#define EAS_EXPORT __attribute__((visibility("default"))) + +// #define DEBUG_FILE_IO + +/* include debug interface */ +#include "eas_host_debug.h" + +#ifdef AUX_MIXER +#include "eas_auxmix.h" +#endif + +/* this module requires dynamic memory support */ +#ifdef _STATIC_MEMORY +#error "eas_hostmm.c requires the dynamic memory model!\n" +#endif + +#ifndef EAS_MAX_FILE_HANDLES +#define EAS_MAX_FILE_HANDLES 32 +#endif + +#ifndef EAS_FILE_BUFFER_SIZE +#define EAS_FILE_BUFFER_SIZE 32 +#endif + +/* + * this structure and the related function are here + * to support the ability to create duplicate handles + * and buffering it in memory. If your system uses + * in-memory resources, you can eliminate the calls + * to malloc and free, the dup flag, and simply track + * the file size and read position. + */ + #ifdef BUFFERED_FILE_ACCESS +typedef struct eas_hw_file_tag +{ + FILE *pFile; + EAS_I32 bytesInBuffer; + EAS_I32 readIndex; + EAS_I32 filePos; + EAS_I32 fileSize; + EAS_BOOL dup; + EAS_U8 buffer[EAS_FILE_BUFFER_SIZE]; +} EAS_HW_FILE; +#else +typedef struct eas_hw_file_tag +{ + EAS_I32 fileSize; + EAS_I32 filePos; + EAS_BOOL dup; + EAS_U8 *buffer; +} EAS_HW_FILE; +#endif + +typedef struct eas_hw_inst_data_tag +{ + EAS_HW_FILE files[EAS_MAX_FILE_HANDLES]; +} EAS_HW_INST_DATA; + +EAS_BOOL errorConditions[eNumErrorConditions]; +EAS_BOOL ledState; +EAS_BOOL vibState; +EAS_BOOL backlightState; + +#define MAX_DEBUG_MSG_LEN 1024 + +typedef void (*EAS_LOG_FUNC)(EAS_INT severity, char *msg); + +static EAS_LOG_FUNC logCallback = NULL; +static char messageBuffer[MAX_DEBUG_MSG_LEN]; + +/* error counts */ +static EAS_INT eas_fatalErrors; +static EAS_INT eas_errors; +static EAS_INT eas_warnings; +static int severityLevel = 9999; + + +#define MAX_BUFFERS 8 + +// The output unit +AudioUnit OutputUnit; +AudioStreamBasicDescription streamFormat; + +// sync stuf +pthread_mutex_t mtx; +pthread_cond_t cond; +bool bStopped = true; + +// buffer to hold the data +typedef struct +{ + UInt32 uOutBufferLength; + UInt32 uOutFrames; + int ix; + short* pData[8]; + unsigned int uLength; +} S_BUFFER_INFO; + +static S_BUFFER_INFO *pBuf = NULL; +const S_EAS_LIB_CONFIG *pConfig = NULL; + +/*---------------------------------------------------------------------------- + * ResetErrorCounters() + *---------------------------------------------------------------------------- +*/ +EAS_EXPORT void ResetErrorCounters() +{ + eas_fatalErrors = 0; + eas_errors = 0; + eas_warnings = 0; +} + +/*---------------------------------------------------------------------------- + * SetLogCallback() + *---------------------------------------------------------------------------- +*/ +EAS_EXPORT void SetLogCallback (EAS_LOG_FUNC callback) +{ + logCallback = callback; +} + +#ifndef _NO_DEBUG_PREPROCESSOR +static S_DEBUG_MESSAGES debugMessages[] = +{ +#ifdef UNIFIED_DEBUG_MESSAGES +#include "eas_debugmsgs.h" +#endif + { 0,0,0 } +}; + +/*---------------------------------------------------------------------------- + * EAS_ReportEx() + *---------------------------------------------------------------------------- +*/ +void EAS_ReportEx (int severity, unsigned long hashCode, int serialNum, ...) +{ + va_list vargs; + int i; + + switch (severity) + { + case _EAS_SEVERITY_FATAL: + eas_fatalErrors++; + break; + + case _EAS_SEVERITY_ERROR: + eas_errors++; + break; + + case _EAS_SEVERITY_WARNING: + eas_warnings++; + break; + + default: + break; + } + + /* check severity level */ + if (severity > severityLevel) + return; + + /* check for callback */ + if (logCallback == NULL) + return; + + /* find the error message and output to stdout */ + for (i = 0; debugMessages[i].m_pDebugMsg; i++) + { + if ((debugMessages[i].m_nHashCode == hashCode) && + (debugMessages[i].m_nSerialNum == serialNum)) + { + va_start(vargs, serialNum); +#ifdef WIN32 + vsprintf_s(messageBuffer, sizeof(messageBuffer), fmt, vargs); +#else + vsprintf(messageBuffer, debugMessages[i].m_pDebugMsg, vargs); +#endif + logCallback(severity, messageBuffer); + va_end(vargs); + return; + } + } + printf("Unrecognized error: Severity=%d; HashCode=%lu; SerialNum=%d\n", severity, hashCode, serialNum); +} /* end EAS_ReportEx */ + +#else +/*---------------------------------------------------------------------------- + * EAS_Report() + *---------------------------------------------------------------------------- +*/ +void EAS_Report (int severity, const char *fmt, ...) +{ + va_list vargs; + + switch (severity) + { + case _EAS_SEVERITY_FATAL: + eas_fatalErrors++; + break; + + case _EAS_SEVERITY_ERROR: + eas_errors++; + break; + + case _EAS_SEVERITY_WARNING: + eas_warnings++; + break; + + default: + break; + } + + /* check severity level */ + if (severity > severityLevel) + return; + + /* check for callback */ + if (logCallback == NULL) + return; + + va_start(vargs, fmt); +#ifdef _WIN32 + vsprintf_s(messageBuffer, sizeof(messageBuffer), fmt, vargs); +#else + vsprintf(messageBuffer, fmt, vargs); +#endif + logCallback(severity, messageBuffer); + va_end(vargs); +} /* end EAS_Report */ + +/*---------------------------------------------------------------------------- + * EAS_ReportX() + *---------------------------------------------------------------------------- +*/ +void EAS_ReportX (int severity, const char *fmt, ...) +{ + va_list vargs; + + switch (severity) + { + case _EAS_SEVERITY_FATAL: + eas_fatalErrors++; + break; + + case _EAS_SEVERITY_ERROR: + eas_errors++; + break; + + case _EAS_SEVERITY_WARNING: + eas_warnings++; + break; + + default: + break; + } + + /* check severity level */ + if (severity > severityLevel) + return; + + /* check for callback */ + if (logCallback == NULL) + return; + + va_start(vargs, fmt); +#ifdef _WIN32 + vsprintf_s(messageBuffer, sizeof(messageBuffer), fmt, vargs); +#else + vsprintf(messageBuffer, fmt, vargs); +#endif + logCallback(severity, messageBuffer); + va_end(vargs); +} +#endif + +/*---------------------------------------------------------------------------- + * EAS_DLLSetDebugLevel() + *---------------------------------------------------------------------------- +*/ +EAS_EXPORT void EAS_DLLSetDebugLevel (int severity) +{ + severityLevel = severity; +} + +/*---------------------------------------------------------------------------- + * EAS_ExSetDebugLevel() + *---------------------------------------------------------------------------- +*/ +void EAS_SetDebugLevel (int severity) +{ + severityLevel = severity; +} + +/*---------------------------------------------------------------------------- + * EAS_SelectLibrary() + *---------------------------------------------------------------------------- +*/ +EAS_EXPORT EAS_RESULT EAS_SelectLib (EAS_DATA_HANDLE pEASData, EAS_HANDLE streamHandle, EAS_BOOL testLib) +{ + extern EAS_SNDLIB_HANDLE VMGetLibHandle(EAS_INT libNum); + return EAS_SetSoundLibrary(pEASData, streamHandle, VMGetLibHandle(testLib ? 1 : 0)); +} + +// Callback proc +static OSStatus RenderProc( void *inRefCon, + AudioUnitRenderActionFlags *ioActionFlags, + const AudioTimeStamp *inTimeStamp, + UInt32 inBusNumber, + UInt32 inNumberFrames, + AudioBufferList *ioData) +{ + // Get the mutex + pthread_mutex_lock(&mtx); + + short* ptrOutL = (short *)ioData->mBuffers[0].mData; + short* ptrOutR = (short *)ioData->mBuffers[1].mData; + + memset(ptrOutL, 0, pBuf->uOutFrames); + memset(ptrOutR, 0, pBuf->uOutFrames); + + // check if there is any data in the buffer + if (pBuf->ix == 0 ) + { + // Release the mutex and signal the python thread + pthread_mutex_unlock(&mtx); + pthread_cond_signal(&cond); + return 0; + } + + // Get a ptr to the data + short* pData = pBuf->pData[--(pBuf->ix)]; + + // Now copy the data + int i; + for (i = 0; i < pBuf->uOutFrames; i+=2 ) + { + *ptrOutL++ = pData[i]; + *ptrOutR++ = pData[i+1]; + } + + // Release the mutex + pthread_mutex_unlock(&mtx); + pthread_cond_signal(&cond); + + return 0; +} + +EAS_RESULT addData(EAS_PCM *pAudioBuffer) +{ + // Copy the data we got from the synth + memcpy(pBuf->pData[(pBuf->ix)++], pAudioBuffer, 2048); + + // Start the output Audio Unit only the first time + if ( bStopped == true ) + { + bStopped = false; + OSStatus err = AudioOutputUnitStart (OutputUnit); + if (err) + { + printf ("AudioDeviceStart=%ld\n", err); + return EAS_FAILURE; + } + } + + return EAS_SUCCESS; +} + + +EAS_EXPORT EAS_RESULT EAS_RenderWaveOut(EAS_DATA_HANDLE easHandle, EAS_PCM *pAudioBuffer, EAS_I32 numRequested, EAS_I32 *pNumGenerated) +{ + // Get the mutex + pthread_mutex_lock(&mtx); + + // Check if our buffer is full + while(pBuf->ix == MAX_BUFFERS - 1) + pthread_cond_wait(&cond, &mtx); + + // Call the synth the render a buffer + EAS_RESULT result = EAS_Render(easHandle, pAudioBuffer, numRequested, pNumGenerated); + addData( pAudioBuffer ); + + // Release the mutex + pthread_mutex_unlock(&mtx); + + //Done + return result; +} + +#ifdef AUX_MIXER +EAS_EXPORT EAS_RESULT EAS_RenderAuxMixerWaveOut (EAS_DATA_HANDLE easHandle, EAS_PCM *pAudioBuffer, EAS_I32 *pNumGenerated) +{ + // Get the mutex + pthread_mutex_lock(&mtx); + + // Check if our buffer is full + while(pBuf->ix == MAX_BUFFERS - 1) + pthread_cond_wait(&cond, &mtx); + + EAS_RESULT result = EAS_RenderAuxMixer(easHandle, pAudioBuffer, pNumGenerated); + addData( pAudioBuffer ); + + // Release the mutex + pthread_mutex_unlock(&mtx); + + return result; +} +#endif + +EAS_EXPORT EAS_RESULT OpenWaveOutDevice(EAS_INT devNum, EAS_INT sampleRate, EAS_INT maxBufSize) +{ + // Open the default output unit + ComponentDescription desc; + desc.componentType = kAudioUnitType_Output; + desc.componentSubType = kAudioUnitSubType_DefaultOutput; + desc.componentManufacturer = kAudioUnitManufacturer_Apple; + desc.componentFlags = 0; + desc.componentFlagsMask = 0; + + Component comp = FindNextComponent(NULL, &desc); + if (comp == NULL) + { + printf ("Could find the default output unit!!!\n"); + return EAS_FAILURE; + } + + OSStatus err = OpenAComponent(comp, &OutputUnit); + if (comp == NULL) + { + printf ("OpenAComponent=%ld\n", err); + return EAS_FAILURE; + } + + // Set up a callback function to generate output to the output unit + AURenderCallbackStruct auRenderCallback; + auRenderCallback.inputProc = RenderProc; + auRenderCallback.inputProcRefCon = NULL; + + err = AudioUnitSetProperty (OutputUnit, + kAudioUnitProperty_SetRenderCallback, + kAudioUnitScope_Input, + 0, + &auRenderCallback, + sizeof(auRenderCallback)); + if (err) + { + printf ("AudioUnitSetProperty-CB=%ld\n", err); + return EAS_FAILURE;; + } + + pConfig = EAS_Config(); + + // The synth engine already uses short* for the buffers so let CoreAudio do any conversions if needed + if (sampleRate != 0) + streamFormat.mSampleRate = sampleRate; + else + streamFormat.mSampleRate = pConfig->sampleRate; + + streamFormat.mFormatID = kAudioFormatLinearPCM; + streamFormat.mFormatFlags = kLinearPCMFormatFlagIsSignedInteger + | kAudioFormatFlagsNativeEndian + | kLinearPCMFormatFlagIsPacked + | kAudioFormatFlagIsNonInterleaved; + + streamFormat.mBytesPerPacket = 2; + streamFormat.mFramesPerPacket = 1; + streamFormat.mBytesPerFrame = 2; + streamFormat.mChannelsPerFrame = 2; + streamFormat.mBitsPerChannel = 16; + + err = AudioUnitSetProperty (OutputUnit, + kAudioUnitProperty_StreamFormat, + kAudioUnitScope_Input, + 0, + &streamFormat, + sizeof(AudioStreamBasicDescription)); + if (err) + { + printf ("AudioUnitSetProperty-SF= %4.4s, %ld\n", (char*)&err, err); + return EAS_FAILURE; + } + + // Initialize + err = AudioUnitInitialize(OutputUnit); + if (err) + { + printf ("AudioUnitInitialize = %ld\n", err); + return EAS_FAILURE; + } + + pBuf = (S_BUFFER_INFO *) malloc(sizeof(S_BUFFER_INFO)); + if( !pBuf ) + return EAS_FAILURE; + + pBuf->uOutBufferLength = pConfig->mixBufferSize * streamFormat.mBitsPerChannel / 2; + UInt32 uDataSize = sizeof(pBuf->uOutBufferLength); + + err = AudioUnitSetProperty(OutputUnit, kAudioDevicePropertyBufferSize, kAudioUnitScope_Output, 0, &pBuf->uOutBufferLength, uDataSize); + if (err) + { + printf ("AudioUnitSetProperty = %ld\n", err); + return EAS_FAILURE; + } + + err = AudioUnitGetProperty(OutputUnit, kAudioDevicePropertyBufferSize, kAudioUnitScope_Output, 0, &pBuf->uOutBufferLength, &uDataSize); + if (err) + { + printf ("AudioUnitGetProperty = %ld\n", err); + return EAS_FAILURE; + } + + pBuf->uLength = pBuf->uOutBufferLength; + int i; + for ( i = 0; i < MAX_BUFFERS; i++) + pBuf->pData[i] = malloc(pBuf->uLength); + + pBuf->uOutBufferLength /= pConfig->numChannels; + pBuf->uOutFrames = pBuf->uOutBufferLength / sizeof(short); + + pBuf->ix = 0; + + // Init the stop flag + bStopped = true; + + int result = pthread_mutex_init(&mtx, NULL); + if (result) + { + printf("pthread_mutex_init failed\n"); + return EAS_FAILURE; + } + + result = pthread_cond_init(&cond, NULL); + if (result) + { + printf("pthread_cond_init failed\n"); + return EAS_FAILURE; + } + + // Done + return EAS_SUCCESS; +} + + +EAS_EXPORT EAS_RESULT StartStream() +{ + OSStatus err = noErr; + pthread_mutex_lock(&mtx); + if ( bStopped == true ) + { + err = AudioOutputUnitStart (OutputUnit); + if (err) + { + printf ("AudioOutputUnitStart=%ld\n", err); + return EAS_FAILURE; + } + bStopped = false; + } + + return EAS_SUCCESS; +} + + +EAS_EXPORT EAS_RESULT CloseWaveOutDevice() +{ + OSStatus err; + + pthread_mutex_lock(&mtx); + if( false == bStopped ) + { + AudioOutputUnitStop (OutputUnit); + bStopped = true; + + err = AudioUnitUninitialize (OutputUnit); + if (err) + { + printf ("AudioUnitUninitialize=%ld\n", err); + return EAS_FAILURE; + } + + CloseComponent (OutputUnit); + int i = 0; + for(i; i < MAX_BUFFERS; i++) + free(pBuf->pData[i]); + + free(pBuf); + } + + pthread_mutex_unlock(&mtx); + return EAS_SUCCESS; +} + + +#if defined(_DEBUG) && !defined(MSC) +#include +/*---------------------------------------------------------------------------- + * EnableHeapDebug() + *---------------------------------------------------------------------------- +*/ +static void EnableHeapDebug (void) +{ + int temp; + temp = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG); + temp |= _CRTDBG_ALLOC_MEM_DF; + temp |= _CRTDBG_CHECK_ALWAYS_DF; + temp |= _CRTDBG_LEAK_CHECK_DF; +// temp |= _CRTDBG_DELAY_FREE_MEM_DF; + _CrtSetDbgFlag(temp); +} + +/*---------------------------------------------------------------------------- + * HeapCheck() + *---------------------------------------------------------------------------- + * Check heap status + *---------------------------------------------------------------------------- +*/ +void HeapCheck (void) +{ + int heapStatus; + + /* Check heap status */ + heapStatus = _heapchk(); + if ((heapStatus == _HEAPOK) || (heapStatus == _HEAPEMPTY)) + return; + + EAS_ReportX(_EAS_SEVERITY_FATAL, "Heap corrupt\n" ); +} +#endif + + +/*---------------------------------------------------------------------------- + * EAS_HWInit + * + * Initialize host wrapper interface + * + *---------------------------------------------------------------------------- +*/ +EAS_RESULT EAS_HWInit (EAS_HW_DATA_HANDLE *pHWInstData) +{ + +#if defined(_DEBUG) && !defined(MSC) + EnableHeapDebug(); +#endif + + #ifdef BUFFERED_FILE_ACCESS + EAS_ReportX(_EAS_SEVERITY_INFO, "EAS_HWInit: Buffered file access\n"); + #else + EAS_ReportX(_EAS_SEVERITY_INFO, "EAS_HWInit: Memory mapped file access\n"); + #endif + + /* simulate failure */ + if (errorConditions[eInitError]) + return EAS_FAILURE; + + /* need to track file opens for duplicate handles */ + *pHWInstData = malloc(sizeof(EAS_HW_INST_DATA)); + if (!(*pHWInstData)) + return EAS_ERROR_MALLOC_FAILED; + + EAS_HWMemSet(*pHWInstData, 0, sizeof(EAS_HW_INST_DATA)); + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * EAS_HWShutdown + * + * Shut down host wrapper interface + * + *---------------------------------------------------------------------------- +*/ +EAS_RESULT EAS_HWShutdown (EAS_HW_DATA_HANDLE hwInstData) +{ + + /* simulate failure */ + if (errorConditions[eShutdownError]) + return EAS_FAILURE; + + free(hwInstData); + +#if defined(_DEBUG) && !defined(MSC) + HeapCheck(); +#endif + + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWMalloc + * + * Allocates dynamic memory + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) available for customer use */ +void *EAS_HWMalloc (EAS_HW_DATA_HANDLE hwInstData, EAS_I32 size) +{ + /* simulate failure */ + if (errorConditions[eMallocError]) + return NULL; + + return malloc((size_t) size); +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWFree + * + * Frees dynamic memory + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) available for customer use */ +void EAS_HWFree (EAS_HW_DATA_HANDLE hwInstData, void *p) +{ + free(p); +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWMemCpy + * + * Copy memory wrapper + * + *---------------------------------------------------------------------------- +*/ +void *EAS_HWMemCpy (void *dest, const void *src, EAS_I32 amount) +{ + return memcpy(dest, src, (size_t) amount); +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWMemSet + * + * Set memory wrapper + * + *---------------------------------------------------------------------------- +*/ +void *EAS_HWMemSet (void *dest, int val, EAS_I32 amount) +{ + return memset(dest, val, (size_t) amount); +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWMemCmp + * + * Compare memory wrapper + * + *---------------------------------------------------------------------------- +*/ +EAS_I32 EAS_HWMemCmp (const void *s1, const void *s2, EAS_I32 amount) +{ + return (EAS_I32) memcmp(s1, s2, (size_t) amount); +} + +#ifdef BUFFERED_FILE_ACCESS +/*---------------------------------------------------------------------------- + * + * EAS_HWOpenFile + * + * Open a file for read or write + * + *---------------------------------------------------------------------------- +*/ +EAS_RESULT EAS_HWOpenFile (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_LOCATOR locator, EAS_FILE_HANDLE *pFile, EAS_FILE_MODE mode) +{ + EAS_HW_FILE *file; + int i; + + /* set return value to NULL */ + *pFile = NULL; + + /* only support read mode at this time */ + if (mode != EAS_FILE_READ) + return EAS_ERROR_INVALID_FILE_MODE; + + /* find an empty entry in the file table */ + file = hwInstData->files; + for (i = 0; i < EAS_MAX_FILE_HANDLES; i++) + { + /* is this slot being used? */ + if (file->pFile == NULL) + { + EAS_RESULT result; + + /* open the file */ + file->pFile = fopen((const char*) locator, "rb"); + if (file->pFile == NULL) + return EAS_ERROR_FILE_OPEN_FAILED; + + /* get file length */ + if ((result = EAS_HWFileLength(hwInstData, file, &file->fileSize)) != EAS_SUCCESS) + { + EAS_HWCloseFile(hwInstData, file); + return result; + } + +#ifdef DEBUG_FILE_IO + EAS_ReportX(_EAS_SEVERITY_NOFILTER, "EAS_HWOpenFile: Open file %d\n", i); +#endif + + /* initialize some values */ + file->bytesInBuffer = 0; + file->readIndex = 0; + file->filePos = 0; + file->dup = EAS_FALSE; + + *pFile = file; + return EAS_SUCCESS; + } + file++; + } + + /* too many open files */ + return EAS_ERROR_MAX_FILES_OPEN; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWFillBuffer + * + * Fill buffer from file + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) hwInstData available for customer use */ +EAS_RESULT EAS_HWFillBuffer (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file) +{ + /* reposition the file pointer */ + if (fseek(file->pFile, file->filePos, SEEK_SET) != 0) + return EAS_ERROR_FILE_SEEK; + + /* read some data from the file */ + file->bytesInBuffer = (EAS_I32) fread(file->buffer, 1, EAS_FILE_BUFFER_SIZE, file->pFile); + file->readIndex = 0; + if (file->bytesInBuffer == 0) + return EAS_EOF; + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWReadFile + * + * Read data from a file + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) hwInstData available for customer use */ +EAS_RESULT EAS_HWReadFile (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, void *pBuffer, EAS_I32 n, EAS_I32 *pBytesRead) +{ + EAS_RESULT result; + EAS_I32 temp; + EAS_U8 *p = pBuffer; + EAS_I32 bytesLeft = n; + + *pBytesRead = 0; + + /* check handle integrity */ + if (file->pFile == NULL) + return EAS_ERROR_INVALID_HANDLE; + +#ifdef DEBUG_FILE_IO + EAS_ReportX(_EAS_SEVERITY_NOFILTER, "EAS_HWReadFile: Reading %d bytes from position %d\n", n, file->filePos); +#endif + + /* try to fulfill request from buffer */ + for (;bytesLeft > 0;) + { + /* how many bytes can we get from buffer? */ + temp = file->bytesInBuffer - file->readIndex; + if (temp > bytesLeft) + temp = bytesLeft; + + /* copy data from buffer */ + EAS_HWMemCpy(p, &file->buffer[file->readIndex], temp); + *pBytesRead += temp; + file->readIndex += temp; + file->filePos += temp; + p += temp; + bytesLeft -= temp; + + /* don't refill buffer if request is bigger than buffer */ + if ((bytesLeft == 0) || (bytesLeft >= EAS_FILE_BUFFER_SIZE)) + break; + + /* refill buffer */ + if ((result = EAS_HWFillBuffer(hwInstData, file)) != EAS_SUCCESS) + return result; + } + + /* more to read? do unbuffered read directly to target memory */ + if (bytesLeft) + { + + /* position the file pointer */ + if (fseek(file->pFile, file->filePos, SEEK_SET) != 0) + return EAS_ERROR_FILE_SEEK; + + /* read data in the buffer */ + temp = (EAS_I32) fread(p, 1, (size_t) bytesLeft, file->pFile); + *pBytesRead += temp; + file->filePos += temp; + + /* reset buffer info */ + file->bytesInBuffer = 0; + file->readIndex = 0; + } + +#ifdef DEBUG_FILE_IO + { +#define BYTES_PER_LINE 16 + char str[BYTES_PER_LINE * 3 + 1]; + EAS_INT i; + for (i = 0; i < (n > BYTES_PER_LINE ? BYTES_PER_LINE : n) ; i ++) + sprintf(&str[i*3], "%02x ", ((EAS_U8*)pBuffer)[i]); + if (i) + EAS_ReportX(_EAS_SEVERITY_NOFILTER, "%s\n", str); + } +#endif + + /* were n bytes read? */ + if (*pBytesRead != n) + return EAS_EOF; + + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWGetByte + * + * Read a byte from a file + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) hwInstData available for customer use */ +EAS_RESULT EAS_HWGetByte (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, void *p) +{ + EAS_RESULT result; + + /* check handle integrity */ + if (file->pFile == NULL) + return EAS_ERROR_INVALID_HANDLE; + + /* use local buffer - do we have any data? */ + if (file->readIndex >= file->bytesInBuffer) + { + if ((result = EAS_HWFillBuffer(hwInstData, file)) != EAS_SUCCESS) + return result; + + /* if nothing to read, return EOF */ + if (file->bytesInBuffer == 0) + return EAS_EOF; + } + + /* get a character from the buffer */ + *((EAS_U8*) p) = file->buffer[file->readIndex++]; + +#ifdef DEBUG_FILE_IO + EAS_ReportX(_EAS_SEVERITY_NOFILTER, "EAS_HWGetByte: Reading from position %d, byte = 0x%02x\n", file->filePos, *(EAS_U8*)p); +#endif + + file->filePos++; + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWGetWord + * + * Read a 16-bit value from the file + *---------------------------------------------------------------------------- +*/ +EAS_RESULT EAS_HWGetWord (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, void *p, EAS_BOOL msbFirst) +{ + EAS_RESULT result; + EAS_I32 count; + EAS_U8 c[2]; + +#ifdef DEBUG_FILE_IO + EAS_ReportX(_EAS_SEVERITY_NOFILTER, "EAS_HWGetWord: Reading 2 bytes from position %d\n", file->filePos); +#endif + + /* read 2 bytes from the file */ + if ((result = EAS_HWReadFile(hwInstData, file, c, 2, &count)) != EAS_SUCCESS) + return result; + + /* order them as requested */ + if (msbFirst) + *((EAS_U16*) p) = ((EAS_U16) c[0] << 8) | c[1]; + else + *((EAS_U16*) p) = ((EAS_U16) c[1] << 8) | c[0]; + + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWGetDWord + * + * Read a 16-bit value from the file + *---------------------------------------------------------------------------- +*/ +EAS_RESULT EAS_HWGetDWord (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, void *p, EAS_BOOL msbFirst) +{ + EAS_RESULT result; + EAS_I32 count; + EAS_U8 c[4]; + +#ifdef DEBUG_FILE_IO + EAS_ReportX(_EAS_SEVERITY_NOFILTER, "EAS_HWGetDWord: Reading 4 bytes from position %d\n", file->filePos); +#endif + + /* read 4 bytes from the file */ + if ((result = EAS_HWReadFile(hwInstData, file, c, 4, &count)) != EAS_SUCCESS) + return result; + + /* order them as requested */ + if (msbFirst) + *((EAS_U32*) p) = ((EAS_U32) c[0] << 24) | ((EAS_U32) c[1] << 16) | ((EAS_U32) c[2] << 8) | c[3]; + else + *((EAS_U32*) p) = ((EAS_U32) c[3] << 24) | ((EAS_U32) c[2] << 16) | ((EAS_U32) c[1] << 8) | c[0]; + + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWFilePos + * + * Returns the current location in the file + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) hwInstData available for customer use */ +EAS_RESULT EAS_HWFilePos (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, EAS_I32 *pPosition) +{ + + /* check handle integrity */ + if (file->pFile == NULL) + return EAS_ERROR_INVALID_HANDLE; + + *pPosition = file->filePos; + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWFileSeek + * + * Seek to a specific location in the file + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) hwInstData available for customer use */ +EAS_RESULT EAS_HWFileSeek (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, EAS_I32 position) +{ + EAS_I32 newIndex; + + /* check handle integrity */ + if (file->pFile == NULL) + return EAS_ERROR_INVALID_HANDLE; + + /* check for seek past end */ + if ((position < 0) || (position > file->fileSize)) + return EAS_ERROR_FILE_SEEK; + +#ifdef DEBUG_FILE_IO + EAS_ReportX(_EAS_SEVERITY_NOFILTER, "EAS_HWFileSeek: Seeking to new position %d\n", file->filePos); +#endif + + /* is new position in current buffer? */ + newIndex = position - file->filePos + file->readIndex; + if ((newIndex >= 0) && (newIndex < file->bytesInBuffer)) + { + file->readIndex = newIndex; + file->filePos = position; + return EAS_SUCCESS; + } + + /* save new position and reset buffer info so EAS_HWGetByte doesn't fail */ + file->filePos = position; + file->bytesInBuffer = 0; + file->readIndex = 0; + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWFileSeekOfs + * + * Seek forward or back relative to the current position + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) hwInstData available for customer use */ +EAS_RESULT EAS_HWFileSeekOfs (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, EAS_I32 position) +{ + EAS_I32 temp; + +#ifdef DEBUG_FILE_IO + EAS_ReportX(_EAS_SEVERITY_NOFILTER, "EAS_HWFileSeekOfs: Seeking to new position %d\n", file->filePos + position); +#endif + + /* check handle integrity */ + if (file->pFile == NULL) + return EAS_ERROR_INVALID_HANDLE; + + /* check for seek past end */ + temp = file->filePos + position; + if ((temp < 0) || (temp > file->fileSize)) + return EAS_ERROR_FILE_SEEK; + + /* is new position in current buffer? */ + temp = position + file->readIndex; + if ((temp >= 0) && (temp < file->bytesInBuffer)) + { + file->readIndex = temp; + file->filePos += position; + return EAS_SUCCESS; + } + + /* save new position and reset buffer info so EAS_HWGetByte doesn't fail */ + file->filePos += position; + file->bytesInBuffer = 0; + file->readIndex = 0; + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWFileLength + * + * Return the file length + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) hwInstData available for customer use */ +EAS_RESULT EAS_HWFileLength (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, EAS_I32 *pLength) +{ + long pos; + + /* check handle integrity */ + if (file->pFile == NULL) + return EAS_ERROR_INVALID_HANDLE; + + if ((pos = ftell(file->pFile)) == -1L) + return EAS_ERROR_FILE_LENGTH; + if (fseek(file->pFile, 0L, SEEK_END) != 0) + return EAS_ERROR_FILE_LENGTH; + if ((*pLength = ftell(file->pFile)) == -1L) + return EAS_ERROR_FILE_LENGTH; + if (fseek(file->pFile, pos, SEEK_SET) != 0) + return EAS_ERROR_FILE_LENGTH; + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWDupHandle + * + * Duplicate a file handle + * + *---------------------------------------------------------------------------- +*/ +EAS_RESULT EAS_HWDupHandle (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, EAS_FILE_HANDLE* pDupFile) +{ + EAS_HW_FILE *dupfile; + int i; + + /* check handle integrity */ + *pDupFile = NULL; + if (file->pFile == NULL) + return EAS_ERROR_INVALID_HANDLE; + + /* find an empty entry in the file table */ + dupfile = hwInstData->files; + for (i = 0; i < EAS_MAX_FILE_HANDLES; i++) + { + /* is this slot being used? */ + if (dupfile->pFile == NULL) + { + + /* copy info from the handle to be duplicated */ + dupfile->filePos = file->filePos; + dupfile->pFile = file->pFile; + dupfile->fileSize = file->fileSize; + + /* set the duplicate handle flag */ + dupfile->dup = file->dup = EAS_TRUE; + + /* initialize some values */ + dupfile->bytesInBuffer = 0; + dupfile->readIndex = 0; + + *pDupFile = dupfile; + return EAS_SUCCESS; + } + dupfile++; + } + + /* too many open files */ + return EAS_ERROR_MAX_FILES_OPEN; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWClose + * + * Wrapper for fclose function + * + *---------------------------------------------------------------------------- +*/ +EAS_RESULT EAS_HWCloseFile (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file1) +{ + EAS_HW_FILE *file2,*dupFile; + int i; + + /* check handle integrity */ + if (file1->pFile == NULL) + return EAS_ERROR_INVALID_HANDLE; + + /* check for duplicate handle */ + if (file1->dup) + { + dupFile = NULL; + file2 = hwInstData->files; + for (i = 0; i < EAS_MAX_FILE_HANDLES; i++) + { + /* check for duplicate */ + if ((file1 != file2) && (file2->pFile == file1->pFile)) + { + /* is there more than one duplicate? */ + if (dupFile != NULL) + { + /* clear this entry and return */ + file1->pFile = NULL; + return EAS_SUCCESS; + } + + /* this is the first duplicate found */ + dupFile = file2; + } + file2++; + } + + /* there is only one duplicate, clear the dup flag */ + if (dupFile) + dupFile->dup = EAS_FALSE; + else + /* if we get here, there's a serious problem */ + return EAS_ERROR_HANDLE_INTEGRITY; + + /* clear this entry and return */ + file1->pFile = NULL; + return EAS_SUCCESS; + } + + /* no duplicates - close the file */ + if (fclose(file1->pFile) != 0) + return EAS_ERROR_CLOSE_FAILED; + + /* clear this entry and return */ + file1->pFile = NULL; + return EAS_SUCCESS; +} +#else +/*---------------------------------------------------------------------------- + * + * EAS_HWOpenFile + * + * Open a file for read or write + * + *---------------------------------------------------------------------------- +*/ +EAS_RESULT EAS_HWOpenFile (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_LOCATOR locator, EAS_FILE_HANDLE *pFile, EAS_FILE_MODE mode) +{ + EAS_HW_FILE *file; + FILE *ioFile; + int i, temp; + + /* set return value to NULL */ + *pFile = NULL; + + /* simulate failure */ + if (errorConditions[eOpenError]) + return EAS_FAILURE; + + /* only support read mode at this time */ + if (mode != EAS_FILE_READ) + return EAS_ERROR_INVALID_FILE_MODE; + + /* find an empty entry in the file table */ + file = hwInstData->files; + for (i = 0; i < EAS_MAX_FILE_HANDLES; i++) + { + /* is this slot being used? */ + if (file->buffer == NULL) + { + /* open the file */ + if ((ioFile = fopen(locator,"rb")) == NULL) + return EAS_ERROR_FILE_OPEN_FAILED; + + /* determine the file size */ + if (fseek(ioFile, 0L, SEEK_END) != 0) + return EAS_ERROR_FILE_LENGTH; + if ((file->fileSize = ftell(ioFile)) == -1L) + return EAS_ERROR_FILE_LENGTH; + if (fseek(ioFile, 0L, SEEK_SET) != 0) + return EAS_ERROR_FILE_LENGTH; + + /* allocate a buffer */ + file->buffer = EAS_HWMalloc(hwInstData, file->fileSize); + if (file->buffer == NULL) + { + fclose(ioFile); + return EAS_ERROR_MALLOC_FAILED; + } + + /* read the file into memory */ + temp = (int) fread(file->buffer, (size_t) file->fileSize, 1, ioFile); + + /* close the file - don't need it any more */ + fclose(ioFile); + + /* check for error reading file */ + if (temp != 1) + return EAS_ERROR_FILE_READ_FAILED; + + /* initialize some values */ + file->filePos = 0; + file->dup = EAS_FALSE; + + *pFile = file; + return EAS_SUCCESS; + } + file++; + } + + /* too many open files */ + return EAS_ERROR_MAX_FILES_OPEN; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWReadFile + * + * Read data from a file + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) available for customer use */ +EAS_RESULT EAS_HWReadFile (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, void *pBuffer, EAS_I32 n, EAS_I32 *pBytesRead) +{ + EAS_I32 count; + + /* simulate failure */ + if (errorConditions[eReadError]) + return EAS_FAILURE; + + /* make sure we have a valid handle */ + if (file->buffer == NULL) + return EAS_ERROR_INVALID_HANDLE; + + /* calculate the bytes to read */ + count = file->fileSize - file->filePos; + if (n < count) + count = n; + + /* copy the data to the requested location, and advance the pointer */ + if (count) + EAS_HWMemCpy(pBuffer, &file->buffer[file->filePos], count); + file->filePos += count; + *pBytesRead = count; + + /* were n bytes read? */ + if (count!= n) + return EAS_EOF; + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWGetByte + * + * Read a byte from a file + * + *---------------------------------------------------------------------------- +*/ +/*lint -e{715} hwInstData available for customer use */ +EAS_RESULT EAS_HWGetByte (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, void *p) +{ + + /* simulate failure */ + if (errorConditions[eReadError]) + return EAS_FAILURE; + + /* make sure we have a valid handle */ + if (file->buffer == NULL) + return EAS_ERROR_INVALID_HANDLE; + + /* check for end of file */ + if (file->filePos >= file->fileSize) + { + *((EAS_U8*) p) = 0; + return EAS_EOF; + } + + /* get a character from the buffer */ + *((EAS_U8*) p) = file->buffer[file->filePos++]; + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWGetWord + * + * Returns the current location in the file + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) available for customer use */ +EAS_RESULT EAS_HWGetWord (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, void *p, EAS_BOOL msbFirst) +{ + EAS_RESULT result; + EAS_U8 c1, c2; + + /* read 2 bytes from the file */ + if ((result = EAS_HWGetByte(hwInstData, file, &c1)) != EAS_SUCCESS) + return result; + if ((result = EAS_HWGetByte(hwInstData, file, &c2)) != EAS_SUCCESS) + return result; + + /* order them as requested */ + if (msbFirst) + *((EAS_U16*) p) = ((EAS_U16) c1 << 8) | c2; + else + *((EAS_U16*) p) = ((EAS_U16) c2 << 8) | c1; + + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWGetDWord + * + * Returns the current location in the file + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) available for customer use */ +EAS_RESULT EAS_HWGetDWord (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, void *p, EAS_BOOL msbFirst) +{ + EAS_RESULT result; + EAS_U8 c1, c2,c3,c4; + + /* read 4 bytes from the file */ + if ((result = EAS_HWGetByte(hwInstData, file, &c1)) != EAS_SUCCESS) + return result; + if ((result = EAS_HWGetByte(hwInstData, file, &c2)) != EAS_SUCCESS) + return result; + if ((result = EAS_HWGetByte(hwInstData, file, &c3)) != EAS_SUCCESS) + return result; + if ((result = EAS_HWGetByte(hwInstData, file, &c4)) != EAS_SUCCESS) + return result; + + /* order them as requested */ + if (msbFirst) + *((EAS_U32*) p) = ((EAS_U32) c1 << 24) | ((EAS_U32) c2 << 16) | ((EAS_U32) c3 << 8) | c4; + else + *((EAS_U32*) p)= ((EAS_U32) c4 << 24) | ((EAS_U32) c3 << 16) | ((EAS_U32) c2 << 8) | c1; + + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWFilePos + * + * Returns the current location in the file + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) available for customer use */ +EAS_RESULT EAS_HWFilePos (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, EAS_I32 *pPosition) +{ + + /* simulate failure */ + if (errorConditions[ePosError]) + return EAS_FAILURE; + + /* make sure we have a valid handle */ + if (file->buffer == NULL) + return EAS_ERROR_INVALID_HANDLE; + + *pPosition = file->filePos; + return EAS_SUCCESS; +} /* end EAS_HWFilePos */ + +/*---------------------------------------------------------------------------- + * + * EAS_HWFileSeek + * + * Seek to a specific location in the file + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) available for customer use */ +EAS_RESULT EAS_HWFileSeek (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, EAS_I32 position) +{ + + /* simulate failure */ + if (errorConditions[eSeekError]) + return EAS_FAILURE; + + /* make sure we have a valid handle */ + if (file->buffer == NULL) + return EAS_ERROR_INVALID_HANDLE; + + /* validate new position */ + if ((position < 0) || (position > file->fileSize)) + return EAS_ERROR_FILE_SEEK; + + /* save new position */ + file->filePos = position; + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWFileSeekOfs + * + * Seek forward or back relative to the current position + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) available for customer use */ +EAS_RESULT EAS_HWFileSeekOfs (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, EAS_I32 position) +{ + + /* simulate failure */ + if (errorConditions[eSeekError]) + return EAS_FAILURE; + + /* make sure we have a valid handle */ + if (file->buffer == NULL) + return EAS_ERROR_INVALID_HANDLE; + + /* determine the file position */ + position += file->filePos; + if ((position < 0) || (position > file->fileSize)) + return EAS_ERROR_FILE_SEEK; + + /* save new position */ + file->filePos = position; + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWFileLength + * + * Return the file length + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) available for customer use */ +EAS_RESULT EAS_HWFileLength (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, EAS_I32 *pLength) +{ + + /* simulate failure */ + if (errorConditions[eLengthError]) + return EAS_FAILURE; + + /* make sure we have a valid handle */ + if (file->buffer == NULL) + return EAS_ERROR_INVALID_HANDLE; + + *pLength = file->fileSize; + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWDupHandle + * + * Duplicate a file handle + * + *---------------------------------------------------------------------------- +*/ +EAS_RESULT EAS_HWDupHandle (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, EAS_FILE_HANDLE *pDupFile) +{ + EAS_HW_FILE *dupFile; + int i; + + /* simulate failure */ + if (errorConditions[eDupError]) + return EAS_FAILURE; + + /* make sure we have a valid handle */ + if (file->buffer == NULL) + return EAS_ERROR_INVALID_HANDLE; + + /* find an empty entry in the file table */ + dupFile = hwInstData->files; + for (i = 0; i < EAS_MAX_FILE_HANDLES; i++) + { + /* is this slot being used? */ + if (dupFile->buffer == NULL) + { + + /* copy info from the handle to be duplicated */ + dupFile->filePos = file->filePos; + dupFile->fileSize = file->fileSize; + dupFile->buffer = file->buffer; + + /* set the duplicate handle flag */ + dupFile->dup = file->dup = EAS_TRUE; + + *pDupFile = dupFile; + return EAS_SUCCESS; + } + dupFile++; + } + + /* too many open files */ + return EAS_ERROR_MAX_FILES_OPEN; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWClose + * + * Wrapper for fclose function + * + *---------------------------------------------------------------------------- +*/ +EAS_RESULT EAS_HWCloseFile (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file1) +{ + EAS_HW_FILE *file2,*dupFile; + int i; + + /* simulate failure */ + if (errorConditions[eCloseError]) + return EAS_FAILURE; + + /* make sure we have a valid handle */ + if (file1->buffer == NULL) + return EAS_ERROR_INVALID_HANDLE; + + /* check for duplicate handle */ + if (file1->dup) + { + dupFile = NULL; + file2 = hwInstData->files; + for (i = 0; i < EAS_MAX_FILE_HANDLES; i++) + { + /* check for duplicate */ + if ((file1 != file2) && (file2->buffer == file1->buffer)) + { + /* is there more than one duplicate? */ + if (dupFile != NULL) + { + /* clear this entry and return */ + file1->buffer = NULL; + return EAS_SUCCESS; + } + + /* this is the first duplicate found */ + else + dupFile = file2; + } + file2++; + } + + /* there is only one duplicate, clear the dup flag */ + if (dupFile) + dupFile->dup = EAS_FALSE; + else + /* if we get here, there's a serious problem */ + return EAS_ERROR_HANDLE_INTEGRITY; + + /* clear this entry and return */ + file1->buffer = NULL; + return EAS_SUCCESS; + } + + /* no duplicates -free the buffer */ + EAS_HWFree(hwInstData, file1->buffer); + + /* clear this entry and return */ + file1->buffer = NULL; + return EAS_SUCCESS; +} +#endif + +/*---------------------------------------------------------------------------- + * + * EAS_HWVibrate + * + * Turn on/off vibrate function + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) available for customer use */ +EAS_RESULT EAS_HWVibrate (EAS_HW_DATA_HANDLE hwInstData, EAS_BOOL state) +{ + vibState = state; +// EAS_ReportX(_EAS_SEVERITY_NOFILTER, "Vibrate state: %d\n", state); + return EAS_SUCCESS; +} /* end EAS_HWVibrate */ + +/*---------------------------------------------------------------------------- + * + * EAS_HWLED + * + * Turn on/off LED + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) available for customer use */ +EAS_RESULT EAS_HWLED (EAS_HW_DATA_HANDLE hwInstData, EAS_BOOL state) +{ + ledState = state; +// EAS_ReportX(_EAS_SEVERITY_NOFILTER, "LED state: %d\n", state); + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWBackLight + * + * Turn on/off backlight + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) available for customer use */ +EAS_RESULT EAS_HWBackLight (EAS_HW_DATA_HANDLE hwInstData, EAS_BOOL state) +{ + backlightState = state; +// EAS_ReportX(_EAS_SEVERITY_NOFILTER, "Backlight state: %d\n", state); + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWYield + * + * This function is called periodically by the EAS library to give the + * host an opportunity to allow other tasks to run. There are two ways to + * use this call: + * + * If you have a multi-tasking OS, you can call the yield function in the + * OS to allow other tasks to run. In this case, return EAS_FALSE to tell + * the EAS library to continue processing when control returns from this + * function. + * + * If tasks run in a single thread by sequential function calls (sometimes + * call a "commutator loop"), return EAS_TRUE to cause the EAS Library to + * return to the caller. Be sure to check the number of bytes rendered + * before passing the audio buffer to the codec - it may not be filled. + * The next call to EAS_Render will continue processing until the buffer + * has been filled. + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) available for customer use */ +EAS_BOOL EAS_HWYield (EAS_HW_DATA_HANDLE hwInstData) +{ + /* put your code here */ + return EAS_FALSE; +} + + diff --git a/arm-wt-22k/jetcreator_lib_src/darwin-x86/EASLib.h b/arm-wt-22k/jetcreator_lib_src/darwin-x86/EASLib.h new file mode 100755 index 0000000..0c0a89d --- /dev/null +++ b/arm-wt-22k/jetcreator_lib_src/darwin-x86/EASLib.h @@ -0,0 +1,31 @@ +/* + * EASLib.h + * EASLIb + * + * Copyright (C) 2008 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "eas_types.h" + +extern EAS_RESULT EAS_LibInit (EAS_DATA_HANDLE *pHandle) +{ + return EAS_Init(pEASData); +} + +EAS_EXPORT EAS_LibShutdown (EAS_DATA_HANDLE handle) +{ + EAS_Shutdown(handle); +} diff --git a/arm-wt-22k/jetcreator_lib_src/darwin-x86/EASLibVst.c b/arm-wt-22k/jetcreator_lib_src/darwin-x86/EASLibVst.c new file mode 100755 index 0000000..58c8770 --- /dev/null +++ b/arm-wt-22k/jetcreator_lib_src/darwin-x86/EASLibVst.c @@ -0,0 +1,1504 @@ +/* + * EASLib.c + * EASLIb + * + * Copyright (C) 2008 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * + */ + +#include +#include +#include +#include + +#include "eas.h" +#include "eas_report.h" +#include "eas_host.h" + +#ifdef JET_INTERFACE +#include "jet.h" +#endif + + +#define EAS_EXPORT __attribute__((visibility("default"))) + +// #define DEBUG_FILE_IO + +/* include debug interface */ +#include "eas_host_debug.h" + +#ifdef AUX_MIXER +#include "eas_auxmix.h" +#endif + +/* this module requires dynamic memory support */ +#ifdef _STATIC_MEMORY +#error "eas_hostmm.c requires the dynamic memory model!\n" +#endif + +#ifndef EAS_MAX_FILE_HANDLES +#define EAS_MAX_FILE_HANDLES 32 +#endif + +#ifndef EAS_FILE_BUFFER_SIZE +#define EAS_FILE_BUFFER_SIZE 32 +#endif + +/* + * this structure and the related function are here + * to support the ability to create duplicate handles + * and buffering it in memory. If your system uses + * in-memory resources, you can eliminate the calls + * to malloc and free, the dup flag, and simply track + * the file size and read position. + */ + #ifdef BUFFERED_FILE_ACCESS +typedef struct eas_hw_file_tag +{ + FILE *pFile; + EAS_I32 bytesInBuffer; + EAS_I32 readIndex; + EAS_I32 filePos; + EAS_I32 fileSize; + EAS_BOOL dup; + EAS_U8 buffer[EAS_FILE_BUFFER_SIZE]; +} EAS_HW_FILE; +#else +typedef struct eas_hw_file_tag +{ + EAS_I32 fileSize; + EAS_I32 filePos; + EAS_BOOL dup; + EAS_U8 *buffer; +} EAS_HW_FILE; +#endif + +typedef struct eas_hw_inst_data_tag +{ + EAS_HW_FILE files[EAS_MAX_FILE_HANDLES]; +} EAS_HW_INST_DATA; + +EAS_BOOL errorConditions[eNumErrorConditions]; +EAS_BOOL ledState; +EAS_BOOL vibState; +EAS_BOOL backlightState; + +#define MAX_DEBUG_MSG_LEN 1024 + +typedef void (*EAS_LOG_FUNC)(EAS_INT severity, char *msg); + +static EAS_LOG_FUNC logCallback = NULL; +static char messageBuffer[MAX_DEBUG_MSG_LEN]; + +/* error counts */ +static EAS_INT eas_fatalErrors; +static EAS_INT eas_errors; +static EAS_INT eas_warnings; +static int severityLevel = 9999; + +/* wave out device */ +#ifndef MAX_WAVE_OUT_BUFFERS +#define MAX_WAVE_OUT_BUFFERS 8 +#endif + +#ifndef EAS_BUFFERS_PER_WAVE_BUFFER +#define EAS_BUFFERS_PER_WAVE_BUFFER 8 +#endif + +/*---------------------------------------------------------------------------- + * ResetErrorCounters() + *---------------------------------------------------------------------------- +*/ +EAS_EXPORT void ResetErrorCounters() +{ + eas_fatalErrors = 0; + eas_errors = 0; + eas_warnings = 0; +} + +/*---------------------------------------------------------------------------- + * SetLogCallback() + *---------------------------------------------------------------------------- +*/ +EAS_EXPORT void SetLogCallback (EAS_LOG_FUNC callback) +{ + logCallback = callback; +} + +#ifndef _NO_DEBUG_PREPROCESSOR +static S_DEBUG_MESSAGES debugMessages[] = +{ +#ifdef UNIFIED_DEBUG_MESSAGES +#include "eas_debugmsgs.h" +#endif + { 0,0,0 } +}; + +/*---------------------------------------------------------------------------- + * EAS_ReportEx() + *---------------------------------------------------------------------------- +*/ +void EAS_ReportEx (int severity, unsigned long hashCode, int serialNum, ...) +{ + va_list vargs; + int i; + + switch (severity) + { + case _EAS_SEVERITY_FATAL: + eas_fatalErrors++; + break; + + case _EAS_SEVERITY_ERROR: + eas_errors++; + break; + + case _EAS_SEVERITY_WARNING: + eas_warnings++; + break; + + default: + break; + } + + /* check severity level */ + if (severity > severityLevel) + return; + + /* check for callback */ + if (logCallback == NULL) + return; + + /* find the error message and output to stdout */ + for (i = 0; debugMessages[i].m_pDebugMsg; i++) + { + if ((debugMessages[i].m_nHashCode == hashCode) && + (debugMessages[i].m_nSerialNum == serialNum)) + { + va_start(vargs, serialNum); +#ifdef WIN32 + vsprintf_s(messageBuffer, sizeof(messageBuffer), fmt, vargs); +#else + vsprintf(messageBuffer, debugMessages[i].m_pDebugMsg, vargs); +#endif + logCallback(severity, messageBuffer); + va_end(vargs); + return; + } + } + printf("Unrecognized error: Severity=%d; HashCode=%lu; SerialNum=%d\n", severity, hashCode, serialNum); +} /* end EAS_ReportEx */ + +#else +/*---------------------------------------------------------------------------- + * EAS_Report() + *---------------------------------------------------------------------------- +*/ +void EAS_Report (int severity, const char *fmt, ...) +{ + va_list vargs; + + switch (severity) + { + case _EAS_SEVERITY_FATAL: + eas_fatalErrors++; + break; + + case _EAS_SEVERITY_ERROR: + eas_errors++; + break; + + case _EAS_SEVERITY_WARNING: + eas_warnings++; + break; + + default: + break; + } + + /* check severity level */ + if (severity > severityLevel) + return; + + /* check for callback */ + if (logCallback == NULL) + return; + + va_start(vargs, fmt); +#ifdef _WIN32 + vsprintf_s(messageBuffer, sizeof(messageBuffer), fmt, vargs); +#else + vsprintf(messageBuffer, fmt, vargs); +#endif + logCallback(severity, messageBuffer); + va_end(vargs); +} /* end EAS_Report */ + +/*---------------------------------------------------------------------------- + * EAS_ReportX() + *---------------------------------------------------------------------------- +*/ +void EAS_ReportX (int severity, const char *fmt, ...) +{ + va_list vargs; + + switch (severity) + { + case _EAS_SEVERITY_FATAL: + eas_fatalErrors++; + break; + + case _EAS_SEVERITY_ERROR: + eas_errors++; + break; + + case _EAS_SEVERITY_WARNING: + eas_warnings++; + break; + + default: + break; + } + + /* check severity level */ + if (severity > severityLevel) + return; + + /* check for callback */ + if (logCallback == NULL) + return; + + va_start(vargs, fmt); +#ifdef _WIN32 + vsprintf_s(messageBuffer, sizeof(messageBuffer), fmt, vargs); +#else + vsprintf(messageBuffer, fmt, vargs); +#endif + logCallback(severity, messageBuffer); + va_end(vargs); +} +#endif + +/*---------------------------------------------------------------------------- + * EAS_DLLSetDebugLevel() + *---------------------------------------------------------------------------- +*/ +EAS_EXPORT void EAS_DLLSetDebugLevel (int severity) +{ + severityLevel = severity; +} + +/*---------------------------------------------------------------------------- + * EAS_ExSetDebugLevel() + *---------------------------------------------------------------------------- +*/ +void EAS_SetDebugLevel (int severity) +{ + severityLevel = severity; +} + +/*---------------------------------------------------------------------------- + * EAS_SelectLibrary() + *---------------------------------------------------------------------------- +*/ +EAS_EXPORT EAS_RESULT EAS_SelectLib (EAS_DATA_HANDLE pEASData, EAS_HANDLE streamHandle, EAS_BOOL testLib) +{ + extern EAS_SNDLIB_HANDLE VMGetLibHandle(EAS_INT libNum); + return EAS_SetSoundLibrary(pEASData, streamHandle, VMGetLibHandle(testLib ? 1 : 0)); +} + + +#if defined(_DEBUG) && !defined(MSC) +#include +/*---------------------------------------------------------------------------- + * EnableHeapDebug() + *---------------------------------------------------------------------------- +*/ +static void EnableHeapDebug (void) +{ + int temp; + temp = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG); + temp |= _CRTDBG_ALLOC_MEM_DF; + temp |= _CRTDBG_CHECK_ALWAYS_DF; + temp |= _CRTDBG_LEAK_CHECK_DF; +// temp |= _CRTDBG_DELAY_FREE_MEM_DF; + _CrtSetDbgFlag(temp); +} + +/*---------------------------------------------------------------------------- + * HeapCheck() + *---------------------------------------------------------------------------- + * Check heap status + *---------------------------------------------------------------------------- +*/ +void HeapCheck (void) +{ + int heapStatus; + + /* Check heap status */ + heapStatus = _heapchk(); + if ((heapStatus == _HEAPOK) || (heapStatus == _HEAPEMPTY)) + return; + + EAS_ReportX(_EAS_SEVERITY_FATAL, "Heap corrupt\n" ); +} +#endif + + +/*---------------------------------------------------------------------------- + * EAS_HWInit + * + * Initialize host wrapper interface + * + *---------------------------------------------------------------------------- +*/ +EAS_RESULT EAS_HWInit (EAS_HW_DATA_HANDLE *pHWInstData) +{ + +#if defined(_DEBUG) && !defined(MSC) + EnableHeapDebug(); +#endif + + #ifdef BUFFERED_FILE_ACCESS + EAS_ReportX(_EAS_SEVERITY_INFO, "EAS_HWInit: Buffered file access\n"); + #else + EAS_ReportX(_EAS_SEVERITY_INFO, "EAS_HWInit: Memory mapped file access\n"); + #endif + + /* simulate failure */ + if (errorConditions[eInitError]) + return EAS_FAILURE; + + /* need to track file opens for duplicate handles */ + *pHWInstData = malloc(sizeof(EAS_HW_INST_DATA)); + if (!(*pHWInstData)) + return EAS_ERROR_MALLOC_FAILED; + + EAS_HWMemSet(*pHWInstData, 0, sizeof(EAS_HW_INST_DATA)); + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * EAS_HWShutdown + * + * Shut down host wrapper interface + * + *---------------------------------------------------------------------------- +*/ +EAS_RESULT EAS_HWShutdown (EAS_HW_DATA_HANDLE hwInstData) +{ + + /* simulate failure */ + if (errorConditions[eShutdownError]) + return EAS_FAILURE; + + free(hwInstData); + +#if defined(_DEBUG) && !defined(MSC) + HeapCheck(); +#endif + + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWMalloc + * + * Allocates dynamic memory + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) available for customer use */ +void *EAS_HWMalloc (EAS_HW_DATA_HANDLE hwInstData, EAS_I32 size) +{ + /* simulate failure */ + if (errorConditions[eMallocError]) + return NULL; + + return malloc((size_t) size); +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWFree + * + * Frees dynamic memory + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) available for customer use */ +void EAS_HWFree (EAS_HW_DATA_HANDLE hwInstData, void *p) +{ + free(p); +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWMemCpy + * + * Copy memory wrapper + * + *---------------------------------------------------------------------------- +*/ +void *EAS_HWMemCpy (void *dest, const void *src, EAS_I32 amount) +{ + return memcpy(dest, src, (size_t) amount); +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWMemSet + * + * Set memory wrapper + * + *---------------------------------------------------------------------------- +*/ +void *EAS_HWMemSet (void *dest, int val, EAS_I32 amount) +{ + return memset(dest, val, (size_t) amount); +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWMemCmp + * + * Compare memory wrapper + * + *---------------------------------------------------------------------------- +*/ +EAS_I32 EAS_HWMemCmp (const void *s1, const void *s2, EAS_I32 amount) +{ + return (EAS_I32) memcmp(s1, s2, (size_t) amount); +} + +#ifdef BUFFERED_FILE_ACCESS +/*---------------------------------------------------------------------------- + * + * EAS_HWOpenFile + * + * Open a file for read or write + * + *---------------------------------------------------------------------------- +*/ +EAS_RESULT EAS_HWOpenFile (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_LOCATOR locator, EAS_FILE_HANDLE *pFile, EAS_FILE_MODE mode) +{ + EAS_HW_FILE *file; + int i; + + /* set return value to NULL */ + *pFile = NULL; + + /* only support read mode at this time */ + if (mode != EAS_FILE_READ) + return EAS_ERROR_INVALID_FILE_MODE; + + /* find an empty entry in the file table */ + file = hwInstData->files; + for (i = 0; i < EAS_MAX_FILE_HANDLES; i++) + { + /* is this slot being used? */ + if (file->pFile == NULL) + { + EAS_RESULT result; + + /* open the file */ + file->pFile = fopen((const char*) locator, "rb"); + if (file->pFile == NULL) + return EAS_ERROR_FILE_OPEN_FAILED; + + /* get file length */ + if ((result = EAS_HWFileLength(hwInstData, file, &file->fileSize)) != EAS_SUCCESS) + { + EAS_HWCloseFile(hwInstData, file); + return result; + } + +#ifdef DEBUG_FILE_IO + EAS_ReportX(_EAS_SEVERITY_NOFILTER, "EAS_HWOpenFile: Open file %d\n", i); +#endif + + /* initialize some values */ + file->bytesInBuffer = 0; + file->readIndex = 0; + file->filePos = 0; + file->dup = EAS_FALSE; + + *pFile = file; + return EAS_SUCCESS; + } + file++; + } + + /* too many open files */ + return EAS_ERROR_MAX_FILES_OPEN; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWFillBuffer + * + * Fill buffer from file + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) hwInstData available for customer use */ +EAS_RESULT EAS_HWFillBuffer (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file) +{ + /* reposition the file pointer */ + if (fseek(file->pFile, file->filePos, SEEK_SET) != 0) + return EAS_ERROR_FILE_SEEK; + + /* read some data from the file */ + file->bytesInBuffer = (EAS_I32) fread(file->buffer, 1, EAS_FILE_BUFFER_SIZE, file->pFile); + file->readIndex = 0; + if (file->bytesInBuffer == 0) + return EAS_EOF; + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWReadFile + * + * Read data from a file + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) hwInstData available for customer use */ +EAS_RESULT EAS_HWReadFile (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, void *pBuffer, EAS_I32 n, EAS_I32 *pBytesRead) +{ + EAS_RESULT result; + EAS_I32 temp; + EAS_U8 *p = pBuffer; + EAS_I32 bytesLeft = n; + + *pBytesRead = 0; + + /* check handle integrity */ + if (file->pFile == NULL) + return EAS_ERROR_INVALID_HANDLE; + +#ifdef DEBUG_FILE_IO + EAS_ReportX(_EAS_SEVERITY_NOFILTER, "EAS_HWReadFile: Reading %d bytes from position %d\n", n, file->filePos); +#endif + + /* try to fulfill request from buffer */ + for (;bytesLeft > 0;) + { + /* how many bytes can we get from buffer? */ + temp = file->bytesInBuffer - file->readIndex; + if (temp > bytesLeft) + temp = bytesLeft; + + /* copy data from buffer */ + EAS_HWMemCpy(p, &file->buffer[file->readIndex], temp); + *pBytesRead += temp; + file->readIndex += temp; + file->filePos += temp; + p += temp; + bytesLeft -= temp; + + /* don't refill buffer if request is bigger than buffer */ + if ((bytesLeft == 0) || (bytesLeft >= EAS_FILE_BUFFER_SIZE)) + break; + + /* refill buffer */ + if ((result = EAS_HWFillBuffer(hwInstData, file)) != EAS_SUCCESS) + return result; + } + + /* more to read? do unbuffered read directly to target memory */ + if (bytesLeft) + { + + /* position the file pointer */ + if (fseek(file->pFile, file->filePos, SEEK_SET) != 0) + return EAS_ERROR_FILE_SEEK; + + /* read data in the buffer */ + temp = (EAS_I32) fread(p, 1, (size_t) bytesLeft, file->pFile); + *pBytesRead += temp; + file->filePos += temp; + + /* reset buffer info */ + file->bytesInBuffer = 0; + file->readIndex = 0; + } + +#ifdef DEBUG_FILE_IO + { +#define BYTES_PER_LINE 16 + char str[BYTES_PER_LINE * 3 + 1]; + EAS_INT i; + for (i = 0; i < (n > BYTES_PER_LINE ? BYTES_PER_LINE : n) ; i ++) + sprintf(&str[i*3], "%02x ", ((EAS_U8*)pBuffer)[i]); + if (i) + EAS_ReportX(_EAS_SEVERITY_NOFILTER, "%s\n", str); + } +#endif + + /* were n bytes read? */ + if (*pBytesRead != n) + return EAS_EOF; + + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWGetByte + * + * Read a byte from a file + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) hwInstData available for customer use */ +EAS_RESULT EAS_HWGetByte (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, void *p) +{ + EAS_RESULT result; + + /* check handle integrity */ + if (file->pFile == NULL) + return EAS_ERROR_INVALID_HANDLE; + + /* use local buffer - do we have any data? */ + if (file->readIndex >= file->bytesInBuffer) + { + if ((result = EAS_HWFillBuffer(hwInstData, file)) != EAS_SUCCESS) + return result; + + /* if nothing to read, return EOF */ + if (file->bytesInBuffer == 0) + return EAS_EOF; + } + + /* get a character from the buffer */ + *((EAS_U8*) p) = file->buffer[file->readIndex++]; + +#ifdef DEBUG_FILE_IO + EAS_ReportX(_EAS_SEVERITY_NOFILTER, "EAS_HWGetByte: Reading from position %d, byte = 0x%02x\n", file->filePos, *(EAS_U8*)p); +#endif + + file->filePos++; + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWGetWord + * + * Read a 16-bit value from the file + *---------------------------------------------------------------------------- +*/ +EAS_RESULT EAS_HWGetWord (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, void *p, EAS_BOOL msbFirst) +{ + EAS_RESULT result; + EAS_I32 count; + EAS_U8 c[2]; + +#ifdef DEBUG_FILE_IO + EAS_ReportX(_EAS_SEVERITY_NOFILTER, "EAS_HWGetWord: Reading 2 bytes from position %d\n", file->filePos); +#endif + + /* read 2 bytes from the file */ + if ((result = EAS_HWReadFile(hwInstData, file, c, 2, &count)) != EAS_SUCCESS) + return result; + + /* order them as requested */ + if (msbFirst) + *((EAS_U16*) p) = ((EAS_U16) c[0] << 8) | c[1]; + else + *((EAS_U16*) p) = ((EAS_U16) c[1] << 8) | c[0]; + + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWGetDWord + * + * Read a 16-bit value from the file + *---------------------------------------------------------------------------- +*/ +EAS_RESULT EAS_HWGetDWord (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, void *p, EAS_BOOL msbFirst) +{ + EAS_RESULT result; + EAS_I32 count; + EAS_U8 c[4]; + +#ifdef DEBUG_FILE_IO + EAS_ReportX(_EAS_SEVERITY_NOFILTER, "EAS_HWGetDWord: Reading 4 bytes from position %d\n", file->filePos); +#endif + + /* read 4 bytes from the file */ + if ((result = EAS_HWReadFile(hwInstData, file, c, 4, &count)) != EAS_SUCCESS) + return result; + + /* order them as requested */ + if (msbFirst) + *((EAS_U32*) p) = ((EAS_U32) c[0] << 24) | ((EAS_U32) c[1] << 16) | ((EAS_U32) c[2] << 8) | c[3]; + else + *((EAS_U32*) p) = ((EAS_U32) c[3] << 24) | ((EAS_U32) c[2] << 16) | ((EAS_U32) c[1] << 8) | c[0]; + + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWFilePos + * + * Returns the current location in the file + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) hwInstData available for customer use */ +EAS_RESULT EAS_HWFilePos (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, EAS_I32 *pPosition) +{ + + /* check handle integrity */ + if (file->pFile == NULL) + return EAS_ERROR_INVALID_HANDLE; + + *pPosition = file->filePos; + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWFileSeek + * + * Seek to a specific location in the file + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) hwInstData available for customer use */ +EAS_RESULT EAS_HWFileSeek (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, EAS_I32 position) +{ + EAS_I32 newIndex; + + /* check handle integrity */ + if (file->pFile == NULL) + return EAS_ERROR_INVALID_HANDLE; + + /* check for seek past end */ + if ((position < 0) || (position > file->fileSize)) + return EAS_ERROR_FILE_SEEK; + +#ifdef DEBUG_FILE_IO + EAS_ReportX(_EAS_SEVERITY_NOFILTER, "EAS_HWFileSeek: Seeking to new position %d\n", file->filePos); +#endif + + /* is new position in current buffer? */ + newIndex = position - file->filePos + file->readIndex; + if ((newIndex >= 0) && (newIndex < file->bytesInBuffer)) + { + file->readIndex = newIndex; + file->filePos = position; + return EAS_SUCCESS; + } + + /* save new position and reset buffer info so EAS_HWGetByte doesn't fail */ + file->filePos = position; + file->bytesInBuffer = 0; + file->readIndex = 0; + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWFileSeekOfs + * + * Seek forward or back relative to the current position + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) hwInstData available for customer use */ +EAS_RESULT EAS_HWFileSeekOfs (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, EAS_I32 position) +{ + EAS_I32 temp; + +#ifdef DEBUG_FILE_IO + EAS_ReportX(_EAS_SEVERITY_NOFILTER, "EAS_HWFileSeekOfs: Seeking to new position %d\n", file->filePos + position); +#endif + + /* check handle integrity */ + if (file->pFile == NULL) + return EAS_ERROR_INVALID_HANDLE; + + /* check for seek past end */ + temp = file->filePos + position; + if ((temp < 0) || (temp > file->fileSize)) + return EAS_ERROR_FILE_SEEK; + + /* is new position in current buffer? */ + temp = position + file->readIndex; + if ((temp >= 0) && (temp < file->bytesInBuffer)) + { + file->readIndex = temp; + file->filePos += position; + return EAS_SUCCESS; + } + + /* save new position and reset buffer info so EAS_HWGetByte doesn't fail */ + file->filePos += position; + file->bytesInBuffer = 0; + file->readIndex = 0; + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWFileLength + * + * Return the file length + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) hwInstData available for customer use */ +EAS_RESULT EAS_HWFileLength (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, EAS_I32 *pLength) +{ + long pos; + + /* check handle integrity */ + if (file->pFile == NULL) + return EAS_ERROR_INVALID_HANDLE; + + if ((pos = ftell(file->pFile)) == -1L) + return EAS_ERROR_FILE_LENGTH; + if (fseek(file->pFile, 0L, SEEK_END) != 0) + return EAS_ERROR_FILE_LENGTH; + if ((*pLength = ftell(file->pFile)) == -1L) + return EAS_ERROR_FILE_LENGTH; + if (fseek(file->pFile, pos, SEEK_SET) != 0) + return EAS_ERROR_FILE_LENGTH; + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWDupHandle + * + * Duplicate a file handle + * + *---------------------------------------------------------------------------- +*/ +EAS_RESULT EAS_HWDupHandle (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, EAS_FILE_HANDLE* pDupFile) +{ + EAS_HW_FILE *dupfile; + int i; + + /* check handle integrity */ + *pDupFile = NULL; + if (file->pFile == NULL) + return EAS_ERROR_INVALID_HANDLE; + + /* find an empty entry in the file table */ + dupfile = hwInstData->files; + for (i = 0; i < EAS_MAX_FILE_HANDLES; i++) + { + /* is this slot being used? */ + if (dupfile->pFile == NULL) + { + + /* copy info from the handle to be duplicated */ + dupfile->filePos = file->filePos; + dupfile->pFile = file->pFile; + dupfile->fileSize = file->fileSize; + + /* set the duplicate handle flag */ + dupfile->dup = file->dup = EAS_TRUE; + + /* initialize some values */ + dupfile->bytesInBuffer = 0; + dupfile->readIndex = 0; + + *pDupFile = dupfile; + return EAS_SUCCESS; + } + dupfile++; + } + + /* too many open files */ + return EAS_ERROR_MAX_FILES_OPEN; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWClose + * + * Wrapper for fclose function + * + *---------------------------------------------------------------------------- +*/ +EAS_RESULT EAS_HWCloseFile (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file1) +{ + EAS_HW_FILE *file2,*dupFile; + int i; + + /* check handle integrity */ + if (file1->pFile == NULL) + return EAS_ERROR_INVALID_HANDLE; + + /* check for duplicate handle */ + if (file1->dup) + { + dupFile = NULL; + file2 = hwInstData->files; + for (i = 0; i < EAS_MAX_FILE_HANDLES; i++) + { + /* check for duplicate */ + if ((file1 != file2) && (file2->pFile == file1->pFile)) + { + /* is there more than one duplicate? */ + if (dupFile != NULL) + { + /* clear this entry and return */ + file1->pFile = NULL; + return EAS_SUCCESS; + } + + /* this is the first duplicate found */ + dupFile = file2; + } + file2++; + } + + /* there is only one duplicate, clear the dup flag */ + if (dupFile) + dupFile->dup = EAS_FALSE; + else + /* if we get here, there's a serious problem */ + return EAS_ERROR_HANDLE_INTEGRITY; + + /* clear this entry and return */ + file1->pFile = NULL; + return EAS_SUCCESS; + } + + /* no duplicates - close the file */ + if (fclose(file1->pFile) != 0) + return EAS_ERROR_CLOSE_FAILED; + + /* clear this entry and return */ + file1->pFile = NULL; + return EAS_SUCCESS; +} +#else +/*---------------------------------------------------------------------------- + * + * EAS_HWOpenFile + * + * Open a file for read or write + * + *---------------------------------------------------------------------------- +*/ +EAS_RESULT EAS_HWOpenFile (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_LOCATOR locator, EAS_FILE_HANDLE *pFile, EAS_FILE_MODE mode) +{ + EAS_HW_FILE *file; + FILE *ioFile; + int i, temp; + + /* set return value to NULL */ + *pFile = NULL; + + /* simulate failure */ + if (errorConditions[eOpenError]) + return EAS_FAILURE; + + /* only support read mode at this time */ + if (mode != EAS_FILE_READ) + return EAS_ERROR_INVALID_FILE_MODE; + + /* find an empty entry in the file table */ + file = hwInstData->files; + for (i = 0; i < EAS_MAX_FILE_HANDLES; i++) + { + /* is this slot being used? */ + if (file->buffer == NULL) + { + /* open the file */ + if ((ioFile = fopen(locator,"rb")) == NULL) + return EAS_ERROR_FILE_OPEN_FAILED; + + /* determine the file size */ + if (fseek(ioFile, 0L, SEEK_END) != 0) + return EAS_ERROR_FILE_LENGTH; + if ((file->fileSize = ftell(ioFile)) == -1L) + return EAS_ERROR_FILE_LENGTH; + if (fseek(ioFile, 0L, SEEK_SET) != 0) + return EAS_ERROR_FILE_LENGTH; + + /* allocate a buffer */ + file->buffer = EAS_HWMalloc(hwInstData, file->fileSize); + if (file->buffer == NULL) + { + fclose(ioFile); + return EAS_ERROR_MALLOC_FAILED; + } + + /* read the file into memory */ + temp = (int) fread(file->buffer, (size_t) file->fileSize, 1, ioFile); + + /* close the file - don't need it any more */ + fclose(ioFile); + + /* check for error reading file */ + if (temp != 1) + return EAS_ERROR_FILE_READ_FAILED; + + /* initialize some values */ + file->filePos = 0; + file->dup = EAS_FALSE; + + *pFile = file; + return EAS_SUCCESS; + } + file++; + } + + /* too many open files */ + return EAS_ERROR_MAX_FILES_OPEN; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWReadFile + * + * Read data from a file + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) available for customer use */ +EAS_RESULT EAS_HWReadFile (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, void *pBuffer, EAS_I32 n, EAS_I32 *pBytesRead) +{ + EAS_I32 count; + + /* simulate failure */ + if (errorConditions[eReadError]) + return EAS_FAILURE; + + /* make sure we have a valid handle */ + if (file->buffer == NULL) + return EAS_ERROR_INVALID_HANDLE; + + /* calculate the bytes to read */ + count = file->fileSize - file->filePos; + if (n < count) + count = n; + + /* copy the data to the requested location, and advance the pointer */ + if (count) + EAS_HWMemCpy(pBuffer, &file->buffer[file->filePos], count); + file->filePos += count; + *pBytesRead = count; + + /* were n bytes read? */ + if (count!= n) + return EAS_EOF; + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWGetByte + * + * Read a byte from a file + * + *---------------------------------------------------------------------------- +*/ +/*lint -e{715} hwInstData available for customer use */ +EAS_RESULT EAS_HWGetByte (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, void *p) +{ + + /* simulate failure */ + if (errorConditions[eReadError]) + return EAS_FAILURE; + + /* make sure we have a valid handle */ + if (file->buffer == NULL) + return EAS_ERROR_INVALID_HANDLE; + + /* check for end of file */ + if (file->filePos >= file->fileSize) + { + *((EAS_U8*) p) = 0; + return EAS_EOF; + } + + /* get a character from the buffer */ + *((EAS_U8*) p) = file->buffer[file->filePos++]; + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWGetWord + * + * Returns the current location in the file + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) available for customer use */ +EAS_RESULT EAS_HWGetWord (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, void *p, EAS_BOOL msbFirst) +{ + EAS_RESULT result; + EAS_U8 c1, c2; + + /* read 2 bytes from the file */ + if ((result = EAS_HWGetByte(hwInstData, file, &c1)) != EAS_SUCCESS) + return result; + if ((result = EAS_HWGetByte(hwInstData, file, &c2)) != EAS_SUCCESS) + return result; + + /* order them as requested */ + if (msbFirst) + *((EAS_U16*) p) = ((EAS_U16) c1 << 8) | c2; + else + *((EAS_U16*) p) = ((EAS_U16) c2 << 8) | c1; + + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWGetDWord + * + * Returns the current location in the file + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) available for customer use */ +EAS_RESULT EAS_HWGetDWord (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, void *p, EAS_BOOL msbFirst) +{ + EAS_RESULT result; + EAS_U8 c1, c2,c3,c4; + + /* read 4 bytes from the file */ + if ((result = EAS_HWGetByte(hwInstData, file, &c1)) != EAS_SUCCESS) + return result; + if ((result = EAS_HWGetByte(hwInstData, file, &c2)) != EAS_SUCCESS) + return result; + if ((result = EAS_HWGetByte(hwInstData, file, &c3)) != EAS_SUCCESS) + return result; + if ((result = EAS_HWGetByte(hwInstData, file, &c4)) != EAS_SUCCESS) + return result; + + /* order them as requested */ + if (msbFirst) + *((EAS_U32*) p) = ((EAS_U32) c1 << 24) | ((EAS_U32) c2 << 16) | ((EAS_U32) c3 << 8) | c4; + else + *((EAS_U32*) p)= ((EAS_U32) c4 << 24) | ((EAS_U32) c3 << 16) | ((EAS_U32) c2 << 8) | c1; + + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWFilePos + * + * Returns the current location in the file + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) available for customer use */ +EAS_RESULT EAS_HWFilePos (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, EAS_I32 *pPosition) +{ + + /* simulate failure */ + if (errorConditions[ePosError]) + return EAS_FAILURE; + + /* make sure we have a valid handle */ + if (file->buffer == NULL) + return EAS_ERROR_INVALID_HANDLE; + + *pPosition = file->filePos; + return EAS_SUCCESS; +} /* end EAS_HWFilePos */ + +/*---------------------------------------------------------------------------- + * + * EAS_HWFileSeek + * + * Seek to a specific location in the file + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) available for customer use */ +EAS_RESULT EAS_HWFileSeek (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, EAS_I32 position) +{ + + /* simulate failure */ + if (errorConditions[eSeekError]) + return EAS_FAILURE; + + /* make sure we have a valid handle */ + if (file->buffer == NULL) + return EAS_ERROR_INVALID_HANDLE; + + /* validate new position */ + if ((position < 0) || (position > file->fileSize)) + return EAS_ERROR_FILE_SEEK; + + /* save new position */ + file->filePos = position; + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWFileSeekOfs + * + * Seek forward or back relative to the current position + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) available for customer use */ +EAS_RESULT EAS_HWFileSeekOfs (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, EAS_I32 position) +{ + + /* simulate failure */ + if (errorConditions[eSeekError]) + return EAS_FAILURE; + + /* make sure we have a valid handle */ + if (file->buffer == NULL) + return EAS_ERROR_INVALID_HANDLE; + + /* determine the file position */ + position += file->filePos; + if ((position < 0) || (position > file->fileSize)) + return EAS_ERROR_FILE_SEEK; + + /* save new position */ + file->filePos = position; + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWFileLength + * + * Return the file length + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) available for customer use */ +EAS_RESULT EAS_HWFileLength (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, EAS_I32 *pLength) +{ + + /* simulate failure */ + if (errorConditions[eLengthError]) + return EAS_FAILURE; + + /* make sure we have a valid handle */ + if (file->buffer == NULL) + return EAS_ERROR_INVALID_HANDLE; + + *pLength = file->fileSize; + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWDupHandle + * + * Duplicate a file handle + * + *---------------------------------------------------------------------------- +*/ +EAS_RESULT EAS_HWDupHandle (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file, EAS_FILE_HANDLE *pDupFile) +{ + EAS_HW_FILE *dupFile; + int i; + + /* simulate failure */ + if (errorConditions[eDupError]) + return EAS_FAILURE; + + /* make sure we have a valid handle */ + if (file->buffer == NULL) + return EAS_ERROR_INVALID_HANDLE; + + /* find an empty entry in the file table */ + dupFile = hwInstData->files; + for (i = 0; i < EAS_MAX_FILE_HANDLES; i++) + { + /* is this slot being used? */ + if (dupFile->buffer == NULL) + { + + /* copy info from the handle to be duplicated */ + dupFile->filePos = file->filePos; + dupFile->fileSize = file->fileSize; + dupFile->buffer = file->buffer; + + /* set the duplicate handle flag */ + dupFile->dup = file->dup = EAS_TRUE; + + *pDupFile = dupFile; + return EAS_SUCCESS; + } + dupFile++; + } + + /* too many open files */ + return EAS_ERROR_MAX_FILES_OPEN; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWClose + * + * Wrapper for fclose function + * + *---------------------------------------------------------------------------- +*/ +EAS_RESULT EAS_HWCloseFile (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE file1) +{ + EAS_HW_FILE *file2,*dupFile; + int i; + + /* simulate failure */ + if (errorConditions[eCloseError]) + return EAS_FAILURE; + + /* make sure we have a valid handle */ + if (file1->buffer == NULL) + return EAS_ERROR_INVALID_HANDLE; + + /* check for duplicate handle */ + if (file1->dup) + { + dupFile = NULL; + file2 = hwInstData->files; + for (i = 0; i < EAS_MAX_FILE_HANDLES; i++) + { + /* check for duplicate */ + if ((file1 != file2) && (file2->buffer == file1->buffer)) + { + /* is there more than one duplicate? */ + if (dupFile != NULL) + { + /* clear this entry and return */ + file1->buffer = NULL; + return EAS_SUCCESS; + } + + /* this is the first duplicate found */ + else + dupFile = file2; + } + file2++; + } + + /* there is only one duplicate, clear the dup flag */ + if (dupFile) + dupFile->dup = EAS_FALSE; + else + /* if we get here, there's a serious problem */ + return EAS_ERROR_HANDLE_INTEGRITY; + + /* clear this entry and return */ + file1->buffer = NULL; + return EAS_SUCCESS; + } + + /* no duplicates -free the buffer */ + EAS_HWFree(hwInstData, file1->buffer); + + /* clear this entry and return */ + file1->buffer = NULL; + return EAS_SUCCESS; +} +#endif + +/*---------------------------------------------------------------------------- + * + * EAS_HWVibrate + * + * Turn on/off vibrate function + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) available for customer use */ +EAS_RESULT EAS_HWVibrate (EAS_HW_DATA_HANDLE hwInstData, EAS_BOOL state) +{ + vibState = state; +// EAS_ReportX(_EAS_SEVERITY_NOFILTER, "Vibrate state: %d\n", state); + return EAS_SUCCESS; +} /* end EAS_HWVibrate */ + +/*---------------------------------------------------------------------------- + * + * EAS_HWLED + * + * Turn on/off LED + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) available for customer use */ +EAS_RESULT EAS_HWLED (EAS_HW_DATA_HANDLE hwInstData, EAS_BOOL state) +{ + ledState = state; +// EAS_ReportX(_EAS_SEVERITY_NOFILTER, "LED state: %d\n", state); + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWBackLight + * + * Turn on/off backlight + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) available for customer use */ +EAS_RESULT EAS_HWBackLight (EAS_HW_DATA_HANDLE hwInstData, EAS_BOOL state) +{ + backlightState = state; +// EAS_ReportX(_EAS_SEVERITY_NOFILTER, "Backlight state: %d\n", state); + return EAS_SUCCESS; +} + +/*---------------------------------------------------------------------------- + * + * EAS_HWYield + * + * This function is called periodically by the EAS library to give the + * host an opportunity to allow other tasks to run. There are two ways to + * use this call: + * + * If you have a multi-tasking OS, you can call the yield function in the + * OS to allow other tasks to run. In this case, return EAS_FALSE to tell + * the EAS library to continue processing when control returns from this + * function. + * + * If tasks run in a single thread by sequential function calls (sometimes + * call a "commutator loop"), return EAS_TRUE to cause the EAS Library to + * return to the caller. Be sure to check the number of bytes rendered + * before passing the audio buffer to the codec - it may not be filled. + * The next call to EAS_Render will continue processing until the buffer + * has been filled. + * + *---------------------------------------------------------------------------- +*/ +/*lint -esym(715, hwInstData) available for customer use */ +EAS_BOOL EAS_HWYield (EAS_HW_DATA_HANDLE hwInstData) +{ + /* put your code here */ + return EAS_FALSE; +} + + diff --git a/arm-wt-22k/jetcreator_lib_src/darwin-x86/README.txt b/arm-wt-22k/jetcreator_lib_src/darwin-x86/README.txt new file mode 100644 index 0000000..bcc6ef0 --- /dev/null +++ b/arm-wt-22k/jetcreator_lib_src/darwin-x86/README.txt @@ -0,0 +1,9 @@ +OS X JetCreator Library Build Instructions + +1/ Open easwt_vst_lib.xcodeproj and build + +2/ Open EASLIb.xcodeproj and build + +3/ Copy build/Release/libEASLIb.dylib to the JetCreator folder + + diff --git a/arm-wt-22k/jetcreator_lib_src/darwin-x86/eas_host_debug.h b/arm-wt-22k/jetcreator_lib_src/darwin-x86/eas_host_debug.h new file mode 100755 index 0000000..8a01922 --- /dev/null +++ b/arm-wt-22k/jetcreator_lib_src/darwin-x86/eas_host_debug.h @@ -0,0 +1,47 @@ +/*---------------------------------------------------------------------------- + * + * File: + * eas_host_debug.h + * + * Contents and purpose: + * This header defines the host wrapper functions for simulating + * error conditions. + * + * Copyright (C) 2008 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. +*/ + +// sentinel +#ifndef _EAS_HOST_DEBUG_H +#define _EAS_HOST_DEBUG_H + +#include "eas_types.h" + +typedef enum +{ + eInitError, + eShutdownError, + eMallocError, + eOpenError, + eReadError, + ePosError, + eSeekError, + eLengthError, + eDupError, + eCloseError, + eNumErrorConditions, +} E_ERROR_CONDITIONS; + +#endif + diff --git a/arm-wt-22k/jetcreator_lib_src/darwin-x86/eastestv37.c b/arm-wt-22k/jetcreator_lib_src/darwin-x86/eastestv37.c new file mode 100755 index 0000000..e4e9c48 --- /dev/null +++ b/arm-wt-22k/jetcreator_lib_src/darwin-x86/eastestv37.c @@ -0,0 +1,999 @@ +/*---------------------------------------------------------------------------- + * + * Copyright (C) 2008 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. +*/ + +#include "eas_sndlib.h" + +/*---------------------------------------------------------------------------- + * Articulations + *---------------------------------------------------------------------------- +*/ +const S_ARTICULATION testArticulations[] = +{ + { /* articulation 0 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 1 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 100, 0, 19, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 2 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 100, 34, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 3 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 100, 86, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 4 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 100, 172, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 5 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 100, 345, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 6 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 100, 517, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 7 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 100, 689, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 8 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 100, 861, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 9 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 100, 1723, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 10 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 100, 0, 191, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 11 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 100, 0, 382, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 12 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 100, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 13 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 100, 0, 1903, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 14 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 100, 0, 3804, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 15 */ + { 1902, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 16 */ + { 380, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 17 */ + { 190, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 18 */ + { 38, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 19 */ + { 19, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 20 */ + { 10, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 21 */ + { 5, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 22 */ + { 32767, 17213, 0, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 23 */ + { 32767, 28809, 0, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 24 */ + { 32767, 30725, 0, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 25 */ + { 32767, 32349, 0, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 26 */ + { 32767, 32558, 0, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 27 */ + { 32767, 32663, 0, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 28 */ + { 32767, 32715, 0, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 29 */ + { 32767, 30725, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 30 */ + { 32767, 30725, 3566, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 31 */ + { 32767, 30725, 42, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 32 */ + { 32767, 30725, 5, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 33 */ + { 32767, 30725, 2, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 34 */ + { 32767, 0, 32767, 17213 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 35 */ + { 32767, 0, 32767, 28809 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 36 */ + { 32767, 0, 32767, 30725 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 37 */ + { 32767, 0, 32767, 32349 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 38 */ + { 32767, 0, 32767, 32558 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 39 */ + { 32767, 0, 32767, 32663 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 40 */ + { 32767, 0, 32767, 32715 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 41 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 190, 0, 0, 0, 1, 0, 0 + }, + { /* articulation 42 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 189, 0, 0, 0, 3, 0, 0 + }, + { /* articulation 43 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 190, 0, 0, 0, 4, 0, 0 + }, + { /* articulation 44 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 190, 0, 0, 0, 6, 0, 0 + }, + { /* articulation 45 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + -1200, 0, 190, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 46 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + -600, 0, 190, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 47 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + -100, 0, 190, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 48 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + -50, 0, 190, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 49 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 50, 0, 190, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 50 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 100, 0, 190, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 51 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 600, 0, 190, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 52 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 1200, 0, 190, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 53 */ + { 32767, 0, 32767, 0 }, + { 190, 190, 0, 0 }, + 0, 0, 951, -1200, 0, 0, 0, 0, 0 + }, + { /* articulation 54 */ + { 32767, 0, 32767, 0 }, + { 190, 190, 0, 0 }, + 0, 0, 951, -600, 0, 0, 0, 0, 0 + }, + { /* articulation 55 */ + { 32767, 0, 32767, 0 }, + { 190, 190, 0, 0 }, + 0, 0, 951, -100, 0, 0, 0, 0, 0 + }, + { /* articulation 56 */ + { 32767, 0, 32767, 0 }, + { 190, 190, 0, 0 }, + 0, 0, 951, -50, 0, 0, 0, 0, 0 + }, + { /* articulation 57 */ + { 32767, 0, 32767, 0 }, + { 190, 190, 0, 0 }, + 0, 0, 951, 50, 0, 0, 0, 0, 0 + }, + { /* articulation 58 */ + { 32767, 0, 32767, 0 }, + { 190, 190, 0, 0 }, + 0, 0, 951, 100, 0, 0, 0, 0, 0 + }, + { /* articulation 59 */ + { 32767, 0, 32767, 0 }, + { 190, 190, 0, 0 }, + 0, 0, 951, 600, 0, 0, 0, 0, 0 + }, + { /* articulation 60 */ + { 32767, 0, 32767, 0 }, + { 190, 190, 0, 0 }, + 0, 0, 951, 1200, 0, 0, 0, 0, 0 + }, + { /* articulation 61 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 5535, 0, 0, 0 + }, + { /* articulation 62 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 7121, 0, 0, 0 + }, + { /* articulation 63 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 8321, 0, 0, 0 + }, + { /* articulation 64 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 9906, 0, 0, 0 + }, + { /* articulation 65 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 11106, 0, 0, 0 + }, + { /* articulation 66 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 9521, 0, 0, 0 + }, + { /* articulation 67 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 9521, 0, 8, 0 + }, + { /* articulation 68 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 9521, 0, 16, 0 + }, + { /* articulation 69 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 9521, 0, 24, 0 + }, + { /* articulation 70 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 9521, 0, 30, 0 + }, + { /* articulation 71 */ + { 32767, 0, 32767, 0 }, + { 190, 190, 0, 0 }, + 0, 0, 951, 0, -6400, 9521, 0, 0, 0 + }, + { /* articulation 72 */ + { 32767, 0, 32767, 0 }, + { 190, 190, 0, 0 }, + 0, 0, 951, 0, -3200, 9521, 0, 0, 0 + }, + { /* articulation 73 */ + { 32767, 0, 32767, 0 }, + { 190, 190, 0, 0 }, + 0, 0, 951, 0, -1600, 9521, 0, 0, 0 + }, + { /* articulation 74 */ + { 32767, 0, 32767, 0 }, + { 190, 190, 0, 0 }, + 0, 0, 951, 0, -800, 9521, 0, 0, 0 + }, + { /* articulation 75 */ + { 32767, 0, 32767, 0 }, + { 190, 190, 0, 0 }, + 0, 0, 951, 0, 800, 7121, 0, 0, 0 + }, + { /* articulation 76 */ + { 190, 30725, 32767, 0 }, + { 190, 190, 0, 0 }, + 0, 0, 951, 0, 1600, 7121, 0, 0, 0 + }, + { /* articulation 77 */ + { 32767, 0, 32767, 0 }, + { 190, 190, 0, 0 }, + 0, 0, 951, 0, 3200, 7121, 0, 0, 0 + }, + { /* articulation 78 */ + { 32767, 0, 32767, 0 }, + { 190, 190, 0, 0 }, + 0, 0, 951, 0, 6400, 7121, 0, 0, 0 + }, + { /* articulation 79 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 190, 0, 0, 11106, 0, 0, 0 + }, + { /* articulation 80 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 191, 0, 0, 11106, 0, 0, 0 + }, + { /* articulation 81 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 190, 0, 0, 7121, 0, 0, 0 + }, + { /* articulation 82 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, -63 + }, + { /* articulation 83 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, -50 + }, + { /* articulation 84 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, -37 + }, + { /* articulation 85 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, -25 + }, + { /* articulation 86 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, -12 + }, + { /* articulation 87 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 12 + }, + { /* articulation 88 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 25 + }, + { /* articulation 89 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 37 + }, + { /* articulation 90 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 50 + }, + { /* articulation 91 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 0, 0, 0, 63 + }, + { /* articulation 92 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 9907, 0, 0, 0 + }, + { /* articulation 93 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 10574, 0, 0, 0 + }, + { /* articulation 94 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 11373, 0, 0, 0 + }, + { /* articulation 95 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 951, 0, 0, 11376, 0, 0, 0 + }, + { /* articulation 96 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 100, 0, 949, 0, 0, 0, 0, 0, 0 + } +}; /*end Articulations */ + +/*---------------------------------------------------------------------------- + * Regions + *---------------------------------------------------------------------------- +*/ +const S_WT_REGION testRegions[] = +{ + { { 32769, 0, 127 }, -6000, 32767, 101, 301, 4, 0 }, /* region 0 */ + { { 1, 0, 60 }, -6000, 32767, 101, 301, 4, 2 }, /* region 1 */ + { { 1, 61, 61 }, -6000, 32767, 101, 301, 4, 3 }, /* region 2 */ + { { 1, 62, 62 }, -6000, 32767, 101, 301, 4, 4 }, /* region 3 */ + { { 1, 63, 63 }, -6000, 32767, 101, 301, 4, 5 }, /* region 4 */ + { { 1, 64, 64 }, -6000, 32767, 101, 301, 4, 6 }, /* region 5 */ + { { 1, 65, 65 }, -6000, 32767, 101, 301, 4, 7 }, /* region 6 */ + { { 1, 66, 66 }, -6000, 32767, 101, 301, 4, 8 }, /* region 7 */ + { { 32769, 67, 127 }, -6000, 32767, 101, 301, 4, 9 }, /* region 8 */ + { { 32769, 0, 127 }, -6005, 32767, 3, 171, 5, 0 }, /* region 9 */ + { { 32768, 0, 127 }, -6555, 32767, 0, 0, 2, 0 }, /* region 10 */ + { { 32770, 0, 127 }, -6000, 32767, 0, 0, 0, 0 }, /* region 11 */ + { { 1, 60, 60 }, -6000, 32767, 101, 301, 4, 0 }, /* region 12 */ + { { 1, 61, 61 }, -6100, 16422, 101, 151, 4, 0 }, /* region 13 */ + { { 1, 62, 62 }, -6200, 8231, 101, 151, 4, 0 }, /* region 14 */ + { { 1, 63, 63 }, -6300, 2067, 101, 151, 4, 0 }, /* region 15 */ + { { 1, 64, 64 }, -6400, 130, 101, 151, 4, 0 }, /* region 16 */ + { { 32769, 65, 65 }, -6500, 1, 101, 151, 4, 0 }, /* region 17 */ + { { 1, 60, 60 }, -6000, 32767, 101, 301, 4, 0 }, /* region 18 */ + { { 1, 61, 61 }, -6200, 32767, 101, 151, 4, 0 }, /* region 19 */ + { { 1, 62, 62 }, -6400, 32767, 101, 151, 4, 0 }, /* region 20 */ + { { 1, 63, 63 }, -6600, 32767, 101, 151, 4, 0 }, /* region 21 */ + { { 1, 64, 64 }, -6800, 32767, 101, 151, 4, 0 }, /* region 22 */ + { { 1, 65, 65 }, -7000, 32767, 101, 151, 4, 0 }, /* region 23 */ + { { 1, 66, 66 }, -7200, 32767, 101, 151, 4, 0 }, /* region 24 */ + { { 1, 67, 67 }, -7400, 32767, 101, 151, 4, 0 }, /* region 25 */ + { { 1, 68, 68 }, -7600, 32767, 101, 151, 4, 0 }, /* region 26 */ + { { 1, 69, 69 }, -7800, 32767, 101, 151, 4, 0 }, /* region 27 */ + { { 1, 70, 70 }, -8000, 32767, 101, 151, 4, 0 }, /* region 28 */ + { { 1, 71, 71 }, -8200, 32767, 101, 151, 4, 0 }, /* region 29 */ + { { 32769, 72, 72 }, -8400, 32767, 101, 151, 4, 0 }, /* region 30 */ + { { 1, 60, 60 }, -6000, 32767, 101, 301, 4, 0 }, /* region 31 */ + { { 1, 61, 61 }, -6099, 32767, 101, 151, 4, 0 }, /* region 32 */ + { { 1, 62, 62 }, -6190, 32767, 101, 151, 4, 0 }, /* region 33 */ + { { 1, 63, 63 }, -6250, 32767, 101, 151, 4, 0 }, /* region 34 */ + { { 1, 64, 64 }, -6300, 32767, 101, 151, 4, 0 }, /* region 35 */ + { { 1, 65, 65 }, -6500, 32767, 101, 151, 4, 0 }, /* region 36 */ + { { 1, 66, 66 }, -6601, 32767, 101, 151, 4, 0 }, /* region 37 */ + { { 1, 67, 67 }, -6710, 32767, 101, 151, 4, 0 }, /* region 38 */ + { { 1, 68, 68 }, -6850, 32767, 101, 151, 4, 0 }, /* region 39 */ + { { 32769, 69, 69 }, -7000, 32767, 101, 151, 4, 0 }, /* region 40 */ + { { 1, 0, 0 }, 0, 32767, 101, 151, 4, 1 }, /* region 41 */ + { { 1, 1, 1 }, -100, 32767, 101, 151, 4, 10 }, /* region 42 */ + { { 1, 2, 2 }, -200, 32767, 101, 151, 4, 11 }, /* region 43 */ + { { 1, 3, 3 }, -300, 32767, 101, 151, 4, 12 }, /* region 44 */ + { { 1, 4, 4 }, -400, 32767, 101, 151, 4, 13 }, /* region 45 */ + { { 1, 5, 5 }, -500, 32767, 101, 151, 4, 14 }, /* region 46 */ + { { 1, 6, 6 }, -600, 32767, 101, 151, 4, 0 }, /* region 47 */ + { { 1, 7, 7 }, -700, 32767, 101, 151, 4, 15 }, /* region 48 */ + { { 1, 8, 8 }, -800, 32767, 101, 151, 4, 16 }, /* region 49 */ + { { 1, 9, 9 }, -900, 32767, 101, 151, 4, 17 }, /* region 50 */ + { { 1, 10, 10 }, -1000, 32767, 101, 151, 4, 18 }, /* region 51 */ + { { 1, 11, 11 }, -1100, 32767, 101, 151, 4, 19 }, /* region 52 */ + { { 1, 12, 12 }, -1200, 32767, 101, 151, 4, 20 }, /* region 53 */ + { { 1, 13, 13 }, -1300, 32767, 101, 151, 4, 21 }, /* region 54 */ + { { 1, 14, 14 }, -1400, 32767, 101, 151, 4, 22 }, /* region 55 */ + { { 1, 15, 15 }, -1500, 32767, 101, 151, 4, 23 }, /* region 56 */ + { { 1, 16, 16 }, -1600, 32767, 101, 151, 4, 24 }, /* region 57 */ + { { 1, 17, 17 }, -1700, 32767, 101, 151, 4, 25 }, /* region 58 */ + { { 1, 18, 18 }, -1800, 32767, 101, 151, 4, 26 }, /* region 59 */ + { { 1, 19, 19 }, -1900, 32767, 101, 151, 4, 27 }, /* region 60 */ + { { 1, 20, 20 }, -2000, 32767, 101, 151, 4, 28 }, /* region 61 */ + { { 1, 21, 21 }, -2100, 32767, 101, 151, 4, 29 }, /* region 62 */ + { { 1, 22, 22 }, -2200, 32767, 101, 151, 4, 30 }, /* region 63 */ + { { 1, 23, 23 }, -2300, 32767, 101, 151, 4, 31 }, /* region 64 */ + { { 1, 24, 24 }, -2400, 32767, 101, 151, 4, 32 }, /* region 65 */ + { { 1, 25, 25 }, -2500, 32767, 101, 151, 4, 33 }, /* region 66 */ + { { 1, 26, 26 }, -2600, 32767, 101, 151, 4, 24 }, /* region 67 */ + { { 1, 27, 27 }, -2700, 32767, 101, 151, 4, 0 }, /* region 68 */ + { { 1, 28, 28 }, -2800, 32767, 101, 151, 4, 34 }, /* region 69 */ + { { 1, 29, 29 }, -2900, 32767, 101, 151, 4, 35 }, /* region 70 */ + { { 1, 30, 30 }, -3000, 32767, 101, 151, 4, 36 }, /* region 71 */ + { { 1, 31, 31 }, -3100, 32767, 101, 151, 4, 37 }, /* region 72 */ + { { 1, 32, 32 }, -3200, 32767, 101, 151, 4, 38 }, /* region 73 */ + { { 1, 33, 33 }, -3300, 32767, 101, 151, 4, 39 }, /* region 74 */ + { { 1, 34, 34 }, -3400, 32767, 101, 151, 4, 40 }, /* region 75 */ + { { 1, 35, 35 }, -3500, 32767, 101, 151, 4, 41 }, /* region 76 */ + { { 1, 36, 36 }, -3600, 32767, 101, 151, 4, 42 }, /* region 77 */ + { { 1, 37, 37 }, -3700, 32767, 101, 151, 4, 43 }, /* region 78 */ + { { 1, 38, 38 }, -3800, 32767, 101, 151, 4, 44 }, /* region 79 */ + { { 1, 39, 39 }, -3900, 32767, 101, 151, 4, 45 }, /* region 80 */ + { { 1, 40, 40 }, -4000, 32767, 101, 151, 4, 46 }, /* region 81 */ + { { 1, 41, 41 }, -4100, 32767, 101, 151, 4, 47 }, /* region 82 */ + { { 1, 42, 42 }, -4200, 32767, 101, 151, 4, 48 }, /* region 83 */ + { { 1, 43, 43 }, -4300, 32767, 101, 151, 4, 49 }, /* region 84 */ + { { 1, 44, 44 }, -4400, 32767, 101, 151, 4, 50 }, /* region 85 */ + { { 1, 45, 45 }, -4500, 32767, 101, 151, 4, 51 }, /* region 86 */ + { { 1, 46, 46 }, -4600, 32767, 101, 151, 4, 52 }, /* region 87 */ + { { 1, 47, 47 }, -4700, 32767, 101, 151, 4, 53 }, /* region 88 */ + { { 1, 48, 48 }, -4800, 32767, 101, 151, 4, 54 }, /* region 89 */ + { { 1, 49, 49 }, -4900, 32767, 101, 151, 4, 55 }, /* region 90 */ + { { 1, 50, 50 }, -5000, 32767, 101, 151, 4, 56 }, /* region 91 */ + { { 1, 51, 51 }, -5100, 32767, 101, 151, 4, 57 }, /* region 92 */ + { { 1, 52, 52 }, -5200, 32767, 101, 151, 4, 58 }, /* region 93 */ + { { 1, 53, 53 }, -5300, 32767, 101, 151, 4, 59 }, /* region 94 */ + { { 1, 54, 54 }, -5400, 32767, 101, 151, 4, 60 }, /* region 95 */ + { { 2, 55, 55 }, -5500, 32767, 0, 0, 0, 61 }, /* region 96 */ + { { 2, 56, 56 }, -5600, 32767, 0, 0, 0, 62 }, /* region 97 */ + { { 2, 57, 57 }, -5700, 32767, 0, 0, 0, 63 }, /* region 98 */ + { { 2, 58, 58 }, -5800, 32767, 0, 0, 0, 64 }, /* region 99 */ + { { 2, 59, 59 }, -5900, 32767, 0, 0, 0, 65 }, /* region 100 */ + { { 2, 60, 60 }, -6000, 32767, 0, 0, 0, 0 }, /* region 101 */ + { { 2, 61, 61 }, -6100, 32767, 0, 0, 0, 66 }, /* region 102 */ + { { 2, 62, 62 }, -6200, 32767, 0, 0, 0, 67 }, /* region 103 */ + { { 2, 63, 63 }, -6300, 32767, 0, 0, 0, 68 }, /* region 104 */ + { { 2, 64, 64 }, -6400, 32767, 0, 0, 0, 69 }, /* region 105 */ + { { 2, 65, 65 }, -6500, 32767, 0, 0, 0, 70 }, /* region 106 */ + { { 2, 66, 66 }, -6600, 32767, 0, 0, 0, 71 }, /* region 107 */ + { { 2, 67, 67 }, -6700, 32767, 0, 0, 0, 72 }, /* region 108 */ + { { 2, 68, 68 }, -6800, 32767, 0, 0, 0, 73 }, /* region 109 */ + { { 2, 69, 69 }, -6900, 32767, 0, 0, 0, 74 }, /* region 110 */ + { { 2, 70, 70 }, -7000, 32767, 0, 0, 0, 75 }, /* region 111 */ + { { 2, 71, 71 }, -7100, 32767, 0, 0, 0, 76 }, /* region 112 */ + { { 2, 72, 72 }, -7200, 32767, 0, 0, 0, 77 }, /* region 113 */ + { { 2, 73, 73 }, -7300, 32767, 0, 0, 0, 78 }, /* region 114 */ + { { 2, 74, 74 }, -7400, 32767, 0, 0, 0, 79 }, /* region 115 */ + { { 2, 75, 75 }, -7500, 32767, 0, 0, 0, 79 }, /* region 116 */ + { { 2, 76, 76 }, -7600, 32767, 0, 0, 0, 79 }, /* region 117 */ + { { 2, 77, 77 }, -7700, 32767, 0, 0, 0, 80 }, /* region 118 */ + { { 2, 78, 78 }, -7800, 32767, 0, 0, 0, 81 }, /* region 119 */ + { { 2, 79, 79 }, -7900, 32767, 0, 0, 0, 81 }, /* region 120 */ + { { 2, 80, 80 }, -8000, 32767, 0, 0, 0, 81 }, /* region 121 */ + { { 2, 81, 81 }, -8100, 32767, 0, 0, 0, 81 }, /* region 122 */ + { { 2, 82, 82 }, -8200, 32767, 0, 0, 0, 0 }, /* region 123 */ + { { 257, 83, 83 }, -8300, 32767, 101, 151, 4, 0 }, /* region 124 */ + { { 257, 84, 84 }, -8405, 32767, 0, 171, 5, 0 }, /* region 125 */ + { { 0, 85, 85 }, -9055, 32767, 0, 0, 2, 82 }, /* region 126 */ + { { 0, 86, 86 }, -9155, 32767, 0, 0, 2, 83 }, /* region 127 */ + { { 0, 87, 87 }, -9255, 32767, 0, 0, 2, 84 }, /* region 128 */ + { { 0, 88, 88 }, -9355, 32767, 0, 0, 2, 85 }, /* region 129 */ + { { 0, 89, 89 }, -9455, 32767, 0, 0, 2, 86 }, /* region 130 */ + { { 0, 90, 90 }, -9555, 32767, 0, 0, 2, 0 }, /* region 131 */ + { { 0, 91, 91 }, -9655, 32767, 0, 0, 2, 87 }, /* region 132 */ + { { 0, 92, 92 }, -9755, 32767, 0, 0, 2, 88 }, /* region 133 */ + { { 0, 93, 93 }, -9855, 32767, 0, 0, 2, 89 }, /* region 134 */ + { { 0, 94, 94 }, -9955, 32767, 0, 0, 2, 90 }, /* region 135 */ + { { 0, 95, 95 }, -10055, 32767, 0, 0, 2, 91 }, /* region 136 */ + { { 2, 96, 96 }, -9600, 32767, 0, 0, 0, 63 }, /* region 137 */ + { { 2, 97, 97 }, -9700, 32767, 0, 0, 0, 92 }, /* region 138 */ + { { 2, 98, 98 }, -9800, 32767, 0, 0, 0, 93 }, /* region 139 */ + { { 2, 99, 99 }, -9900, 32767, 0, 0, 0, 94 }, /* region 140 */ + { { 2, 100, 100 }, -10000, 32767, 0, 0, 0, 95 }, /* region 141 */ + { { 32770, 101, 101 }, -10100, 32767, 0, 0, 0, 0 }, /* region 142 */ + { { 1, 36, 60 }, -6000, 32767, 1481, 1565, 0, 0 }, /* region 143 */ + { { 1, 61, 61 }, -7300, 32767, 740, 782, 1, 0 }, /* region 144 */ + { { 32769, 62, 62 }, -8599, 32767, 370, 391, 3, 0 }, /* region 145 */ + { { 32769, 60, 60 }, -6000, 32767, 101, 301, 4, 1 }, /* region 146 */ + { { 32769, 60, 60 }, -6000, 32767, 101, 301, 4, 50 }, /* region 147 */ + { { 32769, 60, 60 }, -6000, 32767, 101, 301, 4, 11 }, /* region 148 */ + { { 32769, 60, 60 }, -6000, 32767, 101, 301, 4, 96 }, /* region 149 */ + { { 32769, 60, 60 }, -6000, 32767, 101, 301, 4, 13 }, /* region 150 */ + { { 32769, 60, 60 }, -6000, 32767, 101, 301, 4, 14 } /* region 151 */ +}; /* end Regions */ + +/*---------------------------------------------------------------------------- + * Programs + *---------------------------------------------------------------------------- +*/ +const S_PROGRAM testPrograms[] = +{ + { 0, 41 } /* program 0 */, + { 1, 10 } /* program 1 */, + { 2, 11 } /* program 2 */, + { 3, 12 } /* program 3 */, + { 4, 18 } /* program 4 */, + { 5, 31 } /* program 5 */, + { 6, 143 } /* program 6 */, + { 7, 146 } /* program 7 */, + { 8, 147 } /* program 8 */, + { 9, 148 } /* program 9 */, + { 10, 149 } /* program 10 */, + { 11, 150 } /* program 11 */, + { 12, 151 } /* program 12 */, + { 13, 0 } /* program 13 */, + { 14, 9 } /* program 14 */, + { 15, 1 } /* program 15 */ +}; /* end Programs */ + +/*---------------------------------------------------------------------------- + * Banks + *---------------------------------------------------------------------------- +*/ +#define testBanks NULL + +/*---------------------------------------------------------------------------- + * Samples + *---------------------------------------------------------------------------- +*/ + +const EAS_SAMPLE testSamples[] = +{ + -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, + 13, 13, 14, 13, 13, 13, 12, 12, 10, 9, 8, 6, 5, 3, 2, 0, + -1, -3, -5, -8, -10, -12, -14, -15, -16, -17, -17, -17, -17, -16, -14, -13, + -11, -10, -8, -6, -5, -4, -4, -3, -3, -2, -1, -1, -1, -1, -1, -1, + -1, -2, -3, -3, -3, -3, -3, -2, -2, -2, -1, -1, -1, -1, 0, 0, + 0, 0, 0, 0, 0, 1, 2, 4, 6, 9, 11, 12, 13, 15, 16, 17, + 19, 20, 22, 23, 25, 28, 32, 34, 36, 36, 35, 31, 25, 18, 11, 3, + -5, -13, -20, -26, -31, -34, -35, -36, -36, -35, -34, -32, -29, -26, -23, -19, + -16, -12, -8, -5, -4, -4, -4, -6, -8, -9, -11, -11, -12, -13, -13, -13, + -12, -11, -10, -9, -7, -5, -4, -3, -2, -1, -1, 0, 0, 2, 4, 5, + 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 7, 9, 12, 14, 17, 20, + 24, 27, 30, 33, 36, 39, 41, 43, 46, 49, 51, 51, 50, 48, 43, 35, + 25, 14, 1, -12, -25, -37, -48, -56, -61, -63, -62, -60, -57, -53, -48, -42, + -35, -29, -23, -17, -12, -8, -5, -3, -3, -4, -5, -7, -9, -11, -12, -14, + -14, -14, -14, -13, -11, -9, -7, -5, -3, -1, 0, 1, 1, 1, 2, 3, + 4, 5, 6, 6, 7, 8, 9, 10, 11, 11, 11, 11, 10, 9, 9, 10, + 12, 14, 17, 20, 23, 26, 30, 34, 38, 40, 43, 46, 49, 52, 55, 57, + 58, 56, 50, 42, 30, 16, 1, -15, -29, -43, -54, -63, -68, -69, -68, -65, + -60, -55, -49, -42, -35, -29, -22, -16, -10, -6, -2, -1, 0, -1, -3, -6, + -9, -12, -16, -18, -20, -21, -21, -21, -19, -17, -14, -11, -8, -5, -2, 1, + 3, 5, 7, 9, 11, 12, 12, 12, 11, 10, 9, 8, 7, 7, 7, 7, + 8, 9, 10, 12, 15, 17, 19, 22, 24, 26, 28, 30, 32, 34, 36, 38, + 42, 44, 47, 49, 53, 56, 55, 52, 45, 35, 22, 8, -8, -23, -37, -50, + -60, -67, -71, -71, -69, -63, -56, -48, -40, -33, -27, -21, -16, -12, -8, -6, + -5, -5, -6, -8, -11, -14, -17, -19, -21, -22, -22, -22, -20, -18, -16, -13, + -9, -6, -2, 1, 5, 7, 8, 9, 10, 11, 11, 11, 10, 10, 9, 9, + 9, 8, 8, 9, 9, 10, 10, 12, 13, 14, 16, 18, 19, 21, 24, 26, + 29, 32, 35, 39, 42, 46, 49, 51, 53, 56, 59, 59, 55, 48, 37, 22, + 5, -12, -29, -45, -58, -68, -74, -77, -77, -75, -69, -62, -53, -44, -35, -28, + -21, -15, -11, -8, -5, -4, -4, -4, -6, -8, -10, -13, -15, -17, -19, -19, + -19, -18, -16, -13, -10, -8, -4, -1, 1, 4, 5, 7, 8, 10, 11, 12, + 13, 14, 14, 13, 12, 12, 11, 9, 8, 7, 6, 6, 7, 8, 10, 12, + 15, 18, 21, 25, 29, 34, 39, 45, 51, 57, 61, 67, 73, 77, 82, 84, + 81, 70, 52, 29, 3, -24, -49, -72, -90, -103, -110, -112, -109, -102, -91, -78, + -64, -49, -35, -23, -13, -5, 1, 5, 8, 9, 9, 7, 4, 0, -4, -9, + -12, -15, -18, -18, -18, -17, -14, -12, -9, -6, -3, 0, 3, 6, 8, 10, + 11, 12, 11, 11, 10, 8, 7, 5, 4, 2, 2, 1, 2, 3, 4, 6, + 8, 11, 13, 15, 18, 21, 26, 31, 36, 42, 48, 53, 60, 66, 72, 77, + 82, 87, 91, 91, 86, 73, 54, 28, -2, -32, -61, -86, -105, -119, -126, -126, + -121, -111, -98, -82, -65, -48, -33, -19, -7, 1, 8, 12, 14, 14, 12, 10, + 6, 1, -4, -9, -14, -18, -20, -21, -22, -21, -19, -17, -14, -11, -8, -4, + 0, 3, 7, 10, 12, 13, 14, 14, 13, 12, 11, 10, 9, 8, 7, 5, + 4, 3, 2, 2, 4, 6, 9, 12, 16, 20, 26, 31, 36, 42, 48, 53, + 58, 64, 69, 74, 79, 82, 84, 83, 80, 72, 59, 39, 14, -14, -43, -70, + -92, -109, -119, -123, -120, -113, -102, -88, -73, -56, -40, -25, -12, -2, 5, 10, + 12, 12, 11, 9, 5, 1, -3, -8, -12, -15, -18, -20, -21, -21, -20, -18, + -16, -13, -9, -6, -2, 1, 5, 8, 11, 13, 15, 16, 16, 16, 15, 14, + 12, 10, 7, 5, 4, 3, 3, 5, 6, 8, 9, 12, 15, 19, 23, 27, + 31, 35, 38, 42, 46, 50, 54, 59, 65, 71, 75, 77, 78, 76, 68, 54, + 34, 10, -16, -43, -68, -88, -103, -112, -114, -112, -105, -94, -80, -65, -50, -35, + -22, -10, -2, 5, 9, 11, 10, 9, 6, 2, -3, -7, -12, -15, -18, -20, + -21, -22, -21, -20, -17, -14, -11, -7, -3, 0, 4, 7, 9, 11, 13, 15, + 17, 17, 17, 16, 14, 12, 11, 10, 8, 7, 5, 5, 5, 6, 7, 8, + 10, 11, 14, 17, 20, 24, 28, 32, 37, 43, 49, 57, 63, 70, 77, 82, + 83, 80, 73, 60, 42, 18, -8, -34, -59, -80, -95, -105, -110, -109, -103, -94, + -81, -67, -53, -38, -24, -13, -3, 4, 9, 11, 11, 9, 6, 3, -2, -6, + -10, -14, -17, -19, -20, -20, -20, -19, -17, -15, -12, -8, -5, -1, 2, 6, + 9, 11, 13, 15, 15, 16, 16, 15, 14, 12, 11, 9, 8, 6, 6, 5, + 5, 5, 6, 7, 8, 10, 12, 15, 19, 23, 28, 32, 38, 44, 50, 58, + 66, 74, 82, 87, 90, 89, 83, 69, 48, 21, -9, -41, -69, -93, -111, -121, + -124, -121, -113, -100, -85, -68, -50, -33, -18, -5, 5, 12, 16, 17, 16, 13, + 9, 4, -1, -6, -11, -15, -18, -20, -21, -21, -21, -19, -17, -15, -12, -8, + -4, -1, 3, 6, 9, 12, 14, 15, 15, 14, 13, 12, 11, 10, 9, 9, + 8, 8, 6, 6, 5, 5, 6, 7, 8, 11, 15, 18, 23, 27, 31, 36, + 41, 46, 51, 58, 66, 74, 82, 88, 91, 90, 83, 68, 46, 16, -16, -48, + -77, -101, -118, -127, -128, -124, -114, -101, -84, -66, -47, -30, -14, -1, 9, 16, + 19, 20, 19, 15, 11, 5, -1, -6, -11, -16, -19, -21, -23, -23, -23, -21, + -19, -16, -12, -8, -4, 0, 4, 8, 11, 13, 14, 15, 15, 14, 13, 12, + 11, 10, 9, 8, 7, 7, 7, 7, 7, 8, 8, 9, 11, 12, 14, 16, + 19, 23, 27, 31, 35, 40, 45, 51, 58, 66, 74, 82, 88, 90, 88, 77, + 58, 32, 1, -31, -62, -87, -107, -119, -125, -123, -117, -105, -90, -73, -56, -38, + -22, -8, 2, 10, 15, 17, 17, 15, 11, 7, 2, -4, -9, -14, -17, -20, + -22, -23, -22, -21, -19, -17, -14, -10, -6, -2, 2, 5, 9, 12, 14, 15, + 17, 18, 18, 18, 17, 15, 12, 10, 8, 6, 4, 4, 4, 5, 6, 7, + 8, 10, 13, 16, 19, 22, 25, 28, 32, 35, 40, 45, 52, 59, 67, 75, + 81, 85, 86, 80, 66, 45, 18, -12, -42, -69, -91, -107, -116, -119, -115, -107, + -95, -80, -64, -47, -31, -17, -5, 4, 10, 13, 14, 14, 11, 7, 3, -2, + -7, -12, -15, -18, -20, -21, -21, -20, -18, -16, -14, -11, -7, -4, 0, 4, + 7, 10, 12, 14, 16, 16, 16, 16, 16, 15, 14, 12, 10, 9, 7, 6, + 5, 4, 4, 5, 6, 7, 8, 10, 12, 15, 19, 23, 27, 31, 36, 41, + 47, 55, 64, 73, 81, 87, 90, 86, 75, 56, 30, 1, -30, -58, -82, -100, + -112, -117, -115, -109, -98, -84, -69, -52, -37, -22, -10, 0, 8, 12, 14, 14, + 13, 10, 6, 2, -3, -8, -12, -16, -18, -20, -20, -20, -19, -17, -15, -12, + -9, -5, -1, 2, 6, 9, 12, 14, 16, 17, 17, 17, 16, 14, 13, 11, + 8, 6, 4, 3, 2, 2, 2, 3, 5, 6, 8, 10, 12, 15, 18, 22, + 26, 30, 35, 40, 47, 55, 63, 71, 80, 87, 90, 88, 78, 59, 34, 4, + -27, -57, -82, -101, -113, -118, -117, -110, -99, -85, -69, -53, -37, -22, -9, 2, + 9, 14, 17, 17, 15, 12, 8, 3, -2, -7, -12, -16, -19, -20, -21, -21, + -19, -18, -15, -12, -9, -6, -2, 2, 6, 9, 12, 14, 16, 17, 17, 16, + 14, 12, 10, 8, 6, 5, 4, 3, 3, 2, 3, 4, 6, 7, 9, 11, + 13, 16, 19, 22, 26, 30, 34, 39, 46, 53, 61, 70, 80, 88, 93, 91, + 80, 61, 34, 3, -30, -59, -84, -102, -114, -119, -117, -110, -99, -84, -68, -51, + -35, -20, -7, 3, 11, 15, 17, 18, 16, 13, 9, 4, -2, -7, -11, -15, + -18, -20, -21, -21, -20, -19, -16, -14, -11, -8, -4, 0, 3, 7, 10, 13, + 15, 16, 17, 16, 14, 12, 10, 9, 7, 6, 5, 4, 4, 4, 5, 6, + 7, 8, 9, 11, 13, 15, 18, 21, 24, 27, 31, 35, 41, 48, 55, 64, + 73, 82, 89, 91, 85, 71, 48, 19, -13, -44, -71, -93, -108, -117, -118, -114, + -105, -92, -77, -60, -43, -27, -13, -1, 8, 14, 17, 18, 17, 14, 8, 13, + -1, -1, 0, 2, 4, 6, 9, 11, 13, 14, 13, 12, 11, 8, 5, 2, + -1, -5, -10, -14, -16, -17, -16, -14, -11, -8, -5, -4, -3, -1, -1, -1, + -1, -3, -3, -3, -2, -1, -1, 0, 0, 0, 0, 2, 6, 11, 14, 16, + 19, 22, 25, 32, 36, 34, 25, 11, -5, -20, -31, -35, -36, -34, -29, -23, + -16, -8, -4, -4, -8, -11, -12, -13, -12, -10, -7, -4, -2, -1, 1, 4, + 7, 7, 6, 6, 6, 7, 12, 17, 24, 30, 36, 41, 46, 51, 50, 43, + 25, 2, -25, -48, -61, -62, -57, -48, -35, -23, -12, -5, -3, -5, -9, -12, + -14, -14, -12, -7, -3, 0, 1, 2, 4, 6, 7, 9, 11, 11, 10, 9, + 12, 17, 23, 30, 37, 43, 49, 55, 58, 50, 30, 1, -29, -54, -68, -68, + -60, -49, -35, -22, -10, -2, 0, -3, -9, -16, -20, -21, -19, -14, -8, -2, + 3, 7, 11, 12, 11, 9, 7, 7, 8, 10, 15, 19, 24, 28, 33, 36, + 42, 47, 53, 56, 45, 23, -8, -37, -60, -71, -69, -56, -40, -27, -16, -8, + -5, -6, -11, -17, -21, -22, -20, -16, -9, -2, 5, 8, 10, 11, 10, 9, + 8, 8, 9, 10, 13, 16, 19, 24, 29, 35, 42, 49, 53, 59, 55, 37, + 5, -29, -58, -74, -77, -69, -53, -35, -21, -11, -5, -4, -6, -10, -15, -19, + -19, -16, -10, -5, 1, 5, 8, 11, 13, 14, 12, 10, 8, 6, 7, 10, + 15, 21, 29, 39, 51, 62, 72, 82, 81, 52, 3, -50, -90, -110, -109, -91, + -64, -35, -13, 1, 8, 9, 4, -4, -12, -18, -18, -14, -9, -3, 3, 8, + 11, 11, 10, 7, 4, 2, 2, 4, 8, 13, 18, 26, 36, 48, 60, 72, + 82, 91, 86, 54, -2, -61, -105, -126, -121, -98, -65, -33, -7, 8, 14, 12, + 6, -4, -14, -20, -22, -19, -14, -8, 0, 7, 12, 14, 13, 11, 9, 7, + 4, 2, 4, 9, 16, 26, 36, 48, 58, 69, 79, 84, 80, 59, 14, -43, + -92, -119, -120, -102, -73, -40, -12, 5, 12, 11, 5, -3, -12, -18, -21, -20, + -16, -9, -2, 5, 11, 15, 16, 15, 12, 7, 4, 4, 6, 9, 15, 23, + 31, 38, 46, 54, 65, 75, 78, 68, 34, -16, -68, -103, -114, -105, -80, -50, + -22, -1, 9, 10, 6, -3, -12, -18, -21, -21, -17, -11, -3, 4, 9, 13, + 16, 17, 14, 11, 8, 5, 5, 7, 10, 14, 20, 28, 37, 49, 64, 77, + 83, 73, 42, -8, -59, -95, -110, -103, -81, -53, -24, -3, 9, 11, 6, -2, + -10, -17, -20, -20, -17, -12, -5, 2, 9, 13, 15, 16, 14, 11, 8, 6, + 5, 6, 8, 12, 19, 28, 38, 50, 66, 82, 90, 83, 48, -9, -69, -111, + -124, -113, -85, -50, -18, 5, 16, 16, 9, -1, -11, -18, -21, -21, -17, -12, + -5, 3, 9, 14, 15, 13, 11, 9, 8, 6, 5, 6, 8, 15, 23, 31, + 41, 52, 66, 82, 91, 83, 46, -16, -77, -118, -128, -114, -84, -47, -14, 9, + 19, 19, 10, -1, -11, -19, -23, -23, -19, -12, -4, 4, 11, 14, 15, 13, + 11, 9, 7, 7, 7, 8, 11, 14, 19, 27, 35, 45, 58, 74, 88, 88, + 58, 1, -62, -107, -125, -116, -90, -56, -22, 2, 15, 17, 11, 2, -9, -17, + -22, -22, -20, -14, -6, 2, 9, 14, 17, 18, 17, 12, 8, 4, 4, 6, + 8, 13, 19, 25, 32, 40, 52, 67, 81, 86, 66, 18, -42, -91, -116, -115, + -95, -64, -31, -5, 10, 14, 11, 3, -7, -15, -20, -21, -18, -14, -7, 0, + 7, 12, 16, 17, 16, 14, 10, 7, 5, 4, 6, 8, 12, 19, 27, 36, + 47, 64, 81, 90, 75, 30, -30, -82, -112, -115, -98, -69, -37, -10, 8, 14, + 13, 6, -3, -12, -18, -20, -19, -15, -9, -1, 6, 12, 16, 17, 16, 13, + 8, 4, 2, 2, 5, 8, 12, 18, 26, 35, 47, 63, 80, 90, 78, 34, + -27, -82, -113, -117, -99, -69, -37, -9, 9, 17, 15, 8, -2, -12, -19, -21, + -19, -15, -9, -2, 6, 12, 16, 17, 14, 10, 6, 4, 3, 3, 6, 9, + 13, 19, 26, 34, 46, 61, 80, 93, 80, 34, -30, -84, -114, -117, -99, -68, + -35, -7, 11, 17, 16, 9, -2, -11, -18, -21, -20, -16, -11, -4, 3, 10, + 15, 17, 14, 10, 7, 5, 4, 5, 7, 9, 13, 18, 24, 31, 41, 55, + 73, 89, 85, 48, -12, -71, -108, -118, -104, -77, -43, -13, 8, 16, 17, 16, + 0, -3, -4, -5, -4, 0, -4, -8, -20, -25, 51, 11, -55, 9, 39, 55, + -76, -19, 92, -23, -58, 2, -15, 57, 71, 34, -41, 20, 51, 22, 63, -21, + 63, 74, 32, 36, 99, -14, 27, 102, 66, 90, 79, 77, 58, 66, 65, 114, + 69, 26, 30, 92, 90, 53, 78, 97, 77, 66, 39, -4, 60, 57, 64, 68, + -16, 36, 49, 12, 19, 12, -12, 21, 11, -32, -19, -41, -44, -12, -36, -44, + -45, -51, -55, -70, -69, -73, -85, -102, -86, -99, -92, -105, -108, -103, -100, -107, + -112, -104, -113, -112, -104, -119, -124, -115, -87, -100, -128, -106, -83, -105, -108, -109, + -91, -95, -90, -83, -80, -79, -83, -68, -59, -53, -63, -69, -57, -28, -11, -38, + -43, -23, -10, -6, 3, 1, 6, 14, 21, 23, 34, 40, 42, 48, 57, 61, + 63, 65, 73, 82, 90, 82, 89, 98, 100, 110, 111, 109, 115, 120, 121, 121, + 123, 123, 123, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 121, 121, + 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 113, 104, 103, 113, 110, 94, 80, 88, 96, 89, 81, 70, + 68, 64, 59, 59, 54, 44, 44, 39, 31, 31, 21, 18, 16, 8, 6, 2, + -3, -6, -13, -19, -27, -31, -34, -30, -38, -47, -48, -51, -56, -64, -68, -67, + -68, -76, -73, -79, -85, -94, -89, -90, -94, -92, -99, -100, -107, -107, -104, -107, + -106, -112, -114, -113, -112, -111, -112, -116, -116, -115, -115, -115, -115, -115, -115, -115, + -114, -114, -114, -114, -114, -114, -114, -114, -113, -113, -113, -113, -113, -108, -106, -107, + -111, -110, -105, -108, -107, -102, -100, -103, -103, -100, -100, -97, -97, -100, -99, -97, + -94, -90, -94, -94, -93, -93, -92, -92, -90, -89, -89, -90, -91, -87, -87, -88, + -89, -88, -84, -85, -88, -87, -86, -85, -85, -84, -82, -83, -83, -82, -81, -80, + -79, -79, -79, -78, -75, -74, -75, -73, -74, -71, -69, -67, -69, -66, -64, -66, + -65, -64, -62, -58, -57, -57, -57, -56, -52, -51, -50, -48, -46, -43, -43, -42, + -39, -36, -35, -34, -32, -31, -29, -26, -23, -23, -21, -15, -18, -15, -11, -8, + -6, -7, 0, 2, 0, 2, 7, 15, 14, 15, 16, 19, 23, 27, 29, 30, + 31, 34, 41, 41, 42, 44, 45, 51, 55, 54, 56, 57, 60, 65, 67, 69, + 69, 71, 74, 77, 79, 78, 80, 82, 86, 86, 84, 86, 88, 87, 87, 87, + 87, 87, 86, 86, 86, 86, 86, 85, 85, 85, 85, 85, 84, 84, 84, 84, + 84, 83, 83, 83, 83, 83, 83, 82, 82, 82, 82, 82, 81, 81, 81, 81, + 81, 80, 80, 80, 80, 80, 79, 79, 79, 79, 79, 78, 78, 78, 78, 76, + 75, 72, 69, 67, 65, 64, 63, 59, 55, 54, 52, 50, 48, 45, 42, 38, + 36, 34, 31, 30, 27, 24, 21, 18, 16, 14, 12, 9, 7, 4, 1, -2, + -4, -7, -10, -11, -13, -16, -17, -18, -21, -24, -26, -27, -28, -30, -32, -33, + -35, -36, -38, -39, -41, -42, -43, -45, -45, -46, -47, -48, -49, -50, -51, -50, + -51, -52, -53, -53, -53, -53, -53, -53, -53, -54, -54, -54, -54, -53, -53, -52, + -52, -52, -51, -51, -51, -50, -50, -50, -48, -49, -48, -47, -46, -45, -45, -44, + -43, -42, -41, -41, -40, -39, -38, -37, -36, -35, -34, -33, -31, -30, -29, -28, + -27, -26, -24, -24, -23, -22, -21, -20, -19, -18, -17, -16, -15, -14, -13, -13, + -12, -11, -11, -10, -9, -9, -8, -8, -7, -6, -7, -6, -5, -5, -5, -4, + -4, -3, -3, -3, -3, -3, -2, -2, -2, -2, -2, -2, -2, -2, 0, 0, + 0, 0, -1, 0, 4, 9, 13, 13, 11, 5, -1, -10, -16, -17, -11, -5, + -2, -1, -2, -3, -2, -1, 0, 0, 6, 14, 19, 26, 36, 25, -5, -30, + -36, -29, -16, -4, -7, -13, -12, -7, -2, 1, 6, 7, 6, 11, 24, 36, + 46, 50, 26, -25, -60, -57, -36, -12, -3, -9, -14, -12, -3, 1, 4, 7, + 11, 10, 12, 23, 37, 49, 58, 31, -29, -67, -61, -36, -10, 0, -9, -20, + -19, -8, 3, 11, 11, 7, 8, 15, 24, 32, 41, 53, 45, -7, -60, -68, + -41, -16, -5, -11, -21, -20, -10, 4, 10, 10, 8, 9, 13, 19, 29, 42, + 54, 55, 6, -57, -77, -54, -21, -6, -6, -15, -19, -11, 1, 8, 13, 12, + 8, 7, 15, 29, 50, 73, 80, 5, -90, -109, -65, -13, 8, 4, -13, -18, + -10, 3, 11, 10, 4, 2, 8, 18, 36, 60, 82, 86, 1, -105, -121, -66, + -8, 13, 6, -14, -22, -15, -1, 12, 13, 9, 4, 3, 16, 36, 58, 78, + 81, 15, -91, -121, -74, -13, 12, 5, -11, -21, -16, -2, 11, 16, 12, 4, + 6, 15, 31, 46, 64, 79, 36, -66, -115, -81, -23, 9, 6, -11, -21, -17, + -4, 9, 16, 15, 8, 5, 9, 20, 37, 63, 83, 43, -57, -110, -83, -25, + 8, 7, -10, -20, -17, -5, 9, 15, 14, 8, 5, 8, 18, 37, 65, 91, + 50, -67, -124, -86, -19, 16, 9, -10, -21, -18, -5, 9, 15, 11, 8, 5, + 8, 22, 40, 65, 92, 48, -74, -128, -85, -16, 19, 11, -11, -23, -19, -4, + 10, 15, 11, 8, 7, 11, 19, 35, 57, 88, 60, -58, -125, -92, -24, 15, + 12, -8, -22, -20, -7, 9, 17, 17, 8, 4, 8, 18, 31, 51, 81, 67, + -38, -116, -96, -33, 9, 11, -6, -20, -19, -8, 7, 16, 16, 11, 5, 5, + 12, 26, 47, 80, 76, -26, -111, -99, -39, 7, 13, -3, -18, -19, -9, 5, + 16, 16, 8, 2, 4, 12, 25, 46, 79, 79, -23, -112, -101, -39, 9, 15, + -2, -18, -20, -9, 5, 16, 14, 7, 3, 5, 13, 25, 44, 79, 81, -25, + -113, -100, -37, 10, 16, -1, -18, -20, -11, 3, 15, 15, 7, 4, 6, 13, + 23, 40, 72, 86, -7, -107, -106, -46, 7, 16, 0, 16, 31, 47, 61, 75, + 87, 98, 107, 115, 121, 125, 127, 127, 125, 121, 116, 108, 99, 88, 75, 62, + 47, 32, 16, 0, -16, -31, -47, -61, -75, -87, -98, -108, -116, -122, -126, -128, + -128, -126, -123, -117, -109, -100, -89, -77, -64, -49, -34, -18, -2, 14, 29, 45, + 59, 73, 86, 97, 106, 114, 121, 125, 127, 127, 126, 122, 116, 109, 100, 89, + 77, 63, 49, 34, 18, 2, -14, -30, -45, -60, -73, -86, -97, -107, -115, -121, + -126, -128, -128, -127, -123, -118, -110, -101, -91, -79, -65, -51, -36, -20, -4, 12, + 28, 43, 58, 72, 84, 96, 106, 114, 120, 124, 127, 127, 126, 122, 117, 109, + 100, 90, 78, 64, 50, 35, 19, 3, -13, -29, -44, -59, -73, -85, -97, -107, + -115, -121, -125, -128, -128, -127, -123, -118, -110, -101, -91, -79, -65, -51, -36, -20, + -4, 12, 28, 43, 58, 72, 84, 96, 106, 114, 120, 124, 127, 127, 126, 122, + 117, 109, 100, 90, 78, 64, 50, 35, 19, 3, -13, -29, -44, -59, -73, -85, + -97, -107, -115, -121, -125, -128, -128, -127, -123, -118, -110, -101, -91, -79, -65, -51, + -36, -20, -4, 12, 28, 43, 58, 72, 84, 96, 106, 114, 120, 124, 127, 127, + 126, 122, 117, 109, 100, 90, 78, 64, 50, 35, 19, 3, -13, -29, -44, -59, + -73, -85, -97, -107, -115, -121, -125, -128, -128, -127, -123, -118, -110, -101, -91, -79, + -65, -51, -36, -20, -4, 12, 28, 43, 58, 72, 84, 96, 106, 114, 120, 124, + 127, 127, 126, 122, 117, 109, 100, 90, 78, 64, 50, 35, 19, 3, -13, -29, + -44, -59, -73, -85, -97, -107, -115, -121, -125, -128, -128, -127, -123, -118, -110, -101, + -91, -79, -65, -51, -36, -20, -4, 12, 0, -104, -55, -11, 24, 33, 30, 7, + -15, -31, -30, -25, -23, -20, -9, 10, 31, 59, 91, 111, 115, 92, 51, 7, + -33, -64, -81, -81, -71, -51, -22, 16, 52, 74, 82, 81, 68, 38, 0, -40, + -81, -112, -124, -102, -57, -11, 24, 33, 30, 7, -15, -31, -30, -25, -23, -20, + -9, 10, 31, 59, 91, 111, 115, 92, 51, 7, -33, -64, -81, -81, -71, -51, + -22, 16, 52, 74, 82, 81, 68, 38, 0, -40, -81, -112, -124, -102, -57, -11, + 24, 33, 30, 7, -15, -31, -30, -25, -23, -20, -9, 10, 31, 59, 91, 111, + 115, 92, 51, 7, -33, -64, -81, -81, -71, -51, -22, 16, 52, 74, 82, 81, + 68, 38, 0, -40, -81, -112, -124, -102, -57, -11, 24, 33, 30, 7, -15, -31, + -30, -25, -23, -20, -9, 10, 31, 59, 91, 111, 115, 92, 51, 7, -33, -64, + -81, -81, -71, -51, -22, 16, 52, 74, 82, 81, 68, 38, 0, -40, -81, -112, + -124, -102, -57, -11, 0 +}; + +const EAS_U32 testSampleLengths[] = +{ + 1568, 784, 642, 392, 302, 172 +}; + +const EAS_U32 testSampleOffsets[] = +{ + 0x00000000, 0x00000620, 0x00000930, 0x00000bb2, 0x00000d3a, 0x00000e68 +}; + +/*---------------------------------------------------------------------------- + * S_EAS + *---------------------------------------------------------------------------- +*/ +const S_EAS easTestLib = +{ + 0x01534145, + 0x00105622, + testBanks, + testPrograms, + testRegions, + testArticulations, + testSampleLengths, + testSampleOffsets, + testSamples, + 0, + 0, + 16, + 152, + 97, + 6, + 0 +}; /* end S_EAS */ + +/*---------------------------------------------------------------------------- + * Statistics + * + * Number of banks: 0 + * Number of programs: 16 + * Number of regions: 152 + * Number of articulations: 97 + * Number of samples: 6 + * Size of sample pool: 3861 + *---------------------------------------------------------------------------- +*/ +/* end ..\..\EASLib\WTLibrary\eastestv37.c */ diff --git a/arm-wt-22k/jetcreator_lib_src/darwin-x86/easwt_vst_lib.xcodeproj/project.pbxproj b/arm-wt-22k/jetcreator_lib_src/darwin-x86/easwt_vst_lib.xcodeproj/project.pbxproj new file mode 100644 index 0000000..bd0d6ef --- /dev/null +++ b/arm-wt-22k/jetcreator_lib_src/darwin-x86/easwt_vst_lib.xcodeproj/project.pbxproj @@ -0,0 +1,645 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 44; + objects = { + +/* Begin PBXBuildFile section */ + 9A56AB8F0F7197AE00D115A7 /* wt_44khz.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A56AB8E0F7197AE00D115A7 /* wt_44khz.c */; }; + 9A56ABD00F71998600D115A7 /* eas_fmengine.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A56ABCF0F71998600D115A7 /* eas_fmengine.h */; }; + 9A56ABDB0F719D4600D115A7 /* eas_xmf.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A56ABD70F719D4600D115A7 /* eas_xmf.c */; }; + 9A56ABDC0F719D4600D115A7 /* eas_xmf.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A56ABD80F719D4600D115A7 /* eas_xmf.h */; }; + 9A56ABDD0F719D4600D115A7 /* eas_xmfdata.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A56ABD90F719D4600D115A7 /* eas_xmfdata.c */; }; + 9A56ABDE0F719D4600D115A7 /* eas_xmfdata.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A56ABDA0F719D4600D115A7 /* eas_xmfdata.h */; }; + 9A56AC050F71BCFE00D115A7 /* eas_build.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A56AC040F71BCFE00D115A7 /* eas_build.h */; }; + C55B113D0E2D33B4006357C1 /* eas.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B11290E2D33B4006357C1 /* eas.h */; }; + C55B113E0E2D33B4006357C1 /* eas_audioconst.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B112A0E2D33B4006357C1 /* eas_audioconst.h */; }; + C55B11400E2D33B4006357C1 /* eas_config.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B112C0E2D33B4006357C1 /* eas_config.h */; }; + C55B11410E2D33B4006357C1 /* eas_data.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B112D0E2D33B4006357C1 /* eas_data.h */; }; + C55B11420E2D33B4006357C1 /* eas_host.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B112E0E2D33B4006357C1 /* eas_host.h */; }; + C55B11430E2D33B4006357C1 /* eas_math.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B112F0E2D33B4006357C1 /* eas_math.h */; }; + C55B11440E2D33B4006357C1 /* eas_midi.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B11300E2D33B4006357C1 /* eas_midi.h */; }; + C55B11450E2D33B4006357C1 /* eas_midictrl.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B11310E2D33B4006357C1 /* eas_midictrl.h */; }; + C55B11460E2D33B4006357C1 /* eas_mixer.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B11320E2D33B4006357C1 /* eas_mixer.c */; }; + C55B11470E2D33B4006357C1 /* eas_pan.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B11330E2D33B4006357C1 /* eas_pan.h */; }; + C55B11480E2D33B4006357C1 /* eas_pcm.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B11340E2D33B4006357C1 /* eas_pcm.h */; }; + C55B11490E2D33B4006357C1 /* eas_pcmdata.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B11350E2D33B4006357C1 /* eas_pcmdata.h */; }; + C55B114B0E2D33B4006357C1 /* eas_report.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B11370E2D33B4006357C1 /* eas_report.h */; }; + C55B114C0E2D33B4006357C1 /* eas_sndlib.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B11380E2D33B4006357C1 /* eas_sndlib.h */; }; + C55B114D0E2D33B4006357C1 /* eas_synth.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B11390E2D33B4006357C1 /* eas_synth.h */; }; + C55B114E0E2D33B4006357C1 /* eas_synth_protos.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B113A0E2D33B4006357C1 /* eas_synth_protos.h */; }; + C55B114F0E2D33B4006357C1 /* eas_types.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B113B0E2D33B4006357C1 /* eas_types.h */; }; + C55B11500E2D33B4006357C1 /* eas_vm_protos.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B113C0E2D33B4006357C1 /* eas_vm_protos.h */; }; + C55B115B0E2D3796006357C1 /* eas_effects.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B11530E2D3796006357C1 /* eas_effects.h */; }; + C55B11640E2D37FC006357C1 /* eas_imelodydata.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B11620E2D37FC006357C1 /* eas_imelodydata.h */; }; + C55B11760E2D38CE006357C1 /* eas_mdls.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B116B0E2D38CE006357C1 /* eas_mdls.h */; }; + C55B11770E2D38CE006357C1 /* eas_otadata.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B116C0E2D38CE006357C1 /* eas_otadata.h */; }; + C55B11780E2D38CE006357C1 /* eas_parser.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B116D0E2D38CE006357C1 /* eas_parser.h */; }; + C55B11790E2D38CE006357C1 /* eas_rtttldata.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B116E0E2D38CE006357C1 /* eas_rtttldata.h */; }; + C55B117B0E2D38CE006357C1 /* eas_smf.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B11700E2D38CE006357C1 /* eas_smf.h */; }; + C55B117C0E2D38CE006357C1 /* eas_smfdata.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B11710E2D38CE006357C1 /* eas_smfdata.h */; }; + C55B117D0E2D38CE006357C1 /* eas_tcdata.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B11720E2D38CE006357C1 /* eas_tcdata.h */; }; + C55B117E0E2D38CE006357C1 /* eas_wavefile.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B11730E2D38CE006357C1 /* eas_wavefile.h */; }; + C55B11830E2D38FB006357C1 /* jet.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B11810E2D38FB006357C1 /* jet.h */; }; + C55B11840E2D38FB006357C1 /* jet_data.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B11820E2D38FB006357C1 /* jet_data.h */; }; + C55B11860E2D395F006357C1 /* eas_wtengine.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B11850E2D395F006357C1 /* eas_wtengine.h */; }; + C55B11900E2D39ED006357C1 /* eas_reverb.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B118E0E2D39ED006357C1 /* eas_reverb.h */; }; + C55B11910E2D39ED006357C1 /* eas_reverbdata.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B118F0E2D39ED006357C1 /* eas_reverbdata.h */; }; + C55B11940E2D39FE006357C1 /* eas_chorus.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B11920E2D39FE006357C1 /* eas_chorus.h */; }; + C55B11950E2D39FE006357C1 /* eas_chorusdata.h in Headers */ = {isa = PBXBuildFile; fileRef = C55B11930E2D39FE006357C1 /* eas_chorusdata.h */; }; + C55B11AE0E2D3B1B006357C1 /* eas_data.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B119F0E2D3B1B006357C1 /* eas_data.c */; }; + C55B11AF0E2D3B1B006357C1 /* eas_flog.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B11A00E2D3B1B006357C1 /* eas_flog.c */; }; + C55B11B10E2D3B1B006357C1 /* eas_ima_tables.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B11A20E2D3B1B006357C1 /* eas_ima_tables.c */; }; + C55B11B20E2D3B1B006357C1 /* eas_imaadpcm.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B11A30E2D3B1B006357C1 /* eas_imaadpcm.c */; }; + C55B11B30E2D3B1B006357C1 /* eas_math.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B11A40E2D3B1B006357C1 /* eas_math.c */; }; + C55B11B40E2D3B1B006357C1 /* eas_midi.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B11A50E2D3B1B006357C1 /* eas_midi.c */; }; + C55B11B50E2D3B1B006357C1 /* eas_mididata.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B11A60E2D3B1B006357C1 /* eas_mididata.c */; }; + C55B11B60E2D3B1B006357C1 /* eas_mixbuf.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B11A70E2D3B1B006357C1 /* eas_mixbuf.c */; }; + C55B11B70E2D3B1B006357C1 /* eas_pan.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B11A80E2D3B1B006357C1 /* eas_pan.c */; }; + C55B11B80E2D3B1B006357C1 /* eas_pcm.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B11A90E2D3B1B006357C1 /* eas_pcm.c */; }; + C55B11B90E2D3B1B006357C1 /* eas_pcmdata.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B11AA0E2D3B1B006357C1 /* eas_pcmdata.c */; }; + C55B11BA0E2D3B1B006357C1 /* eas_public.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B11AB0E2D3B1B006357C1 /* eas_public.c */; }; + C55B11BB0E2D3B1B006357C1 /* eas_voicemgt.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B11AC0E2D3B1B006357C1 /* eas_voicemgt.c */; }; + C55B11BD0E2D3B55006357C1 /* jet.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B11BC0E2D3B55006357C1 /* jet.c */; }; + C55B11C10E2D3BFD006357C1 /* eas_chorus.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B11C00E2D3BFD006357C1 /* eas_chorus.c */; }; + C55B11E40E2D3C62006357C1 /* eas_imelody.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B11D00E2D3C62006357C1 /* eas_imelody.c */; }; + C55B11E50E2D3C62006357C1 /* eas_imelodydata.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B11D10E2D3C62006357C1 /* eas_imelodydata.c */; }; + C55B11E60E2D3C62006357C1 /* eas_mdls.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B11D20E2D3C62006357C1 /* eas_mdls.c */; }; + C55B11E70E2D3C62006357C1 /* eas_ota.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B11D30E2D3C62006357C1 /* eas_ota.c */; }; + C55B11E80E2D3C62006357C1 /* eas_otadata.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B11D40E2D3C62006357C1 /* eas_otadata.c */; }; + C55B11E90E2D3C62006357C1 /* eas_rtttl.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B11D50E2D3C62006357C1 /* eas_rtttl.c */; }; + C55B11EA0E2D3C62006357C1 /* eas_rtttldata.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B11D60E2D3C62006357C1 /* eas_rtttldata.c */; }; + C55B11EE0E2D3C62006357C1 /* eas_smf.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B11DA0E2D3C62006357C1 /* eas_smf.c */; }; + C55B11EF0E2D3C62006357C1 /* eas_smfdata.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B11DB0E2D3C62006357C1 /* eas_smfdata.c */; }; + C55B11F00E2D3C62006357C1 /* eas_tcdata.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B11DC0E2D3C62006357C1 /* eas_tcdata.c */; }; + C55B11F10E2D3C62006357C1 /* eas_tonecontrol.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B11DD0E2D3C62006357C1 /* eas_tonecontrol.c */; }; + C55B11F20E2D3C62006357C1 /* eas_wavefile.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B11DE0E2D3C62006357C1 /* eas_wavefile.c */; }; + C55B11F30E2D3C62006357C1 /* eas_wavefiledata.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B11DF0E2D3C62006357C1 /* eas_wavefiledata.c */; }; + C55B11F70E2D3C7B006357C1 /* eas_reverb.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B11F60E2D3C7B006357C1 /* eas_reverb.c */; }; + C55B11FA0E2D3CAC006357C1 /* eastestv37.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B11F80E2D3CAC006357C1 /* eastestv37.c */; }; + C55B12050E2D3D56006357C1 /* eas_dlssynth.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B12020E2D3D56006357C1 /* eas_dlssynth.c */; }; + C55B12060E2D3D56006357C1 /* eas_wtengine.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B12030E2D3D56006357C1 /* eas_wtengine.c */; }; + C55B12070E2D3D56006357C1 /* eas_wtsynth.c in Sources */ = {isa = PBXBuildFile; fileRef = C55B12040E2D3D56006357C1 /* eas_wtsynth.c */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 9A56AB8E0F7197AE00D115A7 /* wt_44khz.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = wt_44khz.c; sourceTree = ""; }; + 9A56ABCF0F71998600D115A7 /* eas_fmengine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_fmengine.h; path = "../../../arm-fm-22k/lib_src/eas_fmengine.h"; sourceTree = SOURCE_ROOT; }; + 9A56ABD70F719D4600D115A7 /* eas_xmf.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_xmf.c; path = ../../lib_src/eas_xmf.c; sourceTree = SOURCE_ROOT; }; + 9A56ABD80F719D4600D115A7 /* eas_xmf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_xmf.h; path = ../../lib_src/eas_xmf.h; sourceTree = SOURCE_ROOT; }; + 9A56ABD90F719D4600D115A7 /* eas_xmfdata.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_xmfdata.c; path = ../../lib_src/eas_xmfdata.c; sourceTree = SOURCE_ROOT; }; + 9A56ABDA0F719D4600D115A7 /* eas_xmfdata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_xmfdata.h; path = ../../lib_src/eas_xmfdata.h; sourceTree = SOURCE_ROOT; }; + 9A56AC040F71BCFE00D115A7 /* eas_build.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_build.h; path = ../../host_src/eas_build.h; sourceTree = SOURCE_ROOT; }; + C55B11290E2D33B4006357C1 /* eas.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas.h; path = ../../host_src/eas.h; sourceTree = SOURCE_ROOT; }; + C55B112A0E2D33B4006357C1 /* eas_audioconst.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_audioconst.h; path = ../../lib_src/eas_audioconst.h; sourceTree = SOURCE_ROOT; }; + C55B112C0E2D33B4006357C1 /* eas_config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_config.h; path = ../../host_src/eas_config.h; sourceTree = SOURCE_ROOT; }; + C55B112D0E2D33B4006357C1 /* eas_data.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_data.h; path = ../../lib_src/eas_data.h; sourceTree = SOURCE_ROOT; }; + C55B112E0E2D33B4006357C1 /* eas_host.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_host.h; path = ../../host_src/eas_host.h; sourceTree = SOURCE_ROOT; }; + C55B112F0E2D33B4006357C1 /* eas_math.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_math.h; path = ../../lib_src/eas_math.h; sourceTree = SOURCE_ROOT; }; + C55B11300E2D33B4006357C1 /* eas_midi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_midi.h; path = ../../lib_src/eas_midi.h; sourceTree = SOURCE_ROOT; }; + C55B11310E2D33B4006357C1 /* eas_midictrl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_midictrl.h; path = ../../lib_src/eas_midictrl.h; sourceTree = SOURCE_ROOT; }; + C55B11320E2D33B4006357C1 /* eas_mixer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_mixer.c; path = ../../lib_src/eas_mixer.c; sourceTree = SOURCE_ROOT; }; + C55B11330E2D33B4006357C1 /* eas_pan.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_pan.h; path = ../../lib_src/eas_pan.h; sourceTree = SOURCE_ROOT; }; + C55B11340E2D33B4006357C1 /* eas_pcm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_pcm.h; path = ../../lib_src/eas_pcm.h; sourceTree = SOURCE_ROOT; }; + C55B11350E2D33B4006357C1 /* eas_pcmdata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_pcmdata.h; path = ../../lib_src/eas_pcmdata.h; sourceTree = SOURCE_ROOT; }; + C55B11370E2D33B4006357C1 /* eas_report.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_report.h; path = ../../host_src/eas_report.h; sourceTree = SOURCE_ROOT; }; + C55B11380E2D33B4006357C1 /* eas_sndlib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_sndlib.h; path = ../../lib_src/eas_sndlib.h; sourceTree = SOURCE_ROOT; }; + C55B11390E2D33B4006357C1 /* eas_synth.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_synth.h; path = ../../lib_src/eas_synth.h; sourceTree = SOURCE_ROOT; }; + C55B113A0E2D33B4006357C1 /* eas_synth_protos.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_synth_protos.h; path = ../../lib_src/eas_synth_protos.h; sourceTree = SOURCE_ROOT; }; + C55B113B0E2D33B4006357C1 /* eas_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_types.h; path = ../../host_src/eas_types.h; sourceTree = SOURCE_ROOT; }; + C55B113C0E2D33B4006357C1 /* eas_vm_protos.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_vm_protos.h; path = ../../lib_src/eas_vm_protos.h; sourceTree = SOURCE_ROOT; }; + C55B11530E2D3796006357C1 /* eas_effects.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_effects.h; path = ../../lib_src/eas_effects.h; sourceTree = SOURCE_ROOT; }; + C55B11620E2D37FC006357C1 /* eas_imelodydata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_imelodydata.h; path = ../../lib_src/eas_imelodydata.h; sourceTree = SOURCE_ROOT; }; + C55B116B0E2D38CE006357C1 /* eas_mdls.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_mdls.h; path = ../../lib_src/eas_mdls.h; sourceTree = SOURCE_ROOT; }; + C55B116C0E2D38CE006357C1 /* eas_otadata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_otadata.h; path = ../../lib_src/eas_otadata.h; sourceTree = SOURCE_ROOT; }; + C55B116D0E2D38CE006357C1 /* eas_parser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_parser.h; path = ../../lib_src/eas_parser.h; sourceTree = SOURCE_ROOT; }; + C55B116E0E2D38CE006357C1 /* eas_rtttldata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_rtttldata.h; path = ../../lib_src/eas_rtttldata.h; sourceTree = SOURCE_ROOT; }; + C55B11700E2D38CE006357C1 /* eas_smf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_smf.h; path = ../../lib_src/eas_smf.h; sourceTree = SOURCE_ROOT; }; + C55B11710E2D38CE006357C1 /* eas_smfdata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_smfdata.h; path = ../../lib_src/eas_smfdata.h; sourceTree = SOURCE_ROOT; }; + C55B11720E2D38CE006357C1 /* eas_tcdata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_tcdata.h; path = ../../lib_src/eas_tcdata.h; sourceTree = SOURCE_ROOT; }; + C55B11730E2D38CE006357C1 /* eas_wavefile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_wavefile.h; path = ../../lib_src/eas_wavefile.h; sourceTree = SOURCE_ROOT; }; + C55B11810E2D38FB006357C1 /* jet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = jet.h; path = ../../host_src/jet.h; sourceTree = SOURCE_ROOT; }; + C55B11820E2D38FB006357C1 /* jet_data.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = jet_data.h; path = ../../lib_src/jet_data.h; sourceTree = SOURCE_ROOT; }; + C55B11850E2D395F006357C1 /* eas_wtengine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_wtengine.h; path = ../../lib_src/eas_wtengine.h; sourceTree = SOURCE_ROOT; }; + C55B118E0E2D39ED006357C1 /* eas_reverb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_reverb.h; path = ../../host_src/eas_reverb.h; sourceTree = SOURCE_ROOT; }; + C55B118F0E2D39ED006357C1 /* eas_reverbdata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_reverbdata.h; path = ../../lib_src/eas_reverbdata.h; sourceTree = SOURCE_ROOT; }; + C55B11920E2D39FE006357C1 /* eas_chorus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_chorus.h; path = ../../host_src/eas_chorus.h; sourceTree = SOURCE_ROOT; }; + C55B11930E2D39FE006357C1 /* eas_chorusdata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = eas_chorusdata.h; path = ../../lib_src/eas_chorusdata.h; sourceTree = SOURCE_ROOT; }; + C55B119F0E2D3B1B006357C1 /* eas_data.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_data.c; path = ../../lib_src/eas_data.c; sourceTree = SOURCE_ROOT; }; + C55B11A00E2D3B1B006357C1 /* eas_flog.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_flog.c; path = ../../lib_src/eas_flog.c; sourceTree = SOURCE_ROOT; }; + C55B11A20E2D3B1B006357C1 /* eas_ima_tables.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_ima_tables.c; path = ../../lib_src/eas_ima_tables.c; sourceTree = SOURCE_ROOT; }; + C55B11A30E2D3B1B006357C1 /* eas_imaadpcm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_imaadpcm.c; path = ../../lib_src/eas_imaadpcm.c; sourceTree = SOURCE_ROOT; }; + C55B11A40E2D3B1B006357C1 /* eas_math.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_math.c; path = ../../lib_src/eas_math.c; sourceTree = SOURCE_ROOT; }; + C55B11A50E2D3B1B006357C1 /* eas_midi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_midi.c; path = ../../lib_src/eas_midi.c; sourceTree = SOURCE_ROOT; }; + C55B11A60E2D3B1B006357C1 /* eas_mididata.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_mididata.c; path = ../../lib_src/eas_mididata.c; sourceTree = SOURCE_ROOT; }; + C55B11A70E2D3B1B006357C1 /* eas_mixbuf.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_mixbuf.c; path = ../../lib_src/eas_mixbuf.c; sourceTree = SOURCE_ROOT; }; + C55B11A80E2D3B1B006357C1 /* eas_pan.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_pan.c; path = ../../lib_src/eas_pan.c; sourceTree = SOURCE_ROOT; }; + C55B11A90E2D3B1B006357C1 /* eas_pcm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_pcm.c; path = ../../lib_src/eas_pcm.c; sourceTree = SOURCE_ROOT; }; + C55B11AA0E2D3B1B006357C1 /* eas_pcmdata.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_pcmdata.c; path = ../../lib_src/eas_pcmdata.c; sourceTree = SOURCE_ROOT; }; + C55B11AB0E2D3B1B006357C1 /* eas_public.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_public.c; path = ../../lib_src/eas_public.c; sourceTree = ""; }; + C55B11AC0E2D3B1B006357C1 /* eas_voicemgt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_voicemgt.c; path = ../../lib_src/eas_voicemgt.c; sourceTree = SOURCE_ROOT; }; + C55B11BC0E2D3B55006357C1 /* jet.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jet.c; path = ../../lib_src/jet.c; sourceTree = SOURCE_ROOT; }; + C55B11C00E2D3BFD006357C1 /* eas_chorus.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_chorus.c; path = ../../lib_src/eas_chorus.c; sourceTree = SOURCE_ROOT; }; + C55B11D00E2D3C62006357C1 /* eas_imelody.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_imelody.c; path = ../../lib_src/eas_imelody.c; sourceTree = SOURCE_ROOT; }; + C55B11D10E2D3C62006357C1 /* eas_imelodydata.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_imelodydata.c; path = ../../lib_src/eas_imelodydata.c; sourceTree = SOURCE_ROOT; }; + C55B11D20E2D3C62006357C1 /* eas_mdls.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_mdls.c; path = ../../lib_src/eas_mdls.c; sourceTree = SOURCE_ROOT; }; + C55B11D30E2D3C62006357C1 /* eas_ota.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_ota.c; path = ../../lib_src/eas_ota.c; sourceTree = SOURCE_ROOT; }; + C55B11D40E2D3C62006357C1 /* eas_otadata.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_otadata.c; path = ../../lib_src/eas_otadata.c; sourceTree = SOURCE_ROOT; }; + C55B11D50E2D3C62006357C1 /* eas_rtttl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_rtttl.c; path = ../../lib_src/eas_rtttl.c; sourceTree = SOURCE_ROOT; }; + C55B11D60E2D3C62006357C1 /* eas_rtttldata.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_rtttldata.c; path = ../../lib_src/eas_rtttldata.c; sourceTree = SOURCE_ROOT; }; + C55B11DA0E2D3C62006357C1 /* eas_smf.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_smf.c; path = ../../lib_src/eas_smf.c; sourceTree = SOURCE_ROOT; }; + C55B11DB0E2D3C62006357C1 /* eas_smfdata.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_smfdata.c; path = ../../lib_src/eas_smfdata.c; sourceTree = SOURCE_ROOT; }; + C55B11DC0E2D3C62006357C1 /* eas_tcdata.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_tcdata.c; path = ../../lib_src/eas_tcdata.c; sourceTree = SOURCE_ROOT; }; + C55B11DD0E2D3C62006357C1 /* eas_tonecontrol.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_tonecontrol.c; path = ../../lib_src/eas_tonecontrol.c; sourceTree = SOURCE_ROOT; }; + C55B11DE0E2D3C62006357C1 /* eas_wavefile.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_wavefile.c; path = ../../lib_src/eas_wavefile.c; sourceTree = SOURCE_ROOT; }; + C55B11DF0E2D3C62006357C1 /* eas_wavefiledata.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_wavefiledata.c; path = ../../lib_src/eas_wavefiledata.c; sourceTree = SOURCE_ROOT; }; + C55B11F60E2D3C7B006357C1 /* eas_reverb.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_reverb.c; path = ../../lib_src/eas_reverb.c; sourceTree = SOURCE_ROOT; }; + C55B11F80E2D3CAC006357C1 /* eastestv37.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = eastestv37.c; sourceTree = ""; }; + C55B12020E2D3D56006357C1 /* eas_dlssynth.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_dlssynth.c; path = ../../lib_src/eas_dlssynth.c; sourceTree = SOURCE_ROOT; }; + C55B12030E2D3D56006357C1 /* eas_wtengine.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_wtengine.c; path = ../../lib_src/eas_wtengine.c; sourceTree = SOURCE_ROOT; }; + C55B12040E2D3D56006357C1 /* eas_wtsynth.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = eas_wtsynth.c; path = ../../lib_src/eas_wtsynth.c; sourceTree = SOURCE_ROOT; }; + D2AAC046055464E500DB518D /* libeaswt_vst_lib.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libeaswt_vst_lib.a; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D289987405E68DCB004EDB86 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 08FB7794FE84155DC02AAC07 /* easwt_vst_lib */ = { + isa = PBXGroup; + children = ( + C55B11280E2D31B6006357C1 /* Header Files */, + 08FB7795FE84155DC02AAC07 /* Source */, + C6A0FF2B0290797F04C91782 /* Documentation */, + 1AB674ADFE9D54B511CA2CBB /* Products */, + ); + name = easwt_vst_lib; + sourceTree = ""; + }; + 08FB7795FE84155DC02AAC07 /* Source */ = { + isa = PBXGroup; + children = ( + C55B119F0E2D3B1B006357C1 /* eas_data.c */, + C55B11A00E2D3B1B006357C1 /* eas_flog.c */, + C55B11A20E2D3B1B006357C1 /* eas_ima_tables.c */, + C55B11A30E2D3B1B006357C1 /* eas_imaadpcm.c */, + C55B11A40E2D3B1B006357C1 /* eas_math.c */, + C55B11A50E2D3B1B006357C1 /* eas_midi.c */, + C55B11A60E2D3B1B006357C1 /* eas_mididata.c */, + C55B11A70E2D3B1B006357C1 /* eas_mixbuf.c */, + C55B11320E2D33B4006357C1 /* eas_mixer.c */, + C55B11A80E2D3B1B006357C1 /* eas_pan.c */, + C55B11A90E2D3B1B006357C1 /* eas_pcm.c */, + C55B11AA0E2D3B1B006357C1 /* eas_pcmdata.c */, + C55B11AB0E2D3B1B006357C1 /* eas_public.c */, + C55B11AC0E2D3B1B006357C1 /* eas_voicemgt.c */, + C55B11BC0E2D3B55006357C1 /* jet.c */, + C55B11960E2D3A56006357C1 /* Chorus */, + C55B119A0E2D3A7F006357C1 /* Parsers */, + C55B11970E2D3A5C006357C1 /* Reverb */, + C55B119B0E2D3A99006357C1 /* SoundLibs */, + C55B119D0E2D3AB6006357C1 /* Wavetable */, + ); + name = Source; + sourceTree = ""; + }; + 1AB674ADFE9D54B511CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + D2AAC046055464E500DB518D /* libeaswt_vst_lib.a */, + ); + name = Products; + sourceTree = ""; + }; + C55B11280E2D31B6006357C1 /* Header Files */ = { + isa = PBXGroup; + children = ( + 9A56AC040F71BCFE00D115A7 /* eas_build.h */, + 9A56ABCF0F71998600D115A7 /* eas_fmengine.h */, + C55B11880E2D39B0006357C1 /* Reverb */, + C55B11870E2D39A9006357C1 /* Chorus */, + C55B11850E2D395F006357C1 /* eas_wtengine.h */, + C55B11810E2D38FB006357C1 /* jet.h */, + C55B11820E2D38FB006357C1 /* jet_data.h */, + C55B116B0E2D38CE006357C1 /* eas_mdls.h */, + C55B116C0E2D38CE006357C1 /* eas_otadata.h */, + C55B116D0E2D38CE006357C1 /* eas_parser.h */, + C55B116E0E2D38CE006357C1 /* eas_rtttldata.h */, + C55B11700E2D38CE006357C1 /* eas_smf.h */, + C55B11710E2D38CE006357C1 /* eas_smfdata.h */, + C55B11720E2D38CE006357C1 /* eas_tcdata.h */, + C55B11730E2D38CE006357C1 /* eas_wavefile.h */, + C55B11620E2D37FC006357C1 /* eas_imelodydata.h */, + C55B11530E2D3796006357C1 /* eas_effects.h */, + C55B11290E2D33B4006357C1 /* eas.h */, + C55B112A0E2D33B4006357C1 /* eas_audioconst.h */, + C55B112C0E2D33B4006357C1 /* eas_config.h */, + C55B112D0E2D33B4006357C1 /* eas_data.h */, + C55B112E0E2D33B4006357C1 /* eas_host.h */, + C55B112F0E2D33B4006357C1 /* eas_math.h */, + C55B11300E2D33B4006357C1 /* eas_midi.h */, + C55B11310E2D33B4006357C1 /* eas_midictrl.h */, + C55B11330E2D33B4006357C1 /* eas_pan.h */, + C55B11340E2D33B4006357C1 /* eas_pcm.h */, + C55B11350E2D33B4006357C1 /* eas_pcmdata.h */, + C55B11370E2D33B4006357C1 /* eas_report.h */, + C55B11380E2D33B4006357C1 /* eas_sndlib.h */, + C55B11390E2D33B4006357C1 /* eas_synth.h */, + C55B113A0E2D33B4006357C1 /* eas_synth_protos.h */, + C55B113B0E2D33B4006357C1 /* eas_types.h */, + C55B113C0E2D33B4006357C1 /* eas_vm_protos.h */, + ); + name = "Header Files"; + sourceTree = ""; + }; + C55B11870E2D39A9006357C1 /* Chorus */ = { + isa = PBXGroup; + children = ( + C55B11920E2D39FE006357C1 /* eas_chorus.h */, + C55B11930E2D39FE006357C1 /* eas_chorusdata.h */, + ); + name = Chorus; + sourceTree = ""; + }; + C55B11880E2D39B0006357C1 /* Reverb */ = { + isa = PBXGroup; + children = ( + C55B118E0E2D39ED006357C1 /* eas_reverb.h */, + C55B118F0E2D39ED006357C1 /* eas_reverbdata.h */, + ); + name = Reverb; + sourceTree = ""; + }; + C55B11960E2D3A56006357C1 /* Chorus */ = { + isa = PBXGroup; + children = ( + C55B11C00E2D3BFD006357C1 /* eas_chorus.c */, + ); + name = Chorus; + sourceTree = ""; + }; + C55B11970E2D3A5C006357C1 /* Reverb */ = { + isa = PBXGroup; + children = ( + C55B11F60E2D3C7B006357C1 /* eas_reverb.c */, + ); + name = Reverb; + sourceTree = ""; + }; + C55B119A0E2D3A7F006357C1 /* Parsers */ = { + isa = PBXGroup; + children = ( + 9A56ABD70F719D4600D115A7 /* eas_xmf.c */, + 9A56ABD80F719D4600D115A7 /* eas_xmf.h */, + 9A56ABD90F719D4600D115A7 /* eas_xmfdata.c */, + 9A56ABDA0F719D4600D115A7 /* eas_xmfdata.h */, + C55B11D00E2D3C62006357C1 /* eas_imelody.c */, + C55B11D10E2D3C62006357C1 /* eas_imelodydata.c */, + C55B11D20E2D3C62006357C1 /* eas_mdls.c */, + C55B11D30E2D3C62006357C1 /* eas_ota.c */, + C55B11D40E2D3C62006357C1 /* eas_otadata.c */, + C55B11D50E2D3C62006357C1 /* eas_rtttl.c */, + C55B11D60E2D3C62006357C1 /* eas_rtttldata.c */, + C55B11DA0E2D3C62006357C1 /* eas_smf.c */, + C55B11DB0E2D3C62006357C1 /* eas_smfdata.c */, + C55B11DC0E2D3C62006357C1 /* eas_tcdata.c */, + C55B11DD0E2D3C62006357C1 /* eas_tonecontrol.c */, + C55B11DE0E2D3C62006357C1 /* eas_wavefile.c */, + C55B11DF0E2D3C62006357C1 /* eas_wavefiledata.c */, + ); + name = Parsers; + sourceTree = ""; + }; + C55B119B0E2D3A99006357C1 /* SoundLibs */ = { + isa = PBXGroup; + children = ( + 9A56AB8E0F7197AE00D115A7 /* wt_44khz.c */, + C55B11F80E2D3CAC006357C1 /* eastestv37.c */, + ); + name = SoundLibs; + sourceTree = ""; + }; + C55B119D0E2D3AB6006357C1 /* Wavetable */ = { + isa = PBXGroup; + children = ( + C55B12020E2D3D56006357C1 /* eas_dlssynth.c */, + C55B12030E2D3D56006357C1 /* eas_wtengine.c */, + C55B12040E2D3D56006357C1 /* eas_wtsynth.c */, + ); + name = Wavetable; + sourceTree = ""; + }; + C6A0FF2B0290797F04C91782 /* Documentation */ = { + isa = PBXGroup; + children = ( + ); + name = Documentation; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D2AAC043055464E500DB518D /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + C55B113D0E2D33B4006357C1 /* eas.h in Headers */, + C55B113E0E2D33B4006357C1 /* eas_audioconst.h in Headers */, + C55B11400E2D33B4006357C1 /* eas_config.h in Headers */, + C55B11410E2D33B4006357C1 /* eas_data.h in Headers */, + C55B11420E2D33B4006357C1 /* eas_host.h in Headers */, + C55B11430E2D33B4006357C1 /* eas_math.h in Headers */, + C55B11440E2D33B4006357C1 /* eas_midi.h in Headers */, + C55B11450E2D33B4006357C1 /* eas_midictrl.h in Headers */, + C55B11470E2D33B4006357C1 /* eas_pan.h in Headers */, + C55B11480E2D33B4006357C1 /* eas_pcm.h in Headers */, + C55B11490E2D33B4006357C1 /* eas_pcmdata.h in Headers */, + C55B114B0E2D33B4006357C1 /* eas_report.h in Headers */, + C55B114C0E2D33B4006357C1 /* eas_sndlib.h in Headers */, + C55B114D0E2D33B4006357C1 /* eas_synth.h in Headers */, + C55B114E0E2D33B4006357C1 /* eas_synth_protos.h in Headers */, + C55B114F0E2D33B4006357C1 /* eas_types.h in Headers */, + C55B11500E2D33B4006357C1 /* eas_vm_protos.h in Headers */, + C55B115B0E2D3796006357C1 /* eas_effects.h in Headers */, + C55B11640E2D37FC006357C1 /* eas_imelodydata.h in Headers */, + C55B11760E2D38CE006357C1 /* eas_mdls.h in Headers */, + C55B11770E2D38CE006357C1 /* eas_otadata.h in Headers */, + C55B11780E2D38CE006357C1 /* eas_parser.h in Headers */, + C55B11790E2D38CE006357C1 /* eas_rtttldata.h in Headers */, + C55B117B0E2D38CE006357C1 /* eas_smf.h in Headers */, + C55B117C0E2D38CE006357C1 /* eas_smfdata.h in Headers */, + C55B117D0E2D38CE006357C1 /* eas_tcdata.h in Headers */, + C55B117E0E2D38CE006357C1 /* eas_wavefile.h in Headers */, + C55B11830E2D38FB006357C1 /* jet.h in Headers */, + C55B11840E2D38FB006357C1 /* jet_data.h in Headers */, + C55B11860E2D395F006357C1 /* eas_wtengine.h in Headers */, + C55B11900E2D39ED006357C1 /* eas_reverb.h in Headers */, + C55B11910E2D39ED006357C1 /* eas_reverbdata.h in Headers */, + C55B11940E2D39FE006357C1 /* eas_chorus.h in Headers */, + C55B11950E2D39FE006357C1 /* eas_chorusdata.h in Headers */, + 9A56ABD00F71998600D115A7 /* eas_fmengine.h in Headers */, + 9A56ABDC0F719D4600D115A7 /* eas_xmf.h in Headers */, + 9A56ABDE0F719D4600D115A7 /* eas_xmfdata.h in Headers */, + 9A56AC050F71BCFE00D115A7 /* eas_build.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D2AAC045055464E500DB518D /* easwt_vst_lib */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "easwt_vst_lib" */; + buildPhases = ( + D2AAC043055464E500DB518D /* Headers */, + D2AAC044055464E500DB518D /* Sources */, + D289987405E68DCB004EDB86 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = easwt_vst_lib; + productName = easwt_vst_lib; + productReference = D2AAC046055464E500DB518D /* libeaswt_vst_lib.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "easwt_vst_lib" */; + compatibilityVersion = "Xcode 3.0"; + hasScannedForEncodings = 1; + mainGroup = 08FB7794FE84155DC02AAC07 /* easwt_vst_lib */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D2AAC045055464E500DB518D /* easwt_vst_lib */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + D2AAC044055464E500DB518D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C55B11460E2D33B4006357C1 /* eas_mixer.c in Sources */, + C55B11AE0E2D3B1B006357C1 /* eas_data.c in Sources */, + C55B11AF0E2D3B1B006357C1 /* eas_flog.c in Sources */, + C55B11B10E2D3B1B006357C1 /* eas_ima_tables.c in Sources */, + C55B11B20E2D3B1B006357C1 /* eas_imaadpcm.c in Sources */, + C55B11B30E2D3B1B006357C1 /* eas_math.c in Sources */, + C55B11B40E2D3B1B006357C1 /* eas_midi.c in Sources */, + C55B11B50E2D3B1B006357C1 /* eas_mididata.c in Sources */, + C55B11B60E2D3B1B006357C1 /* eas_mixbuf.c in Sources */, + C55B11B70E2D3B1B006357C1 /* eas_pan.c in Sources */, + C55B11B80E2D3B1B006357C1 /* eas_pcm.c in Sources */, + C55B11B90E2D3B1B006357C1 /* eas_pcmdata.c in Sources */, + C55B11BA0E2D3B1B006357C1 /* eas_public.c in Sources */, + C55B11BB0E2D3B1B006357C1 /* eas_voicemgt.c in Sources */, + C55B11BD0E2D3B55006357C1 /* jet.c in Sources */, + C55B11C10E2D3BFD006357C1 /* eas_chorus.c in Sources */, + C55B11E40E2D3C62006357C1 /* eas_imelody.c in Sources */, + C55B11E50E2D3C62006357C1 /* eas_imelodydata.c in Sources */, + C55B11E60E2D3C62006357C1 /* eas_mdls.c in Sources */, + C55B11E70E2D3C62006357C1 /* eas_ota.c in Sources */, + C55B11E80E2D3C62006357C1 /* eas_otadata.c in Sources */, + C55B11E90E2D3C62006357C1 /* eas_rtttl.c in Sources */, + C55B11EA0E2D3C62006357C1 /* eas_rtttldata.c in Sources */, + C55B11EE0E2D3C62006357C1 /* eas_smf.c in Sources */, + C55B11EF0E2D3C62006357C1 /* eas_smfdata.c in Sources */, + C55B11F00E2D3C62006357C1 /* eas_tcdata.c in Sources */, + C55B11F10E2D3C62006357C1 /* eas_tonecontrol.c in Sources */, + C55B11F20E2D3C62006357C1 /* eas_wavefile.c in Sources */, + C55B11F30E2D3C62006357C1 /* eas_wavefiledata.c in Sources */, + C55B11F70E2D3C7B006357C1 /* eas_reverb.c in Sources */, + C55B11FA0E2D3CAC006357C1 /* eastestv37.c in Sources */, + C55B12050E2D3D56006357C1 /* eas_dlssynth.c in Sources */, + C55B12060E2D3D56006357C1 /* eas_wtengine.c in Sources */, + C55B12070E2D3D56006357C1 /* eas_wtsynth.c in Sources */, + 9A56AB8F0F7197AE00D115A7 /* wt_44khz.c in Sources */, + 9A56ABDB0F719D4600D115A7 /* eas_xmf.c in Sources */, + 9A56ABDD0F719D4600D115A7 /* eas_xmfdata.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 1DEB91EC08733DB70010E9CD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG_JET=1", + "_DEBUG_SMAF=1", + "_DEBUG_CMF=1", + "JET_INTERFACE=1", + "MAX_SMF_STREAMS=32", + "NUM_OUTPUT_CHANNELS=2", + "_SAMPLE_RATE_44100=1", + "_8_BIT_SAMPLES=1", + "_FILTER_ENABLED=1", + "_NO_DEBUG_PREPROCESSOR=1", + "_CORE_CYCLES_PER_MEMORY_CYCLE=1", + "_IMA_DECODER=1", + "_XMF_PARSER=1", + "_DLS_PARSER=1", + "MAX_DLS_MEMORY=16777216", + "EAS_WT_SYNTH=1", + "MAX_SYNTH_VOICES=64", + "X_ENHANCER_ENABLED=1", + "_REVERB_ENABLED=1", + "_CHORUS_ENABLED=1", + "DLS_SYNTHESIZER=1", + "EXTERNAL_AUDIO=1", + "TEST_HARNESS=1", + "MMAPI_SUPPORT=1", + "X_MAXIMIZER_ENABLED=1", + "X_COMPRESSOR_ENABLED=1", + "X_STATS=1", + "X_DEBUG_DLS=1", + "X_OPTIMIZED_MONO=1", + "X_CHECKED_BUILD=1", + "_NO_ALIGN=1", + "_C_REFERENCE=1", + "XMAXIMIZER_USE_FLOATING_POINT=1", + ); + HEADER_SEARCH_PATHS = ( + "${TARGET_BUILD_DIR}/**", + "../../Common/**", + "../../Parsers/**", + "../../Effects/**", + "../../WTSynth/**", + "../../FMSynth/**", + "../../SplitArch/**", + "../../Jet/**", + ); + INSTALL_PATH = /usr/local/lib; + MACOSX_DEPLOYMENT_TARGET = 10.4; + PRODUCT_NAME = easwt_vst_lib; + ZERO_LINK = YES; + }; + name = Debug; + }; + 1DEB91ED08733DB70010E9CD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = i386; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_AUTO_VECTORIZATION = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "JET_INTERFACE=1", + "MAX_SMF_STREAMS=32", + "NUM_OUTPUT_CHANNELS=2", + "_SAMPLE_RATE_44100=1", + "_8_BIT_SAMPLES=1", + "_FILTER_ENABLED=1", + "_NO_DEBUG_PREPROCESSOR=1", + "_CORE_CYCLES_PER_MEMORY_CYCLE=1", + "_IMA_DECODER=1", + "_XMF_PARSER=1", + "_DLS_PARSER=1", + "MAX_DLS_MEMORY=16777216", + "EAS_WT_SYNTH=1", + "MAX_SYNTH_VOICES=64", + "X_ENHANCER_ENABLED=1", + "_REVERB_ENABLED=1", + "_CHORUS_ENABLED=1", + "DLS_SYNTHESIZER=1", + "EXTERNAL_AUDIO=1", + "TEST_HARNESS=1", + "MMAPI_SUPPORT=1", + "X_MAXIMIZER_ENABLED=1", + "X_COMPRESSOR_ENABLED=1", + "X_STATS=1", + "X_DEBUG_DLS=1", + "X_OPTIMIZED_MONO=1", + "X_CHECKED_BUILD=1", + "_NO_ALIGN=1", + "_C_REFERENCE=1", + "XMAXIMIZER_USE_FLOATING_POINT=1", + ); + GCC_UNROLL_LOOPS = YES; + HEADER_SEARCH_PATHS = ( + "${TARGET_BUILD_DIR}/**", + "../../Common/**", + "../../Parsers/**", + "../../Effects/**", + "../../WTSynth/**", + "../../FMSynth/**", + "../../SplitArch/**", + "../../Jet/**", + ); + INSTALL_PATH = /usr/local/lib; + MACOSX_DEPLOYMENT_TARGET = 10.4; + PRODUCT_NAME = easwt_vst_lib; + }; + name = Release; + }; + 1DEB91F008733DB70010E9CD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PREBINDING = NO; + SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk"; + }; + name = Debug; + }; + 1DEB91F108733DB70010E9CD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = i386; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PREBINDING = NO; + PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; + SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "easwt_vst_lib" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1DEB91EC08733DB70010E9CD /* Debug */, + 1DEB91ED08733DB70010E9CD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "easwt_vst_lib" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1DEB91F008733DB70010E9CD /* Debug */, + 1DEB91F108733DB70010E9CD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/arm-wt-22k/jetcreator_lib_src/darwin-x86/wt_44khz.c b/arm-wt-22k/jetcreator_lib_src/darwin-x86/wt_44khz.c new file mode 100644 index 0000000..688c715 --- /dev/null +++ b/arm-wt-22k/jetcreator_lib_src/darwin-x86/wt_44khz.c @@ -0,0 +1,14723 @@ +/*---------------------------------------------------------------------------- + * + * Filename: wt_44khz.c + * Purpose: Wavetable sound libary + * + * Copyright (C) 2008 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. +*/ + +#include "eas_sndlib.h" + +/*---------------------------------------------------------------------------- + * Articulations + *---------------------------------------------------------------------------- +*/ +const S_ARTICULATION eas_articulations[] = +{ + { /* articulation 0 */ + { 32767, 31730, 0, 31730 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 1 */ + { 32767, 29669, 0, 29669 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 2 */ + { 32767, 31605, 0, 31701 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 3 */ + { 32767, 29434, 0, 29434 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 4 */ + { 32767, 0, 32767, 32742 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 5 */ + { 32767, 26439, 0, 26439 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 6 */ + { 32767, 32322, 0, 32350 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 7 */ + { 32767, 32715, 32767, 32715 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 8 */ + { 32767, 0, 32767, 0 }, + { 32767, 951, 0, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 9 */ + { 32767, 32558, 0, 32558 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 10 */ + { 32767, 0, 32767, 23749 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, -1 + }, + { /* articulation 11 */ + { 32767, 32245, 0, 32245 }, + { 32767, 380, 0, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, -44 + }, + { /* articulation 12 */ + { 32767, 27897, 0, 27897 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 56 + }, + { /* articulation 13 */ + { 32767, 32245, 0, 32245 }, + { 32767, 380, 0, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, -31 + }, + { /* articulation 14 */ + { 4755, 26439, 0, 26439 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 56 + }, + { /* articulation 15 */ + { 32767, 32187, 0, 32187 }, + { 32767, 380, 0, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, -6 + }, + { /* articulation 16 */ + { 32767, 32444, 0, 32480 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 56 + }, + { /* articulation 17 */ + { 32767, 32153, 0, 32153 }, + { 32767, 380, 0, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 6 + }, + { /* articulation 18 */ + { 32767, 32072, 0, 32072 }, + { 32767, 476, 0, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 31 + }, + { /* articulation 19 */ + { 32767, 32363, 0, 32363 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 25 + }, + { /* articulation 20 */ + { 32767, 31901, 0, 31901 }, + { 32767, 476, 0, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 63 + }, + { /* articulation 21 */ + { 32767, 32528, 0, 32518 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, -37 + }, + { /* articulation 22 */ + { 9511, 32322, 0, 32337 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, -37 + }, + { /* articulation 23 */ + { 32767, 32376, 0, 32398 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, -37 + }, + { /* articulation 24 */ + { 32767, 0, 32767, 32715 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 12 + }, + { /* articulation 25 */ + { 32767, 32052, 0, 32052 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, -25 + }, + { /* articulation 26 */ + { 32767, 0, 32767, 32715 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 25 + }, + { /* articulation 27 */ + { 32767, 32289, 0, 32271 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, -25 + }, + { /* articulation 28 */ + { 32767, 31730, 0, 31730 }, + { 32767, 48, 0, 0 }, + 0, 0, 476, 240, 0, 0, 0, 0, -56 + }, + { /* articulation 29 */ + { 32767, 32498, 0, 32492 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, -37 + }, + { /* articulation 30 */ + { 32767, 29434, 0, 29434 }, + { 32767, 1902, 0, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 50 + }, + { /* articulation 31 */ + { 32767, 27897, 0, 27897 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, -50 + }, + { /* articulation 32 */ + { 32767, 31056, 0, 31056 }, + { 32767, 1902, 0, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, -50 + }, + { /* articulation 33 */ + { 32767, 31479, 0, 31476 }, + { 32767, 1902, 0, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, -44 + }, + { /* articulation 34 */ + { 32767, 32663, 0, 32663 }, + { 32767, 127, 0, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 25 + }, + { /* articulation 35 */ + { 32767, 0, 32767, 32715 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, -63 + }, + { /* articulation 36 */ + { 1902, 27897, 0, 27897 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, -63 + }, + { /* articulation 37 */ + { 32767, 27897, 0, 27897 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, -59 + }, + { /* articulation 38 */ + { 32767, 31730, 0, 31730 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 50 + }, + { /* articulation 39 */ + { 32767, 30725, 0, 30725 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 44 + }, + { /* articulation 40 */ + { 951, 31730, 0, 31730 }, + { 32767, 190, 0, 0 }, + 0, 0, 476, -100, 0, 0, 0, 0, 44 + }, + { /* articulation 41 */ + { 32767, 17213, 0, 17213 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 25 + }, + { /* articulation 42 */ + { 32767, 31295, 0, 31295 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 63 + }, + { /* articulation 43 */ + { 32767, 31479, 0, 31476 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 63 + }, + { /* articulation 44 */ + { 9511, 25581, 0, 25581 }, + { 476, 32767, 32767, 0 }, + 0, 0, 476, 100, 0, 0, 0, 0, -25 + }, + { /* articulation 45 */ + { 1902, 23749, 0, 23749 }, + { 476, 32767, 32767, 0 }, + 0, 0, 476, 500, 0, 0, 0, 0, -25 + }, + { /* articulation 46 */ + { 32767, 23749, 0, 23749 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, -56 + }, + { /* articulation 47 */ + { 32767, 31730, 0, 31730 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, -56 + }, + { /* articulation 48 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 49 */ + { 32767, 31964, 0, 31964 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 50 */ + { 9511, 32363, 0, 32418 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 51 */ + { 32767, 31180, 0, 31180 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 52 */ + { 32767, 32251, 0, 32052 }, + { 32767, 147, 0, 0 }, + 0, 0, 476, 0, 10000, 7121, 0, 0, 0 + }, + { /* articulation 53 */ + { 32767, 0, 32767, 32072 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 778, 0, -2300, 11920, 0, 0, 0 + }, + { /* articulation 54 */ + { 587, 0, 32767, 32376 }, + { 32767, 63, 0, 0 }, + 0, 0, 778, 0, 2000, 10721, 0, 8, 15 + }, + { /* articulation 55 */ + { 587, 0, 32767, 32376 }, + { 476, 63, 0, 0 }, + 0, 0, 778, 0, 2000, 9023, 0, 5, 15 + }, + { /* articulation 56 */ + { 3804, 0, 32767, 31477 }, + { 32767, 34, 5898, 0 }, + 0, 0, 778, 0, 6000, 9080, 0, 0, -2 + }, + { /* articulation 57 */ + { 32767, 0, 32767, 31005 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 778, 0, 0, 0, 0, 0, 1 + }, + { /* articulation 58 */ + { 2570, 0, 32767, 31455 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 778, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 59 */ + { 32767, 32663, 0, 29434 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 60 */ + { 32767, 32558, 0, 29434 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 61 */ + { 32767, 32418, 0, 32418 }, + { 32767, 48, 0, 0 }, + 0, 69, 495, 0, 2400, 9521, 0, 0, 0 + }, + { /* articulation 62 */ + { 32767, 31476, 0, 31476 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 11738, 0, 16, 0 + }, + { /* articulation 63 */ + { 32767, 32558, 0, 31391 }, + { 32767, 317, 0, 0 }, + 0, 69, 476, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 64 */ + { 32767, 32245, 0, 32115 }, + { 32767, 317, 0, 0 }, + 0, 69, 476, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 65 */ + { 32767, 32593, 0, 28809 }, + { 32767, 48, 0, 0 }, + 0, 69, 495, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 66 */ + { 32767, 32408, 0, 32363 }, + { 32767, 317, 0, 0 }, + 0, 69, 476, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 67 */ + { 32767, 32350, 0, 32350 }, + { 32767, 317, 0, 0 }, + 0, 69, 476, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 68 */ + { 4755, 32715, 18820, 27897 }, + { 951, 29, 13107, 0 }, + 0, 0, 495, 0, 6000, 5535, 0, 4, 0 + }, + { /* articulation 69 */ + { 32767, 32257, 0, 32245 }, + { 32767, 951, 0, 0 }, + 0, 103, 495, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 70 */ + { 63, 32727, 3811, 32558 }, + { 48, 19, 32767, 0 }, + 0, 0, 495, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 71 */ + { 2378, 32715, 3566, 30725 }, + { 1902, 32767, 32767, 0 }, + 0, 0, 495, 100, 0, 11919, 0, 0, 0 + }, + { /* articulation 72 */ + { 32767, 32349, 0, 32349 }, + { 32767, 168, 0, 0 }, + 0, 34, 495, 0, 7000, 9023, 0, 0, 0 + }, + { /* articulation 73 */ + { 32767, 32072, 0, 32072 }, + { 32767, 168, 0, 0 }, + 0, 3, 476, 0, 7000, 9023, 0, 0, 0 + }, + { /* articulation 74 */ + { 32767, 32698, 6208, 32349 }, + { 190, 48, 0, 0 }, + 0, 0, 495, 0, 3840, 8302, 0, 8, 0 + }, + { /* articulation 75 */ + { 32767, 32418, 0, 32468 }, + { 32767, 190, 0, 0 }, + 0, 0, 495, 0, 5000, 8321, 0, 0, 0 + }, + { /* articulation 76 */ + { 32767, 32349, 0, 32349 }, + { 32767, 190, 0, 0 }, + 0, 0, 476, 0, 5000, 7934, 0, 0, 0 + }, + { /* articulation 77 */ + { 32767, 32441, 0, 31709 }, + { 32767, 32, 0, 0 }, + 0, 34, 495, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 78 */ + { 32767, 32505, 0, 27897 }, + { 32767, 951, 0, 0 }, + 0, 345, 495, 0, 1000, 11107, 0, 0, 0 + }, + { /* articulation 79 */ + { 32767, 32715, 6208, 32349 }, + { 48, 48, 0, 0 }, + 0, 69, 811, 0, 3560, 8834, 1, 8, 0 + }, + { /* articulation 80 */ + { 32767, 32564, 0, 29434 }, + { 32767, 95, 0, 0 }, + 0, 34, 495, 0, 6000, 9907, 0, 0, 0 + }, + { /* articulation 81 */ + { 32767, 32505, 0, 27897 }, + { 32767, 32, 0, 0 }, + 0, 34, 495, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 82 */ + { 32767, 32245, 18820, 17213 }, + { 32767, 32767, 32767, 0 }, + 0, 34, 495, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 83 */ + { 32767, 32742, 128, 32466 }, + { 32767, 63, 0, 0 }, + 0, 0, 495, 0, 0, 11920, 0, 8, 0 + }, + { /* articulation 84 */ + { 32767, 32418, 0, 32418 }, + { 32767, 33, 0, 0 }, + 3, 0, 286, 0, 5000, 5535, 0, 0, 0 + }, + { /* articulation 85 */ + { 1902, 32715, 18820, 27897 }, + { 32767, 1012, 0, 0 }, + 10, 69, 504, -30, 0, 0, 0, 0, 0 + }, + { /* articulation 86 */ + { 9511, 32715, 18820, 27897 }, + { 380, 48, 0, 0 }, + 0, 69, 495, 0, 4473, 7131, 0, 8, 0 + }, + { /* articulation 87 */ + { 951, 32698, 6208, 32468 }, + { 317, 19, 16384, 0 }, + 0, 0, 495, 0, 2987, 7877, 0, 12, 0 + }, + { /* articulation 88 */ + { 32767, 32680, 0, 32349 }, + { 32767, 48, 0, 0 }, + 0, 0, 581, 0, 4053, 7930, 2, 12, 0 + }, + { /* articulation 89 */ + { 190, 32726, 6208, 32349 }, + { 32767, 56, 0, 0 }, + 0, 0, 495, 0, 0, 8887, 0, 0, 0 + }, + { /* articulation 90 */ + { 9511, 32715, 18820, 27897 }, + { 634, 48, 0, 0 }, + 0, 69, 495, 0, 5113, 7981, 0, 4, 0 + }, + { /* articulation 91 */ + { 951, 32715, 6208, 31730 }, + { 951, 63, 0, 0 }, + 0, 69, 495, 0, 3500, 7877, 0, 5, 0 + }, + { /* articulation 92 */ + { 951, 32715, 6208, 31730 }, + { 634, 48, 0, 0 }, + 0, 69, 476, 0, 4773, 8355, 0, 5, 0 + }, + { /* articulation 93 */ + { 238, 32715, 10809, 32349 }, + { 32767, 32767, 32767, 0 }, + 0, 69, 495, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 94 */ + { 1902, 32715, 18820, 31476 }, + { 32767, 32767, 32767, 0 }, + 0, 69, 495, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 95 */ + { 3804, 32715, 18820, 23749 }, + { 1268, 130, 0, 0 }, + 0, 69, 495, 0, 1200, 11690, 0, 4, 0 + }, + { /* articulation 96 */ + { 19021, 32618, 15076, 31476 }, + { 32767, 32767, 32767, 0 }, + 0, 72, 1091, 0, 0, 11919, 1, 0, 0 + }, + { /* articulation 97 */ + { 32767, 0, 32767, 32715 }, + { 190, 32767, 32767, 0 }, + 0, 0, 495, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 98 */ + { 32767, 32072, 0, 32072 }, + { 32767, 317, 0, 0 }, + 0, 0, 495, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 99 */ + { 32767, 32663, 0, 27897 }, + { 634, 95, 13107, 0 }, + 0, 69, 495, 0, 3200, 8321, 0, 0, 0 + }, + { /* articulation 100 */ + { 32767, 0, 32767, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 495, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 101 */ + { 32767, 32418, 0, 27897 }, + { 32767, 543, 0, 0 }, + 0, 69, 495, 0, 8187, 5535, 0, 5, 0 + }, + { /* articulation 102 */ + { 19021, 32663, 0, 31056 }, + { 32767, 95, 7667, 0 }, + 5, 0, 495, 0, 6053, 5535, 0, 5, 0 + }, + { /* articulation 103 */ + { 32767, 32715, 18820, 27897 }, + { 951, 48, 0, 0 }, + 0, 0, 495, 0, 2700, 9852, 0, 0, 0 + }, + { /* articulation 104 */ + { 32767, 32715, 18820, 30234 }, + { 951, 48, 0, 0 }, + 0, 0, 495, 0, 2700, 9852, 0, 0, 0 + }, + { /* articulation 105 */ + { 32767, 32715, 18820, 27897 }, + { 32767, 634, 0, 0 }, + 0, 103, 476, 0, 2500, 10490, 1, 8, 0 + }, + { /* articulation 106 */ + { 32767, 32715, 23493, 27897 }, + { 32767, 190, 0, 0 }, + 0, 69, 494, 0, 4000, 10223, 1, 4, 0 + }, + { /* articulation 107 */ + { 32767, 32715, 18820, 30234 }, + { 32767, 63, 7667, 0 }, + 0, 0, 495, 0, 1813, 9154, 0, 0, 0 + }, + { /* articulation 108 */ + { 19021, 32245, 0, 32245 }, + { 32767, 190, 0, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 109 */ + { 32767, 31964, 0, 31605 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 11690, 0, 0, 0 + }, + { /* articulation 110 */ + { 32767, 31730, 0, 31730 }, + { 32767, 190, 0, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 111 */ + { 32767, 32558, 18820, 30234 }, + { 32767, 48, 0, 0 }, + 12, 69, 476, 0, 3000, 10223, 0, 0, 0 + }, + { /* articulation 112 */ + { 32767, 32558, 18820, 30234 }, + { 32767, 32, 0, 0 }, + 12, 69, 476, 0, 1900, 10031, 0, 0, 0 + }, + { /* articulation 113 */ + { 32767, 32715, 18820, 29434 }, + { 32767, 32, 0, 0 }, + 12, 69, 494, 0, 1000, 11107, 0, 0, 0 + }, + { /* articulation 114 */ + { 32767, 32715, 18820, 29434 }, + { 32767, 32, 0, 0 }, + 12, 69, 494, 0, 2000, 11107, 0, 0, 0 + }, + { /* articulation 115 */ + { 32767, 32636, 0, 29434 }, + { 32767, 95, 0, 0 }, + 0, 34, 495, 0, 4000, 8321, 0, 0, 0 + }, + { /* articulation 116 */ + { 32767, 32297, 19893, 17213 }, + { 32767, 238, 0, 0 }, + 0, 69, 726, 0, 0, 11919, 0, 0, 0 + }, + { /* articulation 117 */ + { 9511, 32418, 23493, 17213 }, + { 32767, 32767, 32767, 0 }, + 0, 69, 678, 0, 0, 11877, 1, 0, 0 + }, + { /* articulation 118 */ + { 32767, 32618, 0, 27897 }, + { 32767, 95, 0, 0 }, + 0, 69, 495, 0, 3500, 9023, 0, 0, 0 + }, + { /* articulation 119 */ + { 32767, 23749, 23493, 0 }, + { 32767, 32767, 32767, 0 }, + 0, 34, 761, 0, 0, 10925, 1, 0, 0 + }, + { /* articulation 120 */ + { 32767, 32636, 0, 29434 }, + { 32767, 95, 0, 0 }, + 0, 103, 495, 0, 3200, 8721, 0, 4, 0 + }, + { /* articulation 121 */ + { 1902, 32715, 18820, 27897 }, + { 32767, 32767, 32767, 0 }, + 0, 69, 495, 0, 0, 0, 1, 0, 0 + }, + { /* articulation 122 */ + { 4755, 32715, 18820, 28809 }, + { 32767, 32767, 32767, 0 }, + 0, 69, 495, 0, 0, 11877, 0, 8, 0 + }, + { /* articulation 123 */ + { 32767, 32715, 18820, 27897 }, + { 32767, 16, 0, 0 }, + 0, 34, 495, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 124 */ + { 32767, 32663, 0, 27897 }, + { 32767, 190, 0, 0 }, + 0, 69, 495, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 125 */ + { 32767, 32715, 18820, 27897 }, + { 32767, 12, 0, 0 }, + 0, 34, 495, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 126 */ + { 32767, 31730, 0, 31730 }, + { 32767, 380, 0, 0 }, + 0, 0, 495, 0, 3000, 10223, 0, 8, 0 + }, + { /* articulation 127 */ + { 63, 0, 32767, 32558 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 761, 0, 0, 11423, 4, 0, 0 + }, + { /* articulation 128 */ + { 476, 32595, 0, 32577 }, + { 32767, 10, 0, 0 }, + 0, 0, 495, 0, 0, 11423, 0, 0, 0 + }, + { /* articulation 129 */ + { 196, 0, 0, 31964 }, + { 95, 32767, 32767, 0 }, + 0, 0, 495, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 130 */ + { 32767, 31730, 0, 31730 }, + { 32767, 380, 0, 0 }, + 0, 0, 495, 1200, 0, 0, 0, 0, 0 + }, + { /* articulation 131 */ + { 32767, 32245, 0, 32349 }, + { 32767, 190, 0, 0 }, + 0, 0, 495, 50, 0, 0, 0, 0, 0 + }, + { /* articulation 132 */ + { 32767, 32418, 0, 32418 }, + { 32767, 9511, 0, 0 }, + 0, 0, 495, 0, 4700, 7769, 0, 0, 0 + }, + { /* articulation 133 */ + { 32767, 31391, 0, 31391 }, + { 32767, 19021, 0, 0 }, + 0, 0, 495, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 134 */ + { 32767, 32663, 32767, 32663 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 476, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 135 */ + { 32767, 32715, 18820, 23749 }, + { 32767, 95, 0, 0 }, + 10, 68, 476, 0, 2000, 10696, 0, 0, 0 + }, + { /* articulation 136 */ + { 32767, 32715, 10809, 23749 }, + { 32767, 95, 0, 0 }, + 12, 69, 491, 0, 0, 10910, 0, 0, 0 + }, + { /* articulation 137 */ + { 32767, 32715, 18820, 23749 }, + { 32767, 95, 0, 0 }, + 10, 69, 476, 0, 1200, 10218, 0, 0, 0 + }, + { /* articulation 138 */ + { 19021, 32715, 18820, 23749 }, + { 32767, 95, 0, 0 }, + 10, 69, 476, 0, 1100, 9525, 0, 0, 0 + }, + { /* articulation 139 */ + { 9511, 32663, 18820, 27897 }, + { 32767, 10, 0, 0 }, + 10, 69, 494, 0, 2000, 10962, 0, 0, 0 + }, + { /* articulation 140 */ + { 32767, 32558, 18820, 27897 }, + { 9511, 317, 0, 0 }, + 10, 63, 504, 0, 1200, 10090, 0, 0, 0 + }, + { /* articulation 141 */ + { 1268, 0, 32767, 30234 }, + { 951, 190, 0, 0 }, + 7, 69, 494, 0, 1620, 8933, 0, 0, 0 + }, + { /* articulation 142 */ + { 32767, 32558, 10809, 27897 }, + { 19021, 190, 0, 0 }, + 7, 69, 494, 0, 2200, 8994, 0, 0, 0 + }, + { /* articulation 143 */ + { 32767, 32715, 15076, 27897 }, + { 32767, 951, 0, 0 }, + 10, 69, 491, 0, 2500, 9525, 0, 0, 0 + }, + { /* articulation 144 */ + { 32767, 32715, 15076, 27897 }, + { 32767, 95, 0, 0 }, + 10, 69, 476, 0, 1500, 11423, 0, 0, 0 + }, + { /* articulation 145 */ + { 32767, 32715, 18820, 27897 }, + { 32767, 951, 0, 0 }, + 9, 69, 491, 0, 1500, 9521, 0, 0, 0 + }, + { /* articulation 146 */ + { 1902, 0, 32767, 30725 }, + { 32767, 32767, 32767, 0 }, + 0, 0, 761, 0, 0, 9521, 0, 0, 0 + }, + { /* articulation 147 */ + { 32767, 32663, 0, 27897 }, + { 32767, 9511, 0, 0 }, + 0, 34, 495, 0, 5000, 10223, 0, 0, 0 + }, + { /* articulation 148 */ + { 32767, 32715, 18820, 27897 }, + { 32767, 32, 0, 0 }, + 10, 69, 476, 0, 1500, 9907, 0, 0, 0 + }, + { /* articulation 149 */ + { 32767, 32733, 11682, 27897 }, + { 32767, 951, 0, 0 }, + 0, 69, 476, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 150 */ + { 32767, 32418, 0, 32418 }, + { 32767, 190, 0, 0 }, + 0, 34, 495, 0, 3440, 9260, 0, 0, 0 + }, + { /* articulation 151 */ + { 32767, 31476, 0, 31730 }, + { 32767, 951, 0, 0 }, + 0, 34, 495, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 152 */ + { 32767, 32245, 0, 31730 }, + { 32767, 190, 0, 0 }, + 0, 34, 495, 0, 4000, 7823, 0, 0, 0 + }, + { /* articulation 153 */ + { 32767, 32663, 3566, 27897 }, + { 391, 32767, 32767, 0 }, + 100, 0, 761, 500, 0, 11877, 0, 0, 0 + }, + { /* articulation 154 */ + { 32767, 32715, 18820, 23749 }, + { 32767, 951, 0, 0 }, + 8, 69, 495, -22, 0, 0, 0, 0, 0 + }, + { /* articulation 155 */ + { 9511, 30830, 6784, 27897 }, + { 32767, 951, 0, 0 }, + 0, 69, 476, 0, 5000, 9521, 1, 0, 0 + }, + { /* articulation 156 */ + { 32767, 32663, 0, 32349 }, + { 951, 127, 16384, 0 }, + 0, 103, 495, 0, 3627, 10547, 0, 5, 0 + }, + { /* articulation 157 */ + { 1902, 0, 32767, 27897 }, + { 951, 951, 0, 0 }, + 0, 69, 495, 27, 0, 11919, 0, 0, 0 + }, + { /* articulation 158 */ + { 32767, 0, 32767, 32245 }, + { 38, 33, 10092, 0 }, + 5, 0, 495, 0, 8007, 5535, 0, 8, 0 + }, + { /* articulation 159 */ + { 32767, 32618, 0, 31056 }, + { 32767, 63, 0, 0 }, + 0, 103, 495, 0, 2500, 9032, 0, 0, 0 + }, + { /* articulation 160 */ + { 4755, 32715, 10809, 28809 }, + { 32767, 32767, 32767, 0 }, + 0, 69, 495, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 161 */ + { 9511, 32663, 18820, 27897 }, + { 32767, 95, 0, 0 }, + 10, 69, 494, 0, 2600, 9513, 0, 0, 0 + }, + { /* articulation 162 */ + { 32767, 32435, 9568, 27897 }, + { 1174, 196, 0, 0 }, + 10, 103, 490, 0, 6500, 9023, 0, 0, 0 + }, + { /* articulation 163 */ + { 32767, 32663, 0, 29434 }, + { 32767, 32, 0, 0 }, + 0, 69, 495, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 164 */ + { 32767, 32418, 15076, 23749 }, + { 32767, 634, 0, 0 }, + 0, 0, 476, 0, 2000, 10223, 0, 0, 0 + }, + { /* articulation 165 */ + { 32767, 32663, 0, 27897 }, + { 32767, 190, 0, 0 }, + 0, 69, 495, 0, 3000, 9366, 0, 0, 0 + }, + { /* articulation 166 */ + { 32767, 32715, 18820, 27897 }, + { 951, 64, 10879, 0 }, + 0, 0, 495, 0, 6000, 7121, 0, 4, 0 + }, + { /* articulation 167 */ + { 32767, 32636, 0, 29434 }, + { 32767, 10, 0, 0 }, + 0, 103, 495, 0, 3500, 6236, 0, 5, 0 + }, + { /* articulation 168 */ + { 32767, 32636, 0, 29434 }, + { 32767, 95, 0, 0 }, + 0, 103, 495, 0, 2800, 7121, 0, 0, 0 + }, + { /* articulation 169 */ + { 32767, 32593, 0, 31056 }, + { 32767, 63, 0, 0 }, + 0, 103, 495, 0, 2100, 9626, 0, 0, 0 + }, + { /* articulation 170 */ + { 32767, 32558, 0, 31476 }, + { 32767, 63, 0, 0 }, + 0, 103, 495, 0, 3000, 9626, 0, 0, 0 + }, + { /* articulation 171 */ + { 32767, 32527, 0, 30506 }, + { 32767, 63, 0, 0 }, + 0, 103, 495, 0, 1000, 9032, 0, 0, 0 + }, + { /* articulation 172 */ + { 32767, 32418, 0, 30725 }, + { 32767, 63, 0, 0 }, + 0, 103, 495, 0, 1000, 9032, 0, 0, 0 + }, + { /* articulation 173 */ + { 1902, 32418, 15076, 23749 }, + { 32767, 634, 0, 0 }, + 0, 103, 496, 0, 0, 11107, 0, 8, 0 + }, + { /* articulation 174 */ + { 32767, 32558, 15076, 27897 }, + { 3804, 73, 0, 0 }, + 0, 0, 495, 0, 4500, 9521, 0, 8, 0 + }, + { /* articulation 175 */ + { 32767, 32715, 18820, 27897 }, + { 32767, 48, 0, 0 }, + 0, 0, 495, 0, 2000, 8321, 0, 8, 0 + }, + { /* articulation 176 */ + { 32767, 32742, 128, 31180 }, + { 32767, 865, 0, 0 }, + 0, 0, 495, 0, 6000, 7823, 0, 8, 0 + }, + { /* articulation 177 */ + { 9511, 32608, 0, 32322 }, + { 32767, 48, 0, 0 }, + 0, 0, 495, 0, 4500, 7121, 0, 8, 0 + }, + { /* articulation 178 */ + { 19021, 32664, 3646, 32436 }, + { 32767, 95, 0, 0 }, + 0, 0, 495, 0, 4000, 8321, 0, 8, 0 + }, + { /* articulation 179 */ + { 32767, 32685, 13644, 29434 }, + { 32767, 32, 0, 0 }, + 12, 69, 494, 0, 2000, 11107, 0, 0, 0 + }, + { /* articulation 180 */ + { 9511, 31605, 0, 27897 }, + { 32767, 951, 0, 0 }, + 0, 0, 495, 0, 5000, 8321, 1, 0, 0 + }, + { /* articulation 181 */ + { 130, 32617, 0, 32350 }, + { 32767, 317, 0, 0 }, + 0, 69, 476, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 182 */ + { 32767, 32593, 0, 32251 }, + { 1174, 20, 0, 0 }, + 0, 69, 495, 0, 3600, 7121, 0, 4, 0 + }, + { /* articulation 183 */ + { 32767, 32427, 0, 32427 }, + { 32767, 317, 0, 0 }, + 0, 69, 476, 0, 0, 0, 0, 0, 0 + }, + { /* articulation 184 */ + { 834, 32742, 19242, 31455 }, + { 32767, 148, 0, 0 }, + 0, 0, 778, 0, 3000, 9907, 0, 4, 0 + } +}; /*end Articulations */ + +/*---------------------------------------------------------------------------- + * Regions + *---------------------------------------------------------------------------- +*/ +const S_WT_REGION eas_regions[] = +{ + { { 0, 27, 27 }, -4068, 16422, 0, 0, 81, 0 }, /* region 0 */ + { { 0, 28, 28 }, -4768, 32767, 0, 0, 40, 0 }, /* region 1 */ + { { 0, 29, 29 }, -5753, 32767, 0, 0, 32, 1 }, /* region 2 */ + { { 0, 30, 30 }, -6053, 32767, 0, 0, 32, 2 }, /* region 3 */ + { { 0, 31, 31 }, -5068, 23197, 0, 0, 48, 3 }, /* region 4 */ + { { 1536, 32, 32 }, -4400, 20675, 0, 0, 137, 4 }, /* region 5 */ + { { 1537, 33, 33 }, -4903, 20675, 792, 879, 50, 5 }, /* region 6 */ + { { 1537, 34, 34 }, -5003, 16422, 792, 879, 50, 6 }, /* region 7 */ + { { 0, 35, 35 }, -6168, 32767, 0, 0, 83, 7 }, /* region 8 */ + { { 0, 36, 36 }, -6168, 32767, 0, 0, 83, 7 }, /* region 9 */ + { { 0, 37, 37 }, -5251, 18426, 0, 0, 53, 8 }, /* region 10 */ + { { 0, 38, 38 }, -5351, 23197, 0, 0, 16, 9 }, /* region 11 */ + { { 0, 39, 39 }, -4768, 32767, 0, 0, 40, 10 }, /* region 12 */ + { { 0, 40, 40 }, -5351, 23197, 0, 0, 16, 4 }, /* region 13 */ + { { 1, 41, 41 }, -7055, 26028, 798, 993, 45, 11 }, /* region 14 */ + { { 257, 42, 42 }, -5400, 26028, 4288, 7488, 7, 12 }, /* region 15 */ + { { 1, 43, 43 }, -6955, 26028, 798, 993, 45, 13 }, /* region 16 */ + { { 257, 44, 44 }, -5600, 26028, 4288, 7488, 7, 14 }, /* region 17 */ + { { 1, 45, 45 }, -6955, 26028, 798, 993, 45, 15 }, /* region 18 */ + { { 257, 46, 46 }, -5800, 26028, 4288, 7488, 7, 16 }, /* region 19 */ + { { 1, 47, 47 }, -6655, 26028, 798, 993, 45, 17 }, /* region 20 */ + { { 1, 48, 48 }, -6555, 26028, 798, 993, 45, 18 }, /* region 21 */ + { { 1, 49, 49 }, -6400, 16422, 1294, 5778, 8, 19 }, /* region 22 */ + { { 1, 50, 50 }, -6455, 26028, 798, 993, 45, 20 }, /* region 23 */ + { { 1, 51, 51 }, -6468, 16422, 6592, 9921, 6, 21 }, /* region 24 */ + { { 1, 52, 52 }, -6800, 32767, 1294, 5778, 8, 22 }, /* region 25 */ + { { 1, 53, 53 }, -6618, 14636, 6592, 9921, 6, 23 }, /* region 26 */ + { { 0, 54, 54 }, -6951, 26028, 0, 0, 39, 24 }, /* region 27 */ + { { 1, 55, 55 }, -6500, 32767, 1294, 5778, 8, 25 }, /* region 28 */ + { { 0, 56, 56 }, -8455, 32767, 0, 0, 90, 26 }, /* region 29 */ + { { 1, 57, 57 }, -6900, 32767, 1294, 5778, 8, 27 }, /* region 30 */ + { { 1, 58, 58 }, -8253, 23197, 0, 166, 113, 28 }, /* region 31 */ + { { 1, 59, 59 }, -7168, 16422, 6592, 9921, 6, 29 }, /* region 32 */ + { { 1, 60, 60 }, -7653, 23197, 432, 582, 63, 30 }, /* region 33 */ + { { 1, 61, 61 }, -8053, 16422, 432, 582, 63, 30 }, /* region 34 */ + { { 1, 62, 62 }, -8453, 20675, 432, 582, 63, 31 }, /* region 35 */ + { { 1, 63, 63 }, -8553, 23197, 432, 582, 63, 32 }, /* region 36 */ + { { 1, 64, 64 }, -9153, 23197, 432, 582, 63, 33 }, /* region 37 */ + { { 0, 65, 65 }, -8755, 32767, 0, 0, 14, 34 }, /* region 38 */ + { { 0, 66, 66 }, -9155, 20675, 0, 0, 14, 34 }, /* region 39 */ + { { 512, 67, 67 }, -8355, 18426, 0, 0, 90, 35 }, /* region 40 */ + { { 512, 68, 68 }, -8955, 18426, 0, 0, 90, 35 }, /* region 41 */ + { { 0, 69, 69 }, -8955, 32767, 0, 0, 86, 36 }, /* region 42 */ + { { 0, 70, 70 }, -8055, 21900, 0, 0, 86, 37 }, /* region 43 */ + { { 769, 71, 71 }, -7555, 23197, 0, 1226, 35, 38 }, /* region 44 */ + { { 769, 72, 72 }, -8155, 26028, 0, 1226, 35, 38 }, /* region 45 */ + { { 1024, 73, 73 }, -9155, 32767, 0, 0, 22, 39 }, /* region 46 */ + { { 1024, 74, 74 }, -9655, 32767, 0, 0, 22, 40 }, /* region 47 */ + { { 1, 75, 75 }, -9100, 23197, 0, 31, 139, 41 }, /* region 48 */ + { { 0, 76, 76 }, -11655, 23197, 0, 0, 134, 42 }, /* region 49 */ + { { 0, 77, 77 }, -11255, 23197, 0, 0, 134, 43 }, /* region 50 */ + { { 0, 78, 78 }, -10053, 16422, 0, 0, 89, 44 }, /* region 51 */ + { { 0, 79, 79 }, -11453, 16422, 0, 0, 89, 45 }, /* region 52 */ + { { 1281, 80, 80 }, -7500, 13045, 209, 230, 103, 46 }, /* region 53 */ + { { 1281, 81, 81 }, -7600, 16422, 209, 230, 103, 47 }, /* region 54 */ + { { 0, 82, 82 }, -9655, 20675, 0, 0, 87, 48 }, /* region 55 */ + { { 0, 83, 83 }, -10100, 32767, 0, 0, 13, 49 }, /* region 56 */ + { { 1, 84, 84 }, -9600, 23197, 0, 10294, 5, 50 }, /* region 57 */ + { { 0, 85, 85 }, -10855, 32767, 0, 0, 135, 4 }, /* region 58 */ + { { 0, 86, 86 }, -10268, 16422, 0, 0, 24, 51 }, /* region 59 */ + { { 32769, 87, 87 }, -10368, 32767, 1335, 1603, 24, 52 }, /* region 60 */ + { { 1, 12, 67 }, -7805, 23197, 437, 16584, 2, 48 }, /* region 61 */ + { { 1, 68, 73 }, -8396, 23197, 452, 16803, 0, 48 }, /* region 62 */ + { { 32769, 74, 108 }, -9667, 23197, 404, 16698, 1, 48 }, /* region 63 */ + { { 1, 12, 78 }, -7805, 16422, 437, 16584, 2, 48 }, /* region 64 */ + { { 1, 79, 91 }, -8396, 16422, 452, 16803, 0, 48 }, /* region 65 */ + { { 32769, 92, 108 }, -9667, 16422, 404, 16698, 1, 48 }, /* region 66 */ + { { 1, 12, 78 }, -7805, 16422, 437, 16584, 2, 48 }, /* region 67 */ + { { 1, 79, 91 }, -8396, 16422, 452, 16803, 0, 48 }, /* region 68 */ + { { 32769, 92, 108 }, -9667, 16422, 404, 16698, 1, 48 }, /* region 69 */ + { { 1, 12, 70 }, -7800, 23197, 437, 16584, 2, 48 }, /* region 70 */ + { { 1, 71, 88 }, -8391, 23197, 452, 16803, 0, 48 }, /* region 71 */ + { { 32769, 89, 108 }, -9662, 23197, 404, 16698, 1, 48 }, /* region 72 */ + { { 1, 12, 54 }, -7156, 13045, 639, 4368, 10, 48 }, /* region 73 */ + { { 32769, 55, 108 }, -7551, 18426, 702, 3112, 12, 48 }, /* region 74 */ + { { 1, 12, 66 }, -7811, 23197, 437, 16584, 2, 48 }, /* region 75 */ + { { 1, 67, 87 }, -8402, 23197, 452, 16803, 0, 48 }, /* region 76 */ + { { 32769, 88, 108 }, -9673, 16422, 404, 16698, 1, 48 }, /* region 77 */ + { { 1, 12, 43 }, -4255, 23197, 920, 1383, 30, 59 }, /* region 78 */ + { { 32769, 44, 96 }, -6260, 18426, 885, 1176, 37, 59 }, /* region 79 */ + { { 1, 12, 48 }, -4661, 18426, 1148, 1514, 26, 60 }, /* region 80 */ + { { 32769, 49, 96 }, -7453, 16422, 1347, 1420, 29, 60 }, /* region 81 */ + { { 1, 33, 56 }, -6800, 26028, 1064, 1170, 38, 61 }, /* region 82 */ + { { 1, 57, 72 }, -7200, 26028, 930, 1014, 44, 61 }, /* region 83 */ + { { 32769, 73, 108 }, -8800, 26028, 726, 826, 52, 61 }, /* region 84 */ + { { 1, 36, 96 }, -8800, 20675, 635, 735, 58, 62 }, /* region 85 */ + { { 32769, 97, 108 }, -11308, 13045, 0, 31, 139, 62 }, /* region 86 */ + { { 1, 36, 96 }, -8800, 14636, 635, 735, 58, 0 }, /* region 87 */ + { { 32769, 97, 108 }, -11308, 13045, 0, 31, 139, 0 }, /* region 88 */ + { { 1, 36, 83 }, -7206, 13045, 838, 922, 47, 63 }, /* region 89 */ + { { 1, 84, 93 }, -9606, 14636, 209, 230, 103, 63 }, /* region 90 */ + { { 32769, 94, 108 }, -11308, 13045, 0, 31, 139, 63 }, /* region 91 */ + { { 1, 36, 83 }, -7206, 13045, 838, 922, 47, 64 }, /* region 92 */ + { { 1, 84, 93 }, -9606, 13045, 209, 230, 103, 64 }, /* region 93 */ + { { 32769, 94, 108 }, -11308, 13045, 0, 31, 139, 64 }, /* region 94 */ + { { 1, 21, 56 }, -6795, 23197, 1064, 1170, 38, 65 }, /* region 95 */ + { { 1, 57, 72 }, -7195, 23197, 930, 1014, 44, 65 }, /* region 96 */ + { { 32769, 73, 108 }, -8798, 23197, 726, 826, 52, 65 }, /* region 97 */ + { { 1, 12, 83 }, -7206, 16422, 838, 922, 47, 66 }, /* region 98 */ + { { 1, 84, 93 }, -9606, 16422, 209, 230, 103, 66 }, /* region 99 */ + { { 32769, 94, 108 }, -11308, 16422, 0, 31, 139, 66 }, /* region 100 */ + { { 1, 24, 83 }, -7206, 16422, 838, 922, 47, 67 }, /* region 101 */ + { { 1, 84, 93 }, -9606, 16422, 209, 230, 103, 67 }, /* region 102 */ + { { 32769, 94, 108 }, -11308, 16422, 0, 31, 139, 67 }, /* region 103 */ + { { 1, 12, 83 }, -7220, 16422, 0, 83, 126, 68 }, /* region 104 */ + { { 1, 84, 90 }, -9682, 16422, 0, 20, 145, 68 }, /* region 105 */ + { { 32769, 91, 108 }, -10301, 16422, 6, 20, 147, 68 }, /* region 106 */ + { { 1, 21, 75 }, -8441, 16422, 419, 460, 76, 69 }, /* region 107 */ + { { 32769, 76, 108 }, -10890, 14636, 254, 264, 101, 69 }, /* region 108 */ + { { 32769, 36, 84 }, -8955, 16422, 0, 2775, 17, 70 }, /* region 109 */ + { { 32769, 12, 108 }, -7855, 23197, 30, 276, 100, 71 }, /* region 110 */ + { { 0, 12, 60 }, -9114, 26028, 0, 0, 15, 72 }, /* region 111 */ + { { 32768, 61, 96 }, -9114, 26028, 0, 0, 15, 73 }, /* region 112 */ + { { 1, 12, 65 }, -8253, 16422, 23, 10953, 4, 74 }, /* region 113 */ + { { 32769, 66, 108 }, -8955, 20675, 11, 11753, 3, 74 }, /* region 114 */ + { { 1, 12, 35 }, -6555, 16422, 2869, 3778, 11, 75 }, /* region 115 */ + { { 1, 36, 48 }, -7755, 20675, 2869, 3778, 11, 75 }, /* region 116 */ + { { 32769, 49, 72 }, -7755, 20675, 2869, 3778, 11, 76 }, /* region 117 */ + { { 1, 16, 55 }, -7424, 20675, 1045, 1119, 41, 77 }, /* region 118 */ + { { 32769, 56, 96 }, -7918, 20675, 907, 963, 46, 77 }, /* region 119 */ + { { 1, 16, 53 }, -7194, 29204, 1140, 1479, 27, 78 }, /* region 120 */ + { { 1, 54, 70 }, -8371, 29204, 726, 812, 55, 78 }, /* region 121 */ + { { 32769, 71, 108 }, -8988, 29204, 718, 748, 56, 78 }, /* region 122 */ + { { 1, 12, 65 }, -8253, 16422, 23, 10953, 4, 79 }, /* region 123 */ + { { 32769, 66, 108 }, -8955, 20675, 11, 11753, 3, 79 }, /* region 124 */ + { { 1, 16, 54 }, -6927, 20675, 5362, 5461, 9, 80 }, /* region 125 */ + { { 1, 55, 63 }, -7051, 26028, 1362, 1454, 28, 80 }, /* region 126 */ + { { 32769, 64, 108 }, -7944, 16422, 311, 366, 88, 80 }, /* region 127 */ + { { 1, 16, 48 }, -5998, 20675, 1132, 1301, 31, 81 }, /* region 128 */ + { { 32769, 49, 108 }, -7188, 20675, 1099, 1184, 36, 81 }, /* region 129 */ + { { 1, 21, 68 }, -9658, 20675, 87, 2170, 18, 82 }, /* region 130 */ + { { 1, 69, 82 }, -10160, 20675, 120, 2167, 19, 82 }, /* region 131 */ + { { 32769, 83, 108 }, -11360, 20675, 376, 2041, 20, 82 }, /* region 132 */ + { { 1, 12, 65 }, -8253, 16422, 23, 10953, 4, 83 }, /* region 133 */ + { { 32769, 66, 108 }, -8955, 20675, 11, 11753, 3, 83 }, /* region 134 */ + { { 32769, 55, 108 }, -8568, 20675, 0, 477, 75, 84 }, /* region 135 */ + { { 32769, 36, 96 }, -8100, 14636, 101, 151, 116, 85 }, /* region 136 */ + { { 1, 24, 83 }, -7220, 13045, 0, 83, 126, 86 }, /* region 137 */ + { { 1, 84, 90 }, -9682, 13045, 0, 20, 145, 86 }, /* region 138 */ + { { 32769, 91, 108 }, -10301, 13045, 6, 20, 147, 86 }, /* region 139 */ + { { 1, 12, 65 }, -8253, 16422, 23, 10953, 4, 87 }, /* region 140 */ + { { 32769, 66, 108 }, -8955, 20675, 11, 11753, 3, 87 }, /* region 141 */ + { { 1, 12, 65 }, -8253, 16422, 23, 10953, 4, 88 }, /* region 142 */ + { { 32769, 66, 108 }, -8955, 20675, 11, 11753, 3, 88 }, /* region 143 */ + { { 1, 12, 65 }, -8253, 16422, 23, 10953, 4, 89 }, /* region 144 */ + { { 32769, 66, 108 }, -8955, 20675, 11, 11753, 3, 89 }, /* region 145 */ + { { 1, 24, 83 }, -7220, 13045, 0, 83, 126, 90 }, /* region 146 */ + { { 1, 84, 90 }, -9682, 13045, 0, 20, 145, 90 }, /* region 147 */ + { { 32769, 91, 108 }, -10301, 13045, 6, 20, 147, 90 }, /* region 148 */ + { { 1, 12, 65 }, -8253, 16422, 23, 10953, 4, 91 }, /* region 149 */ + { { 32769, 66, 108 }, -8955, 20675, 11, 11753, 3, 91 }, /* region 150 */ + { { 1, 12, 65 }, -8253, 16422, 23, 10953, 4, 92 }, /* region 151 */ + { { 32769, 66, 108 }, -8955, 20675, 11, 11753, 3, 92 }, /* region 152 */ + { { 1, 12, 62 }, -8253, 16422, 23, 10953, 4, 93 }, /* region 153 */ + { { 32769, 63, 108 }, -8955, 20675, 11, 11753, 3, 93 }, /* region 154 */ + { { 1, 12, 62 }, -8253, 16422, 23, 10953, 4, 94 }, /* region 155 */ + { { 32769, 63, 108 }, -8955, 16422, 11, 11753, 3, 94 }, /* region 156 */ + { { 1, 24, 79 }, -7220, 13045, 0, 83, 126, 95 }, /* region 157 */ + { { 1, 80, 90 }, -9682, 13045, 0, 20, 145, 95 }, /* region 158 */ + { { 32769, 91, 108 }, -10301, 13045, 6, 20, 147, 95 }, /* region 159 */ + { { 1, 12, 65 }, -8253, 13045, 23, 10953, 4, 96 }, /* region 160 */ + { { 32769, 66, 108 }, -8955, 16422, 11, 11753, 3, 96 }, /* region 161 */ + { { 32768, 36, 84 }, -8700, 20675, 0, 0, 25, 97 }, /* region 162 */ + { { 32769, 36, 96 }, -10055, 20675, 1482, 1613, 23, 98 }, /* region 163 */ + { { 32769, 12, 96 }, -5566, 32767, 818, 1033, 42, 99 }, /* region 164 */ + { { 32769, 36, 84 }, -9768, 18426, 0, 293, 98, 100 }, /* region 165 */ + { { 32769, 12, 96 }, -7220, 26028, 0, 83, 125, 101 }, /* region 166 */ + { { 32769, 12, 96 }, -7220, 20675, 0, 83, 125, 102 }, /* region 167 */ + { { 1, 12, 83 }, -7220, 13045, 0, 83, 125, 104 }, /* region 168 */ + { { 1, 84, 90 }, -9682, 13045, 0, 20, 146, 104 }, /* region 169 */ + { { 32769, 91, 108 }, -10301, 13045, 6, 20, 148, 104 }, /* region 170 */ + { { 32769, 36, 108 }, -9770, 32767, 472, 491, 74, 105 }, /* region 171 */ + { { 32769, 36, 108 }, -9770, 20675, 472, 491, 74, 106 }, /* region 172 */ + { { 1, 12, 72 }, -7212, 7336, 2, 86, 124, 107 }, /* region 173 */ + { { 1, 73, 101 }, -9700, 8231, 2, 22, 143, 107 }, /* region 174 */ + { { 32769, 102, 108 }, -10883, 20675, 173, 183, 110, 107 }, /* region 175 */ + { { 1, 21, 96 }, -8968, 13045, 477, 507, 73, 108 }, /* region 176 */ + { { 32769, 97, 108 }, -10883, 13045, 173, 183, 110, 109 }, /* region 177 */ + { { 32769, 12, 108 }, -8971, 16422, 477, 507, 73, 110 }, /* region 178 */ + { { 1, 12, 53 }, -6171, 16422, 388, 541, 68, 111 }, /* region 179 */ + { { 32769, 54, 60 }, -7149, 11626, 473, 560, 65, 111 }, /* region 180 */ + { { 32769, 36, 72 }, -7149, 16422, 473, 560, 65, 112 }, /* region 181 */ + { { 1, 48, 58 }, -8253, 16422, 356, 402, 82, 113 }, /* region 182 */ + { { 1, 59, 65 }, -8774, 16422, 514, 548, 67, 113 }, /* region 183 */ + { { 1, 66, 78 }, -9374, 16422, 505, 529, 71, 113 }, /* region 184 */ + { { 32769, 79, 96 }, -10433, 16422, 178, 191, 109, 113 }, /* region 185 */ + { { 1, 55, 60 }, -8253, 16422, 356, 402, 82, 114 }, /* region 186 */ + { { 1, 61, 69 }, -8774, 16422, 514, 548, 67, 114 }, /* region 187 */ + { { 1, 70, 79 }, -9374, 16422, 505, 529, 71, 114 }, /* region 188 */ + { { 32769, 80, 108 }, -10433, 16422, 178, 191, 109, 114 }, /* region 189 */ + { { 1, 16, 82 }, -9229, 23197, 180, 206, 106, 115 }, /* region 190 */ + { { 32769, 83, 108 }, -8440, 18426, 3, 44, 131, 115 }, /* region 191 */ + { { 32769, 21, 108 }, -10069, 20675, 483, 515, 72, 116 }, /* region 192 */ + { { 1, 21, 89 }, -8405, 18426, 3, 45, 130, 117 }, /* region 193 */ + { { 32769, 90, 108 }, -10301, 10362, 6, 20, 148, 117 }, /* region 194 */ + { { 1, 21, 42 }, -5886, 20675, 0, 180, 111, 118 }, /* region 195 */ + { { 1, 43, 51 }, -6486, 23197, 0, 127, 120, 118 }, /* region 196 */ + { { 1, 52, 58 }, -7492, 26028, 0, 71, 127, 118 }, /* region 197 */ + { { 1, 59, 68 }, -8668, 23197, 0, 36, 136, 118 }, /* region 198 */ + { { 32769, 69, 108 }, -9774, 20675, 0, 19, 149, 118 }, /* region 199 */ + { { 1, 21, 89 }, -8399, 20675, 3, 45, 130, 119 }, /* region 200 */ + { { 32769, 90, 108 }, -10301, 14636, 6, 20, 148, 119 }, /* region 201 */ + { { 1, 21, 46 }, -6851, 26028, 236, 340, 92, 120 }, /* region 202 */ + { { 1, 47, 71 }, -7763, 20675, 824, 885, 49, 120 }, /* region 203 */ + { { 1, 72, 88 }, -9107, 18426, 719, 747, 57, 120 }, /* region 204 */ + { { 1, 89, 93 }, -10076, 16422, 83, 99, 122, 120 }, /* region 205 */ + { { 32769, 94, 108 }, -10889, 16422, 173, 183, 110, 120 }, /* region 206 */ + { { 1, 60, 71 }, -8405, 16422, 0, 42, 132, 121 }, /* region 207 */ + { { 1, 72, 78 }, -9103, 16422, 0, 28, 141, 121 }, /* region 208 */ + { { 32769, 79, 96 }, -9605, 16422, 0, 21, 144, 121 }, /* region 209 */ + { { 1, 48, 65 }, -7516, 11626, 0, 70, 128, 122 }, /* region 210 */ + { { 1, 66, 79 }, -8924, 14636, 0, 31, 138, 122 }, /* region 211 */ + { { 32769, 80, 96 }, -9230, 11626, 0, 26, 142, 122 }, /* region 212 */ + { { 1, 16, 44 }, -7068, 14636, 163, 254, 102, 123 }, /* region 213 */ + { { 1, 45, 51 }, -7618, 16422, 261, 393, 85, 123 }, /* region 214 */ + { { 1, 52, 58 }, -8533, 18426, 190, 229, 104, 123 }, /* region 215 */ + { { 1, 59, 66 }, -9300, 18426, 168, 193, 108, 123 }, /* region 216 */ + { { 1, 67, 70 }, -9776, 18426, 138, 157, 115, 123 }, /* region 217 */ + { { 1, 71, 80 }, -10303, 18426, 166, 180, 112, 123 }, /* region 218 */ + { { 32769, 81, 108 }, -11274, 18426, 135, 151, 117, 123 }, /* region 219 */ + { { 32769, 12, 96 }, -6204, 23197, 570, 719, 59, 124 }, /* region 220 */ + { { 1, 12, 48 }, -7068, 14636, 163, 254, 102, 125 }, /* region 221 */ + { { 1, 49, 54 }, -7618, 16422, 261, 393, 85, 125 }, /* region 222 */ + { { 1, 55, 63 }, -8533, 18426, 190, 229, 104, 125 }, /* region 223 */ + { { 1, 64, 70 }, -9300, 18426, 168, 193, 108, 125 }, /* region 224 */ + { { 1, 71, 75 }, -9776, 18426, 138, 157, 115, 125 }, /* region 225 */ + { { 1, 76, 82 }, -10303, 18426, 166, 180, 112, 125 }, /* region 226 */ + { { 32769, 83, 108 }, -11274, 18426, 135, 151, 117, 125 }, /* region 227 */ + { { 32770, 36, 84 }, -8400, 29204, 0, 0, 0, 126 }, /* region 228 */ + { { 32770, 36, 84 }, -8800, 8231, 0, 0, 0, 127 }, /* region 229 */ + { { 32770, 36, 84 }, -8400, 20675, 0, 0, 0, 128 }, /* region 230 */ + { { 32769, 36, 84 }, -7200, -24285, 1294, 5778, 8, 129 }, /* region 231 */ + { { 32769, 36, 84 }, -7755, 29204, 798, 993, 45, 130 }, /* region 232 */ + { { 32769, 36, 84 }, -8055, 20675, 798, 993, 45, 131 }, /* region 233 */ + { { 32769, 36, 84 }, -8955, 29204, 798, 993, 45, 132 }, /* region 234 */ + { { 32768, 36, 84 }, -9355, 32767, 0, 0, 133, 133 }, /* region 235 */ + { { 32768, 36, 84 }, -7755, 20675, 0, 0, 91, 134 }, /* region 236 */ + { { 1, 24, 62 }, -8200, 23197, 286, 333, 94, 135 }, /* region 237 */ + { { 1, 63, 66 }, -8564, 26028, 297, 335, 93, 135 }, /* region 238 */ + { { 1, 67, 72 }, -8922, 23197, 368, 399, 84, 135 }, /* region 239 */ + { { 32769, 73, 96 }, -9510, 23197, 116, 138, 119, 135 }, /* region 240 */ + { { 1, 24, 48 }, -6341, 23197, 309, 447, 77, 136 }, /* region 241 */ + { { 1, 49, 56 }, -7466, 26028, 211, 283, 99, 136 }, /* region 242 */ + { { 1, 57, 63 }, -8200, 26028, 286, 333, 94, 136 }, /* region 243 */ + { { 32769, 64, 84 }, -8922, 23197, 368, 399, 84, 136 }, /* region 244 */ + { { 1, 24, 56 }, -7466, 29204, 211, 283, 99, 137 }, /* region 245 */ + { { 1, 57, 63 }, -8200, 29204, 286, 333, 94, 137 }, /* region 246 */ + { { 1, 64, 69 }, -8922, 29204, 368, 399, 84, 137 }, /* region 247 */ + { { 32769, 70, 96 }, -9510, 29204, 116, 138, 119, 137 }, /* region 248 */ + { { 1, 24, 68 }, -8922, 18426, 368, 399, 84, 138 }, /* region 249 */ + { { 1, 69, 76 }, -9510, 26028, 116, 138, 119, 138 }, /* region 250 */ + { { 32769, 77, 108 }, -9958, 23197, 127, 144, 118, 138 }, /* region 251 */ + { { 1, 24, 82 }, -8813, 23197, 389, 422, 80, 139 }, /* region 252 */ + { { 32769, 83, 108 }, -9964, 26028, 146, 163, 114, 139 }, /* region 253 */ + { { 1, 12, 58 }, -8098, 29204, 386, 436, 78, 140 }, /* region 254 */ + { { 32769, 59, 96 }, -8571, 26028, 290, 328, 95, 140 }, /* region 255 */ + { { 1, 12, 58 }, -8098, 16422, 386, 436, 78, 141 }, /* region 256 */ + { { 32769, 59, 96 }, -8571, 18426, 290, 328, 95, 141 }, /* region 257 */ + { { 1, 12, 48 }, -8098, -28771, 386, 436, 78, 142 }, /* region 258 */ + { { 32769, 49, 84 }, -8571, 29204, 290, 328, 95, 142 }, /* region 259 */ + { { 1, 12, 60 }, -6653, 20675, 314, 430, 79, 143 }, /* region 260 */ + { { 32769, 61, 84 }, -7753, 18426, 263, 324, 96, 143 }, /* region 261 */ + { { 1, 24, 60 }, -7753, 16422, 263, 324, 96, 144 }, /* region 262 */ + { { 1, 61, 70 }, -8869, 20675, 279, 311, 97, 144 }, /* region 263 */ + { { 32769, 71, 96 }, -9298, 23197, 179, 204, 107, 144 }, /* region 264 */ + { { 1, 24, 84 }, -9683, 20675, 191, 211, 105, 145 }, /* region 265 */ + { { 32769, 85, 108 }, -10883, 20675, 92, 102, 121, 145 }, /* region 266 */ + { { 1, 21, 69 }, -7753, 13045, 263, 324, 96, 146 }, /* region 267 */ + { { 1, 70, 94 }, -8869, 20675, 279, 311, 97, 146 }, /* region 268 */ + { { 1, 95, 96 }, -9298, -24285, 179, 204, 107, 146 }, /* region 269 */ + { { 32769, 97, 108 }, -10883, -24285, 173, 183, 110, 146 }, /* region 270 */ + { { 1, 16, 55 }, -9300, 20675, 168, 193, 108, 147 }, /* region 271 */ + { { 1, 56, 74 }, -9776, 26028, 138, 157, 115, 147 }, /* region 272 */ + { { 32769, 75, 96 }, -11274, 26028, 135, 151, 117, 147 }, /* region 273 */ + { { 1, 24, 72 }, -9298, 26028, 179, 204, 107, 148 }, /* region 274 */ + { { 1, 73, 85 }, -9683, 20675, 191, 211, 105, 148 }, /* region 275 */ + { { 32769, 86, 108 }, -10883, 18426, 92, 102, 121, 148 }, /* region 276 */ + { { 32769, 36, 108 }, -8930, 18426, 1839, 1901, 21, 149 }, /* region 277 */ + { { 32769, 24, 108 }, -8473, 20675, 494, 534, 69, 150 }, /* region 278 */ + { { 32769, 12, 108 }, -8473, 20675, 494, 534, 69, 151 }, /* region 279 */ + { { 32769, 24, 108 }, -8473, 20675, 494, 534, 69, 152 }, /* region 280 */ + { { 1, 36, 60 }, -6100, 5193, 2, 22, 143, 153 }, /* region 281 */ + { { 32769, 61, 84 }, -7283, 20675, 173, 183, 110, 153 }, /* region 282 */ + { { 32769, 24, 96 }, -7753, 14636, 263, 324, 96, 154 }, /* region 283 */ + { { 32769, 36, 96 }, -8930, 26028, 1839, 1901, 21, 155 }, /* region 284 */ + { { 32769, 24, 108 }, -8473, 20675, 494, 534, 69, 156 }, /* region 285 */ + { { 1, 24, 58 }, -9051, 14636, 0, 29, 140, 157 }, /* region 286 */ + { { 32769, 59, 96 }, -9051, 14636, 0, 29, 140, 157 }, /* region 287 */ + { { 1, 12, 83 }, -7220, 13045, 0, 83, 125, 158 }, /* region 288 */ + { { 1, 84, 90 }, -9682, 13045, 0, 20, 146, 158 }, /* region 289 */ + { { 32769, 91, 108 }, -10301, 13045, 6, 20, 148, 158 }, /* region 290 */ + { { 1, 21, 42 }, -5863, 26028, 1047, 1229, 34, 159 }, /* region 291 */ + { { 1, 43, 48 }, -6656, 29204, 1138, 1253, 33, 159 }, /* region 292 */ + { { 1, 49, 53 }, -7045, 26028, 559, 651, 60, 159 }, /* region 293 */ + { { 1, 54, 60 }, -7932, 26028, 508, 563, 64, 159 }, /* region 294 */ + { { 1, 61, 65 }, -8280, 32767, 819, 864, 51, 159 }, /* region 295 */ + { { 1, 66, 70 }, -8066, 26942, 981, 1032, 43, 159 }, /* region 296 */ + { { 1, 71, 76 }, -9366, 26028, 790, 814, 54, 159 }, /* region 297 */ + { { 1, 77, 82 }, -9966, 26028, 592, 609, 61, 159 }, /* region 298 */ + { { 1, 83, 87 }, -10717, 23197, 543, 554, 66, 159 }, /* region 299 */ + { { 1, 88, 96 }, -11271, 18426, 601, 609, 62, 159 }, /* region 300 */ + { { 32769, 97, 108 }, -11766, 18426, 523, 529, 70, 159 }, /* region 301 */ + { { 1, 48, 69 }, -7513, 14636, 0, 70, 128, 160 }, /* region 302 */ + { { 1, 70, 79 }, -8924, 18426, 0, 31, 138, 160 }, /* region 303 */ + { { 32769, 80, 96 }, -9230, 14636, 0, 26, 142, 160 }, /* region 304 */ + { { 1, 36, 72 }, -8334, 29204, 0, 87, 123, 161 }, /* region 305 */ + { { 32769, 73, 96 }, -9160, 29204, 0, 54, 129, 161 }, /* region 306 */ + { { 32769, 36, 96 }, -8930, 26028, 1839, 1901, 21, 162 }, /* region 307 */ + { { 32769, 12, 96 }, -5572, 32767, 818, 1033, 42, 163 }, /* region 308 */ + { { 32769, 36, 108 }, -9770, 26028, 472, 491, 74, 164 }, /* region 309 */ + { { 32769, 12, 96 }, -6204, 29204, 570, 719, 59, 165 }, /* region 310 */ + { { 1, 12, 83 }, -7220, 13045, 0, 83, 125, 166 }, /* region 311 */ + { { 1, 84, 90 }, -9682, 13045, 0, 20, 146, 166 }, /* region 312 */ + { { 32769, 91, 108 }, -10301, 13045, 6, 20, 148, 166 }, /* region 313 */ + { { 1, 21, 46 }, -6851, 32767, 236, 340, 92, 167 }, /* region 314 */ + { { 1, 47, 75 }, -7763, 26028, 824, 885, 49, 167 }, /* region 315 */ + { { 1, 76, 84 }, -9107, 23197, 719, 747, 57, 167 }, /* region 316 */ + { { 1, 85, 93 }, -10076, 20675, 83, 99, 122, 167 }, /* region 317 */ + { { 32769, 94, 108 }, -10889, 20675, 173, 183, 110, 167 }, /* region 318 */ + { { 1, 21, 46 }, -6851, 26028, 236, 340, 92, 168 }, /* region 319 */ + { { 1, 47, 71 }, -7763, 20675, 824, 885, 49, 168 }, /* region 320 */ + { { 1, 72, 88 }, -9107, 18426, 719, 747, 57, 168 }, /* region 321 */ + { { 1, 89, 93 }, -10076, 16422, 83, 99, 122, 168 }, /* region 322 */ + { { 32769, 94, 108 }, -10889, 16422, 173, 183, 110, 168 }, /* region 323 */ + { { 1, 21, 45 }, -5863, 26028, 1047, 1229, 34, 169 }, /* region 324 */ + { { 1, 46, 51 }, -6656, 29204, 1138, 1253, 33, 169 }, /* region 325 */ + { { 1, 52, 54 }, -7045, 26028, 559, 651, 60, 169 }, /* region 326 */ + { { 1, 55, 63 }, -7932, 26028, 508, 563, 64, 169 }, /* region 327 */ + { { 1, 64, 68 }, -8280, 32767, 819, 864, 51, 169 }, /* region 328 */ + { { 1, 69, 73 }, -8066, 26942, 981, 1032, 43, 169 }, /* region 329 */ + { { 1, 74, 79 }, -9366, 26028, 790, 814, 54, 169 }, /* region 330 */ + { { 1, 80, 88 }, -9966, 23197, 592, 609, 61, 169 }, /* region 331 */ + { { 1, 89, 99 }, -11271, 18426, 601, 609, 62, 169 }, /* region 332 */ + { { 32769, 100, 108 }, -11766, 18426, 523, 529, 70, 169 }, /* region 333 */ + { { 1, 21, 45 }, -5863, 26028, 1047, 1229, 34, 170 }, /* region 334 */ + { { 1, 46, 51 }, -6656, 29204, 1138, 1253, 33, 170 }, /* region 335 */ + { { 1, 52, 54 }, -7045, 26028, 559, 651, 60, 170 }, /* region 336 */ + { { 1, 55, 63 }, -7932, 26028, 508, 563, 64, 170 }, /* region 337 */ + { { 1, 64, 68 }, -8280, 32767, 819, 864, 51, 170 }, /* region 338 */ + { { 1, 69, 73 }, -8066, 26942, 981, 1032, 43, 170 }, /* region 339 */ + { { 1, 74, 79 }, -9366, 26028, 790, 814, 54, 170 }, /* region 340 */ + { { 1, 80, 88 }, -9966, 23197, 592, 609, 61, 170 }, /* region 341 */ + { { 1, 89, 99 }, -11271, 18426, 601, 609, 62, 171 }, /* region 342 */ + { { 32769, 100, 108 }, -11766, 18426, 523, 529, 70, 172 }, /* region 343 */ + { { 32769, 36, 108 }, -9770, 20675, 472, 491, 74, 173 }, /* region 344 */ + { { 32769, 12, 108 }, -8930, 20675, 1839, 1901, 21, 174 }, /* region 345 */ + { { 1, 12, 44 }, -7068, 18426, 163, 254, 102, 175 }, /* region 346 */ + { { 1, 45, 51 }, -7618, 20675, 261, 393, 85, 175 }, /* region 347 */ + { { 1, 52, 58 }, -8533, 23197, 190, 229, 104, 175 }, /* region 348 */ + { { 1, 59, 66 }, -9300, 23197, 168, 193, 108, 175 }, /* region 349 */ + { { 1, 67, 70 }, -9776, 23197, 138, 157, 115, 175 }, /* region 350 */ + { { 1, 71, 80 }, -10303, 23197, 166, 180, 112, 175 }, /* region 351 */ + { { 32769, 81, 108 }, -11274, 23197, 135, 151, 117, 175 }, /* region 352 */ + { { 1, 12, 65 }, -8253, 16422, 23, 10953, 4, 176 }, /* region 353 */ + { { 32769, 66, 108 }, -8955, 20675, 11, 11753, 3, 176 }, /* region 354 */ + { { 1, 12, 48 }, -5998, 29204, 1132, 1301, 31, 177 }, /* region 355 */ + { { 32769, 49, 108 }, -7188, 29204, 1099, 1184, 36, 177 }, /* region 356 */ + { { 1, 12, 83 }, -8441, 20675, 419, 460, 76, 178 }, /* region 357 */ + { { 32769, 84, 108 }, -11323, 20675, 0, 31, 139, 178 }, /* region 358 */ + { { 1, 55, 60 }, -8253, 18426, 356, 402, 82, 179 }, /* region 359 */ + { { 1, 61, 69 }, -8774, 18426, 514, 548, 67, 179 }, /* region 360 */ + { { 1, 70, 79 }, -9374, 18426, 505, 529, 71, 179 }, /* region 361 */ + { { 32769, 80, 108 }, -10433, 23197, 178, 191, 109, 179 }, /* region 362 */ + { { 32769, 36, 96 }, -8930, -24285, 1839, 1901, 21, 180 }, /* region 363 */ + { { 1, 12, 83 }, -7206, 16422, 838, 922, 47, 181 }, /* region 364 */ + { { 1, 84, 93 }, -9606, 18426, 209, 230, 103, 181 }, /* region 365 */ + { { 32769, 94, 108 }, -11308, 16422, 0, 31, 139, 181 }, /* region 366 */ + { { 1, 12, 56 }, -6795, 23197, 1064, 1170, 38, 182 }, /* region 367 */ + { { 1, 57, 72 }, -7195, 23197, 930, 1014, 44, 182 }, /* region 368 */ + { { 32769, 73, 108 }, -8798, 23197, 726, 826, 52, 182 }, /* region 369 */ + { { 32769, 24, 108 }, -8800, 23197, 635, 735, 58, 62 }, /* region 370 */ + { { 1, 36, 83 }, -7206, 13045, 838, 922, 47, 183 }, /* region 371 */ + { { 1, 84, 93 }, -9606, 13045, 209, 230, 103, 183 }, /* region 372 */ + { { 32769, 94, 108 }, -11308, 13045, 0, 31, 139, 183 }, /* region 373 */ + { { 1, 12, 66 }, -7811, 23197, 437, 16584, 2, 184 }, /* region 374 */ + { { 1, 67, 87 }, -8402, 23197, 452, 16803, 0, 184 }, /* region 375 */ + { { 32769, 88, 108 }, -9673, 16422, 404, 16698, 1, 184 } /* region 376 */ +}; /* end Regions */ + +/*---------------------------------------------------------------------------- + * Programs + *---------------------------------------------------------------------------- +*/ +const S_PROGRAM eas_programs[] = +{ + { 7864320, 0 } /* program 0 */ +}; /* end Programs */ + +/*---------------------------------------------------------------------------- + * Banks + *---------------------------------------------------------------------------- +*/ +const S_BANK eas_banks[] = +{ + { /* bank 0 */ + 30976, + { + 291, 324, 314, 334, 202, 319, 95, 195, + 107, 92, 371, 89, 87, 85, 135, 82, + 200, 192, 130, 267, 193, 302, 207, 210, + 128, 125, 190, 120, 118, 213, 221, 271, + 80, 78, 308, 164, 220, 310, 166, 167, + 186, 182, 181, 179, 160, 178, 176, 115, + 155, 153, 151, 149, 75, 73, 374, 111, + 252, 254, 258, 305, 256, 157, 146, 137, + 249, 237, 245, 241, 274, 262, 260, 265, + 172, 171, 309, 277, 284, 307, 136, 344, + 173, 168, 345, 353, 346, 70, 110, 311, + 357, 144, 104, 67, 364, 367, 64, 288, + 142, 140, 98, 355, 133, 123, 61, 113, + 285, 280, 279, 278, 370, 286, 359, 283, + 101, 236, 163, 235, 234, 233, 232, 231, + 162, 363, 230, 281, 165, 229, 109, 228 + } + } +}; /* end Banks */ + +/*---------------------------------------------------------------------------- + * Samples + *---------------------------------------------------------------------------- +*/ + +const EAS_SAMPLE eas_samples[] = +{ + 0, 0, -3, -4, -6, -8, -10, -12, -12, -11, -8, -3, 3, 7, 10, 14, + 16, 16, 15, 12, 9, 4, -4, -12, -18, -21, -21, -19, -18, -15, -10, -3, + 10, 20, 34, 44, 51, 52, 48, 43, 38, 26, 8, -15, -37, -52, -61, -64, + -66, -64, -59, -47, -31, -13, 4, 18, 30, 37, 40, 36, 30, 24, 19, 11, + -2, -17, -24, -28, -28, -21, -18, -16, -10, -3, 12, 27, 39, 49, 53, 53, + 50, 43, 37, 25, 11, -11, -31, -46, -57, -63, -66, -63, -57, -46, -34, -19, + -3, 13, 27, 35, 39, 37, 32, 26, 20, 11, 0, -13, -20, -24, -25, -21, + -19, -14, -8, -2, 9, 23, 37, 47, 53, 52, 49, 42, 35, 25, 13, -6, + -28, -48, -60, -67, -67, -64, -60, -51, -39, -23, -7, 10, 23, 35, 39, 38, + 32, 26, 21, 15, 4, -9, -20, -22, -21, -19, -14, -11, -5, 1, 9, 19, + 31, 45, 51, 52, 47, 39, 35, 25, 15, -3, -23, -42, -58, -70, -71, -66, + -60, -51, -43, -30, -13, 6, 22, 32, 40, 40, 38, 33, 27, 19, 9, -5, + -17, -25, -26, -22, -16, -11, -8, -4, 7, 21, 35, 48, 53, 56, 50, 43, + 34, 22, 13, -2, -22, -44, -63, -75, -76, -69, -61, -51, -43, -29, -13, 6, + 23, 32, 41, 43, 41, 37, 26, 18, 7, -8, -19, -25, -25, -22, -15, -9, + -5, 0, 10, 24, 37, 44, 48, 52, 52, 46, 33, 20, 8, -5, -20, -38, + -59, -74, -79, -73, -67, -55, -43, -26, -11, 4, 18, 29, 41, 45, 45, 38, + 29, 21, 11, -3, -15, -25, -27, -22, -16, -11, -8, 0, 10, 25, 38, 44, + 47, 50, 53, 49, 37, 20, 7, -5, -17, -34, -58, -74, -82, -76, -67, -59, + -47, -29, -12, 3, 14, 25, 38, 50, 52, 46, 33, 23, 14, 3, -11, -25, + -28, -27, -21, -16, -13, -7, 8, 27, 41, 44, 45, 47, 54, 55, 44, 25, + 7, -7, -18, -32, -53, -71, -81, -81, -72, -67, -55, -37, -16, 3, 15, 23, + 34, 48, 57, 56, 44, 30, 19, 5, -12, -26, -33, -31, -25, -19, -16, -11, + 7, 25, 45, 49, 49, 52, 57, 59, 48, 32, 11, -5, -22, -39, -56, -73, + -82, -88, -84, -75, -60, -38, -16, 5, 21, 30, 39, 52, 59, 61, 53, 37, + 22, 7, -12, -28, -35, -36, -30, -22, -19, -16, -2, 21, 41, 52, 51, 52, + 57, 62, 54, 40, 18, -2, -18, -36, -54, -70, -80, -86, -87, -81, -69, -48, + -23, 0, 18, 28, 35, 45, 57, 64, 59, 46, 27, 9, -11, -24, -30, -32, + -29, -25, -20, -16, -5, 15, 36, 47, 50, 49, 53, 57, 54, 43, 24, 5, + -14, -32, -50, -65, -75, -82, -86, -86, -77, -58, -32, -8, 14, 25, 30, 41, + 56, 69, 69, 57, 36, 17, -4, -20, -29, -32, -27, -28, -27, -23, -13, 10, + 33, 46, 50, 48, 50, 54, 55, 48, 34, 16, -6, -29, -50, -68, -75, -78, + -82, -86, -84, -72, -47, -16, 11, 28, 34, 41, 51, 64, 70, 64, 49, 27, + 5, -17, -30, -33, -29, -29, -30, -30, -22, -2, 23, 41, 49, 51, 51, 54, + 56, 50, 42, 25, 4, -20, -44, -62, -70, -76, -83, -87, -89, -78, -56, -29, + 0, 19, 31, 38, 48, 63, 72, 71, 60, 40, 14, -12, -25, -29, -26, -27, + -33, -37, -30, -12, 11, 31, 41, 48, 51, 53, 55, 55, 51, 39, 17, -12, + -38, -58, -67, -74, -82, -92, -98, -89, -69, -41, -13, 10, 29, 41, 50, 64, + 72, 78, 74, 57, 29, 0, -18, -26, -28, -32, -38, -42, -38, -23, -3, 18, + 30, 42, 52, 58, 60, 61, 57, 48, 28, 2, -30, -51, -62, -70, -81, -94, + -101, -93, -75, -49, -23, -2, 18, 36, 50, 61, 69, 77, 78, 66, 42, 11, + -11, -22, -27, -32, -39, -46, -46, -36, -14, 8, 25, 41, 52, 59, 62, 63, + 62, 57, 38, 11, -20, -47, -61, -69, -78, -89, -98, -94, -80, -60, -37, -12, + 13, 33, 48, 62, 70, 78, 81, 72, 52, 23, 0, -14, -24, -33, -43, -49, + -49, -39, -23, -2, 15, 33, 47, 57, 63, 62, 62, 57, 40, 20, -7, -34, + -52, -65, -74, -83, -94, -92, -81, -63, -42, -22, 0, 21, 39, 54, 63, 73, + 79, 76, 61, 37, 12, -5, -19, -28, -37, -46, -51, -47, -32, -13, 7, 25, + 43, 54, 58, 60, 60, 61, 48, 27, 3, -25, -45, -60, -72, -81, -90, -92, + -84, -71, -52, -32, -9, 14, 33, 50, 61, 74, 80, 78, 67, 47, 24, 6, + -12, -26, -37, -50, -56, -52, -37, -19, -2, 16, 35, 52, 61, 63, 61, 59, + 51, 35, 12, -15, -38, -55, -66, -77, -83, -83, -80, -68, -55, -39, -19, 4, + 25, 41, 54, 66, 73, 75, 68, 52, 31, 11, -7, -22, -33, -46, -54, -51, + -39, -24, -5, 12, 32, 48, 56, 60, 61, 58, 50, 36, 17, -8, -30, -46, + -63, -74, -80, -80, -74, -69, -58, -43, -27, -5, 15, 31, 48, 60, 68, 72, + 68, 57, 39, 20, 2, -16, -30, -44, -51, -50, -41, -27, -10, 9, 28, 43, + 53, 57, 57, 54, 48, 37, 19, -3, -25, -41, -56, -69, -75, -73, -69, -63, + -59, -49, -32, -13, 9, 25, 37, 48, 58, 66, 65, 58, 42, 25, 8, -9, + -22, -36, -41, -43, -37, -26, -14, 4, 21, 37, 48, 52, 53, 47, 42, 34, + 21, 3, -18, -39, -51, -64, -67, -62, -60, -60, -58, -50, -36, -16, 3, 17, + 29, 41, 49, 58, 61, 60, 49, 29, 11, -7, -19, -28, -32, -33, -30, -25, + -14, 2, 19, 33, 41, 45, 42, 38, 36, 29, 20, 6, -14, -28, -43, -54, + -58, -55, -50, -51, -54, -51, -41, -22, -4, 11, 19, 30, 37, 47, 55, 56, + 51, 34, 16, 0, -15, -19, -23, -22, -22, -21, -14, 0, 15, 29, 39, 43, + 37, 31, 25, 21, 18, 6, -11, -28, -42, -50, -51, -48, -44, -41, -44, -43, + -41, -25, -8, 9, 16, 22, 26, 35, 43, 50, 48, 33, 16, -3, -13, -16, + -16, -15, -13, -11, -6, 5, 16, 28, 38, 41, 35, 24, 15, 12, 10, 4, + -11, -27, -39, -46, -46, -45, -40, -36, -36, -37, -38, -29, -13, 6, 16, 19, + 22, 27, 37, 43, 42, 32, 19, 2, -10, -13, -12, -7, -4, -2, 2, 10, + 18, 27, 36, 38, 32, 20, 9, 4, -2, -4, -11, -23, -34, -42, -42, -38, + -31, -28, -29, -32, -33, -30, -18, 0, 10, 12, 12, 17, 26, 35, 36, 31, + 19, 5, -6, -11, -9, -2, 7, 14, 13, 13, 16, 23, 31, 34, 29, 15, + -3, -8, -10, -10, -14, -20, -26, -30, -32, -30, -25, -18, -17, -24, -31, -32, + -26, -11, 2, 7, 8, 9, 17, 25, 29, 28, 21, 9, -2, -7, -5, 4, + 12, 21, 24, 23, 25, 26, 29, 31, 27, 15, -2, -15, -21, -23, -23, -23, + -28, -30, -31, -27, -19, -10, -9, -13, -21, -22, -20, -11, -4, -3, -5, -2, + 5, 13, 17, 17, 16, 10, 6, 0, 3, 11, 23, 32, 33, 30, 28, 27, + 24, 24, 19, 9, -6, -19, -29, -29, -26, -20, -19, -22, -24, -23, -16, -10, + -9, -14, -20, -24, -21, -16, -10, -6, -5, 1, 5, 11, 12, 13, 11, 8, + 6, 1, 4, 9, 23, 33, 39, 36, 32, 32, 28, 22, 17, 7, -7, -22, + -31, -33, -31, -24, -19, -18, -18, -16, -13, -7, -6, -8, -14, -21, -24, -20, + -15, -12, -9, -6, 0, 4, 6, 8, 8, 5, 5, 2, 7, 15, 27, 37, + 42, 45, 41, 39, 32, 22, 13, 3, -11, -26, -37, -41, -37, -29, -21, -18, + -15, -11, -6, -2, -2, -4, -7, -13, -16, -20, -21, -16, -14, -10, -6, -3, + -3, 0, 3, 2, 3, 3, 9, 18, 32, 41, 46, 49, 44, 43, 35, 24, + 12, 1, -14, -27, -39, -40, -36, -31, -22, -16, -13, -6, -3, -3, -4, -9, + -9, -13, -16, -20, -21, -16, -15, -11, -6, -4, -4, -5, -5, -3, -3, 0, + 10, 19, 33, 44, 51, 56, 52, 50, 40, 23, 11, -6, -19, -30, -40, -43, + -40, -35, -24, -16, -7, 2, 6, 5, 1, -6, -9, -9, -9, -12, -19, -21, + -21, -17, -9, -7, -9, -11, -15, -14, -9, -7, 7, 19, 36, 51, 57, 61, + 59, 56, 48, 33, 13, -8, -24, -35, -45, -51, -46, -38, -26, -14, -7, 3, + 11, 15, 12, 3, -5, -7, -6, -9, -15, -22, -25, -23, -17, -13, -12, -16, + -19, -21, -18, -12, 3, 21, 38, 50, 58, 67, 65, 64, 55, 41, 21, -4, + -25, -38, -46, -50, -49, -43, -33, -23, -11, 3, 14, 19, 16, 8, 0, -2, + -2, 0, -8, -19, -27, -30, -25, -22, -20, -20, -22, -25, -24, -16, 1, 22, + 43, 56, 62, 67, 68, 65, 60, 46, 24, -3, -25, -40, -45, -49, -50, -46, + -37, -23, -10, 1, 12, 20, 20, 14, 7, 2, 3, 3, -4, -15, -26, -31, + -30, -27, -26, -26, -29, -33, -33, -25, -8, 17, 41, 57, 65, 71, 73, 73, + 66, 53, 33, 5, -23, -41, -48, -50, -48, -48, -40, -30, -14, 1, 12, 21, + 24, 18, 13, 6, 5, 5, 0, -11, -25, -37, -39, -35, -31, -31, -33, -38, + -37, -29, -12, 15, 40, 59, 67, 71, 72, 73, 69, 59, 39, 14, -16, -38, + -50, -51, -50, -48, -45, -36, -21, -4, 12, 25, 30, 25, 18, 11, 11, 10, + 6, -8, -25, -39, -46, -42, -38, -37, -37, -40, -42, -34, -15, 13, 40, 57, + 66, 71, 72, 72, 69, 61, 45, 19, -10, -34, -46, -48, -47, -45, -45, -41, + -28, -12, 7, 23, 27, 25, 18, 15, 17, 17, 12, 1, -20, -37, -47, -50, + -46, -45, -44, -45, -46, -41, -21, 7, 37, 60, 69, 73, 72, 72, 72, 67, + 52, 25, -6, -33, -47, -50, -47, -47, -47, -45, -35, -16, 6, 23, 31, 30, + 24, 23, 24, 25, 18, 4, -15, -33, -50, -56, -57, -53, -48, -49, -49, -45, + -29, 2, 35, 58, 68, 71, 72, 74, 73, 68, 56, 34, 5, -26, -43, -48, + -45, -42, -46, -46, -41, -24, 0, 21, 33, 34, 31, 25, 27, 27, 19, 6, + -14, -36, -55, -64, -64, -60, -50, -47, -45, -44, -31, -4, 32, 58, 71, 72, + 68, 70, 70, 66, 57, 36, 11, -20, -43, -50, -48, -41, -37, -42, -40, -28, + -5, 21, 36, 38, 34, 26, 29, 28, 20, 8, -13, -33, -52, -68, -69, -65, + -55, -49, -47, -44, -31, -3, 30, 55, 67, 70, 68, 70, 70, 65, 57, 39, + 15, -13, -38, -49, -47, -40, -35, -39, -41, -30, -9, 17, 37, 44, 45, 38, + 32, 29, 22, 9, -10, -34, -54, -70, -75, -73, -64, -52, -45, -43, -31, -7, + 25, 53, 67, 72, 70, 72, 70, 62, 53, 38, 16, -10, -32, -49, -50, -43, + -35, -33, -36, -29, -10, 16, 35, 46, 46, 41, 35, 30, 23, 10, -10, -34, + -53, -69, -75, -74, -66, -53, -45, -42, -34, -13, 17, 46, 63, 68, 66, 63, + 65, 63, 54, 43, 24, 0, -20, -40, -43, -42, -36, -32, -32, -28, -16, 7, + 29, 47, 52, 47, 39, 31, 21, 10, -9, -30, -50, -66, -78, -77, -71, -59, + -49, -42, -34, -17, 9, 37, 56, 66, 66, 62, 62, 61, 56, 45, 30, 7, + -13, -31, -39, -40, -36, -33, -32, -28, -18, 1, 21, 41, 54, 52, 44, 36, + 26, 13, -8, -29, -48, -66, -76, -80, -74, -64, -55, -45, -34, -18, 5, 29, + 50, 65, 68, 66, 64, 60, 59, 47, 33, 15, -5, -23, -37, -43, -41, -37, + -35, -31, -21, -4, 16, 36, 52, 59, 54, 45, 33, 17, -5, -25, -45, -60, + -74, -83, -82, -71, -59, -49, -37, -23, -2, 22, 43, 59, 66, 65, 64, 60, + 58, 50, 39, 23, 2, -17, -32, -39, -40, -38, -35, -32, -23, -6, 14, 33, + 49, 59, 58, 49, 34, 16, -5, -25, -43, -60, -74, -83, -83, -76, -63, -53, + -40, -24, -5, 16, 36, 54, 65, 67, 65, 61, 57, 52, 43, 27, 9, -12, + -26, -37, -40, -39, -36, -32, -28, -13, 6, 27, 46, 58, 60, 52, 39, 23, + 5, -16, -36, -53, -66, -77, -84, -81, -72, -60, -45, -32, -15, 5, 25, 48, + 62, 69, 71, 69, 65, 58, 50, 34, 16, -6, -24, -36, -42, -45, -44, -39, + -33, -21, -2, 22, 43, 59, 64, 60, 47, 34, 17, -6, -28, -50, -66, -76, + -84, -86, -82, -72, -57, -40, -21, -2, 21, 42, 58, 66, 73, 76, 71, 64, + 53, 40, 26, 4, -17, -34, -45, -49, -48, -43, -38, -28, -10, 15, 40, 58, + 66, 64, 56, 42, 25, 4, -21, -44, -62, -73, -81, -87, -86, -78, -65, -47, + -31, -9, 15, 34, 52, 62, 72, 79, 80, 72, 61, 49, 34, 12, -12, -32, + -43, -49, -54, -55, -48, -36, -16, 10, 35, 56, 67, 71, 67, 54, 38, 15, + -10, -34, -57, -72, -85, -93, -97, -89, -76, -59, -40, -20, 8, 32, 50, 67, + 77, 87, 89, 81, 66, 52, 35, 16, -6, -30, -47, -58, -61, -57, -50, -37, + -19, 6, 29, 51, 65, 73, 73, 62, 44, 18, -6, -28, -49, -67, -81, -93, + -97, -94, -83, -65, -47, -28, -5, 19, 42, 61, 76, 87, 90, 88, 80, 66, + 48, 27, 3, -17, -40, -56, -65, -66, -58, -49, -30, -6, 17, 41, 59, 71, + 77, 70, 56, 36, 11, -13, -34, -53, -71, -89, -98, -100, -94, -79, -62, -44, + -21, 3, 27, 52, 74, 90, 98, 95, 86, 75, 59, 37, 12, -14, -35, -54, + -64, -67, -64, -51, -34, -10, 11, 32, 50, 65, 73, 71, 58, 37, 14, -10, + -29, -48, -64, -81, -93, -98, -94, -82, -63, -45, -26, -5, 16, 40, 65, 83, + 94, 94, 84, 75, 63, 46, 23, -3, -27, -47, -58, -64, -64, -56, -39, -17, + 3, 20, 38, 57, 71, 72, 61, 45, 24, 1, -19, -37, -56, -73, -91, -99, + -100, -92, -74, -53, -34, -16, 7, 31, 59, 82, 97, 101, 92, 78, 65, 48, + 29, 6, -21, -43, -55, -64, -66, -58, -40, -18, 3, 17, 32, 51, 69, 71, + 62, 45, 27, 6, -15, -34, -50, -64, -81, -93, -99, -96, -80, -59, -40, -23, + -4, 21, 50, 77, 94, 100, 93, 81, 67, 53, 36, 14, -12, -36, -53, -58, + -63, -56, -42, -22, -5, 10, 23, 42, 63, 70, 62, 47, 29, 13, -6, -27, + -43, -57, -72, -84, -98, -99, -87, -66, -44, -27, -11, 10, 38, 67, 91, 99, + 92, 82, 70, 57, 41, 21, -3, -27, -47, -58, -63, -58, -44, -23, -5, 7, + 17, 35, 55, 66, 61, 46, 29, 13, -4, -22, -39, -51, -65, -78, -90, -95, + -85, -69, -47, -30, -12, 9, 30, 57, 83, 96, 91, 81, 67, 57, 42, 26, + 6, -18, -39, -55, -62, -58, -43, -24, -8, 2, 14, 30, 47, 60, 60, 49, + 34, 17, 0, -16, -31, -43, -58, -71, -86, -93, -86, -72, -52, -32, -15, 3, + 22, 48, 76, 90, 89, 78, 69, 59, 46, 32, 14, -6, -27, -47, -57, -56, + -45, -29, -12, -5, 4, 18, 37, 54, 58, 51, 36, 21, 6, -8, -20, -33, + -52, -68, -84, -90, -85, -74, -58, -42, -22, 0, 20, 42, 67, 83, 87, 80, + 68, 58, 47, 34, 19, 0, -20, -40, -52, -53, -45, -27, -13, -4, 6, 17, + 33, 47, 53, 52, 38, 21, 3, -11, -24, -35, -50, -65, -80, -89, -85, -71, + -55, -39, -21, -2, 20, 39, 59, 74, 81, 75, 67, 57, 47, 38, 23, 4, + -17, -32, -43, -45, -39, -26, -14, -4, 4, 12, 26, 38, 47, 48, 35, 19, + 4, -10, -20, -29, -41, -56, -71, -78, -81, -71, -56, -43, -23, -6, 15, 35, + 49, 62, 72, 69, 63, 54, 45, 41, 28, 11, -11, -27, -37, -40, -35, -24, + -17, -7, 2, 9, 22, 35, 46, 49, 37, 21, 4, -9, -18, -27, -41, -55, + -71, -79, -79, -70, -53, -38, -23, -8, 9, 31, 46, 58, 63, 63, 59, 52, + 45, 40, 32, 14, -6, -24, -32, -31, -30, -23, -18, -12, 1, 9, 21, 31, + 41, 44, 33, 21, 5, -6, -20, -29, -43, -57, -69, -77, -73, -65, -52, -41, + -27, -8, 11, 32, 49, 57, 64, 61, 55, 47, 39, 36, 29, 13, -8, -25, + -36, -35, -26, -16, -9, -5, 1, 9, 22, 36, 45, 43, 33, 17, 1, -11, + -21, -32, -45, -57, -71, -78, -73, -61, -45, -33, -23, -8, 11, 31, 46, 53, + 57, 54, 48, 40, 34, 31, 27, 14, -4, -20, -29, -28, -22, -12, -4, 1, + 4, 8, 21, 34, 43, 43, 31, 17, 1, -11, -22, -31, -44, -59, -72, -78, + -70, -54, -40, -28, -19, -8, 10, 28, 45, 53, 57, 53, 43, 34, 28, 27, + 26, 18, 0, -18, -31, -29, -20, -11, -3, 2, 5, 10, 19, 31, 43, 44, + 34, 19, 2, -13, -23, -32, -43, -55, -68, -77, -73, -57, -41, -26, -15, -6, + 11, 28, 43, 52, 52, 49, 41, 33, 24, 22, 21, 14, 1, -14, -25, -24, + -18, -7, -2, 2, 7, 10, 20, 31, 40, 43, 33, 18, 3, -13, -24, -35, + -44, -55, -70, -78, -74, -59, -40, -26, -11, 1, 13, 29, 44, 53, 57, 54, + 45, 32, 24, 18, 13, 9, -4, -16, -26, -29, -22, -10, 1, 8, 13, 18, + 23, 35, 42, 45, 37, 21, 5, -14, -30, -41, -49, -57, -69, -77, -76, -61, + -39, -20, -5, 9, 20, 34, 47, 53, 55, 48, 39, 27, 14, 8, 3, 2, + -4, -15, -23, -24, -16, -3, 6, 11, 19, 24, 30, 34, 41, 43, 35, 18, + 1, -17, -31, -44, -52, -59, -68, -75, -73, -61, -38, -19, 1, 13, 23, 30, + 42, 52, 52, 47, 36, 23, 14, 7, 4, 0, -6, -11, -20, -24, -18, -5, + 7, 15, 18, 22, 28, 36, 43, 43, 38, 24, 4, -13, -30, -44, -55, -64, + -69, -77, -76, -65, -44, -19, 1, 15, 27, 35, 46, 53, 53, 46, 36, 23, + 11, 3, -5, -7, -9, -14, -20, -23, -19, -7, 11, 18, 21, 25, 30, 40, + 43, 43, 38, 24, 7, -14, -30, -41, -55, -65, -73, -77, -74, -66, -49, -24, + -2, 17, 29, 35, 44, 51, 54, 49, 35, 23, 11, 1, -6, -12, -15, -16, + -20, -24, -21, -10, 8, 21, 27, 33, 35, 42, 48, 47, 37, 23, 7, -12, + -28, -44, -60, -69, -75, -78, -74, -65, -49, -25, -2, 17, 30, 40, 48, 54, + 55, 48, 36, 20, 6, -4, -9, -14, -20, -22, -24, -21, -15, -6, 7, 21, + 32, 39, 43, 44, 49, 50, 38, 21, 4, -13, -28, -47, -62, -74, -77, -78, + -77, -65, -48, -26, -4, 15, 28, 40, 50, 56, 54, 46, 33, 20, 9, -2, + -10, -16, -21, -21, -23, -21, -15, -5, 9, 19, 30, 38, 42, 44, 46, 47, + 36, 22, 6, -10, -23, -39, -57, -74, -78, -79, -75, -65, -51, -33, -11, 9, + 25, 37, 46, 55, 56, 48, 34, 21, 10, 4, -4, -14, -20, -25, -24, -21, + -12, -3, 8, 17, 26, 36, 47, 50, 50, 47, 36, 25, 10, -5, -21, -40, + -57, -75, -82, -79, -75, -64, -51, -37, -16, 5, 25, 40, 48, 55, 55, 49, + 37, 25, 15, 6, -6, -18, -26, -29, -25, -20, -16, -7, 5, 17, 29, 39, + 49, 56, 56, 51, 39, 28, 15, 0, -17, -38, -58, -75, -86, -86, -80, -70, + -54, -37, -16, 7, 25, 42, 50, 55, 58, 52, 40, 25, 11, 2, -5, -14, + -21, -26, -26, -18, -12, -5, 4, 13, 25, 34, 45, 53, 55, 48, 39, 25, + 16, 3, -13, -31, -54, -70, -83, -85, -78, -68, -55, -38, -20, 1, 20, 36, + 46, 51, 55, 48, 39, 27, 17, 7, -5, -13, -20, -23, -23, -18, -10, -4, + 3, 10, 21, 29, 40, 48, 52, 50, 40, 28, 20, 10, -5, -24, -48, -67, + -82, -87, -81, -73, -56, -44, -25, -5, 15, 34, 46, 52, 55, 51, 39, 27, + 18, 7, -2, -13, -22, -25, -24, -16, -9, 1, 8, 13, 22, 30, 42, 48, + 50, 47, 38, 26, 15, 6, -8, -22, -41, -61, -77, -86, -81, -70, -54, -40, + -27, -8, 12, 31, 42, 49, 50, 48, 38, 26, 16, 7, -4, -11, -18, -22, + -21, -16, -9, 0, 9, 15, 21, 26, 35, 47, 50, 46, 36, 28, 18, 7, + -7, -22, -37, -53, -70, -81, -83, -72, -58, -43, -30, -14, 5, 22, 37, 44, + 46, 44, 37, 26, 17, 8, 2, -7, -12, -17, -16, -12, -6, 3, 8, 13, + 17, 22, 31, 42, 43, 43, 35, 29, 25, 14, 2, -17, -35, -51, -65, -77, + -80, -75, -63, -47, -34, -18, 4, 21, 32, 38, 41, 41, 36, 28, 17, 8, + 1, -9, -12, -16, -15, -9, -2, 8, 13, 15, 17, 23, 28, 39, 43, 38, + 30, 21, 17, 11, 4, -12, -28, -45, -60, -68, -71, -66, -58, -49, -38, -23, + -5, 15, 27, 34, 34, 32, 28, 23, 18, 13, 4, -2, -7, -9, -7, -4, + 5, 14, 16, 16, 14, 15, 24, 35, 39, 35, 23, 17, 15, 11, 8, -4, + -19, -37, -53, -62, -65, -62, -57, -53, -43, -31, -14, 5, 19, 27, 31, 28, + 26, 23, 20, 18, 11, 5, -2, -5, 0, 3, 8, 14, 16, 15, 11, 7, + 12, 23, 32, 32, 21, 12, 10, 13, 12, 6, -9, -27, -43, -50, -55, -53, + -51, -52, -44, -38, -23, -6, 7, 18, 22, 19, 16, 15, 16, 19, 17, 12, + 6, 3, 7, 10, 16, 20, 23, 20, 14, 8, 9, 17, 27, 26, 17, 6, + 3, 7, 10, 7, -5, -18, -32, -41, -46, -45, -45, -45, -44, -40, -30, -16, + -3, 8, 15, 12, 10, 11, 16, 19, 19, 16, 12, 10, 11, 15, 20, 25, + 26, 24, 18, 11, 6, 11, 17, 21, 15, 3, -6, -2, 4, 7, 2, -14, + -25, -32, -36, -38, -37, -37, -35, -33, -33, -25, -15, -4, 3, 4, 0, -3, + 2, 13, 21, 21, 20, 17, 19, 23, 27, 31, 33, 31, 24, 16, 4, 2, + 7, 13, 13, 3, -10, -9, 0, 8, 7, -3, -15, -22, -24, -30, -32, -37, + -39, -38, -37, -34, -28, -17, -8, -2, -4, -4, 4, 16, 26, 30, 26, 22, + 22, 25, 29, 31, 30, 29, 24, 17, 6, -2, 7, 10, 13, 4, -11, -15, + -10, 3, 8, 2, -10, -17, -17, -17, -23, -29, -35, -37, -34, -36, -35, -28, + -19, -10, -11, -14, -8, 8, 21, 26, 26, 21, 24, 31, 38, 40, 38, 37, + 33, 26, 15, 4, 1, 2, 1, -6, -19, -24, -18, -7, 2, 5, -4, -10, + -9, -6, -7, -16, -27, -33, -35, -38, -41, -38, -32, -22, -20, -18, -10, 4, + 20, 29, 31, 30, 28, 32, 38, 43, 42, 39, 34, 28, 14, 4, 1, 3, + 4, -5, -21, -30, -26, -14, 1, 3, -4, -8, -8, 0, 0, -8, -15, -26, + -29, -35, -40, -40, -36, -30, -28, -29, -22, -10, 9, 22, 28, 28, 27, 30, + 39, 46, 50, 50, 43, 33, 21, 9, 3, 3, 1, -10, -22, -35, -34, -22, + -8, 2, 0, -6, -7, 0, 5, -2, -9, -18, -28, -34, -41, -43, -39, -35, + -33, -33, -25, -12, 5, 19, 26, 29, 31, 31, 39, 46, 51, 52, 47, 38, + 27, 18, 10, 5, -3, -13, -22, -33, -36, -28, -16, -4, -2, -4, -6, 0, + 8, 7, 0, -12, -22, -33, -40, -42, -39, -37, -38, -39, -32, -17, 2, 15, + 24, 25, 28, 33, 39, 47, 51, 53, 51, 44, 35, 23, 15, 8, 1, -12, + -25, -37, -41, -33, -22, -11, -4, -5, -3, 3, 10, 13, 6, -5, -17, -28, + -38, -43, -44, -44, -44, -43, -36, -23, -7, 7, 20, 26, 29, 35, 43, 51, + 54, 58, 56, 52, 44, 29, 18, 9, -2, -12, -28, -39, -45, -38, -26, -16, + -7, -3, 1, 6, 12, 15, 12, 3, -11, -25, -37, -41, -43, -46, -47, -46, + -39, -28, -15, 0, 11, 21, 25, 31, 38, 46, 53, 60, 62, 59, 53, 42, + 32, 19, 6, -10, -27, -41, -47, -47, -39, -31, -21, -9, -2, 5, 11, 16, + 19, 13, 2, -15, -30, -35, -37, -43, -47, -49, -42, -32, -21, -11, 0, 8, + 19, 27, 38, 47, 51, 58, 63, 63, 59, 50, 41, 28, 10, -9, -26, -37, + -43, -44, -40, -33, -23, -11, 0, 6, 9, 14, 15, 13, 1, -15, -25, -32, + -34, -43, -49, -50, -43, -30, -20, -13, -9, 0, 10, 23, 36, 46, 52, 55, + 62, 65, 66, 61, 51, 36, 15, -7, -24, -34, -42, -45, -46, -42, -34, -20, + -5, 5, 11, 14, 16, 13, 2, -10, -18, -24, -31, -39, -49, -48, -42, -34, + -24, -18, -15, -8, 2, 13, 29, 42, 51, 57, 62, 65, 70, 69, 60, 45, + 20, -3, -24, -37, -43, -46, -49, -48, -39, -24, -6, 5, 12, 17, 20, 16, + 6, -9, -15, -21, -26, -38, -50, -56, -50, -37, -26, -23, -19, -14, -4, 11, + 27, 42, 54, 58, 63, 65, 68, 70, 63, 50, 26, 1, -21, -37, -43, -44, + -44, -44, -40, -28, -11, 5, 10, 16, 18, 14, 5, -12, -19, -22, -24, -33, + -47, -52, -52, -38, -25, -17, -17, -16, -10, 4, 22, 39, 53, 59, 62, 63, + 66, 68, 66, 55, 32, 9, -17, -34, -43, -42, -39, -38, -38, -31, -19, -3, + 10, 17, 19, 12, 3, -12, -21, -24, -24, -31, -40, -49, -52, -41, -30, -18, + -15, -17, -10, 0, 16, 33, 47, 59, 65, 64, 65, 67, 63, 56, 38, 13, + -12, -32, -41, -39, -35, -33, -32, -27, -17, -4, 8, 15, 16, 13, 4, -11, + -20, -25, -27, -32, -40, -48, -52, -46, -37, -25, -18, -16, -10, 1, 16, 33, + 49, 59, 66, 67, 65, 66, 62, 51, 38, 15, -9, -30, -38, -41, -33, -29, + -26, -23, -17, -5, 7, 16, 15, 14, 5, -9, -19, -27, -31, -34, -40, -47, + -52, -49, -40, -30, -22, -16, -8, 4, 19, 32, 46, 59, 67, 71, 69, 64, + 57, 49, 36, 17, -7, -27, -38, -40, -35, -28, -23, -19, -12, -5, 6, 12, + 16, 15, 10, -5, -19, -28, -32, -36, -39, -46, -53, -52, -45, -34, -25, -18, + -7, 6, 20, 33, 46, 60, 67, 74, 71, 65, 56, 46, 37, 18, -2, -20, + -33, -38, -38, -30, -22, -16, -12, -6, 2, 6, 15, 15, 11, 1, -11, -19, + -31, -37, -42, -46, -51, -54, -53, -46, -35, -26, -14, 3, 17, 33, 45, 57, + 67, 75, 77, 71, 62, 50, 36, 18, 0, -19, -31, -36, -37, -31, -23, -17, + -11, -6, 1, 6, 11, 15, 14, 8, -3, -16, -27, -37, -41, -47, -52, -58, + -60, -55, -46, -32, -16, 0, 17, 32, 46, 59, 70, 79, 80, 75, 65, 51, + 35, 20, 2, -15, -27, -38, -42, -36, -27, -17, -10, -4, 3, 7, 12, 18, + 19, 14, 5, -7, -22, -37, -46, -53, -57, -62, -67, -65, -58, -43, -22, 1, + 20, 35, 48, 60, 69, 79, 82, 79, 68, 53, 36, 21, 4, -11, -24, -36, + -40, -38, -31, -21, -14, -5, 1, 5, 11, 17, 22, 19, 14, -2, -17, -35, + -48, -55, -63, -67, -73, -72, -64, -49, -27, -4, 19, 36, 52, 64, 73, 81, + 85, 82, 72, 56, 36, 20, 3, -14, -24, -33, -36, -35, -32, -22, -13, -6, + 2, 7, 10, 15, 19, 19, 17, 6, -10, -29, -48, -58, -67, -71, -75, -78, + -72, -58, -35, -10, 16, 35, 52, 65, 74, 80, 86, 87, 79, 62, 39, 21, + 5, -11, -22, -33, -39, -39, -34, -25, -15, -7, 3, 8, 16, 17, 21, 22, + 19, 9, -6, -27, -47, -60, -71, -77, -80, -81, -73, -61, -39, -12, 16, 36, + 52, 63, 73, 80, 85, 87, 76, 59, 41, 23, 8, -7, -18, -29, -36, -38, + -33, -23, -13, -8, 1, 6, 14, 18, 19, 23, 23, 17, 1, -20, -43, -57, + -67, -78, -83, -89, -81, -67, -45, -19, 9, 35, 55, 67, 74, 80, 87, 91, + 83, 68, 44, 24, 6, -9, -21, -29, -36, -39, -39, -31, -20, -10, 1, 13, + 20, 26, 26, 27, 28, 22, 8, -16, -40, -60, -75, -86, -93, -95, -89, -75, + -52, -24, 7, 37, 57, 69, 77, 83, 90, 93, 85, 70, 48, 27, 8, -8, + -19, -26, -32, -35, -39, -37, -28, -17, -2, 9, 19, 21, 27, 31, 32, 29, + 12, -9, -32, -54, -71, -86, -94, -96, -90, -82, -62, -33, 2, 34, 56, 69, + 78, 87, 94, 94, 85, 69, 49, 29, 9, -10, -21, -27, -30, -33, -37, -36, + -29, -17, -5, 9, 19, 25, 27, 31, 33, 33, 21, -2, -25, -51, -71, -86, + -95, -95, -92, -85, -69, -42, -8, 27, 52, 67, 74, 83, 92, 95, 89, 75, + 56, 35, 16, -6, -17, -26, -28, -34, -41, -39, -37, -25, -9, 6, 20, 28, + 31, 37, 37, 34, 24, 3, -20, -46, -69, -85, -96, -99, -97, -89, -73, -47, + -11, 21, 45, 61, 73, 84, 92, 95, 89, 77, 61, 41, 20, -2, -13, -20, + -28, -36, -43, -46, -40, -30, -16, 0, 12, 24, 30, 38, 43, 41, 33, 13, + -14, -39, -63, -80, -93, -98, -100, -94, -76, -52, -19, 14, 38, 56, 70, 80, + 90, 94, 88, 75, 58, 40, 22, 6, -8, -19, -25, -33, -39, -41, -38, -31, + -19, -5, 7, 21, 31, 39, 45, 42, 32, 15, -8, -32, -55, -77, -93, -102, + -101, -94, -80, -57, -29, 5, 34, 54, 70, 78, 88, 96, 92, 80, 62, 41, + 24, 8, -9, -21, -32, -35, -38, -41, -39, -35, -22, -6, 6, 21, 31, 39, + 46, 44, 35, 18, -5, -27, -49, -70, -86, -97, -102, -96, -84, -58, -30, -2, + 26, 45, 62, 74, 82, 89, 89, 80, 66, 46, 28, 12, -3, -14, -26, -36, + -39, -42, -40, -36, -28, -15, 0, 17, 30, 37, 45, 48, 40, 23, 3, -20, + -43, -64, -81, -93, -98, -96, -85, -65, -38, -8, 20, 40, 55, 68, 80, 88, + 88, 82, 68, 54, 35, 18, 2, -12, -24, -35, -40, -45, -45, -41, -33, -20, + -4, 15, 31, 41, 49, 52, 48, 32, 13, -14, -38, -59, -77, -92, -101, -102, + -91, -70, -45, -15, 15, 38, 53, 65, 77, 89, 91, 85, 71, 52, 38, 21, + 5, -12, -26, -36, -42, -45, -45, -43, -34, -22, -7, 9, 26, 39, 50, 56, + 50, 34, 14, -7, -29, -50, -69, -84, -96, -98, -90, -72, -50, -24, 7, 32, + 48, 57, 68, 84, 91, 88, 74, 58, 44, 30, 11, -9, -26, -38, -41, -46, + -45, -44, -38, -23, -7, 9, 24, 36, 49, 55, 51, 35, 18, -3, -24, -45, + -64, -78, -89, -93, -90, -75, -54, -29, 0, 23, 42, 54, 67, 80, 90, 91, + 81, 65, 48, 31, 13, -5, -24, -41, -50, -53, -51, -46, -42, -28, -10, 8, + 23, 36, 50, 59, 56, 44, 26, 8, -13, -35, -56, -77, -89, -94, -92, -80, + -61, -39, -11, 14, 33, 50, 63, 77, 88, 89, 81, 67, 54, 38, 21, 1, + -23, -39, -50, -54, -53, -46, -42, -31, -17, 1, 17, 33, 46, 56, 56, 46, + 33, 16, -4, -24, -46, -67, -82, -92, -94, -87, -67, -45, -19, 4, 22, 43, + 62, 76, 87, 90, 87, 76, 59, 40, 20, 1, -22, -40, -55, -62, -58, -50, + -40, -29, -17, -3, 14, 33, 49, 59, 58, 49, 35, 21, 2, -17, -39, -59, + -76, -90, -93, -86, -70, -49, -29, -8, 12, 33, 57, 75, 84, 87, 84, 78, + 65, 47, 28, 6, -18, -39, -58, -65, -64, -57, -44, -33, -22, -10, 6, 26, + 44, 56, 56, 48, 40, 27, 11, -8, -30, -49, -65, -80, -86, -87, -72, -51, + -31, -13, 5, 24, 48, 70, 81, 86, 83, 79, 69, 51, 30, 8, -16, -37, + -55, -65, -67, -61, -48, -36, -21, -10, 5, 22, 40, 55, 58, 53, 43, 31, + 16, -2, -23, -45, -60, -74, -82, -86, -75, -56, -36, -16, 1, 21, 44, 65, + 81, 88, 85, 81, 72, 54, 33, 8, -18, -41, -58, -71, -74, -70, -56, -41, + -23, -6, 8, 23, 38, 53, 60, 59, 50, 37, 22, 1, -20, -41, -56, -69, + -79, -83, -78, -62, -42, -20, 2, 22, 41, 59, 77, 86, 87, 79, 67, 50, + 31, 10, -15, -36, -52, -63, -69, -69, -59, -41, -23, -9, 4, 15, 29, 44, + 55, 56, 53, 43, 27, 12, -8, -27, -44, -57, -68, -78, -77, -67, -48, -29, + -12, 12, 32, 52, 70, 79, 84, 82, 73, 59, 38, 15, -9, -33, -52, -63, + -71, -72, -66, -50, -30, -13, 2, 12, 27, 42, 50, 54, 54, 46, 34, 19, + -2, -19, -35, -47, -61, -71, -72, -66, -51, -36, -19, 5, 27, 46, 63, 74, + 79, 79, 70, 58, 41, 21, 3, -24, -44, -58, -66, -66, -65, -52, -36, -22, + -10, 4, 18, 34, 43, 49, 52, 48, 43, 31, 14, -4, -21, -35, -51, -61, + -66, -64, -56, -43, -29, -8, 16, 37, 54, 67, 72, 74, 70, 61, 46, 27, + 7, -19, -40, -56, -62, -62, -63, -55, -43, -26, -10, 3, 13, 26, 38, 44, + 47, 43, 39, 30, 19, 5, -12, -24, -40, -47, -51, -53, -51, -44, -32, -14, + 6, 24, 41, 54, 61, 63, 61, 56, 47, 32, 13, -9, -31, -46, -56, -53, + -54, -54, -48, -37, -18, -3, 8, 17, 27, 33, 38, 39, 39, 37, 30, 18, + 1, -16, -29, -35, -39, -42, -47, -47, -39, -22, -3, 14, 29, 42, 51, 57, + 56, 54, 45, 36, 20, -2, -23, -41, -50, -51, -52, -53, -51, -42, -27, -8, + 5, 12, 19, 28, 35, 40, 39, 40, 37, 28, 12, -7, -23, -28, -30, -37, + -43, -49, -45, -32, -15, 3, 19, 34, 45, 49, 49, 51, 47, 41, 26, 6, + -18, -34, -43, -45, -45, -48, -51, -49, -33, -15, -2, 8, 12, 19, 26, 33, + 38, 38, 38, 34, 25, 8, -11, -19, -20, -23, -32, -43, -48, -41, -24, -8, + 10, 21, 31, 38, 43, 47, 48, 45, 34, 16, -9, -31, -41, -42, -42, -46, + -52, -52, -40, -23, -6, 6, 11, 17, 24, 30, 35, 38, 39, 40, 29, 14, + -3, -14, -14, -15, -24, -36, -47, -45, -33, -15, 3, 14, 23, 29, 35, 39, + 44, 45, 38, 22, -3, -26, -38, -37, -37, -41, -50, -56, -45, -26, -8, 5, + 12, 16, 22, 27, 32, 39, 41, 41, 33, 17, 1, -9, -8, -8, -16, -30, + -41, -45, -35, -21, -5, 10, 18, 24, 28, 31, 38, 42, 39, 25, 2, -23, + -36, -36, -37, -39, -47, -53, -47, -31, -11, 3, 12, 16, 23, 27, 32, 37, + 40, 41, 33, 18, 2, -7, -8, -6, -10, -23, -36, -41, -35, -20, -6, 7, + 14, 17, 24, 29, 36, 42, 40, 28, 5, -20, -35, -38, -38, -39, -45, -51, + -46, -33, -15, 2, 13, 22, 27, 28, 27, 30, 37, 41, 35, 20, 5, -4, + -4, -2, -3, -13, -28, -35, -32, -23, -10, 3, 11, 14, 14, 20, 28, 37, + 40, 27, 7, -16, -31, -36, -37, -36, -41, -44, -45, -35, -18, 1, 12, 19, + 25, 26, 27, 31, 34, 39, 34, 20, 8, 0, 0, 1, 0, -9, -23, -33, + -34, -24, -10, 2, 8, 8, 10, 16, 27, 34, 35, 27, 10, -10, -27, -35, + -35, -34, -39, -46, -47, -38, -22, -3, 10, 19, 26, 31, 32, 32, 35, 41, + 39, 25, 9, -2, -3, -2, -2, -7, -19, -30, -33, -26, -14, -3, 6, 6, + 7, 12, 26, 37, 37, 26, 10, -8, -25, -35, -39, -39, -42, -47, -49, -42, + -27, -4, 12, 20, 29, 33, 36, 35, 35, 38, 37, 27, 10, -3, -6, -3, + -2, -7, -16, -24, -28, -24, -13, -4, 4, 5, 7, 9, 19, 30, 33, 28, + 12, -6, -24, -35, -40, -39, -42, -47, -47, -41, -26, -8, 10, 22, 31, 36, + 41, 39, 34, 33, 33, 29, 15, 2, -7, -8, -6, -6, -10, -18, -24, -24, + -15, -5, 6, 7, 7, 10, 17, 23, 23, 18, 9, -7, -23, -36, -42, -41, + -41, -45, -45, -39, -28, -11, 7, 21, 31, 36, 39, 39, 34, 31, 33, 29, + 19, 7, -5, -6, -6, -4, -6, -13, -17, -20, -16, -8, 1, 6, 7, 7, + 11, 16, 20, 18, 9, -7, -24, -37, -43, -42, -42, -42, -45, -41, -28, -11, + 7, 19, 28, 35, 40, 42, 38, 33, 29, 27, 21, 10, -2, -8, -8, -6, + -8, -11, -13, -16, -14, -8, 1, 5, 8, 9, 15, 19, 20, 18, 9, -4, + -18, -34, -42, -46, -47, -45, -47, -45, -36, -20, 0, 13, 26, 36, 45, 48, + 42, 35, 29, 28, 26, 20, 6, -6, -10, -10, -6, -7, -8, -10, -14, -10, + -7, 0, 6, 8, 13, 14, 16, 13, 7, -3, -13, -27, -37, -44, -49, -44, + -42, -40, -37, -25, -9, 9, 23, 31, 41, 44, 44, 37, 30, 27, 28, 27, + 15, 2, -7, -9, -6, -7, -9, -8, -13, -12, -8, -3, 4, 9, 13, 14, + 14, 11, 6, 0, -9, -23, -34, -43, -49, -46, -42, -40, -35, -29, -13, 3, + 19, 31, 41, 45, 43, 37, 31, 29, 30, 28, 19, 4, -5, -7, -7, -5, + -8, -7, -9, -11, -9, -4, 0, 6, 12, 14, 13, 9, 5, -3, -9, -19, + -28, -37, -48, -48, -45, -39, -34, -30, -18, -5, 12, 23, 34, 42, 44, 39, + 34, 32, 31, 33, 30, 18, 8, 1, -5, -6, -5, -5, -8, -13, -16, -14, + -7, 2, 7, 11, 10, 7, 4, -2, -7, -12, -22, -32, -45, -50, -45, -38, + -33, -30, -24, -13, 2, 20, 31, 39, 43, 42, 38, 36, 33, 33, 33, 24, + 14, 1, -8, -9, -7, -4, -5, -11, -16, -16, -11, -4, 2, 9, 8, 7, + 3, -3, -6, -9, -15, -24, -38, -47, -48, -42, -35, -32, -29, -21, -9, 11, + 27, 35, 42, 42, 42, 40, 40, 38, 36, 30, 19, 8, -4, -9, -8, -5, + -5, -12, -18, -20, -15, -5, -2, 3, 4, 5, 6, 1, -3, -8, -12, -19, + -31, -43, -47, -43, -36, -35, -36, -32, -19, 2, 19, 30, 38, 42, 46, 49, + 50, 47, 43, 39, 28, 16, 1, -10, -13, -11, -9, -14, -21, -25, -20, -10, + -4, 1, 3, 4, 7, 4, -3, -7, -7, -10, -23, -38, -47, -46, -41, -37, + -38, -37, -27, -11, 11, 24, 33, 38, 45, 50, 53, 52, 48, 43, 37, 25, + 10, -3, -11, -11, -11, -13, -20, -27, -29, -22, -14, -7, -2, 2, 6, 3, + -2, -3, 0, 0, -11, -28, -41, -45, -39, -35, -36, -39, -37, -24, -7, 11, + 22, 32, 41, 51, 55, 56, 54, 53, 50, 40, 23, 6, -5, -10, -11, -14, + -20, -28, -34, -33, -25, -16, -10, -5, 0, 0, 1, 2, 4, 5, -4, -16, + -29, -35, -37, -37, -35, -39, -39, -32, -19, 0, 13, 23, 36, 46, 54, 58, + 57, 59, 56, 47, 33, 16, 3, -5, -9, -11, -19, -29, -36, -39, -33, -26, + -18, -12, -7, -5, -2, 4, 11, 15, 10, -3, -18, -29, -32, -35, -36, -41, + -44, -40, -30, -18, 0, 13, 28, 41, 50, 59, 63, 66, 66, 60, 44, 26, + 11, 2, -6, -12, -19, -29, -38, -44, -41, -33, -25, -16, -9, -8, -6, 1, + 11, 18, 16, 8, -6, -17, -27, -32, -36, -39, -43, -44, -37, -30, -12, 8, + 26, 39, 46, 56, 64, 70, 72, 66, 51, 36, 18, 7, -4, -11, -18, -29, + -42, -50, -51, -45, -35, -23, -14, -10, -9, 0, 14, 27, 29, 20, 7, -5, + -15, -23, -30, -38, -45, -50, -49, -43, -30, -9, 13, 31, 41, 52, 65, 75, + 79, 77, 66, 50, 30, 13, 3, -6, -14, -26, -41, -53, -57, -54, -44, -32, + -23, -17, -13, -5, 10, 24, 31, 28, 20, 9, -5, -17, -26, -35, -40, -48, + -54, -53, -44, -23, 0, 21, 35, 46, 60, 73, 81, 83, 77, 60, 42, 25, + 11, 1, -11, -25, -42, -57, -64, -62, -54, -43, -33, -24, -17, -6, 9, 23, + 37, 37, 33, 19, 6, -9, -20, -30, -41, -49, -57, -59, -54, -38, -16, 10, + 31, 46, 58, 70, 78, 85, 84, 73, 54, 32, 16, 5, -5, -22, -41, -60, + -72, -71, -66, -54, -43, -30, -19, -6, 10, 25, 41, 47, 43, 32, 20, 7, + -10, -25, -40, -52, -61, -68, -65, -54, -34, -11, 16, 39, 57, 72, 80, 88, + 91, 83, 67, 46, 28, 13, 1, -18, -40, -62, -77, -77, -70, -63, -54, -43, + -30, -12, 7, 25, 40, 51, 51, 42, 31, 19, 3, -13, -32, -48, -60, -68, + -71, -63, -49, -28, -2, 23, 46, 66, 77, 86, 92, 89, 82, 62, 43, 22, + 7, -12, -39, -59, -74, -80, -78, -72, -63, -50, -35, -17, 5, 22, 35, 45, + 49, 49, 42, 31, 13, -7, -25, -38, -49, -59, -66, -65, -57, -42, -20, 8, + 34, 55, 69, 79, 84, 84, 84, 77, 64, 42, 18, -6, -29, -49, -69, -82, + -87, -87, -78, -66, -48, -27, -4, 17, 33, 47, 56, 60, 58, 49, 31, 8, + -18, -36, -47, -57, -67, -75, -74, -60, -36, -3, 25, 48, 65, 76, 83, 87, + 90, 88, 77, 52, 24, -4, -26, -42, -61, -77, -91, -94, -85, -70, -54, -34, + -11, 12, 30, 44, 56, 63, 66, 61, 43, 19, -8, -27, -39, -49, -62, -74, + -80, -71, -49, -20, 9, 34, 56, 70, 79, 86, 93, 96, 91, 70, 41, 11, + -18, -39, -58, -77, -91, -99, -95, -83, -65, -42, -17, 7, 27, 43, 57, 66, + 69, 67, 55, 32, 5, -21, -32, -42, -56, -73, -84, -79, -60, -33, -5, 21, + 44, 61, 72, 80, 92, 100, 99, 82, 54, 23, -10, -31, -51, -71, -87, -101, + -101, -92, -76, -49, -24, 1, 21, 37, 52, 66, 72, 72, 64, 44, 18, -7, + -23, -31, -45, -64, -79, -83, -71, -46, -18, 7, 27, 46, 62, 72, 85, 97, + 100, 92, 65, 35, 2, -22, -40, -60, -78, -92, -100, -96, -82, -59, -29, -6, + 15, 28, 44, 57, 65, 67, 65, 49, 27, 2, -17, -23, -35, -53, -70, -79, + -73, -52, -27, -4, 16, 35, 54, 65, 77, 88, 95, 93, 73, 44, 12, -17, + -38, -54, -74, -86, -97, -98, -89, -69, -37, -11, 9, 27, 42, 56, 65, 68, + 71, 59, 39, 13, -9, -20, -30, -45, -62, -74, -75, -60, -41, -18, 3, 23, + 43, 60, 74, 83, 91, 91, 78, 52, 22, -8, -30, -46, -66, -82, -90, -92, + -85, -70, -44, -17, 5, 22, 33, 45, 56, 60, 63, 56, 39, 21, 5, -9, + -20, -33, -49, -62, -70, -62, -47, -28, -9, 11, 29, 47, 60, 73, 83, 87, + 81, 62, 32, 4, -21, -39, -60, -78, -88, -90, -86, -73, -55, -28, -2, 18, + 30, 42, 50, 57, 58, 53, 44, 27, 15, 4, -10, -24, -40, -53, -59, -57, + -49, -38, -21, -3, 17, 34, 49, 62, 75, 81, 76, 63, 39, 15, -11, -31, + -50, -69, -79, -84, -82, -73, -57, -34, -7, 12, 26, 35, 42, 50, 56, 53, + 42, 31, 20, 13, 1, -16, -30, -43, -50, -51, -49, -42, -28, -11, 7, 23, + 38, 52, 65, 75, 73, 62, 43, 20, -2, -24, -43, -60, -69, -74, -74, -69, + -59, -42, -19, 2, 19, 27, 34, 41, 48, 50, 45, 39, 33, 25, 13, -3, + -18, -32, -42, -47, -49, -47, -40, -27, -8, 11, 28, 43, 57, 69, 73, 65, + 50, 31, 8, -16, -36, -53, -63, -70, -72, -70, -62, -46, -25, -6, 11, 23, + 30, 38, 45, 49, 50, 46, 42, 33, 22, 6, -13, -25, -37, -43, -48, -50, + -45, -35, -18, 2, 21, 39, 51, 61, 64, 63, 53, 38, 19, -6, -30, -49, + -59, -63, -65, -66, -64, -52, -31, -14, 2, 13, 25, 35, 42, 46, 46, 47, + 48, 44, 33, 15, -6, -21, -32, -37, -42, -48, -46, -39, -26, -8, 12, 31, + 45, 55, 58, 57, 51, 39, 22, 2, -21, -39, -49, -56, -59, -62, -59, -52, + -38, -22, -9, 5, 16, 25, 32, 40, 46, 51, 54, 52, 40, 24, 5, -11, + -20, -28, -35, -44, -48, -43, -33, -17, 0, 18, 32, 44, 48, 49, 48, 40, + 28, 11, -10, -26, -37, -45, -52, -58, -57, -51, -41, -29, -19, -10, 3, 15, + 27, 36, 40, 50, 59, 60, 51, 33, 15, 2, -11, -21, -34, -45, -49, -45, + -36, -25, -11, 8, 26, 38, 43, 42, 41, 39, 31, 16, -5, -24, -31, -37, + -43, -51, -54, -49, -40, -31, -24, -13, -3, 12, 22, 29, 33, 43, 55, 60, + 53, 37, 18, 5, -4, -12, -23, -35, -44, -42, -35, -26, -15, -2, 15, 26, + 33, 31, 31, 29, 28, 21, 6, -13, -27, -30, -37, -44, -48, -45, -39, -34, + -28, -18, -8, 4, 17, 23, 31, 40, 51, 58, 56, 42, 25, 12, 2, -7, + -16, -27, -36, -39, -37, -31, -21, -12, 3, 14, 21, 25, 23, 23, 25, 23, + 11, -4, -16, -21, -26, -34, -39, -40, -34, -31, -30, -23, -17, -3, 9, 16, + 23, 31, 42, 54, 57, 49, 29, 14, 7, 4, -3, -15, -26, -32, -32, -31, + -24, -16, -5, 5, 8, 10, 9, 10, 16, 19, 14, 4, -8, -14, -16, -21, + -29, -34, -33, -30, -29, -26, -20, -10, 2, 11, 20, 28, 40, 51, 55, 51, + 33, 17, 9, 6, 4, -9, -20, -28, -32, -29, -25, -20, -11, -2, 3, 4, + 1, 6, 12, 18, 16, 8, -5, -10, -14, -17, -20, -23, -25, -26, -28, -26, + -21, -12, -2, 6, 13, 20, 29, 40, 48, 48, 37, 23, 13, 8, 7, 3, + -6, -15, -22, -24, -24, -21, -16, -10, -6, -11, -15, -10, 1, 12, 15, 9, + 4, 3, 1, -5, -11, -18, -18, -22, -25, -29, -27, -19, -7, 4, 10, 14, + 21, 35, 46, 48, 40, 27, 16, 13, 11, 11, 5, -5, -14, -19, -21, -24, + -19, -14, -13, -17, -21, -21, -11, 1, 11, 12, 5, 3, 2, 5, 6, 0, + -6, -16, -20, -25, -26, -20, -12, -4, 1, 5, 11, 25, 38, 46, 41, 33, + 21, 17, 15, 15, 14, 8, -3, -14, -23, -27, -26, -21, -20, -22, -26, -25, + -20, -7, 5, 10, 10, 8, 5, 6, 6, 5, 1, -7, -14, -20, -23, -21, + -17, -11, -4, 2, 7, 17, 29, 38, 40, 37, 30, 23, 21, 20, 17, 14, + 5, -6, -19, -26, -29, -25, -24, -27, -28, -28, -26, -18, -4, 6, 9, 8, + 4, 5, 10, 12, 11, 3, -8, -15, -18, -18, -15, -11, -10, -5, 1, 8, + 16, 26, 35, 35, 31, 24, 22, 21, 22, 21, 16, 5, -12, -24, -30, -31, + -29, -31, -32, -31, -32, -22, -12, 0, 7, 11, 12, 10, 11, 15, 13, 10, + 2, -10, -13, -16, -17, -14, -14, -12, -6, 0, 10, 20, 26, 32, 30, 29, + 27, 26, 28, 26, 22, 13, -2, -16, -25, -30, -32, -33, -35, -35, -34, -28, + -19, -12, -5, 1, 5, 9, 11, 16, 17, 18, 11, 3, -4, -10, -12, -13, + -12, -13, -14, -10, -4, 8, 20, 27, 31, 31, 28, 29, 31, 30, 26, 17, + 5, -9, -23, -32, -37, -36, -34, -35, -34, -32, -24, -16, -7, 2, 4, 6, + 10, 16, 17, 15, 12, 8, 3, -5, -11, -11, -10, -11, -12, -11, -5, 3, + 13, 22, 30, 32, 27, 25, 25, 28, 27, 19, 7, -8, -22, -31, -34, -32, + -30, -28, -31, -31, -29, -21, -12, -4, 1, 1, 3, 10, 16, 18, 18, 14, + 12, 3, -5, -8, -7, -8, -10, -12, -12, -5, 6, 16, 26, 30, 29, 24, + 25, 26, 29, 23, 13, -2, -16, -26, -32, -33, -30, -30, -30, -30, -29, -25, + -18, -12, -5, -2, 2, 8, 14, 18, 16, 18, 14, 10, 4, 0, -5, -4, + -7, -9, -14, -10, -3, 9, 19, 26, 26, 23, 23, 26, 29, 28, 21, 7, + -10, -19, -25, -26, -27, -27, -29, -30, -32, -31, -27, -19, -13, -9, -7, 0, + 9, 18, 24, 26, 21, 13, 9, 8, 4, -2, -6, -9, -11, -11, -7, 4, + 16, 24, 26, 21, 19, 22, 26, 29, 23, 7, -10, -17, -19, -19, -23, -25, + -25, -25, -26, -26, -29, -26, -17, -14, -9, -7, 1, 12, 21, 26, 23, 18, + 13, 11, 11, 6, -4, -6, -10, -10, -9, -2, 9, 20, 25, 23, 18, 18, + 23, 26, 24, 10, -5, -13, -17, -14, -15, -17, -20, -24, -25, -29, -31, -32, + -28, -22, -16, -13, -8, 2, 14, 25, 27, 27, 22, 17, 15, 13, 10, 5, + -3, -6, -8, -6, 1, 11, 18, 20, 13, 11, 15, 19, 20, 14, 4, -4, + -12, -12, -12, -12, -14, -17, -23, -30, -35, -37, -31, -26, -20, -16, -12, -4, + 9, 22, 28, 26, 22, 17, 14, 15, 11, 8, 6, 2, 0, -2, 4, 11, + 16, 16, 12, 7, 8, 13, 13, 10, 1, -5, -8, -8, -8, -7, -7, -10, + -20, -26, -34, -36, -33, -31, -29, -25, -19, -12, 4, 18, 27, 28, 23, 22, + 18, 19, 17, 14, 9, 7, 4, 0, 2, 8, 14, 16, 12, 2, 0, 2, + 5, 6, 2, -4, -7, -6, -2, -2, -3, -5, -11, -19, -28, -37, -37, -37, + -34, -29, -24, -18, -8, 7, 20, 25, 25, 25, 22, 21, 21, 21, 19, 15, + 11, 6, 6, 6, 10, 11, 6, -2, -5, -5, -2, 0, 0, 0, -4, 0, + 2, 4, 2, -2, -8, -16, -25, -34, -39, -42, -39, -33, -26, -21, -16, -4, + 11, 22, 25, 27, 25, 23, 23, 24, 25, 22, 17, 13, 10, 9, 12, 10, + 4, -5, -12, -12, -11, -9, -8, -6, -5, 1, 4, 8, 10, 7, 4, -7, + -18, -26, -34, -39, -43, -42, -34, -28, -22, -13, 2, 14, 18, 21, 23, 27, + 30, 32, 31, 28, 23, 20, 20, 15, 14, 10, 2, -5, -13, -15, -16, -16, + -12, -12, -5, 1, 5, 8, 8, 10, 8, 0, -13, -23, -27, -33, -40, -44, + -41, -32, -24, -17, -6, 3, 9, 17, 22, 25, 29, 34, 39, 36, 32, 26, + 25, 23, 19, 11, 1, -9, -16, -18, -17, -19, -21, -17, -8, 0, 4, 7, + 8, 10, 11, 6, -4, -13, -21, -25, -35, -40, -41, -37, -26, -21, -13, -8, + -3, 6, 15, 23, 27, 35, 40, 41, 38, 33, 31, 29, 24, 16, 5, -5, + -16, -23, -23, -23, -18, -14, -6, 2, 3, 4, 7, 11, 13, 7, -5, -13, + -21, -25, -32, -40, -42, -37, -28, -21, -14, -13, -9, 1, 11, 22, 27, 33, + 39, 43, 42, 41, 33, 29, 25, 18, 7, -6, -17, -25, -24, -23, -21, -16, + -9, 2, 6, 5, 5, 10, 15, 12, 3, -8, -16, -22, -29, -39, -44, -42, + -34, -27, -22, -21, -17, -8, 4, 19, 29, 40, 48, 53, 51, 49, 43, 38, + 28, 19, 6, -9, -19, -27, -30, -30, -24, -16, -10, -3, 3, 6, 5, 6, + 9, 11, 7, 2, -7, -16, -25, -34, -37, -37, -33, -31, -28, -27, -24, -20, + -10, 8, 22, 35, 46, 52, 53, 54, 49, 46, 37, 23, 9, -7, -18, -24, + -30, -32, -28, -22, -12, -5, 1, 6, 4, 8, 9, 11, 9, 3, -3, -13, + -21, -32, -37, -38, -35, -34, -32, -32, -32, -27, -14, 5, 24, 38, 48, 55, + 56, 56, 54, 50, 40, 23, 4, -10, -18, -24, -26, -29, -29, -24, -17, -5, + 2, 9, 9, 6, 6, 7, 12, 11, 6, -7, -18, -30, -36, -36, -37, -35, + -38, -40, -41, -36, -24, -2, 20, 35, 47, 55, 60, 62, 62, 61, 47, 26, + 7, -12, -18, -22, -24, -28, -33, -31, -24, -12, -2, 7, 9, 5, 4, 5, + 11, 14, 13, 7, -8, -24, -37, -41, -38, -34, -37, -44, -50, -46, -33, -10, + 16, 36, 49, 57, 61, 64, 66, 65, 55, 34, 11, -14, -24, -26, -26, -24, + -30, -34, -33, -24, -7, 5, 12, 10, 5, 6, 9, 16, 22, 21, 10, -10, + -32, -45, -44, -38, -38, -47, -61, -60, -48, -21, 11, 34, 51, 60, 63, 66, + 70, 69, 63, 45, 18, -10, -27, -27, -23, -20, -28, -36, -37, -32, -17, -2, + 8, 9, 5, 6, 8, 15, 24, 30, 25, 5, -22, -41, -44, -40, -38, -50, + -64, -72, -62, -37, -3, 29, 52, 62, 66, 69, 73, 78, 72, 54, 26, -5, + -25, -32, -29, -24, -27, -34, -37, -36, -26, -11, 5, 15, 15, 11, 9, 15, + 26, 35, 33, 14, -14, -37, -49, -47, -45, -51, -63, -72, -66, -42, -10, 22, + 49, 64, 69, 69, 70, 75, 73, 59, 34, 4, -20, -30, -30, -25, -24, -29, + -36, -40, -35, -22, -2, 16, 20, 17, 14, 15, 27, 39, 41, 27, -4, -32, + -48, -54, -53, -59, -65, -73, -71, -55, -23, 16, 49, 67, 70, 68, 71, 77, + 78, 65, 40, 10, -17, -31, -34, -28, -24, -26, -31, -40, -40, -30, -10, 10, + 21, 18, 15, 16, 26, 40, 48, 40, 13, -20, -44, -55, -61, -63, -69, -76, + -76, -63, -35, 6, 41, 66, 75, 71, 71, 75, 77, 67, 44, 17, -10, -25, + -34, -35, -29, -27, -28, -35, -40, -35, -18, 1, 16, 21, 20, 19, 25, 38, + 47, 43, 23, -9, -34, -50, -59, -65, -72, -76, -74, -66, -43, -9, 27, 58, + 71, 69, 70, 71, 73, 67, 48, 25, 2, -18, -28, -33, -29, -25, -25, -31, + -39, -41, -28, -10, 8, 19, 20, 23, 27, 36, 45, 45, 31, 4, -22, -45, + -58, -67, -74, -75, -73, -66, -50, -21, 16, 49, 67, 73, 72, 72, 74, 69, + 53, 33, 9, -11, -25, -34, -35, -31, -27, -30, -38, -43, -33, -16, 6, 18, + 24, 27, 30, 38, 45, 46, 34, 10, -16, -40, -61, -70, -77, -76, -72, -66, + -52, -31, 2, 36, 60, 71, 72, 69, 71, 68, 57, 44, 20, 2, -17, -32, + -36, -33, -31, -31, -40, -46, -41, -29, -5, 16, 27, 34, 35, 41, 49, 51, + 41, 17, -11, -34, -56, -71, -79, -80, -76, -68, -57, -36, -10, 21, 48, 64, + 71, 71, 73, 69, 61, 48, 32, 11, -5, -21, -31, -34, -34, -37, -43, -48, + -45, -34, -14, 8, 25, 34, 41, 43, 49, 51, 43, 26, -2, -27, -49, -65, + -74, -77, -74, -70, -58, -42, -20, 9, 38, 56, 64, 67, 69, 71, 66, 53, + 37, 16, 1, -15, -30, -33, -39, -38, -41, -45, -42, -35, -15, 7, 25, 36, + 41, 45, 49, 49, 40, 23, 1, -20, -41, -59, -71, -75, -73, -65, -57, -45, + -28, -6, 22, 42, 56, 63, 67, 71, 70, 59, 44, 28, 12, -3, -19, -32, + -40, -41, -46, -47, -46, -37, -20, -2, 20, 34, 45, 48, 52, 53, 42, 26, + 4, -15, -35, -51, -65, -70, -70, -68, -61, -50, -34, -15, 9, 28, 45, 54, + 64, 71, 72, 67, 53, 40, 24, 8, -10, -27, -37, -41, -49, -53, -53, -42, + -25, -8, 14, 31, 43, 52, 56, 56, 46, 30, 11, -8, -26, -43, -59, -70, + -69, -68, -62, -55, -44, -25, -4, 17, 36, 48, 62, 69, 69, 67, 57, 47, + 33, 17, -2, -21, -33, -41, -47, -52, -53, -43, -25, -10, 9, 23, 36, 46, + 52, 54, 47, 31, 14, -4, -19, -32, -49, -57, -62, -60, -57, -58, -51, -39, + -19, 6, 23, 38, 51, 60, 68, 71, 67, 58, 44, 27, 7, -17, -32, -41, + -47, -52, -54, -46, -31, -12, 7, 22, 35, 45, 51, 53, 46, 33, 18, 2, + -12, -26, -42, -55, -61, -60, -56, -57, -55, -46, -29, -8, 10, 27, 42, 55, + 65, 70, 69, 61, 49, 34, 16, -5, -23, -36, -45, -51, -54, -50, -35, -17, + 3, 17, 29, 37, 44, 51, 47, 39, 21, 6, -8, -20, -31, -44, -52, -58, + -60, -58, -58, -51, -39, -22, -4, 14, 31, 48, 62, 70, 69, 65, 57, 45, + 28, 7, -15, -31, -44, -50, -53, -50, -39, -24, -6, 11, 24, 33, 43, 46, + 45, 35, 25, 14, 1, -13, -23, -35, -44, -53, -57, -59, -59, -57, -47, -33, + -15, 3, 21, 39, 56, 69, 72, 69, 60, 49, 36, 17, -5, -25, -42, -52, + -52, -48, -40, -26, -9, 9, 20, 29, 34, 39, 40, 34, 25, 16, 6, -6, + -16, -27, -34, -44, -50, -55, -58, -57, -52, -41, -27, -11, 11, 31, 51, 67, + 70, 68, 61, 53, 43, 30, 7, -14, -35, -49, -54, -50, -40, -26, -13, -2, + 9, 22, 30, 38, 41, 36, 28, 20, 12, 4, -5, -15, -26, -41, -52, -58, + -60, -60, -59, -55, -41, -25, -5, 19, 42, 62, 74, 75, 70, 63, 55, 43, + 22, -3, -24, -42, -51, -50, -45, -32, -22, -14, -2, 14, 28, 35, 34, 33, + 30, 25, 21, 11, 4, -6, -18, -32, -46, -56, -61, -61, -62, -60, -51, -39, + -16, 11, 37, 58, 70, 75, 72, 67, 58, 46, 31, 10, -17, -35, -48, -49, + -41, -28, -17, -14, -7, 4, 18, 28, 32, 29, 27, 21, 19, 16, 7, 2, + -11, -22, -35, -48, -57, -61, -60, -60, -56, -47, -30, -5, 23, 48, 63, 72, + 75, 71, 64, 53, 39, 20, -2, -22, -40, -48, -45, -34, -21, -17, -10, -4, + 10, 22, 27, 28, 29, 26, 26, 22, 14, 7, -3, -14, -30, -46, -59, -65, + -65, -65, -64, -56, -41, -17, 15, 42, 62, 73, 77, 75, 69, 57, 43, 25, + 6, -12, -31, -44, -46, -37, -24, -16, -11, -3, 6, 20, 24, 23, 24, 23, + 25, 23, 16, 9, 1, -10, -23, -41, -56, -63, -67, -67, -66, -59, -47, -25, + 3, 32, 54, 70, 75, 76, 70, 62, 47, 32, 15, -3, -21, -38, -44, -41, + -31, -21, -15, -11, -2, 8, 18, 24, 27, 28, 29, 29, 24, 17, 8, -2, + -17, -35, -54, -66, -73, -74, -71, -66, -55, -35, -6, 24, 50, 69, 77, 79, + 74, 63, 51, 38, 22, 2, -17, -35, -42, -39, -32, -24, -17, -11, -5, 6, + 13, 20, 28, 31, 33, 29, 23, 15, 10, 3, -12, -30, -51, -65, -73, -75, + -71, -67, -58, -41, -18, 11, 38, 60, 75, 77, 74, 64, 53, 42, 31, 15, + -7, -25, -38, -40, -37, -29, -24, -15, -11, -2, 9, 17, 28, 33, 36, 33, + 27, 18, 13, 4, -8, -26, -48, -65, -75, -76, -72, -68, -58, -43, -18, 11, + 37, 58, 72, 76, 73, 63, 51, 40, 28, 13, -6, -23, -35, -41, -40, -33, + -24, -16, -9, -2, 7, 18, 29, 38, 42, 38, 31, 21, 11, 3, -10, -26, + -47, -65, -75, -79, -75, -69, -58, -39, -19, 7, 33, 54, 71, 77, 75, 66, + 52, 39, 27, 15, -2, -22, -35, -41, -41, -36, -27, -17, -8, 1, 11, 22, + 33, 41, 47, 45, 35, 21, 11, 4, -7, -24, -46, -66, -77, -81, -79, -73, + -62, -44, -24, -2, 23, 47, 69, 79, 79, 70, 57, 45, 33, 20, 5, -18, + -36, -43, -41, -37, -32, -23, -14, -3, 8, 20, 34, 45, 53, 52, 41, 27, + 16, 7, -5, -24, -47, -69, -83, -86, -84, -74, -62, -44, -22, 1, 24, 47, + 66, 78, 76, 69, 57, 43, 31, 17, 5, -13, -33, -43, -46, -41, -31, -22, + -12, 0, 11, 24, 39, 49, 57, 58, 48, 30, 15, 4, -8, -26, -52, -74, + -86, -89, -83, -74, -60, -43, -21, 1, 22, 45, 65, 78, 79, 68, 54, 40, + 26, 17, 7, -9, -31, -45, -46, -40, -31, -21, -11, 0, 8, 21, 39, 51, + 60, 60, 52, 36, 19, 4, -9, -25, -49, -71, -87, -92, -89, -79, -63, -45, + -24, 0, 22, 43, 65, 75, 80, 70, 57, 44, 30, 16, 2, -14, -31, -46, + -52, -47, -35, -21, -9, 1, 12, 26, 44, 59, 68, 68, 59, 42, 22, 6, + -11, -29, -49, -72, -87, -96, -95, -86, -67, -46, -23, -4, 16, 38, 59, 76, + 82, 74, 61, 45, 31, 20, 3, -14, -30, -44, -51, -51, -41, -26, -11, 3, + 13, 25, 44, 61, 71, 72, 59, 45, 28, 9, -10, -33, -53, -70, -83, -93, + -96, -91, -74, -53, -27, -6, 15, 35, 53, 71, 80, 77, 66, 51, 34, 20, + 3, -15, -30, -45, -53, -55, -48, -32, -17, 1, 16, 29, 47, 62, 73, 77, + 67, 50, 30, 9, -10, -32, -55, -73, -86, -93, -94, -90, -76, -54, -27, -4, + 17, 32, 48, 64, 74, 78, 68, 55, 38, 17, 1, -15, -28, -39, -47, -52, + -49, -37, -21, -3, 16, 31, 46, 61, 70, 75, 70, 55, 36, 13, -9, -32, + -56, -72, -84, -89, -93, -91, -81, -61, -30, -5, 18, 32, 45, 58, 71, 76, + 70, 57, 40, 18, 1, -17, -28, -35, -45, -52, -50, -39, -25, -7, 15, 33, + 48, 60, 67, 73, 70, 60, 42, 19, -8, -34, -57, -69, -77, -83, -87, -92, + -85, -66, -39, -10, 12, 27, 39, 52, 62, 73, 72, 61, 46, 25, 4, -14, + -27, -34, -41, -46, -48, -43, -30, -11, 14, 38, 53, 63, 66, 69, 72, 65, + 48, 23, -4, -31, -56, -72, -81, -83, -87, -91, -87, -72, -46, -15, 11, 28, + 40, 50, 60, 71, 75, 69, 54, 32, 8, -13, -29, -39, -45, -48, -50, -48, + -40, -21, 9, 37, 57, 66, 71, 74, 75, 71, 55, 32, 2, -29, -55, -73, + -81, -84, -87, -89, -88, -75, -49, -19, 10, 29, 39, 48, 53, 62, 72, 68, + 58, 35, 9, -11, -27, -34, -39, -42, -44, -46, -41, -26, 5, 35, 56, 65, + 69, 72, 73, 72, 59, 37, 9, -22, -50, -71, -83, -83, -83, -86, -88, -81, + -55, -24, 5, 24, 37, 48, 54, 59, 64, 66, 59, 41, 17, -9, -27, -36, + -38, -39, -42, -45, -41, -28, -2, 28, 53, 65, 68, 71, 71, 70, 58, 40, + 16, -14, -46, -67, -79, -81, -80, -83, -87, -83, -64, -36, -4, 19, 35, 46, + 51, 58, 65, 69, 64, 49, 26, -2, -25, -38, -41, -39, -40, -43, -45, -33, + -8, 24, 52, 65, 72, 74, 72, 66, 55, 40, 20, -7, -38, -65, -80, -85, + -80, -82, -84, -82, -65, -38, -9, 13, 29, 41, 49, 57, 62, 64, 59, 48, + 29, 6, -19, -36, -39, -37, -35, -38, -39, -31, -11, 19, 47, 63, 70, 71, + 71, 65, 55, 38, 17, -4, -33, -58, -76, -83, -79, -79, -80, -82, -70, -46, + -19, 8, 25, 36, 43, 51, 59, 63, 62, 50, 34, 14, -9, -27, -35, -38, + -36, -38, -39, -30, -15, 10, 34, 52, 67, 73, 74, 68, 54, 37, 21, 2, + -21, -45, -68, -78, -81, -81, -80, -79, -70, -51, -28, -4, 17, 32, 40, 48, + 56, 59, 57, 46, 34, 18, 3, -20, -34, -39, -35, -31, -30, -26, -13, 8, + 31, 48, 61, 67, 69, 66, 53, 38, 16, -4, -23, -41, -58, -72, -78, -80, + -76, -74, -64, -50, -33, -8, 12, 28, 35, 41, 50, 57, 53, 44, 31, 20, + 10, -8, -24, -34, -34, -30, -25, -21, -13, 5, 22, 38, 52, 61, 66, 65, + 53, 36, 15, -4, -18, -33, -45, -61, -73, -79, -78, -72, -62, -49, -33, -13, + 3, 19, 29, 38, 48, 52, 49, 41, 29, 22, 14, 2, -11, -25, -27, -25, + -20, -15, -8, 4, 19, 30, 42, 53, 57, 61, 50, 32, 15, -7, -18, -27, + -37, -50, -65, -73, -72, -66, -57, -49, -37, -19, -3, 13, 23, 32, 41, 44, + 41, 35, 29, 26, 21, 10, -2, -13, -21, -18, -14, -8, -4, 3, 12, 21, + 29, 42, 51, 54, 49, 32, 14, -5, -15, -22, -28, -39, -55, -69, -68, -62, + -52, -44, -37, -25, -11, 4, 16, 24, 32, 37, 35, 28, 23, 23, 23, 18, + 8, -4, -12, -12, -8, -2, 5, 9, 14, 18, 23, 31, 41, 45, 43, 29, + 11, -8, -18, -23, -21, -29, -43, -60, -65, -58, -50, -39, -32, -26, -17, -6, + 8, 18, 25, 31, 29, 24, 17, 20, 24, 25, 19, 8, 0, -5, -3, 4, + 11, 13, 12, 14, 16, 22, 31, 38, 37, 27, 9, -11, -22, -24, -22, -25, + -36, -50, -57, -53, -46, -37, -30, -24, -17, -9, 1, 10, 16, 20, 19, 17, + 13, 14, 21, 24, 24, 19, 10, 8, 9, 13, 18, 20, 15, 12, 11, 14, + 21, 27, 30, 21, 8, -12, -23, -24, -22, -20, -29, -40, -49, -47, -41, -33, + -26, -23, -20, -16, -11, -2, 7, 12, 14, 14, 13, 14, 19, 26, 30, 26, + 20, 11, 11, 16, 21, 26, 22, 18, 15, 14, 15, 19, 20, 16, 4, -15, + -29, -32, -27, -21, -24, -34, -40, -41, -33, -28, -24, -21, -20, -15, -14, -10, + -5, 1, 7, 10, 10, 12, 18, 26, 36, 34, 27, 21, 17, 20, 23, 25, + 24, 19, 11, 10, 9, 12, 16, 14, 3, -16, -32, -34, -27, -19, -20, -27, + -34, -35, -31, -27, -22, -18, -18, -19, -19, -20, -15, -7, 2, 6, 8, 9, + 18, 26, 38, 41, 37, 28, 21, 23, 25, 27, 25, 20, 13, 7, 3, 5, + 9, 11, 4, -14, -31, -35, -29, -20, -18, -23, -26, -32, -29, -25, -23, -15, + -17, -18, -21, -25, -23, -15, -6, 0, 5, 6, 16, 25, 37, 45, 43, 36, + 27, 25, 28, 30, 29, 26, 16, 7, -2, -2, 2, 3, -2, -15, -31, -38, + -35, -23, -15, -15, -19, -23, -26, -23, -21, -15, -12, -18, -24, -27, -25, -19, + -9, -3, 2, 5, 12, 19, 32, 42, 45, 41, 31, 28, 31, 33, 37, 33, + 26, 14, 4, -2, -3, -3, -5, -18, -34, -43, -42, -31, -20, -18, -17, -19, + -18, -16, -13, -9, -8, -13, -22, -32, -32, -28, -19, -11, -6, -2, 7, 18, + 31, 42, 46, 46, 41, 36, 32, 35, 39, 39, 30, 17, 5, -3, -3, -3, + -7, -19, -32, -39, -41, -36, -26, -17, -12, -13, -18, -20, -14, -7, -6, -11, + -23, -32, -34, -28, -23, -15, -9, -2, 9, 17, 28, 37, 44, 48, 45, 38, + 32, 35, 41, 45, 37, 23, 10, 1, -3, -5, -8, -20, -35, -44, -44, -42, + -34, -24, -14, -10, -12, -14, -11, -6, -2, -5, -15, -25, -32, -29, -24, -19, + -15, -10, 1, 10, 20, 31, 40, 45, 48, 43, 39, 39, 45, 51, 43, 28, + 15, 2, -4, -8, -13, -20, -34, -42, -45, -45, -36, -26, -13, -8, -11, -13, + -8, -2, 1, -4, -13, -22, -30, -33, -28, -25, -18, -12, -5, 3, 13, 25, + 37, 46, 47, 45, 40, 41, 47, 53, 49, 35, 21, 10, 2, -6, -11, -22, + -32, -43, -50, -50, -47, -34, -17, -9, -9, -12, -9, 3, 7, 4, -8, -18, + -25, -31, -31, -27, -21, -16, -11, -8, 2, 17, 31, 45, 47, 44, 40, 43, + 54, 60, 58, 42, 26, 14, 4, -5, -14, -26, -37, -47, -54, -53, -49, -38, + -22, -13, -9, -7, -3, 6, 11, 6, -5, -14, -22, -28, -31, -30, -29, -24, + -18, -15, -2, 14, 29, 42, 45, 47, 45, 48, 56, 63, 59, 46, 29, 17, + 5, -4, -11, -23, -36, -49, -53, -52, -48, -40, -29, -21, -16, -11, -2, 5, + 6, 3, -5, -10, -13, -17, -21, -25, -26, -23, -19, -15, -8, 5, 20, 31, + 38, 42, 41, 46, 55, 62, 63, 50, 36, 24, 12, 5, -7, -20, -33, -46, + -51, -51, -48, -40, -33, -27, -20, -15, 0, 9, 7, 1, -6, -10, -11, -16, + -22, -25, -30, -28, -25, -21, -11, 2, 17, 28, 32, 41, 47, 55, 64, 66, + 64, 54, 41, 32, 19, 4, -9, -24, -37, -48, -54, -55, -51, -41, -33, -29, + -24, -15, 0, 13, 14, 8, 1, -5, -6, -10, -17, -24, -30, -32, -33, -32, + -22, -9, 9, 21, 25, 35, 45, 56, 67, 71, 71, 63, 49, 37, 25, 11, + -5, -19, -32, -45, -54, -59, -54, -43, -36, -31, -27, -18, -3, 11, 13, 9, + 2, -3, -6, -9, -13, -20, -25, -29, -33, -30, -23, -9, 2, 11, 19, 28, + 40, 51, 63, 68, 71, 66, 55, 44, 31, 16, 1, -15, -30, -41, -50, -57, + -56, -46, -37, -32, -30, -21, -7, 8, 17, 12, 5, 3, -2, -6, -11, -19, + -23, -27, -33, -34, -28, -19, -6, 3, 13, 24, 38, 51, 62, 70, 72, 68, + 60, 48, 38, 22, 6, -13, -27, -39, -46, -53, -52, -48, -42, -37, -36, -25, + -9, 4, 11, 9, 7, 8, 6, 2, -6, -13, -20, -24, -28, -31, -30, -27, + -19, -10, 4, 19, 33, 45, 57, 67, 74, 74, 70, 60, 47, 31, 10, -8, + -25, -36, -42, -51, -56, -56, -51, -40, -35, -28, -16, -4, 7, 7, 10, 12, + 13, 11, 3, -8, -18, -21, -25, -29, -33, -33, -30, -20, -8, 11, 27, 42, + 54, 64, 72, 77, 76, 69, 56, 34, 14, -5, -20, -32, -43, -50, -57, -59, + -57, -47, -39, -31, -17, -5, 6, 8, 9, 17, 19, 16, 5, -9, -13, -18, + -21, -26, -33, -37, -35, -28, -15, 1, 18, 34, 47, 58, 68, 76, 77, 76, + 65, 47, 25, 6, -12, -24, -37, -49, -57, -62, -64, -58, -50, -40, -24, -12, + 3, 9, 13, 22, 26, 26, 17, 4, -9, -21, -25, -30, -36, -41, -44, -41, + -27, -8, 12, 31, 44, 57, 68, 77, 81, 80, 72, 56, 34, 12, -6, -19, + -30, -41, -53, -65, -68, -65, -56, -44, -30, -17, -8, 2, 10, 23, 31, 32, + 25, 10, -4, -14, -20, -25, -31, -39, -45, -45, -35, -17, 2, 22, 37, 51, + 63, 72, 79, 78, 74, 62, 43, 20, 2, -12, -24, -34, -49, -61, -69, -70, + -63, -48, -35, -23, -11, 0, 9, 20, 31, 36, 32, 20, 7, -9, -18, -24, + -30, -38, -47, -50, -44, -29, -9, 10, 27, 45, 60, 71, 78, 80, 78, 68, + 54, 33, 13, -5, -18, -29, -44, -57, -68, -74, -66, -54, -41, -30, -18, -5, + 8, 19, 26, 33, 32, 24, 13, -4, -15, -22, -24, -29, -40, -44, -42, -29, + -14, 0, 15, 31, 48, 63, 69, 74, 74, 72, 64, 47, 27, 11, -4, -17, + -33, -50, -66, -78, -78, -68, -54, -38, -25, -11, 4, 18, 31, 38, 40, 34, + 21, 5, -12, -23, -28, -34, -43, -50, -51, -39, -22, -6, 10, 26, 46, 61, + 70, 75, 79, 76, 67, 52, 34, 18, 4, -11, -27, -45, -63, -76, -78, -70, + -57, -44, -29, -15, 0, 14, 26, 35, 39, 34, 23, 9, -7, -18, -23, -30, + -40, -49, -51, -41, -24, -9, 5, 19, 39, 55, 67, 74, 77, 79, 72, 56, + 39, 24, 12, -5, -23, -42, -60, -73, -78, -74, -62, -48, -33, -18, -6, 10, + 25, 34, 37, 34, 26, 16, -2, -15, -23, -28, -32, -42, -46, -44, -31, -16, + -4, 11, 28, 44, 56, 64, 69, 75, 73, 63, 50, 37, 22, 6, -10, -27, + -47, -68, -81, -80, -68, -52, -39, -25, -13, 2, 17, 29, 36, 37, 32, 23, + 4, -14, -24, -26, -26, -36, -44, -45, -36, -20, -7, 9, 25, 38, 49, 58, + 66, 75, 77, 67, 52, 39, 26, 14, -3, -21, -43, -65, -81, -84, -74, -56, + -40, -27, -15, -2, 15, 27, 37, 38, 35, 26, 8, -11, -23, -26, -27, -34, + -42, -45, -40, -27, -13, 4, 19, 33, 45, 54, 60, 67, 72, 67, 57, 44, + 32, 20, 5, -11, -32, -55, -72, -82, -76, -62, -46, -31, -21, -5, 6, 19, + 29, 34, 33, 26, 12, -6, -17, -22, -23, -28, -38, -42, -38, -27, -14, 1, + 14, 27, 40, 48, 53, 62, 68, 67, 58, 44, 32, 21, 9, -5, -22, -43, + -63, -76, -75, -62, -46, -30, -24, -13, 0, 10, 20, 28, 31, 27, 12, -5, + -16, -20, -19, -21, -29, -35, -35, -27, -16, -6, 9, 21, 33, 41, 47, 53, + 61, 63, 60, 51, 39, 27, 15, 3, -13, -33, -55, -72, -75, -67, -52, -37, + -26, -18, -7, 4, 15, 26, 27, 25, 14, 0, -10, -15, -16, -19, -24, -31, + -32, -27, -17, -5, 5, 15, 26, 35, 43, 49, 54, 57, 57, 52, 42, 29, + 18, 10, -3, -23, -46, -64, -71, -66, -53, -39, -27, -19, -11, 0, 5, 16, + 22, 23, 15, 1, -10, -15, -18, -17, -17, -20, -24, -22, -14, -4, 7, 16, + 25, 31, 36, 41, 47, 49, 49, 46, 41, 32, 21, 13, 3, -14, -33, -51, + -60, -60, -52, -39, -28, -20, -14, -7, 1, 9, 14, 16, 10, 1, -10, -15, + -14, -15, -15, -15, -17, -14, -11, -4, 5, 13, 22, 29, 33, 35, 39, 43, + 45, 45, 42, 35, 26, 17, 7, -10, -25, -38, -48, -53, -53, -46, -33, -23, + -16, -13, -8, -3, 4, 9, 7, 1, -6, -10, -13, -12, -12, -8, -7, -6, + -2, 3, 6, 10, 14, 23, 28, 29, 30, 29, 34, 39, 40, 36, 30, 21, + 13, 1, -15, -27, -36, -44, -48, -45, -36, -26, -17, -13, -10, -6, -2, 2, + 3, -3, -6, -10, -14, -13, -12, -7, -3, 1, 2, 5, 6, 10, 15, 19, + 25, 25, 26, 26, 29, 34, 35, 32, 29, 20, 13, 4, -12, -20, -27, -33, + -38, -41, -36, -27, -19, -13, -10, -8, -8, -7, -5, -5, -7, -9, -13, -18, + -15, -12, -5, 3, 7, 10, 10, 11, 13, 20, 27, 27, 23, 20, 20, 24, + 27, 25, 26, 23, 17, 7, -6, -13, -16, -20, -26, -32, -33, -28, -20, -13, + -12, -12, -16, -15, -15, -12, -10, -13, -13, -16, -12, -7, 0, 9, 14, 18, + 18, 14, 11, 14, 18, 21, 17, 10, 11, 15, 20, 21, 20, 20, 17, 9, + 2, -5, -10, -14, -21, -25, -29, -27, -23, -17, -13, -13, -16, -18, -20, -20, + -12, -8, -9, -15, -16, -10, -2, 9, 14, 18, 18, 18, 14, 14, 17, 20, + 18, 12, 8, 11, 13, 16, 18, 19, 16, 9, 3, 1, 1, -6, -13, -20, + -23, -21, -19, -15, -15, -14, -17, -21, -22, -22, -17, -11, -11, -13, -18, -14, + -4, 12, 21, 22, 23, 21, 20, 17, 16, 16, 12, 7, 1, 5, 7, 8, + 12, 15, 15, 10, 3, 0, 3, 1, -5, -12, -19, -19, -16, -11, -9, -11, + -14, -23, -28, -29, -24, -17, -13, -15, -19, -18, -10, 7, 22, 29, 30, 24, + 22, 18, 17, 17, 11, 4, -2, -3, 2, 4, 8, 13, 16, 13, 7, 4, + 9, 8, 2, -7, -16, -15, -14, -12, -10, -12, -12, -19, -25, -29, -25, -18, + -15, -18, -21, -19, -12, 1, 16, 28, 34, 32, 29, 23, 18, 15, 11, 4, + -3, -10, -8, -5, 0, 7, 12, 14, 10, 6, 10, 15, 13, 3, -7, -11, + -13, -13, -13, -12, -14, -20, -28, -31, -29, -20, -13, -14, -18, -18, -15, -3, + 12, 24, 33, 32, 29, 25, 22, 16, 11, 3, -3, -6, -7, -8, -3, 2, + 8, 11, 11, 9, 10, 13, 13, 8, 0, -6, -9, -9, -9, -10, -11, -18, + -26, -30, -29, -22, -17, -18, -20, -21, -17, -7, 6, 21, 34, 38, 34, 29, + 21, 17, 13, 8, 1, -8, -13, -15, -10, -3, 5, 10, 11, 10, 11, 15, + 16, 11, 3, -4, -7, -9, -8, -10, -13, -19, -26, -26, -23, -17, -15, -16, + -17, -17, -15, -9, -2, 10, 26, 31, 31, 24, 21, 18, 13, 6, 1, -6, + -8, -9, -8, -4, 0, 6, 10, 12, 15, 14, 13, 9, 5, -2, -7, -8, + -9, -8, -10, -18, -25, -25, -23, -18, -16, -19, -22, -18, -16, -10, 0, 10, + 24, 33, 35, 29, 22, 17, 13, 7, -3, -8, -12, -14, -12, -7, -3, 4, + 10, 14, 16, 17, 16, 16, 11, 3, -7, -11, -10, -7, -10, -19, -26, -27, + -23, -17, -14, -14, -17, -18, -16, -12, -3, 7, 20, 26, 28, 24, 20, 16, + 15, 10, 2, -8, -13, -11, -7, -2, -2, 4, 6, 9, 14, 17, 19, 15, + 8, -4, -12, -15, -11, -5, -8, -18, -25, -24, -17, -9, -6, -7, -11, -15, + -15, -13, -6, 4, 11, 15, 16, 15, 16, 13, 9, 5, 1, -3, -7, -5, + -2, 3, 5, 6, 8, 10, 14, 17, 18, 14, 3, -8, -15, -13, -9, -6, + -9, -19, -22, -19, -13, -6, -4, -5, -8, -13, -15, -10, -5, 5, 8, 8, + 8, 11, 14, 14, 8, 2, 1, 1, 2, -2, 1, 5, 6, 7, 7, 6, + 11, 13, 16, 13, 3, -6, -13, -14, -8, -5, -6, -15, -20, -15, -10, -5, + -2, -6, -6, -8, -12, -10, -8, -3, 5, 3, 3, 5, 7, 10, 6, 2, + -3, -2, 2, 8, 9, 12, 11, 8, 9, 8, 11, 13, 11, 10, 0, -12, + -20, -21, -13, -10, -11, -14, -16, -10, -3, 4, 8, 5, 2, -2, -4, -4, + -7, -4, -4, -5, -7, -8, -5, 0, 2, 2, 0, 1, 6, 11, 15, 19, + 19, 18, 14, 10, 12, 12, 11, 6, -6, -16, -23, -23, -17, -13, -12, -12, + -13, -8, -2, 8, 13, 13, 8, 4, 1, -3, -3, -3, -4, -11, -16, -16, + -13, -9, -5, -4, -2, 1, 6, 13, 17, 21, 24, 23, 18, 14, 10, 11, + 12, 8, -3, -16, -26, -27, -20, -17, -21, -21, -17, -7, 2, 10, 16, 19, + 18, 13, 10, 5, 2, -2, -5, -14, -22, -26, -21, -15, -11, -11, -6, -2, + 6, 16, 22, 27, 28, 28, 23, 17, 13, 10, 12, 7, -4, -18, -29, -32, + -24, -20, -21, -22, -18, -5, 5, 14, 19, 21, 20, 17, 13, 8, 5, -2, + -9, -18, -26, -26, -21, -14, -12, -11, -8, -2, 10, 16, 21, 24, 25, 27, + 24, 16, 11, 6, 7, 6, -4, -16, -25, -29, -25, -19, -19, -22, -18, -7, + 6, 15, 17, 18, 19, 18, 15, 10, 8, 3, -5, -15, -24, -30, -27, -19, + -15, -15, -13, -8, 5, 14, 20, 25, 28, 31, 30, 26, 18, 11, 9, 7, + -2, -14, -27, -33, -30, -25, -25, -27, -26, -15, 2, 17, 22, 23, 23, 22, + 22, 18, 14, 7, -4, -14, -24, -31, -30, -25, -19, -16, -16, -11, -3, 8, + 17, 24, 29, 31, 31, 29, 22, 17, 12, 8, 2, -12, -26, -36, -35, -30, + -26, -26, -29, -20, -5, 13, 24, 26, 26, 26, 28, 23, 19, 11, 1, -9, + -24, -34, -33, -30, -24, -21, -21, -17, -11, 1, 9, 19, 27, 33, 34, 30, + 28, 24, 21, 16, 7, -6, -23, -35, -40, -36, -33, -31, -32, -27, -13, 3, + 17, 25, 29, 34, 34, 30, 23, 17, 11, 0, -14, -27, -32, -33, -30, -26, + -21, -18, -15, -9, 1, 11, 22, 29, 32, 33, 30, 28, 23, 21, 13, 3, + -15, -30, -37, -38, -35, -35, -33, -28, -18, -5, 10, 22, 30, 37, 36, 32, + 26, 21, 14, 7, -6, -19, -28, -34, -32, -27, -21, -20, -21, -20, -11, 5, + 17, 25, 29, 30, 33, 35, 31, 27, 19, 8, -7, -25, -37, -42, -41, -39, + -35, -30, -22, -11, 4, 21, 32, 38, 39, 36, 29, 22, 15, 9, -4, -15, + -24, -32, -35, -31, -24, -18, -18, -19, -14, -3, 11, 21, 27, 31, 32, 34, + 34, 31, 27, 18, 1, -19, -33, -39, -38, -40, -39, -35, -28, -17, -3, 14, + 28, 37, 41, 40, 34, 30, 24, 18, 7, -6, -20, -30, -36, -34, -30, -26, + -26, -27, -26, -16, 0, 16, 26, 30, 33, 36, 42, 43, 38, 27, 10, -10, + -27, -39, -43, -43, -43, -40, -34, -26, -14, 2, 21, 36, 42, 40, 36, 33, + 30, 24, 16, 5, -11, -25, -34, -35, -32, -29, -30, -31, -31, -27, -15, 5, + 21, 27, 30, 34, 42, 51, 48, 40, 20, -3, -21, -32, -38, -40, -43, -42, + -38, -30, -18, -3, 15, 29, 40, 41, 39, 34, 31, 28, 20, 10, -4, -18, + -29, -33, -34, -34, -35, -37, -38, -34, -21, -6, 12, 22, 26, 33, 44, 55, + 56, 46, 26, 5, -11, -25, -36, -42, -47, -47, -43, -37, -24, -11, 9, 25, + 36, 38, 38, 40, 39, 39, 28, 17, 3, -10, -23, -30, -37, -38, -42, -44, + -43, -40, -30, -16, 3, 17, 26, 34, 44, 57, 61, 52, 34, 9, -7, -21, + -30, -38, -46, -49, -48, -39, -27, -13, 5, 22, 32, 35, 35, 37, 41, 43, + 33, 19, 4, -8, -16, -25, -32, -39, -42, -44, -42, -41, -33, -20, -4, 11, + 21, 28, 38, 49, 58, 54, 36, 16, -6, -16, -21, -28, -36, -46, -49, -42, + -29, -17, 0, 13, 26, 30, 30, 35, 41, 47, 41, 25, 9, -4, -12, -17, + -28, -38, -46, -52, -51, -49, -39, -23, -9, 4, 12, 23, 39, 54, 66, 62, + 43, 23, 2, -10, -16, -26, -36, -45, -51, -50, -37, -20, 0, 16, 27, 28, + 29, 38, 47, 50, 44, 28, 13, -2, -10, -16, -26, -35, -45, -55, -57, -56, + -44, -27, -13, -4, 5, 17, 34, 53, 64, 64, 46, 29, 13, 1, -8, -17, + -28, -39, -48, -51, -42, -26, -8, 9, 18, 20, 24, 34, 46, 53, 47, 33, + 15, 4, -4, -13, -22, -35, -47, -56, -59, -56, -48, -32, -18, -8, 3, 14, + 33, 52, 65, 64, 49, 31, 17, 5, -3, -13, -25, -36, -45, -49, -44, -31, + -14, 7, 16, 21, 21, 31, 48, 57, 53, 38, 20, 8, -3, -9, -21, -35, + -47, -57, -62, -62, -54, -38, -22, -12, -5, 7, 26, 49, 66, 69, 56, 37, + 24, 15, 6, -4, -17, -30, -43, -53, -47, -34, -18, -2, 9, 14, 17, 29, + 46, 58, 56, 43, 25, 13, 2, -5, -15, -30, -45, -59, -66, -65, -57, -43, + -28, -16, -10, 2, 21, 44, 66, 71, 62, 43, 28, 19, 13, 3, -12, -25, + -42, -51, -50, -38, -18, -3, 5, 12, 17, 30, 48, 59, 58, 45, 26, 11, + 0, -6, -15, -29, -45, -63, -71, -68, -58, -41, -28, -19, -12, -4, 16, 42, + 62, 70, 61, 43, 29, 21, 16, 8, -6, -20, -35, -45, -45, -37, -21, -6, + 3, 8, 14, 24, 42, 54, 58, 47, 29, 16, 3, -3, -12, -27, -42, -62, + -73, -74, -66, -52, -34, -23, -14, -5, 12, 38, 60, 72, 68, 49, 34, 23, + 17, 10, -3, -18, -31, -42, -42, -36, -20, -4, 5, 9, 11, 22, 37, 51, + 55, 46, 29, 13, 2, -9, -14, -25, -38, -53, -67, -72, -67, -53, -35, -23, + -17, -10, 6, 32, 55, 69, 67, 53, 36, 26, 19, 12, 2, -13, -26, -37, + -40, -36, -24, -7, 3, 9, 13, 20, 36, 49, 52, 47, 32, 17, 3, -12, + -19, -29, -38, -52, -66, -75, -72, -56, -36, -20, -15, -10, 2, 25, 48, 63, + 63, 52, 39, 28, 20, 14, 5, -6, -19, -30, -38, -35, -25, -8, 4, 8, + 11, 17, 33, 47, 54, 47, 34, 18, 4, -9, -19, -28, -40, -53, -65, -75, + -74, -60, -41, -22, -15, -12, -2, 18, 43, 59, 63, 55, 41, 31, 27, 20, + 13, 3, -11, -24, -35, -34, -26, -11, 2, 8, 9, 11, 22, 37, 47, 49, + 39, 22, 6, -7, -19, -26, -36, -48, -60, -74, -77, -66, -47, -26, -13, -8, + 1, 15, 36, 53, 63, 56, 45, 30, 22, 16, 10, 5, -7, -19, -32, -34, + -25, -7, 8, 16, 17, 17, 23, 37, 48, 51, 40, 22, 4, -14, -24, -33, + -39, -49, -61, -72, -77, -66, -47, -27, -13, -5, 1, 13, 30, 47, 59, 57, + 47, 31, 23, 17, 15, 6, -5, -18, -26, -30, -24, -10, 8, 19, 21, 20, + 22, 30, 40, 48, 41, 25, 3, -17, -29, -32, -37, -46, -59, -70, -73, -65, + -46, -27, -14, -4, 3, 15, 29, 41, 52, 54, 45, 31, 19, 15, 15, 9, + 1, -14, -26, -27, -21, -8, 10, 17, 23, 23, 23, 32, 39, 45, 44, 29, + 7, -16, -32, -40, -42, -49, -61, -72, -76, -69, -50, -28, -12, -2, 5, 17, + 31, 43, 48, 49, 44, 34, 24, 15, 13, 9, 5, -8, -24, -27, -21, -7, + 10, 20, 25, 29, 29, 32, 36, 41, 41, 34, 14, -12, -35, -46, -49, -52, + -61, -74, -78, -73, -56, -31, -14, 2, 10, 19, 31, 44, 54, 53, 47, 34, + 24, 16, 9, 4, -2, -12, -25, -28, -22, -7, 9, 23, 32, 36, 36, 36, + 37, 42, 42, 33, 15, -14, -36, -50, -57, -56, -62, -74, -81, -77, -59, -36, + -15, 2, 11, 20, 31, 44, 56, 56, 51, 39, 26, 15, 7, 1, -3, -13, + -26, -33, -31, -14, 9, 25, 36, 41, 40, 41, 40, 44, 44, 35, 17, -13, + -39, -54, -61, -64, -69, -76, -81, -78, -63, -39, -15, 4, 14, 24, 35, 45, + 54, 56, 53, 41, 25, 14, 7, 3, -4, -14, -26, -34, -31, -15, 9, 25, + 36, 41, 43, 44, 43, 46, 45, 35, 16, -9, -31, -49, -63, -69, -75, -78, + -84, -79, -66, -45, -22, 0, 13, 23, 35, 48, 56, 58, 53, 43, 30, 19, + 10, 4, -7, -18, -26, -33, -30, -17, 4, 24, 37, 44, 50, 50, 49, 46, + 43, 35, 16, -7, -30, -52, -65, -75, -78, -83, -85, -82, -70, -50, -26, -4, + 14, 26, 39, 53, 63, 64, 59, 49, 35, 18, 6, -2, -13, -25, -35, -40, + -36, -22, 3, 26, 38, 47, 54, 60, 61, 57, 50, 39, 20, -5, -26, -49, + -66, -80, -87, -91, -93, -88, -74, -54, -34, -12, 8, 24, 40, 55, 68, 70, + 66, 55, 41, 26, 14, 6, -9, -25, -37, -43, -39, -28, -9, 15, 32, 41, + 48, 59, 65, 65, 58, 45, 25, 5, -17, -38, -61, -77, -91, -97, -100, -94, + -79, -64, -44, -23, -2, 24, 42, 57, 72, 77, 74, 63, 48, 33, 21, 10, + -7, -27, -43, -45, -41, -29, -14, 4, 26, 40, 49, 58, 66, 69, 64, 48, + 29, 7, -13, -31, -53, -73, -89, -100, -102, -95, -83, -67, -51, -29, -7, 17, + 37, 55, 72, 81, 77, 67, 55, 40, 25, 12, -4, -22, -40, -45, -42, -31, + -19, -4, 15, 34, 48, 55, 63, 67, 66, 57, 41, 20, -4, -25, -46, -69, + -88, -104, -110, -106, -95, -79, -63, -39, -13, 15, 39, 60, 75, 88, 91, 81, + 66, 44, 27, 13, -3, -22, -41, -50, -48, -38, -26, -13, 6, 29, 46, 55, + 62, 66, 69, 63, 48, 26, 5, -14, -33, -57, -84, -105, -115, -113, -102, -88, + -73, -53, -26, 1, 31, 57, 78, 91, 95, 88, 75, 60, 41, 22, 1, -19, + -38, -51, -53, -48, -36, -22, -6, 19, 39, 53, 62, 65, 69, 67, 55, 36, + 14, -6, -28, -54, -79, -100, -111, -116, -110, -98, -83, -61, -35, -6, 26, 53, + 75, 89, 96, 96, 87, 71, 50, 29, 10, -9, -30, -44, -53, -50, -45, -32, + -19, 2, 23, 43, 55, 62, 66, 66, 62, 49, 30, 11, -12, -39, -70, -95, + -112, -118, -118, -109, -94, -74, -48, -18, 17, 47, 70, 88, 98, 99, 95, 80, + 61, 37, 14, -9, -26, -43, -51, -52, -48, -40, -25, -6, 17, 37, 52, 57, + 63, 64, 62, 55, 36, 17, -8, -34, -62, -86, -106, -117, -118, -110, -99, -83, + -57, -27, 10, 42, 67, 85, 96, 101, 101, 91, 69, 46, 21, 1, -21, -38, + -49, -54, -49, -44, -35, -18, 2, 24, 44, 55, 64, 67, 63, 59, 46, 29, + 7, -21, -51, -79, -104, -117, -122, -117, -108, -94, -70, -40, 0, 34, 63, 85, + 96, 104, 105, 99, 82, 59, 31, 4, -20, -37, -46, -51, -51, -50, -44, -28, + -8, 17, 38, 53, 60, 65, 67, 64, 54, 40, 18, -10, -40, -71, -98, -115, + -121, -118, -113, -103, -82, -52, -14, 22, 53, 77, 94, 106, 109, 104, 93, 76, + 50, 21, -11, -33, -43, -48, -53, -56, -56, -46, -27, 2, 29, 48, 58, 62, + 63, 62, 58, 49, 33, 5, -27, -57, -87, -108, -119, -118, -114, -106, -91, -68, + -31, 8, 42, 69, 88, 102, 110, 110, 100, 83, 60, 33, 3, -23, -39, -46, + -52, -57, -57, -51, -35, -14, 15, 38, 54, 63, 65, 66, 58, 51, 40, 17, + -11, -44, -76, -101, -114, -116, -111, -106, -96, -77, -47, -11, 28, 58, 81, 97, + 109, 112, 105, 95, 77, 53, 23, -9, -30, -45, -52, -58, -64, -61, -52, -35, + -9, 20, 44, 62, 67, 67, 65, 62, 54, 35, 7, -24, -60, -91, -110, -119, + -116, -112, -105, -90, -65, -31, 8, 43, 73, 94, 109, 117, 113, 105, 91, 68, + 39, 4, -24, -43, -56, -64, -67, -67, -61, -47, -21, 9, 35, 55, 63, 66, + 66, 61, 56, 46, 23, -10, -46, -81, -100, -111, -115, -112, -107, -94, -75, -48, + -12, 28, 59, 84, 103, 116, 120, 114, 103, 81, 56, 22, -10, -35, -53, -64, + -71, -73, -71, -59, -39, -10, 19, 43, 60, 66, 68, 67, 64, 53, 33, 7, + -27, -64, -91, -108, -115, -113, -108, -97, -82, -59, -27, 11, 46, 75, 98, 112, + 119, 117, 109, 89, 64, 34, 4, -24, -50, -62, -69, -69, -70, -65, -49, -23, + 8, 32, 52, 61, 64, 65, 64, 55, 39, 15, -16, -46, -76, -97, -109, -110, + -107, -102, -91, -71, -42, -4, 34, 66, 90, 106, 116, 121, 118, 101, 78, 47, + 15, -15, -44, -60, -70, -73, -75, -74, -63, -39, -7, 23, 45, 60, 66, 69, + 69, 62, 49, 29, 1, -32, -65, -94, -108, -112, -109, -102, -97, -83, -58, -22, + 18, 54, 84, 103, 116, 121, 120, 112, 91, 63, 29, -6, -34, -54, -66, -75, + -79, -81, -72, -50, -22, 9, 33, 50, 59, 67, 70, 70, 60, 43, 13, -20, + -51, -78, -97, -107, -111, -109, -105, -94, -72, -37, 5, 42, 72, 96, 114, 124, + 127, 118, 100, 75, 42, 10, -22, -47, -62, -72, -79, -84, -82, -64, -35, -2, + 23, 39, 50, 61, 69, 71, 66, 51, 27, -6, -36, -62, -81, -96, -104, -105, + -106, -101, -83, -52, -11, 27, 57, 82, 103, 120, 127, 122, 107, 82, 53, 19, + -12, -39, -55, -65, -73, -81, -81, -67, -40, -8, 16, 30, 41, 52, 62, 68, + 66, 56, 34, 3, -28, -53, -71, -86, -96, -102, -106, -103, -88, -62, -25, 15, + 47, 72, 90, 109, 120, 123, 115, 93, 63, 31, 1, -24, -40, -52, -64, -76, + -82, -73, -50, -22, 1, 18, 27, 39, 51, 63, 67, 61, 44, 18, -13, -38, + -53, -69, -83, -96, -105, -103, -93, -69, -36, -3, 30, 56, 77, 95, 111, 116, + 113, 97, 72, 42, 13, -12, -25, -38, -54, -70, -79, -74, -57, -32, -11, 4, + 15, 26, 40, 55, 65, 62, 51, 28, 1, -24, -40, -56, -73, -89, -101, -102, + -95, -79, -50, -17, 16, 47, 68, 88, 104, 114, 115, 102, 80, 53, 24, 0, + -18, -31, -45, -60, -73, -74, -63, -42, -21, -6, 6, 16, 28, 45, 56, 59, + 51, 35, 14, -9, -26, -41, -57, -73, -87, -97, -95, -85, -62, -32, -2, 26, + 50, 71, 91, 105, 111, 105, 89, 64, 40, 16, -4, -20, -35, -49, -64, -70, + -68, -53, -35, -18, -6, 5, 14, 29, 45, 55, 54, 39, 21, 4, -13, -25, + -42, -63, -77, -89, -90, -80, -66, -44, -19, 10, 35, 57, 76, 93, 104, 104, + 91, 68, 48, 29, 13, -6, -24, -42, -56, -63, -61, -54, -42, -27, -17, -6, + 5, 18, 33, 44, 47, 39, 25, 10, 0, -14, -29, -50, -67, -79, -85, -81, + -70, -53, -32, -5, 24, 47, 67, 84, 98, 103, 95, 77, 56, 37, 22, 6, + -14, -34, -48, -56, -57, -52, -48, -37, -28, -17, -6, 8, 23, 34, 41, 38, + 28, 15, 4, -4, -16, -38, -59, -73, -78, -75, -66, -54, -37, -19, 7, 32, + 53, 72, 87, 95, 92, 78, 58, 44, 32, 20, 2, -21, -38, -47, -48, -47, + -46, -42, -36, -26, -14, -5, 9, 20, 32, 35, 30, 19, 12, 8, -5, -25, + -48, -63, -71, -70, -63, -58, -44, -26, -6, 20, 40, 59, 79, 92, 93, 83, + 60, 47, 37, 29, 13, -10, -28, -40, -44, -44, -48, -47, -41, -33, -22, -13, + 0, 14, 29, 36, 34, 24, 18, 15, 4, -13, -39, -60, -69, -72, -68, -62, + -51, -34, -13, 9, 31, 52, 73, 88, 95, 87, 70, 55, 45, 35, 20, -2, + -23, -36, -42, -47, -48, -51, -50, -40, -30, -17, -8, 7, 23, 36, 37, 30, + 22, 19, 13, -3, -24, -49, -65, -71, -71, -64, -54, -40, -20, -3, 21, 44, + 65, 85, 92, 87, 72, 57, 48, 39, 29, 11, -12, -27, -36, -41, -42, -47, + -49, -45, -37, -28, -17, -4, 13, 28, 33, 29, 26, 23, 17, 6, -11, -33, + -53, -64, -66, -62, -55, -44, -29, -12, 10, 31, 51, 71, 84, 85, 77, 61, + 50, 41, 36, 22, 2, -17, -33, -38, -42, -45, -48, -46, -41, -34, -23, -9, + 7, 24, 35, 32, 28, 23, 17, 10, -4, -26, -49, -64, -68, -64, -58, -46, + -32, -13, 8, 28, 45, 65, 78, 82, 76, 62, 52, 45, 37, 23, 6, -10, + -26, -35, -41, -45, -46, -48, -48, -39, -27, -11, 3, 14, 23, 27, 28, 25, + 23, 15, 2, -17, -34, -52, -60, -61, -56, -44, -32, -17, -3, 16, 34, 54, + 66, 73, 68, 58, 47, 42, 37, 29, 17, 3, -14, -25, -31, -36, -39, -44, + -48, -44, -33, -20, -9, 2, 13, 22, 26, 24, 20, 14, 5, -7, -22, -39, + -50, -55, -51, -43, -32, -20, -7, 10, 28, 44, 57, 65, 67, 64, 54, 44, + 36, 28, 18, 4, -9, -23, -32, -39, -42, -46, -44, -38, -29, -19, -12, -4, + 10, 22, 27, 22, 14, 8, 1, -6, -17, -30, -43, -49, -47, -38, -26, -18, + -10, 3, 17, 34, 45, 54, 59, 57, 53, 45, 37, 30, 22, 11, -3, -14, + -24, -34, -40, -45, -43, -39, -29, -21, -14, -6, 3, 16, 20, 17, 10, 3, + 0, -6, -15, -25, -33, -38, -37, -31, -21, -12, -6, 5, 15, 27, 39, 46, + 50, 51, 47, 44, 36, 29, 20, 10, 1, -10, -18, -27, -36, -40, -42, -37, + -29, -21, -14, -7, 1, 10, 16, 10, 3, -2, -3, -6, -12, -22, -28, -30, + -28, -23, -16, -11, -7, 0, 7, 19, 31, 42, 47, 47, 46, 46, 40, 33, + 21, 10, 2, -6, -12, -24, -33, -37, -38, -36, -31, -21, -14, -7, -2, 2, + 7, 8, 4, -2, -7, -12, -14, -19, -23, -24, -20, -16, -11, -6, -2, 3, + 9, 16, 24, 33, 37, 40, 44, 44, 40, 33, 22, 13, 5, -3, -8, -21, + -30, -35, -34, -32, -30, -23, -13, -6, -3, -3, -2, -2, -4, -7, -9, -12, + -13, -13, -14, -14, -11, -12, -4, -2, 2, 0, 3, 10, 18, 27, 32, 35, + 38, 40, 37, 32, 23, 13, 8, 2, -4, -11, -22, -27, -31, -30, -29, -24, + -14, -7, -8, -7, -10, -10, -10, -10, -11, -12, -13, -12, -11, -11, -7, -2, + 4, 5, 3, -2, 0, 8, 15, 21, 26, 30, 32, 37, 37, 32, 26, 16, + 10, 4, -4, -9, -16, -21, -26, -29, -28, -23, -15, -11, -9, -11, -13, -14, + -14, -13, -13, -12, -13, -12, -8, -3, 3, 6, 8, 10, 7, 1, -3, 2, + 8, 17, 22, 22, 27, 32, 37, 35, 29, 18, 11, 2, -4, -8, -14, -17, + -21, -23, -25, -22, -17, -11, -9, -11, -16, -16, -16, -16, -14, -15, -14, -11, + -5, 0, 4, 5, 6, 7, 6, 4, 0, 3, 8, 16, 21, 20, 24, 28, + 34, 35, 29, 17, 8, 3, 1, -3, -9, -15, -20, -21, -23, -22, -21, -17, + -13, -14, -18, -23, -22, -17, -13, -10, -9, -8, 0, 6, 9, 10, 8, 6, + 6, 4, 0, -2, 1, 10, 17, 20, 22, 25, 29, 31, 29, 20, 10, 2, + -2, 0, -5, -11, -18, -20, -19, -19, -19, -18, -16, -14, -18, -26, -26, -22, + -16, -13, -9, -6, 1, 7, 10, 10, 7, 7, 7, 5, 0, -4, -2, 7, + 14, 19, 22, 26, 30, 32, 30, 22, 13, 6, 1, -2, -7, -13, -16, -18, + -19, -19, -21, -21, -19, -17, -16, -23, -25, -23, -17, -10, -9, -4, 2, 8, + 10, 12, 9, 7, 5, 4, 2, -3, -2, 3, 9, 18, 23, 28, 29, 28, + 27, 26, 19, 12, 6, 0, -7, -11, -15, -17, -20, -21, -20, -22, -23, -25, + -24, -26, -27, -25, -20, -13, -5, 3, 9, 11, 15, 17, 15, 10, 4, 0, + -4, -5, -4, 2, 5, 13, 19, 25, 29, 28, 26, 25, 20, 16, 11, 2, + -5, -10, -10, -10, -14, -17, -21, -24, -26, -29, -27, -28, -28, -26, -23, -17, + -8, 1, 12, 15, 16, 14, 13, 10, 6, 0, -5, -6, -5, 1, 6, 12, + 20, 27, 30, 28, 24, 23, 21, 17, 11, 4, -6, -9, -10, -10, -11, -16, + -18, -21, -24, -26, -29, -28, -27, -25, -23, -18, -11, -2, 11, 15, 15, 12, + 11, 9, 6, 1, -6, -6, -2, 3, 7, 11, 19, 26, 28, 26, 22, 21, + 23, 24, 17, 10, 4, 0, -2, -5, -10, -15, -20, -25, -32, -36, -36, -35, + -32, -30, -26, -19, -10, 2, 14, 21, 21, 17, 13, 10, 7, 1, -5, -5, + -6, -4, 0, 6, 12, 19, 22, 24, 20, 21, 24, 29, 28, 20, 13, 8, + 3, 2, -4, -9, -16, -27, -34, -41, -44, -41, -38, -35, -31, -27, -18, -3, + 13, 26, 29, 23, 18, 14, 11, 8, 4, -2, -8, -11, -9, -6, 4, 9, + 16, 17, 16, 16, 23, 33, 37, 33, 26, 19, 12, 8, 1, -7, -15, -30, + -41, -50, -53, -50, -43, -38, -34, -28, -17, -3, 13, 26, 30, 26, 19, 14, + 12, 9, 4, -2, -10, -14, -13, -7, 4, 9, 12, 13, 13, 17, 25, 32, + 40, 39, 32, 24, 15, 11, 8, 1, -10, -27, -43, -51, -55, -52, -49, -45, + -40, -32, -21, -8, 9, 23, 31, 30, 24, 19, 17, 16, 11, 4, -7, -15, + -18, -14, -6, 2, 5, 7, 9, 14, 24, 35, 45, 48, 45, 34, 25, 16, + 8, 2, -11, -27, -46, -59, -64, -61, -53, -46, -40, -35, -24, -9, 8, 23, + 30, 31, 27, 24, 21, 17, 12, 4, -6, -15, -19, -17, -12, -3, 3, 4, + 6, 12, 25, 37, 45, 47, 47, 43, 35, 23, 12, 2, -10, -24, -42, -60, + -71, -71, -63, -55, -45, -36, -22, -7, 9, 22, 30, 35, 34, 31, 24, 19, + 13, 6, -3, -13, -20, -21, -16, -9, -3, -2, 4, 11, 26, 38, 45, 50, + 49, 48, 42, 31, 16, 4, -9, -21, -38, -59, -72, -77, -70, -61, -53, -41, + -26, -9, 7, 17, 26, 34, 41, 41, 35, 25, 17, 9, 0, -10, -21, -24, + -22, -15, -9, -7, -2, 10, 25, 39, 44, 47, 49, 52, 50, 39, 22, 6, + -8, -20, -34, -54, -70, -78, -77, -68, -61, -49, -33, -15, 3, 16, 25, 32, + 43, 49, 47, 37, 25, 16, 3, -10, -22, -29, -27, -22, -15, -12, -7, 7, + 25, 42, 47, 50, 53, 57, 57, 46, 31, 11, -5, -22, -39, -56, -72, -81, + -85, -81, -71, -56, -36, -16, 4, 19, 29, 37, 48, 55, 56, 48, 34, 20, + 7, -10, -25, -32, -34, -28, -21, -17, -14, 0, 20, 40, 50, 51, 53, 58, + 61, 53, 39, 18, -2, -18, -36, -53, -70, -80, -85, -86, -79, -67, -46, -23, + -2, 17, 27, 35, 44, 55, 62, 57, 44, 26, 9, -10, -23, -29, -32, -28, + -24, -20, -15, -4, 15, 35, 47, 50, 49, 53, 57, 53, 43, 24, 5, -14, + -32, -50, -64, -5, 0, -2, -3, -3, -3, -3, -2, -2, 1, 2, 3, 5, + 8, 11, 11, 10, 8, 5, 1, -6, -13, -19, -21, -18, -15, -13, -10, -7, + -2, 4, 8, 12, 17, 28, 33, 29, 23, 14, 7, -5, -19, -33, -42, -36, + -28, -24, -17, -13, -8, 1, 7, 15, 23, 33, 42, 42, 35, 26, 15, 0, + -16, -30, -44, -45, -34, -27, -20, -16, -13, -4, 4, 12, 21, 29, 40, 45, + 40, 30, 20, 6, -13, -25, -38, -45, -38, -31, -24, -18, -15, -10, -4, 5, + 17, 27, 35, 44, 43, 37, 27, 15, -4, -19, -31, -44, -44, -35, -30, -22, + -19, -16, -8, 2, 15, 25, 32, 42, 47, 42, 32, 18, 0, -16, -26, -39, + -45, -38, -31, -25, -19, -18, -14, -5, 11, 23, 29, 39, 46, 45, 38, 25, + 7, -8, -18, -31, -44, -43, -35, -30, -25, -25, -20, -9, 7, 21, 27, 36, + 48, 51, 44, 32, 14, -3, -16, -28, -42, -46, -41, -33, -27, -24, -23, -15, + 1, 16, 27, 33, 42, 47, 46, 38, 21, 5, -9, -21, -34, -44, -45, -39, + -31, -28, -26, -20, -8, 9, 25, 34, 41, 49, 51, 47, 31, 11, -6, -18, + -30, -42, -48, -45, -36, -28, -26, -23, -12, 6, 23, 33, 38, 43, 51, 50, + 36, 15, 0, -12, -22, -35, -50, -50, -40, -31, -29, -27, -18, 1, 20, 32, + 36, 43, 52, 56, 45, 23, 2, -10, -20, -33, -48, -56, -49, -36, -30, -26, + -18, -5, 17, 33, 39, 40, 46, 52, 49, 32, 9, -8, -18, -26, -40, -54, + -53, -39, -30, -28, -23, -12, 10, 31, 39, 38, 42, 54, 54, 41, 17, -5, + -15, -22, -35, -53, -59, -47, -36, -30, -24, -14, 6, 27, 40, 42, 43, 51, + 56, 46, 26, 3, -13, -22, -33, -49, -61, -55, -41, -32, -26, -18, 0, 22, + 38, 45, 43, 48, 55, 50, 33, 11, -10, -21, -29, -43, -59, -60, -46, -35, + -28, -18, -6, 15, 35, 45, 46, 45, 52, 53, 41, 20, -6, -19, -26, -38, + -54, -62, -53, -39, -29, -19, -11, 6, 29, 44, 48, 45, 47, 52, 49, 32, + 5, -18, -26, -32, -45, -61, -61, -48, -35, -23, -14, -2, 22, 42, 52, 50, + 46, 50, 50, 38, 12, -15, -26, -31, -43, -59, -65, -53, -37, -25, -16, -6, + 16, 40, 53, 53, 47, 49, 51, 42, 22, -10, -27, -31, -38, -54, -67, -63, + -46, -27, -18, -7, 10, 31, 52, 59, 53, 48, 50, 46, 32, 3, -24, -34, + -39, -50, -66, -68, -54, -35, -20, -8, 6, 23, 47, 62, 59, 52, 50, 48, + 37, 13, -18, -35, -40, -46, -62, -72, -63, -43, -25, -10, 6, 20, 41, 59, + 63, 55, 49, 46, 39, 21, -9, -31, -39, -42, -52, -68, -68, -52, -32, -17, + -4, 9, 31, 54, 66, 63, 54, 51, 44, 32, 6, -26, -40, -44, -51, -65, + -72, -61, -41, -23, -5, 9, 25, 48, 64, 66, 59, 54, 46, 33, 12, -17, + -36, -45, -51, -62, -73, -67, -48, -31, -11, 8, 21, 44, 64, 70, 64, 57, + 49, 36, 20, -8, -34, -47, -52, -58, -68, -73, -59, -40, -19, 4, 17, 36, + 58, 72, 73, 65, 56, 41, 26, 4, -24, -44, -55, -63, -69, -73, -66, -51, + -28, -2, 18, 32, 51, 67, 75, 72, 62, 46, 29, 11, -13, -37, -54, -64, + -70, -71, -70, -58, -38, -13, 14, 30, 48, 64, 73, 76, 69, 52, 34, 15, + -7, -31, -50, -62, -69, -71, -71, -66, -47, -19, 8, 26, 40, 58, 73, 81, + 76, 57, 39, 23, 2, -22, -45, -62, -71, -73, -71, -69, -57, -32, 0, 26, + 41, 55, 70, 81, 83, 64, 41, 24, 6, -15, -39, -60, -71, -73, -69, -69, + -62, -40, -11, 20, 39, 51, 65, 78, 86, 75, 50, 29, 11, -8, -30, -53, + -70, -77, -71, -66, -67, -53, -22, 13, 37, 49, 60, 75, 89, 84, 58, 33, + 16, -2, -22, -47, -68, -77, -72, -67, -68, -60, -34, 0, 29, 47, 56, 69, + 85, 88, 69, 40, 20, 4, -13, -35, -61, -76, -74, -65, -66, -65, -47, -15, + 20, 43, 53, 64, 81, 89, 77, 50, 26, 9, -10, -29, -51, -71, -78, -71, + -66, -64, -52, -27, 9, 38, 54, 62, 73, 85, 82, 60, 34, 13, -3, -19, + -40, -65, -80, -74, -68, -69, -61, -40, -4, 29, 49, 61, 72, 86, 86, 70, + 45, 21, 3, -16, -33, -56, -80, -78, -70, -70, -65, -50, -18, 20, 48, 62, + 68, 80, 88, 78, 53, 26, 5, -12, -26, -45, -72, -81, -71, -67, -64, -56, + -34, 4, 37, 57, 63, 73, 85, 83, 63, 37, 16, 0, -17, -36, -63, -79, + -74, -70, -69, -63, -44, -10, 26, 52, 62, 69, 81, 84, 69, 45, 22, 3, + -15, -28, -52, -75, -76, -69, -67, -64, -52, -24, 14, 45, 60, 65, 74, 82, + 75, 54, 32, 12, -6, -21, -44, -68, -78, -74, -71, -69, -60, -34, 2, 34, + 55, 66, 73, 79, 78, 61, 39, 20, 2, -16, -34, -56, -72, -74, -70, -71, + -66, -47, -14, 21, 48, 61, 68, 76, 80, 69, 46, 27, 11, -7, -26, -50, + -68, -72, -70, -70, -69, -54, -24, 10, 39, 57, 66, 72, 76, 70, 52, 33, + 16, -4, -20, -39, -59, -70, -71, -69, -67, -60, -37, -6, 27, 50, 62, 67, + 72, 74, 61, 41, 25, 10, -10, -31, -51, -67, -74, -73, -73, -68, -48, -16, + 17, 45, 60, 66, 73, 75, 66, 48, 29, 15, -3, -24, -45, -62, -70, -72, + -74, -70, -55, -26, 7, 32, 51, 63, 70, 73, 67, 51, 35, 24, 9, -16, + -38, -54, -64, -68, -75, -75, -62, -36, -5, 22, 45, 60, 69, 74, 68, 57, + 43, 29, 15, -9, -29, -45, -60, -67, -75, -76, -64, -44, -16, 10, 32, 52, + 63, 68, 66, 59, 48, 36, 24, 6, -17, -35, -51, -60, -70, -78, -72, -55, + -27, 1, 20, 39, 56, 65, 68, 60, 51, 41, 31, 15, -9, -27, -44, -58, + -67, -75, -73, -58, -35, -8, 11, 32, 50, 60, 61, 57, 53, 47, 37, 25, + 4, -19, -35, -48, -60, -73, -76, -67, -46, -18, 2, 20, 40, 56, 64, 62, + 56, 49, 43, 34, 15, -10, -31, -45, -57, -70, -78, -69, -52, -27, -4, 13, + 34, 52, 60, 57, 53, 52, 46, 36, 22, 1, -19, -35, -50, -65, -73, -70, + -58, -41, -17, 4, 22, 42, 55, 58, 57, 55, 50, 43, 32, 12, -11, -30, + -47, -61, -71, -72, -63, -46, -26, -6, 13, 30, 47, 53, 54, 56, 52, 46, + 38, 24, 5, -20, -39, -52, -63, -67, -66, -57, -37, -15, 3, 18, 37, 50, + 55, 59, 55, 49, 45, 32, 15, -10, -34, -50, -61, -66, -66, -58, -42, -24, + -4, 11, 27, 44, 50, 54, 57, 53, 49, 39, 23, 2, -23, -43, -57, -64, + -67, -62, -50, -33, -14, 4, 18, 37, 48, 53, 57, 55, 52, 44, 30, 13, + -14, -38, -54, -62, -65, -62, -54, -42, -24, -2, 13, 28, 41, 48, 56, 57, + 52, 45, 37, 23, 0, -28, -47, -57, -62, -63, -59, -50, -34, -14, 1, 16, + 35, 48, 56, 59, 59, 54, 45, 31, 8, -20, -42, -56, -62, -64, -60, -52, + -40, -23, -5, 10, 28, 43, 52, 56, 57, 56, 49, 38, 21, -8, -33, -46, + -56, -60, -59, -56, -47, -32, -15, 0, 17, 34, 47, 55, 58, 57, 53, 43, + 30, 8, -24, -42, -52, -59, -58, -57, -51, -42, -26, -8, 11, 29, 42, 50, + 57, 59, 55, 48, 34, 15, -15, -36, -45, -52, -55, -58, -55, -43, -31, -17, + -2, 16, 37, 50, 56, 58, 58, 54, 43, 23, -8, -33, -40, -47, -54, -57, + -58, -48, -34, -23, -10, 9, 31, 48, 54, 55, 55, 57, 50, 32, 3, -28, + -37, -41, -49, -55, -58, -49, -36, -27, -17, 1, 21, 41, 50, 52, 51, 54, + 55, 41, 13, -18, -32, -35, -42, -50, -57, -55, -41, -32, -24, -10, 10, 33, + 47, 50, 51, 54, 59, 49, 24, -8, -26, -30, -37, -46, -56, -59, -46, -35, + -29, -18, 2, 25, 44, 48, 47, 51, 57, 56, 36, 5, -20, -28, -31, -40, + -51, -58, -52, -39, -33, -25, -8, 15, 38, 49, 47, 50, 56, 60, 46, 15, + -11, -25, -30, -36, -49, -60, -54, -39, -33, -30, -14, 8, 32, 47, 44, 44, + 51, 59, 52, 26, -4, -20, -24, -29, -41, -54, -55, -43, -34, -33, -26, -8, + 17, 37, 43, 42, 48, 59, 60, 42, 13, -11, -21, -25, -36, -51, -59, -51, + -38, -34, -32, -17, 10, 33, 43, 43, 44, 55, 60, 46, 21, -6, -18, -22, + -28, -42, -54, -52, -39, -30, -32, -25, -4, 20, 36, 39, 39, 48, 60, 57, + 36, 10, -11, -19, -22, -34, -51, -58, -48, -35, -36, -34, -13, 13, 35, 41, + 38, 46, 59, 61, 44, 20, -5, -20, -22, -30, -46, -56, -53, -39, -34, -36, + -22, 1, 25, 39, 39, 42, 53, 60, 54, 34, 10, -10, -17, -21, -39, -57, + -59, -48, -38, -43, -35, -11, 16, 37, 43, 42, 52, 61, 58, 41, 19, -3, + -16, -21, -31, -50, -59, -53, -40, -39, -39, -22, 5, 30, 40, 38, 45, 58, + 64, 52, 28, 5, -12, -17, -23, -44, -58, -56, -46, -40, -43, -33, -7, 22, + 39, 41, 44, 55, 64, 60, 40, 13, -7, -16, -21, -35, -56, -60, -52, -44, + -43, -40, -21, 11, 34, 40, 40, 50, 61, 64, 53, 29, 6, -10, -16, -25, + -47, -62, -61, -53, -49, -47, -35, -5, 26, 42, 45, 49, 58, 65, 59, 39, + 15, -5, -16, -22, -37, -56, -61, -56, -50, -47, -42, -21, 11, 33, 40, 44, + 53, 63, 66, 54, 29, 8, -6, -15, -28, -52, -64, -60, -57, -53, -49, -31, + 1, 28, 40, 42, 51, 63, 66, 56, 36, 14, -3, -13, -25, -45, -61, -61, + -58, -54, -47, -38, -11, 20, 36, 41, 44, 55, 64, 60, 47, 28, 9, -4, + -15, -32, -56, -67, -64, -62, -55, -48, -27, 8, 29, 41, 47, 57, 66, 65, + 56, 39, 17, 0, -13, -27, -49, -66, -68, -67, -58, -48, -36, -8, 22, 38, + 45, 53, 63, 65, 61, 51, 28, 11, -4, -20, -40, -62, -70, -71, -68, -55, + -44, -24, 9, 30, 42, 52, 66, 69, 64, 58, 42, 20, 4, -14, -34, -57, + -71, -73, -73, -63, -51, -35, -5, 23, 38, 48, 62, 71, 69, 65, 54, 32, + 14, -6, -26, -48, -68, -79, -82, -72, -57, -42, -18, 11, 33, 48, 63, 73, + 72, 68, 62, 46, 22, 0, -21, -42, -63, -76, -83, -80, -65, -49, -28, -2, + 23, 42, 58, 71, 75, 72, 68, 56, 33, 10, -12, -32, -54, -73, -84, -87, + -73, -54, -36, -15, 11, 34, 52, 67, 73, 73, 72, 66, 48, 21, -6, -26, + -47, -67, -80, -88, -81, -62, -41, -23, 0, 27, 47, 65, 74, 74, 71, 67, + 57, 33, 4, -20, -42, -64, -77, -88, -88, -72, -49, -27, -7, 16, 40, 63, + 75, 75, 74, 69, 64, 46, 16, -13, -35, -57, -74, -87, -93, -81, -58, -35, + -17, 6, 33, 59, 73, 76, 76, 71, 68, 58, 29, -4, -29, -48, -68, -83, + -94, -92, -70, -42, -22, -4, 21, 51, 73, 78, 76, 73, 70, 63, 40, 7, + -24, -42, -60, -79, -91, -92, -76, -52, -30, -12, 9, 39, 66, 76, 76, 75, + 74, 70, 54, 24, -12, -36, -52, -72, -93, -100, -90, -64, -38, -21, -5, 25, + 61, 81, 81, 77, 78, 76, 63, 33, -5, -33, -49, -67, -90, -100, -92, -71, + -44, -21, -8, 14, 49, 75, 82, 77, 76, 75, 66, 45, 10, -27, -45, -59, + -80, -98, -98, -81, -52, -26, -12, 2, 34, 71, 86, 80, 75, 77, 71, 54, + 23, -17, -44, -57, -74, -93, -99, -87, -65, -36, -14, -4, 20, 55, 79, 82, + 78, 78, 75, 65, 41, 1, -34, -52, -67, -88, -104, -98, -76, -47, -23, -12, + 6, 45, 81, 90, 81, 79, 81, 72, 50, 11, -28, -50, -61, -81, -102, -103, + -84, -57, -30, -13, 1, 30, 70, 92, 88, 81, 80, 75, 59, 27, -15, -48, + -62, -76, -97, -106, -94, -69, -39, -16, -4, 17, 59, 92, 94, 87, 86, 83, + 67, 36, -4, -38, -61, -77, -96, -111, -102, -80, -53, -26, -8, 14, 50, 89, + 101, 93, 87, 83, 73, 46, 7, -31, -58, -72, -87, -106, -106, -88, -59, -31, + -12, 5, 33, 74, 99, 99, 90, 84, 78, 57, 22, -18, -49, -70, -84, -100, + -108, -96, -72, -43, -21, -3, 24, 61, 95, 106, 99, 90, 82, 65, 34, -6, + -40, -66, -83, -96, -106, -102, -82, -52, -27, -8, 15, 48, 86, 107, 105, 94, + 85, 73, 45, 6, -32, -61, -80, -91, -102, -106, -92, -63, -35, -15, 8, 37, + 74, 102, 109, 98, 87, 76, 54, 21, -16, -50, -76, -89, -98, -104, -98, -76, + -46, -23, -2, 25, 60, 93, 111, 106, 92, 82, 65, 35, -5, -39, -66, -83, + -95, -105, -105, -86, -57, -33, -11, 15, 50, 86, 111, 115, 102, 88, 71, 43, + 7, -32, -64, -86, -96, -100, -102, -92, -67, -40, -13, 13, 42, 75, 103, 116, + 106, 90, 74, 49, 16, -21, -54, -80, -94, -98, -100, -94, -75, -50, -23, 4, + 30, 62, 95, 117, 115, 100, 81, 57, 28, -10, -46, -75, -95, -102, -101, -97, + -83, -61, -32, -2, 24, 55, 87, 111, 118, 106, 88, 65, 35, 0, -36, -67, + -89, -101, -102, -98, -89, -68, -43, -13, 16, 46, 80, 107, 121, 116, 98, 75, + 47, 11, -27, -62, -87, -101, -104, -100, -93, -77, -51, -18, 13, 36, 67, 99, + 119, 119, 103, 81, 53, 21, -16, -52, -79, -96, -106, -102, -93, -82, -60, -30, + 3, 30, 59, 88, 111, 121, 111, 89, 61, 30, -4, -41, -74, -94, -106, -104, + -95, -87, -70, -41, -8, 22, 49, 81, 106, 120, 118, 98, 73, 41, 8, -30, + -64, -87, -104, -111, -100, -91, -77, -51, -21, 13, 41, 73, 100, 117, 122, 107, + 83, 52, 19, -18, -55, -82, -101, -111, -105, -93, -83, -60, -29, 5, 35, 64, + 92, 112, 121, 112, 88, 61, 29, -7, -45, -75, -94, -108, -108, -96, -87, -67, + -37, -5, 26, 52, 83, 105, 116, 116, 97, 70, 41, 7, -33, -67, -91, -105, + -110, -99, -88, -73, -48, -18, 15, 45, 74, 98, 114, 118, 104, 79, 51, 17, + -21, -58, -86, -102, -109, -103, -90, -77, -54, -23, 9, 36, 62, 88, 107, 114, + 107, 88, 63, 30, -8, -46, -77, -96, -107, -108, -97, -81, -63, -36, -4, 30, + 59, 84, 104, 115, 112, 95, 69, 38, 5, -33, -69, -94, -104, -105, -99, -87, + -72, -44, -11, 21, 47, 71, 97, 113, 113, 99, 77, 49, 17, -19, -57, -87, + -101, -105, -103, -90, -72, -54, -24, 10, 41, 64, 86, 104, 111, 104, 85, 57, + 25, -7, -42, -75, -96, -101, -98, -92, -79, -61, -36, -4, 28, 51, 74, 98, + 110, 107, 94, 70, 38, 5, -30, -64, -89, -101, -101, -95, -79, -63, -43, -14, + 21, 48, 68, 90, 105, 108, 97, 74, 44, 12, -20, -52, -83, -96, -96, -92, + -82, -67, -49, -24, 10, 39, 59, 79, 99, 107, 101, 83, 54, 21, -11, -41, + -71, -92, -98, -95, -84, -68, -54, -35, -5, 28, 54, 73, 92, 103, 103, 90, + 64, 31, -4, -34, -63, -85, -94, -92, -84, -70, -56, -38, -11, 19, 44, 64, + 83, 95, 98, 90, 66, 39, 9, -22, -50, -73, -86, -89, -84, -72, -59, -45, + -23, 6, 35, 58, 75, 89, 96, 92, 75, 49, 19, -14, -42, -63, -80, -88, + -84, -74, -60, -48, -30, -5, 23, 52, 70, 82, 91, 91, 79, 57, 29, -3, + -33, -54, -70, -84, -87, -79, -65, -50, -35, -16, 10, 41, 68, 80, 85, 88, + 82, 64, 36, 3, -28, -49, -60, -72, -83, -81, -66, -49, -37, -22, -2, 28, + 58, 74, 78, 83, 81, 69, 45, 14, -18, -42, -55, -66, -77, -79, -68, -53, + -39, -25, -8, 17, 46, 67, 72, 75, 74, 70, 53, 24, -9, -34, -48, -55, + -64, -74, -70, -55, -40, -28, -17, 3, 33, 61, 70, 71, 69, 68, 61, 37, + 3, -28, -44, -50, -57, -70, -73, -58, -41, -30, -21, -8, 21, 52, 67, 69, + 66, 66, 64, 44, 10, -22, -39, -48, -52, -61, -72, -62, -43, -29, -20, -12, + 7, 38, 62, 68, 61, 56, 60, 51, 23, -12, -36, -43, -44, -49, -65, -65, + -45, -29, -22, -19, -7, 24, 52, 65, 57, 52, 58, 57, 36, 0, -30, -38, + -37, -39, -55, -66, -52, -33, -23, -21, -14, 10, 40, 60, 59, 49, 51, 54, + 43, 11, -21, -35, -37, -33, -42, -55, -49, -29, -19, -20, -19, -5, 23, 49, + 54, 43, 42, 50, 49, 23, -12, -30, -34, -29, -31, -49, -54, -35, -19, -16, + -18, -11, 10, 39, 55, 45, 35, 41, 47, 31, -3, -26, -33, -28, -23, -36, + -47, -36, -18, -11, -16, -16, -3, 21, 42, 42, 32, 32, 40, 35, 13, -13, + -25, -24, -17, -22, -37, -38, -25, -16, -16, -19, -11, 7, 30, 42, 34, 27, + 33, 35, 19, -6, -21, -23, -17, -14, -23, -29, -21, -11, -10, -17, -16, -4, + 14, 30, 31, 20, 21, 29, 24, 6, -11, -16, -11, -5, -10, -20, -22, -15, + -12, -17, -21, -15, 0, 20, 29, 22, 17, 23, 25, 16, -2, -14, -14, -7, + -2, -9, -14, -12, -9, -11, -17, -17, -11, 3, 18, 17, 9, 13, 19, 17, + 7, -5, -5, 3, 8, 3, -7, -10, -12, -14, -20, -22, -17, -7, 9, 17, + 10, 8, 15, 18, 11, 2, -3, 1, 8, 9, 5, -3, -9, -12, -18, -21, + -21, -19, -4, 10, 9, 2, 5, 14, 16, 11, 4, 5, 13, 16, 14, 6, + -8, -14, -19, -23, -24, -21, -13, -2, 7, 3, -2, 8, 12, 11, 9, 10, + 14, 19, 20, 16, 4, -9, -17, -23, -26, -27, -24, -14, -2, 1, -5, 3, + 15, 17, 14, 14, 17, 22, 25, 20, 9, -8, -19, -25, -30, -29, -26, -22, + -11, 0, -3, -3, 9, 16, 19, 20, 21, 24, 28, 28, 20, 2, -16, -25, + -30, -34, -33, -32, -23, -9, -6, -8, 2, 15, 21, 24, 26, 29, 33, 34, + 30, 14, -11, -26, -33, -38, -38, -37, -34, -23, -12, -7, 0, 11, 21, 29, + 34, 35, 37, 39, 35, 21, -5, -26, -34, -39, -40, -42, -42, -31, -17, -9, + -4, 7, 19, 31, 38, 38, 41, 42, 40, 28, 3, -22, -36, -42, -45, -46, + -46, -37, -23, -14, -6, 6, 20, 32, 40, 40, 44, 46, 41, 31, 13, -12, + -32, -44, -47, -48, -49, -44, -32, -20, -8, 3, 15, 27, 40, 45, 47, 50, + 47, 39, 21, -6, -29, -42, -46, -51, -56, -52, -41, -24, -13, -4, 11, 27, + 41, 51, 52, 53, 52, 45, 29, 2, -25, -45, -50, -52, -57, -56, -49, -32, + -16, -4, 9, 22, 36, 49, 55, 56, 56, 50, 35, 11, -14, -37, -51, -57, + -61, -61, -56, -41, -23, -8, 8, 21, 33, 48, 61, 64, 60, 54, 40, 17, + -8, -34, -52, -59, -62, -63, -60, -49, -30, -14, 2, 19, 33, 47, 60, 66, + 67, 65, 50, 25, -3, -26, -47, -59, -68, -72, -66, -57, -38, -20, -5, 14, + 30, 44, 61, 71, 71, 68, 57, 34, 7, -20, -43, -58, -68, -72, -69, -62, + -45, -25, -10, 7, 24, 42, 59, 70, 74, 73, 65, 46, 16, -15, -38, -53, + -65, -77, -77, -70, -54, -34, -19, 0, 20, 41, 60, 74, 82, 80, 71, 54, + 27, -8, -36, -55, -68, -78, -82, -76, -61, -40, -20, -2, 17, 36, 57, 74, + 83, 82, 74, 62, 39, 3, -31, -49, -62, -75, -84, -84, -69, -47, -27, -13, + 6, 31, 56, 73, 82, 86, 80, 68, 49, 14, -24, -46, -60, -74, -83, -86, + -76, -54, -32, -15, 3, 23, 48, 71, 85, 87, 80, 71, 57, 27, -12, -41, + -57, -68, -78, -88, -84, -64, -41, -23, -5, 16, 40, 65, 84, 90, 87, 77, + 63, 36, -3, -34, -57, -69, -76, -85, -87, -73, -48, -27, -8, 13, 34, 60, + 83, 91, 86, 77, 66, 44, 9, -26, -53, -68, -74, -83, -88, -80, -56, -33, + -13, 9, 29, 55, 79, 93, 89, 76, 67, 52, 21, -15, -46, -69, -74, -77, + -84, -86, -67, -42, -20, 4, 23, 43, 71, 94, 95, 80, 67, 56, 32, 0, + -37, -66, -74, -73, -78, -87, -76, -50, -25, 1, 21, 37, 61, 88, 97, 84, + 67, 57, 38, 8, -25, -59, -77, -77, -76, -81, -80, -61, -34, -6, 20, 36, + 55, 80, 96, 91, 70, 54, 39, 17, -14, -51, -75, -79, -75, -77, -80, -68, + -40, -11, 15, 33, 48, 71, 92, 91, 73, 57, 45, 24, -3, -38, -68, -79, + -77, -76, -80, -74, -51, -19, 12, 32, 46, 65, 88, 96, 83, 59, 40, 24, + 4, -31, -67, -83, -80, -73, -73, -72, -55, -24, 9, 31, 44, 58, 78, 90, + 84, 63, 42, 28, 10, -18, -53, -77, -82, -76, -73, -74, -65, -37, -2, 27, + 42, 55, 73, 88, 90, 72, 47, 28, 13, -12, -45, -74, -84, -78, -70, -68, + -63, -43, -9, 23, 42, 52, 64, 78, 84, 75, 52, 32, 17, -3, -32, -62, + -79, -78, -71, -67, -65, -52, -19, 15, 38, 50, 61, 73, 80, 79, 59, 34, + 18, 3, -21, -51, -75, -81, -72, -64, -61, -54, -31, 4, 31, 48, 55, 63, + 73, 78, 67, 40, 21, 8, -12, -39, -65, -80, -76, -65, -58, -52, -38, -8, + 25, 45, 56, 61, 67, 74, 69, 47, 22, 7, -10, -31, -56, -75, -77, -66, + -57, -49, -37, -14, 16, 40, 53, 57, 61, 67, 69, 55, 30, 11, -6, -25, + -47, -69, -78, -70, -59, -51, -40, -20, 10, 34, 51, 58, 59, 63, 66, 59, + 36, 14, -2, -19, -40, -61, -75, -71, -59, -51, -41, -27, -2, 26, 47, 58, + 58, 59, 64, 63, 46, 19, -2, -17, -35, -56, -71, -75, -64, -50, -40, -26, + -6, 21, 43, 55, 57, 56, 58, 59, 47, 23, 1, -13, -29, -48, -63, -69, + -61, -48, -40, -29, -11, 13, 35, 48, 53, 51, 53, 57, 50, 33, 9, -10, + -25, -42, -56, -65, -64, -51, -40, -29, -13, 9, 30, 44, 50, 48, 47, 50, + 46, 35, 13, -8, -20, -33, -47, -57, -56, -48, -38, -30, -16, 1, 21, 35, + 44, 46, 42, 44, 44, 39, 21, -3, -18, -30, -40, -51, -57, -51, -37, -26, + -14, 0, 16, 33, 42, 43, 37, 34, 37, 35, 22, 1, -17, -27, -34, -41, + -48, -45, -36, -25, -11, 0, 11, 24, 34, 38, 35, 30, 29, 30, 24, 8, + -11, -24, -31, -36, -42, -42, -35, -25, -12, -2, 9, 21, 29, 33, 32, 27, + 25, 26, 23, 9, -8, -21, -31, -34, -36, -37, -33, -26, -13, -2, 8, 18, + 24, 28, 29, 27, 22, 20, 21, 14, -2, -17, -27, -30, -31, -33, -32, -26, + -14, -3, 6, 15, 22, 27, 26, 25, 22, 17, 17, 13, 3, -12, -25, -30, + -31, -30, -27, -24, -14, 0, 8, 16, 20, 22, 22, 21, 16, 11, 13, 13, + 3, -8, -21, -27, -26, -25, -25, -23, -12, 0, 6, 12, 18, 20, 22, 20, + 15, 9, 9, 10, 3, -9, -21, -29, -28, -23, -20, -19, -10, 3, 13, 17, + 19, 19, 21, 17, 11, 4, 1, 4, 0, -8, -17, -25, -24, -21, -19, -16, + -9, 4, 13, 17, 19, 20, 22, 19, 11, 3, -4, -3, -4, -12, -18, -26, + -28, -23, -16, -10, -5, 5, 18, 25, 25, 22, 21, 19, 9, 0, -9, -11, + -10, -13, -16, -24, -27, -22, -14, -8, -2, 7, 17, 25, 25, 22, 20, 17, + 10, -2, -10, -12, -13, -15, -18, -20, -24, -22, -16, -8, 3, 11, 17, 25, + 27, 23, 21, 17, 9, 0, -10, -12, -13, -18, -19, -20, -24, -23, -17, -10, + 0, 11, 19, 26, 30, 26, 24, 20, 12, 3, -8, -15, -18, -22, -25, -25, + -25, -24, -20, -12, 2, 15, 20, 25, 31, 33, 29, 23, 12, 3, -5, -15, + -23, -28, -28, -25, -22, -22, -18, -10, 2, 15, 19, 23, 30, 32, 28, 24, + 15, 7, 1, -13, -23, -27, -29, -28, -26, -24, -20, -14, -2, 13, 20, 24, + 32, 34, 32, 29, 22, 9, -2, -10, -21, -30, -34, -34, -29, -22, -20, -18, + -5, 14, 23, 25, 31, 36, 35, 30, 22, 10, 0, -8, -21, -34, -39, -36, + -32, -27, -20, -15, -5, 14, 27, 28, 32, 36, 35, 33, 25, 14, 0, -11, + -21, -34, -40, -41, -39, -30, -20, -13, -6, 10, 27, 30, 32, 35, 34, 36, + 29, 17, 5, -7, -16, -33, -45, -45, -43, -33, -24, -18, -9, 8, 26, 32, + 33, 39, 38, 36, 31, 20, 10, -6, -19, -32, -45, -47, -46, -39, -25, -12, + -3, 8, 22, 32, 32, 35, 35, 32, 31, 23, 14, 0, -15, -26, -43, -51, + -50, -43, -29, -17, -6, 5, 19, 34, 36, 33, 37, 37, 34, 25, 16, 5, + -11, -26, -41, -51, -55, -51, -36, -21, -7, 7, 16, 28, 37, 35, 35, 36, + 34, 30, 20, 9, -7, -22, -37, -49, -56, -54, -42, -25, -11, 2, 13, 24, + 35, 38, 37, 38, 37, 32, 25, 16, 1, -21, -38, -47, -56, -58, -50, -34, + -14, 4, 13, 20, 31, 40, 39, 35, 36, 34, 28, 20, 5, -15, -33, -44, + -55, -63, -54, -38, -19, -2, 10, 17, 30, 40, 41, 36, 38, 41, 33, 22, + 9, -13, -36, -50, -55, -63, -61, -44, -22, 2, 18, 22, 28, 38, 42, 39, + 34, 35, 34, 27, 14, -7, -29, -43, -51, -60, -63, -50, -30, -10, 8, 16, + 21, 32, 40, 40, 38, 39, 41, 35, 24, 6, -20, -41, -54, -62, -65, -58, + -39, -16, 7, 18, 22, 29, 39, 43, 40, 35, 38, 37, 27, 12, -14, -37, + -51, -58, -64, -64, -47, -22, -2, 14, 18, 24, 36, 44, 45, 41, 43, 43, + 32, 17, -8, -35, -54, -63, -67, -68, -56, -29, -4, 16, 24, 26, 35, 44, + 47, 43, 38, 38, 36, 24, 0, -30, -50, -57, -59, -63, -61, -40, -11, 11, + 20, 20, 26, 39, 48, 46, 40, 39, 42, 33, 12, -20, -47, -58, -60, -62, + -61, -49, -23, 2, 17, 21, 22, 33, 48, 51, 45, 43, 43, 38, 20, -10, + -41, -58, -61, -64, -62, -55, -35, -9, 10, 21, 23, 32, 50, 57, 49, 45, + 45, 43, 26, -6, -38, -58, -62, -65, -67, -61, -44, -15, 10, 23, 26, 28, + 44, 59, 55, 46, 42, 41, 33, 6, -30, -57, -64, -62, -64, -62, -50, -26, + 2, 18, 26, 28, 39, 59, 60, 48, 43, 43, 37, 14, -22, -53, -67, -63, + -65, -66, -55, -33, -2, 19, 28, 31, 37, 55, 64, 53, 41, 39, 37, 20, + -16, -48, -66, -65, -62, -66, -60, -43, -12, 15, 26, 31, 37, 53, 69, 63, + 46, 39, 38, 27, -5, -44, -72, -73, -65, -65, -63, -52, -24, 11, 31, 36, + 38, 48, 65, 70, 53, 38, 34, 28, 5, -35, -69, -78, -70, -65, -63, -53, + -30, 2, 26, 38, 43, 49, 62, 69, 58, 40, 33, 28, 9, -25, -61, -78, + -75, -69, -64, -55, -37, -7, 22, 36, 43, 49, 57, 66, 62, 44, 31, 29, + 15, -16, -52, -76, -77, -69, -63, -57, -44, -16, 14, 33, 42, 48, 54, 65, + 68, 52, 33, 27, 19, -6, -41, -72, -82, -74, -65, -59, -48, -24, 7, 29, + 43, 50, 53, 60, 67, 58, 39, 28, 22, 2, -31, -64, -82, -79, -71, -61, + -49, -31, -2, 22, 40, 51, 55, 58, 65, 63, 46, 29, 21, 9, -21, -56, + -79, -83, -77, -65, -54, -37, -10, 16, 36, 50, 57, 60, 65, 64, 50, 33, + 22, 11, -13, -47, -73, -82, -80, -70, -57, -42, -19, 8, 30, 49, 58, 61, + 62, 64, 56, 41, 24, 11, -6, -35, -66, -80, -82, -75, -61, -45, -25, -2, + 22, 43, 57, 63, 64, 63, 58, 49, 31, 15, -2, -26, -58, -79, -85, -81, + -66, -49, -31, -9, 17, 39, 55, 64, 69, 67, 61, 53, 35, 16, 1, -20, + -49, -75, -86, -85, -74, -54, -34, -11, 11, 33, 53, 64, 70, 68, 59, 51, + 40, 22, 5, -15, -40, -66, -79, -81, -78, -63, -41, -19, 4, 25, 44, 58, + 67, 72, 65, 57, 47, 29, 11, -8, -31, -61, -81, -85, -82, -68, -47, -25, + -3, 21, 44, 59, 68, 73, 68, 56, 47, 33, 15, -7, -27, -52, -76, -82, + -82, -72, -52, -30, -7, 13, 36, 57, 67, 74, 72, 61, 48, 36, 20, -4, + -25, -47, -71, -81, -81, -75, -56, -33, -10, 11, 30, 49, 63, 73, 74, 63, + 48, 37, 25, 6, -20, -41, -63, -79, -81, -77, -65, -43, -19, 4, 25, 45, + 63, 73, 76, 70, 55, 41, 28, 10, -15, -38, -59, -77, -83, -79, -70, -49, + -25, -4, 20, 40, 59, 74, 76, 73, 62, 46, 33, 16, -10, -34, -51, -68, + -83, -85, -75, -58, -34, -11, 14, 35, 55, 73, 79, 76, 69, 51, 33, 20, + -2, -30, -53, -67, -81, -84, -76, -61, -39, -14, 11, 32, 49, 67, 77, 74, + 68, 55, 37, 23, 5, -22, -45, -59, -73, -84, -82, -68, -46, -24, 3, 26, + 43, 62, 75, 74, 72, 61, 42, 25, 10, -15, -40, -57, -70, -83, -84, -71, + -49, -28, -6, 20, 41, 59, 72, 72, 69, 63, 48, 29, 13, -8, -31, -51, + -66, -79, -84, -75, -56, -37, -16, 12, 36, 55, 71, 74, 72, 69, 54, 34, + 16, -5, -28, -47, -61, -75, -85, -80, -60, -38, -20, 4, 30, 53, 68, 71, + 69, 67, 57, 39, 20, 0, -21, -41, -58, -71, -79, -79, -66, -45, -25, -3, + 23, 45, 61, 68, 69, 70, 63, 47, 29, 8, -16, -37, -56, -71, -80, -81, + -71, -52, -30, -7, 17, 41, 60, 67, 67, 68, 65, 50, 30, 10, -14, -31, + -47, -65, -77, -79, -70, -53, -33, -14, 8, 34, 56, 62, 62, 66, 64, 54, + 36, 15, -8, -27, -42, -61, -73, -75, -70, -56, -36, -14, 5, 26, 49, 60, + 59, 61, 60, 54, 42, 23, -2, -22, -35, -53, -69, -75, -70, -58, -41, -20, + -3, 18, 43, 59, 57, 57, 60, 56, 44, 28, 7, -17, -32, -47, -63, -73, + -72, -62, -46, -23, -6, 12, 35, 55, 60, 57, 59, 56, 49, 35, 14, -13, + -28, -40, -58, -72, -73, -62, -50, -31, -13, 5, 30, 51, 59, 56, 58, 61, + 56, 38, 17, -9, -26, -37, -52, -68, -74, -63, -50, -32, -14, 1, 22, 45, + 57, 56, 51, 54, 54, 41, 21, -4, -22, -31, -44, -59, -69, -63, -48, -36, + -21, -7, 11, 35, 52, 56, 53, 54, 58, 48, 30, 8, -17, -32, -43, -57, + -68, -69, -56, -39, -22, -8, 6, 28, 49, 57, 54, 51, 55, 52, 35, 13, + -13, -29, -36, -49, -64, -70, -58, -39, -23, -11, 0, 19, 43, 57, 55, 47, + 49, 55, 43, 18, -9, -28, -35, -42, -57, -69, -65, -45, -25, -11, 1, 14, + 37, 55, 60, 50, 45, 48, 42, 21, -4, -25, -35, -40, -50, -60, -61, -46, + -27, -15, -6, 6, 25, 46, 56, 50, 43, 45, 47, 33, 9, -15, -30, -37, + -45, -58, -64, -56, -36, -18, -8, 4, 18, 40, 58, 59, 47, 39, 41, 35, + 12, -15, -32, -38, -39, -46, -57, -55, -37, -17, -7, 1, 11, 27, 48, 56, + 47, 37, 38, 38, 21, -6, -24, -32, -37, -43, -54, -57, -44, -25, -9, 2, + 11, 24, 44, 57, 51, 38, 32, 31, 21, -5, -28, -35, -36, -36, -45, -51, + -41, -25, -8, 3, 8, 17, 33, 48, 49, 37, 31, 30, 25, 7, -18, -30, + -34, -37, -40, -48, -47, -33, -16, 1, 11, 16, 28, 42, 50, 43, 30, 25, + 22, 10, -12, -28, -33, -34, -35, -41, -44, -33, -18, -2, 9, 12, 20, 32, + 43, 41, 29, 24, 22, 14, -3, -21, -29, -30, -31, -35, -41, -35, -21, -6, + 9, 13, 18, 27, 38, 42, 29, 18, 16, 13, 4, -15, -27, -28, -27, -28, + -34, -34, -23, -10, 5, 11, 14, 22, 32, 37, 31, 20, 16, 12, 6, -9, + -22, -25, -27, -26, -32, -34, -27, -15, 0, 10, 12, 18, 28, 36, 35, 23, + 14, 11, 8, -3, -19, -28, -28, -25, -27, -32, -28, -16, -2, 11, 14, 14, + 22, 30, 31, 24, 15, 11, 8, 2, -11, -22, -25, -25, -26, -30, -28, -18, + -7, 5, 12, 14, 19, 27, 30, 26, 19, 13, 9, 4, -6, -20, -26, -23, + -24, -27, -27, -19, -6, 4, 12, 12, 13, 22, 26, 22, 15, 11, 10, 6, + -2, -12, -19, -19, -21, -25, -25, -20, -11, -3, 5, 9, 13, 19, 24, 24, + 21, 15, 12, 7, 2, -9, -20, -22, -22, -23, -24, -22, -11, -2, 7, 11, + 13, 17, 21, 21, 18, 13, 11, 7, 1, -7, -15, -19, -19, -21, -20, -18, + -12, -4, 2, 8, 11, 15, 17, 16, 15, 13, 11, 8, 4, -3, -11, -16, + -15, -19, -20, -16, -12, -5, 2, 5, 8, 14, 17, 15, 11, 10, 9, 8, + 4, -2, -6, -11, -12, -14, -18, -13, -7, -6, -3, 2, 6, 10, 13, 13, + 9, 8, 9, 6, 1, 0, -5, -9, -12, -12, -13, -12, -4, 1, 3, 4, + 4, 7, 11, 10, 7, 3, 3, 4, 2, -2, -3, -6, -7, -6, -6, -8, + -5, 2, 1, 1, 0, 1, 5, 5, 3, 0, 0, 5, 5, 2, 3, 0, + -3, -5, -6, -8, -7, -2, -3, -4, -2, -2, 3, 6, 4, 1, -3, 1, + 5, 3, 2, 0, -2, -3, -4, -5, -5, 1, 2, -3, -3, -4, -3, 4, + 4, 0, -5, -3, 3, 3, 2, 1, 1, 0, 0, 0, -3, -2, 1, -2, + -4, -3, -4, 1, 5, 2, -5, -7, -2, 2, -2, -2, 0, 2, 3, 2, + 2, 3, 6, 4, -2, -5, -6, -2, 3, -2, -9, -11, -5, 0, -3, -4, + -2, 3, 7, 8, 4, 2, 4, 3, 0, -6, -8, -6, 2, 4, -3, -10, + -10, -5, -2, -4, -5, -3, 5, 11, 11, 8, 5, 5, 4, -2, -9, -9, + -2, 0, -5, -13, -14, -10, -5, -4, -2, 2, 6, 14, 15, 11, 8, 6, + 1, -5, -10, -12, -6, 1, -2, -10, -15, -11, -4, -3, -6, -5, 2, 14, + 19, 14, 10, 10, 8, 3, -6, -15, -12, -4, -4, -12, -18, -17, -10, -2, + 0, 1, 6, 16, 25, 21, 12, 8, 4, -2, -8, -18, -20, -11, -6, -9, + -14, -14, -10, -3, 0, 1, 6, 13, 23, 25, 17, 13, 9, 1, -6, -13, + -18, -14, -11, -13, -17, -19, -14, -8, -3, 1, 7, 14, 24, 30, 24, 16, + 12, 4, -5, -11, -18, -19, -15, -12, -14, -19, -18, -14, -9, 0, 8, 13, + 19, 27, 28, 22, 18, 9, -4, -11, -14, -16, -15, -16, -16, -17, -16, -14, + -13, -6, 4, 12, 19, 26, 31, 27, 19, 13, 3, -8, -12, -16, -18, -19, + -17, -16, -20, -18, -15, -10, 1, 10, 18, 24, 31, 30, 22, 18, 9, -4, + -10, -14, -17, -20, -22, -19, -19, -22, -18, -13, -2, 9, 16, 21, 29, 36, + 29, 19, 12, 1, -7, -10, -15, -22, -24, -20, -18, -21, -21, -17, -8, 7, + 16, 23, 27, 33, 35, 26, 17, 7, -5, -11, -14, -22, -27, -24, -19, -22, + -25, -19, -11, 5, 16, 21, 25, 33, 38, 31, 18, 9, -2, -10, -13, -22, + -29, -28, -21, -18, -24, -22, -15, -3, 14, 21, 24, 30, 38, 36, 24, 13, + 4, -5, -9, -16, -28, -32, -25, -21, -25, -27, -18, -7, 8, 18, 24, 31, + 40, 40, 29, 16, 6, -3, -8, -16, -27, -31, -27, -22, -24, -27, -21, -10, + 4, 16, 22, 28, 37, 40, 33, 19, 7, 1, -5, -12, -23, -32, -28, -23, + -23, -27, -26, -15, -2, 13, 21, 25, 34, 41, 38, 28, 14, 4, -3, -11, + -22, -34, -35, -30, -26, -28, -29, -20, -3, 14, 24, 27, 32, 41, 42, 34, + 17, 4, -4, -11, -20, -32, -38, -33, -28, -27, -27, -22, -9, 7, 20, 29, + 34, 39, 40, 37, 24, 10, 2, -7, -16, -28, -40, -40, -33, -29, -28, -27, + -16, 5, 21, 28, 32, 36, 41, 40, 30, 12, 1, -6, -11, -22, -37, -42, + -34, -30, -29, -27, -20, -3, 16, 27, 32, 34, 39, 41, 35, 20, 6, -4, + -11, -16, -32, -45, -41, -33, -31, -27, -23, -10, 13, 28, 33, 35, 38, 39, + 36, 25, 8, -6, -11, -14, -26, -42, -45, -34, -29, -25, -23, -15, 6, 26, + 36, 36, 36, 37, 36, 29, 14, -2, -12, -14, -23, -42, -50, -42, -32, -23, + -18, -15, 3, 25, 38, 39, 35, 35, 37, 33, 18, -3, -15, -18, -20, -34, + -48, -47, -34, -22, -14, -12, -4, 17, 35, 41, 37, 34, 33, 33, 24, 6, + -13, -22, -22, -30, -45, -51, -39, -23, -10, -6, -3, 13, 32, 41, 37, 30, + 29, 31, 27, 10, -10, -22, -23, -26, -38, -48, -44, -28, -12, -5, -3, 9, + 27, 38, 38, 32, 28, 29, 27, 17, -4, -21, -26, -27, -35, -47, -49, -33, + -12, 2, 5, 9, 23, 35, 40, 34, 21, 23, 25, 22, 5, -20, -28, -28, + -29, -39, -50, -43, -19, 3, 10, 7, 15, 29, 41, 43, 28, 22, 23, 22, + 12, -16, -33, -32, -32, -38, -46, -43, -21, 3, 15, 13, 16, 29, 35, 35, + 27, 19, 19, 19, 15, -8, -30, -31, -30, -32, -40, -44, -29, -2, 18, 17, + 11, 22, 34, 37, 32, 21, 18, 20, 17, -2, -28, -37, -34, -34, -38, -42, + -30, -7, 16, 22, 16, 20, 31, 31, 29, 23, 17, 18, 19, 6, -21, -37, + -35, -34, -35, -38, -35, -15, 14, 27, 21, 13, 23, 31, 31, 26, 16, 12, + 16, 12, -10, -35, -39, -35, -36, -36, -34, -21, 6, 24, 24, 16, 20, 29, + 28, 27, 22, 16, 17, 15, -4, -29, -41, -39, -40, -39, -36, -29, -6, 20, + 27, 21, 19, 28, 33, 31, 27, 18, 14, 13, 2, -22, -41, -43, -40, -39, + -34, -28, -12, 16, 28, 24, 19, 25, 29, 27, 24, 19, 15, 12, 4, -15, + -34, -41, -40, -37, -32, -26, -18, 5, 24, 24, 20, 21, 26, 27, 26, 24, + 18, 12, 6, -9, -30, -44, -45, -41, -33, -26, -19, -2, 23, 29, 24, 22, + 24, 28, 25, 22, 18, 13, 7, -7, -24, -40, -46, -42, -36, -28, -21, -6, + 15, 28, 25, 22, 25, 29, 28, 23, 20, 14, 6, -6, -22, -40, -47, -42, + -36, -28, -23, -10, 13, 30, 28, 21, 23, 27, 28, 21, 18, 16, 9, -2, + -17, -33, -44, -44, -38, -31, -23, -14, 5, 25, 32, 25, 23, 26, 29, 24, + 16, 13, 8, -2, -15, -31, -43, -44, -37, -30, -23, -14, 1, 21, 31, 27, + 22, 24, 28, 25, 17, 13, 10, 3, -10, -27, -40, -44, -38, -32, -26, -17, + -3, 16, 31, 31, 25, 25, 30, 29, 17, 8, 7, 3, -8, -25, -39, -43, + -37, -31, -27, -18, -4, 13, 29, 32, 26, 24, 27, 27, 17, 9, 8, 6, + -5, -20, -34, -39, -37, -34, -30, -21, -8, 6, 23, 34, 31, 29, 28, 27, + 22, 13, 6, 5, -4, -18, -34, -40, -37, -34, -29, -23, -10, 5, 21, 32, + 29, 27, 29, 26, 20, 12, 4, 3, 0, -12, -28, -37, -35, -31, -29, -23, + -13, 1, 16, 30, 33, 29, 27, 25, 21, 15, 5, -2, -3, -9, -22, -35, + -36, -31, -29, -24, -14, 0, 12, 27, 35, 31, 29, 26, 21, 16, 8, -2, + -3, -7, -19, -34, -36, -32, -31, -28, -18, -3, 11, 22, 32, 32, 30, 29, + 23, 16, 11, 2, -3, -6, -17, -32, -37, -32, -30, -31, -23, -6, 9, 18, + 30, 36, 32, 31, 25, 17, 13, 4, -6, -8, -14, -26, -36, -34, -31, -31, + -25, -11, 6, 16, 24, 34, 35, 33, 28, 17, 16, 10, -3, -9, -13, -23, + -34, -36, -32, -31, -27, -16, 2, 16, 22, 30, 35, 33, 30, 21, 15, 11, + 0, -7, -11, -20, -31, -35, -31, -31, -29, -21, -6, 13, 21, 25, 32, 34, + 33, 26, 18, 13, 4, -6, -10, -19, -29, -34, -34, -29, -27, -24, -12, 7, + 20, 25, 30, 33, 32, 29, 21, 13, 7, -5, -11, -18, -28, -35, -36, -29, + -25, -24, -16, 3, 21, 26, 28, 34, 37, 34, 26, 12, 4, -5, -13, -20, + -30, -35, -39, -35, -24, -19, -13, -2, 15, 27, 30, 32, 34, 31, 28, 18, + 5, -6, -15, -20, -24, -31, -37, -35, -24, -19, -16, -9, 8, 24, 30, 30, + 33, 35, 35, 24, 5, -5, -11, -20, -27, -34, -40, -39, -30, -21, -16, -9, + 4, 20, 32, 36, 36, 36, 35, 31, 13, -3, -13, -23, -27, -29, -41, -44, + -33, -19, -11, -10, -4, 14, 32, 38, 34, 33, 36, 33, 18, -4, -13, -20, + -25, -28, -37, -43, -34, -22, -14, -8, -4, 9, 26, 39, 38, 35, 35, 34, + 23, 3, -12, -21, -28, -28, -31, -41, -40, -27, -15, -7, -6, 2, 20, 37, + 42, 36, 34, 35, 28, 9, -10, -18, -24, -26, -29, -38, -42, -32, -21, -11, + -6, -3, 12, 33, 45, 41, 37, 37, 29, 13, -4, -17, -26, -28, -28, -33, + -39, -37, -26, -15, -8, -7, 6, 29, 47, 46, 39, 34, 30, 20, 1, -18, + -26, -26, -25, -29, -37, -40, -31, -17, -8, -7, 0, 20, 42, 51, 45, 38, + 30, 18, 7, -10, -24, -27, -26, -24, -29, -38, -37, -27, -14, -9, -6, 11, + 36, 51, 47, 42, 34, 24, 14, -3, -20, -25, -23, -22, -26, -37, -42, -33, + -17, -8, -7, 4, 28, 50, 54, 45, 35, 24, 15, 3, -16, -24, -25, -22, + -23, -32, -41, -37, -22, -11, -8, 0, 21, 44, 54, 46, 34, 26, 18, 7, + -11, -22, -21, -20, -21, -28, -40, -43, -30, -15, -10, -3, 16, 40, 56, 52, + 37, 24, 16, 9, -6, -21, -22, -18, -17, -22, -35, -43, -34, -21, -14, -9, + 7, 34, 53, 54, 40, 29, 21, 14, 4, -14, -21, -17, -17, -22, -33, -46, + -45, -31, -16, -8, 4, 25, 50, 60, 49, 31, 20, 15, 9, -5, -17, -18, + -15, -17, -26, -42, -50, -40, -24, -11, -2, 18, 43, 56, 52, 35, 21, 17, + 11, 0, -12, -18, -14, -15, -22, -36, -50, -46, -30, -15, -3, 12, 35, 53, + 55, 41, 24, 18, 12, 5, -4, -15, -18, -15, -20, -33, -46, -49, -37, -21, + -7, 7, 25, 46, 54, 45, 27, 18, 14, 10, 3, -8, -15, -16, -18, -28, + -41, -49, -44, -29, -12, 4, 17, 35, 49, 49, 34, 19, 16, 15, 9, 1, + -10, -14, -16, -24, -38, -50, -49, -36, -18, -3, 10, 26, 43, 49, 38, 22, + 18, 20, 16, 9, -5, -13, -16, -23, -36, -50, -53, -43, -25, -8, 6, 21, + 38, 48, 44, 27, 19, 21, 19, 13, -2, -13, -17, -21, -30, -45, -52, -46, + -29, -10, 3, 14, 29, 42, 44, 30, 17, 19, 21, 17, 6, -8, -14, -19, + -26, -39, -49, -48, -36, -18, -2, 11, 27, 37, 42, 37, 22, 18, 21, 19, + 9, -5, -13, -18, -24, -33, -45, -46, -39, -24, -8, 6, 20, 33, 40, 38, + 27, 19, 22, 23, 17, 4, -8, -14, -22, -29, -43, -48, -43, -32, -16, -2, + 13, 25, 34, 39, 33, 23, 21, 23, 20, 9, -4, -11, -19, -25, -33, -43, + -42, -34, -20, -7, 3, 14, 24, 32, 31, 22, 20, 26, 28, 20, 6, -5, + -11, -18, -28, -42, -44, -38, -28, -15, -5, 8, 19, 28, 31, 24, 21, 25, + 27, 22, 10, 0, -6, -12, -22, -34, -38, -34, -30, -20, -11, 0, 11, 20, + 26, 23, 19, 22, 27, 25, 17, 7, -2, -7, -17, -29, -35, -35, -34, -26, + -16, -5, 7, 15, 23, 28, 24, 21, 22, 24, 20, 11, -2, -8, -14, -24, + -29, -31, -31, -27, -18, -9, 0, 8, 15, 22, 23, 20, 21, 24, 24, 19, + 7, -4, -10, -19, -26, -32, -34, -33, -24, -12, -2, 6, 14, 22, 26, 23, + 22, 22, 22, 21, 10, 0, -6, -15, -21, -24, -28, -31, -28, -17, -7, 2, + 7, 13, 19, 23, 23, 21, 19, 21, 18, 8, -2, -11, -17, -21, -24, -30, + -33, -25, -11, 0, 4, 9, 16, 20, 21, 20, 18, 18, 20, 14, 4, -6, + -12, -15, -17, -25, -32, -32, -20, -6, -3, -3, 7, 18, 23, 19, 16, 19, + 26, 24, 11, 0, -6, -9, -15, -25, -33, -35, -26, -15, -9, -6, 5, 17, + 22, 21, 17, 18, 25, 26, 16, 4, -5, -7, -9, -18, -29, -38, -35, -21, + -11, -9, -4, 9, 22, 25, 20, 16, 22, 30, 24, 8, -4, -5, -5, -13, + -25, -36, -38, -26, -16, -11, -10, 2, 19, 25, 18, 12, 19, 30, 28, 14, + 1, -2, 3, -3, -17, -31, -36, -29, -21, -18, -19, -11, 7, 20, 16, 10, + 16, 30, 36, 24, 8, 4, 8, 6, -12, -32, -40, -35, -26, -21, -20, -14, + 2, 19, 20, 10, 12, 24, 35, 29, 13, 5, 7, 9, -3, -23, -37, -37, + -31, -23, -21, -19, -8, 12, 19, 10, 6, 19, 36, 37, 23, 11, 12, 16, + 7, -15, -35, -43, -38, -30, -27, -23, -16, 2, 18, 16, 7, 13, 30, 38, + 29, 17, 12, 16, 15, -4, -27, -40, -39, -32, -28, -28, -24, -8, 12, 14, + 5, 7, 26, 40, 36, 24, 18, 21, 21, 4, -20, -38, -41, -37, -34, -30, + -26, -15, 4, 14, 7, 3, 18, 37, 41, 33, 24, 22, 25, 14, -10, -33, + -44, -42, -36, -32, -29, -22, -6, 10, 9, 2, 9, 29, 40, 37, 32, 28, + 29, 21, 0, -24, -39, -44, -44, -38, -31, -24, -16, 0, 7, 3, 8, 24, + 38, 43, 41, 32, 28, 25, 9, -15, -34, -44, -44, -39, -31, -26, -20, -10, + 3, 2, 1, 14, 32, 44, 46, 39, 33, 31, 20, -7, -31, -45, -47, -44, + -38, -30, -26, -16, 0, 5, 4, 12, 30, 45, 52, 47, 36, 30, 22, 0, + -24, -40, -50, -49, -42, -31, -24, -19, -10, -3, 3, 11, 24, 39, 51, 55, + 49, 37, 27, 8, -18, -36, -50, -54, -47, -36, -29, -25, -16, -6, 4, 10, + 18, 34, 52, 59, 53, 39, 28, 15, -8, -29, -45, -53, -51, -43, -34, -29, + -23, -14, -4, 7, 17, 33, 52, 62, 61, 50, 37, 23, -4, -28, -44, -55, + -55, -48, -38, -30, -25, -18, -8, 5, 13, 25, 46, 61, 65, 57, 43, 30, + 8, -17, -36, -50, -55, -53, -47, -39, -32, -24, -15, -3, 11, 25, 45, 62, + 68, 63, 51, 37, 14, -14, -34, -46, -56, -57, -51, -44, -33, -25, -18, -6, + 8, 19, 36, 55, 67, 65, 53, 42, 23, -4, -26, -40, -50, -56, -54, -49, + -41, -31, -23, -12, 1, 15, 34, 53, 65, 68, 59, 49, 33, 6, -21, -37, + -47, -57, -60, -56, -48, -38, -28, -16, -2, 14, 33, 51, 64, 70, 63, 53, + 38, 13, -14, -34, -44, -53, -59, -59, -53, -42, -30, -19, -8, 5, 26, 47, + 61, 68, 64, 57, 48, 26, -3, -26, -39, -49, -58, -63, -59, -49, -37, -24, + -13, 1, 20, 42, 55, 65, 69, 64, 54, 34, 7, -18, -34, -44, -55, -65, + -64, -54, -42, -31, -19, -8, 12, 37, 54, 61, 67, 67, 60, 46, 22, -8, + -29, -40, -50, -64, -70, -63, -50, -34, -21, -13, 2, 28, 51, 62, 68, 68, + 61, 51, 32, 3, -23, -36, -47, -60, -70, -67, -58, -44, -27, -14, -2, 22, + 45, 58, 65, 70, 68, 56, 38, 16, -11, -32, -45, -58, -69, -70, -62, -52, + -34, -17, -6, 13, 38, 54, 64, 70, 67, 59, 47, 29, -2, -28, -40, -51, + -65, -74, -67, -54, -37, -20, -11, 5, 33, 53, 59, 63, 67, 62, 51, 34, + 7, -20, -35, -46, -59, -72, -70, -60, -46, -27, -12, 1, 24, 47, 60, 64, + 69, 66, 54, 39, 15, -13, -32, -44, -54, -68, -71, -60, -48, -32, -18, -7, + 14, 38, 54, 61, 68, 70, 60, 46, 26, -2, -23, -38, -50, -63, -72, -68, + -55, -39, -24, -13, 5, 31, 52, 61, 67, 71, 64, 53, 34, 7, -21, -36, + -46, -57, -69, -72, -60, -42, -27, -17, -2, 21, 45, 58, 65, 69, 66, 57, + 42, 15, -13, -30, -43, -54, -66, -72, -65, -47, -30, -18, -5, 15, 40, 57, + 64, 67, 62, 56, 46, 23, -6, -27, -39, -50, -58, -67, -67, -51, -32, -20, + -9, 9, 31, 51, 60, 64, 64, 58, 48, 27, 1, -20, -34, -46, -56, -65, + -70, -57, -37, -22, -14, 2, 26, 48, 62, 66, 64, 59, 51, 34, 8, -18, + -31, -42, -52, -61, -70, -63, -42, -24, -15, -3, 19, 43, 60, 63, 60, 57, + 52, 39, 14, -14, -28, -36, -46, -54, -65, -66, -49, -29, -17, -9, 10, 33, + 54, 64, 62, 58, 53, 42, 23, -5, -25, -35, -46, -54, -63, -67, -54, -33, + -17, -7, 7, 30, 51, 61, 58, 55, 51, 43, 28, 3, -21, -30, -37, -46, + -56, -63, -56, -39, -22, -12, -5, 16, 40, 57, 58, 55, 53, 48, 38, 19, + -10, -27, -35, -45, -56, -66, -65, -49, -28, -14, -6, 8, 34, 57, 60, 55, + 54, 50, 42, 26, -4, -28, -35, -42, -52, -62, -63, -51, -32, -14, -5, 3, + 24, 47, 57, 53, 50, 47, 41, 33, 11, -20, -35, -40, -46, -56, -65, -58, + -38, -17, -4, 1, 15, 41, 57, 55, 47, 45, 42, 35, 17, -13, -33, -38, + -41, -49, -58, -55, -41, -21, -4, 0, 7, 29, 50, 52, 45, 42, 40, 37, + 25, 0, -28, -38, -38, -44, -53, -58, -46, -26, -6, 3, 4, 18, 42, 53, + 47, 41, 39, 37, 30, 10, -21, -41, -43, -41, -47, -54, -46, -29, -8, 7, + 9, 13, 31, 46, 45, 37, 33, 33, 28, 15, -10, -35, -42, -38, -39, -45, + -46, -32, -10, 6, 9, 8, 19, 38, 44, 38, 30, 29, 30, 19, -3, -29, + -42, -38, -34, -40, -43, -32, -14, 3, 11, 11, 15, 30, 41, 39, 30, 25, + 25, 19, 4, -21, -40, -42, -32, -30, -33, -29, -15, 2, 11, 10, 8, 17, + 30, 35, 30, 23, 24, 23, 11, -11, -32, -43, -34, -26, -29, -29, -18, -3, + 9, 12, 9, 12, 26, 35, 32, 21, 18, 18, 12, -6, -29, -43, -36, -22, + -22, -25, -15, 1, 10, 11, 10, 8, 17, 29, 29, 21, 16, 17, 15, 2, + -21, -39, -39, -24, -17, -20, -16, -5, 9, 13, 10, 7, 12, 24, 28, 23, + 14, 12, 11, 4, -14, -33, -39, -28, -15, -14, -12, -6, 5, 11, 9, 7, + 7, 16, 26, 25, 16, 10, 11, 6, -8, -24, -37, -32, -17, -12, -11, -5, + 5, 11, 11, 10, 7, 12, 21, 21, 16, 7, 4, 3, -6, -20, -32, -32, + -20, -8, -5, 0, 5, 11, 11, 9, 8, 8, 13, 17, 16, 9, 3, 2, + -3, -13, -25, -31, -23, -9, -4, -2, 5, 11, 14, 11, 7, 6, 12, 15, + 12, 5, -2, -2, -3, -11, -22, -29, -24, -9, 0, 3, 8, 13, 13, 12, + 8, 4, 5, 7, 9, 6, -3, -5, -4, -5, -14, -24, -23, -13, 0, 4, + 6, 10, 14, 14, 9, 3, 3, 5, 6, 4, -4, -6, -5, -5, -9, -18, + -20, -15, -4, 6, 9, 11, 13, 13, 10, 5, 1, 0, -3, 0, -4, -6, + -6, -5, -4, -11, -16, -16, -9, 3, 8, 11, 11, 10, 11, 8, 3, -2, + -5, -4, -3, -5, -6, -6, -2, -5, -12, -15, -13, -2, 8, 9, 11, 11, + 11, 7, 4, 0, -6, -6, -4, -4, -6, -6, -2, 0, -7, -13, -15, -5, + 8, 13, 12, 9, 11, 9, 4, -5, -11, -11, -8, -5, -5, -5, 0, 4, + 3, -4, -11, -8, 3, 11, 12, 8, 7, 4, 2, -2, -10, -14, -13, -7, + -3, -4, -2, 3, 4, 1, -8, -8, 3, 13, 17, 12, 11, 7, 1, -6, + -16, -21, -19, -13, -7, -2, 3, 7, 10, 10, 1, -6, -2, 8, 14, 12, + 10, 4, -2, -6, -15, -21, -20, -15, -8, -2, 3, 5, 9, 14, 5, -6, + 1, 12, 18, 14, 9, 7, 2, -4, -18, -28, -27, -22, -12, -5, 3, 9, + 13, 18, 16, 5, 1, 7, 14, 13, 8, 5, -5, -9, -17, -26, -26, -23, + -15, -4, 5, 8, 11, 17, 17, 7, 2, 7, 16, 18, 10, 4, -2, -6, + -16, -31, -33, -27, -18, -9, 0, 7, 12, 18, 22, 16, 9, 9, 16, 20, + 13, 5, -2, -9, -18, -33, -37, -29, -22, -13, -4, 7, 15, 21, 25, 21, + 15, 13, 17, 20, 14, 5, -3, -8, -18, -35, -42, -36, -24, -16, -6, 5, + 13, 23, 27, 25, 20, 17, 19, 20, 15, 5, -3, -8, -21, -35, -45, -39, + -25, -18, -11, 3, 16, 25, 29, 27, 26, 24, 23, 21, 17, 8, -4, -12, + -23, -35, -46, -46, -34, -22, -15, -3, 13, 25, 31, 33, 34, 31, 28, 25, + 20, 11, -4, -12, -22, -38, -49, -51, -39, -26, -21, -11, 8, 24, 34, 35, + 36, 37, 35, 29, 21, 13, 0, -11, -20, -36, -48, -52, -46, -31, -22, -14, + 1, 19, 34, 38, 39, 40, 38, 34, 24, 15, 0, -14, -21, -34, -47, -53, + -50, -35, -22, -17, -5, 13, 31, 37, 38, 42, 41, 37, 28, 21, 9, -8, + -19, -30, -44, -50, -53, -46, -32, -23, -11, 7, 26, 39, 43, 49, 48, 42, + 32, 20, 9, -9, -21, -31, -46, -52, -54, -50, -35, -24, -13, 4, 23, 40, + 46, 48, 49, 46, 37, 26, 13, -4, -20, -29, -42, -50, -53, -54, -43, -31, + -21, -2, 17, 36, 47, 53, 56, 51, 42, 29, 17, 3, -16, -30, -41, -51, + -55, -57, -51, -35, -24, -9, 11, 30, 47, 53, 57, 55, 46, 34, 20, 6, + -12, -29, -43, -52, -55, -55, -55, -42, -29, -12, 8, 25, 41, 55, 62, 59, + 51, 37, 23, 10, -6, -24, -40, -51, -56, -58, -58, -48, -33, -19, 2, 22, + 41, 55, 61, 61, 56, 45, 28, 11, -3, -19, -37, -51, -57, -58, -58, -54, + -39, -23, -2, 20, 36, 52, 64, 65, 58, 48, 33, 19, 4, -13, -35, -51, + -58, -61, -62, -60, -47, -29, -7, 17, 34, 50, 67, 70, 62, 50, 35, 20, + 6, -8, -29, -47, -57, -62, -61, -60, -54, -37, -15, 10, 29, 44, 60, 68, + 66, 56, 42, 24, 12, 1, -19, -41, -55, -60, -62, -61, -57, -43, -21, 7, + 24, 36, 53, 66, 67, 59, 46, 30, 15, 5, -11, -32, -48, -58, -63, -62, + -59, -50, -32, -3, 22, 35, 49, 60, 66, 63, 53, 38, 19, 8, -5, -25, + -43, -57, -64, -64, -62, -54, -39, -13, 16, 32, 46, 59, 65, 66, 56, 45, + 26, 11, 3, -17, -39, -56, -65, -67, -62, -56, -44, -21, 10, 29, 40, 54, + 63, 68, 61, 49, 33, 13, 2, -14, -34, -50, -64, -67, -63, -56, -44, -26, + 2, 27, 38, 49, 57, 64, 61, 50, 36, 17, 6, -7, -27, -44, -60, -67, + -63, -57, -48, -32, -7, 22, 36, 44, 53, 60, 62, 55, 41, 21, 7, -3, + -20, -40, -58, -68, -65, -57, -47, -34, -14, 16, 37, 42, 47, 55, 59, 53, + 42, 27, 10, -2, -14, -30, -47, -60, -63, -57, -49, -38, -20, 5, 30, 40, + 44, 52, 57, 57, 46, 31, 13, -2, -12, -27, -44, -57, -64, -61, -50, -38, + -20, 2, 25, 39, 41, 49, 55, 54, 45, 32, 17, 0, -12, -23, -37, -50, + -59, -61, -52, -38, -22, -6, 17, 35, 39, 42, 48, 53, 48, 36, 22, 4, + -9, -18, -30, -45, -56, -59, -54, -42, -27, -10, 12, 29, 37, 38, 44, 50, + 47, 37, 25, 9, -5, -13, -23, -38, -50, -55, -54, -45, -32, -17, 5, 25, + 34, 35, 39, 46, 48, 40, 29, 13, -3, -11, -21, -33, -44, -51, -54, -47, + -34, -17, 2, 21, 32, 34, 34, 38, 42, 39, 27, 15, 1, -7, -13, -25, + -36, -45, -49, -46, -36, -23, -6, 15, 27, 31, 31, 34, 39, 38, 30, 18, + 3, -6, -10, -19, -32, -40, -46, -45, -36, -24, -11, 8, 24, 29, 27, 29, + 34, 36, 30, 18, 4, -5, -5, -12, -25, -34, -39, -41, -37, -24, -11, 4, + 18, 24, 25, 25, 29, 29, 26, 19, 5, -6, -6, -6, -18, -28, -33, -37, + -34, -24, -11, 2, 15, 24, 23, 20, 24, 27, 22, 14, 4, -4, -4, -5, + -15, -24, -26, -29, -32, -27, -13, 2, 14, 21, 21, 18, 21, 23, 20, 13, + 5, -3, -5, -4, -9, -16, -21, -25, -28, -25, -14, 1, 10, 16, 19, 16, + 16, 18, 16, 11, 5, -2, -5, -4, -6, -12, -17, -20, -22, -22, -17, -4, + 8, 13, 16, 15, 13, 15, 14, 10, 4, -4, -6, -6, -5, -7, -11, -15, + -17, -17, -15, -3, 10, 13, 14, 11, 7, 8, 9, 5, -3, -8, -7, -4, + -2, -2, -6, -10, -9, -10, -12, -5, 11, 15, 13, 11, 5, 6, 7, 3, + -6, -10, -8, -6, -6, -2, 1, -2, -6, -6, -7, -5, 8, 14, 10, 7, + 4, 0, 1, -2, -6, -12, -11, -6, -2, 4, 8, 4, -2, -2, -4, -5, + 3, 12, 8, 5, 4, 0, 0, -2, -8, -13, -15, -12, -7, -3, 6, 10, + 7, 5, 6, 4, 6, 14, 10, 3, 0, -6, -10, -7, -10, -16, -19, -15, + -8, 0, 11, 17, 13, 10, 11, 7, 5, 8, 9, 2, -4, -7, -12, -10, + -10, -16, -21, -19, -13, -4, 10, 21, 22, 17, 17, 14, 9, 9, 9, 3, + -7, -12, -17, -16, -14, -20, -25, -21, -15, -5, 10, 23, 27, 25, 22, 18, + 11, 8, 4, -2, -9, -14, -18, -19, -14, -15, -23, -25, -20, -10, 9, 22, + 29, 29, 26, 23, 16, 12, 6, 1, -6, -14, -18, -22, -20, -19, -27, -28, + -25, -18, 0, 19, 32, 36, 33, 31, 23, 14, 7, 1, -4, -15, -23, -25, + -24, -19, -25, -32, -29, -20, -3, 16, 31, 40, 38, 36, 29, 16, 9, 1, + -4, -12, -23, -26, -28, -24, -26, -34, -33, -24, -8, 12, 29, 41, 44, 44, + 37, 22, 11, 4, -4, -11, -24, -31, -32, -31, -30, -36, -39, -30, -11, 11, + 29, 43, 51, 50, 44, 32, 15, 4, -4, -11, -24, -32, -33, -33, -34, -38, + -42, -35, -17, 4, 24, 42, 56, 60, 52, 38, 19, 7, 1, -13, -28, -37, + -37, -35, -37, -39, -43, -37, -19, 3, 22, 41, 57, 64, 57, 44, 26, 7, + -2, -11, -24, -35, -41, -40, -38, -39, -43, -40, -24, 0, 20, 37, 55, 65, + 63, 50, 32, 9, -4, -10, -24, -36, -42, -42, -41, -41, -41, -39, -26, -2, + 19, 34, 51, 64, 66, 55, 38, 15, -3, -8, -20, -34, -42, -44, -43, -44, + -45, -45, -35, -12, 14, 31, 50, 66, 73, 65, 49, 28, 7, -6, -18, -35, + -45, -49, -51, -53, -51, -47, -37, -16, 10, 30, 49, 69, 78, 72, 56, 35, + 14, -4, -17, -33, -46, -51, -55, -56, -54, -51, -40, -20, 5, 26, 44, 64, + 76, 77, 64, 41, 19, 1, -14, -30, -43, -50, -57, -60, -58, -54, -43, -24, + -2, 21, 39, 61, 76, 79, 72, 52, 28, 9, -10, -26, -41, -49, -54, -61, + -62, -59, -51, -33, -10, 14, 34, 55, 75, 81, 79, 63, 39, 19, -2, -23, + -40, -51, -56, -64, -67, -64, -56, -39, -16, 9, 29, 51, 73, 83, 82, 73, + 50, 27, 9, -18, -40, -52, -56, -63, -69, -69, -61, -43, -20, 2, 21, 42, + 66, 81, 82, 76, 59, 36, 19, -6, -33, -50, -57, -61, -71, -76, -68, -52, + -28, -2, 17, 36, 62, 83, 86, 82, 69, 43, 22, 2, -28, -51, -60, -63, + -67, -76, -74, -57, -34, -7, 14, 29, 53, 76, 87, 84, 75, 54, 33, 14, + -18, -46, -58, -62, -69, -80, -84, -68, -44, -18, 7, 26, 49, 75, 91, 92, + 82, 64, 42, 21, -8, -43, -63, -68, -68, -75, -86, -76, -48, -22, 4, 23, + 41, 66, 87, 92, 83, 69, 51, 31, 6, -31, -59, -67, -69, -74, -88, -87, + -62, -34, -7, 17, 36, 62, 87, 96, 90, 76, 60, 39, 14, -23, -58, -70, + -71, -73, -83, -89, -68, -37, -13, 9, 26, 51, 79, 94, 91, 80, 68, 52, + 28, -8, -48, -67, -70, -73, -84, -96, -83, -49, -22, 0, 20, 44, 75, 96, + 98, 88, 75, 61, 40, 6, -39, -67, -72, -75, -83, -95, -91, -60, -29, -7, + 13, 36, 66, 89, 97, 92, 78, 65, 50, 22, -21, -58, -71, -73, -78, -91, + -98, -79, -45, -15, 4, 25, 56, 84, 101, 99, 86, 73, 60, 35, -9, -53, + -72, -77, -80, -90, -98, -85, -51, -20, -2, 18, 48, 77, 96, 99, 87, 75, + 62, 46, 9, -39, -68, -75, -75, -83, -95, -94, -67, -30, -7, 8, 34, 68, + 92, 102, 93, 82, 72, 58, 26, -24, -61, -75, -78, -85, -97, -99, -78, -42, + -12, 6, 28, 59, 87, 102, 99, 86, 74, 62, 38, -7, -52, -76, -81, -83, + -93, -100, -90, -57, -23, -2, 18, 48, 80, 102, 103, 92, 81, 71, 51, 9, + -41, -72, -83, -85, -93, -100, -92, -65, -32, -7, 13, 39, 72, 97, 103, 95, + 85, 73, 55, 25, -21, -61, -79, -83, -90, -99, -97, -77, -45, -17, 1, 24, + 59, 93, 107, 103, 92, 85, 72, 42, -6, -54, -80, -86, -91, -104, -105, -87, + -56, -23, 0, 18, 48, 85, 106, 106, 96, 87, 77, 52, 13, -35, -71, -84, + -88, -98, -106, -96, -70, -40, -14, 6, 31, 70, 103, 111, 103, 95, 88, 68, + 29, -19, -61, -84, -91, -99, -106, -101, -80, -51, -22, 2, 23, 56, 91, 109, + 108, 98, 89, 76, 45, 1, -44, -76, -87, -92, -102, -104, -90, -64, -34, -11, + 8, 37, 78, 108, 113, 106, 96, 85, 61, 19, -29, -68, -88, -94, -102, -104, + -93, -73, -46, -21, 2, 28, 63, 98, 113, 109, 100, 89, 70, 33, -14, -55, + -81, -91, -98, -104, -98, -79, -54, -30, -9, 18, 52, 89, 108, 110, 104, 96, + 79, 46, 2, -40, -71, -90, -100, -104, -100, -86, -67, -44, -19, 7, 40, 77, + 105, 115, 109, 99, 86, 58, 17, -29, -63, -86, -97, -101, -101, -92, -74, -50, + -26, -4, 28, 66, 98, 114, 113, 102, 90, 68, 33, -15, -53, -76, -93, -101, + -104, -96, -79, -57, -34, -15, 15, 56, 90, 110, 115, 105, 93, 75, 44, 0, + -43, -68, -86, -98, -101, -98, -83, -65, -42, -22, 4, 41, 79, 104, 113, 107, + 96, 81, 57, 16, -31, -59, -79, -95, -101, -100, -90, -71, -49, -30, -9, 28, + 67, 97, 110, 107, 97, 86, 65, 30, -14, -47, -67, -84, -98, -102, -96, -79, + -59, -41, -22, 14, 53, 90, 110, 111, 101, 90, 75, 45, 2, -39, -64, -79, + -93, -102, -101, -87, -64, -44, -28, 0, 39, 81, 108, 110, 102, 93, 82, 58, + 18, -25, -54, -70, -85, -101, -103, -94, -72, -53, -39, -14, 25, 70, 104, 112, + 103, 96, 88, 70, 34, -13, -48, -65, -78, -97, -108, -101, -79, -55, -42, -24, + 11, 56, 96, 111, 103, 94, 90, 77, 46, 5, -34, -56, -71, -92, -109, -109, + -91, -64, -46, -30, 0, 44, 89, 112, 108, 95, 88, 80, 57, 16, -27, -54, + -66, -82, -104, -112, -100, -71, -46, -34, -13, 29, 80, 111, 112, 97, 86, 84, + 69, 32, -15, -48, -61, -72, -94, -109, -106, -82, -54, -37, -23, 11, 61, 101, + 113, 101, 85, 80, 75, 48, 4, -37, -56, -64, -84, -107, -112, -90, -60, -37, + -29, -7, 43, 91, 111, 103, 86, 80, 77, 58, 20, -24, -52, -61, -75, -100, + -111, -99, -72, -44, -27, -12, 29, 77, 105, 106, 91, 80, 75, 64, 33, -9, + -43, -58, -69, -94, -111, -104, -78, -49, -28, -18, 11, 62, 97, 107, 94, 80, + 75, 69, 47, 6, -36, -55, -62, -81, -105, -108, -87, -59, -33, -18, 1, 46, + 86, 103, 97, 83, 75, 69, 52, 19, -23, -50, -59, -74, -97, -106, -91, -64, + -38, -21, -9, 26, 70, 95, 95, 80, 71, 69, 60, 35, -6, -40, -53, -64, + -87, -102, -96, -72, -45, -25, -14, 13, 56, 87, 95, 86, 75, 69, 60, 41, + 6, -32, -54, -62, -77, -95, -99, -79, -51, -23, -8, 6, 39, 75, 92, 87, + 72, 64, 62, 49, 21, -17, -47, -57, -67, -86, -97, -87, -59, -32, -16, -4, + 25, 63, 89, 92, 78, 67, 63, 53, 27, -10, -40, -55, -63, -78, -93, -89, + -65, -36, -17, -7, 11, 44, 77, 89, 79, 65, 61, 58, 41, 8, -26, -50, + -59, -67, -83, -90, -76, -47, -25, -13, 3, 30, 63, 85, 82, 70, 63, 58, + 45, 14, -18, -43, -56, -63, -74, -84, -78, -52, -26, -13, -2, 19, 46, 73, + 81, 68, 57, 55, 49, 27, -5, -32, -48, -54, -63, -77, -80, -60, -34, -17, + -5, 10, 34, 62, 79, 71, 57, 52, 48, 31, 2, -26, -45, -50, -53, -65, + -75, -63, -37, -16, -6, 4, 19, 45, 68, 70, 57, 49, 49, 39, 16, -11, + -33, -45, -49, -56, -70, -71, -51, -26, -8, 2, 13, 35, 63, 76, 63, 48, + 43, 38, 23, -7, -32, -45, -47, -47, -58, -67, -55, -30, -8, 0, 4, 20, + 46, 68, 65, 47, 38, 38, 31, 8, -19, -37, -44, -42, -48, -63, -62, -41, + -16, -2, 5, 16, 37, 61, 68, 53, 38, 34, 31, 14, -14, -33, -40, -38, + -41, -54, -60, -46, -20, -5, -3, 6, 25, 49, 63, 55, 38, 32, 33, 24, + 1, -23, -34, -35, -36, -45, -59, -55, -30, -9, -3, 2, 16, 39, 59, 59, + 44, 32, 30, 26, 7, -20, -33, -33, -32, -40, -53, -54, -35, -12, -3, -2, + 10, 29, 48, 55, 45, 32, 28, 27, 14, -10, -27, -30, -28, -34, -46, -53, + -41, -17, -5, -5, 5, 24, 44, 54, 46, 32, 25, 25, 18, -4, -25, -31, + -24, -27, -39, -47, -42, -21, -4, -2, 1, 15, 35, 46, 44, 31, 22, 23, + 20, 6, -15, -26, -23, -20, -29, -41, -42, -29, -11, -4, -4, 7, 26, 42, + 47, 37, 25, 21, 19, 9, -10, -25, -25, -18, -24, -38, -40, -29, -11, 1, + 0, 3, 19, 34, 42, 33, 19, 14, 15, 10, -5, -21, -24, -15, -13, -26, + -35, -31, -17, -2, 0, -2, 11, 26, 37, 34, 20, 14, 13, 12, 2, -17, + -25, -17, -12, -21, -31, -30, -19, -4, 4, 1, 9, 22, 32, 32, 19, 9, + 9, 10, 4, -11, -21, -16, -9, -14, -23, -26, -20, -8, 0, -2, 3, 15, + 26, 31, 24, 12, 9, 10, 6, -5, -17, -19, -12, -11, -18, -25, -22, -10, + 1, 2, 2, 11, 22, 29, 24, 10, 3, 5, 4, -4, -13, -15, -8, -5, + -10, -16, -18, -14, -5, -2, 0, 6, 13, 20, 23, 16, 6, 5, 5, 0, + -7, -12, -12, -8, -7, -12, -19, -18, -7, 0, 2, 7, 13, 18, 20, 13, + 3, -2, 1, -2, -6, -8, -6, -3, -2, -2, -10, -14, -10, -6, -4, 0, + 4, 9, 14, 15, 6, -2, -2, -2, -4, -4, -5, -3, 2, 3, -3, -10, + -9, -5, 0, 0, 0, 3, 8, 10, 3, -5, -7, -6, -4, 0, -2, -2, + 3, 7, 7, 2, -5, -6, -3, 2, 2, 0, 0, 2, 2, -4, -9, -9, + -7, -3, 2, 4, 8, 9, 6, 2, -3, -4, -3, -2, -2, -2, 0, 1, + -3, -8, -11, -8, -6, -4, 2, 6, 9, 10, 9, 8, 5, -4, -7, -3, + 1, 1, -6, -7, -6, -6, -11, -14, -10, -5, 3, 9, 12, 14, 13, 10, + 9, 1, -6, -5, -4, -3, -4, -6, -8, -12, -12, -13, -13, -11, -3, 9, + 16, 18, 15, 13, 14, 11, -2, -6, -4, -3, -5, -11, -13, -12, -14, -15, + -14, -10, -4, 6, 15, 22, 21, 16, 13, 12, 3, -7, -8, -7, -7, -10, + -14, -17, -16, -13, -12, -10, -7, 3, 15, 24, 26, 19, 16, 18, 12, -3, + -9, -10, -9, -11, -18, -22, -21, -17, -14, -14, -10, 0, 14, 26, 32, 28, + 23, 22, 21, 5, -9, -12, -16, -18, -22, -27, -27, -23, -17, -13, -8, 2, + 12, 25, 35, 36, 29, 21, 20, 11, -6, -14, -17, -19, -22, -27, -28, -24, + -20, -15, -11, -4, 7, 19, 32, 39, 35, 28, 25, 19, 4, -10, -17, -24, + -28, -31, -33, -30, -26, -19, -11, -3, 8, 19, 31, 42, 42, 34, 27, 21, + 9, -9, -19, -26, -31, -35, -34, -30, -26, -23, -13, -4, 4, 14, 25, 42, + 49, 41, 31, 27, 20, 3, -15, -28, -37, -38, -39, -38, -35, -29, -16, 0, + 9, 17, 26, 41, 52, 48, 36, 26, 19, 6, -16, -30, -39, -43, -41, -39, + -33, -29, -22, -5, 7, 13, 21, 36, 55, 56, 46, 34, 24, 15, -8, -29, + -44, -54, -50, -44, -39, -35, -27, -7, 11, 20, 25, 34, 54, 63, 53, 38, + 22, 14, 0, -27, -45, -56, -56, -46, -39, -36, -31, -14, 8, 19, 23, 29, + 46, 63, 61, 47, 30, 20, 8, -15, -39, -56, -62, -54, -44, -41, -38, -23, + -2, 16, 23, 28, 42, 63, 69, 58, 41, 25, 13, -7, -34, -56, -68, -64, + -50, -45, -43, -29, -7, 15, 26, 29, 40, 58, 72, 67, 48, 30, 16, 0, + -26, -53, -68, -69, -57, -47, -46, -36, -16, 9, 25, 30, 38, 53, 71, 74, + 58, 37, 17, 2, -21, -49, -70, -76, -64, -49, -43, -38, -21, 3, 25, 33, + 37, 49, 65, 74, 65, 45, 24, 8, -11, -40, -68, -79, -72, -57, -48, -42, + -29, -6, 20, 34, 39, 48, 63, 77, 74, 56, 31, 11, -8, -33, -61, -79, + -80, -68, -53, -45, -34, -16, 11, 31, 41, 51, 61, 75, 78, 64, 42, 19, + -3, -27, -55, -78, -84, -73, -59, -48, -37, -20, 5, 27, 40, 49, 58, 71, + 80, 71, 49, 23, 2, -20, -47, -72, -86, -82, -66, -52, -39, -26, -5, 20, + 39, 51, 59, 69, 79, 77, 61, 34, 7, -16, -42, -68, -88, -90, -75, -58, + -41, -26, -8, 17, 39, 52, 59, 65, 74, 77, 65, 41, 12, -12, -35, -60, + -81, -89, -79, -60, -45, -33, -17, 6, 31, 49, 59, 64, 73, 80, 74, 51, + 22, -5, -29, -54, -78, -92, -90, -70, -49, -35, -18, 3, 26, 48, 60, 64, + 68, 75, 75, 58, 31, 1, -25, -48, -73, -88, -90, -77, -56, -41, -23, -3, + 21, 43, 58, 64, 70, 75, 77, 64, 40, 12, -18, -44, -70, -87, -94, -87, + -64, -42, -22, -4, 16, 39, 58, 65, 66, 67, 74, 68, 46, 18, -12, -38, + -62, -82, -92, -89, -67, -45, -28, -9, 13, 31, 52, 64, 67, 66, 72, 71, + 53, 29, -3, -34, -59, -79, -94, -96, -77, -50, -29, -8, 12, 30, 49, 63, + 68, 67, 68, 70, 56, 34, 6, -29, -57, -77, -92, -99, -84, -56, -32, -10, + 11, 29, 45, 61, 69, 69, 68, 70, 60, 37, 12, -20, -50, -73, -90, -100, + -91, -64, -37, -14, 7, 25, 42, 57, 66, 67, 65, 67, 64, 45, 21, -9, + -41, -66, -84, -98, -95, -74, -47, -21, 3, 23, 39, 54, 64, 69, 69, 67, + 63, 50, 27, 0, -33, -63, -83, -94, -95, -79, -54, -26, -2, 18, 35, 49, + 61, 67, 67, 65, 64, 55, 33, 6, -25, -55, -82, -95, -98, -84, -60, -32, + -6, 17, 36, 48, 56, 64, 66, 65, 62, 55, 39, 14, -16, -46, -76, -92, + -96, -88, -69, -41, -9, 15, 33, 46, 54, 62, 68, 66, 59, 54, 44, 20, + -12, -41, -72, -92, -97, -90, -71, -46, -14, 15, 34, 48, 55, 59, 62, 63, + 60, 51, 42, 24, -6, -34, -63, -87, -95, -89, -75, -52, -23, 10, 31, 45, + 54, 58, 62, 66, 63, 51, 42, 30, 1, -32, -59, -84, -96, -93, -80, -58, + -28, 7, 32, 45, 53, 60, 64, 67, 62, 52, 41, 31, 9, -25, -55, -78, + -92, -91, -82, -65, -39, -2, 30, 43, 49, 56, 61, 65, 63, 54, 44, 33, + 16, -15, -47, -72, -88, -91, -84, -70, -45, -12, 22, 42, 48, 54, 58, 61, + 63, 56, 43, 32, 20, -4, -36, -65, -82, -87, -82, -72, -53, -23, 15, 40, + 46, 48, 55, 61, 62, 55, 43, 32, 21, 4, -26, -57, -75, -82, -80, -73, + -58, -30, 5, 35, 46, 47, 51, 57, 61, 57, 46, 34, 22, 9, -15, -47, + -71, -81, -80, -75, -62, -36, -4, 28, 46, 47, 49, 56, 60, 57, 48, 35, + 23, 12, -9, -39, -67, -78, -76, -71, -65, -45, -13, 21, 45, 50, 46, 50, + 58, 59, 49, 35, 23, 12, -4, -31, -62, -78, -74, -70, -65, -49, -18, 18, + 43, 51, 45, 48, 56, 56, 45, 30, 20, 12, 0, -24, -53, -71, -69, -63, + -60, -51, -25, 9, 36, 50, 47, 44, 50, 52, 45, 32, 21, 12, 1, -18, + -44, -66, -70, -64, -59, -51, -31, 2, 32, 50, 51, 46, 47, 52, 47, 32, + 17, 9, 0, -14, -34, -57, -67, -62, -56, -50, -33, -6, 24, 44, 51, 48, + 47, 48, 46, 34, 21, 12, 2, -13, -32, -51, -62, -62, -56, -51, -38, -13, + 18, 40, 51, 50, 45, 47, 46, 36, 20, 9, -2, -14, -28, -45, -59, -61, + -54, -48, -37, -15, 14, 36, 49, 52, 48, 44, 42, 33, 19, 10, 0, -13, + -26, -39, -52, -58, -54, -47, -37, -19, 9, 30, 44, 52, 48, 40, 38, 31, + 19, 7, -3, -12, -22, -31, -42, -51, -49, -43, -36, -22, 1, 22, 35, 45, + 47, 41, 37, 31, 23, 13, 3, -11, -22, -28, -36, -48, -53, -46, -35, -23, + -4, 17, 31, 45, 49, 41, 33, 29, 23, 13, 2, -11, -22, -26, -29, -38, + -46, -45, -34, -21, -6, 14, 25, 38, 46, 43, 35, 27, 19, 10, 3, -7, + -20, -28, -28, -32, -38, -41, -35, -23, -8, 10, 23, 33, 44, 44, 36, 27, + 18, 10, 0, -9, -22, -28, -28, -28, -33, -37, -32, -21, -7, 8, 20, 28, + 38, 41, 36, 27, 17, 8, -2, -6, -17, -28, -31, -28, -27, -30, -30, -22, + -7, 9, 19, 26, 35, 41, 37, 26, 16, 6, -5, -11, -18, -28, -31, -28, + -22, -23, -23, -18, -4, 11, 19, 24, 27, 33, 33, 24, 14, 3, -8, -11, + -15, -23, -29, -29, -21, -18, -19, -15, -5, 9, 16, 21, 26, 30, 32, 25, + 13, 2, -9, -13, -16, -21, -27, -27, -20, -12, -13, -14, -7, 9, 17, 20, + 24, 25, 26, 27, 15, 2, -9, -17, -17, -20, -25, -28, -23, -11, -6, -8, + -5, 7, 19, 23, 24, 24, 24, 25, 16, 0, -13, -22, -22, -22, -26, -28, + -22, -8, 2, 1, 0, 8, 18, 24, 24, 20, 18, 20, 15, 1, -12, -22, + -24, -22, -23, -25, -22, -13, 2, 7, 3, 8, 16, 25, 28, 21, 15, 15, + 15, 4, -13, -25, -29, -24, -20, -24, -21, -12, 1, 12, 10, 9, 16, 23, + 27, 21, 14, 12, 10, 3, -10, -21, -28, -27, -22, -22, -20, -14, -4, 10, + 14, 11, 17, 23, 29, 26, 15, 11, 10, 4, -12, -25, -33, -33, -26, -23, + -22, -12, 0, 13, 22, 19, 20, 25, 29, 25, 12, 5, 3, 0, -12, -25, + -32, -34, -27, -21, -20, -11, -2, 7, 18, 21, 22, 26, 30, 29, 21, 11, + 4, -5, -14, -29, -38, -38, -33, -27, -23, -10, 4, 12, 22, 29, 30, 30, + 31, 30, 21, 10, 0, -11, -19, -30, -39, -40, -36, -28, -20, -9, 4, 12, + 20, 29, 32, 30, 32, 32, 23, 12, 3, -8, -18, -27, -39, -44, -40, -32, + -25, -15, 1, 13, 22, 30, 37, 38, 36, 34, 26, 14, 2, -11, -22, -31, + -40, -45, -42, -35, -26, -14, 0, 12, 19, 26, 35, 39, 36, 33, 28, 18, + 6, -7, -18, -28, -37, -43, -43, -37, -30, -19, -6, 8, 20, 25, 34, 42, + 41, 37, 32, 22, 8, -7, -19, -32, -40, -44, -44, -38, -30, -20, -6, 8, + 19, 24, 30, 40, 41, 36, 29, 23, 13, -3, -16, -28, -39, -43, -44, -41, + -34, -23, -11, 2, 16, 25, 32, 41, 46, 42, 34, 26, 15, 0, -16, -29, + -40, -45, -45, -40, -32, -24, -12, -2, 12, 22, 26, 37, 45, 44, 34, 24, + 18, 6, -12, -24, -37, -41, -40, -40, -36, -30, -17, -4, 9, 18, 25, 37, + 45, 45, 40, 29, 19, 8, -8, -22, -38, -43, -42, -42, -35, -28, -17, -4, + 7, 17, 23, 33, 43, 43, 38, 28, 19, 12, -3, -19, -34, -40, -38, -40, + -38, -31, -22, -8, 5, 14, 21, 31, 44, 47, 41, 31, 20, 13, 3, -15, + -33, -45, -45, -41, -38, -31, -24, -10, 4, 15, 21, 29, 42, 47, 41, 33, + 22, 13, 4, -13, -29, -40, -41, -41, -41, -36, -26, -14, -2, 8, 17, 29, + 42, 50, 46, 37, 27, 17, 7, -9, -27, -41, -48, -45, -42, -38, -29, -15, + -2, 10, 18, 26, 38, 50, 51, 40, 28, 17, 6, -7, -24, -36, -43, -45, + -41, -38, -31, -18, -8, 2, 13, 26, 38, 44, 49, 42, 33, 22, 8, -4, + -20, -32, -41, -46, -44, -37, -32, -21, -8, 2, 14, 25, 35, 42, 47, 44, + 31, 19, 7, -4, -15, -28, -36, -42, -40, -34, -31, -24, -9, 0, 7, 18, + 30, 40, 44, 42, 32, 22, 12, 2, -10, -23, -31, -38, -42, -38, -31, -26, + -13, -3, 2, 14, 29, 40, 41, 40, 36, 26, 13, 1, -10, -19, -26, -35, + -43, -41, -33, -27, -17, -6, 1, 12, 27, 43, 47, 42, 37, 29, 14, 0, + -10, -21, -29, -34, -40, -42, -33, -26, -18, -5, 3, 10, 23, 39, 45, 39, + 33, 30, 18, 3, -8, -15, -22, -29, -37, -43, -36, -27, -22, -13, -4, 6, + 19, 36, 47, 47, 37, 33, 25, 6, -8, -15, -25, -31, -36, -43, -42, -32, + -21, -11, 0, 5, 15, 32, 46, 45, 35, 31, 28, 12, -6, -13, -20, -24, + -31, -41, -46, -38, -26, -18, -9, 1, 14, 31, 43, 48, 42, 33, 28, 15, + -5, -15, -18, -24, -31, -38, -41, -34, -26, -19, -8, 1, 10, 23, 37, 43, + 41, 32, 26, 19, 3, -12, -15, -18, -24, -34, -42, -38, -28, -20, -13, -4, + 6, 21, 37, 44, 43, 36, 28, 21, 8, -9, -16, -19, -25, -34, -42, -39, + -29, -21, -13, -3, 8, 19, 34, 42, 41, 36, 28, 20, 8, -7, -15, -16, + -19, -30, -41, -42, -31, -23, -15, -8, 3, 19, 36, 43, 39, 36, 30, 23, + 13, -6, -19, -21, -20, -26, -38, -43, -35, -25, -15, -7, 3, 14, 30, 42, + 40, 35, 28, 23, 16, 0, -14, -20, -19, -22, -34, -42, -37, -26, -15, -8, + 0, 12, 27, 40, 41, 35, 29, 22, 16, 4, -9, -19, -20, -20, -29, -39, + -39, -30, -19, -10, -3, 10, 24, 37, 42, 37, 31, 25, 18, 7, -7, -17, + -21, -20, -28, -38, -40, -33, -22, -11, -5, 9, 25, 37, 44, 40, 32, 24, + 17, 10, -5, -18, -24, -23, -28, -35, -38, -35, -26, -14, -5, 5, 19, 34, + 44, 42, 33, 23, 18, 13, 0, -15, -20, -22, -26, -33, -39, -35, -28, -18, + -10, 1, 18, 33, 43, 45, 38, 28, 20, 11, 2, -12, -22, -24, -28, -31, + -36, -35, -29, -21, -11, 0, 15, 30, 40, 44, 39, 31, 21, 13, 8, -5, + -17, -20, -25, -28, -32, -36, -34, -27, -18, -7, 9, 26, 39, 46, 45, 36, + 25, 14, 10, -2, -16, -24, -29, -31, -31, -36, -36, -27, -16, -7, 6, 23, + 37, 45, 44, 36, 26, 14, 8, 1, -14, -22, -23, -29, -32, -35, -36, -29, + -21, -14, 0, 16, 35, 46, 45, 39, 33, 20, 8, 3, -9, -21, -28, -32, + -34, -35, -36, -32, -25, -15, 1, 17, 32, 45, 49, 44, 35, 23, 7, 0, + -7, -17, -25, -30, -31, -32, -34, -31, -25, -18, -7, 10, 27, 43, 50, 45, + 35, 24, 13, 3, -7, -17, -24, -28, -30, -30, -33, -34, -26, -19, -11, 5, + 22, 39, 50, 48, 37, 26, 16, 5, -7, -18, -23, -27, -28, -28, -33, -34, + -24, -16, -11, 2, 17, 33, 48, 48, 37, 27, 18, 7, -5, -14, -20, -25, + -30, -31, -32, -37, -31, -20, -15, -3, 15, 30, 46, 53, 43, 31, 20, 11, + 0, -12, -21, -27, -31, -30, -30, -36, -33, -20, -10, -5, 9, 25, 41, 52, + 46, 34, 23, 15, 6, -9, -21, -27, -30, -31, -31, -37, -39, -25, -12, -7, + 1, 18, 36, 52, 53, 40, 28, 22, 13, -2, -18, -29, -32, -35, -34, -39, + -40, -28, -13, -7, -2, 12, 33, 50, 56, 44, 30, 24, 18, 4, -15, -29, + -32, -33, -33, -35, -40, -35, -20, -7, -2, 8, 25, 43, 54, 49, 35, 25, + 18, 8, -7, -23, -32, -32, -34, -34, -37, -36, -24, -11, -5, 2, 18, 36, + 51, 51, 39, 30, 24, 14, 0, -19, -32, -35, -35, -37, -38, -39, -29, -12, + -2, 3, 14, 29, 47, 54, 45, 33, 26, 17, 5, -12, -31, -37, -36, -38, + -38, -38, -32, -17, -3, 3, 9, 25, 42, 53, 49, 39, 31, 23, 10, -9, + -27, -38, -40, -41, -41, -41, -36, -23, -5, 5, 8, 18, 36, 51, 51, 43, + 34, 26, 16, 1, -20, -36, -40, -41, -42, -40, -38, -28, -10, 4, 7, 14, + 30, 48, 51, 45, 39, 31, 21, 4, -16, -33, -41, -43, -43, -39, -38, -32, + -15, 1, 7, 13, 25, 42, 52, 48, 39, 31, 22, 9, -10, -29, -40, -40, + -40, -38, -35, -34, -20, -2, 5, 9, 17, 33, 49, 50, 43, 34, 25, 13, + -4, -21, -36, -44, -44, -40, -35, -34, -26, -8, 5, 11, 17, 26, 43, 51, + 46, 36, 27, 16, 1, -16, -31, -42, -46, -43, -37, -35, -29, -12, 3, 11, + 17, 23, 37, 50, 52, 41, 29, 20, 4, -15, -30, -43, -49, -46, -39, -37, + -33, -15, 3, 13, 19, 23, 35, 52, 55, 44, 29, 20, 8, -12, -28, -40, + -48, -45, -39, -35, -32, -20, -2, 12, 16, 19, 28, 45, 55, 49, 35, 24, + 14, -3, -20, -36, -49, -53, -45, -38, -35, -27, -9, 8, 19, 23, 26, 40, + 55, 55, 41, 25, 15, -2, -19, -33, -46, -53, -47, -39, -35, -29, -14, 6, + 19, 24, 25, 35, 53, 59, 47, 29, 17, 7, -12, -30, -47, -58, -56, -47, + -39, -35, -22, -2, 17, 28, 30, 34, 50, 63, 56, 35, 19, 8, -9, -26, + -43, -56, -58, -49, -42, -38, -27, -9, 12, 26, 33, 34, 44, 60, 62, 44, + 23, 9, -4, -20, -40, -56, -63, -56, -44, -39, -30, -14, 8, 26, 35, 35, + 43, 60, 64, 50, 28, 13, 2, -16, -37, -53, -62, -61, -50, -42, -32, -17, + 2, 18, 32, 40, 44, 54, 63, 55, 37, 17, 4, -10, -31, -48, -61, -67, + -59, -45, -36, -24, -5, 17, 33, 43, 47, 54, 64, 59, 42, 20, 3, -10, + -28, -49, -63, -68, -63, -50, -37, -25, -7, 13, 31, 44, 48, 54, 61, 59, + 48, 27, 6, -10, -24, -43, -59, -67, -67, -56, -39, -28, -13, 8, 24, 42, + 51, 54, 58, 58, 52, 37, 14, -6, -20, -38, -54, -65, -70, -63, -45, -29, + -17, 2, 18, 37, 52, 56, 58, 56, 51, 42, 23, -2, -19, -34, -50, -62, + -70, -69, -52, -30, -17, -3, 15, 33, 50, 58, 58, 56, 52, 46, 29, 3, + -15, -31, -45, -58, -68, -71, -60, -38, -20, -5, 11, 25, 42, 58, 62, 58, + 51, 44, 36, 15, -10, -29, -43, -53, -64, -72, -67, -45, -21, -8, 4, 20, + 40, 60, 65, 57, 53, 48, 42, 21, -8, -27, -40, -50, -62, -71, -71, -54, + -29, -9, 3, 18, 34, 54, 68, 65, 57, 48, 40, 28, 2, -23, -41, -52, + -60, -71, -75, -60, -34, -12, 0, 13, 31, 52, 69, 66, 56, 50, 44, 33, + 7, -21, -38, -47, -55, -65, -75, -67, -41, -15, 2, 11, 23, 41, 61, 68, + 59, 49, 40, 34, 17, -11, -35, -47, -48, -55, -69, -72, -50, -21, 0, 8, + 15, 33, 56, 69, 62, 52, 44, 40, 26, -4, -30, -44, -48, -56, -69, -77, + -59, -28, -7, 7, 15, 30, 52, 68, 66, 55, 45, 38, 30, 6, -24, -43, + -49, -52, -64, -75, -65, -35, -10, 4, 11, 25, 45, 65, 67, 55, 48, 43, + 34, 13, -18, -39, -45, -49, -61, -75, -72, -45, -17, -2, 9, 20, 39, 61, + 70, 62, 52, 45, 36, 18, -9, -34, -47, -52, -58, -69, -72, -52, -23, -5, + 7, 17, 35, 54, 65, 63, 55, 45, 37, 23, 0, -27, -45, -49, -53, -63, + -71, -59, -31, -8, 7, 15, 28, 47, 61, 65, 58, 47, 38, 27, 6, -21, + -41, -49, -53, -62, -69, -62, -39, -14, 3, 14, 28, 46, 59, 64, 62, 51, + 39, 29, 11, -16, -40, -52, -55, -58, -65, -65, -47, -20, 1, 14, 24, 39, + 52, 59, 64, 56, 43, 33, 16, -8, -32, -49, -55, -58, -63, -65, -54, -29, + -3, 12, 21, 36, 51, 60, 65, 59, 46, 35, 21, -4, -28, -48, -56, -57, + -59, -60, -55, -37, -12, 9, 19, 32, 46, 54, 58, 58, 48, 36, 26, 7, + -18, -41, -53, -53, -52, -57, -58, -45, -19, 6, 15, 26, 42, 54, 59, 59, + 52, 39, 28, 10, -16, -40, -56, -56, -52, -51, -53, -45, -22, 4, 17, 24, + 35, 46, 56, 57, 52, 40, 30, 18, -7, -33, -54, -58, -52, -49, -53, -51, + -33, -5, 17, 26, 34, 43, 54, 58, 53, 42, 31, 19, 0, -24, -47, -60, + -55, -46, -46, -50, -39, -13, 13, 25, 32, 38, 48, 56, 52, 41, 30, 20, + 7, -15, -41, -58, -55, -44, -41, -44, -40, -19, 10, 25, 28, 32, 41, 53, + 52, 42, 31, 21, 13, -5, -32, -55, -60, -47, -36, -38, -40, -26, 2, 24, + 29, 28, 32, 46, 48, 40, 29, 21, 14, 1, -23, -48, -56, -46, -34, -33, + -36, -29, -7, 20, 28, 25, 26, 37, 46, 42, 30, 19, 15, 7, -13, -39, + -58, -54, -37, -27, -27, -29, -17, 13, 29, 28, 24, 31, 42, 42, 34, 21, + 11, 5, -10, -32, -51, -52, -40, -28, -24, -24, -18, 6, 27, 30, 26, 28, + 36, 38, 33, 22, 11, 6, -7, -26, -44, -49, -42, -30, -21, -17, -16, -5, + 18, 29, 26, 25, 29, 33, 33, 25, 13, 7, 0, -18, -36, -46, -45, -31, + -20, -16, -16, -9, 12, 28, 29, 24, 25, 29, 31, 26, 13, 2, -5, -15, + -26, -39, -46, -37, -19, -9, -9, -11, 1, 21, 31, 26, 21, 23, 26, 25, + 15, 4, -4, -10, -20, -32, -41, -38, -22, -10, -7, -9, -6, 11, 26, 29, + 22, 20, 21, 24, 19, 7, -6, -12, -17, -23, -30, -36, -27, -12, -3, 0, + -5, 3, 18, 28, 25, 18, 15, 16, 15, 7, -4, -10, -14, -19, -24, -30, + -26, -13, -3, 2, -3, -2, 12, 23, 26, 18, 13, 13, 14, 9, 0, -11, + -14, -15, -18, -24, -26, -16, -4, 4, 0, -5, 6, 17, 25, 21, 11, 7, + 8, 8, 1, -11, -14, -11, -10, -13, -20, -18, -7, 5, 7, -3, -2, 8, + 21, 23, 12, 4, 4, 8, 7, -5, -15, -14, -11, -9, -15, -20, -13, 1, + 8, 3, 0, 6, 17, 24, 16, 3, -2, 1, 0, -10, -17, -14, -8, -4, + -5, -11, -12, 0, 9, 6, -3, 1, 10, 18, 16, 5, -3, 0, 3, -4, + -13, -15, -10, -6, -4, -8, -13, -8, 5, 8, 5, 3, 9, 17, 18, 13, + 0, -7, -5, -5, -11, -14, -11, -6, 2, 2, -6, -9, 1, 8, 5, -2, + 1, 8, 14, 12, 2, -6, -5, -2, -6, -12, -10, -2, 3, 4, -5, -11, + -6, 5, 6, 0, 0, 7, 12, 14, 6, -7, -8, -6, -6, -9, -10, -5, + 4, 8, 4, -7, -11, -2, 6, 3, -2, 2, 9, 15, 12, -2, -8, -6, + -3, -5, -11, -9, 2, 10, 7, -5, -15, -10, 4, 6, -2, -2, 8, 14, + 14, 3, -9, -8, -5, -4, -8, -10, 0, 8, 9, 3, -9, -12, -3, 6, + 3, -3, 1, 8, 13, 5, -9, -13, -7, -2, -2, -6, -2, 9, 13, 6, + -6, -13, -10, 2, 4, -3, -2, 7, 13, 9, -6, -12, -11, -6, 0, -5, + -5, 7, 15, 13, 1, -10, -13, -4, 5, -2, -7, -2, 9, 9, -3, -11, + -11, -8, 2, 1, -3, 7, 15, 12, 4, -7, -13, -11, -2, 1, -4, -3, + 7, 11, 3, -8, -11, -10, 0, 1, -5, 2, 12, 17, 11, -2, -11, -11, + -3, 4, -4, -9, 1, 10, 3, -9, -11, -8, 0, 5, 1, 2, 11, 14, + 9, 1, -11, -15, -11, -3, 1, -3, 3, 12, 11, 1, -7, -9, -6, -3, + -5, -5, 5, 12, 9, 4, -3, -8, -8, -5, 0, -4, -3, 5, 6, -3, + -10, -7, -3, 0, 2, 3, 10, 14, 11, 4, -3, -11, -15, -15, -9, -5, + -5, 5, 13, 5, -2, 0, 2, 4, 1, -3, 4, 12, 11, 2, -5, -10, + -13, -13, -11, -6, -4, 3, 13, 9, 1, -2, 4, 5, 1, -5, 3, 12, + 13, 4, -9, -12, -14, -16, -17, -12, -5, 5, 16, 17, 6, 3, 9, 9, + 2, -8, -7, 2, 7, 4, -8, -12, -10, -13, -14, -13, -6, 4, 13, 19, + 10, 0, 6, 14, 8, -6, -9, 0, 7, 5, -8, -17, -13, -9, -14, -18, + -13, 2, 15, 23, 16, 4, 5, 16, 15, 0, -10, -6, 3, 6, -4, -15, + -15, -10, -11, -16, -16, -5, 10, 21, 18, 7, 2, 12, 18, 6, -7, -9, + 1, 7, 1, -14, -19, -15, -13, -16, -18, -8, 7, 19, 24, 16, 5, 8, + 16, 9, -4, -9, -5, 3, 4, -9, -19, -18, -13, -12, -17, -12, 2, 16, + 22, 17, 6, 4, 14, 13, 1, -8, -6, 2, 6, -5, -18, -20, -16, -14, + -18, -17, -5, 12, 23, 24, 14, 9, 15, 19, 9, -5, -8, -3, 2, -6, + -17, -23, -19, -14, -16, -17, -8, 7, 19, 24, 19, 10, 11, 17, 13, 3, + -5, -3, -2, -4, -14, -24, -25, -20, -18, -16, -10, 3, 16, 26, 28, 18, + 11, 15, 17, 9, -4, -7, -6, -6, -12, -24, -29, -22, -16, -15, -10, 0, + 13, 24, 27, 22, 14, 13, 16, 13, 2, -6, -7, -9, -12, -21, -29, -27, + -21, -15, -10, -3, 8, 21, 29, 26, 17, 13, 17, 19, 9, -5, -10, -9, + -12, -21, -30, -29, -22, -14, -10, -4, 7, 17, 26, 23, 17, 13, 12, 18, + 16, 5, -6, -10, -11, -19, -29, -32, -27, -18, -10, -4, 4, 13, 25, 26, + 21, 16, 11, 16, 17, 8, -5, -12, -12, -16, -25, -30, -27, -19, -10, -6, + 0, 10, 21, 24, 18, 15, 13, 16, 20, 14, 1, -10, -12, -15, -26, -31, + -29, -22, -12, -5, 0, 8, 19, 25, 22, 17, 14, 14, 19, 17, 4, -10, + -15, -15, -22, -30, -30, -26, -16, -6, 1, 7, 15, 23, 23, 18, 17, 17, + 17, 17, 8, -6, -15, -18, -24, -31, -29, -26, -19, -8, 2, 7, 15, 23, + 24, 21, 17, 15, 15, 17, 13, -4, -16, -20, -23, -30, -32, -27, -19, -8, + 3, 7, 14, 23, 24, 20, 16, 16, 15, 14, 10, 0, -12, -20, -24, -31, + -32, -25, -19, -10, 0, 9, 14, 22, 27, 23, 17, 17, 18, 12, 8, 1, + -12, -18, -23, -31, -34, -26, -17, -9, -2, 6, 14, 22, 27, 22, 16, 15, + 18, 17, 10, 3, -9, -17, -21, -31, -38, -32, -23, -13, -5, 4, 14, 21, + 30, 30, 21, 17, 18, 17, 10, 3, -8, -20, -23, -29, -38, -34, -25, -12, + 0, 3, 11, 17, 26, 31, 23, 15, 13, 16, 14, 5, -4, -15, -19, -23, + -35, -38, -32, -19, -7, -5, 6, 16, 25, 36, 32, 22, 19, 19, 15, 3, + -7, -16, -23, -26, -35, -42, -34, -19, -3, 1, 6, 18, 26, 37, 34, 20, + 15, 14, 14, 5, -7, -15, -21, -23, -28, -39, -37, -22, -5, 1, 3, 15, + 25, 35, 40, 27, 14, 14, 14, 6, -7, -14, -20, -25, -27, -36, -41, -28, + -8, 2, 4, 14, 24, 33, 40, 32, 17, 13, 12, 5, -7, -14, -17, -24, + -28, -34, -40, -32, -14, 1, 4, 13, 26, 33, 41, 40, 26, 15, 12, 4, + -9, -17, -20, -25, -31, -34, -41, -38, -20, 0, 7, 12, 24, 32, 40, 41, + 30, 17, 11, 4, -10, -18, -19, -21, -27, -31, -35, -36, -24, -5, 5, 9, + 21, 31, 37, 41, 36, 21, 11, 4, -8, -15, -18, -21, -26, -31, -34, -37, + -30, -12, 3, 9, 18, 30, 38, 44, 42, 29, 15, 7, -6, -18, -23, -24, + -25, -31, -34, -36, -33, -15, 3, 9, 17, 28, 38, 44, 42, 34, 20, 8, + -5, -18, -23, -22, -24, -30, -35, -35, -35, -24, -6, 6, 14, 25, 36, 42, + 45, 42, 28, 13, 1, -15, -26, -27, -26, -29, -35, -39, -38, -28, -10, 5, + 13, 21, 36, 47, 48, 45, 36, 21, 6, -11, -25, -31, -30, -29, -35, -41, + -41, -34, -18, 1, 15, 24, 35, 47, 52, 51, 42, 26, 8, -9, -25, -32, + -34, -32, -34, -40, -41, -35, -22, -5, 11, 21, 30, 44, 52, 51, 45, 32, + 15, -3, -19, -28, -33, -34, -36, -42, -44, -41, -30, -13, 6, 20, 29, 43, + 54, 56, 50, 37, 22, 4, -17, -31, -39, -39, -38, -40, -44, -41, -31, -14, + 4, 18, 26, 37, 52, 57, 54, 44, 29, 11, -9, -26, -38, -42, -40, -41, + -45, -46, -39, -24, -2, 17, 25, 35, 49, 59, 59, 52, 36, 19, -2, -22, + -38, -46, -45, -43, -44, -47, -41, -28, -7, 12, 22, 32, 45, 58, 60, 52, + 40, 26, 9, -14, -36, -46, -47, -44, -44, -50, -47, -34, -14, 8, 21, 30, + 42, 58, 65, 58, 46, 32, 14, -7, -30, -47, -51, -50, -45, -50, -51, -38, + -20, 4, 19, 28, 38, 53, 67, 63, 50, 40, 23, 2, -22, -43, -54, -55, + -50, -53, -57, -48, -31, -6, 17, 28, 39, 53, 69, 72, 60, 47, 29, 7, + -18, -39, -54, -59, -56, -53, -55, -52, -37, -16, 10, 25, 36, 48, 65, 75, + 68, 54, 40, 20, -6, -31, -52, -61, -61, -59, -63, -62, -46, -24, 2, 20, + 33, 50, 67, 79, 75, 62, 49, 30, 2, -29, -50, -63, -66, -65, -64, -64, + -50, -28, -6, 18, 34, 48, 62, 74, 79, 70, 54, 38, 14, -19, -45, -62, + -70, -71, -67, -68, -61, -39, -15, 10, 28, 45, 63, 77, 82, 77, 62, 47, + 25, -9, -40, -61, -70, -73, -69, -70, -66, -47, -23, 2, 23, 41, 57, 71, + 79, 83, 72, 55, 37, 6, -27, -51, -67, -76, -78, -77, -75, -60, -35, -12, + 13, 37, 59, 75, 82, 86, 81, 66, 48, 17, -23, -50, -66, -77, -83, -83, + -78, -66, -43, -18, 7, 31, 54, 73, 83, 87, 87, 74, 55, 29, -10, -41, + -61, -76, -85, -88, -84, -72, -53, -28, -3, 22, 51, 75, 84, 88, 92, 87, + 67, 40, 0, -38, -60, -77, -89, -94, -89, -77, -59, -34, -7, 17, 44, 73, + 88, 90, 91, 88, 74, 49, 12, -29, -57, -73, -84, -93, -94, -84, -68, -44, + -17, 8, 33, 64, 85, 90, 92, 91, 83, 63, 30, -15, -50, -71, -82, -92, + -96, -90, -74, -52, -26, 0, 24, 56, 82, 92, 93, 92, 89, 74, 42, 0, + -41, -67, -80, -93, -100, -97, -83, -62, -35, -8, 16, 43, 74, 91, 96, 96, + 93, 83, 56, 16, -28, -61, -79, -92, -99, -99, -90, -71, -45, -16, 9, 36, + 66, 88, 98, 97, 93, 87, 68, 31, -16, -52, -75, -89, -98, -103, -98, -81, + -54, -23, 1, 25, 56, 83, 97, 98, 92, 88, 76, 46, 1, -42, -68, -81, + -91, -99, -97, -82, -58, -30, -6, 15, 44, 73, 91, 94, 89, 85, 78, 55, + 16, -28, -59, -77, -87, -93, -95, -85, -65, -40, -16, 6, 33, 62, 85, 94, + 90, 86, 81, 66, 32, -15, -52, -73, -84, -90, -93, -87, -69, -45, -22, 0, + 22, 48, 75, 88, 88, 85, 80, 67, 42, 4, -36, -62, -77, -87, -90, -85, + -72, -52, -30, -11, 11, 36, 63, 83, 86, 86, 82, 74, 54, 17, -25, -55, + -72, -81, -88, -87, -77, -57, -34, -16, 4, 26, 54, 77, 84, 84, 82, 75, + 58, 27, -12, -45, -65, -76, -84, -84, -76, -61, -41, -24, -7, 15, 41, 67, + 78, 81, 80, 76, 67, 42, 5, -30, -54, -67, -79, -85, -79, -67, -50, -32, + -16, 6, 32, 58, 73, 77, 81, 78, 68, 49, 16, -19, -45, -63, -74, -80, + -77, -67, -53, -35, -20, -3, 20, 45, 65, 72, 76, 75, 68, 56, 29, -6, + -33, -52, -65, -75, -77, -70, -57, -42, -28, -13, 9, 34, 57, 70, 73, 75, + 72, 63, 41, 7, -24, -46, -60, -70, -75, -72, -59, -45, -31, -18, 0, 25, + 48, 63, 68, 70, 71, 65, 47, 17, -13, -33, -49, -62, -73, -73, -61, -48, + -37, -25, -10, 14, 39, 57, 64, 67, 70, 69, 54, 28, -3, -27, -44, -57, + -68, -74, -66, -50, -39, -26, -13, 5, 30, 50, 60, 62, 64, 65, 58, 38, + 9, -17, -35, -46, -59, -69, -67, -52, -40, -31, -20, -6, 18, 42, 55, 58, + 60, 65, 62, 47, 20, -10, -28, -39, -51, -66, -70, -58, -44, -34, -23, -10, + 11, 34, 51, 57, 58, 62, 63, 51, 29, 2, -21, -34, -46, -60, -69, -63, + -49, -37, -27, -15, 3, 26, 45, 55, 56, 58, 62, 55, 37, 11, -14, -29, + -39, -52, -65, -66, -52, -40, -30, -18, -5, 17, 39, 52, 54, 55, 58, 57, + 44, 21, -8, -24, -33, -45, -59, -66, -57, -43, -31, -20, -11, 7, 30, 47, + 53, 51, 52, 55, 51, 33, 4, -20, -29, -36, -49, -64, -63, -50, -36, -24, + -14, 0, 22, 43, 55, 53, 49, 52, 51, 39, 12, -16, -27, -33, -45, -60, + -66, -53, -37, -25, -16, -6, 16, 40, 53, 53, 47, 49, 51, 43, 22, 0, + 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, -2, -2, -2, -2, 0, -2, + 0, 0, 1, 2, 3, 4, 4, 4, 5, 6, 7, 6, 3, 1, 0, -3, + -5, -11, -17, -20, -20, -18, -16, -17, -17, -14, -10, -9, -13, -18, -19, -15, + -13, -12, -13, -8, 1, 12, 25, 32, 40, 45, 50, 49, 41, 32, 24, 16, + 9, 1, -12, -20, -23, -24, -20, -20, -18, -12, -11, -12, -7, 0, 10, 17, + 23, 25, 24, 21, 22, 23, 21, 10, 1, -5, -8, -11, -19, -29, -33, -32, + -26, -19, -16, -14, -12, -8, -7, -11, -19, -27, -29, -27, -25, -25, -24, -17, + -4, 13, 26, 34, 43, 54, 59, 56, 46, 33, 23, 15, 5, -11, -23, -32, + -35, -32, -30, -27, -23, -16, -11, -5, 3, 11, 23, 31, 36, 33, 28, 27, + 26, 21, 11, 1, -9, -14, -18, -23, -28, -35, -33, -26, -18, -12, -11, -7, + -4, -2, 0, -8, -19, -29, -33, -32, -30, -30, -25, -17, -4, 13, 26, 36, + 47, 55, 59, 53, 43, 32, 23, 12, 0, -14, -23, -30, -35, -35, -35, -33, + -28, -19, -11, -6, 3, 11, 22, 33, 39, 38, 34, 30, 27, 20, 11, 0, + -9, -17, -21, -26, -31, -34, -29, -19, -8, -3, 0, -3, 1, 4, 1, -11, + -25, -35, -37, -39, -35, -32, -27, -17, 0, 15, 29, 42, 55, 63, 62, 55, + 47, 38, 27, 14, -4, -20, -31, -40, -44, -46, -45, -41, -34, -25, -14, -3, + 8, 22, 32, 43, 44, 40, 36, 34, 26, 18, 8, -2, -11, -20, -25, -29, + -33, -31, -21, -10, -2, -2, -2, 4, 6, 9, 0, -14, -28, -35, -39, -38, + -38, -36, -30, -16, 0, 16, 29, 41, 55, 65, 67, 59, 49, 39, 28, 13, + -3, -19, -32, -42, -48, -51, -53, -47, -36, -22, -12, 0, 10, 24, 38, 46, + 48, 43, 39, 32, 26, 17, 6, -7, -16, -21, -26, -31, -34, -28, -16, -2, + 3, 1, 2, 8, 16, 12, 2, -15, -27, -34, -37, -41, -47, -44, -33, -16, + 1, 16, 31, 47, 65, 75, 73, 63, 52, 41, 27, 9, -14, -34, -47, -54, + -55, -58, -57, -50, -35, -17, 0, 8, 20, 34, 47, 54, 49, 42, 36, 29, + 21, 9, -4, -14, -21, -26, -30, -33, -28, -18, -5, 4, 6, 6, 8, 13, + 17, 12, -4, -21, -33, -39, -44, -49, -50, -46, -35, -15, 4, 22, 36, 55, + 72, 81, 78, 69, 54, 42, 27, 6, -19, -38, -52, -57, -62, -65, -64, -52, + -35, -17, -3, 8, 19, 33, 45, 50, 48, 42, 35, 29, 18, 7, -5, -11, + -20, -26, -29, -27, -20, -13, -4, 3, 8, 9, 11, 12, 12, 5, -8, -22, + -33, -42, -50, -53, -51, -42, -27, -11, 9, 27, 45, 62, 75, 78, 73, 60, + 48, 32, 14, -8, -30, -46, -54, -60, -64, -62, -53, -39, -23, -8, 5, 17, + 30, 41, 46, 44, 38, 30, 22, 11, 4, -5, -12, -20, -25, -26, -24, -17, + -7, 3, 8, 11, 12, 14, 15, 14, 9, -4, -17, -32, -44, -54, -57, -56, + -48, -36, -22, -5, 18, 41, 61, 74, 79, 75, 67, 55, 39, 20, -2, -20, + -37, -47, -56, -62, -63, -57, -44, -31, -18, -5, 7, 16, 28, 35, 38, 37, + 32, 25, 16, 8, 3, -2, -5, -11, -19, -21, -16, -7, 3, 6, 8, 7, + 8, 10, 9, 5, -4, -13, -23, -37, -49, -54, -54, -47, -38, -25, -9, 9, + 30, 50, 67, 77, 75, 69, 58, 42, 26, 7, -12, -31, -46, -52, -56, -59, + -58, -49, -36, -19, -5, 8, 14, 22, 28, 33, 35, 30, 23, 13, 4, 3, + 3, 0, -8, -12, -13, -10, -6, 2, 8, 11, 12, 11, 9, 4, -2, -5, + -12, -23, -35, -46, -52, -54, -48, -36, -22, -8, 9, 28, 46, 61, 70, 72, + 68, 58, 45, 27, 9, -8, -22, -35, -43, -48, -48, -46, -39, -33, -23, -12, + 1, 8, 11, 14, 16, 19, 19, 17, 11, 7, 8, 11, 13, 7, 5, 2, + 2, 2, 4, 6, 6, 5, 2, -3, -5, -9, -11, -17, -23, -29, -34, -40, + -45, -41, -32, -18, -5, 7, 19, 36, 54, 64, 67, 61, 55, 48, 36, 18, + 3, -11, -23, -36, -45, -46, -42, -39, -34, -27, -20, -11, 0, 10, 13, 14, + 12, 13, 13, 10, 7, 6, 9, 11, 11, 11, 10, 10, 8, 9, 9, 9, + 6, 1, -4, -12, -16, -22, -25, -28, -29, -30, -39, -43, -39, -26, -11, 0, + 8, 19, 33, 48, 58, 63, 61, 56, 50, 40, 25, 8, -5, -15, -24, -35, + -41, -42, -39, -32, -29, -25, -21, -13, -6, 0, 4, 2, 2, 3, 6, 6, + 7, 11, 17, 20, 22, 23, 24, 23, 21, 17, 12, 4, -5, -13, -22, -29, + -37, -41, -40, -36, -31, -32, -34, -34, -22, -6, 8, 14, 20, 29, 41, 50, + 56, 56, 49, 45, 39, 30, 17, 5, -8, -19, -28, -34, -35, -32, -27, -25, + -25, -23, -19, -12, -7, -4, -6, -10, -11, -7, 0, 4, 10, 14, 19, 26, + 32, 35, 34, 31, 25, 16, 6, -5, -17, -29, -39, -47, -51, -50, -44, -35, + -28, -27, -25, -18, -6, 10, 18, 21, 25, 31, 40, 46, 49, 48, 44, 42, + 37, 29, 19, 8, -5, -14, -21, -29, -30, -30, -27, -28, -32, -33, -31, -22, + -17, -15, -17, -19, -19, -9, 5, 16, 22, 25, 31, 38, 44, 47, 43, 34, + 20, 6, -9, -21, -35, -49, -59, -62, -60, -53, -42, -30, -22, -15, -6, 4, + 14, 23, 27, 28, 27, 30, 35, 38, 39, 42, 38, 35, 30, 25, 20, 12, + 4, -6, -18, -23, -22, -20, -22, -30, -37, -39, -34, -29, -27, -27, -26, -23, + -16, -3, 10, 21, 29, 35, 43, 46, 50, 49, 41, 28, 15, -2, -19, -35, + -50, -62, -67, -67, -60, -50, -36, -23, -14, -6, 3, 11, 21, 27, 27, 24, + 25, 27, 29, 31, 36, 41, 42, 39, 33, 27, 22, 17, 8, -3, -11, -15, + -15, -18, -25, -35, -42, -45, -42, -41, -41, -40, -38, -28, -12, 7, 22, 34, + 43, 51, 59, 62, 59, 49, 37, 20, 1, -19, -38, -54, -65, -73, -74, -69, + -55, -35, -19, -10, -2, 8, 18, 23, 25, 25, 22, 20, 19, 20, 22, 30, + 39, 44, 42, 39, 35, 32, 29, 18, 4, -8, -13, -15, -17, -24, -33, -43, + -47, -44, -42, -40, -40, -39, -32, -17, 3, 16, 28, 39, 47, 53, 56, 56, + 52, 40, 24, 5, -12, -29, -43, -54, -65, -72, -71, -56, -36, -20, -13, -4, + 5, 12, 18, 21, 23, 20, 18, 14, 16, 19, 27, 38, 45, 45, 42, 41, + 42, 37, 27, 15, 1, -8, -12, -13, -17, -30, -40, -47, -48, -47, -46, -46, + -45, -41, -28, -9, 11, 26, 38, 45, 51, 55, 58, 55, 47, 31, 10, -12, + -27, -39, -49, -58, -67, -69, -62, -46, -26, -13, -4, 2, 7, 14, 18, 21, + 20, 15, 11, 12, 14, 21, 32, 40, 44, 42, 42, 40, 37, 33, 22, 11, + 1, -7, -11, -11, -19, -30, -39, -43, -43, -42, -43, -44, -44, -36, -20, 0, + 14, 25, 35, 42, 46, 50, 50, 48, 36, 17, -3, -18, -30, -36, -43, -52, + -59, -60, -49, -35, -20, -12, -7, -4, 2, 8, 12, 12, 9, 9, 12, 16, + 23, 29, 39, 45, 46, 46, 43, 41, 37, 30, 20, 7, -5, -10, -11, -15, + -25, -39, -46, -45, -43, -42, -45, -46, -39, -26, -8, 8, 20, 31, 41, 45, + 48, 46, 44, 36, 21, 1, -20, -31, -33, -36, -44, -53, -59, -54, -41, -26, + -17, -12, -6, -3, 5, 7, 9, 11, 11, 12, 15, 20, 29, 36, 42, 46, + 45, 42, 40, 38, 33, 25, 13, 4, -7, -10, -11, -17, -29, -38, -38, -34, + -35, -39, -41, -39, -31, -16, -6, 4, 14, 24, 30, 34, 34, 35, 32, 22, + 8, -9, -16, -16, -17, -22, -33, -43, -46, -41, -34, -30, -25, -19, -14, -9, + -6, -2, 5, 9, 13, 15, 21, 29, 36, 43, 47, 46, 46, 42, 39, 37, + 31, 20, 10, 0, -6, -9, -14, -22, -29, -33, -31, -30, -34, -37, -37, -30, + -21, -12, -5, 1, 10, 20, 28, 31, 31, 28, 20, 12, 0, -8, -10, -10, + -16, -24, -33, -39, -44, -42, -35, -28, -23, -18, -14, -10, -4, 6, 12, 16, + 17, 22, 29, 33, 35, 38, 41, 43, 41, 38, 34, 30, 24, 16, 9, 3, + -4, -10, -15, -21, -23, -23, -23, -24, -28, -32, -31, -28, -22, -15, -10, -6, + 2, 11, 20, 23, 25, 19, 14, 9, 5, 3, 2, -2, -8, -19, -28, -36, + -42, -44, -39, -33, -28, -26, -20, -11, 0, 8, 15, 22, 28, 33, 35, 36, + 37, 38, 41, 40, 38, 32, 27, 21, 17, 11, 4, -3, -8, -12, -17, -18, + -16, -16, -15, -18, -22, -25, -26, -25, -23, -19, -15, -9, -2, 8, 13, 17, + 18, 17, 16, 15, 13, 10, 6, 0, -9, -21, -32, -42, -47, -46, -43, -36, + -30, -22, -15, -6, 4, 14, 22, 28, 33, 36, 37, 36, 35, 37, 36, 36, + 32, 27, 23, 16, 10, 5, 0, -7, -10, -12, -11, -11, -11, -10, -9, -11, + -16, -22, -27, -30, -30, -30, -25, -19, -9, 0, 7, 13, 18, 23, 27, 27, + 26, 20, 12, 1, -13, -27, -40, -50, -54, -54, -49, -42, -33, -21, -10, 1, + 14, 24, 30, 39, 44, 43, 38, 36, 38, 37, 34, 31, 28, 22, 13, 7, + 5, -2, -7, -11, -14, -13, -13, -8, -6, -6, -10, -12, -14, -19, -26, -34, + -38, -33, -26, -15, -7, 2, 7, 17, 26, 35, 40, 37, 29, 19, 7, -12, + -31, -44, -53, -56, -61, -62, -59, -46, -27, -9, 5, 14, 25, 36, 47, 53, + 51, 45, 37, 34, 32, 29, 26, 23, 18, 13, 5, 0, -3, -4, -6, -10, + -12, -12, -6, 2, 6, 2, -6, -12, -17, -21, -31, -41, -47, -43, -32, -20, + -11, -4, 9, 21, 40, 50, 48, 42, 34, 22, 5, -16, -36, -53, -58, -63, + -69, -73, -63, -43, -19, -2, 9, 19, 34, 50, 60, 61, 53, 42, 37, 32, + 30, 24, 21, 16, 11, 4, -4, -7, -6, -5, -5, -10, -14, -11, -4, 3, + 2, -2, -8, -13, -19, -26, -36, -42, -40, -33, -21, -9, 1, 10, 22, 36, + 49, 53, 47, 36, 19, 1, -18, -36, -51, -60, -65, -67, -67, -63, -47, -24, + -4, 11, 20, 33, 48, 57, 57, 52, 42, 33, 30, 28, 25, 19, 16, 12, + 8, 3, -2, -2, -2, -2, -5, -8, -10, -5, -2, 0, 0, -5, -8, -15, + -23, -32, -39, -38, -33, -24, -15, -7, 5, 16, 30, 45, 52, 49, 40, 23, + 4, -14, -29, -42, -55, -63, -67, -67, -61, -50, -35, -19, 0, 16, 31, 46, + 56, 59, 56, 47, 38, 34, 31, 28, 23, 16, 10, 4, 0, -2, -2, 0, + -5, -9, -12, -11, -7, -3, -3, -4, -5, -4, -7, -14, -26, -33, -32, -27, + -20, -15, -7, 2, 13, 21, 34, 42, 46, 40, 25, 7, -13, -27, -35, -44, + -54, -62, -64, -60, -51, -39, -26, -10, 8, 24, 40, 51, 58, 60, 54, 44, + 36, 29, 24, 19, 13, 8, 0, -6, -5, 0, 1, 0, -4, -3, -2, 0, + 1, -2, -5, -5, -4, -7, -17, -27, -31, -29, -24, -19, -15, -9, -3, 7, + 18, 27, 34, 39, 37, 26, 9, -9, -24, -32, -39, -47, -55, -60, -57, -51, + -42, -32, -20, -6, 14, 31, 48, 57, 60, 58, 52, 45, 35, 25, 21, 17, + 9, 0, -8, -10, -8, -7, -6, -9, -9, -6, -2, 0, -3, -6, -6, -2, + 1, -6, -15, -25, -25, -20, -17, -13, -11, -7, 1, 8, 16, 24, 31, 34, + 29, 16, -3, -17, -28, -35, -41, -47, -54, -56, -54, -46, -37, -27, -15, 4, + 23, 40, 50, 58, 60, 58, 50, 42, 34, 26, 19, 14, 4, -6, -13, -13, + -13, -14, -16, -15, -12, -9, -7, -7, -4, -4, 2, 7, 5, 0, -8, -11, + -13, -13, -11, -10, -11, -11, -9, 0, 8, 14, 22, 24, 19, 9, -3, -14, + -23, -29, -32, -38, -47, -54, -52, -44, -32, -23, -9, 8, 23, 39, 52, 59, + 58, 51, 46, 43, 33, 25, 16, 9, 4, -4, -11, -15, -16, -16, -15, -14, + -15, -16, -13, -7, -5, 2, 5, 5, 5, 6, 3, -4, -6, -4, -5, -10, + -16, -16, -13, -6, 4, 12, 15, 17, 14, 10, 4, -8, -17, -23, -30, -38, + -46, -52, -51, -41, -30, -20, -8, 9, 29, 47, 56, 57, 55, 52, 50, 45, + 34, 20, 10, 2, -2, -9, -16, -22, -24, -22, -21, -22, -19, -14, -7, -4, + 1, 5, 11, 15, 20, 17, 9, 3, 3, 0, -6, -15, -21, -23, -16, -9, + -3, 4, 10, 13, 15, 13, 4, -9, -15, -20, -27, -39, -48, -51, -47, -38, + -29, -21, -7, 16, 36, 48, 51, 52, 55, 60, 59, 49, 33, 20, 12, 7, + -2, -13, -24, -28, -27, -26, -30, -32, -29, -20, -9, 0, 3, 8, 16, 25, + 28, 23, 17, 12, 6, -2, -14, -26, -31, -27, -18, -10, -3, 7, 15, 22, + 24, 18, 9, 0, -9, -19, -34, -46, -57, -57, -51, -44, -38, -26, -5, 21, + 42, 48, 53, 58, 67, 75, 71, 57, 37, 23, 12, 3, -12, -27, -39, -43, + -43, -45, -47, -42, -28, -12, 2, 7, 12, 20, 32, 38, 37, 30, 21, 13, + 1, -13, -26, -34, -33, -26, -17, -10, -3, 9, 20, 25, 22, 13, 5, -3, + -13, -28, -43, -53, -56, -51, -46, -40, -31, -14, 10, 31, 41, 47, 56, 67, + 76, 73, 63, 46, 30, 19, 9, -7, -25, -39, -47, -50, -54, -52, -50, -38, + -22, -9, 4, 12, 22, 30, 39, 41, 39, 31, 22, 12, -3, -19, -30, -32, + -29, -23, -17, -9, 1, 12, 20, 24, 18, 10, 2, -7, -19, -35, -50, -59, + -59, -54, -49, -43, -31, -9, 15, 32, 41, 53, 70, 85, 87, 80, 64, 49, + 37, 23, 2, -23, -42, -52, -59, -66, -69, -68, -56, -38, -18, -2, 9, 19, + 31, 41, 49, 51, 44, 35, 21, 5, -9, -22, -29, -30, -26, -20, -14, -7, + 5, 15, 17, 14, 9, 2, -4, -16, -29, -45, -55, -56, -50, -46, -44, -36, + -19, 1, 19, 33, 46, 63, 79, 86, 84, 73, 60, 47, 32, 12, -10, -30, + -48, -59, -68, -72, -73, -64, -49, -30, -12, 2, 12, 26, 35, 45, 51, 51, + 44, 30, 15, 3, -9, -17, -20, -21, -19, -18, -14, 0, 10, 16, 15, 7, + -4, -10, -14, -24, -38, -51, -58, -55, -50, -44, -36, -23, -7, 10, 26, 41, + 57, 76, 89, 89, 81, 70, 59, 45, 25, 0, -24, -41, -56, -67, -75, -80, + -76, -63, -45, -26, -9, 6, 20, 32, 44, 52, 54, 53, 47, 35, 18, 3, + -6, -11, -14, -16, -19, -19, -12, -4, 5, 5, 0, -8, -12, -15, -21, -34, + -47, -51, -45, -39, -34, -30, -23, -12, 4, 17, 31, 45, 60, 72, 78, 75, + 69, 62, 53, 40, 18, -5, -24, -38, -50, -62, -73, -78, -74, -59, -41, -28, + -17, -4, 14, 33, 47, 55, 58, 55, 48, 39, 29, 16, 4, -5, -11, -18, + -21, -20, -15, -8, -7, -9, -13, -15, -16, -17, -23, -33, -43, -44, -41, -34, + -28, -23, -16, -8, 5, 21, 36, 50, 62, 73, 76, 73, 68, 59, 48, 30, + 9, -16, -35, -48, -59, -70, -77, -79, -72, -54, -38, -24, -8, 8, 29, 45, + 56, 61, 62, 56, 51, 39, 27, 16, 4, -8, -16, -22, -23, -25, -19, -16, + -17, -19, -20, -21, -18, -19, -25, -32, -38, -34, -24, -19, -15, -12, -7, 3, + 15, 28, 39, 48, 56, 63, 63, 63, 57, 47, 32, 14, -5, -22, -36, -46, + -58, -68, -73, -71, -61, -47, -35, -23, -9, 10, 29, 43, 52, 56, 56, 56, + 52, 45, 33, 19, 6, -5, -15, -22, -25, -26, -26, -29, -29, -26, -24, -20, + -19, -23, -27, -30, -27, -21, -18, -14, -10, -7, 0, 8, 18, 30, 40, 47, + 52, 54, 54, 55, 49, 39, 22, 7, -9, -24, -37, -50, -58, -65, -71, -67, + -59, -50, -39, -23, -6, 15, 32, 43, 51, 57, 61, 64, 61, 52, 37, 21, + 4, -11, -20, -26, -30, -35, -37, -39, -35, -29, -22, -17, -20, -22, -20, -18, + -17, -16, -13, -8, -3, 2, 7, 10, 17, 27, 35, 42, 43, 44, 45, 44, + 38, 28, 16, 3, -10, -22, -33, -46, -57, -64, -64, -59, -53, -46, -34, -17, + 3, 21, 32, 41, 48, 55, 60, 60, 54, 44, 31, 18, 3, -10, -19, -27, + -30, -32, -34, -35, -30, -23, -17, -17, -20, -20, -20, -17, -15, -13, -11, -8, + 1, 8, 12, 17, 23, 30, 39, 39, 37, 36, 35, 34, 27, 14, 0, -10, + -15, -23, -34, -46, -56, -60, -56, -49, -39, -32, -23, -8, 8, 23, 32, 38, + 44, 54, 58, 57, 48, 37, 29, 17, 4, -11, -21, -28, -29, -31, -34, -35, + -27, -20, -15, -16, -16, -17, -13, -10, -10, -11, -10, -4, 5, 11, 13, 15, + 21, 29, 33, 32, 28, 25, 25, 23, 16, 5, -6, -10, -16, -21, -30, -42, + -48, -48, -43, -34, -29, -21, -13, -3, 11, 22, 27, 34, 39, 48, 53, 48, + 42, 32, 23, 16, 4, -7, -18, -24, -24, -26, -28, -24, -19, -14, -13, -16, + -18, -18, -16, -14, -15, -16, -15, -7, 3, 11, 14, 21, 27, 33, 36, 33, + 30, 25, 22, 17, 9, -4, -15, -21, -24, -31, -39, -44, -44, -39, -30, -23, + -16, -8, 4, 14, 21, 23, 25, 29, 37, 43, 42, 36, 31, 25, 18, 11, + 4, -7, -11, -13, -16, -21, -22, -18, -14, -13, -16, -19, -21, -21, -19, -19, + -20, -18, -11, -2, 8, 14, 18, 23, 30, 34, 35, 31, 27, 21, 13, 2, + -11, -17, -23, -28, -36, -39, -40, -37, -31, -23, -14, -9, 0, 7, 13, 15, + 15, 16, 22, 27, 30, 28, 29, 32, 29, 23, 16, 9, 4, 1, -2, -7, + -14, -19, -14, -10, -10, -14, -18, -22, -24, -23, -26, -28, -27, -18, -8, -3, + 2, 9, 22, 33, 40, 40, 36, 30, 25, 20, 8, -8, -22, -29, -32, -39, + -48, -50, -42, -30, -19, -13, -8, 2, 11, 22, 25, 21, 17, 15, 20, 23, + 21, 20, 20, 19, 19, 16, 11, 9, 7, 7, 3, 0, -3, -5, -5, -5, + -7, -12, -22, -28, -32, -35, -35, -36, -30, -21, -12, -4, 3, 16, 29, 39, + 46, 45, 40, 34, 26, 13, -2, -17, -28, -37, -48, -57, -60, -52, -36, -19, + -12, -8, 2, 16, 28, 33, 28, 23, 21, 22, 21, 19, 18, 16, 14, 12, + 8, 6, 5, 5, 7, 5, 4, 5, 7, 9, 7, 3, -5, -13, -22, -28, + -35, -44, -49, -48, -38, -26, -14, -7, 4, 20, 38, 49, 54, 53, 49, 40, + 26, 8, -11, -24, -33, -46, -61, -70, -67, -52, -31, -14, -5, 4, 14, 27, + 36, 36, 33, 29, 26, 25, 21, 14, 10, 7, 8, 6, 5, 5, 6, 8, + 9, 10, 14, 18, 17, 13, 5, -4, -12, -20, -28, -37, -49, -56, -56, -48, + -36, -25, -15, -2, 16, 36, 51, 55, 57, 55, 48, 37, 20, 1, -17, -30, + -43, -60, -73, -76, -63, -43, -24, -14, -6, 7, 23, 39, 44, 38, 34, 31, + 32, 30, 24, 16, 8, 5, 6, 6, 5, 5, 6, 10, 10, 13, 16, 19, + 19, 14, 5, -7, -18, -25, -34, -45, -55, -61, -59, -51, -39, -25, -12, 5, + 27, 48, 58, 60, 61, 58, 49, 32, 14, -4, -20, -36, -54, -69, -79, -75, + -57, -35, -21, -15, -4, 12, 28, 39, 42, 41, 38, 38, 38, 33, 23, 13, + 8, 9, 11, 9, 5, 3, 6, 10, 13, 14, 15, 17, 16, 9, -6, -16, + -21, -27, -40, -56, -65, -67, -57, -45, -33, -23, -5, 21, 44, 60, 66, 67, + 65, 61, 47, 25, 2, -16, -34, -53, -72, -83, -82, -70, -51, -33, -20, -8, + 8, 25, 39, 46, 43, 43, 43, 43, 38, 27, 17, 9, 8, 10, 11, 9, + 5, 5, 8, 13, 14, 18, 20, 18, 12, -2, -13, -19, -25, -34, -48, -62, + -69, -67, -58, -46, -32, -14, 9, 30, 48, 60, 69, 72, 69, 57, 36, 13, + -6, -27, -47, -66, -79, -83, -77, -64, -46, -29, -13, 4, 17, 30, 39, 41, + 46, 48, 45, 40, 31, 20, 12, 10, 13, 14, 12, 11, 10, 10, 15, 17, + 20, 20, 17, 12, 0, -14, -24, -30, -37, -47, -60, -69, -68, -62, -51, -36, + -18, 5, 25, 45, 58, 65, 68, 67, 59, 42, 20, -2, -22, -42, -61, -75, + -81, -77, -66, -51, -35, -20, -4, 14, 28, 37, 38, 38, 42, 47, 43, 35, + 24, 17, 14, 14, 17, 20, 20, 17, 13, 14, 17, 18, 18, 17, 11, -2, + -15, -24, -31, -38, -46, -52, -58, -62, -61, -52, -38, -22, -4, 16, 35, 48, + 55, 60, 62, 57, 46, 26, 6, -17, -35, -53, -68, -76, -75, -66, -51, -38, + -23, -7, 10, 25, 35, 38, 37, 39, 40, 39, 30, 21, 16, 15, 15, 16, + 20, 24, 26, 27, 27, 26, 24, 21, 19, 11, -3, -16, -29, -40, -44, -50, + -54, -57, -58, -55, -48, -36, -21, -5, 13, 29, 41, 48, 52, 53, 50, 41, + 26, 7, -14, -33, -49, -62, -70, -69, -61, -48, -36, -21, -5, 16, 30, 35, + 35, 35, 32, 31, 29, 24, 17, 13, 13, 14, 15, 18, 26, 34, 39, 37, + 32, 29, 26, 22, 13, 1, -15, -29, -40, -46, -51, -54, -55, -52, -46, -40, + -32, -22, -10, 5, 19, 28, 33, 35, 37, 38, 33, 21, 8, -7, -20, -35, + -50, -57, -57, -49, -37, -28, -21, -8, 10, 25, 32, 32, 31, 27, 24, 22, + 20, 15, 13, 13, 15, 15, 19, 26, 36, 42, 43, 40, 33, 27, 22, 16, + 3, -13, -26, -37, -44, -50, -55, -54, -48, -42, -32, -24, -18, -10, -3, 8, + 20, 30, 31, 26, 22, 20, 15, 7, -7, -20, -32, -43, -52, -52, -46, -36, + -25, -16, -5, 9, 24, 38, 42, 39, 30, 23, 19, 15, 11, 8, 6, 6, + 6, 9, 18, 30, 42, 47, 45, 43, 38, 31, 22, 8, -9, -21, -33, -45, + -55, -59, -56, -47, -37, -29, -21, -13, -5, 2, 8, 13, 19, 22, 20, 15, + 9, 5, -3, -9, -20, -30, -39, -46, -45, -40, -31, -24, -16, -6, 7, 21, + 35, 39, 36, 31, 24, 22, 15, 10, 8, 5, 6, 3, 4, 12, 25, 40, + 48, 50, 48, 43, 37, 30, 17, -2, -18, -33, -45, -57, -64, -62, -53, -40, + -31, -23, -13, -3, 4, 11, 16, 19, 18, 17, 13, 7, -3, -10, -16, -22, + -31, -40, -45, -45, -41, -32, -24, -15, -5, 8, 24, 39, 47, 44, 38, 32, + 26, 20, 12, 3, -4, -4, -5, -4, 1, 11, 29, 41, 49, 51, 49, 45, + 38, 27, 9, -11, -27, -38, -52, -60, -64, -58, -45, -32, -21, -14, -5, 3, + 10, 13, 13, 14, 14, 12, 4, -6, -12, -17, -21, -25, -31, -35, -40, -39, + -33, -27, -19, -12, 1, 16, 29, 38, 42, 40, 36, 33, 30, 22, 11, 1, + -2, -2, -3, -2, 2, 16, 32, 44, 48, 46, 44, 39, 31, 19, 1, -21, + -36, -48, -58, -62, -59, -49, -38, -28, -20, -12, -2, 9, 16, 16, 15, 16, + 14, 9, 2, -7, -14, -19, -25, -31, -36, -38, -38, -36, -34, -28, -20, -7, + 8, 22, 33, 41, 46, 46, 42, 39, 33, 25, 14, 4, -4, -8, -8, -4, + 4, 16, 30, 38, 42, 46, 45, 38, 25, 10, -7, -24, -39, -51, -58, -59, + -53, -43, -34, -28, -21, -9, 5, 15, 17, 16, 15, 16, 15, 10, 2, -10, + -17, -21, -26, -33, -38, -40, -37, -34, -33, -28, -17, 0, 15, 29, 40, 48, + 50, 48, 44, 40, 34, 26, 15, 3, -6, -11, -11, -4, 7, 18, 24, 30, + 36, 38, 35, 31, 24, 13, -7, -25, -40, -50, -53, -51, -47, -41, -38, -33, + -25, -10, 4, 14, 19, 21, 22, 19, 19, 17, 7, -5, -15, -23, -31, -39, + -46, -49, -49, -46, -41, -33, -19, 0, 21, 39, 53, 61, 64, 63, 56, 50, + 42, 31, 15, -2, -13, -19, -19, -11, 0, 10, 15, 19, 27, 33, 37, 35, + 25, 9, -13, -28, -38, -44, -46, -50, -53, -51, -46, -38, -23, -7, 10, 20, + 21, 24, 25, 28, 28, 19, 8, -7, -18, -28, -36, -43, -52, -56, -57, -51, + -44, -31, -13, 7, 29, 46, 60, 66, 71, 68, 61, 54, 45, 32, 13, -5, + -17, -22, -20, -15, -8, -2, 8, 14, 24, 31, 35, 32, 21, 4, -13, -24, + -34, -42, -49, -55, -58, -54, -48, -38, -23, -4, 14, 26, 32, 31, 32, 36, + 34, 23, 7, -12, -25, -35, -47, -61, -68, -68, -61, -53, -42, -26, -7, 22, + 45, 61, 71, 75, 78, 74, 66, 56, 42, 24, 7, -13, -24, -29, -25, -18, + -11, -7, 2, 14, 27, 36, 38, 32, 19, 1, -14, -22, -33, -44, -56, -64, + -65, -60, -47, -32, -16, 3, 18, 31, 37, 37, 38, 41, 35, 20, 0, -18, + -31, -43, -56, -64, -69, -68, -60, -50, -36, -15, 6, 31, 50, 62, 71, 77, + 78, 74, 66, 54, 38, 20, 2, -15, -23, -26, -24, -22, -17, -7, 8, 20, + 29, 35, 33, 25, 13, -2, -14, -29, -42, -57, -67, -72, -67, -57, -42, -24, + -5, 13, 31, 43, 46, 47, 48, 43, 32, 14, -5, -22, -40, -55, -63, -68, + -69, -66, -57, -44, -25, -5, 18, 37, 55, 66, 75, 78, 75, 70, 62, 47, + 28, 9, -7, -19, -27, -30, -27, -21, -11, 5, 18, 28, 34, 36, 32, 24, + 12, -4, -20, -38, -55, -68, -75, -71, -65, -53, -35, -14, 6, 24, 39, 47, + 50, 48, 44, 36, 22, 5, -16, -34, -47, -56, -60, -60, -59, -54, -45, -28, + -9, 9, 25, 41, 53, 63, 67, 66, 65, 62, 54, 40, 22, 6, -8, -16, + -22, -23, -20, -11, 1, 13, 22, 27, 29, 26, 24, 15, 2, -15, -33, -49, + -64, -74, -74, -67, -55, -39, -20, -2, 16, 32, 45, 50, 49, 43, 35, 26, + 11, -9, -25, -35, -44, -49, -52, -54, -50, -39, -26, -12, 1, 14, 27, 39, + 48, 53, 55, 57, 56, 48, 36, 25, 15, 6, -5, -12, -17, -14, -8, 3, + 14, 21, 26, 23, 21, 21, 14, 3, -11, -26, -44, -61, -72, -72, -68, -56, + -42, -25, -11, 7, 24, 37, 44, 44, 40, 33, 25, 13, 0, -12, -24, -32, + -39, -41, -39, -36, -30, -24, -18, -10, 1, 11, 21, 29, 36, 41, 47, 51, + 51, 42, 35, 27, 19, 10, 1, -6, -10, -9, -2, 6, 11, 13, 13, 15, + 14, 10, 4, -9, -19, -31, -45, -58, -67, -68, -56, -43, -31, -20, -9, 7, + 21, 31, 35, 35, 33, 27, 18, 7, -3, -9, -13, -20, -27, -32, -33, -29, + -23, -19, -16, -12, -4, 6, 15, 23, 30, 39, 47, 49, 42, 35, 31, 27, + 22, 14, 2, -8, -9, -4, 5, 8, 8, 9, 7, 6, 3, 0, -5, -12, + -22, -35, -50, -58, -58, -50, -39, -32, -26, -19, -8, 7, 21, 26, 27, 25, + 22, 18, 11, 5, 2, 1, -3, -10, -19, -24, -23, -16, -15, -17, -20, -17, + -10, -2, 6, 12, 21, 32, 44, 45, 38, 30, 27, 31, 31, 21, 8, 1, + 0, 2, 8, 10, 7, 1, -3, -2, -4, -9, -12, -17, -25, -37, -47, -53, + -50, -42, -32, -27, -26, -22, -11, 5, 15, 18, 20, 22, 23, 22, 18, 15, + 14, 11, 7, -3, -14, -18, -17, -18, -22, -27, -27, -21, -14, -6, 3, 12, + 24, 34, 40, 39, 35, 32, 31, 34, 30, 19, 10, 4, 2, 5, 7, 7, + 1, -6, -10, -9, -8, -8, -11, -16, -25, -34, -41, -41, -36, -32, -33, -33, + -29, -22, -11, -2, 6, 13, 17, 22, 23, 22, 22, 24, 23, 20, 12, 0, + -7, -11, -14, -20, -26, -28, -26, -22, -15, -9, 2, 13, 25, 32, 33, 35, + 36, 37, 38, 35, 29, 19, 9, 5, 7, 6, 4, -3, -9, -12, -11, -6, + -4, -5, -10, -17, -26, -33, -37, -38, -38, -38, -41, -39, -31, -20, -9, -2, + 6, 15, 23, 31, 31, 31, 30, 29, 28, 21, 13, 2, -9, -17, -20, -23, + -26, -27, -26, -20, -14, -6, 6, 14, 22, 26, 32, 34, 35, 37, 37, 36, + 27, 15, 6, 6, 7, 5, -3, -13, -17, -17, -11, -5, -5, -6, -11, -18, + -24, -27, -30, -35, -40, -44, -44, -39, -28, -16, -6, 1, 9, 20, 31, 34, + 36, 37, 36, 33, 23, 14, 5, -3, -10, -17, -23, -30, -34, -31, -22, -14, + -8, 0, 7, 15, 20, 26, 30, 35, 40, 40, 34, 27, 18, 14, 9, 8, + 5, -2, -11, -15, -13, -8, -4, 0, 1, -6, -12, -18, -23, -29, -38, -45, + -52, -53, -47, -37, -28, -16, -5, 6, 17, 28, 37, 42, 43, 40, 37, 31, + 19, 8, 1, -7, -14, -22, -27, -33, -34, -28, -18, -8, 0, 5, 10, 14, + 19, 25, 33, 38, 39, 35, 27, 18, 13, 9, 8, 4, -3, -8, -12, -13, + -10, -4, 4, 4, -2, -7, -14, -21, -28, -36, -45, -53, -54, -50, -44, -34, + -20, -5, 7, 18, 28, 37, 39, 42, 40, 35, 28, 17, 7, 0, -7, -12, + -18, -23, -28, -28, -23, -17, -8, 2, 8, 9, 10, 12, 17, 25, 32, 33, + 28, 20, 13, 10, 10, 8, 6, 5, 1, -5, -6, -3, 3, 10, 10, 5, + -6, -15, -21, -28, -38, -49, -59, -62, -59, -51, -39, -25, -8, 7, 17, 28, + 37, 42, 44, 43, 38, 30, 17, 7, 0, -4, -10, -16, -24, -26, -27, -21, + -14, -9, -2, 5, 11, 14, 12, 13, 19, 26, 29, 26, 19, 13, 8, 8, + 9, 5, 2, 2, 4, 3, 1, 1, 5, 8, 7, 0, -10, -18, -25, -32, + -42, -52, -56, -53, -48, -38, -29, -14, 1, 14, 23, 30, 33, 33, 35, 33, + 26, 17, 9, 2, 1, 0, -5, -12, -19, -22, -21, -13, -8, -4, 5, 10, + 12, 10, 10, 14, 21, 25, 24, 15, 5, 3, 5, 7, 5, 2, 5, 10, + 12, 10, 9, 11, 13, 10, 2, -8, -18, -25, -32, -40, -50, -55, -53, -45, + -35, -27, -17, -4, 11, 20, 28, 30, 28, 29, 30, 28, 19, 10, 6, 6, + 5, 0, -10, -18, -20, -18, -14, -11, -10, -4, 6, 13, 13, 11, 13, 20, + 25, 24, 15, 7, 3, 4, 5, 4, 0, 3, 9, 14, 15, 11, 9, 8, + 8, 6, -5, -16, -24, -29, -35, -43, -48, -47, -42, -31, -23, -17, -7, 5, + 17, 24, 26, 22, 19, 19, 20, 17, 11, 5, 2, 2, 0, -4, -10, -14, + -14, -10, -8, -6, 1, 10, 19, 23, 22, 17, 16, 19, 18, 11, 1, -8, + -11, -10, -7, -4, 1, 7, 15, 22, 22, 18, 17, 16, 12, 4, -8, -21, + -29, -34, -39, -46, -49, -46, -37, -28, -19, -9, -2, 8, 19, 22, 20, 18, + 18, 19, 19, 12, 6, 3, 2, 0, -5, -10, -16, -18, -14, -9, -8, -3, + 6, 17, 25, 27, 26, 24, 25, 22, 15, 3, -8, -13, -13, -12, -11, -6, + 0, 9, 16, 19, 19, 16, 13, 10, 6, -5, -14, -22, -26, -32, -37, -41, + -39, -32, -23, -17, -14, -10, -3, 9, 17, 18, 10, 7, 10, 16, 18, 12, + 5, 1, 1, -4, -13, -18, -18, -15, -12, -11, -10, 1, 15, 29, 37, 35, + 31, 30, 30, 24, 11, -8, -18, -18, -15, -17, -20, -17, -6, 8, 15, 18, + 16, 15, 11, 12, 8, 0, -10, -16, -20, -28, -35, -38, -33, -27, -23, -21, + -19, -13, 0, 11, 14, 12, 9, 11, 18, 21, 19, 10, 2, -3, -5, -12, + -21, -28, -26, -20, -15, -12, -6, 9, 25, 38, 43, 42, 40, 38, 34, 23, + 6, -12, -18, -18, -18, -23, -25, -22, -13, 0, 7, 9, 8, 8, 11, 12, + 9, 6, 2, -5, -14, -21, -24, -24, -22, -22, -21, -22, -20, -12, -3, 4, + 5, 5, 6, 11, 15, 16, 10, 4, -2, -7, -11, -20, -25, -27, -21, -13, + -11, -5, 6, 22, 37, 46, 50, 49, 44, 39, 31, 16, -3, -15, -21, -24, + -27, -32, -33, -28, -17, -5, 5, 7, 7, 10, 15, 16, 15, 10, 4, -4, + -11, -18, -22, -22, -20, -22, -21, -21, -17, -10, 1, 6, 9, 10, 15, 19, + 18, 12, 5, 0, -9, -15, -23, -31, -36, -32, -24, -17, -11, -4, 12, 31, + 47, 53, 58, 60, 56, 49, 35, 15, -4, -16, -21, -25, -32, -42, -45, -35, + -23, -14, -8, 0, 6, 13, 20, 21, 19, 15, 9, 1, -6, -11, -13, -16, + -18, -20, -23, -20, -14, -8, 0, 2, 5, 11, 18, 18, 14, 6, -2, -10, + -18, -27, -34, -41, -40, -31, -20, -12, -7, 4, 23, 47, 64, 71, 71, 63, + 56, 46, 30, 12, -7, -22, -35, -42, -49, -52, -48, -34, -22, -14, -7, 3, + 15, 24, 27, 27, 24, 15, 6, -4, -8, -11, -13, -13, -15, -16, -14, -12, + -7, -2, 3, 10, 12, 14, 15, 7, 0, -7, -16, -25, -32, -40, -44, -44, + -36, -24, -11, 0, 6, 16, 36, 58, 72, 76, 71, 62, 51, 38, 24, 5, + -13, -30, -42, -50, -52, -53, -46, -33, -21, -15, -6, 7, 20, 25, 25, 21, + 18, 14, 7, 2, -5, -9, -9, -7, -8, -9, -10, -7, -3, 1, 6, 7, + 8, 9, 6, -2, -13, -23, -30, -35, -41, -45, -44, -38, -26, -15, -3, 11, + 19, 33, 52, 69, 75, 72, 65, 54, 42, 29, 13, -6, -25, -41, -49, -54, + -55, -48, -38, -26, -18, -8, 1, 13, 24, 29, 26, 19, 11, 5, 2, -2, + -6, -6, -6, -5, -7, -5, 1, 5, 9, 11, 8, 8, 7, 4, -6, -17, + -28, -35, -42, -47, -48, -45, -39, -29, -16, -5, 7, 18, 32, 45, 57, 64, + 67, 62, 54, 45, 35, 22, 5, -13, -28, -40, -47, -49, -46, -42, -32, -21, + -11, -4, 6, 15, 21, 21, 16, 12, 6, 1, -3, -5, -3, 3, 8, 9, + 8, 7, 7, 11, 12, 11, 6, -2, -9, -13, -20, -29, -40, -47, -47, -45, + -42, -37, -29, -16, -5, 7, 17, 27, 38, 48, 56, 59, 53, 44, 40, 37, + 30, 17, -2, -16, -25, -32, -35, -36, -35, -31, -23, -16, -10, -3, 4, 10, + 11, 8, 1, 0, 0, 0, 0, 1, 6, 14, 20, 21, 19, 15, 14, 13, + 11, 7, 0, -13, -21, -28, -37, -46, -51, -48, -43, -37, -32, -28, -21, -9, + 4, 17, 27, 32, 40, 45, 50, 51, 46, 40, 38, 35, 27, 12, -3, -13, + -23, -27, -29, -30, -29, -28, -23, -15, -10, -5, 2, 5, 5, 1, -2, -2, + 1, 4, 4, 8, 14, 19, 25, 26, 21, 15, 13, 12, 12, 5, -9, -21, + -30, -37, -43, -50, -51, -47, -42, -38, -34, -27, -17, -5, 10, 22, 30, 38, + 44, 49, 50, 46, 40, 37, 38, 33, 19, 4, -8, -14, -18, -22, -24, -24, + -22, -18, -16, -14, -10, -6, 1, 1, -6, -8, -9, -6, 0, 2, 8, 14, + 21, 28, 31, 27, 24, 21, 20, 16, 9, -3, -16, -26, -33, -42, -50, -55, + -56, -50, -43, -39, -38, -29, -13, 6, 18, 27, 33, 42, 51, 54, 53, 48, + 41, 39, 38, 29, 12, -5, -15, -19, -20, -23, -24, -22, -18, -17, -13, -12, + -10, -4, -3, -4, -7, -8, -9, -9, -7, 2, 9, 14, 21, 26, 27, 27, + 22, 20, 19, 17, 12, 1, -14, -25, -35, -41, -45, -50, -53, -54, -51, -47, + -41, -31, -18, -3, 12, 24, 35, 47, 55, 58, 57, 55, 49, 46, 40, 26, + 11, -5, -17, -22, -23, -23, -22, -21, -21, -18, -15, -9, -5, -3, -4, -6, + -7, -9, -12, -12, -8, 1, 7, 13, 14, 19, 23, 27, 26, 25, 25, 20, + 13, 4, -9, -22, -36, -42, -48, -55, -61, -62, -59, -54, -43, -32, -18, 0, + 18, 35, 49, 57, 60, 62, 63, 61, 57, 48, 33, 15, -2, -15, -24, -28, + -27, -22, -23, -24, -21, -13, -4, 3, 3, 1, -2, -4, -4, -9, -15, -16, + -13, -9, -5, 2, 7, 11, 19, 24, 28, 31, 29, 28, 24, 12, -4, -21, + -33, -38, -48, -61, -72, -76, -71, -61, -47, -34, -20, 2, 26, 45, 58, 65, + 69, 74, 75, 68, 55, 41, 28, 13, -7, -22, -32, -32, -29, -24, -23, -22, + -19, -7, 6, 7, 2, -2, -3, 0, -3, -10, -20, -24, -19, -12, -5, 1, + 5, 14, 23, 30, 33, 37, 39, 36, 24, 8, -10, -25, -33, -43, -55, -71, + -82, -82, -71, -57, -44, -29, -11, 13, 34, 52, 64, 70, 73, 77, 76, 65, + 50, 35, 20, 4, -13, -26, -31, -32, -27, -26, -25, -21, -10, 2, 8, 5, + 3, 0, 1, 2, -3, -12, -22, -24, -21, -16, -9, -3, 6, 14, 22, 28, + 34, 41, 42, 35, 23, 6, -10, -21, -32, -45, -61, -76, -85, -82, -70, -54, + -43, -29, -7, 18, 40, 55, 64, 71, 77, 81, 76, 62, 48, 32, 19, 6, + -10, -23, -30, -29, -28, -30, -27, -20, -10, -2, 3, 1, 0, 3, 6, 4, + -9, -18, -24, -22, -18, -14, -8, 0, 8, 16, 24, 32, 38, 42, 42, 31, + 15, -2, -14, -25, -38, -52, -67, -81, -85, -76, -63, -49, -37, -19, 3, 26, + 43, 57, 67, 75, 82, 79, 70, 56, 41, 28, 15, 1, -12, -22, -27, -27, + -28, -26, -21, -12, -3, 3, -2, -2, 1, 3, 1, -12, -22, -28, -29, -27, + -23, -18, -11, 3, 16, 25, 34, 44, 51, 52, 43, 27, 12, -2, -17, -34, + -51, -71, -82, -86, -83, -75, -61, -45, -27, -7, 16, 37, 53, 63, 72, 78, + 77, 68, 60, 45, 33, 20, 10, -2, -9, -15, -18, -22, -23, -19, -15, -8, + -5, -7, -8, -7, -4, -3, -10, -22, -29, -29, -24, -21, -18, -14, -3, 12, + 23, 27, 35, 44, 49, 47, 34, 18, 1, -11, -23, -40, -57, -73, -81, -80, + -74, -64, -50, -36, -19, 2, 22, 38, 49, 61, 69, 74, 69, 60, 50, 40, + 29, 20, 10, 2, -5, -9, -12, -16, -18, -14, -9, -6, -10, -13, -12, -10, + -11, -15, -23, -30, -31, -27, -25, -23, -19, -8, 8, 20, 28, 36, 45, 49, + 49, 41, 29, 15, -2, -15, -31, -49, -65, -76, -79, -77, -67, -55, -43, -30, + -13, 7, 25, 40, 51, 60, 66, 66, 62, 54, 45, 37, 29, 22, 14, 7, + 3, -3, -7, -10, -12, -10, -8, -12, -18, -19, -16, -13, -15, -23, -31, -33, + -29, -26, -25, -23, -15, 1, 14, 23, 31, 40, 50, 52, 46, 36, 21, 7, + -8, -24, -41, -58, -70, -75, -74, -67, -57, -43, -30, -18, -3, 13, 26, 39, + 48, 56, 60, 58, 51, 45, 42, 36, 29, 25, 20, 14, 9, 6, 3, 0, + -5, -6, -12, -17, -22, -21, -20, -24, -33, -37, -38, -35, -30, -28, -24, -17, + -3, 12, 24, 33, 43, 50, 52, 49, 40, 28, 13, -3, -18, -34, -51, -63, + -71, -72, -67, -59, -49, -37, -24, -10, 3, 16, 27, 37, 46, 50, 53, 51, + 49, 46, 43, 37, 32, 29, 25, 21, 17, 10, 4, -3, -8, -10, -11, -18, + -25, -29, -31, -34, -37, -40, -40, -37, -31, -25, -20, -13, 0, 17, 31, 41, + 48, 50, 49, 46, 36, 22, 8, -5, -20, -36, -49, -61, -67, -67, -61, -51, + -44, -36, -23, -9, 4, 13, 20, 30, 38, 46, 48, 47, 44, 44, 44, 46, + 42, 35, 31, 28, 24, 15, 5, -3, -6, -10, -18, -28, -35, -39, -41, -41, + -43, -45, -42, -36, -29, -23, -15, 1, 15, 28, 40, 47, 51, 51, 46, 37, + 27, 14, 2, -14, -29, -42, -49, -54, -62, -63, -57, -49, -41, -31, -21, -12, + -3, 6, 17, 25, 32, 40, 45, 49, 50, 48, 49, 49, 48, 44, 39, 34, + 26, 13, 4, -4, -11, -17, -23, -32, -41, -48, -48, -49, -48, -44, -39, -36, + -31, -21, -5, 13, 24, 35, 44, 51, 52, 47, 39, 30, 21, 8, -6, -18, + -34, -44, -50, -54, -59, -58, -53, -46, -38, -28, -18, -10, -4, 6, 16, 24, + 30, 37, 42, 48, 49, 47, 48, 51, 51, 49, 45, 35, 27, 17, 9, 0, + -12, -23, -32, -41, -48, -53, -55, -54, -53, -49, -43, -38, -27, -13, 5, 20, + 33, 44, 52, 58, 57, 50, 40, 29, 16, 5, -11, -29, -43, -53, -56, -62, + -65, -63, -54, -42, -33, -24, -16, -8, 3, 16, 23, 29, 33, 38, 44, 46, + 45, 43, 45, 49, 52, 48, 42, 37, 28, 19, 10, 0, -13, -25, -36, -42, + -47, -56, -58, -56, -53, -49, -48, -40, -26, -6, 13, 27, 39, 49, 59, 64, + 62, 53, 42, 29, 16, 2, -18, -37, -52, -60, -65, -71, -75, -68, -55, -41, + -30, -19, -10, 0, 14, 24, 33, 37, 38, 39, 42, 45, 45, 43, 45, 48, + 47, 46, 41, 35, 28, 19, 8, -6, -20, -30, -38, -44, -50, -55, -57, -59, + -57, -53, -46, -35, -19, 0, 17, 32, 45, 59, 66, 66, 59, 54, 46, 32, + 15, -5, -24, -43, -57, -65, -71, -76, -78, -71, -58, -41, -27, -16, -5, 5, + 15, 27, 37, 43, 43, 42, 42, 42, 43, 46, 46, 46, 45, 42, 41, 35, + 28, 18, 7, -6, -18, -29, -37, -44, -51, -56, -59, -61, -60, -55, -45, -33, + -18, -2, 18, 37, 50, 61, 67, 68, 65, 59, 47, 31, 10, -11, -32, -47, + -58, -71, -81, -86, -83, -70, -52, -36, -21, -9, 2, 13, 25, 35, 41, 44, + 43, 40, 39, 39, 40, 43, 43, 40, 39, 40, 40, 36, 28, 18, 9, -5, + -18, -28, -36, -44, -52, -57, -61, -64, -63, -56, -43, -27, -13, 6, 26, 44, + 56, 66, 71, 71, 64, 55, 42, 23, 3, -19, -38, -52, -66, -76, -82, -86, + -81, -67, -49, -32, -19, -8, 3, 15, 28, 36, 42, 43, 43, 41, 41, 40, + 40, 41, 40, 40, 41, 41, 36, 30, 24, 17, 10, -5, -19, -29, -37, -43, + -50, -57, -64, -66, -60, -50, -40, -28, -10, 12, 32, 45, 54, 59, 64, 67, + 63, 54, 35, 14, -6, -22, -35, -50, -64, -75, -82, -81, -73, -59, -46, -33, + -21, -8, 5, 19, 27, 33, 40, 44, 44, 42, 40, 42, 41, 40, 38, 39, + 38, 38, 35, 30, 21, 13, 4, -8, -16, -25, -35, -45, -53, -62, -65, -63, + -56, -47, -39, -25, -6, 15, 32, 45, 53, 58, 64, 65, 60, 48, 30, 9, + -7, -19, -31, -47, -60, -72, -79, -79, -73, -61, -50, -37, -24, -10, 3, 12, + 22, 33, 43, 47, 46, 44, 43, 45, 46, 45, 45, 43, 41, 38, 34, 26, + 16, 7, -2, -10, -19, -29, -39, -50, -59, -64, -62, -58, -51, -44, -34, -22, + -2, 16, 30, 41, 52, 56, 57, 58, 54, 42, 29, 13, 2, -12, -27, -42, + -56, -67, -71, -73, -70, -63, -55, -42, -26, -10, 2, 11, 20, 33, 41, 46, + 45, 43, 49, 53, 52, 48, 44, 43, 42, 38, 33, 22, 12, 4, -5, -13, + -23, -34, -43, -50, -57, -61, -60, -55, -49, -40, -29, -14, -2, 12, 25, 35, + 44, 51, 56, 56, 49, 39, 30, 20, 10, -2, -17, -32, -48, -60, -67, -74, + -77, -74, -66, -50, -36, -21, -9, 0, 14, 30, 43, 51, 53, 57, 62, 64, + 62, 58, 53, 48, 42, 36, 25, 12, 4, -4, -12, -21, -31, -38, -43, -45, + -47, -49, -47, -44, -40, -34, -28, -22, -11, 1, 11, 21, 28, 39, 49, 53, + 52, 49, 44, 38, 29, 16, -4, -24, -41, -57, -74, -86, -90, -86, -73, -59, + -44, -30, -16, 1, 21, 40, 54, 61, 66, 67, 71, 72, 65, 57, 49, 41, + 33, 24, 12, 1, -8, -12, -15, -22, -31, -37, -35, -31, -33, -36, -39, -40, + -38, -34, -32, -29, -24, -14, -2, 11, 24, 36, 48, 56, 61, 63, 59, 54, + 44, 27, 6, -19, -46, -68, -84, -94, -99, -98, -90, -72, -51, -30, -15, 1, + 22, 46, 64, 76, 78, 80, 81, 78, 72, 60, 45, 34, 24, 13, 0, -13, + -18, -18, -18, -22, -28, -29, -24, -19, -19, -26, -33, -38, -40, -40, -41, -42, + -41, -32, -15, 6, 22, 37, 50, 62, 74, 79, 76, 65, 50, 30, 6, -24, + -54, -78, -94, -106, -110, -103, -89, -69, -49, -29, -10, 11, 36, 57, 73, 78, + 80, 82, 83, 77, 66, 51, 37, 24, 14, 5, -5, -12, -17, -17, -17, -18, + -19, -17, -13, -13, -19, -28, -37, -44, -44, -48, -53, -59, -54, -35, -12, 11, + 29, 46, 61, 78, 88, 90, 84, 68, 49, 24, -6, -39, -71, -92, -104, -115, + -116, -108, -89, -66, -43, -21, 1, 24, 49, 68, 78, 82, 81, 81, 79, 71, + 56, 37, 24, 15, 6, -4, -9, -11, -9, -6, -6, -10, -11, -6, -4, -8, + -20, -33, -44, -55, -61, -65, -70, -68, -55, -31, -6, 15, 38, 61, 82, 97, + 101, 94, 80, 61, 37, 9, -25, -60, -88, -107, -119, -123, -116, -99, -77, -53, + -30, -5, 20, 47, 68, 80, 82, 82, 80, 77, 70, 57, 40, 23, 10, 3, + -2, -3, -4, -3, 2, 5, 7, 5, 5, 4, -4, -17, -32, -45, -60, -69, + -74, -79, -80, -70, -47, -20, 9, 32, 55, 76, 94, 104, 103, 91, 71, 46, + 16, -16, -48, -75, -97, -115, -121, -117, -101, -80, -57, -32, -8, 15, 39, 58, + 68, 73, 73, 73, 69, 61, 50, 39, 26, 15, 7, 4, 7, 12, 18, 19, + 20, 18, 17, 15, 10, -4, -20, -41, -57, -68, -77, -85, -91, -90, -76, -53, + -25, 2, 28, 55, 79, 97, 106, 104, 94, 77, 52, 22, -9, -39, -67, -92, + -111, -119, -115, -99, -79, -55, -33, -11, 15, 37, 55, 67, 71, 68, 61, 51, + 44, 40, 35, 24, 10, 3, 4, 13, 25, 36, 42, 41, 34, 29, 20, 12, + -2, -21, -43, -66, -84, -94, -96, -96, -93, -81, -55, -26, 4, 30, 56, 80, + 98, 107, 106, 95, 77, 53, 24, -8, -38, -64, -85, -101, -109, -109, -100, -80, + -55, -31, -8, 13, 31, 46, 56, 61, 59, 52, 43, 36, 30, 25, 16, 8, + 7, 11, 23, 37, 48, 56, 59, 56, 48, 33, 17, -5, -29, -54, -79, -96, + -106, -109, -105, -96, -82, -57, -25, 8, 38, 61, 79, 94, 103, 102, 92, 73, + 46, 19, -10, -36, -62, -81, -95, -101, -100, -90, -71, -47, -25, -3, 18, 31, + 41, 49, 53, 50, 42, 32, 21, 13, 9, 7, 8, 8, 12, 30, 49, 63, + 71, 76, 75, 67, 48, 25, -3, -30, -59, -87, -107, -120, -124, -117, -105, -89, + -63, -31, 5, 40, 63, 81, 92, 100, 100, 88, 69, 46, 20, -6, -31, -55, + -73, -87, -91, -88, -80, -64, -45, -22, 1, 16, 27, 34, 39, 45, 41, 31, + 20, 9, 4, 3, 1, 3, 6, 15, 32, 53, 71, 81, 85, 86, 78, 61, + 35, 3, -29, -63, -93, -113, -124, -128, -124, -110, -89, -64, -32, 5, 38, 62, + 80, 91, 98, 93, 80, 63, 42, 19, -5, -29, -51, -68, -78, -81, -79, -72, + -58, -40, -19, 0, 13, 21, 29, 35, 35, 29, 21, 14, 8, 2, -2, -3, + 1, 10, 20, 36, 56, 73, 84, 89, 89, 81, 65, 41, 6, -32, -63, -90, + -110, -124, -127, -123, -110, -89, -61, -30, 2, 33, 56, 71, 81, 86, 85, 74, + 58, 38, 17, -5, -21, -38, -52, -62, -69, -69, -64, -50, -34, -18, -5, 5, + 13, 23, 28, 27, 22, 15, 10, 6, 1, 0, -2, 2, 9, 23, 41, 56, + 72, 84, 88, 89, 81, 66, 45, 15, -20, -55, -84, -106, -119, -121, -116, -105, + -89, -67, -38, -7, 21, 44, 58, 69, 75, 74, 64, 50, 36, 22, 8, -10, + -26, -39, -47, -54, -56, -53, -47, -36, -25, -11, -2, 5, 14, 23, 24, 20, + 12, 7, 6, 6, 6, 4, 5, 10, 22, 39, 57, 72, 80, 82, 80, 73, + 62, 45, 18, -13, -48, -78, -96, -105, -105, -104, -97, -81, -64, -40, -15, 10, + 28, 40, 49, 54, 53, 49, 42, 31, 22, 13, 2, -9, -17, -22, -30, -38, + -40, -37, -33, -28, -22, -16, -10, -5, 5, 11, 11, 6, 3, 5, 11, 16, + 16, 18, 22, 29, 40, 54, 68, 75, 74, 72, 63, 49, 35, 15, -10, -37, + -63, -83, -94, -95, -89, -82, -73, -63, -46, -24, -2, 16, 25, 31, 35, 39, + 41, 37, 30, 22, 15, 11, 4, -3, -11, -18, -25, -31, -35, -33, -28, -22, + -18, -16, -13, -4, 5, 10, 11, 10, 5, 6, 14, 21, 23, 24, 27, 33, + 45, 59, 68, 72, 67, 57, 46, 34, 19, 0, -24, -49, -70, -81, -82, -77, + -70, -65, -60, -49, -34, -15, 2, 9, 13, 14, 18, 20, 21, 19, 18, 17, + 16, 15, 13, 10, 5, -3, -12, -20, -26, -28, -27, -24, -26, -25, -18, -9, + 3, 9, 10, 10, 11, 18, 27, 32, 33, 33, 35, 42, 51, 58, 59, 55, + 46, 36, 25, 16, 3, -15, -33, -50, -61, -65, -64, -59, -57, -56, -52, -42, + -29, -14, -5, -2, -3, 1, 8, 12, 13, 13, 16, 16, 18, 19, 19, 14, + 4, -3, -10, -19, -24, -24, -22, -20, -24, -23, -16, -2, 10, 16, 14, 13, + 16, 28, 35, 36, 35, 32, 33, 40, 45, 49, 47, 41, 31, 20, 12, 4, + -8, -16, -29, -41, -50, -53, -50, -49, -51, -51, -48, -40, -30, -20, -13, -13, + -12, -6, 2, 8, 12, 13, 16, 21, 26, 27, 23, 15, 8, 0, -10, -19, + -23, -24, -24, -26, -25, -21, -9, 5, 15, 19, 20, 22, 28, 36, 39, 38, + 36, 33, 33, 35, 37, 38, 36, 30, 20, 9, 4, -3, -10, -17, -26, -35, + -40, -45, -47, -51, -52, -49, -46, -39, -30, -23, -19, -17, -12, -5, 1, 4, + 7, 11, 18, 22, 22, 22, 20, 17, 12, 3, -8, -16, -18, -16, -17, -19, + -18, -12, 3, 13, 19, 20, 24, 29, 34, 35, 33, 32, 31, 31, 30, 26, + 24, 24, 25, 21, 14, 6, 0, -4, -5, -10, -19, -31, -37, -40, -47, -51, + -50, -49, -45, -39, -31, -25, -19, -12, -6, -3, 0, 2, 6, 13, 17, 18, + 16, 15, 16, 14, 7, -3, -10, -12, -13, -13, -14, -13, -6, 6, 18, 24, + 25, 26, 29, 33, 32, 26, 24, 23, 23, 22, 18, 14, 15, 21, 24, 22, + 14, 6, 4, 4, 1, -9, -21, -32, -41, -47, -50, -54, -54, -51, -47, -37, + -30, -21, -10, -3, 1, 4, 6, 7, 8, 7, 7, 7, 7, 6, 6, 5, + 2, -3, -8, -8, -6, -3, 1, 3, 9, 17, 25, 29, 32, 33, 29, 26, + 24, 23, 20, 17, 14, 11, 8, 8, 14, 21, 22, 17, 13, 9, 9, 7, + 1, -11, -25, -37, -44, -52, -53, -55, -55, -51, -43, -35, -24, -14, -4, 3, + 4, 4, 6, 7, 6, 3, -2, -2, 2, 6, 5, 1, -4, -8, -7, -5, + 3, 9, 9, 12, 17, 25, 32, 37, 37, 32, 25, 21, 19, 17, 15, 9, + 6, 6, 6, 8, 14, 23, 24, 20, 15, 14, 11, 3, -6, -18, -31, -44, + -53, -54, -57, -58, -55, -47, -37, -26, -16, -4, 7, 10, 10, 9, 7, 3, + -2, -6, -8, -6, -5, -4, -7, -10, -8, -6, 0, 6, 12, 16, 20, 27, + 33, 35, 35, 36, 34, 28, 21, 16, 10, 7, 7, 5, 3, 1, 5, 12, + 21, 25, 23, 17, 14, 13, 9, -3, -17, -30, -41, -50, -54, -59, -61, -55, + -46, -37, -26, -15, -4, 7, 14, 15, 12, 6, 1, -3, -7, -12, -14, -15, + -13, -12, -12, -12, -8, 0, 8, 15, 20, 25, 31, 36, 40, 41, 41, 38, + 33, 27, 21, 12, 4, 1, 0, -4, -5, -2, 5, 12, 17, 19, 19, 18, + 14, 11, 2, -9, -21, -32, -42, -49, -55, -57, -56, -49, -39, -30, -20, -8, + 3, 12, 17, 18, 12, 5, -2, -8, -14, -18, -21, -22, -21, -21, -19, -13, + -7, 4, 14, 24, 32, 39, 44, 48, 47, 44, 41, 38, 33, 27, 17, 7, + -3, -5, -5, -5, -5, -5, 3, 12, 17, 19, 16, 11, 7, 3, -6, -15, + -26, -36, -42, -48, -53, -54, -50, -40, -31, -22, -12, -2, 11, 19, 20, 13, + 6, 2, -5, -12, -21, -26, -29, -31, -30, -27, -21, -13, -2, 12, 25, 36, + 48, 57, 62, 60, 51, 46, 43, 37, 28, 15, 3, -8, -12, -14, -12, -10, + -7, -4, 8, 16, 20, 17, 14, 10, 6, -2, -12, -24, -32, -39, -45, -51, + -54, -52, -43, -32, -21, -12, -2, 11, 22, 28, 24, 13, 4, -6, -14, -23, + -32, -38, -41, -42, -39, -31, -20, -8, 6, 21, 37, 50, 63, 69, 68, 61, + 55, 48, 39, 29, 20, 9, -6, -15, -17, -13, -11, -7, -4, 3, 11, 13, + 16, 15, 10, 5, 0, -8, -15, -25, -31, -37, -42, -49, -52, -46, -37, -30, + -21, -12, 0, 14, 25, 28, 25, 15, 2, -11, -22, -29, -36, -44, -49, -49, + -43, -32, -18, -5, 13, 30, 50, 66, 74, 75, 71, 68, 61, 50, 37, 26, + 15, 3, -13, -22, -22, -20, -16, -14, -9, 1, 9, 11, 11, 9, 9, 9, + 6, -3, -15, -25, -32, -37, -41, -50, -53, -50, -41, -30, -20, -8, 6, 21, + 31, 33, 26, 15, 0, -12, -23, -34, -46, -56, -60, -54, -44, -31, -19, -2, + 21, 44, 66, 77, 81, 79, 75, 72, 63, 51, 35, 23, 10, -4, -16, -25, + -28, -26, -22, -16, -12, -7, -2, 4, 8, 10, 14, 14, 7, -3, -12, -20, + -28, -36, -42, -48, -53, -53, -43, -31, -19, -6, 12, 25, 31, 30, 26, 15, + -2, -17, -28, -40, -52, -60, -61, -53, -40, -25, -9, 11, 32, 56, 74, 84, + 85, 81, 76, 72, 61, 46, 29, 13, -2, -16, -23, -29, -33, -31, -25, -19, + -14, -8, 2, 10, 14, 18, 19, 17, 8, 1, -12, -24, -35, -42, -49, -54, + -57, -53, -43, -30, -13, 7, 22, 32, 34, 32, 26, 11, -8, -24, -40, -50, + -60, -66, -63, -53, -36, -17, 2, 23, 45, 67, 84, 90, 91, 85, 78, 72, + 62, 44, 24, 4, -9, -21, -32, -39, -41, -36, -30, -23, -17, -9, 2, 13, + 23, 27, 26, 19, 12, 2, -12, -26, -38, -47, -54, -59, -59, -53, -41, -23, + -5, 14, 28, 36, 36, 31, 21, 6, -13, -31, -46, -58, -66, -70, -65, -50, + -28, -7, 14, 35, 58, 76, 89, 96, 94, 90, 82, 72, 54, 35, 16, -5, + -21, -31, -40, -48, -47, -38, -28, -20, -13, 1, 15, 28, 33, 33, 27, 18, + 8, -6, -21, -37, -52, -64, -66, -65, -58, -47, -30, -9, 13, 28, 38, 43, + 40, 31, 15, -5, -24, -40, -57, -69, -75, -74, -65, -48, -26, -2, 24, 47, + 66, 83, 97, 102, 102, 101, 91, 73, 51, 28, 7, -15, -33, -45, -56, -60, + -54, -42, -28, -17, -4, 13, 26, 36, 38, 36, 29, 16, 2, -14, -34, -52, + -62, -66, -65, -63, -53, -36, -15, 9, 27, 36, 41, 40, 35, 25, 8, -16, + -37, -55, -68, -77, -81, -75, -60, -37, -12, 12, 35, 57, 75, 94, 105, 107, + 103, 97, 84, 64, 41, 18, -6, -25, -40, -51, -57, -56, -46, -32, -19, -6, + 7, 20, 30, 34, 32, 24, 12, 0, -17, -33, -47, -60, -65, -64, -58, -46, + -31, -12, 8, 26, 37, 43, 44, 41, 28, 11, -12, -31, -49, -67, -81, -87, + -85, -72, -52, -30, -6, 21, 45, 69, 87, 101, 110, 113, 110, 100, 77, 51, + 27, 8, -11, -32, -49, -59, -59, -53, -41, -27, -11, 3, 14, 24, 28, 28, + 24, 17, 5, -15, -32, -45, -54, -61, -58, -54, -44, -32, -13, 8, 26, 37, + 41, 40, 36, 29, 16, -3, -24, -47, -66, -81, -89, -88, -76, -58, -37, -16, + 10, 34, 58, 78, 94, 106, 111, 107, 97, 81, 58, 37, 17, 0, -17, -33, + -45, -51, -48, -38, -26, -14, -3, 9, 16, 19, 17, 14, 10, 0, -15, -30, + -42, -49, -52, -49, -44, -37, -25, -8, 9, 21, 29, 32, 35, 33, 29, 19, + 1, -18, -38, -58, -75, -85, -85, -79, -70, -52, -29, -6, 20, 44, 67, 89, + 101, 110, 114, 107, 93, 72, 49, 28, 10, -9, -25, -38, -48, -49, -42, -31, + -20, -11, 0, 9, 13, 12, 7, 5, 0, -11, -24, -36, -42, -44, -43, -38, + -28, -16, -4, 8, 16, 22, 29, 30, 29, 24, 13, 2, -14, -32, -51, -68, + -79, -83, -77, -69, -56, -41, -19, 6, 31, 53, 74, 90, 101, 108, 109, 101, + 83, 60, 38, 24, 9, -10, -25, -36, -40, -37, -29, -21, -13, -8, 0, 3, + 0, -5, -6, -8, -16, -27, -35, -39, -40, -33, -27, -21, -11, 3, 14, 21, + 24, 27, 26, 22, 19, 13, 3, -14, -32, -53, -66, -74, -80, -80, -75, -63, + -47, -28, -4, 19, 41, 66, 85, 99, 105, 106, 104, 95, 76, 51, 29, 13, + 2, -12, -27, -36, -38, -32, -22, -15, -12, -8, -3, -4, -9, -12, -14, -18, + -26, -31, -35, -36, -29, -20, -10, -2, 7, 16, 25, 25, 24, 19, 15, 10, + 4, -4, -16, -30, -44, -57, -67, -73, -75, -70, -60, -48, -34, -16, 5, 27, + 51, 71, 85, 92, 99, 101, 95, 82, 64, 44, 28, 14, 1, -12, -22, -28, + -27, -22, -18, -17, -15, -15, -15, -21, -23, -25, -24, -27, -31, -34, -30, -21, + -6, 7, 13, 17, 22, 27, 28, 24, 16, 7, -3, -10, -17, -27, -35, -43, + -50, -58, -68, -70, -65, -53, -42, -32, -22, -4, 15, 36, 54, 70, 83, 89, + 92, 91, 82, 68, 54, 42, 29, 14, 2, -9, -17, -21, -22, -20, -21, -20, + -23, -26, -30, -32, -32, -29, -27, -28, -30, -26, -15, 0, 15, 25, 25, 25, + 26, 27, 21, 11, 0, -9, -17, -24, -30, -38, -45, -47, -49, -55, -59, -56, + -48, -39, -28, -20, -9, 7, 26, 44, 55, 65, 72, 79, 80, 77, 66, 57, + 49, 41, 30, 19, 7, -2, -7, -12, -17, -22, -25, -29, -33, -36, -39, -41, + -36, -29, -26, -26, -22, -11, 2, 17, 28, 32, 31, 29, 28, 23, 11, -2, + -9, -17, -24, -36, -44, -48, -49, -50, -53, -54, -54, -47, -36, -25, -17, -7, + 7, 21, 36, 47, 55, 63, 70, 72, 69, 60, 52, 46, 42, 34, 23, 15, + 8, 3, 0, -7, -14, -21, -24, -27, -32, -39, -44, -43, -37, -29, -25, -23, + -16, -2, 14, 26, 32, 33, 32, 30, 25, 16, 4, -6, -16, -25, -36, -45, + -50, -54, -51, -51, -54, -54, -48, -36, -23, -15, -6, 5, 17, 31, 42, 51, + 59, 62, 63, 61, 56, 51, 43, 40, 38, 28, 20, 13, 9, 7, 2, -8, + -16, -23, -27, -31, -36, -40, -43, -39, -31, -23, -20, -15, -4, 11, 24, 31, + 32, 31, 30, 25, 17, 7, -3, -13, -23, -36, -48, -56, -58, -57, -53, -50, + -52, -51, -40, -25, -12, 0, 7, 16, 25, 36, 49, 58, 60, 59, 57, 54, + 49, 43, 36, 31, 26, 18, 13, 10, 6, 4, 0, -6, -12, -19, -22, -26, + -31, -35, -35, -32, -27, -22, -16, -7, 4, 13, 21, 26, 30, 29, 27, 22, + 15, 4, -7, -19, -31, -44, -55, -59, -59, -58, -54, -52, -49, -41, -28, -14, + 0, 10, 18, 26, 33, 44, 50, 53, 51, 50, 48, 46, 41, 37, 30, 24, + 21, 18, 15, 13, 8, 4, 0, -6, -9, -14, -19, -23, -27, -33, -33, -31, + -25, -19, -11, -3, 3, 11, 20, 28, 31, 28, 22, 14, 8, -3, -15, -29, + -40, -49, -57, -62, -60, -56, -50, -47, -42, -32, -18, -3, 11, 20, 25, 29, + 35, 43, 49, 51, 47, 43, 41, 37, 33, 29, 24, 18, 15, 14, 13, 11, + 8, 5, 1, 0, -5, -11, -19, -23, -24, -25, -25, -26, -22, -15, -9, -3, + 4, 12, 19, 25, 26, 24, 17, 11, 2, -11, -26, -37, -45, -53, -58, -59, + -57, -53, -47, -42, -35, -25, -10, 5, 15, 19, 22, 29, 37, 45, 48, 47, + 44, 44, 43, 40, 33, 24, 19, 14, 13, 12, 8, 2, -2, 1, 1, 1, + -4, -12, -15, -14, -13, -14, -18, -18, -15, -12, -8, -5, 2, 10, 18, 21, + 20, 15, 10, 3, -7, -18, -31, -42, -47, -50, -53, -57, -57, -51, -42, -34, + -25, -15, -5, 7, 16, 22, 30, 35, 40, 43, 42, 39, 39, 38, 38, 31, + 22, 16, 14, 15, 17, 16, 12, 6, 4, 5, 7, 6, 0, -8, -12, -13, + -15, -19, -21, -20, -17, -14, -11, -6, 2, 10, 18, 21, 21, 19, 11, -2, + -17, -29, -37, -42, -46, -52, -55, -58, -52, -42, -34, -24, -15, -5, 5, 12, + 17, 24, 32, 37, 37, 36, 33, 33, 35, 35, 32, 26, 22, 16, 17, 19, + 19, 14, 7, 5, 5, 6, 5, 0, -7, -10, -9, -6, -7, -13, -17, -15, + -11, -8, -7, -6, 1, 7, 12, 13, 11, 7, 0, -12, -25, -35, -40, -42, + -43, -44, -47, -49, -43, -34, -22, -12, -7, 0, 4, 9, 17, 25, 31, 33, + 33, 31, 30, 27, 28, 30, 29, 25, 20, 17, 20, 24, 22, 17, 11, 10, + 9, 9, 5, -6, -11, -13, -9, -5, -9, -16, -19, -16, -9, -6, -6, -2, + 4, 8, 11, 11, 6, -4, -11, -21, -34, -39, -41, -40, -38, -40, -44, -38, + -28, -17, -10, -6, -5, -3, 3, 10, 15, 17, 20, 23, 26, 25, 24, 26, + 28, 30, 30, 28, 25, 24, 23, 25, 22, 18, 14, 9, 5, 0, -7, -12, + -13, -12, -7, -6, -9, -12, -10, -4, 2, 2, 3, 3, 3, 6, 7, 3, + -9, -21, -28, -35, -40, -40, -37, -37, -36, -36, -29, -22, -11, -3, 2, 3, + 0, 1, 3, 6, 9, 10, 10, 10, 13, 16, 21, 24, 29, 31, 33, 33, + 33, 32, 30, 27, 23, 16, 12, 7, -2, -7, -14, -19, -16, -10, -5, -7, + -9, -9, -6, 2, 6, 8, 7, 4, 3, 1, -3, -9, -16, -25, -34, -39, + -41, -37, -33, -31, -31, -29, -22, -12, -4, 2, 7, 5, 1, -2, 0, 4, + 4, 2, 2, 5, 10, 14, 19, 24, 28, 32, 36, 38, 36, 34, 31, 27, + 23, 18, 11, 3, -5, -12, -15, -15, -11, -6, -5, -6, -8, -7, -3, 1, + 4, 6, 3, -2, -7, -9, -12, -19, -24, -30, -34, -36, -35, -32, -29, -26, + -22, -16, -10, -3, 4, 8, 9, 4, 0, -3, 0, 1, -5, -7, -5, 1, + 7, 13, 14, 17, 27, 35, 38, 37, 35, 33, 31, 29, 25, 19, 11, 3, + 0, -6, -10, -10, -7, -5, -5, -7, -7, -6, -3, 1, 4, 3, 0, -8, + -15, -18, -20, -23, -27, -30, -32, -33, -29, -28, -25, -20, -16, -13, -6, 1, + 6, 7, 4, 0, -5, -5, -5, -6, -7, -6, -2, 5, 10, 15, 20, 25, + 32, 34, 34, 34, 32, 29, 24, 22, 19, 14, 9, 6, 4, 2, 0, 0, + 2, 2, -2, -4, -6, -5, -5, -4, -4, -7, -12, -19, -25, -26, -26, -26, + -26, -29, -28, -28, -25, -22, -18, -14, -10, -5, 0, 3, 4, 5, 4, 3, + -2, -7, -10, -12, -9, -6, 0, 6, 11, 14, 16, 22, 30, 33, 34, 29, + 25, 23, 21, 22, 22, 20, 18, 16, 14, 13, 11, 11, 11, 6, -4, -12, + -16, -17, -16, -13, -16, -22, -26, -30, -30, -25, -21, -18, -17, -19, -18, -20, + -19, -15, -13, -9, -7, -6, -5, -2, 3, 5, 4, 0, -5, -8, -6, -6, + -6, -2, 4, 9, 11, 13, 15, 19, 23, 25, 22, 19, 16, 17, 20, 21, + 22, 23, 24, 25, 24, 23, 22, 21, 16, 7, -4, -14, -21, -23, -24, -24, + -28, -34, -38, -36, -31, -21, -13, -9, -8, -10, -11, -12, -14, -13, -12, -9, + -10, -12, -11, -9, -4, 3, 4, 1, -3, -4, 1, 4, 7, 10, 10, 11, + 12, 11, 8, 9, 11, 13, 11, 5, 4, 11, 20, 26, 29, 32, 35, 39, + 39, 34, 30, 23, 15, 5, -10, -23, -31, -34, -32, -33, -37, -42, -41, -32, + -21, -11, -6, -3, -3, -6, -8, -11, -14, -15, -14, -14, -14, -19, -20, -15, + -7, 0, -2, -3, 0, 4, 10, 17, 19, 18, 18, 20, 18, 11, 5, 1, + -2, -4, -7, -8, -4, 4, 14, 24, 32, 38, 46, 51, 52, 46, 37, 28, + 19, 5, -12, -29, -39, -44, -46, -46, -50, -48, -39, -29, -14, -4, 6, 9, + 8, 6, 0, -8, -13, -15, -18, -22, -28, -30, -26, -18, -9, -7, -4, 2, + 10, 18, 24, 26, 26, 23, 22, 21, 14, 3, -5, -9, -14, -16, -16, -11, + -4, 6, 14, 24, 37, 50, 58, 58, 53, 45, 36, 28, 17, 1, -18, -36, + -47, -53, -54, -53, -51, -43, -33, -20, -8, 5, 15, 17, 13, 5, -4, -12, + -14, -18, -23, -30, -34, -32, -24, -15, -10, -6, -3, 7, 18, 27, 32, 33, + 30, 28, 24, 19, 12, 2, -10, -18, -24, -26, -23, -16, -6, 4, 12, 25, + 39, 53, 60, 60, 58, 51, 42, 30, 16, 0, -20, -37, -49, -57, -61, -57, + -50, -40, -29, -17, -4, 9, 17, 17, 11, 5, -3, -8, -13, -21, -30, -35, + -34, -29, -22, -16, -11, -6, 1, 12, 24, 34, 39, 39, 35, 28, 21, 16, + 8, -3, -16, -29, -35, -34, -26, -16, -9, 1, 14, 30, 46, 56, 60, 62, + 59, 57, 46, 32, 15, -2, -17, -35, -51, -61, -61, -55, -46, -39, -30, -19, + -4, 10, 14, 13, 7, 3, -2, -6, -15, -24, -31, -33, -31, -26, -23, -19, + -11, -2, 6, 17, 30, 38, 41, 39, 34, 25, 18, 14, 6, -9, -24, -34, + -38, -34, -28, -18, -9, 0, 14, 32, 44, 52, 58, 63, 66, 59, 45, 31, + 18, 4, -17, -36, -53, -60, -59, -54, -46, -39, -30, -18, -3, 6, 8, 6, + 3, 1, -3, -11, -22, -29, -28, -23, -20, -20, -18, -10, -2, 7, 17, 27, + 34, 37, 38, 33, 26, 19, 15, 11, 0, -17, -31, -39, -40, -34, -27, -20, + -11, 1, 16, 31, 43, 52, 59, 67, 70, 62, 47, 32, 19, 4, -18, -39, + -53, -60, -57, -51, -44, -37, -30, -17, -6, 1, 2, 1, 0, -2, -7, -15, + -23, -27, -25, -19, -16, -15, -12, -4, 5, 15, 25, 33, 37, 34, 31, 27, + 22, 17, 11, 2, -11, -25, -35, -41, -41, -34, -23, -13, -4, 6, 18, 31, + 43, 54, 61, 65, 62, 53, 44, 34, 22, 2, -20, -38, -47, -50, -47, -43, + -42, -41, -32, -19, -13, -11, -10, -7, -5, -5, -9, -14, -18, -17, -12, -9, + -8, -6, 1, 6, 12, 16, 21, 25, 25, 23, 19, 18, 14, 11, 8, 0, + -10, -23, -34, -36, -32, -24, -16, -12, -6, 4, 15, 30, 42, 52, 59, 60, + 58, 53, 46, 39, 27, 5, -19, -35, -43, -44, -43, -45, -49, -48, -39, -31, + -27, -24, -19, -11, -6, -3, -4, -6, -8, -5, 3, 5, 7, 6, 7, 9, + 12, 13, 15, 14, 12, 11, 11, 9, 8, 5, 4, 0, -12, -22, -28, -26, + -21, -17, -13, -10, -5, 4, 14, 22, 32, 44, 56, 61, 59, 56, 48, 38, + 25, 7, -10, -24, -33, -38, -44, -50, -51, -47, -41, -41, -41, -37, -26, -14, + -6, 0, -2, -3, 5, 13, 19, 21, 16, 12, 9, 9, 10, 7, 3, 2, + 2, 1, -2, 0, 3, 4, 1, -4, -12, -16, -16, -9, -9, -10, -9, -5, + 2, 7, 11, 17, 27, 39, 51, 54, 52, 52, 49, 42, 28, 10, -4, -15, + -25, -36, -48, -56, -58, -56, -52, -53, -54, -45, -28, -11, -2, 3, 8, 15, + 24, 30, 34, 30, 22, 16, 12, 6, -4, -9, -9, -8, -12, -14, -12, -5, + 3, 4, 2, -3, -4, 0, 3, 2, -4, -6, -6, -5, -4, -5, -3, 8, + 21, 36, 44, 50, 55, 58, 55, 45, 33, 20, 5, -11, -27, -43, -55, -60, + -61, -62, -64, -66, -58, -40, -20, -6, 3, 8, 16, 26, 34, 39, 38, 30, + 21, 11, 2, -9, -14, -13, -13, -15, -16, -14, -6, 1, 4, 4, 3, 4, + 7, 10, 10, 5, -3, -7, -8, -9, -12, -14, -11, 0, 13, 28, 40, 51, + 58, 61, 60, 56, 47, 33, 15, -8, -28, -44, -55, -62, -72, -81, -83, -74, + -58, -39, -21, -6, 8, 18, 30, 40, 47, 49, 44, 33, 19, 6, -6, -14, + -19, -23, -26, -24, -19, -13, -5, -2, 2, 5, 8, 11, 14, 13, 9, 2, + -4, -8, -12, -15, -19, -18, -13, -3, 14, 30, 44, 53, 62, 66, 66, 59, + 48, 33, 12, -10, -31, -46, -58, -71, -79, -84, -81, -71, -54, -34, -14, 1, + 14, 26, 37, 44, 48, 49, 41, 29, 12, -3, -13, -17, -19, -24, -26, -22, + -16, -8, -3, -2, 3, 6, 10, 13, 12, 10, 6, 2, -4, -11, -18, -22, + -22, -19, -14, -3, 13, 30, 46, 61, 68, 71, 70, 64, 52, 32, 10, -12, + -31, -51, -67, -81, -88, -91, -84, -69, -51, -32, -12, 8, 25, 37, 43, 47, + 52, 50, 40, 23, 5, -8, -13, -18, -23, -28, -26, -19, -12, -6, -4, -2, + 2, 6, 11, 11, 5, 3, 4, 1, -9, -17, -21, -23, -22, -19, -14, 0, + 17, 37, 54, 65, 70, 75, 76, 67, 50, 30, 6, -15, -35, -56, -75, -88, + -93, -88, -78, -64, -47, -26, -3, 17, 31, 37, 42, 46, 48, 42, 27, 10, + 0, -3, -7, -14, -21, -21, -13, -4, 1, -2, -3, 1, 5, 7, 4, -3, + -8, -7, -7, -14, -19, -22, -23, -21, -20, -16, -6, 12, 32, 51, 63, 70, + 76, 78, 75, 63, 44, 20, -5, -26, -46, -67, -83, -94, -93, -83, -69, -55, + -40, -17, 8, 25, 34, 38, 43, 48, 45, 35, 20, 8, 2, 3, -2, -12, + -18, -15, -8, 0, 0, -5, -6, -4, -3, -5, -11, -15, -14, -12, -13, -16, + -19, -20, -20, -16, -10, -2, 11, 24, 42, 57, 64, 70, 73, 72, 64, 48, + 26, 4, -15, -35, -50, -68, -81, -88, -81, -68, -55, -44, -29, -10, 9, 22, + 25, 30, 37, 38, 35, 24, 14, 11, 13, 14, 9, 0, -5, -3, 3, 4, + -2, -10, -15, -15, -15, -19, -25, -24, -20, -18, -19, -20, -18, -16, -13, -9, + 1, 12, 25, 37, 53, 63, 69, 74, 73, 69, 56, 37, 15, -6, -25, -42, + -59, -75, -82, -81, -72, -61, -50, -35, -17, -2, 13, 20, 27, 31, 34, 34, + 28, 19, 14, 13, 15, 14, 8, 4, 3, 5, 5, 1, -6, -15, -18, -22, + -27, -33, -34, -31, -25, -24, -20, -19, -17, -10, -2, 9, 18, 28, 39, 51, + 60, 67, 71, 72, 67, 53, 35, 16, -4, -21, -40, -57, -70, -76, -74, -65, + -55, -44, -34, -21, -7, 6, 15, 18, 20, 24, 24, 21, 16, 15, 16, 17, + 17, 16, 13, 12, 13, 13, 9, 0, -12, -17, -22, -31, -40, -43, -40, -35, + -30, -26, -24, -20, -11, -2, 9, 19, 29, 39, 46, 54, 60, 66, 67, 66, + 58, 41, 21, 5, -11, -29, -47, -62, -68, -68, -65, -57, -49, -39, -27, -13, + -2, 6, 11, 18, 23, 24, 21, 19, 19, 21, 21, 18, 15, 11, 13, 15, + 15, 10, -2, -8, -14, -21, -30, -39, -44, -44, -40, -33, -29, -27, -21, -12, + -3, 6, 16, 28, 40, 48, 54, 56, 59, 61, 62, 57, 44, 28, 12, -3, + -22, -40, -55, -64, -63, -61, -56, -51, -41, -29, -15, -6, 1, 8, 15, 20, + 20, 18, 17, 18, 23, 23, 20, 17, 15, 18, 20, 20, 15, 4, -5, -11, + -20, -32, -43, -49, -48, -43, -36, -32, -29, -21, -13, 0, 11, 20, 30, 38, + 46, 50, 51, 53, 56, 53, 48, 41, 30, 19, 5, -10, -26, -42, -50, -56, + -57, -56, -53, -46, -38, -27, -18, -10, -2, 8, 16, 19, 24, 24, 22, 23, + 25, 23, 17, 16, 15, 16, 14, 10, 3, -5, -11, -20, -28, -35, -42, -44, + -42, -35, -29, -25, -19, -11, 0, 10, 20, 26, 31, 38, 45, 48, 46, 46, + 44, 41, 37, 30, 22, 13, 1, -15, -27, -36, -44, -49, -51, -52, -49, -44, + -37, -27, -20, -12, 1, 10, 19, 23, 28, 29, 28, 28, 24, 19, 17, 16, + 15, 14, 10, 4, -3, -10, -15, -23, -31, -36, -41, -41, -39, -32, -24, -19, + -11, -3, 5, 15, 24, 31, 36, 42, 45, 44, 41, 37, 33, 31, 29, 23, + 14, 2, -8, -16, -22, -31, -40, -44, -46, -46, -46, -44, -37, -28, -20, -10, + 2, 11, 20, 28, 32, 32, 29, 26, 22, 19, 17, 14, 12, 11, 8, 2, + -5, -14, -20, -24, -30, -34, -37, -38, -36, -30, -21, -14, -6, 2, 11, 19, + 26, 30, 34, 41, 44, 42, 38, 32, 27, 25, 24, 21, 11, 1, -9, -16, + -25, -34, -40, -43, -45, -48, -50, -49, -40, -27, -15, -6, 4, 15, 27, 36, + 40, 37, 32, 27, 22, 15, 11, 10, 8, 6, 0, -8, -14, -16, -17, -18, + -24, -31, -33, -33, -27, -22, -17, -10, -4, 6, 13, 17, 22, 27, 33, 38, + 39, 37, 35, 33, 31, 27, 23, 19, 11, 3, -7, -20, -30, -38, -42, -42, + -46, -53, -58, -53, -41, -27, -13, -2, 10, 19, 30, 39, 43, 38, 29, 23, + 18, 12, 8, 6, 6, 4, -3, -8, -12, -13, -10, -12, -17, -24, -25, -23, + -23, -23, -19, -12, -4, 2, 5, 9, 14, 22, 32, 37, 39, 39, 37, 37, + 33, 28, 27, 21, 12, 0, -14, -25, -33, -38, -43, -48, -54, -60, -59, -48, + -36, -20, -8, 2, 12, 26, 39, 44, 40, 32, 27, 23, 16, 8, 3, 3, + 2, 1, -4, -9, -9, -6, -6, -8, -13, -16, -18, -21, -22, -21, -16, -7, + -2, 0, -2, 2, 13, 25, 30, 34, 34, 34, 34, 33, 33, 31, 26, 21, + 11, -3, -15, -25, -31, -37, -48, -57, -62, -63, -56, -46, -35, -25, -12, 5, + 18, 32, 40, 40, 36, 32, 29, 22, 15, 7, 3, 0, 0, 0, 1, -2, + -2, 0, 0, -3, -4, -7, -13, -22, -28, -25, -17, -10, -10, -11, -10, -4, + 12, 26, 36, 39, 40, 41, 40, 37, 35, 33, 28, 19, 3, -11, -22, -30, + -37, -46, -56, -63, -65, -59, -52, -43, -29, -17, -4, 10, 23, 32, 36, 36, + 34, 29, 24, 19, 12, 5, -2, 0, 4, 7, 10, 9, 6, 5, 5, 5, + 0, -10, -20, -26, -29, -26, -20, -18, -19, -17, -9, 3, 16, 28, 36, 40, + 42, 43, 41, 40, 36, 33, 26, 16, 3, -10, -21, -31, -42, -53, -61, -65, + -63, -58, -52, -41, -31, -18, -4, 9, 21, 26, 29, 30, 31, 31, 28, 21, + 12, 6, 5, 10, 13, 13, 14, 9, 8, 7, 5, 0, -8, -17, -24, -28, + -27, -23, -17, -14, -12, -8, 2, 15, 26, 32, 36, 39, 38, 37, 36, 33, + 28, 21, 16, 10, 1, -13, -25, -34, -41, -50, -59, -62, -62, -53, -44, -37, + -28, -19, -6, 7, 14, 18, 22, 26, 28, 28, 21, 13, 6, 6, 15, 19, + 21, 20, 20, 18, 16, 13, 7, -3, -12, -21, -27, -31, -30, -24, -15, -11, + -8, 0, 10, 23, 29, 32, 34, 34, 34, 33, 32, 27, 23, 20, 17, 10, + -2, -15, -25, -34, -43, -52, -61, -63, -58, -49, -43, -41, -33, -22, -9, 3, + 11, 17, 21, 26, 30, 28, 23, 17, 15, 18, 22, 22, 20, 21, 21, 18, + 12, 4, -5, -11, -16, -22, -28, -32, -24, -14, -7, -5, 1, 11, 20, 27, + 30, 26, 25, 29, 30, 29, 22, 17, 18, 22, 20, 9, -8, -18, -25, -31, + -40, -53, -60, -58, -54, -46, -45, -42, -32, -20, -10, -2, 5, 12, 19, 25, + 27, 22, 18, 18, 21, 24, 25, 22, 24, 26, 27, 22, 10, 0, -7, -9, + -12, -21, -28, -28, -20, -9, -4, -2, 5, 14, 22, 24, 21, 15, 18, 24, + 28, 24, 19, 21, 26, 30, 22, 7, -6, -15, -23, -34, -50, -61, -66, -61, + -52, -50, -49, -45, -36, -22, -10, 1, 11, 15, 20, 26, 26, 24, 21, 21, + 27, 28, 24, 21, 22, 26, 24, 16, 5, -5, -7, -5, -11, -17, -22, -17, + -7, 0, 1, 4, 9, 16, 19, 18, 13, 12, 16, 22, 24, 23, 23, 28, + 33, 27, 16, 2, -12, -23, -33, -45, -57, -64, -64, -55, -51, -52, -49, -39, + -25, -13, -6, 1, 6, 12, 16, 18, 20, 18, 20, 25, 28, 28, 29, 31, + 36, 37, 28, 15, 7, 3, 0, -4, -14, -21, -23, -16, -7, -4, -3, 1, + 10, 16, 17, 10, 7, 9, 18, 24, 24, 24, 28, 34, 34, 26, 12, -3, + -15, -26, -40, -53, -61, -65, -62, -59, -57, -55, -49, -39, -27, -18, -6, 3, + 8, 14, 17, 21, 25, 26, 27, 28, 30, 32, 32, 31, 32, 28, 22, 14, + 6, 3, 0, -3, -8, -12, -12, -5, 0, 2, 1, 3, 6, 11, 11, 7, + 4, 6, 13, 20, 24, 28, 31, 32, 28, 19, 7, -7, -20, -32, -44, -53, + -58, -58, -55, -54, -53, -50, -46, -40, -27, -14, -6, -6, -5, 0, 8, 16, + 20, 23, 25, 30, 37, 42, 43, 41, 39, 34, 28, 18, 9, 4, 3, 0, + -10, -13, -12, -10, -5, 1, 1, 0, 4, 8, 7, 5, 6, 11, 19, 23, + 27, 32, 33, 27, 20, 10, 0, -15, -30, -41, -49, -52, -54, -55, -55, -53, + -50, -45, -40, -32, -24, -16, -11, -10, -8, -3, 6, 13, 17, 21, 29, 37, + 43, 48, 47, 43, 38, 35, 30, 19, 11, 7, 2, -5, -9, -9, -5, 1, + 1, 0, -2, 1, 3, 6, 5, 4, 5, 10, 16, 20, 24, 27, 25, 18, + 10, 3, -9, -21, -31, -39, -44, -47, -47, -44, -46, -48, -48, -45, -39, -36, + -30, -26, -25, -23, -19, -9, 4, 14, 24, 32, 41, 48, 54, 56, 57, 52, + 47, 40, 28, 17, 10, 4, -3, -8, -10, -8, -6, -5, -5, -5, -3, 0, + 3, 4, 4, 5, 7, 12, 19, 26, 27, 24, 18, 12, 5, -3, -12, -24, + -34, -43, -46, -48, -48, -46, -46, -45, -44, -42, -38, -33, -29, -26, -26, -22, + -14, -5, 5, 13, 23, 32, 40, 47, 52, 56, 57, 55, 52, 47, 36, 27, + 19, 11, 3, -5, -6, -8, -10, -13, -15, -14, -13, -11, -6, 1, 4, 7, + 11, 17, 21, 26, 28, 26, 19, 10, 2, -7, -17, -26, -36, -41, -45, -47, + -45, -44, -44, -41, -39, -40, -40, -37, -33, -34, -32, -26, -18, -9, 2, 12, + 26, 40, 47, 56, 63, 66, 66, 63, 60, 53, 40, 27, 14, 3, -8, -11, + -12, -15, -19, -19, -18, -15, -12, -8, 0, 6, 11, 13, 14, 17, 23, 29, + 27, 18, 9, 1, -7, -16, -25, -35, -43, -49, -47, -44, -43, -42, -40, -36, + -34, -33, -33, -33, -35, -34, -30, -23, -16, -9, 2, 14, 27, 39, 49, 58, + 66, 69, 68, 66, 61, 53, 45, 32, 18, 1, -11, -14, -17, -17, -20, -23, + -21, -17, -13, -3, 4, 10, 13, 14, 17, 18, 21, 24, 22, 15, 6, -4, + -12, -22, -28, -38, -49, -51, -48, -45, -43, -40, -38, -36, -35, -34, -33, -33, + -34, -35, -33, -29, -18, -6, 6, 19, 33, 46, 59, 71, 78, 78, 78, 74, + 67, 54, 39, 22, 6, -8, -16, -22, -25, -25, -26, -22, -17, -12, -3, 6, + 15, 17, 16, 14, 14, 16, 17, 16, 13, 6, -2, -11, -20, -27, -34, -43, + -49, -48, -44, -41, -39, -36, -33, -34, -33, -34, -32, -33, -35, -35, -30, -21, + -11, 0, 9, 23, 38, 52, 65, 74, 76, 76, 74, 70, 62, 47, 28, 13, + 2, -6, -14, -21, -23, -20, -18, -16, -13, -7, 1, 8, 10, 11, 9, 11, + 11, 13, 15, 16, 13, 8, -2, -11, -19, -27, -37, -47, -52, -51, -48, -46, + -43, -40, -38, -36, -35, -35, -38, -38, -33, -27, -21, -16, -7, 6, 21, 36, + 49, 61, 70, 75, 79, 78, 73, 62, 49, 35, 22, 8, -3, -12, -17, -20, + -18, -14, -13, -15, -12, -5, 4, 7, 8, 8, 9, 8, 9, 11, 14, 14, + 10, 4, -6, -15, -25, -35, -41, -48, -54, -53, -47, -42, -38, -37, -35, -31, + -31, -30, -30, -29, -26, -24, -19, -12, -2, 10, 22, 35, 48, 60, 70, 76, + 76, 73, 67, 57, 44, 28, 14, 5, -3, -8, -13, -14, -13, -10, -11, -11, + -8, -2, 4, 6, 5, 5, 5, 6, 10, 11, 10, 8, 4, -2, -9, -15, + -24, -35, -44, -50, -52, -49, -45, -42, -42, -40, -37, -37, -37, -33, -29, -26, + -24, -21, -16, -7, 6, 18, 30, 41, 54, 66, 75, 77, 79, 76, 67, 53, + 37, 21, 8, 2, -5, -10, -14, -14, -12, -12, -11, -10, -5, 4, 7, 4, + 1, 2, 6, 9, 9, 7, 5, 4, 0, -7, -14, -23, -32, -37, -43, -48, + -50, -51, -47, -42, -34, -32, -32, -34, -32, -26, -21, -18, -17, -14, -11, -4, + 5, 13, 24, 40, 55, 67, 72, 74, 76, 75, 67, 51, 37, 23, 11, 4, + -4, -11, -15, -17, -17, -16, -14, -13, -8, -2, 1, 1, 1, 3, 5, 9, + 7, 5, 4, 4, 3, -5, -14, -24, -32, -38, -41, -47, -52, -53, -49, -41, + -35, -34, -35, -33, -29, -24, -19, -13, -10, -9, -7, -2, 8, 17, 29, 43, + 56, 67, 74, 75, 75, 72, 64, 53, 38, 23, 13, 4, -5, -12, -16, -20, + -21, -18, -16, -14, -11, -8, -5, -3, 0, 2, 6, 6, 6, 5, 5, 6, + 3, -6, -19, -31, -37, -41, -45, -50, -52, -53, -48, -39, -32, -30, -26, -25, + -22, -16, -10, -7, -11, -10, -8, -2, 6, 17, 31, 45, 58, 68, 78, 80, + 76, 70, 65, 55, 37, 18, 5, -4, -10, -19, -25, -26, -24, -18, -13, -11, + -9, -6, -2, 4, 6, 5, 4, 3, 4, 2, 1, -3, -4, -11, -20, -29, + -38, -43, -45, -48, -51, -48, -44, -39, -35, -34, -31, -30, -25, -15, -8, -8, + -10, -8, 1, 11, 22, 33, 42, 54, 66, 76, 80, 75, 70, 66, 59, 42, + 23, 6, -4, -9, -17, -22, -27, -25, -19, -9, -7, -8, -5, 0, 4, 5, + 2, -2, -5, -5, -4, -6, -7, -6, -10, -16, -21, -29, -34, -37, -38, -41, + -44, -42, -36, -32, -33, -37, -39, -35, -27, -17, -12, -13, -12, -6, 6, 22, + 36, 44, 54, 66, 77, 82, 80, 75, 68, 59, 47, 29, 10, -3, -13, -18, + -23, -26, -27, -24, -16, -9, -5, -4, -2, 3, 6, 4, -2, -6, -8, -7, + -8, -8, -9, -10, -13, -16, -22, -29, -31, -30, -34, -36, -36, -32, -28, -30, + -36, -39, -38, -33, -28, -24, -24, -22, -15, -2, 13, 26, 38, 53, 67, 78, + 84, 88, 85, 81, 71, 59, 39, 13, -5, -14, -19, -26, -32, -34, -30, -22, + -13, -5, 0, 6, 7, 10, 8, 2, -4, -10, -12, -15, -18, -20, -20, -20, + -22, -24, -26, -26, -23, -23, -23, -24, -21, -17, -18, -25, -31, -35, -37, -37, + -36, -33, -29, -22, -10, 5, 19, 31, 45, 62, 75, 84, 86, 88, 87, 80, + 66, 45, 22, 4, -9, -18, -26, -34, -37, -33, -24, -15, -9, -3, 6, 13, + 15, 11, 2, -5, -10, -13, -20, -25, -27, -26, -25, -26, -29, -29, -23, -18, + -16, -19, -18, -15, -9, -6, -12, -21, -32, -36, -36, -40, -39, -36, -30, -21, + -10, 6, 20, 36, 55, 69, 79, 85, 90, 92, 88, 75, 56, 33, 12, -3, + -15, -24, -33, -37, -35, -28, -20, -12, -4, 6, 14, 18, 16, 9, 0, -8, + -15, -19, -27, -33, -35, -34, -34, -36, -36, -29, -19, -10, -10, -10, -8, -4, + -2, -2, -8, -18, -28, -36, -43, -48, -46, -36, -25, -14, -4, 10, 27, 46, + 65, 78, 86, 89, 87, 85, 78, 64, 42, 19, 0, -12, -20, -29, -34, -36, + -30, -22, -12, -6, 1, 8, 16, 18, 13, 2, -7, -12, -17, -24, -33, -38, + -39, -36, -36, -36, -34, -26, -18, -11, -7, -6, -5, -5, 1, 1, -5, -14, + -24, -33, -41, -42, -37, -28, -19, -10, 3, 16, 30, 47, 64, 76, 83, 85, + 83, 78, 69, 54, 37, 17, -2, -14, -21, -28, -32, -32, -27, -18, -11, -6, + 2, 12, 18, 16, 5, -5, -11, -14, -19, -30, -40, -47, -45, -38, -36, -34, + -33, -26, -15, -6, -2, 1, 1, 3, 5, 4, -3, -13, -26, -35, -41, -39, + -33, -23, -13, -5, 7, 21, 36, 53, 68, 79, 82, 78, 72, 66, 59, 47, + 30, 10, -6, -16, -21, -22, -25, -27, -25, -18, -10, -4, 4, 10, 11, 6, + -4, -11, -13, -18, -25, -34, -43, -45, -41, -36, -34, -32, -27, -19, -10, -5, + 0, 2, 5, 5, 5, 1, -7, -16, -25, -33, -38, -35, -25, -13, -6, 0, + 11, 27, 46, 60, 69, 70, 68, 69, 68, 62, 52, 39, 22, 8, -2, -11, + -18, -21, -22, -23, -24, -17, -10, -5, 1, 5, 5, 2, -3, -5, -9, -17, + -28, -41, -46, -48, -43, -42, -42, -39, -30, -19, -9, -3, 6, 11, 15, 16, + 12, 5, -2, -12, -23, -33, -37, -34, -25, -18, -8, 1, 15, 32, 48, 62, + 69, 68, 67, 63, 62, 58, 50, 34, 15, -2, -8, -10, -11, -16, -24, -24, + -19, -12, -6, -2, 2, 3, 1, 0, -6, -10, -17, -26, -37, -46, -48, -45, + -44, -42, -38, -32, -22, -12, -6, 4, 10, 14, 16, 15, 11, 5, -2, -11, + -23, -31, -29, -22, -18, -16, -11, 3, 17, 34, 50, 56, 59, 61, 63, 62, + 59, 53, 44, 32, 16, 3, -8, -9, -13, -20, -26, -27, -21, -16, -11, -9, + -6, 1, 7, 7, 0, -10, -15, -20, -30, -39, -45, -48, -48, -46, -41, -36, + -29, -20, -11, 3, 11, 14, 19, 21, 19, 15, 6, -3, -13, -18, -18, -17, + -20, -19, -12, 2, 15, 26, 36, 43, 51, 59, 61, 61, 57, 54, 49, 37, + 21, 9, 1, -8, -17, -25, -29, -28, -27, -23, -19, -13, -5, 2, 8, 5, + -4, -11, -13, -17, -27, -40, -49, -53, -53, -50, -44, -37, -28, -19, -7, 8, + 18, 22, 26, 26, 23, 17, 10, 0, -8, -15, -20, -25, -23, -19, -11, 0, + 13, 25, 34, 44, 54, 60, 62, 60, 58, 56, 52, 38, 21, 6, -6, -16, + -26, -32, -33, -30, -26, -24, -17, -8, 3, 13, 16, 10, 1, -7, -12, -18, + -34, -50, -61, -63, -58, -54, -50, -45, -33, -13, 6, 21, 27, 34, 37, 36, + 30, 20, 11, -2, -13, -24, -32, -37, -34, -24, -10, 2, 12, 25, 41, 55, + 61, 64, 65, 67, 64, 59, 48, 32, 16, 0, -12, -20, -27, -33, -33, -31, + -28, -23, -12, 0, 10, 13, 9, 2, -2, -7, -13, -25, -41, -56, -65, -66, + -62, -56, -53, -42, -25, -5, 13, 24, 34, 39, 42, 39, 32, 22, 11, -2, + -15, -27, -36, -37, -31, -22, -13, 0, 12, 27, 43, 55, 61, 64, 65, 63, + 60, 53, 42, 28, 10, -6, -20, -27, -28, -28, -25, -23, -20, -13, -2, 11, + 16, 14, 8, 2, -6, -14, -25, -38, -53, -67, -73, -73, -67, -58, -46, -32, + -14, 6, 24, 36, 43, 45, 44, 39, 30, 18, 5, -11, -25, -35, -39, -37, + -28, -17, -7, 4, 16, 32, 48, 58, 64, 66, 63, 61, 56, 46, 31, 18, + 3, -13, -21, -25, -23, -19, -15, -11, -7, -2, 6, 13, 14, 8, -3, -12, + -21, -32, -40, -55, -70, -78, -75, -67, -56, -47, -29, -12, 10, 29, 40, 47, + 49, 48, 43, 31, 15, 0, -16, -29, -39, -45, -41, -32, -18, -6, 3, 13, + 27, 43, 57, 64, 65, 61, 58, 52, 43, 32, 18, 6, -9, -18, -20, -17, + -12, -4, 1, 3, 7, 12, 17, 16, 9, -3, -15, -27, -39, -48, -60, -72, + -82, -82, -73, -58, -45, -33, -14, 7, 28, 42, 49, 51, 51, 48, 38, 22, + 2, -16, -30, -37, -42, -45, -40, -26, -11, 3, 11, 20, 34, 52, 65, 69, + 64, 54, 46, 38, 28, 16, 4, -11, -18, -16, -10, -4, 3, 13, 21, 23, + 22, 20, 18, 11, -2, -16, -34, -47, -59, -70, -76, -83, -83, -76, -64, -48, + -31, -12, 10, 30, 42, 50, 53, 51, 46, 37, 25, 8, -13, -30, -41, -45, + -43, -35, -23, -15, -5, 8, 17, 28, 40, 56, 64, 63, 55, 45, 34, 24, + 14, 7, -4, -12, -13, -9, -2, 11, 23, 31, 33, 33, 31, 26, 17, 4, + -14, -31, -48, -62, -75, -86, -90, -87, -79, -68, -54, -39, -18, 4, 23, 39, + 47, 52, 52, 47, 39, 29, 15, -5, -23, -35, -41, -40, -34, -26, -16, -8, + 2, 12, 22, 30, 43, 52, 58, 54, 45, 36, 25, 16, 7, -2, -7, -8, + -3, 4, 13, 24, 32, 39, 42, 39, 30, 19, 6, -10, -25, -44, -62, -79, + -88, -90, -85, -78, -70, -59, -45, -24, 0, 20, 35, 43, 48, 48, 46, 42, + 33, 20, 2, -19, -32, -38, -41, -37, -29, -19, -8, 1, 11, 19, 26, 35, + 43, 48, 48, 41, 35, 26, 16, 7, 0, 0, 3, 6, 10, 16, 24, 32, + 40, 44, 43, 33, 21, 8, -5, -19, -37, -54, -72, -84, -87, -81, -75, -68, + -61, -50, -33, -12, 8, 22, 29, 34, 40, 42, 41, 35, 24, 13, -2, -16, + -27, -33, -33, -27, -22, -17, -13, -4, 9, 18, 25, 31, 36, 42, 44, 40, + 32, 21, 12, 9, 7, 8, 9, 13, 17, 23, 29, 35, 40, 40, 35, 26, + 13, 0, -11, -24, -41, -60, -74, -80, -79, -73, -68, -63, -56, -43, -27, -10, + 6, 18, 24, 29, 34, 38, 37, 30, 20, 9, -3, -14, -24, -27, -27, -25, + -23, -18, -9, 2, 10, 19, 25, 30, 37, 40, 41, 33, 22, 16, 10, 6, + 6, 10, 16, 21, 28, 31, 35, 38, 44, 45, 34, 19, 5, -5, -17, -33, + -52, -68, -76, -78, -75, -71, -67, -62, -51, -37, -20, -7, 4, 13, 21, 29, + 34, 36, 33, 26, 17, 10, 0, -8, -13, -19, -21, -21, -17, -11, -6, 4, + 10, 13, 19, 25, 30, 31, 28, 20, 14, 10, 7, 7, 11, 20, 26, 32, + 36, 39, 41, 44, 46, 41, 30, 13, 0, -13, -27, -44, -62, -72, -74, -74, + -74, -71, -66, -57, -47, -32, -19, -9, 2, 14, 24, 28, 32, 34, 33, 25, + 17, 9, 2, -5, -10, -17, -22, -18, -13, -7, 0, 4, 10, 17, 23, 26, + 25, 21, 15, 9, 9, 7, 4, 7, 16, 27, 34, 39, 43, 48, 49, 52, + 49, 39, 24, 9, -3, -17, -32, -52, -67, -75, -75, -71, -70, -70, -66, -56, + -43, -31, -21, -12, -2, 11, 21, 27, 30, 33, 31, 29, 22, 15, 8, 0, + -6, -13, -14, -14, -11, -5, 0, 4, 8, 13, 16, 18, 15, 12, 10, 7, + 7, 6, 7, 14, 24, 36, 44, 46, 46, 49, 52, 53, 47, 35, 21, 9, + -6, -23, -43, -59, -68, -71, -74, -74, -76, -73, -64, -52, -39, -31, -25, -15, + 0, 12, 20, 24, 29, 32, 30, 26, 21, 16, 10, 4, -2, -7, -7, -5, + -3, 0, 3, 5, 6, 9, 8, 8, 6, 3, 2, 4, 5, 7, 14, 22, + 34, 43, 49, 57, 57, 55, 52, 48, 43, 31, 17, 2, -13, -33, -49, -59, + -63, -66, -72, -75, -76, -70, -61, -52, -44, -37, -30, -18, -4, 11, 20, 25, + 28, 32, 32, 30, 26, 19, 13, 5, 0, -4, -5, -3, 1, 2, 1, -3, + -2, 2, 6, 4, 2, -3, -2, 3, 10, 13, 18, 27, 40, 49, 56, 59, + 60, 56, 52, 47, 41, 30, 17, 1, -19, -39, -55, -64, -67, -70, -76, -81, + -78, -69, -56, -46, -40, -33, -24, -12, 3, 15, 22, 25, 26, 29, 27, 23, + 19, 14, 9, 4, 0, -2, 1, 5, 9, 7, 2, -3, -3, 3, 3, -2, + -10, -13, -10, -2, 7, 14, 22, 31, 45, 59, 65, 68, 65, 62, 58, 50, + 41, 28, 12, -9, -31, -49, -59, -65, -70, -76, -84, -84, -77, -63, -50, -45, + -40, -32, -21, -7, 7, 16, 24, 28, 29, 28, 23, 18, 15, 11, 6, 0, + -4, -3, 4, 11, 14, 11, 6, 5, 7, 7, 2, -7, -12, -16, -13, -6, + 1, 8, 17, 32, 50, 63, 68, 68, 69, 70, 65, 56, 43, 27, 7, -17, + -38, -52, -62, -71, -78, -86, -88, -84, -73, -59, -50, -43, -34, -25, -11, 2, + 11, 19, 23, 26, 26, 21, 17, 12, 9, 7, 5, 2, 2, 4, 11, 16, + 14, 10, 9, 10, 9, 1, -8, -16, -19, -16, -11, -6, 0, 8, 24, 43, + 57, 66, 70, 72, 72, 67, 63, 52, 37, 18, -5, -23, -41, -54, -62, -70, + -78, -81, -82, -76, -67, -56, -45, -36, -31, -22, -12, 0, 10, 16, 20, 21, + 17, 13, 7, 3, 3, 6, 6, 6, 9, 14, 20, 21, 20, 17, 17, 15, + 9, -3, -15, -23, -27, -20, -14, -9, -4, 9, 31, 49, 64, 70, 75, 78, + 76, 70, 60, 45, 31, 12, -11, -31, -46, -58, -66, -70, -73, -77, -74, -67, + -59, -52, -44, -36, -29, -22, -14, -6, 1, 11, 14, 14, 11, 6, 6, 7, + 10, 11, 12, 15, 18, 24, 23, 21, 19, 20, 18, 12, 0, -13, -20, -27, + -27, -22, -16, -11, 1, 19, 36, 52, 64, 73, 79, 81, 77, 69, 56, 43, + 26, 5, -16, -37, -54, -62, -66, -69, -72, -71, -65, -62, -56, -47, -39, -33, + -26, -19, -14, -12, -3, 9, 9, 3, -6, -4, 5, 11, 12, 11, 12, 20, + 29, 31, 29, 25, 25, 27, 24, 11, -6, -17, -25, -31, -32, -30, -26, -16, + 0, 17, 35, 51, 66, 78, 87, 88, 84, 73, 57, 40, 23, 3, -20, -42, + -57, -65, -69, -71, -70, -68, -63, -58, -52, -45, -38, -30, -26, -24, -23, -16, + -8, -2, -5, -9, -6, 1, 9, 12, 13, 17, 24, 32, 37, 37, 34, 32, + 33, 31, 19, 2, -15, -25, -31, -36, -38, -35, -27, -13, 4, 23, 40, 59, + 76, 91, 96, 91, 80, 69, 55, 35, 13, -12, -35, -52, -61, -66, -71, -70, + -63, -54, -48, -44, -42, -36, -31, -30, -34, -36, -33, -26, -20, -20, -21, -18, + -9, 5, 13, 18, 21, 29, 40, 47, 50, 49, 44, 40, 34, 23, 6, -14, + -27, -39, -45, -48, -45, -35, -23, -7, 11, 30, 51, 73, 89, 97, 96, 89, + 80, 63, 44, 25, 4, -18, -39, -53, -59, -63, -61, -58, -55, -52, -49, -45, + -39, -35, -37, -41, -46, -43, -38, -33, -29, -25, -18, -11, 3, 13, 20, 25, + 30, 38, 46, 51, 50, 47, 43, 37, 26, 9, -7, -19, -32, -45, -52, -51, + -40, -28, -12, 4, 19, 38, 61, 83, 94, 95, 89, 82, 67, 50, 30, 12, + -8, -26, -40, -52, -57, -56, -52, -48, -46, -44, -40, -34, -32, -32, -37, -44, + -47, -45, -41, -39, -35, -28, -17, -6, 7, 15, 23, 32, 40, 47, 52, 52, + 51, 46, 39, 32, 17, 1, -14, -26, -37, -46, -50, -45, -35, -25, -11, 5, + 24, 44, 62, 79, 88, 86, 79, 70, 59, 45, 25, 7, -13, -25, -36, -46, + -50, -51, -50, -46, -43, -41, -37, -34, -33, -36, -40, -43, -46, -46, -41, -36, + -31, -22, -10, 4, 13, 21, 30, 40, 47, 50, 53, 52, 47, 39, 30, 18, + 3, -12, -22, -33, -42, -47, -45, -36, -25, -14, -2, 14, 34, 52, 67, 76, + 77, 72, 65, 55, 43, 27, 12, -7, -21, -29, -36, -41, -44, -43, -39, -36, + -32, -27, -26, -26, -29, -33, -36, -43, -49, -48, -44, -38, -32, -22, -11, 4, + 15, 25, 34, 44, 50, 53, 54, 52, 44, 35, 23, 9, -4, -15, -27, -37, + -43, -45, -42, -34, -21, -9, 5, 19, 34, 50, 63, 70, 69, 63, 54, 46, + 35, 20, 4, -11, -23, -29, -33, -37, -41, -40, -33, -25, -20, -19, -21, -22, + -23, -26, -34, -42, -47, -46, -43, -36, -30, -22, -11, 5, 17, 28, 37, 45, + 52, 55, 53, 49, 41, 30, 19, 4, -12, -23, -33, -41, -45, -45, -40, -31, + -18, -3, 11, 23, 38, 51, 63, 64, 58, 51, 45, 36, 25, 10, -4, -15, + -24, -28, -32, -36, -35, -29, -19, -13, -13, -14, -13, -13, -13, -21, -33, -43, + -45, -45, -41, -38, -34, -25, -11, 4, 17, 29, 39, 49, 57, 60, 55, 48, + 39, 29, 16, 1, -14, -27, -35, -42, -47, -48, -42, -29, -15, -3, 10, 20, + 34, 48, 56, 57, 51, 45, 38, 30, 20, 7, -7, -17, -22, -26, -32, -36, + -31, -21, -9, -6, -8, -8, -4, 1, -4, -13, -26, -35, -39, -40, -42, -44, + -40, -29, -13, 3, 16, 29, 43, 58, 67, 67, 59, 49, 39, 27, 11, -9, + -28, -39, -47, -50, -53, -52, -44, -29, -12, 5, 13, 25, 38, 51, 57, 52, + 45, 38, 30, 21, 9, -4, -14, -21, -26, -29, -33, -28, -18, -7, 2, 2, + 2, 4, 8, 10, 5, -10, -25, -36, -42, -45, -49, -49, -45, -33, -14, 5, + 22, 35, 54, 69, 78, 76, 67, 53, 41, 27, 6, -17, -36, -50, -55, -60, + -63, -62, -51, -34, -16, -2, 9, 20, 34, 45, 50, 48, 42, 35, 29, 18, + 7, 0, 0, 0, 0, 0, 0, 7, 0, -1, -7, -18, -16, 3, 6, -18, + -29, -21, 6, 6, -12, -10, -10, -2, 4, 15, 21, 14, 4, 9, 29, 27, + 15, 9, 13, 20, 0, -21, -11, 3, -11, -37, -36, -7, 11, -4, -26, -23, + -4, 15, -4, -15, -11, -10, -1, 9, 23, 15, 8, 6, 24, 35, 19, 14, + 6, 17, 10, -15, -26, -7, -1, -23, -40, -24, 4, 10, -16, -25, -13, 11, + 10, -14, -15, -12, -6, 1, 19, 22, 6, 7, 15, 40, 31, 22, 7, 7, + 15, 5, -22, -21, -5, -9, -33, -32, -15, 5, -4, -19, -20, 1, 17, -4, + -15, -11, -12, -4, 9, 27, 13, 7, 11, 32, 44, 30, 14, 2, 7, 9, + -8, -25, -18, -9, -19, -30, -21, -4, 2, -10, -21, -13, 15, 8, -11, -13, + -16, -12, 0, 20, 24, 9, 9, 19, 44, 47, 25, 6, 2, 11, -1, -21, + -27, -19, -17, -20, -23, -17, -5, -5, -14, -20, 0, 15, -4, -7, -17, -17, + -8, 7, 25, 18, 7, 11, 31, 54, 41, 14, -1, 10, 3, -14, -27, -29, + -21, -16, -16, -18, -17, -11, -10, -16, -16, 10, 6, -3, -9, -19, -16, -2, + 18, 27, 16, 8, 19, 45, 54, 29, 5, 6, 4, -9, -18, -29, -30, -18, + -10, -9, -14, -20, -12, -13, -17, -5, 12, 7, 2, -16, -22, -13, 8, 25, + 23, 12, 11, 32, 53, 48, 17, 9, 9, -7, -16, -24, -37, -28, -12, -4, + -2, -18, -21, -18, -23, -17, 7, 11, 10, -4, -16, -22, -7, 21, 28, 18, + 9, 20, 43, 55, 37, 11, 11, 1, -14, -17, -31, -34, -21, -10, 4, -2, + -20, -23, -26, -29, -3, 6, 13, 8, -5, -23, -27, 7, 28, 27, 15, 12, + 32, 48, 50, 24, 9, 8, -12, -19, -26, -37, -35, -19, 3, 6, -12, -21, + -31, -38, -17, 6, 4, 14, 6, -8, -35, -15, 19, 26, 21, 7, 23, 43, + 52, 42, 14, 9, -2, -16, -21, -25, -33, -33, -4, 13, 3, -13, -30, -47, + -37, 1, 6, 7, 12, 6, -15, -31, -1, 22, 30, 14, 9, 37, 48, 50, + 26, 8, 6, -11, -22, -22, -25, -45, -22, 13, 15, 1, -22, -43, -56, -21, + 7, 6, 10, 15, -7, -25, -21, 7, 28, 21, 2, 25, 47, 53, 39, 11, + 10, 1, -20, -22, -18, -37, -42, 2, 15, 15, -8, -32, -57, -48, -9, 9, + 5, 14, 8, -14, -20, -13, 17, 33, 8, 9, 37, 52, 55, 25, 7, 8, + -11, -23, -15, -23, -47, -20, 12, 21, 10, -23, -50, -57, -31, 2, 10, 9, + 11, -8, -10, -18, -3, 30, 22, 1, 22, 45, 57, 45, 11, 11, 0, -23, + -22, -16, -36, -36, -6, 15, 18, -3, -43, -56, -49, -21, 5, 11, 12, -2, + -8, -9, -15, 12, 31, 9, 10, 34, 48, 60, 29, 16, 10, -17, -24, -21, + -27, -31, -17, 5, 14, 12, -22, -50, -48, -41, -9, 7, 13, -1, -8, -2, + -11, -5, 26, 19, 6, 21, 37, 55, 49, 25, 22, -5, -20, -24, -26, -29, + -23, -9, 8, 13, -1, -41, -48, -47, -30, -3, 12, 7, -12, -2, 1, -8, + 10, 20, 11, 16, 26, 40, 54, 42, 36, 7, -13, -18, -26, -29, -26, -14, + -2, 7, 8, -18, -45, -48, -45, -19, 6, 11, -10, -8, 5, -7, 2, 12, + 17, 15, 16, 23, 45, 55, 48, 27, -7, -12, -18, -30, -31, -17, -5, -3, + 4, 5, -24, -40, -50, -38, -8, 8, 1, -13, 1, -1, 3, 8, 15, 18, + 15, 15, 28, 52, 59, 47, 9, -9, -10, -25, -40, -29, -3, -5, -13, 1, + 3, -26, -47, -53, -23, -2, 5, -11, -6, 4, 6, 10, 10, 19, 11, 13, + 15, 42, 61, 61, 32, 3, -5, -12, -35, -43, -14, 1, -16, -13, 9, -1, + -33, -57, -46, -19, -3, -1, -16, -2, 5, 15, 6, 17, 9, 5, 9, 26, + 54, 65, 52, 21, 3, -6, -21, -48, -33, -4, -7, -22, -2, 18, -4, -47, + -58, -33, -11, 2, -13, -15, 3, 16, 15, 9, 15, -1, 5, 14, 48, 66, + 65, 37, 23, 2, -11, -42, -48, -20, -4, -23, -18, 18, 19, -17, -61, -52, + -27, -2, -5, -24, -7, 9, 20, 14, 18, 2, -3, 7, 34, 63, 68, 50, + 37, 19, -9, -25, -49, -38, -14, -14, -28, 6, 25, 9, -40, -62, -45, -17, + 3, -21, -16, -3, 12, 18, 18, 10, -6, 0, 16, 56, 69, 63, 43, 38, + 2, -20, -42, -44, -33, -14, -25, -10, 22, 18, -11, -55, -57, -37, -3, -10, + -26, -10, 2, 17, 21, 20, -3, -2, 5, 39, 67, 73, 56, 47, 22, -17, + -35, -43, -36, -28, -18, -20, 9, 22, 8, -33, -56, -53, -26, -2, -23, -24, + -11, 4, 23, 30, 4, -3, 0, 27, 60, 71, 69, 58, 43, -6, -35, -43, + -35, -36, -27, -18, -2, 19, 17, -9, -41, -51, -45, -10, -12, -31, -21, -9, + 8, 33, 17, 0, 2, 8, 50, 69, 75, 70, 64, 16, -31, -47, -35, -32, + -34, -25, -14, 10, 16, 5, -26, -42, -50, -32, -8, -22, -31, -22, -8, 22, + 32, 7, 6, 4, 28, 63, 69, 71, 78, 43, -20, -51, -41, -23, -34, -30, + -22, 2, 13, 9, -10, -31, -45, -44, -21, -19, -27, -36, -26, 2, 29, 24, + 12, 11, 13, 45, 69, 68, 81, 70, 6, -47, -52, -28, -23, -27, -26, -14, + 11, 10, -2, -18, -33, -43, -34, -25, -22, -36, -44, -14, 14, 29, 27, 22, + 18, 29, 60, 65, 71, 86, 41, -32, -57, -41, -23, -22, -22, -24, -4, 10, + 0, -11, -21, -31, -37, -37, -29, -29, -53, -33, -3, 16, 33, 31, 27, 23, + 46, 64, 65, 85, 71, -4, -48, -47, -31, -20, -15, -15, -19, 1, 0, -5, + -14, -21, -26, -40, -39, -28, -51, -50, -18, 4, 26, 38, 36, 30, 32, 61, + 64, 70, 80, 31, -35, -43, -40, -25, -19, -6, -17, -11, 0, -6, -11, -17, + -15, -31, -47, -39, -45, -62, -34, -8, 12, 36, 38, 41, 37, 51, 65, 60, + 71, 56, -7, -36, -38, -35, -27, -11, -5, -17, -8, -8, -9, -17, -13, -20, + -37, -47, -50, -62, -49, -16, 1, 25, 34, 43, 53, 49, 62, 58, 62, 65, + 22, -23, -31, -34, -35, -19, -3, -8, -18, -7, -4, -14, -17, -9, -27, -40, + -56, -68, -64, -27, -4, 9, 28, 37, 54, 60, 61, 59, 54, 63, 43, -1, + -25, -23, -37, -28, -8, 4, -10, -15, -3, -7, -26, -15, -11, -29, -51, -71, + -71, -49, -8, 5, 14, 30, 48, 66, 68, 63, 51, 56, 51, 18, -18, -20, + -25, -39, -23, -5, 3, -13, -6, -5, -21, -28, -10, -18, -43, -67, -78, -64, + -25, 1, 8, 15, 38, 60, 75, 74, 58, 54, 57, 28, -7, -18, -8, -31, + -34, -15, 4, -2, -4, 0, -15, -32, -21, -8, -28, -57, -77, -75, -44, -12, + 6, 8, 20, 49, 68, 77, 71, 53, 61, 41, 3, -18, -4, -14, -36, -28, + -7, 1, 7, 6, -8, -34, -35, -16, -15, -41, -66, -75, -59, -31, -4, 10, + 11, 31, 56, 72, 85, 63, 58, 55, 14, -17, -10, -1, -24, -30, -22, -6, + 11, 16, 9, -27, -43, -27, -15, -26, -53, -63, -66, -46, -21, 3, 13, 15, + 40, 63, 83, 78, 60, 67, 38, -9, -20, 4, -7, -23, -25, -22, 6, 24, + 20, -8, -48, -43, -24, -16, -39, -55, -57, -57, -36, -10, 9, 11, 22, 50, + 73, 88, 71, 65, 59, 14, -24, -9, -3, -15, -18, -31, -14, 25, 28, 10, + -36, -56, -41, -21, -29, -48, -47, -51, -50, -26, -2, 11, 6, 30, 57, 82, + 83, 69, 65, 35, -12, -16, -3, -10, -12, -21, -26, 11, 33, 26, -7, -56, + -54, -32, -26, -41, -39, -37, -52, -41, -16, 5, 7, 11, 37, 72, 91, 78, + 66, 55, 11, -19, -14, -15, -9, -7, -19, -8, 22, 30, 13, -32, -62, -44, + -31, -34, -40, -29, -40, -46, -29, -8, 2, 1, 18, 49, 84, 86, 72, 67, + 39, -6, -21, -25, -16, 2, -6, -12, 6, 23, 18, -7, -51, -56, -39, -33, + -41, -30, -24, -41, -36, -17, -8, -5, 7, 32, 66, 84, 78, 75, 58, 20, + -15, -29, -33, 2, 4, -1, 1, 11, 17, 4, -27, -56, -46, -36, -37, -39, + -22, -24, -38, -23, -16, -16, -7, 18, 46, 72, 82, 81, 72, 44, -1, -25, + -41, -18, 14, 8, 10, 0, 5, 2, -11, -40, -50, -42, -38, -37, -33, -11, + -27, -26, -20, -22, -13, 0, 31, 52, 73, 82, 80, 61, 26, -16, -37, -40, + 0, 18, 17, 12, -5, -8, -10, -21, -41, -43, -44, -36, -35, -20, -12, -23, + -14, -32, -21, -12, 15, 38, 58, 76, 82, 72, 46, 4, -26, -41, -23, 14, + 25, 18, 2, -23, -18, -14, -29, -35, -45, -42, -35, -29, -15, -19, -3, -23, + -32, -19, -1, 27, 40, 67, 81, 76, 61, 26, -11, -33, -36, -6, 28, 28, + 13, -15, -38, -19, -20, -26, -36, -46, -35, -32, -20, -21, -4, -4, -28, -25, + -16, 13, 31, 49, 74, 79, 69, 48, 8, -16, -33, -21, 7, 33, 24, 5, + -32, -38, -22, -21, -22, -41, -43, -32, -25, -23, -16, 6, -9, -29, -28, -5, + 20, 39, 58, 75, 71, 60, 22, 0, -18, -27, -10, 16, 30, 15, -14, -49, + -34, -19, -16, -27, -43, -31, -25, -27, -24, -1, 7, -15, -32, -22, 3, 28, + 50, 61, 67, 59, 38, 13, 5, -17, -16, -3, 21, 23, 3, -34, -49, -28, + -17, -19, -34, -34, -18, -26, -32, -16, 14, 6, -23, -34, -11, 14, 44, 54, + 56, 60, 44, 25, 18, 2, -18, -9, 3, 21, 9, -14, -45, -39, -24, -22, + -28, -32, -18, -17, -36, -30, 5, 21, -5, -31, -27, 1, 30, 56, 46, 50, + 47, 32, 29, 20, -4, -9, -9, 4, 10, -2, -28, -38, -31, -33, -26, -26, + -19, -9, -24, -38, -11, 24, 10, -17, -36, -14, 14, 48, 49, 37, 43, 39, + 33, 32, 11, 1, -5, -11, -6, -3, -16, -29, -28, -40, -38, -27, -20, -6, + -11, -31, -29, 15, 22, 0, -25, -25, 2, 31, 51, 38, 35, 41, 41, 34, + 27, 8, 6, -7, -20, -14, -7, -20, -19, -34, -52, -35, -23, -11, -5, -18, + -33, -5, 26, 5, -11, -27, -11, 17, 43, 43, 30, 29, 46, 45, 38, 17, + 6, 2, -22, -27, -16, -16, -18, -18, -53, -48, -23, -19, -3, -10, -21, -19, + 18, 12, -6, -20, -21, 6, 29, 42, 31, 23, 37, 54, 48, 31, 13, 13, + -13, -31, -25, -16, -16, -11, -38, -62, -33, -28, -7, -3, -12, -17, 6, 16, + 2, -11, -17, -5, 15, 35, 34, 25, 23, 44, 55, 41, 22, 14, 2, -29, + -32, -23, -11, -13, -18, -60, -50, -32, -16, -6, -11, -4, 3, 11, 3, -1, + -14, -8, 5, 20, 39, 31, 24, 26, 54, 57, 37, 16, 8, -19, -32, -27, + -17, -17, -17, -36, -58, -40, -32, -11, -11, -2, 6, 10, 2, 0, -4, -12, + 1, 8, 33, 42, 26, 17, 35, 63, 53, 26, 6, -9, -27, -30, -25, -17, + -23, -24, -47, -51, -38, -17, -11, -6, 12, 17, 8, -8, -1, -10, -7, 4, + 18, 40, 33, 18, 22, 49, 70, 46, 12, -11, -16, -23, -27, -19, -28, -26, + -36, -50, -48, -31, -13, -13, 10, 20, 21, 0, -6, -1, -7, 3, 15, 32, + 40, 24, 17, 31, 58, 67, 28, -2, -21, -14, -31, -18, -24, -33, -33, -49, + -49, -41, -18, -20, -2, 20, 23, 19, -12, -7, -2, -3, 10, 22, 33, 37, + 21, 23, 39, 72, 51, 10, -17, -18, -20, -29, -17, -33, -36, -49, -48, -47, + -24, -16, -15, 11, 24, 30, 6, -12, -2, -2, -1, 18, 29, 35, 27, 25, + 25, 56, 63, 23, -5, -19, -14, -23, -21, -21, -38, -52, -54, -40, -32, -15, + -23, -7, 18, 31, 22, -2, -7, 3, 0, 12, 21, 34, 31, 28, 22, 35, + 66, 40, 2, -19, -19, -15, -21, -16, -30, -60, -62, -42, -33, -18, -18, -22, + 4, 29, 29, 14, -2, -4, 5, 6, 16, 28, 36, 24, 29, 26, 52, 49, + 14, -13, -24, -19, -14, -15, -17, -53, -75, -54, -32, -18, -11, -26, -18, 18, + 28, 25, 13, -6, 4, 13, 9, 17, 37, 24, 28, 33, 37, 49, 26, 1, + -19, -26, -16, -11, -7, -33, -77, -71, -45, -15, -8, -18, -30, 1, 25, 21, + 26, 3, 5, 17, 14, 11, 33, 27, 17, 34, 38, 42, 33, 6, -11, -28, + -22, -12, -3, -16, -60, -81, -62, -25, -2, -14, -27, -17, 20, 18, 24, 18, + 6, 16, 21, 12, 24, 28, 12, 26, 44, 42, 35, 13, -5, -21, -31, -18, + -2, -2, -42, -77, -76, -47, -10, -6, -22, -24, 4, 16, 18, 25, 18, 18, + 24, 20, 20, 32, 14, 11, 40, 49, 41, 21, -6, -13, -27, -28, -5, 5, + -18, -59, -79, -63, -30, -6, -11, -28, -11, 8, 10, 23, 27, 17, 24, 25, + 25, 28, 19, 8, 25, 47, 46, 27, -5, -15, -18, -33, -20, -5, -3, -35, + -70, -66, -51, -22, -7, -21, -19, -3, 6, 17, 29, 26, 23, 28, 25, 32, + 23, 14, 11, 39, 50, 38, 3, -19, -10, -21, -29, -12, -3, -12, -55, -65, + -56, -42, -14, -10, -23, -11, -3, 10, 23, 32, 26, 28, 28, 35, 29, 22, + 13, 18, 41, 43, 18, -16, -18, -14, -29, -21, -11, -8, -32, -61, -52, -52, + -30, -11, -18, -16, -10, 2, 22, 35, 30, 25, 32, 34, 40, 27, 19, 11, + 23, 39, 32, -1, -22, -14, -22, -23, -14, -11, -17, -45, -52, -51, -51, -22, + -17, -19, -17, -10, 11, 35, 39, 29, 26, 34, 43, 43, 27, 16, 12, 25, + 31, 18, -13, -20, -19, -22, -12, -14, -15, -28, -44, -47, -53, -33, -15, -22, + -24, -20, 5, 27, 38, 31, 21, 27, 46, 51, 40, 18, 8, 13, 23, 24, + 3, -21, -22, -22, -8, -9, -22, -26, -31, -40, -51, -44, -17, -15, -26, -31, + -10, 24, 35, 37, 25, 21, 42, 57, 53, 30, 11, 7, 11, 21, 12, -11, + -23, -25, -12, 0, -18, -32, -31, -30, -45, -46, -26, -13, -25, -39, -25, 15, + 36, 29, 25, 20, 37, 58, 63, 46, 15, 3, -2, 19, 16, -2, -19, -25, + -23, 4, -4, -31, -36, -29, -32, -43, -37, -17, -16, -39, -43, -2, 34, 31, + 21, 17, 30, 62, 67, 62, 27, 9, -9, 3, 26, 8, -18, -26, -26, -5, + 9, -23, -44, -33, -26, -33, -40, -28, -12, -30, -52, -24, 23, 33, 15, 14, + 22, 54, 75, 68, 47, 14, -9, -12, 19, 23, -12, -20, -20, -13, 11, -6, + -40, -41, -19, -23, -34, -34, -14, -13, -48, -48, 4, 35, 23, 7, 13, 40, + 77, 78, 57, 31, -3, -18, 3, 27, 7, -24, -19, -16, 1, 5, -29, -49, + -28, -13, -26, -34, -26, -4, -30, -57, -24, 22, 30, 6, 7, 31, 63, 86, + 68, 42, 10, -19, -13, 15, 25, -10, -22, -14, -7, 6, -11, -45, -40, -14, + -24, -35, -31, -12, -8, -51, -44, -2, 29, 11, -1, 22, 47, 74, 78, 49, + 25, -8, -26, -4, 26, 12, -16, -19, -11, -1, -1, -28, -45, -22, -13, -29, + -29, -23, -1, -26, -55, -26, 14, 20, -3, 13, 39, 63, 80, 61, 33, 8, + -22, -25, 10, 22, -1, -14, -15, -7, -1, -14, -37, -26, -13, -25, -28, -26, + -2, -5, -48, -44, -7, 18, 3, 9, 30, 49, 71, 70, 45, 23, -13, -33, + -5, 22, 11, -7, -17, -14, -6, -8, -29, -29, -15, -19, -26, -31, -15, 6, + -25, -52, -30, 7, 7, 2, 21, 40, 60, 67, 52, 33, 7, -29, -19, 16, + 22, 4, -8, -15, -11, -6, -23, -24, -10, -11, -23, -27, -22, 1, 0, -34, + -45, -14, 2, 1, 15, 35, 52, 62, 49, 36, 21, -16, -26, 1, 20, 12, + -7, -10, -20, -10, -19, -28, -9, -8, -15, -26, -27, -11, 2, -15, -41, -34, + -10, -7, 6, 32, 48, 56, 51, 35, 26, 1, -24, -10, 15, 18, 2, -9, + -17, -18, -11, -32, -6, 2, -9, -18, -22, -17, -3, -2, -21, -34, -26, -13, + -8, 20, 47, 53, 52, 38, 24, 5, -14, -15, 9, 14, 4, -6, -14, -21, + -14, -28, -22, 12, 0, -10, -23, -24, -13, 2, -10, -23, -34, -26, -13, 4, + 39, 58, 51, 45, 28, 6, -9, -11, 3, 17, 7, -3, -10, -18, -15, -22, + -35, 2, 18, 2, -11, -23, -20, -1, 0, -15, -24, -39, -25, -6, 17, 52, + 56, 47, 35, 6, -10, -8, 0, 13, 13, -2, -9, -13, -13, -25, -43, -16, + 21, 19, -3, -21, -25, -10, 2, -5, -14, -30, -40, -13, -1, 34, 58, 51, + 44, 18, -10, -9, -2, 6, 12, 7, -7, -12, -12, -18, -40, -33, 9, 32, + 19, -9, -23, -15, 1, 3, -9, -18, -40, -28, -4, 7, 47, 59, 49, 24, + 1, -13, -5, 1, 10, 11, 5, -12, -12, -15, -35, -42, -9, 23, 33, 9, + -22, -24, -5, 1, -5, -12, -30, -40, -7, -3, 22, 56, 58, 35, 11, -12, + -9, -5, -1, 7, 13, -4, -13, -13, -25, -43, -29, 10, 34, 32, -6, -27, + -8, 3, -5, -13, -22, -40, -18, -3, -1, 37, 61, 46, 23, -5, -13, -4, + -4, -7, 12, 14, -10, -18, -22, -34, -35, -10, 22, 39, 23, -15, -14, 5, + 3, -8, -15, -36, -23, -1, -7, 14, 51, 57, 37, 8, -13, -7, -2, -14, + -6, 20, 3, -21, -26, -27, -30, -27, 1, 28, 36, 7, -10, 0, 5, -8, + -14, -30, -29, -3, -10, -5, 31, 56, 46, 19, -7, -10, 3, -11, -21, 9, + 19, -10, -30, -29, -19, -24, -20, 10, 35, 29, 8, -1, 5, -2, -13, -28, + -33, -3, -1, -13, 12, 49, 55, 31, -1, -12, 2, -3, -26, -2, 21, 2, + -28, -34, -21, -17, -29, -12, 23, 34, 19, 6, 7, 4, -4, -23, -40, -10, + 7, -12, -2, 34, 55, 36, 8, -10, 1, 3, -19, -18, 15, 15, -10, -33, + -30, -9, -19, -25, 4, 32, 30, 16, 11, 10, 3, -15, -35, -27, 9, -4, + -10, 16, 52, 42, 12, -7, -6, 4, -6, -21, -2, 17, 0, -20, -41, -13, + -9, -31, -16, 18, 34, 23, 14, 9, 10, -7, -26, -34, -3, 10, -10, 2, + 42, 51, 16, -8, -11, -2, -2, -11, -9, 9, 2, -8, -36, -31, 3, -23, + -30, -1, 27, 27, 23, 15, 18, 3, -17, -31, -19, 8, 1, -4, 24, 51, + 30, -11, -16, -6, -3, -5, -10, 3, 1, -10, -22, -41, -4, -6, -29, -18, + 12, 25, 26, 23, 20, 11, -10, -21, -27, -4, 7, 0, 13, 41, 40, 3, + -24, -11, -1, -2, -3, 5, 5, -14, -15, -35, -20, 0, -19, -24, -4, 11, + 23, 31, 24, 16, -3, -13, -23, -14, 2, 3, 18, 32, 38, 21, -20, -29, + -5, -2, 0, 5, 11, -14, -22, -25, -26, -3, -11, -26, -11, -2, 8, 32, + 34, 24, 2, -8, -16, -13, 1, 1, 10, 31, 31, 33, 1, -36, -22, 0, + 0, 8, 18, -3, -27, -22, -22, -10, -9, -24, -16, -5, -16, 16, 40, 34, + 8, -3, -13, -12, 1, 1, 3, 30, 30, 24, 18, -28, -35, -13, -2, 6, + 19, 10, -25, -28, -15, -9, -10, -19, -20, -3, -15, -8, 27, 42, 25, 1, + -14, -18, 7, 9, -1, 19, 37, 19, 23, -10, -41, -26, -9, 2, 20, 19, + -17, -35, -21, 0, -9, -18, -20, -7, -8, -24, 6, 37, 43, 14, -10, -22, + 3, 18, 4, 6, 36, 23, 16, 4, -32, -37, -19, -3, 17, 27, 0, -37, + -34, -3, 7, -17, -27, -19, -1, -20, -13, 17, 44, 35, 2, -22, -9, 19, + 20, 2, 26, 32, 15, 5, -17, -40, -29, -9, 10, 28, 17, -23, -41, -21, + 9, -2, -27, -30, -5, -7, -21, -4, 27, 47, 27, -14, -21, 11, 29, 14, + 15, 32, 20, 4, -11, -31, -38, -15, 2, 22, 22, -3, -32, -34, -6, 8, + -13, -38, -19, 0, -16, -14, 6, 37, 39, 11, -18, -4, 25, 25, 16, 24, + 27, 7, -10, -24, -38, -25, 0, 12, 23, 8, -16, -31, -23, 0, 0, -27, + -33, -2, -9, -16, -11, 17, 41, 32, 5, -15, 12, 25, 24, 21, 27, 14, + -4, -21, -31, -29, -4, 9, 19, 9, -9, -19, -25, -10, -5, -15, -38, -13, + -6, -13, -17, -1, 30, 36, 27, -2, 2, 20, 24, 25, 24, 19, 2, -16, + -32, -29, -13, 8, 18, 16, -6, -13, -21, -15, -14, -13, -26, -22, -6, -11, + -14, -14, 11, 30, 37, 17, 1, 13, 20, 23, 24, 21, 5, -10, -32, -31, + -15, 0, 17, 22, -3, -15, -17, -11, -15, -19, -23, -22, -8, -8, -13, -18, + -8, 18, 40, 38, 12, 12, 15, 21, 23, 24, 7, -9, -22, -34, -19, -6, + 11, 30, 9, -17, -20, -16, -11, -22, -30, -27, -8, -7, -10, -19, -16, -2, + 32, 52, 31, 17, 16, 13, 21, 19, 19, -9, -17, -30, -25, -7, 3, 29, + 25, -9, -21, -20, -11, -14, -29, -37, -14, 2, -5, -14, -22, -12, 13, 50, + 49, 27, 23, 15, 13, 9, 18, 7, -22, -22, -28, -11, -5, 19, 35, 13, + -20, -24, -18, -8, -22, -38, -31, 2, 3, -6, -26, -22, -3, 38, 56, 42, + 34, 21, 12, 6, 11, 17, -15, -24, -20, -15, -6, 9, 29, 29, -4, -28, + -23, -14, -13, -30, -39, -16, 9, 6, -12, -33, -16, 19, 57, 49, 41, 30, + 13, 4, -1, 6, -4, -27, -21, -13, -6, 2, 12, 34, 12, -24, -24, -20, + -16, -24, -38, -33, 2, 12, -2, -30, -31, 2, 45, 59, 46, 41, 24, 8, + -3, -6, 1, -15, -25, -16, -3, 5, 2, 21, 28, -11, -26, -23, -18, -20, + -32, -40, -14, 14, 11, -10, -40, -20, 30, 60, 55, 42, 34, 15, 6, -12, + -12, -4, -19, -21, -9, 8, 4, 10, 28, 6, -25, -22, -20, -22, -29, -38, + -27, 5, 16, 4, -24, -39, 12, 51, 61, 51, 41, 27, 10, -7, -25, -9, + -10, -17, -15, 0, 9, 5, 21, 15, -13, -27, -17, -21, -23, -38, -33, -11, + 10, 6, -4, -38, -17, 36, 55, 55, 45, 35, 21, 4, -27, -25, -2, -10, + -14, -13, 3, 5, 14, 16, 0, -24, -21, -18, -22, -36, -39, -17, -3, 5, + 3, -15, -28, 16, 50, 53, 52, 43, 29, 13, -14, -36, -10, -1, -15, -15, + -6, 6, 5, 13, 4, -11, -24, -17, -18, -27, -43, -18, -12, -7, 4, 3, + -17, -4, 38, 53, 52, 48, 41, 23, 0, -31, -30, 2, -7, -14, -13, -5, + 3, 11, 7, -4, -21, -25, -21, -19, -39, -23, -9, -19, -8, 5, -1, -10, + 24, 46, 48, 46, 44, 32, 10, -18, -37, -7, 0, -12, -14, -13, -4, 8, + 9, 1, -16, -29, -28, -17, -33, -31, -6, -21, -21, -4, 12, 3, 13, 41, + 46, 44, 46, 44, 20, -7, -36, -27, 6, -3, -18, -21, -12, 2, 12, 6, + -5, -27, -36, -21, -20, -34, -12, -8, -29, -16, 11, 15, 10, 28, 47, 46, + 41, 45, 35, 5, -24, -30, -5, 3, -14, -26, -16, -7, 7, 8, -3, -18, + -39, -32, -16, -28, -26, -8, -23, -26, 0, 19, 16, 20, 42, 55, 45, 38, + 39, 20, -11, -24, -13, -2, -6, -25, -22, -7, -5, 13, 0, -11, -36, -41, + -20, -16, -29, -16, -14, -28, -12, 13, 17, 15, 32, 50, 57, 41, 38, 30, + 2, -14, -9, -3, -3, -19, -33, -10, -7, 7, 7, -13, -30, -42, -28, -13, + -17, -26, -14, -22, -15, 7, 19, 15, 26, 46, 59, 51, 34, 33, 12, -7, + -11, -4, -5, -13, -38, -23, -3, 3, 15, -7, -32, -45, -34, -21, -11, -27, + -25, -21, -19, -1, 13, 15, 22, 37, 53, 62, 46, 34, 15, -2, 0, -4, + -8, -9, -34, -38, -8, 4, 17, 3, -25, -50, -44, -26, -12, -13, -32, -24, + -20, -7, 11, 18, 17, 33, 50, 65, 57, 41, 24, 0, 5, 5, -9, -11, + -25, -44, -25, -1, 17, 13, -18, -42, -51, -33, -20, -7, -27, -29, -23, -16, + 0, 14, 14, 28, 48, 60, 66, 51, 34, 4, 0, 15, -3, -14, -20, -35, + -37, -12, 12, 27, -7, -37, -50, -40, -29, -15, -15, -30, -24, -15, -7, 6, + 17, 25, 46, 59, 68, 63, 43, 20, -6, 14, 10, -8, -20, -30, -34, -22, + -2, 24, 15, -30, -49, -49, -37, -28, -15, -26, -28, -18, -11, -7, 7, 27, + 42, 58, 70, 70, 53, 35, 4, 0, 18, -1, -15, -32, -31, -26, -12, 12, + 28, -4, -44, -53, -44, -39, -25, -23, -28, -19, -11, -12, -16, 13, 42, 56, + 71, 71, 57, 45, 23, -3, 10, 11, -6, -27, -35, -25, -22, -1, 23, 17, + -29, -54, -46, -44, -39, -29, -28, -21, -15, -15, -26, -12, 39, 57, 70, 73, + 60, 49, 41, 13, 1, 11, 0, -16, -32, -25, -15, -14, 10, 23, -5, -48, + -46, -42, -49, -43, -31, -24, -15, -13, -24, -32, 18, 59, 71, 77, 67, 57, + 47, 33, 3, 5, 5, -9, -23, -33, -16, -14, -5, 17, 12, -29, -44, -35, + -50, -57, -43, -30, -18, -11, -22, -39, -9, 44, 68, 82, 69, 61, 49, 42, + 18, 5, 5, -8, -12, -26, -14, -7, -9, 5, 16, -6, -36, -32, -42, -62, + -55, -39, -29, -15, -14, -34, -30, 20, 59, 82, 79, 66, 58, 45, 38, 9, + 1, -7, -11, -16, -19, -3, -6, -6, 9, 5, -22, -32, -32, -58, -70, -56, + -42, -24, -16, -25, -39, -9, 41, 72, 86, 73, 65, 46, 40, 30, -4, -7, + -14, -12, -20, -3, 4, -5, 1, 8, -9, -27, -25, -40, -67, -67, -55, -38, + -24, -17, -25, -28, 16, 61, 81, 82, 71, 60, 37, 42, 17, -14, -17, -11, + -13, -8, 10, 2, -2, 1, -1, -17, -20, -26, -54, -69, -70, -58, -34, -25, + -16, -23, -9, 37, 70, 87, 80, 68, 44, 38, 39, -5, -27, -19, -12, -6, + 13, 10, 4, 1, 1, -5, -19, -20, -37, -59, -71, -71, -54, -35, -17, -9, + -20, 11, 49, 80, 86, 72, 54, 36, 45, 23, -25, -34, -16, -9, 11, 17, + 8, 5, -4, -2, -15, -19, -26, -50, -69, -77, -71, -51, -29, -7, -11, -6, + 26, 64, 87, 78, 60, 40, 42, 45, 2, -38, -34, -12, 10, 24, 10, 11, + 3, -1, -6, -20, -16, -31, -61, -81, -80, -69, -41, -16, -5, -8, 10, 47, + 81, 86, 70, 44, 36, 48, 32, -21, -48, -31, -3, 24, 24, 10, 15, 0, + 2, -17, -21, -18, -45, -81, -87, -80, -57, -33, -11, -6, 2, 30, 74, 86, + 77, 55, 34, 42, 48, 13, -39, -50, -20, 15, 34, 14, 16, 12, 4, -5, + -26, -16, -19, -64, -92, -91, -65, -43, -26, -12, -1, 16, 47, 83, 76, 66, + 40, 33, 45, 33, -8, -52, -41, -5, 32, 30, 15, 25, 13, 8, -22, -28, + -11, -34, -85, -101, -86, -52, -36, -25, -13, 15, 32, 69, 80, 69, 52, 32, + 37, 39, 19, -30, -54, -24, 10, 38, 25, 25, 22, 18, -6, -35, -20, -14, + -59, -98, -99, -68, -41, -30, -23, 5, 28, 52, 74, 67, 59, 43, 32, 35, + 32, -2, -47, -38, -13, 23, 33, 31, 26, 27, 16, -29, -37, -15, -33, -80, + -104, -89, -54, -35, -31, -11, 17, 42, 63, 68, 60, 59, 37, 27, 33, 22, + -28, -37, -26, 3, 32, 38, 30, 25, 30, -3, -41, -29, -23, -55, -90, -98, + -76, -39, -32, -21, 4, 36, 52, 61, 61, 63, 48, 24, 28, 34, -10, -31, + -29, -14, 15, 37, 37, 28, 31, 19, -27, -40, -24, -38, -69, -95, -96, -60, + -32, -26, -10, 19, 45, 53, 58, 59, 58, 29, 23, 39, 14, -21, -25, -23, + 1, 27, 43, 34, 34, 21, 0, -36, -32, -31, -49, -84, -102, -83, -41, -22, + -19, -1, 35, 49, 52, 53, 56, 39, 23, 34, 33, -3, -23, -22, -10, 17, + 36, 36, 39, 26, 8, -16, -34, -29, -36, -61, -93, -95, -58, -26, -18, -11, + 22, 48, 53, 53, 51, 41, 31, 33, 37, 16, -15, -24, -14, 4, 29, 34, + 41, 32, 8, -7, -19, -28, -30, -54, -83, -101, -76, -40, -20, -21, 1, 36, + 54, 55, 44, 33, 32, 35, 36, 30, 7, -26, -19, -5, 22, 36, 37, 37, + 15, -3, -5, -15, -24, -43, -75, -94, -87, -47, -29, -25, -14, 26, 48, 62, + 49, 29, 23, 35, 45, 38, 19, -16, -28, -7, 10, 29, 32, 38, 23, -2, + -10, -6, -12, -28, -67, -90, -98, -59, -32, -28, -25, 3, 43, 56, 59, 25, + 16, 24, 46, 43, 31, 0, -31, -14, 5, 25, 29, 32, 29, 6, -13, -6, + -3, -8, -49, -85, -97, -75, -31, -30, -30, -12, 31, 50, 61, 40, 12, 14, + 34, 53, 43, 20, -23, -20, -3, 21, 29, 23, 24, 15, -10, -8, -1, 2, + -25, -75, -98, -92, -42, -31, -35, -24, 14, 41, 50, 49, 22, 11, 20, 45, + 52, 39, 0, -26, -12, 9, 35, 25, 18, 14, 1, -13, -6, 4, 3, -49, + -89, -102, -61, -27, -30, -27, -4, 34, 46, 46, 32, 17, 13, 26, 47, 50, + 29, -19, -22, -4, 30, 37, 15, 7, 7, -5, -10, -4, 9, -20, -72, -100, + -86, -41, -33, -31, -16, 18, 43, 34, 32, 27, 23, 15, 31, 47, 48, 9, + -24, -16, 12, 43, 25, -2, 0, 9, -9, -15, 2, 8, -40, -87, -99, -69, + -37, -31, -19, 6, 38, 35, 25, 31, 35, 26, 18, 36, 49, 40, -10, -22, + -9, 29, 40, 6, -12, 6, 6, -16, -11, 9, -6, -61, -95, -90, -58, -35, + -26, -5, 23, 36, 18, 21, 36, 41, 28, 22, 38, 52, 23, -17, -17, 7, + 39, 21, -12, -13, 16, -8, -22, -5, 6, -25, -77, -93, -79, -46, -30, -11, + 15, 36, 22, 5, 29, 47, 47, 24, 22, 41, 48, 7, -15, -4, 22, 33, + 6, -23, 4, 8, -21, -15, -1, -5, -49, -79, -92, -71, -43, -20, 11, 31, + 29, 4, 16, 40, 55, 41, 22, 31, 50, 25, -9, -2, 8, 23, 16, -17, + -6, 8, -10, -15, -6, -4, -29, -56, -80, -86, -61, -42, 0, 30, 33, 12, + 2, 24, 47, 55, 37, 28, 39, 40, 4, -1, 6, 6, 16, -4, -13, 1, + -2, -9, -11, -11, -21, -35, -55, -82, -80, -64, -24, 27, 36, 23, 3, 10, + 35, 61, 55, 40, 35, 35, 19, 6, 12, 4, 1, 3, -12, -3, -2, -4, + -4, -14, -23, -30, -37, -58, -83, -84, -58, 8, 37, 33, 11, 3, 20, 46, + 62, 55, 50, 28, 16, 12, 15, 9, -4, -9, -9, -4, -5, -7, 2, -7, + -28, -35, -31, -36, -67, -90, -86, -23, 28, 38, 25, 5, 13, 34, 58, 58, + 69, 50, 15, 10, 20, 16, -3, -14, -14, -2, 1, -12, -3, 3, -20, -36, + -39, -26, -46, -81, -98, -61, 6, 27, 30, 16, 12, 25, 50, 57, 66, 74, + 31, 4, 16, 21, 8, -13, -21, -10, 8, -5, -11, 6, -8, -31, -40, -29, + -30, -66, -93, -84, -22, 17, 22, 26, 16, 20, 43, 56, 56, 70, 60, 17, + 8, 18, 15, -10, -26, -21, 6, 7, -12, -1, 1, -20, -33, -34, -31, -51, + -79, -92, -52, -6, 9, 19, 23, 21, 40, 57, 59, 60, 72, 43, 17, 13, + 18, 3, -23, -32, -5, 14, -7, -11, 7, -12, -26, -31, -37, -46, -66, -85, + -67, -21, -5, 3, 16, 22, 37, 54, 59, 55, 60, 58, 30, 16, 13, 11, + -15, -34, -23, 9, 7, -12, -2, -4, -19, -16, -31, -49, -64, -76, -72, -35, + -12, -14, 0, 15, 34, 53, 60, 58, 53, 57, 43, 30, 18, 12, -4, -27, + -28, -8, 14, -3, -9, -2, -13, -9, -17, -49, -66, -70, -69, -44, -15, -19, + -11, 2, 21, 53, 64, 68, 55, 48, 44, 36, 28, 15, -1, -18, -23, -19, + -4, 5, -3, 1, -9, -7, -1, -35, -70, -74, -70, -50, -21, -14, -22, -7, + -1, 39, 66, 77, 69, 46, 38, 36, 38, 22, 5, -12, -16, -12, -17, -8, + -5, 2, 1, -6, 5, -13, -64, -78, -73, -60, -31, -14, -17, -16, -10, 7, + 61, 79, 81, 57, 38, 28, 32, 24, 9, -4, -10, -4, -11, -20, -13, -2, + 11, 4, 4, -2, -41, -76, -76, -69, -43, -22, -12, -17, -14, -14, 25, 74, + 92, 79, 47, 31, 26, 26, 11, 3, -5, 0, 0, -20, -26, -11, 9, 14, + 9, 4, -24, -61, -76, -74, -53, -30, -13, -8, -12, -25, -8, 51, 90, 93, + 63, 42, 21, 18, 13, 6, 2, 1, 8, -12, -30, -27, -2, 14, 18, 11, + -13, -48, -68, -79, -70, -44, -19, -2, -5, -21, -31, 18, 77, 100, 81, 55, + 29, 7, 8, 6, 7, 4, 14, 0, -26, -34, -13, 9, 16, 17, 1, -35, + -58, -70, -82, -62, -29, -2, 1, -14, -36, -15, 50, 89, 95, 71, 46, 5, + -6, 4, 11, 3, 11, 14, -12, -31, -22, -2, 8, 16, 16, -15, -53, -56, + -80, -81, -41, -5, 9, -3, -30, -34, 17, 73, 97, 86, 63, 25, -12, -6, + 11, 13, 1, 15, 4, -19, -25, -5, 2, 9, 19, 10, -39, -48, -61, -95, + -67, -17, 12, 8, -23, -43, -9, 49, 85, 91, 76, 50, 1, -23, 2, 22, + 5, 2, 14, -5, -23, -12, 0, -2, 13, 17, -15, -48, -43, -83, -88, -38, + 5, 17, -11, -41, -28, 27, 67, 83, 82, 65, 29, -21, -18, 21, 19, -7, + 3, 6, -8, -14, 1, 0, 0, 13, 2, -34, -42, -59, -99, -63, -12, 17, + 0, -35, -42, 1, 53, 69, 79, 72, 53, -1, -34, 2, 32, 3, -8, 1, + 2, -2, -3, 8, -2, 3, 7, -18, -40, -39, -76, -81, -35, 9, 17, -22, + -46, -24, 34, 59, 68, 74, 66, 27, -26, -22, 31, 24, -10, -11, 0, 14, + 1, 5, 8, -5, -2, -10, -34, -35, -48, -77, -59, -13, 20, -4, -37, -35, + 8, 47, 55, 68, 74, 49, -4, -34, 10, 39, 1, -13, -11, 14, 14, 3, + 20, 6, -9, -14, -29, -37, -28, -56, -66, -42, 9, 9, -25, -38, -14, 27, + 45, 54, 72, 61, 21, -25, -14, 31, 19, -10, -15, -2, 22, 6, 22, 24, + -4, -20, -28, -38, -24, -28, -54, -57, -20, 14, -10, -29, -26, 2, 29, 39, + 61, 66, 39, -6, -25, 16, 30, 0, -16, -8, 12, 13, 18, 38, 10, -20, + -36, -34, -31, -16, -33, -56, -42, 0, 0, -21, -22, -12, 11, 25, 49, 68, + 53, 14, -20, -3, 29, 15, -11, -12, 3, 13, 13, 42, 34, -12, -39, -37, + -27, -22, -18, -44, -50, -21, 3, -12, -15, -18, -5, 9, 27, 60, 60, 32, + -6, -12, 21, 25, -4, -12, -2, 7, 8, 33, 53, 8, -37, -41, -25, -22, + -16, -27, -47, -34, -10, -10, -15, -15, -15, -5, 5, 41, 63, 44, 12, -11, + 10, 32, 10, -14, -8, 8, 5, 19, 53, 34, -24, -43, -25, -14, -15, -19, + -35, -35, -20, -12, -8, -14, -17, -19, -13, 19, 55, 53, 22, -8, 4, 31, + 26, -8, -13, 6, 10, 7, 39, 50, -2, -41, -31, -10, -13, -23, -31, -33, + -24, -15, -7, -13, -16, -22, -23, -6, 38, 55, 34, 1, -1, 23, 34, 9, + -18, -3, 14, 9, 20, 51, 24, -28, -37, -6, 2, -20, -30, -27, -21, -22, + -6, -12, -17, -21, -32, -27, 9, 49, 43, 12, -4, 14, 34, 24, -9, -12, + 12, 19, 13, 30, 37, -3, -35, -15, 12, -10, -31, -30, -15, -18, -13, -3, + -19, -20, -31, -35, -17, 28, 44, 22, 0, 7, 28, 27, 5, -15, 1, 20, + 20, 17, 28, 19, -21, -23, 12, 8, -22, -32, -20, -8, -15, 0, -13, -23, + -25, -43, -36, 4, 37, 30, 11, 4, 22, 28, 15, 0, -10, 9, 23, 14, + 11, 24, 5, -21, 2, 17, -8, -27, -27, -7, -10, -6, -1, -20, -26, -39, + -53, -20, 23, 36, 17, 7, 14, 28, 16, 12, -3, 2, 19, 16, 2, 14, + 19, -8, -5, 17, 4, -15, -26, -10, -4, -12, 1, -8, -23, -38, -58, -41, + 0, 29, 23, 11, 16, 21, 15, 9, 11, -6, 11, 20, 4, 3, 24, 5, + -5, 10, 17, -6, -15, -15, 6, -15, -8, 0, -11, -37, -54, -56, -24, 13, + 29, 12, 15, 20, 19, 6, 16, 5, -2, 10, 11, -3, 22, 18, 0, 6, + 20, 10, -6, -12, 1, -6, -23, 0, 1, -23, -56, -60, -43, -10, 19, 22, + 15, 22, 18, 6, 11, 17, -2, -5, 10, 4, 7, 23, 1, 3, 16, 22, + 5, -1, 0, 5, -21, -14, 6, -6, -46, -64, -54, -29, 1, 17, 18, 24, + 25, 10, 1, 17, 9, -8, -1, 15, 6, 20, 11, 2, 14, 25, 16, 9, + 5, 7, -11, -26, -5, 4, -27, -62, -62, -40, -17, 8, 11, 21, 29, 17, + -2, 10, 17, -8, -16, 6, 13, 11, 15, 3, 8, 24, 26, 14, 12, 12, + 4, -26, -15, 1, -12, -50, -64, -48, -27, -10, 5, 8, 32, 31, 1, -1, + 18, 0, -23, -6, 18, 14, 11, 5, 3, 17, 35, 25, 16, 18, 14, -11, + -27, -8, -6, -30, -55, -53, -36, -20, -5, 5, 14, 43, 13, -6, 11, 11, + -22, -22, 7, 19, 13, 10, 1, 7, 30, 36, 22, 23, 23, 6, -28, -20, + -6, -23, -43, -49, -43, -29, -19, 3, 1, 34, 29, -4, 3, 13, -13, -32, + -3, 20, 14, 11, 5, 2, 23, 42, 34, 22, 23, 21, -13, -26, -14, -19, + -32, -38, -43, -32, -29, -6, 4, 16, 35, 9, -4, 11, 0, -33, -22, 9, + 13, 12, 9, 3, 14, 35, 47, 34, 23, 27, 8, -22, -19, -16, -30, -29, + -42, -33, -32, -23, 4, 9, 24, 20, -1, 3, 10, -20, -36, -5, 13, 9, + 11, 8, 8, 21, 43, 48, 27, 22, 23, -7, -25, -20, -28, -25, -31, -36, + -28, -33, -8, 11, 14, 14, 6, -8, 7, -5, -39, -25, 7, 14, 9, 10, + 12, 15, 29, 55, 41, 23, 22, 9, -12, -23, -28, -24, -23, -34, -26, -31, + -21, 9, 19, 9, 1, -3, -1, 7, -32, -38, -9, 13, 11, 9, 11, 14, + 21, 46, 53, 32, 24, 12, -2, -16, -26, -24, -17, -34, -33, -25, -24, -4, + 17, 14, -3, -4, -7, 3, -13, -46, -25, 2, 17, 5, 8, 12, 18, 32, + 56, 38, 29, 15, 8, -4, -22, -30, -14, -22, -42, -25, -15, -10, 6, 17, + 1, -5, -7, -10, -2, -38, -37, -7, 15, 9, 2, 8, 21, 26, 43, 44, + 29, 18, 7, 12, -9, -25, -24, -11, -35, -43, -17, -5, 3, 10, 9, -3, + -3, -23, -9, -23, -45, -22, 7, 15, 2, 4, 17, 33, 31, 45, 35, 23, + 8, 17, 6, -16, -26, -14, -20, -48, -27, -2, 6, 11, 9, -1, 6, -15, + -28, -18, -39, -32, -7, 11, 7, 6, 7, 33, 30, 31, 41, 27, 7, 13, + 24, -3, -18, -22, -9, -40, -41, -10, 4, 9, 17, 3, 5, -4, -37, -29, + -29, -35, -19, 1, 10, 3, 7, 25, 41, 19, 31, 32, 13, 5, 27, 14, + -6, -19, -12, -23, -48, -22, 7, 8, 16, 11, 1, 6, -29, -46, -32, -32, + -20, -5, 7, 4, 3, 21, 43, 32, 15, 29, 16, 8, 19, 26, 3, -9, + -22, -13, -42, -37, -8, 11, 14, 25, 9, 4, -17, -50, -44, -30, -25, -14, + -1, 11, 1, 18, 36, 41, 12, 14, 18, 14, 15, 20, 17, 6, -14, -18, + -27, -39, -19, 5, 12, 24, 27, 8, -13, -49, -53, -32, -27, -19, -12, 7, + 7, 12, 31, 43, 26, 2, 8, 14, 22, 13, 17, 18, 6, -17, -26, -36, + -28, -6, 14, 25, 35, 20, -6, -42, -57, -37, -23, -23, -20, 0, 9, 8, + 25, 41, 40, 7, -4, 1, 23, 21, 14, 22, 20, -2, -24, -34, -31, -13, + 8, 24, 37, 33, 8, -32, -62, -44, -20, -22, -27, -9, 9, 7, 16, 31, + 42, 20, -10, -13, 10, 26, 7, 13, 25, 18, -11, -35, -39, -20, 0, 17, + 37, 37, 19, -17, -58, -55, -26, -18, -25, -21, 0, 14, 12, 20, 38, 35, + 0, -19, -9, 24, 19, 3, 21, 31, 17, -24, -42, -30, -3, 13, 34, 42, + 28, -2, -45, -62, -38, -22, -19, -20, -12, 12, 17, 11, 29, 42, 18, -16, + -20, 3, 24, 2, 4, 26, 36, 0, -38, -45, -13, 12, 27, 41, 34, 14, + -27, -62, -55, -30, -19, -15, -16, -2, 18, 11, 14, 37, 31, -6, -22, -12, + 15, 10, -10, 12, 36, 30, -19, -46, -33, 11, 24, 28, 35, 28, -5, -44, + -65, -44, -23, -11, -9, -8, 5, 14, 10, 25, 37, 14, -17, -18, -2, 14, + -7, -6, 23, 43, 10, -33, -38, -9, 24, 24, 28, 30, 11, -21, -57, -61, + -39, -12, -5, -5, -3, 7, 10, 17, 31, 30, -3, -20, -14, 6, 1, -16, + 2, 38, 38, -5, -30, -24, 13, 25, 21, 28, 15, 1, -34, -64, -62, -23, + 0, 2, -1, -1, 5, 14, 24, 33, 14, -12, -23, -4, 7, -18, -18, 18, + 43, 25, -9, -22, -2, 21, 19, 24, 20, 11, -13, -47, -69, -46, -7, 5, + 6, -1, -4, 9, 21, 31, 25, 5, -15, -20, 3, -8, -33, -7, 29, 37, + 20, -10, -10, 9, 15, 17, 14, 12, 1, -23, -55, -70, -30, 5, 13, 2, + -8, -1, 15, 25, 30, 15, -1, -20, -8, -3, -31, -28, 8, 31, 41, 15, + -6, 0, 9, 14, 12, 9, 8, -10, -28, -63, -55, -12, 17, 11, -7, -13, + 8, 22, 26, 19, 9, -7, -13, -5, -23, -39, -10, 17, 41, 38, 8, 0, + 5, 7, 12, 5, 7, -6, -8, -39, -60, -35, 7, 19, 6, -10, -6, 15, + 26, 22, 15, 9, -8, -13, -24, -45, -29, -1, 29, 48, 30, 2, 6, 5, + 9, 5, -1, -5, -4, -13, -51, -51, -16, 20, 13, 0, -11, 7, 25, 22, + 18, 17, 10, -8, -22, -50, -43, -13, 15, 46, 42, 16, 7, 8, 7, 7, + -1, -6, -10, -4, -27, -45, -36, 5, 16, 7, -5, -5, 20, 22, 19, 19, + 22, 7, -15, -43, -62, -29, 3, 35, 43, 27, 11, 9, 8, 4, 2, -9, + -13, -7, -15, -30, -43, -16, 12, 13, 4, -8, 12, 24, 17, 16, 24, 25, + -3, -38, -72, -52, -9, 25, 42, 30, 21, 8, 14, 4, 6, -3, -13, -12, + -13, -18, -36, -34, 3, 14, 9, -9, 5, 26, 18, 13, 26, 34, 13, -31, + -69, -68, -16, 19, 35, 29, 22, 6, 16, 3, 2, 6, -5, -15, -20, -19, + -21, -34, -17, 8, 16, -2, -3, 24, 27, 16, 23, 34, 32, -10, -56, -80, + -45, 6, 29, 29, 22, 10, 14, 13, -4, 6, 7, -8, -27, -27, -18, -20, + -28, -8, 14, 8, -7, 11, 29, 21, 17, 25, 35, 16, -36, -77, -67, -14, + 25, 30, 22, 11, 10, 19, 5, 2, 6, 5, -18, -34, -25, -13, -23, -19, + 4, 13, 0, 7, 24, 32, 24, 22, 31, 30, -12, -62, -76, -41, 9, 28, + 24, 15, 6, 18, 16, 6, 6, 7, -7, -32, -37, -16, -18, -24, -8, 11, + 7, 7, 20, 31, 35, 25, 24, 33, 9, -40, -72, -58, -16, 17, 27, 16, + 6, 10, 22, 12, 8, 8, 2, -23, -43, -26, -16, -24, -18, 2, 6, 7, + 21, 29, 36, 32, 21, 27, 22, -21, -57, -67, -38, -4, 26, 21, 9, 3, + 18, 25, 18, 10, 2, -11, -42, -36, -24, -27, -23, -9, 5, 2, 17, 32, + 42, 36, 27, 18, 25, -2, -39, -58, -51, -27, 11, 27, 11, 1, 9, 24, + 25, 21, 5, -8, -31, -37, -30, -33, -24, -15, 0, -2, 13, 31, 48, 47, + 33, 15, 18, 10, -27, -50, -52, -44, -12, 21, 21, 5, -1, 13, 33, 30, + 16, -6, -26, -39, -33, -35, -28, -20, -10, -8, 4, 27, 51, 61, 45, 21, + 13, 14, -11, -39, -40, -44, -36, 1, 25, 16, 1, 2, 27, 40, 28, 3, + -22, -38, -38, -32, -33, -21, -18, -14, -8, 18, 50, 66, 60, 27, 7, 12, + -3, -31, -36, -37, -46, -27, 18, 26, 5, -3, 8, 35, 43, 16, -14, -36, + -43, -32, -32, -25, -16, -23, -14, 6, 46, 64, 74, 49, 9, 4, 7, -23, + -37, -34, -41, -44, -8, 31, 19, -5, 0, 21, 47, 33, -2, -33, -43, -43, + -32, -29, -14, -22, -23, -6, 34, 62, 75, 71, 30, 0, 8, -13, -37, -34, + -35, -45, -34, 18, 31, 5, -5, 7, 35, 44, 12, -23, -45, -49, -40, -29, + -18, -18, -27, -15, 22, 57, 74, 80, 57, 15, 4, -1, -39, -34, -34, -40, + -46, -4, 25, 13, -3, 2, 22, 44, 25, -10, -38, -44, -50, -34, -20, -14, + -31, -21, 5, 47, 63, 81, 76, 38, 8, 9, -30, -45, -35, -36, -43, -20, + 9, 14, 5, 3, 7, 36, 32, 3, -32, -43, -50, -40, -28, -13, -24, -28, + -2, 35, 56, 73, 86, 58, 23, 21, -10, -49, -45, -33, -39, -25, -3, 5, + 5, 8, 5, 18, 32, 17, -19, -45, -49, -41, -35, -22, -19, -31, -12, 28, + 52, 59, 76, 74, 41, 31, 10, -39, -58, -41, -32, -27, -5, -3, 3, 8, + 8, 10, 24, 22, -4, -39, -52, -42, -35, -30, -18, -28, -22, 20, 53, 52, + 60, 73, 62, 43, 31, -18, -56, -61, -35, -28, -9, -6, -3, 3, 9, 10, + 12, 18, 8, -23, -53, -50, -31, -35, -24, -28, -26, 3, 48, 55, 52, 59, + 66, 57, 46, 7, -37, -67, -53, -24, -11, -4, -6, 0, 3, 13, 10, 7, + 10, -6, -38, -58, -36, -30, -30, -26, -26, -11, 33, 60, 56, 49, 59, 67, + 58, 32, -15, -58, -69, -34, -14, -8, -6, 1, -4, 7, 8, 2, 4, 4, + -21, -54, -49, -30, -30, -28, -29, -18, 13, 53, 60, 50, 44, 63, 61, 49, + 11, -33, -71, -49, -19, -9, -10, 5, 2, -1, 4, -1, 4, 5, -5, -38, + -55, -40, -28, -21, -25, -26, -2, 40, 61, 56, 39, 53, 66, 54, 33, -4, + -55, -63, -29, -18, -12, 3, 11, -4, -4, -9, -3, 4, 4, -18, -49, -49, + -35, -18, -18, -25, -16, 24, 51, 60, 42, 43, 66, 57, 42, 21, -23, -63, + -44, -26, -18, -10, 13, 9, -8, -18, -17, 5, 5, -4, -35, -47, -42, -24, + -11, -20, -21, 5, 36, 56, 53, 37, 60, 59, 40, 34, 11, -34, -52, -33, + -21, -15, 1, 21, 2, -19, -33, -10, 8, 3, -20, -42, -41, -33, -14, -16, + -18, -7, 21, 43, 54, 39, 47, 61, 44, 31, 27, -4, -41, -47, -28, -23, + -9, 11, 15, -9, -34, -34, 1, 10, -2, -30, -38, -34, -18, -15, -17, -10, + 10, 27, 43, 42, 42, 53, 54, 36, 24, 14, -15, -42, -36, -32, -22, 1, + 13, 7, -26, -48, -24, 11, 10, -14, -35, -32, -19, -16, -15, -11, 5, 18, + 31, 34, 41, 48, 51, 46, 28, 26, 8, -26, -36, -33, -35, -12, 7, 12, + -8, -45, -47, -9, 13, 5, -24, -32, -17, -14, -16, -11, 6, 14, 20, 26, + 27, 47, 49, 49, 34, 25, 22, -6, -31, -27, -39, -30, -10, 13, 6, -28, + -57, -31, -3, 12, -7, -28, -19, -8, -21, -18, -2, 18, 17, 17, 19, 34, + 47, 53, 42, 34, 30, 13, -22, -20, -30, -44, -32, -4, 15, -7, -45, -49, + -18, 4, 10, -14, -18, 0, -11, -26, -7, 15, 23, 10, 10, 20, 34, 51, + 49, 38, 41, 30, -8, -28, -15, -39, -47, -28, 5, 10, -26, -55, -34, -9, + 10, 3, -13, -4, 1, -21, -19, 3, 25, 13, 5, 9, 18, 36, 54, 39, + 40, 46, 16, -27, -17, -23, -47, -47, -18, 9, -2, -47, -51, -23, 0, 4, + 0, 1, 9, -11, -20, -9, 20, 23, 4, 2, 8, 20, 45, 46, 38, 53, + 41, -13, -30, -19, -36, -52, -40, -9, 5, -23, -53, -35, -6, 4, 3, 6, + 10, 5, -16, -17, 6, 30, 12, 0, -4, 9, 32, 47, 43, 55, 57, 16, + -27, -30, -28, -44, -52, -31, -6, -8, -43, -43, -15, -1, -1, 8, 10, 13, + 2, -18, -11, 21, 23, 6, -5, 0, 19, 33, 41, 56, 67, 44, -5, -34, + -35, -32, -46, -47, -27, -7, -30, -44, -23, -2, -2, 3, 7, 14, 18, -1, + -19, 4, 20, 16, -5, -9, 10, 27, 30, 46, 65, 63, 26, -22, -42, -34, + -41, -46, -40, -18, -25, -39, -28, -4, 1, -1, 5, 10, 24, 19, -8, -6, + 11, 20, 4, -13, 2, 22, 24, 36, 59, 70, 51, 5, -39, -39, -43, -47, + -45, -31, -30, -39, -33, -7, 1, -2, 1, 4, 19, 25, 5, -5, 1, 12, + 13, -12, -12, 18, 25, 21, 46, 68, 69, 36, -17, -39, -44, -51, -43, -33, + -35, -41, -38, -15, 8, 0, 0, 0, 13, 26, 19, 5, 0, -1, 10, -2, + -14, 5, 25, 19, 29, 54, 71, 59, 9, -31, -43, -56, -50, -32, -38, -47, + -42, -26, 8, 10, -3, -3, 7, 20, 23, 16, 8, -5, 3, 2, -17, -6, + 22, 20, 18, 40, 66, 71, 37, -13, -36, -52, -61, -38, -32, -47, -51, -38, + -7, 19, 6, -6, 4, 14, 19, 21, 19, 2, -5, 0, -13, -12, 14, 21, + 13, 27, 53, 71, 57, 12, -25, -42, -61, -54, -33, -38, -52, -50, -22, 13, + 17, -4, 1, 16, 17, 19, 25, 11, -2, -2, -11, -18, 6, 21, 15, 18, + 43, 66, 67, 34, -7, -30, -49, -58, -42, -36, -42, -54, -36, -2, 20, 4, + -4, 11, 16, 17, 26, 17, 4, 1, -8, -22, -8, 17, 16, 17, 27, 55, + 66, 48, 10, -25, -36, -49, -52, -42, -39, -47, -46, -18, 13, 14, -1, 3, + 13, 19, 27, 18, 2, 5, 1, -14, -17, 6, 13, 16, 26, 44, 64, 54, + 27, -15, -30, -33, -49, -50, -43, -44, -45, -30, -1, 13, 3, 6, 10, 22, + 30, 21, 3, 2, 2, -3, -18, -9, 8, 11, 23, 35, 55, 58, 37, 1, + -25, -18, -33, -51, -48, -46, -41, -30, -17, 6, 3, 7, 9, 16, 30, 27, + 9, 3, 3, 1, -10, -18, 0, 3, 12, 37, 46, 52, 40, 15, -23, -16, + -14, -39, -48, -48, -45, -31, -20, -7, 1, 4, 14, 13, 21, 26, 16, 2, + 1, 1, 1, -16, -12, 1, 5, 29, 50, 47, 39, 21, -11, -21, -3, -23, + -41, -45, -47, -37, -21, -13, -6, 1, 16, 20, 22, 22, 18, 10, 2, 1, + 6, -7, -16, -10, 0, 16, 51, 53, 38, 22, -1, -21, -1, -4, -30, -41, + -45, -45, -28, -13, -13, -8, 13, 24, 26, 15, 13, 15, 8, -4, 1, -2, + -11, -15, -11, 2, 40, 56, 44, 21, 1, -16, -10, 5, -16, -32, -38, -41, + -36, -22, -14, -15, 4, 24, 32, 18, 7, 14, 14, 4, -2, -1, -8, -12, + -15, -6, 24, 50, 51, 28, 1, -13, -14, 4, 1, -18, -31, -35, -36, -33, + -21, -21, -5, 19, 38, 23, 3, 5, 17, 15, 2, -3, -7, -8, -18, -14, + 12, 39, 50, 35, 2, -14, -14, -3, 6, -6, -24, -27, -32, -40, -25, -22, + -12, 8, 35, 34, 10, 2, 5, 19, 9, -6, -4, -3, -15, -18, 4, 30, + 42, 40, 13, -17, -16, -7, 3, 5, -14, -21, -24, -41, -37, -23, -18, -1, + 22, 37, 17, 4, -1, 11, 17, 1, -7, -4, -12, -22, -6, 24, 35, 33, + 25, -7, -26, -15, 2, 14, 3, -16, -19, -33, -42, -27, -23, -10, 15, 28, + 27, 8, 2, 5, 20, 11, -4, -6, -7, -19, -11, 17, 31, 26, 25, 6, + -24, -25, -6, 11, 14, -3, -13, -25, -39, -33, -23, -17, 7, 19, 26, 19, + 4, 1, 15, 14, -1, -5, -10, -14, -22, 8, 33, 28, 20, 16, -13, -26, + -17, 9, 22, 5, -8, -18, -37, -35, -28, -23, -4, 12, 16, 28, 12, 1, + 12, 18, 3, -2, -9, -10, -27, -10, 29, 34, 18, 16, 2, -26, -29, -3, + 27, 19, -4, -10, -29, -36, -30, -29, -12, 9, 3, 18, 21, 7, 12, 17, + 3, -2, -7, -7, -19, -26, 15, 36, 21, 12, 9, -15, -30, -18, 19, 30, + 6, -5, -21, -32, -25, -29, -22, 6, 0, 3, 20, 14, 12, 18, 12, 0, + -9, -12, -9, -26, -4, 31, 28, 11, 10, -6, -24, -29, 3, 35, 19, -3, + -15, -26, -19, -23, -31, -6, 4, -7, 13, 19, 17, 20, 18, 9, -9, -19, + -5, -17, -20, 16, 34, 18, 9, 0, -16, -25, -10, 30, 29, 3, -10, -19, + -19, -16, -29, -19, 3, -9, -5, 13, 21, 24, 16, 13, 1, -23, -14, -12, + -19, -2, 28, 21, 8, 1, -11, -23, -19, 16, 41, 14, -8, -13, -9, -13, + -18, -27, -4, -5, -12, -1, 19, 31, 18, 10, 16, -20, -22, -13, -14, -12, + 18, 26, 12, 4, -4, -17, -18, -1, 38, 31, -5, -14, -7, -7, -14, -24, + -13, -3, -13, -12, 7, 30, 34, 14, 18, -5, -33, -18, -10, -14, 1, 19, + 14, 6, -8, -13, -15, -2, 19, 40, 8, -13, -9, -4, -8, -18, -20, -9, + -14, -16, -7, 22, 37, 23, 16, 10, -26, -28, -13, -9, -5, 14, 14, 9, + -9, -17, -13, -1, 8, 31, 26, -6, -10, -4, -2, -12, -19, -11, -11, -17, + -12, 6, 34, 29, 15, 16, -7, -35, -25, -9, -6, 8, 14, 12, 1, -15, + -14, 3, 10, 19, 29, 8, -10, -9, 1, -7, -20, -10, -9, -17, -17, -1, + 30, 35, 18, 15, 5, -28, -33, -17, -6, -4, 8, 13, 5, -14, -19, 1, + 14, 14, 20, 17, 0, -8, -2, -3, -14, -18, -9, -12, -18, -6, 21, 37, + 26, 7, 10, -13, -33, -24, -6, -2, 0, 9, 11, -5, -19, -7, 16, 18, + 13, 18, 11, -2, -6, -3, -6, -22, -10, -11, -16, -11, 17, 34, 32, 9, + 9, 2, -26, -30, -14, -2, -5, 3, 8, 3, -16, -12, 8, 21, 13, 13, + 15, 2, -3, -5, -5, -20, -16, -8, -16, -20, 6, 32, 34, 14, -4, 6, + -12, -26, -20, -7, -6, -4, 4, 7, -2, -15, 1, 17, 15, 9, 15, 10, + 0, -3, -7, -15, -22, -4, -7, -19, -7, 29, 36, 20, -6, -1, 0, -17, + -19, -12, -9, -7, -1, 2, 6, -3, -8, 10, 18, 9, 8, 21, 4, -2, + -8, -13, -20, -12, -2, -16, -14, 14, 39, 26, -3, -17, 1, -6, -16, -12, + -7, -9, -9, 0, 3, 11, -3, 0, 15, 13, 3, 19, 12, -8, -6, -14, + -19, -16, 0, -6, -17, 3, 33, 35, 5, -18, -9, 1, -15, -11, -8, -8, + -16, -8, 1, 15, 15, 3, 11, 19, 2, 12, 26, 0, -10, -13, -21, -11, + 1, -1, -18, -2, 23, 35, 17, -12, -21, -2, -8, -9, -8, -9, -12, -17, + -5, 10, 22, 8, 7, 18, 7, -1, 23, 13, -13, -19, -23, -14, 5, 2, + -15, -13, 17, 30, 22, -3, -24, -7, -2, -9, -6, -10, -8, -21, -19, 5, + 22, 22, 13, 15, 13, -3, 11, 18, -4, -20, -28, -20, 4, 11, -10, -18, + 6, 26, 17, 3, -20, -12, -2, -11, -7, -8, -8, -16, -27, -7, 19, 30, + 21, 19, 15, 4, 3, 18, 2, -17, -33, -24, 0, 17, 1, -16, -6, 24, + 19, 5, -17, -18, 1, -8, -12, -7, -11, -10, -22, -14, 10, 29, 29, 32, + 23, 13, 0, 9, 6, -12, -28, -36, -7, 13, 12, -8, -17, 12, 24, 6, + -10, -20, 1, 1, -13, -9, -12, -16, -20, -17, 0, 21, 27, 31, 35, 20, + 7, 0, 2, -13, -19, -37, -19, 8, 18, 9, -16, -9, 20, 11, -2, -25, + -13, 8, -4, -16, -13, -18, -23, -17, 0, 14, 29, 27, 43, 35, 17, -1, + -4, -13, -22, -29, -31, -2, 17, 20, -5, -21, 6, 16, 5, -16, -25, 4, + 11, -12, -17, -20, -27, -19, -2, 13, 26, 27, 36, 46, 32, 7, -8, -18, + -26, -25, -32, -16, 12, 26, 11, -18, -11, 4, 13, -1, -27, -12, 14, 2, + -21, -23, -31, -26, -11, 10, 24, 30, 29, 43, 50, 24, -4, -16, -34, -28, + -28, -27, -1, 27, 24, -5, -21, -12, 6, 16, -13, -28, 1, 13, -9, -23, + -33, -32, -18, 2, 24, 34, 33, 34, 50, 49, 12, -11, -34, -37, -28, -25, + -14, 14, 28, 10, -10, -25, -9, 21, 15, -27, -15, 12, 2, -18, -33, -36, + -24, -7, 13, 30, 39, 42, 35, 54, 36, 1, -29, -45, -35, -26, -17, -1, + 20, 19, 2, -23, -30, 1, 30, -5, -32, 1, 7, -8, -27, -37, -25, -12, + -1, 23, 37, 51, 38, 41, 49, 16, -15, -41, -40, -31, -21, -11, 4, 19, + 15, -8, -33, -19, 22, 20, -21, -13, 2, -6, -17, -36, -32, -11, -8, 9, + 28, 48, 54, 36, 48, 30, 3, -30, -41, -34, -24, -15, -6, 2, 17, 8, + -19, -37, 0, 31, 3, -20, -6, -4, -7, -31, -35, -9, -3, -4, 16, 37, + 62, 44, 41, 33, 13, -11, -36, -39, -29, -21, -11, -11, 6, 14, -2, -28, + -24, 15, 22, -5, -10, -11, -10, -20, -35, -13, 2, -5, 2, 21, 55, 64, + 46, 37, 19, 2, -23, -36, -28, -23, -17, -18, -17, 10, 11, -12, -32, -7, + 23, 16, -7, -14, -17, -8, -27, -23, 1, 1, 0, 6, 31, 63, 60, 46, + 21, 7, -12, -29, -24, -18, -24, -23, -27, -11, 11, 5, -16, -19, 11, 21, + 4, -9, -21, -15, -17, -30, -5, 7, 2, -1, 9, 48, 65, 59, 30, 13, + -4, -25, -19, -6, -22, -33, -32, -31, -3, 7, -3, -20, -4, 14, 11, -1, + -11, -19, -13, -20, -16, 9, 7, 2, -3, 27, 60, 69, 44, 12, 7, -18, + -20, 1, -4, -35, -38, -34, -22, -9, 4, -2, -11, 8, 8, 2, -6, -19, + -23, -14, -16, 3, 13, 2, 2, 12, 47, 65, 62, 22, 10, -3, -21, -9, + 9, -17, -46, -40, -34, -23, -6, 4, -1, 3, 7, 2, -4, -13, -25, -18, + -11, -4, 18, 3, -2, 5, 30, 58, 66, 39, 12, 9, -10, -18, 8, 5, + -41, -49, -38, -33, -18, -4, 2, 7, 8, 2, -7, -12, -18, -23, -12, -6, + 18, 15, -8, 0, 21, 44, 62, 48, 22, 14, 7, -16, -7, 18, -18, -52, + -44, -42, -32, -18, -1, 12, 10, 6, -8, -20, -11, -18, -19, -10, 14, 24, + 2, -5, 14, 34, 57, 51, 27, 19, 20, -1, -13, 15, -1, -42, -45, -49, + -38, -28, -15, 13, 19, 10, -1, -23, -16, -11, -24, -10, 6, 21, 14, -5, + 3, 24, 48, 58, 29, 17, 24, 18, -6, 4, 8, -28, -38, -46, -50, -36, + -29, 3, 22, 15, 4, -18, -31, -7, -20, -17, 5, 11, 18, 4, -2, 15, + 37, 58, 35, 11, 26, 31, 11, -2, 6, -13, -32, -39, -55, -45, -38, -17, + 21, 23, 11, -10, -31, -18, -11, -25, 1, 9, 14, 15, 0, 7, 26, 49, + 49, 13, 10, 33, 26, 8, 4, -5, -25, -35, -46, -53, -41, -35, 5, 24, + 17, 0, -25, -26, -14, -24, -9, 6, 5, 17, 6, 6, 20, 38, 55, 30, + 3, 25, 38, 18, 10, -4, -16, -30, -42, -51, -46, -41, -16, 21, 23, 14, + -16, -30, -16, -17, -17, 0, 2, 12, 16, 3, 17, 28, 46, 49, 14, 13, + 39, 30, 17, 4, -9, -20, -38, -49, -50, -50, -34, 4, 21, 20, 4, -29, + -23, -15, -15, -8, -3, 7, 19, 8, 9, 26, 35, 47, 29, 6, 29, 35, + 26, 13, -5, -18, -29, -42, -49, -51, -50, -16, 11, 23, 18, -17, -34, -14, + -15, -9, -10, -2, 17, 14, 5, 21, 33, 44, 38, 14, 23, 37, 30, 20, + 6, -8, -26, -34, -47, -52, -54, -34, 0, 16, 19, 5, -29, -20, -13, -10, + -9, -10, 4, 19, 11, 13, 29, 37, 36, 22, 22, 39, 32, 23, 10, 2, + -18, -32, -40, -54, -56, -49, -23, 8, 17, 11, -15, -26, -11, -13, -9, -15, + -11, 14, 17, 10, 23, 34, 36, 24, 21, 35, 42, 26, 12, 2, -4, -23, + -31, -47, -57, -50, -33, -7, 17, 11, -2, -18, -12, -12, -11, -10, -21, -6, + 18, 19, 21, 33, 35, 28, 23, 34, 51, 40, 12, -2, 1, -9, -27, -43, + -59, -53, -39, -23, 4, 15, 1, -10, -14, -9, -8, -10, -22, -18, 5, 19, + 16, 27, 34, 28, 23, 27, 47, 53, 27, -3, -4, -1, -13, -33, -53, -57, + -45, -31, -13, 14, 4, -4, -11, -9, -9, -11, -19, -28, -16, 10, 24, 23, + 35, 24, 26, 26, 38, 60, 44, 2, -13, -3, -5, -19, -44, -58, -49, -33, + -26, 1, 14, 1, -4, -5, 0, -7, -14, -29, -26, -11, 20, 27, 30, 32, + 21, 27, 34, 59, 58, 22, -11, -10, -6, -10, -29, -55, -53, -38, -34, -16, + 12, 9, -5, -8, 5, 1, -16, -31, -32, -28, 0, 26, 26, 33, 23, 24, + 33, 49, 61, 37, 3, -15, -8, -11, -19, -43, -56, -44, -34, -25, -2, 17, + 5, -11, 2, 12, -2, -23, -32, -35, -23, 14, 26, 27, 35, 23, 32, 45, + 58, 47, 19, -5, -9, -10, -16, -27, -46, -48, -41, -34, -18, 11, 20, -6, + -10, 12, 9, -18, -34, -38, -29, -7, 17, 27, 32, 30, 30, 46, 52, 51, + 28, 6, -8, -9, -15, -24, -32, -41, -45, -40, -30, -1, 23, 10, -12, 2, + 17, -2, -31, -39, -32, -18, -6, 18, 29, 38, 32, 45, 54, 54, 33, 11, + 2, -9, -11, -19, -32, -33, -41, -45, -40, -18, 16, 19, 2, -6, 13, 12, + -20, -43, -35, -21, -18, -5, 21, 35, 36, 46, 58, 52, 38, 17, 9, -5, + -9, -13, -29, -32, -28, -41, -43, -36, 0, 22, 18, -4, -3, 17, 2, -33, + -43, -25, -18, -16, 4, 27, 38, 47, 64, 57, 40, 18, 10, 5, -7, -10, + -22, -39, -24, -30, -42, -39, -22, 13, 28, 14, -9, 3, 17, -16, -51, -36, + -17, -23, -18, 8, 35, 50, 66, 68, 43, 23, 12, 13, -1, -11, -17, -32, + -27, -22, -40, -38, -37, -10, 22, 34, 1, -10, 8, 6, -39, -48, -27, -19, + -25, -10, 18, 49, 66, 78, 54, 26, 17, 16, 3, -7, -15, -25, -29, -12, + -32, -37, -35, -28, 3, 38, 26, -7, -4, 11, -15, -46, -42, -26, -23, -24, + -2, 34, 66, 81, 70, 30, 19, 21, 10, -5, -11, -25, -29, -12, -20, -37, + -33, -39, -17, 25, 46, 6, -11, 2, 0, -29, -44, -41, -30, -27, -17, 12, + 58, 79, 84, 46, 19, 22, 19, 2, -7, -26, -35, -12, -1, -29, -33, -39, + -36, 3, 46, 31, -11, -6, -1, -14, -38, -46, -39, -32, -22, -5, 40, 76, + 88, 64, 23, 22, 30, 12, -8, -20, -39, -22, 0, -13, -29, -33, -43, -20, + 24, 49, 13, -12, 2, -6, -26, -45, -45, -39, -32, -15, 19, 68, 85, 77, + 32, 22, 35, 27, 0, -18, -36, -38, -6, 3, -17, -29, -44, -37, -2, 40, + 34, -8, -6, 3, -18, -44, -47, -44, -43, -21, 3, 49, 76, 80, 53, 21, + 35, 39, 15, -18, -35, -42, -23, 2, -3, -19, -33, -42, -23, 16, 46, 16, + -8, 2, -6, -37, -45, -47, -51, -33, -8, 31, 68, 74, 66, 33, 35, 45, + 36, -3, -33, -40, -34, -7, 5, -8, -18, -35, -39, -13, 32, 32, 3, -1, + 5, -26, -46, -50, -52, -44, -20, 15, 59, 68, 69, 50, 32, 42, 48, 21, + -26, -42, -42, -24, 2, 2, -8, -20, -38, -35, 6, 33, 17, -2, 5, -6, + -41, -55, -57, -46, -33, -6, 40, 64, 62, 63, 45, 38, 54, 40, -4, -42, + -50, -40, -11, 6, -2, -8, -24, -41, -19, 17, 28, 10, 0, 1, -26, -52, + -64, -51, -40, -23, 19, 54, 56, 61, 60, 38, 52, 55, 24, -30, -50, -47, + -27, 4, 8, -6, -11, -30, -36, -6, 19, 25, 4, 1, -9, -38, -64, -61, + -42, -36, 0, 44, 55, 51, 66, 50, 49, 62, 46, -5, -48, -51, -40, -11, + 11, 4, -14, -15, -36, -25, 1, 19, 15, -1, -2, -18, -53, -69, -48, -42, + -20, 21, 51, 45, 56, 62, 51, 60, 59, 23, -32, -53, -49, -28, 5, 17, + -12, -18, -22, -32, -12, 9, 20, 1, -6, -5, -29, -70, -62, -48, -32, 2, + 36, 45, 44, 62, 62, 60, 64, 47, -10, -45, -54, -42, -11, 21, 5, -19, + -18, -23, -20, -1, 15, 4, -6, -2, -6, -51, -72, -57, -44, -13, 19, 40, + 41, 51, 65, 66, 69, 63, 14, -32, -47, -50, -30, 10, 14, -12, -16, -18, + -16, -14, 7, 8, -6, -8, -1, -21, -65, -67, -54, -29, 1, 26, 38, 44, + 53, 69, 77, 73, 37, -17, -41, -46, -37, -10, 13, -1, -11, -14, -14, -10, + -6, 9, -5, -6, -11, -3, -43, -67, -68, -42, -15, 12, 27, 40, 47, 65, + 80, 83, 55, 7, -34, -43, -34, -22, -5, 2, -3, -2, -13, -10, -11, 3, + -2, -4, -13, -5, -15, -51, -72, -63, -31, -3, 16, 29, 42, 55, 78, 91, + 68, 25, -11, -40, -32, -22, -21, -9, -1, 8, -1, -19, -11, -3, 1, -5, + -11, -12, -3, -29, -58, -70, -48, -18, 6, 15, 35, 50, 68, 89, 84, 37, + 11, -27, -38, -19, -20, -23, -8, 10, 18, -10, -19, -8, 4, 0, -11, -14, + -7, -20, -42, -63, -60, -37, -4, 7, 23, 41, 67, 82, 90, 53, 19, -4, + -34, -23, -20, -31, -22, 5, 25, 8, -17, -20, 0, 10, -5, -20, -9, -12, + -31, -47, -60, -53, -26, -3, 12, 32, 58, 81, 85, 70, 27, 9, -19, -26, + -19, -28, -31, -8, 24, 21, -2, -26, -11, 14, 10, -20, -18, -8, -24, -33, + -53, -56, -44, -23, 3, 22, 44, 77, 85, 74, 40, 17, -3, -21, -21, -24, + -36, -25, 11, 22, 15, -13, -28, 5, 23, 0, -28, -12, -19, -26, -42, -56, + -48, -39, -17, 12, 34, 62, 84, 73, 52, 26, 9, -12, -21, -22, -31, -30, + -1, 15, 16, 6, -25, -14, 23, 19, -17, -21, -13, -24, -34, -54, -44, -39, + -36, -9, 27, 46, 79, 79, 59, 38, 16, -2, -17, -25, -25, -27, -10, 5, + 10, 15, -4, -24, 5, 29, 5, -24, -18, -19, -28, -48, -50, -35, -38, -28, + 10, 33, 62, 82, 62, 46, 27, 4, -8, -23, -24, -25, -15, -3, 0, 8, + 6, -12, -9, 22, 25, -6, -21, -22, -28, -45, -53, -39, -30, -37, -11, 20, + 43, 75, 66, 53, 41, 10, -8, -16, -25, -23, -15, -2, -4, -5, 4, 1, + -7, 8, 29, 19, -9, -21, -24, -42, -55, -48, -30, -31, -19, 5, 23, 61, + 74, 58, 53, 26, -7, -11, -18, -25, -14, 0, 1, -16, -8, 4, 0, 3, + 20, 28, 11, -16, -19, -38, -58, -55, -35, -27, -16, -1, 5, 32, 63, 61, + 56, 44, 3, -17, -13, -22, -19, -4, 5, -8, -21, -6, 7, 8, 12, 25, + 25, 2, -17, -26, -54, -64, -47, -32, -11, 5, 3, 16, 40, 60, 58, 56, + 26, -16, -19, -16, -20, -8, 0, -4, -20, -22, 1, 12, 9, 17, 30, 20, + -2, -15, -42, -68, -57, -44, -19, 11, 6, 10, 19, 42, 58, 58, 45, 6, + -23, -18, -13, -13, -3, -3, -10, -26, -14, 9, 15, 12, 26, 27, 10, -7, + -25, -61, -68, -54, -36, 10, 15, 13, 16, 19, 42, 55, 52, 31, -9, -25, + -18, -15, -7, -3, -9, -23, -26, -2, 15, 19, 19, 26, 18, 7, -10, -41, + -72, -60, -51, -8, 25, 22, 20, 13, 19, 45, 51, 44, 19, -15, -28, -15, + -7, -4, -9, -19, -28, -14, 6, 18, 18, 24, 22, 12, 1, -17, -55, -67, + -56, -35, 19, 33, 30, 20, 9, 23, 44, 48, 39, 6, -22, -25, -9, -8, + -9, -15, -29, -21, -3, 10, 16, 20, 23, 13, 7, -4, -31, -63, -61, -50, + -11, 33, 37, 30, 12, 7, 24, 44, 48, 28, -4, -28, -14, -4, -14, -14, + -27, -27, -8, 5, 13, 15, 19, 19, 11, 3, -12, -44, -64, -58, -31, 17, + 40, 39, 24, 8, 3, 30, 46, 42, 16, -18, -21, -6, -16, -18, -26, -32, + -15, 1, 6, 10, 10, 15, 12, 10, -3, -23, -51, -63, -50, -4, 34, 41, + 33, 17, -4, 10, 35, 42, 32, 5, -15, -8, -10, -18, -21, -30, -22, 0, + 3, -2, -2, 6, 5, 4, 3, -7, -25, -45, -45, -18, 25, 33, 32, 21, + 7, 8, 20, 30, 31, 20, 3, -7, -10, -14, -17, -23, -29, -12, 6, -2, + -11, -11, -4, 2, 3, -7, -10, -27, -33, -21, 13, 27, 23, 19, 8, 15, + 17, 18, 21, 23, 19, 2, -12, -10, -9, -15, -27, -28, -2, 9, -8, -18, + -17, -4, 9, -6, -7, -10, -17, -13, 2, 21, 20, 14, 4, 15, 25, 15, + 11, 14, 19, 13, -13, -17, -6, -5, -20, -36, -23, 4, 6, -18, -28, -20, + 6, 6, 0, 3, 5, 5, 28, 31, 31, 49, 55, 35, 11, 27, 26, 4, + 7, 11, 31, 54, 38, 26, 34, 35, 20, -10, -32, -43, -47, -43, -20, -7, + -37, -55, -62, -61, -63, -34, -21, -35, -28, -10, 15, 24, 23, 5, -31, -38, + -6, 23, 19, 15, 24, 20, 31, 57, 54, 28, 13, 33, 20, 1, 4, 17, + 38, 44, 33, 31, 43, 36, 10, -14, -34, -53, -53, -46, -22, -22, -38, -46, + -54, -60, -58, -29, -25, -39, -29, -12, 11, 25, 27, 6, -31, -33, -3, 27, + 32, 21, 13, 16, 38, 60, 53, 26, 18, 28, 11, -2, 8, 26, 37, 34, + 36, 42, 47, 31, 6, -14, -41, -61, -54, -49, -26, -30, -41, -40, -44, -54, + -48, -23, -28, -41, -33, -7, 14, 26, 29, 3, -32, -27, 6, 33, 35, 18, + 5, 21, 45, 61, 49, 25, 30, 22, 0, -5, 9, 37, 39, 27, 33, 47, + 50, 31, 1, -22, -51, -65, -59, -45, -31, -40, -36, -29, -35, -49, -41, -28, + -39, -44, -26, -8, 6, 27, 31, -5, -31, -18, 14, 33, 31, 17, 4, 25, + 48, 57, 45, 32, 27, 9, -6, -5, 14, 43, 36, 29, 39, 51, 50, 31, + 0, -32, -65, -73, -62, -37, -36, -46, -36, -23, -26, -37, -32, -35, -46, -42, + -22, -11, 2, 30, 28, -8, -29, -12, 22, 33, 32, 15, 4, 25, 49, 58, + 50, 36, 20, 2, -9, -3, 21, 43, 37, 32, 44, 55, 53, 33, -7, -42, + -67, -72, -64, -43, -43, -46, -35, -17, -17, -24, -31, -40, -47, -39, -18, -15, + 0, 33, 22, -14, -22, 5, 29, 29, 28, 11, 7, 23, 49, 54, 50, 37, + 13, -6, -11, -6, 25, 44, 38, 26, 40, 57, 54, 28, -12, -48, -70, -73, + -66, -43, -43, -43, -29, -12, -15, -16, -32, -48, -51, -38, -24, -19, 4, 31, + 12, -16, -14, 21, 34, 24, 24, 13, 10, 27, 49, 53, 53, 33, 6, -9, + -16, -4, 33, 48, 37, 24, 45, 61, 54, 23, -15, -60, -76, -76, -60, -48, + -45, -38, -26, -11, -3, -5, -33, -49, -52, -35, -25, -21, 7, 24, 1, -15, + -1, 34, 30, 23, 29, 17, 5, 26, 49, 55, 53, 26, -3, -16, -16, 4, + 38, 43, 33, 33, 49, 59, 45, 19, -18, -63, -78, -79, -58, -50, -39, -31, + -21, -11, -2, -3, -30, -49, -51, -35, -29, -20, 8, 12, -10, -11, 17, 37, + 27, 29, 29, 13, 2, 33, 56, 55, 38, 18, -7, -19, -17, 13, 40, 42, + 33, 35, 52, 58, 40, 10, -28, -68, -84, -78, -56, -47, -36, -30, -17, -7, + 5, -4, -30, -49, -51, -34, -30, -18, 10, 1, -18, -9, 30, 39, 26, 32, + 28, 9, 7, 38, 51, 45, 35, 16, -13, -28, -11, 27, 41, 41, 34, 45, + 58, 54, 29, 7, -33, -69, -80, -78, -59, -43, -31, -24, -15, -3, 9, -4, + -29, -51, -51, -33, -27, -8, 8, -13, -24, -1, 40, 41, 29, 31, 22, 7, + 15, 46, 48, 38, 33, 11, -19, -28, -7, 26, 42, 36, 39, 54, 54, 48, + 20, 3, -39, -68, -79, -78, -54, -37, -32, -27, -16, 5, 11, -6, -31, -50, + -49, -33, -24, -3, -3, -29, -26, 13, 44, 36, 30, 32, 17, 7, 28, 43, + 37, 31, 28, 4, -17, -27, -5, 24, 46, 43, 48, 56, 50, 41, 20, -1, + -47, -64, -82, -78, -48, -35, -34, -26, -14, 6, 9, -10, -31, -46, -43, -33, + -21, 1, -16, -38, -15, 24, 38, 35, 44, 33, 10, 15, 37, 43, 30, 22, + 18, 4, -20, -29, 0, 30, 43, 48, 54, 52, 46, 35, 19, -9, -41, -60, + -83, -73, -44, -29, -37, -27, -12, 6, 8, -10, -28, -45, -43, -25, -9, -3, + -33, -43, -4, 32, 35, 37, 49, 24, 7, 26, 47, 35, 17, 11, 14, 3, + -21, -30, 6, 30, 44, 60, 56, 44, 37, 33, 15, -11, -40, -63, -82, -61, + -36, -33, -39, -26, -13, 0, 4, -9, -29, -42, -37, -18, -7, -13, -39, -34, + 2, 30, 34, 45, 49, 16, 11, 37, 45, 26, 11, 8, 9, -1, -26, -25, + 17, 31, 46, 62, 52, 42, 29, 26, 15, -12, -45, -64, -71, -48, -34, -35, + -33, -27, -16, 1, 2, -10, -23, -41, -32, -12, -6, -29, -46, -28, 12, 26, + 36, 54, 43, 10, 23, 52, 43, 18, -2, 5, 5, -7, -25, -11, 19, 22, + 49, 61, 50, 40, 24, 20, 15, -10, -47, -62, -62, -45, -34, -30, -30, -23, + -16, -6, -1, -8, -25, -38, -29, -9, -10, -39, -42, -19, 5, 23, 48, 57, + 33, 7, 32, 57, 39, 8, -7, 3, -2, -16, -16, 1, 20, 22, 48, 55, + 46, 39, 17, 16, 17, -9, -48, -58, -54, -40, -37, -28, -26, -22, -23, -5, + 2, -11, -28, -37, -27, -10, -18, -44, -35, -18, 3, 31, 54, 52, 25, 13, + 45, 61, 29, -4, -10, 0, -5, -16, -8, 4, 21, 21, 50, 54, 45, 31, + 4, 20, 18, -15, -43, -48, -48, -39, -33, -28, -25, -22, -21, 0, -1, -19, + -29, -29, -22, -11, -29, -42, -30, -17, 3, 38, 61, 46, 24, 25, 53, 58, + 20, -10, -9, -5, -16, -12, 4, 11, 22, 17, 48, 51, 43, 16, 2, 18, + 13, -15, -35, -46, -43, -38, -31, -23, -27, -24, -13, 3, -8, -25, -29, -27, + -22, -18, -36, -38, -31, -19, 6, 46, 60, 36, 24, 33, 56, 44, 10, -8, + -9, -12, -24, -7, 14, 23, 18, 11, 45, 47, 39, 13, 5, 16, 1, -19, + -22, -39, -45, -45, -31, -20, -24, -16, -6, -3, -19, -24, -25, -26, -22, -24, + -39, -35, -25, -13, 8, 54, 64, 36, 29, 41, 56, 36, 5, -12, -11, -14, + -26, -6, 24, 33, 7, 12, 45, 44, 30, 13, 10, 17, -4, -17, -16, -34, + -46, -50, -30, -20, -23, -12, 1, -11, -26, -27, -24, -21, -19, -34, -48, -32, + -23, -10, 13, 66, 65, 33, 32, 48, 55, 25, 0, -8, -1, -18, -36, -4, + 40, 33, -1, 17, 37, 35, 25, 10, 14, 10, -13, -15, -9, -26, -46, -51, + -32, -18, -15, -4, 3, -17, -31, -28, -25, -20, -26, -48, -48, -27, -20, -13, + 19, 71, 61, 28, 33, 56, 50, 12, -8, -2, 5, -24, -41, 2, 52, 29, + -1, 24, 36, 26, 16, 14, 19, 6, -19, -12, 1, -21, -49, -50, -28, -12, + -3, 2, -2, -25, -32, -29, -24, -14, -31, -61, -44, -17, -15, -9, 28, 72, + 61, 25, 38, 61, 41, 7, -7, 4, 3, -32, -36, 9, 45, 21, 4, 30, + 33, 15, 11, 18, 17, -1, -18, -7, -4, -22, -47, -45, -24, -6, 2, 5, + -7, -27, -34, -28, -21, -14, -42, -69, -40, -11, -16, -3, 41, 68, 53, 29, + 48, 61, 32, 0, -5, 8, 2, -33, -28, 9, 31, 16, 16, 34, 22, 0, + 10, 24, 10, -9, -19, -6, -8, -26, -38, -34, -20, -10, 1, 11, -9, -33, + -31, -32, -25, -18, -50, -65, -40, -15, -8, 13, 47, 65, 50, 33, 54, 62, + 24, -2, 2, 12, -6, -31, -20, 12, 21, 10, 28, 34, 9, -5, 20, 20, + -2, -13, -10, -4, -18, -33, -26, -16, -19, -14, 6, 8, -14, -31, -32, -29, + -29, -31, -51, -69, -47, -12, 2, 21, 49, 56, 43, 45, 62, 54, 16, -2, + 7, 9, -13, -22, -4, 12, 7, 13, 37, 33, 7, -4, 23, 9, -8, -8, + -2, -8, -33, -38, -7, -1, -22, -19, 11, 7, -21, -29, -29, -29, -31, -32, + -55, -80, -49, -7, 16, 31, 43, 45, 44, 56, 66, 45, 12, 2, 10, 3, + -18, -13, 7, 9, -2, 17, 38, 22, 1, 5, 17, 4, -14, -12, -1, -11, + -43, -38, 6, 5, -22, -15, 12, 0, -23, -26, -28, -31, -32, -36, -60, -82, + -46, 3, 24, 35, 38, 41, 46, 59, 62, 41, 13, -1, 3, -6, -18, 3, + 22, 2, -9, 20, 36, 18, 10, 7, 4, -5, -17, -9, -2, -18, -55, -30, + 17, 6, -20, -10, 6, -5, -16, -26, -32, -27, -30, -42, -69, -84, -41, 13, + 31, 42, 37, 38, 45, 63, 65, 41, 12, 3, 1, -18, -10, 23, 27, -2, + -12, 17, 36, 26, 13, 4, -2, -5, -14, -14, -11, -26, -54, -19, 21, 8, + -16, -8, 6, -7, -20, -30, -33, -24, -33, -50, -74, -82, -32, 18, 34, 42, + 38, 34, 50, 69, 58, 34, 16, 7, -9, -29, -2, 41, 32, -7, -15, 11, + 34, 30, 9, 2, -3, -7, -23, -21, -15, -30, -52, -10, 18, 10, -8, -4, + 5, -4, -25, -33, -26, -22, -42, -59, -79, -72, -20, 23, 36, 41, 37, 34, + 54, 74, 53, 22, 17, 15, -17, -34, 10, 52, 37, -8, -11, 12, 33, 23, + 8, 4, -1, -16, -31, -25, -18, -38, -49, -3, 19, 11, -4, 0, 7, -8, + -34, -31, -19, -26, -52, -62, -79, -55, -7, 23, 41, 47, 41, 33, 61, 75, + 43, 22, 21, 13, -26, -33, 17, 58, 39, -6, -8, 13, 27, 10, 5, 13, + -2, -32, -43, -32, -19, -38, -36, -3, 12, 4, 4, 13, 6, -22, -41, -31, + -13, -33, -59, -71, -76, -35, 2, 20, 39, 53, 47, 39, 60, 62, 37, 26, + 22, 5, -33, -29, 26, 64, 40, 0, -5, 12, 21, 8, 16, 10, -13, -39, + -49, -37, -25, -41, -30, -6, 9, 9, 13, 23, 0, -30, -44, -26, -13, -45, + -67, -76, -68, -20, 10, 19, 39, 55, 50, 46, 57, 50, 37, 30, 16, -3, + -34, -22, 34, 65, 40, 13, -2, 6, 19, 12, 21, 5, -23, -49, -52, -38, + -33, -36, -24, -9, 10, 12, 25, 23, -11, -29, -43, -27, -21, -55, -73, -77, + -50, -2, 19, 19, 35, 59, 59, 49, 45, 40, 36, 27, 4, -10, -24, -12, + 31, 59, 44, 22, -5, 4, 19, 20, 12, -4, -27, -52, -50, -45, -39, -24, + -23, -13, 16, 20, 30, 15, -16, -28, -37, -30, -36, -64, -79, -73, -28, 17, + 24, 14, 36, 65, 68, 45, 33, 39, 40, 22, -2, -5, -11, -11, 28, 58, + 57, 20, -13, 0, 27, 23, 1, -15, -35, -58, -55, -52, -39, -20, -22, -9, + 20, 29, 30, 10, -15, -31, -39, -32, -48, -72, -86, -59, -4, 27, 19, 17, + 44, 77, 69, 31, 26, 40, 38, 14, -6, 0, 1, -11, 26, 67, 62, 10, + -18, 6, 31, 20, -5, -22, -44, -66, -61, -50, -31, -17, -24, -7, 24, 34, + 31, 3, -17, -31, -36, -40, -61, -73, -76, -46, 11, 34, 20, 22, 56, 83, + 60, 22, 24, 46, 32, 5, -4, 9, 0, -8, 31, 73, 53, 0, -13, 16, + 28, 14, -15, -31, -51, -74, -64, -43, -25, -22, -25, -1, 30, 37, 20, -2, + -20, -36, -39, -55, -69, -75, -69, -32, 21, 36, 22, 31, 63, 76, 50, 22, + 25, 49, 29, 3, 4, 9, 2, 0, 43, 74, 37, -8, -1, 28, 24, 8, + -22, -42, -65, -80, -60, -31, -25, -31, -24, 8, 41, 37, 10, -3, -22, -40, + -45, -60, -69, -69, -55, -15, 32, 37, 25, 42, 72, 70, 37, 21, 32, 41, + 20, 5, 15, 8, 0, 9, 46, 62, 26, -7, 8, 28, 21, 4, -29, -53, + -79, -82, -57, -25, -27, -32, -21, 14, 48, 35, -1, -7, -24, -44, -52, -70, + -69, -60, -38, 1, 34, 33, 32, 57, 70, 58, 34, 26, 31, 31, 16, 14, + 14, 3, 8, 25, 47, 47, 18, -2, 13, 25, 19, -2, -33, -64, -87, -83, + -53, -24, -29, -32, -17, 21, 46, 27, -4, -12, -30, -51, -61, -73, -60, -46, + -17, 9, 25, 32, 47, 69, 61, 48, 41, 30, 26, 24, 18, 24, 15, 2, + 14, 37, 42, 34, 17, 9, 19, 20, 11, -7, -35, -79, -97, -79, -45, -21, + -29, -33, -12, 26, 43, 27, -3, -15, -43, -58, -66, -69, -52, -37, -2, 16, + 24, 38, 61, 72, 56, 43, 41, 32, 28, 22, 22, 26, 12, 1, 23, 45, + 34, 21, 8, 17, 22, 19, 4, -18, -47, -93, -97, -70, -40, -29, -33, -22, + -5, 24, 44, 19, -6, -23, -53, -60, -74, -63, -41, -20, 10, 18, 19, 40, + 70, 70, 47, 41, 43, 37, 27, 14, 24, 32, 10, 1, 29, 44, 27, 12, + 7, 28, 32, 9, -11, -27, -56, -100, -94, -64, -43, -38, -31, -7, 0, 27, + 41, 11, -7, -35, -60, -62, -75, -54, -29, -5, 17, 22, 14, 46, 80, 72, + 46, 42, 44, 42, 24, 16, 31, 32, 9, 4, 33, 45, 22, 5, 8, 41, + 34, 0, -22, -36, -69, -100, -92, -65, -40, -44, -25, 0, 5, 28, 36, 4, + -12, -50, -64, -64, -68, -46, -19, 2, 25, 28, 19, 44, 72, 67, 46, 45, + 44, 39, 21, 21, 38, 29, 1, 9, 39, 39, 13, -4, 9, 54, 41, -11, + -38, -51, -76, -91, -92, -65, -44, -47, -17, 12, 11, 21, 27, 6, -24, -59, + -65, -67, -61, -40, -17, 8, 31, 26, 20, 49, 74, 65, 45, 48, 47, 36, + 25, 28, 36, 25, 5, 19, 42, 28, 6, -2, 21, 56, 27, -22, -45, -62, + -83, -92, -84, -65, -49, -37, -8, 15, 16, 22, 23, -1, -38, -65, -66, -65, + -51, -35, -15, 20, 42, 26, 25, 51, 70, 60, 45, 52, 47, 25, 25, 39, + 33, 24, 16, 31, 37, 14, 3, 2, 33, 55, 14, -35, -55, -67, -84, -88, + -84, -68, -47, -28, -1, 17, 22, 24, 17, -14, -54, -66, -64, -61, -46, -32, + -10, 26, 45, 24, 29, 52, 66, 57, 49, 56, 41, 16, 29, 46, 31, 22, + 24, 37, 30, 12, -1, 5, 40, 39, 1, -41, -63, -72, -89, -89, -77, -62, + -48, -17, 5, 13, 26, 31, 10, -29, -62, -64, -65, -54, -41, -25, -4, 32, + 52, 29, 32, 55, 61, 55, 56, 57, 35, 17, 33, 40, 28, 27, 37, 36, + 26, 14, -3, 13, 41, 22, -13, -45, -65, -78, -90, -87, -70, -56, -47, -12, + 9, 18, 35, 27, -5, -41, -63, -61, -65, -52, -37, -17, 5, 35, 52, 34, + 38, 55, 58, 53, 60, 54, 31, 21, 33, 34, 30, 35, 40, 32, 29, 15, + -4, 18, 30, 11, -25, -53, -69, -85, -91, -82, -66, -54, -36, -7, 6, 20, + 40, 19, -17, -52, -63, -60, -65, -50, -32, -11, 9, 34, 50, 40, 46, 51, + 56, 60, 60, 50, 28, 23, 33, 33, 31, 40, 43, 38, 38, 13, -6, 13, + 19, -2, -34, -57, -78, -91, -85, -73, -63, -55, -28, -1, 6, 26, 39, 13, + -28, -56, -61, -55, -61, -43, -27, -13, 12, 38, 48, 49, 54, 46, 52, 64, + 64, 48, 27, 22, 28, 33, 36, 44, 42, 39, 44, 15, -3, 10, 6, -19, + -46, -60, -81, -92, -83, -73, -52, -44, -22, -5, 5, 38, 37, -6, -41, -55, + -54, -49, -53, -45, -28, -9, 19, 41, 47, 56, 57, 41, 56, 69, 64, 42, + 26, 23, 27, 36, 39, 44, 39, 48, 53, 12, -4, 2, -8, -33, -61, -72, + -84, -87, -80, -73, -49, -36, -12, -5, 9, 42, 24, -15, -44, -50, -51, -51, + -51, -45, -26, -4, 20, 40, 47, 64, 58, 38, 61, 71, 55, 37, 32, 23, + 30, 34, 39, 50, 43, 58, 53, 9, 4, -3, -27, -49, -71, -79, -79, -79, + -82, -70, -44, -26, -7, -5, 16, 36, 9, -18, -40, -47, -49, -45, -42, -43, + -20, 1, 21, 40, 53, 72, 54, 36, 64, 66, 41, 30, 36, 26, 28, 31, + 44, 57, 48, 62, 45, 13, 3, -14, -47, -65, -77, -87, -78, -71, -75, -68, + -43, -16, -2, -1, 18, 20, -4, -18, -37, -46, -50, -36, -39, -46, -15, 7, + 23, 41, 62, 72, 49, 41, 69, 59, 33, 29, 38, 24, 28, 31, 52, 59, + 49, 61, 45, 21, 2, -31, -64, -73, -78, -89, -79, -71, -77, -62, -36, -8, + 3, 5, 15, 5, -10, -17, -34, -49, -50, -27, -37, -43, -12, 14, 25, 45, + 67, 68, 48, 48, 64, 48, 27, 33, 41, 25, 24, 32, 64, 66, 51, 62, + 41, 21, -7, -43, -77, -81, -83, -87, -74, -71, -77, -54, -29, -1, 7, 13, + 12, -6, -9, -18, -38, -54, -44, -21, -37, -41, -8, 16, 28, 53, 73, 61, + 46, 52, 60, 35, 25, 34, 38, 20, 25, 42, 73, 62, 60, 58, 39, 22, + -19, -54, -85, -88, -95, -88, -65, -69, -73, -47, -22, 3, 14, 15, -5, -14, + -6, -23, -42, -52, -34, -19, -42, -38, 0, 18, 30, 62, 76, 61, 49, 52, + 49, 26, 23, 34, 33, 22, 21, 50, 78, 68, 66, 47, 40, 22, -23, -66, + -95, -102, -97, -74, -61, -77, -68, -36, -12, 9, 15, 13, -18, -14, -5, -31, + -50, -44, -21, -25, -49, -25, 8, 16, 30, 70, 82, 56, 45, 55, 39, 21, + 25, 31, 24, 21, 28, 64, 81, 68, 64, 47, 44, 15, -30, -77, -101, -104, + -96, -71, -66, -76, -53, -22, -9, 6, 22, 10, -22, -15, -13, -38, -48, -32, + -9, -33, -49, -14, 10, 11, 37, 77, 85, 51, 44, 48, 30, 18, 21, 26, + 16, 21, 36, 71, 76, 73, 68, 48, 35, 4, -38, -81, -103, -109, -91, -67, + -71, -69, -40, -15, -12, 3, 23, 7, -23, -17, -24, -41, -45, -24, -11, -46, + -46, -1, 10, 8, 49, 84, 83, 48, 50, 48, 27, 16, 18, 20, 14, 26, + 44, 72, 75, 82, 71, 47, 26, -6, -45, -80, -107, -110, -88, -70, -69, -58, + -28, -9, -12, 2, 23, 2, -21, -19, -35, -38, -33, -13, -17, -50, -35, 8, + 9, 10, 57, 89, 74, 45, 52, 41, 24, 15, 11, 14, 13, 22, 54, 72, + 74, 86, 72, 41, 13, -14, -47, -86, -113, -111, -88, -72, -67, -42, -18, -11, + -11, 2, 18, -2, -17, -27, -44, -37, -28, -12, -26, -49, -22, 9, 3, 21, + 69, 87, 63, 46, 49, 36, 24, 13, 11, 11, 8, 26, 64, 68, 76, 89, + 74, 38, 3, -17, -44, -86, -117, -114, -86, -65, -58, -38, -19, -7, 0, 8, + 9, -5, -20, -37, -45, -29, -19, -15, -36, -39, -10, 6, 4, 33, 79, 81, + 55, 48, 42, 30, 23, 10, 13, 10, 3, 27, 62, 60, 76, 88, 68, 30, + -5, -21, -49, -89, -120, -115, -81, -54, -46, -34, -14, -1, 7, 9, 1, -6, + -18, -45, -52, -29, -16, -17, -35, -36, -12, 5, 11, 47, 81, 72, 53, 51, + 39, 28, 24, 9, 13, 7, 5, 36, 57, 55, 82, 90, 62, 31, -10, -29, + -55, -91, -121, -115, -76, -47, -38, -34, -13, 1, 13, 9, -4, -9, -17, -49, + -56, -26, -9, -12, -33, -40, -17, 12, 25, 57, 71, 62, 52, 50, 35, 22, + 21, 14, 11, -2, 10, 41, 50, 48, 85, 87, 66, 29, -15, -34, -64, -97, + -121, -108, -73, -43, -37, -28, -7, 7, 16, 6, -7, -5, -15, -59, -56, -19, + -4, -14, -37, -42, -10, 21, 38, 66, 63, 57, 52, 49, 28, 22, 28, 16, + 5, -3, 22, 47, 38, 45, 79, 85, 68, 23, -16, -34, -70, -100, -122, -107, + -62, -39, -38, -25, -4, 15, 18, 2, -3, 0, -27, -70, -51, -17, -3, -16, + -44, -40, -1, 27, 45, 67, 57, 54, 48, 39, 17, 18, 28, 17, 3, -3, + 27, 49, 37, 42, 69, 86, 66, 16, -17, -37, -72, -99, -117, -101, -55, -39, + -36, -24, 1, 20, 13, 4, 4, -5, -46, -74, -43, -9, -4, -28, -49, -33, + 6, 33, 63, 68, 54, 53, 49, 33, 18, 21, 24, 15, 7, 9, 33, 42, + 35, 39, 70, 85, 55, 10, -16, -40, -75, -98, -113, -92, -47, -38, -35, -21, + 1, 21, 15, 8, 7, -14, -62, -70, -30, -11, -15, -34, -49, -23, 9, 39, + 64, 58, 51, 56, 42, 20, 16, 19, 16, 16, 4, 13, 40, 46, 33, 31, + 65, 83, 49, 3, -24, -41, -73, -98, -105, -77, -45, -41, -30, -13, 7, 19, + 12, 13, 8, -26, -68, -61, -22, -14, -25, -38, -40, -18, 12, 47, 68, 59, + 49, 51, 42, 19, 17, 17, 12, 13, 5, 18, 41, 47, 26, 26, 67, 78, + 44, -2, -31, -47, -71, -97, -96, -67, -44, -42, -29, -11, 13, 21, 13, 17, + 8, -34, -68, -54, -17, -18, -36, -43, -35, -12, 14, 50, 69, 56, 49, 44, + 35, 16, 13, 17, 13, 13, 6, 27, 46, 50, 24, 28, 66, 64, 28, 0, + -25, -49, -75, -99, -87, -54, -42, -38, -28, -8, 20, 19, 11, 17, 1, -41, + -62, -49, -18, -27, -41, -39, -29, -8, 15, 55, 73, 55, 42, 42, 33, 16, + 12, 12, 9, 6, 14, 40, 52, 48, 21, 31, 60, 50, 23, 0, -32, -60, + -76, -90, -73, -44, -39, -36, -32, 1, 29, 20, 6, 13, -3, -41, -53, -43, + -21, -34, -47, -38, -22, -2, 22, 54, 65, 49, 38, 42, 32, 17, 12, 7, + 6, 3, 21, 48, 53, 42, 24, 39, 53, 38, 15, -3, -38, -65, -76, -85, + -59, -36, -35, -40, -26, 15, 26, 12, 6, 10, -12, -40, -49, -33, -26, -41, + -53, -36, -12, 5, 28, 50, 61, 46, 34, 37, 31, 20, 12, 1, 0, 5, + 32, 53, 56, 41, 23, 39, 48, 35, 13, -10, -44, -72, -81, -79, -50, -27, + -34, -41, -18, 20, 27, 12, 5, 1, -19, -36, -40, -22, -34, -50, -55, -33, + -3, 14, 33, 52, 54, 35, 27, 36, 37, 25, 7, -13, 1, 19, 41, 50, + 50, 38, 32, 43, 41, 32, 6, -17, -46, -69, -79, -75, -43, -20, -34, -38, + -8, 23, 26, 12, 6, -8, -23, -30, -30, -23, -46, -56, -52, -29, 6, 23, + 35, 44, 47, 31, 25, 33, 40, 26, -4, -22, 3, 28, 39, 40, 50, 40, + 28, 34, 37, 28, 0, -22, -50, -70, -81, -72, -34, -22, -36, -33, 2, 24, + 25, 12, 4, -15, -24, -26, -25, -23, -46, -56, -50, -24, 10, 33, 36, 40, + 35, 21, 25, 43, 47, 25, -13, -25, 11, 40, 36, 40, 56, 38, 27, 31, + 33, 24, -4, -24, -53, -71, -80, -59, -34, -27, -31, -27, 8, 24, 25, 17, + 2, -22, -25, -26, -19, -24, -51, -58, -40, -9, 14, 37, 36, 35, 27, 14, + 28, 48, 46, 19, -19, -24, 18, 40, 29, 41, 50, 29, 29, 27, 33, 18, + -12, -29, -53, -71, -75, -48, -33, -32, -25, -14, 13, 24, 19, 17, 2, -25, + -28, -28, -18, -28, -55, -59, -30, -3, 20, 41, 34, 24, 15, 15, 36, 49, + 39, 17, -17, -17, 22, 41, 33, 45, 38, 26, 30, 24, 27, 10, -11, -34, + -58, -70, -66, -38, -32, -36, -21, -2, 14, 28, 19, 14, 0, -25, -29, -28, + -17, -30, -57, -51, -22, 3, 23, 39, 34, 15, 11, 17, 38, 46, 39, 15, + -18, -14, 27, 40, 37, 45, 32, 28, 30, 29, 28, 1, -16, -38, -55, -65, + -62, -37, -31, -34, -17, 9, 18, 27, 18, 9, -1, -22, -35, -29, -17, -32, + -57, -45, -17, 15, 30, 30, 25, 8, 10, 19, 35, 46, 37, 4, -19, -8, + 31, 33, 33, 42, 28, 22, 24, 29, 23, -6, -21, -43, -54, -59, -55, -32, + -34, -39, -10, 19, 30, 25, 9, 2, -2, -20, -38, -30, -23, -41, -51, -35, + -12, 24, 32, 22, 12, 8, 16, 23, 32, 48, 33, 1, -16, 0, 29, 30, + 33, 36, 24, 23, 22, 33, 14, -14, -20, -42, -55, -50, -44, -27, -38, -41, + -3, 31, 35, 23, 5, -2, -4, -15, -34, -33, -38, -47, -40, -26, -3, 31, + 31, 9, 2, 13, 14, 20, 38, 53, 27, -6, -14, 11, 30, 23, 32, 28, + 25, 22, 24, 32, 5, -20, -26, -45, -49, -40, -36, -37, -48, -40, 8, 40, + 37, 16, -3, -6, -2, -9, -27, -42, -52, -48, -32, -21, 8, 39, 28, -2, + -5, 13, 17, 23, 40, 45, 19, -4, -3, 18, 15, 19, 33, 30, 29, 22, + 21, 22, 0, -17, -27, -46, -48, -33, -31, -38, -53, -33, 23, 43, 31, 11, + -7, -5, -3, -8, -26, -49, -59, -48, -25, -14, 15, 41, 23, -8, -6, 11, + 10, 26, 49, 41, 12, 0, 10, 19, 4, 22, 31, 25, 25, 24, 20, 12, + -4, -10, -37, -50, -37, -23, -26, -43, -55, -18, 34, 41, 28, 10, -9, -6, + -3, -8, -27, -57, -62, -37, -15, -8, 24, 44, 23, -10, -6, 3, 8, 39, + 55, 30, 12, 11, 20, 8, 3, 27, 26, 20, 21, 24, 19, -1, -10, -14, + -42, -47, -25, -14, -28, -49, -50, -5, 38, 38, 23, 9, -11, -9, -1, -5, + -33, -64, -59, -34, -14, -2, 32, 49, 17, -11, -6, -2, 11, 46, 46, 19, + 16, 23, 24, -3, 3, 29, 29, 16, 17, 22, 11, -12, -12, -18, -50, -43, + -15, -11, -30, -53, -38, 10, 31, 31, 25, 3, -16, -3, 3, -8, -41, -67, + -53, -24, -14, 3, 35, 46, 17, -2, -7, -9, 16, 49, 41, 20, 22, 34, + 21, -5, 5, 31, 29, 12, 14, 18, 8, -22, -17, -20, -52, -38, -13, -19, + -32, -48, -25, 11, 23, 29, 26, 1, -14, 1, 1, -18, -47, -60, -47, -31, + -11, 13, 45, 39, 8, -2, -2, -11, 16, 43, 35, 25, 34, 40, 18, -7, + 6, 34, 28, 14, 7, 11, 2, -23, -25, -29, -51, -30, -11, -24, -38, -40, + -15, 9, 18, 29, 32, -1, -10, 0, -9, -27, -48, -52, -46, -30, -2, 27, + 47, 30, 10, 7, -6, -15, 12, 35, 28, 30, 45, 42, 19, -4, 11, 29, + 21, 6, 1, 3, -3, -27, -31, -34, -40, -22, -18, -31, -35, -30, -18, 5, + 19, 32, 28, -9, -7, 1, -14, -30, -42, -45, -47, -28, 7, 38, 45, 23, + 14, 20, -2, -24, 7, 32, 30, 37, 43, 41, 22, 7, 18, 22, 14, 4, + -7, 4, -7, -36, -37, -37, -27, -15, -26, -34, -34, -29, -18, 4, 19, 31, + 20, -4, 0, -3, -21, -32, -37, -41, -40, -25, 14, 49, 44, 18, 19, 25, + -1, -19, 5, 26, 35, 38, 46, 41, 18, 18, 16, 13, 12, 2, -5, -3, + -23, -44, -37, -32, -20, -20, -33, -28, -32, -32, -16, 1, 17, 31, 17, -2, + 2, -3, -22, -33, -39, -40, -34, -23, 15, 56, 44, 15, 27, 23, -4, -14, + 2, 22, 38, 37, 48, 40, 25, 24, 15, 11, 2, -2, -3, -15, -31, -40, + -37, -33, -17, -17, -28, -29, -41, -34, -7, 1, 13, 31, 17, -2, 4, 1, + -20, -35, -47, -37, -24, -10, 22, 52, 38, 26, 35, 26, -2, -9, 4, 23, + 40, 38, 46, 39, 32, 31, 16, 2, -7, -8, -2, -21, -38, -44, -38, -31, + -18, -15, -29, -35, -45, -32, -1, -3, 4, 30, 16, 3, 8, 4, -20, -42, + -48, -30, -17, -8, 21, 49, 41, 30, 38, 23, -2, -5, 1, 21, 35, 37, + 44, 40, 40, 33, 17, 1, -13, -10, -9, -35, -41, -41, -39, -33, -19, -12, + -27, -40, -48, -28, -4, -10, 10, 28, 15, 9, 12, 5, -24, -43, -43, -23, + -18, 0, 26, 47, 43, 35, 40, 20, -1, 1, 4, 20, 28, 37, 42, 42, + 46, 31, 22, 8, -17, -15, -15, -42, -41, -37, -44, -37, -16, -13, -33, -41, + -41, -20, -11, -17, 10, 18, 13, 16, 17, 1, -24, -38, -38, -27, -21, 9, + 29, 46, 44, 43, 38, 18, 3, 6, 6, 12, 19, 38, 41, 47, 44, 28, + 29, 11, -26, -25, -27, -45, -39, -39, -48, -41, -18, -13, -33, -38, -36, -21, + -19, -14, 13, 11, 11, 26, 17, -6, -25, -32, -32, -35, -14, 21, 31, 38, + 49, 49, 34, 19, 13, 10, 4, 9, 20, 37, 41, 45, 39, 29, 35, 6, + -28, -28, -35, -43, -37, -42, -50, -44, -20, -20, -37, -37, -27, -16, -23, -11, + 10, 5, 17, 36, 16, -16, -23, -21, -33, -38, -5, 23, 28, 35, 55, 55, + 31, 17, 18, 12, 3, 4, 21, 33, 41, 45, 31, 32, 39, 3, -29, -35, + -41, -40, -38, -45, -55, -45, -26, -31, -36, -26, -22, -22, -29, 1, 9, -1, + 24, 39, 8, -19, -17, -14, -32, -34, 5, 29, 29, 35, 58, 51, 32, 29, + 23, 11, 1, 6, 29, 37, 38, 36, 24, 43, 39, -2, -32, -44, -45, -36, + -36, -45, -55, -51, -37, -35, -30, -22, -20, -32, -24, 6, 2, 3, 30, 36, + 3, -17, -16, -18, -29, -24, 10, 31, 25, 34, 58, 44, 33, 37, 26, 8, + 5, 10, 37, 36, 35, 29, 22, 47, 36, -6, -36, -51, -49, -34, -38, -48, + -58, -53, -46, -42, -24, -23, -22, -32, -13, 4, -7, 8, 35, 30, 6, -14, + -20, -19, -21, -20, 14, 34, 29, 43, 52, 37, 39, 43, 24, 8, 7, 15, + 45, 33, 36, 24, 25, 43, 25, -10, -39, -53, -47, -34, -39, -53, -56, -54, + -56, -42, -21, -23, -29, -25, -5, 1, -10, 12, 35, 27, 7, -14, -25, -19, + -11, -10, 13, 31, 37, 44, 42, 37, 45, 44, 24, 14, 13, 24, 40, 28, + 35, 23, 31, 35, 15, -16, -38, -53, -45, -37, -48, -56, -54, -63, -63, -40, + -23, -24, -27, -19, 3, 1, -11, 14, 33, 24, 5, -16, -28, -17, -6, -1, + 15, 38, 39, 38, 29, 36, 54, 42, 20, 20, 19, 32, 38, 30, 31, 23, + 33, 23, -1, -17, -35, -44, -43, -47, -51, -51, -56, -71, -67, -45, -28, -23, + -23, -13, 12, -1, -15, 15, 33, 20, -2, -22, -25, -17, -3, 10, 24, 46, + 44, 31, 26, 41, 53, 42, 23, 23, 26, 39, 37, 32, 24, 28, 36, 11, + -7, -19, -38, -39, -37, -49, -54, -51, -62, -76, -68, -51, -28, -19, -21, 1, + 22, -3, -11, 14, 25, 16, -5, -25, -25, -15, -2, 20, 36, 51, 42, 19, + 19, 43, 58, 43, 25, 21, 35, 46, 41, 34, 17, 26, 33, 5, -15, -25, + -39, -34, -37, -55, -50, -49, -69, -80, -67, -50, -31, -18, -12, 12, 17, -5, + -5, 14, 17, 6, -15, -27, -22, -14, 3, 37, 49, 48, 40, 22, 22, 36, + 51, 44, 29, 22, 42, 49, 41, 29, 16, 29, 31, -9, -30, -33, -35, -29, + -38, -55, -45, -54, -79, -80, -65, -51, -34, -16, -2, 18, 18, 5, 7, 8, + 6, 3, -19, -21, -22, -19, 12, 51, 53, 48, 39, 22, 18, 36, 46, 42, + 35, 31, 44, 46, 42, 31, 24, 35, 21, -25, -39, -33, -30, -24, -41, -53, + -47, -60, -81, -81, -63, -53, -40, -14, 6, 24, 20, 8, 7, 0, -1, -4, + -21, -23, -29, -16, 30, 60, 55, 50, 37, 19, 19, 35, 43, 46, 37, 29, + 43, 49, 43, 32, 27, 31, 13, -35, -46, -36, -26, -28, -44, -52, -47, -65, + -84, -84, -68, -49, -27, 0, 10, 15, 19, 15, 9, -3, -10, -16, -20, -26, + -28, -2, 41, 59, 62, 56, 37, 16, 15, 31, 43, 50, 42, 30, 41, 49, + 49, 38, 28, 23, 5, -42, -55, -42, -21, -22, -40, -49, -54, -71, -86, -81, + -62, -44, -21, 5, 17, 16, 25, 23, 0, -13, -17, -17, -24, -32, -21, 15, + 45, 58, 66, 52, 33, 15, 9, 35, 42, 44, 44, 36, 38, 50, 52, 40, + 28, 16, -11, -48, -60, -43, -22, -21, -40, -53, -58, -78, -90, -79, -61, -42, + -9, 14, 15, 16, 22, 21, -4, -20, -21, -19, -30, -31, -10, 26, 54, 63, + 69, 51, 33, 12, 13, 40, 42, 45, 42, 33, 36, 53, 57, 44, 24, 3, + -24, -53, -63, -45, -21, -15, -39, -57, -63, -78, -89, -76, -55, -34, 3, 18, + 9, 16, 21, 15, -8, -26, -28, -25, -32, -24, 4, 34, 56, 67, 75, 48, + 22, 7, 23, 44, 39, 40, 40, 35, 40, 59, 59, 44, 18, -6, -31, -54, + -58, -44, -20, -13, -43, -63, -69, -80, -88, -71, -48, -21, 12, 16, 12, 18, + 13, 6, -12, -27, -32, -30, -34, -20, 13, 46, 63, 74, 73, 40, 15, 13, + 39, 46, 33, 32, 35, 36, 48, 58, 61, 43, 16, -13, -36, -57, -62, -41, + -22, -16, -42, -66, -73, -79, -85, -65, -38, -7, 13, 9, 7, 16, 11, -2, + -18, -36, -39, -26, -25, -16, 21, 53, 64, 74, 68, 36, 19, 22, 38, 44, + 32, 28, 32, 38, 52, 60, 56, 43, 13, -25, -39, -54, -52, -35, -30, -27, + -46, -70, -79, -80, -79, -58, -26, 3, 15, 6, 0, 12, 6, -8, -27, -45, + -39, -17, -16, -13, 28, 57, 67, 71, 57, 37, 22, 25, 41, 46, 29, 24, + 34, 44, 56, 55, 52, 44, 7, -27, -38, -48, -44, -35, -31, -29, -46, -77, + -83, -73, -70, -48, -15, 6, 9, 1, 1, 9, -3, -20, -41, -48, -30, -5, + -14, -9, 39, 63, 70, 66, 47, 36, 25, 32, 40, 43, 26, 21, 36, 47, + 59, 50, 49, 35, 0, -26, -36, -44, -41, -36, -35, -33, -50, -79, -79, -66, + -63, -36, -8, 6, -3, -9, 2, 3, -13, -30, -49, -46, -18, -2, -15, 4, + 42, 58, 65, 61, 50, 38, 28, 37, 40, 38, 28, 30, 38, 48, 50, 42, + 46, 28, -3, -28, -37, -36, -36, -39, -36, -37, -59, -79, -69, -62, -52, -24, + -2, 3, -12, -11, 4, -5, -29, -42, -53, -39, -12, -4, -4, 14, 37, 52, + 63, 58, 50, 37, 34, 37, 36, 37, 38, 36, 35, 47, 46, 44, 42, 18, + -7, -30, -34, -32, -34, -41, -37, -45, -66, -74, -64, -57, -36, -12, 1, -8, + -23, -7, 6, -18, -39, -49, -53, -29, -5, -1, 10, 19, 30, 46, 59, 58, + 50, 36, 37, 37, 32, 40, 46, 38, 34, 44, 42, 41, 36, 9, -9, -27, + -29, -26, -34, -40, -40, -56, -69, -66, -56, -46, -22, -7, -7, -19, -21, 3, + 1, -35, -48, -53, -49, -22, -3, 12, 23, 18, 22, 46, 66, 59, 47, 38, + 43, 35, 30, 46, 51, 39, 33, 41, 37, 42, 24, 2, -8, -22, -23, -24, + -33, -39, -50, -66, -69, -59, -49, -31, -13, -10, -17, -25, -16, 1, -17, -50, + -55, -58, -42, -17, -1, 20, 31, 14, 15, 48, 70, 59, 42, 38, 45, 33, + 33, 51, 53, 36, 35, 37, 36, 37, 12, 0, -9, -16, -18, -22, -33, -42, + -59, -67, -62, -52, -40, -20, -11, -15, -23, -23, -11, -3, -28, -51, -59, -61, + -38, -14, 4, 26, 30, 10, 18, 53, 71, 56, 40, 42, 45, 32, 34, 53, + 52, 37, 36, 32, 37, 32, 10, -3, -10, -10, -11, -17, -31, -46, -62, -63, + -54, -44, -30, -14, -14, -23, -27, -22, -11, -11, -35, -51, -65, -59, -32, -11, + 11, 29, 25, 8, 24, 63, 73, 51, 38, 46, 44, 29, 34, 51, 51, 39, + 34, 27, 34, 23, 3, -5, -9, -6, -10, -18, -33, -51, -66, -60, -50, -35, + -20, -10, -21, -33, -29, -17, -9, -20, -39, -55, -71, -57, -26, -7, 11, 23, + 22, 11, 35, 70, 71, 46, 39, 48, 42, 29, 33, 51, 47, 38, 31, 28, + 35, 17, 0, -12, -7, 0, -4, -15, -36, -56, -67, -56, -42, -26, -15, -12, + -29, -36, -28, -15, -13, -25, -40, -58, -70, -49, -23, -6, 8, 19, 17, 18, + 49, 76, 66, 40, 42, 49, 39, 25, 35, 51, 43, 40, 30, 31, 32, 15, + -1, -14, -7, 1, -2, -17, -40, -59, -61, -51, -38, -21, -10, -17, -34, -35, + -28, -18, -17, -24, -40, -64, -65, -40, -18, -8, 5, 13, 17, 31, 61, 75, + 60, 41, 43, 47, 34, 20, 36, 47, 43, 41, 31, 32, 26, 7, -7, -16, + -6, 0, -3, -22, -44, -60, -56, -47, -34, -19, -8, -20, -39, -40, -27, -18, + -20, -29, -44, -63, -56, -38, -23, -11, 4, 14, 21, 42, 65, 71, 59, 45, + 42, 34, 21, 20, 42, 48, 44, 41, 31, 34, 24, 6, -10, -20, -11, 4, + 0, -20, -48, -57, -47, -39, -30, -17, -4, -24, -43, -40, -26, -19, -24, -29, + -45, -59, -51, -37, -25, -14, 3, 15, 27, 51, 72, 76, 61, 44, 38, 23, + 12, 21, 43, 46, 45, 40, 31, 35, 21, 5, -17, -22, -13, 3, 1, -24, + -51, -52, -43, -37, -28, -8, -7, -38, -46, -36, -21, -21, -31, -33, -45, -51, + -47, -40, -30, -13, 4, 14, 33, 60, 76, 76, 61, 47, 30, 16, 8, 20, + 40, 45, 48, 37, 37, 37, 22, 3, -19, -20, -10, 4, -6, -30, -49, -44, + -41, -38, -23, -1, -14, -41, -44, -36, -22, -26, -35, -33, -45, -52, -48, -40, + -32, -9, 6, 18, 35, 65, 85, 80, 62, 46, 24, 6, -1, 23, 41, 48, + 45, 31, 42, 40, 23, -6, -21, -15, -6, 0, -13, -31, -44, -41, -38, -32, + -15, 0, -22, -40, -41, -36, -24, -31, -28, -32, -46, -49, -47, -43, -30, -6, + 9, 19, 46, 77, 87, 77, 61, 42, 18, -2, -7, 22, 39, 51, 41, 32, + 43, 35, 13, -18, -18, -10, -5, -8, -21, -29, -39, -42, -41, -23, -3, -3, + -32, -39, -38, -34, -31, -35, -23, -32, -46, -50, -51, -46, -26, 0, 12, 20, + 54, 87, 91, 72, 60, 38, 13, -10, -11, 24, 44, 52, 43, 39, 45, 34, + 2, -19, -8, -1, -8, -19, -19, -25, -35, -42, -39, -17, 7, -7, -38, -36, + -36, -37, -37, -31, -20, -34, -49, -53, -50, -43, -19, 6, 10, 25, 66, 91, + 84, 67, 60, 36, 1, -18, -10, 27, 48, 52, 42, 42, 38, 25, -3, -18, + -5, -2, -13, -22, -24, -28, -35, -45, -35, -4, 14, -17, -41, -36, -33, -35, + -41, -29, -20, -38, -51, -54, -46, -33, -14, 6, 14, 37, 74, 87, 76, 65, + 64, 29, -9, -22, -7, 23, 52, 55, 46, 42, 25, 17, -5, -12, -4, -3, + -17, -25, -33, -36, -33, -39, -30, 5, 12, -25, -37, -33, -34, -42, -41, -25, + -22, -41, -52, -53, -40, -25, -10, 11, 21, 43, 72, 78, 74, 69, 58, 15, + -13, -15, -4, 22, 54, 58, 53, 41, 15, 6, -2, -1, -3, -6, -18, -24, + -42, -40, -29, -32, -20, 13, 8, -25, -35, -34, -29, -42, -43, -27, -27, -42, + -51, -50, -30, -14, -5, 17, 26, 46, 70, 72, 72, 69, 48, 2, -13, -9, + -3, 19, 55, 59, 53, 30, 1, -1, 5, 8, -7, -15, -19, -25, -48, -45, + -31, -28, -10, 15, 1, -24, -35, -35, -22, -37, -43, -36, -35, -41, -47, -45, + -18, -6, -1, 24, 32, 51, 65, 65, 67, 63, 37, -3, -13, -9, 1, 29, + 54, 60, 50, 18, -4, -4, 13, 9, -10, -15, -17, -30, -54, -47, -29, -20, + -8, 4, -8, -15, -29, -35, -21, -37, -43, -46, -37, -33, -48, -39, -10, 3, + 13, 31, 34, 54, 56, 57, 63, 56, 32, -3, -16, -6, 14, 38, 48, 53, + 40, 11, -3, 1, 6, -2, -11, -9, -11, -28, -54, -54, -29, -8, 2, -8, + -16, -13, -27, -31, -21, -32, -45, -54, -36, -27, -44, -33, 1, 16, 25, 29, + 39, 56, 48, 51, 57, 48, 22, 3, -14, 0, 22, 39, 42, 46, 36, 7, + -7, 0, 0, -3, -8, -8, -15, -34, -50, -49, -27, -3, 0, -15, -14, -16, + -28, -26, -21, -34, -56, -55, -32, -30, -41, -23, 8, 20, 31, 33, 45, 53, + 38, 42, 54, 40, 18, -3, -9, 14, 33, 37, 34, 34, 27, 8, -5, -1, + -9, -3, -1, -8, -19, -35, -43, -42, -28, -7, 1, -18, -13, -17, -29, -24, + -21, -34, -55, -52, -34, -30, -26, -9, 15, 28, 28, 32, 55, 50, 29, 38, + 45, 35, 17, -3, -1, 18, 36, 40, 27, 24, 19, 0, -5, -1, -14, -7, + -2, -12, -20, -30, -40, -42, -25, -5, -5, -24, -14, -16, -25, -20, -26, -38, + -52, -49, -35, -31, -13, 8, 16, 28, 29, 42, 57, 40, 23, 32, 35, 30, + 12, -5, 9, 22, 40, 38, 19, 17, 16, -1, -9, -7, -12, -6, -5, -13, + -18, -29, -39, -39, -18, -3, -19, -26, -11, -18, -24, -19, -30, -40, -51, -45, + -30, -24, 0, 19, 22, 28, 36, 49, 54, 41, 22, 30, 31, 26, 10, 2, + 10, 26, 43, 28, 14, 16, 7, -6, -12, -9, -9, -5, -12, -19, -16, -29, + -35, -34, -8, -8, -35, -20, -7, -26, -23, -23, -30, -39, -53, -38, -25, -12, + 11, 24, 24, 29, 47, 50, 48, 36, 20, 29, 24, 15, 5, 8, 12, 32, + 40, 21, 17, 11, 0, -3, -15, -14, -7, -4, -13, -17, -16, -28, -31, -23, + -6, -20, -37, -15, -12, -29, -22, -28, -30, -38, -54, -34, -20, -4, 21, 33, + 24, 33, 50, 45, 40, 33, 27, 28, 14, 8, 8, 11, 11, 30, 33, 26, + 20, -1, -8, -4, -17, -16, -2, -7, -22, -20, -20, -26, -26, -15, -10, -27, + -35, -12, -19, -31, -21, -23, -23, -42, -57, -31, -11, 9, 35, 33, 23, 39, + 53, 47, 40, 31, 31, 21, 10, 9, 11, 10, 13, 26, 35, 33, 13, -11, + -10, -4, -19, -22, 3, -2, -28, -26, -16, -21, -24, -12, -12, -31, -34, -17, + -27, -34, -25, -17, -19, -48, -59, -29, -2, 27, 46, 26, 22, 43, 54, 44, + 38, 30, 29, 16, 6, 15, 15, 6, 9, 22, 36, 37, 9, -20, -10, -5, + -21, -21, 2, -5, -29, -31, -18, -11, -17, -11, -15, -32, -34, -23, -30, -30, + -25, -15, -22, -52, -50, -17, 9, 36, 42, 26, 29, 50, 53, 40, 33, 32, + 27, 14, 7, 9, 7, 4, 12, 22, 36, 36, 3, -27, -16, -9, -20, -21, + -1, -12, -31, -27, -13, -12, -18, -12, -17, -33, -39, -29, -34, -35, -23, -7, + -25, -55, -42, -10, 20, 43, 40, 27, 33, 51, 51, 37, 34, 31, 21, 9, + 8, 5, 2, 11, 16, 18, 34, 35, 3, -22, -17, -16, -20, -17, -7, -20, + -32, -28, -14, -12, -10, -8, -17, -34, -41, -35, -34, -31, -19, -8, -27, -48, + -29, -4, 26, 50, 44, 32, 37, 50, 49, 40, 36, 22, 11, 11, 12, 5, + 3, 14, 12, 13, 34, 37, 9, -23, -24, -16, -21, -16, -17, -30, -27, -27, + -20, -10, -10, -9, -18, -39, -46, -42, -35, -31, -14, -9, -33, -42, -19, 1, + 36, 55, 41, 32, 46, 55, 47, 35, 32, 18, 6, 7, 9, -2, 7, 17, + 8, 13, 34, 32, 10, -22, -27, -14, -20, -21, -26, -31, -23, -27, -22, -6, + -5, -11, -21, -39, -46, -46, -37, -30, -14, -12, -33, -31, -8, 6, 41, 55, + 40, 38, 54, 57, 39, 30, 33, 17, 2, 1, 4, 7, 14, 14, -2, 11, + 37, 31, 11, -26, -30, -16, -20, -18, -21, -27, -32, -28, -12, 0, -4, -11, + -23, -40, -46, -43, -33, -26, -16, -15, -29, -19, -1, 13, 44, 58, 41, 49, + 68, 59, 36, 28, 36, 18, -9, -9, 4, 17, 20, 7, -6, 18, 36, 22, + -1, -30, -26, -19, -25, -26, -31, -35, -33, -21, -3, -8, -10, -14, -24, -40, + -45, -43, -35, -20, -18, -20, -22, -12, 0, 15, 48, 58, 41, 58, 77, 57, + 30, 27, 33, 7, -23, -16, 11, 23, 21, 2, -5, 24, 33, 10, -10, -24, + -19, -25, -37, -30, -30, -34, -29, -14, -5, -16, -8, -8, -26, -50, -47, -41, + -30, -16, -25, -24, -14, -6, 3, 23, 50, 51, 49, 69, 81, 56, 29, 33, + 30, -2, -29, -14, 15, 26, 18, 2, -1, 31, 28, 0, -20, -21, -21, -32, + -43, -34, -33, -36, -23, -4, -8, -20, -8, -11, -25, -44, -41, -39, -32, -17, + -30, -22, -4, 1, 6, 31, 48, 47, 63, 80, 82, 52, 31, 38, 23, -13, + -33, -11, 20, 29, 14, -1, 9, 34, 19, -12, -26, -13, -23, -46, -46, -38, + -39, -35, -24, -3, -7, -17, -15, -16, -25, -45, -37, -37, -33, -26, -36, -20, + 5, 3, 4, 32, 42, 50, 76, 83, 75, 49, 34, 36, 17, -24, -33, -12, + 23, 32, 10, 1, 23, 30, 7, -17, -22, -8, -27, -49, -50, -42, -38, -28, + -18, -3, -8, -13, -14, -15, -24, -43, -35, -33, -29, -27, -34, -15, 16, 8, + 5, 32, 43, 62, 84, 84, 73, 53, 40, 30, 6, -26, -34, -15, 25, 28, + 8, 9, 38, 27, -4, -26, -21, -12, -33, -54, -47, -48, -38, -21, -14, -2, + -3, -11, -25, -18, -26, -32, -34, -34, -29, -31, -35, -10, 18, 11, 7, 33, + 47, 68, 83, 81, 71, 58, 42, 20, -5, -25, -36, -15, 23, 23, 7, 20, + 40, 21, -14, -35, -21, -16, -40, -58, -52, -52, -31, -11, -9, -6, -1, -15, + -26, -15, -29, -31, -36, -31, -29, -36, -32, -4, 17, 8, 15, 36, 48, 66, + 77, 83, 77, 59, 38, 9, -11, -20, -34, -12, 22, 20, 14, 33, 39, 16, + -22, -36, -23, -21, -40, -56, -52, -47, -24, -10, -4, 3, 1, -17, -22, -18, + -28, -26, -32, -30, -32, -30, -22, 1, 15, 15, 27, 42, 52, 62, 75, 85, + 80, 59, 35, 1, -16, -20, -35, -12, 18, 17, 18, 40, 34, 5, -34, -38, + -27, -28, -42, -60, -58, -48, -18, -4, 0, 3, -4, -18, -20, -22, -35, -29, + -27, -34, -42, -28, -12, 3, 8, 19, 31, 40, 45, 60, 75, 79, 76, 62, + 37, -2, -20, -22, -31, -11, 13, 15, 31, 43, 27, 0, -28, -33, -36, -37, + -43, -58, -61, -47, -13, 1, 1, 3, -5, -12, -17, -25, -36, -27, -25, -39, + -45, -24, 1, 0, 8, 25, 43, 45, 42, 57, 76, 76, 73, 60, 37, -8, + -25, -22, -25, -6, 9, 21, 41, 41, 15, -6, -18, -33, -48, -40, -38, -57, + -64, -46, -6, 9, -4, 1, -1, -9, -18, -28, -33, -24, -27, -42, -45, -18, + 2, 3, 13, 31, 49, 43, 37, 60, 74, 68, 68, 60, 30, -12, -28, -23, + -19, -8, 5, 26, 48, 37, 11, -12, -17, -37, -54, -40, -41, -58, -65, -42, + 5, 12, -8, 0, 2, -6, -22, -29, -30, -28, -37, -44, -42, -9, 6, 7, + 17, 33, 44, 42, 40, 61, 72, 57, 63, 61, 24, -16, -34, -21, -15, -12, + 3, 31, 47, 28, 7, -10, -15, -43, -51, -38, -45, -61, -61, -31, 10, 8, + -3, 6, 5, -8, -24, -27, -28, -31, -44, -42, -29, -3, 6, 10, 24, 40, + 44, 45, 46, 57, 62, 56, 65, 56, 16, -13, -32, -18, -12, -10, 11, 32, + 39, 25, 6, -10, -19, -48, -44, -38, -49, -63, -61, -19, 12, 3, 4, 6, + 3, -9, -25, -26, -27, -38, -46, -39, -18, 1, 12, 20, 29, 33, 36, 49, + 47, 54, 59, 49, 63, 51, 8, -12, -25, -18, -18, -6, 20, 33, 28, 19, + 4, -9, -27, -43, -41, -45, -55, -64, -51, -13, 7, -3, 0, 7, 3, -12, + -28, -27, -33, -46, -51, -33, -10, -5, 15, 31, 34, 26, 32, 47, 51, 53, + 47, 50, 61, 41, 1, -8, -12, -21, -20, 5, 27, 29, 16, 13, 8, -9, + -28, -40, -40, -44, -55, -62, -40, -8, 5, -2, 4, 11, 4, -15, -26, -26, + -37, -49, -47, -27, -8, -3, 22, 45, 38, 22, 34, 47, 55, 52, 39, 44, + 58, 32, 2, 0, -7, -25, -21, 10, 29, 30, 9, 0, 0, -7, -26, -38, + -40, -53, -61, -53, -30, -5, 1, -2, 5, 10, 3, -18, -25, -33, -43, -51, + -46, -20, -10, -8, 26, 52, 35, 19, 32, 47, 56, 46, 33, 44, 48, 20, + 10, 11, -7, -29, -20, 15, 35, 28, 2, -9, -8, -6, -26, -32, -36, -54, + -64, -52, -22, 1, 3, 2, 3, 15, 2, -22, -24, -34, -41, -45, -39, -19, + -9, 1, 35, 57, 37, 18, 27, 46, 52, 41, 37, 44, 40, 18, 16, 13, + -7, -29, -14, 23, 36, 17, -6, -17, -2, 1, -24, -38, -43, -59, -62, -44, + -22, -4, 7, 2, 5, 16, -2, -24, -27, -36, -43, -48, -37, -20, -5, 14, + 40, 52, 36, 20, 26, 43, 46, 40, 41, 42, 28, 19, 19, 9, -4, -21, + -10, 27, 32, 10, -6, -16, -4, -5, -14, -37, -48, -59, -58, -36, -24, -1, + 13, -3, 7, 16, -5, -19, -32, -38, -46, -43, -32, -22, -7, 22, 49, 57, + 37, 22, 20, 37, 41, 36, 46, 41, 21, 19, 16, 9, -2, -25, -9, 27, + 24, 8, -12, -11, -2, -9, -10, -39, -51, -59, -59, -35, -21, 2, 15, -5, + 10, 11, -12, -19, -35, -39, -46, -35, -29, -26, -5, 37, 60, 53, 36, 26, + 19, 33, 37, 33, 48, 41, 18, 17, 19, 11, -8, -23, -3, 30, 21, -5, + -14, -2, -6, -9, -9, -42, -59, -64, -54, -33, -16, 6, 14, 0, 15, 4, + -14, -17, -35, -45, -46, -33, -27, -22, 2, 42, 56, 49, 37, 26, 19, 26, + 23, 36, 58, 44, 11, 8, 23, 10, -7, -15, 3, 26, 12, -10, -8, 3, + -10, -7, -13, -46, -58, -60, -57, -40, -11, 9, 9, 3, 13, -6, -12, -17, + -42, -53, -45, -28, -23, -14, 11, 49, 60, 49, 40, 27, 14, 16, 13, 43, + 62, 46, 6, 8, 22, 7, -9, -10, 11, 23, 4, -17, 2, 6, -6, -7, + -21, -51, -58, -58, -55, -38, -12, 12, 10, 13, 1, -15, -7, -14, -47, -62, + -45, -29, -19, -2, 21, 51, 63, 46, 37, 31, 16, 0, 4, 43, 64, 43, + 6, 9, 24, 4, -15, -2, 14, 9, -9, -15, 14, 7, -11, -10, -29, -53, + -54, -57, -48, -35, -9, 13, 9, 11, -5, -6, -2, -22, -57, -60, -39, -24, + -11, 5, 30, 52, 62, 49, 42, 38, 11, -9, 7, 45, 61, 44, 10, 15, + 21, -4, -15, 3, 13, 1, -13, -9, 13, 7, -9, -13, -32, -51, -53, -56, + -44, -35, -9, 15, 11, 7, -8, 0, -2, -34, -65, -56, -31, -24, -7, 20, + 37, 49, 56, 47, 47, 39, -3, -16, 12, 40, 53, 45, 16, 23, 17, -7, + -8, 7, 8, -5, -12, -7, 7, 7, -4, -17, -38, -56, -60, -50, -37, -33, + -8, 7, 9, 0, -6, 7, -8, -47, -71, -50, -25, -23, 0, 33, 41, 46, + 52, 53, 54, 35, -6, -9, 13, 32, 50, 48, 23, 25, 13, -4, -3, 0, + -1, -7, -7, -8, 3, 6, -3, -22, -41, -55, -62, -46, -30, -24, -5, 0, + 5, 2, 3, 10, -20, -57, -69, -41, -19, -16, 5, 37, 47, 46, 49, 54, + 58, 29, -4, -6, 7, 21, 49, 49, 24, 24, 12, -2, -5, -9, 0, 0, + -10, -15, 2, 8, -4, -23, -42, -57, -66, -43, -22, -16, -11, -8, 3, 5, + 7, 4, -28, -61, -61, -36, -19, -11, 10, 45, 51, 43, 46, 52, 54, 26, + 3, -8, -3, 15, 52, 48, 27, 30, 15, -1, -9, -14, 0, -2, -15, -17, + -2, -1, -5, -23, -37, -62, -64, -34, -17, -15, -19, -8, 4, 7, 8, -8, + -37, -55, -50, -33, -19, -5, 16, 49, 54, 44, 45, 52, 53, 32, 3, -12, + -5, 14, 46, 46, 38, 34, 21, 6, -13, -21, -2, -3, -18, -19, -14, -9, + -2, -14, -44, -74, -56, -26, -15, -16, -18, -6, -1, 7, 6, -20, -43, -48, + -35, -32, -24, 1, 23, 51, 54, 41, 42, 52, 49, 32, 3, -14, -5, 19, + 42, 47, 43, 38, 27, 10, -18, -19, -5, -7, -18, -27, -23, -9, 2, -8, + -51, -75, -41, -19, -15, -13, -15, -11, -5, 10, 1, -30, -37, -40, -30, -33, + -24, 6, 30, 49, 49, 45, 43, 52, 39, 24, 7, -10, -7, 12, 33, 44, + 48, 43, 36, 7, -29, -18, -6, -14, -23, -36, -32, -12, 2, -16, -60, -65, + -27, -22, -22, -9, -6, -14, -6, 11, -10, -38, -35, -27, -26, -35, -15, 18, + 39, 47, 48, 51, 55, 51, 28, 22, 13, -5, -6, 5, 27, 46, 57, 49, + 39, 1, -29, -12, -7, -15, -28, -48, -39, -11, -1, -28, -61, -51, -22, -30, + -22, -3, -4, -21, -6, 8, -23, -45, -29, -18, -27, -32, -11, 24, 44, 40, + 46, 56, 61, 44, 17, 18, 19, 1, -11, -2, 24, 48, 57, 54, 45, 2, + -27, -12, -11, -18, -32, -49, -41, -16, -10, -32, -47, -33, -25, -34, -13, 6, + -5, -24, -13, -4, -29, -43, -29, -18, -25, -21, -1, 25, 44, 40, 49, 67, + 60, 31, 12, 18, 24, -2, -18, -5, 22, 45, 62, 65, 46, -5, -21, -12, + -12, -17, -36, -57, -48, -23, -15, -29, -35, -28, -33, -31, -3, 12, -16, -32, + -12, -19, -36, -33, -25, -22, -29, -10, 14, 30, 41, 35, 51, 73, 57, 27, + 16, 21, 14, -4, -12, -2, 21, 41, 62, 71, 43, -7, -12, -19, -22, -23, + -46, -57, -51, -35, -20, -17, -22, -26, -37, -27, 7, 12, -24, -31, -14, -29, + -34, -30, -22, -20, -21, 2, 15, 26, 40, 45, 55, 66, 52, 28, 20, 17, + 10, -1, -12, -4, 21, 43, 65, 74, 39, 1, -9, -25, -27, -24, -45, -61, + -55, -43, -22, -9, -12, -24, -32, -26, 9, 7, -25, -31, -30, -40, -31, -26, + -19, -20, -11, 14, 18, 27, 45, 54, 52, 61, 49, 33, 24, 15, 5, 0, + -14, -2, 24, 44, 62, 67, 37, 12, -9, -30, -29, -33, -49, -66, -58, -51, + -25, -2, -6, -19, -31, -24, 6, 3, -21, -37, -43, -42, -31, -25, -17, -19, + -5, 15, 19, 30, 52, 56, 45, 54, 52, 38, 22, 11, 8, 0, -16, 2, + 27, 44, 63, 60, 34, 16, -10, -25, -31, -38, -55, -68, -62, -53, -18, 5, + -2, -17, -31, -16, 5, -4, -22, -43, -50, -38, -32, -21, -16, -11, 8, 10, + 19, 32, 60, 60, 43, 46, 51, 37, 24, 13, 8, -6, -17, 4, 32, 52, + 56, 52, 39, 23, -5, -23, -41, -48, -64, -65, -63, -57, -14, 9, 3, -18, + -28, -9, 0, -11, -25, -47, -53, -38, -30, -19, -11, 0, 10, 11, 23, 42, + 66, 60, 42, 49, 53, 36, 24, 20, 9, -17, -18, 3, 39, 59, 49, 41, + 39, 26, 1, -24, -53, -59, -70, -61, -66, -58, -12, 17, 7, -20, -26, -7, + -7, -16, -30, -51, -60, -45, -26, -11, -5, 5, 8, 10, 23, 48, 66, 55, + 40, 48, 48, 33, 30, 25, 2, -21, -15, 10, 41, 51, 44, 37, 41, 27, + 6, -28, -60, -65, -70, -63, -70, -55, -6, 21, 1, -20, -15, -2, -15, -24, + -32, -54, -66, -45, -22, -8, 6, 13, 5, 15, 31, 51, 64, 58, 41, 42, + 44, 35, 36, 29, 0, -20, -9, 14, 43, 53, 46, 39, 39, 24, 7, -33, + -69, -75, -73, -70, -75, -46, 4, 17, -2, -18, -6, 3, -18, -32, -38, -61, + -65, -39, -17, -2, 10, 10, 5, 19, 33, 55, 61, 54, 39, 40, 41, 41, + 40, 30, -6, -25, -6, 22, 44, 48, 42, 42, 37, 23, 11, -42, -73, -77, + -75, -74, -75, -39, 4, 8, -5, -15, 1, -1, -30, -33, -38, -69, -66, -40, + -14, 3, 16, 8, 5, 21, 39, 60, 59, 48, 40, 38, 39, 42, 42, 30, + -8, -20, 0, 26, 48, 51, 48, 43, 29, 21, 1, -47, -70, -80, -83, -80, + -70, -25, 0, -2, -9, -6, 9, -7, -29, -33, -49, -72, -59, -29, -3, 3, + 11, 6, 14, 27, 47, 61, 54, 47, 43, 34, 42, 45, 39, 21, -10, -17, + 4, 29, 53, 54, 47, 39, 29, 22, -11, -53, -70, -83, -86, -77, -61, -19, + -6, -7, -12, -2, 9, -14, -29, -35, -61, -70, -54, -25, -8, 2, 11, 8, + 17, 27, 54, 60, 50, 45, 42, 40, 43, 39, 35, 18, -9, -7, 8, 28, + 55, 56, 49, 32, 30, 15, -21, -53, -71, -88, -87, -74, -45, -12, -11, -15, + -14, 6, 12, -12, -30, -48, -66, -60, -44, -18, -8, 5, 13, 15, 21, 31, + 51, 57, 48, 43, 42, 40, 43, 37, 29, 16, -3, -1, 7, 35, 60, 54, + 38, 26, 29, 5, -30, -54, -72, -93, -87, -69, -34, -14, -19, -25, -12, 13, + 6, -17, -37, -56, -66, -49, -38, -18, -11, 1, 17, 24, 26, 32, 47, 52, + 50, 49, 45, 39, 40, 33, 32, 13, 4, 3, 3, 47, 65, 52, 29, 27, + 20, -5, -35, -56, -76, -90, -79, -63, -27, -17, -26, -24, 0, 12, -2, -16, + -33, -61, -61, -42, -33, -17, -16, -6, 22, 30, 25, 29, 45, 50, 46, 53, + 41, 37, 37, 33, 28, 17, 15, 2, 15, 54, 64, 46, 21, 25, 9, -12, + -39, -58, -77, -87, -75, -46, -21, -23, -34, -24, 9, 9, -7, -17, -40, -67, + -53, -33, -27, -22, -26, -4, 34, 34, 25, 27, 46, 44, 52, 59, 37, 30, + 35, 32, 26, 25, 16, 2, 30, 62, 57, 33, 19, 17, -7, -25, -43, -58, + -80, -82, -64, -36, -26, -26, -33, -17, 11, 4, -9, -18, -45, -62, -44, -30, + -24, -28, -29, 5, 38, 32, 25, 30, 48, 41, 53, 57, 35, 28, 26, 27, + 31, 29, 14, 12, 47, 63, 48, 35, 24, 4, -19, -32, -46, -55, -76, -77, + -58, -31, -30, -33, -36, -8, 12, -4, -9, -22, -51, -57, -30, -23, -27, -40, + -31, 18, 36, 31, 30, 33, 39, 36, 56, 51, 32, 27, 20, 24, 39, 30, + 16, 29, 55, 53, 43, 36, 21, -5, -28, -39, -45, -55, -71, -70, -47, -27, + -35, -36, -25, -2, 1, -4, -6, -23, -48, -48, -25, -16, -25, -46, -23, 24, + 30, 35, 34, 29, 33, 37, 51, 41, 30, 21, 12, 27, 47, 33, 19, 38, + 51, 43, 39, 36, 15, -17, -35, -35, -42, -55, -68, -62, -45, -33, -40, -36, + -19, -5, -4, -3, -6, -24, -47, -38, -17, -13, -37, -48, -13, 26, 30, 36, + 32, 27, 29, 36, 48, 38, 27, 9, 5, 34, 47, 31, 30, 49, 47, 36, + 38, 28, 11, -21, -32, -32, -47, -56, -60, -54, -40, -39, -42, -31, -12, -5, + -7, -1, -4, -21, -39, -28, -11, -13, -45, -42, -2, 23, 25, 42, 33, 26, + 26, 33, 44, 34, 20, 1, 5, 36, 47, 38, 40, 47, 37, 35, 38, 20, + 1, -23, -26, -35, -49, -56, -55, -48, -40, -46, -42, -28, -12, -12, -10, 2, + -6, -25, -32, -25, -13, -22, -43, -30, 5, 18, 24, 45, 35, 29, 21, 27, + 39, 28, 16, 2, 9, 39, 40, 44, 55, 45, 25, 31, 34, 15, -1, -18, + -25, -41, -49, -50, -52, -46, -42, -48, -40, -23, -9, -18, -13, 9, -1, -24, + -27, -22, -14, -30, -41, -26, 8, 15, 25, 40, 36, 26, 15, 26, 35, 21, + 11, 2, 17, 44, 37, 54, 63, 37, 16, 31, 27, 12, -3, -12, -24, -45, + -47, -46, -45, -40, -44, -55, -40, -17, -12, -22, -7, 19, -2, -22, -24, -15, + -17, -36, -36, -11, 16, 10, 17, 38, 43, 25, 15, 25, 26, 14, 7, 2, + 25, 39, 38, 63, 67, 30, 16, 25, 18, 14, -5, -9, -26, -43, -45, -47, + -42, -38, -52, -57, -35, -14, -22, -27, 0, 23, -5, -24, -22, -12, -21, -40, + -31, 1, 19, 6, 11, 35, 44, 22, 18, 28, 14, 4, 4, 11, 32, 34, + 38, 70, 68, 22, 18, 17, 15, 17, 0, -10, -31, -45, -43, -42, -34, -36, + -62, -61, -25, -11, -28, -29, 3, 25, -3, -26, -15, -12, -28, -34, -21, 9, + 17, 2, 10, 31, 40, 24, 23, 28, 5, -3, 6, 19, 35, 33, 42, 72, + 59, 22, 22, 12, 17, 17, 2, -11, -31, -40, -40, -36, -28, -40, -66, -57, + -18, -15, -32, -22, 9, 22, -3, -23, -8, -12, -31, -32, -12, 18, 15, -1, + 9, 25, 36, 26, 27, 20, -7, -5, 12, 23, 29, 33, 45, 70, 48, 25, + 20, 8, 16, 9, 4, -11, -33, -39, -37, -34, -30, -46, -65, -50, -23, -22, + -30, -19, 13, 22, -4, -21, -6, -15, -32, -28, -3, 18, 9, 0, 9, 21, + 30, 28, 30, 12, -14, -1, 17, 19, 27, 41, 51, 63, 35, 28, 22, 12, + 10, 6, 9, -14, -31, -36, -31, -27, -38, -49, -62, -48, -29, -25, -27, -13, + 13, 13, -3, -9, -9, -21, -30, -20, 4, 12, 4, 5, 12, 19, 27, 33, + 29, 6, -12, 2, 21, 17, 31, 45, 54, 55, 31, 31, 25, 14, 3, 5, + 11, -14, -27, -33, -24, -27, -41, -49, -63, -53, -37, -26, -22, -7, 11, 8, + 0, -3, -14, -19, -27, -14, 8, 5, 2, 9, 12, 20, 25, 31, 18, 0, + -6, 8, 20, 14, 27, 43, 59, 48, 24, 28, 25, 14, 2, 8, 6, -15, + -26, -30, -16, -28, -44, -53, -61, -58, -37, -27, -21, -4, 8, 3, 1, -2, + -18, -21, -24, -11, 3, -4, 3, 15, 17, 20, 22, 29, 15, 3, -2, 8, + 17, 18, 30, 46, 56, 40, 21, 29, 26, 14, -1, 5, 4, -6, -22, -29, + -13, -27, -46, -51, -62, -61, -37, -28, -14, 2, 7, 0, 5, -2, -16, -17, + -19, -10, -7, -9, 11, 20, 22, 18, 17, 25, 19, 4, -1, 10, 19, 25, + 32, 44, 53, 36, 19, 29, 24, 10, -4, 5, 4, -2, -22, -24, -13, -31, + -48, -56, -63, -60, -40, -31, -11, 8, 8, 2, 8, -6, -20, -17, -12, -10, + -20, -12, 14, 30, 26, 10, 14, 24, 24, -1, -7, 12, 25, 27, 30, 40, + 52, 34, 17, 28, 24, 7, -9, 1, 8, 3, -20, -20, -16, -33, -53, -59, + -62, -61, -47, -29, -5, 15, 5, 1, 9, -8, -20, -14, -5, -12, -30, -11, + 20, 37, 25, 10, 19, 25, 19, -5, -2, 18, 28, 26, 29, 41, 49, 31, + 20, 30, 24, 1, -8, 4, 10, 3, -17, -12, -18, -40, -57, -61, -62, -59, + -48, -23, 0, 18, 5, 5, 12, -9, -19, -9, -2, -20, -37, -7, 25, 39, + 23, 11, 25, 26, 10, -10, 5, 23, 24, 26, 30, 40, 42, 27, 23, 31, + 18, -7, -5, 2, 7, -1, -10, -10, -22, -45, -59, -63, -62, -58, -45, -21, + -1, 17, 10, 13, 7, -18, -21, -5, -3, -27, -38, -7, 26, 38, 21, 20, + 31, 23, 0, -9, 15, 25, 21, 28, 33, 35, 35, 29, 28, 31, 12, -5, + 0, 0, 4, 0, -3, -14, -27, -48, -57, -69, -66, -61, -40, -19, 1, 16, + 13, 16, -3, -18, -17, -4, -9, -30, -33, -1, 24, 35, 28, 34, 31, 16, + -4, -2, 22, 29, 20, 27, 38, 33, 30, 30, 31, 33, 9, 1, -3, -7, + 2, 6, -1, -22, -31, -50, -61, -74, -67, -52, -34, -25, 1, 19, 21, 14, + -8, -18, -14, -10, -14, -27, -26, -5, 21, 35, 38, 40, 31, 12, -1, 5, + 22, 29, 19, 31, 41, 28, 30, 28, 31, 28, 12, 7, -13, -11, -2, 13, + -5, -26, -32, -52, -67, -80, -65, -46, -34, -26, 2, 15, 25, 9, -8, -14, + -16, -10, -18, -25, -25, -9, 20, 37, 46, 35, 26, 10, 7, 8, 18, 27, + 18, 31, 39, 25, 29, 29, 34, 26, 20, 2, -18, -10, -5, 12, -9, -22, + -31, -48, -74, -79, -66, -42, -34, -22, -1, 14, 25, 13, -6, -19, -16, -8, + -19, -22, -21, -5, 21, 41, 51, 32, 25, 14, 19, 13, 14, 21, 21, 32, + 34, 26, 26, 30, 32, 25, 25, -3, -19, -13, -2, 8, -12, -24, -32, -46, + -75, -79, -67, -43, -33, -18, -7, 12, 25, 18, 0, -23, -13, -7, -23, -18, + -15, -4, 21, 48, 51, 27, 27, 23, 22, 12, 12, 19, 22, 28, 28, 28, + 28, 31, 28, 23, 28, -3, -20, -22, -5, 0, -14, -23, -28, -50, -78, -81, + -63, -44, -34, -19, -14, 10, 25, 18, -6, -19, -5, -11, -30, -17, -8, 2, + 21, 54, 45, 25, 28, 33, 25, 9, 12, 21, 26, 23, 24, 33, 37, 35, + 20, 23, 32, -1, -21, -25, -12, -11, -12, -19, -27, -53, -78, -79, -55, -42, + -31, -26, -18, 12, 24, 13, -9, -12, 0, -20, -33, -13, 1, 6, 26, 55, + 38, 25, 33, 45, 26, 7, 13, 21, 26, 16, 18, 38, 44, 33, 14, 25, + 30, 4, -24, -32, -21, -18, -19, -19, -25, -54, -79, -78, -53, -43, -29, -28, + -20, 6, 20, 12, -3, 0, -3, -35, -28, 1, 9, 8, 25, 46, 34, 30, + 37, 44, 19, 13, 20, 17, 20, 12, 18, 49, 49, 23, 13, 28, 33, 3, + -34, -37, -28, -30, -21, -10, -26, -57, -77, -74, -52, -40, -25, -32, -22, 3, + 17, 12, 3, 8, -15, -40, -18, 10, 10, 4, 32, 39, 27, 38, 48, 39, + 11, 18, 28, 17, 15, 5, 23, 61, 46, 21, 23, 35, 26, -3, -31, -37, + -39, -38, -23, -3, -29, -60, -74, -68, -58, -37, -27, -35, -22, -7, 15, 23, + 14, 8, -27, -41, -6, 19, 14, 9, 35, 31, 31, 48, 54, 35, 11, 27, + 26, 4, 7, 11, 31, 54, 38, 25, 34, 35, 20, -10, 19, 3, -8, -45, + 64, -15, -41, 23, 40, -58, 22, 29, -27, -28, 42, -36, 21, -12, -19, 39, + -14, 3, -18, 32, -27, 18, -8, -43, 43, 25, -52, 6, 19, 13, -7, -50, + 55, 5, -46, -22, 94, -53, -33, 35, 27, -45, -2, 20, 19, -30, -23, 47, + 8, -58, 5, 76, -67, -22, 42, 30, -54, 8, 23, 11, -51, 3, 47, -33, + -7, 5, 27, -33, 34, -35, 17, 4, -26, 5, 17, -30, 33, 5, -29, -5, + 44, -18, -50, 60, -33, 10, -5, 10, -7, 1, -5, 19, -36, 3, 37, -17, + -51, 52, 37, -64, 9, 4, 37, -44, -13, 25, 45, -75, -9, 79, -34, -57, + 53, 24, -59, 18, 22, -3, -24, 10, -2, 18, -53, 29, 35, -20, -43, 37, + 18, -17, -31, 8, 45, -49, 8, 11, 9, -23, 30, -24, -22, 29, 14, -43, + 27, 13, -22, -1, 2, 22, -37, 5, -5, 38, -43, 6, 36, -21, -20, 20, + 0, -5, -27, 27, 21, -53, 4, 52, -2, -84, 70, 5, -29, -19, 36, -6, + -8, -12, 3, 35, -32, -25, 48, 6, -60, 49, 4, -27, -13, 31, -15, -9, + -4, 31, -13, -25, 29, 12, -34, -6, 30, -41, 36, -23, 6, 31, -30, 0, + 17, -45, 47, -5, -47, 19, 28, -8, -30, 27, -6, 15, -54, 34, 21, -27, + -9, 25, 3, -45, 26, 27, -52, 22, 20, -29, 34, -46, 22, 40, -69, -27, + 108, -49, -54, 69, -11, -3, -18, 3, 15, -12, -23, 29, -8, 4, -23, 50, + -38, -8, 33, -32, -2, 26, -27, 12, 13, -39, 56, -31, -22, 28, 2, -39, + 54, -20, -36, 51, -6, -34, 15, 2, 1, 2, -36, 42, 2, -10, -39, 64, + -36, -16, 24, 1, -1, -18, -10, 54, -27, -54, 80, -18, -61, 51, 27, -76, + 64, -30, -1, 9, -19, 24, 13, -29, -13, 49, -18, -46, 43, 6, -47, 42, + -28, 14, 18, -18, 2, 14, -39, 25, 16, -58, 33, 29, -49, 16, 41, -62, + 43, -17, -17, 25, -10, -28, 41, -5, -30, 27, 14, -53, 27, 35, -63, 16, + 30, 0, -30, -10, 22, 31, -57, 0, 68, -59, 2, 37, -30, 6, -3, -19, + 35, -29, 1, 20, 22, -68, 33, 39, -71, 21, 27, -22, -1, 3, 0, 18, + -16, -13, 17, 4, -37, 44, -15, -26, 48, -29, -11, 34, -25, -4, 25, -48, + 43, 4, -49, 28, 42, -72, 7, 59, -36, -28, 45, -9, -28, 25, -19, 23, + -9, -40, 47, 18, -85, 78, -2, -53, 39, -17, 2, 14, -36, 10, 63, -78, + 17, 59, -66, -8, 54, -49, 14, 1, 5, 2, -18, 16, -12, 30, -58, 22, + 53, -83, 17, 79, -84, 19, 17, -34, 44, -33, -27, 82, -62, -19, 91, -93, + 22, 49, -51, -25, 48, -12, -6, 1, -2, -1, 22, -32, -1, 59, -78, 12, + 58, -49, -26, 70, -40, -8, 16, -8, 12, 10, -65, 74, -1, -97, 90, 0, + -56, 23, 25, -17, 11, -23, 14, 9, -24, -31, 77, -41, -48, 95, -38, -46, + 59, -1, -57, 49, -33, 19, 18, -46, 34, 31, -79, 47, 11, -38, 10, 19, + -14, -10, 26, -29, 28, -17, -27, 48, -15, -51, 78, -14, -73, 64, 12, -55, + 29, 3, -24, 52, -65, 26, 50, -75, -5, 81, -76, 0, 42, -6, -26, 10, + 18, -14, 4, -24, 33, 2, -69, 61, 43, -101, 40, 54, -73, 22, 18, -41, + 44, -19, -43, 94, -69, -13, 65, -26, -46, 35, 24, -34, -2, 23, -13, 6, + -19, 4, 38, -56, 14, 40, -37, -19, 66, -57, -9, 50, -47, 21, 6, -31, + 55, -34, -50, 98, -44, -47, 44, 28, -51, 6, 31, -3, -34, 8, 11, 6, + -18, -27, 78, -48, -28, 55, -2, -60, 57, -37, 14, 15, -48, 49, 22, -96, + 74, 23, -83, 36, 18, -17, -25, 41, -12, -4, -2, 1, 9, -14, -18, 36, + 12, -77, 54, 32, -67, 20, 38, -67, 61, -53, 32, 21, -60, 27, 41, -74, + 27, 33, -30, -6, 22, -1, -30, 20, 1, -4, -22, 9, 8, 37, -65, 18, + 61, -69, -3, 37, -19, -15, 15, -16, 57, -78, 20, 66, -67, -27, 76, -37, + -16, 11, 11, -5, -18, 10, 16, -5, -38, 36, 9, -20, -32, 73, -41, -36, + 62, -33, -9, 34, -41, 35, -7, -40, 65, -35, -26, 33, 2, -43, 42, -4, + -9, 5, -11, 19, -10, -16, 11, 16, -28, -9, 41, 2, -70, 67, -3, -55, + 23, 33, -26, 6, -29, 43, 16, -85, 51, 28, -54, 7, 27, -9, 2, -18, + 27, -4, -42, 31, 10, -19, -9, 18, 8, -24, -3, 45, -57, 25, 0, -7, + 15, -28, 10, 33, -46, -6, 52, -36, -15, 46, -29, -4, 12, -14, 34, -57, + 16, 40, -41, 3, 16, 8, -32, 16, 15, -17, -27, 47, -30, -1, 14, -5, + 16, -17, -33, 70, -44, -42, 84, -34, -27, 18, 15, 3, -20, -22, 55, -35, + -22, 31, 10, -11, -27, 27, 13, -28, -10, 41, -21, -3, -22, 41, -21, -13, + 6, 34, -68, 46, 25, -65, 50, -21, -1, 10, -33, 34, 1, -43, 58, -34, + -2, 13, 8, -25, 0, -2, 34, -29, -26, 45, -12, 4, -34, 32, 15, -54, + 17, 53, -76, 41, 4, -17, 13, -26, 13, 31, -47, 1, 52, -53, 11, 8, + 14, -31, -7, 19, 30, -60, 26, 27, -22, -10, 0, 18, -13, -24, 52, -38, + -17, 68, -60, 26, -9, -25, 41, -29, -8, 40, -25, -9, 26, -28, 15, -9, + -3, 11, -21, -1, 44, -47, 19, 0, 3, -14, -12, 38, -22, -23, 37, -10, + -13, 9, -6, 21, -14, -39, 61, -4, -68, 60, 6, -43, 28, -14, 21, -22, + -13, 36, -7, -40, 46, -14, -5, -18, 20, 22, -49, 22, 10, -18, 21, -30, + 9, 34, -54, 19, 22, -34, 27, 7, -45, 30, 0, -20, 23, -23, 29, -10, + -21, 25, 3, -23, -1, 5, 16, -33, 14, 25, -21, -11, 16, 3, -22, 5, + 6, 32, -73, 27, 62, -72, 5, 26, -21, 30, -37, 4, 40, -45, 5, 18, + -18, -1, 12, -3, 0, -18, 28, -8, -14, 11, -11, 13, -15, -3, 27, -17, + -30, 65, -45, -5, 28, -25, 1, 20, -36, 38, -11, -20, 35, -23, -20, 27, + 11, -42, 13, 17, 1, -25, 20, 10, -33, 10, 6, -7, 9, -26, 40, -3, + -63, 74, -30, -11, 10, -10, 5, 17, -47, 53, -10, -47, 29, 31, -45, 4, + 16, 14, -15, -33, 40, -11, -3, -10, 2, 18, -20, 9, 22, -44, 19, 20, + -42, 25, -5, -11, 25, -25, -3, 47, -63, 28, 20, -42, 7, 39, -41, 2, + 13, 10, -24, -8, 41, -26, -1, -13, 9, 42, -60, 0, 61, -54, -4, 19, + -6, 11, -19, -13, 52, -37, -26, 66, -38, -30, 49, -18, -11, 5, 7, 10, + -30, 4, 17, 2, -12, -15, 38, -19, -20, 30, -16, -23, 38, -13, -16, 29, + -22, 26, -17, -35, 62, -30, -35, 51, -16, -27, 40, -16, 3, -8, -4, 9, + 4, -26, 11, 20, -11, -38, 56, -19, -29, 31, 7, -39, 17, 10, 6, -8, + -41, 45, 26, -79, 36, 42, -58, 21, 6, -10, 7, -19, 17, -1, -15, -12, + 53, -22, -32, 24, 25, -59, 24, 22, -36, 10, 18, -27, 44, -45, 0, 42, + -45, -2, 30, -27, 12, 23, -38, 13, 5, 4, -4, -20, 1, 43, -27, -36, + 43, 14, -51, 12, 40, -41, 5, 18, -11, -1, -5, -11, 53, -56, -29, 91, + -41, -45, 57, -7, -18, -3, -4, 29, -20, -19, 20, 26, -57, 31, 17, -22, + -13, 28, -31, 3, 36, -33, 9, 17, -39, 42, -9, -54, 58, 6, -69, 44, + 30, -50, 24, 3, -17, 9, -20, 17, 8, -23, 1, 46, -50, 1, 27, 1, + -49, 37, 5, -17, 4, -5, 7, 18, -55, 39, 36, -85, 37, 48, -63, 5, + 27, -13, -6, -4, 5, 24, -26, -12, 42, -25, -34, 33, 20, -33, -13, 29, + -2, 7, -34, 12, 37, -50, 1, 47, -46, -1, 56, -54, -18, 59, -35, -6, + 12, -16, 20, -2, -27, 43, -12, -34, 22, 25, -41, -7, 43, -20, -18, 19, + -1, 1, -6, -20, 54, -55, -12, 67, -24, -56, 56, -8, -12, -7, -3, 16, + 20, -48, 20, 32, -46, 8, 23, -17, -38, 54, 1, -34, 2, 30, -1, -21, + -18, 38, -14, -35, 41, 3, -36, 19, 22, -45, 40, -32, 12, 12, -26, 2, + 35, -54, 34, 14, -25, -30, 47, 10, -53, 24, 13, -4, -18, 3, 5, 27, + -61, 38, 15, -39, 6, 40, -36, 0, 2, -6, 28, -40, 7, 46, -37, -30, + 59, -21, -29, 6, 48, -55, 12, 30, -21, -6, 5, -2, 1, -14, -7, 46, + -41, -4, 35, -8, -33, 29, -20, 26, -31, -10, 63, -46, -4, 12, 7, -11, + -15, 26, -14, -22, 54, -47, 12, 9, -1, -8, -7, -8, 41, -12, -60, 77, + -21, -26, 11, 13, 1, -26, -9, 59, -45, -16, 38, -3, -27, -1, 28, -8, + -19, 11, 20, -41, 34, -23, 22, -20, -9, 6, 51, -79, 40, 18, -40, 23, + -5, -19, 13, 2, 3, -4, -35, 71, -39, 5, -30, 33, 6, -29, -3, 38, + -29, -5, 18, -9, -4, -11, 16, 15, -32, -14, 77, -83, 30, 10, -10, -19, + 20, 15, -17, -19, 29, 7, -32, 6, -1, 14, -14, -6, 5, 36, -58, 47, + -18, -14, 4, 8, 8, -24, -15, 60, -36, -20, 43, -32, 3, -2, 1, 9, + -5, -8, 30, -33, 6, 6, 2, -12, -11, 24, 1, -22, 9, 34, -61, 25, + 11, -5, -18, -1, 38, -19, -33, 49, -19, -21, 18, -7, 1, 5, -4, -3, + 13, -30, 25, -5, -12, 2, 8, 17, -37, 0, 50, -38, -26, 40, -15, 7, + -24, 31, -11, -8, 6, -6, -3, 1, 9, -8, 6, -20, 25, 0, -21, 7, + 22, -48, 29, -4, 10, -22, 7, 22, -9, -34, 45, -15, -31, 30, -2, 0, + -30, 46, -18, -6, -17, 31, -6, -7, -21, 8, 45, -47, -7, 31, -17, -11, + 25, -20, 17, -30, 47, -38, -2, 5, 16, -36, 24, -2, 3, -7, 6, 10, + -23, 5, -11, 35, -42, 17, 0, 21, -35, 11, 16, -18, -15, 36, -24, -3, + 9, 5, 13, -49, 36, -11, -2, -14, 37, -32, 13, -1, 0, -2, -2, -8, + 17, -11, -21, 30, -1, -1, -41, 72, -65, 14, 14, 12, -41, 21, 4, 15, + -32, -1, 25, -9, -18, 3, 29, -38, 35, -22, 14, -20, 16, -6, -6, -13, + 29, -4, -17, 7, 14, -6, -38, 54, -32, 3, -16, 36, -39, 42, -40, 36, + -22, -13, 17, 14, -36, 12, 23, -25, 6, -25, 53, -33, -12, 5, 37, -46, + 6, 20, 9, -53, 52, -16, -22, 24, -9, 10, -17, 12, -20, 48, -73, 40, + 18, -30, -20, 52, -34, 11, -6, 0, 1, -15, 24, -16, 16, -30, 44, -27, + -10, 0, 34, -52, 24, 3, 2, -6, 12, -25, 35, -38, -14, 72, -73, 7, + 31, 15, -50, 20, 12, -5, -25, 23, 3, -10, -9, 15, 9, -41, 28, 6, + -5, -36, 44, -13, 10, -19, 2, 14, -10, -29, 56, -27, -35, 58, -19, -27, + 17, 16, -30, 10, -7, 15, -12, -3, 11, 18, -30, -13, 38, -17, -16, 3, + 32, -37, 23, -24, 30, -12, -26, 40, -14, -52, 59, 12, -55, 16, 35, -20, + -30, 39, -24, 21, -26, 12, 13, -10, -19, 23, 2, -35, 17, 33, -30, -17, + 39, -15, 12, -53, 50, -13, -25, 2, 50, -42, -1, 25, -22, 6, -5, 3, + -4, 2, -18, 39, -25, -3, 1, 29, -57, 22, 26, -22, -18, 34, -10, -10, + -11, 13, 31, -77, 46, 23, -22, -35, 61, -24, -13, 7, -3, 0, 4, -24, + 27, 12, -50, 35, 13, -19, -37, 69, -46, -4, 13, 5, -8, 6, -25, 40, + -26, -13, 38, -12, -28, 21, 22, -57, 40, -15, 11, -19, 4, 19, 9, -36, + 3, 42, -35, -30, 46, 0, -50, 59, -26, 9, -16, 12, -10, 10, -33, 44, + -8, -29, 8, 42, -43, -6, 26, -19, 14, -30, 34, 4, -21, -17, 49, -31, + -24, 34, 14, -53, 32, 13, -26, 12, -22, 26, -3, -22, -11, 66, -59, 0, + 43, -27, -23, 42, -32, 7, -7, 11, 9, -19, -1, 15, 16, -58, 43, 1, + -32, 11, 36, -44, 18, 0, 4, -4, -7, -22, 50, -22, -44, 67, -14, -43, + 37, 2, -32, 15, 7, 8, -22, -1, 14, 19, -43, 0, 40, -30, -14, 28, + 10, -32, 11, 1, 21, -33, -9, 31, 15, -72, 61, 4, -40, 21, 14, -37, + 22, 4, -4, -9, 5, -8, 23, -16, -22, 35, -24, 0, 12, 3, -17, 15, + 2, -10, -6, -8, 21, 7, -58, 40, 43, -75, 25, 28, -25, -18, 28, -15, + 6, -5, -4, 22, -5, -39, 37, 1, -30, 12, 23, -27, -8, 34, -22, 0, + -12, 15, 10, -28, 2, 45, -45, -9, 36, -22, -7, 13, -7, 6, 2, -18, + 17, 10, -34, 9, 18, -22, -1, 22, -9, -17, 23, -1, -22, 21, -20, 20, + -17, -6, 38, -33, -18, 55, -32, -21, 26, -5, -9, 5, -8, 16, 9, -47, + 36, 11, -36, -3, 38, -7, -48, 44, -2, -11, 2, -16, 15, 11, -36, 33, + -3, -18, 9, 19, -46, 26, -1, -11, 20, -24, 12, 16, -16, -17, 37, -32, + -6, 13, 13, -33, 25, 14, -27, 8, 1, -18, 22, -5, -15, 32, -46, 37, + -2, -19, -13, 38, -32, 8, 2, -4, 15, -12, -4, 19, -25, -10, 37, -19, + -11, -10, 57, -54, 19, -17, 18, 3, -18, -9, 27, -6, -36, 57, -23, -21, + 14, 11, -23, 32, -53, 56, -24, -5, -3, 11, -16, 16, -7, -20, 17, 11, + -3, -31, 42, -33, 14, -6, -2, -8, 39, -56, 48, -21, -20, 30, -8, -20, + 12, 15, -32, 41, -36, 29, -25, 14, -22, 22, -19, 9, 4, 10, -31, 17, + 11, -14, -1, -7, 17, -16, 6, -18, 64, -88, 47, 6, -20, -5, 22, -13, + 18, -28, 2, 25, -19, -10, -3, 29, -23, 11, -22, 39, -25, 13, -27, 20, + -2, -18, 15, -3, 3, 9, -17, -8, 38, -57, 35, 1, -9, -24, 43, -32, + 30, -30, -3, 19, -3, -21, 12, 14, -12, 2, -5, 11, -37, 37, -3, -13, + -4, 10, 11, -4, -38, 41, -9, -27, 37, -37, 16, 17, -7, -15, 22, -40, + 33, -2, -16, 4, 3, 8, -4, -20, 21, -3, -10, 8, -26, 37, -21, 8, + 0, -3, -3, 0, -8, 20, -15, -32, 54, -10, -26, 17, -12, 10, 24, -71, + 51, 3, -21, 9, -3, 17, -22, 2, 15, -21, -11, 39, -25, 11, -27, 28, + 3, -11, -26, 45, -43, 24, 7, -39, 47, -24, -15, 27, -13, -15, 35, -27, + 15, -17, 9, 0, -7, 0, 4, -9, 13, -3, -16, 28, -29, 21, -23, 11, + -4, 10, -30, 64, -63, 13, 28, -30, 16, -13, 0, 25, -39, -2, 53, -40, + 5, -19, 41, -25, -6, -3, 37, -40, 6, 8, 0, 6, -34, 32, 4, -27, + 13, 15, -34, 52, -63, 40, -5, -22, 5, 24, -32, 22, 11, -26, 14, -22, + 26, -21, 10, -8, 5, -10, 46, -66, 44, -20, 14, -7, -27, 23, 30, -53, + 24, 10, -37, 44, -40, 21, -11, 3, 6, 20, -47, 27, 5, -2, -18, -4, + 29, -13, -20, 27, 9, -47, 43, -37, 55, -62, 14, 33, -13, -28, 24, -9, + 23, -35, -4, 32, -14, -13, 28, -10, -30, 46, -43, 43, -46, 13, 13, -10, + 7, -3, -20, 39, -19, -19, 14, -15, 39, -31, -10, 25, 2, -34, 41, -35, + 15, -4, -3, 22, -18, -27, 46, -1, -36, 10, -4, 42, -56, 13, 31, -19, + -18, 28, -29, 27, -32, 24, 10, -44, 20, 32, -32, -17, 32, -13, 13, -35, + 20, 32, -53, 20, 9, -16, 16, -36, 39, -3, -33, 43, -26, 2, 2, 2, + -17, 24, -22, 14, -3, -12, 31, -28, -8, 26, -29, 19, -4, -15, 33, -39, + 22, 16, -37, 6, 17, -4, -13, -12, 37, 9, -65, 34, 25, -27, -9, 7, + 5, 10, -36, 45, -11, -41, 42, -6, -21, 7, -5, 31, -5, -57, 62, -12, + -15, -16, 23, 4, -24, 12, 26, -35, -11, 44, -25, -8, -1, -4, 28, -11, + -37, 61, -48, 23, -1, -30, 29, -8, -2, 6, -19, 18, 15, -41, 30, -4, + -11, -11, 28, -10, -4, -37, 81, -45, -43, 61, -19, 1, -11, 0, 31, -30, + -25, 68, -43, -11, 0, 27, -1, -33, -7, 77, -54, -30, 44, -6, -5, -14, + 17, -6, -10, 6, 30, -68, 50, -16, 5, 5, -30, 30, 26, -69, 36, 8, + -34, 37, -28, 11, 0, -1, 9, 1, -41, 53, -22, -24, 23, 5, -9, -11, + 12, 28, -61, 28, 36, -68, 51, -33, 25, -6, -26, 7, 53, -65, 2, 47, + -25, -23, 17, 20, -4, -51, 38, 29, -67, 31, 1, 22, -35, -8, 40, -9, + -46, 47, -13, -8, 5, -15, 37, -27, -20, 45, -16, -45, 59, -37, 19, -6, + 2, 1, -11, -3, 34, -42, 0, 33, -30, 16, -13, 13, 2, -23, 18, -5, + -26, 43, -24, 15, -26, 4, 35, -15, -62, 64, 19, -75, 50, -8, 8, -14, + -12, 31, -19, -30, 45, -10, -12, -10, 36, 3, -53, 14, 45, -37, -22, 42, + -25, 21, -36, 21, 37, -61, 5, 47, -49, 19, -4, 5, 1, -12, 7, 3, + -11, 2, 18, -28, 13, -4, 18, -13, -20, 33, -22, -8, 21, -12, -10, 24, + -9, 2, -27, 15, 33, -41, -18, 56, -40, 9, -5, 6, 20, -44, 11, 39, + -35, -22, 50, -7, -36, -6, 41, -10, -30, 15, 20, -22, 7, -11, 16, 6, + -51, 59, -21, -26, 24, 12, -24, 8, -7, 12, 3, -36, 27, 18, -42, 22, + 9, -22, 11, -2, 15, -40, 38, -13, -16, 8, 24, -33, 15, -13, 4, 23, + -42, 17, 30, -34, -5, 28, -22, 11, -23, 30, -14, -28, 37, 12, -46, 11, + 31, -23, -12, -7, 36, -17, -6, -4, 25, -18, 4, -29, 53, -48, 4, 24, + -9, -21, 30, -1, -20, 2, -13, 51, -51, -1, 39, -23, -18, 33, -23, 3, + 3, 2, -13, 11, 4, -13, 15, -14, -3, 1, 24, -53, 55, -24, -17, 36, + -1, -49, 45, -7, -12, -2, -4, 24, -23, 1, 6, 23, -51, 30, -8, 14, + -29, 17, 12, -9, -21, 21, 1, 3, -32, 21, 30, -59, 27, 25, -21, -26, + 36, -24, 16, -23, 15, 10, -15, 11, -11, -3, 14, 1, -30, 32, -24, 27, + -25, 10, -12, 29, -33, 7, -5, 25, -29, 14, 15, -42, 20, 18, -27, 1, + 21, -19, 17, -18, 2, 19, -12, -34, 47, -21, -6, 9, -2, 14, -32, 32, + -23, 14, -21, 21, 0, -13, -8, 42, -35, -19, 33, 4, -34, 23, -5, -6, + 22, -31, 21, -8, -5, -3, 15, -22, 10, 2, 7, -17, 11, 3, -10, 2, + -1, -2, -9, 25, -20, 11, -18, 17, -3, -12, 2, 9, -1, -10, 5, 0, + 15, -40, 36, -5, -28, 16, 24, -34, 16, -1, 13, -32, 11, 9, 5, -26, + 5, 32, -32, 4, -1, 29, -38, 8, 7, -6, 5, -2, -5, 18, -26, -2, + 39, -42, 0, 26, 2, -43, 45, -30, 20, -11, -6, -3, 16, -7, -6, 3, + 12, -13, 5, -7, -21, 47, -29, -11, 9, 36, -45, 8, 0, 22, -28, -7, + 32, -22, -9, 20, 12, -40, 24, -8, 14, -28, 10, 9, 12, -29, 15, -7, + 15, -23, 5, 14, -24, 12, 8, 4, -38, 36, -4, -7, -30, 47, -13, -24, + 16, 23, -46, 29, -3, -10, 20, -43, 35, 0, -4, -30, 47, -18, -21, 16, + 19, -35, 11, 19, -21, -11, 27, -12, -9, 16, -21, 23, -32, 30, 3, -22, + -15, 51, -38, -1, -2, 11, 15, -28, -1, 16, 13, -42, 23, 4, -6, -32, + 61, -24, -35, 34, 29, -55, 4, 13, 9, -6, -26, 35, -6, -11, -11, 19, + -6, -3, -15, 43, -41, 4, 22, -1, -34, 18, 15, -35, 18, -1, 23, -35, + 18, -2, -9, 1, 10, -18, 17, -18, 21, -8, -17, 24, -1, -20, -7, 26, + -11, 6, -33, 42, 0, -40, 9, 46, -48, -6, 24, 13, -39, 8, 41, -43, + 3, 6, 6, -7, -6, -8, 42, -37, -11, 39, -16, -26, 25, 3, -24, 9, + 11, 6, -34, 17, 14, -12, -22, 20, 0, 14, -38, 27, 10, -37, 22, -1, + -5, -7, 11, 4, -3, -29, 38, -5, -26, 4, 20, -17, 6, 2, 11, -17, + -10, 40, -49, 10, 26, -8, -24, 11, 12, 5, -36, 21, 20, -22, -29, 28, + 30, -30, -24, 31, 25, -70, 39, 4, -16, 3, 9, -13, 16, -26, 23, 19, + -46, 1, 29, 6, -37, 8, 27, -8, -33, 36, -24, 5, 14, -8, -8, 1, + 4, 15, -27, -11, 44, -38, 6, 12, -3, -12, 20, -17, 16, -35, 28, -4, + 0, -13, 8, 23, -24, -16, 28, 11, -58, 48, 6, -39, 11, 24, -9, -8, + -25, 42, -16, -14, 12, 2, 13, -31, 6, 26, -10, -48, 64, -22, -21, 6, + 28, -15, -11, -2, 22, -30, 11, 15, -25, 13, 2, -1, -7, -4, 6, 17, + -37, 17, 0, 1, 14, -23, 4, 16, -23, 6, 12, -31, 30, 6, -18, -25, + 45, -7, -20, -15, 44, -38, 9, 22, -37, 24, 6, -20, 14, -17, -8, 44, + -27, -22, 16, 30, -33, -18, 20, 31, -50, 11, 27, -21, -4, -3, 26, -15, + -24, 15, 20, -27, 16, -12, 9, 5, -24, 3, 26, -27, 5, 15, -19, 9, + -9, 26, -25, -5, 10, -4, -6, 31, -45, 18, 24, -23, -23, 27, -3, 2, + -18, 9, 13, -18, 19, -17, 7, -1, -24, 31, 5, -49, 31, 32, -40, -7, + 10, 14, -12, -12, 5, 21, -30, 25, -12, 4, -18, 9, 11, -13, -20, 37, + -8, -3, -13, -3, 33, -21, -32, 44, -7, -22, 28, -24, 5, 12, -19, 2, + 6, 2, -16, 11, 10, -6, -23, 31, -25, 7, 6, -16, 18, 1, -35, 40, + -9, -18, 12, 4, -2, -25, 20, 19, -16, -35, 46, -14, -8, -3, -1, 24, + -12, -25, 26, -4, -6, 3, -12, 20, -24, 18, 9, -20, -2, 18, -13, -1, + -16, 8, 26, -35, 12, 10, -11, 6, 2, -30, 46, -43, 16, 6, 1, -20, + 26, -18, 8, -13, 9, -3, 3, 1, -25, 29, 13, -50, 12, 41, -47, 15, + 14, -12, 2, -3, -1, 14, -25, -3, 26, -23, 19, -35, 41, -5, -23, -1, + 31, -30, 8, -15, 32, -29, -7, 22, 10, -35, 12, 6, -2, 20, -50, 36, + 7, -17, -4, -1, 7, 2, -21, 19, -12, 1, 28, -25, -5, 9, -3, -12, + 32, -45, 16, 21, 0, -43, 21, 28, -19, -38, 45, -15, -8, 28, -43, 39, + -12, -23, 13, 19, -39, 23, -3, 17, -32, 6, 20, -5, -32, 23, 8, -15, + -1, 11, 9, -28, 5, 20, -18, -6, 9, -18, 50, -50, -8, 49, -30, -5, + -4, 14, -19, 28, -21, 2, 4, 11, -20, 6, 3, -5, -24, 54, -34, -14, + 26, -4, -2, -16, 5, 20, -23, 1, 6, -9, 32, -37, 1, 25, -22, -8, + 31, -6, -37, 31, 0, 3, -37, 24, 25, -27, -20, 27, 1, 4, -26, 13, + 3, -14, 12, -6, 6, -3, -6, 18, -14, -27, 38, 5, -36, 14, 13, -22, + 26, -13, -22, 36, -23, -5, 3, 18, -12, -23, 31, -5, -24, 23, -15, 17, + -7, -23, 20, 6, -4, -19, 20, -8, 15, -32, 13, 17, -30, 17, 13, -19, + -8, 4, 24, -18, -29, 36, 7, -21, -20, 28, 13, -17, -31, 36, -9, -7, + 7, 6, -9, -4, 7, -6, 10, -32, 41, -26, 12, -10, -12, 35, -10, -39, + 36, -9, -7, 7, 6, -9, -4, 11, -14, 5, -7, 9, -13, 24, -27, 4, + 14, 7, -31, 19, -14, 17, -5, -34, 57, -31, -7, -6, 28, -15, -11, 2, + 25, -21, -14, 15, 18, -35, 12, 1, 9, -20, -2, 32, -37, 26, -17, 7, + 1, -10, -18, 54, -37, -16, 23, 11, -13, -23, 34, -5, -16, -10, 25, -28, + 30, -10, -7, -5, 18, -24, 25, -24, 18, -11, 0, 3, -19, 34, -12, -12, + 2, 3, -13, 32, -37, 20, 4, -6, -25, 29, -3, -2, -11, -2, 28, -38, + 18, 7, -5, -7, 0, -4, 21, -36, 30, -19, 25, -29, -15, 48, -11, -43, + 33, 33, -64, 17, 26, -12, -18, 9, -1, 18, -33, 23, -13, 21, -18, -13, + 18, -2, -20, 20, 6, -15, 4, -12, 28, -27, 1, 10, -5, 3, 0, -17, + 15, 17, -30, 2, 5, -8, 17, -11, -2, 9, -20, 23, -27, 23, -10, -3, + 7, -3, -25, 31, 9, -28, -9, 30, -5, -28, 15, 29, -36, -9, 29, -11, + -20, 33, -27, 21, -14, -12, 21, -3, -9, -2, 12, -5, -27, 27, 7, -20, + -11, 32, -9, -15, -1, 9, 20, -42, 12, 9, -4, 3, -6, -3, 6, 0, + -12, 15, -25, 27, -6, -6, -6, 6, -2, -4, 5, 9, -20, 12, 8, -17, + -10, 30, -12, -24, 25, -15, 18, -21, 21, -8, -6, -9, 12, -6, 15, -33, + 26, 8, -32, 13, 21, -12, -28, 20, 11, -6, -28, 27, 11, -21, -10, 22, + -1, -11, -7, 24, -12, -27, 35, -8, 0, -20, 23, -10, 9, -30, 32, -15, + 3, -7, 6, -2, 10, -17, 1, 8, -4, -5, -3, 14, -9, 1, -11, 18, + -13, 15, -33, 22, 14, -32, 11, 9, -1, -17, 14, 0, -3, -16, 29, -21, + -4, -1, 28, -24, -2, -11, 41, -25, -23, 24, 6, -18, -13, 37, -21, -2, + -4, 29, -40, 11, 12, 4, -25, 12, -9, 23, -17, -14, 27, -2, -26, 9, + 18, -14, -1, -15, 29, -18, -4, 5, 12, -26, 18, -3, -7, 3, 13, -10, + -25, 44, -38, 11, 8, -2, -25, 28, -9, 12, -13, -13, 10, 27, -53, 19, + 16, -4, -20, 12, 12, -21, 5, 12, 3, -35, 22, 8, 0, -28, 18, 16, + -25, -3, 9, 8, -3, -19, 8, 24, -34, -4, 38, -16, -30, 29, -1, -2, + -25, 28, -1, -21, 11, 10, -18, -1, 10, 1, -7, 0, 1, -7, 15, -15, + -5, 16, 2, -22, 8, 0, -1, 26, -34, -22, 56, -26, -11, 12, 9, -9, + -9, 4, 7, -8, -1, 8, 0, -21, 10, 19, -8, -25, 17, 10, -18, 3, + -4, 26, -15, -29, 30, 9, -46, 36, 12, -33, 1, 18, -2, -16, 4, 16, + -10, -16, 11, 2, 8, -19, 5, 1, 10, -21, 20, -8, -1, -3, 1, 7, + -19, 7, 11, -12, 5, 5, -26, 29, -11, -5, -2, 12, -13, 9, -22, 23, + 3, -20, 4, 17, -16, -13, 17, 15, -16, -34, 37, -5, 8, -32, 23, 17, + -36, -2, 36, -25, -4, 28, -18, -20, 15, 4, 7, -12, -24, 43, -19, 0, + -11, 25, -9, -12, -7, 10, -1, 11, -2, -12, 13, -27, 30, -9, -15, 8, + 17, -28, 18, -9, 3, 7, -8, -10, 16, -26, 35, -22, -10, 37, -35, 1, + 11, 11, -19, -2, 9, 17, -37, 11, 10, 9, -16, -12, 27, -11, -22, 16, + 24, -48, 25, -1, -3, 4, -20, 13, 39, -72, 34, 1, 2, -6, 4, -1, + -8, 2, -8, 18, -10, -1, -5, 19, -30, 5, 30, -16, -26, 36, -26, 3, + 21, -27, 10, 4, -10, 0, -4, 15, 9, -41, 32, -11, 2, -11, 15, -3, + -7, -8, 16, -3, -21, 23, -2, -9, -4, -2, 20, -5, -37, 49, -20, -6, + -9, 17, 17, -36, -8, 40, -24, -5, 3, 8, 5, -12, -6, 15, 2, -27, + 28, -4, -23, 16, 5, -1, -26, 29, 11, -38, 22, -12, -8, 38, -34, -3, + 10, 4, -2, -5, -8, 24, -16, -20, 21, 1, -7, 11, -7, -4, -15, 15, + 15, -21, -6, 10, -1, 17, -45, 23, 29, -42, 2, 18, -5, -6, -1, 22, + -20, -19, 16, 21, -20, -18, 23, 2, 5, -41, 36, 10, -34, 12, 12, -25, + 11, 1, 6, -6, -11, 20, -11, 10, -11, -12, 13, 8, -21, 5, -1, 14, + 3, -26, 5, 27, -39, 18, 7, -27, 34, -20, 13, -20, 7, -4, 25, -23, + -16, 7, 47, -35, -29, 37, 10, -35, 4, 12, -1, 0, -15, 25, -23, -12, + 35, 7, -51, 28, -1, 16, -33, 5, 27, -21, 2, -5, 13, -3, 0, -20, + 27, -30, 8, 16, -4, -13, 14, -15, 19, -12, -6, 8, -9, 19, -27, 4, + 20, -9, -12, 21, -37, 41, -22, 1, 1, 13, -33, 20, 14, -30, -2, 22, + 21, -51, 3, 38, -7, -35, 17, 6, 11, -43, 33, 9, -36, 10, 31, -24, + -13, 16, -6, 24, -36, -1, 16, 19, -45, 20, 11, 2, -30, 31, -21, -14, + 29, -4, -12, 3, -6, 9, 15, -37, 20, -4, 8, -18, 12, -7, 17, -8, + -12, -9, 23, 8, -28, 1, 29, -19, -18, 27, -2, -8, -28, 44, -4, -36, + 15, 33, -30, -13, 13, 14, -20, -7, 25, -11, -5, -8, 21, -1, -8, -37, + 50, 1, -53, 27, 28, -21, -10, 4, 16, -24, 10, 6, -12, 0, 2, 6, + 1, -13, 2, 21, -26, 3, 13, -19, 10, 9, -18, -3, 22, -18, -1, -2, + 14, -1, -23, 21, -6, -2, -9, 20, 5, -35, 1, 34, -21, -16, 22, 1, + -8, -5, 1, 18, -12, -23, 18, 5, -17, -7, 37, -6, -35, 6, 47, -44, + -7, 20, 5, -10, -23, 35, -6, -12, -12, 39, -27, -10, 9, 21, -21, -6, + 2, 5, 1, 6, -28, 17, 20, -31, -3, 15, 7, -26, 31, -40, 43, -32, + 23, -19, 11, -22, 26, -6, -1, -25, 33, 2, -25, -7, 9, 26, -16, -30, + 29, 20, -47, 13, 16, -9, -19, 18, 23, -32, -17, 32, 21, -38, -13, 14, + 43, -66, 19, 23, 5, -50, 47, -20, 2, -11, 22, -5, -6, -21, 4, 38, + -15, -32, 12, 35, -35, -4, 7, 18, -17, -1, -7, 6, 5, 0, 0, -7, + 0, -8, 21, -10, 5, -28, 30, 3, -17, -29, 57, -16, -17, -10, 28, -9, + -20, 26, -12, 3, -20, 27, -3, -7, -42, 65, -9, -45, -3, 63, -33, -11, + -6, 28, -17, -1, -6, 6, 7, -12, 0, 25, -21, -30, 54, -9, -37, 1, + 28, 7, -42, 18, 11, 17, -46, 24, -9, 27, -38, 22, -20, 23, -21, 11, + -6, 42, -71, 20, 32, -11, -43, 44, -3, -4, -27, 12, 24, -8, -18, -8, + 30, -19, -23, 44, -8, -30, 0, 45, -39, 0, -1, 28, -16, -17, -15, 44, + -13, -11, -13, 36, -24, -11, 12, 17, -30, 8, 17, -10, -18, 9, 22, -18, + -15, 3, 25, -25, 11, -6, 5, 7, -18, -3, 15, -1, -17, 8, 28, -32, + -17, 36, 8, -41, 12, 7, 13, -22, -14, 18, 41, -57, -1, 25, 10, -40, + 18, 11, -8, -23, 25, -16, 37, -45, 17, 10, 2, -60, 64, -15, -3, -16, + 22, -9, 9, -27, 30, -7, -21, 3, 20, -10, 6, -12, 15, -19, 14, -19, + 3, 22, -8, -29, 37, -28, 29, -26, 11, -15, 15, -17, 21, -26, 18, 5, + -5, -11, 2, 16, -10, -10, -5, 29, -30, 4, 3, 18, -21, 4, 1, 8, + -13, -10, 1, 40, -35, -26, 44, 5, -38, 8, 30, -24, 0, -1, 0, 12, + -18, -1, 18, -8, -28, 39, -18, 24, -35, 24, -36, 46, -41, 12, -3, 24, + -37, 31, -28, 32, -16, 2, -27, 39, -34, 7, 24, -19, -6, 14, -10, -1, + 14, -16, -4, 25, -26, -4, 8, 22, -40, 33, -30, 22, -15, 36, -63, 39, + 1, 10, -54, 36, 9, 5, -51, 49, -13, 5, -7, -7, 15, -9, -10, 2, + 12, -18, 6, 3, 18, -29, 9, 10, -10, 1, -20, 20, -3, -1, -13, 21, + -26, 41, -36, 2, 23, -23, -10, 39, -41, 17, -10, 8, 7, -13, 23, -54, + 66, -26, -50, 54, 17, -66, 59, -46, 30, -10, 6, -8, -18, 19, 16, -32, + 12, 6, -2, 3, -36, 33, -6, -7, 12, -16, 6, 14, -21, 14, 16, -58, + 37, 3, 0, -35, 44, -16, 17, -38, 28, -14, 25, -45, 28, -21, 32, -31, + 11, 17, -24, 11, 5, -24, 18, -6, -3, 0, -3, 21, -33, 24, 20, -78, + 66, -8, -24, 3, 17, -14, 24, -41, 34, -25, 27, -32, 17, -5, 13, -26, + 28, -29, 22, -8, -16, 33, -30, 2, 25, -27, 1, 31, -36, -7, 31, -8, + -12, -5, 17, -7, 5, -26, 32, 1, -18, -16, 27, -7, -10, 2, 21, -42, + 30, -3, -19, 33, -40, 19, 6, -13, -5, 17, -10, 28, -63, 40, 6, -10, + -9, 7, -3, 12, -20, -1, 17, -1, -6, -14, 18, 1, -19, 12, 5, -9, + -2, -14, 33, -3, -44, 51, -17, -6, -16, 36, -35, 29, -31, 31, -24, 15, + -23, 33, -35, 20, -4, -1, -19, 27, -1, -29, 25, 1, -20, 25, -23, -13, + 62, -50, -18, 43, -20, 1, -4, 16, -18, 4, -16, 36, -42, 42, -42, 38, + -28, 9, -10, 31, -40, 30, -39, 30, 8, -28, 11, 9, -7, -6, -8, 10, + 22, -36, -5, 26, 4, -41, 30, 12, -11, -10, -14, 37, -29, 3, -6, 9, + -5, 15, -30, 40, -26, 12, -25, 25, -21, -12, 46, -17, -39, 47, 7, -57, + 45, -14, 1, -13, 21, -21, 14, -7, 7, -11, 18, -34, 25, 7, -28, 22, + 1, -12, 11, -24, 4, 38, -44, 17, 2, -12, 19, -17, 0, 9, 17, -55, + 29, 3, 3, -27, 48, -38, 16, -17, 24, -19, 26, -49, 29, 9, -18, -25, + 50, 2, -31, -20, 43, -3, -35, 23, 13, -34, 9, 20, -15, -8, 29, -37, + 29, -21, 4, -8, 36, -52, 29, -8, 6, -18, 35, -34, 22, -21, 10, 5, + -11, -13, 35, -26, -3, 12, -17, 13, 1, -12, -4, 24, -18, -6, 18, -7, + -13, 17, -4, -30, 48, -41, 10, 34, -39, -22, 73, -48, -12, 12, 22, -14, + -31, 18, 29, -17, -21, 22, -3, -8, -12, 25, -11, 13, -41, 36, -3, -2, + -27, 37, -6, -36, 17, 18, -7, -10, 4, -5, 10, -21, 13, 15, -21, 2, + -1, -5, 8, -1, -16, 29, -24, 14, -18, 26, -24, 17, -26, 21, -18, 24, + -49, 82, -52, -11, 36, -22, -17, 30, -21, 1, 1, -1, 8, -2, -7, 2, + 17, -9, -36, 37, -5, -15, -4, 27, -20, 11, -31, 46, -18, -13, -11, 58, + -67, 19, -4, 40, -43, 9, -14, 41, -32, -16, 46, -19, -13, 5, -5, 6, + 2, -16, 10, -9, 18, -13, 3, 24, -37, 11, 1, 0, -8, -9, 28, -1, + -41, 40, -10, 6, -13, 1, -11, 30, -28, -10, 30, 1, -36, 17, 28, -54, + 51, -24, 1, -6, 6, -12, 33, -48, 23, 18, -17, -23, 27, 11, -23, -13, + 27, -7, -1, -24, 35, 3, -48, 35, 8, -20, -3, 3, 16, -11, 8, -35, + 32, 7, -27, -22, 81, -85, 36, -7, 16, -16, 2, 0, 13, -28, 12, -16, + 24, 6, -25, -14, 47, -15, -25, 3, 37, -41, -5, 32, -25, 11, 6, -16, + 25, -34, 14, 8, 13, -52, 30, 6, 13, -56, 56, -27, 13, -11, -6, 16, + -12, -1, 18, -40, 18, 19, -13, -11, 7, -2, 9, 10, -39, 9, 46, -48, + -18, 59, -32, -3, 14, -10, 10, -13, 10, -13, 14, -11, -10, 5, 31, -43, + 10, 23, -16, 3, -29, 50, -23, -19, 16, 15, -19, 3, -20, 39, -19, -14, + -6, 54, -44, -12, 18, 30, -56, 28, -15, 22, -16, -15, 31, -8, -9, -1, + 1, 1, 2, -8, 9, 10, -43, 41, -9, 8, -48, 62, -30, -9, 13, 6, + -24, 32, -31, 8, -4, 16, -27, 27, -19, -1, -6, 37, -40, 14, -3, 0, + 25, -59, 34, 18, -18, -21, 17, 13, -11, -8, -11, 43, -40, 1, 6, 24, + -37, 10, 14, -4, -12, -2, 17, 11, -40, 10, 16, 17, -51, 24, 14, -4, + -31, 22, 18, -32, 15, -24, 46, -38, 9, 2, -2, 14, -15, -12, 15, 3, + -28, 29, -7, -6, 13, -7, -6, 2, 3, -17, 28, -28, -9, 37, -17, 0, + 3, 10, -19, -5, 19, -17, 12, -25, 30, -19, 8, -27, 49, -15, -27, 9, + 10, 7, -31, 6, 30, -12, -45, 41, 24, -42, -1, 28, -2, -38, 29, -18, + 23, -4, -43, 35, 26, -54, 23, 7, 6, -30, 17, -14, 32, -40, 24, -13, + 17, -15, -11, 16, 16, -20, -26, 47, -10, -26, -6, 41, -19, -22, 36, -41, + 33, 5, -32, 12, 28, -51, 19, 27, -40, 7, 35, -34, 9, -22, 42, -20, + -15, -3, 43, -55, 15, 23, -10, -11, 3, 14, -32, 31, -26, 21, 7, -44, + 15, 40, -22, -41, 54, -17, -17, 8, -6, 10, 11, -17, -6, 15, -2, -20, + 31, -19, 4, -17, 22, 0, 2, -36, 39, 0, -31, 23, -38, 59, -15, -29, + -13, 69, -50, -22, 43, -11, -16, 0, 16, -9, -10, 13, 5, -8, -18, 27, + -8, -2, -12, 13, -1, -16, 16, -18, 27, -11, -19, 39, -28, -26, 28, 36, + -85, 72, -40, 24, -10, 0, -9, 30, -29, -11, 22, -13, -7, 23, -10, -14, + 6, 13, -15, 22, -31, 12, 0, 0, -3, -15, 19, 14, -21, -22, 27, 35, + -72, 36, -3, 18, -54, 50, -29, 38, -47, 14, 19, -11, -25, 27, 9, -23, + -2, 2, 16, -6, -24, 22, 10, -27, 7, 16, -30, 11, 24, -40, 31, -28, + 29, 1, -28, 7, 17, 3, -45, 40, -11, -7, 4, 19, -45, 24, 24, -50, + 48, -35, 11, 9, -12, -14, 30, -23, 8, 7, -15, -7, 53, -59, 13, 5, + 15, -46, 49, -48, 57, -36, -20, 34, 1, -10, -15, 15, 20, -36, -9, 35, + 6, -39, 7, 14, 27, -81, 70, -21, 5, -22, 21, -6, 1, -13, 19, -19, + 4, -10, 35, -43, 31, -3, -7, -15, 40, -56, 33, -1, -33, 51, -35, -2, + 24, -18, 5, 0, 4, -16, 10, -6, 9, -28, 37, -38, 45, -35, 0, 37, + -38, 7, 19, -32, 3, 17, -2, -23, 19, 15, -23, 5, -2, 13, 1, -37, + 8, 59, -80, 26, 13, 15, -31, -8, 30, -7, -7, -19, 22, -2, -9, -2, + 12, -7, 3, 1, -25, 47, -53, 35, -5, -27, 21, 15, -25, 13, -24, 42, + -41, 19, 2, -13, 1, 23, -40, 37, -45, 46, -8, -41, 44, -11, -17, 23, + -9, -20, 22, -3, -15, 22, -23, 19, -7, 2, -34, 65, -56, 7, 28, -8, + -37, 37, 3, -8, -34, 39, -11, 9, -29, 6, 35, -14, -49, 48, 5, -25, + 5, -25, 66, -47, -9, 28, -7, -12, 0, 17, -20, -2, 21, -12, -23, 54, + -50, 20, 7, -20, 7, -2, 3, 4, -26, 26, -6, -14, 15, -3, -10, 12, + -10, -4, 23, -33, 14, -12, 38, -55, 36, 0, -6, -5, 0, -4, 7, 0, + -14, 2, 8, -11, 13, 5, -33, 41, 4, -62, 40, 8, -6, -8, -31, 52, + -4, -44, 25, 20, -18, -24, 32, -11, -9, -4, 30, -37, 34, -31, 7, 30, + -29, -14, 28, -10, -9, 6, 0, -5, 14, -9, -3, -2, 10, -22, 29, -22, + -2, 6, -5, 16, -25, 6, 27, -19, -9, -11, 29, -13, -5, -6, 16, 5, + -20, -1, 30, -20, -8, 7, -8, -2, 3, 14, -9, -24, 35, -7, -14, -12, + 32, -5, -18, -15, 35, -7, -13, -1, -4, 27, -20, -30, 58, -15, -29, 9, + 15, -16, -3, 1, 4, 5, -4, -11, 17, 3, -29, 28, -10, -18, 20, -7, + -2, 4, 2, -17, 22, -3, -31, 23, 23, -32, -14, 34, -3, -14, -13, 11, + 21, -26, -16, 36, -7, -13, 15, -8, -3, -1, -11, 15, -8, -4, -4, 24, + -21, 1, 11, 3, -22, 5, 15, -24, 0, 37, -31, 7, -18, 15, 16, -15, + -19, 26, 0, -10, -26, 31, 6, -19, -6, 21, -19, 20, -13, -3, 13, -2, + -32, 24, 2, -8, -10, 36, -29, -10, 19, 10, -25, 5, -9, 31, -23, -21, + 21, 26, -25, -9, -5, 35, -17, -34, 17, 42, -44, -11, 30, 11, -40, 18, + 8, -6, -11, 11, -26, 39, -18, -23, 37, -12, -32, 45, -8, -22, 5, 16, + -15, -10, 6, 17, -15, -3, 9, -22, 41, -22, -25, 29, 5, -30, 6, 12, + 17, -32, 7, 20, -26, 9, 9, -10, 7, -17, 10, 11, -16, -7, 12, 5, + -4, -26, 25, 24, -46, -4, 50, -39, -11, 8, 35, -36, 2, -9, 33, -7, + -22, -26, 76, -37, -41, 33, 28, -43, 14, 6, 2, -8, 2, -20, 34, -19, + -2, -4, 15, -6, -23, 28, -3, -32, 33, -16, 7, -11, 14, 9, -10, -30, + 35, -25, 17, -14, 1, 14, 12, -38, 16, 15, -7, -30, 15, 18, -24, -6, + 47, -38, 6, 7, -9, -2, -3, 1, 12, -8, -23, 20, 35, -47, -14, 51, + -9, -48, 19, 20, 0, -25, -2, 20, 16, -29, -25, 60, -17, -23, -8, 31, + -4, -30, 12, 20, -14, -4, -1, 17, -11, -9, 7, 7, -17, 1, -12, 25, + -5, -20, 15, 19, -29, 2, 5, 11, -19, -18, 31, 1, -27, 18, -17, 51, + -53, -2, 29, 4, -37, 17, 11, -11, -23, 41, -17, -10, 13, -4, -8, 18, + -27, 17, 1, -19, -7, 51, -37, -28, 53, 4, -47, 5, 18, 17, -32, -8, + 14, 36, -46, 3, 11, 11, -24, 4, 0, 16, -7, -26, 25, 20, -44, 7, + 20, -12, 2, -14, 4, 33, -38, 1, 8, 20, -34, -12, 61, -46, -19, 44, + -10, -4, -18, 12, 12, -8, -26, 16, 22, 2, -51, 18, 53, -56, -5, 30, + -9, -22, 32, -11, -18, 18, 13, -25, -7, 8, 9, 3, -20, 1, 32, -27, + -9, 5, 19, -20, -13, 18, 8, 3, -35, 22, 31, -47, -2, 16, -8, 15, + -10, -22, 54, -20, -23, -6, 51, -52, -13, 48, -23, -11, 28, -30, 38, -6, + -50, 28, 33, -58, 2, 34, 16, -53, -1, 55, -13, -42, 15, 23, -7, -33, + 13, 21, -14, -6, 2, -2, 27, -43, 27, 11, -19, -16, 26, -16, -4, 16, + -17, 1, 20, -17, 8, -17, 6, 26, -25, -24, 40, -13, 6, -14, -14, 29, + 3, -32, -5, 46, -21, -28, 38, -30, 6, 28, -47, 3, 65, -67, -5, 61, + -34, -27, 31, 12, -30, -7, 11, 19, 0, -43, 18, 47, -52, -20, 52, -14, + -9, -10, -5, 55, -45, -29, 55, 16, -83, 28, 36, -23, 6, -8, -13, 37, + -17, -30, 32, -9, -6, 10, -19, 16, 4, 9, -35, 22, -1, -17, 3, 8, + 10, -10, -21, 40, -27, -5, 16, -6, -27, 47, -23, -26, 48, -18, -19, 14, + -1, -9, 5, 1, -20, 58, -57, -14, 55, -16, -40, 37, -6, 11, -19, -22, + 43, 2, -55, 27, 37, -38, -29, 58, -6, -11, -22, 4, 26, -7, -67, 67, + 21, -56, 19, 15, -5, 0, 2, -41, 37, 10, -65, 49, 8, 1, -19, 1, + 9, 8, -20, -9, 22, -14, -3, 4, -1, 13, -6, -11, 15, -8, -15, 13, + 16, -38, 14, 24, -39, 20, 9, -17, 14, -15, 7, 3, -12, -3, 30, -25, + -24, 43, -1, -40, 18, 17, 0, -22, -14, 31, 20, -68, 35, 32, -43, -9, + 35, -16, 4, 2, -35, 35, 27, -81, 40, 31, -21, -30, 29, -12, 13, 10, + -42, 26, 17, -33, -1, 16, 12, -29, 6, 4, 21, -27, -9, 39, -6, -54, + 40, -14, 15, -4, -17, 20, 4, -18, -4, 23, -24, -3, 30, -41, 15, 17, + -4, -29, 19, 4, -9, -10, 12, 17, -21, -7, 26, -19, -17, 17, 3, 1, + -3, -30, 47, 16, -62, -4, 68, -29, -54, 43, -1, -4, 20, -42, 22, 34, + -32, -43, 63, -12, -26, 8, -6, 10, 22, -66, 55, 25, -65, 15, 9, 21, + -22, -28, 36, 5, -16, -51, 102, -49, -12, 6, 21, -12, -23, 24, -15, 11, + -14, -8, 31, 4, -53, 64, -35, 13, -28, 23, -23, 22, -16, 13, -22, 23, + 27, -51, -8, 41, 6, -66, 36, 13, 4, -26, 7, 11, 9, -34, 0, 35, + -21, -15, 10, 34, -57, 60, -69, 60, -22, 1, -27, 27, 14, -27, 1, -13, + 35, -2, -51, 36, 35, -49, 5, -1, 31, -42, 25, -26, 34, -7, -60, 98, + -46, -22, -1, 49, -45, -2, 10, 26, -33, 25, -36, 37, -19, 4, -3, -7, + 9, 7, -8, -29, 48, -23, 0, -33, 45, 0, -23, -16, 47, -7, -31, -9, + 38, -2, -36, 18, -8, 43, -55, 16, -1, 41, -72, 54, -35, 24, 4, -46, + 47, -11, 6, -40, 24, 10, 8, -38, 16, 16, 24, -98, 80, 2, -28, -28, + 44, 11, -47, 31, -7, 35, -42, -25, 41, 12, -64, 34, 14, -2, -21, 24, + -14, 11, -3, -24, 22, -28, 46, -51, 38, -22, 35, -40, 2, 11, 22, -48, + 23, -9, 34, -35, -24, 52, -7, -37, 9, 36, -21, 0, -32, 61, -44, 6, + -1, -16, 41, -28, 19, -37, 49, -11, -38, -8, 65, -53, 9, -21, 59, -37, + 8, -33, 59, -13, -80, 67, 19, -39, -28, 70, -21, -25, -3, 23, 17, -29, + -44, 83, -41, 0, -23, 53, -27, -12, 21, -19, 21, -21, 13, -4, -12, -5, + 38, -58, 34, 10, -22, -16, 47, -8, -39, 19, 12, 4, -46, 39, -24, 48, + -69, 45, -18, 10, -5, -2, -4, 10, -5, 7, -17, -3, 20, 0, -40, 26, + 40, -64, 11, 34, 1, -49, 11, 35, -22, -14, -32, 98, -47, -37, 9, 76, + -70, -8, 7, 63, -92, 56, -49, 77, -64, 2, 41, -28, -25, 37, 0, -26, + 35, -40, 16, 3, 14, -46, 22, 18, -6, -9, -11, 22, 26, -44, -46, 94, + -60, 18, -37, 69, -33, 5, -20, 42, -32, -20, 24, -1, -10, -12, 39, -31, + 13, 1, 9, -47, 42, -26, 39, -73, 48, 48, -73, -13, 56, 14, -78, 38, + 11, 12, -50, 8, 39, 3, -79, 73, 2, -25, -17, 23, 27, -58, 26, -37, + 67, -49, 11, -12, 62, -82, 64, -41, 3, 26, -17, -45, 55, -4, -22, 10, + -2, 38, -54, 8, 5, 47, -79, 7, 54, -7, -64, 41, 49, -73, 29, -24, + 54, -51, -4, 14, 33, -84, 82, -46, 17, -25, 57, -44, -2, 11, 8, 15, + -66, 46, 19, -25, -44, 58, 10, -38, -23, 77, -48, -3, -12, 24, 24, -70, + 37, 21, -15, -48, 81, -66, 44, -29, 6, 4, 9, -30, 31, -24, 5, 19, + -51, 34, 21, 11, -92, 78, 19, -44, -54, 104, -47, -8, -19, 29, 45, -78, + 6, 55, -11, -75, 66, -10, 8, -38, 24, 10, 4, -57, 66, -20, -25, 20, + 6, 9, -71, 100, -60, -6, 8, 28, -37, 29, -42, 78, -58, -22, 42, 10, + -69, 34, 33, -36, 29, -54, 81, -54, 0, 7, 1, -19, 22, -14, 4, -3, + 32, -13, -59, 86, -54, 4, 0, 21, -35, 43, -68, 91, -31, -53, 38, 48, + -72, -15, 50, 3, -11, -72, 96, -1, -49, -23, 81, -21, -57, 15, 63, -67, + 5, 25, -27, 34, -48, 49, -26, 12, -33, 66, -73, 14, 35, -20, -27, 45, + -24, 12, -12, 0, 24, -50, 33, -26, 45, -65, 47, -7, -4, -9, 19, -19, + -2, 15, -17, 30, -39, 25, 2, -3, -57, 109, -86, 10, 14, 31, -53, 7, + 32, 5, -44, -20, 84, -35, -34, -6, 99, -97, 1, 23, 40, -65, 15, 9, + 36, -45, -22, 55, 4, -55, -3, 73, -80, 63, -49, 28, 2, -10, -19, 24, + -13, 8, 1, -15, 5, 22, -4, -57, 72, -41, 16, -45, 76, -57, 30, -26, + 38, -16, -34, 32, 12, -53, 22, 47, -46, -4, 6, 45, -65, 32, -21, 45, + -44, -22, 69, -44, -16, 29, 19, -59, 40, -7, 42, -77, 39, -4, 29, -74, + 27, 38, -12, -60, 69, 7, -32, 1, -9, 50, -56, -15, 19, 47, -75, 44, + 5, -22, 27, -7, -22, 0, 23, -30, 1, 4, 33, -44, 29, -24, 57, -67, + 17, 18, 4, -59, 32, 48, -72, 28, -2, 13, -10, -21, 16, 58, -117, 85, + -14, -5, -34, 21, 29, -27, -20, 31, 23, -49, 16, -14, 51, -74, 24, 38, + -38, -16, 56, -33, -7, 3, 0, 36, -80, 49, 23, -19, -48, 76, -61, 43, + -41, 27, -11, 23, -30, 8, 3, 15, -14, -22, 16, 3, 15, -39, 11, 38, + -13, -70, 88, -41, 2, 4, -30, 80, -84, 15, 37, -6, -61, 58, -19, 27, + -72, 64, -6, -16, -30, 59, -21, -21, -12, 44, 22, -101, 78, -10, -16, -11, + 20, -21, 31, -36, 37, -18, -20, 46, -24, -23, 10, 21, -36, 32, -38, 68, + -50, 12, -6, 19, -33, 14, -16, 20, -11, -14, 47, -59, 56, -14, -27, 5, + 29, -43, 49, -96, 106, -35, -41, 28, 35, -30, -29, 37, 12, -11, -58, 79, + -31, -16, -11, 43, -13, -25, 3, 71, -76, -13, 64, -39, 3, -45, 66, -13, + -1, -45, 80, -40, 6, -29, 26, -12, 6, -19, 21, -4, 9, 0, -37, 44, + -28, 11, -22, 19, 7, 1, -45, 60, -13, -42, 32, -16, 31, -50, 35, 10, + -22, -23, 60, -62, 21, -2, 39, -49, -4, 24, 30, -53, -23, 66, -33, 2, + -34, 69, -33, -10, 7, 24, -51, 28, 0, 9, -24, -3, 38, -24, -16, -9, + 68, -81, 38, -16, 35, -34, -4, 16, 20, -43, 10, 7, -3, 14, -30, 38, + -39, 38, -20, -12, -20, 78, -79, 22, -4, 44, -48, -6, 37, -2, -25, -24, + 60, -41, 15, -30, 50, -43, 7, 9, 27, -64, 45, 5, -15, -17, 1, 49, + -56, 3, -11, 69, -78, 37, -5, 38, -60, 26, -2, 9, -51, 53, -20, -3, + 9, -1, 38, -74, 40, 6, -13, -54, 69, -24, 6, -22, 31, 0, -17, 12, + -13, 8, -9, 20, -53, 56, -27, 29, -63, 41, 8, 11, -73, 59, 15, -25, + -21, -1, 61, -69, 10, 17, 28, -59, 34, -14, 32, -54, 17, 22, -11, -47, + 63, 7, -56, 46, -28, 50, -96, 60, 2, 0, -37, 36, -11, 15, -38, 41, + -19, -31, 46, -12, -25, 9, 49, -67, 47, -48, 51, -30, -15, 23, 19, -43, + 8, 17, 4, -11, -29, 54, -48, 38, -28, 10, -9, 38, -48, 27, -47, 55, + 3, -59, 22, 41, -5, -59, 38, 5, 31, -101, 72, 11, -36, -18, 54, -25, + -1, -30, 54, -28, -34, 61, -27, 13, -46, 55, -21, -10, -21, 52, -34, -8, + 30, -21, 20, -11, -21, 22, -2, -46, 79, -84, 60, -9, 13, -57, 51, 2, + -16, -38, 34, 15, -23, -7, -6, 53, -38, -22, 29, 23, -63, 65, -34, -21, + 34, -7, -19, -8, 24, 13, -8, -63, 110, -56, -8, -37, 79, -56, -3, -3, + 62, -57, 19, 9, 8, -20, -29, 27, 13, -28, -19, 79, -80, 58, -31, 24, + -16, -35, 46, 0, -52, 36, 21, -29, 16, -23, 26, -29, 38, -42, 26, -41, + 60, -29, -16, -4, 42, 7, -85, 53, 47, -54, -29, 67, -53, 39, -58, 45, + -5, 5, -37, 61, -56, 27, 17, -40, 1, 15, 17, -43, 19, 4, 30, -49, + 12, -1, 49, -64, -27, 96, -41, -47, 45, 8, -38, 35, -50, 74, -81, 54, + -14, 24, -64, 57, -5, -25, -19, 27, 16, -27, 4, 16, 2, -25, 26, -31, + 22, -35, 56, -54, 0, 55, -23, -29, 9, 38, -38, 12, -41, 74, -28, -29, + -3, 61, -71, 36, -32, 43, -19, -14, 21, 0, -10, -19, 32, -42, 20, 11, + 23, -94, 107, -13, -53, 5, 35, -17, -11, -25, 32, 40, -76, 29, 32, -9, + -65, 80, -42, 6, -22, 42, -27, -2, 10, -2, 13, -41, 32, 10, -17, -26, + 53, -50, 40, -42, 30, -19, 41, -50, 33, -20, -1, 40, -67, 8, 29, 15, + -58, 25, 32, 15, -81, 46, 14, -8, -51, 24, 40, -44, 17, 10, 2, -26, + 47, -68, 49, -49, 50, -27, -3, -20, 84, -62, -32, 52, 12, -52, 0, 42, + -30, 24, -47, 45, -16, 11, -51, 74, -47, -9, 45, -19, -18, -5, 41, -39, + 11, -33, 56, -20, -14, -8, 64, -85, 60, -23, -13, -3, 33, -20, -25, 57, + -34, 2, -23, 42, -21, 3, -49, 85, -35, -27, 1, 54, -34, -31, 24, 15, + 6, -45, 54, -30, 12, -27, 40, -61, 39, 1, -5, -18, 17, 14, 7, -33, + -27, 83, -44, -40, 21, 66, -82, 32, -7, 33, -54, 27, 3, 2, -13, -15, + 52, -57, 14, 14, -6, -27, 54, -45, 23, -11, 16, -27, 27, -33, -3, 36, + -46, 47, -15, -8, -7, 67, -93, 12, 34, 17, -73, 32, 15, 29, -44, -17, + 47, 2, -40, -31, 81, -43, 3, -24, 52, -32, 4, 1, 20, -48, 20, 40, + -68, 23, 14, 19, -64, 46, -8, 17, -48, 55, -29, 23, -59, 48, -2, -27, + 11, 1, 21, -30, 25, -24, 29, -41, 21, 0, -15, -17, 64, -47, 1, 31, + -22, 2, -11, 22, -56, 69, -53, 32, -30, 31, -16, 32, -68, 29, 42, -39, + -49, 80, 17, -74, 17, 0, 55, -88, 25, 29, 14, -72, 56, 0, 0, -33, + 20, 5, -34, 35, -33, 45, -37, 23, -9, 10, -54, 67, -22, -13, -15, 41, + -14, -16, 8, 0, 19, -51, 56, -51, 39, -20, 19, -34, 26, -18, 19, -31, + 23, 0, 12, -31, 7, 45, -65, 22, 4, 24, -73, 74, -13, -34, 18, 23, + -16, -25, -2, 40, 5, -84, 76, -4, 6, -74, 75, -7, -10, -51, 60, -13, + 0, -45, 50, 18, -57, 20, 21, -7, -26, 47, -51, 28, -19, 12, -13, 3, + -1, 20, -23, 1, 28, -18, 3, -41, 67, -72, 34, -11, 33, -47, 47, -9, + -20, -2, 28, -21, -27, 11, 26, -15, -25, 57, -44, 46, -67, 49, -5, -30, + 1, 42, -36, -9, 22, 7, -13, -34, 67, -29, -16, -26, 84, -49, -21, -11, + 77, -53, -43, 62, 0, -3, -32, 23, 13, -5, -69, 88, -42, 7, -17, 37, + -35, 27, -6, -13, -11, 31, -17, -28, 45, -17, 8, -32, 41, -48, 39, -35, + 41, -16, -28, 41, -3, -13, -26, 23, 12, -22, -50, 104, -57, 9, -28, 67, + -53, -7, 0, 45, -41, -22, 50, -8, -21, -9, 38, -19, -18, -2, 55, -76, + 38, -12, 39, -49, -14, 64, -24, -45, 25, 50, -66, 23, -15, 32, -36, 32, + -46, 44, -14, 2, -16, 22, -7, -11, 14, -28, 21, 4, -10, -18, 63, -66, + 30, -20, 36, -35, -16, 26, 12, -37, 6, 50, -35, -15, 6, 48, -64, 4, + 12, 46, -85, 33, 12, 25, -49, -11, 77, -53, -18, 19, 29, -41, -1, 3, + 39, -70, 55, -6, -1, -23, 38, -22, -12, 1, -11, 36, -39, 5, 15, 33, + -55, 32, -8, 6, -37, 39, -32, 4, 27, -23, 11, -1, 10, -28, 19, -24, + 52, -69, 27, 21, 11, -72, 52, 17, -35, -13, 16, 33, -44, 4, 19, 18, + -60, 13, 35, 12, -93, 82, 9, -35, -20, 26, 40, -74, 14, 18, 28, -66, + 37, 4, 9, -43, 34, -15, 17, -35, 38, -11, -14, 14, -5, 2, -36, 54, + -35, 2, 1, 29, -35, 9, -4, 24, -32, -5, 31, -19, -17, 28, 34, -86, + 49, 13, -16, -52, 71, -29, 3, -30, 51, -1, -36, 6, 25, 4, -75, 56, + 10, -21, -18, 37, -16, 17, -53, 60, -7, -38, -9, 63, -18, -70, 67, 1, + -19, -32, 50, -20, 11, -23, 24, -10, -3, -21, 32, -26, 7, 12, -19, 35, + -29, 26, -41, 32, -22, 14, -43, 41, 7, -16, -24, 57, -20, -35, 25, 7, + -11, -20, 31, -18, 10, -34, 44, -7, -22, -9, 49, -33, -18, 26, -4, 12, + -63, 51, 11, -16, -40, 80, -28, -37, 5, 61, -78, 22, 16, -3, -10, -5, + 26, -8, -2, -43, 68, -42, -24, 39, 11, -31, 15, -9, 18, -20, -1, 7, + -17, 26, -30, 31, -31, 42, -28, -1, -15, 49, -51, -2, 26, 3, -12, -11, + 7, 22, -9, -51, 70, -27, -14, -13, 53, -37, -12, 9, 44, -57, -14, 51, + -6, -27, -10, 60, -55, 2, 14, 18, -45, 32, -19, 29, -27, -12, 31, 14, + -54, 17, 41, -62, 51, -40, 40, -40, 12, -8, 28, -39, 16, 10, 10, -46, + 37, 12, -42, 17, -4, 2, -17, 35, -34, 38, -30, 21, -6, -36, 36, 13, + -56, 14, 53, -36, -13, -1, 61, -64, 7, -3, 54, -63, 5, 14, 34, -67, + 10, 46, -27, -18, 26, 20, -41, 14, -13, 40, -66, 20, 38, -34, -11, 39, + -16, 11, -26, 7, 28, -58, 26, 0, 30, -61, 44, 11, -30, -17, 66, -40, + -33, 35, 6, -21, -2, 9, 16, -13, -39, 79, -71, 27, 9, -9, -29, 28, + 4, -17, 1, 14, 2, -20, -2, 16, 24, -67, 20, 37, -4, -80, 75, 18, + -46, 2, 10, 25, -31, -28, 43, 19, -75, 59, -13, 14, -40, 29, 7, -22, + -20, 44, -20, -16, 10, 32, -21, -42, 61, -19, -29, 12, 39, -55, 32, -4, + 0, -2, -24, 40, -19, -38, 34, 22, -33, 11, -3, 31, -49, 21, -16, 40, + -54, 12, 29, -19, -8, 17, 17, -52, 28, 22, -39, -2, 45, -42, 23, -46, + 51, 11, -68, 26, 55, -34, -44, 45, 9, -19, -43, 57, -16, -5, -9, 40, + -24, -12, 8, 29, -54, -4, 50, -37, 0, 11, 7, -4, 0, -25, 57, -62, + 19, 18, -7, -22, 12, 19, -27, 9, -5, 15, -19, 2, 15, 4, -45, 36, + -5, 8, -48, 60, -13, -35, 36, -19, 21, -24, -7, 23, -24, -22, 73, -58, + -5, 34, 25, -71, 19, 30, 0, -43, -4, 50, -9, -21, -21, 69, -28, -46, + 24, 29, -45, 12, 3, 21, -13, -28, 47, -9, -37, 21, 22, -46, 21, 8, + -1, -32, 42, -22, 14, -27, 19, 16, -29, 3, 17, -1, -39, 28, 21, -42, + 8, 47, -45, 2, -16, 50, -20, -54, 50, 9, -25, -12, 41, -29, 8, -3, + -5, -13, 25, -16, 19, -30, 15, 15, -2, -52, 38, 38, -69, 12, 37, 9, + -54, 10, 36, 5, -79, 27, 57, -35, -40, 48, 21, -41, 13, -3, 10, -29, + 4, 18, 4, -50, 52, 1, -28, -6, 41, -25, -22, 34, -22, 10, -5, 3, + -6, -1, 2, 26, -48, 24, 12, 5, -54, 36, 18, -32, -6, -3, 48, -28, + -21, 22, 35, -63, 6, 43, -28, -27, 42, -7, -22, 6, 21, 8, -56, 31, + 23, -10, -73, 76, 18, -49, -26, 70, -21, -23, -8, 35, 0, -42, 7, 42, + -26, -28, 47, -31, 0, 13, 11, -25, 14, -6, 10, -13, -26, 40, -14, -5, + -8, 42, -36, 1, 15, -10, -34, 47, -24, 5, -22, 38, 14, -39, -10, 53, + -26, -67, 72, 0, -15, -25, 29, 19, -29, -25, 50, -14, -31, 10, 42, -44, + -24, 81, -40, -32, 12, 45, -41, -5, -1, 47, -27, -54, 54, 32, -64, 4, + 26, 1, -1, -41, 44, 4, -22, -22, 47, -30, 7, 5, 3, -37, 45, 1, + -53, 44, -1, -20, 7, 12, -13, 9, -23, 26, -2, -47, 32, 37, -61, 6, + 42, 0, -25, -43, 76, -23, -38, -10, 73, -24, -57, 47, 45, -70, 3, 19, + 7, -19, -8, 10, 24, -12, -36, 66, -60, -1, 50, -32, -19, 8, 26, 2, + -44, 11, 53, -42, -26, 20, 42, -52, 14, 16, -26, -11, 42, -41, 16, 16, + -23, 13, 1, -6, 17, -18, -41, 71, -39, -23, 40, 13, -30, 2, 19, 0, + -39, 10, 24, -15, -25, 12, 66, -81, 6, 47, 9, -69, 12, 47, -9, -36, + -27, 76, 9, -107, 58, 53, -68, 19, -10, 39, -49, 8, 14, -11, -17, 21, + 18, -25, -17, 47, -4, -48, 32, -9, -4, -3, 8, -5, 29, -40, 13, 14, + -31, 24, 7, -48, 27, 37, -61, 22, 15, 7, -46, 17, 10, 22, -45, -9, + 56, 1, -73, 43, 34, -51, -15, 40, 2, -47, 35, 8, 27, -87, 31, 86, + -94, -27, 67, 10, -44, -15, 43, 11, -46, 6, 9, 33, -71, 35, 26, -30, + -18, 37, -18, -9, 20, -15, 1, 5, 9, -2, -23, -11, 50, -42, -3, 24, + 6, -21, 17, -5, -8, 11, -26, 24, -19, -9, 33, 22, -78, 38, 44, -48, + -53, 80, 6, -66, 14, 36, 8, -37, -15, 66, -24, -75, 87, -14, -27, -10, + 45, -12, -38, 13, 33, 7, -67, 20, 75, -55, -67, 85, 8, -52, -11, 45, + -10, 13, -34, 12, 26, -36, 7, -1, -1, -7, 23, -27, 18, 15, -12, -28, + 27, -6, 9, -52, 40, 26, -50, 3, 51, -10, -71, 67, 10, -59, 4, 56, + -27, -20, -19, 58, 6, -81, 38, 49, -39, -39, 47, 14, -25, -40, 54, -2, + -20, -38, 82, -25, -51, 44, 24, -60, 8, 51, -47, -2, 6, 22, 9, -34, + -20, 78, -56, -25, 36, 19, -49, 17, 32, -50, 44, -29, 4, -11, 14, 3, + -13, -11, 19, 13, -24, 28, -32, 33, -37, 39, -61, 119, -76, 120, -70, 99, + -122, 89, -113, 91, -123, 122, -123, 77, 86, -116, 6, -118, 123, -23, 64, -93, + 17, 24, -125, 124, -125, 124, -24, -12, 56, 87, -54, 38, -91, 64, -2, -41, + 126, -127, 20, 8, -48, -62, 127, -128, 88, -43, -18, 86, -100, 44, -32, -26, + 71, -13, 6, 51, -33, -50, 106, -59, 33, 5, -20, 69, -56, 54, -48, -6, + 38, -5, -38, 35, -1, 12, -1, 4, 23, -56, 19, -7, 5, -4, 31, -38, + 3, -12, -9, -25, -7, 24, -32, 17, -21, -22, 24, -20, 6, -18, 0, -15, + 5, -16, 15, 3, 2, -10, 3, 27, -31, 37, -12, 32, -5, 2, -21, 27, + -14, 20, -8, 5, 15, -7, -11, 20, -37, 7, -23, 17, -22, 11, -14, 8, + -44, 39, -52, 26, 3, 14, -10, 51, -45, 29, -19, 19, -3, 41, -21, 46, + -23, 10, 16, -25, 3, 7, -30, 19, -9, -5, -1, 1, -19, 1, -24, -23, + 51, -48, -10, 17, -34, -38, 60, -71, 26, -43, 65, -59, 70, -26, 61, -51, + 63, -51, 42, -25, 58, -36, 31, 10, -14, -9, 8, -18, 8, 4, 8, 7, + 31, -52, 39, -53, 53, -56, 24, 11, 1, -20, -8, -32, -18, -10, -25, 4, + 1, 37, -37, 42, -42, 53, -57, 52, -18, 30, 11, 20, -52, 55, -61, 56, + -50, 24, -26, 38, -42, 36, -1, -43, 58, -46, 6, 18, -35, 31, -36, 28, + -55, 55, -98, 52, -41, 26, -24, 48, -31, 48, -26, 30, 19, -17, 23, -8, + 13, 15, 19, -7, -23, 41, -36, 20, -39, 65, -64, 66, -38, -9, 7, -14, + -10, -3, 6, 15, -19, -40, 53, -67, -11, -12, -25, 23, -11, -12, 46, -48, + 39, -20, 20, -14, 31, -54, 71, -25, 2, -8, -5, -9, 1, 7, 27, 17, + -14, 43, -31, 27, 11, -33, 20, -2, -33, 45, -38, 17, -9, -11, -17, -22, + -19, 20, -25, 4, 29, -35, 14, -17, 1, -7, 19, 2, 16, 32, -3, -17, + 4, 0, -9, 17, 5, -8, 52, -32, 40, -39, -5, -18, 14, -21, 31, 10, + -17, 8, -34, -7, 1, -44, 7, 10, -8, -6, -18, -25, -1, -19, 16, -29, + 62, 6, 9, 21, 0, -14, 4, 5, 20, 13, 27, -1, 18, -5, 21, -31, + 11, 2, -9, -4, 21, -27, 8, -21, -28, -19, 14, -12, 5, -20, 20, -36, + 4, -18, -27, -4, -4, 15, 4, 48, -7, -11, 20, -6, 7, 20, 1, 20, + 0, 35, -35, 28, -37, 7, -43, 21, -22, 23, -18, 12, -22, -13, -20, -11, + 7, 23, -10, 19, -18, 17, -41, 4, -16, -8, 21, 11, -4, 10, 30, -24, + 32, -15, 15, -13, 28, -5, 38, -10, 0, -22, -13, -12, 24, -18, 30, -7, + 4, -16, 27, -28, -3, -1, 18, -14, 31, -24, -3, -13, -19, -36, -2, -31, + 9, -2, -12, 17, 12, -50, 46, -49, 43, -15, 13, 22, 15, -25, 10, -8, + -6, 14, -2, 24, 15, 9, 17, -13, 5, 14, -15, 7, 20, 4, 4, 18, + -16, 3, -47, 31, -46, 19, -24, 5, -19, -1, -42, 14, -44, 18, -7, -1, + 15, 9, -35, 32, -44, 39, -46, 23, -16, 36, -25, 45, -34, 32, -8, 10, + 5, 28, 0, 12, 11, 3, 20, -23, 6, -8, 16, 7, 17, -19, 32, -44, + 3, -8, -21, -8, -5, 2, -29, 2, -3, -19, -14, 3, 7, -23, 10, 1, + 3, 8, 13, -44, 20, 21, -16, 23, 3, 5, 10, -11, 32, -11, 13, -7, + 30, 4, 16, -7, -6, -7, 14, -40, 4, -16, -26, 3, -1, 0, -6, 5, + -50, 37, -27, 18, -16, -14, 6, -1, -4, -15, 8, -12, 14, 9, -22, 42, + -10, 23, -11, 36, -15, 13, 30, 1, 47, -20, 33, -14, -12, 1, -20, -9, + -9, -11, -13, 7, -37, 25, -47, 14, -13, 4, -12, 9, -32, 18, -48, -1, + -35, -1, -7, 35, -20, 53, -4, 34, -7, 13, 19, 9, 30, 6, 45, -22, + 23, -18, -6, -1, 3, -30, 14, -15, 9, -39, 10, -33, -13, -24, 10, 14, + 14, -10, 2, -34, -4, -20, -21, -14, 40, -10, 17, -14, 28, -17, 37, -26, + 69, -15, 38, 2, 21, -25, 37, -61, 13, -9, 5, -17, 18, -41, 22, -57, + -1, -9, -13, 24, -10, 38, -5, 8, -16, -2, 1, 12, -25, -2, -13, 2, + 2, -16, -19, 32, -30, 22, 20, -4, 12, 11, -17, 19, -17, -3, 20, -33, + 65, -27, 32, -14, 8, -8, 13, -19, 9, -2, 7, 33, -40, 18, -18, -18, + 6, -23, -11, -11, -28, 4, -11, -15, -14, -8, -5, 34, -6, 19, 1, -3, + 9, -1, 5, 5, 14, -11, 40, -3, 18, -20, 16, -7, 2, -5, 9, -16, + 9, -17, 0, -17, 4, -17, -3, 3, 8, -14, -19, 12, -21, -7, 1, -2, + -8, 16, 3, -6, 35, -23, 33, -13, 11, 12, 3, -7, 26, -11, 19, -18, + 23, -22, 39, -49, 39, -50, 11, -38, 26, -29, 10, -6, -22, 15, -8, 15, + -37, 36, -43, 39, -43, 18, -26, 1, 11, 4, -2, 9, 7, 2, 7, 19, + 1, 1, -4, 16, -5, 16, -9, -3, 4, -4, -1, -17, 0, 11, 16, -27, + 12, -15, 15, -3, 0, 10, -3, -5, 12, -13, -7, -13, -31, -1, -3, -17, + 15, -31, 25, -10, 15, -1, 2, 4, 10, 7, 32, -13, 7, -22, 2, -10, + 16, 1, -15, 19, -24, 16, -18, -12, 18, -9, 9, 24, -8, 8, 11, 0, + -31, 17, -55, 21, -43, 40, -40, 29, -54, 44, -34, 22, 11, 16, 7, 19, + 21, -6, 2, -7, -16, 22, 0, -1, -4, 5, -8, 26, -42, 4, -6, -21, + 35, -16, 8, 0, -22, -13, 11, -31, 7, -28, 4, 17, -12, -18, -2, -23, + 23, -1, 19, 34, 7, 7, 35, -19, 11, -8, -17, 8, 4, 16, -16, -13, + 9, -15, -5, -1, -6, 7, 3, 11, 1, -7, -24, 21, -31, 36, -3, -10, + 8, 2, -17, 12, -24, 6, -3, 9, 15, 3, 13, -8, -13, -3, 6, -19, + 14, -33, 16, -17, -5, -31, 3, -29, 24, -7, -6, 35, -20, -5, 34, -20, + 25, -3, 10, 25, 8, 14, -13, 0, 1, 17, -33, 51, -38, 45, -32, 39, + -3, -2, -24, 3, -18, 14, -4, -44, 2, -25, -15, -2, -23, 3, -2, -2, + 20, -14, 8, -10, -4, 21, 11, -13, 32, -4, 8, 19, -16, -2, -2, -2, + 14, -2, -1, 27, -26, 20, 11, -13, 10, -3, -7, 12, -13, -3, -30, -16, + 10, -26, -3, -10, -2, -9, 15, -17, 1, -2, -7, 14, -8, 12, -3, -1, + 2, 47, -26, 22, -19, 16, 2, 13, -3, 21, -10, 22, -32, 43, -24, 16, + 0, 5, -2, 12, -44, -12, 1, -26, 1, -36, 5, 2, 9, -17, 20, -37, + 14, -9, -5, 6, -3, -13, 23, -19, 25, -33, 6, 17, 10, 19, 15, -4, + 12, 5, -9, 33, -20, 26, -9, 11, -2, 11, -21, -7, -13, -4, -8, -12, + 0, -10, -9, 8, -33, 9, -26, 8, 6, -8, 12, 7, -8, 0, 7, -16, + 25, -8, 27, 12, 0, 9, -9, 4, -17, 14, -16, 11, -8, 18, -2, 4, + 2, -20, -18, 22, -16, -5, 3, -24, 13, -10, -12, -10, 2, -16, 33, -15, + 21, -15, -4, -19, 29, -22, 18, 2, 20, 12, 18, -22, -7, -16, 7, -19, + 14, 1, -17, 33, -22, 38, -8, 3, -3, 21, -17, 51, -43, 15, -22, -23, + -6, -12, -14, 14, 9, 6, 4, -31, 3, -16, -14, 22, -22, 5, 13, -25, + 17, -2, -18, 7, 1, 5, 36, -16, 23, 4, -15, 29, -20, 10, 1, 24, + 17, 16, -4, -16, -37, -11, 1, -33, 27, -36, 17, -22, 2, -33, 16, -29, + 32, -7, 24, -12, 14, -12, 22, -16, 15, -20, 19, 9, 14, 12, -1, -24, + 13, -6, -1, 32, -19, 24, 12, -26, 4, -31, -38, 18, -16, -13, 3, -14, + -1, 11, -15, 15, 0, -2, 30, -6, 35, -23, 10, -35, 5, -14, 17, -21, + 20, 4, 7, 8, -5, -15, 20, -25, 26, 6, -3, 3, 5, -24, 26, -35, + 4, 0, -6, 13, -23, 8, -25, 1, -2, 9, 3, 17, 4, 0, 13, -15, + 3, -21, -16, 4, -5, -10, 11, -2, 7, 23, -22, 25, -19, 18, 25, -9, + 14, -21, -7, 11, -24, 22, -12, -7, 6, 9, -33, 11, -20, 2, -9, 2, + 3, -13, 12, -15, 23, -21, 16, -16, -2, 8, 13, -12, 18, -10, 16, -12, + 20, -18, 18, -1, 21, -21, 20, -30, -6, 10, -2, 13, -6, -15, 6, 2, + -1, 1, -19, 9, -15, -3, -11, 0, -5, 1, 5, 1, -4, -8, 1, -16, + 23, 0, -23, 2, 8, -6, 38, -4, 2, 13, -17, 31, -4, -8, 22, -14, + 0, 12, -22, 7, -7, 11, 4, -4, -12, -9, -22, 2, -17, -17, -11, 7, + -17, 19, -24, 9, -8, -6, 29, -4, 10, 4, 4, 23, -1, 9, -6, -12, + 23, 16, -6, 33, -29, 12, -7, -10, 17, -4, -18, 21, 0, -14, -2, -20, + -21, 10, -28, 5, -18, -4, 0, -11, 1, 5, -17, 3, 9, 20, 6, 1, + -7, 2, -7, 3, 9, -22, 29, 6, -1, 25, -10, 6, -1, 4, 12, 18, + -13, 28, -11, 6, -15, -14, -22, -7, 5, -14, 1, -16, -12, -5, 5, -9, + 4, -1, -14, 21, -10, -5, 0, -17, -7, 2, -10, 6, 11, 1, 37, -17, + 6, 21, -24, 41, 2, 23, 0, 10, -18, 16, -26, 14, -21, -19, 18, -9, + -14, -1, -9, -14, -3, -7, -10, 7, -7, 19, -11, 15, -25, -3, -6, 2, + 8, -10, 4, 12, -3, 11, -2, -2, 5, 31, -9, 39, -21, 14, -23, 18, + -16, -1, -3, -6, 0, 22, -9, -5, -17, -4, -12, 2, -3, -7, 10, -10, + 7, -20, -19, -10, 0, -14, 32, -15, -18, 13, -9, 2, 17, -14, 6, 36, + -9, 28, 1, 0, 17, -10, 5, 17, -8, 12, -2, 3, 2, -22, -6, -14, + 6, 8, -11, -14, 2, -23, 25, -35, 3, -18, 1, -14, 22, -1, -12, -7, + -9, 13, -4, 12, 4, -3, 18, 0, 1, 8, -14, 14, -2, 1, 17, -3, + -14, 35, -17, 19, -14, -6, 1, -9, 18, -17, -4, -13, -2, -14, 10, -10, + -6, 0, 3, 5, -12, -13, -3, -6, -6, 11, -13, -7, 13, -2, 6, 13, + -7, 11, -5, 23, 1, 29, -17, 23, -10, 18, -16, 12, -20, 10, 7, -9, + -5, -21, -9, 5, -13, -2, 0, -15, -11, 3, 0, -18, 5, -25, -2, 3, + -2, -3, 4, 8, 14, -7, 15, 4, 8, 19, 9, 11, 7, -3, 14, -11, + 1, 15, -35, 3, 3, -10, -16, 0, -15, 2, 3, -12, 27, -23, 32, -15, + 10, -14, 3, -27, 10, -15, 12, -24, 7, 2, 9, -2, -2, -1, 3, 1, + 1, 8, -4, 0, 6, -6, 1, 1, -1, 8, -11, 31, -27, 13, 4, -3, + 5, -1, 0, 2, 9, 0, 12, -31, 4, -27, 1, -25, 20, -21, -14, 12, + -14, 0, -5, -23, 18, -1, 15, 19, -5, 20, -8, 14, -7, 16, 3, 0, + 8, 10, 0, -8, -10, 3, -8, 9, -12, 4, 15, -6, 2, -12, -29, -3, + -16, -11, 35, -18, -1, -28, 7, -12, 0, 7, -5, 22, 10, 10, -4, 6, + -13, 21, -23, 20, 8, -13, 11, 15, -6, -6, -22, -1, 3, 14, 7, 11, + -27, 12, -17, -12, 8, -15, 3, -8, 12, -12, 5, -30, 12, -18, 9, -2, + 3, 4, 15, 1, 5, -9, 0, -8, 24, -2, 21, 5, -4, -4, 14, -15, + 0, -1, 3, 17, -5, 13, -19, -10, -4, -6, -4, -7, 18, -27, 8, 1, + -12, -21, -13, 1, -9, 11, 1, -3, -1, 22, -21, 9, 6, -3, 20, -2, + 17, 7, -12, 1, 4, 4, -9, 9, -20, 24, 7, -9, -3, -7, -6, 10, + 7, 3, 9, -2, -3, -4, 1, -19, -8, -16, 0, -12, 0, -25, 4, -22, + 10, -9, 0, -3, 15, -1, 8, 11, -15, 10, 13, 1, 22, -5, 15, 1, + 24, 6, 0, -6, 5, 5, 10, 8, -1, -11, -14, 3, -31, 2, -22, -4, + -8, -15, -2, -31, -12, 6, -7, 5, 2, 3, -4, 19, 3, 4, 7, 7, + -8, 31, -6, 26, 1, -2, 2, -3, -10, -4, -4, 9, 3, 12, -16, 16, + -9, -1, 5, 4, -7, 13, -17, 0, -11, -13, -22, 1, -9, 4, -7, 7, + -10, 5, -1, -6, -3, -21, 7, -10, 18, -3, 1, -7, -11, 11, -8, 12, + 20, 3, 13, 16, -1, 3, 13, -3, 23, 16, -3, 15, -14, 12, -6, -8, + -28, 0, -33, 4, -11, -12, -13, -21, -17, -16, -5, -12, 16, -7, 15, -6, + -5, 3, -9, 21, 17, 13, 14, 11, 21, -12, 31, -18, 7, 12, 8, 9, + 7, 1, -3, -7, -14, 17, -35, -10, -2, -18, -8, -10, -20, -22, 2, -10, + -3, 1, -1, 4, -5, 11, -20, 11, -6, 27, 7, 18, 8, -1, 2, 3, + 11, -9, 5, 5, -7, 29, -6, 20, -21, 23, -15, 19, -19, 2, -22, 11, + -26, -7, -10, -30, -1, -3, -6, 15, -22, 16, -7, -9, -2, -7, -5, 11, + 17, -13, 2, 8, -5, 6, 27, -6, 12, -6, 4, 15, 3, 14, -3, -12, + 11, -2, 6, 5, 4, -6, -12, 0, -32, 2, -22, 22, -12, -5, -7, -11, + -7, 6, -1, -3, -3, -16, 2, -1, 0, 0, -7, -2, 1, 12, -4, 5, + 20, 1, 16, -2, 14, -1, 19, 8, 29, -8, 7, -14, -2, 3, -13, 8, + -40, 22, -18, 2, -14, -8, -11, -8, 12, -21, -1, -10, -12, -6, -4, -14, + 6, -19, 7, 14, 1, 11, 11, -11, 25, 1, 14, -5, 31, 0, 22, 4, + 1, 3, 6, -3, 4, -2, -20, -7, -26, 1, -12, -7, -10, 2, -1, -5, + -7, -8, -10, 6, -7, -6, 10, -17, 6, 3, 15, -8, 15, -7, 12, 1, + 9, -4, -2, 10, 9, -1, 10, -4, 9, -8, 17, 0, -13, -7, -2, -11, + 3, -2, -15, -4, -11, -5, -9, 1, 8, -10, 8, -8, -6, -18, 21, -19, + 26, -19, -1, -11, 10, 4, 12, -10, 16, -10, 17, 8, 13, -1, 17, 1, + 5, -1, 11, -8, 9, 16, -17, 3, -26, -17, -14, 6, -17, 4, -20, 0, + -1, -6, -4, 2, -15, 13, -3, -1, 0, -2, -8, 11, 7, -3, -8, 5, + 14, -1, 28, -19, 13, -4, 8, 1, 11, 7, 6, -8, -2, -13, -10, -22, + 6, 11, -1, -1, -5, -13, 18, 3, -10, 9, -17, -8, 9, -9, 1, -17, + -4, -16, 18, -6, 15, -10, 17, 5, 0, -5, 0, -11, 12, 15, 4, 8, + 5, -4, 0, -2, 3, -17, -2, -1, 11, -6, -7, 2, -33, 23, -6, -1, + -2, -2, -1, -8, 3, -29, -2, -34, 16, -3, 16, 1, 10, -12, 23, 0, + -3, 16, 12, 19, 23, -1, 8, -26, 16, -32, 26, -13, 2, -11, 5, -1, + -15, -9, -16, 7, -6, 14, -15, 5, -10, -7, -9, -9, 6, -17, 13, 18, + -5, -3, -4, -4, -18, 28, -6, 13, 17, 24, -2, 9, -14, 1, -11, 7, + 17, 1, -15, 10, -23, -4, -12, 5, -20, 17, -10, 6, 0, -9, 4, -8, + -15, 6, -16, 7, 9, 3, 6, -12, -17, 0, 4, 13, 22, -4, 10, -8, + 7, -12, 5, 5, 1, 11, 2, 10, -3, -2, 3, -10, -5, -7, -4, -18, + 17, -2, -14, -16, -7, -10, -3, 6, -1, 14, -11, 15, -18, 2, -6, 0, + -1, 0, 20, -17, 1, 6, 2, 6, 12, -3, 7, 25, -5, 17, -14, 0, + -6, 0, -2, -5, -1, -10, 8, 2, -9, -19, -7, -17, 5, 3, -7, 4, + -15, -5, 9, -12, -1, -5, 3, -5, 26, -2, 3, -4, 5, 3, 7, 10, + 5, 6, 6, 26, -17, 0, -1, 3, -3, 10, -7, -7, -9, 11, -18, 0, + -16, -6, -5, 3, 7, -14, -14, 0, -21, 14, -8, -1, -12, 2, 1, 2, + -3, -1, -3, 18, 5, 5, 9, 12, 7, 18, 8, 5, -25, 16, -15, 16, + -7, 9, -22, 1, 14, -13, -5, 2, -6, -8, 13, -17, 6, -16, 1, -5, + -14, -6, -6, -15, -2, 9, -9, -18, 15, -19, 12, 7, 4, 8, 14, 15, + 6, 10, -3, 9, -7, 23, -17, 21, -20, 7, 0, -9, 8, -10, 1, 4, + 2, 3, -9, -9, -15, -6, -21, -16, -6, 0, -11, 19, -8, -9, 5, -6, + 0, 5, 14, 7, 1, 12, 8, 7, -5, 12, 8, -4, 19, 4, -7, 2, + 3, -12, -8, -1, 0, 5, 7, -5, -8, -22, -8, -21, -2, -9, 10, -20, + 13, -6, 8, -17, -9, -6, 2, 5, 8, 6, -3, 10, -9, -2, 15, -6, + 20, 7, 11, 10, -3, -4, -8, 25, -25, 18, -12, 17, -6, 20, -22, -1, + -17, -10, 5, -10, 9, -13, -9, -6, 10, -25, -5, -2, -5, 13, 2, -5, + -8, -10, 11, -27, 10, -4, 11, 0, 33, -4, 10, -14, 1, 12, -2, 27, + -8, 6, 11, 9, -12, -4, -10, -13, 12, 5, 1, -10, -14, -15, -8, -7, + -9, 3, -5, 10, 3, -11, -12, -13, -3, -3, 3, 2, 9, 17, -6, 25, + -3, -3, -8, 19, 3, 30, -10, 12, -22, 7, -5, -10, -3, 21, -8, 12, + 6, -5, -13, -13, -9, -9, -1, -23, 13, -17, 15, -22, -11, -18, 8, -14, + 20, 1, 4, -5, 3, 3, 5, 11, 1, 2, 27, 1, 10, -7, -8, -2, + -2, 7, -1, 17, -5, 24, -7, 5, -10, -20, -6, 5, -4, -5, -1, -18, + -5, -14, -1, -20, 1, 7, -7, 12, -4, -2, -4, 2, 8, 0, 7, 1, + 6, -2, 18, -5, -7, 4, 3, -2, 13, 4, 0, 2, -3, 2, -10, -6, + 1, -6, 6, -7, -3, -21, -2, -12, 5, -1, -9, 7, -3, 13, 5, 5, + -8, 0, -8, 19, -5, 13, 13, -7, 3, 0, -10, 0, -8, 20, -8, 13, + -20, -5, -7, 3, 5, -7, 2, -5, -4, -14, 11, -23, -13, 2, -1, 12, + 13, 5, -6, 23, -9, 9, -6, -9, 18, -13, 16, -3, -7, -17, 3, -13, + 12, -9, 4, 0, 0, 13, -18, -1, 3, -13, 20, -5, 1, -20, 15, -23, + 18, -4, -8, 5, -7, 16, 4, 6, -3, 7, -21, 19, -17, -7, 9, 5, + 3, -5, -3, -16, -9, 25, -9, 12, -5, 10, -5, 9, -4, -6, -3, 4, + 10, -2, 11, -12, -2, -14, 8, -23, -5, 0, -8, 9, -2, -11, -3, -9, + 9, 2, 2, 4, -5, 7, 11, -16, 0, -6, 7, 6, 25, 5, 6, -4, + 3, 4, 3, 2, -8, -3, 5, -1, -11, -4, -9, -3, -15, 10, -12, -5, + 11, -4, -7, 6, -29, -5, 6, 11, 3, 9, -18, 13, -14, 19, -1, -2, + 4, 5, 12, 1, 5, -8, 3, 1, 20, -6, 2, 3, -16, 10, -10, -18, + -11, -7, -7, 9, -4, -8, 9, -15, 13, -13, -3, -7, 3, 8, 11, -6, + -16, 1, -8, 20, 4, 15, -5, -3, 11, -5, 6, 0, -5, 10, 13, 0, + -6, -11, 0, 11, -11, 10, -7, -8, 1, 16, -9, 2, -22, -9, 0, 4, + 5, -12, -22, 2, -8, -8, 14, -16, 0, 13, 0, 9, -7, 2, -1, 7, + 8, -3, -3, 2, 15, 5, 10, -7, 12, -4, 22, -4, -3, -12, -2, -15, + 8, -2, -22, 7, -10, 5, 12, -20, -9, -11, -2, -12, 2, -9, 5, -3, + 11, 7, -9, 4, -4, 24, -7, 21, -15, -3, 2, 14, -1, 5, 18, -12, + 13, 3, 5, -10, -11, 0, -8, -2, -4, 2, -15, 9, -10, -16, -9, -7, + 0, -1, 3, -8, -10, 5, -8, 4, -3, 8, -2, 20, 1, 6, -4, -9, + 4, 14, 7, -1, 3, -5, 18, -7, 20, -6, -10, 8, 1, -2, 3, -4, + -5, -3, -6, 0, -16, -7, 12, 0, -17, 4, -31, -7, 1, 1, -4, 8, + -11, 6, -1, 11, -5, -7, -4, 2, 4, 15, -3, 21, -5, 20, 3, -12, + 21, -1, 10, 5, 6, -20, -1, -18, 2, 3, -4, -5, -1, 6, -2, -11, + -17, -15, -13, 0, 6, -18, 7, -18, 7, -7, 6, 7, -10, 18, 16, 2, + -1, 3, -11, 6, 14, 1, 15, -2, 29, -8, 17, -14, 2, -19, 12, 8, + -6, -1, -23, 6, -11, 7, -19, -18, 0, 1, -8, -8, -4, -20, 8, -8, + 4, 10, -12, 13, 0, 18, -10, -3, -4, 6, 4, 17, 7, -2, 18, -9, + 14, -10, -4, -11, 4, 3, 23, -17, -6, -2, -7, -7, 9, -10, 1, 2, + -4, -14, -7, -6, -8, -4, 7, 2, -3, 3, 0, 13, -10, -4, -9, -6, + 18, 11, -4, 16, -8, -4, 1, -1, 7, 3, 3, 3, 10, -15, -2, -9, + 9, 0, 2, 2, -9, 12, -7, 0, -23, -7, -19, 2, -1, 0, 4, -15, + 7, 3, -3, 0, 9, -12, 19, 4, 8, -13, -6, 5, -1, 14, 10, 9, + 13, -3, 16, -18, 13, -18, 7, -10, 13, -6, -11, -3, 7, -23, -6, -11, + -21, 9, -1, 4, -3, -16, 0, -12, 7, 14, -5, 15, 0, 6, -5, -3, + -9, 9, 4, 10, 4, -2, -7, 10, -1, 10, -6, -14, 15, -4, 13, -4, + -4, -14, 5, -2, 4, -9, 3, -14, 2, 3, -10, -1, -9, 0, 3, -6, + 12, -16, 0, 4, 10, -25, 6, -5, 2, 8, 3, -2, -4, 15, 4, 7, + 2, -1, -6, 10, 11, 2, -2, -14, 6, -3, 0, -3, -9, -10, 1, -1, + -15, 9, -29, 9, -10, 7, -3, -3, -10, -2, 14, 4, -6, 0, 1, 12, + 4, 18, -15, 19, 1, 15, 1, 1, 3, -10, 8, -1, 7, -30, 8, -19, + -2, -5, -9, -10, 0, -1, 6, -4, -12, 1, -18, 10, -1, -12, 2, 7, + 12, 11, 0, -4, -1, 6, 10, 17, -8, 1, -12, 5, -2, 1, -7, -1, + 4, 3, -3, -1, -18, 8, -9, 0, -2, 8, -12, 12, 7, -5, -2, -16, + -7, 9, -5, 11, -9, -4, 3, 1, -9, -1, -2, -6, 7, 12, 0, -8, + 9, -10, 3, 0, 2, -3, 11, 14, 4, 3, -12, 3, -3, 2, 12, -4, + -2, -2, 9, -21, -5, -28, -6, -10, 6, 7, -6, -3, -24, 7, -11, 10, + 0, 8, 13, 10, 6, -7, -2, -5, 7, -1, 9, 18, -2, 12, -4, 7, + -26, 13, -6, 19, 6, 6, -5, -16, -6, -8, -18, -2, 1, -11, 3, 4, + -16, -8, -10, -3, 2, -3, 5, 5, 0, 11, 0, -14, 0, 1, 14, 11, + 13, 0, -2, 5, -1, -4, -2, -4, 5, 21, 3, 14, -5, -22, 5, -11, + -3, -6, -3, -11, 0, -5, -13, -10, -18, 3, 9, -10, 2, 3, -11, 11, + -11, 5, -19, 23, -1, 20, 18, 4, -3, -6, 9, 4, -3, 8, 4, 6, + 2, 5, -14, -6, -3, 2, -6, -4, -3, -11, 0, -5, 0, -21, -2, -10, + 11, 5, -4, -5, -5, -8, 10, -10, 4, -1, 6, 12, 9, 2, 8, -20, + 8, -2, 11, -11, 1, -4, 5, 6, -6, 6, -14, 14, 4, -2, 12, -3, + -10, 8, -5, -15, -9, -1, 5, 8, -3, 0, -23, -9, -11, 4, -12, 3, + -4, 4, 1, 15, -12, 3, 13, 2, 5, 8, -8, 7, 11, -3, 17, -11, + 5, 3, 19, 13, 3, -11, -11, -2, -9, -7, -4, -24, -1, -17, -3, -17, + 0, -15, 2, -1, -5, -4, 3, 2, 2, 11, -4, 3, -6, 11, 8, 3, + 6, 3, 7, 7, 6, -6, 2, 0, 14, 14, 3, 8, -6, 4, -3, 6, + -13, -2, -9, -4, 5, -13, -5, -21, -1, -6, -1, -5, -14, 8, -7, 5, + -7, -17, -11, 7, 3, 20, 7, 1, -3, 4, 5, 14, -3, 5, 3, 10, + 8, 6, -6, -2, 6, 3, 7, -6, -3, -3, -6, -1, -27, -11, -17, 0, + 11, 7, 1, -7, -9, -13, 5, -11, 0, -10, 15, 2, 5, -2, -5, 1, + 6, 6, -6, -5, 6, 2, 5, 3, 10, -16, 11, 8, 18, 3, 13, -11, + 7, 5, -7, -6, -20, 15, -1, 10, -1, -13, -17, -11, -3, -13, -4, -14, + -3, -2, -6, 6, -28, 9, -8, 10, 0, 12, -2, 10, 9, 1, 3, -6, + 5, 17, 24, 18, 3, 4, -9, -4, 2, -8, -4, -2, -11, 1, -8, -12, + -9, -10, 5, 0, -7, -9, 7, -18, 6, -10, -12, -1, -1, 13, 1, 18, + 2, -3, 4, 3, 3, -3, 3, 10, 9, 7, 5, -8, -7, 0, 3, -7, + 7, -2, -2, 5, -10, 2, -5, -3, -1, 4, 1, -2, -10, 4, -9, -5, + -12, -18, 3, 6, -3, 3, -15, -1, -13, 6, -2, 8, 0, 8, 16, -2, + 17, -4, 8, 3, 23, -1, 11, -8, 10, -4, -5, -3, -13, -2, -1, -2, + 2, -9, -13, -13, -2, -11, -2, -20, -5, 0, 3, 2, -1, -10, 1, 8, + 3, 9, 6, 4, -3, 13, 3, 4, 11, 2, 11, 8, -2, -1, -2, -2, + -2, -1, -21, -1, -14, 8, 6, -8, -10, 2, -16, 4, -3, -1, -10, 7, + -1, 4, -4, -12, 3, -2, 13, 2, -3, -9, -2, 6, -7, 8, -8, -5, + 12, 7, 8, -3, 6, -1, 16, 0, 7, -8, 3, -7, -1, 0, -6, -4, + -8, 6, -1, 4, -19, 2, -3, -8, -3, -12, 4, -6, 2, -7, 1, -13, + 2, 9, -1, 17, -19, 3, -3, 23, 9, 6, 3, 6, 6, -5, 11, -11, + 1, 0, -5, 6, -6, -4, -5, -7, 3, -4, -14, -9, -7, -1, 5, -11, + 4, -19, 14, -4, 3, 4, 2, 0, 9, -2, -3, 2, -2, 10, 15, -3, + 14, -6, -4, 6, 1, -8, 11, -9, 4, 3, -9, 2, 2, -2, 2, -2, + -9, -2, -2, 1, -6, -6, -22, -16, -10, 12, 0, 5, -8, -2, -4, -2, + 5, -1, 7, 7, 9, 1, 7, 6, -1, 10, 11, 5, -3, 8, 1, -1, + 8, -15, -6, -10, 12, 0, 2, -5, -9, -12, -7, -4, -14, -4, 0, -1, + 5, -7, -8, -12, 0, 2, 16, -3, 11, -4, 16, 11, 2, -3, 2, 8, + -1, 7, -13, 4, -3, -1, 3, -10, -2, -11, 3, 2, 3, -7, -10, -5, + -10, 12, -8, 5, -7, 15, 1, -10, 7, -16, 1, 3, 4, -5, 7, -7, + 4, -2, -1, -8, 0, -2, 17, 10, -2, 6, -5, 3, 10, -7, 2, -3, + 4, 5, 5, -3, -8, -8, -1, 1, 7, -5, -11, -2, -10, -4, -15, -7, + -10, -2, 2, -4, -10, -8, 0, 2, 6, 3, 2, 3, 10, 14, 8, 7, + 3, 5, -5, 20, -6, -1, -2, 0, 1, -2, -2, -8, 3, -3, 10, -14, + 3, -3, -2, 0, -5, 0, -15, 4, -2, 0, 4, -7, 3, -8, 7, -14, + -2, -6, 4, 2, 3, -10, -2, 5, -3, 12, -2, -5, -9, 1, 4, 1, + 11, -12, 15, 5, 20, 10, -5, 1, 5, 3, -13, 6, -16, 5, 1, -5, + -8, -3, -14, -6, -2, -5, -8, -17, -9, 3, -6, -2, -3, -3, 1, 14, + 2, 4, 5, 3, 8, 7, 12, 0, 11, 4, 16, 2, -3, -9, -1, 1, + -1, -3, -6, -14, 4, -6, 2, -14, -9, -11, -1, 0, 0, -5, -6, -10, + 5, -5, 2, -3, 2, 2, 17, -2, -1, -3, 3, 11, 1, 10, 2, 7, + 6, 5, -5, -3, -3, -2, 7, 2, 1, -18, -5, -2, -3, -5, 0, -2, + 0, 8, -9, -10, -15, -7, -2, -1, 6, -8, 16, -10, 13, -4, 2, -4, + 4, 7, 9, 6, -5, -2, 8, -1, 11, -6, -1, 5, 8, 0, 9, -20, + 0, -9, 4, -3, 1, -4, -11, 2, -6, 0, -12, 0, 1, 5, -2, 1, + -7, -4, 3, -1, -10, 3, -3, 7, 4, 8, -9, -6, -10, 0, 0, 2, + -4, 6, 9, 10, 2, 0, -1, 2, 14, 3, 7, -7, 2, -2, -2, -6, + -9, 2, -3, 6, -3, -7, -9, -10, -2, 2, -1, -11, 2, 1, 7, -4, + -7, -19, 3, -1, 6, 6, 6, 6, 0, 6, 7, 3, -1, 3, 8, 3, + 4, -10, -5, -7, 5, -4, -14, 2, -8, 5, -2, 2, -16, -4, -11, 2, + 4, -1, 2, -1, 0, 5, 4, -12, 3, 9, 7, 13, -3, -7, 2, 6, + -1, 7, -1, -1, 5, -5, 7, -11, -9, -13, 2, 5, 2, -2, -7, 5, + 4, -4, -2, -15, -4, 3, 0, 0, -5, 2, -7, -1, 9, -2, -1, 5, + 1, 1, -4, -5, -4, 6, 8, 7, -5, 4, -7, 4, 0, 1, -6, -5, + -2, 5, -1, 0, 1, 1, 3, 9, -4, -2, -4, -9, -1, 4, -17, 1, + -13, 11, -1, 6, -9, -1, 5, 1, 8, -3, 4, -5, 1, 7, -5, 1, + -3, 5, 3, 4, -7, -11, -7, 1, 5, -13, 11, -11, 1, 3, 6, -9, + 6, -5, -7, 4, -13, 5, -7, 10, 5, 6, -15, -1, 6, 4, 18, -7, + -7, -3, -4, 2, -5, 3, -4, 9, -4, 3, 3, -3, -10, 0, -1, 2, + 5, -3, 7, 3, 2, -6, -11, -2, -1, 4, -5, 4, -5, 0, -5, 5, + -5, -4, 2, 4, 2, 5, -8, -13, -3, 0, -1, -2, 4, 6, 9, 1, + 3, -7, -1, 1, 12, 1, 1, -1, -5, -1, 2, -8, -9, -7, -2, 3, + 10, -6, -7, -12, -7, -4, -5, 6, 0, 10, 5, 7, -4, -2, -8, 10, + 5, 9, 4, -1, -1, -1, -1, -1, -2, -3, 3, 9, -2, 9, -14, -13, + -8, -10, 1, 1, 3, 3, 1, -3, -12, -5, -7, 1, 6, 6, -2, -7, + -3, -3, 2, 2, 4, -9, 14, 8, 11, -3, 5, -11, 1, -1, 5, 3, + 8, 2, 8, -2, -6, -13, -10, 0, 4, 3, 4, -3, -9, 1, -5, -5, + -6, 1, -2, 2, -10, -6, -15, 1, -5, 4, -1, 2, 2, 4, 10, 4, + 2, -13, 0, 4, 8, 17, 2, 5, 4, 2, -6, 5, -5, 0, 8, -2, + -1, -5, -4, -5, -1, -5, -4, -5, 0, 0, 1, -9, -15, -3, -12, 1, + -1, -7, 10, 2, 5, -1, 2, -6, 2, 2, 10, 10, -1, 2, -2, 4, + 5, 0, -6, 12, 5, 3, -1, -8, -8, -4, -4, 3, -11, 0, -1, -1, + 0, -2, -14, -6, -9, 2, 1, 7, -4, 3, -1, 0, -3, 1, 2, 7, + 5, 4, 3, -2, -3, 1, 6, -1, 6, -11, 7, 2, -6, 2, -4, 0, + 2, 3, -7, -9, 3, 0, 4, -6, 0, -21, 0, -5, -1, 0, -1, 1, + -6, -1, -1, 0, -7, 5, 7, -2, 8, -4, -1, 3, 9, -6, 10, -6, + 7, 9, 10, 9, -6, 5, -14, 6, -5, 1, 2, -3, 0, -9, -10, -14, + -2, -3, 6, -8, -15, 3, -9, 0, -3, 0, -6, -1, 3, 9, 10, 3, + 3, -10, 6, 1, 3, -1, 9, 12, 4, 4, -9, -7, -5, 8, 6, 1, + 1, -4, -5, -5, -1, -11, -3, -4, 1, -1, 1, -10, -7, -2, -3, -4, + -3, -6, 11, 5, 3, 2, -8, -5, -2, 3, 9, 13, 5, 4, 4, 0, + -5, -1, -5, 9, 2, 3, -9, -4, 3, -6, 2, 1, -9, 5, -2, 3, + -2, -9, -8, -15, -5, -3, 3, -13, 11, 6, -3, 1, -6, -6, -1, 6, + 4, 6, 7, 1, 5, 0, 8, -6, 7, 2, 6, 2, -5, 0, -3, -1, + 3, -7, -1, -3, 5, 7, 6, -18, -10, -11, -7, -3, 10, -4, 3, -4, + -8, -5, -12, -3, -4, 12, 10, 2, -4, 6, 3, 1, 2, 0, -3, 3, + 7, 7, -5, 2, -4, 1, 3, 11, 2, 3, 4, -2, -7, -5, -17, -11, + 4, -3, 5, -7, -7, -6, -1, -8, -5, -5, 1, 7, 1, 2, -1, -9, + 7, 1, 7, 3, 3, 6, 9, 6, 1, -6, -4, 2, 5, 7, 4, -2, + 1, 3, -11, -1, -16, -2, -6, 1, 3, -8, -15, -11, 4, -1, 9, -2, + -5, 0, 6, 0, -7, 0, -8, 4, 2, 6, 2, 0, 2, 6, 2, -2, + 4, -2, 4, 14, 2, 2, -6, -6, -3, 4, -4, -1, -4, 1, -3, -6, + -1, -13, -1, -2, 7, -8, -7, -10, 0, 4, 3, -8, -3, 1, 4, 6, + 4, 6, -3, 5, 3, 4, 0, 6, 1, 4, 7, -3, -10, 8, -1, 9, + -1, 1, -11, -7, -3, -3, -6, -8, -9, -6, 1, -3, -6, -6, -5, 0, + 0, 2, -3, 0, 6, 4, 3, 2, 7, 4, 11, 14, 5, -1, -5, 1, + -2, 7, 3, 0, 1, 2, -5, -7, -10, -12, -10, -5, -5, -6, -6, -9, + 1, -8, -2, -1, -9, 1, 8, 2, -5, -2, -5, 0, 5, 6, 6, 7, + 8, 10, 2, 0, -3, -1, 2, 13, 3, 0, -6, 0, 1, -3, 0, -12, + -2, 4, -4, 4, -8, -11, -1, -2, 1, -1, 2, -12, 3, -6, 1, -12, + -7, -7, 3, 0, 9, 0, 1, 6, 1, -1, 2, 1, 2, 8, 9, -3, + -1, 0, 7, 3, 8, -1, -4, -1, 1, 3, -9, -1, -17, -3, -2, -4, + -4, -3, -4, -6, -11, -15, -2, -5, 6, 10, 1, 3, -1, -3, 13, 7, + 1, 6, 4, 4, 9, 5, -3, -5, 9, 3, 5, -3, 1, -3, 3, 0, + -7, -5, -7, 0, -5, 0, -1, -15, -11, -4, -5, -10, 2, -7, 5, -4, + 1, -9, 2, 1, 8, 7, 10, 2, 2, 0, 4, 3, -2, 0, 4, 2, + 6, 8, -2, 4, 4, -2, 5, -3, -6, 3, -3, -5, -9, -8, -11, -5, + -1, -1, -5, -7, -5, -8, 0, -3, 5, -7, 11, 1, 0, 2, -3, -1, + 3, 9, 6, -3, 8, 1, 11, 2, 8, -3, -3, 6, 2, 1, 2, -7, + -3, -2, -4, -8, -3, -3, 5, -10, -10, -4, -12, -2, 3, -5, 3, -6, + -8, -2, 5, -3, 0, 1, 4, 8, 4, 5, 0, 4, 8, 1, 7, -3, + 0, 3, 4, 4, -5, -2, -7, -3, 0, 5, -5, -9, 3, -2, -1, -2, + -5, -1, -4, -3, -11, -4, -5, -6, 0, 5, 0, -5, 5, 3, 8, -1, + 3, 3, 2, 5, 7, -4, 3, 1, 3, 10, 2, -7, 1, 0, 6, -4, + -3, -5, -7, -2, -4, -3, -6, 0, -10, 4, -6, -4, -7, -2, 1, -4, + -1, -3, -1, 2, 6, 2, 4, -2, 2, 4, 2, 5, -3, 4, 2, 1, + 0, 8, -3, 2, 5, -5, 3, -5, -2, 5, -5, 3, -1, -4, -3, 4, + -10, -5, -7, -4, -4, 0, 0, -7, -1, -1, 2, 1, -2, -12, -4, -1, + 0, 4, -5, 2, 0, 3, 12, 11, 3, 11, -1, -3, 6, -6, 1, 1, + 7, 6, -7, -1, -7, -4, -4, -7, -8, -1, -6, -6, -2, -3, -5, 0, + -4, 8, -7, 1, 4, -3, 6, 1, -7, 3, 5, 6, 5, 13, 2, 2, + -4, 4, -3, 1, 4, -4, 2, -3, -10, -10, -7, -2, -2, -2, 0, -6, + -2, 1, -3, -4, -2, -5, -2, 7, 1, 6, -5, 6, -1, -1, 2, -3, + 4, 11, 2, -1, 2, -7, -5, 8, 0, 3, -3, -5, -1, -2, 3, 1, + -4, 4, 7, 0, 2, 3, -3, 0, 1, -5, -15, -5, -3, 1, 3, -3, + -11, -4, -7, 1, -2, -1, -1, 0, 1, 1, -5, -1, 3, -2, 7, 1, + -4, -1, 0, 4, 5, 3, 3, -1, 8, 11, 1, 4, 1, -5, 7, -6, + -4, -2, -4, -2, 3, -8, -3, -13, -6, 3, -3, -7, -4, -7, 3, 3, + -3, 2, -1, 1, -4, -2, -2, -5, 1, 11, 9, -2, 6, -3, 7, 7, + 1, 1, -7, 2, -3, 1, 4, -4, -4, 5, 1, 0, -3, -6, 2, -3, + 0, -8, -12, -6, -2, -3, 6, -1, -9, 0, -1, 1, 3, -2, -1, 0, + 1, 6, 0, -3, 5, 1, 6, 1, -1, 4, 1, 7, -3, -1, -1, -4, + 4, 14, -1, -1, 2, -4, -1, -6, -8, -8, -3, -2, 2, -9, -5, -7, + -12, 5, 0, -3, -4, -3, 5, 4, 3, -2, -6, 4, 7, 3, 5, 7, + -3, 8, 0, -5, -1, -1, 11, 10, 3, 4, -8, -3, -3, 1, -3, 0, + -4, -3, 1, -7, -8, -16, -7, -6, -2, 3, -7, -2, 1, -4, 0, -5, + -5, 1, 5, 10, 5, 0, 3, 0, 1, 13, 0, 5, 9, 6, 8, -1, + -4, 0, -3, 6, 4, -4, 0, -3, -15, -2, -12, -15, -3, -6, 2, 1, + -3, -4, -9, -9, -3, -3, -2, 3, 4, 9, 0, 2, 1, 2, 14, 5, + 3, 8, 2, 7, 4, -4, -4, -1, -9, 9, -5, -1, -7, -10, -2, -7, + -4, 0, -5, 2, 5, 1, 0, -5, -5, -1, -1, -3, 4, -8, 5, 3, + -4, 4, -5, -3, 9, 4, 8, 0, 0, 2, 0, -2, 0, -2, -7, 12, + -1, 5, -4, 2, -3, 0, 2, -2, -4, -2, 2, -5, 3, -7, -9, -4, + -3, -2, -6, -6, -2, -6, -1, -7, -8, 1, 3, 6, 10, 4, 5, 0, + 5, 8, 1, 3, 8, 5, 11, 12, -7, 4, 0, -3, 2, -1, -8, -7, + -4, -2, -6, -9, -6, -13, -4, -1, 0, -9, -5, -3, -4, -2, 3, 1, + 1, 9, 4, 2, 6, -1, 3, 6, 2, 0, -3, 3, 2, 6, 3, -1, + -4, 4, 1, 2, 2, -5, -8, -1, -3, -1, -9, -4, 1, -5, 5, -7, + -4, 0, 3, -10, 3, -3, -5, 1, 5, 4, 1, -5, 1, -5, 4, 1, + -6, 0, 5, 8, 8, 1, 6, 0, 3, 4, 2, -3, 1, -3, -3, 3, + -10, -6, -8, -2, -1, -3, -6, -6, -5, -6, -6, -5, 5, -3, 5, 6, + -2, -1, -1, -4, 6, -2, 6, 6, 2, 12, 8, -2, 3, -6, -2, 5, + 4, -3, -2, -5, -4, -7, -6, 1, -5, 2, 2, 0, 1, -7, 0, -4, + -2, -1, -2, -5, 7, -5, -2, -3, -2, -3, 4, 4, 9, 0, 1, 1, + -5, -3, -4, -4, 4, 3, 6, 1, -2, -2, -7, 4, 1, 1, -3, 3, + -1, 2, 0, -7, 0, 0, -1, -3, -2, -1, -5, -2, -3, -8, -5, -5, + -1, 5, 5, 2, 2, -3, 4, 3, 4, 6, 3, -1, 10, -4, -3, -2, + -3, 0, -4, 0, -2, -2, 0, 2, -5, -2, -5, -9, 8, -2, -1, -1, + -3, -3, -2, -6, 2, 1, 2, 9, 0, 1, 4, -5, 2, 4, -6, -1, + 2, -1, 6, 3, 0, -5, -3, -1, 0, 3, -3, 0, -6, -2, -3, -4, + -2, 0, 3, 2, 2, 0, -10, 1, -6, -5, -1, -2, 5, 3, 6, -2, + -6, -1, -3, 2, 4, 1, -1, 0, 1, 1, 3, -1, 5, -1, 7, 6, + 1, -2, 0, -6, -2, -2, -8, -2, -2, -3, -5, -5, -8, -3, -1, 5, + -3, 1, 2, 1, 2, -3, -2, -3, 2, 6, 2, 6, 0, 0, -2, 9, + -1, 3, -2, 3, 0, 0, 0, -6, -6, -1, -5, -7, 1, -3, -6, 2, + -2, -1, -5, -2, 1, 4, 2, 2, -3, -1, 6, -2, 2, 4, -3, 2, + 2, 2, -3, 1, 0, -4, 2, -1, -2, 3, 1, 1, -1, -5, -8, -2, + -5, 0, 1, -6, 3, -4, 2, 3, -6, 3, 0, 2, -2, -1, -4, -2, + -4, 4, 0, -3, 0, -6, -3, 10, -3, 3, 0, 4, 7, 3, 0, 5, + 1, 5, 1, -3, -2, 0, -6, 3, -1, -7, -5, -7, -1, -2, -2, -2, + -3, -2, 2, -2, -1, -3, -3, 2, -2, -6, -3, -3, 4, 3, 2, 0, + -1, 5, 5, 8, 2, 2, -2, 4, 0, 5, -5, -3, -1, -3, -3, -6, + -4, -2, 3, 0, -2, -2, -5, 5, -1, 3, -1, -1, -3, 0, 0, -5, + -4, -3, -2, 5, 0, -4, -4, 1, 2, 6, 0, -3, -1, 2, 3, 7, + -3, 0, -4, -2, 4, 3, 0, 1, 3, -3, 1, -7, -4, 0, 1, 1, + -4, -4, -4, -9, -1, -2, -3, -2, -3, -3, 4, 3, -1, -4, 2, 4, + 4, 3, 2, -1, 0, 9, -1, 4, 2, 7, -1, 6, -2, -2, -5, -1, + -9, -2, -2, -6, -1, -1, 1, -8, -6, -5, -1, -1, 1, -4, -5, 3, + 1, 5, 3, -3, 0, -2, 7, 0, 1, -2, 3, -1, 5, -1, -5, 7, + -1, 3, 2, -5, -6, -2, 4, 2, -1, -3, -1, -1, -1, -1, -2, -4, + 1, -5, 3, -1, -3, -5, 2, 6, -6, -1, -5, -4, 4, -1, -1, -2, + -1, 2, 0, 3, 1, 4, 2, 7, -1, 2, 0, -2, 1, 4, -5, -3, + -7, -2, 0, -1, -1, -3, 0, 0, -2, -6, 2, -4, 2, -4, 1, -7, + -2, -1, 5, 3, -2, -7, -4, 1, 6, 4, 5, 1, 4, 0, 5, 1, + -1, 2, 0, -3, -3, -5, -6, 3, -1, 5, -1, -2, 1, 1, 4, 2, + -6, -3, -4, -3, 2, -2, -8, -3, -6, -4, -2, -11, 0, 0, 1, 6, + -3, -2, 1, 2, 10, 8, 4, -2, -1, 2, 2, 1, -2, 3, 1, 5, + 3, -1, 0, -4, 4, -7, -2, -7, -8, -4, -3, -2, -7, -7, -3, -1, + 5, -2, 0, -7, 2, -1, 3, 1, 4, 6, 5, 8, 3, 2, -1, 3, + -3, 0, 0, -5, -1, 1, 1, -5, -3, -2, 6, 4, 5, -4, -8, -4, + -3, -2, -5, -4, -4, -4, 2, -3, -2, -4, -4, -4, 6, 1, 0, 1, + 3, 3, 5, 2, 1, 0, 6, 2, -1, 1, -3, -3, 2, -1, 0, 1, + 3, 1, 4, -4, -5, -10, -8, 1, -6, -3, -4, -6, -3, 0, 2, -3, + -1, 2, 0, 8, 1, 4, 4, 3, 6, 3, 1, 3, 5, 1, 2, -4, + -7, -3, -3, 3, 0, -7, -5, 0, -3, -1, -2, -4, 0, -5, 1, -6, + -1, -5, -3, 1, 4, -1, -3, 3, 3, 5, -1, -2, 2, -1, 2, 1, + -1, -5, 5, 1, 2, 2, -4, 0, -1, 3, 0, -2, -1, 2, 1, 5, + 4, -3, -5, 0, -2, -2, -6, -3, -3, -4, -1, -5, -4, -1, -2, 0, + 2, -2, -6, -3, 1, 1, 1, -1, 3, 4, 7, 2, 3, 4, -1, 7, + 2, 3, 1, -1, 1, -2, 0, -4, -5, -6, 0, -2, -7, -2, -5, -5, + 1, -4, -5, -5, 3, -1, 1, 2, -2, 0, 1, 4, 1, -4, 2, 2, + 0, 9, 2, 0, 4, 3, 1, 2, -4, -2, -4, 3, -4, -2, -6, 0, + -1, 5, 2, -4, 0, -4, -4, -1, -5, -4, -7, -3, 1, 0, -2, -1, + -5, 1, 0, -1, 0, 2, 4, 0, 3, -2, 1, 2, 6, 0, 1, 5, + 0, 3, 3, 2, -5, -2, 1, 5, 2, -2, -5, -9, 0, -6, -1, -6, + -7, -5, -4, 0, -2, -5, -3, 2, -2, 3, 2, 0, 9, 2, 0, 4, + -3, 4, 5, 8, 6, -2, -4, -1, 0, -2, -2, 1, -5, 2, -5, -1, + -4, -3, -4, 0, -2, -7, -3, -1, 0, -1, 0, -6, 3, -2, 5, 2, + -1, -2, 1, 0, 1, -1, -3, 2, 3, 1, 2, -4, -3, -1, 5, 5, + 3, -4, 0, 1, 2, 5, -5, 1, -5, 2, -2, 2, -4, -3, 0, -4, + -3, -9, -7, -4, 2, -2, 1, -6, -3, 0, 1, 5, 1, -5, 0, 0, + 2, 1, 2, 0, 6, 4, 6, 3, 2, 3, 1, -2, -2, -9, -4, -1, + 4, 0, -1, -5, -8, -5, -4, 0, -4, -1, -3, 0, 0, -4, -3, -1, + 1, 2, 0, -2, -3, 1, 3, 2, 3, 3, 0, 8, 2, 7, -1, 3, + -2, 4, 0, 0, 1, -4, 5, -1, -3, -3, -6, -4, 2, 1, -5, -4, + -7, -4, -4, -7, -2, -10, 1, 0, 1, -3, 4, -2, 5, 2, 1, -3, + -1, 2, 8, 4, 5, 0, 1, 4, 5, 2, 2, -2, 1, -4, 0, -3, + -3, -1, 0, 2, -4, -4, -5, -1, -7, 0, -4, -5, -1, -3, 2, -2, + 0, 3, 0, 2, 0, 1, -2, 2, 4, -1, 0, -3, -1, 1, 3, 2, + -3, 2, 0, 2, 2, -1, 2, -2, -3, 0, 0, -2, 2, -2, 4, -3, + -6, -7, -6, 2, -1, -4, -1, -7, -1, -3, 3, -1, 0, -2, 2, 2, + -3, 3, -4, 5, 7, 6, 3, 1, -1, 6, 2, 1, 0, -1, -1, 1, + -3, 1, -3, -5, -5, -3, -8, -3, -11, -1, -1, 0, -8, -2, -5, 3, + 4, 0, 1, -2, 2, 0, 6, 4, 1, 4, 1, 5, 0, 0, 1, 2, + 5, 0, 1, -10, 0, -5, 2, 0, -6, -6, -2, -2, 2, -3, 0, -4, + 2, -4, 1, -3, -4, 1, -2, 2, 1, -2, 0, 3, 2, -3, -1, -5, + -3, 4, 2, 3, -1, 4, 1, 5, -1, 2, -3, 2, -3, 0, -3, -2, + 1, 1, 5, 1, -2, -5, 1, -1, -4, -3, -7, 0, -5, -4, -4, 0, + -4, 4, 0, -1, 1, -8, 1, 0, 9, 1, 2, -2, 5, 5, 1, 6, + -1, 6, 3, 1, 1, -2, -2, -4, -3, -2, -3, -7, -4, -4, -1, -3, + -8, -1, -8, 4, -5, 0, -3, 1, 0, 4, -1, 0, 1, 3, 3, 4, + -4, 6, -2, 2, 5, 4, -3, 4, -3, 5, 0, -4, 0, 0, -1, 0, + -4, -4, 3, -1, -2, -4, -8, -9, -5, -4, 4, -4, 1, -4, 1, 1, + -1, -1, -1, 3, 2, 3, 0, 1, 2, 1, 5, 3, 1, 0, 5, 3, + 3, 0, -5, -4, -2, 5, 0, -2, -5, -2, -6, -2, -5, -8, -2, 1, + -1, -3, -7, -8, -6, 0, 4, 7, -2, 7, -1, 7, 3, 2, -5, 0, + 2, 0, 1, -3, 2, 2, 3, 3, -3, 0, -2, 3, -1, -1, -4, -6, + -2, -3, 4, -4, 0, -4, 6, -2, -6, -2, -7, 1, 2, -1, -3, -2, + -2, 3, -1, 0, -3, -1, 4, 7, 4, 0, 2, -1, 0, 6, -2, 1, + 1, 5, 4, 1, -3, -3, -2, 2, 2, 1, -6, -6, -3, -4, -2, -6, + -5, -4, -5, -2, -8, -8, -3, 0, 4, 0, 1, -1, 2, 5, 4, 2, + 2, 3, 3, 4, 10, 0, 2, 0, 3, 1, 1, 0, -3, 1, -3, 1, + -7, 0, 1, -2, 1, -6, -4, -10, -1, -4, -2, -2, -3, 2, -4, 1, + -5, -4, -4, 2, 1, 1, -4, -1, 3, 1, 6, 2, -2, -2, 3, 3, + 2, 7, -5, 5, 0, 8, 1, -1, 2, 3, -1, -6, 0, -10, 3, -1, + -1, -5, -6, -8, -2, 0, -3, -5, -8, -4, 2, -3, -1, -2, 0, -1, + 7, -1, 3, 2, 4, 7, 3, 4, -1, 5, 1, 9, 1, -2, -1, -1, + 1, -3, -2, -6, -7, 1, -3, -1, -9, -4, -6, 0, 2, -3, -2, -4, + -3, 0, -4, -1, -4, 0, 1, 6, -1, 1, -1, 3, 5, -1, 3, 4, + 5, 7, 4, -2, 0, -2, 0, 3, 1, -1, -8, -2, -1, -2, -5, -1, + -2, -2, 2, -5, -7, -9, -2, -3, -2, 1, -5, 4, -4, 5, -1, -1, + -3, 2, 3, 7, 3, -1, 3, 4, -1, 5, -4, 0, 4, 4, 3, 4, + -9, 1, -5, 2, -2, -2, -3, -7, -1, -2, -2, -5, -3, -1, 1, -2, + -1, -4, -4, 1, -1, -7, 0, -1, 2, 5, 4, -4, -5, -4, 0, 2, + 1, -1, 3, 5, 4, 0, 0, -1, 3, 8, 3, 3, -4, 0, 1, 0, + -2, -6, -2, -4, 3, -2, -3, -5, -6, -3, -1, -1, -7, 0, 0, 3, + -5, -4, -11, 0, 0, 3, 3, 1, 1, 1, 4, 6, 1, 1, 2, 9, + 3, 3, -4, -4, -3, 2, -1, -6, 1, -5, 2, 0, -1, -8, -5, -6, + 1, 0, -2, -1, -2, -1, 2, 0, -9, 0, 5, 4, 7, -3, -3, 3, + 4, 2, 4, 0, -1, 3, 1, 5, -5, -6, -7, 0, 3, 0, -2, -4, + 3, 3, -3, -4, -7, -2, 4, 1, -1, -4, -1, -6, -2, 3, -2, -3, + 1, 4, 1, -1, -4, -3, 3, 4, 5, -2, 2, -3, 4, 0, 3, -3, + -3, 0, 3, 1, -2, -1, -3, 2, 4, -2, -2, -3, -1, -1, 3, -11, + -2, -8, 5, -1, 3, -5, -2, 2, -1, 3, -3, 0, -1, -1, 5, -2, + 0, -2, 3, 2, 3, -2, -6, -3, 2, 4, -6, 5, -6, 1, 2, 3, + -6, 2, -3, -4, 3, -9, 2, -6, 3, 4, 2, -9, -1, 1, 2, 8, + -3, -4, -1, -2, 2, -2, 2, -3, 3, -1, 1, 2, -1, -6, 1, 2, + 2, 1, -2, 2, 3, 1, -3, -6, -3, 0, 1, -3, 0, -3, -1, -4, + 2, -4, -3, -1, 4, 0, 5, -6, -7, -1, 0, 0, -3, -1, 2, 4, + 0, 3, -4, -1, 1, 7, 4, 2, -1, -4, 0, 2, -4, -5, -5, -1, + 1, 4, -5, -4, -6, -3, -2, -3, 2, -2, 5, 2, 3, -4, -2, -5, + 6, 3, 4, 2, -3, 1, 0, 0, 1, -3, -1, 1, 7, 0, 6, -6, + -7, -2, -7, 0, -1, 0, 2, 1, -2, -7, -2, -5, 0, 2, 0, -3, + -5, -1, -3, 0, -1, 0, -6, 8, 4, 5, -1, 1, -4, 1, 1, 4, + 2, 5, 3, 6, 0, -2, -9, -4, -1, 0, 0, 1, -1, -4, -1, -5, + -5, -5, 0, 0, 1, -6, -5, -9, 0, -3, 0, -2, 0, 0, 3, 4, + 2, 1, -7, 1, 3, 4, 9, 1, 4, 4, 2, -4, 2, -2, 1, 5, + -2, 0, -3, -4, -3, -2, -4, -4, -4, 1, -1, 2, -6, -8, -3, -8, + -1, -2, -4, 5, 2, 3, -1, 0, -4, 2, -1, 5, 5, -1, 3, 0, + 3, 3, 0, -4, 9, 4, 2, -1, -6, -4, -2, -2, 2, -7, 0, 0, + -2, -2, -2, -10, -4, -7, 0, -2, 2, -2, 2, 1, 0, -3, 0, 1, + 6, 3, 2, 0, 0, -1, 2, 3, -1, 4, -5, 6, 2, -3, 0, -3, + 0, 1, 0, -5, -6, 1, 0, 1, -5, -2, -14, 0, -4, -1, -1, -1, + 1, -3, 0, -2, -1, -4, 4, 5, -1, 5, -1, 3, 3, 5, -3, 5, + -3, 5, 5, 6, 4, -6, 2, -9, 4, -4, 0, 1, -2, -1, -8, -6, + -11, -2, -3, 3, -6, -8, 3, -5, 1, -3, 1, -3, 1, 3, 5, 6, + 2, 1, -6, 4, -1, 1, 0, 7, 7, 2, 3, -6, -4, -4, 3, 3, + 0, 1, -1, -2, -4, 0, -8, -2, -3, 1, -2, 1, -5, -2, -1, -3, + -3, -4, -3, 7, 4, 1, -1, -6, -5, -3, 2, 5, 8, 3, 3, 2, + 1, -4, -1, -2, 6, 3, 2, -4, -1, 1, -5, -1, -1, -5, 2, -2, + 1, -2, -7, -5, -11, -4, -3, 3, -8, 8, 4, -2, -2, -4, -4, -1, + 4, 3, 5, 5, 2, 4, -1, 6, -3, 6, 2, 3, 0, -4, 0, -2, + -2, 0, -5, -2, -1, 4, 3, 1, -13, -8, -8, -5, -3, 7, -2, 3, + -2, -5, -3, -8, -2, -3, 8, 6, 1, -2, 5, 3, 1, 2, 0, -1, + 2, 4, 3, -5, 1, -3, 0, 1, 7, 1, 2, 3, -1, -4, -4, -10, + -7, 3, 0, 2, -5, -5, -4, -1, -7, -3, -3, 1, 3, 0, 0, -1, + -6, 6, 1, 4, 1, 2, 5, 6, 4, -1, -4, -3, 1, 2, 5, 2, + -1, 1, 3, -8, -1, -10, -2, -5, 0, -1, -6, -10, -7, 2, -2, 6, + -1, -2, 1, 4, -1, -5, -1, -5, 4, 1, 4, 2, 1, 3, 4, 0, + -2, 1, -1, 3, 8, 2, 1, -4, -3, -3, 3, -3, -1, -4, 0, -4, + -6, -2, -8, 1, -2, 5, -6, -5, -6, 0, 3, 1, -6, -3, 1, 2, + 4, 2, 4, -2, 3, 3, 3, 1, 5, 1, 2, 3, -2, -6, 6, -1, + 6, -2, 1, -7, -5, -2, -3, -6, -6, -6, -4, 0, -2, -4, -4, -3, + 0, -1, 1, -3, -1, 3, 1, 1, 0, 6, 4, 8, 10, 5, 0, -3, + 1, -2, 5, 2, 1, 1, 1, -4, -6, -8, -8, -8, -5, -4, -5, -4, + -5, 0, -5, -3, 0, -7, 0, 4, 1, -4, -1, -4, -2, 4, 4, 5, + 6, 6, 7, 0, 0, -1, 0, 2, 9, 2, 1, -3, 0, 1, -3, 1, + -9, -1, 3, -4, 3, -6, -7, -2, -1, -1, -1, 1, -9, 2, -5, 1, + -8, -6, -6, 1, -1, 6, 0, 2, 5, 2, 0, 2, 1, 2, 6, 5, + -2, -1, 0, 4, 1, 6, 0, -2, 1, 0, 3, -7, -1, -13, -4, -3, + -3, -3, -2, -3, -5, -9, -11, -2, -3, 4, 7, -1, 2, 0, -2, 8, + 5, 1, 4, 3, 2, 7, 3, -2, -4, 7, 2, 3, -2, 1, -1, 2, + 0, -5, -4, -4, 0, -4, 0, -1, -10, -9, -3, -5, -8, 1, -5, 3, + -3, 0, -7, 1, 0, 5, 4, 7, 1, 1, 0, 2, 2, -2, -1, 2, + 1, 4, 6, -1, 4, 3, -1, 4, -2, -3, 3, -1, -2, -6, -6, -7, + -3, -1, 0, -4, -6, -5, -6, 0, -3, 3, -5, 7, 0, -1, 1, -3, + -1, 1, 6, 3, -3, 7, 1, 10, 1, 6, -1, -2, 5, 2, 1, 1, + -4, -2, 0, -3, -7, -2, -4, 4, -8, -8, -4, -10, -2, 2, -4, 1, + -5, -7, -1, 3, -1, 1, 1, 4, 6, 2, 2, 0, 4, 7, 0, 5, + -2, 0, 3, 3, 3, -3, -1, -5, -2, 0, 3, -4, -6, 2, -1, 0, + -2, -4, 0, -4, -3, -9, -3, -4, -4, 0, 3, -1, -4, 3, 1, 5, + -2, 1, 2, 2, 4, 5, -3, 2, 1, 3, 7, 1, -5, 1, 0, 5, + -3, -2, -3, -4, 0, -3, -2, -5, 0, -8, 3, -6, -4, -6, -2, 2, + -4, -2, -3, -2, 1, 4, 2, 3, -2, 2, 4, 1, 4, -2, 3, 2, + 1, 1, 7, -1, 2, 4, -4, 2, -4, -2, 5, -4, 3, -1, -3, -2, + 3, -8, -4, -6, -3, -3, -1, 0, -6, -1, 0, 1, 1, -2, -10, -3, + -1, 0, 2, -5, 1, 1, 2, 10, 8, 2, 8, -1, -2, 4, -5, 2, + 2, 7, 6, -6, -1, -5, -4, -3, -6, -7, 0, -5, -5, -1, -2, -5, + 0, -4, 6, -6, 0, 3, -3, 4, 0, -6, 2, 5, 5, 4, 10, 0, + 2, -3, 3, -2, 0, 3, -3, 2, -3, -8, -8, -5, -1, -1, -1, 0, + -5, -2, 0, -3, -4, -1, -5, -2, 5, 0, 5, -4, 4, -1, -1, 1, + -3, 3, 9, 2, -1, 1, -6, -3, 7, 1, 3, -2, -4, 0, -1, 3, + 1, -3, 4, 6, 0, 1, 2, -3, 0, 0, -5, -13, -4, -2, 1, 2, + -3, -10, -4, -7, 1, -2, -2, -1, 0, 1, 1, -4, -1, 2, -2, 7, + 1, -3, 0, 0, 4, 5, 2, 2, -1, 6, 9, 1, 3, 1, -5, 5, + -6, -5, -2, -4, -2, 2, -7, -4, -11, -5, 3, -3, -6, -4, -6, 3, + 3, -3, 2, 0, 1, -3, -1, -2, -4, 1, 10, 8, -2, 4, -3, 6, + 6, 1, 0, -7, 2, -2, 1, 3, -4, -4, 4, 1, 0, -2, -5, 2, + -2, 0, -7, -11, -5, -2, -2, 5, -1, -8, -1, -1, 1, 2, -2, -1, + 1, 1, 5, 0, -3, 5, 1, 6, 1, -1, 3, 1, 6, -3, -1, -1, + -3, 4, 12, -1, -1, 2, -4, -1, -6, -8, -7, -3, -2, 1, -9, -5, + -6, -10, 5, 1, -2, -3, -2, 5, 4, 3, -1, -5, 4, 6, 3, 4, + 6, -2, 7, 0, -4, -1, -1, 9, 8, 2, 2, -8, -3, -3, 0, -2, + 0, -4, -2, 0, -6, -7, -14, -6, -5, -1, 3, -6, -2, 1, -3, 0, + -4, -5, 1, 5, 9, 4, 0, 3, 0, 1, 12, 0, 4, 8, 5, 7, + -1, -4, 0, -3, 5, 4, -4, 0, -3, -13, -2, -10, -14, -3, -5, 2, + 1, -3, -4, -8, -8, -3, -2, -2, 3, 4, 8, 0, 2, 1, 2, 12, + 5, 3, 8, 2, 6, 3, -4, -4, -2, -8, 8, -5, -2, -6, -10, -2, + -6, -4, 0, -4, 2, 5, 1, 0, -4, -4, -1, -1, -3, 4, -7, 4, + 3, -3, 4, -4, -3, 8, 4, 7, 0, 0, 2, -1, -2, -1, -2, -7, + 11, -1, 5, -4, 2, -2, 0, 2, -2, -4, -2, 1, -5, 3, -6, -9, + -3, -3, -2, -5, -5, -2, -6, -2, -7, -8, 1, 3, 5, 9, 4, 4, + 0, 5, 8, 1, 3, 7, 5, 10, 11, -7, 3, 0, -3, 1, -1, -7, + -7, -3, -2, -6, -9, -6, -12, -4, -1, 0, -8, -5, -3, -3, -2, 3, + 1, 1, 9, 4, 2, 5, -1, 2, 6, 2, 0, -3, 2, 2, 5, 2, + -1, -4, 4, 1, 1, 2, -5, -8, -1, -3, -1, -9, -4, 1, -4, 5, + -6, -4, 0, 3, -9, 3, -3, -5, 1, 4, 4, 1, -4, 1, -4, 4, + 1, -6, 0, 5, 7, 8, 1, 6, 0, 3, 4, 2, -3, 1, -3, -3, + 3, -9, -6, -7, -2, -1, -3, -5, -6, -5, -5, -6, -5, 4, -3, 5, + 5, -2, -1, -1, -3, 6, -2, 5, 6, 2, 11, 8, -1, 3, -6, -2, + 5, 4, -3, -3, -5, -3, -7, -5, 0, -5, 2, 1, 0, 1, -7, 0, + -3, -2, -1, -2, -5, 7, -4, -2, -3, -2, -3, 4, 4, 9, 0, 1, + 1, -5, -3, -4, -4, 4, 3, 6, 0, -2, -2, -6, 4, 1, 1, -3, + 3, -1, 2, 0, -7, 0, 0, -1, -3, -2, -1, -5, -2, -3, -8, -5, + -5, -1, 5, 5, 2, 2, -3, 4, 3, 3, 6, 3, -1, 10, -4, -3, + -2, -3, 0, -4, 0, -2, -2, 0, 1, -4, -2, -5, -9, 8, -2, -1, + -1, -3, -3, -2, -6, 2, 1, 2, 9, 0, 1, 3, -4, 2, 4, -6, + -1, 2, -1, 6, 3, 0, -5, -3, -1, 0, 3, -3, 0, -6, -2, -3, + -4, -2, 0, 3, 2, 2, 0, -10, 1, -6, -5, -1, -2, 5, 3, 6, + -2, -6, -1, -3, 2, -1, 0, 0, -1, 0, 0, 0, 1, -2, 2, -2, + -5, -1, -2, 16, 12, -18, -10, 3, -14, -10, 16, -1, -3, -16, 28, 3, + -1, -1, 12, -5, -6, 6, 7, -7, -18, -28, 11, 0, 6, -2, 26, -21, + -10, -1, 24, -3, 20, -19, 15, -14, -3, -3, 15, -35, -2, 6, -14, 30, + 6, -36, -8, 17, 0, -27, 26, 16, -38, 8, -14, 57, 3, -31, -14, 34, + -20, 33, 2, -6, -7, -28, 20, -24, 8, 13, 8, -39, 17, 40, -42, -11, + 13, -46, 1, 28, -22, 11, -3, -14, 5, 20, -12, -4, 49, -22, -24, 39, + -11, -1, -9, 37, -30, 13, 34, 4, -11, -25, 18, -22, 1, 29, -17, -3, + -26, -16, -21, 12, -18, 7, -17, -6, 51, 0, -21, 10, 24, -45, 8, 14, + 31, -10, -37, 6, 0, 24, 3, -18, -13, 14, 11, 0, 7, -1, -38, -29, + -21, 32, -30, 22, -26, 14, -40, 55, -36, 30, -12, 8, 31, -16, 19, -15, + 23, -48, 36, 1, 63, 3, 24, 0, -3, 14, 26, -21, 15, 47, -21, -80, + 14, -4, -25, -33, 11, 25, -35, -44, 13, -2, -48, -11, -23, -7, 27, -4, + -15, -22, 5, 26, -36, 50, 23, 11, -23, -14, 19, 32, 14, 38, -66, 56, + -11, 26, 18, -12, 17, -30, -6, -54, 22, 77, -62, -12, -16, 34, -25, 2, + 14, -62, 12, 20, -22, -50, 58, -29, -58, 4, 28, 30, 13, 25, -78, 38, + 45, -19, -7, 52, -61, 27, 17, -21, -4, 6, 37, -24, -38, 73, 8, -16, + 21, -2, -15, -19, -19, 18, 3, 7, -48, -10, -10, 10, 4, 13, -13, -4, + 0, 46, -12, 6, -18, -25, 4, 14, 27, -22, -37, 14, -6, -17, 55, 40, + -111, 63, 9, -38, -16, 46, -35, 4, 0, -10, -8, -12, 58, -69, 1, 66, + -38, 21, -33, -6, 10, 0, 10, -11, 18, -16, 32, -7, -10, -25, 65, -42, + 42, -62, 18, -3, -2, -8, 21, 4, -71, 13, 40, -3, 18, -19, -29, 15, + -66, 60, -50, -6, 67, -80, 17, 66, -21, -20, -15, 68, -16, 72, -4, -23, + 4, 53, -8, 8, -4, 0, 27, -26, -22, 25, -31, 7, -39, -18, 27, -43, + -25, -33, -6, 17, -16, 0, -55, 6, 26, -3, -67, 7, 60, -83, 25, 15, + 45, -8, 51, -55, 28, 42, 42, -17, 37, -6, 17, 8, 11, -1, 59, -7, + -45, 14, -41, 107, -49, -50, -25, 63, -58, -27, -57, 19, 13, -13, -27, 19, + -42, 63, -113, -1, 44, 8, 1, -10, -33, 0, 55, -41, 15, 0, 76, -17, + -39, 60, -20, 28, 54, -93, 15, 83, -30, 4, -56, 49, -58, 30, -28, 2, + 54, -64, 83, -128, 86, 24, -40, -27, -66, 51, 11, -51, 59, 6, 20, -58, + -24, 78, -7, -23, -27, 1, -3, -24, 10, -6, -16, 34, 39, -37, -17, 26, + 52, -69, -7, 11, 24, -62, 38, -13, 41, 5, -2, -5, -12, 15, 77, -49, + -10, 74, -12, -11, -38, 32, -24, 25, -6, 19, -24, -2, -38, 63, -91, 64, + -27, -11, -56, -43, 27, -41, -55, -15, 1, -4, 27, 8, 37, -57, 3, 28, + -11, -4, 46, -39, 3, 12, 100, -33, 39, 17, 6, 49, 5, 38, -12, 10, + 21, -35, 23, -6, -36, 10, -9, 3, -1, 13, -65, -40, 36, -25, -28, 5, + -37, -20, -14, 31, -16, -32, -16, 4, 15, -11, 26, -16, 29, -42, 46, 7, + 39, -1, -5, -9, 33, -31, 35, -33, -7, 17, 56, -24, 22, 14, -22, -34, + 44, 16, 11, -46, 43, -48, -27, 43, 36, -45, 21, 11, 0, -98, -22, 87, + -126, 52, -45, 34, -28, -17, -31, 23, -38, 23, 25, -11, 25, -63, 21, 13, + 19, 47, 28, -23, 20, 21, -5, -14, 112, -30, -67, 37, 43, -12, -57, 34, + -9, -29, 52, -19, 14, -51, 0, 26, -69, 3, -18, -24, -34, 31, -15, -33, + -36, 10, -20, -38, 63, 0, 44, -50, 72, 25, -16, -6, 6, 15, 23, 31, + 3, -20, -9, 19, 63, 17, -18, -5, -12, -87, 31, 26, -37, -29, 49, -42, + -15, 14, 11, -16, -31, 46, -19, -13, -37, 59, -91, 47, 4, -11, -26, 39, + -29, -24, 48, 10, 39, -11, 45, -51, -1, -24, 47, -19, 39, -34, -29, -17, + 1, 56, -25, -16, -13, 0, 48, -71, 49, 2, -2, -45, -10, 59, -17, -25, + 9, 9, 44, 42, -32, -23, -49, 46, -11, -50, 76, -43, -45, -1, 41, -8, + 2, 71, -36, -61, 35, 21, -13, -36, 44, -45, 26, -45, -21, 28, -37, 39, + -29, 15, 4, -5, 24, -7, 7, 3, 68, -80, 26, 24, -22, 8, 26, 28, + 10, -26, -3, 16, -51, 85, -8, -14, -54, 39, -28, -9, -25, 46, -39, -20, + 34, 11, -25, -7, -12, -41, 12, -17, -5, -43, -8, 0, 18, 13, 9, 28, + -40, 34, 0, 13, 40, -20, 5, 22, -25, -13, 51, 9, -34, 43, -16, -18, + 2, 35, -4, -28, 14, -37, 6, -8, 31, -49, 9, -31, 61, -55, 35, -46, + -37, -12, 32, 74, -59, -30, -21, 5, 38, 3, 48, -35, -42, 2, 29, 81, + -8, -37, 24, 42, -31, 18, -11, -21, -67, 98, -18, 11, -26, -14, -76, 11, + 71, -70, 30, -52, 37, -45, 61, 6, -33, -44, 58, 24, -16, -51, 49, -28, + 51, -6, -15, 46, 10, -24, 36, -4, 6, -30, 46, -66, 54, 27, -16, -34, + -23, 90, -61, -49, 22, -3, -22, 17, -35, -11, -59, 23, 2, -25, 69, -24, + -26, -28, 37, 12, 11, -63, 27, 18, 3, 34, -25, 9, -14, 29, 4, 24, + 21, -77, 12, 14, 37, 1, 45, -63, 1, 49, -14, -23, -7, -4, -42, 48, + -57, 18, -36, 17, 15, -37, 47, 1, -41, -14, 11, 49, -32, 32, -36, -19, + 21, -11, 39, -31, 43, 0, -24, 15, 6, 9, -46, 5, 21, -23, 2, -28, + -15, 59, -13, -29, 50, -7, -45, -12, 23, -1, 27, 6, -17, 7, -4, -3, + -3, 53, -10, 17, -52, 19, 24, -8, -7, 19, -51, -30, 55, -22, -22, 29, + -38, -25, 39, 3, 34, -84, 26, -37, 42, 15, 4, -4, -16, -33, 29, 17, + 43, -93, 24, -6, -20, -14, 107, -29, -36, 69, -21, 10, -7, 74, -67, 38, + -23, -8, 27, -35, -49, 29, -8, -4, 7, -8, 5, -38, -28, -33, 22, 70, + -37, -10, -56, 26, 5, 7, 59, -21, -58, 10, -2, 6, 49, -16, -9, -38, + 60, 13, 43, -43, 23, -14, -9, 38, 17, -38, -15, 29, 6, -5, -11, -3, + -4, -65, 45, -13, 26, -13, -4, -5, -38, 48, 0, 4, -40, 40, -48, 23, + 21, 23, -42, 5, -17, 13, -9, 12, -3, 5, -25, 34, -24, -3, -18, 16, + -44, 13, 27, -30, 44, -54, 6, -18, -3, 4, 21, -25, -13, 22, -20, -12, + 37, -10, -10, 5, 24, -17, 23, 9, 0, 4, 3, 12, 26, -27, 17, 9, + -41, 69, -1, 15, -37, 15, -6, 0, -1, 3, -13, -23, -18, 27, -5, 21, + -16, -41, -2, 20, 13, -27, 6, -21, 8, 6, 0, 6, -5, -21, -22, 73, + -40, 4, 6, 21, -8, -5, 29, -47, -1, 1, 19, 3, -10, -1, 2, -48, + -11, 45, -27, 11, -33, -21, 21, 7, 12, -22, 21, -40, 13, 27, -20, 37, + 5, -18, -18, 35, 40, -11, 20, -25, 10, -4, 33, 12, -29, 9, -20, -30, + 34, 24, -9, -10, -24, -16, 8, 22, 6, -58, -5, -13, 18, 5, -43, 10, + -16, -25, 13, 70, -25, -7, -25, -19, 16, 58, -46, -5, 6, -5, 40, -24, + 22, 50, -73, -7, 7, 32, 39, -27, -23, -23, 56, -35, 21, 17, -40, 40, + -52, 4, 0, 49, -29, -42, 24, 9, 31, 2, -46, 0, -9, -5, 9, -31, + 64, -5, -45, -26, 42, -4, -34, -8, -3, 32, -15, -8, 22, -24, 13, -31, + -2, 31, 10, -10, -18, 8, 24, 20, -29, 2, 14, 23, 25, -4, -19, 20, + -25, -5, -3, 23, -8, 52, -42, -17, -7, 29, -26, 2, -19, 55, -50, -28, + 1, -10, -7, 7, -41, 16, 21, 1, -20, 0, 16, -19, 14, -39, 86, -17, + -34, -64, 73, 0, 20, -28, 30, -22, 9, 58, -4, -8, -18, -20, 31, -21, + 1, 26, -49, 5, 41, -25, -13, -6, -7, 6, 10, 42, -30, -26, -43, 11, + 44, -54, 31, -10, -11, -17, 25, 32, -43, 64, -23, 3, -37, 33, -30, -4, + -35, 47, -29, 9, 23, -34, -5, 64, -37, 32, -11, -44, 21, 25, -19, 8, + 6, -25, 34, 2, -18, -23, 38, 20, 7, 21, 1, -32, -37, 50, -9, -25, + 34, -61, 55, -32, 7, -48, 20, 13, 0, -35, 17, 9, -42, -28, 14, 42, + -33, -25, -5, 21, 41, -60, 32, -7, 38, -9, -3, 20, -4, 29, -69, 62, + -16, 35, -64, 45, 10, 5, -1, -18, -18, -1, 5, 32, 0, -21, -12, -23, + 29, -15, 13, -39, -3, -3, 6, 35, -24, -23, -7, -2, 44, -10, -37, 25, + 25, -25, -23, 7, 40, 4, -40, -18, 21, -2, -3, 1, -16, 45, -26, -2, + -16, 18, 41, -64, 8, -26, 40, 5, -32, 8, 18, -1, 15, -1, 9, 2, + 2, -13, -12, 35, -9, 13, -62, -29, 72, 18, 7, -30, 26, -7, -29, 39, + -38, 31, -56, -25, -3, 17, 2, -3, -46, 35, 6, 27, -39, -3, 3, 31, + -25, -19, -2, 38, 26, -77, 22, 18, 40, 3, -22, 65, -48, 33, -16, -37, + 78, -34, 1, -52, 23, 16, 1, -37, 17, 12, 1, -4, 8, -27, -1, -11, + -18, 27, -23, -10, -11, -19, -6, -7, 51, -74, 16, 20, 17, -14, 7, 7, + -13, -8, -5, -11, 39, 21, -5, -44, 31, 64, -38, -18, 20, 40, -4, -10, + 10, -23, 23, -6, -20, 11, 9, 10, 6, -23, -11, 1, 17, -56, 56, -40, + 0, -17, -60, 84, -80, 16, -13, 4, -25, 12, 17, -42, -26, 54, -29, 12, + -5, 37, 16, -62, 94, -5, -2, -2, -2, -9, 5, 51, -25, -5, -11, 5, + 16, -14, -9, 43, -44, -8, 27, 2, -1, 9, -18, -6, 5, 23, -46, -9, + 13, 16, -10, -10, -23, 59, -47, -14, 23, 29, -15, -14, -30, 21, -21, 0, + 14, -3, 25, -16, -35, -2, -8, 32, -19, 22, -23, -37, 30, -33, -19, 11, + 12, -32, 47, -4, 27, 11, 9, -35, 39, 29, -18, -2, -11, 27, -2, 13, + 0, 18, -26, 15, -25, 26, -4, 21, -29, -33, 18, -8, -31, -5, 21, -1, + -38, -28, 41, -18, -4, -22, 47, -12, -44, 55, -79, -5, 19, -10, 25, 4, + 21, 15, -28, 13, -6, 45, -24, 25, 10, -26, 4, 2, 31, 3, -7, 3, + 5, -23, 51, -9, -32, -5, 35, -32, -21, -20, 35, -40, -10, 20, -8, 7, + -5, -38, -1, -24, 39, -26, 20, -16, -9, -27, 25, 34, -32, 1, 12, -13, + 3, 37, 13, 3, -31, 27, 30, 5, -15, -21, 2, 10, -13, 16, 36, -9, + -59, 41, -10, 61, -60, -35, -11, 7, 5, -28, 30, 5, -23, -66, 34, 50, + -26, -19, -10, 11, 8, 8, -35, -5, -11, 56, -24, 10, 35, 16, -10, -19, + 30, 4, -11, 23, 0, -6, 6, 36, -15, 0, 15, -14, -26, -8, -5, 15, + -31, -45, 42, -30, 0, -9, 6, -22, 9, -22, 7, -8, 15, -19, -3, -13, + 29, -14, 9, -16, 3, -5, -10, 63, 0, 4, 4, 20, 16, -21, 18, 31, + -24, -19, 31, 54, -39, -7, -16, 5, -3, 0, -29, 16, 6, -29, -25, -52, + 49, -9, -66, -3, 50, -3, -2, -14, 4, -8, 33, -40, 2, 15, -6, -17, + -4, 10, 48, -16, 14, -9, 27, 10, 2, 2, 40, -35, 5, -10, 7, 28, + 1, 4, -30, -4, 0, 1, -14, -13, -11, 26, -17, 13, -44, -9, -6, -23, + 17, 11, 11, -21, -11, 0, 9, 8, 8, -30, 29, 10, -26, -12, 15, 17, + 4, -26, 14, 19, 20, -9, -24, 39, 23, -10, -35, 8, -6, 18, -25, 15, + -17, 41, -48, -31, -5, 47, -14, -20, -4, -7, 5, -19, 3, 21, 12, -23, + 15, -24, 8, 3, -25, 2, 28, 14, 21, 25, -72, 15, 26, -6, 45, -27, + 29, -30, -17, 23, 6, -2, 27, -46, 13, 9, 15, -57, 27, 1, -18, 1, + -11, -2, -20, -16, -23, 24, 18, -21, -5, -15, -14, 26, -12, 30, -48, 37, + -24, -3, 23, 9, -5, 9, 8, -43, 23, 26, 6, 28, -29, 30, -8, -12, + 25, -18, 33, -48, -4, 29, 1, -8, -4, -20, 41, -22, 1, 12, -33, 0, + -17, -16, 29, -3, -2, -36, 6, -1, -11, 4, -24, 40, -24, -5, 26, -2, + -28, 13, -11, 35, -9, -2, -3, -6, 13, 10, 1, 11, -22, 22, -27, -5, + 20, 11, -1, 8, -23, 8, 7, -7, 17, -6, 16, -9, -10, 3, 13, -3, + -17, 19, -21, 6, -13, -15, -7, 22, -15, -7, 11, -20, -19, -6, 0, 28, + -10, -7, -13, 9, 7, 1, -11, -6, 21, -33, -4, 52, -11, -1, -2, -2, + -4, 32, 17, -31, 7, 12, 2, -5, 11, -1, -6, 1, 3, -11, 5, 4, + -15, -8, 10, 5, -18, 5, -26, -11, 22, -15, -23, 22, 19, -30, 3, 1, + -5, 10, -17, 10, -2, 10, 7, -17, -5, 36, -12, -24, 27, 22, -3, -11, + -6, -7, 20, 5, -21, 0, 23, -31, -27, 14, 2, 8, 7, -15, 0, 13, + -7, -3, -21, 33, -4, -26, 7, 5, -7, -7, 1, 3, 4, 11, -24, 6, + 11, -7, 14, -9, -11, -1, 34, -22, 11, 1, -18, 17, 4, -19, 28, -15, + -7, -11, 12, 1, -7, -9, -12, 17, -20, 6, 5, 2, -10, 12, -23, -3, + 26, -1, 4, 6, -25, 12, -3, -26, 2, 15, 14, -18, -6, -17, 14, 4, + -10, 21, -13, 5, -15, -20, 27, 6, 8, -11, 18, 15, -34, 17, -2, -13, + 41, -9, -10, -6, -2, 7, -11, -4, 28, -26, -6, 25, 17, -36, -2, 33, + -39, -15, 11, -2, 26, -32, -31, 21, 26, -11, -24, 12, -17, 4, -33, 24, + 14, -10, 12, -19, -3, 28, 11, -8, 0, 26, -17, -7, 8, -6, 20, 26, + -29, -27, 25, -14, -2, 10, -16, 39, -24, -17, -4, -13, 24, -10, -3, -20, + 25, -1, -24, 24, -20, -5, 21, -26, 7, 21, -26, 15, 17, 6, -34, 5, + 11, -27, 20, 17, -13, -8, -16, 9, 33, -36, 19, 5, 4, -2, -33, -12, + 38, -17, -10, -4, 19, 14, -4, -32, -41, 64, 5, -38, 28, 6, -2, -11, + -22, 11, 17, 17, -24, 23, -7, 9, 10, -38, 0, 25, -9, -6, -27, 20, + 2, -27, 34, -23, 17, -22, 4, 12, -43, 29, -8, 25, -19, 13, -17, -11, + 27, -8, 14, -19, 12, 9, -22, -6, 11, -10, 17, -4, 2, -3, 15, -47, + 32, -18, 11, 14, 0, 8, -33, -14, -12, 23, 17, -12, -4, 13, -27, 10, + -17, 20, -2, -11, -11, 27, 18, -21, -6, 26, -18, 9, -7, 27, -12, 3, + -9, -9, 22, 7, -38, -2, 14, -16, 12, -21, -10, 22, 1, -28, 20, 31, + -11, -49, 9, 16, -4, -7, -4, -5, 46, -39, 9, -18, 16, 22, -24, -13, + 14, 29, -10, 3, -23, 4, 11, -33, 30, 18, -9, 5, -11, 4, -20, 30, + -9, -14, -7, -9, 4, 0, 4, -15, -11, 23, 5, -24, 26, -6, -8, -17, + 21, 0, 3, 13, -10, -13, 19, -16, -10, -5, 10, 8, 22, -19, 4, -8, + 0, -24, 38, 12, -33, 10, -9, 5, -13, 11, 3, 7, -18, -12, 11, -4, + 8, -17, -7, 16, -9, -2, -9, 0, 10, -2, -1, -1, 12, -6, 13, -18, + 18, -6, 10, 1, -3, 9, -2, -30, 23, -9, 29, -11, -31, 10, 6, -21, + -19, 54, -30, 18, -12, -26, 23, -10, -31, 23, -5, 49, -34, 4, -18, 3, + 11, -24, 27, 12, -24, 3, -13, 3, 16, -6, -7, 1, 19, -8, -3, -11, + 13, -14, 19, 10, 17, -21, 14, -40, 12, 13, -5, -3, 21, -14, -29, 16, + -24, 1, 10, -1, -3, 6, -15, -16, 16, -4, 2, 23, -32, -1, 7, -5, + 13, 4, -15, 33, 1, -7, -7, -12, 13, 6, -8, 2, 21, 2, -21, 17, + -14, -19, 36, -2, -16, -4, 3, 9, 15, -39, 3, 9, -10, -3, -12, -7, + 28, -19, 8, -18, 22, -18, -11, -2, 17, 23, -15, -24, 11, 13, -14, -10, + 9, 4, 14, -10, -13, 13, -3, -12, 25, 6, -12, 12, -19, -3, 19, -10, + -13, 19, 10, 18, -31, -15, 19, -9, -14, -6, 25, -18, 2, 17, -41, 11, + 16, -20, 3, -10, 16, 9, 14, -27, -1, -3, 9, -19, 36, -6, -4, -4, + -16, 5, -7, 24, -1, -30, 13, -8, -4, -9, 47, -37, 3, 21, -24, 1, + 3, 11, 5, -10, -8, 20, -31, 16, 10, -1, 0, -9, -1, -6, 14, -6, + 6, -17, 20, 3, -23, 10, -14, 17, -16, -2, 26, 7, -20, -10, 9, -18, + 31, -35, 3, 14, -8, 13, -27, -4, -4, 26, -20, -9, 14, 22, -27, -4, + 18, 9, 9, 3, -13, -20, 15, -13, 6, 12, -5, -6, -12, 0, 4, -10, + 18, -7, -8, -15, 1, -11, 17, 5, -11, 14, -6, -11, 4, 10, -5, 13, + 0, -7, 15, -2, -16, 2, -3, 9, -6, 2, 34, -11, -17, -8, 21, 13, + -21, -4, 14, -7, -7, -19, 13, -7, 4, -25, 7, 16, -14, -40, -11, 36, + 3, -10, 4, -10, 7, -1, -1, 4, 14, 6, -14, -14, 17, 23, -13, -2, + -1, -12, 9, 8, 1, -7, 22, -29, 7, 7, 0, -24, 13, -10, 18, -1, + -3, 13, -24, 30, -32, -5, 18, -2, -6, -8, 11, -18, -12, 17, -11, 0, + 5, -4, -14, 31, -15, -16, 13, 12, -4, 4, -4, -1, -11, -15, 26, -18, + 29, -15, -3, -8, 6, 6, -34, 22, 0, 11, -18, 16, 20, -19, -21, -5, + 11, 21, 10, 10, -27, -5, 3, 2, -5, 9, -9, -1, 1, -11, -3, 8, + 4, 1, -1, -11, 19, -1, -21, -5, -2, 11, -2, -8, 10, -7, -1, 2, + -18, 3, 0, 7, 2, 7, 1, 1, -28, -14, 10, 19, 12, -21, 7, -19, + 20, -2, -3, -1, 17, -11, -13, -16, 32, 4, -5, -3, 4, -4, 18, -2, + -17, -6, 16, -3, 4, -12, 4, -2, 2, 6, -18, 20, -24, 17, -10, 19, + -16, -17, 8, -7, -5, 16, -12, -18, 11, 9, 2, -8, 17, -9, -3, -13, + 7, -6, 30, -15, -11, 5, 14, -2, -15, -5, 14, 13, -12, -24, -10, 22, + -2, -8, -1, 21, -5, -19, -16, 8, 42, -6, -27, -12, 23, 10, -17, -14, + 16, 14, -16, -2, 9, -2, 16, -9, -31, 22, 0, -2, 3, 4, -5, 20, + -24, -5, 13, -1, -5, -10, -6, 8, -11, 2, 8, -8, -5, -9, 1, -6, + 16, -1, -18, 4, 9, -3, 6, -4, 6, 9, -7, -9, -1, 10, -7, 4, + 3, -3, 4, -8, -5, 3, -4, 10, 6, -15, 2, 3, -5, -2, -3, -12, + 18, 2, -16, 7, 13, 0, -19, -8, 11, -6, -1, -9, 5, 13, -8, -6, + 6, 7, 11, -11, -6, 13, -2, -5, -1, 9, -2, -7, -15, 10, 5, -1, + -13, 8, 0, -6, -2, -2, 18, -16, -7, 2, 3, -4, 6, -11, 4, 6, + 1, -5, 22, -11, -5, -6, -3, 11, -1, -1, 4, 1, -4, -13, -4, 11, + -9, 1, 9, -1, -8, 1, -5, -7, 5, -14, 18, -1, -12, 11, -12, 16, + -5, -11, 11, -2, 15, -7, -18, -10, 0, 18, -12, 8, 3, 6, -16, -3, + 3, 6, 0, -1, -3, 4, 9, 3, -17, -7, 11, 11, -19, 5, 15, -12, + -3, -12, 4, 11, -19, 0, 0, -14, 21, -15, 2, 8, 3, 8, -8, 5, + -18, 9, -2, -8, 23, -5, -16, 5, 3, -20, 13, 11, -6, -15, 5, 4, + -12, 2, 10, -5, -12, 5, -14, -2, 18, 11, -14, 0, 28, -10, -20, 4, + 7, 9, -13, -6, 15, 11, -9, -6, 14, -8, 10, 4, -12, 11, -18, 13, + -17, -9, 16, -4, -14, -7, 17, -24, -5, 4, 6, -6, 14, 2, -24, -22, + 11, 13, 8, -16, 6, 13, -28, 10, -2, 11, 8, -1, -8, -14, 22, 3, + -5, -13, 18, 7, -26, 15, 20, -6, -10, 4, 11, 5, -8, -3, -5, 0, + -1, -6, 0, 4, 4, -14, -1, 1, 8, -14, -10, -4, 6, 4, -8, 3, + -9, 0, 11, -4, -7, 5, 4, 6, -29, 18, 22, -19, -16, -11, 17, 7, + -4, 3, -23, 20, 8, -19, 3, 13, 13, -16, -18, 15, -6, 0, 3, 17, + -7, -4, 2, -22, 21, -1, -2, -1, -15, 13, 3, -7, 4, 0, -7, 8, + -7, 11, 3, -2, -8, 10, -15, 0, 9, -14, -8, 8, -2, -9, 10, -13, + 9, 7, -6, 2, -12, -4, 6, -12, 8, 12, 3, -10, 6, 7, 1, -2, + -11, -1, 7, -7, 8, -13, -10, 11, -9, -10, -8, 20, 9, -11, 8, -5, + -4, 6, -3, 5, 13, -13, -7, -7, 6, 19, 0, -9, 9, -1, -3, 4, + -7, 0, -2, -4, -5, 5, 0, -5, 14, -19, -14, 18, -1, -5, 3, -12, + 18, -19, 4, -15, -10, 10, 10, -17, -4, 19, -6, -2, 5, 11, -4, -3, + 9, -22, 28, -6, -5, 0, -1, 11, -11, -13, 22, 3, -8, -9, 1, 3, + 0, 1, 2, 7, -5, -25, 10, 6, 6, 2, -11, 8, -16, 15, -20, 5, + 9, -6, -13, -5, 14, 6, -21, 22, -7, -14, 4, 26, -8, -13, 8, 1, + -10, -13, 11, 10, -10, 2, -13, -9, 15, 0, 10, -30, 14, 7, -13, -5, + -12, 8, 10, -4, 10, 12, -15, -7, 5, 2, 2, 10, -13, -3, 0, 21, + -2, -16, 9, 3, -1, 6, 15, -3, -21, 10, -8, 5, 1, 1, 2, -19, + 10, -7, -3, -1, 8, 6, -26, -10, 18, -28, -3, -3, 4, 0, -7, 6, + -10, -2, 25, -19, 5, -11, -2, 14, 4, -5, -3, 4, -5, 6, -2, -3, + 11, -1, 13, -12, 5, 20, -15, -3, 17, 4, -14, -5, 11, 3, 1, 6, + 11, -20, 10, -4, -4, -4, -4, -18, -7, 5, 10, -25, 7, -9, -15, 1, + -4, 4, 4, -4, -1, -18, 9, -6, 4, 7, -19, 10, 0, 3, -6, 12, + 18, -5, 2, 4, -4, 11, 2, 5, 2, 1, 3, -4, 3, 4, -3, -2, + -8, 11, 5, -10, -12, 12, -6, 6, -9, -6, 4, 9, 0, -9, 4, 3, + -7, -5, -12, 19, 2, -28, 1, 0, 9, -10, -6, 3, 3, -11, -4, 6, + 7, -7, -3, 5, -12, 9, 10, -12, 7, 5, 5, -6, -9, 16, 6, -16, + 3, 8, -17, 12, -5, 2, 1, 21, -25, -10, 5, -2, 15, -6, 1, 3, + 5, -16, -2, -16, 32, -17, 7, -13, 6, -1, -4, 0, -4, 10, -2, -17, + -7, 29, 0, -13, -1, -1, 2, 12, -4, 3, -2, 4, -19, -1, 18, 2, + -3, -15, -2, 10, -4, 1, -2, -5, 20, -5, -6, -7, 9, 0, -2, -24, + 5, 15, -2, -11, 1, 0, -2, -14, -2, -4, 7, 4, -4, -9, 2, 4, + -8, 8, -1, 2, 10, -13, 4, 10, -4, 27, -22, 17, -18, -2, 5, 8, + -1, 4, -6, 2, -1, 9, 1, -3, 16, -21, -18, 2, 10, -14, 9, 3, + -14, -9, 0, -16, 9, -10, 11, -12, -3, 1, -10, 3, -2, 2, -13, 13, + 10, -1, 4, 4, 1, -3, 9, 0, 4, 8, -14, 10, -4, 0, 8, 11, + -2, 2, -11, 3, -13, -8, 11, 4, 1, -7, 4, -21, 0, 1, -4, -22, + 17, -8, -16, 10, 4, -2, 0, -4, 2, -2, 2, -6, 10, 3, 3, 5, + -1, 6, 5, 2, -6, -3, -2, 7, -4, -4, 12, 1, -30, 12, -7, 3, + 4, -6, -7, -9, 9, -1, 7, -10, 12, -16, 2, -8, 23, -5, -5, -1, + -8, 10, 3, -14, -12, 25, 7, -13, -6, 4, 15, -3, -23, 9, 12, -9, + -13, 18, -9, 5, 1, -17, -4, 13, -10, 11, -10, -1, 6, 0, -7, -2, + 9, -4, 9, -24, 7, 6, -5, 4, 15, -15, 11, -5, -24, 9, 11, -16, + 2, 0, -9, -2, 10, 7, -12, 8, -12, -6, 10, 6, 10, -14, -5, 20, + -16, 7, 8, -1, -19, 24, 2, -10, 15, 6, -6, -21, 3, -3, 15, -9, + -3, 3, -2, -4, -3, -9, 5, 0, -5, -3, -15, -4, -1, 1, -14, 33, + -12, -18, 9, -2, -10, 9, 9, -1, -1, -5, 10, -3, 2, 4, 2, -9, + -1, 25, -2, -3, 15, -17, -7, 8, -7, 0, 10, -13, 9, -11, 0, -3, + 18, -15, -11, 5, 0, -12, -2, 7, -6, -4, -9, 11, -6, 8, 1, -14, + 3, 16, -10, -3, 2, 6, 4, 9, -9, -2, 0, 2, -3, 15, 3, -10, + -4, -8, -1, 10, -13, -9, 16, -9, -3, -2, 5, -6, -6, -9, 10, 8, + -4, 14, -7, -19, 12, 1, 2, 1, 4, -1, -6, -3, -3, 5, 7, -2, + 0, 0, -5, 0, -6, 1, 6, -5, -4, 5, -6, 5, -4, -8, 15, -5, + -7, 0, 3, -8, 0, 3, -8, -4, 6, -4, -4, 15, -5, -8, -7, 4, + 7, -10, -6, 15, -4, -13, 7, 2, 2, 1, -4, 5, 0, 0, 1, 4, + -7, 4, 4, -2, 4, 5, 1, -18, 12, 4, -3, -6, 11, 0, -13, -1, + 1, -12, 3, 13, -9, -15, 7, 0, -4, -8, 0, 5, 0, -9, 1, 1, + -3, 0, 3, 5, -10, 6, -1, -4, 4, 15, -15, -5, -9, 18, -2, 0, + 15, -11, -9, 0, 6, -2, 8, 1, -8, -9, 7, 3, -7, -3, 6, 1, + -5, 0, -5, -5, 0, -3, 11, 1, -3, -8, -4, -4, 5, 9, -6, -7, + 4, 15, -13, 5, -4, 2, -6, -2, 0, 5, 4, -4, 0, -6, 8, 3, + -2, -4, -4, -11, 4, 10, -1, -4, -2, -1, -3, 1, -4, -2, 3, 1, + -4, -11, 12, -4, 5, -2, 7, -12, -2, 4, -4, 5, 8, 1, -8, 14, + -11, -1, 1, 4, 0, 5, -5, 2, -7, -7, 10, 3, 1, -13, 0, -4, + 5, -9, -1, 1, -11, -5, 5, 2, -6, 5, -5, -8, 12, -2, 7, -1, + -10, -5, -7, 14, 9, 3, -5, -2, 5, 4, -2, 0, -5, 2, 3, 3, + -12, 6, 3, 2, -9, -1, 24, -13, -9, -1, -2, 0, 7, -6, -17, 14, + -12, -5, 10, 1, -4, -1, -1, 1, -3, 2, -2, -11, 1, -1, -1, 1, + 10, -3, 2, 1, 5, -7, 1, -1, -5, 7, 1, 7, -4, 5, -11, -8, + -8, 7, 8, 6, 0, -15, -1, 7, 0, -6, -3, 7, -4, -3, -2, 1, + 5, 8, -6, -4, 11, 3, -14, -6, -3, -6, 9, -5, 4, -5, 2, 3, + -13, -3, 1, -4, -3, 11, -1, 0, 7, -16, -6, 11, 5, 0, 4, 5, + -2, -3, -2, 8, 7, -16, 1, 2, 6, 3, -17, 11, -2, -2, -9, 6, + 0, -7, 6, -22, -2, 14, 3, -11, 0, -6, -2, -7, -7, 1, 4, 14, + -1, -6, 0, 7, 3, -14, 4, 15, -4, -9, -2, 12, 14, -10, 5, 9, + -11, -2, -9, 2, -9, 11, 2, -21, 7, 6, -11, -1, 0, 0, 1, -9, + 4, 0, -10, 1, 3, -3, -7, 12, -9, -2, 4, 6, 3, -8, 0, 1, + -2, -14, 12, 11, -5, 10, -3, -1, 3, -6, 1, 0, -3, 8, -1, -18, + 12, 5, -13, -4, 17, -1, -6, 1, -11, 0, -6, 2, -2, -2, 5, 3, + -17, 2, -5, 11, -4, 8, 8, -19, -6, 14, -6, -6, 0, 5, 0, -8, + 7, 13, -6, -5, 6, -2, -9, -1, 8, 3, -4, -4, 10, -10, -9, 7, + 2, -6, 14, 0, -15, 3, 5, -4, -10, 8, 0, -6, -11, 3, 10, -9, + 1, 8, -7, 2, -1, -6, -8, 6, 2, -8, -2, 16, -3, -3, -1, 5, + -3, -8, 6, 9, -6, 1, -1, -1, 2, -6, 6, -1, -9, 3, 9, -10, + 1, 5, -4, -14, 2, 1, 7, -5, 3, -2, -13, 5, 10, -9, -8, 14, + -6, -19, -3, 19, -3, -3, 6, -4, -10, 3, -1, -4, 5, 5, 1, 0, + -1, 11, 4, -10, 3, -5, 4, -7, 1, 8, -3, 1, 2, 0, -10, 2, + 5, -15, -3, 8, -8, -6, 5, -2, -5, -5, 11, 0, -12, -7, 5, 2, + -5, 2, -1, -4, 2, 7, -12, 5, 6, -3, 5, -1, 12, 7, -13, -3, + 0, 3, 0, 13, -1, -4, 0, -9, 5, -6, 5, -2, -10, -6, -2, 9, + -8, 5, -6, -10, 5, 4, -6, -2, 1, 1, 6, -14, 10, -3, -4, -5, + 1, 8, -16, 7, 7, -1, 0, 3, -5, 2, -1, -3, 11, -11, 9, 8, + -18, 3, 8, 13, -4, -5, -9, 4, -2, -4, 9, 5, -6, -5, -15, -3, + 17, -6, 2, -8, 4, 4, -4, -12, -3, -2, -2, -4, 5, -4, 1, 7, + -12, -6, 8, 6, -2, 1, -3, 3, 10, -3, 7, -11, 12, 4, -1, -1, + 1, 0, -11, 11, 4, 0, -2, -9, -2, -2, -8, -1, 5, -4, -5, -5, + 1, 10, -8, -11, -5, -4, 5, -1, 1, 6, -2, -5, -5, 3, 6, -2, + 6, -3, 0, 4, 5, 2, 4, -2, 1, 5, -2, -6, 11, -1, -5, 8, + -14, 6, -2, -6, -11, 4, 2, -14, 6, -9, 5, -4, -3, 4, -12, -2, + 2, -5, 4, 7, -5, 3, 6, -1, -3, -6, 0, 7, 0, 1, 6, 9, + 4, -2, -7, -4, 7, 4, 4, -5, -5, 0, 3, -6, -1, 7, -2, -18, + -1, 3, -15, 5, -2, -2, 0, 4, -10, -4, 3, 4, -10, 4, -1, 5, + 4, -7, 8, -7, 0, 3, 2, -7, 13, 0, -2, -6, -6, 5, 10, -10, + 4, -1, 2, -1, -5, 7, 5, -3, -7, 1, -5, 10, 1, -11, 7, 6, + -10, -15, 12, 2, -4, 1, 0, -5, 3, 0, -2, 6, -5, -4, -13, -2, + 3, 1, 4, 3, 3, -10, -7, -7, 11, -2, 2, 2, -7, 4, -1, 6, + 2, 0, 8, 3, 0, -7, 8, 3, 5, -8, -3, -2, 2, 3, -12, -4, + -3, 12, -12, -4, 7, -3, -10, -10, -4, 6, -2, -8, 9, 1, 1, 1, + -3, -6, 12, -5, -6, -1, 11, -7, 5, 6, 2, 9, -11, 6, -2, 8, + 1, -6, 4, 3, -6, -3, 5, -4, 4, 1, -19, -1, 3, 4, 0, 0, + -10, -1, -3, -5, -3, 0, 11, -1, -12, -2, 6, 0, -3, 3, 4, -1, + -7, 1, -2, -1, 2, -1, 0, 2, -2, 4, -5, -4, 11, -4, -5, -3, + 7, 5, -8, 3, 6, -9, 0, 9, -5, -2, 5, -4, -6, 0, 7, -1, + -2, 0, -1, -6, -9, -6, -1, 8, 4, -1, -9, -5, 13, 2, -11, -5, + 9, 0, -8, -1, 5, -2, -5, -3, -2, 7, 5, -4, -13, 3, 11, -8, + 3, 0, 2, 5, -12, -6, 6, 3, -4, -1, 8, 1, -5, -7, -6, 2, + 8, 5, -2, -9, 7, -6, -2, 13, -7, 2, 1, -1, -5, 3, 7, -1, + -11, 9, -6, -4, -2, -5, -1, 2, -1, 3, 8, -7, -1, -9, 0, 0, + -1, 2, 5, -2, 1, -2, -3, 6, 6, -3, -6, -5, 4, -1, 1, 5, + 1, -1, -2, -3, -4, 4, 3, 1, -7, 5, -1, 0, -8, -6, 1, 7, + -3, -6, -2, 3, -1, -3, 2, 2, 0, -9, 1, -2, 4, 4, -5, 1, + -1, 1, 6, -2, 2, -5, -4, -1, 14, -3, 2, -9, 1, -2, -4, 1, + -1, 7, -9, 5, 2, -3, 2, -2, -9, -2, 4, -1, 2, -2, -2, 0, + -1, -1, -2, 3, 1, -1, -3, -6, 3, 7, -5, -3, 9, -5, -4, -5, + 8, -4, 2, 2, 8, -10, -1, 8, -14, 0, 6, -7, -1, 2, -3, 2, + -4, 5, 2, -5, -4, 5, 1, -6, 3, 6, -4, -1, -3, 3, -7, 0, + 1, 0, -4, 7, 6, -13, -3, 3, 2, -15, 8, 3, -3, -6, 9, -4, + -1, 9, 1, -6, -6, 7, 1, 1, -2, 6, -1, -4, -1, -1, -7, 5, + 3, 0, -5, -2, 8, -2, -8, 6, 7, -16, -5, 6, -6, -1, 1, 7, + -4, -3, -6, 3, -10, -3, 8, -9, -1, 5, -1, -7, 5, 2, -1, 1, + 5, 1, 2, -4, -5, 1, 1, 3, 1, -5, -2, 3, 2, -7, -1, 7, + 5, -5, -7, 5, 0, 3, -1, -4, -4, 4, 0, -4, 1, 6, -3, -7, + 0, -3, -3, -1, 0, -2, -4, 2, 1, -2, 3, -1, 0, -1, -6, 9, + -5, 4, -1, -1, 4, -2, 5, -8, 2, -3, -2, 2, -3, 10, 2, -3, + -5, 2, -4, -1, -3, -7, 9, 1, 0, 0, -5, 1, -2, -12, 6, 8, + -18, 4, -1, 4, -1, 5, -5, -3, 3, -1, 4, -5, 9, -5, -4, -5, + 2, 5, -1, -4, 0, -3, -2, 8, -5, 2, 1, -13, 3, 1, 4, 5, + -8, 2, 8, 1, -1, 1, -9, 1, -2, -4, 1, 4, -3, 4, -4, -5, + 6, 5, -6, -3, -3, 1, 1, -7, 1, 2, 1, -5, -4, -2, 2, -6, + 6, 3, 7, -10, -9, 4, 1, -5, 6, 9, 3, 1, -2, -4, 3, 4, + -1, -6, 3, 1, -2, -9, 4, 4, -5, 4, -10, 2, -4, -5, -1, 1, + 2, 0, 2, -8, 1, 3, -4, -13, 0, 10, -1, -4, 5, 0, -4, 5, + -3, 2, -5, 2, 1, 2, 4, 2, 2, -10, 5, 3, -11, -2, 3, 3, + 0, -6, -2, 1, 1, 2, -1, -8, -1, -5, -4, -3, 5, 8, -4, -4, + 2, 0, -2, -2, 1, -5, 0, 13, -8, -6, 4, 8, -6, -1, 6, -2, + 4, -5, 3, 5, -7, -8, -2, -3, 7, 8, -8, -3, 1, 5, -5, -5, + 9, -4, -7, -5, 4, 3, -6, 5, 1, -1, 3, 0, -6, -9, 0, -6, + 1, 4, 10, 5, -13, 0, 6, -2, -4, 2, -2, 6, -1, -4, 0, -11, + 6, 3, -1, -3, 14, -1, -15, 1, 2, 3, -1, 4, -3, -6, 0, 3, + 0, -6, 10, -3, -14, -2, 10, -3, -9, -4, 0, 6, -1, 7, -3, -5, + -6, 1, 0, -5, 11, -2, 1, -2, 5, -1, -4, -1, -3, -4, 2, 11, + 2, -4, 1, 2, -12, 7, 3, -1, -11, 3, 15, -8, -11, 0, 0, 2, + -7, 1, -3, -4, -3, -5, -4, 6, 11, -7, -8, -1, 6, -5, -3, 6, + 8, 3, -6, 1, -1, -1, -1, -5, -3, 8, 7, 4, -9, 1, -2, -4, + -6, 9, -4, 3, -8, 0, 6, -2, -4, -2, -2, -6, 8, -7, 3, 1, + 3, -1, -3, 2, 1, -6, -9, 3, -5, 8, 5, -10, 7, 5, -3, -2, + -1, -3, -1, -4, -7, 6, 6, 3, -7, 0, 0, 1, 0, -7, 3, -1, + 0, 1, 2, 2, 2, -11, -8, 9, 6, 2, -6, -1, 1, -3, 3, 1, + -6, 2, -3, -2, -1, 2, -4, 0, -4, -2, 0, -3, -2, -6, 5, 2, + 0, -1, -3, -1, 3, 1, -2, 0, 2, 2, 0, 1, 7, 1, -4, -2, + -6, 4, 3, -1, -4, -1, 3, 3, -9, -2, 0, -2, -1, -5, 6, 1, + -5, 1, -5, 9, -10, -4, 0, -4, 6, 1, -3, -5, 9, -2, -5, 2, + 0, 6, -6, 2, 5, 10, -8, -3, -2, -1, 4, -3, -1, -4, 0, -1, + 1, -4, 0, 5, -8, -1, -5, -1, -1, 3, 3, 3, 2, -14, -5, 1, + 2, 3, 1, -1, 2, 5, -2, 2, -5, 2, 3, -2, -2, -3, 4, 4, + 4, -6, 3, 1, -10, 1, -6, 6, -2, -3, 0, -3, 1, -3, 1, -1, + -4, -5, -4, 7, -2, -2, -3, 6, -5, -5, 2, -6, 1, 4, 3, -8, + 11, 4, -4, -1, 2, 3, -5, -2, 1, 7, -4, 2, 4, -10, 7, -7, + -1, 0, -3, 5, -4, -1, -4, 5, -7, 3, 3, -11, -2, -1, 5, 1, + -1, 0, 6, -11, 0, 1, -2, 1, 0, -1, -4, 2, 9, -2, -9, -4, + 2, 0, 2, -1, 1, 1, -7, 5, -3, 4, -1, -3, -8, 5, 7, -1, + -1, -3, 3, -7, 0, 4, -3, -3, 1, 6, 0, -1, 0, -5, -1, 0, + -4, 0, 0, -3, 1, -4, 1, 7, -3, -13, -2, -2, -1, 3, 5, 2, + -6, 1, 6, -2, -6, 8, -1, -6, 0, 4, 6, -2, 0, -2, -4, 3, + 5, -4, -7, 2, 5, -3, -3, 3, 1, -10, -7, 3, 1, -3, 2, 4, + -7, -3, 0, 2, -5, -3, 3, -2, 0, 3, 5, -6, -1, 4, -2, 0, + 5, 1, -2, -2, 3, 2, -1, -3, -3, -7, 7, 3, -1, -2, 0, 0, + 1, -2, 1, 0, -15, -1, 3, 2, -3, 4, 0, -7, 0, -1, -1, -4, + -3, 2, -1, -1, 11, -3, -1, -5, -1, 2, 2, 0, 1, 2, 3, 4, + -6, -3, -2, 1, 0, -4, 2, 1, -1, -5, 1, -1, -7, 2, -2, -5, + 0, 2, -2, 3, 5, 0, -2, -6, 6, -7, 3, -4, -6, 1, 6, 3, + 1, -2, -3, -4, -6, -1, 7, -2, 0, -3, 0, 9, -3, -5, -1, 3, + 0, -1, -3, 6, 1, -6, -3, 3, 6, 0, -6, -4, 2, 1, -1, 2, + -5, 4, 1, -2, -5, 0, 7, -9, 3, -1, 1, -6, 0, -5, -1, 1, + -1, 0, -4, 2, -2, -2, 1, 6, -1, -5, 0, 0, 0, 1, 3, 2, + 2, -1, -3, 0, 1, 5, 1, -5, -7, 2, 6, -3, -3, -3, 2, -7, + -5, 5, 0, 0, -3, -4, -1, 3, -4, -5, 1, 5, -1, -2, -4, 0, + 5, 2, 0, 2, 2, -1, -1, -5, 5, 3, -1, -4, 1, 0, -1, -2, + -1, 2, 2, -4, -4, 2, -2, -3, -4, -3, 0, 3, -3, -2, -2, 4, + 1, -2, -2, 1, 2, -6, -1, 2, 6, 1, -2, 0, 4, -3, -1, -2, + -1, 5, 1, -11, 4, 3, -1, -6, 2, -2, 3, -4, -8, -2, -1, 4, + 0, 3, -2, -1, -2, -2, 1, 3, 3, -7, 0, 2, 10, 0, -4, 3, + -3, 0, 0, 3, -4, 6, -4, -8, 2, 1, 3, -14, 1, -1, -2, 0, + 0, -5, -1, 2, -6, -1, 3, 0, -5, -3, 3, 1, 6, -2, 0, 6, + 2, -7, 1, 3, -5, 5, 8, 0, -1, 1, -4, -6, -2, 6, 4, -4, + -1, 1, -10, 0, -4, 0, -3, 2, 0, -8, 3, -3, 0, 2, -1, 1, + -8, -1, -1, -3, -1, 4, 1, 6, 1, 0, 0, -2, 0, -2, 7, -4, + 3, -1, 2, 0, -2, -2, -8, 3, 2, -1, -4, 3, 0, -3, -5, 2, + -3, -3, -2, 5, 2, 1, 1, -4, 1, -1, 4, 6, -4, 0, -6, -4, + 1, 3, 3, -1, -2, -7, -1, -3, 6, -6, 2, 1, 5, -8, -5, -1, + 2, -1, -3, -1, -1, 5, -7, 3, 3, 1, 4, -4, -3, -3, 8, 1, + -2, 4, 4, -2, -8, 2, 1, 0, 2, 0, -6, 3, -2, -8, -2, 5, + -1, -6, 0, 2, -1, -5, -2, -2, 6, 0, -5, -2, 3, 0, -5, -1, + 6, 7, 2, -8, -4, 6, 2, -6, -4, 12, 2, -5, -2, -6, 1, 1, + -3, -7, -3, 11, -3, -6, -1, 3, -2, -4, -4, 4, -3, 4, -2, -3, + 1, 7, 0, -8, 7, 1, -2, -4, -6, 13, 0, -3, 1, 2, -1, -4, + -3, 1, 3, -2, -3, -1, 0, 3, -1, -10, -1, 2, -8, -3, 3, 2, + 1, 4, -6, -2, 1, -3, -1, -4, 6, 5, -1, -5, -1, 9, -2, 0, + -4, 0, 1, -3, 4, -5, 1, 3, -4, -6, 0, 4, -2, -6, 9, -1, + -3, 2, -4, 0, 4, -7, -4, -1, 1, 4, 0, -1, 6, -2, -2, 4, + -3, -1, -6, -2, 2, 3, 1, -3, 8, -10, -10, 7, 0, -2, -1, -4, + 3, -6, 0, -5, -5, 5, 3, -6, 1, 5, 0, -1, 1, -1, 0, 0, + 0, -5, 7, -2, -1, 2, -1, 3, 0, -6, 4, -3, -2, -3, -2, 1, + 3, 3, 0, -2, -1, -9, 2, 2, -1, 4, -4, 4, -10, 7, -8, 2, + 1, -1, 0, -1, 4, 2, -7, 7, -6, -4, 3, 11, -5, -6, 1, 3, + -4, -6, 2, 2, -2, -3, -7, -4, 6, 0, 7, -13, 6, 2, -9, -2, + -5, 3, 8, 0, 0, 5, -5, -4, 3, 0, 2, 4, -7, 0, -1, 10, + -3, -6, 7, 2, -1, 0, 6, -2, -7, 4, -2, -1, -2, 1, -3, -9, + 6, 0, -4, 0, 3, 3, -11, -4, 7, -16, -2, 0, 2, 1, -2, 2, + -5, -1, 12, -6, 2, -7, 2, 6, 0, -4, -1, 1, -3, 2, -1, 0, + 7, -2, 2, -6, 2, 7, -9, -4, 8, 2, -9, -3, 8, 1, -1, 4, + 5, -11, 2, 1, -1, 0, 0, -6, -2, 2, 6, -13, 2, -3, -8, 1, + 1, 3, -2, -3, -2, -7, 4, -6, -2, 3, -10, 5, -2, 1, -3, 5, + 8, -4, -1, 2, -1, 6, 2, 3, 2, -2, 0, -1, 0, 4, 1, -1, + -2, 7, 1, -7, -5, 7, -5, 2, -5, -4, 0, 3, 3, -2, 0, -1, + -9, -4, -9, 10, 1, -14, 0, -1, 6, -8, -3, 3, -1, -6, -1, 5, + 3, -5, -1, 3, -6, 5, 7, -10, 5, 5, 2, -4, -3, 9, 4, -11, + 0, 5, -11, 7, -6, 2, 2, 12, -15, -8, 2, -3, 7, -5, 3, 3, + 1, -10, 0, -9, 17, -11, 7, -6, 2, 1, -3, 0, -1, 5, -2, -10, + -4, 16, -1, -7, -1, -3, 1, 11, -3, 1, -3, 2, -12, -2, 12, 3, + -1, -10, -2, 6, -3, 1, -1, -4, 12, -1, -2, -7, 6, -1, -1, -16, + 5, 11, -3, -7, 1, -1, -2, -6, -4, -5, 3, 4, -3, -8, -1, 3, + -5, 3, 1, 2, 6, -10, 1, 7, 0, 21, -15, 11, -12, 0, 1, 4, + 1, 4, -4, -1, 3, 7, 0, -5, 10, -15, -14, 2, 6, -11, 5, 3, + -10, -6, -1, -11, 4, -9, 6, -9, -2, 2, -8, 3, 0, 2, -9, 7, + 7, 2, 2, 0, 3, 1, 6, 0, 3, 6, -10, 6, -4, 1, 7, 9, + -1, 0, -7, 1, -11, -8, 9, 4, 0, -6, 2, -16, 0, 1, -2, -16, + 10, -7, -12, 7, 4, -1, -1, -4, 2, -1, 2, -5, 8, 3, 3, 4, + -2, 4, 3, 2, -4, -2, -1, 5, -5, -3, 9, 2, -22, 8, -6, 1, + 3, -5, -4, -6, 7, 0, 5, -8, 9, -13, 0, -6, 18, -3, -3, -1, + -6, 7, 3, -11, -9, 19, 6, -10, -6, 3, 12, -2, -18, 7, 8, -7, + -10, 14, -8, 5, 1, -15, -4, 11, -6, 9, -8, -1, 5, 1, -6, -2, + 7, -3, 7, -20, 6, 5, -4, 3, 12, -12, 11, -4, -22, 7, 9, -13, + 1, 0, -8, -1, 9, 6, -10, 5, -9, -5, 8, 5, 8, -12, -4, 16, + -14, 7, 6, -1, -16, 21, 2, -9, 13, 5, -4, -19, 2, -3, 12, -7, + -2, 3, -2, -4, -3, -8, 4, 1, -4, -4, -14, -3, -1, 1, -11, 30, + -11, -16, 8, -2, -9, 8, 8, -1, -1, -5, 10, -4, 1, 4, 3, -8, + -1, 23, -2, -2, 14, -15, -7, 7, -7, 0, 9, -12, 8, -10, 0, -3, + 16, -13, -11, 5, -1, -10, -2, 6, -5, -4, -9, 10, -6, 7, 1, -13, + 2, 14, -9, -3, 2, 6, 4, 8, -8, -2, 0, 2, -3, 14, 3, -10, + -4, -8, -1, 10, -13, -8, 15, -9, -3, -2, 5, -5, -6, -9, 9, 7, + -4, 14, -7, -18, 12, 1, 2, 1, 4, -2, -6, -3, -2, 5, 7, -2, + 0, 0, -4, 0, -6, 1, 5, -5, -4, 5, -6, 5, -4, -8, 15, -5, + -6, 0, 3, -8, 0, 3, 0, -1, 0, -4, 6, -16, 22, -7, 3, -5, + 2, 2, 1, -3, 4, -8, 4, 4, 0, -5, -9, 4, -5, -4, 3, 2, + 1, 3, -4, 6, -15, -1, 4, 1, -9, 3, 1, -8, 3, -6, 11, -5, + 6, -11, 17, -15, -2, -19, -11, 1, -4, 8, 0, 5, 18, -11, 0, 13, + -4, 6, -13, 4, -11, -1, -7, -7, 11, 10, -9, 17, -11, 20, -6, 7, + -14, 23, -7, -2, -2, 7, -10, 2, 0, 2, 5, 6, -8, 5, -4, -10, + 9, -4, 6, 0, -7, 8, -7, 1, -20, -4, -1, -3, 6, -10, -6, -15, + -11, 10, -5, 19, 3, 1, -19, -11, -1, -9, 9, 22, 24, 10, -5, -18, + -8, -23, 14, 11, 0, 31, 43, -9, 0, -7, -15, -28, -35, -30, 3, 5, + -5, 11, 52, 55, 7, -5, -10, -12, -25, -43, -12, 4, -37, -47, -21, -5, + 4, -11, 1, 31, 27, 34, 46, 48, 61, 10, 16, 8, 7, -14, -40, -47, + -36, -51, -42, -15, 4, 12, -32, -42, -10, -4, 10, 1, 15, 50, 31, 5, + 15, 38, 37, 29, 15, 22, 11, -4, -35, 10, 3, -18, 1, -14, -33, -5, + -47, -25, -13, -2, 15, -6, 5, -29, -17, -19, -1, 3, 7, 2, 17, 28, + -8, -23, 7, 7, 36, 15, 2, 1, -2, -9, 1, 6, 20, 6, 14, -3, + 21, -11, -12, -35, 11, -20, -18, -36, -23, -27, -19, 1, 10, 14, 27, 6, + 44, 14, -9, 3, 20, 27, 45, -8, -13, 16, -16, 24, -10, -9, -3, -38, + -19, -14, -38, -38, -41, 13, 40, -37, 5, -7, -7, -4, 4, -31, 32, 22, + 15, 9, 13, 10, 10, -17, 22, 30, 9, -6, 27, 66, 47, -17, -21, -20, + -9, -36, -73, -3, 22, -35, -12, 6, 7, 4, -17, -45, 22, 17, -17, 3, + -9, -4, 11, -10, 13, -4, 8, 38, 3, 20, 42, -22, 9, 23, -28, -21, + 3, 10, 1, 26, -28, -18, -9, 7, -30, -41, -24, -9, 10, -6, 31, -5, + 2, 29, -9, 1, -27, -24, 7, -19, -5, 10, -13, 21, 21, 3, 30, -11, + -17, 34, -11, 8, 7, -8, 1, 11, -1, 7, -13, 1, -3, 23, -12, 8, + -19, -3, 20, -78, 42, -23, 4, -29, -16, -5, 38, -49, 30, -26, 26, 16, + 8, -33, 53, 19, -20, 12, 5, 23, -11, 4, -6, 42, -111, 67, -40, 29, + -32, -20, -77, 113, -46, -12, 8, -5, -14, 35, -52, 94, -5, -61, 58, -36, + 41, -83, 21, -19, 61, -68, 37, -37, 12, 66, -69, -16, 100, -88, 48, 21, + -39, 73, -24, -2, 45, 65, -59, 53, -103, 95, -97, 1, -14, -4, -41, 9, + -13, -18, 16, -26, 9, 26, -15, 25, -16, 6, 8, 26, -52, 35, -21, 4, + -2, -11, -4, 22, 0, 21, -40, 65, -6, -13, -11, -7, 32, -46, -48, 16, + -26, -3, 0, -42, 87, -68, 34, 17, -14, 43, 23, -15, 30, 20, 47, -19, + -33, -12, 15, 1, -37, 15, -12, -11, -7, 15, -75, 36, -41, 27, -8, -7, + -12, 10, -4, 49, -6, 42, -32, 4, 20, 33, -65, 24, -52, 10, 13, -17, + -15, 60, -14, -55, 35, -16, 50, -83, -3, 29, 58, -75, 71, -46, 47, -32, + 44, -57, 10, -43, 33, 22, -48, 51, -41, 6, 7, 39, -3, -41, 7, -9, + 37, -66, 22, 26, -13, 74, -87, 127, -39, -16, -29, -11, -8, -57, -15, -45, + 52, -74, -5, -2, 103, -126, 85, 20, 28, -7, 53, -38, 58, -10, -11, 33, + -70, 20, 1, 40, -36, 26, -58, 58, -23, 61, -71, -7, -39, 43, 22, -18, + -1, -61, 90, -37, 35, -58, 30, -62, 27, -45, 47, -59, -6, -35, 70, -49, + 9, -30, 92, -15, 21, 1, 26, 6, -19, 90, -43, 49, -46, 10, 6, 15, + -90, 67, -51, -11, 4, 28, -36, 24, 41, -68, 24, -34, 63, -40, 17, -30, + 18, -39, 14, -38, 15, 9, -54, 54, -20, 36, -21, -14, -13, 11, 23, 11, + -54, 56, -25, 37, -46, 49, -74, 81, -40, 51, -44, 57, -69, 51, -50, 61, + 27, -112, 111, -114, 106, -85, 49, -61, 75, -18, 26, -68, 32, -15, -25, 21, + -15, 38, -46, 80, -119, 126, -85, 41, -40, 77, -65, 28, -6, -39, 45, -87, + 39, -63, 81, -32, 4, -32, 44, -25, 42, -12, -15, 21, -1, -56, 21, 23, + -30, 33, -28, -3, 32, 4, -36, 60, -20, 13, -3, 22, -43, 101, -88, 59, + -53, 18, 8, 22, -33, -52, 34, -32, 35, -90, 112, -107, 56, -59, 43, -60, + -18, -4, -21, 45, 11, -48, 11, 38, -27, 58, -49, 65, 19, 54, -38, 35, + -37, 24, -11, 44, -62, 41, -16, -48, -8, 31, -68, 17, -3, -5, 52, -51, + -10, 16, -26, 18, -29, 56, -41, 3, 5, -10, -37, 61, -14, -10, -9, 20, + -8, 8, -2, -16, 44, -17, 14, -33, 30, -2, -27, 16, 3, 0, 51, -42, + 32, -20, 8, -11, -24, 10, 12, -15, 6, -32, 10, 21, -38, -11, -12, 23, + 13, -64, 19, 34, -23, -23, 16, 10, 39, 2, -36, 55, -31, 0, -29, 18, + 8, 12, -61, 73, -28, 54, -34, 21, 9, 7, 53, -34, -29, 19, -7, -44, + 7, 15, -16, -18, -31, 10, -29, 36, -69, 7, 4, 33, -72, 45, 14, 0, + -8, 35, -13, 26, 16, -28, -3, -32, 45, -4, 8, -20, 65, -24, 2, -24, + 40, -16, -16, 20, 8, 2, -3, -2, 23, -15, -11, -30, 19, -51, -19, -5, + -36, 18, 24, -4, -1, 46, -90, 60, 4, 23, -17, 16, 60, -24, 0, 18, + 0, 5, -6, -24, 27, -34, -28, -7, -4, 22, -30, -11, -3, -1, -44, 36, + -38, -6, -9, 55, -34, 16, 27, 28, -65, 62, 22, -32, 36, 7, 2, 27, + -19, 50, -71, 44, -19, -67, 13, -3, -14, -30, 33, 5, -12, -48, 60, -47, + -28, 9, -6, 24, -11, -1, 13, 62, -53, 26, 7, -9, 6, 58, -38, -10, + 0, 5, -23, 23, 8, -14, -19, 21, -9, 35, -17, -28, 14, 27, -17, -14, + -29, 24, 6, -85, 74, -16, -18, -2, -19, 47, -29, -18, -15, 52, 0, 7, + -10, -23, 45, 13, -11, 12, -28, 27, -26, 19, -69, 74, -55, 35, -21, 41, + -24, -11, 39, -19, 7, 0, 7, -31, 10, 7, -45, -17, 25, -12, 9, -19, + 3, 28, -53, 76, -19, -25, 49, -2, 6, -11, 24, -12, -23, 17, -1, -15, + -10, -36, 26, -25, 0, -44, 59, -67, 45, -31, 5, 15, 56, -12, -14, 12, + 10, 24, -52, 37, 5, -35, 52, 23, -55, -6, 24, -49, 26, 31, -24, 10, + -33, 33, -11, 1, -49, 8, 7, 6, -78, 12, -22, 10, -11, 13, 13, -18, + 38, 50, -18, -5, 64, -52, 59, 33, 3, -9, -6, -6, 26, -64, 18, -38, + -47, 18, -33, 4, -39, 40, -31, -1, -23, 48, -30, 18, 17, 32, -20, 32, + 19, 24, -58, 49, -38, -9, 15, -28, 16, -3, -2, -28, 33, -22, 23, -1, + -34, 33, -48, 67, -55, 21, 51, -66, -2, 21, -5, -17, 24, -63, 53, 8, + -19, 9, -11, 36, -37, -35, 43, -35, -3, -44, 68, -43, 53, -24, -5, 45, + -16, -7, 14, 49, 3, -16, 22, -10, 2, -28, -9, -6, -5, 32, -76, -22, + 35, -26, -35, -12, 0, 3, 13, 6, 36, 7, -32, 69, -15, 45, -20, -21, + 35, 35, 1, -25, 11, 34, -24, -33, -9, 5, -25, -49, 31, -41, 15, -42, + 25, -30, 42, -80, 32, 2, -18, 33, -12, -9, 43, -1, 4, -12, 54, -51, + 22, -1, 18, 28, -29, 18, 7, 10, -19, 8, -1, 12, -21, -6, -11, 4, + 4, -28, -8, 22, -27, -5, 9, -25, 20, -19, -36, 41, -8, 20, -32, 16, + -29, 29, -13, 13, 4, 1, 17, 8, 0, 9, 22, -1, -3, 28, -11, -39, + 36, -31, 5, -11, -27, 22, -39, 7, 15, -24, 19, 8, -37, 75, -52, 54, + -65, 22, -13, 23, -26, 32, -19, 10, -8, -3, 12, 16, -44, 25, -23, 14, + 9, -46, 20, 2, -4, -8, -6, 18, 4, -2, -3, -15, 4, 16, -9, -5, + 34, -29, 27, -54, 98, -65, 11, -18, 16, -13, 0, -2, 0, 22, -43, 31, + -46, 58, 2, -25, -2, 16, -2, -29, 17, 18, -26, 21, -17, 5, -4, -9, + 0, -34, 50, -27, -3, 4, 31, -3, -47, 32, -25, 36, 6, -47, 33, -28, + 39, -36, 42, -28, 5, -3, -2, 25, 27, -47, 20, 22, -5, -15, 1, -9, + 16, -25, -10, -43, 40, -12, -19, 22, -24, -5, 14, -44, 42, -32, 32, -45, + 40, 41, -17, 27, -44, 38, -16, 15, -36, 39, -13, -19, -4, 34, 1, -9, + 9, -16, -2, -29, 31, -31, -4, 35, -21, -52, 63, -41, 2, -7, 30, -35, + 13, 9, 15, -4, 14, -36, 18, -14, 55, -50, -6, 22, -23, -11, -5, 12, + 17, -13, -43, 44, -33, 41, -42, 45, 3, -12, 26, 11, -11, 35, -76, 39, + 2, 0, 3, -4, 15, -19, -6, -33, 11, 5, 16, -25, -2, 19, -7, -43, + 30, 20, -27, -18, 12, 14, 33, -50, 14, -15, 23, 8, 2, -10, -4, 53, + -86, 24, -9, 41, -34, -21, 22, 24, -54, 27, 13, 2, -9, 14, -29, 21, + 40, -43, -9, -3, 27, -3, -22, 18, 10, -23, -15, 1, 14, -12, 3, -30, + 30, -22, -28, 36, -15, 39, -57, 21, 3, -3, 33, -13, -2, 6, 20, -6, + 4, -13, -5, -18, 13, -7, 7, 26, -26, 16, 7, -64, 37, -7, 10, -20, + 12, -11, 7, -34, 37, -12, -24, 34, -18, -18, 39, 9, -42, -24, 43, 2, + -16, 25, 12, -16, 8, 12, -44, 32, -9, 23, 1, -37, 40, -23, -17, 18, + -42, 23, -12, -7, 10, -6, 6, -13, -13, 30, -23, 36, -4, 7, 17, -18, + 18, -3, 8, 5, -1, -13, -15, 2, -5, -16, 7, -52, 23, -38, 30, -30, + 16, -26, 21, -22, 24, 3, 20, -28, 22, 22, -31, 42, -16, -11, 32, -26, + 0, 31, -14, 11, -15, 14, -17, -9, 10, 11, 27, -38, -4, 14, -18, 36, + -44, 0, -11, 16, -14, -2, 16, -34, -23, 22, 4, -24, 14, -13, 16, 31, + -28, -10, -6, 51, -27, 13, -49, 3, 68, -38, 1, 8, -27, 26, -16, 0, + 15, -36, 7, -6, 38, -11, 0, -14, 10, -4, 22, -48, 31, -1, 23, -38, + 1, 15, -7, 10, -1, -3, 4, -1, 10, -2, -12, 3, -22, 5, 9, 8, + 4, -14, 12, -3, -7, 22, -20, 3, -6, 13, -15, -8, -7, 16, -14, -1, + -3, 6, -17, 12, 22, -44, 68, -67, 50, 13, -20, -11, -4, -20, -3, 22, + -13, -20, 28, -7, 2, 11, -9, -23, 5, 5, -26, 24, -31, 2, 20, 15, + 2, -7, 4, 19, -6, 41, -51, -3, 24, 27, -30, 25, -37, 1, -7, -2, + -4, -26, -1, 12, 5, -12, 9, -30, 5, 11, 26, -18, -32, 42, 7, 0, + -23, 10, 10, -20, 53, -49, 6, -39, 18, 3, -27, 41, -21, 16, 28, 14, + -24, -15, 19, 5, 16, -31, -1, 45, -25, -6, -16, -4, -19, 37, -47, 21, + 2, -14, -7, 30, -35, 13, -30, 14, 21, 11, -18, -28, 37, 12, -18, 9, + 5, -1, 33, -41, 3, -7, -19, 8, -14, 12, 15, -18, -4, 44, -25, 22, + -46, 19, 40, -25, -12, -5, 17, 7, -53, 25, 4, -10, 14, 16, -31, 40, + -27, -11, -4, 28, -40, -5, -9, -3, 34, -47, 33, -5, 11, -33, 33, 0, + -14, 35, -18, -27, 11, 14, -37, 35, -20, 7, 15, 2, 27, -17, 15, -31, + -1, 11, -27, 24, -26, 14, 13, -35, 20, -13, -2, 16, 16, -6, 2, 15, + -7, -22, 51, -36, -2, 20, -19, 23, -20, -19, -9, -14, 8, -4, -13, 35, + -66, 36, -37, 3, 19, -1, 15, 32, -45, 71, -15, -5, 12, 34, -33, 24, + -5, 20, -43, 42, -59, 13, -12, -69, 66, -29, -34, 17, 7, -28, 24, 5, + -27, 51, -40, -9, 46, 3, -17, 36, -56, 63, -7, -31, -19, 53, -12, -10, + 4, 19, -47, 35, 0, -40, 17, -14, 13, -11, 11, 3, -39, 22, 5, 21, + -19, -11, 25, -4, -5, 20, -13, 25, -6, -16, -16, 29, -61, 25, -33, 12, + -17, 7, -19, 34, -27, 15, -19, 32, -26, 54, -46, 6, 9, 14, -6, -6, + 23, -32, 58, -19, -5, 15, 46, -42, 39, -7, -23, -7, -14, -22, 42, -66, + 0, 4, -8, -11, -4, -3, -7, 7, -23, 30, -14, 19, 8, -9, 20, 36, + 5, -24, 25, 12, -20, 16, -53, 60, -49, -26, 24, -87, 67, -49, 13, -7, + 5, -14, 5, 11, 38, -3, -15, 27, 26, -36, 20, 30, -47, 29, -5, 9, + -10, 38, -65, 47, -49, -4, -10, -6, 1, -1, -28, 16, -14, 3, -14, 27, + -8, 1, 2, 23, 21, -53, 40, 24, -16, -12, -2, 11, 17, -8, -18, 8, + -25, 28, -10, -12, 13, -51, 10, 35, -10, -8, -9, 8, 10, 14, -20, 4, + -9, 37, -5, -2, 2, 4, -9, -5, 16, -16, -23, 13, 7, -9, 14, -49, + 13, 8, -3, -13, -9, 22, -8, 12, -13, 36, -36, 35, -17, 23, -12, 0, + -37, 50, -31, -8, -31, 43, -4, -11, 0, 3, -7, -19, 16, -16, -28, 46, + -28, 27, -13, 33, -21, -1, 39, -13, 3, -4, 4, -39, 74, -30, -17, 33, + -3, -20, -12, 24, -94, 75, -63, 54, -62, 23, 4, 12, -33, 22, -35, 16, + 12, -28, 34, 2, -12, -3, 22, 23, -31, -6, 26, 4, -41, 8, 37, -15, + 21, -7, 18, -51, 42, -27, 35, -45, 35, -30, 18, 9, -20, 1, 18, -12, + -51, 61, -61, 24, -20, 1, 11, -5, -2, -12, 11, 20, -35, -2, 37, -21, + 23, -15, -2, 19, -51, 82, -50, 20, 29, -26, -34, 49, -2, -16, 11, -17, + -4, 6, 15, -35, 13, -15, -10, -17, 15, 4, -42, 43, -31, 34, -30, 53, + -43, 40, -22, 9, 9, -24, 64, -41, 29, -17, 8, -15, 8, 2, -27, 7, + 10, -28, 0, 30, -50, 6, -13, -14, -21, 11, 9, 13, -47, 35, -11, 32, + 28, -28, 1, 32, 2, -19, 28, -24, 9, 0, 19, -6, 16, -33, 6, -23, + 33, -31, -1, -4, 26, -22, -22, -10, -11, 18, -26, 19, -8, -4, 21, -14, + 36, -2, 12, -48, 49, -1, -13, -5, 8, -3, 9, -4, -18, 15, 28, -50, + 10, 4, -7, 4, -39, 37, -39, 11, 2, -20, 13, 4, -6, 0, 35, -17, + -9, 6, 38, -21, -1, -1, 12, -2, -16, 15, 7, -22, 18, -23, 11, 3, + -9, -39, 29, -31, 44, -41, 0, 5, 21, -9, -25, 25, -6, 38, -55, 38, + -14, 6, -26, 38, -24, 39, -39, -15, 17, 16, -20, -27, 17, 24, -20, -20, + 33, 8, -31, 2, 2, 27, 11, -4, -7, 31, -20, -9, 4, -4, 17, -32, + 2, -18, 31, -35, 38, -52, 42, -1, -28, -26, 25, 3, -51, 42, -35, 35, + -39, 44, -38, 20, 20, -51, 34, 45, -10, -7, 27, -19, 33, -49, 22, 2, + -7, -5, -27, 59, -24, -20, 21, -8, -15, 24, -51, 3, 9, -23, 24, -30, + 2, 29, -26, -2, 4, 10, 0, -18, 50, 3, 9, -14, 17, -18, 24, -13, + -33, 7, 25, -50, 2, -2, 30, -58, 31, -8, 23, -11, -1, -24, 21, 1, + -41, 47, -30, 28, -39, 56, -16, -20, 51, -45, 33, 6, 23, -12, -19, -2, + 7, 1, -14, -5, -11, -20, 25, -17, 7, -22, 21, -19, 34, -47, -2, 1, + 33, -30, 14, 20, 6, -9, 17, 13, -22, 19, -58, 23, 26, -15, -52, 2, + 18, 10, -13, 46, -5, -8, -6, 4, -14, 5, 11, -13, -7, 42, -25, 8, + -37, 35, -10, 6, -25, 16, 15, -15, -9, -20, 18, -23, 26, -34, 35, -22, + -10, 9, 14, -6, -21, 27, -8, 4, 1, 3, -19, 28, 2, -7, 30, -8, + -13, 11, -9, -9, -19, 12, 0, -23, -1, -23, -6, 27, -31, 41, -28, 13, + 5, 9, -21, 6, 2, -2, 18, -16, 31, -25, 40, -38, 39, -13, 8, 14, + -3, 9, -30, 6, -12, -7, -15, 30, -64, 6, -22, 13, -8, 14, -40, 9, + 32, -35, 14, -1, 12, -25, 63, -25, 35, -2, 19, -5, -3, 20, -29, -1, + 35, -37, 53, -46, 4, -14, 22, -27, 23, -64, 8, 5, -25, 41, -18, 14, + -42, 53, -56, 35, -42, 71, -63, 45, -38, 29, -12, 33, -22, 0, 24, -13, + 3, 13, 1, -10, -19, 11, 19, -38, 5, -2, -18, -21, 33, -54, 41, 9, + 4, -1, -21, 3, 3, 37, -31, 34, -40, 34, -19, 30, -26, 23, -53, 55, + -8, -13, -16, 7, -13, 46, -38, 2, -3, 17, -1, -26, 18, -57, 68, -27, + 23, -19, 32, -39, 2, 2, -18, 12, -16, 4, -23, 38, -65, 40, -5, 13, + 19, -26, -13, 60, -25, 7, 1, 10, 22, -24, 23, -20, -16, -17, 14, -32, + 26, -4, 17, -15, 9, -29, 4, -29, 11, 36, -18, -19, -2, 5, 28, -23, + 31, 6, 4, 18, -14, 4, -7, 0, -45, 61, -31, 5, -15, -23, -21, 52, + -62, 4, 22, 1, -9, 15, -24, -27, 60, -49, 38, 0, -6, 1, 13, 7, + 4, 19, 6, 0, 27, -28, -14, -21, 17, -1, -30, 23, 10, -36, 18, -19, + 2, -18, 0, 6, -1, 7, -1, -37, 26, 15, -35, 41, -24, 10, 10, -9, + -12, 12, 7, 3, 10, -11, 11, -14, 27, -49, 71, -55, 25, 8, -11, 11, + -5, -22, 7, 15, -17, -11, 18, 4, -54, 43, -38, 27, -1, 7, -13, 19, + 10, -41, 50, -41, 13, 9, 10, -41, 38, -13, 13, -2, -2, -4, 9, -36, + -5, 22, -31, -18, 8, 21, -22, 21, -24, 12, 3, 16, -24, 25, -16, 22, + -35, 14, 3, 11, 12, -22, 40, -11, -25, 14, 0, 14, -2, 2, -10, -12, + 14, -51, 11, -21, 55, -27, 9, 3, 38, 7, -25, 5, -19, 6, -14, 0, + -10, 21, -57, 35, 18, -21, 21, -40, -13, 24, -24, -12, 10, -1, 11, 10, + -12, -5, 38, -45, 23, 26, -13, -9, 32, 6, -3, 30, -28, -28, 27, 3, + -10, -11, -10, 16, -28, 21, -12, -3, -1, -33, 14, -30, 12, -20, 40, -15, + 7, 19, -18, -1, -1, 9, 4, -23, 32, 17, -19, 12, 16, -45, 4, -6, + 18, -28, 36, -44, 44, -29, 10, 4, 14, -8, -13, 9, -30, 39, -17, -5, + 10, -10, 5, -1, -16, 17, -7, -9, -10, 15, -21, 9, 10, 8, -10, -6, + 3, -21, 34, -3, 6, -4, 15, 3, -2, 4, 26, -44, 30, -43, 2, 9, + -5, -7, -18, 16, -28, 0, 5, -7, 0, 7, 0, -7, 21, -14, 17, 15, + 2, -40, 7, 44, -30, 55, -33, -19, 40, -30, 17, -1, -20, -20, -20, 5, + 14, 1, -7, -32, 26, -11, -11, 24, -23, 17, 17, 8, -19, 18, 11, -6, + 17, -4, -13, 14, -9, 21, 9, -16, -8, 2, -16, 3, -9, -32, 6, -36, + -4, 0, 10, -36, 26, -11, 3, 31, -20, 1, 7, 4, 45, -35, 39, 0, + 4, 28, -21, 29, -39, 27, 15, -6, -14, 17, -25, -33, 16, -15, 18, -43, + 28, -61, 33, 1, -27, 13, -19, -20, 26, 11, -27, 16, -21, 33, -13, 43, + -44, 13, 24, -10, 35, -39, 36, 20, -39, 68, -68, 23, -16, -7, 0, 36, + -30, -13, -27, 42, -21, -4, -23, -2, 23, 0, -3, -3, 2, 4, -15, -5, + 28, -10, -20, 24, -7, 27, -58, 31, -7, -29, 39, -40, 41, -35, 8, -25, + 30, 31, -17, -9, 3, 36, -8, -18, -11, 29, -2, 6, -25, 21, -5, -8, + -17, -24, 20, -26, 20, -23, 46, -26, -13, 8, 13, 2, -15, 4, -9, 28, + -25, -19, 49, 18, -50, 45, -11, -17, 5, -61, 15, 4, -22, -1, 22, 23, + 33, -55, 46, -25, 37, 18, 2, -9, 11, -47, 23, -8, -25, 37, -32, 2, + 5, 12, -18, -5, 19, -27, -7, 20, -40, 32, -44, -21, -29, 58, 8, -9, + 57, -28, 29, -32, 14, -14, 4, 23, -33, 16, -4, -16, 21, 38, -37, 23, + 10, -32, 17, 17, -12, -59, 9, -3, -12, 22, -13, -8, -26, 16, 1, 33, + -9, -17, 16, -7, 21, -44, 26, 5, 35, -36, -1, 13, 36, -36, 39, -36, + 17, -13, 2, -33, 20, -13, -51, -2, 9, -2, 35, -21, 19, -20, 18, -19, + -5, 30, -39, 30, 22, -35, 74, -52, 33, -15, 17, -21, -13, 11, 6, -25, + 25, -31, 29, -18, 18, -52, 40, -11, -17, -26, 56, -56, 69, -53, -14, 32, + -10, -8, -2, 18, -14, 20, -18, 20, 22, -27, 0, -25, 56, -46, 16, -28, + 52, -5, -33, 76, -75, 36, -1, -42, 42, -46, 13, -13, 25, -7, 35, -55, + 5, 63, -56, 11, -24, 13, -8, -10, -27, 15, -15, 44, -66, 52, -3, -6, + 0, 23, -33, 79, -55, 30, -27, 37, -18, -6, -2, -19, 52, -22, -50, 60, + -32, 28, -56, 44, -28, 15, -37, -9, -28, 63, -75, 9, 39, 28, -21, 5, + -17, 15, 2, -13, 30, 13, -14, 10, -12, 30, -22, -10, 4, -8, -9, 14, + 6, -39, 34, -6, 4, 1, -5, 0, 33, -73, 34, -12, 23, -9, 53, -47, + 17, 3, -18, -6, 2, -19, -12, -7, -45, 72, -9, -71, 55, -58, 50, -18, + -36, 37, 19, -11, 13, -35, 32, 6, 5, 18, -6, 19, -26, 32, 16, 20, + -43, 20, -10, -7, 16, -7, -68, 21, -36, 7, 19, -22, 19, -3, -35, -37, + 25, 21, -57, 67, -9, 9, 32, -11, 28, -18, 35, -41, 60, -19, 29, 0, + -38, 29, -6, -35, 0, 25, -37, -1, -31, -42, 30, -19, -21, 36, -66, 53, + -33, 15, 16, -13, 20, -35, 73, -4, 18, 39, 4, 1, 3, 21, -2, -12, + -18, -51, 44, -17, -50, 48, -30, -16, -13, -35, -7, 25, -33, -14, 14, 0, + 8, -30, 45, -13, 50, -53, 28, 60, -33, 23, -7, -2, 15, 36, -11, 9, + 19, -44, 4, -21, 19, -5, -27, -45, 48, 9, -47, -23, 12, 3, -25, -8, + -21, 63, 1, -29, 31, -18, 19, 16, -24, -17, 50, -65, 65, -56, 93, -45, + -17, -25, 45, -18, 23, -53, 50, -15, -12, -39, 51, -11, 11, 13, -31, 54, + -14, -29, 22, -11, 10, -41, -19, 52, 10, -51, -60, 72, -13, 12, -38, 19, + -2, 31, -56, 37, -4, -10, 22, -14, -33, 48, -40, 38, -14, 27, -24, 19, + 29, 17, -31, -2, -41, 34, -17, 2, 5, 5, -13, -30, 14, 9, -9, 7, + -11, 15, 5, -28, -2, 0, 45, -30, -25, 1, 10, 29, -55, -24, 52, -5, + 5, 20, -25, 20, -15, 14, -64, 95, -53, 32, 13, -26, 31, -8, -27, 18, + 48, -57, -3, -10, 25, -24, -32, -9, 18, 18, -33, -15, 27, -22, 14, -5, + 10, 51, -21, -25, 19, 5, -15, -29, 16, 1, 33, -39, -12, 56, 14, -63, + 36, -2, -17, 52, -11, -37, 5, 19, -52, 38, -23, -60, 93, -75, 52, -30, + -2, -11, 49, -11, -25, 1, 42, -35, 26, -35, -9, 24, -1, 10, -6, -12, + 7, 4, 22, -10, 41, -25, -8, -4, -2, 28, -43, 19, -32, 4, -27, 9, + -47, 51, -16, 12, -52, 49, 8, 7, -37, 27, -33, 80, -44, 6, 5, 28, + -15, 16, 15, 2, -12, 50, -77, 38, -38, -45, 30, 8, -37, -13, -8, -18, + 50, 3, -54, 29, 29, -20, 4, 52, -57, 62, -52, -2, -9, 62, -64, -5, + 24, 23, 0, -7, -23, 48, 25, -78, -9, 38, 18, -46, 30, -51, 39, 4, + -48, 22, 15, 13, -39, 8, 10, 31, -20, -22, 21, -17, 17, -23, 22, 22, + -24, -36, 11, 31, -16, -28, 34, -4, 0, -20, 6, -2, 35, -13, -60, 36, + 24, -45, 21, -2, 36, 0, -73, 66, -37, 39, -66, -18, 22, 17, -17, -25, + 24, 36, -47, 3, 25, 7, 8, 0, 1, 14, 20, -21, 4, 21, 12, -77, + 17, -4, -12, 31, -57, 38, -11, -4, -31, -6, 29, -34, 11, 13, -20, 82, + -36, -36, 40, -28, 77, -68, 12, 2, 34, -23, 5, -31, 11, -5, 44, -105, + 79, -31, -29, -16, 37, 8, 18, -14, -9, 32, -10, -11, -7, 0, 41, 34, + -56, 7, 13, -2, -31, 33, -67, 42, -31, -2, 22, -49, 18, -34, -11, 38, + -40, 56, -16, 14, -2, 24, 0, 0, 41, -21, -8, 6, -11, 11, 11, -45, + 26, 4, -17, -7, -26, -30, 7, -21, -29, 56, -29, 37, -3, 2, -8, -3, + 22, 11, 40, -13, 58, -6, -38, 48, -23, 15, -52, -14, -6, 49, -66, -20, + -11, 34, -32, -44, 41, 4, 20, -59, -24, 77, 23, -24, -17, 42, 19, -3, + -19, -34, 54, 17, -22, -17, 46, -24, -9, 3, -22, 40, -47, -49, 72, 4, + -18, -48, -33, 55, -4, -41, -51, 105, -26, -3, -22, 64, 28, -51, 31, 2, + 15, 27, -62, 18, 21, 6, -15, -54, 52, -14, -46, 7, -30, 32, -1, 6, + -37, 39, -3, -23, -20, 24, 23, 17, -25, -6, 67, -36, -11, -37, 56, -79, + 3, 30, 45, -39, -17, -2, 21, 2, -4, -3, 3, 1, 16, -16, 9, 30, + -37, 8, -6, 46, -65, 3, 14, -59, 104, -60, 2, 46, -29, -30, -2, -10, + 24, -52, 63, -31, 81, -85, 18, 35, 16, -32, -18, -24, 45, -16, -15, -13, + 37, -15, -20, -42, 91, -45, -15, -9, -16, 64, -11, -23, 31, -18, 38, -42, + 3, 12, 1, 5, -5, 22, -44, 69, -31, -18, 15, 21, -64, -13, 34, -37, + 30, -26, -15, 6, -3, 44, -28, 11, -3, -1, 16, -18, 25, -14, -26, 69, + -56, -5, 31, -51, 24, 3, -36, 9, 52, -34, 31, 21, -11, -68, 31, -24, + 53, -25, -29, 31, 23, -20, 9, -15, -11, 19, 12, -47, 84, -60, -16, -11, + 17, -4, -15, 30, -45, 32, 34, -63, -7, 68, 0, -35, 17, 7, 33, -31, + -8, 7, -32, 43, -13, -18, 15, 31, -32, -34, 5, 8, -16, 20, -26, -29, + 32, -9, -20, 17, 33, -31, -13, -5, 86, -52, 23, -19, 2, 13, 14, -7, + -20, 36, -16, -3, 8, 0, 14, -69, 76, -77, 25, -14, -17, 3, 39, -14, + -46, 31, -2, -7, 37, -45, -6, 24, 28, -37, 22, 13, -35, 4, 8, 23, + 7, -43, 53, -59, 23, 16, 4, -25, -15, 23, -9, -20, 26, -18, -1, 25, + -3, -48, 53, 2, -43, 7, 14, -34, 15, 28, -33, 53, -2, -59, 31, -34, + 40, 19, -27, 20, -2, 8, 2, 3, -8, -8, 4, -57, 62, 24, -72, -4, + 17, -17, -3, -10, -26, 42, -30, 12, -29, 31, -10, 3, 24, 2, 21, -1, + -36, 52, -7, 21, 14, -32, -18, 73, -45, -6, 8, -12, -66, 21, 25, -17, + -6, -35, -14, 27, 26, -47, 40, -51, 56, -19, -24, 31, 6, 4, 11, -3, + 37, -47, 41, -32, 50, 0, -72, 25, 16, -19, -1, -2, -4, -41, 20, 6, + 9, -3, -44, 32, -54, 83, -30, -26, -8, 46, -47, 29, 5, -19, 37, -9, + -20, 65, -14, -21, -4, 10, 28, -28, 18, -29, 35, -25, 3, -17, -31, 4, + -4, 0, -9, 41, -42, -34, 40, -15, 8, -24, -8, 36, 22, -18, -27, 70, + -39, 39, 1, -5, 57, -54, 12, 36, 3, -13, -1, -32, 69, 6, -64, -50, + 13, -13, -34, 22, -13, 0, -10, -38, 41, -11, -22, -3, 11, 4, 38, 22, + -10, 24, 32, -23, 23, -6, 8, -4, 21, -61, 66, -35, -41, 7, 5, -29, + -19, -45, 23, -2, 46, -84, 78, -59, 40, -10, -18, 79, -35, -5, -1, 36, + 16, 13, -21, -31, 52, 2, -50, 34, -5, -36, -37, 65, -42, 1, 16, -42, + 35, -8, -50, -6, 41, -16, 27, -41, 22, 64, -50, -11, 31, -18, -17, 5, + -3, 34, 34, -40, -41, 66, -37, 20, -11, -20, 29, -5, -14, -15, 45, -33, + -37, -11, 36, -25, 18, -8, 20, 1, -23, 60, -32, 0, 34, -24, -32, 64, + -39, -35, 48, -7, -13, 4, -39, 32, 0, 1, -31, 2, -12, 43, -38, -8, + 26, 0, -57, 53, 19, -22, -10, 17, -30, 57, 6, -31, 33, 10, 0, -48, + 29, -4, -23, 6, -7, 31, -39, 15, -41, 38, -19, 5, -37, 23, 11, -28, + -14, 59, -48, 8, 22, -20, 50, 15, -34, -26, 67, -8, -15, -21, 53, -27, + -9, 13, -24, -35, -10, 9, -15, -13, 18, -38, 28, 22, -14, 2, -22, 42, + -20, 22, 12, -20, 45, -16, 17, -16, 22, 34, -27, -13, -7, 1, -21, -1, + 13, -44, 36, -51, -8, 16, -7, -30, -46, 90, -54, 35, 1, 11, 9, 5, + 1, -19, 20, 11, 21, -1, -49, 41, -6, 0, 37, -74, 9, 20, -12, -47, + 65, -68, 28, -5, -26, 15, 14, -3, -23, 8, 18, -22, 13, 3, 31, -21, + -5, 8, 24, -21, 48, -20, -21, 41, -43, 4, 18, 21, -60, 9, -27, 1, + 13, -15, -33, 15, 23, -48, -8, 53, -50, 1, 6, -40, 90, -10, -15, 51, + -52, 53, 29, -68, 50, 52, -30, -21, 7, -1, -8, -29, 11, -47, 6, 18, + -12, -25, 53, -34, -23, -6, 19, -7, -13, 7, 5, -2, 14, 11, -15, 51, + -29, 6, 12, 20, -27, 29, -12, 4, -18, -5, 2, -17, 10, -19, 2, -8, + -5, 56, -82, 49, 0, -42, 48, -25, 19, 6, -41, 17, 35, -18, -17, -29, + 26, 10, 4, -24, 26, -35, 47, -36, 2, 2, -23, 27, -42, 55, 0, -21, + 19, 21, -8, 1, -3, -15, 7, 12, -23, -29, 47, -12, 4, -28, 17, 16, + -7, -31, -8, 25, -6, 0, 13, -20, 6, 3, -7, 19, -21, -37, 27, 41, + 7, -14, 12, -59, 57, 6, -49, -2, -8, 0, 19, 13, -20, -5, 16, 23, + 4, -15, -33, 14, 2, 15, -26, -28, 10, 45, -17, -24, 14, 17, -39, 22, + -8, 48, -51, -1, -16, 52, -34, -21, 11, 13, 18, -57, 26, 15, 27, -36, + -12, 40, -7, -14, 15, -86, 91, -20, -13, -7, 53, -43, 33, -25, 13, 3, + -38, -19, 28, 28, -18, -74, 58, -3, 40, -27, -34, 30, 28, -1, -22, 2, + 9, -8, -12, 12, 21, -35, -2, -17, 17, 2, -27, 22, -36, 38, -11, 2, + -20, 7, 20, -29, 39, 11, -3, 9, -24, 47, -36, 28, -14, -16, 38, -37, + 12, -15, 18, -69, 56, -31, 17, -16, -18, -13, 21, -6, -9, -25, 37, 6, + -1, -2, 5, -1, -26, 39, 6, -3, -10, 0, 12, 30, -12, -31, 24, 13, + -14, 9, -23, 31, -43, -17, -2, 13, -23, -14, -21, 21, 19, -22, -12, 24, + 41, -26, 10, 12, 19, -3, 9, -12, 26, 12, -52, -4, 16, -3, 0, -43, + 7, 5, -14, -9, 12, -28, 15, -23, -2, 35, -12, -8, -10, 24, 57, -55, + 26, -18, 19, 44, -30, 0, -5, 50, -56, -1, 8, -5, -39, 9, 19, -39, + 38, -73, 30, -1, 2, 16, -24, 6, 29, -71, 70, -18, -6, 8, 31, 4, + -13, 23, -11, 31, -56, 57, -25, 10, 15, -44, -10, 16, -17, -44, 18, -28, + 10, 8, -21, -4, -9, 28, 20, -16, 17, -17, -6, 30, 0, 11, -21, 25, + 25, -1, 31, -56, 31, 14, -32, 2, -19, 4, -17, -26, -13, 42, -59, 15, + -29, 53, -4, 1, -23, 13, 31, 5, -22, 3, 30, -28, 2, -24, 37, 1, + -3, -18, 18, 41, -40, 3, -40, 48, -31, -5, -20, 5, 9, 0, -30, -1, + 26, -15, -5, -6, 51, -25, -27, 7, 44, -11, 10, -32, 14, 46, -31, 6, + -11, 37, -33, -14, 19, -4, 22, -50, 26, -45, 21, 1, -23, 10, -15, 17, + -63, 53, -14, -18, 56, -49, 21, 25, -7, 4, -21, 52, -33, 19, 3, 11, + -9, -7, 0, -49, 22, -17, 25, -10, -11, 5, -19, 35, -26, 20, -7, -21, + 37, -25, 29, -23, 3, 6, 17, -26, 27, 5, -16, 10, -9, -24, 11, -4, + -17, 9, -5, -13, 1, -2, 10, 5, -13, 21, 0, 8, 9, -22, 12, 13, + -24, -3, -22, 42, -18, 3, -4, -15, 1, -2, 8, -17, -13, -2, 1, 23, + 10, -2, -31, 23, 17, -15, -9, -24, 31, 2, 19, -24, 4, -22, 28, -5, + -20, 34, -57, 26, 71, -51, 28, -24, -12, 28, 10, -35, -4, -6, 7, -7, + 8, -52, 61, -52, 7, -9, -21, 9, 18, -19, 3, 34, -53, 56, -29, 20, + -11, 22, 4, -1, 23, 2, 1, 24, -15, 3, -32, 13, 21, -37, 6, -11, + -25, 22, 7, -2, -41, 4, 10, -30, 39, -24, -7, 8, 12, 9, -1, -35, + 13, 3, 9, -18, 21, 26, -14, 41, -8, -35, 31, -29, 17, -20, -12, 20, + -30, 27, -26, 21, -9, -6, 5, -14, 3, -11, 15, 2, 8, -14, -5, 20, + 4, 0, -31, 9, 4, 25, -24, 5, -5, -13, 27, -7, -32, 1, -5, -10, + 28, 7, -4, 11, 10, 22, -3, -22, -15, 6, -3, -3, -27, -25, 5, 8, + -10, -17, 18, -18, 12, 32, -18, 1, 25, -25, 50, 7, 2, 0, -3, -3, + 16, -20, 9, -14, -15, 21, -27, -3, -17, 23, -31, -4, -18, 31, -21, 6, + 0, 18, -16, 27, 3, -7, -17, 17, -15, -11, 19, -16, 6, 1, 12, -18, + 5, -6, 24, 0, -19, 22, -23, 43, -35, 18, 22, -40, 1, 12, -4, -18, + 26, -53, 34, 1, -10, 1, -18, 27, -25, -24, 33, -31, 9, -43, 53, -29, + 33, -17, 5, 23, -7, 2, 23, 29, 1, -8, 20, -10, -1, -22, -3, -17, + 4, 22, -61, -23, 31, -26, -29, -12, 2, -3, 12, 10, 26, 5, -29, 61, + -9, 32, -18, -14, 29, 31, 2, -19, 9, 31, -20, -31, -7, 5, -22, -47, + 31, -40, 15, -39, 22, -27, 40, -78, 31, 4, -19, 33, -13, -8, 41, -1, + 5, -12, 53, -51, 22, -1, 18, 28, -29, -1, 0, 0, 11, 13, -2, -7, + -5, -3, -3, 1, 2, -6, 0, 3, 8, 9, 5, 0, 14, -5, -28, -39, + -39, -36, -37, -27, -43, -49, -13, 4, 6, -7, 0, -1, 3, 23, 39, 29, + 35, 41, 21, 35, 0, 0, 21, 59, 67, 31, 21, 13, -3, 18, 34, 28, + 5, 3, 13, 3, 0, 12, -7, -33, -27, -39, -14, -34, -50, -30, -37, -35, + -53, -74, -70, -61, -62, -62, -50, -44, -61, -36, -3, -23, -15, -12, -17, -20, + -6, 11, -6, -12, -6, -17, 7, 46, 71, 87, 79, 70, 77, 104, 109, 66, + 37, 34, 27, 31, 40, 43, 31, 23, 17, 2, 10, 24, 32, 66, 56, 17, + -13, -55, -54, -21, 19, -19, -56, -77, -37, -27, -10, -6, -38, -36, -37, -3, + 23, 25, 25, 19, 35, 34, -7, -5, 28, 60, 66, 65, 51, 34, 22, 53, + 51, 15, 20, 11, 21, 21, 16, 24, -2, -23, -36, -35, -21, -29, -51, -51, + -47, -57, -85, -80, -70, -100, -97, -82, -78, -76, -64, -51, -56, -54, -49, -70, + -62, -53, -54, -60, -57, -65, -78, -76, -62, -39, 0, 31, 13, 6, 31, 54, + 55, 43, 30, 13, 9, 31, 23, 43, 28, 24, 36, 36, 24, 30, 54, 70, + 113, 103, 75, 4, -3, 40, 55, 50, 23, 9, 25, 29, 48, 41, 29, 14, + 6, 40, 63, 49, 39, 71, 80, 64, 21, 12, 17, 29, 68, 71, 52, 36, + 24, 37, 24, 1, 5, 3, -6, -4, 1, 13, -3, -22, -35, -31, -27, -58, + -59, -43, -55, -71, -76, -71, -88, -103, -95, -98, -85, -77, -68, -71, -58, -50, + -47, -52, -46, -40, -47, -44, -48, -56, -60, -91, -96, -68, -15, -6, -16, 9, + 3, 29, 31, 29, 8, 10, -6, 5, 10, -6, -4, -6, 15, 7, -2, 2, + -5, 30, 91, 107, 74, 8, -3, 14, 27, 32, 26, 17, 21, 18, 34, 49, + 20, -3, 2, 30, 42, 20, 36, 68, 79, 81, 52, 27, 22, 37, 80, 95, + 77, 77, 72, 74, 57, 55, 56, 41, 35, 22, 40, 58, 32, 23, 24, 26, + 0, -7, 6, -2, -16, -26, -31, -45, -46, -64, -77, -79, -73, -72, -75, -59, + -49, -56, -35, -48, -44, -50, -43, -59, -58, -40, -78, -119, -123, -95, -73, -40, + -52, -45, -29, -18, -3, -1, -11, -21, -28, -12, -24, -29, -21, -29, -16, -3, + -5, -30, -40, 1, 69, 96, 78, 31, 14, 23, 17, 19, 33, 20, 9, 9, + 45, 50, 14, 3, 12, 13, 16, 7, 14, 35, 54, 75, 56, 24, 1, 18, + 47, 47, 60, 62, 66, 69, 46, 54, 53, 38, 11, 18, 44, 41, 28, 33, + 37, 22, 14, 15, 13, 13, 1, -1, -13, -6, -11, -38, -33, -47, -40, -46, + -31, -29, -22, -9, -5, -9, 9, 4, -23, -14, -4, -3, -26, -69, -87, -74, + -60, -42, -49, -33, -28, -16, 9, 2, -16, -22, -25, -25, -33, -32, -44, -58, + -41, -11, -19, -51, -77, -43, 24, 47, 49, 34, 21, 5, -9, 5, 18, -10, + -14, 2, 23, 26, -3, -7, -4, 2, -3, -10, -4, -6, 38, 64, 50, 25, + 1, 11, 17, 21, 36, 58, 62, 46, 46, 61, 56, 27, 11, 20, 18, 27, + 15, 31, 26, 23, 17, 7, 16, 0, -9, -10, -3, -8, -14, -25, -36, -56, + -41, -39, -50, -30, -12, -23, -8, 10, 23, 17, -2, 3, 14, 26, 7, -33, + -48, -53, -52, -35, -30, -30, -23, 3, 21, 17, 8, 7, -8, -1, 0, -6, + -29, -50, -26, 10, 5, -38, -64, -41, 5, 22, 49, 63, 38, 20, 13, 26, + 15, -7, -9, -1, 28, 9, 1, -4, -12, -1, -5, -20, -38, -32, 6, 38, + 36, 16, 10, 0, -8, -13, 15, 41, 25, 30, 30, 52, 35, 17, 8, 3, + -5, -5, -6, 4, 7, 4, 4, 3, 3, -20, -25, -23, -28, -22, -18, -47, + -50, -54, -62, -67, -62, -48, -43, -44, -31, -10, 17, 10, -8, 1, 22, 24, + 17, -1, -21, -40, -39, -26, -38, -32, -21, 2, 17, 26, 29, 18, 5, 15, + 35, 19, -11, -37, -9, 33, 17, -6, -30, -23, -10, 22, 65, 73, 71, 47, + 57, 66, 38, 15, 16, 23, 34, 35, 27, 10, 11, 21, 32, -4, -26, -29, + 4, 29, 28, 38, 32, 17, -6, -6, 17, 32, 21, 31, 39, 49, 36, 27, + 25, 13, -1, -11, -8, -1, -15, -11, 4, -7, -9, -14, -38, -46, -35, -31, + -43, -53, -54, -72, -84, -88, -86, -79, -73, -86, -69, -40, -16, -23, -28, -13, + -9, 5, 5, -10, -34, -45, -48, -52, -61, -59, -42, -38, -9, 13, 19, 8, + -14, 18, 42, 28, -18, -31, -3, 11, 21, 13, -9, -17, -22, 9, 57, 71, + 62, 68, 83, 82, 65, 38, 38, 31, 52, 57, 45, 23, 25, 51, 56, 21, + -2, -8, 7, 21, 28, 55, 55, 37, 15, 17, 30, 30, 30, 48, 55, 65, + 55, 54, 61, 42, 24, 22, 13, 6, 6, 4, 4, 17, 19, 1, -20, -23, + -25, -27, -26, -44, -44, -62, -79, -91, -83, -76, -99, -104, -87, -63, -51, -40, + -42, -40, -29, -16, -6, -31, -40, -47, -63, -68, -81, -76, -81, -75, -49, -15, + -5, -34, -38, 2, 15, 8, -29, -43, -33, -18, -11, 8, -9, -42, -45, -14, + 25, 33, 41, 54, 67, 75, 71, 46, 30, 23, 52, 55, 38, 20, 25, 53, + 59, 35, 17, 6, 3, 5, 27, 64, 61, 49, 40, 40, 45, 36, 38, 63, + 69, 69, 77, 85, 78, 76, 63, 48, 38, 42, 28, 15, 30, 35, 41, 27, + 14, 0, -4, -2, -14, -16, -15, -35, -65, -63, -56, -64, -80, -94, -77, -71, + -46, -34, -42, -37, -21, -6, -5, -16, -20, -35, -44, -62, -66, -66, -96, -94, + -58, -26, -32, -44, -50, -14, 2, -9, -26, -41, -53, -49, -27, -5, -28, -59, + -65, -47, -20, -11, 7, 15, 28, 51, 57, 32, 7, 2, 30, 32, 15, 0, + 7, 30, 30, 24, 21, -2, -19, -20, 6, 37, 40, 31, 40, 45, 30, 29, + 35, 49, 52, 69, 74, 78, 89, 79, 72, 62, 60, 51, 37, 29, 29, 42, + 51, 46, 30, 32, 18, 2, 8, 13, 15, -13, -35, -35, -38, -40, -53, -71, + -70, -58, -34, -38, -32, -28, -9, 10, 10, 7, 11, -7, -28, -21, -26, -47, + -80, -84, -49, -18, -28, -38, -32, -8, -4, 4, 3, -23, -46, -44, -19, -5, + -22, -42, -55, -56, -35, -25, -12, -8, 11, 43, 51, 33, 1, 0, 24, 18, + 1, -5, 0, 1, 9, 15, 21, -2, -38, -36, -19, 2, 2, 19, 26, 19, + 20, 10, 11, 20, 31, 37, 49, 62, 64, 61, 60, 61, 50, 51, 32, 10, + 16, 27, 31, 33, 33, 36, 7, -6, 3, 14, 12, -10, -21, -40, -34, -33, + -47, -65, -67, -60, -40, -40, -44, -25, -10, -4, 14, 26, 22, 4, -7, 8, + 8, -22, -67, -65, -33, -19, -24, -20, -18, -8, 1, 26, 30, -2, -22, -25, + -6, 5, -1, -13, -38, -43, -31, -21, -16, -16, 9, 47, 61, 35, 22, 22, + 31, 24, 10, 13, 5, -2, 0, 28, 34, 1, -21, -30, -28, -18, -5, 5, + 18, 20, 14, 6, 6, 12, 9, 20, 33, 39, 51, 51, 42, 51, 51, 48, + 20, 9, 7, 5, 7, 15, 28, 19, -1, -16, -15, -4, 4, -16, -30, -41, + -45, -41, -50, -79, -77, -69, -65, -64, -56, -45, -40, -28, -4, 21, 17, -8, + -9, 21, 16, -18, -56, -58, -44, -39, -24, -22, -28, -22, -4, 29, 31, 13, + -9, -16, -3, 11, 13, 1, -18, -33, -15, -11, -23, -22, 11, 52, 58, 50, + 46, 50, 49, 36, 40, 40, 17, 6, 20, 37, 45, 29, 9, -7, -12, -11, + -6, 9, 30, 25, 26, 26, 17, 19, 15, 21, 24, 46, 55, 47, 43, 56, + 64, 52, 33, 25, 13, -3, 2, 10, 21, 26, 4, -15, -16, -13, -2, -11, + -32, -43, -37, -44, -61, -77, -78, -82, -82, -80, -71, -61, -72, -59, -21, 5, + -2, -27, -10, 15, 7, -14, -44, -59, -67, -55, -37, -38, -50, -45, -23, 5, + 23, 9, -6, -19, -15, 5, 14, 2, -22, -22, -10, -17, -35, -38, -3, 35, + 38, 43, 57, 51, 44, 49, 57, 46, 25, 14, 24, 35, 54, 41, 31, 22, + 1, -7, -4, 12, 23, 34, 37, 35, 35, 36, 26, 24, 33, 55, 62, 53, + 58, 70, 70, 73, 62, 51, 38, 14, 6, 20, 31, 32, 27, 4, -9, -1, + 9, -8, -21, -22, -27, -33, -53, -64, -67, -82, -86, -83, -67, -75, -97, -77, + -36, -15, -27, -32, -18, -1, -1, -6, -31, -62, -73, -68, -52, -52, -68, -69, + -50, -21, -2, 4, -10, -33, -29, -4, 2, -10, -29, -22, -8, -27, -55, -49, + -27, -6, 12, 31, 43, 31, 38, 44, 54, 48, 25, 11, 19, 30, 36, 41, + 41, 29, 11, -1, -9, 0, 15, 27, 34, 36, 46, 46, 26, 27, 39, 51, + 59, 62, 62, 73, 76, 77, 85, 78, 58, 35, 23, 21, 37, 53, 37, 22, + 15, 16, 20, 3, 0, -2, -2, -14, -33, -35, -45, -69, -77, -59, -53, -76, + -96, -74, -41, -30, -25, -26, -19, -4, 7, 11, -8, -40, -62, -62, -51, -55, + -69, -74, -71, -44, -15, -2, -14, -36, -38, -8, -7, -27, -33, -17, -12, -38, + -51, -57, -58, -41, -14, 8, 19, 15, 15, 31, 46, 40, 21, 9, 7, 10, + 20, 25, 33, 28, 16, 1, -18, -13, 0, 6, 12, 30, 39, 39, 26, 20, + 32, 41, 45, 53, 64, 63, 62, 80, 84, 87, 81, 51, 29, 21, 44, 52, + 41, 33, 29, 31, 27, 12, 8, 16, 10, -4, -7, -7, -29, -62, -57, -37, + -44, -68, -81, -70, -48, -33, -23, -22, -17, -5, 16, 31, 14, -15, -33, -42, + -41, -37, -53, -65, -74, -54, -16, 2, -12, -33, -19, -1, -10, -22, -17, -8, + -8, -18, -33, -48, -62, -57, -31, -1, 7, 0, 9, 22, 40, 40, 27, 14, + 4, 3, 10, 14, 21, 31, 20, 0, -13, -19, -17, -15, -7, 12, 29, 28, + 13, 20, 18, 18, 31, 38, 47, 49, 51, 56, 67, 87, 84, 56, 30, 20, + 31, 41, 31, 24, 32, 33, 20, 7, 14, 15, -2, -1, 13, 4, -28, -53, + -45, -34, -38, -59, -75, -72, -58, -44, -26, -26, -29, -8, 14, 34, 28, 10, + -9, -22, -26, -24, -30, -54, -78, -56, -13, -4, -17, -16, -5, 1, -6, -9, + -8, -1, 3, -2, -4, -28, -53, -58, -37, -10, 1, -1, 6, 20, 34, 46, + 40, 25, 19, 11, 7, 10, 23, 33, 28, 16, -3, -3, -17, -31, -14, 4, + 15, 20, 20, 16, 10, 14, 19, 23, 37, 45, 35, 37, 53, 76, 83, 62, + 34, 20, 27, 28, 13, 17, 29, 21, 7, 9, 13, -4, -17, -4, 13, 2, + -27, -53, -47, -39, -46, -56, -77, -87, -77, -58, -45, -46, -47, -33, -6, 17, + 22, 16, 1, -20, -25, -10, -21, -57, -79, -57, -32, -24, -23, -18, -3, -1, + -6, -4, -4, -5, 3, 13, 14, -6, -38, -51, -39, -22, -4, -1, 3, 14, + 32, 45, 46, 46, 33, 25, 15, 9, 28, 38, 32, 28, 26, 14, -9, -21, + -15, -5, 10, 24, 22, 22, 21, 15, 15, 23, 36, 42, 35, 31, 41, 72, + 87, 68, 46, 42, 34, 19, 14, 25, 25, 11, 14, 18, 14, -7, -24, -7, + 12, 4, -19, -41, -47, -44, -41, -52, -74, -92, -88, -72, -59, -63, -68, -53, + -34, -11, 12, 19, -7, -27, -15, -5, -22, -54, -76, -66, -52, -47, -41, -29, + -17, -12, -12, -10, -11, -19, -7, 12, 19, 3, -23, -42, -48, -31, -19, -14, + -6, 1, 20, 35, 39, 50, 51, 33, 16, 17, 30, 31, 32, 41, 39, 28, + 14, -7, -14, -5, 8, 18, 27, 34, 29, 22, 21, 26, 38, 51, 39, 27, + 43, 75, 84, 73, 75, 68, 46, 32, 31, 35, 27, 15, 23, 36, 26, 0, + -13, -4, 12, 14, 1, -23, -36, -36, -32, -36, -60, -83, -84, -70, -67, -70, + -66, -67, -62, -27, 8, 13, -11, -22, -7, 4, -16, -44, -63, -67, -63, -63, + -53, -42, -33, -25, -15, -10, -22, -27, -18, -1, 16, 9, -13, -32, -46, -42, + -31, -30, -24, -8, 5, 11, 25, 49, 50, 33, 25, 20, 21, 24, 29, 34, + 41, 41, 26, 5, -5, -7, -4, 12, 23, 33, 37, 29, 19, 24, 49, 53, + 33, 33, 49, 65, 73, 80, 89, 85, 63, 48, 50, 46, 30, 20, 35, 46, + 39, 17, 0, 2, 15, 23, 18, -2, -20, -24, -12, -19, -45, -60, -66, -70, + -66, -56, -61, -74, -74, -38, 0, 6, -8, -15, 3, 13, -1, -24, -42, -52, + -65, -64, -54, -54, -47, -31, -19, -12, -21, -32, -27, -12, 7, 13, -2, -24, + -36, -37, -44, -47, -32, -20, -18, -9, 12, 30, 38, 35, 26, 18, 17, 16, + 13, 25, 36, 37, 32, 18, 2, -11, -10, -5, 3, 28, 38, 20, 8, 25, + 42, 40, 28, 30, 40, 46, 54, 70, 87, 82, 66, 61, 59, 48, 28, 20, + 32, 43, 43, 24, 8, 1, 7, 23, 25, 3, -13, -9, -8, -15, -28, -40, + -58, -71, -60, -49, -58, -80, -82, -50, -17, -5, -13, -12, 6, 13, 8, -3, + -24, -42, -54, -59, -57, -60, -59, -43, -24, -15, -20, -30, -35, -25, 1, 11, + -2, -12, -18, -33, -48, -49, -41, -37, -32, -21, -8, 13, 27, 27, 27, 23, + 16, 8, 7, 15, 22, 32, 35, 22, 9, 0, -18, -26, -8, 20, 25, 11, + 4, 18, 32, 29, 22, 29, 30, 27, 38, 60, 75, 70, 68, 69, 67, 52, + 30, 19, 27, 36, 40, 34, 10, -2, 6, 21, 20, 4, -2, -4, -7, -9, + -12, -25, -52, -66, -53, -42, -53, -79, -86, -58, -33, -23, -16, -12, 0, 12, + 17, 13, -5, -24, -38, -44, -50, -59, -61, -51, -33, -15, -11, -28, -36, -23, + -4, 5, 5, 7, -3, -17, -31, -40, -38, -37, -36, -29, -14, 4, 15, 25, + 34, 30, 24, 19, 9, 8, 22, 33, 31, 30, 31, 16, -14, -26, -13, 14, + 17, 7, 8, 18, 24, 23, 28, 31, 23, 18, 30, 50, 62, 61, 63, 75, + 73, 59, 40, 23, 20, 30, 43, 35, 11, 0, 8, 15, 12, 6, 3, -6, + -10, -3, -1, -15, -46, -62, -47, -38, -54, -77, -84, -70, -53, -40, -30, -21, + -12, 1, 16, 20, 5, -12, -21, -33, -44, -52, -64, -64, -44, -17, -15, -27, + -30, -26, -15, -3, 6, 12, 9, -2, -17, -26, -29, -36, -41, -32, -21, -10, + 6, 18, 27, 34, 37, 25, 11, 14, 21, 26, 27, 37, 48, 33, -1, -19, + -8, 7, 8, 8, 16, 16, 17, 25, 34, 36, 23, 16, 28, 44, 53, 54, + 61, 74, 79, 75, 56, 30, 19, 31, 45, 35, 15, 9, 9, 9, 11, 9, + 5, -8, -14, 0, 9, -10, -40, -53, -44, -38, -51, -72, -84, -80, -69, -58, + -45, -38, -30, -13, 5, 13, 8, 0, -14, -25, -30, -46, -67, -72, -55, -34, + -26, -28, -31, -31, -26, -17, -4, 9, 11, 2, -4, -12, -22, -33, -38, -40, + -34, -18, -7, 2, 17, 33, 38, 29, 19, 20, 22, 17, 19, 38, 57, 43, + 15, 2, -1, 1, 3, 10, 18, 15, 14, 25, 38, 40, 27, 21, 28, 38, + 46, 50, 55, 66, 81, 90, 71, 40, 30, 37, 44, 39, 26, 18, 12, 8, + 14, 19, 8, -11, -13, 5, 15, -2, -28, -42, -36, -34, -45, -60, -76, -83, + -77, -65, -59, -55, -43, -28, -13, 5, 11, 2, -9, -11, -17, -37, -61, -71, + -65, -49, -38, -36, -34, -35, -36, -32, -16, -2, 1, 3, 0, -7, -13, -25, + -39, -46, -42, -30, -22, -15, 2, 21, 30, 24, 22, 28, 19, 5, 11, 33, + 50, 45, 31, 17, 6, -1, 0, 8, 16, 12, 11, 23, 37, 40, 33, 29, + 29, 33, 45, 48, 46, 58, 83, 97, 84, 59, 45, 46, 47, 46, 42, 31, + 16, 12, 23, 29, 16, -5, -9, 10, 21, 10, -12, -24, -25, -25, -29, -42, + -64, -73, -70, -66, -63, -58, -52, -42, -22, 0, 8, 4, 1, 3, -1, -19, + -44, -61, -63, -57, -50, -39, -33, -37, -39, -36, -27, -14, -4, 0, 0, 0, + -1, -13, -30, -42, -43, -37, -36, -30, -10, 8, 12, 15, 26, 31, 16, 1, + 4, 21, 37, 41, 38, 29, 13, 0, -1, 6, 8, 3, 7, 17, 26, 34, + 35, 27, 24, 32, 40, 37, 32, 45, 72, 89, 86, 70, 57, 48, 45, 49, + 50, 37, 16, 11, 25, 34, 20, -3, -7, 7, 18, 15, 2, -14, -20, -15, + -17, -32, -49, -61, -67, -65, -60, -61, -63, -54, -33, -12, -1, 1, 2, 10, + 12, -3, -26, -43, -57, -60, -54, -45, -38, -38, -39, -39, -35, -23, -13, -6, + -3, 2, 7, -2, -20, -30, -34, -42, -47, -38, -19, -9, -5, 7, 24, 31, + 19, 3, 0, 10, 23, 33, 40, 36, 18, 5, 4, 4, 0, 0, 0, 5, + 16, 29, 30, 22, 22, 31, 36, 27, 21, 32, 54, 74, 81, 77, 65, 49, + 44, 50, 55, 40, 16, 10, 24, 31, 20, 3, -6, -1, 11, 16, 5, -9, + -13, -12, -14, -22, -36, -53, -63, -62, -59, -63, -69, -67, -48, -25, -14, -10, + -1, 10, 16, 10, -6, -26, -45, -54, -55, -50, -42, -39, -39, -40, -39, -29, + -19, -15, -8, 4, 11, 3, -6, -11, -21, -38, -48, -40, -26, -21, -16, -3, + 18, 30, 24, 12, 6, 4, 11, 29, 41, 39, 28, 18, 11, 8, 5, 1, + -4, -2, 11, 25, 25, 19, 23, 33, 35, 25, 17, 23, 39, 57, 74, 81, + 72, 53, 47, 56, 60, 44, 23, 16, 22, 29, 25, 10, -4, -3, 7, 11, + 6, -3, -9, -11, -9, -12, -26, -42, -56, -59, -55, -61, -73, -75, -60, -42, + -32, -23, -12, 0, 12, 15, 7, -10, -30, -46, -53, -53, -46, -41, -43, -45, + -41, -32, -30, -26, -14, -1, 5, 2, 3, 3, -9, -30, -43, -40, -31, -31, + -28, -12, 8, 20, 25, 22, 9, 0, 6, 21, 34, 39, 35, 26, 18, 16, + 14, 4, -7, -5, 9, 21, 19, 16, 23, 35, 37, 28, 20, 20, 26, 43, + 67, 82, 74, 57, 54, 62, 63, 52, 33, 21, 23, 30, 28, 14, 1, -1, + 3, 8, 7, -1, -7, -9, -6, -5, -15, -34, -49, -51, -51, -60, -72, -76, + -70, -57, -46, -37, -25, -13, 3, 14, 14, 3, -15, -33, -48, -52, -47, -45, + -49, -49, -41, -37, -39, -35, -21, -10, -5, -2, 6, 12, 1, -19, -32, -34, + -36, -39, -34, -23, -9, 9, 23, 25, 14, 3, 2, 12, 25, 36, 37, 30, + 24, 25, 24, 10, -5, -4, 9, 18, 15, 14, 23, 34, 38, 36, 30, 19, + 15, 32, 61, 78, 75, 63, 60, 67, 71, 62, 42, 29, 30, 33, 32, 20, + 8, 4, 6, 8, 8, 3, -5, -9, -2, 3, -7, -25, -37, -42, -45, -54, + -66, -74, -74, -67, -58, -49, -40, -27, -9, 5, 13, 13, 0, -21, -39, -45, + -44, -49, -54, -50, -44, -44, -47, -42, -29, -21, -19, -11, 5, 12, 4, -8, + -18, -28, -36, -40, -40, -36, -24, -4, 14, 21, 17, 7, 0, 3, 17, 32, + 34, 29, 28, 34, 33, 17, 0, 0, 9, 13, 12, 14, 20, 27, 38, 46, + 39, 21, 11, 24, 51, 71, 74, 66, 64, 73, 78, 71, 54, 40, 38, 41, + 38, 28, 17, 11, 9, 12, 14, 7, -3, -5, 3, 9, 2, -12, -23, -28, + -35, -45, -55, -65, -71, -68, -62, -57, -50, -37, -22, -7, 10, 20, 12, -8, + -24, -32, -39, -48, -52, -49, -45, -49, -52, -44, -34, -33, -30, -18, -3, 5, + 5, 1, -8, -19, -29, -37, -43, -45, -37, -18, 0, 13, 18, 10, -1, -3, + 10, 24, 26, 23, 29, 38, 37, 21, 8, 5, 6, 8, 10, 12, 11, 16, + 34, 49, 46, 27, 10, 15, 38, 59, 67, 63, 63, 72, 81, 77, 61, 48, + 45, 45, 42, 35, 23, 13, 11, 17, 18, 9, -3, -5, 3, 10, 6, -3, + -12, -19, -24, -34, -46, -57, -64, -65, -66, -63, -56, -48, -39, -22, 1, 17, + 16, 3, -8, -17, -30, -44, -47, -44, -47, -53, -52, -44, -41, -41, -38, -28, + -14, -3, 3, 3, -2, -9, -17, -28, -42, -49, -46, -34, -17, 3, 14, 9, + -3, -6, 5, 15, 13, 15, 26, 36, 35, 25, 16, 8, 2, 4, 9, 6, + 1, 4, 22, 43, 48, 31, 11, 7, 24, 45, 55, 54, 55, 68, 79, 77, + 66, 54, 48, 47, 47, 41, 27, 14, 11, 18, 20, 10, -2, -6, 0, 7, + 8, 2, -6, -12, -14, -23, -38, -49, -55, -62, -66, -63, -60, -59, -53, -37, + -12, 8, 13, 10, 7, -4, -21, -35, -37, -39, -47, -53, -51, -45, -44, -44, + -42, -36, -24, -10, 0, 2, 1, 1, -3, -15, -30, -42, -49, -45, -30, -6, + 10, 7, -2, -3, 5, 9, 6, 11, 23, 32, 35, 33, 25, 14, 6, 9, + 12, 8, -2, -4, 13, 36, 48, 39, 18, 7, 17, 34, 43, 45, 50, 62, + 74, 78, 71, 59, 51, 49, 52, 48, 32, 16, 12, 19, 21, 13, 1, -6, + -5, 2, 6, 2, -4, -6, -9, -18, -29, -40, -51, -60, -65, -63, -63, -68, + -68, -53, -30, -12, 0, 10, 13, 3, -14, -25, -29, -35, -45, -52, -52, -49, + -47, -47, -47, -46, -35, -20, -10, -5, -1, 4, 4, -4, -15, -30, -47, -54, + -41, -15, 1, 0, -2, 2, 6, 4, 3, 7, 16, 26, 35, 38, 32, 20, + 12, 14, 18, 12, -1, -8, 3, 27, 46, 44, 26, 14, 17, 28, 35, 38, + 44, 55, 69, 78, 77, 66, 55, 54, 60, 58, 41, 24, 17, 19, 23, 20, + 7, -4, -4, 0, 2, 1, 0, -2, -4, -10, -17, -28, -42, -55, -59, -56, + -61, -72, -74, -63, -47, -32, -14, 5, 13, 7, -4, -12, -19, -28, -38, -46, + -51, -50, -46, -47, -51, -52, -43, -30, -20, -13, -5, 0, 4, 4, 2, -13, + -40, -55, -47, -25, -12, -8, -3, 3, 5, 4, 2, 3, 7, 18, 32, 41, + 36, 25, 18, 21, 25, 21, 5, -9, -3, 19, 41, 45, 34, 24, 23, 27, + 30, 33, 38, 47, 62, 78, 82, 72, 61, 61, 67, 66, 54, 37, 24, 23, + 28, 25, 15, 5, 0, 0, 0, 1, 2, 2, -1, -4, -5, -15, -34, -47, + -49, -49, -58, -69, -73, -70, -63, -51, -30, -8, 5, 7, 3, -4, -11, -20, + -29, -41, -49, -50, -46, -49, -54, -56, -50, -42, -33, -22, -13, -10, -6, 5, + 12, -1, -30, -50, -50, -38, -27, -18, -10, -3, 1, 2, 2, -2, -4, 6, + 24, 36, 36, 27, 19, 22, 30, 28, 10, -8, -10, 9, 30, 39, 35, 30, + 26, 26, 28, 29, 29, 35, 53, 73, 80, 74, 65, 63, 69, 72, 64, 47, + 33, 28, 29, 28, 21, 12, 6, 2, -2, 1, 4, 1, -2, 2, 6, -4, + -23, -35, -38, -42, -51, -60, -66, -70, -71, -63, -45, -23, -5, 4, 6, 3, + -2, -7, -18, -32, -42, -43, -43, -47, -52, -54, -53, -51, -42, -27, -20, -21, + -14, 4, 17, 10, -13, -35, -45, -44, -37, -26, -17, -11, -3, 3, 3, -3, + -9, -4, 13, 31, 35, 27, 19, 23, 34, 36, 19, -3, -10, 2, 19, 31, + 35, 33, 29, 30, 32, 28, 22, 26, 43, 63, 76, 75, 67, 65, 71, 75, + 70, 57, 43, 36, 34, 30, 26, 21, 14, 5, 1, 4, 3, -2, -2, 6, + 11, 3, -11, -22, -29, -36, -43, -50, -57, -67, -74, -72, -60, -40, -19, -5, + 2, 4, 6, 3, -8, -23, -32, -35, -40, -45, -47, -51, -57, -58, -47, -33, + -30, -32, -24, -5, 13, 14, 1, -18, -36, -45, -42, -35, -27, -20, -11, 0, + 3, -3, -12, -12, 1, 21, 31, 25, 16, 20, 34, 40, 26, 5, -7, -6, + 7, 21, 27, 26, 27, 31, 33, 27, 17, 15, 28, 50, 65, 68, 64, 62, + 68, 74, 72, 61, 51, 44, 35, 29, 28, 25, 15, 7, 5, 5, -1, -8, + -5, 3, 8, 4, -4, -12, -22, -32, -38, -42, -50, -61, -72, -77, -73, -57, + -36, -20, -11, -2, 7, 8, -3, -14, -22, -30, -38, -41, -42, -49, -60, -62, + -52, -41, -40, -41, -34, -18, 0, 11, 10, -3, -23, -38, -42, -40, -36, -31, + -20, -6, 2, -1, -13, -19, -9, 12, 25, 20, 12, 17, 30, 39, 34, 17, + -2, -8, 1, 13, 19, 21, 23, 31, 37, 32, 18, 10, 18, 36, 55, 62, + 60, 60, 67, 73, 72, 68, 61, 51, 41, 35, 34, 28, 18, 12, 11, 8, + -2, -9, -7, 0, 4, 5, 3, -3, -14, -24, -31, -36, -41, -50, -64, -77, + -80, -68, -51, -37, -26, -11, 3, 6, 2, -3, -13, -24, -32, -33, -34, -46, + -60, -62, -54, -47, -46, -47, -43, -31, -13, 4, 12, 6, -9, -23, -34, -39, + -40, -38, -29, -14, 0, 2, -11, -22, -15, 4, 17, 16, 11, 13, 25, 39, + 41, 28, 9, -3, 0, 9, 15, 15, 19, 30, 40, 39, 26, 12, 11, 28, + 45, 54, 56, 60, 66, 70, 73, 74, 69, 58, 49, 45, 42, 32, 22, 18, + 19, 14, 3, -6, -7, -4, 0, 5, 6, 3, -5, -14, -24, -30, -32, -38, + -53, -71, -78, -72, -63, -54, -39, -22, -8, 1, 6, 6, -4, -18, -25, -23, + -25, -39, -54, -58, -54, -49, -49, -50, -49, -42, -26, -7, 7, 9, 2, -9, + -20, -30, -38, -43, -39, -22, -2, 3, -9, -20, -16, -2, 11, 14, 10, 10, + 20, 36, 46, 40, 22, 8, 6, 11, 13, 12, 15, 26, 41, 46, 36, 20, + 14, 24, 38, 47, 54, 60, 64, 69, 76, 81, 76, 66, 60, 58, 53, 40, + 30, 27, 27, 22, 12, 3, -3, -4, -1, 4, 8, 8, 5, -4, -15, -21, + -21, -25, -41, -58, -69, -71, -70, -64, -51, -35, -23, -9, 5, 10, 1, -13, + -17, -15, -19, -32, -46, -54, -54, -51, -50, -52, -55, -53, -40, -22, -6, 3, + 4, -2, -10, -19, -32, -47, -49, -32, -11, -3, -10, -20, -20, -10, 2, 7, + 5, 2, 10, 28, 42, 41, 29, 16, 10, 11, 11, 7, 6, 17, 35, 45, + 39, 26, 18, 19, 26, 37, 47, 53, 56, 61, 73, 81, 76, 68, 65, 65, + 59, 46, 36, 31, 28, 25, 19, 9, -1, -6, -4, -1, 2, 8, 9, 0, + -10, -15, -14, -18, -32, -46, -57, -68, -74, -71, -61, -51, -41, -23, -2, 8, + 2, -8, -11, -10, -13, -23, -37, -48, -53, -51, -49, -53, -59, -60, -53, -37, + -19, -7, -3, -2, -1, -6, -22, -43, -52, -42, -21, -9, -12, -20, -23, -16, + -4, 3, -1, -6, 0, 18, 34, 40, 33, 22, 16, 16, 13, 5, 0, 9, + 27, 39, 40, 32, 24, 18, 19, 29, 40, 44, 46, 55, 69, 77, 75, 71, + 70, 70, 65, 55, 45, 37, 32, 30, 26, 17, 7, 0, -5, -6, -1, 8, + 11, 4, -5, -7, -7, -13, -21, -30, -44, -59, -69, -69, -65, -63, -56, -36, + -13, 1, 1, -4, -6, -5, -6, -12, -25, -40, -47, -47, -46, -50, -56, -62, + -61, -48, -30, -18, -12, -6, 4, 6, -7, -32, -49, -46, -30, -16, -12, -19, + -25, -20, -7, 0, -3, -9, -7, 8, 26, 36, 34, 27, 24, 24, 19, 7, + -2, 4, 18, 31, 38, 38, 30, 20, 18, 26, 34, 35, 38, 48, 62, 71, + 73, 72, 73, 72, 70, 64, 53, 43, 38, 35, 30, 23, 16, 7, -4, -10, + -4, 6, 8, 3, -1, -2, -4, -9, -12, -19, -33, -51, -61, -65, -69, -73, + -70, -52, -30, -13, -6, -5, -7, -5, -2, -5, -17, -31, -41, -45, -44, -45, + -53, -64, -67, -58, -43, -31, -26, -17, -1, 10, 3, -19, -41, -48, -39, -23, + -16, -21, -27, -24, -12, -3, -5, -13, -15, -3, 16, 28, 29, 26, 28, 31, + 24, 10, 0, 0, 8, 20, 33, 38, 32, 22, 19, 24, 28, 28, 30, 40, + 52, 61, 68, 71, 72, 73, 73, 69, 59, 51, 45, 39, 32, 28, 26, 15, + 0, -9, -5, 2, 4, 2, 1, -1, -4, -6, -5, -10, -24, -41, -50, -56, + -66, -76, -77, -66, -47, -27, -15, -11, -10, -5, 0, -1, -8, -20, -33, -40, + -40, -40, -48, -62, -70, -64, -51, -43, -39, -29, -11, 7, 10, -5, -28, -43, + -41, -28, -20, -22, -29, -28, -17, -6, -5, -14, -20, -12, 6, 19, 22, 23, + 30, 35, 31, 20, 8, 0, 1, 13, 29, 37, 33, 26, 25, 27, 27, 25, + 26, 33, 43, 54, 63, 67, 70, 74, 76, 72, 66, 61, 54, 44, 37, 36, + 34, 24, 8, -3, -4, -2, 0, 2, 3, -1, -5, -3, 2, -2, -16, -29, + -36, -44, -57, -70, -79, -76, -60, -41, -27, -19, -14, -8, -1, 3, 0, -10, + -24, -33, -33, -32, -40, -55, -65, -63, -56, -51, -48, -40, -23, -1, 12, 7, + -13, -32, -37, -29, -21, -21, -28, -29, -19, -6, -2, -12, -20, -14, 0, 11, + 16, 22, 30, 37, 38, 33, 21, 7, 0, 9, 26, 36, 35, 32, 32, 32, + 31, 28, 27, 30, 38, 50, 58, 63, 70, 78, 79, 76, 74, 72, 64, 53, + 46, 45, 44, 34, 20, 9, 3, -1, 1, 7, 7, 0, -4, 2, 8, 5, + -5, -15, -23, -30, -41, -58, -73, -77, -68, -53, -38, -28, -21, -14, -5, 4, + 7, -1, -15, -25, -25, -24, -32, -48, -59, -61, -59, -57, -57, -54, -39, -16, + 4, 8, -5, -24, -33, -30, -24, -24, -32, -35, -26, -11, -6, -14, -20, -19, + -10, -2, 5, 13, 21, 29, 37, 40, 30, 11, 0, 4, 17, 27, 30, 31, + 31, 32, 32, 29, 23, 23, 31, 40, 45, 52, 63, 72, 74, 73, 75, 75, + 67, 56, 51, 50, 46, 38, 29, 18, 6, -3, -1, 5, 3, -4, -7, -2, + 4, 5, -2, -11, -17, -21, -30, -47, -66, -78, -77, -66, -53, -42, -34, -27, + -16, -3, 6, 1, -12, -21, -21, -21, -28, -42, -54, -60, -60, -61, -65, -67, + -57, -35, -11, 1, -3, -18, -30, -30, -25, -27, -36, -41, -32, -19, -13, -17, + -22, -22, -19, -14, -6, 2, 7, 17, 31, 41, 34, 17, 3, 1, 8, 17, + 23, 25, 26, 30, 32, 28, 22, 21, 25, 30, 34, 42, 54, 63, 66, 70, + 77, 77, 69, 61, 57, 55, 49, 44, 39, 28, 11, 2, 2, 5, 3, -3, + -8, -4, 3, 6, 2, -4, -9, -11, -16, -31, -52, -68, -75, -71, -61, -50, + -43, -38, -26, -8, 5, 4, -6, -13, -14, -13, -19, -31, -44, -51, -52, -55, + -64, -71, -67, -49, -24, -4, -1, -12, -22, -21, -18, -22, -33, -39, -33, -22, + -16, -16, -17, -19, -20, -16, -9, -4, -2, 5, 18, 31, 37, 32, 21, 11, + 9, 12, 17, 20, 24, 28, 32, 31, 28, 26, 26, 26, 28, 34, 43, 51, + 57, 65, 74, 77, 75, 72, 68, 63, 59, 56, 53, 44, 31, 19, 12, 11, + 8, 3, -2, -3, 0, 4, 5, 2, 0, -1, -3, -11, -25, -42, -58, -66, + -65, -59, -54, -51, -42, -27, -11, -2, -3, -6, -7, -7, -9, -16, -27, -36, + -40, -44, -52, -63, -70, -66, -49, -28, -15, -13, -16, -16, -13, -16, -24, -31, + -33, -29, -24, -19, -17, -19, -20, -18, -14, -13, -12, -6, 7, 22, 33, 35, + 28, 18, 12, 12, 14, 17, 21, 27, 31, 31, 30, 30, 28, 25, 25, 30, + 36, 42, 49, 58, 67, 74, 76, 75, 71, 66, 62, 60, 59, 53, 41, 29, + 19, 14, 11, 7, 1, -3, -2, 1, 3, 3, 1, 0, 0, -3, -11, -26, + -44, -59, -65, -63, -60, -57, -52, -41, -25, -11, -4, -4, -6, -6, -6, -9, + -17, -27, -35, -39, -44, -53, -65, -71, -65, -47, -28, -16, -15, -16, -15, -14, + -17, -25, -32, -33, -29, -24, -19, -17, -19, -20, -18, -14, -13, -12, -6, -2, + 1, 6, 5, 21, 46, 42, 15, 0, 5, 34, 48, 29, -4, -31, -33, -17, + 26, 49, 32, 0, -21, -15, 14, 24, 24, 16, 0, 3, 11, 11, 11, 5, + 9, 9, 8, 11, 30, 27, 22, 7, -3, -3, 10, 2, -2, -4, -13, -4, + -4, -2, -2, -3, -7, -6, -14, -15, -14, -14, -13, -3, -14, -16, -18, -13, + -15, -16, -22, -20, -14, -3, -6, -4, -14, -11, -6, -10, -15, -15, -16, -9, + -10, -19, -3, -5, -17, -15, -18, -16, -14, -14, -12, -15, -7, -22, -19, -17, + -20, -11, -17, -14, -11, -8, -10, -13, -12, -11, -6, -6, -9, 1, 1, -3, + 0, 6, -2, -9, 7, -8, 8, 4, 3, 1, -6, -2, -2, 2, -5, -7, + -4, -7, -8, -9, -6, -6, 0, -8, -12, -12, -13, -8, -4, -7, -3, -11, + -6, -15, -7, -9, -9, -3, -10, -8, -9, -15, -10, -2, 2, -7, -16, -17, + -15, -13, -9, -6, -5, -7, -9, -15, -17, -12, -19, -12, -8, -8, -4, -6, + -3, 0, -4, -11, -13, -7, -6, -2, 4, 4, 8, 10, 4, 3, 3, 4, + 7, 12, 11, 14, 15, 20, 20, 18, 16, 17, 15, 14, 15, 22, 23, 28, + 34, 29, 28, 17, 22, 24, 23, 25, 28, 28, 30, 24, 19, 16, 13, 18, + 20, 15, 8, 2, 3, 0, 2, 0, -3, -2, -9, -20, -23, -25, -24, -23, + -27, -33, -38, -39, -44, -36, -42, -44, -48, -53, -54, -56, -52, -50, -40, -35, + -44, -43, -44, -39, -28, -24, -23, -22, -15, -9, 2, 11, 19, 28, 31, 31, + 32, 35, 43, 61, 70, 78, 81, 73, 78, 78, 78, 85, 82, 85, 88, 87, + 84, 83, 83, 79, 74, 62, 49, 45, 42, 43, 44, 38, 30, 18, 6, -5, + -15, -17, -15, -22, -28, -38, -46, -48, -50, -58, -59, -72, -80, -83, -89, -88, + -89, -87, -81, -84, -93, -105, -110, -109, -110, -102, -96, -82, -65, -62, -60, -60, + -60, -51, -43, -37, -28, -16, 1, 15, 28, 35, 41, 46, 53, 56, 60, 66, + 77, 91, 101, 102, 101, 99, 104, 103, 97, 91, 86, 90, 91, 86, 85, 79, + 75, 71, 59, 48, 39, 35, 33, 32, 28, 22, 15, 13, 7, 3, -7, -15, + -16, -18, -19, -23, -28, -29, -33, -37, -47, -52, -56, -63, -61, -70, -67, -70, + -72, -72, -80, -93, -91, -99, -103, -96, -108, -105, -109, -112, -94, -81, -73, -67, + -71, -77, -69, -63, -57, -38, -27, -15, 0, 4, 6, 19, 26, 41, 53, 49, + 56, 58, 69, 84, 91, 95, 101, 103, 98, 93, 85, 87, 102, 102, 103, 95, + 81, 78, 78, 71, 66, 60, 51, 50, 44, 39, 34, 34, 32, 27, 15, 0, + -6, -8, -3, -3, -11, -10, -18, -21, -26, -35, -39, -38, -44, -48, -53, -63, + -61, -61, -71, -63, -86, -89, -86, -107, -99, -109, -108, -109, -108, -121, -128, -105, + -102, -83, -67, -88, -82, -76, -78, -62, -47, -41, -19, -6, 1, 7, 13, 33, + 44, 64, 61, 59, 68, 73, 93, 98, 107, 114, 109, 123, 107, 100, 105, 100, + 111, 117, 100, 93, 92, 86, 85, 80, 70, 59, 58, 47, 38, 41, 33, 40, + 38, 25, 16, 1, -2, -3, -3, -4, -10, -16, -12, -21, -28, -28, -36, -38, + -39, -52, -61, -61, -67, -63, -65, -76, -77, -86, -95, -95, -107, -109, -112, -112, + -121, -121, -122, -105, -79, -80, -71, -80, -84, -73, -70, -56, -43, -28, -10, 6, + 11, 17, 31, 43, 63, 69, 69, 65, 77, 88, 101, 113, 112, 127, 122, 122, + 115, 104, 112, 116, 122, 117, 106, 99, 97, 96, 94, 86, 75, 70, 61, 53, + 44, 41, 46, 47, 45, 28, 19, 9, 5, 9, 1, -8, -14, -20, -24, -26, + -28, -29, -36, -39, -42, -45, -41, -42, -45, -46, -49, -47, -50, -55, -53, -61, + -63, -67, -83, -78, -89, -91, -88, -100, -93, -108, -110, -110, -115, -90, -100, -91, + -80, -91, -73, -62, -60, -41, -33, -36, -25, -16, -9, 8, 18, 35, 40, 57, + 61, 66, 95, 94, 106, 114, 105, 117, 111, 117, 118, 115, 120, 111, 109, 111, + 104, 102, 106, 93, 88, 76, 66, 63, 52, 53, 31, 27, 25, 5, 12, 1, + -5, 0, -15, -17, -23, -27, -27, -31, -31, -37, -44, -41, -43, -43, -35, -45, + -43, -41, -50, -49, -51, -57, -58, -62, -72, -76, -79, -81, -82, -86, -92, -94, + -100, -109, -110, -102, -99, -96, -83, -96, -83, -67, -73, -45, -41, -42, -27, -27, + -19, -5, 7, 14, 30, 44, 46, 57, 75, 84, 98, 108, 102, 112, 114, 110, + 120, 115, 116, 117, 108, 112, 107, 104, 108, 99, 96, 90, 73, 69, 66, 57, + 48, 36, 26, 18, 13, 6, -3, 3, -8, -14, -15, -26, -25, -26, -33, -33, + -40, -45, -45, -45, -42, -43, -44, -45, -48, -46, -55, -57, -58, -62, -67, -73, + -78, -80, -81, -82, -89, -93, -99, -106, -108, -115, -100, -95, -103, -77, -91, -85, + -59, -63, -48, -32, -36, -33, -18, -14, -6, 11, 21, 27, 47, 55, 56, 81, + 92, 96, 114, 106, 111, 116, 110, 121, 113, 115, 115, 105, 111, 106, 101, 103, + 100, 92, 84, 74, 66, 60, 58, 43, 29, 29, 13, 9, 10, -6, -2, -6, + -16, -18, -22, -27, -30, -30, -35, -44, -43, -46, -46, -42, -44, -48, -45, -46, + -50, -54, -51, -61, -63, -61, -85, -76, -80, -94, -75, -98, -97, -93, -111, -103, + -106, -97, -97, -90, -79, -93, -73, -64, -67, -39, -38, -41, -20, -20, -12, 11, + 10, 30, 40, 48, 62, 62, 85, 91, 99, 111, 101, 112, 111, 113, 120, 112, + 119, 111, 108, 114, 101, 102, 104, 89, 91, 79, 63, 67, 56, 52, 41, 29, + 26, 12, 14, 3, -5, 1, -14, -15, -19, -27, -24, -30, -31, -34, -43, -43, + -45, -48, -40, -48, -48, -45, -51, -49, -53, -56, -57, -63, -69, -76, -86, -80, + -86, -90, -87, -98, -101, -101, -108, -103, -88, -96, -88, -77, -89, -70, -60, -56, + -39, -34, -30, -26, -11, -4, 6, 26, 27, 42, 54, 57, 72, 86, 95, 105, + 107, 108, 112, 109, 116, 118, 112, 117, 108, 109, 107, 104, 103, 99, 97, 83, + 77, 71, 57, 60, 49, 35, 30, 21, 11, 11, 4, -2, -3, -13, -17, -22, + -24, -28, -29, -29, -39, -39, -44, -44, -41, -45, -44, -50, -49, -49, -56, -50, + -60, -62, -55, -82, -70, -82, -90, -80, -95, -95, -100, -105, -112, -112, -93, -102, + -91, -81, -91, -77, -60, -65, -45, -33, -40, -25, -21, -14, 5, 10, 30, 35, + 49, 61, 61, 87, 94, 102, 109, 109, 112, 112, 116, 117, 116, 118, 116, 106, + 113, 108, 101, 110, 96, 91, 84, 69, 66, 58, 54, 38, 29, 26, 12, 11, + 6, -2, -2, -8, -16, -20, -23, -27, -28, -33, -34, -44, -43, -43, -47, -39, + -44, -47, -43, -47, -49, -50, -52, -57, -58, -68, -75, -76, -83, -86, -86, -91, + -97, -98, -103, -109, -102, -91, -99, -84, -81, -93, -65, -66, -60, -37, -42, -33, + -25, -18, -9, 6, 16, 28, 41, 49, 57, 68, 84, 93, 102, 106, 106, 110, + 107, 116, 114, 111, 119, 106, 111, 108, 101, 104, 99, 94, 85, 76, 68, 61, + 56, 49, 34, 28, 21, 10, 10, 2, -3, -3, -13, -15, -24, -26, -28, -34, + -31, -42, -45, -43, -48, -44, -43, -47, -47, -47, -48, -51, -57, -57, -63, -70, + -72, -80, -86, -81, -92, -88, -96, -103, -100, -113, -110, -96, -101, -96, -79, -91, + -82, -59, -68, -47, -34, -39, -29, -18, -13, -5, 18, 22, 32, 54, 52, 64, + 83, 90, 100, 108, 109, 110, 113, 113, 116, 113, 117, 113, 106, 111, 103, 100, + 101, 98, 86, 82, 73, 59, 61, 53, 36, 34, 24, 12, 10, 5, -5, -3, + -8, -17, -18, -24, -27, -29, -30, -35, -40, -41, -45, -43, -43, -42, -45, -46, + -44, -50, -49, -55, -58, -55, -71, -70, -79, -87, -77, -92, -88, -95, -104, -100, + -115, -107, -91, -105, -85, -83, -97, -67, -68, -65, -37, -43, -33, -29, -21, -9, + 0, 18, 23, 35, 55, 48, 69, 87, 86, 108, 107, 103, 117, 106, 117, 118, + 113, 122, 109, 111, 111, 102, 110, 101, 98, 92, 77, 73, 62, 59, 54, 34, + 34, 21, 11, 15, 2, 2, 2, -14, -12, -23, -26, -26, -33, -30, -40, -44, + -42, -49, -41, -41, -44, -43, -46, -49, -51, -59, -54, -63, -67, -64, -84, -79, + -76, -91, -82, -87, -100, -100, -101, -118, -101, -89, -107, -81, -82, -93, -65, -57, + -57, -36, -26, -39, -17, -9, -13, 14, 21, 26, 45, 53, 54, 76, 88, 95, + 111, 106, 111, 114, 109, 120, 115, 115, 116, 110, 105, 109, 104, 98, 105, 94, + 83, 81, 68, 60, 62, 49, 32, 33, 18, 9, 12, 0, -3, -3, -13, -18, + -20, -24, -27, -26, -31, -37, -40, -42, -42, -43, -42, -44, -48, -48, -47, -51, + -54, -52, -56, -64, -68, -75, -84, -79, -89, -91, -93, -104, -105, -110, -114, -97, + -97, -96, -78, -89, -81, -58, -66, -47, -34, -40, -31, -23, -14, -6, 14, 22, + 31, 54, 55, 63, 87, 91, 103, 113, 105, 111, 113, 109, 119, 112, 117, 114, + 106, 113, 106, 105, 105, 99, 93, 81, 74, 61, 58, 55, 36, 30, 25, 10, + 11, 6, -5, 1, -8, -16, -19, -25, -27, -32, -32, -37, -44, -41, -47, -43, + -39, -43, -44, -45, -46, -46, -56, -53, -55, -72, -64, -74, -91, -72, -88, -97, + -80, -100, -105, -100, -111, -111, -88, -100, -99, -74, -97, -79, -54, -68, -43, -32, + -41, -26, -10, -16, 6, 22, 19, 41, 51, 49, 69, 86, 88, 103, 107, 100, + 119, 110, 111, 125, 110, 115, 115, 104, 108, 106, 99, 98, 98, 82, 76, 71, + 60, 60, 52, 34, 30, 25, 9, 11, 3, -6, 0, -15, -18, -21, -27, -27, + -30, -31, -38, -39, -43, -43, -39, -43, -44, -46, -47, -47, -54, -53, -59, -58, + -65, -71, -75, -81, -75, -90, -83, -90, -100, -95, -111, -109, -101, -97, -100, -84, + -86, -89, -62, -64, -50, -34, -37, -30, -21, -11, -8, 10, 19, 26, 47, 49, + 59, 76, 89, 99, 107, 109, 110, 115, 113, 119, 115, 114, 115, 106, 111, 103, + 103, 101, 98, 94, 81, 78, 65, 63, 59, 43, 34, 25, 17, 10, 7, -4, + -3, -6, -14, -16, -23, -24, -28, -29, -33, -41, -41, -46, -43, -40, -44, -44, + -46, -46, -47, -50, -54, -56, -58, -69, -70, -76, -83, -75, -87, -87, -91, -100, + -100, -109, -108, -97, -98, -93, -83, -88, -76, -61, -59, -43, -36, -33, -28, -18, + -11, -4, 14, 21, 31, 52, 51, 63, 84, 90, 101, 111, 104, 113, 113, 111, + 118, 112, 114, 109, 108, 109, 102, 106, 101, 98, 94, 79, 74, 66, 58, 55, + 39, 29, 24, 13, 11, 5, -4, 0, -10, -15, -17, -24, -25, -28, -29, -34, + -41, -41, -47, -42, -44, -46, -45, -50, -45, -50, -55, -48, -60, -60, -65, -76, + -77, -83, -84, -91, -92, -94, -106, -103, -109, -106, -89, -101, -82, -81, -88, -63, + -66, -54, -36, -40, -31, -25, -16, -7, 6, 17, 30, 41, 55, 56, 73, 89, + 92, 109, 104, 106, 114, 104, 117, 113, 110, 116, 105, 108, 106, 100, 102, 98, + 94, 85, 74, 67, 59, 55, 48, 31, 28, 19, 10, 12, 0, 2, -2, -11, + -11, -21, -21, -26, -30, -30, -40, -43, -43, -44, -40, -39, -41, -43, -42, -46, + -52, -52, -58, -63, -65, -75, -79, -83, -80, -89, -85, -88, -101, -94, -104, -114, + -93, -97, -104, -78, -92, -89, -60, -68, -48, -36, -36, -26, -21, -8, -5, 12, + 23, 26, 47, 50, 54, 77, 85, 96, 109, 102, 114, 112, 109, 125, 112, 114, + 118, 102, 110, 103, 99, 101, 96, 92, 79, 76, 66, 59, 61, 43, 32, 31, + 14, 10, 9, -5, -2, -9, -17, -18, -28, -25, -31, -31, -31, -42, -38, -43, + -41, -39, -43, -44, -47, -45, -48, -51, -53, -54, -61, -64, -67, -77, -76, -82, + -81, -89, -93, -97, -106, -108, -105, -96, -99, -88, -82, -92, -67, -64, -60, -38, + -38, -36, -24, -20, -16, 4, 11, 21, 36, 46, 53, 66, 85, 88, 103, 108, + 102, 115, 107, 112, 115, 109, 114, 104, 106, 106, 99, 102, 101, 92, 89, 81, + 67, 66, 58, 47, 39, 28, 21, 11, 12, 2, -2, 2, -12, -12, -17, -25, + -24, -29, -30, -36, -39, -41, -41, -41, -39, -41, -44, -44, -47, -51, -52, -54, + -59, -63, -65, -75, -79, -75, -90, -81, -89, -99, -92, -109, -109, -105, -99, -97, + -92, -80, -90, -71, -58, -60, -37, -32, -37, -19, -15, -14, 9, 14, 23, 42, + 46, 56, 67, 83, 96, 100, 111, 106, 111, 114, 111, 117, 111, 112, 109, 103, + 107, 100, 99, 103, 92, 88, 82, 65, 66, 59, 48, 39, 27, 22, 12, 9, + 5, -5, 0, -12, -16, -17, -26, -25, -26, -31, -34, -40, -41, -41, -41, -40, + -42, -47, -43, -46, -46, -52, -50, -52, -61, -59, -74, -75, -77, -83, -84, -91, + -92, -105, -100, -106, -109, -81, -103, -86, -73, -96, -64, -62, -59, -38, -39, -36, + -28, -15, -11, 3, 18, 25, 37, 53, 53, 67, 89, 85, 106, 103, 98, 115, + 99, 114, 115, 103, 116, 103, 104, 109, 98, 101, 98, 91, 84, 75, 67, 60, + 55, 50, 31, 28, 20, 7, 15, 0, -3, 2, -15, -12, -19, -25, -24, -32, + -32, -38, -44, -44, -45, -42, -41, -44, -43, -46, -44, -44, -58, -48, -63, -67, + -63, -87, -75, -83, -90, -81, -94, -95, -95, -107, -109, -99, -95, -99, -85, -85, + -90, -68, -62, -60, -36, -34, -39, -15, -13, -9, 14, 15, 29, 42, 50, 55, + 68, 87, 91, 101, 107, 106, 110, 113, 114, 115, 114, 112, 108, 105, 106, 98, + 98, 100, 88, 84, 75, 63, 63, 57, 46, 34, 28, 18, 10, 8, 0, -5, + -5, -15, -19, -20, -26, -26, -26, -31, -36, -40, -42, -43, -42, -39, -44, -44, + -42, -44, -47, -51, -52, -54, -65, -63, -76, -81, -68, -93, -84, -85, -104, -92, + -105, -109, -95, -95, -96, -84, -82, -84, -64, -64, -52, -39, -37, -33, -23, -11, + -9, 10, 20, 25, 49, 46, 60, 76, 82, 98, 101, 104, 110, 108, 108, 116, + 111, 111, 113, 104, 108, 106, 101, 98, 99, 92, 80, 79, 63, 61, 59, 41, + 35, 27, 18, 13, 9, 2, 0, -5, -12, -15, -20, -22, -26, -27, -30, -38, + -39, -42, -40, -39, -40, -40, -45, -43, -47, -49, -54, -53, -57, -70, -59, -80, + -77, -72, -93, -75, -91, -99, -93, -105, -108, -97, -92, -99, -80, -84, -84, -61, + -59, -49, -35, -28, -34, -14, -9, -10, 19, 17, 27, 47, 47, 61, 72, 87, + 95, 105, 104, 110, 111, 109, 117, 109, 111, 109, 103, 103, 102, 97, 95, 100, + 85, 81, 77, 61, 64, 55, 42, 34, 26, 17, 10, 9, -3, -2, -5, -13, + -15, -20, -23, -27, -27, -32, -37, -38, -41, -40, -41, -39, -43, -43, -40, -48, + -47, -49, -55, -61, -59, -70, -80, -69, -87, -83, -79, -97, -89, -98, -101, -107, + -96, -93, -101, -77, -90, -84, -62, -63, -49, -36, -34, -30, -15, -12, -2, 11, + 20, 32, 39, 53, 56, 71, 87, 89, 103, 101, 109, 109, 109, 118, 106, 114, + 111, 101, 107, 102, 93, 99, 94, 84, 85, 71, 65, 62, 54, 45, 32, 30, + 16, 12, 8, -5, -2, -9, -14, -16, -24, -22, -27, -29, -31, -38, -41, -38, + -44, -42, -41, -47, -45, -44, -48, -50, -50, -52, -62, -57, -69, -79, -69, -83, + -88, -78, -99, -97, -92, -109, -106, -91, -100, -93, -76, -91, -80, -60, -66, -48, + -37, -38, -32, -18, -15, -4, 11, 14, 31, 42, 48, 60, 69, 85, 94, 96, + 102, 107, 103, 109, 115, 104, 112, 109, 100, 106, 103, 95, 97, 96, 84, 82, + 73, 60, 62, 54, 41, 33, 27, 17, 14, 7, 0, 0, -8, -11, -16, -23, + -23, -29, -29, -32, -39, -40, -40, -40, -41, -40, -46, -48, -45, -50, -51, -54, + -56, -64, -63, -71, -78, -73, -84, -82, -87, -95, -93, -102, -102, -108, -95, -96, + -95, -76, -90, -77, -57, -61, -42, -33, -35, -26, -13, -14, 3, 15, 17, 36, + 45, 54, 60, 80, 89, 96, 108, 101, 111, 110, 109, 118, 107, 110, 109, 102, + 103, 103, 95, 97, 96, 83, 82, 70, 60, 61, 51, 38, 28, 23, 11, 8, + 4, -7, -3, -10, -16, -17, -22, -25, -27, -29, -35, -38, -43, -42, -41, -40, + -39, -43, -42, -44, -45, -46, -53, -51, -55, -68, -65, -75, -79, -77, -88, -83, + -94, -93, -101, -105, -96, -96, -92, -85, -85, -83, -71, -64, -57, -41, -41, -31, + -27, -17, -7, 2, 18, 23, 38, 48, 51, 68, 78, 91, 98, 102, 106, 108, + 110, 112, 115, 110, 115, 107, 107, 108, 99, 102, 97, 94, 87, 76, 70, 63, + 60, 49, 39, 30, 22, 16, 8, 4, 0, -4, -10, -14, -20, -24, -25, -31, + -30, -37, -41, -40, -41, -38, -39, -40, -42, -41, -43, -48, -44, -55, -58, -57, + -71, -71, -73, -78, -79, -80, -88, -89, -95, -99, -103, -101, -88, -98, -85, -79, + -90, -62, -60, -54, -35, -35, -27, -21, -9, -3, 7, 22, 26, 38, 52, 54, + 67, 87, 89, 101, 105, 103, 114, 107, 117, 112, 107, 116, 100, 105, 103, 94, + 98, 93, 87, 80, 73, 65, 59, 56, 45, 31, 28, 19, 6, 10, -3, -5, + -4, -17, -16, -22, -24, -25, -30, -28, -39, -37, -40, -44, -40, -44, -46, -46, + -47, -51, -50, -55, -55, -60, -67, -65, -81, -75, -78, -93, -78, -97, -101, -94, + -113, -104, -92, -96, -91, -79, -86, -79, -58, -58, -49, -34, -34, -33, -14, -12, + -5, 20, 19, 34, 49, 49, 66, 76, 91, 98, 98, 105, 104, 107, 111, 110, + 109, 108, 108, 103, 101, 102, 97, 95, 96, 80, 75, 71, 56, 58, 49, 33, + 28, 20, 13, 7, 4, -4, -7, -9, -18, -22, -22, -28, -30, -30, -38, -41, + -41, -43, -40, -41, -40, -44, -43, -45, -48, -49, -55, -55, -59, -67, -66, -82, + -70, -81, -86, -78, -101, -92, -98, -111, -98, -95, -95, -89, -76, -91, -70, -56, + -61, -38, -34, -33, -25, -12, -10, 1, 21, 15, 39, 47, 48, 68, 75, 90, + 97, 101, 103, 106, 106, 110, 111, 104, 111, 101, 99, 103, 96, 94, 95, 92, + 75, 79, 64, 55, 64, 43, 36, 30, 17, 13, 9, 3, -4, -3, -12, -16, + -18, -23, -25, -26, -29, -35, -38, -42, -40, -39, -41, -38, -48, -42, -45, -50, + -49, -52, -57, -63, -57, -78, -76, -67, -94, -75, -88, -100, -92, -103, -106, -97, + -88, -96, -81, -77, -85, -60, -55, -51, -35, -30, -33, -19, -9, -10, 17, 16, + 30, 46, 48, 64, 72, 86, 96, 101, 104, 105, 111, 104, 116, 109, 107, 110, + 104, 101, 104, 100, 93, 100, 86, 77, 78, 59, 60, 54, 40, 32, 23, 18, + 9, 9, 0, -5, -6, -14, -17, -20, -23, -25, -26, -31, -35, -39, -40, -36, + -40, -37, -40, -45, -42, -45, -48, -51, -50, -57, -64, -62, -76, -78, -71, -90, + -84, -88, -101, -97, -105, -108, -94, -97, -92, -81, -87, -76, -63, -58, -42, -36, + -33, -27, -15, -10, -2, 18, 19, 34, 49, 47, 66, 78, 86, 102, 104, 104, + 111, 109, 112, 115, 112, 110, 108, 106, 101, 102, 98, 96, 97, 86, 79, 72, + 62, 61, 51, 39, 32, 20, 15, 10, 2, 1, -4, -9, -13, -18, -22, -24, + -25, -29, -33, -37, -41, -39, -37, -39, -39, -43, -46, -46, -49, -49, -56, -54, + -57, -68, -66, -73, -77, -79, -83, -90, -96, -95, -107, -110, -98, -97, -98, -76, + -87, -83, -56, -68, -49, -34, -43, -28, -26, -18, -8, 3, 14, 22, 39, 47, + 54, 70, 83, 90, 101, 100, 104, 107, 102, 113, 103, 106, 109, 95, 106, 99, + 95, 101, 92, 93, 83, 74, 66, 60, 56, 44, 33, 26, 17, 12, 8, 1, + 2, -4, -11, -10, -21, -19, -25, -29, -28, -39, -38, -41, -41, -37, -40, -42, + -43, -42, -45, -47, -48, -56, -52, -59, -69, -67, -78, -78, -79, -88, -86, -95, + -100, -99, -112, -95, -92, -101, -77, -86, -86, -62, -65, -51, -39, -35, -31, -26, + -8, -11, 7, 26, 21, 45, 53, 50, 76, 86, 90, 105, 102, 105, 109, 108, + 115, 107, 112, 110, 100, 108, 100, 96, 100, 93, 89, 79, 72, 64, 58, 56, + 42, 31, 28, 14, 10, 9, -5, -2, -6, -14, -15, -22, -22, -27, -28, -31, + -41, -37, -41, -42, -37, -41, -45, -43, -45, -47, -48, -49, -58, -53, -64, -71, + -68, -82, -75, -83, -91, -87, -103, -97, -104, -111, -90, -98, -95, -77, -91, -76, + -61, -63, -43, -41, -35, -29, -23, -7, -7, 13, 22, 24, 50, 50, 59, 82, + 82, 99, 102, 100, 110, 105, 111, 113, 104, 114, 103, 104, 107, 96, 102, 97, + 92, 90, 77, 73, 64, 58, 53, 38, 31, 23, 13, 12, 3, 0, -2, -11, + -10, -17, -21, -20, -29, -27, -33, -40, -38, -44, -39, -39, -43, -41, -42, -42, + -46, -42, -53, -53, -52, -71, -67, -73, -83, -80, -81, -89, -93, -91, -100, -106, + -97, -96, -93, -88, -81, -85, -79, -59, -58, -48, -30, -36, -28, -11, -9, -2, + 21, 22, 32, 50, 52, 58, 79, 89, 90, 104, 104, 100, 113, 111, 109, 114, + 109, 107, 103, 104, 99, 94, 97, 91, 78, 79, 65, 58, 61, 47, 37, 30, + 23, 14, 10, 7, -7, -4, -8, -21, -17, -23, -30, -26, -30, -36, -37, -39, + -38, -38, -36, -38, -45, -41, -45, -49, -51, -56, -57, -63, -64, -69, -78, -70, + -80, -84, -84, -91, -100, -98, -106, -108, -90, -103, -90, -80, -93, -65, -64, -52, + -38, -37, -27, -26, -12, -6, 3, 18, 22, 36, 48, 54, 69, 84, 89, 105, + 103, 106, 117, 105, 117, 113, 106, 113, 101, 105, 101, 99, 98, 93, 94, 83, + 75, 70, 60, 55, 49, 33, 27, 19, 10, 8, -2, -2, -7, -13, -12, -22, + -20, -23, -28, -28, -35, -39, -40, -41, -40, -42, -40, -43, -42, -42, -44, -46, + -49, -52, -59, -60, -70, -74, -71, -84, -82, -88, -96, -98, -100, -105, -102, -88, + -95, -83, -79, -87, -62, -62, -52, -40, -39, -31, -27, -14, -10, 7, 17, 25, + 42, 49, 59, 72, 85, 92, 103, 103, 102, 111, 104, 113, 110, 104, 112, 102, + 107, 103, 101, 99, 97, 92, 81, 76, 64, 61, 54, 42, 33, 24, 17, 11, + 8, -2, -2, -5, -13, -12, -22, -23, -26, -31, -32, -38, -40, -43, -39, -40, + -41, -40, -44, -41, -44, -47, -51, -49, -62, -55, -68, -78, -68, -89, -79, -81, + -96, -85, -101, -100, -103, -98, -91, -97, -79, -83, -87, -61, -64, -55, -31, -41, + -29, -15, -19, 3, 9, 18, 33, 36, 56, 54, 71, 87, 87, 103, 103, 103, + 110, 107, 113, 112, 108, 111, 101, 104, 103, 92, 101, 92, 84, 84, 66, 65, + 59, 51, 45, 31, 27, 16, 10, 6, -3, -3, -9, -15, -16, -22, -24, -25, + -30, -28, -36, -40, -36, -42, -38, -41, -45, -44, -47, -47, -49, -51, -52, -54, + -62, -68, -73, -78, -81, -84, -83, -97, -94, -101, -113, -100, -99, -96, -87, -83, + -85, -75, -60, -60, -43, -36, -38, -27, -20, -15, 0, 14, 19, 33, 47, 49, + 67, 78, 90, 100, 103, 105, 107, 108, 110, 112, 109, 109, 107, 102, 105, 100, + 99, 98, 95, 84, 80, 69, 59, 60, 48, 36, 31, 18, 14, 9, 3, -2, + -5, -10, -15, -19, -24, -25, -28, -31, -34, -39, -41, -40, -38, -40, -38, -43, + -43, -42, -48, -47, -53, -54, -58, -67, -63, -79, -73, -78, -90, -80, -98, -97, + -101, -109, -105, -93, -98, -90, -76, -93, -66, -60, -59, -33, -42, -32, -26, -18, + -9, 0, 17, 21, 38, 48, 53, 69, 82, 93, 101, 107, 102, 112, 108, 111, + 115, 105, 112, 103, 105, 104, 96, 103, 95, 95, 85, 76, 68, 63, 59, 47, + 38, 26, 19, 13, 7, 1, -3, -4, -14, -12, -19, -23, -21, -29, -29, -35, + -40, -41, -42, -39, -43, -42, -46, -43, -47, -45, -48, -54, -47, -66, -61, -68, + -85, -66, -90, -84, -84, -103, -91, -106, -105, -96, -90, -92, -81, -79, -86, -59, + -59, -53, -34, -36, -33, -19, -10, -10, 17, 20, 26, 52, 48, 60, 75, 85, + 95, 102, 104, 102, 111, 107, 113, 110, 109, 111, 103, 107, 102, 97, 96, 95, + 85, 77, 73, 56, 60, 52, 37, 33, 22, 16, 11, 7, -3, -4, -6, -16, + -14, -21, -24, -24, -28, -32, -37, -38, -42, -36, -37, -39, -39, -43, -40, -42, + -48, -50, -50, -64, -57, -70, -84, -63, -90, -81, -77, -101, -85, -99, -105, -102, + -100, -92, -99, -79, -89, -86, -58, -65, -49, -29, -41, -26, -11, -19, 6, 12, + 14, 39, 37, 52, 60, 68, 90, 90, 104, 102, 106, 111, 108, 118, 109, 109, + 111, 98, 106, 101, 90, 101, 90, 82, 86, 63, 65, 63, 48, 47, 29, 25, + 16, 10, 6, -6, -3, -13, -18, -16, -26, -25, -25, -32, -30, -39, -43, -37, + -43, -39, -39, -48, -44, -46, -53, -50, -56, -59, -59, -67, -72, -77, -76, -84, + -83, -84, -100, -95, -103, -115, -98, -93, -103, -82, -82, -91, -60, -62, -54, -34, + -35, -31, -23, -13, -11, 7, 19, 21, 43, 48, 55, 73, 85, 94, 104, 102, + 109, 110, 105, 118, 107, 109, 113, 98, 106, 103, 96, 99, 98, 90, 82, 79, + 62, 62, 58, 41, 34, 26, 14, 10, 8, -3, -2, -5, -14, -13, -20, -20, + -24, -26, -28, -38, -39, -42, -42, -41, -41, -42, -48, -41, -43, -50, -41, -49, + -59, -50, -68, -74, -67, -82, -80, -89, -87, -101, -101, -93, -121, -85, -90, -105, + -65, -93, -82, -55, -69, -49, -38, -46, -32, -27, -19, -5, 3, 19, 26, 41, + 53, 52, 81, 81, 95, 104, 90, 113, 101, 105, 118, 99, 113, 109, 100, 109, + 104, 98, 104, 96, 89, 83, 71, 66, 57, 56, 38, 28, 29, 8, 17, 6, + -2, 3, -24, -13, -79, -103, -120, -116, -104, -87, -76, -63, 63, 82, 97, 108, + 119, 99, 70, 69, 80, 91, 92, 98, 115, 124, 127, 113, 82, 42, 4, -44, + -70, -82, -100, -87, -62, -58, -71, -65, -79, -60, -102, -113, -62, -44, -31, -31, + -22, -18, -3, 4, 11, 20, 28, 11, 15, 18, 27, 18, 7, 13, 26, 11, + -19, -69, -108, -84, -51, -21, -3, -6, -18, -17, -31, -33, -18, 2, 4, 26, + 47, 48, 77, 117, 127, 127, 127, 121, 110, 86, 72, 62, 46, 11, 17, -2, + -7, -13, -44, -60, -61, -61, -63, -72, -79, -99, -116, -127, -128, -128, -124, -81, + -51, -4, 5, -6, 7, 8, 9, 31, 31, 16, 34, 28, 34, 34, 46, 78, + 84, 93, 69, 47, 40, 64, 44, 27, 22, 0, -29, -8, 15, -6, -36, -66, + -68, -42, 0, 6, 1, 13, 24, 41, 64, 58, 50, 40, 4, 0, 3, -24, + -3, 21, 28, 26, 9, -30, -42, -61, -85, -92, -91, -96, -87, -74, -31, -20, + -38, -14, -44, -17, 18, -25, -9, 7, 1, 11, -2, -19, 12, 47, 76, 72, + 58, 68, 69, 82, 86, 76, 58, 9, -23, -12, -7, -22, -2, 0, -9, -2, + -15, -10, -3, -22, -17, -38, -44, -33, -24, -27, -16, 0, -15, 20, 19, 18, + 1, 10, 41, -1, -25, -25, -11, 30, 37, 9, 45, 37, -30, -30, 21, 5, + -26, -43, -56, -42, -48, -48, -29, -62, -76, -42, -23, -12, -14, 8, 45, 36, + 40, 25, 14, 11, 40, 46, 55, 65, 30, 17, 30, 36, 33, 18, 13, 16, + 15, 46, 37, 2, -1, -26, -36, -19, -21, -36, -62, -51, -48, -20, -2, 3, + -12, -12, -10, -35, -37, -49, -22, 14, 61, 40, 60, 75, 33, 41, 48, 38, + 29, -32, -45, -56, -64, -61, -30, -20, 30, 10, -46, -37, -35, -30, -24, -12, + -23, -34, -29, -22, -20, -14, 4, 44, 77, 49, 10, 8, 24, 20, 28, 31, + 27, 40, 35, 69, 39, 54, 38, 26, 22, 43, 36, 7, 14, 2, -25, -50, + -51, -56, -42, -55, -46, -36, -44, -36, -35, 1, 23, 11, -3, -34, -66, -33, + -12, -31, -27, -13, -1, 21, 31, 23, 0, -11, -3, -2, 9, 27, 5, -8, + -2, -17, -13, 10, 9, 3, 35, 32, 43, 24, 15, 2, -15, -9, -5, 2, + 5, 27, 25, 42, 76, 61, 17, 25, 14, -5, -17, -24, -6, 11, 23, 7, + -8, 5, -11, -23, -27, -48, -30, -12, -26, -36, -37, -39, -46, -61, -55, -23, + -20, -22, -14, -10, -16, -16, -22, -11, -3, -14, -34, -16, 9, 28, 25, 50, + 63, 52, 56, 46, 50, 54, 56, 45, 54, 29, 20, 21, 0, 0, 6, 16, + 28, 14, -1, -9, -10, -4, -9, -13, -7, -21, -27, -29, -40, -41, -35, -42, + -64, -11, 9, 2, -12, -24, -37, -40, -34, -29, -34, -12, -26, -20, -6, -4, + 5, 5, 27, 1, -17, 2, 21, 12, 8, 9, 15, 23, 24, 1, 5, 22, + 25, 28, 57, 55, 41, 33, 36, 27, 5, 1, 15, 34, 23, 4, 20, 18, + -1, -21, -22, -15, -17, -8, -6, -6, -12, -15, -26, 1, 29, -8, -40, -52, + -55, -19, -21, -36, -48, -56, -29, -15, -29, -39, -46, -35, -14, -11, -16, 1, + 27, 22, -10, -14, -7, -12, -12, 23, 55, 48, 65, 42, 20, 46, 45, 49, + 42, 38, 34, 25, 33, 21, 10, 38, 40, 26, 22, 37, 33, 12, 4, 7, + -14, -49, -41, -36, -53, -40, -35, -44, -31, -22, -19, -50, -78, -80, -78, -48, + -31, -18, -27, -28, -7, -17, -11, 5, 32, 39, 19, 14, 22, 34, 37, 23, + 20, 40, 40, 27, 14, 11, 7, 29, 34, 19, 32, 7, -15, -12, -24, -12, + 8, 6, 21, 34, 29, -6, -22, -15, 1, -1, 24, 27, 20, 36, 42, 45, + 27, -14, -50, -34, -14, -26, -25, -10, 10, -4, -28, -30, -34, -69, -91, -85, + -74, -51, -38, -24, -19, -9, -7, -30, -35, -30, -36, -12, 25, 32, 44, 50, + 45, 51, 68, 94, 90, 74, 60, 52, 64, 48, 30, 11, 11, 11, 2, 14, + 24, 16, 13, -7, -17, -9, -12, -20, -32, -45, -54, -58, -35, -23, -46, -51, + -33, -28, -29, -24, -36, -30, -24, -22, -20, -13, -9, -14, -7, 10, 26, 22, + 9, 9, 10, -2, -9, -15, -11, -1, 19, 27, 33, 28, 5, 3, 5, 6, + 10, 14, 24, 32, 36, 40, 41, 37, 19, 11, 3, -7, -10, -7, 6, 27, + 38, 28, 23, 16, 18, 15, -7, -33, -20, -13, -24, -25, -19, -15, -26, -52, + -56, -48, -41, -36, -30, -32, -30, -15, -38, -49, -47, -32, -17, -17, -11, -3, + 3, 8, 24, 28, 16, 6, 1, 7, 28, 41, 42, 69, 87, 78, 73, 62, + 30, 14, 9, 7, 15, 32, 20, 10, -8, -20, 2, 9, -2, 5, 12, -4, + -12, -19, -32, -37, -29, -24, -28, -39, -43, -40, -44, -28, -25, -33, -39, -37, + -34, -29, -28, -25, -19, -1, -5, -22, -12, 2, 6, 38, 46, 25, 30, 41, + 47, 37, 21, 7, -7, -8, 11, 39, 48, 43, 35, 27, 25, 22, -1, -22, + -11, 13, -4, -13, -3, -8, -7, -11, -17, -5, 5, 9, 8, 15, 25, 16, + 22, 20, 5, -16, -27, -29, -30, -9, 9, 9, 3, -14, -50, -56, -56, -79, + -92, -80, -57, -24, 12, 10, 11, 4, -22, -21, -13, -2, 4, 10, 15, 8, + 35, 72, 53, 44, 25, 25, 48, 56, 69, 53, 50, 75, 85, 71, 33, 12, + -16, -32, -25, -14, -5, -16, -23, -19, -22, -39, -41, -47, -45, -33, -35, -39, + -38, -35, -34, -29, -28, -28, -23, -10, -7, -9, -11, -18, -5, 13, 1, -13, + -8, -5, 6, 27, 46, 43, 25, 8, 11, 16, 18, 23, 30, 12, 5, 10, + 7, 5, -6, -4, -5, 1, 10, 9, 15, 21, 17, 10, -8, -16, 10, 33, + 34, 23, 13, 17, 17, 9, 11, 7, -4, -8, -8, -22, -27, -26, -19, -7, + -18, -16, -16, -47, -62, -55, -36, -16, -25, -33, -30, -34, -42, -49, -41, -43, + -31, -20, -3, 28, 48, 66, 64, 36, 20, 26, 21, 22, 39, 51, 45, 39, + 40, 53, 56, 39, 24, 16, 12, 16, 24, 27, 16, 13, 7, -18, -33, -50, + -47, -33, -24, -20, -26, -32, -31, -46, -53, -58, -56, -29, -13, -11, -2, 8, + -11, -24, -11, -9, -6, -2, -6, 1, 4, 5, 11, 6, 7, 16, 30, 28, + 19, 15, 7, 4, 11, 27, 22, 6, 9, 11, 3, 4, 17, 27, 18, 11, + 12, 5, 2, -2, -6, -7, -2, 10, 12, 9, 1, -2, 3, 4, 11, 21, + 30, 28, 6, -9, -18, -22, -22, -38, -41, -27, -18, -18, -27, -27, -23, -32, + -35, -32, -34, -30, -25, -24, -18, -9, -5, 5, -5, -26, -19, -11, -4, 11, + 37, 48, 46, 50, 53, 50, 45, 45, 37, 18, 24, 44, 38, 43, 47, 29, + 15, 11, 10, 12, 4, -8, -6, -4, -17, -27, -28, -36, -34, -37, -53, -53, + -46, -38, -38, -37, -28, -24, -23, -37, -42, -30, 0, 20, 18, 12, 14, 9, + 2, 6, 15, 13, 10, 14, 12, 2, 12, 29, 21, 1, 7, 21, 19, 14, + 15, 15, 4, -1, 5, -1, -4, 0, -2, 3, 6, 6, 13, 21, 15, 7, + 3, 5, 2, -3, 3, 3, 5, 8, 10, 16, 14, -1, -7, 2, 11, 12, + -10, -35, -42, -26, -21, -37, -44, -44, -47, -42, -27, -27, -23, -15, -16, -20, + -21, -14, -12, -9, -7, -6, 0, 13, 30, 32, 37, 38, 31, 24, 25, 43, + 54, 49, 46, 44, 40, 41, 30, 9, -1, 6, 22, 31, 22, 9, 0, -14, + -23, -29, -29, -28, -35, -39, -39, -39, -33, -25, -30, -44, -49, -45, -45, -35, + -19, 2, 16, 16, 9, 0, 0, 6, 2, -1, 11, 27, 40, 32, 16, -2, + -2, 1, 3, 1, 7, 12, 6, 8, 11, 5, -1, -2, -1, 1, 8, 10, + 5, 4, 14, 17, 6, -1, 0, 4, 4, 17, 23, 19, 25, 20, 5, -8, + -9, -2, -1, -6, -3, 13, 16, 1, -13, -19, -21, -26, -34, -37, -23, -13, + -13, -24, -40, -42, -40, -39, -29, -22, -21, -18, -12, -2, 18, 24, 10, 0, + -6, -4, 15, 33, 34, 34, 44, 41, 31, 33, 44, 43, 31, 22, 20, 17, + 16, 23, 22, 19, 21, 10, -5, -6, -9, -8, -2, -5, -16, -28, -36, -47, + -53, -39, -23, -21, -24, -32, -43, -39, -34, -24, -18, -14, -11, -12, -6, 10, + 29, 41, 40, 27, 14, 10, 4, 1, 3, 2, 9, 19, 21, 9, -10, -16, + -10, 8, 18, 20, 13, -3, -8, -4, -1, 2, 5, 5, -1, 3, 9, 12, + 16, 16, 14, 9, 3, 5, 10, 4, -6, 1, 6, 5, 13, 20, 11, 1, + -7, -21, -30, -25, -12, -9, -13, -19, -24, -29, -34, -30, -32, -39, -33, -24, + -20, -22, -24, -13, 3, 6, 2, 1, 3, 5, 16, 30, 35, 35, 24, 16, + 15, 19, 31, 37, 33, 28, 29, 29, 30, 26, 20, 15, 13, 10, 10, 12, + 9, 7, -3, -21, -39, -44, -43, -42, -34, -26, -23, -18, -12, -18, -32, -36, + -31, -27, -20, -10, -7, -9, -11, -5, 2, 12, 19, 19, 25, 24, 11, 3, + 15, 29, 30, 20, 9, 1, -1, 1, 5, 2, -3, -2, 0, -6, -18, -27, + -20, -3, 8, 13, 15, 11, 7, 10, 18, 16, 10, 6, 3, -1, 1, 11, + 19, 19, 15, 14, 5, -2, -2, -7, -12, -15, -20, -16, -10, -5, 2, 1, + -13, -29, -33, -24, -10, -6, -13, -18, -23, -31, -32, -26, -22, -18, -13, -3, + 2, 3, 7, 8, 10, 19, 27, 32, 33, 33, 35, 38, 43, 41, 29, 9, + -4, -9, 2, 16, 17, 13, 15, 17, 13, 10, 5, -1, -8, -18, -29, -32, + -27, -21, -22, -30, -31, -31, -33, -31, -27, -18, -7, -6, -15, -16, -8, -1, + 4, 12, 18, 22, 20, 16, 11, 10, 14, 18, 16, 15, 14, 9, 6, 4, + 3, 3, 0, -5, -13, -18, -15, -13, -9, -7, -8, -5, -2, -5, -1, 5, + 8, 10, 11, 12, 17, 19, 16, 10, 4, 4, 8, 8, 8, 13, 14, 9, + 3, 0, -1, 0, 0, -7, -19, -24, -20, -15, -12, -15, -21, -23, -24, -26, + -28, -29, -28, -21, -10, -1, 5, 6, -3, -12, -14, -11, -1, 12, 16, 17, + 28, 36, 28, 20, 25, 27, 24, 25, 28, 21, 15, 11, 3, 4, 12, 11, + 0, -7, -5, -1, -1, -5, -8, -11, -17, -23, -22, -19, -21, -20, -20, -22, + -24, -22, -17, -20, -24, -20, -10, 2, 10, 13, 14, 14, 11, 8, 8, 12, + 17, 18, 20, 20, 14, 4, -1, -2, -1, 3, 11, 12, 6, 0, -9, -20, + -25, -18, -9, -8, -13, -18, -19, -14, -6, 0, 4, 11, 19, 22, 20, 19, + 15, 13, 14, 18, 17, 12, 7, 9, 14, 9, -1, -4, -1, -5, -10, -12, + -16, -23, -19, -7, -5, -10, -10, -11, -19, -27, -24, -14, -6, -3, -10, -21, + -24, -15, -6, 0, 9, 15, 12, 8, 6, 9, 9, 11, 20, 26, 31, 35, + 30, 21, 16, 16, 13, 6, 2, 4, 5, 3, -2, -10, -13, -11, -8, -9, + -13, -16, -18, -18, -19, -22, -18, -8, -3, -1, 0, -5, -11, -10, -9, -11, + -9, -2, 2, 4, 10, 15, 18, 19, 21, 21, 22, 22, 15, 4, -4, -8, + -7, -6, -10, -14, -18, -23, -20, -15, -8, -1, 0, -4, -7, -9, -9, -6, + -2, 2, 6, 7, 4, 1, 0, 7, 13, 11, 14, 22, 22, 15, 8, 2, + 4, 10, 16, 17, 13, 10, 9, 6, -3, -13, -23, -26, -21, -17, -14, -12, + -13, -16, -14, -9, -8, -8, -11, -18, -18, -12, -4, 0, 2, 6, 6, -1, + -6, 0, 8, 11, 13, 11, 6, 6, 9, 13, 16, 16, 15, 10, 7, 10, + 10, 4, 0, -2, -3, -1, 2, 2, -1, -5, -13, -21, -27, -30, -26, -16, + -4, 5, 8, 6, 2, -3, -5, -1, 4, 8, 9, 11, 11, 6, 0, 0, + 7, 12, 13, 11, 7, 1, -4, -3, 0, 5, 6, 5, -2, -10, -13, -13, + -10, -5, -4, -9, -18, -28, -31, -24, -14, -10, -4, 2, 5, 4, 2, 4, + 13, 20, 21, 19, 14, 11, 11, 12, 13, 14, 15, 17, 18, 18, 14, 5, + -3, -5, -8, -11, -11, -12, -15, -15, -13, -13, -15, -13, -12, -15, -16, -11, + -7, -6, -4, -1, 4, 6, -1, -10, -11, -7, -4, -1, 4, 9, 11, 12, + 9, 7, 8, 8, 7, 9, 13, 15, 12, 4, 1, 1, -2, -9, -10, -7, + -1, 3, 3, -1, -9, -12, -9, -5, 1, 3, -2, -10, -10, -7, -4, 2, + 8, 6, 4, 6, 5, -1, -1, 7, 17, 20, 17, 16, 19, 16, 7, -3, + -8, -9, -9, -11, -15, -24, -27, -20, -15, -12, -11, -7, -3, -4, -6, -7, + -6, -8, -14, -18, -18, -15, -10, -5, 3, 12, 18, 20, 17, 11, 10, 16, + 21, 22, 23, 23, 22, 17, 9, 0, -3, 2, 10, 15, 16, 11, 2, -9, + -19, -23, -22, -15, -10, -8, -11, -13, -15, -17, -19, -18, -15, -10, -3, 1, + -2, -6, -3, 0, -3, -3, 0, 6, 10, 9, 7, 4, -1, -4, 0, 10, + 17, 16, 11, 5, 0, -1, 2, 5, 1, -6, -10, -10, -8, -6, -4, -2, + -4, -7, -9, -9, -6, 2, 12, 17, 16, 11, 8, 7, 6, 5, 7, 9, + 12, 14, 14, 9, 3, -1, -3, -5, -4, 0, 4, -1, -10, -18, -24, -29, + -28, -20, -14, -13, -12, -8, -5, -5, -9, -13, -14, -11, -10, -9, -4, 1, + 3, 2, 3, 8, 16, 20, 18, 13, 10, 14, 24, 29, 29, 27, 23, 17, + 14, 16, 17, 15, 9, -1, -7, -10, -14, -18, -16, -11, -8, -7, -8, -12, + -18, -26, -29, -26, -19, -11, -5, -3, -3, -2, 0, 2, 0, -3, -3, -2, + -3, -4, -2, -1, 3, 7, 9, 8, 7, 3, 1, 4, 5, 2, 3, 5, + 5, 0, -7, -9, -6, -1, 5, 9, 8, 3, -2, -6, -5, 3, 9, 12, + 11, 8, 4, 3, 4, 6, 11, 13, 8, 1, 0, 4, 9, 13, 12, 5, + 2, 3, 3, 0, -6, -16, -26, -30, -28, -26, -22, -18, -17, -19, -22, -24, + -19, -12, -7, -2, 1, 0, -2, -4, -5, -2, 4, 10, 14, 15, 15, 16, + 16, 17, 19, 22, 26, 25, 19, 13, 10, 7, 9, 11, 10, 7, 4, 1, + -5, -8, -8, -4, 0, 1, -4, -11, -16, -17, -16, -14, -12, -10, -11, -14, + -15, -16, -13, -9, -3, 1, 2, 1, 0, 0, -3, -9, -13, -10, -8, -7, + -4, 0, 3, 6, 9, 9, 5, 3, 3, 5, 8, 12, 12, 6, -1, -2, + 2, 8, 8, 4, -2, -5, -1, 4, 10, 13, 14, 13, 13, 14, 14, 12, + 10, 8, 8, 8, 6, 6, 9, 6, -1, -9, -15, -19, -22, -24, -23, -25, + -25, -23, -20, -19, -19, -21, -20, -20, -21, -19, -11, -2, 2, 1, 0, 3, + 9, 13, 15, 16, 14, 10, 5, 3, 8, 14, 16, 18, 20, 22, 24, 21, + 15, 9, 6, 8, 14, 18, 15, 9, 4, 1, 0, -2, -4, -4, -3, -3, + -4, -7, -11, -13, -12, -11, -15, -19, -22, -25, -25, -21, -14, -11, -15, -19, + -18, -14, -7, -1, 4, 2, -3, -6, -4, 0, 5, 10, 16, 17, 12, 7, + 2, -1, -3, 0, 3, 6, 10, 14, 12, 6, 2, 5, 10, 15, 18, 18, + 16, 14, 11, 6, 4, 3, 1, 1, 2, 6, 9, 9, 3, -2, -3, -4, + -6, -8, -10, -15, -19, -20, -19, -18, -17, -15, -16, -17, -18, -20, -22, -21, + -16, -11, -4, 1, 0, -4, -4, -1, 1, 2, 4, 4, 3, 3, 4, 7, + 11, 16, 21, 20, 15, 11, 9, 12, 16, 21, 24, 23, 21, 17, 13, 11, + 9, 4, 0, 0, 1, 3, 4, 0, -4, -7, -7, -9, -13, -17, -20, -22, + -23, -21, -16, -12, -12, -15, -17, -17, -15, -12, -10, -10, -11, -12, -15, -15, + -10, -4, 0, -1, -1, 1, 4, 7, 13, 19, 22, 23, 21, 19, 18, 17, + 11, 5, 2, 5, 10, 13, 15, 15, 14, 13, 10, 5, 1, 0, 2, 5, + 8, 10, 9, 6, 4, 2, -1, -5, -7, -8, -7, -8, -11, -13, -14, -16, + -19, -21, -22, -22, -24, -23, -20, -17, -16, -16, -15, -16, -16, -15, -13, -11, + -9, -5, 0, 6, 12, 15, 18, 18, 17, 17, 19, 20, 19, 19, 20, 23, + 25, 25, 23, 20, 17, 13, 11, 9, 9, 8, 6, 3, 1, -2, -5, -5, + -2, -1, -3, -7, -6, -3, 0, -2, -9, -21, -29, -32, -32, -30, -27, -27, + -29, -30, -28, -24, -23, -21, -16, -7, 0, 1, 2, 2, 4, 7, 10, 14, + 16, 14, 12, 13, 15, 18, 20, 22, 23, 20, 15, 8, 3, 2, 7, 13, + 15, 13, 7, 2, 0, 0, -1, -2, -1, 1, 2, 1, 0, 2, 3, 4, + 4, 6, 7, 5, 0, -10, -21, -30, -36, -36, -33, -28, -23, -18, -15, -14, + -17, -19, -19, -17, -12, -5, -2, -2, -3, -1, 2, 6, 10, 12, 14, 13, + 12, 13, 18, 25, 29, 28, 24, 19, 14, 10, 6, 6, 9, 12, 13, 15, + 17, 18, 18, 14, 7, 0, -1, 1, 1, -2, -6, -8, -10, -11, -13, -17, + -19, -18, -17, -16, -14, -14, -15, -17, -19, -22, -26, -26, -24, -20, -17, -14, + -13, -12, -10, -7, -4, 1, 5, 7, 9, 10, 13, 15, 17, 18, 21, 24, + 22, 21, 19, 17, 15, 13, 14, 14, 16, 17, 18, 16, 12, 10, 8, 6, + 5, 3, 0, -3, -6, -7, -5, -4, -4, -5, -5, -4, -4, -4, -8, -13, + -19, -24, -27, -28, -27, -25, -25, -27, -27, -25, -19, -14, -8, -3, 1, 6, + 9, 8, 3, -3, -6, -4, -1, 4, 9, 14, 18, 20, 22, 22, 23, 23, + 22, 21, 20, 20, 21, 21, 19, 15, 9, 3, -2, -4, -3, 0, 2, 2, + 2, 3, 3, 1, -4, -10, -15, -19, -19, -16, -11, -7, -7, -9, -13, -17, + -23, -28, -30, -29, -24, -20, -18, -19, -20, -19, -18, -19, -18, -13, -5, 1, + 6, 9, 11, 13, 16, 21, 26, 29, 30, 29, 29, 28, 26, 23, 20, 20, + 21, 21, 20, 18, 15, 9, 2, -4, -6, -5, -3, -3, -4, -6, -7, -9, + -10, -10, -10, -10, -11, -13, -12, -11, -8, -6, -6, -10, -17, -26, -32, -35, + -35, -34, -32, -27, -19, -9, -3, -1, -2, -5, -7, -6, -1, 7, 14, 18, + 21, 23, 25, 26, 26, 23, 20, 20, 23, 24, 24, 21, 19, 14, 8, 2, + -1, 0, 1, 2, 3, 6, 8, 8, 5, 2, -2, -5, -5, -4, -1, 1, + 1, -1, -6, -9, -11, -13, -17, -20, -24, -26, -27, -26, -23, -21, -20, -23, + -26, -27, -26, -24, -20, -15, -9, -2, 4, 8, 10, 13, 16, 19, 21, 23, + 25, 28, 33, 36, 38, 38, 35, 32, 29, 24, 16, 11, 6, 2, -2, -6, + -6, -5, -4, -4, -7, -11, -14, -13, -10, -8, -8, -8, -9, -11, -12, -12, + -11, -11, -12, -14, -17, -19, -19, -18, -18, -20, -22, -23, -21, -18, -14, -11, + -8, -4, -1, 5, 11, 13, 11, 8, 6, 7, 9, 11, 13, 15, 19, 22, + 23, 25, 27, 27, 22, 17, 11, 6, 4, 5, 9, 13, 15, 15, 11, 6, + 0, -4, -7, -8, -6, -3, -2, -3, -6, -9, -13, -18, -22, -23, -20, -15, + -11, -10, -11, -14, -19, -24, -27, -28, -28, -27, -26, -23, -19, -15, -10, -6, + -1, 4, 8, 10, 11, 11, 13, 15, 17, 20, 23, 24, 24, 26, 28, 28, + 28, 27, 26, 24, 22, 20, 16, 13, 10, 8, 6, 3, -3, -9, -15, -17, + -16, -15, -13, -13, -14, -17, -19, -20, -20, -17, -14, -12, -13, -14, -13, -13, + -14, -15, -14, -13, -12, -12, -12, -10, -8, -7, -8, -9, -9, -7, -4, 0, + 3, 6, 8, 10, 12, 14, 18, 22, 25, 26, 27, 28, 28, 27, 24, 20, + 16, 13, 11, 9, 6, 3, 0, -3, -3, -2, 1, 3, 5, 3, 0, -4, + -8, -12, -17, -21, -22, -20, -17, -15, -14, -14, -13, -15, -19, -22, -21, -18, + -14, -13, -15, -16, -17, -17, -19, -19, -16, -11, -4, 1, 6, 10, 13, 17, + 20, 23, 24, 24, 24, 25, 28, 33, 37, 38, 35, 30, 24, 20, 16, 13, + 9, 2, -4, -8, -8, -8, -7, -7, -9, -12, -16, -18, -18, -16, -15, -16, + -16, -16, -13, -10, -10, -11, -13, -15, -15, -15, -15, -16, -17, -16, -14, -13, + -13, -13, -13, -12, -9, -5, -2, 1, 3, 6, 12, 18, 22, 22, 21, 18, + 16, 16, 19, 23, 29, 32, 30, 24, 18, 13, 9, 6, 3, 0, -2, -4, + -6, -8, -10, -11, -10, -6, -3, -2, -3, -5, -5, -6, -6, -7, -6, -5, + -4, -5, -8, -10, -11, -12, -14, -16, -18, -20, -21, -21, -22, -23, -24, -24, + -22, -18, -11, -4, 1, 4, 5, 6, 8, 11, 15, 20, 24, 26, 27, 28, + 31, 32, 31, 30, 28, 27, 24, 20, 17, 14, 12, 9, 3, -3, -9, -12, + -15, -16, -17, -15, -13, -10, -10, -11, -13, -14, -15, -17, -19, -21, -23, -24, + -22, -18, -13, -9, -8, -8, -8, -9, -9, -9, -7, -4, 0, 2, 3, 5, + 5, 3, 3, 4, 5, 6, 7, 10, 14, 17, 20, 20, 20, 21, 22, 20, + 18, 16, 15, 14, 12, 9, 7, 6, 4, 2, -2, -5, -7, -9, -9, -8, + -5, -2, 0, 0, -1, -3, -7, -12, -16, -16, -15, -13, -12, -13, -13, -12, + -11, -11, -12, -15, -19, -23, -24, -22, -19, -16, -13, -10, -5, -1, 3, 6, + 7, 8, 8, 10, 13, 17, 21, 25, 27, 28, 28, 26, 24, 24, 25, 27, + 28, 29, 28, 25, 19, 12, 4, -3, -10, -15, -19, -22, -24, -25, -26, -25, + -23, -21, -20, -18, -17, -16, -14, -12, -11, -12, -14, -14, -13, -13, -15, -16, + -16, -16, -15, -11, -4, 0, -2, 0, 0, 3, 14, 34, 24, -3, -14, -12, + 6, 6, -11, -23, -5, 15, 20, 15, -19, -12, 3, 19, 11, -5, 1, 4, + 7, -13, -3, 5, -13, 0, -2, 8, 0, -6, 16, 23, 13, 6, 2, 14, + 25, 2, 11, 3, -7, -8, -24, -6, -4, -18, 6, 30, 14, 9, 0, 0, + 13, -7, 0, -3, 9, 8, -6, -14, -15, -23, -19, -7, 0, -3, 1, -8, + -10, -10, -17, -12, -7, -10, 1, -12, -13, 0, -15, -20, -25, -16, -6, -7, + -6, -6, -2, -4, -13, -12, -6, -6, -5, 2, 8, -5, -13, -3, -4, -11, + -16, -3, 12, -2, -8, -4, -4, 4, -15, -17, -6, -2, 5, -4, 3, -2, + -10, -4, -5, -7, -8, 4, 17, 1, -3, -14, -4, -2, -7, -4, -6, 10, + 5, -6, -7, -8, 10, -5, -3, 3, -8, 11, 7, -5, -3, -13, -7, 0, + -6, 4, 0, -7, 12, -9, -17, -7, 5, 2, -3, -4, -7, 7, -2, -13, + -5, -2, 5, 4, 0, 7, -3, 4, 1, -2, -4, 6, 8, 8, 0, -2, + 2, 3, 2, 1, -2, 5, 12, 6, 3, 2, -3, 2, 3, 1, 8, 6, + 7, 2, -5, -3, 1, 5, 2, 0, -3, 2, 7, 2, 0, -9, 0, 5, + 1, 3, 1, 4, 6, -5, -3, -2, 2, 6, 4, 6, 1, 2, 4, 4, + -2, 2, 5, 5, 7, 7, 2, 6, 0, 3, 0, -3, 8, 4, 4, 9, + -3, 2, 1, 1, 2, 1, 5, 5, 4, 6, 1, -6, -2, 3, 5, 6, + 4, 3, 4, 1, 2, -4, 0, 6, 2, 2, 4, 3, 5, -3, -2, -5, + -3, 5, 2, 1, 3, 1, -2, -3, -4, -6, 3, 5, 1, -2, 1, 2, + -2, -2, -2, -3, 3, 5, 3, 4, 2, 2, 1, 0, 1, 4, 9, 9, + 5, 2, 1, 6, 4, 4, 5, 5, 7, 8, 4, 5, 1, 2, 3, 1, + 1, 4, 2, 3, 0, -4, -7, -5, 0, -3, -3, -3, -5, 0, -8, -7, + -8, -5, -3, -6, -3, -4, -5, 0, -7, -4, -5, -3, 1, 1, -2, 1, + -2, 2, 0, 0, -2, 3, 5, 4, 5, 4, 2, 4, 2, 4, 5, 6, + 5, 6, 4, 4, 4, 4, 3, 4, 2, 4, 4, 2, -2, -2, 0, -3, + -3, -3, -4, -2, -7, -6, -7, -9, -7, -10, -9, -10, -10, -8, -11, -9, + -9, -12, -10, -13, -12, -7, -8, -6, -6, -9, -6, -5, -3, 0, 0, 1, + 1, 4, 3, 4, 8, 6, 8, 7, 6, 10, 9, 12, 12, 11, 12, 8, + 13, 10, 11, 10, 8, 9, 8, 6, 9, 4, 5, 0, -3, -5, -5, -6, + -7, -9, -12, -15, -17, -21, -18, -22, -21, -23, -25, -24, -27, -27, -26, -30, + -27, -27, -28, -20, -22, -19, -14, -15, -12, -10, -10, -2, 3, 4, 12, 12, + 14, 20, 17, 25, 27, 29, 33, 35, 35, 40, 38, 41, 39, 36, 38, 36, + 36, 38, 31, 33, 25, 21, 14, 8, 1, 2, 0, -3, -5, -15, -23, -28, + -40, -39, -43, -46, -43, -52, -53, -59, -66, -62, -69, -63, -64, -64, -50, -56, + -44, -45, -43, -38, -36, -31, -20, -8, 4, 12, 19, 18, 28, 31, 40, 52, + 57, 68, 73, 73, 77, 73, 81, 79, 82, 82, 77, 82, 77, 75, 69, 59, + 53, 42, 33, 24, 22, 17, 11, 1, -17, -25, -36, -42, -46, -55, -60, -64, + -73, -77, -88, -90, -92, -97, -98, -100, -100, -92, -85, -79, -80, -76, -79, -69, + -56, -50, -32, -24, -15, 0, -2, 11, 15, 29, 45, 55, 67, 72, 82, 88, + 95, 101, 102, 109, 109, 112, 109, 110, 110, 106, 104, 91, 81, 77, 68, 66, + 54, 42, 32, 14, 6, -6, -12, -20, -29, -43, -55, -65, -76, -76, -85, -89, + -97, -105, -107, -114, -115, -117, -117, -113, -112, -104, -101, -91, -85, -84, -70, -72, + -55, -42, -34, -14, -8, 5, 16, 22, 35, 44, 57, 69, 78, 89, 94, 101, + 104, 109, 109, 119, 118, 117, 120, 110, 114, 114, 99, 102, 84, 74, 72, 57, + 52, 43, 32, 22, 10, -7, -20, -28, -34, -47, -54, -60, -67, -71, -80, -87, + -90, -105, -105, -110, -120, -115, -120, -123, -113, -111, -109, -97, -98, -92, -83, -82, + -76, -63, -61, -48, -39, -30, -16, -3, 10, 22, 32, 42, 49, 61, 67, 76, + 84, 91, 101, 105, 115, 116, 117, 125, 115, 119, 116, 106, 111, 102, 97, 92, + 84, 79, 70, 64, 50, 45, 31, 19, 14, -2, -9, -19, -30, -35, -47, -54, + -62, -67, -73, -82, -86, -96, -100, -105, -109, -116, -118, -120, -120, -117, -111, -110, + -97, -96, -90, -84, -78, -73, -64, -55, -50, -39, -25, -20, 1, 11, 19, 37, + 40, 51, 61, 68, 76, 85, 94, 97, 105, 114, 112, 120, 122, 119, 121, 117, + 110, 106, 105, 92, 90, 84, 69, 71, 57, 48, 45, 29, 22, 14, -2, -9, + -22, -31, -40, -47, -59, -62, -68, -76, -80, -87, -97, -96, -111, -111, -116, -124, + -119, -123, -120, -109, -109, -98, -95, -93, -84, -81, -75, -66, -55, -51, -37, -28, + -16, 1, 12, 23, 39, 40, 55, 59, 68, 77, 86, 94, 103, 104, 116, 117, + 118, 125, 122, 117, 120, 107, 108, 104, 95, 92, 85, 72, 70, 60, 48, 43, + 29, 18, 10, -7, -12, -22, -30, -38, -49, -58, -63, -72, -75, -84, -90, -93, + -100, -110, -103, -121, -115, -115, -124, -110, -112, -111, -92, -98, -86, -81, -77, -69, + -61, -53, -48, -34, -27, -13, 1, 9, 28, 37, 45, 58, 59, 76, 78, 85, + 97, 98, 109, 114, 111, 123, 120, 119, 121, 116, 111, 110, 101, 93, 92, 79, + 73, 68, 55, 52, 40, 30, 21, 10, 0, -13, -23, -29, -41, -47, -58, -64, + -69, -75, -84, -89, -93, -103, -105, -110, -120, -115, -117, -128, -105, -114, -109, -88, + -102, -86, -76, -84, -64, -63, -56, -43, -37, -25, -10, 4, 11, 31, 36, 46, + 56, 58, 74, 78, 84, 100, 95, 110, 114, 110, 124, 120, 116, 121, 110, 105, + 108, 97, 96, 91, 79, 75, 66, 57, 51, 38, 29, 17, 5, -3, -13, -20, + -28, -40, -46, -55, -66, -68, -76, -85, -88, -97, -102, -106, -110, -117, -115, -120, + -122, -108, -117, -103, -98, -96, -86, -79, -77, -66, -59, -54, -46, -33, -31, -10, + -2, 11, 27, 36, 47, 58, 62, 74, 78, 86, 94, 96, 106, 109, 115, 120, + 118, 121, 119, 112, 114, 104, 98, 94, 85, 77, 72, 63, 56, 49, 37, 31, + 20, 6, -2, -15, -24, -33, -44, -50, -58, -63, -68, -76, -82, -89, -95, -105, + -105, -116, -118, -117, -126, -114, -111, -118, -92, -105, -92, -83, -88, -72, -71, -65, + -51, -50, -31, -25, -9, 2, 16, 29, 35, 50, 53, 67, 73, 75, 92, 88, + 104, 112, 108, 122, 117, 119, 123, 114, 116, 110, 104, 98, 94, 86, 80, 75, + 63, 59, 47, 36, 29, 13, 9, -5, -16, -21, -36, -40, -50, -61, -61, -73, + -77, -85, -93, -95, -103, -108, -117, -120, -118, -125, -117, -108, -116, -96, -98, -97, + -83, -82, -78, -66, -61, -54, -43, -32, -25, -2, 3, 16, 33, 36, 52, 56, + 66, 75, 78, 94, 91, 103, 113, 108, 122, 119, 119, 121, 116, 112, 110, 106, + 93, 96, 83, 76, 74, 59, 58, 47, 34, 28, 14, 6, -6, -17, -27, -36, + -44, -54, -61, -63, -70, -76, -86, -90, -99, -102, -108, -117, -115, -121, -123, -111, + -120, -102, -100, -101, -84, -91, -76, -74, -70, -54, -56, -41, -30, -20, -3, 8, + 23, 31, 46, 47, 59, 70, 71, 83, 89, 90, 108, 108, 115, 120, 121, 122, + 118, 118, 109, 110, 102, 93, 93, 82, 78, 72, 62, 57, 45, 37, 22, 15, + 4, -10, -18, -30, -36, -42, -54, -57, -63, -68, -77, -86, -91, -102, -103, -108, + -117, -114, -119, -117, -115, -110, -106, -100, -91, -99, -79, -81, -77, -59, -61, -50, + -36, -33, -16, -4, 10, 16, 35, 39, 48, 62, 64, 76, 85, 89, 98, 105, + 110, 113, 120, 119, 118, 123, 112, 111, 110, 100, 98, 93, 82, 78, 70, 58, + 54, 45, 30, 24, 12, 0, -7, -20, -28, -36, -45, -55, -61, -66, -73, -79, + -88, -93, -103, -105, -112, -119, -115, -124, -123, -109, -119, -103, -98, -102, -92, -84, + -83, -75, -62, -59, -50, -34, -34, -12, 1, 7, 26, 33, 42, 50, 62, 67, + 76, 88, 90, 101, 110, 108, 118, 121, 119, 122, 121, 111, 113, 110, 98, 98, + 91, 80, 78, 66, 58, 53, 40, 29, 20, 8, -4, -11, -22, -33, -37, -49, + -57, -61, -68, -77, -81, -90, -96, -101, -110, -112, -116, -120, -116, -121, -119, -104, + -111, -96, -91, -96, -79, -79, -76, -59, -57, -46, -33, -25, -14, 5, 11, 26, + 39, 42, 55, 61, 70, 81, 86, 94, 101, 105, 114, 116, 120, 121, 119, 119, + 115, 111, 107, 102, 94, 90, 82, 73, 68, 59, 50, 41, 28, 20, 7, -4, + -12, -22, -30, -41, -48, -56, -62, -69, -75, -83, -90, -98, -100, -107, -111, -119, + -112, -124, -120, -107, -119, -101, -93, -104, -80, -85, -83, -61, -65, -55, -40, -38, + -25, -7, -3, 13, 29, 34, 45, 57, 59, 74, 79, 87, 98, 98, 108, 111, + 112, 122, 117, 119, 119, 111, 110, 107, 96, 96, 89, 76, 74, 63, 54, 51, + 35, 27, 19, 5, -3, -12, -25, -29, -43, -52, -58, -64, -71, -78, -82, -92, + -98, -101, -108, -110, -114, -120, -119, -118, -115, -110, -106, -95, -97, -82, -84, -76, + -62, -63, -51, -42, -39, -20, -12, 2, 15, 29, 36, 47, 58, 62, 74, 80, + 85, 95, 101, 106, 111, 116, 118, 117, 122, 113, 115, 111, 99, 103, 90, 85, + 80, 68, 63, 56, 46, 36, 28, 17, 5, -5, -19, -25, -35, -43, -52, -58, + -62, -72, -75, -83, -94, -94, -105, -105, -115, -115, -116, -122, -114, -112, -108, -98, + -99, -89, -86, -82, -72, -69, -58, -52, -44, -31, -21, -6, 4, 17, 28, 39, + 48, 53, 66, 72, 80, 88, 92, 104, 108, 113, 116, 119, 121, 116, 119, 112, + 108, 107, 94, 94, 85, 79, 72, 62, 57, 48, 37, 25, 17, 8, -8, -15, + -26, -35, -42, -55, -59, -65, -73, -75, -87, -89, -97, -104, -109, -116, -116, -121, + -120, -120, -109, -108, -103, -90, -97, -78, -78, -77, -60, -64, -50, -41, -34, -16, + -7, 9, 19, 33, 42, 52, 60, 65, 77, 79, 87, 96, 99, 109, 113, 118, + 124, 117, 121, 117, 109, 110, 99, 94, 93, 83, 77, 73, 63, 55, 50, 32, + 26, 18, 0, -6, -20, -29, -34, -49, -53, -57, -63, -71, -76, -83, -91, -97, + -108, -112, -114, -122, -115, -124, -112, -105, -112, -89, -99, -90, -78, -89, -72, -66, + -61, -49, -41, -28, -16, 2, 6, 25, 35, 36, 53, 54, 67, 77, 79, 93, + 97, 105, 112, 111, 122, 118, 119, 117, 112, 109, 108, 99, 95, 92, 82, 76, + 71, 59, 56, 43, 30, 24, 10, 0, -9, -18, -26, -36, -45, -55, -59, -68, + -75, -81, -88, -94, -99, -106, -109, -110, -119, -117, -119, -116, -111, -105, -101, -91, + -92, -83, -75, -75, -61, -52, -52, -35, -29, -18, 0, 9, 22, 36, 41, 51, + 64, 68, 78, 88, 90, 101, 103, 109, 113, 115, 121, 117, 118, 116, 109, 109, + 102, 94, 90, 80, 71, 67, 57, 47, 42, 30, 19, 14, -4, -9, -19, -31, + -36, -50, -55, -61, -68, -74, -79, -87, -93, -101, -107, -107, -115, -118, -118, -123, + -112, -110, -109, -92, -93, -94, -74, -83, -71, -57, -61, -45, -34, -31, -10, 0, + 12, 27, 37, 42, 55, 61, 70, 77, 87, 95, 96, 106, 112, 113, 123, 122, + 117, 122, 112, 109, 110, 96, 96, 92, 76, 74, 68, 55, 50, 40, 28, 20, + 7, -6, -10, -23, -31, -42, -51, -59, -65, -70, -76, -82, -88, -92, -104, -104, + -105, -122, -113, -122, -126, -106, -119, -103, -91, -99, -82, -80, -76, -66, -59, -54, + -46, -34, -30, -9, 1, 13, 33, 34, 51, 57, 63, 76, 77, 91, 95, 95, + 110, 108, 115, 122, 120, 120, 123, 112, 110, 110, 94, 95, 87, 70, 74, 62, + 55, 50, 39, 29, 20, 7, -5, -13, -26, -35, -44, -56, -61, -65, -69, -75, + -83, -86, -98, -104, -104, -121, -115, -119, -128, -110, -117, -116, -92, -100, -90, -78, + -83, -75, -63, -64, -55, -41, -39, -20, -7, 1, 21, 31, 40, 51, 55, 67, + 72, 77, 91, 93, 99, 110, 109, 118, 125, 118, 124, 119, 108, 114, 101, 93, + 96, 81, 75, 73, 59, 57, 48, 35, 27, 15, 1, -7, -20, -29, -37, -49, + -56, -61, -65, -69, -74, -83, -91, -98, -107, -113, -117, -120, -122, -118, -115, -111, + -103, -101, -92, -89, -85, -80, -77, -65, -61, -51, -41, -33, -16, -4, 8, 21, + 34, 40, 49, 57, 63, 73, 82, 89, 98, 104, 109, 117, 118, 123, 122, 119, + 116, 110, 108, 100, 97, 93, 83, 80, 70, 64, 55, 45, 34, 22, 12, -2, + -10, -20, -30, -35, -48, -55, -62, -67, -71, -78, -86, -91, -101, -104, -110, -117, + -117, -120, -123, -111, -111, -110, -90, -99, -90, -76, -85, -71, -58, -63, -45, -37, + -33, -14, 1, 4, 27, 34, 41, 53, 59, 66, 79, 84, 92, 100, 103, 110, + 115, 116, 123, 118, 118, 117, 107, 110, 101, 95, 93, 79, 76, 68, 57, 52, + 43, 30, 23, 11, -3, -8, -20, -30, -34, -48, -55, -60, -69, -74, -81, -89, + -92, -101, -105, -108, -114, -117, -118, -122, -112, -113, -108, -95, -101, -87, -82, -83, + -68, -60, -56, -45, -38, -28, -17, -2, 6, 23, 33, 40, 54, 60, 68, 80, + 85, 94, 96, 103, 109, 110, 119, 118, 118, 121, 113, 112, 110, 100, 98, 90, + 77, 73, 66, 55, 51, 41, 29, 25, 8, 1, -9, -23, -28, -42, -51, -59, + -64, -67, -75, -79, -86, -94, -98, -105, -111, -115, -117, -121, -123, -111, -120, -102, + -95, -100, -79, -84, -81, -61, -69, -55, -46, -42, -27, -14, -3, 11, 30, 35, + 49, 57, 60, 76, 76, 86, 95, 95, 109, 108, 116, 122, 121, 123, 120, 116, + 114, 106, 100, 94, 88, 78, 73, 65, 59, 52, 38, 33, 20, 10, -2, -15, + -22, -32, -42, -51, -58, -62, -67, -77, -80, -86, -94, -100, -106, -113, -115, -119, + -122, -118, -117, -107, -106, -98, -89, -89, -78, -76, -71, -57, -56, -46, -36, -25, + -12, 0, 16, 26, 39, 49, 54, 67, 72, 80, 88, 94, 101, 104, 115, 113, + 121, 125, 116, 123, 116, 110, 109, 98, 93, 88, 78, 69, 65, 56, 47, 42, + 27, 20, 8, -6, -15, -27, -33, -43, -53, -58, -64, -68, -74, -86, -87, -96, + -106, -103, -117, -116, -117, -123, -117, -106, -114, -97, -96, -96, -81, -81, -80, -62, + -64, -49, -45, -34, -19, -8, 4, 17, 28, 40, 47, 54, 66, 73, 79, 93, + 95, 102, 113, 110, 117, 123, 119, 121, 117, 113, 111, 106, 96, 95, 88, 78, + 72, 63, 55, 47, 35, 26, 14, 4, -9, -19, -24, -35, -43, -51, -61, -65, + -72, -79, -88, -88, -99, -107, -107, -120, -114, -120, -122, -113, -116, -102, -106, -95, + -89, -95, -72, -80, -70, -50, -58, -37, -30, -20, -5, 6, 18, 29, 44, 45, + 57, 72, 68, 89, 89, 97, 109, 104, 120, 113, 118, 124, 112, 120, 112, 107, + 106, 96, 91, 87, 78, 66, 65, 52, 40, 39, 17, 17, 4, -13, -13, -30, + -35, -44, -58, -59, -66, -72, -78, -85, -93, -97, -106, -114, -110, -120, -120, -118, + -120, -109, -110, -98, -100, -89, -81, -87, -68, -68, -59, -44, -46, -29, -18, -5, + 5, 22, 32, 39, 54, 56, 68, 79, 79, 94, 98, 102, 110, 112, 117, 119, + 124, 117, 116, 116, 104, 106, 97, 89, 86, 74, 67, 60, 53, 41, 34, 24, + 12, 4, -9, -19, -28, -38, -47, -58, -60, -68, -73, -77, -88, -93, -96, -111, + -109, -115, -124, -118, -122, -120, -107, -109, -102, -91, -95, -82, -78, -78, -60, -59, + -51, -36, -35, -14, -3, 6, 24, 34, 41, 56, 59, 67, 81, 82, 92, 103, + 102, 112, 119, 114, 123, 123, 116, 121, 112, 106, 107, 93, 91, 84, 74, 69, + 61, 52, 43, 32, 21, 13, -2, -10, -22, -31, -38, -51, -56, -59, -69, -71, + -76, -87, -90, -100, -107, -110, -119, -118, -120, -123, -108, -118, -101, -92, -102, -77, + -85, -83, -63, -71, -58, -45, -44, -27, -15, -2, 10, 30, 32, 46, 57, 56, + 74, 73, 84, 93, 95, 109, 108, 117, 117, 124, 119, 119, 119, 112, 109, 100, + 96, 90, 81, 75, 65, 59, 51, 41, 33, 22, 12, 0, -12, -23, -30, -40, + -51, -57, -64, -71, -73, -83, -84, -95, -102, -102, -116, -117, -118, -128, -116, -114, + -116, -102, -99, -95, -86, -80, -80, -71, -58, -61, -46, -38, -30, -10, -4, 12, + 26, 37, 47, 54, 67, 68, 79, 89, 86, 104, 104, 111, 118, 118, 123, 121, + 119, 116, 112, 109, 99, 96, 88, 80, 75, 66, 58, 49, 41, 29, 19, 10, + -5, -10, -25, -35, -39, -53, -58, -64, -69, -75, -81, -87, -100, -99, -112, -116, + -118, -126, -123, -115, -120, -111, -102, -100, -93, -86, -85, -76, -69, -64, -56, -47, + -38, -25, -10, 4, 16, 31, 40, 46, 61, 65, 70, 83, 86, 93, 103, 105, + 114, 125, 118, 124, 125, 112, 120, 111, 98, 103, 91, 86, 83, 71, 66, 61, + 49, 38, 32, 16, 7, -4, -17, -26, -36, -44, -54, -60, -59, -71, -75, -79, + -94, -95, -103, -117, -112, -120, -127, -120, -118, -117, -104, -102, -99, -88, -84, -86, + -73, -70, -64, -51, -47, -37, -17, -10, 7, 19, 32, 40, 52, 56, 67, 73, + 80, 87, 92, 103, 109, 110, 123, 119, 121, 126, 111, 113, 112, 98, 98, 91, + 80, 80, 71, 60, 61, 47, 36, 30, 13, 5, -5, -19, -27, -35, -43, -52, + -58, -62, -71, -76, -84, -96, -100, -105, -118, -115, -121, -123, -121, -114, -117, -110, + -98, -105, -91, -83, -90, -71, -68, -64, -48, -43, -33, -17, -5, 3, 23, 32, + 38, 54, 59, 66, 79, 82, 92, 100, 105, 108, 116, 119, 117, 126, 116, 115, + 118, 106, 105, 99, 91, 85, 78, 67, 60, 54, 41, 33, 24, 11, 0, 3, + 10, 14, -8, 46, 7, -20, -23, -28, 17, 9, 47, -7, -15, -35, -1, -26, + 44, 34, -31, 31, -47, -32, 30, -2, 32, 15, -15, -17, -39, 16, -2, 26, + 23, 3, -43, 11, -37, 14, 37, 7, 4, -21, -30, -9, 14, 18, 38, -13, + -16, -21, -24, 8, 38, 3, 16, -29, -11, -26, 20, 15, 24, -9, 0, -34, + -21, 32, -16, 41, -1, -20, -7, -7, -7, 27, 0, -2, -2, -11, -11, 19, + -16, 32, -19, -4, 11, -40, 49, -13, -12, 12, -32, 12, 17, 1, 23, -34, + -20, 14, -20, 33, 44, -51, 7, -21, -38, 46, 19, 37, -28, -29, -17, -40, + 63, 36, -33, 42, -45, -57, 16, 37, -3, 54, 0, -64, -25, -7, 15, 37, + 34, -2, -65, -12, -3, -7, 76, -2, -6, -28, -22, -30, 40, 11, 12, 21, + -43, -6, -1, -31, 73, -35, 33, -1, -67, 29, -24, 16, 42, 4, -26, 17, + -71, 32, 0, 0, 72, -56, 4, -2, -75, 76, -25, 39, 24, -42, -6, -20, + -31, 56, 1, 3, 49, -63, -12, -16, -10, 49, 12, 29, -32, -59, 35, -39, + 35, 45, -33, -21, 46, -68, 13, 16, 12, 0, 2, 32, -70, 12, 30, -62, + 64, 5, -31, 22, -30, 11, -30, 43, 2, -8, 16, -3, -60, 39, -11, -13, + 63, -32, 8, -6, -45, 39, -38, 30, 49, -89, 96, -84, 0, 43, -51, 52, + -4, -6, 7, -31, -10, 12, -22, 62, 8, -57, 65, -101, 1, 69, -46, 76, + -18, -34, -24, -33, 50, -6, 55, 16, -70, -19, 2, -33, 59, 61, -40, 7, + -44, -33, -7, 61, 31, -15, 5, -32, -70, 47, 34, 8, 22, -16, -44, -47, + 56, -6, 12, 56, -46, -32, -3, 7, -4, 42, 19, -41, -35, 41, -59, 43, + 45, -44, 9, -9, -7, -19, 36, 2, -50, 49, -6, -34, 33, -1, -38, 17, + 44, -33, 5, 28, -68, -13, 62, -25, 15, 45, -57, -32, 23, -14, 37, 11, + 29, -56, -48, 46, -55, 48, 94, -74, 22, -40, -59, 36, 9, 75, -19, -31, + 6, -104, 39, 80, -23, 59, -12, -104, 10, -12, 24, 59, 5, 9, -78, -12, + 24, -47, 116, -6, -51, 34, -71, -26, 55, 3, 11, 38, -31, -9, -45, 21, + -11, 4, 92, -79, 16, -16, -41, 29, 27, 19, -5, -19, -13, -35, 29, 22, + -7, 20, -35, 6, -21, 30, -2, 6, -8, -20, -12, 30, -13, 8, 23, -52, + 21, 8, -16, 40, -20, -7, -15, -38, 62, -33, 48, 5, -66, 28, -25, 15, + 39, 5, -46, 8, -46, 32, 12, 37, -9, -49, 43, -78, 43, 46, -43, 39, + -41, -36, 13, 19, 48, -21, 9, -37, -54, 45, 32, -14, 41, -32, -66, 42, + -8, 37, 12, -10, -12, -74, 71, -30, 16, 65, -64, -1, -13, -12, 17, 24, + 10, -16, -31, -1, -3, 1, 68, -47, -7, -8, -41, 74, -16, 32, -27, -42, + 22, -49, 80, -11, 0, 23, -84, 34, -24, 31, 48, -37, 23, -55, -25, 22, + 14, 22, 59, -78, -11, -1, -45, 90, -35, 32, 0, -75, 63, -65, 34, 52, + -71, 70, -56, -14, 30, -22, 10, 55, -74, 41, -19, -47, 88, -62, 50, -11, + -57, 44, -54, 59, 17, -23, 12, -40, -41, 60, 3, 15, 28, -71, -1, -17, + 11, 61, -28, 47, -59, -48, 35, -18, 51, 27, -20, -35, -36, 14, 6, 44, + 23, -30, -33, -17, -1, 14, 49, -2, -32, -12, -20, 5, 29, 34, -33, 9, + -34, -26, 36, -2, 40, -28, 5, -26, -39, 65, -27, 19, 31, -54, 0, -8, + 12, 2, 30, -5, -25, -22, 24, -29, 26, 52, -57, 7, 5, -56, 46, 1, + 8, 4, -5, 1, -51, 28, 14, -21, 48, -17, -46, 4, 11, -6, 35, 7, + -16, -31, -10, 25, -49, 95, -28, -29, 19, -46, -5, 32, 21, 8, -1, -24, + -36, -17, 59, -7, 33, 10, -76, -14, 19, -1, 56, 16, -23, -64, -8, 7, + 8, 85, 0, -57, -21, -35, -7, 72, 23, 28, -66, -16, -47, 2, 68, 24, + 5, 0, -69, -26, 22, -7, 72, 0, -12, -20, -51, 15, -11, 44, 44, -46, + 36, -59, -38, 32, 19, -3, 71, -45, -28, -29, -17, 36, 8, 79, -47, -53, + 18, -65, 38, 75, -24, 20, -36, -34, -26, 38, 39, -7, -3, 7, -85, 44, + 26, -17, 42, -20, -29, -26, 26, 18, -8, 36, -17, -73, 40, 4, -1, 52, + -16, -47, -15, 14, 4, 29, 30, -41, -44, 15, -2, 16, 60, -26, -54, 17, + -33, 22, 48, -5, -15, -20, -13, -15, 31, 37, -28, 6, -17, -22, -10, 64, + -43, 16, 22, -71, 41, 3, -1, 6, -12, 12, -38, 11, 38, -49, 37, 24, + -64, 27, 18, -73, 81, -33, 14, -3, -32, 43, -60, 53, 24, -76, 70, -29, + -33, 50, -18, -34, 48, -38, 37, -15, -5, 25, -80, 70, -4, -45, 89, -72, + -3, 13, -23, 28, 21, -9, -9, -25, -11, 24, -26, 62, -14, -49, 67, -97, + 57, 12, -23, 46, -46, 9, -20, -4, 25, -1, 5, 18, -31, -25, 38, -43, + 44, 17, -42, 37, -66, 37, -16, 26, 18, -16, -17, -4, -17, 7, 38, -11, + 4, -3, -51, 32, -17, 38, 18, -34, 23, -58, 4, 25, 0, 26, 3, -35, + -11, -10, 16, 24, 8, 4, -33, -30, 22, -2, 14, 52, -61, 10, -23, -4, + 20, 10, 32, -44, -2, 1, -36, 37, 32, -25, 2, 0, -40, 14, 24, -5, + 13, -28, 20, -51, 41, 15, -23, 25, -12, -41, 30, -2, -11, 40, -34, 14, + -24, 3, 22, -31, 44, -22, -31, 57, -55, 28, 0, -9, 1, 11, -10, 8, + -13, 3, -2, -23, 60, -49, 23, 10, -59, 36, -3, -3, 35, -23, 5, -42, + 15, 7, -2, 35, 0, -45, 8, -4, -27, 63, -4, -14, 9, -39, 1, 1, + 27, 19, -27, 24, -49, -6, 34, -5, 10, 19, -32, -20, 14, -12, 16, 26, + -9, -19, -9, -8, 8, 7, 40, -29, -14, -4, -25, 7, 56, -15, 6, -20, + -36, 3, 10, 33, 20, -23, -5, -42, -18, 54, -17, 63, -5, -59, 2, -44, + 12, 57, 17, 15, -33, -44, -16, -17, 65, 40, -9, 10, -72, -51, 39, 10, + 65, 19, -25, -47, -51, 17, 20, 53, 30, -35, -35, -34, -16, 36, 48, 12, + -3, -35, -42, -9, 28, 34, 12, 15, -42, -39, 7, 8, 24, 28, 1, -31, + -36, 9, -1, 28, 29, -14, -34, 14, -43, 23, 34, -7, 24, -44, 10, -28, + -5, 53, -29, 29, -7, -33, 2, -1, 5, 19, 10, -17, 2, -33, 14, 1, + 8, 32, -36, 17, -28, -18, 36, -22, 29, 2, -25, 5, -17, 13, 1, 16, + -1, -10, -12, 3, -9, 10, 19, -22, 16, -3, -20, 24, -22, 15, -3, -14, + 22, -30, 31, -14, -11, 12, -11, 8, 17, -9, -4, -13, -13, 7, 10, 19, + -6, -7, -2, -32, 24, 8, 0, 17, -20, -10, -15, 13, 10, 11, 4, -1, + -40, 19, -4, -6, 42, -31, -1, -5, -12, 19, 6, 7, -5, -26, 10, -12, + 15, 20, -8, -19, 12, -40, 31, 15, -3, 16, -23, -27, 7, -5, 31, 6, + 3, -6, -41, 14, -2, 7, 38, -10, -29, 11, -44, 17, 29, 6, 20, -26, + 1, -45, 9, 31, -18, 40, -1, -47, 8, -10, -4, 29, 33, -25, 1, -31, + -12, -9, 35, 30, -25, 31, -48, -28, 20, 17, 9, 30, -19, -39, -13, 6, + 8, 38, 15, -10, -42, 0, -24, 15, 49, -9, -12, 5, -44, -5, 42, 4, + 6, 8, -27, -29, 5, 24, -2, 10, 28, -56, 1, 23, -29, 29, 15, -19, + -11, 1, -4, -8, 24, 6, -15, 2, 7, -27, 12, 21, -40, 36, -15, -12, + 22, -16, 17, -17, 15, -6, -18, 23, -3, -26, 39, -27, -5, 26, -20, 8, + 5, -11, 7, -21, 19, -11, -8, 35, -25, 2, 18, -35, 9, 16, -21, 29, + -16, 1, -13, -13, 28, -18, 23, 13, -36, 6, -1, -23, 26, 12, -15, 17, + -20, -2, -7, 3, 22, -22, 27, -11, -34, 36, -30, 11, 17, 2, -12, 13, + -22, -11, 11, -5, 26, -17, 26, -25, -32, 44, -47, 39, 25, -31, 16, -35, + -1, -4, 26, 16, 3, -16, -10, -23, -8, 55, -27, 26, 0, -63, 41, -26, + 28, 22, -23, 14, -42, 5, 20, -13, 28, 3, -42, 20, -6, -17, 52, -32, + 6, -2, -37, 42, -27, 29, 15, -51, 40, -38, 2, 33, -19, 6, 11, -43, + 25, 0, -19, 57, -54, 31, -9, -43, 58, -52, 36, 11, -44, 50, -44, 8, + 23, -24, 12, 6, -34, 25, -9, -15, 50, -55, 35, -7, -25, 49, -48, 32, + -23, -18, 37, -30, 28, 8, -27, 7, -2, -19, 22, 10, -11, 10, -27, 4, + -16, 18, 29, -19, 20, -22, -36, 16, -2, 18, 14, 3, -24, -15, -5, 12, + 13, 20, 4, -40, 2, -23, 8, 29, 7, 9, -23, -10, -13, 5, 19, 9, + -3, -14, -7, -19, 21, 6, 5, 10, -20, 0, -14, 12, 0, 2, 5, -13, + 1, -3, 12, -12, 20, -13, -7, 6, -11, 5, 0, 5, -5, -4, 10, -10, + 2, 6, -5, -12, 18, -13, -9, 19, -17, 11, -1, 8, -5, -22, 26, -26, + 1, 29, -17, -7, 16, -22, -8, 23, -3, 4, -3, -2, -15, -20, 42, -21, + 4, 40, -55, 8, 8, -22, 21, 20, -17, 2, -14, -7, -2, 10, 31, -25, + 10, -3, -54, 40, 5, -12, 42, -17, -37, 13, -12, 7, 24, 10, -6, -36, + 12, -9, -25, 74, -24, -19, 38, -64, 5, 25, 0, 16, 1, -9, -25, -23, + 36, -8, 6, 50, -58, -12, 22, -53, 52, 18, -12, 16, -51, 15, -30, 25, + 46, -37, 31, -26, -49, 30, 9, -1, 42, -19, -28, -13, -5, 16, 4, 42, + -18, -40, 20, -30, 1, 49, -4, -15, 0, -21, -19, 21, 26, 0, -9, 9, + -43, -1, 26, -5, 21, -7, -6, -32, 9, 12, -3, 34, -17, -12, -17, -4, + 9, 7, 28, -19, -3, -13, -11, 7, 15, 15, -19, 15, -38, -5, 17, -1, + 29, -20, 15, -39, -11, 41, -33, 45, -8, -21, -11, -3, 7, 0, 28, -7, + -19, -8, 7, -20, 23, 24, -40, 24, -17, -16, 26, -9, 21, -27, 13, -11, + -22, 29, -7, 0, 22, -22, -16, 14, -12, 12, 11, -5, -6, -17, 14, -15, + 9, 30, -28, 5, 1, -26, 8, 18, -7, 1, 6, -12, -15, 9, 13, -13, + 13, 13, -42, 14, 3, -16, 20, 7, -3, -22, 25, -26, 4, 16, -7, 3, + -8, 17, -33, 14, 9, -21, 25, -3, -11, -1, 1, -13, 1, 23, -20, 26, + -18, 0, -18, 3, 24, -25, 36, -15, -29, 22, -22, 3, 24, -5, -1, 0, + -18, 2, -11, 20, 10, -17, 30, -37, -15, 29, -33, 39, 11, -23, 7, -34, + 8, 0, 11, 36, -27, -12, 9, -47, 29, 31, -29, 40, -37, -14, 3, -17, + 45, -11, 8, 12, -60, 20, -2, -2, 41, -12, -18, 3, -37, 27, 12, -4, + 37, -56, 17, -21, -5, 44, -20, 14, -2, -40, 20, 0, 3, 22, -13, -10, + -6, -16, 29, -12, 14, 15, -49, 24, -11, -7, 39, -18, 3, -20, -12, 19, + -10, 32, 2, -34, 10, -13, -13, 37, 1, -7, 3, -33, 4, 2, 18, 25, + -25, 8, -33, -13, 34, -7, 24, 4, -33, -10, -2, 2, 25, 12, -1, -25, + -12, 3, -18, 34, 12, -15, 4, -9, -25, 10, 17, -3, 9, 2, -13, -23, + 9, 8, -13, 37, -10, -15, 1, -13, -1, 0, 31, -15, 0, 5, -29, 6, + 5, 15, -9, 16, -9, -29, 15, -10, 3, 15, 9, -11, -12, 11, -29, 17, + 14, -7, 6, -6, -7, -24, 30, -11, 9, 18, -20, -8, -6, 6, -10, 22, + 10, -29, 14, -13, -8, 13, 17, -13, 2, 1, -24, 5, 5, 12, -10, 15, + -7, -28, 21, -2, -8, 22, -9, -14, -2, 6, -5, 5, 12, -7, -15, 14, + -4, -16, 27, -10, -14, 13, -5, -9, 10, 5, -8, -5, 16, -20, 2, 13, + -14, -3, 17, -18, 2, 10, -12, 9, -6, -2, -16, 13, 10, -15, 33, -24, + -17, 10, -4, 15, 1, 9, -23, -9, 6, -5, 5, 21, -10, -13, 11, -21, + -2, 19, -10, 23, -20, 10, -16, -21, 33, -17, 17, 18, -30, 1, -14, -1, + 20, -2, 18, -15, -24, 6, -5, 6, 36, -26, 6, -18, -23, 34, -12, 25, + 1, -30, -1, -11, 10, 22, -1, 4, -19, -28, 21, -11, 22, 25, -33, 4, + -21, -7, 22, 7, 19, -23, -13, -3, -13, 21, 17, -11, 7, -19, -12, 12, + -10, 30, -13, -5, 4, -30, 27, -9, 17, -3, -25, 13, -23, 13, 27, -15, + -5, 3, -35, 17, 19, -8, 29, -37, 1, -15, -10, 48, -20, 26, -7, -49, + 22, -23, 21, 33, -10, -8, -17, -34, 11, 19, 12, 40, -39, -14, -13, -36, + 64, -4, 20, 9, -55, 3, -24, 21, 31, 10, -1, -22, -30, -7, 12, 18, + 29, -10, -7, -28, -22, 22, 3, 26, 4, -13, -18, -16, 21, -9, 28, -1, + -21, 0, -12, 5, 6, 5, 10, -20, 1, 3, -20, 21, 7, -23, 24, -25, + -6, 21, -13, 25, -19, -8, 2, -14, 20, 13, -23, 25, -31, -7, 24, -16, + 20, 6, -25, 8, -24, 12, 15, -10, 24, -25, -2, 0, -12, 14, 10, -13, + 4, 1, -17, 9, 6, -9, 9, 0, -3, -8, 11, -10, -2, 7, -1, -6, + 6, 1, -12, 1, 18, -31, 23, -2, -21, 21, -6, -8, 15, -14, 4, -6, + -1, 17, -22, 20, -6, -35, 37, -17, -6, 47, -41, 6, -6, -16, 12, 16, + 6, 1, -36, 18, -26, 4, 59, -36, -1, 16, -64, 30, 14, 1, 16, -13, + 0, -35, 17, 13, -8, 12, 14, -45, 11, 12, -24, 27, 12, -27, 10, -6, + -9, 1, 14, -7, -6, 8, -4, -8, 8, 8, -24, 13, 7, -27, 28, -1, + -28, 27, -19, -2, 17, -5, 6, -10, -5, 4, -25, 32, 2, -22, 32, -28, + -20, 35, -20, 16, 7, -18, 1, -22, 20, 0, 2, 20, -15, -25, 24, -25, + 12, 25, -23, 10, -19, -5, 8, 2, 20, -6, -13, 0, -22, 12, 15, -3, + 13, -13, -25, 12, -6, 18, 13, -3, -14, -22, 3, -2, 14, 25, -10, -16, + -5, -13, 2, 22, 9, -2, -11, -12, -20, 15, 20, 1, 14, -19, -17, -9, + 1, 19, 5, 0, 4, -35, 17, -7, 5, 20, -16, 2, -8, -11, 11, -2, + 2, 7, -19, 15, -10, 2, 12, -14, -3, 2, -9, 17, -3, 2, -7, -16, + 10, 2, 9, 10, -14, -9, -6, -11, 21, 5, 4, 6, -24, -5, -4, 6, + 18, 0, 8, -21, -18, 8, -8, 21, 16, -11, -9, -12, -15, 15, 3, 27, + -9, -16, 5, -30, 13, 23, -11, 21, -19, -15, -3, -9, 30, -9, 14, -6, + -22, -5, 15, -11, 23, -1, -14, -4, -9, 8, 4, 1, 20, -34, 9, 1, + -17, 24, -6, 1, -9, 1, -4, 3, 6, 8, -16, 0, 2, -13, 11, 21, + -31, 24, -21, -4, 13, -2, 7, -9, -3, 0, -18, 29, -4, -9, 16, -19, + -13, 25, -5, -1, 15, -24, 4, -15, 22, 4, -11, 20, -21, -25, 39, -23, + 14, 14, -23, 1, -8, 3, 12, -9, 23, -19, -18, 24, -22, 5, 30, -32, + 11, 2, -21, 18, -6, 5, 1, -9, 13, -22, 4, 19, -28, 26, 3, -28, + 21, -4, -25, 32, -15, 5, 0, -2, -4, -9, 15, 0, -13, 21, -14, -20, + 31, -19, 2, 17, -14, -9, 12, -6, 4, -1, 4, -17, -1, 12, -2, 0, + 20, -31, -8, 12, -8, 17, 14, -13, -16, -9, -7, 20, 11, 18, -13, -28, + -3, -12, 13, 40, -12, 4, -20, -32, 8, 17, 14, 21, -10, -28, -18, -2, + 11, 22, 17, 0, -34, -6, -3, -17, 50, 1, -13, 4, -22, -21, 17, 16, + 4, 7, 0, -27, -11, 4, 10, 2, 24, -6, -28, 7, -12, -2, 33, -3, + -6, 2, -37, 3, 9, 7, 24, -4, -14, -6, -24, 25, -1, 11, 16, -36, + -9, 12, -25, 45, 5, -20, 11, -36, 11, 7, 0, 30, -32, -1, 7, -33, + 37, 0, -9, 15, -21, -10, 12, -15, 24, -8, 3, 4, -20, 7, 3, -15, + 28, -14, -7, 13, -23, 2, 11, 0, 4, 7, -9, -16, 1, 7, -7, 19, + -3, -12, -14, 15, -10, 7, 30, -26, -13, 15, -30, 15, 26, -12, -1, -8, + -9, -5, 13, 22, -12, -12, 7, -36, 17, 31, -24, 27, -21, -24, 15, -10, + 26, 4, -12, 4, -36, 13, 14, -5, 27, -14, -22, 7, -12, 6, 23, -13, + 7, -19, -2, 7, -8, 25, -5, -17, 18, -25, 3, 14, -8, 4, 0, -1, + -11, 4, 12, -18, 15, 2, -23, 12, -2, -7, 12, 1, -1, -15, 11, -3, + -17, 41, -24, -7, 13, -25, 3, 22, -9, 15, -12, -9, 0, -17, 32, -5, + -5, 19, -49, 19, 3, -11, 45, -30, 2, -4, -28, 29, 0, 7, 12, -34, + 6, -10, 1, 33, -9, -6, 4, -41, 25, 2, 4, 29, -40, 8, -17, -9, + 42, -16, 16, -10, -33, 11, -7, 22, 12, -6, -6, -25, -4, 18, -3, 25, + -4, -29, 5, -17, 8, 22, 1, 4, -22, 1, -13, 2, 31, -19, 9, 2, + -36, 17, 5, -7, 20, -11, -2, -13, 4, 9, -18, 24, -3, -30, 33, -19, + -11, 31, -21, 6, 0, -5, 3, -10, 17, -7, -19, 30, -24, 0, 26, -23, + 3, 7, -17, 9, -3, 9, -1, -17, 23, -25, -3, 34, -27, 10, 15, -34, + 9, 1, 1, 7, -1, 12, -31, 4, 16, -27, 32, 10, -33, 10, -1, -27, + 29, 9, -9, 0, -1, -16, -6, 24, 2, -17, 23, -20, -24, 33, -11, -2, + 17, -7, -21, 13, 1, -7, 10, 1, -12, -9, 13, -1, -5, 20, -16, -15, + 15, -8, 5, 13, -10, -7, -9, 5, 2, 10, 7, -7, -22, 12, -13, 6, + 26, -14, -6, 0, -17, 3, 16, 6, 0, -11, 3, -26, 13, 15, -6, 7, + 4, -29, 6, 7, -3, 13, 1, -11, -9, 2, -1, 3, 9, -3, -8, 1, + -4, 0, 5, 0, 0, -2, 0, -1, 0, 0, -2, 11, 23, 22, 24, 25, + 20, 21, 15, 40, -1, -24, -42, -5, -19, -11, -8, 4, -46, -31, -14, -33, + -40, -44, -48, -89, -63, -47, -33, -27, -10, -6, 22, 25, 26, 28, 37, 11, + 15, 51, 44, 54, 66, 66, 71, 111, 84, 70, 63, 47, 39, 22, 47, -28, + -79, -111, -90, -91, -112, -81, -87, -49, -46, -5, -24, 26, 24, 47, 29, 23, + 30, 30, 13, -1, 4, -14, 17, 35, 62, 31, 53, 59, 72, 64, 27, 26, + 9, 9, -61, -44, -88, -74, -81, -83, -124, -96, -37, -78, -48, -56, -68, -60, + 7, 44, 39, 54, 77, 102, 110, 108, 89, 101, 100, 105, 64, 22, -1, 44, + 40, -19, -29, -35, -16, -27, -40, -77, -82, -113, -104, -93, -57, -72, -56, -3, + 1, 7, -1, 49, 39, 30, 31, 23, 10, 31, 11, 7, -19, -2, -2, 28, + 62, 92, 75, 33, 34, -20, -47, -61, -85, -105, -93, -119, -112, -54, -70, -67, + -32, -1, 4, 4, 20, 29, 62, 70, 54, 62, 78, 115, 92, 85, 78, 52, + 21, 19, 27, 2, -8, 13, 0, 5, 3, 9, 18, 0, -59, -61, -45, -57, + -65, -76, -89, -102, -48, -24, 17, 6, 26, 33, 35, 26, 41, 63, 20, 12, + 29, 34, 8, 7, 31, 21, 31, 39, 33, -5, -8, -55, -57, -98, -94, -88, + -64, -82, -74, -39, -14, 3, 16, 22, 8, 2, 17, 5, 36, 76, 74, 71, + 57, 73, 62, 47, 30, 32, 19, 4, 7, -14, -18, -2, 17, -5, 13, 22, + 31, 10, 8, -13, -47, -80, -85, -86, -71, -73, -60, -35, -10, 9, 19, 49, + 53, 47, 60, 73, 43, 33, 20, 13, -1, -7, -7, 7, 9, -2, 5, -14, + -40, -69, -61, -66, -67, -84, -58, -58, -33, 2, -7, -5, 12, 32, 18, 25, + 19, 24, 65, 59, 62, 64, 63, 55, 60, 52, 31, 19, -12, -26, -4, -7, + -10, -3, 6, -22, -14, 12, 19, 4, -26, -38, -40, -56, -61, -66, -59, -65, + -51, -20, 29, 40, 51, 52, 62, 61, 53, 26, 20, 6, 8, 6, 9, -14, + -14, -15, -2, -11, -23, -36, -38, -60, -77, -69, -60, -51, -56, -44, -27, 10, + -2, 14, 10, 22, 16, 41, 60, 39, 35, 60, 62, 43, 45, 63, 52, 17, + 12, 15, -1, -2, 0, -38, -48, -32, -22, -7, 3, 13, 10, -2, -1, -8, + -12, -25, -48, -46, -52, -49, -36, -17, 9, 17, 26, 48, 57, 55, 69, 60, + 32, 6, 4, -6, -20, -24, -9, -21, -25, -14, -18, -38, -38, -32, -51, -52, + -60, -34, -6, -6, -16, -11, -2, -1, 17, 19, 3, 11, 25, 31, 41, 39, + 33, 33, 41, 34, 34, 23, 21, 15, 6, -13, -24, -28, -20, -8, -12, -19, + -12, -5, 9, 14, 2, -12, -25, -28, -21, -28, -23, -22, -18, -26, -5, 24, + 45, 46, 47, 39, 33, 36, 42, 29, 7, -5, -10, -21, -29, -39, -39, -31, + -24, -29, -39, -51, -43, -27, -22, -18, -25, -26, -20, 9, 19, 18, 4, -2, + 19, 30, 38, 25, 24, 28, 33, 41, 38, 34, 32, 38, 24, 8, 4, -8, + -11, -15, -25, -31, -25, -20, -22, -15, -11, -9, -12, -17, -20, -20, -15, -6, + -11, -8, 0, 11, 29, 19, 17, 17, 18, 28, 31, 25, 18, 23, 18, 10, + 1, -7, -18, -26, -24, -30, -41, -38, -44, -32, -31, -31, -35, -25, -12, -2, + -8, -11, -13, -13, -2, 8, 15, 19, 29, 35, 37, 39, 43, 42, 40, 35, + 27, 25, 18, 15, 9, 4, -4, -15, -28, -28, -26, -28, -18, -15, -25, -23, + -12, -11, -14, -10, -2, -4, -1, 8, 15, 19, 22, 25, 16, 16, 17, 5, + 7, 13, 18, 13, 9, 6, 6, 4, -4, -21, -31, -28, -37, -39, -34, -38, + -38, -32, -17, -6, -4, -14, -19, -9, 3, -2, 3, 4, 7, 8, 13, 23, + 35, 38, 43, 42, 31, 25, 23, 17, 8, 3, 4, -7, -7, -10, -13, -20, + -19, -28, -33, -30, -23, -18, -13, -17, -12, 3, 14, 23, 31, 27, 23, 21, + 22, 19, 12, 4, 2, 2, -2, 0, 4, 11, 11, 6, 4, -2, -5, -14, + -17, -30, -38, -44, -42, -28, -21, -23, -21, -15, -15, -4, 8, 11, 4, -7, + -15, -7, 5, 10, 21, 26, 28, 27, 34, 37, 36, 28, 19, 10, 11, 8, + -2, -18, -17, -19, -19, -22, -24, -21, -24, -18, -17, -13, -19, -13, -1, 12, + 19, 22, 21, 19, 19, 30, 34, 24, 13, 7, 2, 1, 1, 2, -1, -2, + -6, 0, 0, -2, -15, -21, -17, -21, -28, -32, -31, -31, -32, -27, -24, -17, + -4, 1, -3, -1, 1, 4, 7, 8, 15, 16, 15, 15, 20, 32, 36, 38, + 32, 19, 12, 3, 2, -2, -4, -11, -19, -17, -15, -11, -16, -20, -27, -30, + -28, -22, -13, -6, -2, 2, 12, 23, 29, 45, 44, 36, 32, 21, 16, 14, + 10, 1, -9, -8, -2, -1, -7, -13, -13, -12, -9, -11, -18, -24, -26, -28, + -30, -24, -21, -21, -21, -11, -11, -10, 0, -2, 0, 4, 12, 13, 14, 12, + 17, 22, 28, 30, 28, 20, 16, 13, 8, 2, -2, -6, -15, -14, -18, -15, + -15, -16, -18, -18, -16, -19, -18, -17, -10, 0, -1, 4, 13, 22, 37, 39, + 36, 27, 27, 32, 26, 15, 6, -1, -4, -5, -7, -11, -11, -9, -15, -15, + -14, -18, -21, -19, -17, -21, -19, -15, -15, -10, -15, -14, -12, -11, -6, -2, + 1, -2, 1, 5, 14, 22, 33, 35, 23, 18, 16, 13, 11, 6, 1, -9, + -18, -11, -6, -7, -8, -9, -11, -11, -12, -13, -17, -21, -24, -24, -15, -4, + 7, 12, 17, 25, 30, 28, 31, 32, 31, 27, 22, 15, 12, 3, -2, -8, + -6, -3, -9, -13, -22, -24, -20, -18, -22, -24, -18, -14, -13, -10, -11, -9, + -3, -2, -3, -5, -10, -10, -5, -1, 4, 11, 15, 19, 22, 27, 23, 20, + 16, 14, 5, -3, -11, -15, -16, -12, -12, -11, -5, 1, -3, -10, -13, -15, + -11, -10, -10, -11, -8, -3, 2, 7, 9, 15, 25, 30, 33, 31, 25, 21, + 20, 16, 13, 7, -2, -8, -5, -4, -11, -20, -21, -22, -21, -17, -20, -21, + -22, -19, -19, -11, -4, -2, -2, -2, 2, 5, 2, 0, 0, -3, 1, 8, + 16, 13, 14, 17, 15, 13, 8, 5, -1, -6, -10, -13, -14, -14, -13, -10, + -7, -8, -8, -6, -6, -3, -1, -1, -9, -12, -7, 3, 13, 17, 14, 13, + 17, 22, 23, 24, 18, 15, 18, 18, 18, 15, 8, 0, -5, -8, -11, -15, + -17, -21, -26, -26, -24, -26, -24, -13, -9, -6, -3, -2, 3, 4, 6, 7, + 5, 2, 4, 2, -2, -4, -3, 5, 13, 17, 10, 3, -1, -2, -4, -5, + -11, -14, -13, -11, -8, -8, -8, -6, -3, 0, -1, -5, -5, 0, 4, 3, + 1, 2, 0, 0, 6, 13, 20, 17, 17, 18, 21, 18, 14, 13, 11, 11, + 7, 9, 3, -5, -12, -14, -18, -21, -23, -26, -26, -13, -3, -6, -13, -14, + -5, 5, 8, 3, 0, 1, 3, 6, 4, -1, -1, 1, 3, 7, 5, 3, + 0, 1, -1, 3, 0, -3, -11, -11, -9, -10, -9, -8, -5, -7, -7, -10, + -9, -6, -1, 4, 6, 4, 2, 5, 10, 13, 9, 12, 13, 14, 15, 16, + 13, 12, 10, 13, 14, 13, 8, 2, -1, -4, -6, -9, -15, -20, -21, -19, + -14, -16, -22, -21, -13, -5, -3, -3, -1, 3, 5, 10, 9, 9, 6, 8, + 7, 7, 7, 3, -4, -6, -4, -1, -4, -8, -10, -11, -8, -4, -6, -10, + -7, -8, -11, -11, -8, -5, -4, 0, 3, 3, 8, 10, 10, 12, 12, 11, + 10, 13, 12, 10, 6, 8, 9, 9, 11, 13, 11, 9, 10, 7, 2, -3, + -8, -9, -14, -16, -16, -19, -18, -14, -13, -11, -11, -10, -5, -1, 3, 5, + 2, 2, 9, 14, 11, 9, 10, 7, 2, 0, 2, -2, -9, -13, -15, -18, + -17, -15, -13, -10, -5, -5, -7, -7, -4, -1, 0, -2, -4, -2, 1, 4, + 9, 10, 10, 11, 11, 13, 14, 10, 11, 9, 9, 4, 6, 5, 4, 5, + 7, 8, 10, 9, 4, -4, -8, -9, -10, -11, -12, -14, -15, -17, -15, -9, + -4, -1, -6, -5, 2, 8, 8, 6, 5, 3, 4, 5, 9, 10, 10, 5, + -1, -5, -10, -12, -14, -16, -18, -17, -11, -10, -11, -8, -5, -2, -2, 0, + 3, 4, 5, 3, 2, 3, 5, 9, 12, 12, 11, 10, 12, 14, 12, 8, + 5, 0, -1, 1, 3, 0, 1, 3, 5, 6, 5, 0, -5, -11, -10, -13, + -12, -13, -15, -14, -8, -4, -3, -3, -4, 0, 4, 5, 3, 6, 4, 4, + 7, 10, 9, 9, 8, 5, 5, 2, -4, -10, -15, -17, -20, -22, -22, -19, + -14, -11, -10, -8, -6, 0, 3, 5, 3, 4, 8, 11, 11, 12, 13, 12, + 12, 15, 15, 16, 16, 13, 11, 6, 3, -2, -5, -5, -3, -2, -1, 2, + 0, -3, -4, -5, -7, -10, -12, -11, -12, -11, -8, -4, -2, 0, 1, 2, + 2, 2, 4, 3, 3, 4, 5, 9, 10, 6, 2, 1, 2, 0, -3, -7, + -13, -18, -19, -18, -16, -18, -20, -19, -14, -8, -4, -1, 3, 3, 5, 7, + 9, 9, 10, 12, 13, 13, 13, 13, 16, 15, 13, 9, 6, 3, 2, 1, + 0, -3, -5, -6, -4, -2, -2, -4, -4, -5, -5, -3, -3, -4, -6, -6, + -7, -4, 0, 2, 3, 2, 2, 1, 2, 2, 1, 4, 5, 4, 1, 0, + 2, 2, 0, -2, -6, -8, -6, -7, -9, -11, -15, -18, -19, -18, -18, -17, + -13, -9, -2, 2, 3, 5, 10, 12, 13, 14, 14, 15, 17, 17, 16, 16, + 15, 13, 11, 7, 2, -6, -10, -8, -6, -8, -8, -7, -6, -6, -3, -4, + -6, -5, -3, -2, -2, 0, 1, 0, 2, 2, 3, 2, 3, 2, 3, 3, + 5, 2, 0, 4, 6, 5, -1, -4, -2, -1, -2, -6, -8, -9, -10, -12, + -10, -14, -17, -22, -22, -21, -19, -15, -8, -3, 1, 7, 12, 12, 15, 19, + 22, 21, 18, 16, 16, 16, 13, 12, 6, 3, 3, 2, -3, -6, -7, -12, + -12, -11, -8, -9, -8, -7, -3, 0, 0, 0, 0, -2, -2, 0, 1, 2, + 2, 4, 6, 6, 7, 5, 4, 3, 4, 5, 3, 0, -2, -2, -4, -6, + -10, -8, -8, -10, -11, -12, -12, -12, -13, -16, -16, -16, -14, -11, -8, -4, + -2, 1, 6, 12, 17, 19, 20, 20, 21, 21, 19, 13, 10, 9, 5, 0, + -3, -4, -4, -5, -6, -6, -4, -7, -10, -12, -12, -12, -10, -7, -4, -2, + 4, 6, 8, 7, 7, 7, 7, 8, 8, 7, 5, 6, 6, 4, 1, -1, + -1, 0, -3, -7, -10, -10, -8, -11, -14, -14, -12, -11, -9, -6, -8, -8, + -8, -11, -13, -12, -9, -8, -5, 0, 4, 8, 11, 14, 18, 18, 20, 23, + 23, 20, 14, 9, 4, 0, -3, -6, -8, -8, -8, -8, -9, -10, -11, -10, + -9, -8, -8, -7, -6, -3, 0, 3, 6, 12, 16, 16, 14, 10, 8, 9, + 7, 4, 1, 0, 0, -2, -1, 0, 0, -3, -7, -10, -13, -13, -12, -13, + -15, -14, -13, -9, -6, -5, -5, -7, -8, -9, -7, -6, -5, -7, -5, 1, + 8, 13, 17, 19, 20, 21, 22, 22, 18, 12, 9, 5, -1, -5, -9, -11, + -13, -12, -12, -11, -10, -8, -7, -7, -6, -7, -6, -3, 0, 1, 3, 7, + 10, 11, 12, 15, 15, 14, 9, 6, 3, 1, 0, -2, -2, -2, -3, -6, + -8, -10, -11, -13, -15, -15, -15, -13, -12, -12, -7, -5, -5, -5, -4, -3, + -3, -4, -4, -1, -1, 1, 4, 7, 10, 12, 14, 17, 20, 22, 19, 14, + 8, 5, 2, -2, -5, -10, -14, -13, -11, -10, -10, -10, -10, -8, -6, -3, + -3, -3, -1, -1, 2, 6, 10, 13, 14, 15, 15, 15, 13, 11, 8, 5, + 1, -1, -3, -3, -6, -10, -12, -12, -12, -12, -13, -15, -18, -19, -15, -11, + -6, -4, -3, -4, -4, -2, 1, 4, 2, -1, -2, 1, 4, 6, 8, 7, + 7, 11, 14, 15, 15, 15, 13, 10, 6, 1, -3, -6, -9, -13, -15, -15, + -13, -11, -9, -9, -9, -7, -3, 0, 2, 2, 4, 7, 11, 15, 16, 14, + 11, 12, 13, 15, 13, 9, 4, 1, -1, -4, -6, -8, -11, -15, -17, -17, + -17, -17, -15, -13, -13, -12, -10, -7, -6, -4, 1, 2, 2, 3, 4, 5, + 4, 4, 3, 5, 6, 6, 8, 7, 7, 9, 11, 10, 9, 8, 5, 2, + 0, -2, -6, -10, -13, -13, -14, -14, -13, -11, -9, -4, -1, -1, -1, 2, + 6, 8, 10, 11, 12, 14, 14, 14, 13, 11, 10, 7, 4, 2, 3, 1, + -3, -6, -10, -14, -17, -18, -18, -19, -19, -17, -15, -13, -9, -5, -1, 1, + 0, 1, 3, 5, 6, 6, 6, 7, 8, 9, 8, 4, 1, 0, 2, 4, + 5, 6, 5, 4, 4, 4, 3, 1, -3, -7, -9, -11, -12, -12, -12, -11, + -10, -7, -4, -2, 1, 4, 5, 8, 11, 13, 14, 14, 11, 11, 11, 10, + 10, 9, 6, 5, 3, 1, -2, -5, -10, -14, -16, -17, -18, -19, -20, -19, + -17, -14, -10, -5, -1, 1, 3, 5, 6, 6, 6, 6, 6, 6, 6, 6, + 8, 7, 6, 4, 2, 0, -1, 0, 0, 1, 2, 1, 1, 2, 1, -2, + -5, -8, -9, -10, -11, -12, -12, -10, -7, -4, -1, 2, 8, 11, 13, 15, + 15, 13, 12, 11, 10, 9, 8, 6, 5, 4, 4, 3, 0, -3, -6, -10, + -14, -18, -21, -22, -21, -18, -16, -13, -10, -6, -3, 0, 3, 5, 5, 5, + 6, 7, 8, 8, 8, 7, 8, 7, 6, 5, 4, 1, 0, -2, -4, -4, + -5, -4, -4, -3, -2, -1, -2, -3, -4, -7, -8, -9, -9, -9, -8, -5, + -2, 2, 4, 8, 11, 14, 15, 15, 14, 12, 10, 7, 5, 4, 4, 2, + 1, 1, 2, -1, -3, -7, -10, -15, -18, -18, -18, -18, -17, -15, -11, -7, + -3, 1, 3, 4, 5, 6, 7, 7, 8, 8, 9, 10, 10, 9, 6, 4, + 2, 0, -3, -4, -6, -7, -7, -6, -5, -3, -2, -2, -2, -2, -3, -4, + -5, -6, -6, -6, -6, -5, -4, -1, 4, 7, 9, 11, 12, 12, 11, 10, + 9, 8, 7, 5, 3, 3, 2, 1, 0, -1, -4, -7, -8, -10, -13, -14, + -15, -15, -15, -14, -11, -9, -6, -3, 0, 2, 4, 5, 6, 7, 8, 9, + 10, 10, 9, 8, 6, 5, 3, 1, -3, -6, -8, -8, -7, -7, -7, -6, + -4, -2, 0, -1, -2, -3, -3, -3, -3, -4, -3, -3, -1, 1, 3, 4, + 6, 7, 8, 9, 10, 10, 9, 7, 6, 6, 4, 3, 2, 1, -1, -2, + -4, -6, -9, -11, -12, -12, -12, -11, -11, -10, -9, -8, -7, -5, -4, -1, + 1, 3, 5, 7, 9, 10, 11, 10, 9, 8, 7, 6, 2, -1, -3, -4, + -6, -7, -7, -7, -7, -6, -5, -5, -4, -3, -3, -4, -4, -4, -3, -2, + 0, 0, 1, 1, 2, 4, 6, 6, 7, 7, 8, 7, 7, 7, 7, 7, + 6, 5, 2, 0, -2, -4, -5, -7, -8, -8, -8, -9, -10, -10, -9, -8, + -7, -7, -7, -5, -3, -2, 0, 1, 2, 4, 6, 9, 10, 11, 12, 10, + 8, 6, 3, 1, -2, -4, -6, -7, -7, -7, -7, -8, -7, -7, -6, -6, + -5, -4, -3, -3, -2, -1, 1, 2, 2, 3, 4, 5, 5, 5, 6, 6, + 6, 5, 5, 6, 6, 6, 4, 3, 2, 1, -1, -3, -4, -6, -8, -9, + -9, -8, -8, -6, -5, -5, -5, -6, -6, -6, -5, -4, -2, 0, 2, 4, + 6, 7, 8, 9, 9, 9, 9, 6, 4, 1, -1, -3, -5, -6, -7, -7, + -7, -6, -6, -6, -6, -6, -5, -4, -3, -3, -2, -1, 1, 3, 4, 5, + 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 1, + -1, -3, -4, -5, -6, -7, -7, -7, -7, -7, -6, -5, -4, -4, -3, -3, + -3, -3, -2, -1, 0, 1, 3, 5, 7, 8, 8, 8, 7, 6, 4, 2, + 0, -2, -3, -4, -5, -6, -7, -7, -7, -7, -6, -6, -5, -5, -5, -3, + -2, 0, 1, 2, 3, 4, 5, 6, 6, 6, 5, 5, 4, 3, 3, 3, + 3, 3, 3, 2, 1, 1, -1, -2, -3, -4, -5, -6, -6, -7, -6, -5, + -4, -3, -3, -3, -3, -3, -2, -1, -1, 0, 1, 1, 1, 2, 3, 5, + 6, 6, 6, 5, 4, 2, 1, 0, -2, -4, -5, -5, -6, -6, -6, -7, + -7, -7, -6, -5, -4, -3, -2, -1, 0, 2, 3, 3, 4, 4, 5, 5, + 5, 4, 4, 4, 4, 3, 3, 2, 1, 1, 0, 0, -1, -1, -2, -3, + -4, -5, -5, -5, -5, -5, -4, -4, -3, -3, -2, -1, -1, -1, -1, 0, + 0, 0, 1, 2, 3, 3, 4, 4, 4, 4, 4, 3, 1, 0, 0, -2, + -3, -4, -5, -5, -6, -6, -6, -5, -4, -4, -4, -3, -2, -2, -1, 0, + 2, 3, 3, 4, 4, 4, 4, 3, 3, 3, 3, 2, 2, 1, 1, 1, + 0, -1, -1, -2, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2, -2, + -2, -1, -1, -1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, + 2, 1, 1, 0, 0, -1, -1, -2, -3, -3, -3, -4, -4, -4, -4, -3, + -3, -2, -1, -1, -1, 0, 1, 1, 1, 2, 2, 2, 3, 3, 2, 2, + 1, 1, 1, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -5, -41, -25, -37, -9, 28, 14, 6, 1, + 19, 16, -83, -53, -35, -44, -29, 8, -23, -29, -6, -20, -22, -19, -40, -2, + 14, 34, 78, 59, 73, 93, 73, 83, 124, 94, 87, 61, 98, 80, 29, 27, + 6, 8, -9, -8, -26, -33, -35, -32, -25, -32, -28, -59, -46, -31, -19, -12, + -12, 14, 14, -41, -59, -46, -33, -32, -52, -31, -29, -49, -51, -53, -85, -53, + -60, -100, -85, -84, -66, -37, -26, -11, -8, 22, 41, 33, 39, 27, 29, 75, + 59, 45, 52, 69, 66, 73, 90, 91, 103, 81, 46, 16, -21, -32, -13, -34, + -22, -42, -51, -35, -53, -62, -45, -35, -34, -29, 25, 62, 61, 39, -8, -20, + -5, -7, 2, 28, 1, -24, 8, 29, 11, -9, -54, -34, -35, -57, -41, -63, + -50, -16, -18, 26, 23, -2, 38, 9, 17, 41, 39, 82, 64, 64, 103, 64, + 43, 43, 51, 26, -3, 30, 1, 9, 14, -26, 20, -27, -50, -39, -47, -31, + -23, -33, 25, 56, 51, 20, -19, -60, -41, -27, -10, 3, -36, -30, -22, -46, + -5, -12, -7, -4, -54, 3, -25, -10, -1, -42, -75, -27, -84, -60, -88, -107, + -73, -29, -67, -53, 9, -10, 17, -29, -33, 55, 12, 7, 121, 70, 42, 123, + 96, 127, 74, 28, 51, 21, 60, 23, -10, 25, 103, 113, 65, 45, 15, -1, + 10, 2, -26, 1, -16, 19, 27, -8, -8, -24, -20, -17, -35, -86, -87, -32, + -51, -26, -60, -60, -50, -15, -31, -30, -50, -55, -19, 22, 14, 30, 49, 42, + 15, -11, -57, -15, -29, -65, -37, -56, -29, 15, 70, 69, 36, 24, 19, 21, + 19, 4, 60, 55, 18, -17, 0, -2, -21, 51, 49, -6, 22, 14, -24, -63, + -5, 4, -53, -33, -1, -37, -34, 40, 30, 12, -6, -1, 12, 12, 23, 20, + 43, 34, 11, -26, -40, 25, 56, -1, -41, -50, -37, -10, 20, -58, -65, -43, + -26, 42, 57, 77, 57, 26, -4, -10, -57, -45, -23, -49, -1, -59, -41, -26, + -27, 24, 52, -3, -12, 19, -44, -31, 33, 11, -14, 43, 31, 7, 58, 84, + 45, 35, 18, -5, 6, -21, -6, -20, -7, 41, 53, 29, 25, 55, 68, 37, + -29, -17, -41, -67, -76, -90, -112, -104, -60, -21, 25, 16, -23, -9, 30, 47, + 17, 3, 19, 4, -2, 30, 24, 1, 26, 33, 34, 10, 14, 1, -5, 16, + -2, -60, -32, -51, -48, -38, -34, -42, -20, 16, 17, -16, -32, -6, 4, -39, + -18, 1, -20, -22, 55, 70, 34, 5, -1, 13, 2, 1, 28, 20, -31, -2, + 51, 26, 24, 19, 11, -1, 2, 30, 13, 2, 70, 36, 15, 24, 5, 9, + 14, 48, 43, 8, 2, -10, 18, 33, 22, -27, -19, -17, -22, 11, 19, -5, + 0, -55, -60, -49, -63, -72, -45, -80, -55, -18, -8, 32, 52, 22, 0, -40, + -42, -30, -68, -51, -9, -67, -52, -10, 7, 35, 12, 36, 64, 23, 13, 64, + 39, 32, 73, 3, 6, -10, -6, 16, 18, 53, 51, 21, -20, -15, 13, -3, + 2, -39, -30, -7, -3, 6, 10, -4, -25, -7, -10, -10, -18, -31, -23, -38, + -48, -3, -26, -43, -7, 11, 31, 62, 41, -7, -34, -42, -24, 17, 12, 44, + 25, 24, 18, 11, 32, 51, 46, 46, 51, 33, 24, 32, 30, 40, 8, -30, + -39, -30, -44, -19, -33, -55, -41, -36, -70, -67, -64, -34, -37, -46, 1, 19, + 27, 81, 23, 13, 10, -5, -18, -19, -51, -14, -48, -75, 11, 51, 43, 63, + 37, 20, 19, 4, -23, 27, 47, 71, 29, 16, 15, -17, -11, 32, 40, 22, + 6, 16, -7, 5, 34, 61, 12, -21, -24, -13, -38, -41, -36, -33, 2, 9, + -45, -54, -36, 12, -18, -41, -25, -18, 19, 31, -11, -16, -22, -62, -65, -68, + -42, -4, -48, -49, 4, 38, 65, 47, 12, -20, -20, -8, 3, 32, 69, 84, + 44, 28, 31, 18, 36, 57, 74, 35, 19, 6, 24, 29, 36, 35, 6, -13, + -25, -43, -45, -35, -33, -44, -23, -41, -57, -52, -41, -35, -21, -16, -22, -11, + 33, 42, 14, 19, 16, 0, -6, -34, -17, -37, -25, -7, 6, 48, 47, 3, + -14, -17, -19, -11, -9, -11, 42, 42, 16, 1, 6, 15, 51, 42, 33, 29, + 20, -5, -3, 4, 54, 42, 8, -30, -19, -15, -15, -20, -6, -7, -24, -32, + -24, -17, -1, -16, -18, -36, -55, -38, -2, 8, 16, 7, -21, -35, -56, -67, + -17, -58, -67, -36, 21, 67, 48, 15, 8, 13, -9, -8, -1, 21, 107, 56, + 40, 56, 32, 33, 71, 60, 36, 30, 3, 31, 15, 4, 21, 2, -2, -25, + -30, -26, -13, -9, -26, -20, -34, -34, -51, -28, 6, -9, -24, -49, -67, -54, + -54, -52, -41, -42, -58, -37, 16, 39, 31, 16, 19, 11, -4, -23, -5, 24, + 1, 10, 24, 26, 15, 34, 70, 77, 56, 33, 43, 28, 17, 25, 12, 2, + 0, -12, -15, -2, 10, -19, -28, -45, -41, -28, -17, -3, -2, -9, -3, -25, + -45, -14, 23, 10, -5, -19, -32, -22, -10, -1, -15, -16, -6, 13, 48, 70, + 55, 23, 23, 10, -8, -14, 6, 8, -12, -5, 13, 10, -14, 0, 33, 23, + 18, 43, 21, 26, 33, 13, -14, -7, -3, -31, -29, -5, -5, -25, -27, -35, + -56, -45, -21, -17, -40, -14, 2, -23, -38, -9, 8, -16, -16, -7, -13, -25, + -4, -12, -21, -14, 3, 13, 44, 65, 60, 40, 15, 5, -20, -22, -3, 3, + 20, 39, 39, 9, 6, 21, 48, 24, 25, 25, 11, 0, 4, -5, -31, -34, + -22, -45, -40, -24, -24, -41, -38, -47, -54, -45, -16, -22, -32, -7, 16, -1, + -11, 23, 31, -1, -10, -20, -19, -9, 15, -10, -28, -21, 4, 24, 45, 60, + 56, 46, 30, 26, 23, 36, 48, 33, 46, 40, 34, 19, 12, 23, 43, 37, + 41, 43, 22, 24, 11, -11, -2, -5, 8, -28, -33, -11, -5, -26, -30, -25, + -45, -21, -8, -26, -35, -37, -39, -54, -56, -20, -23, -42, -52, -49, -63, -47, + -31, -29, -16, -21, -7, 14, 26, 48, 32, 12, -10, -22, -24, -6, 0, 33, + 44, 31, 25, 15, 10, 34, 48, 38, 14, 9, 16, 12, -23, -15, -15, -8, + -9, -19, -22, -2, -8, -10, -32, -27, 4, 12, -5, 1, -1, 4, -5, -3, + -5, 10, 37, 18, -8, -19, -3, 0, -10, -5, -31, -32, -29, -2, 18, 32, + 33, 14, -12, -15, 6, 8, 36, 66, 48, 38, 37, 42, 29, 49, 50, 42, + 28, 25, 33, 15, 2, 4, 2, 4, 2, -11, -1, 6, 3, 9, -14, -12, + -5, -12, -33, -36, -29, -26, -38, -44, -42, -38, -38, -52, -67, -70, -50, -32, + -27, -29, -38, -26, -27, 1, 21, 23, 16, -17, -34, -26, -18, -20, 2, 11, + 13, 5, 10, 13, 12, 28, 33, 35, 14, 14, 14, -8, -24, -25, -8, -16, + -23, -14, 12, 8, 21, 25, 13, 25, 29, 25, 6, 3, 36, 26, 34, 11, + 30, 29, 34, 23, 0, 1, 7, 8, 1, -10, -9, -13, 5, 17, 30, 26, + 25, 3, -11, -4, -4, 9, 13, 17, 6, 4, 17, -1, -4, 9, 16, 22, + 3, -2, -4, -16, -28, -22, -13, -34, -37, -31, -9, -7, -12, -16, -26, -12, + -14, -11, -23, -16, -24, -33, -24, -30, -17, -28, -34, -44, -51, -34, -24, -22, + -25, -2, 14, 23, 38, 46, 43, 28, 10, -6, -11, 1, 0, 5, 18, 16, + -3, 12, 27, 23, 32, 48, 42, 34, 21, 21, 10, -3, -10, -10, -20, -38, + -34, -29, -22, -16, -15, -17, -9, 7, 6, 6, -6, 1, 7, 6, 3, 11, + 30, 30, 15, 11, 11, 10, 17, 22, 23, 24, 9, 15, 5, -2, 4, 3, + -17, -21, -4, -21, -6, 8, -9, -1, 0, 8, -7, -18, -16, -3, -14, -13, + -8, -17, -10, -8, -26, -37, -28, -17, -35, -17, -10, 1, -6, 1, 25, 32, + 26, 9, -18, -19, 1, -12, -20, 2, 12, 5, -4, 15, 14, 15, 15, 17, + 14, 2, 6, 3, -18, -21, -9, -1, -15, -11, -15, -22, -1, 3, -7, 0, + 14, 14, -4, -13, 4, 18, 12, 15, 19, 25, 28, 27, 12, 9, 9, -10, + -17, -4, -5, -4, -20, -19, 11, 20, 13, 0, -19, -8, 6, -9, 6, 26, + 18, 14, 17, 22, 24, 18, 21, 37, 20, 7, 11, -8, -11, -4, -3, -8, + -22, -16, -18, -15, -4, -9, -21, -10, 5, -8, -7, -17, -7, -9, -20, -28, + -35, -31, -23, -23, -29, -28, -28, -33, -28, -24, -6, 0, -4, 7, 29, 25, + 15, -6, -19, 1, -2, -22, 4, 10, 1, 9, 10, 13, 4, 6, 21, 15, + 5, 21, 11, -18, -21, -15, -3, -4, -15, -15, -19, 4, 19, 11, 2, 17, + 16, 2, 14, 14, 17, 20, 22, 20, 10, 16, 27, 12, 8, 11, 5, -9, + -10, -6, -1, -7, -12, -3, 3, 8, 9, -5, -3, 6, -5, -6, 23, 14, + 11, 12, 21, 21, 4, 18, 30, 7, 12, 25, 3, -11, -16, -15, -10, -13, + -8, -6, -21, 2, -2, -25, -18, -8, -22, -22, -17, -12, -7, -12, -15, -20, + -41, -28, -24, -23, -12, -12, -15, -10, -7, 2, 1, 6, 18, 29, 23, 21, + 20, 9, -3, -9, -9, -10, -15, -8, -11, -2, 6, 14, 7, 7, 11, 9, + 14, 2, 3, 7, 6, 6, -21, -20, -10, -12, -15, -16, -18, -14, -11, -14, + 0, 0, -5, 3, 14, 12, 9, 0, -11, 5, 5, 12, 11, -1, 5, 3, + 1, 4, -1, -1, 13, 16, 8, 14, 9, -2, -7, -11, -17, -12, -5, -9, + -10, -13, -4, 1, 0, 4, 5, 0, 2, 3, 5, 14, 18, 9, -3, 2, + 15, 14, 6, 2, 1, -1, -5, -6, 0, 0, 0, 7, 20, 22, 23, 13, + 13, 17, 20, 35, 25, 20, 20, 14, 17, 16, 3, 7, 18, 15, 13, 17, + 6, -5, -6, -13, -23, -19, -19, -22, -22, -24, -17, -18, -22, -27, -31, -30, + -29, -30, -33, -36, -34, -37, -47, -38, -24, -28, -27, -31, -30, -28, -26, -20, + -14, -14, -9, 4, 17, 21, 15, 12, 25, 29, 33, 33, 30, 30, 31, 19, + 20, 14, 4, 10, 17, 18, 21, 28, 19, 20, 20, 5, -2, -3, -7, -10, + -2, 1, 4, 6, 4, 5, 3, 2, -1, -4, -7, -10, -3, -6, -16, -5, + -1, -8, -7, -6, -9, -10, -11, -7, -6, -10, -11, 2, 11, 7, 1, 6, + 12, 16, 18, 15, 11, 14, 16, 9, 11, 6, 5, 13, 14, 13, 11, 0, + -11, -4, -4, -8, -7, -5, -6, -3, -1, 2, -1, -6, -7, -9, -9, -9, + -15, -11, -14, -17, -16, -18, -17, -12, -7, -8, -7, -6, -2, -3, -12, -15, + -15, -18, -13, -19, -23, -24, -21, -21, -13, -12, -7, -3, -7, -6, -4, 2, + 1, 1, 3, 9, 23, 28, 23, 17, 24, 27, 22, 19, 16, 19, 10, 9, + 10, 10, 19, 8, 11, 16, 15, 11, 13, 14, 7, 5, -3, -7, -12, -15, + -16, -17, -10, -5, 4, -2, -2, -9, -13, -9, -8, -10, -10, -12, -5, 3, + 7, 3, 9, 3, 4, -1, -2, 2, -4, -9, -4, 0, 4, 4, -6, -3, + 12, 10, 15, 12, 7, 7, 1, -1, 8, 11, 9, 9, 13, 17, 17, 9, + 11, 4, 0, -3, -6, -8, -9, -10, -17, -20, -24, -17, -19, -22, -20, -21, + -15, -16, -19, -23, -21, -28, -26, -15, -14, -4, -1, -6, -3, -1, 4, 9, + 2, 4, 7, 7, 11, 15, 6, 17, 24, 16, 15, 9, 6, 6, 3, 1, + 3, 2, -2, 6, 6, 6, 3, -6, -3, -8, -7, -10, -13, -17, -18, -16, + -19, -13, -9, -3, 4, 10, 7, 7, 12, 11, 13, 10, 6, 1, 2, 4, + 4, 10, 10, 7, 4, 1, 4, -5, -12, -3, 1, 10, 7, 6, 4, 19, + 22, 20, 23, 16, 15, 19, 17, 14, 9, 7, 4, 4, 2, 5, 3, 0, + 0, -7, -7, -8, -7, -14, -15, -18, -25, -21, -21, -16, -13, -14, -17, -18, + -23, -21, -23, -29, -32, -33, -30, -23, -13, -11, -10, -8, -7, -2, 1, -3, + -1, 5, 13, 17, 13, 11, 13, 16, 14, 10, 11, 8, 16, 13, 4, 0, + 7, 13, 14, 15, 15, 17, 17, 9, 8, 9, 9, 2, 5, 11, 14, 7, + 4, 11, 10, 5, 7, 2, -1, -4, -9, -16, -15, -12, -9, -15, -23, -21, + -22, -22, -20, -22, -22, -21, -22, -22, -13, -6, 4, 2, -2, 2, 7, 6, + 10, 8, 9, 12, 21, 16, 11, 7, 11, 13, 11, 10, 11, 13, 9, 6, + 6, 5, 4, -5, 1, 4, 5, -1, -2, 6, 3, 3, -3, -10, -14, -14, + -14, -16, -8, -6, -1, -6, -7, -5, -7, -6, -9, -8, -8, -4, -5, -8, + -6, 3, 12, 4, -2, 3, 1, 1, -1, -4, -4, 5, 6, 1, -4, -3, + 5, 9, 8, 18, 20, 22, 15, 11, 11, 15, 12, 9, 11, 11, 11, 5, + 10, 12, 5, 3, -2, -4, -9, -9, -16, -17, -14, -12, -14, -20, -15, -16, + -17, -17, -19, -20, -19, -15, -17, -15, -13, -2, -3, -13, -8, 0, 4, 7, + 6, 4, 11, 13, 14, 11, 5, 6, 3, -1, -2, 2, 3, -1, -2, -6, + -4, -1, -3, 0, 3, 1, -2, -5, -5, -3, -6, -9, -7, -15, -13, -10, + -8, -4, 1, 9, 7, 2, 8, 8, 9, 12, 14, 7, 12, 12, 12, 8, + 14, 19, 11, 7, 10, 13, 10, 2, -2, -6, -1, 2, 6, 3, 1, 4, + 2, 2, 5, 8, 8, 7, 7, 2, 0, -3, -6, -3, -1, -6, -12, -9, + -6, -7, -9, -10, -14, -16, -12, -12, -11, -13, -16, -16, -20, -18, -14, -10, + -8, -9, -13, -9, -8, -9, -7, -9, -8, -3, -4, -3, -6, 0, 2, 3, + -3, 2, 5, 1, 6, 5, 5, 10, 11, 17, 15, 20, 25, 20, 15, 17, + 13, 12, 11, 7, 4, -1, -2, 6, 7, 7, 9, 10, 7, 9, 7, 5, + 5, 1, -6, -2, -5, -6, -3, -3, -1, -3, -5, -3, -6, -8, -7, -8, + -11, -12, -16, -19, -19, -14, -14, -17, -17, -11, -12, -15, -6, -8, -12, -12, + -9, -7, -6, 2, 9, 6, 8, 11, 13, 15, 14, 11, 7, 3, 3, 4, + 7, 9, 10, 6, 6, 5, 7, 11, 11, 4, 1, 1, -3, -5, -1, -1, + -1, -5, -2, -1, -1, 1, 1, -3, -7, -7, -9, -12, -11, -3, -3, -7, + -6, -6, -5, -5, 0, -3, -4, -2, 2, -1, 0, 6, 7, 7, 4, 3, + 5, -1, 0, -1, -7, -9, -8, -11, -5, 0, -1, 0, 2, 2, 5, 10, + 10, 7, 7, 7, 8, 8, 9, 11, 9, 8, 9, 6, 4, 2, 0, -3, + -5, -8, -8, -12, -8, -1, -4, -4, -5, -7, -9, -6, -5, -6, -8, -6, + -3, -7, 0, 5, 6, 3, 1, 6, 6, 4, 3, 1, -2, -4, -6, -4, + 3, 7, 3, 0, -1, -3, -2, -1, -2, -5, -8, -9, -7, -9, -8, -6, + -9, -7, -9, -7, -6, -7, -6, -7, -7, -7, -7, -8, -2, 1, 2, 4, + 3, 5, 6, 10, 11, 9, 10, 12, 9, 9, 11, 9, 10, 8, 7, 7, + 6, 7, 5, 4, 5, 4, -1, -4, -3, -5, -1, -2, -4, -4, -4, -4, + -2, -2, -3, -4, -2, -1, 0, 1, 8, 8, 4, 4, 4, 2, -2, -3, + -5, -6, -9, -10, -8, -5, 2, 1, -2, -2, -2, -2, -2, -5, -5, -7, + -7, -3, -4, -6, -4, -3, -5, -7, -5, -4, -7, -9, -6, -6, -9, -7, + -6, -2, 3, 3, 4, 5, 3, 4, 5, 2, 0, 2, 3, 2, 5, 7, + 10, 9, 7, 7, 6, 4, 1, -2, -5, -6, -10, -10, -8, 2, 8, 7, + 6, 7, 5, 5, 7, 6, 3, 4, 3, 4, 1, 3, 2, 4, 2, 1, + 1, -1, -3, -3, -4, -6, -9, -9, -9, -7, -6, -5, -5, -4, -5, -2, + -1, -2, -3, -1, -1, -3, -2, 2, 2, 3, 4, 4, 2, 0, -1, -3, + -4, -4, -5, -7, -2, 2, 2, -1, -3, -1, -4, -3, -2, -4, -4, -2, + -1, -2, -4, -2, -2, -1, -2, -2, -2, -3, -2, 0, 2, 0, -2, -2, + 0, 2, 3, 5, 4, 4, 4, 6, 3, 1, 0, 0, 0, 0, 5, 5, + 4, 6, 4, 2, 0, -2, -3, -6, -9, -8, -10, -10, -2, 3, 4, 4, + 4, 5, 4, 4, 5, 4, 4, 4, 4, 2, 3, 2, 2, 2, 1, 1, + 0, -2, -3, -3, -4, -6, -8, -7, -4, -6, -3, -3, -3, -2, 1, 0, + -1, -2, -2, -1, -1, 0, 1, 0, 0, 1, 0, 0, 0, -1, -2, -3, + -3, -4, -5, -4, -3, -3, -3, -3, -3, -3, -2, -1, 0, -1, 0, 0, + 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 2, 3, + 3, 2, 2, 0, -1, -1, -2, -3, -3, -4, -5, -4, 0, 3, 3, 3, + 3, 2, 3, 4, 6, 4, 4, 3, 2, 1, 2, 1, 0, 0, -1, -2, + -3, -3, -2, -2, -3, -3, -3, -3, -3, -2, -2, -2, -2, -2, -2, -2, + -2, -3, -2, -3, -2, -2, 0, 0, 0, 0, 0, -1, -1, -2, -2, -3, + -2, -4, -4, -3, 0, -1, 0, 0, 0, 0, 0, 1, 2, 1, 1, 1, + 0, 0, 0, -1, 0, -1, -1, -1, -1, -1, 0, 0, -1, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, + 0, 0, -1, -1, -2, -2, -2, -2, -2, -3, -3, -1, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 1, 0, 0, 0, -8, -33, -24, -25, -25, -26, -27, + -32, -28, -36, -31, -36, -22, -34, 11, -74, -14, 94, 41, 28, 33, 30, 40, + 34, 23, 41, 40, 60, 56, 59, 60, 44, 39, 54, 45, 52, 17, 44, 62, + 34, 33, 19, 18, 43, 35, 22, 36, -15, -10, 32, -7, -12, -6, -8, -50, + -47, -44, -4, -25, -48, -76, -58, -75, -96, -85, -118, -114, -63, -106, -103, -83, + -110, -99, -84, -76, -58, -63, -61, -51, -53, -36, -32, -41, -27, -11, 11, 8, + 27, 19, 30, 35, 28, 57, 53, 38, 71, 51, 68, 110, 78, 89, 109, 97, + 82, 94, 115, 114, 79, 70, 79, 94, 85, 76, 84, 95, 83, 82, 55, 54, + 54, 41, 41, 27, 20, 6, -11, -21, -16, -14, -33, -33, -52, -54, -59, -62, + -71, -79, -88, -88, -78, -78, -72, -71, -94, -99, -93, -90, -78, -87, -105, -103, + -79, -62, -71, -78, -63, -61, -66, -49, -23, -10, -11, -24, -20, -4, -22, 9, + 8, 27, 43, 34, 38, 51, 83, 65, 58, 74, 75, 70, 73, 71, 65, 100, + 89, 94, 65, 84, 49, 49, 61, 54, 43, 51, 58, 53, 35, 40, 36, 38, + 34, 23, 14, -12, -10, -1, -1, -11, -12, -19, -33, -66, -52, -42, -37, -55, + -42, -28, -32, -29, -35, -41, -28, -25, -46, -85, -64, -62, -55, -49, -68, -55, + -53, -52, -47, -43, -26, -32, -41, -34, -35, -40, -26, -8, -1, -6, -11, 5, + -2, 8, 3, 8, 6, 4, 20, 29, 43, 24, 33, 20, 30, 24, 39, 38, + 40, 29, 37, 36, 39, 61, 58, 41, 51, 59, 51, 55, 58, 48, 32, 45, + 40, 27, 30, 41, 44, 26, 19, 23, -3, 7, 0, -3, 2, 3, -6, -5, + -14, -6, -10, -27, -45, -47, -41, -38, -50, -51, -46, -43, -45, -65, -65, -80, + -95, -82, -74, -66, -69, -67, -33, -31, -53, -48, -51, -43, -18, -24, -24, -33, + -26, -10, 0, -17, -6, 17, 31, 2, 23, 45, 46, 12, 75, 38, 63, 69, + 31, 38, 80, 57, 48, 59, 81, 74, 32, 52, 72, 24, 60, 44, 55, 40, + 28, 48, 33, 24, 10, -2, 21, 34, 13, 18, 7, -1, -12, -20, -18, -30, + -9, -7, -30, -27, -26, -38, -20, -54, -55, -64, -53, -36, -62, -37, -71, -47, + -42, -71, -45, -55, -50, -54, -56, -36, -37, -54, -36, -12, -38, -33, -26, -7, + -22, -44, -10, 2, 3, 15, 8, 18, 6, 12, 8, 15, 28, 22, 50, 35, + 55, 42, 36, 49, 52, 64, 48, 60, 49, 60, 62, 40, 47, 68, 52, 59, + 61, 44, 53, 44, 35, 31, 31, 47, 22, 6, 4, -7, 5, -4, -21, -13, + -9, -10, -27, -46, -32, -44, -46, -62, -44, -51, -67, -53, -59, -63, -74, -67, + -61, -61, -65, -47, -58, -57, -45, -41, -46, -41, -38, -22, -25, -34, -16, -10, + -18, 0, 1, -6, 5, 17, 15, 10, 23, 38, 28, 28, 54, 40, 19, 55, + 55, 41, 46, 53, 40, 49, 51, 52, 41, 56, 39, 53, 38, 33, 35, 18, + 15, 38, 30, 23, 27, 13, 11, 7, 16, -1, 0, 0, 13, -6, -10, -15, + -10, -10, -24, -20, -16, -38, -36, -21, -40, -32, -42, -38, -52, -53, -41, -48, + -58, -50, -47, -37, -41, -45, -29, -41, -6, -48, -24, -25, -15, -9, -10, -10, + -10, -1, -17, 4, 3, 10, -4, 9, 15, 25, 24, 19, 23, 34, 28, 33, + 37, 38, 26, 36, 47, 35, 46, 45, 28, 35, 32, 32, 24, 21, 26, 23, + 19, 37, 20, 9, 29, -2, 26, 24, 8, 4, 14, 21, 11, -9, -8, 4, + -9, -31, -11, -15, -21, -24, -29, -22, -33, -26, -29, -48, -32, -44, -28, -22, + -35, -30, -38, -31, -46, -44, -36, -27, -23, -29, -24, -11, -20, -28, -13, -34, + -19, -1, 7, -3, -1, 6, -3, 5, 4, 8, 17, 26, 19, 33, 27, 16, + 35, 14, 36, 39, 22, 32, 31, 19, 32, 23, 29, 21, 30, 29, 23, 31, + 13, 24, 17, 11, 26, 18, 12, 5, 23, 16, 9, 15, -10, 3, 18, -15, + -4, -4, 6, -14, -15, -5, -34, -11, -20, -18, -8, -17, -29, -30, -29, -19, + -34, -35, -20, -36, -20, -16, -21, -38, -16, -30, -24, -25, -19, -18, -15, -7, + -5, -5, -10, -23, -3, -14, 0, -1, -12, -9, 7, 7, 2, 12, 5, 7, + 19, 10, 21, 21, 27, 30, 22, 18, 34, 22, 11, 26, 24, 20, 21, 25, + 29, 22, 27, 27, 20, 10, 20, 16, 22, 15, 16, 16, 5, 19, 10, 3, + 22, -5, -5, -7, -16, -4, -11, -22, -7, -16, -11, -23, -16, -30, -24, -28, + -20, -29, -24, -32, -22, -22, -30, -17, -23, -28, -22, -20, -21, -21, -17, -30, + -15, -14, -20, -9, 3, 6, 5, -20, 10, 13, -2, 11, 8, -1, 7, 16, + 5, 22, 23, 13, 22, 13, 22, 25, 15, 16, 11, 15, 13, 7, 12, 19, + 18, 20, 12, 23, 11, 6, 10, 1, 11, 19, 5, 20, 0, 11, 11, 1, + 14, 15, -3, -1, -7, 6, -6, -9, -9, 4, -3, -10, -20, -14, -9, -14, + -7, -10, -5, -4, -29, -14, -12, -26, -21, -27, -18, -10, -19, -27, -18, -8, + -25, -8, -13, -15, -14, -15, 5, -13, -7, -11, -4, -12, 0, 15, 5, 4, + 1, 11, 6, 4, 3, 6, 21, 19, 8, 15, 13, 6, 14, 16, 18, 17, + 20, 15, 11, 15, 24, 13, 11, 19, 7, 17, 14, 6, 17, 7, 7, 6, + 6, 5, 11, 0, 6, 0, -6, 5, 1, -11, -6, -1, -8, -9, -15, -7, + -4, -16, -17, -13, -13, -17, -14, -12, -12, -28, -13, -19, -25, -31, -24, -17, + -17, -16, -7, -15, -12, -8, -15, -8, -16, -10, -4, -1, -2, 3, 5, 2, + -2, 5, 3, 6, 10, 8, 11, 14, 14, 13, 15, 22, 16, 14, 18, 13, + 17, 19, 16, 10, 17, 8, 17, 14, 3, 14, 7, 10, 10, 7, 6, 6, + -1, 6, 1, 0, 12, -6, 6, 12, -4, -5, -4, -2, -2, -1, -2, -8, + -11, -9, -11, -11, -18, -6, -5, -16, -9, -14, -10, -13, -10, -11, -15, -14, + -14, -12, -17, -17, -17, -7, -11, -14, -15, -12, -6, -15, -5, -13, -9, 0, + 12, -2, -2, 6, 2, -7, 4, 10, 2, 9, 8, 7, 4, 5, 11, 15, + 11, 10, 18, 9, 13, 13, 13, 21, 11, 18, 19, 13, 14, 16, 6, 8, + 1, 19, 11, 10, 11, 1, 3, -1, -1, 5, -11, 5, -1, -5, -3, -13, + -10, -6, -7, -5, -15, -10, -11, -18, -8, -16, -20, -18, -9, -12, -17, -21, + -21, -13, -21, -8, -10, -10, -5, -16, -7, 2, -6, -6, -9, -7, -2, -9, + -5, 6, -7, 1, 3, -1, 2, 1, 2, 9, 8, 5, 15, 12, 1, 11, + 9, 8, 10, 15, 14, 5, 13, 17, 14, 15, 10, 7, 16, 5, 5, 5, + 8, 9, 10, 10, 7, 0, 4, 6, 9, -10, -4, 5, 2, -1, 0, -3, + -4, -5, -10, -5, -8, -9, -10, -3, -13, -6, -9, -20, -15, -11, -18, -14, + -10, -12, -20, -14, -14, -7, -12, -21, -14, -9, -8, -11, -5, -2, -7, -4, + 4, -2, -3, -1, 0, -1, 8, 6, 9, 7, 10, 6, 3, 4, 7, 10, + 11, 6, 9, 17, 11, 9, 7, -2, 16, 13, 12, 18, 5, 16, 9, 4, + 9, 6, 8, 9, 4, 4, 3, -2, -3, 2, -6, -3, 1, -7, -6, -3, + -6, -14, -8, -9, -4, -13, -9, -8, -16, -10, -12, -13, -11, -7, -8, -12, + -9, -8, -7, -11, -4, -8, -7, -8, -3, -13, -10, -3, 6, -5, -5, 0, + -5, -3, 6, -2, -2, 4, -2, 6, 2, -2, 5, 5, -2, 5, 15, 13, + 4, 6, 6, 14, 9, 4, 8, 7, 3, 11, 12, 2, 10, 7, 10, 8, + 4, 6, 2, 0, 3, 2, 4, 2, -6, -2, 2, -4, 3, -5, -6, -5, + -5, -5, -4, -8, -7, -4, -4, -7, -8, -7, -13, -10, -10, -11, -9, -8, + -8, -7, -11, -7, -3, -9, -6, -7, -3, -4, -5, 3, -3, -1, -2, -4, + 1, 4, 0, 3, 0, 5, 2, 0, 5, 4, 1, 3, 1, 0, 1, 7, + 3, 0, 4, 3, 6, 5, 0, 9, 5, 7, 6, 3, 6, 2, 3, 5, + -4, 9, 0, 4, 10, 0, 5, 1, -2, 4, -3, -3, -2, 0, 2, -7, + 3, -10, -1, -6, -9, -2, -4, -10, -3, -7, -6, -4, -10, -6, -6, -11, + -6, 0, -6, -8, -4, -1, -9, -10, 0, -6, -7, -2, -7, 1, -5, -5, + -1, 1, -6, 2, 0, -3, -1, 7, -4, 0, 7, 0, 8, 2, 3, 4, + 4, 2, 5, -1, 6, 7, 5, 6, 4, 2, 4, 6, 8, 6, 3, 1, + 8, 9, 2, -1, 4, 3, 4, 3, -3, 7, 4, 3, -2, 2, -4, -6, + -2, -5, -2, -3, 0, -5, -6, -13, -5, -6, -11, -9, -10, -5, -4, -9, + -9, -7, -7, -8, -8, -6, -5, -7, -5, -1, -3, -4, -2, -2, 2, -3, + 1, 2, -3, 1, 2, 1, 0, 1, 5, 0, 2, 5, 2, 0, 4, 1, + 7, 3, 2, 6, 0, 5, 7, 5, 5, 1, 3, 3, 5, 10, 3, 4, + 8, 2, 7, 3, -2, 3, 0, -1, -1, 1, 0, 1, -3, -2, -5, -4, + -3, -1, -7, -8, -4, -4, -10, -2, -8, -8, -8, -8, -9, -6, -8, -9, + -4, -2, -7, -5, -2, -7, -6, -9, -2, 0, -4, 4, -6, -3, -4, -1, + 2, 1, 2, 9, 0, 3, 0, 6, 4, 0, 5, 6, 2, 7, 7, 5, + 7, 6, 8, 6, 6, 5, 5, 1, 6, 5, -1, 3, 4, -1, 4, 1, + 4, 3, -5, 0, 4, 1, 4, -2, -3, -4, 0, -4, -8, -2, -5, -4, + -8, -6, -5, -3, -3, -7, -9, -6, -10, -10, -6, -6, -5, -4, -7, -6, + -4, -10, -3, -10, 0, -2, -2, -6, -1, 3, -3, -3, 1, 2, 1, 4, + 3, 4, 3, 4, 1, 2, 6, 5, 5, 5, 7, 9, 1, 5, 4, 4, + 7, 2, 9, 2, 4, 8, 2, 5, 6, 3, -2, -2, -1, -2, -1, 1, + -2, -4, 1, -6, -2, -5, -3, -5, -5, -6, -4, -3, -4, -10, -4, -3, + -8, -4, 0, -3, -5, -6, -6, -3, -1, -7, -3, 1, -1, -4, -2, 1, + -2, 0, -1, -2, 0, 0, 5, -2, 0, 3, 3, 1, 5, 2, 4, 1, + 4, 1, 2, 3, 3, 3, 4, 3, 3, 5, 1, 4, 2, 3, 1, 2, + 0, 2, 1, -2, -2, -1, 0, -2, -1, -1, -3, -5, -2, 0, -5, -1, + 0, -5, -2, -2, -2, -3, -3, -1, -4, -1, -2, -4, -2, -1, -2, -1, + 0, -3, -1, -1, 0, 1, -1, -1, 3, -4, -2, -2, 4, -2, -1, -1, + -1, 0, 0, -1, -1, -1, -1, 2, 0, -1, 2, -1, 0, -1, 2, 0, + 3, 5, -2, 1, 2, 0, 5, 0, -3, 4, -3, 1, 2, 0, 4, -1, + -2, 1, 0, 0, 0, -1, 1, -2, 0, 1, 1, 0, -5, 1, -2, -1, + 0, -2, -3, -1, -3, 0, -2, -3, -4, 1, -2, -3, -2, -2, -1, -1, + -2, -1, -4, -5, 2, -4, 0, 1, -1, 2, -2, -1, 0, 0, 1, -3, + 3, 2, 0, -2, 2, 1, 2, -2, 5, 3, -2, -2, -1, 1, 0, 0, + 1, 3, 2, 0, 0, -1, -2, 1, 1, 2, 1, 1, -1, 0, -1, -1, + -1, -3, 1, 1, 2, -2, -1, 0, 0, -2, 0, -1, -1, 2, -2, 1, + -1, 0, 0, -1, -1, -2, 0, -1, 1, -1, -1, 2, -2, 0, -1, -1, + 2, -1, 0, -3, -1, 0, 0, 0, -3, -3, -2, 0, 0, -1, -1, 0, + -4, 2, 0, -2, 0, 1, -3, -1, 2, 1, 0, -1, 0, 0, -1, 0, + 2, -1, -1, 0, 0, -2, 1, 1, 0, 1, 0, 2, -3, -2, 2, -1, + -1, 2, -2, 1, 1, 0, 0, 1, 1, 0, -4, 3, -1, 2, 0, 2, + -1, -2, 0, 1, 1, -1, -1, -1, -1, -1, -2, -2, -2, -2, -2, -1, + -1, 1, 0, -5, 0, -1, -1, -1, 1, -1, 1, -1, 1, 0, -2, 0, + -2, 1, -1, 1, 0, -1, -2, 0, -1, 0, 0, 2, 0, 0, 0, 1, + 0, 0, 2, 0, -1, 0, 0, 0, 2, -1, 1, 1, -1, -1, 0, 0, + 1, 1, 0, 0, 0, 0, -1, 0, 0, -2, 0, 0, -1, 1, -2, -1, + -1, -1, -2, -1, -2, 1, -1, 0, -2, -2, 1, -2, -1, 1, 0, 1, + 1, -1, -1, 0, -1, 0, 0, 0, -2, 0, -1, 0, 0, -1, -2, -2, + -2, 1, -1, 0, 0, -1, 1, 1, -2, -1, -2, -1, 1, -1, -1, -2, + -2, 0, 0, 1, -1, -1, -1, -1, -2, 2, 0, 0, 1, 1, 1, -2, + 0, -1, 0, -1, -1, 2, 0, -1, -1, -1, 1, -1, 2, 0, -1, 1, + 1, 0, 1, 0, -1, -1, -1, -1, -3, 0, 0, -1, 1, 0, 0, -2, + -2, -2, 0, -1, 0, 0, -1, 0, -1, -2, -1, -2, 0, -2, 0, 0, + -1, -2, 1, -2, 0, -1, -2, 2, 0, -1, 2, -1, 1, -1, 0, 0, + -1, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, -1, -1, 0, -2, -1, + 0, 0, 1, 0, 0, 0, 0, -1, -1, 1, -1, -2, -1, 0, 0, -2, + 0, -1, 0, 0, 0, 1, 0, 0, -1, 1, 0, -1, 0, 1, -1, 0, + -1, -2, 0, -1, 0, -1, -1, -1, 0, -1, 0, 0, 0, -1, -1, 0, + -2, 0, 0, 0, -2, -2, 0, -2, -1, -1, -1, -2, 0, -1, -1, -1, + 0, 0, -1, -1, 0, 1, -1, -1, 0, -1, 0, 0, 1, 1, 0, 0, + -1, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 1, 0, 0, -1, 0, + 0, -1, -1, 0, -1, -1, 0, -1, 0, -1, -1, 0, -2, -1, 0, -1, + -1, -1, -1, 0, -1, 0, 0, 0, 0, -1, 1, 0, 0, 0, -1, -1, + 0, -1, -1, 0, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, 0, -1, + 0, -2, 0, -1, -1, -1, 0, -1, -1, 0, -1, 0, 0, 0, -2, -1, + 0, -1, -1, 0, 1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, + 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, + -1, 0, 0, -1, -1, -1, 0, 0, -1, -1, 0, -1, 0, 0, 0, -1, + 0, -1, -1, 0, -2, -1, -1, -1, 0, -1, 0, -1, -1, 0, 0, -1, + 0, -1, 0, -1, -1, -1, 0, -1, 0, -1, 0, 0, -1, 0, -1, 0, + 0, -1, -1, 0, 0, 0, -1, 0, -1, 0, 1, -1, 0, 0, 0, 0, + 0, -1, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, -1, 0, 1, + -1, -1, -1, 0, 0, -1, -1, -1, -1, 0, -1, 0, 0, 0, 0, 0, + 0, -1, -1, 0, -1, -1, 0, -1, 0, -1, -1, -1, -1, 0, -1, -1, + -1, -1, -1, -1, -1, 0, -1, 0, -1, 0, 0, -1, -1, 0, -1, 0, + -1, 0, 0, -1, 0, -1, -1, -1, 0, -1, 0, 0, 0, 0, 0, -1, + -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, + 0, -1, 0, -1, 0, 0, 0, -1, -1, 0, 0, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 0, 0, -1, -1, -1, 0, 0, 0, -1, 0, -1, -1, + 0, -1, 0, 0, -1, -1, -1, -1, -1, 0, 0, -1, 0, 0, -1, 0, + 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, + -1, 0, 0, 0, 0, -1, 0, 0, -1, 0, -1, 0, 0, -1, -1, -1, + 0, -1, -1, 0, -1, -1, 0, 0, -1, -1, -1, -1, 0, -1, -1, 0, + 0, -1, 0, 0, 0, -1, -1, 0, -1, -1, -1, 0, 0, -1, -1, -1, + -1, -1, 0, -1, 0, 0, -1, -1, 0, 0, -1, 0, 0, -1, -1, -1, + 0, -1, 0, 0, -1, -1, 0, 0, -1, -1, 0, 0, 0, -1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, + 0, 0, 0, -1, 0, -1, 0, -1, -1, -1, -1, -1, -1, 0, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 0, -4, 11, 6, 16, 10, -16, -48, + -44, 2, 67, 42, -17, -51, 15, 71, 12, -22, -14, -44, -35, 11, 17, -18, + 2, -15, 19, 12, -1, -44, -15, 50, 45, -25, -61, 17, 10, -10, 31, 18, + -72, -27, 57, 26, -13, -17, -2, 6, -1, -23, -54, 17, 39, 8, 30, 28, + -6, -71, -5, 33, 27, -5, 17, 10, -23, -6, 12, -26, -6, -7, -9, -14, + 11, 37, 41, 8, -33, -14, 8, -31, -38, 13, 9, 15, 35, 33, 11, 17, + -41, -48, -33, 29, 25, 16, -9, -9, -17, -19, -29, 43, 64, -2, -55, -42, + -1, -21, -4, 29, 34, -25, -67, -29, 1, 51, 49, 25, -6, -15, -48, -76, + -3, 60, 78, 33, 19, 13, -38, -35, -35, -2, 62, 19, -4, -12, -4, -4, + -32, -30, 8, 68, -43, -66, -28, 55, 51, 20, -28, -29, -19, 20, -2, 8, + 21, -15, -43, 24, 22, -7, -2, 35, 15, -2, -24, -12, 3, 31, 13, -15, + -20, -17, -17, 26, -26, 24, -3, 7, 21, 26, -3, -17, -26, -50, -26, 33, + 58, 49, -22, -67, -17, 24, 7, -57, 5, 42, -11, -3, 32, -3, 7, 13, + -11, -9, 27, 17, 1, -5, -9, -18, -19, -3, -23, -5, 7, -8, 9, 13, + 12, -5, 7, -37, 22, 26, 21, 24, -20, -35, 23, 24, -35, -15, 46, -38, + -48, -14, -4, 0, -22, 3, 43, 38, -1, -14, -8, -5, -14, 1, 21, 23, + 29, -19, -47, -42, -49, -10, 66, 77, 48, -29, -32, 1, -11, 8, 17, -17, + 3, 43, 33, -22, -19, -41, 29, 22, -42, 9, 63, 28, -23, -59, -65, 7, + 53, -22, -10, -27, -30, 36, 48, -4, -6, -22, -16, 10, 14, -7, 22, 50, + -4, -25, -41, -55, -62, 23, 68, -16, -31, 49, 57, 21, -38, 14, 12, -43, + -49, -16, 28, 7, -12, -50, -17, 49, 65, 18, 1, -8, 28, 2, -27, -13, + 12, -11, -52, 4, 31, -32, -39, 15, 8, -19, 6, 25, -1, -23, 13, 34, + 59, 36, -16, -5, -7, -28, -30, 1, -14, -42, 10, 43, 26, -25, -37, -61, + 1, 63, 62, 1, -36, -24, 38, -7, -26, 27, 10, 4, 2, -19, -22, -27, + -24, 0, 33, -8, -57, -12, 62, 77, 51, -10, -42, -27, -28, -31, -3, 5, + 21, 10, 15, -27, -18, -18, -10, 3, 17, 19, 18, -16, -20, 25, -3, -19, + -5, 32, 17, -3, -32, -8, 2, -11, -24, -17, -11, 3, 42, 15, -12, -2, + 26, 9, -4, -30, -3, 16, 7, 13, 34, 40, 114, 11, -104, -71, 7, -14, + -34, -26, 35, 45, 47, 7, -7, -16, 11, -6, -29, -32, 1, 24, 32, 10, + 29, -10, -74, -80, -20, 18, 9, 18, 61, 38, -27, -44, 13, 16, -26, 20, + 69, 14, -14, -46, -7, -6, -35, 0, 9, 5, 58, 71, -36, -78, -15, 43, + 34, -61, -101, -27, 45, 26, -10, 23, 69, 69, 5, -72, -62, 19, 16, -37, + -60, 37, 60, 10, -49, -10, -2, -1, 43, 44, 10, -50, -5, 19, 8, -43, + -58, -17, 32, 28, 4, -1, -18, -10, 13, 8, 1, 1, 22, -3, -4, 9, + -8, -9, 17, 3, -15, -8, 14, 11, -14, -11, -5, 13, -24, -34, -1, -16, + -4, 32, 35, -32, 9, 22, 12, -27, -16, 14, 15, 0, -2, -12, -31, -24, + 14, 48, 10, -14, -7, -22, 4, -8, -14, 19, 21, -21, -25, -12, 19, 24, + 19, 27, -3, -15, -16, 10, 21, -14, 3, 8, 3, -11, -33, -16, 7, 5, + -8, 2, -3, 12, 5, -34, -19, -6, 26, 19, 0, -4, -12, 5, 12, 20, + 16, 19, 18, -13, -42, -26, -1, 0, -18, -16, 10, 27, 23, -5, -7, 9, + -8, 7, 22, 10, -28, -51, -26, 13, 44, 17, 16, 25, 14, -32, -45, -36, + -40, -3, 22, 41, 34, -12, -35, -31, 18, 3, 31, 28, 4, -21, 2, -14, + -24, -23, 19, -6, -7, -10, -1, -13, -13, 21, 52, 28, 7, 1, -25, -36, + 2, 34, 10, -37, -31, -13, 19, 11, -4, -20, 15, -5, -18, 40, -13, 15, + -36, 14, 18, 17, -21, 6, -39, 21, 7, -26, 8, -33, 24, 30, 32, -11, + -26, -47, -39, 62, 10, 11, 5, -17, -21, 10, 0, 18, 15, -22, 7, 13, + 14, -8, -9, 30, 33, -34, -41, -32, 37, 24, -19, -15, 1, 2, 10, 10, + -27, -46, -14, -9, 9, 47, 1, -22, -18, 5, 37, 29, -3, -19, -19, -18, + 8, 17, 1, -11, -6, -20, 27, 37, -2, -28, -34, -3, 22, 54, 34, -31, + -43, -28, -30, -33, 26, 49, 45, 43, -15, -58, -13, -2, -27, -7, 41, 11, + 19, -50, -74, -28, 31, 75, 39, -45, -7, 99, 44, -83, -47, 45, -1, -30, + 23, 29, -55, -30, 31, 28, -19, 2, -44, -46, -49, 30, 22, 58, 31, -50, + -20, 9, -38, -53, 49, 37, -9, 13, -25, -18, 18, -27, -7, 17, 3, 24, + 57, 26, -51, -52, -54, -43, 53, 85, 31, -36, -44, 7, 13, 19, -23, -33, + 36, 47, -38, -11, 37, -19, -6, 18, 17, 2, 31, 54, -29, -72, -80, -1, + 27, 52, 10, -29, -40, -48, -72, 24, 108, 66, -44, -76, -32, -24, 21, 69, + 54, 24, -2, -8, -28, -44, -50, 34, 95, 45, -40, -72, -32, 6, 28, -1, + 18, -7, 27, 1, -14, 21, -8, -51, -62, -24, 64, 56, 12, 19, -36, -22, + 10, 20, -10, -1, -5, -51, 36, 72, -42, -51, 70, 45, -48, -27, 54, 19, + -46, 8, 0, -46, 10, 37, 35, -21, -32, -22, -44, -82, -33, 59, 105, 48, + -32, -36, -31, 18, 60, -12, -49, 10, 89, 28, 12, 8, -45, -21, -6, -16, + -32, -17, -18, 3, 29, -3, 0, -20, -51, -31, 24, 52, 1, -17, -20, 1, + 35, 15, 5, 35, 27, 18, -19, 8, -71, -74, -8, 88, 57, -45, -37, 17, + 51, -1, -13, -4, 3, -13, -24, -7, 30, -7, -25, -1, 16, -8, -43, -70, + 11, 85, 77, 12, -62, -57, 35, 53, -33, -96, 8, 82, 21, -38, 25, 39, + -1, -27, -14, 18, -16, -45, -24, 42, 7, -9, 22, 32, -39, -5, -8, -49, + -17, 60, 88, 21, -93, -20, 82, 31, -26, -63, -17, 52, -28, -25, 13, -2, + -32, -46, 55, 56, -37, 6, -57, -33, 65, 63, 5, -25, -31, 69, 86, -32, + -34, -56, -23, -47, 14, 44, -23, 19, 6, 60, -27, -69, -37, 20, -14, -5, + 50, 44, 15, 13, -23, -60, -46, 23, 40, -5, -25, 6, 46, -4, -10, -27, + -12, 28, 45, 10, -13, -33, -19, -39, 42, 32, -23, -25, 24, -17, 13, 25, + 13, -32, 13, 48, 4, -93, -5, 40, -7, 37, -39, -37, 41, 1, -13, -33, + 43, -53, 106, 8, -57, -93, 55, 40, 56, -24, -4, -19, 7, -23, -65, -18, + 34, -30, 7, 66, 92, 3, -43, -37, -23, 12, -7, -17, 14, -15, -9, -18, + 18, 51, -1, -57, -17, 23, 19, 15, -40, -1, 0, -8, 39, -13, -43, 72, + 57, -1, -54, -17, 32, -19, 11, 0, 36, 25, -23, -86, 21, -3, 14, -17, + 76, 37, 23, 2, -23, -54, -42, -80, 61, 60, 63, -12, -57, -44, 15, 35, + 26, 11, -44, -22, 8, 33, -24, -17, 21, 38, -25, -39, 16, 43, -36, -28, + 54, 10, -52, -18, -34, -14, 76, 60, 24, -32, -19, 16, -13, -68, -5, 30, + -13, -23, -14, 61, 24, 35, 39, 4, -50, -58, -39, 0, 43, 43, 21, 24, + -20, -46, -36, 38, 8, -67, -8, 61, 38, 10, -12, 5, -4, -16, -47, -5, + -18, -20, 37, 41, 24, 4, 7, -19, 11, -52, 0, 17, 20, -30, -33, -16, + 60, 34, -15, -46, -77, 14, 29, 26, 21, 25, 8, 7, 36, 23, -39, -16, + 21, 11, -23, 11, -4, -6, -35, 13, -8, -49, -17, 44, 19, -25, -17, 9, + -5, -5, -1, -31, 11, 15, 17, -8, -31, -51, 12, 54, 85, 32, 4, -58, + -35, -31, 0, 10, 21, -20, -20, -29, 15, 26, -7, 8, 4, 0, 30, 2, + -26, 2, 19, 15, -18, -13, -20, -19, 47, 33, -6, -51, -30, -12, 12, 30, + 34, 31, 4, -45, -81, -7, -22, 1, 73, 98, 24, -67, -13, 19, -32, -86, + 6, 94, 4, -47, 21, -11, -50, 22, -3, -2, 50, 20, -37, -59, 35, 28, + -16, -36, -30, -11, 4, 69, 98, -65, -84, 73, 27, -90, -17, 84, 10, -51, + -14, 40, -24, -11, 16, -34, -26, 38, -43, -34, 58, 85, -33, -51, 17, 7, + 4, 52, 25, -35, 0, 44, -21, -47, 40, 44, -69, -65, 37, 35, -21, 4, + 32, -60, -75, 21, 64, 60, -6, -11, 6, 2, -41, -34, 19, 31, 9, 7, + -1, 11, 6, -11, -26, -23, 16, 35, -39, -68, 6, 56, -3, -42, 29, 28, + 3, 28, 14, -37, -16, 11, -8, -18, 15, -1, -8, 43, -20, -67, -12, 34, + 7, -12, -9, 5, -4, 7, -12, 27, -3, -68, 26, 96, 30, -33, -28, -25, + 19, 27, -33, -48, -3, 37, -1, -35, -11, 5, 42, 36, 6, -48, -38, 26, + 54, -23, -41, 52, 44, -32, -22, 28, -23, -32, 12, 41, -16, -6, -6, -17, + -18, -14, -12, -5, 18, 52, 45, -10, -16, 29, 11, -36, -26, 7, 36, 12, + -57, -48, 48, 70, 16, 21, -13, -46, -33, -62, -63, -21, 94, 94, 20, -110, + -47, 41, 67, -16, -57, -40, 85, 71, 7, -39, 15, -29, -50, -41, 18, -40, + -42, 38, 69, 21, -8, -58, -19, 23, 24, -20, -10, 11, 41, 7, -6, -30, + -23, 2, 16, 57, 38, -11, -50, 36, -16, -51, -51, 81, 24, -68, -84, 39, + 112, 62, -79, -104, 24, 102, 15, -38, 20, 22, -49, -91, 15, 51, 30, -1, + -15, -30, -12, 17, 42, -17, -48, 0, 49, 35, 2, -19, -16, -30, 9, 17, + -12, -4, -15, 5, 34, -1, -56, -64, 7, 48, 54, -16, -51, 20, 62, -17, + -27, -9, -10, -29, -1, 35, 44, -20, -23, -2, -12, -4, 31, 24, -24, -14, + 2, -28, -27, 49, 61, -54, -61, 6, 23, -20, 2, 41, 26, 2, 15, -5, + 6, -16, -36, -16, 2, -54, -53, -18, 62, 64, 10, -3, 91, 39, -54, -103, + -5, 16, -31, -28, 75, 105, -32, -114, -52, 68, 32, -52, -19, 25, 54, 61, + 14, -40, 12, 1, -56, -31, 74, 40, -73, -66, 0, 49, 36, 24, -20, 0, + 13, -40, -99, -11, 55, 31, -33, 39, 24, 3, -18, 7, 10, 4, -29, 17, + 19, 27, -30, -41, 9, 33, -24, -25, 30, 28, -34, -57, 8, -7, -46, 5, + 48, -22, -6, 57, 58, -31, -72, -2, 72, 44, -53, -42, 41, 1, -54, 30, + 54, -6, -79, -14, 33, -6, -22, 14, 10, -5, -8, 13, 23, 21, -47, -74, + 22, 24, -10, -7, 39, 2, 12, -7, -2, 4, 33, -20, -33, 18, 22, -88, + -71, 26, 81, 14, -37, 3, -24, 6, -8, 11, 40, 18, -7, -17, 20, -8, + -15, -41, -11, 27, 52, -27, -46, 33, 21, 46, -30, -13, 26, -91, -106, -47, + 54, 109, 67, -87, -90, 38, 92, 31, -10, -69, -73, -27, -6, 24, -6, 20, + 30, 45, 33, -13, -25, 10, 57, -16, -32, 0, -14, -55, -20, 4, 7, -4, + 3, 18, -11, 34, 11, -45, -45, -125, -38, -2, 19, 72, 82, 99, 98, 35, + -51, -81, -53, 3, -39, 23, -4, -58, -63, -24, 40, 84, 48, -7, -18, -2, + -8, -20, -10, 3, 21, 17, -39, -66, -20, -2, 37, 30, 39, 34, -5, -41, + -26, 33, 40, 18, -2, 11, 13, -20, -60, -21, 33, -25, -35, 30, 65, 22, + 13, -15, 2, 16, 11, -68, -18, 74, 10, -74, -34, -39, -17, 8, 59, 39, + -22, -38, -8, 9, 30, 23, 11, -3, -12, 10, -1, 59, 9, -28, -72, -27, + 32, 68, -11, -3, 27, 4, -33, -39, 7, -1, -5, -7, 26, -14, -26, -40, + -12, 5, 5, 1, -12, 64, 63, -41, -56, 10, 26, 40, -26, -44, -42, 25, + -6, 3, -1, 10, 9, -1, 9, 1, -28, 10, 24, 26, -33, -36, 46, 20, + -43, -52, -35, 22, 53, 30, -6, 18, -16, -49, -36, 45, 10, 21, 7, 9, + -33, -50, 21, 73, 33, -42, -46, 42, -12, -18, 5, -50, -25, 68, 55, -31, + -79, -7, 77, 25, -6, 29, 78, 24, -87, -41, -30, -41, -23, 75, 35, -32, + -65, -7, -13, 3, 41, 34, -24, -33, 25, 14, -52, -28, 19, 76, 45, -45, + -47, -5, 24, 9, -14, -41, -5, 49, 22, 10, -31, -35, -1, -6, 3, 10, + -1, -12, -20, -51, 9, 79, 53, -36, -38, -13, -14, -15, 50, 50, -36, -33, + 0, 5, 22, 23, 24, -51, -81, -27, 56, 42, -10, -16, 0, 0, -5, 16, + 12, -19, 11, 10, -15, -1, -32, -17, 1, 11, 62, -16, -21, 9, 21, -29, + -50, 16, 82, 17, -35, -4, 11, 3, 8, 8, -9, -13, 10, -39, -63, -19, + 54, 58, -16, -25, 18, 38, -8, -50, -54, -17, 18, 47, 17, -33, -45, 0, + 52, 57, -5, -34, -17, 32, 10, -28, -10, -21, -3, -9, -20, 20, 47, 22, + 5, -4, -15, -37, -22, -28, 9, 37, -18, -13, 3, 15, -33, -47, 20, 73, + 0, -36, 33, 60, -11, -77, -13, 42, 13, -20, 9, 47, 22, -27, 29, 6, + -71, -78, -20, 21, 4, 27, 23, 19, 31, 45, -29, -54, -10, 37, -78, -46, + -14, 67, 108, 57, 12, -62, -108, -15, 116, 56, -58, -110, -33, 33, 30, -39, + -26, 11, 29, 22, 8, 52, 76, 31, 0, -31, -50, -10, 59, 54, -13, -84, + -65, -60, 0, 35, 105, 61, -30, -117, -62, 35, 88, 57, 48, -38, -85, 41, + 12, -21, -6, 7, 15, 73, -30, -72, -37, 25, 0, -5, 65, 76, -90, -78, + 24, 47, 2, -14, 40, 83, 0, -32, -46, -62, -26, 50, 37, -4, -44, -40, + 55, 31, -38, -13, -17, -30, -4, 7, 68, 39, 1, -23, -38, -30, 6, -35, + 14, 52, -9, -62, -47, 45, 44, 11, -17, -9, 6, 16, 34, -3, -32, -21, + -33, -3, 21, 26, -39, 11, 65, 33, 19, -1, -49, -85, -97, 66, 58, -93, + -15, 15, 5, 81, 76, 29, -2, -52, -51, -30, 65, 38, -45, -14, 1, 28, + 22, 43, 19, -59, -109, -29, 29, -14, -22, -41, 0, 54, 76, 16, 8, 23, + 15, -47, -39, -8, 5, 36, -6, -3, -4, 13, 13, 21, -47, -53, -6, -9, + -27, -44, 8, 86, 64, 12, -5, -32, -10, -20, -27, -23, 8, 30, 1, 16, + 42, -35, -8, 4, -39, -11, -62, -29, 108, 87, -20, -104, -18, -55, 8, 47, + -16, 29, 38, 4, -44, -39, -20, 38, -13, 23, 82, 30, -67, -93, 26, 79, + 20, -79, -74, -23, 33, 59, 80, 39, -42, -100, 0, 19, 38, 9, -55, 9, + -15, 22, 68, -17, -55, -23, 1, 87, 19, -56, -60, 32, 37, 38, -67, -33, + -1, 31, 24, 15, -30, -5, -36, -29, -27, 8, 27, -9, 12, 29, 38, 33, + 0, -39, -18, 6, 19, 18, 8, 1, -33, 9, -1, 2, -29, -66, 0, 41, + 6, -50, -13, 9, 73, -28, -47, -21, 30, 68, 31, 32, 29, -46, -14, 13, + -44, -75, -3, 62, 55, 9, -49, -1, 54, 19, -6, 7, 16, 38, 13, -26, + -55, -76, -23, 16, 21, -33, -22, 16, 61, 25, -14, -35, 12, 23, -7, -17, + -32, -10, -16, -1, 7, 18, -1, 19, -2, -1, 21, -14, 1, -44, -44, -23, + -29, -1, 28, -28, 47, 64, 12, -4, -15, -37, -7, 24, 50, 6, -15, -26, + -5, 20, 12, -25, -21, -2, -18, -23, 9, 16, 24, 36, -30, -35, -12, 32, + 19, -13, 19, -6, 2, -2, -22, -11, 14, 50, 10, -21, -55, -14, 23, 6, + 6, -6, -26, -25, -8, 25, 14, 24, 14, -13, 18, 11, 23, -34, -49, -45, + 6, 39, 37, 3, 0, -29, 8, 26, -6, -7, -21, 2, -11, 6, 16, -1, + -17, 6, 32, -4, -54, -9, 22, -14, 6, 27, -1, -2, 34, 33, 8, 1, + -8, -14, -32, 23, -22, -23, -29, -12, 5, 25, 22, -4, 14, 5, 24, -39, + -29, 17, -21, -80, -60, -9, 78, 99, 81, -41, -53, 22, 11, -69, -22, -2, + 70, 80, 18, -56, -54, -79, -27, 56, 46, 28, -1, 12, -37, -76, 23, 64, + -4, -5, 4, 0, -2, -5, 10, -4, -9, 5, 3, 3, -2, 6, -2, -1, + 0, 2, 0, 1, -2, 2, -3, -2, 0, 1, -1, 0, 0, -1, -1, -1, + 0, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, -1, -1, -1, -1, 0, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -2, -3, -5, -6, -5, -5, + -3, 0, -1, -3, -1, 7, 16, 20, 8, -8, -24, -35, -39, -36, -35, -42, + -47, -35, -14, 0, 8, 17, 28, 45, 60, 65, 64, 66, 67, 60, 50, 39, + 26, 14, 5, -14, -40, -54, -56, -56, -55, -47, -36, -20, 1, 13, 15, 16, + 12, 2, -10, -20, -33, -43, -42, -38, -43, -40, -28, -17, -7, 6, 21, 34, + 48, 60, 63, 64, 66, 61, 54, 51, 41, 23, 10, 1, -18, -37, -46, -54, + -63, -60, -46, -30, -13, 5, 15, 16, 17, 11, -2, -11, -21, -34, -44, -45, + -43, -42, -33, -21, -17, -10, 5, 23, 39, 54, 62, 61, 62, 63, 59, 53, + 47, 38, 23, 10, -5, -23, -36, -42, -51, -61, -61, -48, -26, -2, 14, 16, + 13, 13, 9, -1, -14, -27, -36, -42, -44, -48, -44, -31, -17, -10, -8, 1, + 21, 47, 65, 67, 58, 54, 58, 61, 54, 41, 31, 23, 11, -9, -30, -41, + -44, -45, -54, -61, -52, -21, 11, 25, 19, 8, 4, 7, 2, -15, -33, -39, + -39, -44, -51, -48, -34, -12, -2, -4, -2, 19, 54, 74, 72, 58, 47, 51, + 59, 54, 40, 26, 20, 7, -16, -37, -46, -44, -42, -51, -58, -47, -15, 19, + 31, 25, 9, -1, -1, -4, -15, -30, -37, -41, -51, -55, -48, -28, -11, -4, + -2, 6, 28, 58, 73, 74, 63, 50, 45, 46, 49, 42, 31, 19, -6, -30, + -43, -44, -42, -51, -54, -49, -33, -3, 18, 30, 31, 17, 2, -13, -15, -15, + -25, -31, -45, -62, -60, -45, -24, -16, -10, 6, 20, 40, 58, 68, 74, 69, + 55, 41, 37, 44, 43, 34, 15, -17, -41, -48, -46, -51, -59, -51, -34, -16, + 3, 17, 29, 33, 23, 2, -15, -18, -18, -22, -31, -50, -64, -61, -42, -30, + -24, -8, 13, 35, 50, 57, 65, 70, 70, 58, 42, 40, 41, 40, 32, 6, + -23, -45, -53, -55, -64, -60, -45, -24, -1, 10, 19, 27, 28, 23, 4, -9, + -17, -22, -23, -36, -53, -61, -60, -47, -36, -22, -3, 19, 44, 56, 60, 65, + 65, 65, 60, 52, 45, 39, 37, 23, -2, -26, -49, -63, -66, -63, -55, -42, + -16, 3, 14, 25, 25, 22, 19, 11, -2, -17, -20, -29, -44, -50, -58, -64, + -53, -32, -13, 0, 25, 45, 53, 65, 68, 61, 60, 63, 60, 47, 42, 33, + 7, -10, -26, -56, -73, -68, -57, -53, -37, -12, -1, 14, 32, 26, 16, 17, + 16, 1, -12, -19, -38, -52, -47, -55, -65, -50, -23, -9, 4, 27, 40, 48, + 68, 72, 59, 58, 67, 64, 52, 42, 21, -5, -16, -31, -60, -73, -62, -54, + -49, -34, -17, -4, 17, 32, 24, 13, 18, 20, 6, -11, -29, -46, -48, -46, + -54, -59, -41, -17, -5, 6, 20, 35, 54, 71, 68, 55, 60, 74, 71, 53, + 27, 5, -6, -16, -35, -62, -70, -57, -49, -45, -40, -25, 4, 25, 29, 15, + 7, 23, 27, 10, -20, -46, -47, -41, -39, -47, -55, -34, -11, -1, 4, 11, + 38, 67, 72, 62, 48, 61, 83, 76, 49, 9, -9, -7, -15, -31, -59, -70, + -55, -48, -46, -43, -21, 16, 29, 22, 6, 1, 25, 32, 10, -28, -57, -47, + -34, -30, -38, -49, -33, -12, -4, 3, 17, 50, 72, 68, 55, 44, 61, 86, + 77, 41, -2, -16, -10, -13, -28, -56, -69, -58, -52, -47, -35, -7, 22, 25, + 13, -4, -2, 25, 33, 7, -35, -58, -46, -29, -22, -32, -44, -34, -16, -5, + 8, 30, 59, 72, 65, 46, 39, 62, 87, 76, 33, -8, -20, -13, -10, -28, + -57, -70, -62, -51, -42, -24, 3, 23, 23, 4, -15, -4, 25, 34, 3, -38, + -55, -45, -23, -17, -32, -43, -34, -15, -1, 14, 41, 64, 73, 59, 35, 35, + 64, 89, 73, 26, -11, -23, -14, -11, -33, -60, -69, -59, -48, -39, -14, 11, + 25, 17, -11, -24, -3, 30, 35, -3, -40, -54, -41, -18, -19, -36, -41, -28, + -10, 0, 21, 51, 70, 71, 47, 24, 36, 72, 93, 65, 17, -14, -22, -13, + -17, -43, -62, -63, -52, -48, -36, -5, 19, 26, 5, -26, -27, 5, 40, 31, + -12, -42, -50, -34, -20, -28, -37, -33, -17, -8, -1, 29, 61, 75, 64, 31, + 19, 44, 85, 93, 51, 9, -15, -18, -16, -30, -50, -57, -52, -48, -52, -32, + 3, 25, 20, -10, -34, -21, 19, 42, 20, -17, -40, -43, -35, -30, -32, -32, + -21, -12, -12, 3, 37, 67, 72, 50, 25, 24, 57, 92, 81, 42, 6, -12, + -18, -25, -39, -53, -52, -44, -49, -51, -28, 6, 25, 13, -17, -32, -11, 29, + 39, 8, -24, -38, -37, -33, -36, -39, -30, -10, -3, -9, 3, 38, 68, 71, + 46, 23, 32, 68, 92, 71, 31, 5, -7, -16, -31, -50, -55, -45, -37, -49, + -53, -27, 8, 23, 8, -20, -24, 3, 34, 28, -6, -28, -32, -30, -35, -46, + -43, -23, 0, 0, -10, 5, 41, 67, 65, 42, 30, 47, 77, 83, 52, 23, + 10, 2, -16, -43, -60, -55, -38, -36, -53, -53, -25, 8, 19, 3, -14, -8, + 17, 29, 9, -17, -24, -22, -26, -43, -53, -42, -14, 4, -3, -9, 10, 44, + 63, 58, 43, 43, 63, 77, 64, 38, 24, 20, 7, -23, -52, -62, -49, -38, + -45, -57, -49, -19, 6, 11, 2, -1, 12, 22, 13, -7, -18, -15, -17, -32, + -50, -52, -32, -11, -4, -8, -3, 21, 44, 55, 53, 52, 63, 70, 64, 49, + 35, 34, 24, 0, -29, -53, -54, -50, -51, -56, -57, -37, -17, -2, 7, 9, + 20, 21, 12, 1, -13, -11, -13, -24, -36, -49, -40, -30, -22, -12, -9, 10, + 25, 38, 51, 57, 70, 71, 62, 57, 44, 42, 34, 15, -4, -30, -42, -53, + -65, -61, -61, -49, -35, -22, -2, 10, 25, 27, 15, 11, -1, -8, -14, -22, + -27, -37, -37, -37, -40, -26, -14, -2, 10, 24, 42, 54, 68, 73, 65, 65, + 60, 49, 36, 27, 15, -7, -25, -43, -63, -69, -65, -61, -54, -36, -13, 3, + 18, 26, 23, 20, 16, 1, -16, -21, -20, -31, -37, -38, -40, -38, -25, -15, + -7, 11, 34, 48, 56, 66, 71, 72, 73, 61, 43, 34, 29, 11, -14, -31, + -46, -63, -69, -72, -69, -53, -28, -7, 3, 16, 27, 30, 28, 15, -3, -14, + -19, -25, -39, -42, -37, -38, -35, -30, -19, -2, 18, 39, 47, 56, 69, 75, + 78, 71, 60, 49, 35, 22, -1, -20, -32, -50, -65, -76, -75, -63, -49, -27, + -9, 6, 22, 28, 31, 27, 16, 6, -13, -26, -36, -43, -41, -42, -42, -36, + -27, -10, 2, 18, 38, 52, 64, 70, 73, 79, 76, 70, 50, 27, 11, -5, + -21, -41, -62, -69, -72, -68, -61, -50, -26, -4, 13, 21, 23, 32, 35, 27, + 6, -21, -33, -37, -42, -48, -53, -45, -31, -19, -8, 3, 23, 45, 59, 65, + 65, 73, 88, 88, 69, 40, 19, 10, -6, -30, -54, -69, -69, -68, -67, -59, + -43, -18, 2, 10, 15, 22, 39, 46, 27, -3, -28, -34, -37, -48, -56, -60, + -48, -29, -16, -1, 14, 35, 52, 58, 60, 64, 80, 96, 88, 64, 34, 16, + 6, -11, -36, -62, -77, -75, -68, -58, -47, -33, -14, -1, 7, 15, 28, 43, + 44, 24, -6, -30, -38, -40, -49, -63, -68, -56, -30, -5, 15, 27, 40, 51, + 59, 63, 72, 84, 91, 83, 60, 32, 12, 1, -14, -45, -73, -84, -78, -62, + -46, -36, -28, -17, 0, 11, 20, 31, 38, 35, 20, -6, -28, -40, -46, -58, + -72, -71, -52, -26, 4, 26, 37, 45, 54, 64, 69, 74, 81, 80, 73, 59, + 35, 13, -5, -28, -54, -75, -79, -74, -63, -43, -30, -21, -11, 0, 14, 23, + 29, 33, 23, 14, -2, -25, -41, -58, -69, -71, -64, -43, -24, 3, 33, 47, + 56, 60, 64, 73, 74, 75, 73, 62, 56, 38, 13, -12, -42, -57, -69, -77, + -71, -63, -44, -25, -15, -3, 2, 13, 26, 23, 24, 19, 8, -2, -24, -44, + -64, -74, -64, -60, -45, -16, 9, 34, 53, 63, 68, 66, 75, 73, 63, 66, + 62, 49, 34, 11, -17, -43, -54, -66, -82, -72, -52, -43, -28, -10, 0, 4, + 18, 27, 16, 13, 20, 8, -11, -26, -47, -66, -63, -59, -63, -47, -7, 20, + 34, 56, 69, 65, 73, 81, 67, 54, 61, 63, 44, 25, 6, -23, -37, -44, + -69, -85, -69, -48, -39, -26, -7, -4, 5, 27, 25, 9, 10, 15, 5, -17, + -34, -52, -62, -54, -54, -60, -40, -5, 21, 41, 59, 67, 66, 78, 81, 64, + 53, 58, 56, 39, 18, -3, -24, -34, -45, -64, -76, -67, -51, -37, -21, -8, + -3, 11, 22, 20, 11, 9, 11, -4, -23, -38, -56, -57, -53, -50, -42, -31, + -5, 21, 41, 63, 67, 72, 77, 69, 67, 58, 56, 49, 28, 16, -8, -28, + -35, -50, -53, -62, -65, -53, -44, -20, -2, 2, 14, 10, 14, 17, 7, 5, + -13, -27, -37, -60, -58, -55, -42, -22, -18, -2, 13, 36, 69, 73, 76, 71, + 62, 70, 60, 53, 42, 23, 16, -13, -35, -45, -51, -40, -46, -58, -60, -52, + -17, 4, 8, 11, 5, 14, 15, 4, -4, -20, -23, -37, -62, -67, -59, -27, + -2, -3, -3, 3, 36, 70, 77, 75, 66, 67, 70, 57, 46, 32, 29, 19, + -17, -49, -62, -46, -25, -33, -54, -68, -51, -15, 4, 8, 6, 11, 18, 8, + -7, -19, -16, -12, -35, -68, -83, -56, -9, 13, 7, -7, 4, 40, 66, 73, + 69, 73, 80, 69, 46, 27, 31, 42, 24, -23, -68, -69, -36, -14, -25, -57, + -66, -43, -16, -3, -2, 11, 28, 23, -2, -31, -29, -4, -1, -34, -83, -89, + -45, 3, 22, 6, -3, 16, 41, 56, 55, 68, 93, 93, 65, 23, 12, 38, + 53, 27, -38, -80, -64, -29, -12, -31, -54, -49, -34, -22, -24, -11, 28, 47, + 25, -24, -51, -27, 5, 5, -43, -90, -79, -34, 6, 11, 4, 17, 31, 39, + 34, 38, 79, 114, 105, 50, 3, 12, 44, 56, 16, -49, -72, -54, -28, -29, + -44, -37, -27, -28, -41, -45, -5, 46, 61, 17, -44, -53, -20, 7, -6, -53, + -78, -62, -27, -7, -6, 14, 41, 45, 26, 11, 38, 93, 127, 101, 34, 1, + 20, 48, 42, -1, -41, -53, -45, -40, -51, -44, -18, -9, -34, -61, -47, 7, + 57, 58, 2, -46, -43, -14, -5, -27, -52, -58, -46, -31, -26, -12, 28, 59, + 45, 10, 6, 50, 104, 124, 87, 30, 11, 30, 40, 19, -9, -26, -35, -44, + -58, -62, -38, -4, -6, -46, -67, -37, 21, 56, 43, -4, -37, -30, -15, -25, + -40, -44, -38, -38, -43, -38, -9, 40, 64, 37, 5, 14, 65, 106, 107, 75, + 36, 26, 34, 24, 4, -8, -10, -24, -53, -70, -64, -30, 0, -16, -53, -61, + -22, 28, 43, 29, -2, -21, -20, -26, -39, -43, -34, -26, -43, -54, -40, 0, + 46, 56, 30, 12, 30, 75, 97, 90, 69, 47, 38, 29, 13, 2, 0, -1, + -27, -61, -71, -55, -25, -14, -32, -50, -41, -6, 22, 25, 17, 4, -8, -19, + -31, -38, -35, -28, -35, -53, -54, -29, 7, 31, 32, 23, 28, 51, 72, 78, + 72, 65, 55, 42, 30, 19, 15, 11, -8, -36, -58, -58, -42, -35, -35, -43, + -40, -18, 0, 12, 14, 11, 9, -4, -15, -25, -31, -28, -36, -49, -53, -45, + -18, 1, 12, 19, 23, 43, 58, 64, 68, 64, 64, 57, 46, 40, 28, 22, + 9, -17, -35, -48, -47, -44, -47, -45, -44, -31, -12, -2, 7, 10, 9, 7, + -2, -8, -19, -28, -32, -44, -51, -48, -37, -21, -9, 5, 16, 26, 43, 55, + 60, 64, 63, 61, 58, 55, 48, 34, 21, 6, -13, -27, -39, -49, -53, -50, + -46, -41, -32, -16, -3, 5, 11, 9, 6, 5, -4, -17, -32, -40, -42, -44, + -42, -40, -32, -12, 5, 17, 24, 35, 50, 58, 64, 64, 60, 65, 61, 50, + 34, 18, 10, -2, -18, -38, -58, -56, -49, -45, -41, -38, -22, -4, 8, 14, + 8, 11, 10, -5, -20, -38, -41, -36, -37, -40, -48, -37, -12, 4, 14, 19, + 27, 46, 59, 66, 63, 62, 70, 64, 50, 34, 22, 17, 8, -11, -38, -59, + -57, -50, -49, -47, -43, -28, -6, 10, 16, 10, 14, 8, 1, -5, -5, -4, + -5, 5, 2, 2, 1, -1, 0, 1, 0, 2, 0, 0, -2, -1, -1, 2, + 1, 1, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, -1, -1, -1, + 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, + -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, + -1, 0, 1, 0, 0, 0, 1, 0, 1, 0, -3, -10, -11, -8, -13, -25, + -21, -10, 0, 2, 18, 41, 44, 42, 66, 62, 28, 10, 17, 17, -16, -10, + 25, 28, 29, 34, 47, 34, -7, 7, 25, -12, -43, -44, -40, -61, -85, -78, + -55, -42, -33, -10, 17, 31, 43, 59, 51, 25, 25, 40, 27, -1, 2, 25, + 30, 15, 12, 27, 26, 13, 16, 9, -24, -43, -37, -49, -83, -92, -62, -40, + -42, -36, 1, 33, 34, 45, 61, 46, 27, 32, 33, 10, -6, 15, 38, 26, + 4, 15, 35, 19, 7, 17, 3, -26, -41, -50, -67, -91, -82, -48, -40, -46, + -24, 18, 33, 32, 54, 62, 46, 30, 22, 20, 7, 4, 28, 33, 15, 10, + 22, 25, 9, 13, 18, -2, -29, -54, -65, -74, -86, -68, -49, -46, -32, -8, + 17, 29, 45, 65, 60, 43, 23, 13, 17, 12, 18, 28, 22, 19, 16, 13, + 14, 16, 24, 13, -13, -40, -66, -72, -75, -74, -64, -55, -36, -20, -9, 15, + 43, 63, 65, 51, 37, 17, 9, 19, 23, 21, 19, 24, 21, 3, 4, 24, + 31, 18, -2, -20, -49, -77, -74, -65, -71, -69, -47, -27, -27, -10, 38, 66, + 59, 52, 51, 34, 4, 11, 36, 26, 12, 22, 26, 2, -11, 25, 45, 18, + 0, -1, -23, -72, -83, -55, -65, -83, -61, -34, -37, -36, 23, 71, 55, 43, + 60, 55, 11, 1, 40, 37, 8, 16, 31, 6, -22, 14, 55, 27, -3, 8, + 2, -52, -83, -57, -56, -89, -79, -43, -43, -55, -4, 66, 61, 35, 56, 68, + 31, 4, 32, 46, 13, 7, 31, 16, -24, -4, 50, 42, 2, 7, 16, -25, + -67, -60, -54, -86, -95, -55, -44, -63, -32, 40, 62, 40, 47, 67, 48, 22, + 32, 42, 18, 4, 25, 25, -15, -16, 29, 44, 21, 11, 15, -5, -39, -49, + -59, -85, -96, -72, -52, -62, -50, 7, 45, 49, 50, 56, 56, 43, 42, 39, + 19, 9, 16, 21, 1, -16, 9, 32, 31, 24, 14, 5, -14, -34, -52, -81, + -94, -85, -71, -62, -55, -21, 21, 41, 53, 55, 55, 57, 51, 44, 26, 13, + 15, 11, 3, -3, 0, 19, 27, 29, 26, 11, 0, -16, -41, -70, -90, -88, + -85, -80, -57, -34, -3, 26, 42, 57, 57, 60, 64, 50, 33, 20, 17, 9, + -6, -1, 6, 10, 23, 26, 28, 22, 10, 1, -27, -60, -78, -87, -90, -94, + -74, -42, -20, 10, 34, 44, 57, 65, 71, 58, 35, 30, 23, 8, -5, -7, + 4, 7, 19, 33, 23, 19, 24, 17, -13, -53, -65, -75, -96, -98, -83, -61, + -40, -7, 32, 38, 38, 66, 83, 65, 36, 36, 37, 8, -7, 1, 0, -5, + 11, 39, 34, 10, 21, 36, 4, -45, -59, -59, -89, -106, -84, -67, -62, -32, + 21, 41, 30, 47, 85, 80, 41, 34, 45, 20, -8, 0, 9, -7, -6, 31, + 45, 21, 12, 32, 25, -27, -55, -52, -76, -104, -95, -70, -64, -57, -7, 33, + 34, 38, 67, 84, 57, 35, 46, 29, -1, -4, 7, 7, -8, 12, 41, 31, + 21, 24, 25, -5, -43, -45, -65, -98, -98, -82, -62, -58, -35, 13, 27, 38, + 59, 70, 67, 45, 49, 39, 2, -3, 2, 9, 9, 6, 30, 30, 24, 31, + 20, 3, -26, -37, -48, -91, -100, -88, -75, -53, -41, -9, 12, 23, 55, 65, + 61, 54, 51, 51, 14, -6, 1, 1, 15, 18, 26, 29, 16, 30, 28, 4, + -14, -29, -36, -71, -100, -93, -87, -64, -38, -16, 2, 6, 33, 61, 59, 56, + 54, 55, 32, 1, -3, -4, 5, 25, 36, 36, 17, 14, 25, 14, -4, -19, + -30, -53, -84, -94, -95, -82, -49, -16, 4, 2, 10, 37, 56, 61, 58, 54, + 42, 19, 3, -9, -8, 14, 41, 53, 32, 10, 7, 10, 10, -7, -25, -43, + -65, -81, -97, -99, -72, -29, 9, 11, 3, 10, 33, 61, 65, 55, 46, 30, + 19, 0, -17, -5, 29, 62, 57, 24, -1, -6, 10, 8, -16, -35, -54, -64, + -80, -105, -99, -57, -2, 26, 13, -2, 6, 42, 67, 60, 49, 36, 31, 22, + -10, -24, 1, 49, 77, 53, 9, -14, -4, 10, -4, -26, -47, -56, -58, -89, + -115, -93, -34, 23, 33, 6, -6, 16, 50, 62, 53, 39, 34, 40, 16, -24, + -26, 15, 71, 82, 38, -5, -13, -1, 3, -13, -39, -53, -48, -61, -103, -119, + -80, -6, 42, 27, -1, 2, 26, 51, 56, 43, 33, 43, 42, 4, -34, -23, + 37, 87, 70, 20, -6, -10, -3, -5, -27, -49, -48, -44, -72, -115, -118, -56, + 22, 43, 17, 3, 12, 33, 51, 45, 34, 38, 51, 38, -11, -42, -9, 59, + 86, 53, 13, -5, -5, -3, -19, -42, -50, -43, -45, -85, -127, -105, -28, 34, + 37, 15, 8, 23, 41, 42, 34, 33, 45, 55, 26, -27, -38, 12, 69, 77, + 40, 9, 1, 0, -13, -33, -48, -49, -39, -55, -102, -124, -83, -8, 37, 31, + 14, 19, 35, 39, 34, 30, 35, 51, 50, 9, -31, -25, 27, 72, 65, 30, + 12, 9, -2, -23, -42, -52, -46, -43, -71, -109, -112, -63, 7, 36, 25, 20, + 33, 42, 35, 29, 29, 40, 52, 35, -2, -28, -12, 40, 69, 51, 26, 18, + 13, -8, -33, -48, -50, -46, -57, -84, -107, -98, -43, 14, 29, 24, 30, 44, + 43, 30, 26, 34, 44, 40, 19, -8, -20, 4, 46, 59, 42, 29, 25, 10, + -18, -40, -46, -47, -57, -73, -91, -100, -78, -30, 13, 25, 30, 44, 48, 39, + 29, 31, 41, 35, 23, 9, -9, -5, 16, 43, 52, 40, 37, 25, 0, -23, + -41, -43, -54, -74, -82, -93, -86, -60, -26, 12, 26, 41, 53, 44, 40, 33, + 36, 38, 19, 12, 2, -3, 9, 18, 40, 48, 42, 41, 16, -6, -23, -41, + -45, -68, -84, -86, -90, -71, -52, -22, 15, 32, 52, 54, 45, 45, 36, 36, + 25, 6, 6, 0, 5, 15, 21, 41, 46, 46, 37, 10, -7, -24, -42, -57, + -81, -88, -88, -83, -62, -43, -14, 16, 41, 59, 55, 48, 48, 40, 27, 10, + 2, 2, 0, 8, 22, 30, 36, 45, 50, 32, 5, -9, -23, -48, -75, -86, + -86, -88, -81, -54, -26, -11, 16, 52, 65, 55, 50, 53, 39, 9, -2, 4, + 2, -4, 11, 36, 34, 27, 47, 51, 26, 0, -9, -23, -63, -91, -85, -81, + -89, -79, -38, -13, -11, 23, 62, 67, 55, 52, 56, 29, -8, -7, 7, 0, + -5, 19, 44, 30, 28, 49, 46, 21, -2, -10, -32, -79, -96, -83, -81, -87, + -67, -27, -11, 0, 36, 65, 67, 58, 54, 48, 14, -15, -7, 3, 1, 6, + 26, 35, 30, 38, 46, 37, 18, -2, -18, -48, -85, -96, -89, -81, -70, -52, + -30, -8, 20, 48, 63, 66, 59, 50, 33, 6, -14, -15, -2, 13, 20, 21, + 25, 36, 45, 42, 31, 12, -10, -31, -56, -84, -103, -96, -70, -50, -43, -31, + 0, 35, 58, 68, 65, 51, 37, 26, 8, -19, -25, 2, 27, 27, 17, 20, + 36, 45, 45, 29, 0, -27, -41, -55, -87, -111, -93, -57, -37, -33, -23, 5, + 41, 70, 77, 59, 36, 26, 24, 4, -24, -22, 7, 31, 33, 19, 14, 29, + 49, 50, 22, -16, -39, -48, -63, -92, -104, -86, -51, -25, -19, -16, 10, 53, + 82, 74, 47, 26, 19, 16, -1, -18, -16, 7, 35, 37, 18, 10, 31, 55, + 41, 4, -25, -45, -57, -73, -90, -95, -82, -42, -9, -8, -11, 20, 71, 84, + 57, 39, 27, 13, 2, -6, -9, -12, 8, 45, 41, 8, 5, 42, 56, 20, + -10, -24, -50, -73, -83, -83, -87, -76, -25, 10, -5, -9, 39, 84, 71, 44, + 38, 26, 2, -9, -2, -4, -11, 17, 52, 36, 0, 11, 50, 43, 3, -19, + -31, -57, -84, -84, -77, -82, -59, -9, 14, 1, 7, 55, 81, 61, 38, 29, + 20, -2, -10, -1, -4, 0, 26, 42, 30, 8, 20, 41, 28, -4, -31, -46, + -64, -84, -82, -79, -66, -37, -7, 15, 18, 30, 58, 68, 57, 33, 17, 9, + 0, -3, -7, 0, 15, 23, 31, 29, 23, 24, 22, 14, -12, -43, -63, -72, + -73, -83, -75, -47, -26, -2, 20, 37, 48, 50, 57, 52, 30, 6, -1, 11, + 0, -9, 7, 16, 24, 28, 32, 33, 15, 7, 2, -21, -55, -79, -66, -67, + -81, -63, -38, -12, 9, 29, 53, 48, 42, 51, 47, 22, -6, 5, 18, -4, + -7, 6, 22, 28, 26, 39, 28, 2, -2, -8, -35, -73, -76, -56, -67, -77, + -55, -20, 4, 16, 40, 54, 42, 41, 51, 37, 7, 0, 17, 13, -12, -9, + 20, 31, 25, 29, 33, 15, -5, -8, -22, -57, -74, -62, -57, -74, -71, -33, + 0, 11, 26, 44, 45, 41, 47, 45, 22, 3, 12, 19, 0, -15, 4, 30, + 32, 27, 26, 17, 3, -4, -14, -44, -69, -66, -56, -63, -74, -52, -11, 12, + 21, 29, 35, 41, 49, 51, 31, 9, 11, 19, 11, -8, -7, 20, 36, 34, + 22, 10, 6, 5, -4, -33, -64, -66, -58, -58, -67, -63, -29, 4, 20, 21, + 21, 35, 52, 57, 39, 12, 10, 18, 16, 3, -7, 8, 31, 39, 25, 5, + 3, 10, 5, -22, -58, -67, -58, -56, -60, -64, -45, -11, 15, 19, 12, 24, + 50, 62, 46, 17, 9, 18, 20, 12, 0, 2, 21, 37, 31, 7, 0, 11, + 14, -12, -51, -66, -58, -53, -54, -59, -54, -29, 3, 16, 9, 17, 44, 62, + 51, 22, 8, 17, 24, 21, 9, 1, 11, 30, 31, 14, 3, 11, 16, -4, + -43, -65, -58, -49, -50, -53, -55, -43, -16, 5, 10, 16, 38, 59, 54, 26, + 7, 18, 29, 24, 18, 8, 5, 16, 27, 23, 11, 14, 18, -1, -36, -63, + -56, -43, -48, -47, -49, -52, -36, -12, 8, 17, 35, 55, 50, 28, 9, 17, + 33, 25, 24, 20, 5, 4, 15, 27, 23, 20, 22, 0, -32, -58, -55, -40, + -47, -44, -39, -52, -54, -34, -2, 19, 35, 53, 46, 27, 12, 18, 34, 26, + 26, 33, 13, -6, 0, 22, 34, 32, 28, 3, -31, -53, -51, -39, -47, -45, + -30, -45, -66, -56, -19, 15, 38, 52, 43, 22, 13, 22, 35, 26, 26, 41, + 25, -7, -13, 10, 35, 46, 39, 10, -29, -50, -46, -37, -47, -46, -27, -35, + -65, -72, -42, 2, 38, 55, 43, 19, 11, 24, 36, 27, 26, 43, 37, 2, + -19, -6, 25, 53, 56, 20, -24, -46, -43, -36, -46, -48, -29, -28, -56, -77, + -64, -22, 31, 61, 45, 16, 10, 23, 35, 30, 26, 41, 42, 16, -14, -21, + 7, 51, 70, 36, -15, -38, -40, -35, -42, -49, -35, -29, -44, -71, -81, -49, + 14, 60, 50, 18, 10, 21, 34, 34, 26, 37, 43, 30, 0, -27, -13, 37, + 74, 54, 2, -29, -35, -32, -37, -49, -42, -32, -36, -57, -85, -73, -12, 46, + 57, 27, 9, 17, 32, 38, 28, 30, 41, 39, 18, -20, -27, 15, 62, 68, + 26, -17, -30, -28, -29, -45, -51, -40, -34, -45, -77, -86, -42, 18, 54, 43, + 14, 12, 29, 42, 34, 25, 33, 41, 30, -2, -24, -5, 36, 65, 50, 3, + -24, -24, -19, -33, -54, -52, -42, -45, -61, -75, -58, -15, 32, 48, 25, 10, + 24, 45, 45, 27, 26, 32, 28, 13, -4, -6, 14, 44, 55, 24, -11, -18, + -12, -20, -46, -57, -53, -54, -57, -63, -57, -33, 4, 35, 32, 16, 22, 40, + 49, 36, 26, 28, 23, 17, 8, 1, 10, 27, 43, 33, 5, -6, -8, -14, + -33, -53, -57, -61, -62, -61, -59, -38, -10, 15, 26, 20, 26, 40, 44, 41, + 30, 27, 25, 18, 12, 3, 9, 26, 33, 28, 13, 5, 5, -8, -25, -45, + -57, -60, -64, -66, -65, -49, -17, 6, 13, 16, 26, 43, 47, 39, 32, 27, + 27, 25, 13, 3, 6, 22, 35, 26, 13, 10, 12, 5, -17, -40, -54, -58, + -58, -68, -74, -61, -31, -1, 9, 10, 23, 40, 50, 45, 31, 24, 27, 31, + 20, 3, 2, 17, 32, 31, 16, 12, 15, 12, -4, -31, -51, -55, -54, -62, + -76, -73, -47, -17, 2, 8, 19, 37, 51, 50, 34, 24, 26, 31, 25, 9, + 4, 13, 26, 34, 25, 9, 13, 20, -2, -33, -44, -43, -58, -78, -77, -59, + -44, -33, -10, 17, 6, 12, -9, 32, 13, 4, -4, 6, -9, 27, 8, 2, + -1, -3, -2, 3, -4, -3, 2, 0, -2, 1, -2, 1, -4, 2, 1, 0, + -2, -1, -3, 2, 0, -1, -2, -2, -2, -1, -2, -2, -1, -2, -2, -2, + -2, -1, -2, -1, 0, -1, -2, -2, -2, -1, 0, -2, -2, -2, -2, -1, + -1, -2, -1, -2, -2, -2, -3, -1, -1, 0, 0, -1, -3, -2, 1, 3, + 0, 0, -2, -8, -21, -17, -2, 12, 20, 19, 6, -13, -28, -73, -67, -64, + -58, -39, -11, 19, 38, 60, 96, 80, 38, 12, 6, -20, -65, -83, -65, -61, + -56, -17, 22, 35, 49, 74, 94, 55, 16, 20, -5, -52, -89, -81, -53, -65, + -36, 21, 37, 48, 51, 85, 82, 25, 23, 9, -36, -80, -105, -58, -57, -54, + 7, 36, 54, 44, 58, 97, 48, 26, 16, -21, -61, -115, -83, -45, -57, -12, + 23, 57, 54, 36, 86, 77, 37, 21, -16, -40, -103, -110, -54, -46, -24, 6, + 43, 68, 36, 62, 86, 60, 30, -12, -34, -80, -119, -76, -44, -24, -5, 24, + 64, 51, 50, 76, 72, 48, 0, -34, -68, -106, -94, -56, -26, -7, 11, 45, + 59, 58, 66, 71, 60, 23, -27, -68, -93, -93, -72, -37, -8, 10, 25, 50, + 70, 68, 62, 62, 45, -10, -70, -88, -83, -79, -57, -15, 15, 13, 31, 73, + 80, 59, 53, 61, 15, -67, -89, -73, -75, -75, -33, 21, 11, 10, 66, 92, + 65, 42, 63, 42, -56, -92, -66, -66, -84, -57, 16, 19, -5, 50, 98, 76, + 39, 56, 60, -35, -95, -64, -53, -84, -79, 0, 28, -8, 29, 96, 89, 42, + 46, 69, -10, -90, -69, -41, -74, -95, -25, 28, -1, 13, 81, 101, 53, 37, + 69, 11, -77, -75, -38, -53, -103, -55, 22, 8, 6, 61, 104, 75, 29, 59, + 31, -61, -76, -43, -36, -91, -88, 6, 17, 1, 46, 96, 94, 34, 40, 48, + -40, -80, -47, -27, -69, -107, -27, 26, 4, 29, 87, 105, 51, 24, 46, -10, + -76, -58, -21, -49, -107, -62, 17, 16, 17, 70, 110, 67, 22, 38, 10, -60, + -71, -24, -28, -97, -85, -6, 25, 18, 50, 106, 84, 28, 31, 16, -38, -71, + -38, -17, -78, -94, -30, 15, 30, 41, 86, 92, 44, 31, 15, -25, -54, -53, + -26, -57, -88, -51, -2, 33, 45, 68, 88, 59, 35, 17, -15, -42, -55, -41, + -48, -73, -60, -19, 24, 50, 61, 74, 67, 46, 21, -8, -32, -48, -54, -53, + -57, -57, -34, 9, 50, 63, 59, 65, 58, 29, -1, -24, -38, -62, -67, -48, + -47, -40, -8, 43, 68, 48, 58, 66, 38, 6, -19, -26, -62, -85, -45, -35, + -39, -21, 28, 72, 41, 47, 74, 45, 15, -14, -17, -53, -102, -50, -24, -36, + -26, 10, 69, 42, 32, 81, 52, 21, -4, -15, -39, -109, -64, -12, -35, -26, + -1, 54, 47, 21, 79, 65, 20, 7, -12, -33, -100, -82, -8, -27, -32, -2, + 36, 47, 21, 66, 77, 25, 12, -2, -36, -88, -87, -18, -16, -36, -8, 27, + 36, 30, 56, 77, 39, 12, 6, -33, -84, -79, -30, -11, -29, -20, 19, 27, + 31, 58, 66, 50, 21, 5, -25, -81, -75, -32, -17, -17, -27, 2, 24, 28, + 61, 61, 48, 35, 4, -22, -71, -77, -31, -19, -12, -23, -18, 16, 29, 59, + 65, 45, 41, 10, -23, -59, -76, -37, -14, -11, -18, -29, -2, 29, 57, 68, + 51, 37, 16, -21, -55, -67, -44, -12, -5, -21, -29, -19, 19, 59, 68, 61, + 36, 14, -12, -55, -61, -44, -16, 3, -21, -29, -25, 0, 55, 72, 69, 43, + 8, -6, -49, -63, -39, -18, 5, -15, -31, -26, -18, 39, 78, 75, 53, 8, + -8, -40, -67, -37, -15, 2, -8, -30, -26, -29, 16, 79, 84, 59, 14, -11, + -33, -66, -42, -9, -2, -6, -23, -26, -33, -7, 66, 94, 67, 22, -9, -32, + -62, -48, -8, 0, -9, -16, -20, -35, -24, 46, 96, 78, 31, -2, -29, -59, + -51, -13, 1, -10, -13, -9, -31, -35, 23, 86, 88, 42, 5, -22, -57, -53, + -18, -3, -10, -13, 0, -19, -44, 2, 69, 90, 57, 12, -13, -50, -57, -21, + -9, -13, -13, 1, -3, -41, -17, 51, 82, 69, 23, -9, -37, -57, -25, -12, + -22, -15, 0, 10, -25, -32, 32, 69, 71, 37, -4, -25, -48, -30, -12, -32, + -23, -3, 14, -2, -33, 11, 56, 63, 49, 3, -18, -32, -31, -13, -37, -38, + -9, 11, 17, -16, -6, 41, 53, 51, 11, -17, -15, -23, -14, -35, -54, -22, + 4, 26, 10, -10, 26, 43, 46, 19, -19, -6, -5, -10, -30, -65, -42, -9, + 24, 35, 3, 12, 32, 37, 24, -20, -8, 14, 2, -23, -68, -62, -26, 10, + 50, 28, 11, 22, 27, 24, -19, -19, 24, 21, -8, -63, -78, -45, -11, 47, + 53, 23, 21, 19, 22, -17, -34, 21, 40, 15, -48, -89, -65, -34, 30, 68, + 44, 27, 16, 16, -11, -47, 3, 49, 39, -22, -89, -82, -55, 3, 68, 61, + 44, 21, 11, -6, -53, -21, 45, 56, 11, -74, -96, -72, -26, 52, 73, 60, + 39, 10, -3, -48, -44, 27, 61, 42, -43, -101, -88, -52, 27, 73, 70, 59, + 21, -1, -40, -60, 2, 52, 60, -4, -90, -100, -74, -2, 62, 72, 76, 42, + 5, -30, -66, -22, 34, 63, 33, -62, -104, -92, -31, 44, 68, 84, 66, 21, + -21, -64, -41, 13, 54, 55, -26, -94, -104, -57, 20, 56, 82, 84, 43, -6, + -57, -54, -10, 36, 60, 7, -70, -107, -78, -6, 40, 73, 92, 66, 12, -45, + -57, -27, 16, 52, 29, -41, -96, -90, -32, 20, 60, 91, 83, 34, -27, -52, + -37, -3, 34, 36, -15, -77, -91, -52, -1, 43, 83, 93, 53, -5, -42, -40, + -17, 14, 32, 1, -54, -81, -65, -21, 23, 71, 96, 67, 16, -25, -37, -24, + -5, 21, 6, -36, -64, -69, -37, 3, 54, 93, 73, 35, -6, -28, -25, -19, + 8, 4, -27, -46, -65, -46, -14, 34, 86, 73, 49, 15, -17, -19, -28, -4, + -3, -28, -32, -56, -48, -24, 15, 74, 67, 55, 36, -2, -10, -28, -14, -9, + -36, -25, -42, -50, -29, 1, 60, 59, 50, 55, 16, -3, -22, -20, -14, -46, + -29, -28, -48, -33, -5, 47, 50, 40, 64, 40, 4, -14, -17, -19, -53, -40, + -18, -40, -41, -6, 39, 39, 28, 61, 62, 17, -10, -7, -21, -59, -53, -20, + -28, -47, -11, 38, 29, 15, 52, 77, 36, -6, 1, -12, -63, -66, -25, -20, + -46, -19, 37, 28, 0, 38, 83, 54, 5, 5, -2, -57, -81, -34, -15, -44, + -22, 29, 31, -4, 16, 85, 68, 17, 15, 1, -44, -87, -54, -8, -42, -27, + 25, 24, 2, 0, 69, 88, 24, 25, 11, -42, -76, -75, -14, -25, -40, 23, + 18, -3, 3, 42, 96, 45, 22, 29, -39, -70, -75, -40, -8, -39, 7, 24, + -17, 8, 33, 79, 76, 22, 35, -21, -75, -64, -60, -15, -17, -14, 21, -21, + -4, 40, 59, 88, 45, 24, -3, -71, -61, -59, -38, 1, -14, 0, -17, -18, + 41, 54, 82, 74, 22, -3, -53, -61, -53, -54, -2, 3, -19, -25, -22, 30, + 57, 73, 92, 38, -15, -40, -51, -50, -58, -17, 17, -23, -44, -22, 19, 55, + 72, 97, 60, -22, -40, -35, -45, -55, -32, 14, -17, -60, -26, 11, 46, 75, + 97, 78, -17, -46, -23, -38, -45, -37, -1, -14, -66, -31, 3, 34, 80, 98, + 85, -4, -47, -19, -33, -33, -30, -20, -25, -63, -34, -4, 18, 79, 104, 84, + 9, -38, -18, -29, -27, -14, -30, -46, -63, -32, -5, 3, 68, 111, 84, 18, + -23, -12, -25, -28, -2, -25, -67, -75, -29, 1, -6, 46, 112, 91, 22, -11, + 0, -18, -33, -1, -9, -76, -96, -34, 9, -8, 22, 101, 102, 27, -2, 14, + -7, -36, -9, 4, -68, -114, -48, 13, -3, 5, 80, 109, 40, 4, 26, 6, + -33, -18, 6, -52, -120, -67, 7, 4, -1, 55, 103, 58, 14, 31, 17, -21, + -24, -4, -39, -110, -84, -10, 6, 2, 34, 87, 71, 29, 36, 25, -7, -23, + -16, -33, -96, -90, -29, -1, 6, 22, 68, 75, 45, 45, 31, 4, -15, -24, + -37, -84, -87, -43, -15, 3, 18, 53, 68, 57, 58, 38, 11, -7, -22, -45, + -81, -79, -48, -29, -10, 17, 45, 57, 61, 71, 50, 17, 0, -15, -49, -85, + -74, -45, -40, -25, 10, 42, 49, 55, 82, 65, 22, 7, -9, -43, -89, -80, + -34, -47, -40, -1, 35, 52, 43, 85, 84, 25, 17, -4, -38, -85, -92, -28, + -44, -55, -9, 21, 53, 42, 75, 100, 35, 22, 6, -38, -74, -99, -38, -34, + -65, -18, 12, 42, 51, 63, 102, 52, 25, 21, -36, -70, -90, -56, -30, -64, + -30, 7, 27, 55, 63, 90, 69, 33, 26, -26, -69, -79, -66, -43, -54, -37, + -1, 17, 49, 69, 79, 72, 50, 30, -15, -61, -75, -68, -58, -52, -33, -12, + 9, 42, 69, 78, 64, 60, 42, -9, -49, -71, -69, -68, -61, -25, -17, -1, + 38, 64, 77, 59, 62, 58, -3, -37, -62, -72, -72, -73, -24, -12, -11, 35, + 55, 73, 59, 58, 69, 8, -29, -48, -75, -76, -82, -31, -4, -14, 28, 49, + 63, 61, 54, 73, 22, -21, -36, -71, -82, -88, -42, 0, -9, 21, 43, 53, + 57, 56, 73, 33, -12, -25, -62, -89, -95, -49, -2, -2, 18, 37, 43, 49, + 60, 75, 38, -2, -16, -49, -89, -105, -54, -7, 1, 19, 31, 37, 38, 59, + 81, 39, 4, -7, -35, -83, -115, -62, -10, 0, 20, 27, 32, 30, 53, 87, + 43, 4, 0, -24, -70, -118, -75, -12, -2, 19, 24, 27, 27, 45, 89, 52, + 4, 1, -14, -55, -113, -87, -18, -3, 13, 20, 24, 28, 41, 85, 60, 7, + -3, -9, -40, -100, -91, -28, -4, 7, 10, 21, 30, 43, 82, 62, 13, -8, + -11, -26, -85, -87, -36, -10, 2, -4, 14, 35, 47, 81, 62, 18, -9, -21, + -20, -65, -78, -38, -19, -4, -16, 0, 39, 54, 85, 65, 20, -7, -31, -24, + -47, -62, -33, -26, -15, -25, -19, 35, 63, 90, 73, 22, -3, -39, -39, -35, + -43, -20, -26, -30, -34, -36, 24, 71, 94, 85, 29, -3, -40, -58, -34, -24, + -4, -16, -46, -47, -47, 6, 73, 100, 97, 42, -4, -39, -73, -45, -8, 12, + 0, -51, -64, -56, -13, 66, 104, 106, 64, 2, -40, -82, -63, -3, 27, 18, + -43, -82, -68, -28, 51, 104, 112, 86, 19, -42, -86, -81, -10, 40, 34, -26, + -90, -86, -41, 31, 98, 116, 104, 46, -38, -92, -95, -25, 46, 48, -6, -84, + -105, -55, 13, 84, 117, 114, 76, -20, -95, -105, -45, 41, 54, 8, -65, -112, + -70, -1, 65, 109, 115, 100, 14, -85, -106, -62, 21, 50, 13, -44, -104, -84, + -14, 45, 98, 112, 111, 53, -62, -105, -75, -3, 44, 12, -31, -85, -93, -27, + 27, 82, 110, 110, 81, -27, -95, -81, -27, 31, 11, -31, -66, -90, -39, 12, + 61, 106, 107, 94, 12, -73, -79, -48, 11, 13, -32, -57, -78, -46, -1, 38, + 97, 109, 96, 43, -41, -69, -62, -13, 13, -30, -58, -68, -46, -11, 17, 81, + 112, 97, 59, -7, -51, -67, -37, 6, -23, -62, -67, -42, -14, 2, 60, 110, + 99, 65, 20, -24, -63, -56, -7, -15, -63, -75, -40, -12, -8, 39, 102, 103, + 67, 35, 6, -48, -68, -25, -11, -56, -85, -46, -7, -10, 22, 86, 107, 72, + 41, 29, -25, -70, -42, -14, -42, -91, -62, -5, -6, 9, 67, 105, 84, 40, + 40, 3, -64, -56, -23, -30, -83, -85, -12, 3, 1, 50, 97, 96, 44, 36, + 28, -45, -69, -33, -22, -67, -101, -34, 13, 2, 31, 88, 104, 56, 28, 37, + -16, -71, -51, -18, -49, -103, -62, 9, 14, 18, 70, 109, 68, 26, 36, 6, + -58, -68, -23, -28, -97, -84, -7, 23, 19, 50, 106, 84, 28, 31, -21, -26, + -18, -30, -24, -77, -76, -48, -46, 31, 0, -1, 0, 0, 2, 0, 1, -2, + 1, 0, -6, -7, -5, -3, 0, -3, -4, -2, 2, 0, -8, -11, -14, -10, + -8, -4, 6, 13, 14, 9, 2, -6, -10, -9, -6, 9, 17, 15, 8, 0, + 1, -4, -12, -19, -14, -8, -4, 3, 6, -2, -4, -6, -7, -10, -8, -12, + -11, 3, 23, 27, 11, 4, -3, -5, 0, -9, -3, 6, 11, 19, 4, -8, + -17, -20, -21, -3, 5, 8, 2, 3, 5, 2, -3, -3, -12, 4, 1, 3, + -7, 0, 5, 6, 0, -7, -8, -5, -7, -5, -3, 4, 9, 5, -5, -5, + -5, -17, -7, 3, 17, 15, 7, -2, -5, -3, 3, -8, -5, -3, 3, 8, + 12, 5, -10, -27, -20, 1, 5, -4, -9, -17, 4, 10, 9, -2, -12, -16, + -12, -2, 8, 16, 13, 11, 16, 19, 10, -2, -16, -21, -11, 14, 15, 21, + 11, 6, -10, -8, -11, -24, -35, -31, -13, 9, 24, 17, -2, -11, -20, -11, + -19, -7, 3, 8, 22, 21, 21, 2, -7, -10, 12, 24, 18, -3, -19, -6, + 0, -5, -18, -17, 6, 12, 7, -16, -20, -22, -27, -19, -14, 12, 14, 3, + 0, 2, 8, -3, -5, -3, 21, 29, 17, 6, -8, 3, 3, 10, 10, 3, + 12, 4, -9, -18, -20, -20, -9, 6, 3, -9, -7, -14, -9, -8, -9, -23, + -19, 7, 17, 20, 9, 8, 5, 9, 18, 9, 8, -10, -10, -4, 9, 25, + -6, -19, -19, -5, -4, -7, -7, -17, -15, -7, -4, 0, 2, -2, -17, -4, + 14, 23, 15, 2, -7, -5, 9, 11, 1, 0, -3, 0, 0, 15, 14, -4, + -15, -20, -26, -22, -13, 0, 6, 12, 5, -10, 2, 8, -2, -18, -8, 6, + 20, 28, 23, 0, -16, -7, 9, 7, 10, -12, -21, -19, 7, 12, 4, -17, + -28, -24, -3, 14, 4, -19, -18, -9, 11, 22, 16, -13, -23, -15, 18, 32, + 32, 17, -4, 1, 14, 11, 1, -20, -19, -3, 9, 13, -4, -13, -16, -18, + -23, -12, -17, -16, -20, -15, -14, -4, 8, 12, 0, 8, 5, 12, 17, 26, + 25, 14, 10, 11, 11, 18, 15, 4, -9, -13, -8, -9, -14, -20, -28, -32, + -12, -9, -16, -17, -24, -18, -12, 5, 10, 4, 6, 8, 18, 35, 31, 17, + 1, 12, 21, 33, 18, 6, -10, -11, -4, -9, -13, -19, -24, -24, -24, -18, + -20, -18, -20, -13, -15, -10, -9, -5, 8, 10, 13, 23, 26, 29, 14, 13, + 13, 13, 16, 25, 19, 17, 4, -15, -18, -15, -14, -17, -34, -23, -16, -12, + -16, -26, -33, -23, -15, -4, 4, 10, 16, 19, 22, 29, 28, 7, 1, 2, + 18, 26, 30, 21, 9, 3, -4, -10, -16, -29, -31, -27, -4, -9, -11, -28, + -23, -17, -15, -13, -11, 4, 11, 9, 13, 16, 25, 18, 8, 10, 18, 17, + 8, 18, 17, 11, -5, -19, -17, -12, -19, -38, -27, -8, 0, -3, -14, -19, + -20, -14, -10, -13, -3, 6, 12, 26, 38, 34, 14, 2, -2, 11, 19, 14, + 8, 5, 16, 9, -7, -19, -24, -29, -36, -26, -13, -12, -22, -28, -20, 5, + -3, -10, -19, 7, 20, 18, 17, 24, 25, 14, 18, 19, 29, 21, 11, 10, + 9, 13, -13, -29, -27, -20, -24, -30, -22, -12, -7, -15, -22, -21, -13, -14, + -20, -8, 12, 26, 25, 21, 33, 27, 25, 16, 13, 16, 16, -2, 2, 11, + 9, -2, -17, -18, -16, -25, -25, -26, -27, -30, -35, -30, -12, -6, -6, -6, + -5, 19, 19, 11, 15, 17, 24, 23, 34, 28, 23, 13, 2, 9, 18, 16, + -14, -18, -12, -7, -9, -31, -37, -33, -24, -14, -24, -20, -16, -21, -15, -7, + 5, 9, 15, 20, 28, 38, 29, 21, 15, 22, 17, 4, 12, 6, 12, -4, + -9, -15, -16, -19, -40, -38, -34, -23, -18, -17, -8, -10, -3, -7, 1, 3, + 4, 11, 13, 36, 41, 36, 24, 9, 17, 20, 21, 14, -5, -9, -11, -8, + -19, -14, -24, -30, -23, -18, -25, -30, -24, -17, -20, -9, -3, 6, 8, 22, + 23, 20, 27, 18, 10, 10, 14, 18, 14, 23, 17, 6, 5, -4, -8, -26, + -19, -24, -25, -24, -21, -27, -28, -15, -19, -16, -9, 0, 7, 9, 17, 14, + 15, 24, 30, 29, 29, 32, 16, 10, 8, 0, -3, -10, -7, -17, -22, -25, + -30, -36, -32, -25, -26, -22, -12, -16, -11, -3, 5, 7, 13, 21, 21, 26, + 32, 28, 26, 28, 31, 17, 15, 15, 5, -4, -14, -18, -28, -25, -24, -28, + -32, -33, -32, -29, -18, -17, -20, -10, -4, 6, 6, 18, 22, 22, 37, 38, + 31, 27, 26, 23, 22, 23, 12, 4, -5, -2, -11, -19, -25, -35, -35, -36, + -36, -43, -32, -24, -20, -12, -7, -3, -7, 3, 13, 23, 29, 35, 37, 35, + 42, 33, 26, 22, 17, 12, 6, 4, -9, -23, -28, -34, -34, -33, -31, -40, + -36, -27, -25, -22, -30, -20, -11, 2, 12, 22, 22, 26, 28, 35, 47, 44, + 27, 29, 29, 29, 19, 2, 1, -9, -15, -21, -34, -35, -34, -40, -44, -42, + -34, -31, -26, -21, -9, -12, -3, 10, 17, 29, 26, 27, 34, 48, 50, 34, + 33, 25, 21, 16, 8, 3, -8, -11, -25, -30, -37, -37, -42, -51, -34, -28, + -21, -26, -25, -19, -13, 4, 9, 17, 29, 41, 33, 33, 44, 45, 32, 31, + 28, 22, 16, 5, -10, -13, -16, -23, -38, -39, -39, -45, -54, -40, -32, -24, + -22, -17, -14, 0, 6, 9, 18, 41, 43, 34, 32, 40, 40, 31, 30, 27, + 22, 19, 14, -2, -16, -21, -34, -48, -45, -41, -41, -41, -45, -38, -25, -21, + -17, -20, -7, 11, 17, 19, 36, 40, 42, 44, 47, 46, 39, 33, 26, 15, + 11, 8, -5, -19, -24, -29, -40, -44, -48, -44, -37, -37, -43, -43, -26, -19, + -14, -2, 13, 23, 31, 36, 36, 43, 41, 47, 46, 44, 40, 24, 15, 14, + 3, -12, -21, -23, -30, -36, -47, -51, -50, -47, -44, -46, -31, -19, -16, -11, + 2, 16, 20, 25, 29, 40, 53, 51, 49, 45, 41, 35, 25, 18, 7, 5, + -12, -18, -23, -34, -39, -56, -58, -54, -49, -50, -45, -35, -26, -12, -5, 6, + 17, 29, 41, 42, 47, 50, 46, 49, 50, 50, 39, 30, 16, 2, -8, -15, + -21, -30, -41, -49, -50, -46, -57, -63, -57, -41, -29, -24, -12, -3, 5, 12, + 22, 33, 41, 50, 51, 53, 57, 55, 46, 36, 29, 16, 2, -4, -11, -21, + -33, -40, -49, -47, -53, -60, -58, -51, -42, -34, -23, -13, -2, 5, 17, 27, + 39, 49, 48, 51, 56, 54, 58, 44, 37, 28, 18, 4, -3, -15, -29, -39, + -49, -49, -51, -62, -65, -64, -47, -42, -36, -26, -14, -5, 10, 24, 32, 45, + 50, 49, 62, 65, 63, 47, 42, 41, 36, 23, 7, -7, -22, -31, -41, -53, + -58, -62, -59, -62, -56, -54, -50, -44, -32, -16, 0, 11, 25, 35, 50, 54, + 55, 56, 66, 65, 62, 54, 45, 36, 23, 14, -4, -22, -44, -55, -52, -62, + -61, -66, -70, -68, -60, -54, -45, -29, -15, 4, 21, 34, 36, 44, 54, 62, + 70, 73, 68, 67, 59, 50, 37, 21, -5, -12, -25, -39, -48, -53, -63, -76, + -73, -71, -71, -67, -57, -45, -29, -12, 2, 13, 30, 42, 51, 61, 76, 71, + 63, 66, 71, 60, 50, 40, 23, -2, -9, -20, -41, -54, -59, -72, -79, -71, + -64, -73, -68, -60, -51, -36, -13, 2, 13, 27, 47, 54, 71, 78, 71, 60, + 72, 74, 65, 54, 39, 28, 7, -6, -23, -50, -59, -64, -69, -75, -70, -78, + -74, -73, -64, -52, -37, -13, 6, 18, 40, 51, 58, 64, 78, 79, 75, 68, + 64, 68, 57, 45, 21, 4, -16, -34, -50, -65, -75, -83, -80, -71, -69, -68, + -73, -63, -57, -36, -16, 6, 26, 45, 60, 70, 71, 79, 79, 81, 78, 80, + 64, 55, 36, 16, -4, -23, -38, -54, -63, -69, -81, -85, -87, -76, -72, -66, + -61, -52, -30, -12, 12, 24, 44, 55, 69, 78, 85, 84, 74, 70, 71, 71, + 62, 41, 17, -11, -25, -42, -55, -66, -75, -87, -87, -81, -74, -76, -76, -63, + -48, -32, -13, 7, 30, 51, 64, 76, 80, 82, 83, 81, 80, 82, 70, 61, + 42, 19, 0, -28, -49, -61, -72, -78, -87, -90, -89, -88, -87, -82, -69, -54, + -33, -13, 15, 36, 58, 68, 79, 90, 96, 90, 84, 86, 89, 79, 62, 38, + 22, -3, -29, -55, -69, -81, -89, -94, -94, -94, -94, -89, -74, -62, -52, -35, + -18, 14, 39, 54, 65, 76, 87, 98, 95, 94, 90, 82, 75, 69, 47, 26, + -6, -33, -57, -72, -82, -88, -97, -90, -91, -88, -83, -80, -75, -59, -33, -9, + 20, 42, 58, 68, 82, 90, 94, 93, 94, 88, 85, 77, 65, 43, 16, -10, + -37, -60, -71, -84, -89, -95, -97, -102, -95, -84, -80, -72, -57, -26, -4, 19, + 42, 62, 80, 89, 94, 97, 100, 99, 90, 83, 71, 65, 39, 14, -9, -43, + -65, -83, -90, -95, -98, -96, -100, -96, -88, -76, -66, -51, -24, -12, 21, 45, + 70, 85, 93, 95, 97, 101, 105, 92, 84, 69, 58, 35, 16, -14, -44, -68, + -86, -88, -96, -101, -101, -102, -97, -90, -74, -69, -50, -19, 9, 35, 56, 76, + 84, 92, 98, 96, 99, 97, 93, 84, 77, 59, 24, 2, -30, -52, -76, -87, + -93, -98, -100, -102, -100, -96, -89, -81, -73, -46, -18, 12, 36, 62, 82, 88, + 96, 104, 107, 105, 102, 92, 84, 77, 53, 26, -6, -35, -57, -75, -81, -92, + -103, -114, -111, -108, -98, -88, -83, -67, -35, -7, 20, 39, 60, 70, 89, 106, + 116, 107, 103, 99, 86, 90, 82, 53, 18, -13, -31, -52, -73, -92, -102, -106, + -104, -97, -106, -99, -101, -92, -72, -42, -5, 16, 38, 66, 86, 101, 99, 101, + 95, 112, 107, 99, 95, 81, 53, 16, -3, -29, -60, -81, -102, -98, -102, -102, + -112, -114, -101, -104, -88, -69, -34, -8, 14, 41, 67, 92, 94, 99, 103, 104, + 115, 109, 103, 90, 78, 52, 22, 0, -39, -65, -92, -95, -91, -103, -104, -118, + -110, -102, -93, -84, -71, -36, -15, 19, 52, 81, 94, 89, 98, 103, 115, 117, + 102, 92, 83, 80, 49, 23, -11, -43, -67, -90, -93, -102, -105, -110, -118, -104, + -100, -89, -83, -64, -36, -7, 28, 50, 74, 88, 95, 104, 103, 115, 107, 106, + 97, 87, 74, 50, 20, -17, -47, -75, -89, -93, -101, -102, -115, -117, -106, -97, + -88, -90, -73, -38, 2, 36, 60, 75, 84, 96, 104, 115, 115, 102, 98, 96, + 96, 84, 52, 10, -12, -32, -53, -71, -87, -101, -109, -112, -109, -106, -105, -102, + -92, -74, -48, -19, 7, 33, 56, 76, 91, 101, 108, 111, 111, 108, 103, 96, + 85, 63, 33, 1, -27, -51, -73, -90, -102, -109, -112, -110, -107, -103, -100, -93, + -76, -50, -19, 10, 36, 58, 76, 91, 101, 108, 111, 111, 108, 103, 96, 85, + 63, 33, 1, -27, -51, -73, -90, -102, -109, -112, -110, -107, -103, -100, -93, -76, + -50, -19, 10, 36, 58, 76, -1, -2, -15, 21, -17, 23, -30, 1, 34, -34, + 6, 5, -15, 19, 1, -25, 6, 20, -2, -28, 15, 10, -15, 0, -7, 10, + 7, -5, -9, -6, 19, -3, -21, 3, 20, -4, -20, 1, 16, -3, -8, -2, + 5, 1, -8, -6, 3, 9, 2, -13, -4, 15, -7, -9, 0, 3, 6, -7, + -7, 5, 8, -8, -4, 0, 1, 1, -6, -4, 7, 2, -2, -7, 0, 4, + -3, -4, 0, 2, 0, -2, -4, 1, 4, -2, -4, -3, 1, 3, -5, -4, + 4, 3, -6, -5, 4, -1, -2, -3, 0, 3, -3, -1, -4, 3, 3, -5, + -3, 1, 1, -2, -3, 1, 2, -2, -4, 0, 0, 0, -1, -3, 1, 1, + -3, -2, 1, 0, -2, -2, 0, 0, -2, -1, 0, -1, 1, -2, -2, 1, + 0, -2, 0, -1, 0, -1, -1, -1, 0, 0, -1, -3, 1, 1, -2, -2, + 0, 1, -1, -2, -1, 0, 0, 0, -2, -1, 1, 0, -3, 0, 2, -1, + -2, 0, 0, 0, -2, 0, -1, 0, -1, -1, 1, 0, -1, 0, -1, 1, + 0, -13, 5, 7, -11, 24, -50, 41, 4, -29, 14, -11, 8, 11, -15, -12, + 15, 18, -21, -14, 22, -2, -11, -3, -3, 18, -3, -5, -14, 9, 22, -24, + -16, 23, 12, -23, -8, 9, 10, -4, -8, -3, 11, -4, -14, 0, 8, 8, + -5, -14, 8, 10, -12, -4, -2, 10, 0, -11, -3, 11, 0, -7, -2, -1, + 7, -6, -8, 3, 6, 0, -3, -8, 7, 2, -7, -2, 2, 1, -2, -4, + -1, 3, 3, -4, -5, 1, 3, -3, -6, 2, 5, -1, -7, -1, 3, -1, + -4, -3, 5, 0, -3, -2, -1, 4, -1, -5, -1, 3, -1, -4, -1, 3, + 1, -4, -2, 1, 0, -2, -3, 0, 2, -1, -4, 1, 1, -1, -2, -2, + 1, -1, -3, 0, 0, 0, -1, -2, 0, 0, -2, -1, 0, -1, 0, -2, + -1, 0, -1, 0, -1, -2, 2, -1, -2, -1, 0, 1, -2, 0, -1, -1, + 0, -1, -2, 0, 1, -1, -3, 0, 1, -1, -3, 0, 1, -2, -1, 0, + 0, -1, -1, 0, -1, -1, -1, -1, 0, 0, -1, -1, 0, 0, -2, 0, + 0, 0, 0, -2, 1, -1, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, + -1, 0, 0, -1, 0, -1, 1, 0, 0, 0, 1, -1, -1, 0, 0, 0, + 1, -2, 4, -3, 3, -40, 71, -73, 67, -27, -68, 127, -80, 3, 5, 1, + 17, -14, 1, -30, 53, -3, -42, 15, 19, -9, -17, -1, 13, 16, -17, 4, + -32, 43, 15, -68, 18, 54, -38, -7, -1, 11, 7, -3, -18, 5, 25, -27, + -9, 9, 19, -6, -12, -8, 20, -1, -15, -1, 1, 17, -10, -16, 12, 12, + -13, 0, -6, 10, 2, -16, -1, 14, -4, 4, -11, -2, 12, -6, -8, 4, + 4, -2, -4, 1, -2, 4, 3, -7, -5, 8, 0, -10, 1, 4, 2, -4, + -6, 4, 1, -1, -7, 1, 8, -9, 2, -5, 3, 3, -4, -3, 0, 3, + -3, -5, 4, 3, -3, -4, 0, 2, 0, -3, -4, 5, 0, -5, -1, 2, + 0, -3, 0, -1, 2, -2, -4, 3, 0, -1, -2, -1, 2, -2, -2, 1, + -1, 0, -1, -3, 1, 1, -2, 1, -3, 1, 1, -3, -1, 1, 0, -1, + -2, 1, -1, -1, 1, -2, 1, -1, -1, -1, -1, 0, 1, -3, 0, 0, + 1, -4, 0, 1, -2, 0, -2, 0, 0, 0, -2, 1, -1, 0, -2, 0, + 2, -2, -1, 0, -1, 2, -2, -1, 1, -2, 0, -1, 1, -1, -1, -1, + 1, -2, 1, -1, -1, 2, -3, 0, 0, -1, 1, -1, 0, 1, 0, -2, + 0, -1, 1, -2, 0, 0, -1, 1, 0, -2, 0, 1, -2, 1, 0, 0, + -1, 0, 1, -1, -1, -1, 1, 1, -1, 0, 0, 0, -1, 1, 0, -1, + 1, 0, 0, 1, 0, -1, 1, 0, 3, -40, 58, -39, 12, 42, -117, 108, + 1, -66, 22, 17, 0, -9, 10, -39, 42, 4, -23, -12, 28, 3, -34, 9, + 17, 3, -9, 10, -29, 13, 53, -79, 3, 64, -26, -24, 16, -9, 14, 2, + -8, -15, 31, -9, -30, 11, 29, -15, -7, 0, 3, 6, -4, -9, -6, 22, + 1, -24, 9, 11, -8, 0, -2, 2, 8, -12, -6, 10, 2, 2, -9, -4, + 11, -2, -10, 3, 2, 3, -5, -1, 1, -1, 6, -4, -8, 9, 2, -8, + -3, 6, 3, -4, -3, -1, 6, -2, -8, 0, 9, -4, -3, -2, 2, 4, + -4, -1, -1, 4, -2, -6, 4, 2, -1, -4, 0, 1, 2, -3, -5, 3, + 3, -3, -4, 3, 0, -1, 0, -2, 2, 0, -3, 0, 3, 0, -3, -1, + 2, 0, -3, 1, 0, -1, 2, -2, -2, 2, -1, 0, -1, -1, 1, -1, + -2, 0, 0, 1, -3, 1, 0, -1, 1, -2, -1, 2, -2, -1, 0, -1, + 2, -3, -1, 1, 1, -2, -2, 2, 1, -2, -1, 0, 0, 1, -3, 1, + 0, 0, 0, -2, 3, 0, -2, 0, 0, 1, 0, -1, 1, -2, 0, 0, + 0, -1, 1, 0, 0, 0, -1, 1, -1, 1, 0, -1, 1, -2, 0, 1, + 1, 0, 1, -2, 1, 0, 1, 0, 0, 3, -1, 0, 1, 0, 0, 3, + -29, 35, -12, -16, 56, -88, 39, 62, -79, 5, 29, 1, -13, 12, -29, 26, + 17, -28, -3, 12, 5, -11, -19, 28, 1, -5, 9, -21, -7, 60, -56, -20, + 57, -10, -27, 21, -21, 16, 12, -12, -21, 24, 6, -29, 4, 19, 2, -7, + -5, -3, 7, 6, -11, -9, 11, 13, -18, -4, 13, 1, -3, -6, -1, 10, + -8, -6, 5, 3, 5, -3, -11, 4, 9, -11, 0, 4, 3, -4, -1, 0, + 0, 7, 0, -14, 7, 5, -7, -4, 4, 5, -1, -4, -4, 4, 1, -4, + -4, 7, -1, -1, -3, 0, 5, -1, -4, -1, 2, 0, -3, 1, 1, 2, + -2, -4, 1, 2, 0, -5, 2, 3, -2, -2, 1, 1, -2, 2, -3, 0, + 0, -1, -1, 0, 1, 0, -3, 0, 0, -1, 1, -1, -2, 1, -1, 0, + -2, 2, 1, -2, -1, 1, 0, -1, -1, 0, 1, -1, 0, -2, 1, 1, + -1, 0, -1, -1, 0, 0, -1, -1, 0, -1, -1, 2, -2, -1, 1, 0, + 0, -1, -1, 1, 0, -1, 1, -1, 0, 1, -3, 1, 1, -1, -1, 0, + 1, 0, 0, 0, -1, 0, 0, -1, 0, 1, 0, 0, 2, -2, 0, 1, + 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, -1, -1, -7, -9, 35, -52, + 59, -33, -32, 64, -15, -41, 19, 22, -20, 9, -11, -3, 33, -27, 2, 7, + -9, 19, -37, 24, 7, -11, 11, -1, -30, 37, 8, -57, 36, 19, -33, 14, + 0, -17, 26, 1, -20, -5, 26, -18, -13, 14, 7, -6, 4, -9, -4, 11, + 3, -14, -7, 20, 0, -18, 10, 1, 4, -5, -7, 6, 0, -3, -2, -2, + 8, 5, -11, -6, 10, -1, -10, 6, -2, -1, 1, -3, 0, 3, 5, -9, + -5, 9, -3, -4, 1, 1, 3, -1, -4, -1, 2, -2, -5, 5, -3, 0, + 1, -5, 4, 2, -3, -3, 0, 0, -2, 1, 0, -2, 3, -2, -5, 2, + 2, -2, -4, 3, 0, -2, 1, -2, -2, 5, -2, -6, 1, 2, -1, -1, + 0, 1, -1, -2, -1, -1, 2, 0, -4, 0, 1, 0, -3, 0, 2, 0, + -3, 0, 0, 1, -1, -1, 1, 0, -1, -2, 1, 0, 0, -1, 0, -2, + 1, 0, -1, 1, -1, 0, -2, 1, 1, -2, -1, 2, -2, 1, -3, 1, + 1, -1, 0, 0, -1, 1, 0, -2, 2, -1, -1, 0, 0, 1, 0, 1, + 0, -2, 1, 0, 0, -1, 1, 0, 0, 0, 0, -3, -20, 45, -56, 40, + -5, -34, 27, 24, -42, -1, 29, -14, -4, 2, -7, 24, -20, -1, 18, -25, + 25, -29, 9, 21, -26, 14, 4, -20, 7, 27, -42, 5, 31, -24, -2, 19, + -30, 21, 8, -11, -17, 20, 1, -22, 11, 7, -7, 6, -5, -7, 3, 11, + -6, -18, 11, 16, -20, 1, 5, 2, -3, -3, 0, -3, 4, -1, -7, 2, + 10, -9, -8, 7, 2, -9, 5, -1, -5, 2, 1, -3, -2, 9, -5, -8, + 4, 1, -5, 0, 1, 2, -1, 0, -5, 4, -1, -5, 4, -3, 1, 1, + -5, 3, 0, 0, -3, 0, -1, -2, 1, 2, -5, 2, 1, -5, -2, 3, + -1, -5, 2, 1, -4, 2, -1, -4, 2, 3, -7, -1, 2, 0, -2, 1, + 0, -2, -1, 0, -3, 1, 2, -3, -2, 3, 0, -3, -1, 1, 0, -1, + -2, -1, 1, 0, 0, -1, 0, 0, -2, 0, 0, 1, -2, 2, -3, 1, + 0, 0, -2, 1, 0, -1, 0, 0, -1, -1, 2, -3, 0, 0, -1, 0, + 0, -1, 1, 0, -4, -13, 32, -41, 31, -10, -10, 4, 22, -25, -8, 21, + -3, -14, 5, 1, 12, -23, 8, 18, -31, 25, -26, 10, 17, -23, 8, 5, + -9, 0, 16, -25, 2, 23, -22, -2, 22, -30, 15, 7, -6, -13, 12, 1, + -17, 9, 5, -6, 4, -3, -7, 5, 7, -6, -13, 7, 10, -11, 0, 0, + 4, -3, -3, 2, -7, 4, 2, -5, 0, 6, -3, -8, 4, 2, -8, 7, + 0, -8, -1, 6, 0, -8, 6, 0, -5, 1, 0, -5, 3, 2, -3, -2, + 4, -5, -1, -1, -2, 3, -4, 1, -1, -3, 3, -1, -2, -2, 1, -2, + -2, 1, 1, -4, 1, 2, -5, -3, 5, -3, -4, 4, -1, -4, 2, -1, + -4, 3, 1, -5, -2, 2, 0, -2, 2, -1, -4, 3, -1, -3, 0, 1, + -2, -2, 1, -1, -1, -1, 0, 0, -1, -1, -1, 0, -1, 1, -1, -1, + 0, -2, 1, 0, -1, -1, 0, -1, -1, -1, 2, -2, -1, 1, -1, -2, + 1, -1, -1, 1, -2, 1, -7, -3, 15, -23, 20, -16, 9, -12, 16, -12, + -8, 11, 5, -18, 6, 8, 0, -18, 16, 4, -19, 16, -17, 10, 5, -8, + -2, 9, -5, -4, 10, -17, 5, 13, -18, 2, 12, -17, 10, 0, -2, -8, + 7, -4, -7, 6, 1, -3, 1, 3, -9, -2, 10, -7, -8, 4, 6, -6, + 1, 0, 0, -2, 1, -1, -8, 6, 1, -5, 2, 4, -2, -4, 1, 1, + -7, 5, -1, -4, -2, 4, 0, -4, 4, -3, -4, 1, 0, -3, 0, 2, + -1, -2, 2, -2, -1, -3, 0, 3, -4, 3, -3, 0, 2, 0, -3, -1, + 1, -3, -1, 2, 0, -1, 0, 0, -3, 0, 1, -4, -1, 2, 0, -2, + 0, 1, -3, 1, 1, -3, -2, 2, -1, -1, 2, -1, -2, 1, 0, -1, + -1, -1, -3, -8, -16, -20, -7, 14, 20, 19, 18, 16, 11, 3, -9, -21, + -36, -43, -39, -24, 6, 38, 57, 55, 26, 0, -7, -10, -13, -12, -11, -29, + -56, -59, -37, 0, 43, 74, 87, 75, 37, -2, -31, -51, -59, -45, -15, -16, + -34, -20, -10, -5, 29, 61, 72, 51, 18, -2, -21, -39, -35, -24, 1, 0, + -31, -29, -23, -44, -13, 48, 82, 79, 46, 16, -4, -44, -58, -26, 3, 6, + -38, -52, -24, -42, -35, 47, 95, 88, 55, 19, 12, -22, -72, -38, 4, 3, + -31, -67, -29, -24, -60, 23, 112, 111, 72, 22, 7, -20, -90, -73, -1, 19, + -4, -57, -36, 3, -54, -32, 98, 125, 71, 14, 14, 0, -82, -106, 0, 42, + 10, -48, -32, -2, -54, -63, 72, 125, 82, 24, 14, -8, -57, -104, -22, 52, + 34, -34, -46, -16, -35, -83, 32, 127, 99, 26, 19, 4, -55, -110, -48, 45, + 36, -12, -26, -22, -41, -64, -7, 107, 113, 56, 6, 4, -41, -92, -74, 35, + 57, 12, -41, -21, -39, -67, -40, 86, 114, 71, 10, 22, -31, -83, -83, 16, + 46, 34, -28, -18, -42, -58, -60, 55, 108, 97, 3, 21, -8, -77, -102, 10, + 45, 42, -26, -2, -27, -68, -73, 45, 83, 92, 29, 25, -8, -56, -104, -13, + 35, 52, -6, -7, -22, -46, -91, 10, 80, 95, 35, 26, 8, -38, -106, -34, + 34, 42, 5, 1, -23, -39, -73, -28, 61, 89, 60, 20, 2, -7, -73, -86, + 24, 52, 26, -12, -11, -19, -58, -86, 46, 91, 62, 17, 22, -15, -39, -106, + 8, 55, 45, -13, -6, -30, -21, -102, 4, 82, 87, 7, 28, -3, -9, -115, + -32, 50, 63, -23, 8, -19, -18, -94, -28, 61, 96, 14, 39, -4, 1, -85, + -60, 23, 79, -3, 2, -20, -10, -82, -65, 25, 108, 28, 31, 19, 9, -65, + -74, -5, 78, 16, -3, -9, -14, -65, -76, -3, 93, 60, 29, 22, 13, -43, + -90, -30, 61, 49, -9, -1, 4, -52, -98, -16, 68, 72, 21, 38, 15, -31, + -94, -34, 32, 67, 5, 9, 0, -28, -111, -33, 40, 85, 24, 37, 23, -6, + -104, -44, 13, 69, 9, 14, 8, -11, -110, -53, 20, 80, 32, 48, 30, 5, + -87, -66, -7, 63, 33, 12, 2, 5, -86, -94, -2, 79, 46, 26, 44, 22, + -59, -88, -19, 54, 48, 13, 14, 4, -51, -112, -37, 67, 71, 21, 38, 29, + -29, -104, -50, 44, 63, 11, 10, 14, -24, -103, -67, 49, 88, 20, 27, 43, + -10, -90, -79, 24, 69, 21, 7, 18, -8, -82, -103, 17, 94, 38, 10, 54, + 12, -70, -97, 1, 68, 37, -4, 27, -6, -56, -104, -21, 82, 67, -3, 46, + 23, -37, -108, -31, 57, 58, -13, 29, 11, -32, -106, -50, 53, 92, -6, 38, + 38, -15, -105, -54, 34, 79, -12, 20, 22, -11, -98, -70, 22, 99, 4, 16, + 48, 14, -99, -75, 15, 82, 2, 0, 44, 8, -93, -80, 0, 84, 29, -3, + 57, 32, -79, -94, 1, 66, 27, -19, 49, 29, -73, -109, -7, 54, 52, -17, + 62, 53, -46, -113, -4, 43, 51, -30, 46, 37, -42, -128, -23, 26, 69, -18, + 51, 59, -2, -122, -30, 24, 66, -27, 31, 51, 1, -128, -48, 13, 71, -11, + 33, 66, 22, -110, -57, 8, 68, -9, 12, 53, 28, -104, -87, -4, 67, 8, + 8, 72, 53, -80, -91, -4, 59, 10, -13, 63, 44, -81, -109, -19, 46, 33, + -6, 76, 57, -43, -104, -24, 36, 42, -26, 55, 51, -34, -126, -39, 19, 58, + -21, 68, 71, -8, -114, -32, 2, 62, -24, 52, 54, -4, -120, -53, -22, 71, + -8, 49, 62, 31, -102, -52, -25, 70, -5, 24, 55, 35, -109, -69, -40, 59, + 16, 25, 65, 55, -80, -70, -37, 47, 23, 7, 48, 51, -73, -97, -48, 30, + 46, 6, 57, 74, -37, -98, -34, 21, 48, -10, 44, 58, -34, -123, -46, -2, + 61, 2, 50, 69, 10, -110, -40, -5, 59, -9, 31, 53, 19, -126, -59, -20, + 62, 8, 32, 64, 49, -105, -59, -16, 58, 2, 17, 50, 45, -102, -83, -31, + 46, 24, 15, 53, 69, -65, -86, -24, 42, 25, -4, 45, 64, -58, -112, -37, + 30, 41, -6, 51, 75, -24, -105, -32, 26, 41, -19, 39, 62, -14, -117, -51, + 7, 54, -13, 35, 78, 19, -105, -47, 9, 58, -19, 21, 69, 18, -113, -66, + -10, 52, -10, 14, 75, 42, -83, -60, -5, 52, 0, -3, 69, 43, -83, -83, + -21, 35, 17, -13, 72, 57, -54, -82, -10, 29, 28, -29, 65, 52, -45, -98, + -21, 1, 40, -30, 64, 63, -7, -94, -9, 1, 51, -36, 51, 54, -8, -115, + -23, -22, 47, -30, 48, 65, 24, -90, -13, -15, 46, -26, 30, 55, 21, -100, + -37, -26, 31, -10, 24, 65, 41, -71, -35, -10, 25, -2, 4, 58, 32, -69, + -61, -16, 2, 8, 1, 67, 42, -33, -56, -1, -1, 20, -13, 59, 33, -28, + -82, -10, -20, 22, -15, 64, 40, -1, -70, 0, -17, 29, -22, 53, 33, 1, + -84, -15, -29, 22, -19, 53, 43, 22, -64, -7, -19, 25, -18, 37, 38, 16, + -73, -30, -33, 11, -14, 32, 50, 31, -45, -17, -15, 16, -4, 16, 43, 23, + -49, -43, -30, -2, -1, 8, 52, 36, -25, -32, -13, -1, 11, -1, 42, 30, + -25, -49, -25, -18, 10, -7, 44, 40, -2, -34, -11, -15, 21, -6, 29, 33, + -5, -54, -29, -30, 13, -6, 29, 46, 15, -32, -10, -18, 16, -1, 13, 36, + 9, -45, -30, -32, 0, 1, 12, 43, 28, -23, -16, -16, 6, 9, 2, 33, + 22, -33, -34, -27, -11, 2, 1, 35, 36, -14, -16, -11, -5, 8, 3, 24, + 32, -19, -30, -29, -17, -4, 1, 20, 43, -5, -14, -13, -4, 0, 7, 11, + 39, -9, -23, -28, -17, -16, 1, 9, 44, 3, -7, -15, -4, -4, 7, 5, + 38, 3, -20, -30, -19, -19, -8, 0, 40, 17, -6, -7, -3, -2, -1, 4, + 32, 16, -20, -21, -26, -17, -18, -3, 28, 32, -7, -1, -9, 4, -9, 3, + 22, 34, -19, -14, -27, -13, -27, -10, 16, 44, -8, 5, -6, 3, -12, 1, + 13, 40, -12, -11, -25, -17, -27, -15, 5, 45, 4, 2, 0, 0, -9, -5, + 6, 38, 2, -17, -14, -20, -24, -23, 0, 38, 19, -4, 11, -4, -7, -10, + 4, 27, 20, -20, -9, -23, -22, -30, -6, 26, 35, -8, 12, 2, -4, -15, + 2, 20, 32, -16, -7, -15, -22, -37, -14, 18, 39, -3, 5, 8, -5, -18, + -2, 18, 34, -4, -14, -4, -21, -35, -25, 15, 36, 8, -4, 21, -5, -17, + -14, 23, 26, 9, -22, 4, -25, -32, -40, 14, 27, 24, -12, 30, 1, -8, + -26, 24, 21, 19, -28, 9, -20, -28, -51, 7, 23, 30, -15, 27, 9, -7, + -32, 16, 25, 23, -21, 4, -8, -27, -50, -10, 25, 29, -9, 13, 24, -7, + -28, -3, 34, 20, -12, -9, 10, -31, -43, -29, 30, 23, 2, -3, 38, -9, + -19, -19, 39, 18, -1, -20, 25, -29, -36, -42, 26, 17, 12, -14, 43, -3, + -15, -29, 35, 19, 6, -28, 27, -18, -36, -48, 16, 17, 15, -15, 39, 12, + -13, -29, 24, 24, 9, -25, 19, -1, -39, -50, 1, 18, 11, -11, 25, 26, + -14, -26, 12, 32, 10, -17, 6, 17, -33, -48, -14, 20, 6, -7, 11, 36, + -9, -26, -1, 34, 11, -9, -4, 25, -25, -49, -26, 19, 4, -4, 5, 41, + 3, -21, -8, 31, 12, -7, -11, 23, -13, -47, -37, 13, 6, -3, 1, 40, + 14, -17, -14, 26, 16, -2, -12, 20, -3, -40, -44, 2, 6, -2, -4, 35, + 24, -9, -19, 19, 17, 2, -13, 16, 5, -29, -48, -7, 4, 3, -7, 28, + 28, 2, -21, 13, 14, 9, -14, 11, 9, -15, -49, -17, -3, 6, -11, 20, + 30, 14, -23, 7, 12, 14, -11, 6, 10, -4, -46, -24, -10, 6, -8, 11, + 29, 24, -15, 0, 11, 14, -4, -2, 11, 3, -37, -36, -13, -3, -2, 2, + 28, 27, -2, -10, 14, 9, 7, -8, 13, 3, -21, -42, -14, -14, 4, -6, + 24, 24, 13, -16, 12, 3, 14, -8, 12, 4, -7, -44, -18, -20, 5, -6, + 18, 22, 23, -13, 6, 2, 13, -4, 5, 5, 1, -36, -26, -20, -1, -1, + 10, 23, 25, -3, -4, 5, 9, 5, -2, 8, 1, -24, -36, -18, -10, 4, + 1, 24, 23, 11, -9, 8, 4, 12, -7, 9, 1, -12, -40, -19, -16, 4, + -4, 21, 21, 16, -9, 6, 2, 13, -4, 6, 6, -4, -33, -24, -18, -2, + -2, 10, 21, 18, 0, -3, 3, 8, 6, -1, 8, 0, -18, -31, -19, -10, + 1, 0, 19, 20, 13, -5, 4, 5, 12, -4, 5, 2, -7, -34, -24, -17, + 1, -4, 13, 20, 21, -3, 2, 5, 14, 0, 2, 4, 0, -26, -28, -20, + -6, -4, 4, 18, 23, 6, -3, 5, 9, 7, -1, 6, 3, -14, -33, -22, + -14, -1, -1, 16, 22, 17, -4, 4, 4, 10, -2, 4, 3, -4, -30, -25, + -19, -2, -2, 11, 20, 23, 0, 0, 2, 10, 3, 1, 4, 1, -23, -30, + -22, -8, -1, 4, 19, 23, 10, -3, 4, 6, 8, -2, 5, 2, -13, -33, + -23, -15, 0, -1, 16, 21, 16, -3, 3, 4, 11, 0, 5, 6, -3, -27, + -25, -19, -4, -2, 9, 19, 19, 2, -3, 2, 8, 6, -1, 8, 0, 0, + 2, 33, 42, 58, 71, 79, 85, 88, 91, 94, 79, 95, 82, 106, 86, 105, + 47, 16, -6, 13, 44, 31, -15, -38, -36, 20, 70, 41, 48, 58, 24, -57, + -127, -119, -102, -126, -128, -111, -78, -82, -88, -87, -60, -66, -98, -104, -99, -97, + -99, -104, -101, -88, -87, -91, -61, -27, -34, -54, -55, -45, -24, -10, -5, -4, + 5, 34, 63, 101, 94, 78, 52, 51, 52, 74, 81, 77, 59, 46, 17, 7, + 39, 53, 47, 42, 66, 83, 73, 52, 28, 22, 11, 8, 11, 0, -15, -23, + -15, -14, -6, 16, 46, 62, 71, 76, 90, 102, 103, 103, 101, 100, 90, 75, + 63, 67, 49, 37, 28, 12, 5, 6, 15, 15, 8, -7, -12, -4, -10, -28, + -24, -17, -25, -50, -64, -81, -103, -116, -116, -113, -95, -72, -54, -41, -47, -65, + -65, -50, -33, -24, -7, 11, 8, -4, -13, -28, -51, -75, -90, -91, -90, -90, + -87, -88, -83, -84, -82, -81, -81, -76, -65, -71, -85, -84, -79, -83, -81, -77, + -72, -70, -65, -66, -66, -65, -66, -68, -61, -56, -51, -36, -13, -3, -5, -8, + -12, -12, 3, 16, 21, 31, 50, 69, 77, 82, 90, 102, 110, 114, 116, 117, + 118, 119, 116, 112, 109, 105, 98, 99, 103, 102, 91, 73, 64, 63, 61, 57, + 51, 40, 24, 35, 57, 75, 84, 79, 65, 37, 4, -26, -45, -57, -54, -46, + -45, -54, -67, -67, -48, -16, 15, 35, 44, 45, 44, 45, 46, 38, 23, 2, + -15, -34, -52, -60, -70, -77, -80, -79, -74, -77, -84, -86, -80, -72, -68, -72, + -80, -87, -92, -96, -101, -104, -104, -101, -93, -90, -89, -86, -85, -84, -83, -82, + -81, -79, -77, -76, -73, -71, -66, -62, -55, -39, -31, -27, -25, -31, -37, -46, + -51, -53, -54, -48, -45, -38, -20, 3, 24, 35, 39, 32, 16, 5, 3, 0, + -6, -13, -13, -11, -2, 14, 28, 40, 50, 53, 50, 55, 64, 74, 90, 105, + 108, 112, 106, 104, 109, 112, 123, 127, 127, 127, 127, 127, 127, 118, 113, 107, + 110, 114, 111, 104, 101, 101, 102, 103, 99, 99, 89, 73, 53, 35, 20, 0, + -22, -43, -63, -77, -82, -76, -65, -48, -36, -29, -24, -25, -29, -37, -40, -49, + -59, -67, -73, -76, -78, -79, -75, -73, -74, -75, -68, -52, -44, -30, -19, -9, + -6, -9, -13, -24, -33, -35, -31, -30, -35, -40, -44, -45, -51, -53, -54, -50, + -50, -47, -42, -50, -55, -54, -56, -56, -54, -54, -49, -48, -41, -32, -28, -18, + -13, -5, 6, 18, 33, 49, 60, 71, 78, 88, 95, 97, 93, 88, 91, 93, + 97, 98, 97, 94, 91, 85, 81, 72, 70, 66, 61, 60, 64, 66, 74, 83, + 92, 102, 108, 109, 107, 102, 97, 95, 91, 87, 80, 74, 67, 62, 61, 58, + 61, 61, 57, 53, 43, 35, 27, 25, 24, 20, 20, 22, 27, 34, 36, 32, + 21, 8, -3, -10, -16, -18, -16, -16, -19, -15, -11, -11, -12, -20, -34, -45, + -59, -72, -80, -89, -94, -95, -102, -111, -114, -111, -111, -108, -106, -104, -101, -98, + -93, -90, -86, -86, -83, -82, -81, -79, -76, -73, -70, -72, -78, -81, -79, -79, + -72, -60, -43, -31, -25, -27, -34, -37, -40, -42, -41, -39, -36, -34, -25, -12, + -4, 5, 12, 16, 17, 15, 13, 6, -4, -7, -8, -6, -1, 4, 7, 9, + 12, 16, 19, 19, 22, 28, 29, 28, 29, 30, 34, 40, 49, 57, 71, 78, + 85, 92, 96, 95, 89, 85, 86, 93, 99, 104, 102, 100, 94, 85, 77, 73, + 69, 66, 63, 60, 60, 59, 57, 52, 47, 41, 31, 18, 6, -3, -7, -11, + -12, -14, -18, -22, -23, -22, -24, -30, -37, -41, -44, -50, -56, -64, -67, -65, + -62, -58, -58, -58, -59, -61, -62, -66, -72, -78, -79, -77, -73, -68, -64, -61, + -56, -53, -54, -52, -52, -57, -63, -69, -70, -68, -65, -62, -59, -57, -56, -58, + -60, -61, -63, -64, -62, -61, -60, -58, -54, -49, -45, -42, -39, -36, -32, -28, + -22, -13, -7, -3, 2, 13, 28, 41, 52, 64, 71, 73, 73, 70, 64, 61, + 60, 64, 66, 65, 66, 64, 61, 60, 62, 65, 64, 66, 67, 67, 68, 66, + 64, 66, 68, 73, 76, 74, 72, 66, 58, 52, 46, 42, 38, 38, 41, 47, + 52, 52, 48, 45, 42, 40, 38, 34, 29, 27, 26, 28, 29, 28, 29, 30, + 31, 28, 24, 21, 19, 17, 14, 10, 6, 3, -4, -9, -15, -19, -26, -33, + -40, -49, -55, -60, -65, -70, -73, -72, -72, -71, -70, -71, -75, -78, -81, -83, + -86, -86, -85, -84, -82, -80, -77, -72, -69, -66, -63, -61, -61, -61, -61, -61, + -60, -58, -53, -48, -42, -36, -30, -28, -30, -32, -33, -32, -31, -28, -22, -18, + -10, -5, 0, 3, 6, 11, 16, 19, 22, 24, 26, 27, 29, 34, 40, 46, + 48, 48, 48, 45, 40, 36, 33, 31, 33, 35, 40, 48, 55, 62, 68, 73, + 76, 78, 78, 77, 79, 82, 85, 87, 87, 87, 86, 86, 86, 83, 78, 71, + 63, 55, 48, 44, 39, 36, 36, 36, 35, 32, 28, 24, 18, 13, 9, 6, + 4, 1, -2, -5, -11, -17, -20, -21, -20, -21, -24, -28, -32, -34, -33, -33, + -35, -37, -40, -43, -47, -52, -58, -63, -69, -74, -77, -80, -81, -82, -81, -80, + -77, -74, -69, -62, -54, -48, -48, -51, -54, -57, -57, -57, -56, -55, -55, -56, + -57, -56, -55, -54, -54, -54, -54, -52, -49, -45, -41, -38, -34, -31, -29, -27, + -24, -20, -17, -11, -7, -3, 0, 5, 10, 16, 22, 27, 31, 34, 38, 42, + 44, 45, 48, 50, 52, 57, 61, 64, 64, 65, 65, 63, 60, 57, 55, 55, + 58, 61, 63, 65, 67, 69, 71, 74, 77, 79, 79, 77, 74, 71, 68, 66, + 63, 60, 57, 55, 51, 46, 40, 36, 30, 25, 20, 17, 16, 17, 16, 14, + 12, 10, 7, 3, -1, -5, -11, -15, -17, -18, -18, -19, -21, -25, -29, -32, + -33, -33, -36, -39, -43, -46, -50, -53, -56, -58, -59, -60, -61, -62, -63, -65, + -66, -67, -68, -70, -72, -72, -70, -67, -63, -61, -60, -60, -58, -56, -54, -53, + -52, -52, -52, -51, -50, -49, -47, -45, -43, -40, -37, -35, -34, -32, -29, -25, + -21, -18, -14, -9, -4, 0, 4, 7, 11, 15, 18, 21, 25, 28, 33, 37, + 41, 44, 46, 47, 47, 46, 46, 45, 43, 42, 42, 43, 46, 48, 49, 50, + 52, 55, 59, 62, 65, 66, 67, 68, 69, 69, 70, 72, 74, 74, 73, 72, + 71, 69, 65, 61, 57, 53, 50, 46, 43, 38, 35, 32, 28, 23, 19, 17, + 17, 15, 13, 11, 9, 5, 1, -3, -6, -9, -12, -14, -17, -19, -23, -27, + -31, -35, -38, -40, -43, -46, -48, -52, -55, -57, -61, -64, -66, -67, -68, -69, + -70, -70, -70, -69, -69, -70, -71, -70, -66, -62, -59, -55, -52, -50, -46, -43, + -41, -38, -36, -35, -35, -34, -33, -33, -33, -33, -31, -30, -28, -26, -25, -24, + -21, -20, -20, -19, -19, -18, -17, -16, -15, -13, -11, -8, -3, 2, 9, 15, + 21, 27, 33, 38, 41, 45, 48, 51, 53, 55, 56, 56, 56, 56, 56, 56, + 56, 55, 57, 58, 60, 61, 62, 62, 64, 66, 68, 69, 71, 72, 73, 74, + 72, 70, 67, 63, 60, 57, 54, 50, 46, 41, 36, 31, 27, 23, 19, 16, + 14, 12, 11, 9, 8, 5, 2, -1, -4, -8, -10, -15, -18, -19, -20, -22, + -22, -23, -23, -24, -26, -29, -31, -33, -35, -36, -37, -38, -41, -44, -46, -48, + -50, -52, -54, -56, -59, -61, -63, -63, -64, -65, -64, -63, -62, -61, -60, -59, + -58, -57, -58, -57, -57, -55, -53, -50, -49, -47, -46, -43, -40, -37, -33, -31, + -28, -26, -23, -20, -16, -14, -12, -9, -5, -2, 1, 5, 9, 13, 17, 21, + 24, 26, 29, 32, 35, 37, 37, 38, 39, 41, 43, 44, 45, 46, 48, 50, + 51, 53, 52, 52, 50, 48, 47, 46, 46, 46, 46, 47, 48, 49, 51, 54, + 56, 58, 60, 61, 62, 62, 62, 61, 59, 57, 55, 54, 53, 52, 51, 49, + 46, 41, 36, 31, 27, 22, 18, 14, 11, 9, 6, 3, 0, -2, -5, -8, + -11, -16, -20, -25, -28, -31, -34, -37, -39, -41, -41, -42, -42, -42, -43, -45, + -46, -47, -49, -50, -52, -54, -56, -57, -58, -60, -61, -63, -64, -64, -64, -63, + -63, -61, -59, -58, -57, -55, -54, -53, -52, -52, -51, -50, -49, -47, -46, -45, + -44, -42, -40, -38, -35, -32, -30, -28, -25, -22, -19, -17, -15, -12, -9, -5, + -1, 3, 7, 11, 15, 19, 23, 25, 27, 30, 34, 36, 37, 38, 39, 40, + 42, 44, 45, 46, 47, 49, 50, 52, 53, 52, 51, 49, 47, 47, 46, 46, + 46, 47, 47, 48, 50, 52, 55, 57, 59, 61, 62, 62, 62, 61, 60, 58, + 56, 54, 54, 53, 51, 50, 47, 44, 39, 34, 29, 25, 20, 16, 13, 10, + 7, 4, 2, -1, -3, -6, -9, -14, -18, -22, -26, -30, -33, -35, -38, -40, + -41, -41, -42, -42, -43, -44, -46, -47, -48, -49, -51, -53, -55, -56, -57, -59, + -60, -62, -63, -64, -64, -63, -63, -62, -60, -59, -57, -56, -55, -53, -52, -52, + -51, -51, -50, -48, -46, -45, -44, -43, -41, -39, -36, -34, -31, -29, -26, -24, + -21, -16, -1, -2, -1, -3, 1, -2, -2, -4, 2, 6, 2, -2, -2, 0, + 7, 8, 4, -2, -2, 6, 5, 6, 0, -2, 5, 12, 10, 0, -5, -3, + 5, 10, 9, -7, -8, -7, 5, 8, 3, -9, -13, -5, 3, 5, -5, -9, + -4, 0, 6, 0, -4, -11, -7, 3, 4, 0, -5, 0, -1, 5, 1, 4, + -6, -5, -3, 12, 9, -2, -10, 4, 11, 8, -4, -5, -9, -6, 1, 19, + 13, -2, -22, 4, 9, 6, -26, -4, 3, 12, -9, 0, 2, 0, -15, 4, + 8, -8, -20, 0, 15, 8, -13, -2, -4, -4, -2, 12, 3, -14, -18, 1, + 21, 13, -9, -25, -8, 17, 15, 5, -14, -17, 5, 19, 13, -15, -17, -3, + 10, 20, 10, -27, -19, 5, 11, 12, 3, -13, -17, -1, 6, -3, -2, 1, + -1, -11, -17, 7, 7, -7, -7, -13, 9, 0, -5, 9, -5, -9, 6, 5, + -2, -16, -5, 15, 17, -10, -20, 1, 11, 14, -1, 1, 10, -11, -8, -1, + 18, 13, -2, -12, 1, -16, -2, 34, 27, -28, -42, -3, 42, 26, -14, -39, + -19, 7, 26, 25, -16, -55, -26, 32, 57, 4, -69, -48, 6, 75, 29, -51, + -67, -32, 51, 56, 7, -57, -75, 14, 63, 43, -29, -82, -27, 31, 56, 28, + -43, -81, -31, 59, 85, 1, -100, -59, 8, 102, 41, -42, -92, -52, 72, 79, + 29, -103, -85, -1, 117, 49, -54, -113, 7, 24, 94, -28, -39, -84, 39, 28, + 61, -44, -28, -67, 61, 23, 35, -40, -23, -37, 6, 38, 69, -42, -61, -53, + 58, 86, 2, -93, -24, 19, 72, 17, -19, -87, 45, 10, 64, -13, -45, -57, + 38, 48, 36, -51, -35, -37, 46, 26, 37, -73, -28, -12, 44, 22, 27, -84, + -22, 6, 70, 17, -24, -82, -7, 26, 79, 9, -63, -78, 6, 90, 68, -55, + -118, -3, 92, 62, -10, -73, -50, 14, 110, 15, -5, -118, 5, 69, 53, 22, + -81, -45, 29, 47, 80, -69, -28, -52, 58, 66, -1, -25, -59, -22, 107, 2, + 43, -108, -13, 20, 59, 56, -58, -66, -7, 34, 114, -42, -63, -50, 42, 69, + 44, -63, -37, -50, 114, 27, 18, -49, -81, 20, 74, 51, -14, -102, -4, 40, + 70, 38, -64, -73, 11, 60, 76, -41, -30, -78, 42, 46, 68, -63, -48, -56, + 89, 43, 28, -100, -53, 41, 60, 11, -6, -76, -16, 44, 52, 9, -67, -48, + 10, 69, 30, -1, -84, -4, 36, 72, -23, -22, -27, -33, 55, 74, -11, -86, + -1, 27, 36, 31, -7, -101, 49, 5, 66, -7, -46, -39, 9, 64, 44, -63, + -33, -22, 55, 23, 43, -79, -24, 5, 29, 54, -14, -59, -53, 63, 32, 20, + -34, -32, -36, 93, -2, 20, -35, -38, 18, 51, 61, -94, 15, -14, 17, 69, + 5, -87, 16, 28, 34, 1, 34, -57, -53, 118, -22, 34, -10, -71, 23, 70, + 25, -29, -7, -19, -3, 117, -33, -12, -21, -19, 43, 84, -38, -57, 33, 0, + 32, 41, -7, -103, 85, 2, 2, 58, -14, -103, 103, 7, -17, 34, -32, -59, + 71, 51, -78, 76, -65, -30, 63, 48, -66, 9, -11, -28, 52, 50, -72, -37, + 73, -61, 75, 7, -51, -44, 73, -3, -11, 40, -78, 7, 63, -15, -16, 30, + -53, 12, 38, 12, -42, 39, -63, 47, 23, 0, -23, -11, 8, -25, 60, -37, + -15, -3, -9, 12, 27, -14, -40, 22, 12, 14, 15, -31, -14, 15, 23, -12, + 14, -31, 19, 13, 32, -39, 27, -51, 43, 8, 0, 5, -26, 16, 4, 19, + -24, 17, -18, 6, -2, 49, -67, 39, -1, -30, 46, -13, -16, -9, 21, -17, + 27, 2, -34, 19, -3, 24, 8, -38, 13, -10, 22, 15, -34, 2, 4, -10, + 18, 14, -15, -15, 26, -12, 28, -21, 0, -6, 0, 7, 0, -15, 6, -2, + -18, 9, 8, -18, -15, 59, -94, 81, -40, -24, 14, -18, 25, -15, 4, -21, + -9, 24, -20, 3, 3, -52, 56, -29, 4, 5, -51, 45, -50, 73, -75, 13, + 17, -48, 38, -10, -16, 5, 4, -22, 3, 17, -27, -23, 42, -30, -5, 41, + -53, 10, 23, -28, 1, 29, -47, 9, 13, -3, -18, 9, -13, -11, 18, 12, + -53, 28, 1, -41, 41, 7, -61, 32, 0, -34, 16, 9, -74, 45, -23, -33, + 22, 39, -104, 49, 23, -96, 83, 5, -46, 36, -4, -45, 54, -25, -26, 21, + 2, -39, 51, -25, -25, 43, -22, -25, 30, -2, -32, 39, 14, -69, 42, 22, + -78, 60, 23, -83, 33, 44, -74, 19, 69, -113, 43, 53, -88, 51, 17, -74, + 42, 1, -38, 4, 39, -67, 12, 35, -39, -23, 73, -82, -5, 67, -71, -5, + 42, -36, -48, 78, -64, -4, 40, -48, -7, 50, -80, 17, 31, -56, 9, 6, + -18, -36, 43, -37, -29, 47, -47, -18, 33, -29, -27, 40, -30, -37, 51, -46, + -25, 61, -66, 7, 28, -48, 30, -15, -8, -6, 17, -14, -9, 26, -23, 4, + 9, -15, 12, -9, 16, -22, 7, 22, -51, 59, -29, -23, 54, -49, 6, 20, + -19, -11, 17, -3, -30, 32, -27, -5, 16, -28, 4, 4, -27, 32, -46, 27, + -18, -8, 11, -25, 18, -6, -17, 10, 1, -18, 24, -33, 10, 8, -12, -10, + 21, -19, 0, 8, -18, 14, 11, -44, 39, -22, -4, -6, 11, -15, -13, 17, + -17, -6, 13, -22, -1, 7, -5, -8, 0, 4, -24, 29, -23, 0, 20, -25, + -8, 30, -34, 31, -29, 11, -9, 21, -15, -1, 10, -9, -11, 32, -23, -2, + -14, 27, -19, 10, -4, -23, 14, 13, -45, 48, -44, 11, -4, -7, -3, 4, + -2, -34, -8, 37, -41, 20, -24, -4, -10, 2, 4, 12, -28, -30, 9, 32, + -16, 6, -46, -23, 60, 0, -22, -3, -23, -15, 48, 12, -34, -17, -18, 10, + 46, -1, -56, -8, 12, 9, 18, 13, -72, -3, 26, 9, 28, -14, -89, 15, + 67, -18, 1, -19, -52, 45, 26, -8, -5, -25, -25, 36, 38, -13, -36, -18, + -6, 55, 23, -51, -14, 4, 6, 25, 24, -41, -44, 38, 19, 10, 10, -59, + -14, 42, 1, 6, -8, -43, -1, 43, 10, -30, -10, -36, 18, 35, -20, -14, + -11, -19, 9, 20, -5, -22, -9, -6, 13, 26, -30, -23, 4, 1, 20, 9, + -20, -22, 3, -1, 17, 28, -26, -25, 16, -2, -4, 12, -10, -16, 24, -2, + -18, 17, -27, -1, 36, -6, -7, -4, -26, 6, 29, -3, -17, -6, -4, 18, + 18, -26, -10, -4, 6, 30, -1, -6, -24, 0, 24, 12, 2, -16, -25, 13, + 32, -3, -4, -3, -24, 15, 16, -7, 8, -20, -13, 36, 9, -24, -11, -10, + 10, 20, -1, -13, -10, -9, 20, 17, -12, -9, -15, 9, 20, -11, -14, -6, + 5, 10, 6, 5, -7, -11, 7, 19, 1, 3, -11, -10, 24, 14, -16, 2, + -9, 11, 14, 7, -1, -11, -4, 15, 24, 3, -24, -4, 4, 15, 13, -3, + -15, 0, 15, 8, 2, 0, -19, 16, 12, -1, 7, -13, -2, 18, 3, -3, + 5, -9, -10, 12, 9, -2, 8, -9, 4, 9, 6, 1, -8, 10, 4, -2, + 11, -14, 3, 5, 1, 9, 4, -15, 0, 10, 1, 5, -4, -10, 3, 7, + -1, 8, -13, 1, 4, 10, 6, -9, -3, 1, 6, 14, -3, -4, 4, -10, + 10, 13, -1, -4, 5, -3, 10, 13, -13, 4, 7, 1, 8, -1, 1, 4, + 5, 4, 11, -5, -2, 1, 8, 6, 1, 3, -1, -5, 11, 3, -3, 4, + -5, -1, 17, -4, -2, 6, -10, 10, 10, -4, 2, 3, -10, 10, 5, -2, + -2, -1, 4, 3, -1, -2, -4, 1, 6, -4, 6, -4, -10, 8, 2, -4, + 6, -4, -4, 12, -2, 2, 6, -9, 3, 2, 0, 7, -5, -3, 3, 2, + 4, -4, -2, 7, 3, 5, 9, -3, 1, 12, -3, 7, 6, -9, 4, 9, + -4, 12, 1, -7, 9, 2, 1, 10, -3, 1, 0, 0, 8, 0, -1, 5, + -2, 8, 1, -3, 10, 2, 0, 11, -4, -1, 6, -3, 2, 3, -5, 4, + 0, -5, 5, -3, 1, 3, 0, 4, -3, -3, 4, -2, -2, 5, -2, -1, + 6, -5, 2, 3, -4, 4, -2, -3, 11, -8, 0, 5, -1, 1, 0, -3, + 4, 2, 2, 6, -2, 4, 5, -3, 4, 7, -4, 11, -1, 0, 3, 0, + 3, 7, -2, 5, 1, 0, 6, 3, 2, 4, -1, 2, 6, 0, 3, 5, + -4, 6, 0, 2, 7, -4, -1, 2, -2, 7, 1, -1, 1, -2, 2, 4, + -5, 0, 4, -1, 2, -1, -2, 1, -2, 3, 2, -3, 3, -1, -4, 5, + -2, -2, 3, 0, -1, 2, -5, 2, 1, -4, 0, 1, -3, 5, -2, 2, + 2, -3, 1, 3, -2, 3, 1, -2, 4, 1, 2, 5, -2, 3, 1, 2, + 5, 0, -1, 4, 0, 1, 4, 2, 4, 4, -2, 0, 2, 3, 5, 0, + 0, 0, 1, 5, -2, -3, 4, 0, 1, 2, -2, -4, -4, -5, -6, -7, + -8, -9, -10, -11, -12, -13, -13, -14, -16, -18, -21, -25, -29, -34, -36, -38, + -39, -40, -42, -44, -47, -50, -53, -56, -58, -59, -58, -55, -50, -44, -38, -31, + -24, -18, -13, -9, -6, -3, 0, 3, 6, 9, 13, 17, 21, 27, 33, 42, + 53, 63, 74, 83, 91, 98, 104, 108, 111, 113, 115, 118, 119, 121, 123, 125, + 126, 127, 127, 127, 127, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, + 126, 125, 123, 121, 118, 114, 111, 107, 104, 101, 100, 99, 98, 98, 98, 98, + 98, 99, 98, 98, 97, 95, 92, 88, 81, 73, 63, 54, 46, 39, 33, 29, + 27, 25, 24, 22, 20, 18, 14, 10, 5, 0, -5, -8, -8, -7, -3, 2, + 8, 14, 19, 23, 26, 28, 29, 30, 31, 32, 32, 31, 30, 28, 24, 20, + 14, 9, 4, -1, -4, -7, -9, -10, -12, -13, -15, -17, -19, -22, -24, -25, + -25, -23, -21, -19, -17, -15, -15, -14, -15, -15, -16, -17, -17, -17, -16, -16, + -16, -17, -19, -22, -25, -30, -35, -39, -44, -47, -50, -53, -56, -58, -61, -63, + -64, -65, -65, -63, -60, -55, -49, -43, -38, -34, -32, -31, -31, -32, -33, -35, + -36, -37, -37, -36, -35, -34, -34, -34, -36, -39, -43, -49, -55, -61, -67, -72, + -77, -81, -85, -88, -90, -92, -94, -94, -95, -94, -94, -94, -94, -95, -96, -98, + -100, -102, -104, -105, -107, -108, -108, -109, -110, -110, -110, -109, -109, -109, -108, -108, + -109, -109, -109, -109, -108, -108, -107, -106, -106, -105, -105, -105, -105, -105, -105, -104, + -103, -101, -98, -93, -88, -82, -76, -70, -64, -58, -52, -47, -42, -38, -34, -31, + -29, -27, -25, -22, -18, -13, -7, -1, 6, 13, 20, 26, 32, 37, 41, 45, + 48, 51, 55, 58, 63, 68, 73, 77, 82, 85, 89, 91, 94, 96, 97, 98, + 99, 99, 99, 100, 100, 100, 101, 101, 101, 101, 101, 101, 99, 97, 95, 93, + 90, 87, 84, 81, 77, 73, 67, 60, 51, 40, 29, 17, 6, -5, -14, -23, + -31, -38, -45, -52, -58, -65, -70, -75, -80, -84, -87, -90, -92, -94, -95, -96, + -97, -98, -100, -101, -102, -102, -103, -103, -104, -104, -103, -102, -100, -97, -93, -89, + -86, -82, -79, -77, -75, -72, -70, -67, -63, -59, -53, -47, -40, -33, -26, -20, + -14, -9, -6, -3, 0, 3, 6, 9, 13, 17, 21, 26, 31, 37, 44, 51, + 58, 64, 70, 75, 79, 83, 86, 88, 90, 92, 93, 95, 96, 97, 98, 100, + 100, 101, 102, 102, 102, 102, 102, 102, 102, 102, 102, 103, 103, 103, 102, 102, + 102, 101, 100, 98, 96, 94, 92, 90, 89, 88, 88, 87, 87, 87, 87, 87, + 86, 85, 84, 82, 79, 76, 72, 67, 61, 55, 49, 43, 39, 35, 32, 30, + 29, 27, 25, 24, 21, 18, 15, 12, 8, 5, 3, 3, 4, 6, 9, 12, + 15, 18, 21, 23, 25, 27, 28, 30, 31, 31, 31, 30, 28, 25, 22, 18, + 14, 10, 7, 5, 3, 1, 0, -2, -4, -6, -9, -11, -14, -16, -17, -17, + -16, -14, -12, -11, -9, -9, -9, -10, -11, -12, -13, -14, -15, -15, -16, -16, + -17, -19, -22, -26, -30, -34, -38, -42, -45, -48, -50, -52, -53, -54, -55, -56, + -56, -55, -53, -50, -46, -42, -38, -35, -32, -31, -30, -31, -31, -33, -34, -35, + -36, -36, -36, -35, -35, -35, -36, -38, -41, -45, -49, -54, -59, -64, -68, -73, + -76, -80, -83, -86, -88, -89, -90, -91, -91, -91, -92, -92, -93, -95, -96, -98, + -100, -101, -102, -103, -104, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, + -105, -105, -104, -104, -103, -102, -102, -101, -100, -100, -100, -99, -99, -99, -98, -96, + -94, -91, -86, -82, -76, -71, -65, -59, -53, -48, -42, -37, -32, -28, -25, -22, + -19, -16, -13, -8, -3, 3, 9, 16, 22, 28, 35, 40, 45, 49, 53, 56, + 60, 63, 67, 71, 76, 80, 85, 88, 92, 94, 97, 99, 100, 102, 103, 103, + 104, 104, 104, 104, 105, 105, 105, 105, 105, 104, 103, 101, 99, 97, 94, 91, + 87, 84, 80, 76, 71, 65, 57, 48, 39, 28, 18, 8, -2, -11, -19, -27, + -34, -41, -47, -54, -60, -65, -70, -75, -79, -82, -85, -87, -89, -91, -92, -94, + -95, -96, -97, -98, -99, -100, -100, -100, -100, -100, -98, -96, -94, -90, -87, -84, + -81, -78, -76, -73, -71, -68, -65, -61, -57, -52, -46, -40, -33, -27, -21, -15, + -11, -7, -4, 0, 3, 7, 11, 15, 20, 24, 29, 35, 41, 48, 54, 61, + 67, 72, 77, 81, 85, 88, 90, 92, 94, 95, 97, 98, 99, 101, 102, 103, + 104, 104, 104, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 104, + 104, 103, 101, 99, 98, 96, 95, 93, 93, 92, 92, 91, 91, 90, 90, 88, + 87, 86, 84, 81, 78, 74, 69, 64, 59, 54, 49, 45, 42, 39, 37, 35, + 33, 31, 29, 27, 24, 21, 18, 15, 13, 11, 11, 12, 13, 15, 17, 20, + 22, 24, 25, 27, 28, 29, 30, 31, 31, 31, 30, 28, 26, 23, 20, 17, + 14, 11, 9, 8, 6, 5, 3, 1, -1, -4, -6, -8, -10, -11, -11, -11, + -10, -9, -8, -8, -8, -9, -10, -11, -13, -14, -15, -16, -17, -17, -18, -20, + -22, -25, -28, -31, -35, -38, -41, -44, -46, -47, -49, -50, -51, -52, -52, -52, + -51, -49, -47, -44, -40, -38, -35, -33, -33, -32, -33, -33, -34, -35, -36, -37, + -38, -38, -38, -38, -39, -40, -42, -45, -49, -53, -57, -61, -65, -69, -73, -76, + -79, -82, -85, -87, -88, -89, -90, -91, -91, -92, -93, -94, -95, -97, -98, -99, + -100, -101, -102, -103, -103, -104, -104, -104, -104, -104, -104, -104, -104, -104, -103, -103, + -103, -102, -102, -101, -100, -99, -99, -98, -97, -97, -96, -96, -95, -94, -92, -89, + -86, -82, -77, -72, -67, -61, -56, -50, -45, -39, -34, -29, -25, -21, -18, -14, + -11, -5, 4, 8, 14, 19, 25, 31, 37, 42, 47, 52, 57, 61, 65, 69, + 72, 76, 79, 83, 86, 89, 92, 95, 97, 99, 101, 102, 104, 104, 105, 106, + 106, 106, 106, 106, 106, 105, 104, 104, 103, 101, 99, 97, 95, 92, 89, 85, + 81, 77, 73, 68, 62, 57, 50, 43, 35, 28, 19, 12, 4, -4, -11, -18, + -25, -32, -38, -44, -50, -55, -61, -65, -69, -73, -77, -80, -82, -85, -87, -89, + -91, -92, -93, -95, -95, -96, -97, -97, -97, -96, -96, -95, -93, -92, -90, -88, + -86, -84, -82, -79, -77, -74, -71, -68, -64, -60, -55, -51, -46, -41, -36, -31, + -26, -21, -16, -11, -7, -2, 3, 8, 14, 19, 25, 30, 36, 42, 47, 53, + 58, 63, 68, 72, 76, 79, 82, 85, 87, 89, 91, 93, 95, 96, 98, 99, + 101, 102, 103, 103, 104, 105, 105, 105, 106, 106, 106, 106, 106, 106, 106, 105, + 105, 105, 104, 103, 103, 102, 101, 100, 99, 99, 98, 97, 96, 95, 93, 92, + 91, 89, 87, 85, 82, 79, 76, 73, 70, 67, 63, 60, 58, 55, 53, 50, + 48, 46, 44, 41, 39, 37, 34, 32, 31, 29, 28, 28, 27, 28, 28, 28, + 28, 29, 29, 29, 29, 30, 30, 30, 29, 29, 28, 27, 26, 25, 23, 22, + 20, 19, 17, 16, 15, 13, 12, 10, 8, 6, 4, 2, 1, -1, -2, -4, + -5, -6, -7, -9, -10, -12, -13, -15, -17, -19, -21, -22, -24, -26, -27, -29, + -31, -32, -34, -36, -38, -40, -42, -43, -45, -46, -47, -47, -48, -48, -49, -49, + -48, -48, -47, -46, -45, -44, -44, -43, -43, -43, -44, -44, -45, -46, -47, -48, + -49, -50, -51, -52, -53, -55, -57, -59, -61, -64, -67, -70, -72, -75, -78, -80, + -82, -84, -86, -88, -90, -91, -92, -94, -95, -96, -97, -98, -98, -99, -100, -101, + -101, -101, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -101, -101, -100, -100, + -99, -98, -97, -96, -95, -94, -93, -92, -91, -89, -88, -87, -85, -83, -81, -78, + -75, -71, -67, -63, -58, -54, -49, -44, -39, -33, -28, -23, -18, -13, -8, -3, + 2, 7, 13, 18, 23, 29, 35, 40, 45, 51, 55, 60, 64, 68, 71, 75, + 78, 82, 85, 88, 91, 93, 96, 98, 100, 101, 103, 104, 105, 105, 106, 106, + 106, 106, 105, 105, 104, 104, 103, 101, 100, 98, 95, 93, 90, 86, 83, 79, + 75, 70, 65, 60, 54, 47, 40, 33, 25, 18, 10, 2, -5, -12, -19, -26, + -32, -38, -44, -50, -55, -60, -65, -69, -73, -76, -79, -82, -84, -87, -89, -90, + -92, -93, -94, -95, -96, -96, -96, -96, -96, -95, -94, -93, -91, -90, -88, -86, + -84, -81, -79, -76, -74, -70, -67, -63, -59, -54, -49, -44, -39, -34, -29, -24, + -19, -14, -10, -5, -2, -1, 3, -2, 1, -3, 4, -2, 0, 0, 8, 0, + 10, -9, -7, -128, -72, 13, -44, -13, -18, 4, -4, 12, 3, 31, 4, 66, + 74, 38, 38, 36, 30, 25, 22, 18, 13, 7, 5, 2, 1, -5, -7, -9, + -9, -11, -14, -12, -14, -12, -16, -13, -16, -13, -14, -16, -11, -14, -10, -13, + -11, -13, -8, -8, -6, -6, -5, 0, -6, -3, -3, 3, -4, 6, -13, 17, + -5, -5, 15, -1, -23, 6, 23, 28, 35, 13, 41, -3, 24, 25, -4, 6, + 30, 4, 18, 10, -32, -64, -120, -64, -91, -76, -33, -45, -58, 2, 1, -19, + -14, 18, 48, 50, 59, 51, 53, 47, 46, 41, 37, 35, 26, 28, 19, 21, + 10, 13, 9, 3, 5, -4, 2, -5, -3, -8, -5, -8, -8, -10, -9, -10, + -10, -12, -7, -17, -8, -11, -14, -5, -15, -5, -4, -10, -13, 11, -22, 3, + -3, -4, -5, -11, 13, 2, -16, -9, -5, -12, 27, 15, 17, 21, 20, 20, + 8, 14, 13, 0, 10, 35, 10, -1, -12, -52, -89, -78, -58, -85, -74, -51, + -25, -25, -28, -30, -14, 12, 29, 44, 44, 51, 46, 50, 49, 43, 38, 36, + 32, 29, 23, 19, 17, 14, 10, 6, 6, 2, 4, -8, 3, -7, -3, -6, + -7, -11, -4, -12, -7, -6, -20, 1, -15, -14, -8, -7, -10, -10, -10, 2, + -14, -12, 7, -10, -8, -5, -6, 1, 6, -2, -12, -19, -3, 3, 2, 19, + 19, 14, 19, 24, 13, 5, 12, 12, 13, 21, 29, 5, -18, -43, -48, -64, + -82, -82, -71, -44, -37, -37, -40, -33, -23, 5, 20, 33, 38, 45, 48, 51, + 46, 44, 41, 38, 36, 27, 26, 24, 19, 13, 16, 5, 11, 4, -1, 3, + -4, -3, 1, -9, -7, -2, -9, -6, -13, -4, -6, -17, -8, -6, -15, -10, + -5, -10, -8, -10, -5, -7, -5, -2, -14, -10, 3, 5, -4, -3, -10, -17, + -10, 3, 4, 5, 18, 18, 18, 16, 16, 10, 5, 11, 23, 26, 22, 7, + -9, -16, -37, -62, -80, -76, -65, -46, -43, -43, -51, -41, -24, -4, 11, 24, + 32, 41, 47, 43, 49, 45, 41, 40, 33, 31, 31, 20, 23, 18, 11, 16, + 9, 5, 3, 2, 5, -2, -7, 2, -4, -10, -3, -5, -8, -10, -7, -8, + -14, -10, -8, -11, -9, -6, -14, -10, -2, -3, -12, -10, -7, -9, 0, 6, + -1, -11, -12, -11, -10, -7, 4, 7, 12, 17, 20, 18, 13, 6, 8, 19, + 22, 24, 17, 14, 5, -8, -29, -54, -77, -71, -55, -50, -44, -54, -57, -39, + -32, -15, 3, 15, 31, 34, 39, 47, 45, 44, 44, 37, 37, 33, 28, 27, + 18, 20, 21, 10, 7, 10, 7, 1, 2, 2, 0, -5, 0, -2, -7, -3, + -5, -8, -8, -5, -13, -13, -5, -6, -14, -11, -8, -8, -5, -5, -9, -17, + -10, -2, 0, -2, -1, -9, -12, -14, -12, -6, -1, 3, 11, 19, 19, 14, + 7, 9, 13, 17, 23, 22, 19, 21, 12, 2, -21, -55, -65, -59, -52, -47, + -56, -56, -50, -53, -38, -22, -7, 10, 18, 29, 36, 40, 45, 43, 38, 41, + 40, 32, 27, 26, 26, 19, 17, 17, 12, 9, 9, 6, 2, 4, 4, -1, + -2, 2, -3, -3, 0, -2, -8, -9, -7, -7, -7, -6, -8, -12, -6, -4, + -7, -12, -13, -10, -5, -2, -2, -3, -8, -12, -15, -16, -14, -13, -7, 2, + 8, 11, 8, 4, 5, 8, 13, 20, 22, 23, 24, 23, 19, 6, -13, -23, + -29, -32, -37, -42, -46, -53, -57, -53, -49, -39, -25, -12, -1, 10, 21, 28, + 32, 35, 36, 34, 34, 32, 28, 25, 24, 21, 18, 19, 16, 10, 7, 8, + 9, 8, 6, 5, 2, 3, 6, 7, 5, 2, -2, -4, -3, -1, -3, -4, + -3, -1, -3, -8, -13, -14, -11, -4, -1, -2, -4, -6, -11, -16, -19, -21, + -21, -17, -9, -3, 0, 0, -3, -5, -2, 4, 11, 18, 23, 25, 26, 24, + 17, 10, 5, -1, -7, -12, -20, -29, -37, -44, -51, -55, -54, -47, -39, -28, + -16, -4, 9, 18, 23, 27, 31, 31, 30, 30, 28, 23, 20, 22, 23, 20, + 14, 10, 9, 9, 10, 9, 6, 4, 4, 6, 9, 10, 7, 2, 0, 1, + -1, -2, -2, -1, 1, 2, -2, -10, -14, -11, -8, -5, -2, -1, -3, -6, + -9, -14, -20, -23, -23, -18, -11, -5, -3, -4, -6, -8, -4, 2, 7, 14, + 21, 25, 25, 23, 19, 13, 8, 4, -1, -9, -15, -23, -31, -39, -48, -53, + -51, -48, -44, -34, -20, -8, 3, 12, 20, 24, 27, 30, 31, 29, 24, 22, + 22, 23, 22, 18, 13, 10, 10, 11, 11, 9, 5, 3, 5, 10, 11, 9, + 7, 5, 4, 2, 0, -3, -1, 3, 5, 2, -3, -8, -11, -10, -7, -5, + -3, -2, -2, -4, -7, -14, -20, -24, -24, -19, -12, -6, -6, -8, -8, -8, + -7, -2, 5, 12, 19, 23, 24, 22, 20, 16, 12, 7, 1, -5, -10, -17, + -27, -36, -42, -47, -52, -51, -45, -36, -26, -12, 0, 9, 15, 21, 27, 30, + 29, 26, 23, 22, 23, 23, 21, 17, 12, 9, 10, 12, 10, 6, 3, 4, + 7, 10, 11, 9, 8, 9, 7, 2, -1, 0, 2, 6, 6, 3, -2, -7, + -9, -8, -6, -4, -3, -1, -1, -2, -6, -13, -21, -26, -24, -18, -13, -10, + -9, -10, -11, -11, -10, -5, 3, 10, 17, 21, 22, 22, 21, 19, 14, 8, + 5, 1, -7, -14, -21, -29, -38, -45, -49, -50, -48, -40, -28, -16, -6, 3, + 11, 19, 26, 27, 26, 24, 22, 22, 24, 24, 20, 14, 11, 11, 12, 11, + 8, 4, 3, 6, 8, 9, 9, 10, 11, 10, 6, 2, 0, 2, 5, 8, + 7, 3, -2, -5, -6, -7, -6, -4, -3, -1, 1, 1, -5, -13, -21, -24, + -23, -18, -14, -12, -11, -12, -13, -14, -13, -8, 0, 8, 14, 17, 21, 22, + 21, 18, 15, 12, 8, 2, -3, -9, -16, -24, -32, -40, -47, -51, -49, -41, + -30, -21, -12, -1, 9, 17, 23, 25, 24, 21, 21, 24, 24, 22, 17, 12, + 11, 13, 12, 8, 4, 3, 4, 6, 7, 7, 9, 11, 12, 10, 6, 3, + 3, 6, 9, 10, 8, 5, 1, -2, -3, -3, -2, -1, 1, 3, 3, 1, + -5, -12, -18, -20, -20, -18, -16, -16, -16, -17, -19, -20, -17, -11, -5, 1, + 8, 13, 17, 18, 18, 17, 16, 14, 11, 7, 2, -3, -8, -14, -22, -34, + -43, -46, -42, -35, -28, -20, -11, -2, 7, 15, 19, 19, 19, 19, 20, 20, + 17, 14, 11, 10, 9, 7, 1, -4, -6, -4, 0, 2, 4, 6, 7, 8, + 9, 8, 7, 7, 10, 13, 15, 15, 13, 9, 6, 3, 2, 4, 7, 9, + 11, 11, 7, 1, -5, -10, -13, -14, -14, -14, -16, -19, -23, -26, -28, -27, + -23, -18, -13, -7, -1, 6, 11, 14, 15, 14, 14, 15, 15, 12, 7, 2, + -1, -4, -11, -22, -34, -41, -40, -34, -26, -19, -12, -4, 4, 10, 14, 17, + 17, 18, 19, 18, 15, 12, 10, 9, 8, 6, 0, -6, -11, -10, -6, -1, + 3, 5, 6, 6, 6, 7, 7, 8, 10, 13, 16, 18, 17, 13, 9, 5, + 3, 4, 7, 11, 13, 14, 11, 5, -2, -7, -11, -12, -12, -13, -14, -17, + -22, -26, -28, -29, -27, -22, -17, -11, -5, 1, 7, 12, 14, 14, 13, 14, + 15, 14, 11, 5, 0, -2, -6, -15, -27, -37, -42, -38, -31, -24, -17, -9, + -1, 6, 12, 15, 17, 18, 19, 19, 17, 13, 11, 9, 9, 8, 4, -2, + -8, -11, -9, -4, 1, 4, 5, 6, 6, 6, 7, 7, 9, 11, 14, 17, + 18, 16, 12, 8, 4, 3, 5, 9, 12, 14, 13, 9, 2, -4, -9, -12, + -13, -12, -13, -15, -19, -23, -27, -29, -28, -25, -20, -15, -9, -3, 3, 9, + 13, 15, 14, 13, 15, 15, 13, 9, 3, -1, -3, -9, -19, -31, -40, -41, + -36, -28, -21, -14, -6, 2, 9, 13, 16, 17, 18, 19, 18, 16, 12, 10, + 9, 9, 7, 2, -4, -10, -11, -8, -2, 2, 5, 5, 6, 6, 7, 7, + 8, 9, 12, 16, 18, 17, 14, 10, 6, 4, 4, 6, 10, 13, 14, 12, + 7, 0, -6, -10, -12, -13, -13, -14, -16, -21, -25, -28, -29, -28, -24, -18, + -13, -7, -1, 6, 11, 14, 15, 13, 14, 15, 15, 12, 7, 2, -1, -5, + -12, -23, -35, -41, -40, -34, -26, -19, -12, -3, 4, 10, 14, 17, 18, 18, + 19, 18, 14, 11, 9, 9, 8, 6, 0, -7, -11, -10, -6, 0, 2, -1, + -2, -9, -24, 4, -3, 3, -3, 10, 7, 4, 13, -4, 1, 3, 3, 0, + 2, 8, -9, -9, 2, 1, -1, 7, 17, 21, 37, 25, 13, 14, -2, 15, + 20, 5, 0, -3, -7, -27, -14, -18, -19, -29, -20, -4, -18, -32, -30, -30, + -29, -32, -22, -26, -19, -19, -1, -6, 4, 7, 5, 2, 0, -8, -16, -12, + -13, -17, -17, 19, 20, 24, 16, 8, -4, 8, 0, 13, 28, 33, 16, 11, + 5, -3, -1, 4, 12, 12, 40, 20, 11, 4, 5, 8, -1, 2, 5, 5, + 22, 13, 21, 8, 9, 18, 20, 13, 20, 26, 11, 24, 17, 10, 27, 30, + 22, 28, 30, 41, 47, 57, 36, 36, 20, -16, 4, 6, -19, -21, -41, -39, + -33, -38, -41, -46, -42, -36, -18, -37, -65, -75, -77, -78, -62, -63, -62, -68, + -63, -63, -44, -50, -30, -41, -43, -26, -34, -35, -36, -45, -49, -27, 1, -6, + -4, -7, -20, -16, -20, -21, -13, 2, -6, -1, -12, 0, -1, 15, 19, 20, + 26, 37, 40, 46, 37, 50, 35, 34, 41, 43, 51, 54, 55, 50, 56, 47, + 59, 51, 51, 75, 67, 66, 71, 59, 60, 72, 75, 72, 80, 79, 82, 98, + 99, 87, 93, 62, 49, 58, 41, 42, 28, 5, -6, -6, -18, -24, -23, -30, + -25, -20, -38, -60, -75, -77, -80, -75, -71, -75, -70, -73, -69, -76, -60, -66, + -71, -66, -57, -62, -61, -61, -87, -90, -69, -63, -46, -31, -35, -47, -42, -53, + -63, -53, -45, -33, -36, -39, -37, -43, -39, -34, -30, -19, -9, 2, -9, -1, + -3, 1, -3, 5, 7, 15, 24, 22, 23, 20, 32, 43, 33, 48, 63, 67, + 70, 68, 52, 59, 73, 73, 77, 85, 73, 81, 103, 98, 116, 115, 87, 80, + 76, 72, 69, 60, 37, 27, 29, 12, 19, 4, -12, 1, 3, -3, -31, -42, + -57, -67, -67, -61, -61, -61, -48, -58, -51, -41, -46, -48, -40, -35, -33, -26, + -36, -67, -68, -65, -59, -47, -28, -34, -37, -36, -52, -61, -61, -47, -34, -39, + -39, -42, -42, -48, -36, -38, -37, -20, -19, -16, -16, -18, -20, -22, -26, -22, + -16, -15, 1, -4, -6, 10, 12, 13, 22, 32, 41, 54, 52, 44, 54, 66, + 61, 78, 81, 71, 87, 89, 99, 119, 107, 91, 77, 76, 69, 76, 68, 47, + 49, 35, 33, 37, 22, 14, 24, 37, 26, 13, -10, -26, -41, -43, -34, -40, + -34, -33, -43, -39, -25, -27, -27, -18, -25, -15, -1, -10, -29, -42, -39, -39, + -19, -7, -10, -10, -11, -20, -35, -44, -33, -30, -28, -36, -34, -47, -41, -36, + -46, -42, -34, -27, -29, -25, -34, -30, -32, -40, -36, -36, -31, -16, -25, -25, + -15, -21, -14, -9, -11, 1, 17, 15, 9, 25, 20, 25, 46, 39, 46, 50, + 51, 68, 85, 87, 72, 65, 52, 50, 59, 44, 42, 29, 23, 22, 23, 11, + -5, 8, 14, 19, 8, -6, -23, -38, -43, -42, -48, -41, -34, -42, -38, -19, + -23, -16, -15, -19, -10, 8, 8, -9, -18, -27, -30, -10, -4, 7, 6, 15, + 8, -8, -17, -15, -8, -11, -3, -15, -17, -14, -16, -27, -30, -26, -22, -19, + -21, -22, -19, -30, -27, -26, -36, -22, -9, -13, -10, -10, -8, -9, -6, -12, + -1, 16, 6, 11, 16, 6, 19, 24, 27, 38, 38, 38, 48, 71, 72, 78, + 66, 51, 54, 52, 49, 42, 32, 21, 25, 26, 13, 1, -1, 10, 15, 8, + 1, -22, -38, -47, -56, -58, -46, -43, -46, -33, -25, -17, -11, -9, -19, -9, + 16, 18, 12, 1, -17, -18, -9, 3, 9, 17, 24, 26, 9, -4, -1, -6, + 2, 9, 0, -2, 2, -3, -13, -16, -15, -8, -8, -8, -1, -6, -17, -11, + -22, -24, -16, -12, -9, -9, -9, -9, -6, -8, -16, 2, 6, 2, 13, 9, + 7, 10, 17, 19, 30, 31, 22, 37, 49, 61, 70, 56, 43, 37, 36, 31, + 32, 15, 4, 11, 9, 4, -14, -16, -7, -5, -1, -8, -28, -46, -56, -75, + -74, -67, -70, -67, -62, -55, -47, -36, -32, -42, -28, -9, 1, 4, -4, -17, + -30, -18, -12, -2, 4, 15, 21, 7, 1, -7, -6, -1, 7, 0, 0, 3, + -3, -8, -15, -18, -6, -9, -6, 5, -2, -2, 0, -7, -12, -7, -3, 2, + 7, 3, 4, 14, 2, 1, 12, 11, 17, 20, 19, 16, 19, 20, 24, 39, + 36, 37, 42, 55, 71, 84, 76, 63, 56, 47, 49, 46, 29, 18, 14, 18, + 11, -5, -11, -8, -3, 4, 4, -16, -27, -44, -60, -64, -59, -62, -62, -55, + -55, -47, -28, -32, -35, -29, -15, -3, 4, 3, -15, -25, -24, -13, -11, -3, + 10, 14, 12, 4, -5, -9, -1, 2, -1, 1, 1, -1, -7, -17, -16, -12, + -17, -8, 0, -1, -1, -2, -8, -13, -9, -9, 0, 9, 1, 14, 16, 6, + 7, 10, 12, 18, 26, 20, 22, 22, 16, 25, 32, 36, 34, 36, 43, 60, + 75, 72, 67, 52, 44, 50, 45, 38, 17, 14, 17, 11, -2, -9, -14, -10, + 0, -4, -12, -24, -41, -59, -67, -63, -70, -69, -62, -70, -55, -40, -38, -42, + -38, -29, -16, -3, -3, -9, -29, -31, -25, -26, -20, -7, 0, 2, -1, -14, + -18, -14, -14, -12, -10, -10, -4, -13, -21, -19, -22, -24, -16, -10, -6, -2, + -2, -10, -12, -15, -17, -4, -4, -5, 7, 9, 3, 4, 7, 5, 18, 23, + 22, 28, 25, 22, 27, 34, 39, 43, 38, 41, 62, 71, 79, 78, 62, 55, + 55, 57, 49, 31, 23, 30, 21, 15, 7, -5, 1, 8, 9, 8, -3, -16, + -39, -46, -50, -60, -55, -58, -62, -53, -36, -33, -34, -34, -29, -18, -6, 5, + -2, -17, -23, -22, -24, -17, -8, 1, 9, 10, -4, -7, -8, -9, -6, -9, + -6, 0, -11, -14, -14, -21, -24, -21, -16, -10, 1, -3, -3, -5, -14, -11, + -7, -7, -5, 6, 9, 4, 8, 1, 3, 11, 16, 20, 26, 24, 20, 25, + 29, 36, 41, 32, 40, 51, 64, 77, 78, 67, 55, 54, 57, 53, 33, 27, + 25, 22, 20, 9, -3, -3, 3, 7, 6, 4, -16, -32, -42, -55, -60, -61, + -64, -70, -62, -49, -39, -41, -40, -37, -33, -18, -5, -8, -16, -24, -29, -31, + -28, -24, -15, -1, 1, -7, -11, -14, -13, -14, -18, -11, -8, -14, -16, -16, + -25, -31, -29, -31, -20, -12, -13, -6, -11, -19, -19, -14, -17, -12, -1, 2, + 6, 7, 2, 4, 8, 11, 18, 24, 21, 22, 19, 21, 33, 33, 32, 32, + 40, 55, 71, 76, 72, 58, 55, 62, 56, 42, 34, 28, 29, 26, 17, 4, + 2, 6, 4, 13, 12, -4, -18, -30, -45, -50, -51, -59, -63, -61, -47, -37, + -33, -32, -34, -32, -19, -4, -3, -5, -13, -21, -23, -22, -24, -13, 1, 5, + 5, -3, -6, -1, -7, -9, -2, 1, -2, -2, -4, -13, -16, -22, -22, -15, + -10, -4, 2, -1, -11, -8, -7, -12, -6, 1, 6, 12, 11, 8, 9, 9, + 9, 20, 23, 26, 25, 20, 24, 32, 34, 35, 33, 35, 49, 63, 74, 74, + 58, 55, 60, 54, 45, 33, 27, 25, 26, 19, 6, 4, 1, 1, 9, 12, + -1, -10, -26, -43, -50, -54, -61, -70, -69, -61, -50, -43, -40, -44, -44, -34, + -18, -12, -9, -15, -24, -25, -28, -31, -22, -12, -2, 1, -8, -8, -5, -12, + -14, -8, -8, -8, -5, -9, -11, -18, -27, -26, -22, -19, -12, -1, -4, -9, + -8, -11, -14, -12, -8, 0, 7, 5, 5, 6, 0, 3, 8, 13, 20, 18, + 13, 15, 22, 27, 29, 25, 26, 36, 51, 70, 71, 59, 56, 57, 55, 47, + 37, 25, 24, 27, 17, 9, 3, -2, -2, 8, 9, 6, -2, -16, -34, -44, + -47, -54, -63, -66, -63, -55, -44, -39, -42, -44, -35, -23, -11, -4, -10, -16, + -17, -23, -25, -22, -13, 1, 6, 1, 1, 4, -2, -4, 1, -1, 4, 3, + 2, 2, -3, -12, -15, -14, -15, -7, 3, 5, 3, 2, 1, -2, -4, -4, + 3, 9, 10, 13, 11, 9, 8, 9, 15, 22, 22, 20, 19, 21, 27, 30, + 28, 28, 28, 42, 61, 69, 65, 60, 60, 58, 55, 47, 35, 30, 30, 24, + 18, 10, 0, -1, 2, 6, 7, 3, -8, -24, -36, -43, -50, -59, -65, -66, + -62, -52, -43, -43, -44, -41, -35, -21, -12, -12, -13, -17, -23, -26, -30, -24, + -12, -4, -5, -3, -2, -5, -6, -6, -5, -3, -2, -1, 2, 2, -5, -3, + 2, 8, 17, 26, 32, 42, 50, 56, 68, 73, 64, 63, 65, 48, 56, 71, + 48, 49, 50, 26, 30, 30, 16, 25, 21, -2, 0, -13, -15, -2, -19, -17, + -16, -50, -49, -49, -81, -85, -88, -108, -112, -116, -127, -126, -113, -113, -106, -79, + -65, -48, -17, 5, 20, 41, 58, 63, 69, 59, 28, 17, 0, -32, -41, -52, + -69, -63, -61, -59, -41, -26, -19, 6, 28, 33, 52, 67, 70, 81, 87, 84, + 90, 93, 84, 72, 69, 60, 45, 56, 57, 40, 46, 39, 25, 29, 25, 16, + 21, 12, -1, -3, -11, -8, -5, -16, -12, -21, -41, -38, -48, -68, -70, -77, + -91, -93, -98, -106, -103, -93, -92, -82, -60, -47, -30, -4, 13, 27, 44, 56, + 60, 62, 47, 23, 13, -8, -32, -40, -54, -64, -59, -59, -53, -36, -26, -14, + 12, 27, 36, 56, 66, 72, 84, 86, 86, 93, 92, 82, 73, 70, 57, 49, + 59, 52, 43, 47, 37, 29, 30, 24, 18, 18, 7, -2, -6, -11, -7, -10, + -16, -14, -29, -42, -42, -57, -71, -73, -83, -93, -96, -102, -107, -101, -93, -90, + -75, -55, -41, -22, 3, 19, 33, 50, 59, 61, 60, 41, 21, 10, -14, -33, + -43, -57, -63, -60, -61, -51, -36, -27, -9, 15, 26, 40, 59, 66, 74, 85, + 85, 88, 94, 90, 80, 75, 69, 56, 54, 60, 50, 47, 46, 36, 31, 30, + 23, 19, 15, 4, -3, -7, -10, -9, -14, -17, -19, -35, -44, -47, -63, -73, + -77, -88, -96, -98, -104, -107, -99, -92, -86, -69, -50, -35, -14, 9, 24, 38, + 54, 60, 61, 56, 36, 19, 4, -20, -35, -46, -60, -62, -61, -60, -48, -35, + -25, -3, 17, 27, 45, 60, 66, 77, 85, 86, 91, 94, 88, 80, 75, 67, + 56, 58, 59, 50, 49, 45, 36, 33, 30, 23, 19, 13, 2, -5, -8, -10, + -11, -16, -18, -25, -40, -45, -53, -68, -76, -81, -91, -97, -100, -106, -106, -97, + -90, -81, -63, -44, -28, -6, 15, 28, 44, 57, 61, 61, 52, 31, 16, -1, + -24, -37, -50, -61, -62, -62, -59, -46, -35, -22, 1, 18, 30, 48, 61, 68, + 79, 85, 87, 92, 93, 86, 80, 75, 66, 58, 60, 58, 51, 50, 44, 37, + 33, 29, 23, 17, 10, 0, -6, -9, -10, -14, -18, -21, -31, -43, -48, -59, + -72, -78, -85, -94, -99, -102, -107, -104, -95, -88, -76, -56, -39, -22, 2, 20, + 33, 49, 59, 61, 60, 47, 27, 12, -7, -27, -40, -53, -62, -62, -63, -57, + -44, -34, -18, 5, 19, 33, 51, 61, 70, 81, 85, 88, 94, 92, 85, 80, + 74, 65, 60, 62, 57, 52, 50, 43, 37, 33, 28, 22, 15, 8, -2, -7, + -10, -12, -16, -20, -24, -36, -46, -52, -64, -75, -81, -89, -97, -100, -104, -107, + -102, -93, -85, -70, -50, -33, -14, 8, 25, 38, 53, 61, 61, 58, 42, 24, + 8, -12, -30, -43, -56, -62, -63, -63, -54, -43, -32, -13, 7, 20, 37, 53, + 62, 72, 82, 85, 89, 94, 90, 84, 80, 73, 64, 62, 62, 56, 53, 49, + 43, 37, 33, 27, 20, 14, 5, -3, -8, -11, -13, -18, -22, -28, -40, -49, + -57, -69, -78, -84, -92, -99, -102, -105, -106, -99, -90, -81, -64, -44, -27, -7, + 14, 29, 43, 56, 61, 61, 54, 37, 20, 4, -17, -33, -46, -58, -62, -64, + -62, -52, -42, -29, -9, 9, 23, 40, 55, 64, 74, 83, 86, 91, 93, 89, + 84, 80, 72, 65, 64, 62, 56, 53, 49, 42, 37, 33, 26, 19, 12, 3, + -5, -8, -12, -16, -20, -24, -33, -44, -52, -61, -73, -80, -87, -95, -100, -103, + -106, -104, -96, -88, -76, -57, -38, -21, 0, 20, 33, 47, 59, 62, 60, 51, + 33, 17, -1, -21, -36, -49, -59, -63, -64, -61, -51, -40, -25, -5, 11, 26, + 43, 56, 65, 76, 83, 87, 92, 93, 88, 84, 79, 71, 65, 65, 61, 56, + 53, 48, 42, 37, 32, 25, 17, 10, 1, -6, -10, -13, -18, -22, -27, -37, + -48, -55, -65, -76, -83, -90, -97, -101, -104, -106, -102, -94, -84, -71, -51, -33, + -15, 7, 24, 38, 51, 60, 62, 59, 46, 29, 13, -6, -25, -39, -52, -60, + -63, -64, -59, -49, -38, -21, -1, 14, 29, 46, 57, 67, 78, 84, 88, 92, + 92, 87, 83, 78, 70, 66, 65, 61, 57, 53, 48, 42, 37, 31, 23, 15, + 7, -1, -7, -11, -15, -20, -24, -31, -41, -51, -59, -69, -79, -85, -93, -99, + -102, -105, -106, -100, -91, -80, -65, -45, -27, -8, 13, 29, 42, 55, 61, 61, + 56, 42, 25, 8, -11, -28, -42, -54, -61, -64, -64, -57, -47, -35, -17, 1, + 16, 33, 48, 59, 69, 79, 84, 89, 93, 91, 87, 83, 77, 70, 67, 65, + 60, 57, 53, 47, 41, 36, 29, 21, 14, 5, -3, -8, -12, -17, -22, -27, + -35, -45, -54, -63, -73, -81, -88, -95, -100, -103, -105, -104, -97, -88, -76, -58, + -39, -21, -1, 18, 33, 46, 58, 62, 61, 53, 38, 21, 4, -15, -31, -45, + -56, -62, -65, -64, -56, -46, -32, -13, 4, 19, 36, 50, 61, 71, 80, 85, + 90, 92, 90, 86, 82, 76, 70, 68, 65, 60, 57, 52, 46, 41, 35, 27, + 19, 12, 3, -5, -9, -14, -19, -24, -29, -38, -48, -57, -66, -76, -84, -91, + -97, -101, -104, -105, -102, -94, -84, -71, -52, -33, -15, 5, 23, 37, 50, 60, + 62, 60, 50, 34, 17, -1, -19, -35, -48, -58, -63, -65, -62, -54, -43, -28, + -10, 7, 22, 39, 52, 62, 73, 81, 86, 91, 92, 89, 86, 82, 75, 70, + 68, 64, 60, 57, 52, 46, 40, 34, 26, 17, 9, 1, -6, -11, -15, -21, + -26, -32, -42, -52, -60, -70, -79, -86, -93, -99, -102, -104, -105, -100, -91, -80, + -65, -46, -27, -9, 11, 28, 42, 54, 61, 62, 58, 46, 30, 13, -6, -23, + -38, -51, -60, -64, -65, -61, -52, -41, -25, -6, 9, 26, 42, 54, 64, 75, + 82, 87, 91, 91, 89, 85, 81, 74, 71, 68, 64, 60, 56, 51, 45, 39, + 32, 24, 16, 7, -1, -7, -12, -17, -23, -28, -36, -45, -55, -64, -73, -82, + -88, -95, -100, -103, -105, -104, -97, -88, -76, -59, -40, -22, -2, 17, 32, 45, + 57, 62, 62, 56, 42, 26, 9, -10, -27, -41, -53, -61, -65, -65, -60, -50, + -38, -21, -3, 12, 29, 44, 55, 66, 76, 82, 88, 91, 91, 88, 85, 80, + 74, 71, 68, 63, 60, 56, 50, 44, 38, 30, 22, 14, 5, -3, -9, -14, + -19, -25, -31, -39, -49, -58, -67, -77, -84, -91, -97, -101, -103, -105, -102, -95, + -84, -71, -53, -34, -16, 4, 22, 37, 49, 59, 63, 61, 53, 38, 22, 4, + -14, -30, -44, -56, -62, -66, -65, -58, -48, -35, -17, -1, 15, 32, 46, 57, + 68, 77, 83, 88, 91, 90, 88, 84, 79, 74, 71, 67, 63, 60, 55, 49, + 43, 37, 28, 20, 12, 3, -5, -10, -15, -21, -27, -33, -43, -52, -61, -70, + -79, -86, -93, -98, -102, -104, -104, -100, -92, -81, -66, -47, -28, -10, 10, 27, + 40, 53, 61, 63, 59, 49, 34, 18, -1, -18, -34, -47, -58, -63, -66, -64, + -56, -46, -31, -14, 2, 18, 35, 48, 59, 70, 78, 84, 89, 91, 90, 87, + 83, 78, 74, 71, 67, 63, 59, 54, 49, 42, 35, 27, 18, 9, 1, -6, + -12, -17, -23, -29, -36, -46, -55, -64, -73, -82, -89, -95, -100, -102, -104, -103, + -97, -88, -76, -60, -41, -23, -4, 15, 31, 44, 55, 62, 62, 57, 46, 30, + 13, -5, -22, -37, -50, -59, -64, -66, -62, -55, -43, -28, -11, 5, 22, 37, + 50, 61, 71, 79, 85, 89, 91, 89, 87, 82, 77, 73, 70, 66, 63, 59, + 53, 47, 41, 33, 24, 16, 7, -1, -8, -14, -19, -25, -32, -40, -49, -58, + -67, -76, -84, -91, -96, -101, -103, -104, -102, -95, -85, -72, -55, -37, -18, 1, + 19, 34, 47, 57, 62, 62, 56, 43, 28, 10, -8, -25, -39, -52, -60, -65, + -66, -62, -53, -42, -25, -9, 8, 24, 39, 51, 62, 72, 80, 86, 90, 90, + 89, 86, 82, 77, 73, 70, 66, 62, 58, 53, 47, 40, 33, 24, 15, 6, + -2, -8, -14, -19, -25, -32, -40, -49, -58, -67, -72, -103, -18, -76, 0, 0, + 0, 0, 1, 2, 3, 5, 6, 0, -7, -8, -15, -9, 10, 8, 17, 33, + 14, 5, 38, 44, 31, 63, 70, 51, 73, 82, 68, 85, 100, 96, 97, 103, + 115, 114, 112, 127, 122, 110, 116, 113, 109, 120, 120, 118, 113, 91, 93, 109, + 97, 98, 115, 110, 109, 120, 112, 94, 75, 63, 69, 72, 64, 64, 59, 45, + 39, 36, 35, 42, 42, 24, 5, 2, 3, 4, 7, 9, 11, 14, 17, 19, + 14, -3, -20, -26, -30, -26, -24, -31, -32, -34, -40, -39, -33, -34, -45, -56, + -60, -66, -64, -55, -60, -62, -56, -59, -58, -50, -56, -70, -73, -76, -86, -77, + -70, -80, -76, -71, -77, -71, -66, -76, -85, -82, -90, -95, -80, -82, -92, -85, + -86, -94, -85, -79, -86, -92, -90, -94, -101, -92, -85, -90, -84, -77, -78, -74, + -73, -85, -86, -85, -95, -85, -77, -90, -88, -83, -94, -93, -83, -81, -81, -86, + -89, -89, -94, -88, -77, -77, -71, -59, -58, -59, -63, -72, -74, -77, -73, -61, + -67, -72, -67, -73, -80, -74, -68, -60, -56, -65, -70, -67, -72, -66, -52, -49, + -40, -27, -27, -32, -39, -47, -50, -42, -30, -31, -34, -32, -38, -46, -46, -43, + -35, -20, -16, -24, -30, -30, -31, -24, -13, -6, 4, 13, 11, 3, -5, -9, + -2, 12, 15, 15, 16, 9, 3, -2, -5, -1, 12, 24, 30, 29, 20, 17, + 22, 25, 30, 41, 47, 49, 46, 37, 32, 41, 52, 54, 60, 61, 52, 48, + 45, 36, 35, 43, 51, 60, 67, 69, 60, 57, 63, 63, 64, 73, 75, 72, + 69, 63, 67, 78, 78, 82, 89, 80, 73, 76, 67, 60, 64, 67, 73, 79, + 83, 88, 82, 75, 80, 81, 77, 83, 83, 76, 74, 77, 83, 85, 86, 94, + 89, 80, 82, 78, 69, 68, 68, 69, 78, 80, 81, 90, 83, 73, 79, 77, + 70, 73, 70, 62, 65, 73, 75, 76, 84, 82, 70, 71, 69, 59, 57, 54, + 48, 53, 63, 64, 68, 76, 66, 57, 58, 51, 42, 40, 33, 28, 37, 46, + 49, 55, 56, 42, 37, 37, 27, 22, 20, 10, 4, 8, 15, 24, 30, 31, + 24, 14, 8, -3, -14, -21, -26, -26, -15, -4, -1, -4, -13, -21, -26, -34, + -39, -42, -50, -57, -63, -66, -60, -47, -43, -48, -51, -57, -66, -75, -82, -88, + -91, -88, -78, -74, -81, -86, -85, -92, -101, -100, -102, -109, -109, -110, -112, -113, + -115, -109, -106, -113, -113, -107, -110, -110, -106, -108, -112, -109, -110, -114, -111, -98, + -95, -98, -93, -93, -98, -94, -89, -81, -69, -65, -71, -73, -73, -77, -73, -62, + -56, -48, -40, -41, -45, -47, -47, -37, -20, -11, -4, 5, 4, 3, 6, 9, + 16, 30, 39, 47, 51, 44, 40, 45, 47, 50, 59, 64, 66, 68, 65, 65, + 75, 80, 78, 87, 95, 91, 93, 98, 96, 98, 104, 100, 96, 99, 104, 101, + 100, 106, 107, 105, 108, 109, 109, 110, 111, 110, 101, 87, 82, 84, 81, 82, + 88, 89, 90, 91, 85, 71, 57, 49, 48, 51, 52, 55, 59, 58, 58, 60, + 61, 61, 57, 42, 24, 14, 7, 5, 9, 11, 15, 20, 21, 19, 11, -3, + -18, -27, -33, -31, -25, -24, -21, -16, -16, -14, -11, -17, -29, -40, -49, -59, + -61, -55, -54, -52, -45, -42, -41, -41, -48, -59, -65, -72, -81, -79, -72, -73, + -69, -62, -61, -59, -60, -69, -76, -79, -87, -92, -84, -81, -82, -76, -72, -71, + -67, -66, -72, -79, -81, -87, -94, -92, -87, -86, -82, -76, -75, -75, -78, -85, + -87, -91, -96, -91, -82, -83, -80, -74, -74, -71, -64, -64, -68, -73, -77, -81, + -87, -88, -82, -79, -76, -70, -69, -72, -76, -80, -84, -87, -82, -71, -67, -64, + -58, -57, -55, -49, -43, -39, -40, -47, -54, -58, -64, -66, -61, -58, -54, -49, + -50, -55, -59, -63, -65, -58, -45, -38, -32, -25, -24, -23, -18, -13, -5, 3, + 4, -2, -11, -17, -23, -26, -23, -20, -18, -15, -18, -24, -28, -28, -21, -7, + 3, 11, 18, 20, 19, 22, 24, 30, 40, 47, 51, 49, 40, 32, 28, 24, + 23, 25, 25, 23, 20, 15, 15, 23, 34, 43, 51, 59, 59, 58, 59, 58, + 60, 67, 73, 78, 84, 85, 78, 71, 68, 63, 60, 60, 57, 53, 50, 50, + 56, 65, 70, 76, 84, 84, 81, 81, 79, 76, 79, 84, 87, 91, 96, 98, + 94, 88, 85, 81, 76, 73, 70, 66, 66, 70, 76, 80, 84, 91, 92, 87, + 86, 83, 78, 76, 78, 81, 85, 88, 91, 96, 93, 86, 83, 78, 71, 68, + 64, 61, 64, 71, 74, 78, 84, 86, 80, 76, 72, 64, 59, 56, 55, 59, + 66, 69, 74, 79, 76, 69, 64, 57, 48, 43, 39, 39, 45, 52, 56, 62, + 63, 55, 47, 41, 31, 21, 15, 8, 5, 9, 16, 24, 31, 35, 33, 26, + 19, 10, 0, -6, -9, -7, -7, -13, -17, -22, -26, -31, -34, -37, -40, -42, + -44, -46, -48, -50, -51, -54, -56, -58, -61, -64, -67, -70, -74, -78, -82, -86, + -90, -93, -97, -99, -102, -104, -106, -108, -109, -110, -111, -112, -113, -113, -114, -114, + -115, -115, -115, -115, -115, -114, -113, -111, -109, -107, -104, -100, -97, -93, -90, -87, + -84, -82, -80, -78, -76, -74, -73, -71, -69, -67, -65, -61, -58, -53, -48, -42, + -35, -28, -21, -13, -6, 1, 8, 15, 21, 26, 31, 35, 38, 41, 44, 46, + 48, 50, 52, 55, 58, 61, 64, 68, 72, 76, 80, 83, 87, 90, 92, 94, + 96, 98, 99, 100, 101, 102, 102, 103, 103, 103, 103, 104, 103, 103, 103, 102, + 101, 99, 97, 94, 92, 88, 85, 81, 78, 74, 71, 67, 64, 61, 58, 55, + 53, 51, 49, 47, 46, 44, 42, 40, 37, 34, 30, 26, 22, 17, 12, 8, + 3, -1, -5, -9, -13, -16, -20, -23, -26, -29, -31, -33, -35, -37, -38, -40, + -42, -44, -46, -48, -51, -54, -56, -59, -61, -64, -65, -67, -69, -70, -72, -74, + -75, -77, -78, -80, -81, -82, -83, -84, -85, -86, -86, -87, -88, -89, -90, -90, + -91, -92, -92, -92, -92, -92, -92, -91, -91, -92, -92, -92, -93, -93, -94, -94, + -94, -95, -95, -95, -95, -95, -95, -95, -95, -95, -94, -93, -92, -91, -90, -89, + -87, -86, -85, -85, -85, -84, -84, -85, -85, -85, -85, -85, -85, -85, -85, -85, + -84, -83, -82, -81, -79, -77, -75, -73, -70, -68, -65, -63, -62, -60, -59, -59, + -59, -59, -59, -59, -59, -60, -59, -59, -59, -58, -57, -55, -53, -50, -47, -44, + -40, -36, -32, -29, -25, -22, -20, -18, -17, -16, -15, -15, -16, -16, -16, -16, + -16, -16, -15, -13, -11, -9, -6, -2, 2, 6, 10, 15, 19, 22, 26, 29, + 31, 33, 35, 36, 36, 36, 36, 35, 35, 35, 35, 35, 36, 38, 40, 42, + 45, 48, 52, 55, 58, 61, 64, 67, 70, 72, 73, 74, 75, 76, 76, 76, + 75, 75, 74, 74, 74, 74, 74, 75, 77, 78, 80, 82, 83, 85, 87, 89, + 90, 91, 92, 93, 94, 94, 94, 94, 94, 93, 93, 92, 91, 91, 90, 90, + 90, 90, 91, 91, 92, 92, 93, 93, 94, 94, 94, 94, 94, 94, 94, 94, + 93, 93, 92, 92, 91, 90, 89, 88, 87, 87, 86, 86, 85, 85, 85, 84, + 84, 83, 83, 82, 81, 80, 79, 78, 77, 77, 76, 75, 74, 72, 71, 70, + 68, 67, 65, 64, 63, 61, 60, 58, 57, 55, 53, 50, 48, 45, 43, 40, + 38, 36, 34, 32, 30, 29, 27, 25, 23, 21, 19, 17, 14, 12, 9, 6, + 3, 0, -4, -8, -12, -17, -21, -25, -29, -33, -36, -39, -42, -45, -47, -49, + -51, -53, -55, -58, -60, -63, -65, -68, -71, -74, -77, -81, -84, -87, -91, -94, + -97, -99, -102, -104, -105, -107, -108, -109, -110, -111, -111, -112, -112, -113, -113, -113, + -113, -113, -113, -112, -111, -109, -107, -105, -102, -99, -96, -93, -90, -87, -84, -82, + -79, -77, -75, -73, -70, -69, -66, -64, -60, -58, -53, -49, -44, -39, -32, -27, + -19, -14, -8, -3, 3, 11, 22, 10, 8, 1, 1, 1, 1, 1, 2, 2, + 2, 2, 3, 3, 3, 3, 4, 4, 5, 5, 6, 5, 6, 6, 6, 6, + 6, 6, 7, 5, 7, 5, 6, 4, 6, 4, 4, 4, 4, 3, 3, 2, + 3, 1, 3, -2, 2, 0, 0, 0, 0, -2, -1, -2, -3, -3, 0, -5, + -1, -2, -2, -2, -1, 0, -3, -1, -1, 0, 1, -1, 0, -1, 0, 0, + 1, 0, 0, 1, -1, 1, -1, 1, -2, -1, -3, 0, -2, -1, -2, -2, + -2, -3, -2, -3, -4, -5, -6, -5, -9, -8, -9, -9, -9, -11, -10, -13, + -14, -14, -15, -16, -15, -17, -19, -19, -21, -18, -21, -20, -22, -20, -24, -21, + -22, -19, -20, -21, -17, -19, -16, -17, -15, -17, -13, -11, -10, -7, -5, -3, + 2, 6, 4, 8, 9, 18, 14, 31, 25, 24, 25, 24, 21, 13, 15, 15, + 11, 9, 1, 4, -20, -18, -38, -44, -57, -57, -55, -55, -52, -55, -46, -47, + -40, -32, -26, -19, -16, -2, 3, 13, 19, 28, 30, 37, 40, 44, 39, 38, + 35, 34, 37, 41, 48, 51, 53, 58, 61, 70, 74, 76, 76, 80, 81, 86, + 83, 83, 78, 78, 73, 69, 65, 55, 47, 40, 36, 29, 23, 16, 14, 8, + -2, -4, -11, -11, -19, -22, -26, -25, -34, -39, -40, -41, -45, -49, -51, -57, + -56, -58, -59, -66, -70, -70, -72, -65, -64, -59, -53, -49, -45, -34, -29, -21, + -15, -10, -6, -6, -3, -4, 2, 3, 3, 3, -1, -3, -11, -11, -13, -16, + -22, -24, -27, -32, -34, -37, -35, -31, -30, -26, -25, -22, -21, -15, -13, -15, + -10, -12, -12, -7, 2, 15, 22, 27, 24, 28, 22, 22, 21, 22, 17, 13, + 14, 9, 5, 2, -8, -12, -16, -14, -17, -17, -17, -17, -14, -8, -3, -3, + 0, 5, 3, 5, 6, 3, -2, -6, -9, -11, -13, -18, -19, -29, -42, -61, + -72, -79, -81, -83, -82, -79, -76, -65, -54, -42, -33, -24, -14, 0, 18, 33, + 48, 62, 75, 87, 93, 99, 100, 102, 102, 104, 102, 100, 100, 96, 93, 95, + 96, 105, 109, 112, 111, 110, 106, 106, 104, 102, 97, 93, 85, 80, 71, 60, + 48, 36, 26, 12, 0, -5, -13, -21, -28, -31, -36, -42, -49, -53, -56, -59, + -61, -63, -64, -64, -63, -67, -70, -77, -75, -77, -78, -79, -80, -81, -80, -75, + -69, -64, -57, -50, -43, -35, -26, -16, -6, 6, 13, 17, 22, 26, 25, 27, + 27, 26, 23, 19, 11, 5, -5, -12, -19, -24, -31, -37, -42, -45, -50, -49, + -48, -47, -43, -41, -38, -38, -37, -35, -35, -37, -42, -40, -33, -27, -20, -12, + -11, -13, -10, -9, -10, -10, -10, -13, -11, -9, -8, -11, -13, -16, -18, -17, + -15, -15, -14, -12, -8, -3, 3, 8, 16, 22, 25, 31, 34, 36, 36, 34, + 31, 25, 23, 24, 26, 23, 13, -1, -16, -29, -38, -45, -51, -56, -57, -54, + -48, -39, -34, -29, -20, -10, 0, 13, 27, 39, 54, 68, 79, 87, 92, 94, + 96, 94, 92, 89, 87, 82, 76, 72, 71, 74, 76, 81, 83, 83, 84, 84, + 85, 85, 82, 81, 82, 80, 75, 71, 66, 57, 46, 34, 24, 15, 5, -2, + -8, -13, -19, -26, -31, -37, -41, -44, -48, -53, -54, -53, -54, -54, -57, -61, + -64, -67, -70, -72, -75, -77, -79, -79, -76, -73, -70, -63, -58, -53, -47, -38, + -29, -21, -13, -6, 0, 4, 7, 7, 8, 8, 6, 5, -1, -8, -15, -22, + -30, -36, -41, -47, -51, -54, -56, -58, -59, -56, -50, -45, -42, -37, -31, -26, + -23, -23, -23, -24, -21, -14, -6, 2, 8, 12, 15, 18, 21, 20, 20, 20, + 20, 21, 23, 22, 18, 13, 10, 8, 6, 5, 4, 3, 2, 2, 4, 7, + 10, 13, 18, 22, 24, 26, 28, 27, 21, 14, 8, 5, 4, 2, -3, -12, + -24, -37, -50, -59, -67, -76, -80, -79, -75, -69, -61, -55, -47, -38, -27, -15, + -2, 11, 27, 43, 58, 71, 82, 90, 94, 96, 98, 98, 98, 95, 89, 84, + 81, 79, 81, 85, 88, 89, 91, 92, 92, 90, 89, 89, 88, 85, 82, 79, + 75, 67, 58, 48, 37, 25, 14, 4, -4, -10, -17, -24, -31, -37, -42, -47, + -51, -56, -59, -59, -59, -59, -61, -63, -65, -67, -70, -72, -74, -76, -78, -78, + -78, -75, -70, -66, -61, -56, -50, -41, -33, -23, -14, -6, 2, 10, 16, 19, + 21, 23, 24, 24, 22, 19, 13, 7, 0, -6, -14, -20, -25, -27, -32, -37, + -39, -39, -38, -36, -33, -30, -27, -22, -19, -19, -20, -23, -24, -22, -18, -13, + -8, -4, 0, 2, 5, 6, 5, 3, 2, 4, 6, 6, 5, 1, -2, -6, + -8, -9, -10, -11, -13, -12, -12, -11, -9, -4, 0, 4, 8, 13, 18, 20, + 19, 14, 10, 6, 4, 4, 4, 0, -8, -17, -28, -38, -49, -60, -68, -72, + -72, -70, -65, -59, -54, -46, -37, -27, -17, -5, 8, 22, 37, 51, 66, 77, + 84, 88, 91, 93, 94, 94, 91, 85, 79, 75, 74, 76, 77, 80, 83, 85, + 85, 85, 86, 86, 85, 85, 85, 83, 81, 77, 70, 64, 55, 44, 32, 22, + 13, 6, -1, -9, -16, -22, -27, -32, -38, -43, -46, -47, -47, -47, -48, -49, + -49, -50, -52, -54, -56, -59, -62, -64, -66, -65, -64, -61, -59, -56, -53, -48, + -41, -33, -25, -17, -10, -2, 4, 9, 13, 15, 16, 17, 17, 15, 11, 7, + 1, -7, -15, -22, -27, -33, -38, -43, -47, -49, -50, -50, -49, -46, -42, -37, + -31, -28, -28, -29, -30, -29, -26, -22, -17, -13, -8, -3, 2, 6, 7, 6, + 5, 6, 8, 10, 12, 11, 8, 5, 3, 1, -1, -2, -3, -4, -6, -7, + -6, -3, 0, 1, 5, 10, 16, 20, 21, 19, 15, 10, 8, 6, 6, 4, + 0, -5, -12, -22, -33, -45, -57, -65, -70, -72, -70, -68, -64, -58, -51, -44, + -36, -24, -13, -2, 11, 27, 43, 58, 70, 78, 83, 88, 92, 96, 97, 93, + 89, 85, 81, 80, 81, 83, 86, 88, 90, 91, 91, 91, 91, 91, 91, 91, + 89, 86, 83, 79, 72, 63, 52, 41, 30, 21, 13, 4, -5, -11, -17, -23, + -31, -38, -44, -47, -49, -50, -52, -54, -55, -57, -57, -58, -60, -63, -66, -69, + -72, -74, -73, -72, -70, -69, -67, -64, -59, -53, -45, -37, -30, -22, -14, -7, + -2, 3, 8, 10, 12, 12, 13, 12, 8, 3, -4, -10, -16, -21, -27, -33, + -37, -41, -44, -46, -48, -48, -45, -48, -43, -37, -33, -31, -32, -33, -32, -29, + -26, -22, -18, -12, -5, 1, 6, 9, 9, 9, 9, 11, 14, 16, 16, 14, + 12, 8, 5, 3, 2, 1, -1, -3, -4, -4, -2, -1, 2, 5, 11, 18, + 24, 27, 27, 24, 20, 17, 15, 13, 11, 9, 5, -1, -10, -22, -35, -49, + -61, -70, -75, -77, -76, -73, -69, -63, -56, -47, -36, -25, -13, 0, 16, 34, + 52, 67, 79, 88, 95, 101, 106, 109, 108, 105, 100, 95, 92, 90, 91, 93, + 96, 99, 100, 101, 101, 101, 101, 101, 101, 100, 97, 95, 91, 85, 78, 67, + 55, 43, 31, 21, 11, 1, -7, -14, -21, -29, -37, -45, -51, -54, -56, -58, + -60, -62, -64, -65, -66, -67, -69, -72, -76, -80, -82, -84, -83, -82, -80, -79, + -77, -73, -67, -60, -51, -42, -34, -25, -16, -8, -2, 4, 9, 12, 13, 14, + 14, 13, 9, 3, -5, -12, -18, -25, -31, -37, -42, -47, -50, -53, -54, -53, + -48, -41, -36, -32, -31, -31, -32, -31, -28, -25, -22, -17, -12, -5, 1, 1, + -2, -1, -9, -9, -6, 5, 6, -1, -10, 8, 24, 11, -2, -14, -9, -15, + -13, 5, 14, 12, -6, -1, -12, 1, -9, 12, 12, 10, 5, -19, -11, -13, + -2, 8, 5, 1, -2, -3, 9, -6, 6, 5, 6, -3, -17, -7, 3, 2, + -1, 0, 7, -7, 5, 4, 6, -18, -24, 6, 20, -1, -4, -1, 10, 3, + -10, 8, 7, -11, -17, -15, 5, 18, 4, 1, 8, -16, -4, 0, 11, 9, + -10, -15, 0, -22, -12, 19, 34, 16, -9, -16, -7, -12, -10, 13, 23, -1, + -10, -2, -3, -11, 13, 7, -6, -9, 3, 11, -10, -18, 12, 22, 7, -27, + -29, -4, 20, 20, 10, 8, -16, -26, -6, 22, 21, 7, 15, 8, -50, -50, + -7, 35, 22, -13, 32, 41, -33, -46, -10, 23, -7, -25, 23, 21, -38, -36, + 14, 44, 2, 2, 34, -14, -51, -29, 11, 19, 7, 22, 13, -23, -21, -8, + -9, 1, 14, 26, 26, -8, -34, -33, 4, 1, -6, -2, 16, -7, -23, 12, + 27, 5, 6, 6, 0, -8, 0, -1, -17, -13, -12, 3, 9, 4, 11, 23, + 36, 0, -43, -16, 4, -21, -26, 27, 16, -25, 3, 65, 4, -34, 24, -10, + -38, -14, 13, 4, -15, 36, 44, -42, -51, 20, -5, -6, 68, 20, -18, -39, + -11, 9, 17, 6, -33, -20, -13, 48, 30, 22, -4, -9, -53, -20, 32, 32, + -16, 17, -11, -36, -8, -5, 39, 28, 33, 21, -64, -48, 3, -22, 15, 62, + -26, 0, 3, 5, 73, -14, -48, -20, -59, 4, 70, 60, -7, -2, -88, -22, + -17, 39, 17, 33, -3, 15, 28, -47, -80, -37, 5, 7, 104, 16, -99, -92, + -36, 109, 78, 26, -15, -92, -21, 62, 48, -51, -81, -25, 55, 63, 35, 21, + -115, -54, 101, 73, -41, -110, -66, 50, 107, 45, -8, -109, -38, 12, 102, 3, + 17, -45, -2, -36, 39, 46, -12, -28, -27, -17, 17, -18, 82, -5, -3, -25, + -5, -14, 15, 9, -3, -17, -6, 2, 7, -36, -13, 6, 21, -23, -20, 16, + -18, 3, -2, 26, 0, 13, -23, -2, -19, -28, -18, 15, 12, 22, -4, 23, + -17, -22, -9, -18, -4, 11, 13, 0, 34, -16, -20, 26, 23, 15, -4, -25, + 7, 8, -9, 8, 44, 1, -40, 17, -32, 9, -30, -52, 52, 3, 2, -21, + 83, 58, -14, -46, -61, -12, -67, -20, 64, 72, 57, -10, 5, 1, -77, 31, + -47, -39, 12, 22, 57, 28, 0, 9, -76, 15, -74, 33, -12, 39, 114, -35, + -36, -38, -23, 27, -21, 14, 56, 47, 6, -72, -61, -4, 18, -4, 19, 13, + 45, 71, 48, -1, -125, -52, -56, -20, -18, -12, 51, 78, 68, -46, 32, -40, + -29, -28, -81, -25, 75, 42, 58, -38, 1, -29, -34, 31, -36, -14, 10, 64, + 37, 2, -31, -72, -17, -33, 30, -52, -54, 25, 43, 70, 81, -9, -73, 4, + -65, 15, -28, 25, 0, 28, 19, 51, -26, 6, 0, -37, -15, -22, -20, -16, + -5, 50, 56, 67, 25, 16, -35, -29, -14, -39, 19, -24, -52, -13, -32, -10, + 39, 33, 59, 6, 37, 55, 11, -9, -35, -15, -57, -56, -36, -34, 19, 19, + 6, 20, 17, -11, 5, 26, 19, 16, 7, -20, -26, -55, -62, -36, -18, 19, + 37, 47, 25, -6, -14, 1, -4, -13, 12, 23, 34, 38, 41, 33, 31, -10, + -56, -52, -49, -31, -40, -21, -12, 0, 5, 12, 22, 22, 21, 31, 12, 2, + -8, -4, -18, -7, 3, 1, -1, 11, 12, 18, 17, 9, -2, -12, -13, -11, + -1, 8, 3, 3, 2, 5, -5, -16, -15, -13, -8, -12, -9, -2, -1, 2, + 7, 10, 7, 11, 14, 7, -1, -4, 5, -3, -2, 0, -6, -10, -1, -5, + 3, 9, 0, -8, -9, -6, -6, 0, 6, 3, 6, 7, 10, 0, -8, -3, + -5, -1, -8, -7, -4, -3, -3, 0, -1, -6, 2, 7, 7, 5, 4, 10, + 5, 8, -1, -11, -15, -11, -15, -10, -1, -8, -12, -5, 1, 3, 6, 8, + 11, 18, 22, 26, 10, -10, -1, -15, -3, -21, -16, -14, -12, -7, -8, -18, + -20, -11, 9, 20, 27, 26, 11, 1, 21, 6, 3, -9, -15, -9, -20, 3, + 5, 21, 14, 6, 11, -21, -22, -6, -21, -23, -18, 11, 6, 5, 21, 9, + 23, 16, -3, -30, -7, -27, -4, 5, 18, 22, 16, 2, 7, -1, -2, -10, + -14, -10, -17, -10, -15, -16, 3, 12, 30, 18, -1, -6, -15, -3, 5, 11, + -18, -2, 8, 21, 11, -13, -4, -30, -7, 0, 12, 25, -3, 17, 14, -20, + -6, -27, -41, -11, -12, 23, -8, 13, 24, 18, 27, -11, -8, -12, -2, 17, + 23, 13, -20, -21, -2, -21, -34, -46, -23, 28, 48, 9, -10, 8, 29, 27, + 5, -29, -12, 13, -5, -2, -35, 1, 3, 24, 13, 17, -18, -30, -21, 14, + -1, 6, -8, 48, 45, -7, -34, -49, -32, -6, -26, 20, 29, 76, 30, -21, + -66, -36, -15, 40, -5, 29, 3, 10, -39, -25, -2, 24, 19, 19, -4, -8, + 3, -22, -23, -18, 13, 17, -3, -25, 23, 66, 26, -18, -27, -34, -30, -30, + 36, 25, 28, -22, -17, -7, -22, 21, 18, 42, 8, -25, -28, -31, -10, 15, + 18, 0, -1, -5, 16, -12, 13, 13, 12, -8, -37, -9, 13, -5, 8, -3, + 13, -8, 4, 24, -16, -43, -18, 26, 26, -11, -9, 19, 9, -15, 9, 15, + -12, -31, -27, 8, 29, 5, 7, 17, -33, -14, 14, 23, -1, -18, -18, -4, + -35, -17, 47, 71, -16, -20, -11, -16, -25, 6, 37, 14, -18, 1, -8, -14, + 10, 14, 2, -20, 0, 20, -10, -25, 14, 32, 7, -39, -38, -3, 34, 25, + 13, 3, -24, -34, 5, 38, 18, 7, 29, -30, -74, -41, 36, 40, -12, 26, + 55, -17, -59, -26, 28, -2, -31, 24, 25, -44, -39, 21, 44, -1, 10, 33, + -34, -50, -12, 18, 13, 20, 17, -6, -31, -10, -6, -1, 7, 12, 14, 6, + -16, -24, 6, 9, -16, -16, 6, 2, -10, 13, 12, -10, 0, 11, 11, 10, + -3, -22, -22, -12, -7, 19, 17, -2, -12, 6, 16, 7, -11, -1, -20, -22, + -8, 26, 16, -3, 12, 1, -33, 2, 30, -23, -5, 28, -17, -19, 21, 9, + -28, -14, 25, -1, 4, 24, 0, -26, -9, 7, 2, -2, 20, -10, -11, 5, + -3, -4, 8, -9, 14, 18, 25, -22, -15, -22, -3, -12, 27, 30, 15, -11, + -26, -4, 15, -7, -14, 23, -23, -4, 34, -2, -38, 14, -11, -24, 16, 34, + 11, -13, 3, -3, -19, -34, 0, -3, 24, 43, 1, -12, -38, -25, -11, 23, + 35, 12, -28, -25, -16, 7, 22, 1, -10, 8, 8, -3, 6, -24, -20, -13, + 9, 31, 12, -16, 7, -29, 5, 8, -28, 3, 4, 12, 26, -9, -15, -5, + -20, 9, 21, 0, 1, -9, 0, 8, -3, -7, -9, -3, 22, 8, 3, -11, + -9, -11, 3, 15, 9, -10, 1, -3, -3, -2, -5, 9, 0, 12, 7, -15, + -7, 0, -8, 5, 9, -5, 7, -7, 10, 4, -11, -2, -8, -4, 9, 9, + 0, -2, -11, -3, -4, 3, 4, 3, -2, 3, 3, -8, -9, -2, 0, 3, + 5, -1, -10, -7, 2, 8, 3, 0, -5, -5, 2, 4, -2, -5, -3, 2, + 3, 0, 2, -5, -3, 3, 2, -2, -4, -2, 1, 2, 1, 0, 0, 0, + 0, -1, -7, -9, -5, 0, 2, 2, 5, 6, 0, -11, -13, -5, 3, 1, + 0, 0, 1, -3, -9, -6, -1, 5, 3, -3, -5, -3, -1, -4, -3, -1, + 2, -2, -9, -7, -2, -5, -18, -31, -36, -36, -41, -38, -29, -21, -27, -31, + -26, -4, 37, 65, 67, 44, 22, 10, 2, -4, 8, 32, 44, 38, 24, 17, + 9, 4, 3, 12, 26, 32, 32, 23, 16, 7, 1, -7, -13, -8, 1, -5, + -39, -72, -79, -64, -49, -40, -24, -1, 12, 0, -25, -44, -43, -30, -14, 1, + 13, 13, 4, 4, 16, 34, 46, 55, 65, 73, 67, 53, 54, 58, 62, 60, + 51, 38, 33, 20, -7, -27, -40, -46, -55, -58, -41, -9, 7, 8, 2, -26, + -49, -71, -92, -101, -93, -80, -70, -71, -73, -65, -67, -69, -61, -42, -15, 15, + 18, -5, -33, -54, -54, -40, -18, 2, 21, 21, 3, -28, -52, -33, 9, 35, + 33, 30, 34, 45, 46, 43, 54, 63, 65, 61, 56, 43, 45, 59, 77, 96, + 104, 112, 115, 100, 78, 53, 22, -3, -6, 5, 24, 37, 38, 35, 25, 3, + -19, -38, -51, -46, -33, -34, -42, -47, -48, -38, -27, -30, -40, -48, -45, -30, + -24, -38, -44, -43, -47, -34, -13, 7, 27, 30, 9, -18, -38, -22, 19, 47, + 70, 83, 68, 28, -13, -41, -41, -19, -1, 10, 8, 4, 4, -7, -12, 6, + 32, 42, 31, 0, -39, -71, -99, -115, -111, -85, -56, -46, -61, -74, -66, -45, + -22, 4, 21, 27, 25, 1, -30, -51, -37, 4, 37, 40, 26, 17, 12, 12, + 5, 1, 2, 12, 29, 43, 44, 45, 54, 45, 28, 10, 13, 26, 32, 43, + 59, 67, 62, 60, 66, 72, 61, 34, 11, 0, 1, -6, -18, -12, 19, 47, + 51, 32, 9, -8, -22, -26, -27, -30, -29, -12, 7, 18, 13, -1, -11, -11, + 5, 16, 14, 11, 5, -19, -47, -54, -29, 13, 37, 42, 33, 9, -17, -31, + -21, 14, 61, 81, 68, 39, 4, -26, -46, -38, -17, -1, 1, -4, -14, -25, + -23, -4, 24, 43, 49, 37, 4, -48, -97, -123, -116, -89, -66, -65, -73, -67, + -64, -66, -69, -46, 3, 36, 27, -3, -25, -39, -38, -39, -36, -24, -9, 5, + 13, 13, 4, -1, -13, -15, 0, 22, 47, 65, 76, 67, 35, 3, -4, 6, + 27, 47, 58, 68, 72, 73, 72, 66, 59, 62, 61, 49, 28, -5, -30, -27, + 9, 40, 51, 46, 40, 28, 1, -30, -56, -57, -41, -13, 5, 12, 7, -11, + -38, -54, -40, -16, 12, 23, 13, -16, -49, -62, -55, -29, 4, 38, 45, 28, + -5, -36, -36, -5, 39, 68, 77, 73, 55, 8, -35, -46, -29, -15, -15, -16, + -12, -9, -23, -30, -18, 16, 48, 51, 24, -18, -45, -72, -96, -111, -101, -80, + -67, -71, -79, -77, -70, -46, -22, -7, -4, -5, -4, -2, -15, -37, -43, -42, + -27, -5, 9, 27, 38, 27, 4, -14, -15, 6, 30, 61, 93, 90, 52, 16, + 2, 1, 5, 11, 34, 64, 79, 71, 48, 35, 43, 61, 59, 46, 27, 1, + -22, -33, -25, -9, 15, 37, 56, 54, 28, -10, -44, -58, -49, -27, -8, 20, + 29, 0, -42, -66, -60, -34, -7, 16, 30, 15, -20, -50, -64, -49, -11, 21, + 34, 34, 17, -7, -31, -29, 3, 43, 69, 78, 73, 45, 10, -20, -32, -33, + -26, -12, -6, -18, -41, -44, -27, -6, 10, 17, 19, 18, -4, -49, -87, -108, + -100, -84, -87, -93, -83, -67, -54, -45, -45, -35, -23, -13, 6, 17, 14, 1, + -22, -40, -35, -18, 2, 28, 57, 63, 33, -7, -21, -4, 23, 57, 89, 102, + 94, 68, 37, 8, -4, 4, 37, 71, 88, 79, 54, 46, 55, 62, 55, 53, + 54, 46, 20, -14, -40, -41, -16, 15, 44, 60, 59, 30, -21, -61, -70, -54, + -26, 10, 29, 19, -16, -49, -63, -58, -33, 4, 29, 26, -1, -33, -49, -50, + -34, -9, 16, 34, 34, 9, -20, -25, -9, 13, 29, 54, 87, 91, 56, 11, + -12, -11, -12, -20, -22, -17, -11, -12, -22, -25, -15, 3, 19, 19, 9, -11, + -38, -62, -76, -92, -107, -109, -95, -68, -53, -49, -49, -58, -63, -48, -25, -5, + 12, 12, -7, -36, -56, -56, -32, 8, 50, 64, 36, 6, -10, -15, -11, 9, + 47, 94, 118, 100, 58, 14, -3, 3, 19, 44, 72, 83, 78, 75, 66, 53, + 45, 52, 66, 70, 52, 22, -8, -36, -36, -14, 21, 63, 84, 63, 14, -29, + -55, -54, -42, -12, 28, 40, 14, -24, -52, -58, -42, -22, 6, 19, 16, -5, + -34, -49, -43, -24, -12, 2, 14, 22, 10, -10, -20, -16, 3, 28, 60, 72, + 61, 42, 25, 1, -26, -44, -46, -31, -25, -26, -32, -30, -24, -12, -12, -15, + 0, 6, -3, -23, -47, -79, -112, -128, -115, -84, -61, -45, -42, -51, -64, -68, + -61, -33, 9, 29, 12, -28, -54, -64, -56, -30, 9, 36, 41, 34, 10, -18, + -38, -29, 13, 70, 105, 106, 79, 48, 31, 12, -1, 12, 51, 78, 89, 87, + 75, 66, 49, 44, 56, 73, 79, 66, 23, -23, -42, -39, -9, 31, 65, 75, + 52, 7, -32, -54, -57, -30, 3, 24, 19, 2, -18, -39, -50, -39, -10, 8, + 10, -2, -12, -18, -21, -29, -33, -16, 11, 28, 17, 1, -4, 3, -3, -6, + 13, 42, 64, 67, 56, 29, 2, -21, -36, -42, -40, -25, -15, -10, -7, -10, + -27, -38, -24, 2, 19, 14, -6, -44, -86, -115, -121, -109, -81, -45, -27, -36, + -58, -76, -81, -53, -13, 11, 8, -11, -24, -40, -58, -62, -30, 11, 42, 44, + 17, -15, -36, -38, -22, 15, 53, 84, 88, 73, 52, 19, -6, -9, 13, 44, + 71, 88, 93, 79, 54, 42, 46, 67, 82, 79, 54, 20, -10, -28, -27, 0, + 46, 70, 61, 29, 2, -18, -38, -45, -23, 7, 16, 10, -8, -22, -26, -30, + -32, -23, -13, -2, 6, -6, -15, -16, -18, -20, -9, 0, 2, 11, 19, 17, + -2, -21, -12, 14, 33, 50, 65, 61, 43, 19, -17, -44, -50, -42, -21, 1, + 11, 1, -31, -56, -45, -22, -1, 17, 18, -4, -44, -95, -126, -123, -95, -56, + -36, -41, -51, -59, -68, -60, -38, -15, 5, 14, 7, -17, -47, -61, -37, 1, + 27, 33, 24, 7, -13, -30, -43, -26, 13, 47, 70, 74, 68, 48, 12, -19, + -14, 14, 46, 74, 81, 75, 64, 52, 48, 56, 67, 82, 78, 44, 9, -12, + -20, -8, 18, 41, 57, 46, 23, 0, -23, -33, -21, -10, -10, -2, 3, 5, + -2, -19, -33, -32, -24, -16, -11, -14, -6, 7, -2, -20, -25, -16, -6, 6, + 17, 27, 22, 2, -10, -11, 0, 24, 51, 68, 79, 65, 25, -19, -49, -48, + -30, -9, 8, 10, -12, -40, -57, -57, -34, -1, 25, 24, -7, -56, -95, -111, + -102, -84, -69, -57, -44, -42, -59, -74, -71, -47, -17, 0, 3, -6, -21, -37, + -38, -27, -6, 15, 23, 22, 12, -4, -23, -32, -26, 1, 36, 63, 82, 78, + 46, 12, -1, 2, 20, 41, 64, 81, 79, 66, 59, 61, 67, 75, 76, 66, + 49, 27, 5, -7, 2, 24, 41, 44, 38, 28, 13, -5, -19, -21, -17, -11, + -2, 4, 4, -2, -14, -28, -32, -27, -21, -16, -13, -1, 6, -4, -21, -25, + -17, -7, 6, 0, 0, -4, -4, -5, -8, -4, 3, 8, 6, 1, 1, 2, + 3, 3, -2, -7, -11, -10, -5, -2, 4, 6, 0, -2, -5, -4, -4, -9, + -9, -7, -11, -11, -10, -7, 4, 0, -4, -4, -1, 4, 0, -4, -3, -5, + -6, -5, -4, 4, -1, 2, 11, 5, -13, -20, -30, -49, -50, -34, -22, -33, + -27, -20, -17, 0, 34, 70, 73, 42, 3, -26, -37, -25, -1, 25, 48, 71, + 75, 44, 22, 45, 69, 57, 44, 52, 58, 24, -23, -41, -50, -58, -67, -82, + -66, -29, -29, -41, -34, -19, -4, -4, -1, 20, 50, 56, 35, 12, 4, -8, + -15, 4, 28, 44, 46, 34, 17, 2, 0, 11, 28, 42, 22, -28, -51, -45, + -34, -39, -37, -19, -17, -30, -32, -18, -4, 9, 19, 38, 35, 3, -24, -35, + -40, -23, -11, -25, -47, -52, -51, -58, -61, -52, -47, -37, -17, -5, -5, -16, + -31, -24, -11, -1, -3, -23, -40, -48, -40, -12, 15, 25, 17, -5, -2, 14, + 21, 15, -12, -26, -18, -2, 28, 48, 55, 52, 42, 35, 35, 42, 38, 36, + 40, 53, 55, 52, 44, 36, 49, 57, 56, 57, 55, 50, 39, 27, 31, 30, + 15, 11, 12, 6, 4, 14, 28, 23, 1, -6, -17, -35, -44, -41, -33, -22, + -9, -6, -12, -15, -13, -27, -29, -7, 14, -5, -55, -71, -49, -33, -37, -46, + -33, -18, -43, -89, -96, -65, -23, 2, 8, 20, 24, -11, -50, -51, -12, 15, + 4, 1, 20, 47, 53, 43, 52, 77, 98, 114, 110, 100, 88, 53, 10, -29, + -55, -71, -83, -77, -58, -55, -57, -52, -48, -47, -46, -12, 34, 59, 52, 25, + -10, -33, -21, 18, 49, 54, 46, 18, 13, 30, 41, 48, 54, 53, 44, 24, + 1, -13, -25, -43, -38, -28, -35, -55, -71, -64, -40, -13, 10, 24, 38, 41, + 21, -1, -11, 1, 15, 7, -6, -13, -39, -57, -64, -51, -20, -12, -24, -37, + -30, -4, 17, 21, 12, -7, -16, -15, -7, 6, 1, -20, -34, -30, -1, 32, + 44, 36, 22, 25, 21, 6, 1, -2, -13, -5, 19, 28, 24, 12, 11, 16, + 19, 38, 54, 49, 38, 28, 28, 39, 52, 49, 32, 25, 33, 45, 49, 39, + 40, 46, 20, -9, -6, 6, 1, -22, -29, 10, 48, 33, -17, -51, -55, -44, + -49, -50, -36, -33, -57, -84, -71, -21, 11, 13, 4, -1, -8, -32, -45, -32, + -10, 2, -13, -37, -39, -42, -57, -65, -63, -36, -11, 10, 33, 22, -12, -34, + -28, -12, 2, 8, 6, -2, -4, 0, 10, 22, 36, 57, 82, 104, 122, 127, + 109, 70, 17, -28, -45, -36, -20, -33, -68, -102, -114, -103, -76, -45, -20, -7, + -11, -10, -2, 6, 0, -14, -5, 30, 48, 29, 3, -8, 10, 39, 67, 86, + 83, 59, 32, 17, 32, 46, 40, 11, -29, -48, -57, -68, -69, -57, -43, -26, + -13, -2, 1, 1, 3, 4, 8, 21, 20, 11, 3, -2, -6, -26, -39, -33, + -34, -36, -28, -23, -27, -28, -17, -1, 0, -6, -10, -9, -7, -12, -26, -44, + -54, -38, -16, 0, 18, 27, 17, -3, -18, -3, 19, 11, -9, -7, 10, 14, + 5, 5, 18, 29, 29, 12, 16, 38, 43, 14, 2, 24, 55, 59, 33, 17, + 24, 44, 65, 75, 77, 55, 15, -16, -20, 6, 31, 27, 17, 18, 19, 17, + 7, 0, -5, -20, -22, -25, -49, -69, -73, -58, -45, -29, -4, 9, -1, -23, + -51, -52, -24, -2, 11, 12, -16, -51, -75, -77, -67, -59, -59, -54, -35, -15, + -9, -9, -9, -7, -8, -12, -1, 15, 22, 10, -14, -34, -28, -14, 11, 64, + 113, 127, 117, 97, 87, 84, 68, 50, 37, 36, 24, -15, -58, -78, -84, -71, + -40, -14, -12, -34, -48, -41, -14, 20, 37, 35, 16, -6, 1, 14, 15, 20, + 23, 24, 38, 58, 69, 57, 40, 54, 73, 75, 65, 40, -3, -49, -68, -56, + -42, -42, -53, -59, -44, -23, -9, -3, -11, -18, -13, -11, -5, 3, 13, 4, + -25, -39, -22, -14, -16, -27, -38, -37, -42, -55, -51, -21, 8, 10, -8, -12, + -4, -10, -39, -55, -38, -13, -4, -11, -15, -3, 15, 12, 2, 11, 28, 34, + 15, -5, 3, 11, 6, 12, 25, 25, 13, 10, 15, 27, 48, 55, 38, 23, + 17, 23, 32, 23, 32, 57, 75, 75, 52, 22, 10, 5, 12, 28, 33, 23, + 2, -14, -4, 19, 30, 25, 15, 1, -27, -64, -78, -67, -49, -45, -48, -42, + -31, -25, -40, -50, -39, -18, -4, 13, 19, 12, -10, -43, -59, -53, -47, -54, + -61, -51, -20, -2, -12, -23, -25, -18, 5, 33, 51, 45, 16, -16, -46, -53, + -38, -6, 33, 57, 74, 81, 75, 77, 89, 105, 114, 110, 83, 39, -6, -25, + -28, -39, -48, -52, -55, -59, -67, -67, -57, -42, -23, -3, 10, 3, -19, -33, + -30, -8, 20, 23, 2, -18, -17, 12, 40, 58, 65, 65, 66, 71, 64, 54, + 38, 1, -41, -62, -47, -26, -31, -49, -55, -42, -21, -17, -19, -10, -2, -3, + -10, -13, 2, 13, -10, -38, -27, 3, 8, -18, -46, -61, -65, -53, -36, -18, + -5, -6, -14, -22, -18, -12, -19, -29, -28, -21, -10, -15, -24, -18, -4, 16, + 23, 17, 14, 10, 9, 13, 15, 28, 35, 19, 4, 2, -2, 9, 34, 62, + 66, 43, 13, -2, 15, 42, 50, 48, 51, 56, 56, 45, 44, 45, 48, 40, + 33, 31, 27, 10, -10, -4, 16, 41, 52, 48, 31, -1, -36, -56, -50, -27, + -14, -25, -43, -60, -67, -47, -31, -38, -47, -40, -17, 13, 32, 28, -10, -50, + -68, -62, -40, -21, -20, -33, -58, -72, -63, -45, -28, -11, 18, 48, 42, 15, + -14, -43, -54, -40, -15, 4, 2, -5, 0, 20, 55, 91, 113, 120, 109, 89, + 77, 63, 43, 26, 20, 12, -13, -47, -69, -68, -53, -49, -49, -36, -28, -27, + -27, -28, -12, 5, 1, -9, -2, 14, 10, -25, -39, -6, 21, 35, 41, 53, + 73, 82, 74, 64, 54, 39, 9, -23, -37, -30, -22, -30, -52, -62, -54, -32, + -9, 2, 5, -3, -17, -25, -17, -1, 13, 8, -7, -12, -7, -7, -21, -40, + -51, -51, -38, -21, -16, -22, -29, -33, -23, -10, -2, -9, -24, -33, -33, -29, + -21, -8, 3, 2, -10, -18, -11, 8, 26, 32, 27, 21, 14, 7, 1, 3, + 12, 22, 35, 45, 43, 29, 13, 10, 20, 37, 54, 59, 45, 28, 28, 37, + 48, 55, 60, 60, 43, 17, 0, -3, 9, 24, 31, 31, 28, 28, 26, 14, + -5, -22, -31, -30, -21, -7, -8, -34, -63, -82, -80, -63, -45, -28, -14, -5, + 3, 2, -11, -27, -39, -33, -11, 2, -8, -39, -73, -95, -91, -54, -8, 19, + 16, 4, 5, 14, 14, 2, -8, -14, -19, -33, -45, -38, -19, 2, 21, 54, + 93, 106, 90, 74, 80, 97, 98, 76, 52, 34, 10, -18, -37, -36, -27, -35, + -52, -62, -56, -44, -39, -37, -29, -17, -8, -2, 3, 4, -4, -16, -27, -32, + -19, 1, 19, 41, 60, 70, 71, 67, 64, 61, 53, 38, 14, -8, -21, -29, + -34, -38, -39, -29, -15, 0, 5, -5, -19, -25, -16, 5, 19, 17, 6, -3, + -7, 0, -1, 1, -2, -5, 0, 0, 2, 0, -3, -2, 0, 1, 0, -2, + -2, -2, 0, 3, 3, -2, -5, -1, -1, -1, -4, 3, 9, 1, -1, -2, + -11, -7, 1, 9, 11, 8, -4, -11, -12, -9, -4, 18, 15, 14, 1, -22, + -29, -14, 3, 30, 29, 14, -2, -35, -43, -11, 13, 36, 42, 15, -16, -49, + -44, -10, 28, 47, 38, 11, -25, -66, -39, 4, 36, 58, 33, -3, -44, -65, + -29, 19, 52, 54, 23, -13, -59, -65, -15, 32, 69, 49, 8, -30, -74, -51, + 3, 43, 71, 40, -5, -48, -77, -31, 16, 57, 67, 24, -15, -67, -72, -12, + 36, 66, 59, 5, -31, -80, -51, 3, 49, 75, 37, -2, -59, -81, -28, 20, + 67, 66, 22, -23, -76, -65, -10, 41, 78, 48, 4, -36, -85, -47, 6, 59, + 80, 31, -8, -69, -82, -22, 29, 73, 63, 17, -31, -81, -63, -1, 47, 79, + 47, 3, -56, -90, -40, 19, 75, 73, 28, -25, -86, -74, -10, 48, 85, 56, + 6, -51, -93, -48, 11, 67, 86, 33, -11, -78, -87, -29, 36, 89, 66, 13, + -38, -91, -60, 2, 50, 83, 48, 0, -56, -90, -41, 16, 71, 78, 30, -17, + -80, -75, -20, 31, 82, 62, 15, -32, -85, -66, -7, 48, 84, 50, 4, -53, + -87, -44, 8, 62, 78, 35, -8, -65, -83, -30, 23, 70, 71, 24, -20, -76, + -75, -12, 32, 73, 62, 15, -30, -85, -62, -2, 41, 76, 51, 9, -39, -86, + -52, 1, 45, 79, 46, 8, -49, -89, -46, 3, 54, 80, 43, 7, -55, -83, + -50, 0, 53, 76, 54, 11, -52, -83, -55, 0, 40, 67, 58, 22, -32, -79, + -67, -11, 28, 63, 52, 37, -9, -70, -63, -28, 10, 42, 49, 53, 8, -46, + -64, -41, 1, 22, 38, 51, 39, -16, -63, -46, -23, 5, 33, 38, 48, 14, + -42, -57, -29, -5, 22, 37, 40, 28, -23, -53, -39, -10, 14, 30, 40, 31, + -1, -48, -40, -18, 11, 19, 31, 26, 14, -20, -50, -25, -5, 11, 31, 30, + 14, 0, -35, -39, -4, -1, 19, 27, 17, 9, -10, -39, -21, -8, 9, 24, + 26, 13, -5, -19, -30, -12, -1, 17, 25, 16, 3, -19, -26, -13, -6, 17, + 22, 20, 5, -16, -32, -19, -1, 23, 27, 23, 4, -30, -33, -23, -1, 35, + 35, 24, -2, -41, -45, -21, 9, 45, 41, 22, -12, -50, -46, -18, 28, 55, + 45, 10, -27, -78, -42, 0, 53, 66, 32, -1, -61, -74, -28, 27, 64, 64, + 24, -28, -80, -66, -15, 53, 84, 48, 5, -59, -94, -41, 17, 75, 80, 26, + -21, -91, -79, -12, 48, 87, 55, 10, -58, -96, -46, 9, 80, 81, 30, -23, + -84, -80, -15, 49, 90, 49, 9, -57, -95, -45, 17, 76, 79, 26, -20, -91, + -75, -18, 52, 90, 52, 6, -59, -92, -41, 15, 68, 80, 31, -21, -87, -76, + -13, 45, 87, 49, 11, -60, -94, -35, 14, 80, 68, 22, -23, -89, -66, -7, + 47, 93, 44, -8, -61, -95, -31, 24, 86, 75, 10, -35, -96, -66, -1, 61, + 100, 44, -12, -77, -105, -33, 32, 97, 92, 16, -44, -111, -90, -5, 65, 121, + 65, -3, -80, -123, -59, 17, 98, 111, 46, -25, -112, -109, -33, 42, 112, 90, + 30, -55, -115, -84, -17, 66, 105, 71, 13, -73, -113, -61, 0, 77, 96, 56, + 4, -80, -108, -50, 8, 78, 93, 47, 3, -88, -98, -40, 7, 65, 76, 53, + 18, -71, -90, -44, 0, 39, 57, 43, 34, -19, -69, -54, -19, 18, 32, 31, + 34, 7, -40, -36, -21, -1, 12, 12, 25, 27, -9, -32, -14, -14, 2, 0, + 1, 20, 19, -2, -13, -11, -18, -12, -2, 18, 24, 12, -2, -14, -19, -19, + -12, 18, 24, 22, -2, -15, -32, -20, 3, 22, 26, 17, -13, -31, -27, -13, + 17, 33, 32, 5, -29, -47, -29, 2, 33, 42, 32, -6, -53, -52, -24, 22, + 51, 41, 27, -32, -74, -45, 0, 45, 59, 33, -1, -62, -66, -31, 26, 73, + 49, 17, -42, -80, -42, -8, 63, 72, 28, -10, -75, -72, -23, 32, 88, 47, + 13, -56, -93, -38, 10, 76, 69, 26, -20, -96, -66, -10, 48, 90, 47, 0, + -69, -103, -29, 25, 87, 73, 18, -35, -104, -68, -2, 61, 93, 47, -5, -83, + -98, -31, 30, 92, 68, 17, -39, -97, -63, -5, 64, 88, 35, -9, -74, -86, + -22, 31, 85, 54, 13, -44, -93, -46, 9, 65, 75, 23, -17, -75, -78, -15, + 39, 84, 54, 3, -52, -96, -46, 12, 71, 90, 29, -18, -89, -87, -26, 36, + 86, 72, 26, -37, -106, -77, -12, 45, 99, 68, 22, -46, -108, -73, -10, 43, + 87, 69, 19, -27, -92, -79, -12, 27, 63, 57, 26, 4, -53, -75, -35, 12, + 33, 37, 31, 26, -9, -53, -39, -16, 6, 20, 23, 22, 13, -8, -22, -23, + -18, -3, 9, 25, 19, 4, -8, -20, -17, -10, 6, 16, 17, 13, -8, -34, + -21, -6, 17, 33, 23, 6, -32, -51, -23, 11, 36, 46, 31, -11, -46, -65, + -31, 15, 59, 55, 28, -20, -73, -64, -26, 42, 78, 51, 14, -53, -85, -48, + -4, 70, 80, 38, -16, -80, -76, -32, 39, 90, 58, 19, -59, -99, -50, 14, + 71, 75, 36, -21, -94, -70, -23, 51, 88, 53, 9, -68, -97, -40, 16, 83, + 73, 29, -33, -100, -61, -13, 58, 87, 41, 0, -74, -81, -35, 24, 87, 55, + 20, -41, -88, -58, 0, 69, 73, 34, -5, -86, -75, -20, 38, 79, 49, 13, + -48, -90, -39, 2, 71, 68, 31, -16, -84, -67, -15, 38, 79, 42, 12, -50, + -85, -37, 2, 62, 71, 34, -5, -83, -75, -24, 27, 82, 51, 27, -30, -88, + -54, -15, 44, 73, 50, 16, -49, -81, -47, -6, 38, 58, 50, 27, -31, -69, + -52, -13, 15, 36, 45, 33, -5, -41, -44, -23, 2, 14, 27, 33, 10, -25, + -20, -18, -6, 1, -1, 17, 22, 3, -13, -10, -17, -13, -6, 13, 24, 15, + 1, -11, -19, -19, -16, 12, 24, 24, 3, -12, -29, -26, -1, 18, 27, 19, + -4, -31, -28, -19, 11, 30, 35, 12, -21, -46, -35, -6, 28, 42, 36, 5, + -46, -57, -31, 10, 50, 43, 33, -16, -71, -55, -9, 35, 62, 38, 10, -51, + -71, -40, 11, 69, 58, 24, -26, -81, -50, -18, 48, 79, 37, 1, -62, -81, + -32, 16, 84, 59, 20, -37, -96, -50, -2, 63, 78, 33, -4, -85, -80, -20, + 33, 88, 59, 10, -50, -107, -47, 14, 75, 85, 27, -19, -95, -83, -15, 47, + 94, 60, 8, -66, -105, -46, 15, 83, 81, 26, -23, -91, -76, -18, 48, 92, + 47, 1, -59, -94, -36, 18, 78, 66, 19, -27, -91, -60, -3, 53, 80, 35, + -8, -62, -86, -28, 27, 79, 66, 13, -38, -94, -62, 1, 56, 95, 42, -6, + -75, -96, -39, 22, 80, 80, 36, -20, -97, -92, -24, 30, 93, 79, 32, -27, + -102, -87, -22, 31, 81, 79, 29, -14, -81, -91, -25, 19, 56, 63, 31, 11, + -39, -77, -47, 3, 31, 37, 33, 27, 3, -48, -46, -20, 0, 18, 22, 23, + 16, -3, -20, -19, -15, -4, 2, 8, 5, 0, 0, 0, 0, 2, 2, 5, + 9, 12, 14, 12, 7, 6, 4, 0, -1, -1, 1, -2, -2, -11, -17, -32, + -41, -49, -55, -58, -61, -61, -65, -61, -57, -47, -37, -27, -22, -15, -5, 6, + 12, 16, 21, 27, 28, 32, 33, 35, 41, 44, 45, 47, 50, 54, 57, 56, + 53, 53, 54, 50, 50, 52, 54, 56, 52, 53, 54, 50, 49, 46, 43, 38, + 33, 27, 19, 8, 2, -11, -20, -27, -29, -30, -32, -35, -42, -52, -57, -57, + -59, -48, -40, -27, -13, 4, 13, 20, 18, 14, 11, 7, 3, -1, -3, -10, + -11, -20, -28, -46, -60, -72, -82, -92, -97, -97, -97, -94, -90, -81, -71, -61, + -55, -55, -53, -47, -38, -29, -23, -11, -6, -3, 1, 2, 5, 6, 3, 3, + 5, 15, 24, 28, 30, 30, 35, 37, 36, 39, 39, 44, 47, 48, 56, 62, + 73, 84, 91, 96, 95, 91, 85, 76, 72, 63, 55, 47, 44, 43, 41, 38, + 31, 19, 7, 0, -9, -7, -4, 8, 22, 40, 54, 67, 71, 70, 64, 56, + 45, 32, 24, 15, 12, 3, -3, -21, -42, -66, -84, -102, -117, -124, -128, -127, + -124, -118, -107, -96, -86, -86, -88, -86, -80, -70, -63, -50, -40, -33, -25, -23, + -20, -18, -18, -21, -25, -22, -14, -8, -3, -3, -1, 1, 0, 1, -3, -1, + 2, 4, 13, 24, 35, 49, 59, 67, 70, 69, 68, 59, 54, 46, 40, 31, + 29, 27, 25, 23, 20, 12, -1, -9, -19, -22, -21, -11, 3, 23, 41, 60, + 71, 76, 73, 71, 65, 56, 50, 44, 42, 35, 33, 24, 9, -13, -31, -48, + -65, -76, -83, -83, -82, -77, -69, -59, -46, -40, -40, -41, -38, -30, -24, -13, + -2, 8, 17, 22, 24, 25, 23, 20, 13, 9, 11, 15, 19, 16, 12, 9, + 4, 1, -6, -10, -11, -14, -12, -5, 3, 15, 26, 35, 40, 41, 41, 35, + 28, 19, 12, 3, -2, -6, -7, -10, -13, -19, -31, -39, -50, -56, -58, -52, + -41, -22, -3, 18, 34, 46, 48, 47, 45, 38, 32, 26, 24, 20, 19, 15, + 5, -14, -32, -49, -65, -79, -88, -91, -91, -88, -82, -75, -63, -52, -47, -46, + -46, -38, -31, -21, -8, 4, 17, 26, 31, 36, 39, 42, 40, 35, 36, 39, + 47, 48, 45, 43, 38, 36, 30, 24, 22, 19, 18, 23, 29, 40, 50, 61, + 68, 72, 74, 71, 66, 57, 50, 40, 32, 24, 21, 16, 12, 7, -3, -14, + -26, -38, -45, -46, -43, -31, -16, 3, 18, 33, 39, 39, 36, 31, 22, 13, + 8, 3, -1, -4, -9, -24, -42, -60, -77, -94, -107, -115, -119, -120, -116, -112, + -103, -91, -81, -78, -80, -75, -69, -61, -51, -39, -25, -13, -5, 2, 8, 14, + 17, 16, 15, 16, 24, 31, 32, 32, 29, 29, 27, 22, 21, 20, 19, 22, + 26, 35, 46, 59, 70, 77, 83, 85, 84, 79, 74, 66, 59, 50, 46, 41, + 38, 35, 29, 21, 11, 0, -9, -14, -16, -11, 0, 16, 30, 48, 58, 62, + 61, 58, 51, 40, 31, 25, 19, 15, 13, 4, -11, -28, -44, -61, -76, -87, + -95, -100, -100, -99, -95, -86, -75, -68, -69, -68, -67, -62, -56, -49, -38, -27, + -19, -13, -9, -3, 2, 1, -1, -3, 0, 7, 10, 10, 6, 5, 4, 0, + -4, -5, -7, -7, -7, -2, 5, 16, 27, 36, 44, 49, 52, 50, 46, 40, + 35, 26, 22, 18, 15, 15, 13, 9, 4, -5, -14, -19, -23, -21, -14, 0, + 15, 33, 49, 60, 63, 63, 61, 53, 44, 38, 32, 27, 27, 23, 14, 0, + -14, -29, -44, -58, -67, -74, -76, -76, -73, -67, -55, -45, -41, -41, -41, -39, + -35, -30, -23, -12, -3, 4, 9, 14, 20, 21, 20, 17, 15, 19, 24, 26, + 24, 21, 20, 18, 12, 9, 6, 3, 0, 1, 4, 11, 21, 30, 38, 43, + 47, 48, 45, 38, 32, 23, 15, 9, 5, 3, 1, -2, -5, -13, -22, -30, + -37, -41, -40, -30, -18, -3, 15, 30, 38, 41, 41, 37, 27, 19, 12, 6, + 3, 2, -2, -13, -25, -39, -53, -67, -78, -88, -92, -92, -91, -86, -77, -63, + -54, -50, -48, -47, -43, -38, -32, -23, -11, -1, 6, 11, 19, 25, 27, 26, + 24, 26, 31, 36, 38, 36, 37, 37, 34, 32, 29, 27, 24, 22, 23, 27, + 35, 45, 53, 61, 67, 70, 71, 66, 60, 51, 42, 34, 28, 24, 21, 18, + 16, 11, 2, -8, -16, -24, -28, -25, -17, -5, 10, 26, 39, 45, 47, 45, + 37, 27, 18, 9, 3, 0, -2, -10, -22, -36, -51, -67, -81, -93, -102, -107, + -108, -107, -102, -90, -78, -71, -67, -66, -63, -59, -56, -49, -39, -28, -19, -13, + -6, 1, 7, 8, 6, 5, 8, 14, 19, 19, 19, 20, 20, 19, 16, 15, + 13, 12, 11, 13, 20, 30, 39, 49, 57, 63, 68, 68, 65, 58, 51, 43, + 37, 32, 29, 27, 26, 24, 19, 11, 2, -5, -12, -14, -9, 0, 13, 30, + 46, 56, 62, 65, 61, 53, 44, 35, 26, 22, 20, 15, 6, -6, -20, -36, + -51, -66, -78, -87, -91, -92, -92, -85, -74, -65, -58, -56, -55, -52, -50, -46, + -40, -30, -20, -14, -8, -2, 5, 7, 6, 3, 2, 5, 10, 11, 10, 9, + 9, 8, 5, 2, 0, -2, -5, -5, -3, 5, 14, 23, 32, 39, 46, 50, + 49, 45, 38, 31, 24, 17, 14, 11, 10, 9, 7, 2, -5, -12, -20, -25, + -25, -19, -8, 7, 24, 40, 50, 58, 60, 56, 49, 41, 31, 24, 22, 20, + 15, 6, -5, -19, -34, -48, -61, -72, -79, -83, -85, -81, -72, -62, -52, -47, + -44, -41, -39, -35, -31, -24, -13, -5, 1, 7, 14, 20, 22, 21, 19, 18, + 22, 25, 25, 24, 23, 23, 20, 17, 15, 12, 10, 7, 5, 9, 16, 24, + 33, 40, 47, 53, 56, 54, 48, 41, 33, 25, 20, 15, 11, 9, 8, 5, + -2, -10, -19, -27, -32, -31, -25, -15, 0, 17, 30, 40, 46, 46, 42, 35, + 25, 15, 10, 9, 5, -2, -11, -23, -37, -52, -65, -79, -89, -95, -99, -100, + -95, -85, -74, -65, -60, -55, -52, -48, -44, -40, -29, -18, -10, -4, 4, 12, + 18, 20, 19, 17, 20, 24, 27, 27, 26, 26, 25, 23, 21, 19, 17, 15, + 12, 13, 17, 25, 34, 41, 49, 57, 62, 65, 63, 57, 51, 42, 35, 30, + 25, 22, 21, 19, 15, 8, 0, -9, -17, -21, -20, -14, -3, 13, 26, 38, + 48, 53, 52, 47, 39, 28, 19, 15, 13, 8, 0, -10, -22, -37, -51, -65, + -79, -88, -95, -100, -99, -94, -84, -74, -67, -61, -58, -55, -51, -49, -43, -33, + -23, -17, -10, -2, 6, 10, 11, 9, 9, 12, 15, 17, 16, 16, 16, 14, + 12, 11, 9, 8, 5, 3, 4, 10, 18, 26, 34, 42, 50, 57, 59, 57, + 52, 45, 38, 32, 27, 23, 21, 20, 19, 14, 8, 1, -9, 2, 5, 7, + 8, -1, 6, 15, 1, 20, 28, 1, 37, 41, 31, 29, 27, 61, 40, -12, + 38, 52, -16, -20, -1, -23, -48, -56, -63, -61, -77, -100, -88, -76, -103, -113, + -98, -103, -118, -120, -108, -107, -104, -110, -118, -104, -109, -128, -107, -83, -106, -86, + -94, -100, -77, -113, -88, -43, -77, -46, -44, -69, -34, -54, -39, 4, -30, 11, + 18, -25, 20, 16, 10, 52, 35, 52, 74, 33, 55, 74, 59, 70, 81, 85, + 91, 81, 72, 89, 94, 82, 80, 99, 100, 85, 86, 91, 100, 91, 81, 91, + 102, 83, 74, 92, 95, 63, 62, 75, 71, 63, 39, 54, 74, 15, 1, 31, + 6, -5, -13, -20, -8, -44, -59, -38, -69, -73, -67, -86, -90, -68, -73, -77, + -49, -82, -70, -43, -76, -27, 0, -29, 22, 25, -5, 44, 45, 29, 66, 71, + 49, 84, 92, 73, 92, 74, 72, 91, 37, 48, 99, 47, 31, 44, 36, 33, + -5, -11, 26, 6, -33, -22, -6, -32, -55, -44, -45, -52, -63, -73, -55, -51, + -77, -79, -61, -73, -91, -83, -70, -77, -74, -82, -85, -68, -88, -98, -57, -67, + -77, -58, -75, -66, -64, -78, -33, -37, -50, -19, -47, -38, -23, -41, 3, 6, + -7, 30, 0, -4, 24, 15, 31, 45, 44, 66, 44, 34, 58, 54, 59, 67, + 71, 87, 78, 60, 73, 84, 78, 76, 86, 95, 89, 76, 85, 94, 89, 73, + 82, 99, 85, 66, 75, 93, 75, 50, 56, 69, 59, 31, 31, 61, 29, -15, + 15, 5, -15, -14, -36, -25, -29, -69, -55, -53, -82, -78, -76, -95, -88, -69, + -80, -65, -63, -86, -58, -67, -59, -12, -28, -9, 29, -8, 13, 44, 22, 44, + 68, 53, 62, 91, 74, 81, 89, 64, 84, 78, 35, 78, 86, 44, 43, 47, + 45, 22, -5, 17, 21, -16, -24, -14, -14, -34, -50, -40, -36, -63, -71, -58, + -60, -69, -78, -78, -67, -81, -98, -78, -71, -89, -85, -84, -86, -82, -99, -82, + -60, -76, -75, -74, -76, -71, -86, -68, -37, -51, -34, -41, -57, -37, -51, -31, + -7, -17, -3, 1, 7, 22, 31, 46, 57, 41, 43, 56, 63, 62, 68, 85, + 86, 80, 84, 92, 96, 93, 93, 104, 105, 96, 99, 108, 106, 102, 98, 102, + 111, 99, 87, 106, 110, 85, 80, 88, 89, 79, 68, 70, 81, 48, 25, 39, + 32, 18, 9, 12, 0, -29, -31, -38, -60, -52, -63, -79, -71, -66, -62, -59, + -62, -74, -72, -73, -81, -43, -21, -28, 8, 10, -10, 16, 28, 27, 42, 50, + 47, 66, 76, 68, 81, 73, 67, 72, 39, 40, 67, 41, 23, 25, 22, 12, + -16, -22, -5, -27, -51, -44, -45, -57, -68, -73, -71, -74, -91, -89, -84, -90, + -97, -98, -98, -102, -105, -108, -103, -97, -105, -109, -101, -107, -113, -106, -92, -87, + -90, -92, -92, -92, -100, -92, -57, -56, -54, -40, -59, -58, -54, -61, -23, -9, + -12, 16, 0, -14, 4, 5, 17, 32, 41, 57, 55, 43, 54, 66, 67, 68, + 84, 89, 87, 87, 91, 98, 100, 96, 104, 109, 105, 103, 108, 111, 109, 105, + 105, 113, 111, 99, 102, 115, 104, 88, 90, 97, 93, 80, 75, 86, 75, 37, + 40, 43, 33, 20, 20, -14, -26, -36, -53, -52, -65, -75, -75, -69, -69, -69, + -74, -77, -76, -74, -59, -34, -26, -9, 9, 5, 13, 32, 39, 42, 53, 58, + 61, 73, 77, 77, 73, 61, 57, 46, 29, 37, 37, 17, 6, 2, -10, -27, + -38, -41, -46, -58, -68, -69, -75, -85, -89, -92, -97, -101, -103, -106, -107, -108, + -112, -111, -112, -115, -115, -115, -113, -111, -116, -115, -112, -116, -117, -110, -101, -98, + -101, -101, -98, -101, -101, -86, -69, -65, -59, -57, -62, -58, -54, -39, -19, -12, + 1, 7, -1, 5, 16, 24, 36, 46, 58, 64, 61, 64, 74, 79, 81, 90, + 96, 97, 100, 100, 104, 108, 107, 111, 114, 113, 115, 115, 115, 118, 117, 116, + 118, 119, 116, 115, 116, 117, 111, 104, 105, 107, 99, 93, 95, 91, 71, 57, + 53, 47, 38, 29, 23, 14, -11, -28, -38, -49, -58, -67, -73, -80, -84, -84, + -83, -82, -80, -78, -74, -67, -56, -42, -29, -16, -4, 7, 18, 29, 40, 49, + 57, 64, 70, 74, 78, 79, 77, 72, 67, 60, 53, 48, 42, 33, 23, 14, + 4, -6, -16, -24, -32, -40, -48, -55, -61, -68, -74, -78, -83, -87, -91, -94, + -96, -99, -101, -103, -104, -106, -107, -107, -107, -107, -107, -108, -107, -107, -107, -105, + -101, -98, -96, -94, -93, -91, -87, -82, -74, -67, -62, -57, -54, -49, -43, -35, + -25, -16, -7, -1, 4, 10, 17, 25, 33, 41, 49, 55, 59, 63, 69, 74, + 78, 83, 88, 91, 93, 96, 98, 100, 102, 104, 106, 107, 107, 108, 108, 109, + 109, 108, 108, 108, 107, 105, 104, 102, 99, 94, 91, 87, 83, 78, 73, 66, + 56, 46, 37, 28, 19, 9, 0, -11, -23, -35, -45, -55, -64, -71, -78, -83, + -85, -84, -83, -81, -79, -75, -70, -61, -49, -36, -23, -10, 2, 12, 24, 35, + 45, 53, 61, 67, 72, 76, 79, 78, 75, 70, 65, 58, 52, 46, 39, 29, + 20, 11, 1, -9, -18, -26, -34, -42, -50, -56, -63, -69, -74, -79, -83, -88, + -91, -94, -96, -98, -101, -102, -104, -105, -106, -106, -106, -106, -106, -106, -106, -106, + -105, -102, -98, -96, -94, -92, -90, -88, -84, -77, -70, -64, -59, -55, -51, -45, + -38, -29, -20, -11, -4, 2, 7, 13, 21, 29, 37, 44, 51, 56, 60, 65, + 70, 75, 80, 84, 88, 91, 93, 96, 98, 100, 102, 104, 105, 106, 107, 107, + 108, 108, 107, 107, 107, 106, 104, 103, 101, 99, 95, 91, 87, 83, 78, 73, + 67, 59, 49, 39, 30, 21, 12, 3, -8, -19, -31, -41, -51, -60, -68, -75, + -81, -84, -85, -84, -82, -80, -77, -73, -65, -55, -42, -29, -16, -4, 7, 18, + 29, 40, 49, 57, 64, 70, 74, 78, 79, 77, 73, 68, 62, 56, 50, 44, + 36, 26, 17, 7, -3, -12, -20, -28, -36, -44, -51, -58, -64, -70, -75, -79, + -84, -88, -91, -93, -96, -98, -100, -102, -103, -105, -105, -105, -105, -105, -105, -105, + -105, -104, -102, -99, -96, -94, -92, -90, -88, -85, -79, -72, -66, -61, -56, -52, + -47, -41, -33, -24, -15, -8, -1, 4, 10, 17, 24, 32, 40, 47, 53, 57, + 62, 67, 72, 77, 81, 85, 89, 91, 94, 96, 98, 100, 102, 104, 105, 105, + 106, 106, 107, 106, 106, 106, 105, 104, 102, 101, 99, 95, 91, 87, 83, 79, + 74, 68, 61, 52, 42, 33, 24, 15, 5, -5, -15, -27, -38, -48, -57, -66, + -72, -79, -83, -85, -85, -83, -81, -79, -75, -69, -60, -48, -35, -23, -10, 2, + 13, 24, 35, 45, 54, 61, 67, 72, 77, 78, 79, 76, 72, 66, 60, 54, + 49, 41, 32, 23, 12, 3, -4, -17, -15, 1, -1, 0, 0, 1, 3, 5, + 9, 13, 18, 24, 32, 38, 32, 18, -9, -48, -73, -41, 2, -3, -24, -34, + -44, -72, -111, -124, -62, 40, 40, -51, -35, 45, 46, -22, -79, 35, 78, -47, + -98, -88, -69, -57, -44, -31, -17, -9, -3, 6, 41, 85, 43, -91, -128, -65, + -25, -21, -19, -12, 2, 16, 29, 39, 49, 48, 10, -69, -47, 50, 8, -52, + -44, 5, 21, -40, -42, 33, 79, 66, 38, 24, 25, 26, 18, 21, 70, 117, + 98, 28, -1, 20, 22, 0, 1, 9, -10, -49, -33, 39, 68, 39, -5, -17, + -58, -76, 78, 104, 17, 6, -23, -43, -13, 58, 85, 43, 21, 35, 46, 31, + 22, 35, 14, -48, -74, -38, 6, 10, -8, -17, -24, -37, -60, -69, -41, 15, + 27, -21, -26, 18, 28, -1, -41, 5, 51, -9, -51, -48, -38, -31, -24, -16, + -8, -2, 1, 6, 23, 52, 41, -39, -83, -50, -19, -13, -12, -8, 1, 10, + 20, 27, 34, 35, 15, -40, -46, 27, 16, -35, -38, -6, 19, -18, -35, 17, + 61, 55, 33, 21, 22, 25, 21, 18, 52, 98, 92, 31, -5, 9, 17, -1, + -2, 7, -7, -47, -43, 24, 62, 39, -3, -20, -48, -88, 46, 113, 25, 4, + -20, -45, -25, 42, 82, 47, 19, 28, 42, 32, 18, 30, 19, -39, -77, -51, + -4, 10, -6, -18, -25, -37, -57, -70, -50, 4, 26, -15, -33, 9, 27, 6, + -38, -12, 50, 6, -47, -50, -40, -32, -25, -17, -10, -3, 0, 4, 17, 45, + 47, -23, -82, -60, -24, -14, -13, -10, -2, 7, 16, 24, 30, 33, 18, -32, + -56, 13, 23, -31, -41, -15, 19, -6, -35, 4, 52, 55, 35, 21, 22, 25, + 22, 15, 41, 89, 94, 38, -5, 4, 16, 2, -2, 7, -4, -41, -48, 12, + 58, 43, 2, -20, -38, -89, 14, 118, 38, 3, -15, -43, -32, 28, 78, 53, + 19, 24, 40, 34, 18, 26, 23, -28, -75, -61, -14, 10, -2, -16, -24, -34, + -53, -68, -55, -7, 25, -8, -36, 1, 27, 12, -31, -26, 45, 22, -39, -50, + -41, -32, -25, -17, -10, -4, 0, 3, 13, 38, 51, -5, -77, -69, -31, -15, + -14, -11, -4, 5, 13, 21, 27, 31, 20, -24, -61, -3, 28, -23, -43, -23, + 15, 5, -32, -6, 43, 53, 36, 22, 21, 26, 24, 14, 32, 79, 95, 46, + -3, 0, 15, 5, -1, 7, -1, -36, -52, 2, 53, 46, 7, -18, -30, -84, + -15, 114, 55, 4, -10, -40, -37, 15, 72, 59, 22, 20, 36, 36, 19, 23, + 26, -18, -70, -68, -25, 7, 2, -13, -22, -32, -49, -65, -59, -16, 22, -1, + -36, -8, 25, 17, -22, -35, 34, 36, -29, -48, -42, -32, -25, -18, -10, -4, + 0, 3, 10, 32, 52, 11, -67, -76, -38, -16, -13, -11, -6, 3, 11, 19, + 25, 30, 22, -15, -62, -19, 30, -14, -43, -30, 9, 13, -25, -15, 33, 51, + 37, 23, 21, 26, 26, 15, 24, 68, 94, 54, 0, -3, 13, 8, 1, 8, + 2, -30, -53, -8, 47, 49, 13, -16, -25, -75, -41, 102, 73, 6, -5, -36, + -40, 2, 65, 64, 25, 18, 33, 37, 21, 21, 27, -8, -63, -73, -36, 2, + 5, -10, -21, -30, -45, -62, -61, -25, 17, 5, -35, -17, 21, 21, -13, -39, + 20, 46, -16, -46, -42, -32, -25, -17, -10, -4, 0, 3, 8, 27, 50, 25, + -54, -81, -46, -19, -13, -12, -7, 1, 9, 17, 23, 28, 23, -8, -59, -35, + 27, -5, -42, -35, 2, 20, -16, -20, 24, 47, 38, 24, 21, 27, 28, 17, + 18, 58, 91, 62, 5, -6, 10, 10, 3, 9, 5, -24, -52, -17, 40, 50, + 18, -13, -22, -64, -60, 83, 90, 12, -3, -31, -41, -8, 55, 67, 30, 17, + 30, 37, 24, 19, 27, 1, -54, -75, -46, -4, 7, -7, -18, -28, -41, -58, + -61, -32, 11, 10, -31, -24, 17, 23, -4, -39, 5, 52, -2, -42, -42, -32, + -25, -17, -10, -4, 0, 3, 6, 22, 47, 35, -38, -82, -55, -23, -13, -12, + -8, -1, 7, 15, 21, 26, 23, -1, -53, -48, 20, 5, -39, -39, -6, 22, + -5, -22, 14, 43, 38, 25, 21, 27, 29, 19, 15, 47, 86, 68, 12, -7, + 7, 11, 4, 10, 7, -18, -50, -25, 33, 51, 24, -10, -20, -52, -72, 58, + 103, 21, -1, -26, -41, -17, 44, 67, 35, 16, 27, 36, 26, 18, 25, 8, + -45, -76, -55, -13, 7, -3, -16, -26, -38, -55, -61, -38, 4, 13, -26, -30, + 11, 25, 4, -36, -10, 51, 14, -37, -42, -33, -24, -17, -10, -4, 1, 3, + 6, 18, 42, 42, -22, -80, -63, -28, -14, -12, -9, -3, 5, 12, 19, 24, + 23, 3, -46, -58, 9, 14, -34, -41, -14, 21, 6, -21, 4, 36, 38, 26, + 21, 26, 30, 22, 13, 37, 78, 73, 20, -7, 4, 11, 6, 10, 10, -11, + -45, -33, 22, 49, 29, -4, -18, -40, -75, 23, 108, 40, 1, -18, -39, -26, + 28, 65, 42, 17, 22, 34, 29, 18, 23, 15, -30, -71, -65, -27, 3, 2, + -11, -22, -34, -49, -58, -45, -7, 13, -16, -35, -1, 24, 13, -23, -26, 37, + 36, -20, -39, -34, -24, -17, -10, -4, 1, 3, 5, 12, 33, 46, 6, -64, + -75, -40, -17, -12, -10, -5, 2, 9, 15, 20, 22, 10, -30, -65, -18, 20, + -19, -42, -27, 11, 21, -8, -8, 22, 34, 27, 22, 26, 31, 27, 14, 22, + 60, 75, 34, -4, -2, 8, 8, 11, 14, -2, -36, -42, 6, 44, 36, 4, + -15, -26, -66, -24, 95, 71, 8, -10, -33, -32, 7, 56, 51, 21, 17, 29, + 32, 20, 19, 20, -12, -59, -72, -45, -8, 5, -5, -17, -28, -42, -54, -50, + -21, 9, -5, -36, -16, 19, 21, -7, -34, 12, 51, 4, -33, -34, -25, -17, + -10, -4, 1, 4, 5, 9, 23, 44, 29, -39, -79, -55, -24, -13, -10, -7, + -1, 6, 12, 16, 20, 14, -15, -62, -46, 16, -2, -39, -36, -2, 29, 9, + -12, 8, 28, 27, 23, 25, 31, 31, 17, 13, 43, 72, 46, 2, -5, 5, + 8, 11, 16, 5, -26, -44, -8, 36, 40, 12, -12, -19, -52, -53, 67, 94, + 20, -5, -27, -35, -7, 45, 55, 27, 15, 25, 32, 23, 17, 21, 0, -47, + -73, -57, -19, 4, 0, -13, -24, -37, -50, -51, -29, 3, 1, -32, -26, 12, + 23, 3, -32, -6, 52, 22, -26, -34, -25, -17, -10, -4, 1, 5, 6, 8, + 18, 39, 38, -21, -76, -64, -30, -14, -10, -8, -2, 4, 10, 15, 18, 14, + -9, -56, -57, 7, 7, -35, -39, -10, 27, 18, -10, 2, 23, 26, 23, 24, + 31, 32, 20, 11, 35, 67, 51, 7, -6, 3, 8, 11, 17, 8, -20, -44, + -15, 31, 41, 16, -9, -17, -43, -61, 44, 102, 31, -2, -23, -35, -15, 36, + 56, 32, 0, -27, 1, -1, -1, 3, -4, -2, 1, -1, -2, 2, 3, -6, + 1, 2, -6, 2, 2, -4, -1, 2, -5, 1, 4, -4, 0, -1, 0, -1, + -2, 2, 2, -6, 0, 4, -3, -3, 4, -2, -3, -2, 0, 1, 1, -2, + -2, 3, -8, 27, -42, 11, 21, -35, 34, -25, 12, 9, -24, 14, 13, -38, + 53, -42, -3, 46, -73, 55, -16, -9, 28, -49, 38, -12, -21, 49, -51, 20, + 32, -73, 64, -28, -7, 32, -50, 42, -11, -30, 49, -21, -31, 46, -25, -7, + 20, -22, 18, -16, -10, 21, -23, 5, 28, -35, 8, 0, 8, -26, 19, 6, + -11, -20, 64, -46, -18, 51, -73, 119, -117, 46, 36, -80, 67, -46, 22, 0, + -24, 56, -59, 14, 26, -40, 24, -9, 20, -20, -15, 43, -26, -11, 9, 14, + -3, -31, 6, 54, -62, 3, 67, -78, 20, 21, -25, 31, -41, 18, 27, -53, + 32, 15, -48, 37, -11, 4, -12, -3, 31, -24, -21, 42, -10, -45, 55, -32, + 34, -43, -14, 86, -78, 8, 39, -35, -2, 13, 2, 5, -11, -4, 7, 5, + -31, 37, -4, -28, 28, -9, -11, 10, -1, 4, -18, 17, -9, -13, 24, -18, + 20, -18, -30, 59, -25, -29, 48, -15, -29, 23, 4, -3, -18, 14, 6, -8, + -19, 19, 8, -13, 0, 13, -18, 4, 1, 0, 0, 10, -14, -12, 39, -46, + 23, 9, -22, 23, -20, -22, 63, -42, -28, 77, -66, 12, 38, -56, 31, 27, + -77, 66, -11, -39, 59, -33, -41, 92, -54, -50, 96, -36, -46, 46, -17, 31, + -43, -28, 98, -57, -50, 84, -22, -44, 39, -8, 17, -28, -13, 63, -67, 16, + 10, 3, -15, -4, 36, -34, -1, 26, -27, -2, 13, 7, -22, 0, 27, -11, + -19, 6, 26, -42, 14, 18, -7, -14, -10, 37, -14, -24, 25, -4, -5, -10, + 3, 35, -39, -7, 31, -8, -23, 15, 4, -1, -25, 28, 7, -35, 34, -16, + -1, 9, -35, 45, -22, -17, 48, -52, 24, 22, -65, 48, 7, -45, 47, -19, + -33, 71, -70, 46, -7, -52, 68, -25, -35, 48, -13, -17, 14, 2, -12, 8, + -10, 1, 22, -32, 4, 34, -26, -18, 29, -7, -19, 15, -7, 15, -8, -29, + 50, -22, -35, 53, -19, -37, 47, -9, -40, 41, 1, -27, 7, 3, 0, 0, + -7, 13, -7, -21, 26, 14, -44, 11, 40, -51, 10, 26, -28, 16, -13, -3, + 31, -42, 11, 34, -52, 11, 34, -43, 10, 29, -19, -21, 27, -10, -5, 10, + -14, 11, 3, -35, 43, 3, -52, 37, 22, -66, 49, -12, -19, 50, -58, 16, + 42, -70, 50, -2, -42, 60, -69, 43, 11, -57, 54, -8, -31, 23, -8, -7, + 24, -32, 11, 21, -51, 60, -44, -6, 68, -87, 33, 45, -79, 50, -7, -13, + 21, -40, 31, 12, -41, 18, 24, -39, 15, 7, -17, 25, -20, -12, 43, -47, + 17, 6, -16, 10, 4, -11, -1, 14, -10, -7, 6, 9, -23, 9, 3, 13, + -30, 16, 16, -33, 17, 4, -17, 23, -29, 3, 54, -86, 50, 11, -41, 30, + -23, 15, 18, -60, 56, 7, -65, 49, -4, -12, 1, -6, 19, -4, -33, 35, + -10, -12, 13, -2, -2, -2, 2, -10, 16, -8, -11, 19, -6, -19, 24, -14, + 9, 3, -24, 24, -6, -13, 19, -11, -6, 6, -9, 16, -8, -10, 14, -10, + -1, -5, 16, -8, -25, 37, -11, -27, 37, -14, -13, 19, -17, 14, -5, -15, + 26, -27, 10, 11, -23, 22, -5, -19, 25, -7, -28, 44, -35, 0, 25, -31, + 31, -10, -26, 46, -41, 2, 33, -40, 24, 8, -43, 44, -12, -25, 37, -25, + -6, 29, -27, 5, 24, -40, 24, -1, -25, 23, -1, -6, -2, -1, 14, -24, + 8, 13, -11, 0, -13, 16, 15, -56, 43, 12, -35, 14, -9, 18, -10, -19, + 28, -3, -27, 23, -2, -14, 27, -35, 10, 35, -68, 44, 7, -43, 46, -21, + -25, 56, -35, -21, 51, -33, -8, 28, -27, 19, -2, -26, 36, -26, 3, 13, + -12, 6, -10, 8, -14, 15, -12, 0, 13, -9, -16, 32, -27, 3, 23, -49, + 49, -17, -31, 63, -64, 25, 36, -76, 61, -11, -47, 75, -54, -9, 69, -81, + 32, 29, -63, 46, -7, -26, 39, -31, 6, 18, -26, 13, -5, 5, -5, -2, + 5, -12, 17, -17, -2, 22, -25, 1, 20, -19, 3, 6, -6, 3, -9, 10, + -6, -3, 7, -7, -3, 12, -5, -5, -11, 24, -7, -23, 24, 0, -14, 0, + 12, -10, -2, 5, 0, 1, -10, 10, -2, -17, 26, -11, -16, 28, -22, 6, + 4, -17, 30, -27, -7, 46, -54, 15, 29, -42, 25, -4, -15, 26, -29, 11, + 15, -28, 19, -7, 1, 8, -20, 14, 1, -15, 11, -2, -2, 0, -10, 15, + -5, -12, 15, -1, -15, 12, 4, -15, 9, -1, -9, 9, -5, -6, 13, -12, + 1, 6, -6, -3, 6, -4, 0, -6, 11, -9, -2, 13, -12, -2, -1, 8, + -11, 4, 2, -6, 4, -4, 4, 0, -13, 15, 0, -21, 23, -5, -15, 15, + -2, -9, 6, -2, -4, 2, 3, -1, -7, 7, -2, -9, 6, 2, -9, 4, + 5, -12, 10, -9, 4, 5, -16, 12, -2, -13, 20, -13, -4, 17, -23, 14, + 2, -20, 22, -13, -3, 15, -22, 12, 4, -18, 17, -7, -7, 13, -14, 6, + 4, -10, 9, -5, -6, 7, 0, -7, 8, -4, -1, 0, -6, 4, 7, -14, + 2, 13, -16, 3, 10, -15, 7, -1, -10, 14, -10, -2, 11, -9, -4, 7, + -6, 3, -3, -5, 9, -6, -3, 5, 1, -7, 3, -2, 0, -2, 0, 4, + -3, -2, 4, -6, 4, -2, -2, 0, 1, 0, -7, 7, -2, -7, 9, -7, + -4, 11, -15, 11, -2, -9, 9, -4, -3, 2, 3, -7, 5, 0, -5, 6, + -7, 1, 7, -10, -2, 13, -9, -4, 8, -4, -2, -1, 1, 1, -7, 4, + 5, -8, 0, 6, -6, 0, 3, -4, 0, 1, -2, 2, -4, -4, 8, -7, + -1, 6, -9, 8, -3, -6, 12, -12, 1, 10, -11, 1, 5, -6, 3, -2, + -3, 7, -10, 2, 7, -12, 5, 2, -5, 3, -5, 0, 6, -10, 3, 4, + -8, 2, 2, -3, 3, -8, 8, 2, -14, 10, 3, -12, 8, 2, -11, 8, + -2, -6, 9, -7, -4, 10, -9, -1, 7, -7, 1, 3, -8, 8, -2, -8, + 10, -3, -5, 5, -6, 3, 1, -8, 10, -5, -5, 7, -4, -2, 2, -3, + 1, -1, -3, 4, -3, 0, 0, 0, 0, -4, 3, -2, -3, 3, -5, 3, + 0, -7, 5, 1, -8, 5, 1, -6, 6, -5, 0, 3, -7, 3, 2, -6, + 3, 2, -6, 3, 1, -3, -2, 5, -4, -1, 3, -4, 0, 0, -3, 5, + -5, -3, 7, -5, -3, 6, -4, 0, -1, -3, 3, -2, -1, 2, -1, -2, + 1, -2, 1, -1, -7, 8, -1, 5, -7, 13, -22, 8, -7, 8, -110, -28, + 24, 54, 36, 2, 60, -45, 57, 42, -43, 20, 41, -66, 24, -11, 18, -18, + -38, -63, -36, 30, -11, 33, 25, 30, 18, 11, -18, -5, 5, -46, 40, 1, + -13, -18, -20, -31, 20, 10, 29, -7, -18, 40, -29, -17, 42, -19, 6, -4, + 6, -8, 10, -26, -5, 3, 1, -17, 6, 0, 19, -1, 8, 0, -6, -10, + -1, -12, -1, 1, -3, 8, -7, 4, 11, 4, 14, -13, 16, -19, -4, -13, + -13, -14, 6, 4, -1, 4, 11, -1, 11, -1, 1, -4, -1, -15, 6, -9, + 1, -1, 0, 3, 1, -8, 3, -1, -1, 2, -2, 2, -2, 1, -5, -7, + 3, -3, 6, -3, 4, -1, 0, -4, 2, -7, 3, -6, -1, -1, 4, 0, + 3, -2, 2, -5, 5, -8, -3, -3, 2, -5, 7, -1, 4, -2, 4, -10, + 6, -6, -1, -4, 5, -13, 7, -6, 5, -8, 17, -20, 14, -6, 9, -40, + 71, -127, 9, -73, 127, 76, -28, 74, -32, 8, -62, -49, -38, 40, -68, 22, + -12, 68, 10, 39, -10, 0, 35, -23, 0, -59, -15, -7, -3, -23, 1, -20, + 37, 27, 2, 30, -2, 17, 2, -5, -7, -27, -29, 16, -3, -11, 1, -16, + -5, -8, -10, 7, 32, 9, 5, -4, 16, 5, -8, -17, -16, 5, -13, 8, + 11, 15, -10, -9, 0, -1, 2, 7, -3, -23, 9, 2, 3, 1, -13, -1, + -6, 11, -6, 8, 1, 12, -12, 9, -14, 8, -1, 0, -3, -13, 4, -7, + -4, 8, 5, -5, -7, 4, -2, -3, 2, 3, -6, 8, -3, 1, -3, -2, + 2, -6, 2, -4, -3, -4, 3, 1, 0, 0, 1, -1, -1, 2, -2, 0, + -4, -2, 1, 2, 0, -3, 1, -3, 0, -1, -3, -6, 2, -2, 3, -4, + 10, -8, 9, -5, 12, -19, 46, 37, -128, 60, -90, 102, -65, 40, -57, 39, + -6, 23, -8, 19, 24, 15, -17, -47, -27, -36, -16, 21, 3, 23, 14, 50, + -8, 19, 25, 7, -9, -28, -63, -37, 0, -42, 54, -17, 68, -3, 30, -12, + -4, 11, -15, 9, -25, -15, -2, -27, -25, 38, -8, -13, 33, 24, 12, -38, + 39, -12, -3, -17, -44, 38, 2, 27, 3, -5, -4, -13, -30, -56, -4, 11, + 1, 9, 17, 46, 25, -14, 6, -3, -7, -21, 2, 16, -5, -22, 2, -2, + 6, -12, -25, -15, 10, 9, 8, 11, 43, 8, -5, -22, -16, 14, -31, 16, + 7, -7, -26, -20, -2, 9, 11, 26, 7, 6, -20, -13, 0, 4, 17, -17, + -18, 10, 2, -10, 27, -8, 24, -23, -14, 1, 0, 13, -19, 14, 10, -16, + 16, -4, -20, 20, -33, 2, 2, 24, 21, -3, -26, -24, -18, -18, 10, 10, + 24, 18, 2, 9, -24, 16, -14, -8, 9, -5, -14, 8, -5, 30, -11, 11, + -13, -15, -12, 7, 4, -13, -13, 13, -13, 12, 23, 9, 0, 14, -10, -9, + -35, -2, -21, 12, -1, 17, 19, 11, -4, 0, -18, -24, 11, -10, 1, 11, + 12, -13, -16, 10, -23, 21, 9, -9, 3, 12, -6, 3, -5, 12, 0, -2, + 0, -19, -9, 5, -11, -7, 10, 1, -3, 9, 18, -6, 0, -1, 1, -13, + 2, 1, -3, -8, 17, -4, -9, 18, -15, 8, -1, -11, -5, -14, 11, -5, + -7, 12, 16, -7, 7, -3, -11, -5, -6, 1, 4, -3, -3, 15, 5, 0, + 3, 6, -16, 4, -14, -6, -9, -4, 2, 11, 11, 7, -2, 4, -12, -7, + -14, -6, -7, 9, 4, 7, -2, 6, 5, 6, -4, -3, -4, 7, -7, -11, + -9, 0, -3, 7, -2, -2, 3, 13, -4, -6, -15, 9, -7, -1, 4, 6, + 5, 8, -6, -8, 0, -11, -4, 6, -8, 4, 3, 5, 13, -4, -9, -3, + 4, -3, -3, 4, -1, -12, 6, -14, 2, 3, 15, 2, 6, -7, -8, 3, + 1, -2, 3, -3, -12, -6, -14, 7, -2, 13, 6, 10, 6, 0, -2, -10, + -12, -8, -6, -7, -6, 6, 4, -2, 5, 2, 0, -1, 3, -11, 4, 0, + 20, -8, -2, 0, -1, -3, 7, -3, -4, -2, -6, -10, -10, -8, 1, 2, + 5, 8, 2, 5, 8, 3, 4, 3, -2, -15, 0, -1, -7, -2, -5, -10, + 10, -1, 5, 3, 5, -1, -2, -8, -5, -9, 1, -8, 6, 5, 4, 1, + 1, 2, 3, -2, 4, -7, 1, -7, -9, -2, 0, 2, 3, 6, -8, 8, + 3, 0, -2, -9, -3, -2, 0, 3, -1, -2, -3, 7, -3, 10, -8, 1, + -12, 3, -7, 2, -3, 7, 4, 4, 0, 0, -6, -1, -5, -3, -4, -7, + 0, 5, 7, 0, 2, -3, 10, -1, 3, -7, -5, -4, -9, -3, -7, 5, + -4, 9, 2, 1, 4, 5, 0, -5, 1, -8, 4, -9, 5, -5, 0, 3, + -2, -1, 1, 1, -7, 7, 0, 3, -5, 0, -3, -1, -1, -5, -1, 1, + -1, 1, -1, 0, 2, 0, 2, -7, -7, 4, -1, 0, 3, 4, -1, -3, + -4, -6, 3, -2, 4, -1, 5, -2, -1, -5, -2, -4, 1, 3, 2, 2, + 0, -3, 1, 1, -3, -3, -1, 1, -3, -2, -1, -2, -3, -1, 0, 4, + 3, 5, 2, 1, -4, -9, -3, -7, 1, -2, 7, -2, 3, 3, 3, 1, + 0, -1, -6, -7, -6, -4, -1, 1, 0, 5, 2, -2, 2, -3, -1, 3, + -1, 1, -4, -4, -5, 0, -7, 2, -4, 3, 4, 1, 2, -1, -1, -2, + -2, 0, -1, 1, -1, -1, -3, 1, 1, 3, -3, -1, 1, 1, -2, -3, + -8, -5, 0, -1, 5, 2, 3, 1, -2, -1, -1, -3, 1, 1, -2, -3, + -3, -1, 0, -1, 1, 2, 2, 5, 0, -1, -2, -1, -2, 0, -4, 0, + -5, -1, -1, 0, 1, 5, 4, -2, -1, -2, 0, -6, -1, 0, 1, -1, + -2, 1, 0, 0, 3, 1, -2, 1, -2, -4, -1, 0, -1, -1, -4, -2, + -4, 2, -1, 1, 0, 3, 2, 0, 4, -1, 4, -6, 2, -4, -3, -5, + -4, -3, 0, 2, 0, 1, 4, 2, 2, -2, -2, -5, -6, -5, -3, -2, + 1, -1, 0, 0, 2, 2, 2, 0, 4, -2, 3, 2, -1, -2, -3, -3, + -3, -5, -5, -5, -1, -1, 0, 2, 2, 4, 1, 2, 1, 2, -1, -1, + -3, -4, -5, -3, -2, -2, -1, 1, 4, 2, 2, 2, 1, -1, -2, -6, + -2, -3, 2, -1, 1, -2, 0, 2, 1, 2, -2, 1, 0, -2, -2, -3, + 0, -2, -1, -1, 0, -2, -2, 1, 0, 2, -1, 1, -1, 0, -1, -1, + 0, -1, 0, -2, 2, 0, 2, 2, 5, 3, 6, 8, 12, 13, -6, -110, + -7, 51, -99, -128, 10, -28, -39, 25, -33, -27, 41, 34, -5, 17, 23, 25, + 24, 23, 20, 24, 25, 24, 21, 20, 23, 23, 16, 20, 9, 20, 18, 10, + 14, 5, 14, 11, 7, 5, 3, 10, 2, 7, -4, 0, 3, 0, -3, -5, + -6, -1, -12, -4, -17, -10, 9, -42, -40, 65, 40, -58, 29, 72, 39, 50, + 31, -1, 30, 25, -7, -4, -33, -47, -29, -49, -74, -69, -71, -79, -61, -51, + -57, -53, -34, -20, -22, -16, -10, -6, -2, 1, 3, 4, 8, 8, 12, 10, + 9, 14, 13, 12, 12, 13, 12, 12, 14, 12, 12, 12, 12, 13, 12, 9, + 11, 11, 11, 7, 8, 7, 8, 9, 2, 5, 8, -6, 2, 17, -17, -20, + 18, 5, -15, 15, 27, 21, 37, 44, 41, 46, 38, 26, 32, 26, -4, -15, + -6, -20, -44, -50, -54, -60, -59, -58, -58, -54, -46, -38, -32, -26, -19, -14, + -9, -5, -1, 2, 5, 7, 8, 10, 11, 12, 13, 13, 14, 14, 14, 13, + 13, 14, 15, 14, 11, 13, 14, 13, 12, 10, 12, 12, 10, 10, 8, 6, + 11, 9, -1, 5, 11, -1, -6, 1, -1, -4, 0, -1, 0, 14, 25, 24, + 28, 37, 38, 38, 38, 31, 22, 14, 4, -5, -15, -26, -38, -47, -52, -54, + -56, -57, -55, -51, -45, -39, -34, -28, -22, -17, -13, -8, -3, -1, 2, 5, + 7, 8, 10, 11, 12, 13, 13, 13, 13, 14, 14, 13, 13, 14, 13, 12, + 13, 13, 12, 11, 12, 11, 9, 11, 9, 6, 7, 8, 5, 3, 2, 0, + 0, 0, -2, -3, 0, 3, 6, 11, 18, 23, 27, 31, 34, 35, 32, 27, + 21, 14, 5, -5, -15, -26, -35, -43, -48, -52, -53, -53, -52, -49, -44, -40, + -35, -29, -24, -19, -14, -10, -6, -3, 1, 3, 5, 7, 9, 10, 11, 12, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 13, 12, 11, 13, 11, 10, + 10, 9, 9, 8, 7, 7, 5, 4, 3, 2, 0, -1, -1, 0, 2, 4, + 8, 12, 17, 22, 25, 28, 30, 30, 28, 24, 19, 12, 3, -5, -14, -23, + -31, -37, -43, -46, -46, -48, -47, -43, -41, -38, -33, -29, -25, -21, -16, -12, + -8, -5, -2, 0, 3, 5, 7, 9, 10, 11, 12, 12, 13, 14, 13, 13, + 13, 13, 13, 12, 12, 12, 11, 11, 11, 10, 9, 9, 8, 7, 7, 6, + 5, 4, 4, 3, 3, 3, 3, 5, 6, 8, 10, 12, 14, 17, 18, 19, + 20, 19, 17, 14, 10, 5, 0, -6, -11, -17, -22, -26, -29, -32, -34, -34, + -35, -34, -32, -31, -28, -26, -23, -20, -17, -14, -11, -8, -5, -3, 0, 2, + 4, 6, 7, 8, 9, 10, 11, 11, 12, 12, 12, 12, 11, 11, 11, 10, + 10, 9, 9, 8, 8, 7, 7, 6, 5, 5, 5, 4, 4, 5, 5, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 13, 13, 13, 12, 10, 8, 5, 2, + -2, -6, -10, -14, -18, -21, -24, -26, -28, -29, -29, -30, -29, -28, -27, -25, + -23, -20, -18, -15, -12, -10, -7, -4, -2, 0, 2, 4, 6, 7, 9, 10, + 10, 11, 11, 12, 12, 12, 12, 11, 11, 11, 10, 10, 9, 9, 8, 8, + 7, 7, 6, 6, 5, 5, 5, 5, 6, 6, 7, 7, 8, 9, 10, 11, + 12, 13, 13, 13, 12, 11, 10, 8, 5, 2, -1, -5, -9, -13, -16, -19, + -22, -24, -26, -27, -28, -28, -28, -27, -26, -24, -22, -20, -18, -15, -13, -10, + -7, -5, -2, 0, 2, 4, 5, 7, 8, 9, 10, 11, 11, 11, 11, 11, + 11, 11, 11, 10, 10, 9, 9, 8, 8, 7, 7, 6, 6, 6, 5, 5, + 5, 5, 6, 6, 6, 7, 8, 9, 10, 11, 11, 12, 12, 12, 11, 10, + 9, 7, 5, 2, -1, -5, -8, -12, -15, -18, -21, -23, -25, -26, -27, -27, + -27, -26, -25, -24, -22, -20, -18, -16, -13, -11, -8, -6, -3, -1, 1, 3, + 4, 6, 7, 8, 9, 10, 10, 10, 11, 11, 11, 10, 10, 10, 10, 9, + 9, 8, 8, 7, 7, 6, 6, 6, 5, 5, 5, 5, 6, 6, 6, 7, + 8, 9, 9, 10, 11, 11, 11, 11, 11, 10, 9, 7, 4, 2, -1, -4, + -7, -11, -14, -17, -19, -21, -23, -24, -25, -26, -26, -25, -24, -23, -22, -20, + -18, -16, -13, -11, -9, -6, -4, -2, 0, 2, 4, 5, 7, 8, 9, 9, + 10, 10, 11, 11, 11, 11, 10, 10, 10, 9, 9, 8, 8, 7, 7, 7, + 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 8, 9, 9, 10, 11, 11, + 11, 11, 10, 10, 8, 7, 5, 2, -1, -3, -7, -10, -13, -15, -18, -20, + -22, -23, -24, -25, -25, -24, -24, -23, -21, -20, -18, -16, -14, -11, -9, -7, + -5, -2, 0, 1, 3, 5, 6, 7, 8, 9, 9, 10, 10, 10, 10, 10, + 10, 10, 9, 9, 8, 8, 8, 7, 7, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 7, 7, 8, 8, 9, 9, 9, 10, 9, 9, 8, 7, 6, 4, + 2, 0, -2, -5, -7, -10, -12, -15, -17, -18, -20, -21, -21, -22, -22, -21, + -21, -20, -18, -17, -15, -13, -12, -10, -8, -6, -4, -2, 0, 1, 3, 4, + 5, 6, 7, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 8, 7, + 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, + 8, 8, 8, 8, 7, 6, 5, 4, 3, 1, -1, -3, -5, -7, -9, -10, + -12, -14, -15, -16, -17, -18, -18, -18, -18, -17, -17, -16, -15, -13, -12, -11, + -9, -7, -6, -4, -3, -1, 0, 1, 3, 4, 5, 5, 6, 7, 7, 7, + 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 5, + 4, 3, 2, 0, -1, -3, -5, -7, -9, -10, -12, -13, -15, -16, -17, -17, + -18, -18, -18, -17, -17, -16, -15, -14, -12, -11, -9, -8, -6, -5, -3, -2, + -1, 1, 2, 3, 4, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 6, 6, 5, 4, 3, 2, 0, -1, -3, + 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 5, + 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 6, 7, 8, 9, 10, 10, + 11, 12, 12, 13, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 26, + 27, 29, 29, 29, 28, 28, 28, 29, 30, 31, 31, 31, 31, 28, 19, -8, + -41, -53, -57, -59, -60, -62, -62, -63, -64, -65, -65, -66, -67, -69, -69, -69, + -72, -74, -73, -74, -76, -78, -79, -81, -82, -82, -83, -81, -83, -85, -81, -81, + -88, -90, -80, -64, -47, -32, -23, -18, -15, -13, -12, -12, -12, -13, -13, -13, + -13, -13, -12, -12, -11, -9, -7, -6, -4, -2, -1, 0, 1, 2, 4, 5, + 7, 10, 12, 14, 16, 18, 19, 18, 19, 21, 19, 20, 22, 22, 22, 25, + 27, 28, 29, 29, 29, 29, 29, 30, 31, 31, 31, 33, 34, 34, 35, 34, + 33, 31, 30, 29, 26, 25, 26, 25, 22, 22, 21, 20, 20, 19, 19, 19, + 18, 18, 18, 17, 17, 17, 17, 16, 16, 16, 15, 13, 13, 14, 14, 15, + 13, 12, 13, 13, 11, 12, 14, 14, 16, 17, 15, 16, 19, 19, 19, 19, + 21, 19, 17, 18, 19, 18, 15, 15, 17, 18, 18, 13, 11, 14, 15, 14, + 11, 6, 5, 10, 13, 17, 18, 11, 2, -2, -2, -3, 2, 14, 24, 30, + 37, 47, 52, 52, 56, 63, 65, 65, 63, 65, 72, 75, 73, 71, 73, 77, + 82, 82, 77, 77, 82, 90, 99, 104, 99, 89, 84, 86, 94, 106, 119, 127, + 126, 117, 104, 87, 64, 42, 24, 10, -2, -15, -22, -25, -27, -30, -35, -37, + -36, -34, -33, -36, -40, -42, -44, -43, -44, -48, -53, -57, -59, -57, -53, -52, + -53, -57, -62, -68, -73, -75, -75, -71, -63, -56, -48, -40, -34, -29, -26, -23, + -22, -21, -19, -19, -20, -21, -22, -22, -22, -22, -22, -21, -21, -21, -20, -19, + -19, -18, -18, -17, -17, -16, -14, -14, -13, -11, -9, -9, -9, -9, -9, -8, + -8, -8, -8, -8, -7, -6, -7, -6, -4, -3, -2, -2, -3, -4, -3, -3, + -2, -1, 0, 0, -1, -1, 0, -1, -1, -1, -3, -5, -5, -8, -10, -10, + -9, -9, -10, -11, -11, -11, -11, -11, -10, -9, -10, -10, -10, -11, -12, -12, + -13, -12, -11, -12, -14, -14, -11, -10, -12, -11, -11, -12, -12, -11, -11, -13, + -12, -9, -6, -6, -7, -7, -6, -5, -4, -4, -5, -8, -12, -11, -8, -4, + -3, -5, -6, -7, -9, -12, -13, -8, -3, -2, -4, -8, -11, -14, -15, -17, + -19, -19, -15, -8, -1, 2, 4, 8, 12, 17, 23, 26, 25, 24, 25, 30, + 36, 40, 39, 36, 33, 32, 33, 37, 43, 49, 53, 53, 49, 45, 43, 43, + 46, 52, 60, 67, 76, 82, 82, 78, 69, 58, 47, 37, 26, 14, 2, -9, + -16, -21, -24, -28, -32, -35, -37, -38, -37, -36, -36, -36, -39, -43, -46, -49, + -51, -49, -47, -46, -45, -45, -48, -52, -58, -62, -65, -66, -65, -62, -58, -54, + -50, -45, -39, -34, -30, -28, -25, -23, -21, -20, -20, -20, -20, -19, -18, -19, + -20, -18, -17, -18, -17, -17, -18, -17, -16, -15, -15, -13, -12, -10, -10, -10, + -9, -8, -7, -6, -4, -4, -5, -6, -5, -4, -4, -3, -2, -2, -1, -1, + -1, 0, 2, 3, 2, 2, 3, 2, 1, 2, 4, 5, 5, 4, 4, 4, + 3, 2, 2, 1, 0, 0, -1, -4, -5, -4, -2, -2, -3, -3, -3, -2, + -1, -2, -3, -2, -3, -4, -4, -3, -4, -6, -7, -4, 0, 0, -2, -4, + -4, -3, -2, -2, -3, -4, -4, -3, -2, -1, 3, 6, 8, 6, 3, 0, + 0, 2, 4, 5, 4, 3, 2, 2, 2, 1, 0, -1, 2, 7, 11, 9, + 6, 2, -1, -3, -3, -5, -7, -8, -6, -3, 2, 8, 13, 17, 18, 18, + 19, 23, 28, 34, 40, 42, 42, 40, 39, 39, 40, 42, 46, 50, 55, 59, + 59, 55, 51, 48, 48, 51, 57, 63, 70, 76, 82, 86, 88, 89, 86, 80, + 71, 61, 51, 43, 34, 25, 18, 10, 2, -5, -9, -12, -13, -12, -12, -13, + -14, -17, -22, -26, -29, -28, -27, -25, -24, -24, -25, -27, -31, -35, -40, -43, + -46, -47, -49, -49, -46, -43, -40, -36, -32, -28, -24, -21, -18, -16, -14, -13, + -13, -12, -11, -11, -12, -11, -10, -9, -11, -11, -11, -12, -12, -12, -10, -10, + -10, -10, -9, -8, -7, -6, -5, -4, -4, -4, -4, -4, -3, -2, -2, -1, + -2, -3, -2, -1, 0, 0, 1, 2, 3, 2, 1, 1, 2, 3, 3, 4, + 5, 4, 4, 5, 6, 7, 6, 4, 3, 3, 3, 2, -1, -3, -3, -1, + -1, -2, -3, -3, -2, -1, 1, 0, -1, -1, -2, -5, -6, -5, -4, -4, + -4, -4, -6, -6, -4, -1, 0, -2, -6, -9, -10, -8, -5, -4, -3, -3, + -1, 1, 1, -1, -3, -4, -2, 0, 2, 2, 0, -3, -6, -7, -6, -4, + -3, -2, -1, -1, -1, 0, 1, 0, -3, -9, -14, -18, -18, -15, -12, -9, + -8, -7, -5, -3, -2, 0, 5, 11, 17, 22, 25, 24, 23, 21, 20, 22, + 27, 32, 37, 40, 41, 40, 39, 37, 35, 34, 34, 35, 39, 45, 52, 59, + 66, 71, 73, 75, 74, 71, 65, 60, 55, 48, 39, 28, 17, 7, -1, -7, + -11, -13, -13, -14, -17, -21, -24, -28, -31, -32, -32, -32, -32, -31, -29, -29, + -30, -33, -36, -40, -44, -47, -50, -52, -54, -55, -54, -52, -49, -47, -43, -39, + -35, -31, -28, -26, -24, -22, -21, -19, -18, -17, -17, -16, -15, -16, -18, -17, + -16, -16, -17, -18, -18, -17, -16, -16, -14, -13, -13, -12, -12, -12, -11, -10, + -10, -9, -7, -8, -9, -10, -10, -8, -6, -5, -6, -6, -5, -3, -3, -4, + -4, -4, -3, -2, -2, -1, -1, -1, 0, 2, 3, 3, 3, 2, 1, 0, + -1, -1, -1, -2, -3, -5, -5, -4, -2, -3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, + 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 3, 2, 0, + -1, 1, 2, 1, -1, -1, 2, 2, 0, 1, 2, 2, -1, -4, -10, -21, + -30, -36, -41, -44, -40, -30, -18, -10, -8, -11, -13, -8, 3, 18, 32, 41, + 44, 45, 48, 49, 43, 32, 23, 14, 7, 8, 16, 27, 35, 37, 30, 18, + 9, 5, 3, 2, 1, 1, -1, -6, -11, -12, -6, -2, -5, -11, -18, -28, + -39, -47, -55, -69, -86, -99, -102, -92, -70, -46, -28, -15, -3, 7, 17, 26, + 28, 24, 23, 30, 42, 53, 57, 50, 36, 21, 5, -5, -4, 6, 20, 31, + 35, 34, 29, 26, 27, 37, 56, 76, 85, 80, 71, 63, 55, 47, 34, 13, + -13, -32, -39, -40, -46, -65, -93, -117, -128, -128, -126, -120, -110, -96, -78, -58, + -36, -14, 3, 10, 20, 41, 60, 68, 63, 54, 45, 39, 36, 32, 28, 29, + 35, 41, 47, 46, 41, 39, 43, 53, 68, 80, 78, 64, 46, 28, 13, 3, + -9, -35, -64, -80, -82, -74, -66, -71, -91, -111, -121, -118, -105, -86, -68, -57, + -49, -37, -22, -7, 5, 14, 26, 42, 55, 56, 46, 35, 25, 14, 6, 2, + 1, 3, 11, 22, 32, 40, 43, 42, 46, 60, 77, 88, 90, 78, 54, 30, + 14, 2, -15, -37, -62, -82, -90, -89, -86, -90, -99, -107, -109, -101, -81, -54, + -29, -14, -5, 7, 24, 40, 49, 56, 68, 83, 92, 92, 87, 74, 54, 32, + 12, -5, -19, -25, -24, -18, -7, 1, -1, -6, -4, 13, 41, 69, 84, 80, + 63, 44, 32, 29, 25, 11, -10, -25, -31, -35, -40, -48, -65, -87, -104, -109, + -102, -87, -69, -58, -54, -42, -21, 0, 13, 29, 51, 71, 84, 89, 86, 75, + 54, 33, 14, -3, -19, -29, -27, -22, -18, -11, -8, -16, -26, -19, 2, 24, + 40, 48, 42, 27, 21, 29, 34, 24, 7, -5, -14, -23, -28, -32, -45, -67, + -82, -85, -78, -63, -46, -34, -29, -24, -13, 0, 12, 25, 44, 65, 79, 85, + 86, 78, 60, 41, 27, 12, -5, -15, -15, -14, -13, -8, -7, -17, -27, -23, + -3, 23, 44, 51, 43, 25, 12, 11, 14, 8, -3, -10, -15, -22, -28, -30, + -36, -55, -73, -78, -74, -71, -63, -51, -43, -39, -34, -25, -18, -9, 8, 28, + 46, 56, 61, 62, 58, 47, 36, 28, 20, 12, 11, 16, 19, 20, 21, 15, + 0, -6, 10, 37, 57, 63, 55, 36, 15, 2, -3, -9, -19, -27, -34, -43, + -49, -49, -52, -66, -82, -86, -81, -77, -71, -61, -51, -47, -43, -35, -22, -12, + 2, 24, 47, 58, 63, 67, 66, 58, 51, 45, 34, 18, 9, 7, 7, 7, + 8, 1, -14, -24, -12, 18, 47, 64, 68, 63, 53, 42, 37, 38, 36, 29, + 21, 16, 11, 5, -2, -17, -36, -49, -52, -56, -62, -63, -61, -61, -63, -60, + -56, -49, -37, -19, 2, 17, 25, 30, 34, 37, 37, 37, 34, 25, 15, 11, + 13, 14, 14, 8, -7, -21, -16, 9, 37, 53, 60, 61, 53, 40, 33, 34, + 32, 22, 14, 12, 10, 6, -2, -15, -32, -48, -57, -60, -63, -67, -66, -63, + -63, -65, -64, -58, -49, -34, -13, 6, 16, 21, 28, 34, 38, 41, 43, 36, + 25, 19, 21, 26, 27, 20, 4, -11, -11, 7, 31, 53, 66, 70, 66, 57, + 49, 47, 44, 33, 21, 17, 16, 10, 1, -9, -26, -46, -60, -67, -76, -84, + -84, -80, -78, -79, -78, -73, -65, -52, -32, -11, 4, 10, 17, 25, 32, 36, + 40, 37, 24, 13, 15, 23, 23, 11, -5, -19, -25, -16, 9, 38, 59, 70, + 72, 67, 63, 63, 60, 50, 39, 32, 28, 22, 14, 3, -14, -34, -53, -65, + -76, -87, -94, -93, -91, -94, -96, -93, -86, -76, -56, -30, -9, 4, 16, 29, + 40, 51, 63, 65, 52, 39, 39, 45, 42, 29, 11, -7, -22, -24, -8, 19, + 42, 54, 60, 63, 61, 58, 57, 53, 43, 36, 36, 34, 28, 21, 11, -5, + -24, -39, -52, -65, -75, -77, -75, -75, -78, -80, -78, -73, -61, -43, -23, -9, + 1, 10, 23, 39, 52, 56, 47, 36, 35, 41, 42, 33, 17, -2, -24, -35, + -26, -3, 18, 32, 42, 50, 52, 53, 52, 47, 38, 31, 30, 31, 29, 26, + 22, 14, -1, -18, -33, -46, -58, -65, -65, -65, -71, -79, -81, -79, -75, -62, + -42, -27, -21, -14, 1, 19, 34, 40, 36, 29, 27, 31, 38, 39, 29, 9, + -12, -27, -28, -14, 8, 25, 37, 50, 62, 67, 66, 62, 53, 42, 36, 37, + 36, 32, 30, 25, 12, -7, -24, -39, -54, -65, -67, -67, -72, -78, -81, -82, + -81, -70, -51, -35, -29, -23, -7, 15, 30, 37, 40, 35, 25, 25, 36, 41, + 33, 15, -6, -26, -36, -27, -9, 7, 20, 35, 50, 58, 59, 58, 52, 43, + 37, 37, 37, 36, 34, 31, 24, 8, -11, -29, -44, -57, -67, -70, -73, -79, + -86, -92, -93, -87, -72, -59, -53, -46, -29, -9, 7, 20, 28, 26, 19, 17, + 27, 38, 38, 26, 7, -12, -25, -26, -15, 1, 14, 28, 47, 61, 67, 68, + 68, 63, 54, 51, 53, 51, 49, 49, 47, 34, 14, -5, -22, -39, -56, -65, + -67, -73, -86, -96, -97, -92, -86, -77, -69, -61, -49, -28, -6, 10, 22, 27, + 25, 24, 33, 49, 56, 48, 32, 13, -5, -15, -12, -2, 7, 18, 35, 50, + 59, 63, 65, 61, 53, 48, 46, 44, 43, 46, 49, 43, 27, 10, -6, -25, + -45, -53, -53, -60, -75, -87, -90, -90, -88, -81, -75, -72, -65, -48, -25, -6, + 5, 10, 13, 18, 31, 49, 60, 58, 44, 28, 12, -1, -7, -7, -1, 8, + 23, 41, 54, 61, 65, 66, 63, 56, 48, 43, 41, 42, 44, 43, 37, 25, + 8, -12, -32, -44, -49, -53, -64, -80, -91, -95, -93, -89, -85, -82, -78, -68, + -50, -27, -6, 0, -1, 0, 0, 0, 1, 2, 3, 6, 9, 13, 17, 19, + 13, -4, -15, -10, 4, 19, 26, 15, -9, -16, 6, -2, -18, 38, 64, 21, + -48, 30, 82, -23, -63, -50, -26, -7, 12, 26, 47, 83, 100, 3, -108, -87, + -30, -6, 5, 18, 33, 46, 47, 21, -52, -46, 48, 3, -54, -32, 22, 25, + -7, 12, 9, -18, -33, -24, 2, 44, 88, 92, 10, -28, -1, 1, 20, 42, + 1, -17, 53, 72, 12, -16, -74, -31, 127, 52, 1, -35, -46, 13, 39, -13, + -13, 13, 12, 11, 8, -57, -80, -44, -5, 14, 18, 6, -13, -26, -11, -8, + -24, 3, 30, 14, -28, -12, 41, -2, -37, -35, -23, -12, -1, 6, 17, 34, + 53, 19, -55, -67, -32, -13, -5, 2, 12, 19, 24, 14, -24, -47, 12, 11, + -36, -35, -1, 18, -3, 0, 5, -13, -25, -22, -5, 19, 53, 69, 21, -28, + -10, -5, 6, 28, 8, -25, 23, 57, 17, -17, -49, -63, 84, 70, 3, -23, + -50, -6, 36, -2, -20, 8, 14, 9, 13, -37, -82, -58, -19, 8, 17, 10, + -9, -26, -19, -7, -24, -9, 25, 22, -17, -28, 33, 16, -32, -37, -27, -15, + -4, 4, 13, 27, 48, 35, -35, -72, -43, -17, -7, -1, 9, 16, 23, 17, + -12, -51, -7, 21, -27, -40, -12, 19, 6, -3, 5, -9, -22, -23, -8, 11, + 42, 68, 38, -23, -16, -6, 3, 25, 19, -24, 8, 54, 31, -13, -33, -76, + 46, 95, 13, -13, -48, -20, 32, 13, -22, 2, 15, 10, 15, -17, -77, -67, + -31, 3, 17, 15, -3, -21, -23, -7, -20, -18, 18, 27, -4, -34, 17, 33, + -21, -36, -29, -16, -6, 4, 11, 23, 42, 47, -12, -69, -54, -22, -8, -2, + 7, 15, 22, 20, -2, -46, -27, 23, -13, -41, -22, 15, 16, -2, 4, -5, + -18, -21, -10, 5, 32, 64, 53, -12, -21, -6, 0, 21, 27, -16, -6, 48, + 42, -6, -22, -71, 2, 106, 31, -6, -41, -32, 22, 25, -18, -4, 15, 12, + 14, -1, -64, -74, -42, -5, 16, 19, 4, -16, -25, -10, -14, -23, 9, 29, + 9, -31, -2, 42, -5, -33, -30, -18, -8, 3, 9, 19, 36, 51, 10, -58, + -63, -29, -11, -2, 4, 13, 20, 21, 6, -35, -44, 16, 1, -38, -30, 7, + 23, 3, 2, -2, -16, -20, -12, 2, 23, 56, 62, 3, -24, -7, -2, 17, + 30, -5, -17, 37, 49, 4, -17, -57, -37, 99, 55, 0, -31, -41, 9, 33, + -10, -11, 13, 14, 12, 9, -47, -78, -53, -15, 12, 20, 9, -10, -24, -14, + -11, -25, -2, 27, 18, -21, -20, 39, 13, -29, -31, -20, -9, 1, 8, 17, + 30, 49, 29, -41, -70, -39, -15, -4, 2, 11, 17, 21, 11, -22, -52, 0, + 14, -31, -36, -4, 25, 11, 1, -1, -13, -19, -13, 0, 15, 45, 65, 20, + -24, -10, -4, 12, 30, 8, -22, 24, 52, 17, -14, -39, -61, 71, 81, 8, + -21, -44, -5, 34, 2, -16, 9, 16, 11, 14, -29, -76, -62, -27, 6, 20, + 15, -4, -21, -19, -9, -23, -12, 22, 25, -8, -30, 26, 30, -20, -31, -23, + -11, -1, 8, 14, 25, 44, 42, -19, -69, -50, -20, -6, 1, 9, 15, 20, + 15, -11, -51, -19, 20, -20, -39, -15, 23, 20, 2, 0, -11, -17, -14, -2, + 9, 35, 63, 37, -19, -14, -5, 8, 28, 18, -22, 9, 50, 28, -11, -26, + -68, 32, 100, 22, -13, -43, -18, 30, 15, -17, 4, 16, 12, 15, -12, -69, + -69, -39, -2, 18, 19, 2, -17, -22, -10, -19, -20, 15, 27, 4, -31, 7, + 41, -7, -30, -25, -13, -3, 6, 12, 22, 38, 48, 3, -61, -60, -27, -9, + 0, 7, 13, 19, 17, -2, -44, -37, 18, -7, -39, -24, 15, 28, 7, 0, + -9, -16, -14, -3, 6, 25, 57, 49, -9, -18, -7, 3, 25, 26, -15, -4, + 45, 38, -5, -18, -61, -8, 103, 42, -6, -37, -30, 21, 25, -13, -3, 16, + 13, 14, 2, -56, -73, -49, -12, 15, 21, 8, -11, -23, -13, -15, -24, 4, + 28, 14, -25, -12, 42, 9, -26, -26, -15, -5, 5, 11, 19, 32, 48, 22, + -46, -67, -36, -12, -2, 4, 12, 17, 18, 4, -33, -50, 6, 6, -35, -31, + 4, 31, 14, 0, -8, -15, -14, -4, 4, 17, 48, 57, 4, -21, -8, -1, + 21, 30, -5, -15, 36, 44, 5, -14, -46, -40, 88, 67, 2, -29, -37, 9, + 31, -6, -9, 14, 15, 13, 11, -40, -74, -58, -24, 9, 22, 13, -6, -21, + -17, -13, -25, -6, 25, 21, -13, -25, 33, 26, -19, -27, -18, -6, 3, 10, + 16, 27, 45, 36, -26, -69, -46, -17, -4, 2, 10, 15, 18, 9, -22, -55, + -11, 15, -26, -36, -8, 30, 23, 2, -6, -14, -14, -6, 4, 11, 37, 59, + 19, -20, -10, -4, 16, 31, 7, -20, 23, 47, 15, -13, -32, -58, 58, 88, + 13, -21, -40, -5, 32, 4, -13, 10, 17, 12, 14, -23, -70, -65, -35, 1, + 20, 17, 0, -18, -20, -12, -23, -16, 19, 25, -1, -30, 16, 39, -8, -26, + -20, -8, 1, 9, 14, 23, 39, 44, -5, -63, -57, -24, -7, 1, 8, 13, + 17, 12, -12, -52, -30, 17, -15, -38, -18, 23, 32, 7, -6, -13, -14, -7, + 3, 8, 27, 55, 33, -16, -13, -6, 10, 30, 17, -20, 10, 46, 25, -9, + -21, -60, 19, 100, 31, -13, -39, -17, 27, 15, -13, 4, 17, 13, 15, -8, + -61, -69, -46, -10, 17, 21, 6, -13, -22, -13, -20, -22, 10, 27, 9, -27, + -4, 44, 6, -24, -22, -11, -1, 8, 13, 20, 33, 46, 14, -50, -65, -33, + -11, 0, 5, 12, 15, 14, -4, -43, -46, 10, -2, -36, -27, 13, 36, 15, + -4, -13, -14, -8, 3, 7, 18, 49, 43, -7, -16, -7, 5, 27, 24, -14, + -3, 42, 33, -3, -16, -51, -17, 97, 51, -3, -38, -5, -13, 1, -7, 5, + -22, -32, -35, -32, -43, -35, -55, -42, -66, -48, -80, -57, -17, -128, -59, -76, + 0, -26, 1, -33, 21, 3, 16, 15, 26, 43, 28, 66, 6, 97, 40, 103, + 67, 101, 102, 98, 94, 21, 98, 90, 57, 78, 89, 81, 61, -6, 54, 4, + 62, 19, 27, 34, 12, 16, 14, -17, 19, -5, -2, -13, -38, -24, -3, -33, + -14, -11, -16, 0, -13, 7, -26, -13, -16, 6, -57, -23, -28, -13, -9, -34, + -32, -20, -87, -62, -28, -38, -75, -37, -27, -41, -71, -48, -30, -44, -83, -67, + -52, -48, -45, -46, -45, -63, -47, -40, -32, -45, -24, -32, -43, -21, -17, 0, + 21, 26, 43, 51, 62, 47, 41, 55, 57, 68, 34, 53, 63, 62, 71, 60, + 61, 56, 53, 56, 54, 38, 50, 58, 50, 40, 28, 54, 39, 41, 38, 22, + 32, 20, -3, 19, -1, -7, -6, -16, -16, -14, -27, -29, -46, -66, -61, -51, + -54, -61, -41, -50, -47, -52, -55, -45, -44, -28, -58, -56, -31, -37, -36, -32, + -18, -16, -34, -29, -9, -21, -20, -30, -22, -17, -19, -8, -12, -14, -6, -14, + -6, -11, -2, 4, -6, 9, 8, 17, 23, 13, 31, 13, 24, 30, 28, 29, + 30, 43, 34, 37, 52, 42, 44, 50, 67, 59, 49, 54, 48, 43, 51, 45, + 42, 62, 47, 39, 37, 36, 24, 28, 13, 3, 9, -11, -3, -9, -14, -18, + -34, -27, -29, -39, -42, -38, -46, -37, -46, -43, -41, -35, -38, -31, -38, -34, + -39, -39, -34, -48, -44, -47, -49, -54, -52, -44, -53, -37, -47, -38, -31, -38, + -27, -19, -19, -15, -16, 0, 0, 2, 7, 13, 29, 22, 32, 32, 39, 47, + 41, 40, 55, 48, 41, 44, 57, 43, 36, 47, 43, 42, 37, 32, 32, 27, + 33, 36, 30, 23, 25, 25, 22, 18, 22, 20, 16, 8, 6, 12, 7, 0, + 1, 3, -5, -14, -9, -7, -8, -19, -15, -16, -23, -21, -21, -32, -31, -29, + -26, -27, -29, -33, -26, -29, -30, -39, -28, -41, -43, -35, -34, -32, -29, -28, + -28, -25, -27, -24, -27, -27, -27, -22, -23, -17, -9, -10, -14, -10, -8, -4, + -2, -1, -3, 5, 4, 10, 11, 7, 13, 11, 14, 27, 22, 22, 22, 27, + 36, 34, 36, 37, 45, 44, 47, 48, 51, 49, 52, 51, 52, 48, 50, 47, + 48, 42, 40, 29, 33, 24, 22, 12, 5, 0, -3, -5, -9, -21, -21, -25, + -19, -28, -28, -30, -33, -39, -42, -42, -46, -46, -45, -42, -43, -47, -47, -36, + -32, -30, -34, -31, -22, -29, -29, -30, -26, -28, -30, -21, -26, -27, -21, -19, + -16, -11, -12, -8, -2, 1, -4, 1, 0, 1, 9, 8, 7, 12, 10, 13, + 20, 17, 18, 21, 26, 29, 30, 30, 29, 34, 33, 34, 33, 30, 32, 33, + 28, 33, 29, 35, 32, 31, 30, 31, 30, 25, 27, 24, 21, 21, 20, 16, + 17, 12, 6, 4, -3, 1, -6, -7, -11, -13, -11, -10, -8, -13, -12, -9, + -17, -14, -19, -24, -22, -24, -30, -32, -30, -33, -37, -39, -40, -42, -39, -41, + -39, -40, -41, -35, -35, -35, -37, -36, -33, -30, -25, -25, -19, -16, -16, -10, + -6, -7, -4, -2, 1, 3, 6, 10, 9, 15, 17, 18, 17, 13, 19, 18, + 17, 19, 20, 24, 24, 27, 27, 29, 30, 26, 28, 28, 27, 28, 26, 25, + 24, 25, 20, 19, 17, 18, 15, 12, 13, 10, 6, 8, 6, 3, 4, 3, + 0, -3, 0, -1, -2, -5, -4, -5, -4, -5, -6, -8, -9, -9, -12, -11, + -16, -16, -15, -15, -13, -17, -16, -17, -17, -21, -20, -25, -24, -24, -24, -26, + -30, -30, -27, -30, -26, -26, -27, -27, -25, -24, -19, -20, -17, -13, -12, -8, + -8, -8, -6, -5, -2, -1, 0, 3, 8, 10, 12, 16, 18, 24, 25, 25, + 28, 30, 28, 32, 33, 31, 32, 31, 35, 33, 31, 31, 27, 28, 26, 23, + 23, 20, 22, 18, 16, 13, 11, 9, 5, 4, -2, -2, -3, -8, -9, -11, + -12, -13, -15, -15, -15, -15, -15, -14, -12, -12, -13, -13, -8, -11, -10, -12, + -10, -12, -12, -8, -8, -9, -9, -9, -8, -9, -10, -11, -11, -10, -13, -14, + -13, -16, -16, -17, -17, -18, -19, -18, -17, -16, -16, -15, -15, -13, -12, -10, + -12, -10, -9, -8, -6, -6, -3, 0, 0, 1, 2, 2, 3, 4, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 12, 13, 14, 14, 15, 15, 15, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 15, 15, 14, 13, 13, 12, 11, 10, + 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, -1, -1, -2, -3, -4, -5, + -5, -6, -7, -7, -8, -9, -9, -10, -11, -11, -12, -12, -13, -13, -13, -13, + -14, -14, -14, -15, -15, -15, -15, -15, -15, -16, -16, -16, -15, -15, -15, -14, + -13, -13, -12, -11, -10, -9, -8, -7, -6, -5, -4, -2, -1, 0, 1, 2, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 12, 13, 13, 14, 14, 15, 15, + 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 16, 16, 15, 15, + 14, 14, 13, 12, 11, 10, 9, 7, 6, 5, 3, 1, 0, -2, -4, -5, + -7, -9, -10, -11, -13, -14, -15, -15, -16, -17, -17, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -17, -17, -16, -16, -15, -14, -14, -13, -12, + -11, -10, -9, -8, -7, -6, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 9, 10, 11, 11, 12, 13, 13, 13, 14, 14, 14, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 14, 14, 14, 13, 12, 12, + 11, 10, 9, 8, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0, -1, 0, + 0, -1, 2, 1, 0, 1, 4, 2, 2, 2, 5, 2, 5, 5, 8, 4, + 13, 15, 19, -62, -65, 56, -18, -128, -39, 15, -57, -10, 19, -22, -11, 36, + 30, 5, 19, 25, 17, 21, 21, 16, 21, 18, 17, 17, 15, 14, 13, 12, + 10, 6, 8, 6, 6, -1, 1, -4, 7, -10, -36, 35, 64, -25, -18, 83, + 50, 22, 39, 21, 19, -4, -20, 28, 0, -88, -55, -5, -55, -83, -64, -58, + -77, -61, -22, -39, -57, -15, 2, -14, -9, -1, 1, 1, 2, 9, 5, 6, + 11, 9, 9, 10, 11, 12, 12, 10, 9, 9, 13, 7, 3, 14, 4, -3, + 2, 2, 17, 40, 12, 14, 55, 58, 44, 39, 38, 37, 6, 4, 31, -6, + -50, -25, -15, -49, -52, -41, -60, -68, -32, -25, -47, -36, -9, -5, -7, -3, + 3, 4, 6, 8, 11, 9, 10, 14, 14, 11, 13, 15, 14, 13, 14, 12, + 11, 12, 12, 8, 8, 3, 4, 5, -1, 8, 32, 21, 14, 43, 50, 39, + 47, 39, 20, 23, 16, 5, -9, -23, -26, -34, -48, -37, -48, -71, -56, -34, + -43, -49, -36, -20, -14, -13, -9, -4, -1, 1, 3, 6, 6, 6, 9, 10, + 8, 10, 11, 11, 11, 11, 10, 10, 10, 10, 6, 6, 4, 3, 6, -3, + 2, 25, 23, 16, 34, 38, 43, 51, 31, 19, 38, 22, -10, -7, 0, -25, + -45, -34, -32, -54, -62, -47, -39, -45, -47, -36, -24, -19, -16, -11, -6, -3, + 0, 2, 4, 6, 7, 8, 10, 11, 9, 11, 12, 11, 11, 12, 11, 10, + 10, 8, 7, 6, 3, 5, 4, 0, 13, 28, 23, 19, 36, 50, 42, 30, + 31, 39, 24, -6, -2, 7, -21, -40, -27, -34, -51, -51, -44, -42, -45, -45, + -37, -27, -22, -18, -13, -9, -6, -2, 1, 2, 5, 7, 7, 9, 11, 10, + 10, 12, 12, 11, 12, 11, 10, 10, 9, 7, 7, 4, 5, 7, 1, 7, + 27, 24, 15, 34, 47, 37, 32, 36, 36, 26, 4, -1, 4, -13, -30, -27, + -34, -47, -46, -42, -43, -45, -44, -38, -31, -25, -21, -17, -12, -8, -5, -1, + 1, 3, 5, 6, 8, 9, 10, 10, 10, 11, 11, 11, 11, 11, 10, 9, + 7, 7, 6, 3, 6, 5, 6, 17, 23, 19, 29, 40, 35, 33, 36, 34, + 26, 14, 3, 0, -6, -18, -26, -32, -39, -40, -38, -39, -41, -40, -36, -31, + -27, -23, -19, -15, -12, -8, -4, -2, 0, 3, 4, 5, 7, 8, 9, 9, + 9, 10, 10, 10, 10, 10, 9, 8, 8, 8, 7, 8, 10, 11, 14, 19, + 22, 25, 28, 29, 29, 29, 27, 21, 14, 7, -1, -5, -11, -19, -26, -29, + -31, -32, -33, -34, -33, -32, -29, -26, -24, -21, -18, -15, -12, -9, -6, -4, + -2, 0, 2, 3, 5, 6, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, + 10, 10, 11, 12, 14, 16, 18, 20, 22, 23, 24, 24, 23, 20, 17, 12, + 7, 2, -3, -8, -13, -17, -21, -23, -25, -26, -27, -27, -27, -26, -25, -23, + -21, -19, -17, -14, -12, -9, -7, -5, -3, -1, 1, 2, 4, 5, 6, 6, + 7, 7, 8, 8, 9, 9, 10, 10, 11, 12, 13, 15, 16, 18, 19, 21, + 22, 22, 22, 21, 19, 17, 13, 9, 4, 0, -5, -10, -14, -18, -21, -23, + -25, -26, -26, -26, -26, -25, -23, -22, -20, -18, -15, -13, -11, -9, -6, -4, + -2, 0, 1, 3, 4, 5, 6, 7, 7, 8, 8, 8, 9, 9, 10, 11, + 12, 13, 14, 15, 17, 18, 20, 21, 21, 21, 21, 19, 17, 14, 11, 7, + 2, -3, -7, -11, -15, -19, -21, -23, -25, -25, -26, -25, -25, -24, -22, -21, + -19, -17, -15, -12, -10, -8, -6, -4, -2, 0, 1, 3, 4, 5, 6, 6, + 7, 8, 8, 9, 9, 10, 11, 11, 12, 13, 15, 16, 17, 19, 20, 20, + 21, 20, 19, 18, 15, 12, 8, 4, 0, -4, -9, -13, -16, -19, -21, -23, + -24, -25, -25, -25, -24, -23, -21, -20, -18, -16, -14, -12, -9, -7, -5, -3, + -2, 0, 1, 3, 4, 5, 6, 6, 7, 8, 8, 9, 10, 10, 11, 12, + 13, 14, 15, 17, 18, 19, 20, 20, 20, 19, 18, 16, 13, 10, 6, 2, + -2, -6, -10, -13, -16, -19, -21, -23, -24, -24, -24, -24, -23, -22, -20, -19, + -17, -15, -13, -11, -8, -6, -5, -3, -1, 0, 2, 3, 4, 5, 6, 7, + 7, 8, 9, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, + 19, 18, 16, 14, 11, 8, 4, 0, -3, -7, -11, -14, -17, -19, -21, -22, + -23, -23, -23, -23, -22, -21, -19, -18, -16, -14, -12, -10, -8, -6, -4, -2, + -1, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 10, 11, 12, 12, 13, + 14, 15, 16, 17, 18, 19, 19, 19, 18, 17, 15, 12, 9, 6, 3, -1, + -5, -9, -12, -15, -17, -19, -21, -22, -23, -23, -23, -22, -21, -20, -18, -17, + -15, -13, -11, -9, -7, -6, -4, -2, -1, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 9, 10, 11, 12, 13, 14, 15, 16, 17, 17, 18, 18, 18, 17, + 16, 14, 12, 10, 7, 4, 0, -3, -6, -9, -12, -15, -17, -18, -20, -20, + -21, -21, -21, -20, -19, -18, -17, -15, -14, -12, -10, -9, -7, -5, -4, -2, + -1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 14, + 15, 15, 16, 16, 16, 16, 16, 15, 14, 12, 11, 8, 6, 3, 0, -3, + -6, -9, -12, 1, -1, 2, -1, 4, 2, 8, 5, 10, -5, 0, 5, 17, + -11, 0, 19, -17, 26, 65, 15, 29, 3, 35, 67, 50, 88, 59, 117, 28, + -6, -16, 29, 63, 62, -40, 59, 22, -95, -49, -55, 19, 36, -15, 26, -117, + 60, 8, -101, -115, 23, 60, -32, -106, -84, -88, -127, -99, -117, -110, -56, -42, + -53, -79, -44, 43, 10, -11, 72, 22, 61, 10, -92, -106, -111, -35, -68, -128, + -67, -36, -118, -97, -96, -4, 75, 70, 113, 36, 73, 115, 37, 6, 79, 97, + 89, -8, -38, -8, -72, -8, -29, -35, 73, 98, 66, 12, 40, 113, 106, 87, + 126, 112, 127, 87, -3, -21, -23, 40, 14, -68, -20, 21, -57, -67, -67, -4, + 69, 53, 90, 17, 36, 78, -7, -54, -2, 32, 21, -71, -109, -89, -124, -103, + -114, -113, -37, -4, -30, -88, -83, 15, 13, -35, 42, 28, 33, 14, -90, -92, + -104, -37, -34, -115, -73, -9, -75, -89, -85, -29, 67, 51, 97, 55, 47, 115, + 46, -9, 42, 90, 96, 26, -36, 11, -43, -25, -6, -37, 59, 104, 88, 31, + 22, 96, 116, 69, 110, 119, 119, 109, 11, -15, -26, 18, 37, -45, -32, 34, + -13, -62, -62, -30, 61, 47, 75, 46, 14, 72, 14, -58, -35, 16, 30, -38, + -109, -78, -109, -116, -102, -123, -57, -2, -11, -58, -95, -18, 22, -41, -3, 36, + 20, 31, -69, -94, -100, -72, -21, -91, -92, -9, -33, -82, -81, -57, 48, 52, + 70, 81, 35, 97, 69, -10, 8, 66, 94, 55, -27, 4, -5, -40, -1, -33, + 30, 102, 101, 61, 19, 70, 121, 72, 77, 123, 112, 121, 36, -13, -21, -10, + 38, -18, -43, 27, 25, -40, -59, -45, 40, 54, 52, 68, 15, 56, 35, -48, + -58, -12, 25, -10, -98, -84, -83, -122, -101, -123, -81, -8, -3, -28, -85, -47, + 20, -28, -39, 23, 18, 31, -38, -99, -92, -97, -35, -66, -102, -26, -3, -60, + -77, -69, 18, 59, 47, 87, 46, 73, 86, 3, -13, 34, 80, 70, -8, -12, + 19, -32, -12, -21, 3, 91, 105, 87, 34, 51, 114, 89, 53, 106, 115, 119, + 65, -10, -13, -25, 20, 4, -45, 9, 44, -8, -49, -51, 14, 61, 39, 68, + 34, 39, 51, -30, -67, -41, 7, 5, -76, -96, -65, -111, -110, -115, -103, -20, + -1, -9, -58, -65, 8, -9, -55, -6, 17, 24, -11, -94, -89, -102, -64, -50, + -101, -51, 6, -30, -66, -71, -12, 59, 40, 72, 67, 58, 91, 24, -21, 6, + 56, 74, 14, -22, 23, -8, -24, -14, -13, 71, 106, 101, 62, 42, 101, 105, + 49, 76, 114, 114, 87, 3, -12, -23, -6, 13, -37, -11, 45, 24, -29, -49, + -8, 57, 40, 53, 54, 32, 56, -6, -65, -61, -21, 6, -52, -101, -65, -85, + -115, -109, -116, -42, 0, -1, -27, -65, -12, 7, -51, -37, 7, 17, 6, -76, + -95, -94, -91, -52, -90, -76, -2, -4, -46, -66, -35, 46, 46, 49, 78, 57, + 85, 50, -17, -13, 26, 64, 34, -22, 9, 18, -22, -14, -18, 42, 103, 105, + 88, 50, 83, 114, 63, 49, 96, 110, 99, 26, -14, -15, -23, 6, -24, -29, + 33, 45, 0, -38, -23, 44, 50, 37, 60, 38, 52, 21, -54, -70, -48, -7, + -31, -95, -78, -63, -104, -108, -117, -69, -4, -1, -5, -47, -30, 13, -33, -58, + -14, 8, 11, -50, -99, -87, -101, -70, -77, -92, -22, 10, -22, -52, -46, 23, + 55, 36, 70, 66, 74, 69, -2, -23, 1, 43, 43, -11, -8, 29, -4, -17, + -16, 18, 91, 105, 102, 71, 72, 112, 83, 40, 70, 101, 102, 50, -10, -10, + -24, -10, -13, -36, 14, 52, 27, -18, -28, 26, 58, 33, 51, 49, 46, 40, + -34, -70, -66, -31, -22, -81, -92, -56, -83, -105, -112, -91, -17, 0, 2, -22, + -37, 7, -12, -61, -39, -5, 7, -27, -93, -90, -96, -90, -72, -95, -48, 9, + -1, -33, -46, 0, 55, 37, 50, 72, 68, 77, 20, -25, -15, 17, 40, 3, + -20, 22, 19, -12, -14, 2, 70, 105, 106, 92, 72, 104, 100, 48, 46, 83, + 98, 70, 3, -12, -16, -23, -11, -34, -8, 46, 47, 11, -21, 8, 57, 41, + 36, 53, 45, 48, -6, -64, -72, -57, -28, -61, -98, -65, -60, -94, -105, -103, + -41, 1, 0, -1, -29, -6, 5, -48, -60, -26, -3, -12, -74, -97, -86, -100, + -80, -89, -74, -6, 13, -10, -35, -18, 41, 48, 33, 64, 68, 75, 46, -15, + -25, -7, 24, 16, -20, 4, 33, 5, -11, -5, 43, 98, 105, 105, 85, 93, + 110, 67, 35, 59, 87, 81, 25, -13, -9, -23, -18, -27, -25, 30, 55, 37, + -1, -3, 46, 53, 29, 44, 47, 48, 20, -48, -72, -72, -47, -48, -93, -82, + -51, -73, -96, -102, -66, -6, 0, 5, -10, -16, 10, -26, -66, -49, -20, -10, + -51, -98, -86, -93, -93, -85, -88, -32, 14, 8, -16, -23, 22, 54, 32, 45, + 67, 70, 61, 4, -27, -21, 2, 17, -13, -13, 29, 26, -1, -5, 23, 83, + 104, 106, 100, 90, 110, 87, 40, 38, 68, 80, 45, -6, -9, -14, -24, -23, + -32, 8, 52, 53, 25, 1, 31, 60, 35, 30, 45, 45, 36, -24, -68, -76, + -67, -49, -80, -94, -57, -54, -81, -95, -82, -23, 2, 1, 4, -12, 4, -5, + -57, -65, -40, -20, -36, -87, -94, -83, -97, -87, -90, -57, 2, 18, 2, -12, + 8, 10, -20, 30, 25, 21, 14, 4, 15, -48, -33, 11, -70, 54, -5, -21, + -8, -3, 73, -52, 65, -55, 80, -28, -67, -3, -13, 21, -49, -2, 11, 36, + 59, -60, 34, -28, 21, -25, -45, 54, 5, 0, -19, -12, 20, 54, -51, -23, + 22, 36, -59, -20, 8, 28, -9, -54, 127, -44, 69, -128, 5, 69, -8, -98, + 45, 69, 20, -97, 23, -7, 121, -81, -2, -21, 51, -67, -14, -24, 127, -60, + 45, -116, 127, -29, -93, -23, 107, -5, -21, -62, 37, 41, 29, -74, -63, 103, + 24, -59, -44, 62, 43, -28, -46, 7, 72, 19, -70, -47, 42, 53, -68, -13, + 37, 59, -38, -60, 39, 66, 27, -128, 36, 77, 15, -74, -15, 75, 38, -49, + -11, -39, 16, -8, -30, 35, 41, -1, -2, 17, -68, 99, -97, 60, -49, 32, + -44, -29, 82, -26, 39, -35, 10, 38, -20, -21, -92, 83, -24, 13, 31, -33, + 22, 45, -31, -24, 9, -24, -32, 42, -17, 34, 7, -27, 6, 61, -9, -34, + -5, -8, -17, -6, -34, 17, 43, -9, 35, -34, 16, 27, -24, -17, -17, 5, + -17, 42, -31, 22, 17, -26, -22, 32, 41, -27, -25, -10, -5, 16, -2, 13, + -1, 48, -33, -27, 6, 16, 13, -37, -11, 18, 25, -42, -11, 46, -7, -15, + 9, 15, 4, -3, -36, -24, 31, -8, 14, 12, 27, -19, -17, -14, -7, 42, + -5, -15, 5, 1, -15, 14, 43, -19, 1, -25, -35, 16, 16, 29, -12, 8, + -14, 1, 21, -8, -12, -22, -4, 24, 26, -16, -22, 37, 3, -41, 7, 4, + 3, 30, 4, -27, 11, -6, -26, 33, 23, -23, -14, -20, -7, -4, 36, 0, + 18, 10, -27, 1, 1, 16, -1, -4, -44, -5, 17, 9, 13, -4, -3, 31, + 24, -14, -26, 9, -27, -28, 19, 22, 32, -11, -15, 5, 15, -23, -21, 16, + 14, 18, -11, -26, 13, 10, -12, -12, 11, 14, -6, -13, -3, 6, -6, 3, + 12, 32, 14, -22, -45, -10, 37, 11, -50, -11, 50, 22, -13, -4, -4, 15, + -16, -33, 7, 34, -9, -14, -1, 21, 15, -14, -12, -6, 7, 8, 2, 0, + -5, 6, 15, 4, -9, 13, 3, -51, -18, 27, 10, 5, -11, 6, -1, 5, + 22, 2, -14, -39, -12, 19, 17, 4, 11, 5, -25, 2, 23, 8, 2, -3, + -39, -22, 4, 18, 6, 14, 25, 20, -17, -20, 17, 7, -43, -38, -18, 17, + 24, -6, 30, 44, 6, -36, -20, 7, 24, 1, -69, -25, 47, 15, -4, 35, + 19, -18, -22, -12, 20, 39, -36, -49, 9, 28, -16, 9, 34, 36, -22, -69, + -16, 39, 7, -28, -3, 33, -18, -7, 18, 53, 24, -37, -61, -10, 38, 2, + -24, -11, 12, 17, 0, 28, 50, -5, -59, -57, 22, 14, -15, -5, 22, 9, + -20, 19, 33, 31, -33, -62, -13, -2, 45, -9, -4, -3, 19, 8, -8, 40, + 8, -16, -44, -19, 16, 3, 23, -32, 22, 5, -9, 5, 26, 21, -27, -18, + -45, 3, 15, 0, 7, 7, 7, 13, 18, -10, 3, -5, -30, -30, -3, 9, + 31, 17, -10, 19, 28, -33, -20, 31, 14, -67, -27, 13, 20, 29, 1, -2, + 24, -3, -26, -12, 32, -7, -31, -17, 5, 22, 11, -6, 6, 7, 2, 7, + 5, -12, -22, -17, -24, 22, 47, 1, 2, 10, 5, -29, -5, 13, 1, -30, + -28, -5, 23, 25, 6, 5, 1, 7, 0, 5, 3, -33, -37, -6, 19, 20, + 26, -1, -15, 21, 9, -14, -13, 0, -11, -24, -9, 9, 23, 1, 1, 32, + 11, -25, -18, 5, -5, -6, -9, -10, 2, 18, 4, 12, 6, -2, -8, 2, + 2, -7, 2, -22, -5, 17, 25, 15, -5, -1, -24, -8, -10, -5, 12, 7, + -4, -10, 4, 8, 22, 11, -1, -12, -31, -17, 6, 12, 11, 5, -3, -1, + 22, 0, -4, 3, -18, -17, -3, 16, 9, 2, -5, 0, 4, -9, 18, 17, + -22, -19, -8, -6, 21, 11, -6, -16, 33, 13, -15, -3, -15, 1, -3, -10, + -7, 8, 17, -11, 9, 19, 0, 5, 0, -18, -13, 2, -20, 10, 29, -11, + -13, 5, 11, 16, 4, -25, -21, 13, -5, 1, 3, -1, 6, 13, -7, -1, + 17, -6, -6, -9, -6, -3, -1, 1, 18, 11, -22, 2, 18, -2, -15, 1, + 5, -12, -10, -7, 9, 26, 10, -11, 5, 0, -7, -3, -11, -9, -3, 2, + -10, 19, 28, -3, -3, -4, 9, -14, -5, -7, 8, -3, -27, 5, 37, 11, + -2, 3, -27, -15, 12, -2, 14, 2, -8, -16, 22, 11, -1, 10, -17, -8, + -5, -23, 2, 29, 8, -21, 8, 12, 6, 8, -17, 3, -2, -12, -27, 16, + 25, -5, -7, 2, 19, 1, -15, 7, 2, -5, -34, 2, 18, 17, -10, 2, + 18, -1, -12, -10, 5, 1, -16, -9, 12, 21, 4, -10, 2, 12, 1, -19, + -11, 20, 5, -14, -21, 5, 17, -5, 3, 17, 4, -25, -5, 5, 4, 0, + -5, 2, 2, -1, 1, 13, 0, -11, -8, 3, 2, -1, -3, -3, 11, 8, + -6, 2, 7, 4, -5, -23, -2, 14, -1, -15, -2, 15, 10, 1, -4, 16, + 1, -24, -12, 8, 8, -20, -2, 14, 13, 10, 2, 2, -9, -6, -9, -3, + 5, 7, -3, -9, 0, 2, 8, 3, -1, 2, -4, 0, -1, -1, -1, -2, + -8, -14, -19, -28, -51, -53, -49, -48, -49, -44, -37, -30, -23, -14, -8, -11, + -5, 3, 11, 2, 0, 8, 19, 10, 1, 6, 18, 15, 4, 4, 17, 19, + 13, 9, 20, 27, 26, 26, 33, 42, 45, 53, 59, 68, 69, 83, 89, 92, + 85, 88, 91, 80, 56, 37, 29, 9, -25, -54, -65, -74, -94, -113, -112, -103, + -101, -103, -93, -79, -66, -62, -50, -41, -33, -27, -17, -11, -12, -8, 0, 7, + -1, -2, 5, 15, 8, -1, 3, 15, 13, 2, 2, 12, 17, 12, 8, 15, + 23, 24, 25, 29, 38, 42, 50, 56, 65, 68, 78, 87, 91, 87, 87, 91, + 84, 64, 43, 33, 16, -14, -44, -60, -70, -87, -107, -111, -105, -101, -103, -96, + -84, -70, -64, -55, -45, -36, -30, -22, -14, -14, -11, -4, 4, 0, -3, 1, + 11, 8, -1, 0, 10, 12, 3, 0, 9, 15, 11, 7, 14, 22, 23, 24, + 28, 37, 42, 49, 55, 64, 67, 78, 87, 91, 88, 88, 93, 86, 67, 47, + 36, 20, -10, -40, -56, -67, -84, -104, -109, -105, -101, -103, -96, -85, -71, -65, + -56, -46, -38, -31, -23, -16, -15, -12, -6, 2, -1, -5, 0, 9, 6, -1, + -1, 8, 11, 3, 0, 8, 14, 11, 7, 13, 21, 23, 23, 27, 37, 41, + 48, 54, 63, 67, 77, 86, 91, 89, 89, 93, 87, 70, 51, 39, 23, -6, + -36, -53, -64, -81, -101, -107, -103, -100, -102, -96, -85, -72, -66, -57, -47, -39, + -32, -25, -17, -16, -13, -7, 0, -3, -5, -1, 7, 6, -2, -2, 7, 9, + 2, -1, 7, 13, 10, 7, 12, 20, 22, 23, 27, 36, 41, 48, 54, 63, + 68, 77, 87, 91, 91, 91, 95, 89, 73, 54, 43, 27, -1, -31, -49, -61, + -78, -98, -105, -102, -99, -101, -96, -85, -73, -66, -58, -48, -40, -33, -26, -19, + -17, -14, -9, -2, -4, -6, -3, 5, 4, -3, -3, 5, 8, 1, -1, 6, + 12, 10, 7, 11, 20, 22, 23, 27, 35, 41, 47, 54, 62, 68, 76, 86, + 91, 91, 92, 96, 91, 76, 58, 46, 30, 3, -27, -45, -57, -75, -94, -103, + -100, -98, -100, -96, -85, -74, -67, -59, -49, -41, -34, -28, -20, -19, -15, -10, + -3, -5, -7, -4, 3, 3, -4, -4, 4, 7, 1, -2, 5, 11, 9, 6, + 11, 19, 21, 22, 26, 35, 40, 46, 53, 61, 67, 76, 86, 91, 92, 93, + 97, 93, 78, 61, 49, 33, 7, -22, -41, -54, -72, -91, -100, -99, -97, -100, + -96, -86, -74, -67, -60, -51, -42, -35, -29, -22, -20, -17, -11, -5, -6, -8, + -5, 2, 1, -5, -5, 2, 5, 0, -3, 3, 10, 8, 5, 10, 18, 21, + 21, 25, 34, 39, 45, 52, 61, 67, 75, 85, 91, 92, 94, 97, 94, 81, + 64, 52, 37, 11, -18, -37, -51, -69, -88, -98, -98, -96, -99, -95, -86, -75, + -68, -61, -52, -44, -36, -30, -23, -21, -17, -13, -6, -7, -9, -6, 0, 0, + -5, -5, 1, 4, -1, -3, 2, 8, 8, 5, 10, 17, 20, 21, 25, 33, + 39, 45, 51, 60, 66, 75, 85, 91, 93, 94, 98, 95, 83, 67, 55, 40, + 15, -14, -33, -48, -66, -85, -96, -96, -95, -98, -95, -86, -75, -69, -62, -53, + -45, -38, -32, -25, -22, -19, -14, -8, -9, -10, -8, -2, -1, -6, -7, -1, + 2, -2, -4, 1, 7, 6, 5, 8, 16, 19, 20, 24, 32, 38, 44, 50, + 59, 66, 74, 84, 91, 93, 95, 99, 97, 85, 70, 58, 43, 18, -10, -30, + -45, -63, -82, -93, -95, -94, -97, -95, -87, -76, -70, -63, -54, -46, -39, -33, + -26, -23, -20, -16, -10, -10, -12, -9, -3, -3, -7, -8, -2, 1, -2, -5, + 0, 6, 6, 4, 8, 15, 18, 20, 23, 31, 37, 43, 50, 58, 65, 74, + 83, 91, 93, 96, 100, 98, 87, 72, 61, 46, 22, -6, -27, -42, -60, -79, + -91, -94, -93, -97, -95, -87, -77, -70, -64, -55, -47, -40, -34, -28, -25, -22, + -17, -12, -11, -13, -11, -5, -4, -8, -9, -3, 0, -4, -6, -1, 5, 5, + 3, 7, 14, 18, 19, 23, 30, 36, 42, 49, 57, 65, 73, 83, 90, 94, + 96, 100, 99, 89, 75, 63, 49, 25, -2, -23, -38, -56, -76, -88, -92, -92, + -95, -94, -87, -77, -71, -65, -57, -48, -41, -36, -29, -26, -23, -19, -13, -12, + -14, -12, -7, -6, -9, -10, -5, -1, -4, -7, -2, 2, 5, 4, 6, 12, + 18, 20, 24, 30, 38, 45, 52, 61, 70, 79, 89, 99, 106, 109, 113, 115, + 109, 96, 81, 66, 44, 16, -12, -32, -52, -74, -92, -101, -104, -107, -108, -103, + -94, -85, -78, -70, -60, -52, -45, -38, -33, -29, -25, -19, -16, -17, -16, -12, + -9, -10, -12, -9, -5, -5, -7, -5, 0, 3, 3, 5, 11, 17, 20, 23, + 29, 37, 44, 51, 59, 69, 78, 88, 98, 105, 110, 114, 116, 110, 98, 84, + 69, 48, 20, -7, -29, -49, -71, -89, -99, -102, -105, -107, -103, -94, -86, -79, + -71, -62, -54, -47, -40, -34, -30, -26, -21, -18, -18, -17, -14, -10, -12, -14, + -11, -5, -10, 43, -94, 44, -13, 27, -98, 1, 9, 77, 63, 4, 8, -128, + 63, -73, 78, -116, 127, -14, 111, -87, -67, -43, -45, 38, 53, 99, -37, 14, + -51, -58, -23, -32, 34, 27, 75, 9, 51, -104, -71, -33, 27, 67, 0, -1, + 25, 0, -35, 1, -70, 28, -4, 109, 3, 5, -42, -7, 42, -15, 37, -62, + 67, -14, 48, -85, -46, -94, 37, 35, 23, 15, -79, 35, -50, 91, -64, 40, + -69, 46, 20, 43, -21, -51, 8, -1, 95, -47, 69, -104, 98, -44, 74, -61, + -14, -19, 7, 52, -40, 8, -89, 58, -53, 106, -106, 42, -82, 61, -1, -8, + -10, -59, 53, -18, 85, -83, 63, -73, 89, -32, 50, -62, 10, 13, 20, 62, + -81, 41, -84, 88, -32, 41, -78, 27, -30, 51, -6, -42, 6, -49, 74, -41, + 41, -89, 27, -33, 57, 0, -16, -8, -4, 45, 8, 20, -63, 36, -29, 75, + -23, -17, -23, -14, 45, -7, 17, -56, 20, -12, 45, -16, -13, -31, 6, 31, + -7, 17, -81, 40, -35, 73, -34, 0, -31, 10, 35, -4, 19, -60, 44, -30, + 83, -66, 41, -87, 59, -6, 23, -4, -59, 34, -33, 77, -70, 49, -89, 88, + -45, 63, -62, 4, -20, 18, 46, -49, 45, -101, 91, -56, 78, -79, 35, -51, + 67, -12, -2, -14, -49, 66, -35, 72, -87, 51, -74, 83, -38, 29, -36, -10, + 23, 3, 30, -59, 27, -59, 91, -44, 41, -63, 12, 2, 23, 8, -36, 14, + -35, 66, -38, 32, -59, 25, -11, 40, -6, -25, -2, -24, 55, -25, 29, -58, + 30, -17, 41, -18, -17, -3, -13, 50, -25, 26, -63, 35, -23, 50, -22, -5, + -18, 0, 33, -19, 22, -67, 57, -39, 63, -45, 6, -27, 13, 23, -6, 15, + -55, 44, -42, 70, -59, 36, -60, 56, -13, 15, -9, -50, 49, -38, 72, -63, + 37, -65, 67, -48, 55, -51, 10, 2, -5, 45, -61, 46, -83, 91, -58, 72, + -69, 23, -27, 35, -8, -3, -2, -33, 66, -61, 79, -100, 67, -60, 66, -26, + 13, -21, -13, 23, -11, 29, -49, 40, -53, 80, -67, 52, -63, 28, 6, -1, + 23, -45, 25, -30, 42, -25, 22, -42, 33, -26, 39, -26, -9, 10, -28, 61, + -50, 33, -43, 18, 2, 6, 4, -18, 4, -8, 24, -21, 22, -49, 50, -40, + 52, -35, -10, 17, -34, 64, -53, 38, -47, 37, -28, 40, -47, 33, -32, 28, + 3, -20, 30, -69, 79, -75, 88, -72, 39, -34, 22, -7, 9, -18, 1, 19, + -27, 58, -89, 81, -90, 89, -58, 42, -27, -5, 16, -21, 29, -34, 28, -37, + 59, -65, 72, -90, 69, -45, 31, 6, -36, 40, -53, 56, -47, 39, -42, 40, + -38, 50, -52, 34, -31, 7, 32, -47, 62, -79, 66, -51, 41, -27, 12, -10, + 12, -5, 3, -5, -18, 33, -44, 70, -75, 60, -52, 27, 4, -19, 22, -29, + 27, -15, 18, -31, 26, -36, 50, -41, 35, -31, 3, 19, -37, 55, -62, 51, + -38, 25, -11, 1, -13, 12, -7, 13, 4, -33, 38, -56, 72, -64, 52, -43, + 20, 6, -20, 25, -40, 34, -25, 38, -41, 43, -68, 68, -59, 53, -28, -7, + 27, -45, 63, -70, 56, -60, 59, -41, 48, -56, 39, -43, 35, -3, -19, 40, + -70, 85, -81, 76, -75, 48, -36, 41, -20, 12, -23, 0, 16, -23, 51, -76, + 78, -82, 80, -57, 29, -23, 3, 14, -2, 9, -29, 17, -31, 55, -51, 53, + -66, 49, -27, 17, 3, -35, 36, -33, 44, -27, 11, -30, 24, -18, 37, -29, + 4, -3, -15, 45, -47, 42, -57, 46, -19, 18, -11, -20, 10, -3, 24, -18, + 14, -46, 52, -50, 64, -57, 25, -14, 1, 33, -42, 30, -52, 50, -28, 47, + -54, 32, -49, 53, -25, 14, -4, -34, 57, -54, 69, -78, 46, -45, 52, -21, + 21, -37, 7, 1, 3, 29, -57, 56, -74, 90, -66, 47, -51, 16, 6, 10, + 10, -29, 9, -32, 58, -47, 59, -84, 65, -49, 52, -24, -18, 14, -30, 61, + -39, 31, -57, 39, -38, 67, -56, 37, -46, 26, 10, -15, 18, -49, 45, -27, + 42, -37, 11, -24, 30, -15, 21, -34, 15, -5, 11, 5, -24, 11, -16, 30, + -16, 6, -20, 7, 3, 11, -9, -5, -6, 4, 16, -15, 9, -29, 22, -6, + 14, -6, -16, 9, -12, 28, -22, 15, -27, 22, -11, 21, -23, 5, -10, 8, + 17, -22, 19, -42, 41, -31, 39, -37, 20, -20, 19, -3, -7, 2, -17, 27, + -20, 30, -43, 30, -34, 38, -24, 13, -13, -1, 16, -16, 19, -36, 28, -21, + 30, -22, 7, -17, 11, 2, 1, 1, -19, 22, -21, 32, -34, 18, -21, 17, + 6, -8, 5, -25, 21, -13, 24, -24, 12, -22, 24, -11, 10, -14, -7, 15, + -11, 28, -36, 21, -30, 30, -10, 10, -13, -5, 6, -2, 14, -22, 15, -25, + 33, -22, 23, -31, 11, -6, 8, 11, -21, 14, -28, 32, -23, 25, -31, 19, + -15, 19, -7, -7, 1, -13, 26, -19, 24, -37, 25, -24, 30, -18, 6, -9, + -2, 17, -16, 17, -34, 27, -19, 28, -21, 6, -15, 10, 4, 0, 2, -20, + 22, -19, -21, 0, -3, -3, 2, 1, -1, 2, -2, -1, 4, 3, -3, -15, + -21, -20, -23, -42, -45, -31, -27, -17, -8, 9, 29, 41, 44, 33, 20, 13, + 6, 12, 16, 25, 43, 44, 33, 33, 35, 15, -5, -3, 8, 16, 8, -10, + -6, 8, 4, -4, 1, -18, -38, -43, -51, -54, -55, -71, -85, -68, -58, -61, + -50, -33, -27, -15, -5, 22, 67, 100, 109, 114, 110, 91, 69, 50, 37, 35, + 46, 48, 37, 36, 14, -24, -38, -42, -38, -38, -59, -91, -86, -57, -44, -32, + -15, -26, -44, -30, -30, -30, -16, -31, -50, -34, -43, -59, -49, -44, -52, -62, + -69, -50, -4, 47, 83, 105, 120, 111, 88, 72, 55, 57, 76, 69, 59, 55, + 41, 10, -18, -32, -28, -19, -36, -68, -76, -72, -71, -46, -35, -47, -43, -43, + -61, -48, -28, -25, -22, -19, -23, -15, -7, 3, 4, -8, -28, -37, -5, 42, + 72, 107, 127, 122, 117, 90, 48, 37, 48, 51, 54, 56, 43, 24, -8, -37, + -33, -11, -28, -55, -61, -75, -75, -51, -58, -55, -33, -33, -41, -35, -30, -21, + -16, -17, -24, -26, -20, -18, -17, -12, -36, -72, -65, -45, -6, 53, 88, 106, + 119, 107, 71, 52, 50, 59, 75, 87, 85, 76, 43, -1, -7, 9, -1, -13, + -34, -69, -80, -74, -80, -73, -65, -67, -65, -56, -44, -33, -23, -18, -24, -25, + -16, -20, -9, -1, -21, -38, -55, -64, -40, 3, 39, 82, 113, 114, 95, 71, + 54, 56, 68, 76, 87, 94, 57, 10, -9, -17, -17, -15, -35, -60, -75, -89, + -92, -85, -76, -71, -74, -70, -53, -41, -20, -9, -9, 4, 4, 10, 33, 38, + 25, 15, -17, -43, -33, -15, 3, 40, 77, 94, 91, 69, 37, 31, 33, 37, + 68, 96, 82, 53, 25, 8, 22, 28, 9, -9, -27, -46, -56, -65, -62, -61, + -60, -51, -51, -39, -25, -23, -11, -3, -15, -10, 5, 12, 20, 18, -11, -41, + -52, -47, -34, -2, 33, 65, 82, 70, 51, 45, 28, 21, 49, 74, 86, 74, + 33, 5, 10, 14, 7, -10, -28, -45, -67, -68, -73, -76, -66, -66, -65, -46, + -39, -31, -9, -3, -6, 1, 8, 22, 41, 49, 33, 8, -16, -34, -30, -17, + 7, 49, 73, 64, 63, 50, 19, 5, 13, 32, 62, 65, 37, 8, -5, 4, + -1, -8, -15, -36, -50, -57, -71, -65, -53, -58, -49, -37, -40, -28, -10, -3, + 0, 2, -2, 5, 30, 41, 36, 22, -7, -33, -39, -46, -30, 15, 44, 56, + 72, 65, 44, 21, 2, 15, 42, 59, 49, 18, 2, -3, -4, 0, -10, -25, + -34, -52, -65, -59, -56, -50, -37, -33, -33, -25, -12, -2, 10, 12, 3, 6, + 27, 42, 52, 43, 16, -3, -24, -48, -41, -11, 16, 48, 67, 78, 75, 49, + 21, 13, 36, 64, 63, 47, 25, -1, -2, 2, -12, -18, -28, -53, -65, -71, + -76, -70, -55, -53, -49, -41, -35, -24, -1, 5, 1, 4, 8, 28, 51, 43, + 26, 18, -14, -42, -51, -49, -23, 5, 31, 55, 67, 58, 26, -2, 11, 35, + 49, 55, 35, 8, 3, -2, -5, -6, -13, -30, -38, -49, -61, -56, -45, -43, + -36, -31, -37, -25, -7, 1, 6, 1, -10, 11, 33, 29, 27, 17, -6, -34, + -58, -67, -57, -34, -4, 21, 50, 63, 37, 11, 8, 17, 45, 63, 55, 39, + 26, 12, 11, 10, -1, -11, -19, -35, -51, -52, -52, -45, -35, -36, -41, -31, + -24, -9, 9, -3, -12, 2, 19, 33, 40, 37, 25, -3, -30, -51, -59, -42, + -24, -3, 38, 58, 51, 32, 8, 2, 25, 45, 50, 49, 35, 18, 16, 19, + 10, 9, 4, -13, -27, -36, -45, -36, -24, -32, -29, -31, -33, -10, 6, 1, + -4, -6, 4, 19, 30, 37, 30, 12, -13, -48, -59, -57, -56, -35, 2, 31, + 48, 41, 12, -2, 7, 25, 41, 52, 44, 29, 25, 22, 18, 20, 15, 1, + -6, -26, -38, -28, -26, -21, -17, -31, -33, -19, -4, 0, -8, -16, -15, -11, + 9, 19, 22, 24, -2, -34, -49, -61, -70, -57, -32, 4, 38, 46, 26, 5, + -1, 7, 29, 45, 44, 38, 32, 23, 27, 30, 23, 24, 14, -8, -16, -24, + -24, -12, -10, -19, -27, -26, -9, -2, -4, -6, -16, -14, -2, 8, 23, 34, + 17, -6, -26, -47, -61, -62, -50, -18, 26, 50, 48, 31, 12, 6, 24, 40, + 44, 51, 40, 29, 34, 28, 27, 32, 20, 7, -5, -23, -26, -19, -9, -12, + -25, -25, -17, -8, 1, -4, -13, -12, -16, -9, 13, 26, 23, 8, -13, -37, + -55, -71, -78, -59, -18, 16, 35, 34, 8, -3, 4, 13, 31, 40, 34, 34, + 29, 23, 30, 31, 27, 21, 7, -6, -21, -21, -10, -10, -19, -24, -28, -17, + -6, -8, -9, -9, -19, -21, -5, 12, 23, 22, 5, -16, -34, -55, -80, -78, + -56, -22, 18, 33, 24, 14, 3, 7, 25, 31, 37, 41, 33, 29, 29, 32, + 33, 30, 24, 7, -16, -22, -18, -15, -14, -24, -31, -22, -13, -12, -8, -6, + -18, -27, -22, -6, -5, -1, -1, -1, 1, 2, 7, 13, 19, 10, -12, -31, + -13, 17, 29, -4, -29, 24, 53, 18, 92, 15, -15, 23, 13, -35, -52, 127, + 9, 3, -9, 31, -63, -64, -5, -50, 14, 33, -29, -42, 0, 43, 39, -15, + -59, -45, 3, 33, 12, -35, -10, 51, 18, 49, 55, -28, 16, 4, 3, -64, + 54, 53, -12, 0, 5, -4, -72, -7, -31, -14, 26, -2, -37, -14, 17, 35, + 4, -33, -45, -12, 15, 21, -16, -23, 22, 28, 12, 55, -7, -2, 7, 7, + -34, -10, 65, -4, 1, -5, 14, -46, -28, -9, -29, 13, 13, -23, -23, 4, + 27, 18, -17, -39, -25, 5, 20, 0, -26, 1, 34, 7, 41, 24, -20, 11, + 1, -6, -45, 53, 22, -6, -4, 9, -17, -52, -4, -30, -6, 20, -9, -29, + -8, 18, 27, -2, -33, -36, -6, 16, 13, -20, -16, 27, 19, 18, 49, -17, + 3, 2, 6, -42, 9, 55, -9, 1, -3, 9, -54, -19, -16, -24, 16, 7, + -27, -19, 8, 28, 12, -22, -40, -20, 8, 19, -7, -25, 9, 31, 7, 48, + 9, -14, 9, 2, -17, -35, 62, 9, -2, -6, 13, -30, -44, -4, -31, 2, + 18, -15, -27, -3, 22, 24, -8, -36, -32, -2, 17, 8, -23, -9, 31, 13, + 28, 40, -21, 8, 1, 3, -47, 29, 43, -9, 0, 1, 1, -57, -11, -22, + -17, 19, 2, -28, -14, 12, 29, 7, -27, -39, -14, 11, 17, -13, -22, 17, + 27, 10, 51, -4, -7, 7, 5, -27, -19, 64, -1, 1, -6, 14, -41, -34, + -8, -30, 8, 15, -20, -24, 2, 25, 20, -14, -38, -27, 2, 18, 2, -25, + -1, 33, 9, 37, 29, -21, 11, 0, -3, -46, 46, 29, -7, -2, 7, -9, + -54, -6, -27, -10, 20, -4, -28, -9, 16, 28, 1, -30, -37, -8, 14, 14, + -18, -17, 25, 22, 16, 50, -13, 1, 4, 5, -37, 0, 59, -7, 2, -4, + 12, -49, -24, -13, -26, 13, 11, -23, -19, 6, 27, 15, -19, -39, -21, 6, + 18, -4, -24, 7, 32, 8, 45, 15, -16, 10, 2, -12, -39, 58, 16, -3, + -5, 11, -22, -48, -4, -30, -2, 19, -10, -26, -4, 20, 25, -5, -34, -33, + -4, 16, 10, -21, -11, 30, 16, 25, 43, -19, 7, 1, 4, -44, 20, 49, + -8, 1, -1, 6, -54, -15, -19, -20, 17, 6, -26, -15, 10, 29, 9, -23, + -39, -16, 9, 17, -10, -22, 15, 29, 10, 50, 2, -10, 8, 3, -22, -26, + 63, 5, 0, -6, 14, -34, -39, -6, -30, 4, 17, -15, -24, 0, 24, 22, + -11, -36, -28, 1, 17, 5, -23, -3, 32, 12, 34, 33, -21, 10, 0, 0, + -46, 39, 36, -7, -1, 4, -3, -54, -9, -24, -14, 19, 0, -26, -10, 14, + 28, 4, -27, -37, -11, 12, 15, -15, -18, 22, 24, 14, 50, -9, -2, 5, + 5, -32, -8, 61, -3, 2, -5, 14, -44, -29, -10, -27, 10, 13, -20, -20, + 4, 26, 17, -16, -37, -23, 4, 18, -1, -23, 5, 32, 9, 42, 20, -18, + 11, 1, -7, -41, 53, 22, -4, -3, 9, -14, -50, -6, -27, -7, 19, -6, + -26, -5, 18, 26, -2, -31, -34, -6, 14, 11, -19, -12, 28, 19, 22, 45, + -17, 4, 2, 5, -40, 11, 54, -6, 2, -3, 10, -51, -20, -16, -23, 14, + 9, -23, -15, 8, 28, 12, -20, -38, -18, 7, 17, -7, -22, 13, 30, 10, + 47, 7, -12, 9, 2, -17, -31, 61, 10, 0, -5, 13, -26, -43, -6, -29, + 0, 18, -11, -23, -1, 22, 23, -8, -34, -30, -1, 15, 7, -22, -5, 31, + 14, 30, 37, -20, 9, 0, 2, -44, 30, 42, -7, 1, 2, 2, -53, -12, + -21, -17, 17, 4, -25, -11, 12, 28, 6, -25, -37, -13, 10, 15, -13, -18, + 20, 26, 13, 49, -5, -5, 6, 4, -27, -16, 62, 1, 2, -5, 14, -38, + -34, -9, -28, 6, 15, -16, -20, 3, 25, 19, -13, -36, -25, 2, 16, 1, + -23, 3, 32, 11, 38, 25, -19, 11, 0, -4, -43, 46, 29, -4, -2, 7, + -8, -51, -8, -25, -10, 18, -2, -25, -7, 16, 27, 0, -28, -35, -8, 12, + 12, -17, -13, 26, 21, 19, 46, -14, 2, 3, 4, -36, 2, 57, -4, 3, + -4, 12, -46, -25, -13, -25, 11, 12, -20, -16, 7, 27, 14, -18, -37, -20, + 5, 16, -5, -21, 10, 31, 10, 45, 12, -14, 10, 1, -12, -36, 57, 16, + -1, -4, 11, -20, -46, -6, -28, -4, 18, -8, -23, -3, 20, 24, -5, -32, + -31, -4, 13, 8, -20, -6, 29, 17, 27, 39, -19, 7, 0, 3, -42, 21, + 47, -6, 2, 0, 7, -51, -17, -18, -20, 15, 7, -23, -12, 10, 28, 8, + -22, -37, -15, 8, 15, -10, -19, 18, 27, 13, 47, 0, -8, 8, 3, -24, + -20, 52, -36, -2, 0, -2, 3, 5, -4, -28, 22, -43, 36, -13, -127, -43, + 2, -18, 126, 78, -127, -48, 68, -74, -67, 33, 62, 83, 42, -32, -46, -70, + -26, 115, 21, -66, 72, 52, -27, 44, 50, 50, 61, 28, -12, 3, -59, 49, + 3, -19, 39, 94, 16, 31, 6, 29, 3, -100, -1, -4, -60, 19, 7, -29, + -28, -38, -3, -47, -20, -21, -1, 5, -55, -12, -55, -39, 26, 47, -22, -9, + -41, -21, -19, -37, 0, 45, -56, 24, 75, -50, -9, 31, 28, 26, 13, -3, + -15, -27, 1, 1, -31, -10, 38, -1, 7, 43, 19, 21, 41, 33, 9, -17, + -3, -42, -76, -30, -8, -9, -1, 21, 22, 38, 32, 22, 0, -18, -32, -58, + -12, 5, -48, -13, 64, 29, -2, 2, 19, 43, 25, -19, -39, -69, -92, -15, + 23, 30, 30, 51, 37, 35, 37, 30, -27, -63, 5, -30, -56, -16, 26, 52, + 20, 14, 59, 27, -9, 22, -4, -20, -37, -17, -34, -34, -1, 35, 26, 31, + 5, -16, 4, 33, 22, 8, 5, -28, -41, -20, -10, -6, -2, -16, 12, 31, + -23, 7, -2, -39, -28, -13, 8, 5, 16, -4, -6, -18, -24, -27, -50, -6, + 5, 12, 0, -2, -14, -23, 5, -28, -10, 2, 28, 15, 2, 22, 27, 41, + 31, 2, 12, 31, 5, 12, -6, 15, 40, 34, 18, 26, 26, 12, 34, 23, + 34, 30, 22, 10, -26, -22, 1, 0, -1, 12, -4, -21, -5, -5, -20, -31, + -25, -24, -42, -44, -41, -41, -37, -29, -28, -29, -40, -17, -21, -38, -42, -38, + -40, -36, -13, -14, -8, -15, -7, -6, 5, 12, -1, -17, -1, 9, 2, 16, + 30, 27, 37, 36, 38, 36, 36, 19, 45, 45, 33, 26, 33, 28, 36, 31, + 17, 12, 22, 11, 11, 17, 5, -13, 6, 10, 2, -6, 2, 9, 15, -6, + -8, -23, -44, -3, -11, -35, -25, -35, -23, -21, 0, -11, -21, -17, 11, -6, + -11, -17, -33, -16, -16, -4, -7, -7, -9, -4, 1, 1, -3, 6, 7, 4, + -17, -11, -6, -4, 1, 3, 6, 4, 5, -4, 17, 7, 3, 9, -20, 0, + -7, -3, -5, 4, 9, 16, 2, 3, 8, 15, 15, 1, -3, 8, -1, 5, + 14, 7, 4, 8, -8, 2, -3, 5, 11, 5, 3, -4, 10, 17, 13, -11, + -5, 1, -3, 0, -6, -12, 2, -3, 13, -5, -25, -15, -7, 4, 1, -8, + -4, -12, -16, 3, 9, -6, 3, -21, -4, 4, -14, 1, -1, -2, 3, -8, + -5, 0, 7, -2, -3, -1, 3, -9, 5, -4, -17, -1, 9, 3, 7, 1, + -4, -3, 5, 2, -7, -9, 12, -6, -14, -16, 2, -1, 16, 2, 2, 7, + -6, -26, 3, -2, -4, -2, 10, 3, -7, 3, 8, 9, 5, 4, 1, -5, + -5, 11, 8, 7, 11, 12, -1, -5, -16, 13, 7, 2, 11, 4, -4, 9, + -8, -8, 14, 11, -8, 0, -1, -5, -2, -1, -10, -5, -9, -9, -16, -12, + -8, -16, 5, -10, -4, -11, -3, 1, 0, -3, -5, -13, -9, -2, -8, 5, + -9, -7, -2, 2, -11, -7, 13, 8, -3, 2, 7, -2, -1, 5, 0, 11, + 6, 13, 15, 1, -4, 9, 5, 3, 8, -3, -4, 16, 4, 11, 9, 0, + 8, 1, -6, -5, -18, 3, 7, -18, -4, 0, -3, -3, -6, -4, -5, -5, + -10, -2, -9, -5, -2, -4, -11, -2, 1, -5, -2, 11, -6, -9, 1, 4, + -6, -1, -5, 1, 2, 9, 5, 0, 4, 4, -2, 7, 0, -10, 5, 2, + -3, 0, -6, 7, -4, -3, 6, -1, -6, -1, -1, 2, -2, -6, -3, 0, + 8, -6, 4, -1, -5, -3, 3, 1, -5, -6, -2, -3, 5, 6, 0, 7, + -3, 3, -1, 0, -2, 9, 1, 1, -3, 4, 5, -5, 2, -2, 2, -11, + -2, -4, 11, 4, 5, 0, -5, -12, -6, -5, -5, 3, -2, -2, 2, 2, + 1, 0, -1, -8, -5, -5, -3, 2, -1, 3, -1, 3, 0, -1, 0, -1, + 1, 1, -4, -4, 2, -2, 1, -6, 1, 2, 4, 2, 2, -5, -1, 6, + -3, -1, -4, 11, 3, -9, -2, -6, -3, 2, 4, 2, 1, 2, 4, 3, + -6, -4, -3, -2, 0, 2, -2, 5, 2, -1, 3, -9, -3, -3, -4, -4, + -1, 0, -2, 7, 3, 1, 1, -2, -4, -2, -3, -2, -4, 2, 4, -1, + 2, 3, 0, 3, -1, 0, -2, -2, -3, 1, -1, -4, 5, -1, 5, 0, + -3, -2, -1, -4, 3, -1, -3, -2, -2, -1, 0, 0, 1, -1, 0, -2, + -2, 0, -3, -1, 0, 0, 1, 1, -2, -1, 1, -3, 1, 2, 0, -1, + 0, -1, 1, 5, -2, 1, -3, -3, -1, -3, 0, 1, 3, 2, -1, -1, + -2, -2, -1, 1, 0, -1, -2, -2, -2, -3, -3, -3, -2, -2, -2, -2, + -2, -2, -2, -1, 0, 1, 1, -2, -2, 0, 0, 2, -3, -16, -22, -20, + -28, -35, -31, -17, 19, 33, 36, 33, 34, 40, 36, 25, 18, 20, 18, 14, + 17, 12, 14, 10, -24, -36, -27, -38, -55, -69, -66, -47, -33, -13, 3, 5, + 10, 22, 25, 15, 28, 43, 41, 51, 56, 58, 58, 31, -18, -52, -64, -71, + -92, -105, -98, -77, -50, -17, 23, 59, 85, 99, 94, 76, 55, 14, -9, -5, + -7, -18, -17, -35, -53, -53, -33, -23, -33, -36, -15, 17, 32, 24, 12, 19, + 37, 54, 49, 38, 21, -14, -44, -30, -22, -15, 5, 8, -1, -26, -42, -46, + -49, -51, -37, -17, 1, -4, -19, -4, 45, 84, 91, 79, 57, 3, -30, -29, + -35, -25, -8, -6, -26, -61, -75, -73, -77, -72, -54, -19, 9, 6, -10, 3, + 47, 85, 92, 103, 92, 45, 21, 6, 4, 16, 27, 27, -1, -48, -69, -78, + -80, -84, -72, -33, -10, -24, -41, -20, 40, 82, 99, 123, 102, 69, 49, 30, + 27, 34, 42, 41, -2, -58, -96, -108, -103, -106, -83, -37, -10, -18, -38, -18, + 40, 65, 92, 110, 84, 44, 1, -26, -23, -7, 21, 32, 7, -39, -78, -84, + -79, -82, -61, -19, 5, -14, -52, -25, 25, 59, 102, 127, 116, 86, 40, 13, + 4, 9, 27, 29, 4, -47, -88, -94, -87, -83, -56, -18, 15, -13, -49, -30, + -2, 29, 69, 87, 80, 50, 9, -15, -27, -10, 18, 44, 36, -9, -45, -53, + -53, -46, -33, 6, 31, -8, -36, -28, -11, 21, 54, 76, 76, 44, 4, -33, + -53, -45, -18, 13, 10, -35, -62, -70, -61, -44, -19, 38, 63, 30, 9, 4, + 9, 35, 60, 81, 75, 51, 14, -25, -44, -37, -9, 29, 24, -11, -41, -59, + -51, -54, -33, 23, 35, 6, -13, -28, -18, 8, 43, 73, 76, 63, 33, -1, + -21, -22, 10, 43, 35, 5, -32, -47, -51, -68, -44, 6, 14, 0, -21, -34, + -25, 0, 37, 65, 73, 64, 35, 5, -22, -25, 11, 40, 39, 13, -20, -28, + -42, -64, -32, 6, 15, -1, -25, -39, -39, -16, 19, 44, 58, 53, 27, -2, + -39, -38, -2, 30, 40, 13, -16, -19, -45, -60, -29, 6, 17, 1, -21, -40, + -44, -24, 9, 38, 58, 51, 38, 8, -31, -29, 0, 34, 44, 9, -11, -23, + -58, -69, -42, -6, 9, 0, -16, -33, -36, -12, 19, 55, 72, 68, 58, 18, + -22, -25, -6, 29, 31, 2, -5, -23, -57, -69, -45, -8, 12, 10, 0, -22, + -24, -7, 20, 52, 61, 65, 59, 21, -15, -28, -11, 26, 20, 2, -2, -22, + -56, -71, -49, -14, 3, 8, -5, -26, -28, -19, 14, 42, 54, 71, 67, 38, + 8, -11, 16, 47, 37, 26, 18, -10, -51, -74, -59, -35, -19, -12, -24, -37, + -44, -34, 0, 24, 44, 67, 64, 43, 3, -18, 11, 35, 28, 22, 18, -4, + -47, -68, -55, -34, -11, -7, -15, -27, -43, -32, -1, 18, 42, 58, 60, 43, + -8, -29, -6, 11, 7, 4, 4, -17, -59, -75, -66, -41, -13, -3, 1, -11, + -29, -19, 1, 19, 42, 53, 64, 45, -8, -28, -9, 7, 4, 4, 9, -13, + -51, -71, -69, -43, -19, -7, 3, -11, -25, -17, -2, 23, 43, 60, 78, 55, + 1, -19, -5, 8, 3, 7, 13, -8, -41, -66, -67, -40, -19, 3, 16, 1, + -7, -5, 10, 34, 46, 67, 87, 62, 11, -13, -1, 8, 4, 15, 20, 1, + -33, -64, -65, -48, -30, -2, 6, -5, -14, -18, 1, 21, 32, 62, 86, 66, + 20, -3, 6, 7, 5, 16, 20, 7, -29, -62, -65, -59, -39, -13, -5, -8, + -22, -27, -6, 7, 17, 49, 74, 58, 14, -5, -2, -4, -3, 7, 14, 6, + -32, -59, -66, -63, -40, -16, -2, -2, -19, -20, -1, 6, 18, 49, 77, 62, + 21, 3, -1, -5, -2, 5, 18, 10, -26, -50, -65, -64, -43, -24, -5, -6, + -24, -23, -8, -2, 10, 45, 75, 60, 25, 6, -4, -4, -5, 3, 20, 8, + -20, -43, -60, -58, -45, -24, 1, -1, -15, -12, -1, 3, 16, 53, 83, 70, + 42, 19, 9, 7, 3, 16, 29, 17, -7, -35, -55, -56, -49, -24, 2, -1, + -11, -7, 3, 4, 16, 55, 83, 75, 50, 25, 15, 6, 0, 13, 21, 13, + -9, -40, -58, -66, -62, -35, -11, -11, -18, -13, -3, -7, 9, 49, 75, 74, + 51, 28, 19, 5, 1, 13, 20, 16, -3, -28, -48, -62, -61, -37, -16, -13, + -20, -15, -12, -19, -5, 21, 50, 61, 47, 28, 15, -1, -6, 0, 9, 14, + 1, -19, -37, -55, -56, -38, -16, -11, -13, -9, -9, -16, -8, 18, 48, 59, + 44, 28, 9, 15, -3, 2, -5, 3, 3, 4, 1, 7, -2, 7, -4, 2, + -124, -37, 33, -48, 7, -27, 8, -14, 77, 26, -9, 26, 7, 20, 10, 13, + 8, 9, 7, 4, 5, 2, 3, 2, 1, -1, 0, -3, -2, -5, 1, -10, + 11, 70, -6, 21, 5, 27, -2, 41, -15, -61, -66, -128, 0, -48, -21, -46, + -6, -55, 23, 53, -6, 11, 2, 14, 11, 10, 11, 8, 9, 9, 8, 5, + 8, 5, 6, 5, 6, 2, 7, -4, 6, 5, -23, 62, 29, 24, 8, 33, + 4, 32, 36, -30, -16, -124, -58, -39, -18, -51, -3, -43, -40, 53, 19, 12, + 4, 9, 12, 13, 10, 11, 9, 8, 11, 6, 5, 8, 6, 3, 9, 1, + 7, 2, -5, 22, -33, 20, 37, 35, 7, 29, 14, 8, 52, -5, 17, -64, + -84, -70, -15, -55, -23, -12, -72, 1, 28, 16, 8, 6, 7, 12, 10, 8, + 11, 6, 8, 10, 5, 4, 10, 1, 8, 4, 2, 10, -15, 26, -16, -9, + 14, 42, 17, 19, 29, -3, 42, 14, 28, -8, -45, -92, -37, -41, -54, 0, + -53, -48, 2, 18, 10, 8, 4, 8, 12, 8, 10, 10, 6, 9, 10, 2, + 10, 5, 3, 9, -2, 18, -16, 17, 3, -9, -12, 26, 28, 13, 35, 3, + 27, 19, 31, 17, 4, -60, -67, -33, -66, -22, -22, -58, -38, 2, 11, 9, + 7, 4, 9, 10, 8, 10, 9, 5, 12, 5, 5, 9, 2, 11, -5, 21, + -8, 4, 10, 5, -17, -1, 28, 11, 34, 13, 20, 17, 28, 24, 27, -6, + -61, -41, -57, -51, -17, -36, -56, -32, -1, 7, 8, 5, 6, 8, 10, 8, + 12, 6, 9, 9, 5, 9, 1, 15, -7, 15, 5, -2, 4, 14, -3, -18, + 15, 8, 28, 21, 20, 16, 23, 23, 29, 30, -20, -38, -45, -63, -38, -23, + -43, -53, -29, -5, 5, 5, 5, 5, 9, 7, 11, 8, 8, 10, 5, 12, + -2, 16, -1, 4, 11, 4, -3, 8, 15, -16, 0, 1, 16, 23, 23, 17, + 20, 21, 21, 39, 19, -14, -28, -52, -58, -33, -28, -47, -50, -30, -6, 2, + 5, 4, 6, 6, 9, 10, 7, 12, 3, 15, 0, 10, 8, 1, 6, 11, + 2, -4, 20, -1, -6, -5, 4, 15, 24, 20, 18, 23, 15, 30, 38, 13, + -6, -27, -56, -52, -30, -34, -48, -50, -28, -8, 2, 3, 5, 5, 6, 11, + 5, 13, 3, 12, 6, 5, 10, 5, 2, 7, 13, -8, 10, 11, 0, -6, + -4, 3, 17, 23, 16, 24, 18, 17, 36, 32, 13, -1, -30, -57, -45, -31, + -36, -51, -49, -28, -7, -1, 3, 6, 2, 11, 5, 12, 6, 9, 10, 5, + 8, 8, 5, -1, 16, 1, -1, 11, 9, -1, -5, -5, 4, 20, 17, 20, + 24, 14, 23, 37, 29, 16, 2, -33, -53, -42, -30, -39, -52, -49, -27, -9, + -3, 5, 0, 8, 5, 10, 8, 6, 10, 6, 7, 6, 11, -3, 8, 11, + 0, 2, 11, 8, -1, -5, -7, 9, 18, 16, 24, 20, 14, 27, 35, 27, + 21, 1, -33, -50, -38, -32, -42, -53, -48, -25, -14, -1, -2, 4, 3, 6, + 9, 5, 9, 7, 7, 4, 12, 4, 1, 10, 6, 2, 6, 10, 4, 0, + -6, -2, 11, 14, 18, 22, 17, 20, 32, 34, 28, 20, 0, -26, -36, -34, + -37, -45, -54, -44, -30, -13, -8, -3, 1, 2, 6, 4, 7, 8, 8, 2, + 8, 10, 1, 4, 6, 5, 5, 9, 6, 1, -3, -5, 3, 10, 14, 18, + 18, 17, 26, 35, 35, 29, 17, -1, -17, -24, -32, -41, -50, -51, -44, -28, + -18, -12, -5, -2, 2, 3, 3, 6, 9, 4, 3, 9, 6, 2, 2, 4, + 5, 9, 10, 4, -2, -5, -1, 5, 10, 14, 16, 15, 19, 30, 38, 37, + 29, 15, 1, -5, -14, -31, -43, -50, -52, -42, -29, -22, -16, -9, -3, 0, + 0, 2, 6, 6, 2, 4, 7, 6, 2, 1, 2, 6, 11, 10, 2, -5, + -4, 0, 5, 10, 14, 15, 14, 21, 32, 39, 38, 29, 14, 4, 0, -3, + -19, -32, -40, -43, -41, -36, -31, -25, -19, -12, -9, -8, -6, -1, 2, 2, + 0, -3, -4, -1, 3, 6, 6, 2, -3, -6, -2, 2, 2, 1, 2, 7, + 16, 25, 32, 35, 35, 36, 36, 33, 24, 11, -3, -18, -32, -40, -42, -40, + -36, -30, -25, -18, -12, -9, -8, -5, -1, 2, 2, 0, -3, -4, -1, 3, + 7, 6, 2, -4, -5, -2, 2, 2, 1, 2, 8, 17, 25, 32, 35, 36, + 36, 36, 32, 23, 10, -4, -20, -33, -41, -42, -40, -35, -30, -24, -18, -12, + -9, -8, -5, -1, 3, 2, -1, -4, -4, -1, 4, 7, 6, 1, -4, -5, + -2, -1, 3, 1, 3, 5, 3, -3, -1, -1, 1, -15, 1, 1, -5, -7, + 7, -2, -4, 3, -2, -5, -1, -3, -3, -1, 6, 3, 2, 3, -26, -117, + 35, -8, -19, 24, 58, -7, -6, 25, -9, 7, 4, 10, 2, 7, 6, 6, + 0, 6, -2, -1, -3, -3, 8, 71, 0, 17, 27, 20, -102, -115, 39, -32, + -18, -5, 58, -15, -12, 13, -10, -4, 1, 2, 1, 0, 6, 2, 1, 2, + 0, -4, 0, -5, 2, 67, 9, 14, 28, 29, -72, -126, 27, -25, -19, -14, + 58, -6, -11, 13, -5, -3, 3, 3, 4, 1, 8, 3, 3, 3, 3, -2, + 2, -3, -3, 62, 17, 14, 27, 35, -45, -128, 11, -19, -20, -22, 53, 1, + -12, 11, -3, -4, 2, 3, 4, 1, 7, 3, 3, 3, 3, -2, 2, -2, + -9, 57, 22, 14, 25, 37, -23, -125, -8, -15, -20, -30, 46, 9, -12, 10, + -2, -3, 0, 3, 3, 1, 6, 4, 2, 3, 2, -2, 1, 0, -16, 50, + 26, 13, 22, 37, -2, -117, -27, -13, -18, -36, 36, 16, -13, 9, -2, -2, + -2, 3, 2, 2, 4, 5, 1, 4, 2, -1, 0, 4, -20, 43, 29, 15, + 20, 36, 14, -102, -43, -15, -16, -40, 26, 22, -12, 8, -2, -2, -3, 3, + 1, 3, 2, 6, 1, 5, 1, 0, -1, 7, -23, 35, 31, 18, 18, 33, + 27, -83, -57, -20, -14, -42, 14, 26, -9, 7, -2, 0, -5, 3, 1, 4, + 1, 7, 0, 5, 1, 1, -2, 10, -24, 26, 31, 20, 17, 30, 36, -62, + -65, -27, -12, -43, 2, 28, -7, 6, -2, 0, -5, 3, 0, 4, 0, 7, + 0, 5, 1, 2, -4, 11, -23, 17, 32, 22, 16, 27, 42, -44, -67, -36, + -9, -42, -8, 28, -3, 5, -1, 1, -5, 2, 0, 4, 1, 7, 1, 5, + 1, 3, -5, 13, -22, 10, 31, 23, 17, 22, 45, -25, -66, -45, -8, -40, + -18, 27, 0, 5, -1, 1, -5, 1, 0, 4, 0, 6, 2, 4, 2, 3, + -6, 14, -19, 2, 29, 25, 19, 19, 47, -10, -60, -54, -10, -37, -27, 24, + 4, 4, 0, 1, -5, 0, 0, 3, 1, 5, 2, 4, 2, 4, -7, 15, + -16, -4, 27, 25, 21, 15, 48, 4, -51, -61, -12, -33, -34, 19, 7, 4, + 1, 0, -4, -1, 0, 3, 2, 5, 3, 3, 3, 5, -8, 15, -11, -10, + 24, 25, 23, 12, 45, 15, -39, -66, -18, -28, -40, 12, 10, 4, 2, 1, + -3, -2, 0, 2, 2, 4, 3, 3, 3, 5, -8, 13, -6, -14, 19, 25, + 25, 10, 43, 24, -25, -67, -25, -24, -45, 4, 11, 5, 3, 0, -2, -3, + -1, 1, 2, 3, 3, 3, 2, 6, -9, 11, -2, -17, 15, 24, 27, 9, + 39, 31, -13, -66, -33, -19, -48, -3, 11, 5, 3, 1, -2, -3, -1, 1, + 2, 4, 3, 3, 2, 8, -9, 9, 3, -18, 10, 22, 29, 9, 35, 35, + 0, -61, -41, -17, -49, -11, 10, 6, 3, 2, -2, -3, -2, 1, 1, 4, + 3, 5, 1, 9, -9, 7, 6, -18, 5, 20, 29, 10, 32, 38, 11, -47, + -45, -18, -47, -20, 5, 6, 4, 2, -1, -3, -2, 0, 1, 5, 1, 6, + 1, 7, -7, 6, 6, -16, 1, 16, 27, 11, 29, 40, 20, -30, -43, -23, + -46, -28, -2, 4, 4, 2, -1, -3, -2, -1, 0, 6, -1, 7, 2, 5, + -6, 5, 6, -15, -3, 13, 25, 12, 26, 41, 26, -14, -36, -26, -44, -35, + -11, 1, 4, 2, 0, -4, -3, -3, -1, 7, -2, 7, 4, 4, -6, 4, + 7, -13, -6, 10, 23, 12, 24, 42, 31, 0, -24, -28, -42, -40, -19, -4, + 4, 2, 1, -4, -3, -4, -3, 8, -3, 6, 6, 3, -6, 4, 7, -11, + -8, 7, 20, 12, 21, 41, 34, -2, -31, -34, -29, -21, -12, -3, -4, -10, + -7, -5, -6, -4, 5, 8, -3, -1, 7, -1, -11, -7, 0, 1, 6, 16, + 28, 33, 33, 30, 13, -1, -26, -35, -30, -24, -14, -5, -4, -11, -7, -5, + -6, -6, 3, 8, -2, -2, 7, 1, -11, -9, -1, 0, 4, 14, 26, 32, + 33, 32, 17, 3, -22, -34, -31, -25, -16, -6, -3, -10, -8, -5, -6, -7, + 2, 9, 0, -3, 6, 3, -9, -10, -2, 0, 3, 12, 24, 32, -1, 0, + -3, -1, -8, -5, -16, -5, -14, -4, -13, -5, -1, -7, 16, -17, 28, -16, + 47, 1, 70, 35, 97, 71, 98, 66, 32, -5, -71, -69, -122, -69, -105, -33, + -67, -6, -35, 2, -12, -2, 4, -12, 16, -19, 29, -16, 44, 2, 66, 37, + 92, 76, 95, 74, 33, 5, -69, -63, -122, -69, -106, -36, -66, -11, -33, -3, + -9, -7, 7, -16, 18, -22, 29, -17, 42, 3, 61, 40, 86, 81, 91, 82, + 34, 15, -67, -57, -122, -69, -105, -40, -64, -17, -29, -9, -6, -12, 10, -20, + 20, -23, 28, -17, 39, 4, 56, 42, 80, 85, 88, 89, 35, 24, -63, -53, + -119, -70, -104, -45, -62, -22, -26, -14, -2, -16, 12, -23, 20, -25, 27, -16, + 35, 7, 51, 45, 74, 89, 85, 96, 38, 32, -58, -49, -116, -72, -102, -50, + -60, -27, -24, -19, 0, -20, 14, -24, 20, -24, 24, -14, 31, 10, 45, 48, + 69, 92, 82, 102, 40, 39, -53, -45, -112, -74, -100, -55, -57, -33, -21, -24, + 3, -24, 15, -26, 19, -24, 22, -12, 27, 12, 40, 50, 63, 95, 80, 106, + 43, 45, -47, -42, -107, -76, -97, -60, -55, -38, -18, -28, 4, -26, 15, -27, + 18, -23, 19, -10, 23, 15, 35, 53, 59, 97, 78, 110, 47, 50, -39, -39, + -102, -79, -94, -65, -52, -43, -16, -32, 5, -28, 14, -27, 16, -21, 15, -7, + 18, 18, 30, 55, 54, 98, 76, 113, 51, 55, -32, -37, -96, -81, -91, -70, + -50, -48, -15, -35, 6, -30, 13, -26, 13, -19, 11, -5, 13, 20, 25, 56, + 50, 99, 75, 115, 56, 59, -24, -35, -90, -83, -88, -75, -48, -52, -14, -38, + 5, -30, 11, -25, 10, -17, 7, -2, 9, 22, 21, 57, 47, 99, 75, 116, + 61, 62, -15, -33, -82, -86, -84, -80, -47, -56, -14, -39, 4, -30, 9, -24, + 6, -15, 3, 1, 5, 24, 17, 57, 44, 98, 75, 116, 66, 65, -6, -31, + -75, -88, -81, -83, -46, -59, -14, -41, 3, -30, 6, -22, 3, -12, -1, 3, + 1, 26, 13, 57, 41, 96, 75, 115, 72, 68, 2, -29, -69, -89, -78, -87, + -45, -62, -15, -42, 0, -29, 3, -20, -1, -10, -5, 5, -2, 26, 11, 56, + 40, 94, 76, 114, 77, 69, 12, -28, -61, -91, -75, -89, -45, -64, -16, -42, + -2, -28, 0, -18, -5, -8, -9, 7, -6, 27, 8, 55, 38, 91, 77, 112, + 82, 71, 20, -25, -55, -91, -73, -91, -46, -65, -18, -42, -5, -26, -4, -15, + -10, -5, -13, 9, -9, 27, 7, 53, 37, 88, 78, 110, 87, 72, 29, -23, + -48, -90, -71, -93, -47, -66, -21, -41, -9, -24, -8, -13, -13, -3, -16, 9, + -11, 27, 5, 51, 37, 84, 79, 108, 93, 74, 37, -20, -42, -90, -70, -94, + -49, -66, -24, -40, -12, -23, -12, -12, -16, -2, -18, 10, -12, 25, 5, 48, + 37, 80, 81, 105, 98, 75, 45, -16, -36, -88, -68, -94, -51, -66, -28, -39, + -16, -21, -15, -10, -19, -1, -21, 10, -13, 24, 4, 45, 37, 76, 82, 102, + 102, 76, 52, -13, -30, -85, -67, -94, -54, -66, -31, -38, -20, -19, -19, -9, + -22, 0, -22, 9, -14, 22, 4, 41, 37, 71, 83, 99, 105, 77, 59, -8, + -25, -82, -67, -93, -56, -65, -35, -37, -23, -18, -22, -7, -25, 0, -24, 8, + -14, 20, 5, 37, 38, 67, 84, 96, 108, 79, 65, -3, -20, -79, -66, -92, + -59, -65, -39, -36, -27, -17, -25, -7, -27, -1, -24, 6, -14, 17, 6, 34, + 39, 63, 84, 93, 111, 80, 71, 1, -15, -75, -66, -90, -62, -64, -43, -35, + -31, -16, -28, -6, -28, -1, -25, 5, -14, 14, 6, 30, 39, 58, 85, 90, + 113, 82, 76, 7, -11, -70, -66, -88, -66, -62, -46, -34, -34, -15, -30, -7, + -30, -2, -25, 2, -13, 11, 7, 26, 40, 53, 84, 87, 115, 84, 81, 13, + -7, -65, -66, -85, -68, -61, -50, -33, -37, -15, -32, -7, -30, -4, -25, 0, + -12, 7, 9, 19, 37, 52, 80, 97, 118, 113, 98, 54, 7, -41, -72, -87, + -87, -75, -65, -47, -42, -29, -30, -22, -24, -19, -19, -14, -9, -2, 8, 17, + 36, 50, 77, 95, 117, 115, 101, 60, 13, -35, -69, -85, -88, -75, -66, -49, + -44, -31, -31, -23, -25, -20, -20, -15, -9, -2, -1, 0, 0, 0, 0, -1, + -1, -1, 3, 9, 14, 14, 10, -3, -17, -13, 1, 1, 23, 33, -14, -55, + -59, -80, -75, -35, -7, 51, 40, -29, -35, -53, -128, -31, 111, 72, 46, 55, + -19, -73, -23, 14, 64, 104, 87, 105, 68, -54, -76, -1, -18, 12, 92, 23, + -79, -93, -105, -119, -64, -20, 39, 70, 2, -45, -52, -107, -82, 73, 106, 56, + 53, 12, -57, -37, 14, 52, 105, 101, 94, 85, -5, -75, -25, -1, -8, 59, + 52, -45, -89, -94, -117, -90, -42, 1, 53, 29, -29, -45, -79, -104, 3, 99, + 78, 63, 42, -25, -49, -7, 30, 83, 112, 103, 99, 40, -54, -58, -11, -7, + 36, 68, -4, -80, -98, -114, -106, -57, -15, 33, 42, -10, -46, -66, -97, -45, + 68, 90, 67, 53, 4, -40, -20, 18, 60, 103, 107, 100, 69, -15, -62, -31, + -9, 15, 60, 31, -50, -90, -108, -115, -79, -33, 11, 42, 15, -33, -58, -87, + -75, 21, 87, 79, 63, 27, -26, -33, 1, 40, 88, 111, 105, 85, 20, -50, + -49, -17, 5, 46, 49, -17, -77, -102, -115, -95, -49, -7, 31, 28, -15, -50, + -76, -84, -21, 64, 84, 71, 45, -4, -32, -13, 22, 66, 103, 108, 95, 50, + -23, -56, -32, -5, 30, 55, 14, -53, -92, -111, -107, -68, -24, 16, 34, 4, + -37, -66, -85, -53, 32, 81, 77, 58, 17, -25, -24, 6, 46, 89, 108, 101, + 71, 6, -49, -45, -16, 15, 49, 36, -26, -77, -103, -110, -85, -41, 0, 30, + 20, -21, -55, -79, -72, -5, 65, 81, 67, 36, -10, -28, -8, 27, 71, 102, + 104, 85, 34, -31, -51, -29, 1, 37, 48, 2, -57, -93, -109, -97, -58, -16, + 20, 28, -4, -42, -70, -79, -36, 39, 78, 74, 51, 9, -24, -18, 11, 51, + 91, 105, 94, 57, -6, -48, -41, -12, 22, 48, 26, -33, -79, -103, -104, -74, + -32, 6, 28, 12, -27, -60, -78, -59, 8, 66, 78, 62, 27, -13, -24, -3, + 33, 74, 100, 99, 74, 20, -35, -48, -25, 8, 40, 40, -7, -61, -94, -106, + -88, -49, -9, 21, 21, -11, -47, -72, -71, -22, 45, 76, 71, 43, 2, -22, + -13, 16, 56, 91, 101, 85, 43, -15, -47, -36, -6, 28, 45, 16, -38, -80, + -102, -97, -65, -24, 11, 25, 4, -33, -63, -75, -46, 18, 66, 75, 56, 19, + -15, -20, 2, 38, 77, 98, 93, 62, 8, -38, -44, -20, 14, 41, 32, -15, + -64, -94, -101, -79, -40, -2, 22, 15, -17, -52, -72, -61, -9, 49, 74, 66, + 36, -2, -21, -9, 22, 61, 91, 96, 76, 31, -22, -45, -32, 0, 32, 40, + 7, -43, -82, -99, -89, -56, -17, 14, 21, -2, -38, -65, -69, -33, 26, 66, + 71, 50, 13, -16, -16, 7, 43, 79, 95, 85, 50, -2, -40, -40, -14, 20, + 40, 24, -22, -66, -93, -95, -70, -32, 3, 21, 9, -23, -55, -70, -51, 1, + 52, 71, 60, 28, -6, -19, -4, 27, 64, 90, 91, 66, 19, -27, -43, -26, + 6, 34, 35, -1, -48, -83, -96, -81, -47, -10, 16, 17, -9, -43, -66, -62, + -22, 33, 66, 67, 43, 7, -16, -13, 12, 48, 80, 91, 77, 39, -10, -40, + -36, -8, 24, 38, 17, -28, -69, -92, -89, -62, -25, 7, 19, 4, -29, -58, + -67, -42, 10, 55, 70, 55, 22, -9, -17, 0, 33, 68, 90, 86, 57, 10, + -31, -41, -21, 12, 36, 30, -8, -53, -85, -94, -75, -41, -5, 17, 13, -15, + -48, -67, -57, -13, 39, 68, 64, 37, 3, -16, -9, 18, 54, 84, 91, 72, + 30, -17, -41, -33, -2, 28, 37, 10, -35, -74, -94, -86, -56, -19, 10, 17, + -2, -36, -63, -66, -34, 19, 60, 70, 51, 17, -11, -15, 5, 39, 74, 92, + 83, 49, 1, -36, -40, -16, 18, 37, 24, -17, -61, -90, -93, -70, -34, 1, + 18, 8, -22, -55, -69, -50, -2, 47, 70, 61, 31, -3, -17, -5, 26, 62, + 88, 90, 65, 19, -25, -42, -27, 5, 33, 33, 1, -45, -81, -95, -81, -48, + -11, 14, 15, -10, -43, -66, -61, -22, 31, 65, 68, 43, 9, -14, -11, 12, + 49, 80, 92, 76, 38, -10, -39, -36, -8, 24, 38, 16, -27, -70, -92, -89, + -61, -25, 7, 17, 3, -31, -59, -68, -39, 8, 55, 55, 19, 0, -9, -10, + -14, -13, -21, -30, -32, -44, -49, -57, -65, -72, -83, -98, -104, -117, -123, -128, + -127, -128, -128, -128, -128, -127, -128, -120, -117, -109, -100, -90, -83, -72, -66, -55, + -50, -33, -42, -18, -29, -18, 15, -6, 11, 7, 19, 3, 38, 5, 48, 44, + 64, 57, 97, 82, 111, 104, 110, 107, 120, 116, 125, 126, 126, 126, 126, 127, + 117, 125, 123, 100, 127, 101, 124, 102, 121, 109, 126, 96, 125, 116, 127, 90, + 119, 87, 127, 90, 118, 95, 123, 93, 106, 90, 100, 104, 74, 84, 73, 97, + 72, 71, 57, 66, 80, 36, 59, 38, 55, 35, 57, -6, 64, 10, 25, 19, + 19, -22, 65, -26, 14, 2, -17, -12, 22, -40, -3, -31, -24, -38, -1, -56, + -6, -48, -36, -54, -19, -56, -33, -49, -69, -49, -52, -53, -60, -61, -84, -76, + -85, -96, -95, -95, -114, -93, -117, -104, -93, -101, -98, -100, -101, -96, -78, -95, + -71, -70, -72, -52, -63, -70, -43, -77, -41, -48, -65, -53, -53, -59, -42, -56, + -37, -64, -54, -52, -50, -54, -56, -54, -55, -62, -51, -47, -44, -67, -60, -63, + -56, -64, -53, -48, -61, -53, -58, -38, -48, -32, -38, -34, -28, -26, -23, -25, + -22, -6, -7, -12, -1, 5, 6, 6, -7, 22, -4, 27, 15, 18, 24, 37, + 30, 47, 24, 53, 29, 63, 29, 46, 46, 51, 52, 53, 36, 54, 65, 55, + 33, 64, 36, 69, 54, 26, 62, 66, 36, 68, 30, 47, 54, 58, 20, 55, + 31, 40, 50, 35, 19, 56, 33, 25, 46, 18, 22, 42, 21, 25, 32, 19, + 19, 26, 18, 23, 29, 24, 7, 27, 6, 33, 8, 17, -2, 14, 3, 23, + 14, 7, 5, -9, -13, -10, -23, -12, -16, -27, -8, -18, -15, -3, -18, -24, + -5, -23, -9, 0, -11, 4, -1, 4, 2, 5, -2, 3, -1, -7, 4, -11, + 1, -12, -4, -7, -10, -11, -11, -16, -23, -15, -20, -22, -23, -20, -30, -23, + -31, -25, -32, -35, -41, -34, -44, -39, -34, -49, -33, -30, -36, -29, -33, -14, + -24, -32, -18, -15, -7, -9, -11, 5, -14, 27, -11, 16, -10, 13, -9, 23, + -10, 19, 10, 18, 11, 29, 1, 47, 27, -4, 45, 3, 43, 40, 14, 13, + 57, 16, 34, 27, 22, 30, 32, 14, 24, 27, 20, 20, 17, 4, 20, 20, + 8, 8, 0, 10, -3, 17, -8, -1, -4, 1, 0, 6, -7, -3, -3, -13, + -5, -6, -18, -5, -28, -12, -13, -5, -11, -5, -28, -7, -15, -10, -6, -28, + -16, -12, -17, -8, -10, -19, -10, -24, -30, -32, -26, -31, -36, -32, -33, -27, + -25, -26, -26, -25, -25, -23, -16, -22, -10, -11, -7, -7, 4, -10, 10, -9, + 11, -8, 4, -6, 4, -8, 3, -4, 2, -3, -5, -3, -11, -8, -6, -12, + -11, -7, -24, -4, -17, -9, -18, -28, -16, -29, -23, -38, -24, -34, -22, -38, + -18, -27, -10, -22, -19, -21, -2, -23, 10, -19, 0, 4, 16, 7, 0, 3, + 17, 14, 26, 8, 25, 27, 30, 25, 38, 31, 49, 37, 42, 45, 48, 55, + 63, 46, 54, 54, 56, 59, 56, 47, 50, 53, 47, 50, 44, 42, 35, 40, + 31, 37, 35, 27, 20, 23, 19, 26, 24, 18, 11, 14, 18, 24, 18, 12, + 10, 3, 12, 2, 9, 4, 0, 0, 3, -4, 11, 1, 1, -1, -5, -7, + 1, -6, -1, 2, -4, 1, -1, -7, -9, -11, -21, -19, -20, -28, -27, -22, + -29, -24, -26, -32, -22, -25, -31, -24, -19, -22, -11, -19, -15, -4, -5, -4, + 0, -6, -6, 2, -9, -5, -5, -9, -10, -7, -18, -8, -14, -14, -19, -29, + -25, -16, -25, -30, -30, -30, -21, -29, -38, -37, -36, -41, -44, -53, -48, -43, + -44, -55, -46, -40, -33, -36, -40, -40, -28, -25, -24, -23, -17, -15, 1, -3, + -1, 5, 2, 9, 1, 4, 12, 13, 14, 15, 9, 21, 26, 32, 31, 28, + 28, 41, 38, 49, 45, 46, 53, 56, 57, 57, 57, 58, 55, 48, 56, 56, + 56, 45, 39, 41, 41, 44, 42, 25, 28, 27, 24, 28, 21, 14, 17, 8, + 15, 22, 13, 15, 16, 3, 11, 10, 4, 6, 4, -8, 0, -2, -2, -3, + -2, 1, 3, -3, -3, -6, -8, -5, 4, 3, 2, -4, -2, -1, 5, 3, + -2, -2, -2, 3, 7, -2, -26, -37, -34, -30, -13, -14, -21, -24, -27, -24, + -13, -7, -15, 6, 3, -30, -50, -48, -47, -41, -26, -8, 28, 43, 38, 57, + 63, 56, 75, 118, 127, 117, 99, 86, 85, 66, 46, 59, 80, 69, 43, 27, + -6, -47, -74, -80, -71, -57, -40, -44, -56, -78, -88, -78, -59, -52, -51, -56, + -57, -47, -36, -36, -39, -39, -32, -17, 6, 24, 33, 10, -14, -14, -2, -11, + -20, -15, -24, -28, -28, -25, -28, -54, -73, -65, -43, -18, 6, 27, 21, 23, + 17, 22, 18, 16, 31, 50, 45, 25, 22, 8, -20, -17, 8, 29, 10, -22, + -41, -45, -51, -53, -31, -18, -23, -7, 37, 54, 38, 36, 60, 100, 119, 120, + 122, 125, 110, 88, 94, 99, 90, 85, 82, 54, 26, -5, -49, -83, -85, -67, + -36, -14, -30, -55, -76, -86, -65, -41, -45, -60, -53, -43, -35, -34, -41, -43, + -45, -35, 10, 40, 32, 3, -3, -14, -30, -38, -33, -23, -29, -26, -18, -10, + -17, -37, -46, -58, -61, -45, -17, -4, -2, 19, 31, 27, 13, 22, 38, 49, + 59, 69, 60, 23, -13, -11, 13, 24, 19, 24, 8, -30, -58, -58, -66, -85, + -90, -61, -19, -1, -11, -5, 25, 42, 61, 92, 109, 106, 110, 104, 93, 93, + 89, 82, 86, 81, 71, 51, 13, -40, -74, -87, -73, -35, -24, -50, -71, -73, + -53, -50, -58, -68, -60, -61, -54, -30, -25, -40, -52, -25, 13, 32, 45, 49, + 44, 28, 22, 29, 32, 20, 3, 7, 6, 0, -1, -4, -30, -63, -69, -62, + -57, -49, -25, 2, 17, 24, 27, 30, 10, 4, 38, 77, 66, 32, 13, 7, + 0, 9, 31, 43, 23, -11, -25, -23, -46, -83, -87, -63, -42, -19, -6, -3, + 6, 27, 49, 81, 108, 121, 123, 124, 115, 110, 98, 80, 78, 77, 77, 69, + 54, 8, -56, -99, -92, -53, -46, -64, -75, -73, -70, -75, -62, -67, -86, -88, + -54, -28, -33, -46, -50, -40, -24, -3, 29, 51, 48, 34, 44, 44, 30, 18, + 13, -3, -15, -7, -1, -10, -36, -56, -65, -79, -100, -91, -64, -52, -40, -5, + 20, 9, -14, -9, 21, 49, 59, 58, 49, 25, -1, 11, 39, 39, 22, 19, + 20, 8, -19, -49, -72, -69, -58, -43, -27, -24, -13, -5, 12, 38, 74, 97, + 110, 124, 126, 126, 114, 105, 100, 87, 91, 108, 115, 73, 5, -41, -49, -49, + -53, -45, -49, -69, -77, -60, -51, -71, -94, -96, -68, -49, -46, -44, -45, -60, + -60, -27, 0, 11, 26, 37, 37, 37, 40, 42, 34, 8, -1, 14, 15, -5, + -12, -18, -44, -75, -85, -88, -98, -99, -76, -36, -12, -19, -24, -11, -9, 1, + 36, 71, 58, 29, 13, 17, 33, 33, 30, 35, 44, 44, 27, -3, -39, -51, + -61, -55, -41, -31, -25, -29, -21, -1, 23, 46, 76, 102, 109, 110, 116, 118, + 92, 61, 76, 112, 120, 93, 57, 14, -28, -54, -50, -46, -60, -83, -82, -64, + -62, -82, -89, -93, -101, -88, -59, -52, -64, -75, -76, -63, -50, -30, -1, 9, + 8, 11, 32, 44, 36, 29, 32, 27, 20, 22, 28, 24, 0, -21, -30, -45, + -78, -97, -83, -66, -50, -32, -17, -16, -23, -20, 4, 38, 51, 47, 37, 28, + 29, 27, 27, 31, 42, 54, 55, 43, 20, -5, -29, -40, -37, -30, -27, -23, + -15, -12, -11, 8, 43, 67, 78, 100, 122, 126, 107, 84, 81, 92, 106, 115, + 110, 79, 31, -3, -13, -26, -47, -56, -56, -58, -58, -56, -59, -72, -86, -84, + -66, -57, -56, -56, -60, -74, -74, -51, -32, -24, -14, 3, 14, 15, 19, 28, + 33, 19, 11, 22, 29, 18, 8, 9, 0, 0, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -1, + -1, -1, -1, -1, -1, -1, -1, 0, -1, -3, -2, -1, 0, 2, -4, -13, + -21, -23, -19, -8, 7, 17, 23, 26, 33, 38, 32, 17, -5, -17, -24, -20, + -6, -3, -16, -29, -26, -17, -5, -1, 2, 7, 11, 17, 15, 9, 9, 3, + 10, 15, 9, -14, -33, -27, -18, -6, -7, -10, -6, 0, 12, 15, 29, 38, + 36, 32, 11, 0, -30, -45, -50, -39, -23, -27, -24, -15, 6, 25, 37, 51, + 46, 40, 0, -19, -22, -34, -30, -40, -45, -51, -34, -1, 25, 48, 40, 43, + 51, 64, 58, 5, -22, -49, -63, -69, -68, -58, -54, -16, 13, 44, 66, 61, + 68, 72, 86, 47, -17, -56, -82, -88, -93, -72, -58, -40, 4, 45, 94, 98, + 84, 65, 68, 71, 15, -46, -88, -90, -88, -85, -62, -56, -34, -4, 41, 80, + 82, 74, 54, 70, 66, 25, -29, -70, -74, -90, -87, -79, -73, -46, -10, 54, + 90, 103, 88, 76, 90, 69, 25, -38, -76, -96, -119, -111, -103, -81, -57, -12, + 50, 90, 113, 98, 100, 112, 103, 60, -11, -54, -95, -121, -124, -119, -95, -71, + -10, 53, 103, 116, 93, 91, 89, 80, 31, -28, -67, -108, -122, -128, -110, -87, + -53, 8, 60, 107, 107, 89, 83, 83, 76, 27, -14, -52, -84, -99, -103, -82, + -72, -40, 4, 53, 92, 92, 88, 85, 97, 87, 42, 3, -45, -74, -106, -111, + -105, -101, -70, -30, 27, 65, 77, 83, 87, 106, 90, 58, 16, -30, -67, -101, + -100, -101, -93, -68, -27, 29, 60, 77, 79, 93, 111, 96, 71, 24, -21, -73, + -109, -118, -127, -118, -98, -50, 6, 43, 65, 70, 99, 115, 108, 82, 40, -1, + -53, -80, -94, -105, -101, -82, -31, 18, 56, 66, 72, 95, 103, 97, 64, 29, + -15, -63, -85, -102, -105, -104, -81, -35, 13, 53, 58, 69, 86, 97, 94, 67, + 39, -12, -54, -80, -97, -102, -103, -77, -38, 9, 40, 45, 60, 77, 95, 88, + 70, 41, -8, -46, -74, -87, -99, -100, -78, -42, 10, 37, 50, 66, 89, 110, + 103, 91, 57, 9, -33, -68, -86, -105, -105, -89, -51, -2, 23, 40, 53, 80, + 99, 98, 89, 53, 8, -37, -68, -90, -107, -106, -94, -51, -5, 25, 43, 58, + 86, 95, 98, 86, 52, 9, -36, -64, -92, -105, -108, -95, -53, -11, 22, 37, + 57, 81, 90, 96, 82, 52, 6, -34, -64, -92, -104, -113, -97, -59, -18, 15, + 31, 58, 79, 92, 98, 87, 57, 9, -29, -63, -87, -100, -109, -91, -58, -13, + 16, 36, 62, 78, 93, 96, 88, 56, 12, -25, -62, -83, -101, -106, -89, -57, + -15, 6, 30, 52, 71, 87, 94, 89, 55, 18, -21, -55, -76, -96, -100, -88, + -53, -16, 6, 31, 53, 76, 93, 105, 98, 64, 26, -18, -52, -78, -99, -105, + -95, -59, -26, 0, 24, 45, 66, 81, 97, 88, 62, 28, -12, -40, -67, -84, + -95, -83, -50, -21, 4, 24, 47, 64, 81, 96, 85, 63, 26, -11, -41, -69, + -88, -102, -91, -64, -36, -12, 10, 34, 51, 74, 87, 81, 62, 26, -7, -40, + -63, -83, -95, -83, -58, -31, -10, 14, 34, 51, 75, 85, 82, 61, 30, -3, + -34, -57, -81, -92, -83, -60, -36, -15, 11, 27, 47, 69, 80, 79, 59, 30, + -5, -33, -57, -82, -93, -84, -61, -38, -15, 10, 25, 48, 68, 80, 77, 58, + 29, -4, -30, -56, -80, -89, -78, -54, -34, -8, 10, 0, 0, 1, 0, -2, + -2, -5, -8, -3, 3, -4, -10, 2, 8, 3, 4, 5, -3, -9, 10, 26, + 26, 12, -4, -40, -64, -50, 1, 55, 69, 28, -23, -65, -83, -52, 13, 67, + 67, 39, 16, -15, -48, -38, 10, 53, 44, 5, -5, -14, -43, -35, 16, 54, + 37, -1, -26, -53, -82, -37, 35, 67, 44, 2, -10, -20, -39, -19, 27, 55, + 42, 3, -26, -67, -107, -62, 43, 110, 102, 43, -18, -63, -91, -35, 73, 120, + 77, -6, -72, -113, -109, -36, 53, 78, 50, 0, -46, -72, -71, -20, 67, 112, + 100, 44, -24, -88, -123, -84, 5, 71, 97, 66, 7, -53, -100, -80, -1, 83, + 127, 108, 38, -57, -121, -119, -57, 24, 84, 97, 62, -4, -77, -97, -46, 32, + 101, 108, 56, -20, -103, -119, -69, 18, 105, 126, 90, 6, -92, -126, -90, -3, + 85, 108, 75, 0, -86, -117, -85, -6, 76, 115, 101, 30, -68, -118, -105, -33, + 57, 105, 102, 41, -46, -104, -112, -59, 25, 95, 121, 81, -5, -88, -126, -94, + -12, 63, 101, 76, 7, -67, -107, -73, 11, 94, 127, 102, 21, -74, -124, -95, + -21, 57, 101, 82, 21, -48, -89, -59, 6, 67, 95, 60, -11, -82, -115, -81, + -13, 52, 84, 52, -9, -68, -96, -56, 9, 66, 93, 63, 10, -52, -86, -54, + 1, 60, 96, 70, 19, -44, -80, -51, 0, 55, 94, 69, 20, -42, -88, -76, + -40, 24, 79, 72, 34, -28, -75, -63, -23, 35, 71, 48, 4, -57, -95, -67, + -10, 62, 103, 75, 18, -61, -110, -86, -22, 61, 110, 90, 37, -45, -100, -87, + -39, 34, 81, 70, 33, -39, -88, -76, -24, 54, 94, 76, 32, -46, -100, -92, + -42, 35, 73, 62, 26, -46, -97, -93, -44, 36, 81, 75, 35, -38, -87, -81, + -26, 58, 99, 85, 37, -44, -101, -103, -46, 47, 98, 97, 56, -27, -90, -99, + -49, 37, 88, 95, 62, -12, -74, -93, -51, 27, 69, 71, 35, -30, -78, -87, + -38, 41, 84, 90, 57, -11, -71, -96, -56, 21, 69, 86, 60, -4, -67, -97, + -61, 12, 65, 88, 65, 3, -61, -94, -60, 14, 71, 96, 68, 3, -66, -104, + -70, 3, 59, 84, 59, -1, -67, -107, -76, -3, 59, 89, 64, 3, -67, -111, + -82, -9, 57, 92, 76, 26, -43, -93, -71, -9, 50, 80, 64, 16, -51, -100, + -79, -17, 49, 88, 77, 30, -41, -95, -79, -17, 49, 87, 77, 34, -36, -92, + -78, -19, 44, 82, 73, 33, -37, -95, -84, -23, 47, 89, 83, 43, -30, -92, + -83, -28, 39, 79, 74, 40, -28, -87, -82, -31, 34, 71, 67, 35, -31, -88, + -85, -36, 28, 68, 69, 44, -20, -79, -83, -43, 19, 59, 64, 41, -25, -89, + -100, -61, 9, 60, 76, 57, -10, -75, -90, -51, 22, 74, 88, 66, 1, -61, + -78, -42, 25, 71, 84, 63, -1, -67, -90, -59, 8, 59, 81, 68, 8, -56, + -85, -62, 1, 50, 74, 63, 7, -53, -84, -60, 5, 55, 80, 70, 17, -43, + -76, -55, 4, 49, 73, 65, 17, -41, -77, -62, -9, 38, 68, 64, 17, -43, + -84, -73, -22, 23, 56, 57, 18, -36, -77, -68, -23, 20, 51, 52, 16, -36, + -77, -70, -26, 18, 54, 59, 28, -22, -64, -59, -20, 21, 56, 63, 36, -12, + -55, -52, -16, 25, 58, 63, 35, -14, -59, -57, -22, 18, 51, 57, 31, -16, + -58, -58, -27, 10, 43, 51, 30, -16, -59, -60, -28, 12, 48, 57, 35, -13, + -59, -64, -35, 7, 47, 63, 47, 1, -46, -55, -32, 7, 47, 0, 0, -1, + -1, -4, 1, -1, -3, -13, -8, -14, -3, -2, -2, 1, 8, 5, 7, -21, + -13, -2, -6, -8, -22, -6, 5, 11, 34, 41, 33, 13, 28, 33, 48, 35, + 21, -3, -26, -18, -10, 3, 7, 22, 21, 63, 40, 41, 43, 4, -8, -43, + -63, -77, -77, -59, -18, 3, 2, -21, -46, -74, -90, -108, -101, -94, -89, -84, + -85, -77, -59, -50, -33, -7, 18, 37, 47, 64, 101, 127, 125, 127, 126, 126, + 126, 122, 100, 87, 62, 37, 28, 27, 25, 27, 34, 25, -4, -45, -85, -123, + -128, -126, -128, -127, -123, -92, -73, -55, -45, -37, -33, -32, -33, -43, -53, -55, + -43, -20, 3, 20, 34, 42, 49, 55, 63, 74, 84, 93, 101, 107, 112, 117, + 109, 92, 63, 33, 8, -13, -25, -29, -30, -27, -27, -32, -46, -63, -82, -98, + -109, -116, -121, -118, -104, -80, -49, -12, 21, 45, 58, 64, 66, 66, 61, 51, + 44, 37, 32, 32, 33, 33, 28, 23, 15, 8, 3, 2, 9, 16, 20, 24, + 23, 14, -1, -20, -37, -48, -53, -52, -47, -38, -26, -13, -5, -1, -4, -10, + -22, -34, -43, -48, -46, -34, -16, 5, 25, 45, 65, 78, 84, 83, 71, 55, + 39, 24, 9, -3, -12, -23, -34, -45, -57, -65, -71, -71, -63, -49, -34, -21, + -11, -2, 2, 8, 11, 12, 14, 14, 20, 28, 38, 50, 58, 63, 61, 56, + 46, 33, 17, -1, -19, -34, -45, -48, -44, -32, -19, -5, 5, 7, 4, -2, + -7, -11, -15, -18, -21, -23, -26, -28, -30, -31, -29, -26, -20, -12, -1, 11, + 21, 32, 42, 51, 55, 55, 52, 46, 41, 37, 32, 30, 28, 27, 24, 19, + 12, -1, -21, -45, -67, -89, -103, -107, -101, -90, -70, -51, -33, -18, -2, 11, + 23, 33, 39, 44, 49, 52, 57, 59, 59, 56, 52, 48, 41, 35, 28, 20, + 15, 11, 4, 0, -5, -11, -18, -25, -34, -42, -47, -48, -46, -40, -33, -27, + -24, -21, -24, -32, -42, -51, -56, -58, -56, -47, -35, -18, 2, 24, 48, 70, + 88, 99, 104, 102, 97, 89, 79, 69, 59, 49, 37, 27, 14, 0, -14, -29, + -44, -58, -71, -81, -87, -88, -88, -85, -81, -77, -72, -63, -51, -37, -21, -5, + 12, 29, 43, 53, 59, 61, 57, 48, 36, 24, 13, 8, 8, 15, 25, 38, + 48, 54, 54, 50, 43, 33, 22, 11, 3, -6, -15, -25, -35, -46, -54, -61, + -65, -68, -69, -69, -68, -64, -59, -52, -43, -32, -20, -7, 6, 19, 31, 42, + 51, 58, 62, 64, 62, 58, 52, 44, 35, 26, 17, 9, 1, -5, -10, -15, + -18, -19, -20, -19, -18, -16, -15, -14, -14, -15, -16, -17, -18, -19, -19, -19, + -19, -18, -16, -14, -11, -9, -6, -3, 0, 3, 6, 10, 14, 18, 22, 27, + 32, 35, 37, 37, 35, 30, 23, 14, 4, -6, -15, -24, -31, -36, -39, -40, + -39, -37, -32, -26, -19, -10, -1, 8, 17, 24, 29, 32, 33, 32, 29, 25, + 20, 15, 11, 7, 3, -1, -5, -9, -14, -19, -24, -28, -31, -32, -31, -27, + -23, -16, -10, -3, 2, 7, 10, 12, 13, 13, 13, 12, 10, 8, 7, 5, + 5, 5, 5, 6, 8, 10, 13, 17, 20, 23, 25, 26, 25, 21, 16, 9, + 1, -7, -16, -24, -31, -37, -42, -47, -49, -51, -52, -51, -48, -43, -37, -30, + -20, -7, 6, 19, -1, -4, -4, 0, -1, -4, -3, 4, 4, -2, -3, 2, + 1, -4, 0, 5, 0, -4, 2, -10, -26, -29, -34, -49, -61, -44, -21, -8, + -3, -3, 1, 20, 32, 38, 32, 12, -4, 1, 14, 28, 51, 68, 78, 80, + 72, 38, 1, -6, 16, 23, 2, -14, -15, -20, -33, -62, -65, -37, -18, -27, + -29, -26, -45, -38, 8, 52, 55, 31, 26, 16, 17, 45, 80, 87, 77, 62, + 54, 24, -23, -50, -43, -28, -47, -72, -86, -86, -87, -61, -35, -38, -57, -69, + -55, -27, 1, 4, 22, 45, 54, 31, 0, -7, -5, -3, 0, -9, -21, -20, + -15, -27, -31, -10, 5, 9, 3, -21, -67, -83, -46, -3, 8, 18, 22, 4, + -3, 5, 35, 52, 67, 72, 83, 89, 71, 37, 19, 25, 8, -11, -37, -58, + -80, -85, -68, -33, -24, -57, -60, -34, -16, -14, 17, 73, 96, 77, 48, 17, + -7, -9, 4, -1, -3, 6, 3, -12, -10, 19, 33, 33, 41, 35, -29, -70, + -64, -38, -18, 3, 17, -5, -26, -35, -5, 31, 63, 73, 86, 94, 80, 64, + 50, 46, 37, 28, -2, -32, -65, -91, -84, -63, -59, -82, -97, -80, -66, -65, + -43, 8, 49, 60, 61, 42, 27, 23, 23, 14, 15, 18, 10, -12, -17, -9, + -13, 8, 35, 42, 2, -41, -76, -87, -67, -46, -31, -32, -45, -72, -53, -5, + 32, 46, 72, 92, 96, 92, 77, 75, 73, 61, 44, 12, -32, -68, -72, -54, + -58, -75, -85, -67, -57, -61, -60, -46, -11, 24, 35, 22, 15, 6, -1, -13, + 8, 23, 8, -1, -1, -6, -8, 35, 71, 86, 79, 50, -11, -46, -38, -31, + -29, -21, -30, -64, -68, -43, -12, 10, 28, 62, 89, 88, 84, 85, 90, 89, + 95, 83, 28, -32, -53, -36, -44, -62, -64, -55, -59, -54, -52, -48, -23, 19, + 48, 37, 39, 42, 31, 12, 19, 20, 5, 4, 1, -23, -40, -14, 14, 42, + 68, 64, 14, -33, -53, -52, -32, -18, -24, -43, -67, -62, -36, -18, -1, 25, + 54, 57, 58, 56, 54, 50, 66, 80, 44, -21, -50, -40, -52, -69, -77, -60, + -56, -54, -53, -62, -49, -9, 28, 41, 58, 58, 47, 43, 49, 41, 34, 37, + 18, -19, -44, -47, -36, 1, 35, 38, 19, -20, -62, -71, -59, -36, -34, -47, + -63, -63, -50, -38, -17, 7, 37, 56, 74, 80, 73, 61, 87, 116, 99, 47, + -7, -26, -22, -20, -32, -57, -72, -76, -76, -71, -47, -9, 13, 24, 29, 29, + 25, 27, 52, 68, 62, 9, -38, -67, -66, -39, -11, -4, -24, -37, -47, -51, + -49, -44, -55, -39, -6, -17, -52, -54, -19, 1, 15, 24, 31, 41, 55, 71, + 79, 89, 111, 115, 88, 54, 22, -2, -8, -5, -7, -27, -49, -57, -69, -72, + -64, -30, -3, 17, 31, 37, 29, 14, 39, 67, 73, 47, 10, -40, -72, -58, + -23, -12, -19, -19, -39, -49, -42, -46, -62, -44, -8, -11, -36, -51, -39, -15, + 0, 13, 21, 25, 40, 55, 63, 73, 95, 115, 115, 85, 53, 20, 2, -1, + -2, -10, -32, -48, -64, -73, -77, -62, -33, -9, 16, 33, 31, 18, 17, 44, + 67, 70, 49, 6, -45, -69, -53, -24, -13, -19, -24, -40, -47, -45, -50, -62, + -43, -10, -13, -37, -51, -39, -15, 0, -3, -1, 1, -1, -6, -6, -4, -1, + -2, -6, -8, -7, -4, -5, -10, -14, -16, -16, -16, -17, -18, -18, -17, -15, + -15, -16, -15, -13, -10, -9, -9, -11, -13, -14, -11, -9, -8, -9, -7, -3, + -2, -5, -8, -6, 1, 5, 4, 1, 0, 1, 4, 4, 4, 5, 7, 9, + 9, 8, 8, 9, 10, 9, 5, 2, 3, 5, 7, 7, 9, 11, 11, 12, + 14, 14, 12, 8, 7, 8, 5, 1, 3, 8, 9, 9, 10, 14, 16, 15, + 14, 12, 11, 9, 7, 3, -2, -3, 3, 5, 0, -5, -1, -1, -6, -10, + -16, -23, -28, -29, -32, -39, -36, -23, -16, -19, -19, -10, -7, -12, -11, -5, + -6, -11, -13, -11, -9, -8, -2, 6, 8, 8, 9, 6, 2, 4, 8, 9, + 4, 4, 12, 18, 17, 14, 17, 20, 20, 16, 9, 7, 7, 5, 3, 4, + 1, -2, 0, 3, 2, -1, 1, 3, 3, 1, 2, 2, 0, 3, 6, 9, + 8, 0, -5, -3, 7, 12, 8, -2, -2, 9, 10, 2, -3, 2, 5, 1, + -3, -5, -6, -2, -3, -11, -20, -26, -28, -30, -32, -37, -43, -45, -43, -40, + -42, -41, -31, -22, -20, -18, -16, -16, -19, -15, -8, -3, -3, 3, 17, 26, + 22, 16, 18, 23, 27, 26, 23, 17, 15, 21, 25, 24, 25, 31, 36, 32, + 29, 23, 17, 15, 11, 5, 1, 4, 6, 8, 6, 7, 8, 10, 14, 18, + 22, 20, 17, 14, 15, 13, 10, 15, 15, 12, 9, 10, 15, 14, 9, 3, + 6, 10, 5, -3, -9, -16, -16, -10, -11, -20, -24, -18, -20, -32, -42, -48, + -55, -70, -84, -95, -100, -92, -75, -65, -68, -67, -56, -55, -51, -41, -33, -37, + -42, -38, -33, -31, -26, -6, 19, 30, 25, 25, 28, 30, 27, 19, 16, 18, + 31, 44, 46, 48, 56, 71, 77, 74, 66, 54, 47, 37, 19, 3, 2, 3, + 3, 4, 13, 20, 21, 25, 24, 25, 19, 18, 19, 19, 14, 6, 17, 14, + 1, 3, 12, 27, 29, 25, 13, 14, 24, 22, 6, -7, -7, 0, 11, 12, + 1, 0, 10, 8, -13, -32, -46, -52, -57, -70, -88, -106, -101, -81, -74, -82, + -75, -49, -37, -42, -44, -42, -46, -51, -47, -40, -32, -27, -6, 3, 16, 32, + 29, 25, 24, 30, 54, 69, 74, 78, 90, 108, 118, 124, 117, 107, 102, 93, + 76, 61, 50, 41, 35, 31, 26, 13, 4, 0, -1, 0, -6, -12, -10, -8, + -4, 0, -3, -20, -31, -27, -18, -16, -22, -29, -28, -9, 0, -3, -1, 2, + 11, 20, 24, 18, 22, 34, 32, 16, -1, -18, -34, -46, -55, -67, -91, -102, + -91, -72, -73, -81, -68, -55, -55, -65, -74, -79, -87, -87, -83, -81, -77, -60, + -25, 4, 4, -3, 0, 13, 29, 29, 24, 23, 29, 51, 67, 72, 77, 88, + 105, 114, 122, 116, 106, 100, 93, 77, 63, 51, 42, 36, 31, 27, 15, 5, + 0, -1, 0, -4, -10, -9, -7, -3, 2, -1, -16, -28, -26, -16, -13, -18, + -25, -25, -8, 2, 1, 2, 5, 13, 21, 26, 20, 23, 35, 35, 20, 3, + -14, -32, -45, -54, -67, -91, -102, -90, -72, -75, -82, -68, -56, -56, -66, -75, + -81, -88, -88, -83, -82, -77, -59, -22, 4, 1, -1, -2, -3, -3, -1, -1, + -6, -8, -9, -12, -5, 6, 15, 21, 22, 21, 9, -8, -16, -23, -32, -22, + 4, 27, 32, 17, -2, -21, -34, -37, -30, -24, -3, 24, 47, 58, 50, 23, + -12, -41, -52, -47, -33, -2, 28, 48, 45, 28, 0, -36, -58, -53, -34, -4, + 26, 52, 75, 73, 45, -5, -66, -101, -90, -61, -14, 23, 59, 87, 89, 63, + 10, -46, -79, -80, -55, -23, -3, 27, 58, 62, 41, -6, -66, -92, -77, -29, + 19, 41, 65, 74, 69, 42, -9, -73, -109, -107, -67, -17, 23, 70, 104, 111, + 83, 21, -56, -104, -109, -62, -21, 4, 34, 68, 89, 75, 19, -46, -89, -85, + -38, -1, 23, 45, 64, 74, 62, 8, -53, -98, -93, -47, -9, 16, 36, 62, + 86, 78, 13, -67, -121, -109, -56, -9, 25, 58, 89, 109, 81, 8, -70, -119, + -106, -56, -7, 32, 63, 90, 108, 74, -3, -89, -128, -118, -70, -22, 23, 62, + 101, 126, 98, 26, -64, -117, -110, -72, -32, 6, 44, 93, 124, 100, 28, -63, + -116, -110, -71, -26, 16, 54, 101, 121, 92, 13, -86, -128, -120, -79, -28, 15, + 60, 111, 127, 95, 11, -83, -127, -116, -80, -29, 15, 67, 117, 127, 100, 17, + -75, -118, -108, -75, -31, 7, 60, 109, 123, 87, 3, -83, -118, -106, -67, -23, + 13, 62, 106, 119, 85, 3, -77, -106, -95, -61, -27, 2, 52, 103, 124, 97, + 19, -61, -95, -92, -63, -34, -4, 45, 94, 116, 87, 8, -63, -91, -85, -58, + -36, -9, 36, 81, 104, 76, 2, -60, -87, -77, -52, -32, -2, 48, 97, 119, + 86, 7, -59, -90, -85, -65, -50, -22, 26, 78, 107, 79, 11, -49, -78, -73, + -58, -46, -18, 31, 85, 112, 75, 1, -59, -84, -73, -55, -40, -12, 30, 80, + 106, 74, 10, -46, -70, -62, -49, -39, -13, 31, 86, 110, 74, 8, -49, -70, + -59, -46, -33, -6, 38, 92, 111, 76, 13, -42, -62, -56, -51, -44, -23, 19, + 75, 97, 67, 8, -44, -63, -58, -56, -48, -26, 19, 75, 94, 64, 8, -40, + -55, -50, -49, -42, -25, 18, 69, 85, 57, 4, -41, -54, -51, -50, -45, -28, + 18, 71, 88, 60, 8, -35, -46, -47, -48, -46, -30, 16, 66, 84, 59, 9, + -30, -41, -43, -42, -40, -22, 25, 73, 88, 60, 8, -30, -42, -46, -45, -42, + -21, 28, 74, 83, 52, -1, -36, -46, -45, -40, -37, -17, 26, 66, 73, 41, + -10, -42, -54, -53, -48, -43, -19, 27, 68, 76, 44, -4, -34, -44, -41, -37, + -33, -10, 34, 71, 75, 40, -7, -36, -47, -43, -39, -35, -9, 35, 72, 75, + 39, -7, -38, -49, -45, -43, -38, -11, 33, 68, 70, 36, -4, -31, -39, -36, + -35, -31, -5, 36, 69, 69, 35, -4, -31, -38, -35, -37, -33, -8, 31, 64, + 63, 31, -7, -34, -42, -40, -43, -38, -12, 28, 61, 59, 27, -10, -34, -40, + -38, -41, -35, -9, 31, 63, 60, 29, -6, -31, -37, -38, -42, -35, -10, 29, + 60, 56, 27, -8, -30, -33, -34, -38, -32, -10, 28, 56, 51, 23, -9, -29, + -32, -34, -38, -33, -10, 29, 55, 50, 23, -9, -28, -30, -33, -37, -32, -8, + 32, 56, 52, 23, 23, 0, -2, 0, -2, -6, -6, -6, -5, -2, -1, 5, + 15, 20, 11, 12, 12, 6, 0, -8, -19, -12, -4, -19, -19, -4, 4, -7, + -3, 5, 8, 11, 14, 9, 9, 8, -4, -11, -6, -8, -16, -14, -7, -1, + -3, 1, 10, 13, 24, 28, 12, 10, 14, 11, -14, -29, -19, -12, -21, -25, + -16, 2, 0, -11, -7, 7, 10, 0, 0, 5, 11, 6, 10, 21, 13, 7, + 14, 4, -4, -9, -5, -11, -16, -7, -3, 3, 15, -2, 2, 17, 6, -19, + -16, 3, 3, -14, -10, 7, 7, 4, 8, 11, 4, -5, -12, -9, -6, -14, + -13, -17, -13, -8, 5, 9, 3, 10, 12, 24, 28, 26, 35, 20, -3, 24, + 23, -19, -31, -23, -23, -38, -34, -18, -10, -8, -6, -4, -1, 5, -4, -8, + 2, 15, 12, 26, 56, 37, 10, 25, 25, -4, -21, -24, -23, -26, -30, -27, + -8, 10, -5, 3, 30, 6, -26, -7, 13, -2, -19, -2, 11, 3, 14, 21, + 8, 12, 5, -19, -26, -12, 9, 1, -8, -8, 20, 27, 17, 16, 15, 0, + 23, 39, 11, -4, -13, -21, -21, -32, -36, -27, -20, -24, -10, -4, 5, 14, + 4, -11, -10, 7, -8, -7, 7, 7, 2, 15, 29, 55, 26, 4, 22, 37, + 32, 14, 10, 18, 7, -1, -28, -49, -24, -14, -41, -53, -37, -28, -27, -15, + 1, 2, 14, 14, 13, 3, 0, 1, 18, 9, 7, 11, 23, 23, 25, 16, + -7, 1, 13, 26, 26, 9, 13, 28, 28, 1, -29, -29, -26, -27, -43, -43, + -31, -12, -26, -15, 6, 16, 6, 22, 11, -4, 0, 3, 0, -4, -20, -9, + 15, 23, 19, 7, 25, 19, 42, 63, 40, 13, 22, 24, 1, -41, -60, -55, + -63, -69, -61, -31, -7, 10, 8, 0, 7, 4, 4, 20, 5, -4, 9, 27, + 31, 27, 23, 13, 19, 12, 2, 4, 15, 20, 35, 19, 16, 26, 3, -30, + -48, -31, -40, -60, -59, -47, -13, -3, 12, 22, 11, 7, 9, 8, 3, -10, + -34, -5, 6, 24, 38, 19, 13, 21, 40, 15, 2, 27, 26, 16, 44, 47, + -7, -43, -41, -29, -44, -80, -81, -58, -26, -17, 3, 16, 30, 19, 10, 25, + 16, 6, -12, -3, 13, 30, 38, 20, 17, 22, 25, 18, 13, 16, -3, 1, + 32, 44, -11, -48, -51, -34, -38, -49, -64, -70, -23, -10, -14, -1, 20, 18, + 20, 21, 11, 3, -8, -3, 13, 14, 22, 18, 32, 37, 30, 25, 16, 27, + 27, 18, 37, 52, 12, -26, -56, -57, -46, -71, -92, -86, -50, -21, -10, 8, + 15, 15, 18, 28, 17, 1, 1, 2, 13, 13, 23, 23, 21, 29, 31, 29, + 15, 20, 33, 32, 29, 46, 21, -31, -49, -53, -51, -66, -82, -76, -54, -32, + -10, 12, 19, 29, 18, 3, 0, 16, 20, 29, 31, 20, 25, 31, 43, 41, + 34, 44, 27, 29, 65, 54, -15, -70, -79, -63, -86, -114, -114, -79, -26, -2, + 6, 18, 19, 10, 19, 26, 15, 5, 0, 16, 23, 29, 30, 21, 25, 28, + 37, 37, 38, 44, 32, 29, 66, 65, -7, -67, -74, -59, -82, -114, -117, -85, + -31, -2, 11, 20, 18, 9, 20, 30, 15, 5, 0, 0, 1, 1, 2, 3, + 3, 3, 4, 4, 5, 6, 6, 7, 8, 8, 7, 7, 7, 7, 7, 6, + 4, 3, 2, 0, -1, -2, -3, -5, -6, -8, -9, -9, -11, -12, -14, -15, + -17, -17, -17, -18, -19, -19, -19, -18, -17, -16, -15, -13, -11, -8, -7, -6, + -5, -3, -1, 0, 0, 1, 3, 5, 8, 10, 12, 14, 17, 19, 21, 23, + 26, 27, 28, 28, 28, 26, 25, 24, 23, 23, 21, 19, 18, 16, 15, 14, + 13, 12, 11, 11, 11, 10, 8, 6, 5, 5, 4, 2, 0, -2, -4, -5, + -7, -10, -11, -12, -13, -14, -15, -15, -15, -15, -15, -16, -17, -18, -18, -19, + -21, -23, -25, -27, -28, -29, -29, -30, -30, -29, -27, -25, -23, -22, -20, -18, + -16, -14, -13, -12, -11, -11, -10, -9, -8, -6, -5, -4, -3, -1, 1, 3, + 4, 6, 7, 8, 8, 9, 10, 11, 12, 13, 13, 13, 13, 15, 18, 21, + 23, 24, 25, 25, 28, 31, 33, 34, 34, 32, 31, 31, 31, 30, 27, 22, + 16, 12, 10, 9, 7, 3, -5, -13, -19, -22, -22, -23, -25, -28, -31, -33, + -33, -32, -32, -31, -32, -33, -32, -29, -25, -21, -19, -19, -19, -19, -18, -15, + -9, -3, 2, 6, 9, 12, 16, 21, 27, 32, 37, 39, 40, 40, 39, 39, + 40, 41, 40, 38, 35, 34, 34, 33, 29, 22, 16, 11, 10, 11, 12, 12, + 10, 8, 7, 5, 3, 2, 0, -6, -12, -19, -23, -23, -22, -23, -26, -30, + -33, -33, -33, -34, -35, -37, -40, -45, -50, -53, -52, -48, -42, -37, -32, -27, + -22, -20, -18, -16, -16, -18, -21, -26, -30, -33, -34, -35, -36, -38, -40, -41, + -41, -38, -36, -36, -38, -41, -40, -38, -34, -30, -27, -25, -22, -20, -16, -15, + -16, -17, -18, -16, -13, -10, -7, -4, -2, 1, 6, 11, 16, 21, 24, 25, + 26, 24, 22, 19, 18, 19, 22, 24, 26, 30, 33, 38, 44, 50, 56, 61, + 63, 68, 72, 74, 73, 68, 64, 57, 50, 47, 46, 44, 37, 21, 3, -11, + -20, -23, -25, -30, -33, -36, -36, -34, -31, -27, -22, -21, -22, -21, -18, -21, + -24, -27, -31, -33, -32, -27, -21, -14, -13, -17, -17, -10, 0, 10, 15, 16, + 14, 8, 6, 10, 16, 25, 34, 39, 43, 47, 53, 62, 72, 82, 89, 92, + 90, 84, 79, 77, 77, 76, 67, 54, 42, 33, 26, 18, 5, -11, -27, -41, + -53, -65, -73, -77, -79, -81, -86, -93, -102, -110, -116, -118, -120, -124, -127, -128, + -128, -126, -122, -116, -107, -96, -85, -78, -72, -64, -54, -45, -39, -40, -46, -49, + -49, -47, -45, -44, -45, -45, -44, -42, -38, -33, -29, -26, -23, -20, -18, -14, + -11, -8, -5, -2, 2, 7, 11, 10, 8, 7, 9, 16, 22, 26, 28, 31, + 34, 39, 44, 49, 53, 57, 60, 62, 63, 63, 65, 66, 63, 57, 51, 46, + 46, 50, 53, 54, 55, 54, 55, 57, 63, 69, 73, 75, 73, 69, 66, 64, + 65, 63, 55, 43, 30, 18, 11, 3, -6, -15, -23, -29, -32, -32, -28, -22, + -16, -13, -16, -16, -11, -2, 9, 15, 1, 0, 0, 0, -1, 0, -3, 0, + -1, 0, -18, 21, -22, 23, -41, 20, 84, -39, 50, -61, 26, -126, -19, -37, + 15, 2, 70, -33, 127, -55, 117, -73, 15, -45, -50, 8, -11, 23, 33, 1, + 26, -67, 26, -25, 14, -45, 57, -124, 12, -4, -23, 107, -54, 127, -49, 43, + 27, -59, -30, 15, -128, 5, -128, 86, -39, 82, 12, 62, 9, 51, -59, 53, + -95, 67, -92, 68, -28, 94, 21, 47, -11, -1, -41, 0, -25, -9, 18, -68, + 15, -27, 49, -27, 103, -4, 3, -36, 58, -98, 56, -116, -31, -123, 25, -58, + 89, -21, 110, -25, 73, -28, 39, -21, 35, -40, 37, -20, 50, 55, 51, 6, + 1, -47, -11, -32, -23, 38, -67, 3, -54, 34, -55, 79, 1, 32, -61, 89, + -86, 53, -67, -10, -128, -6, -68, 51, -4, 82, 15, 83, -16, 63, -24, 55, + -29, 8, 0, 6, 11, 54, 14, 16, -39, -9, -12, -47, 37, -40, -22, -60, + 21, -76, 51, -17, 74, -63, 98, -36, 44, -33, 24, -113, -37, -89, 20, -30, + 67, 18, 87, 0, 67, -6, 38, 1, -2, -18, -5, -20, 32, 17, 21, -8, + -30, 15, -47, 11, -17, 11, -97, 43, -87, 27, -36, 91, -41, 66, 3, 44, + -28, 55, -74, -37, -92, -21, -37, 33, -1, 75, 22, 36, 14, 26, 8, 8, + -12, -7, -21, -1, 27, 11, 21, -30, 21, -37, -3, -13, 23, -27, -32, -10, + -23, -44, 56, -1, 43, -12, 76, -29, 48, -9, -25, -71, -70, -48, -20, 2, + 9, 56, 8, 56, -10, 52, -12, 31, -29, 27, -60, 62, -42, 83, -45, 30, + -24, 4, -26, 33, -23, 5, -18, -25, -53, -7, -6, -6, 19, 16, 31, 3, + 58, -14, 0, -64, -33, -58, -8, -43, 42, -18, 57, -9, 54, 1, 47, -3, + 36, -18, 3, 4, 6, 2, -17, 8, -14, -27, 35, 2, -3, 1, -8, -43, + -34, -1, -22, 12, 2, 37, -6, 53, 14, 16, -43, -22, -75, -2, -67, 23, + -24, 39, -3, 39, 6, 44, 9, 37, 5, 1, 3, 5, 12, -18, 0, 0, + -31, 5, 23, 1, -3, 10, -20, -48, -6, -30, 7, -18, 35, -4, 32, 21, + 39, -26, -1, -75, -9, -65, -3, -28, 20, -5, 32, 5, 36, 20, 30, 30, + 3, 10, -1, 16, -10, -7, -1, -17, -23, 18, 14, -3, 8, 9, -45, -14, + -35, -1, -27, 18, -2, 29, 1, 61, -14, 20, -56, -19, -51, -22, -38, 9, + -14, 22, 5, 24, 27, 23, 41, 13, 20, -7, 23, -2, -8, -2, -9, -26, + -6, 14, 11, -11, 37, -33, -12, -38, -6, -33, 7, -14, 30, -12, 55, 4, + 33, -32, -14, -45, -22, -43, -7, -15, 18, 18, 33, 17, 41, 22, 15, 14, + 8, -24, -16, -18, -16, -7, 6, 16, -2, 8, -14, -6, -23, 0, -22, 1, + -23, 21, 4, 24, -1, 9, -9, -11, -14, -13, -16, -14, -15, -12, -16, -5, + 8, 28, 25, 28, 34, 27, 15, 16, 2, -20, -22, -20, -15, -8, 10, 11, + 7, -3, -5, -16, -10, -13, -5, -16, -5, 4, 17, 13, 6, 1, -9, -1, + -2, -3, -4, -4, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -6, + -6, -6, -6, -6, -5, -3, -3, -5, -5, -5, -7, -8, -5, 4, 5, 13, + 12, -12, -5, 10, 5, 4, 0, 3, 26, 33, 10, -15, -69, -89, -25, 25, + 58, 70, 22, -41, -62, -31, 18, 17, -17, -12, -9, 20, 99, 96, 0, -88, + -123, -69, 61, 116, 54, -11, -45, -28, 40, 38, -42, -59, -53, -31, 63, 78, + -9, -65, -83, -59, 48, 110, 50, -11, -51, -54, 41, 96, 9, -87, -119, -77, + 42, 118, 67, -18, -57, -46, 24, 89, 81, 22, -43, -77, -65, -41, -23, -3, + 4, 8, -13, -54, -52, -21, 30, 89, 86, 8, -49, -76, -56, 30, 55, 52, + 47, -7, -45, -49, -48, -10, 68, 74, 43, 22, -27, -25, 12, 20, -5, -43, + -69, -46, 21, 53, 51, 38, -8, -32, 6, 20, -1, -19, -56, -67, -26, 27, + 76, 95, 23, -64, -60, -15, 33, 39, -8, -37, -24, -7, 7, 4, -25, -23, + -10, -14, -7, -5, -12, 2, 28, 31, 37, 21, -18, -16, -4, -22, -37, -46, + -56, -8, 58, 64, 53, 31, -9, -9, -2, -57, -85, -52, -13, 59, 92, 21, + -42, -47, -33, 27, 75, 27, -22, -38, -44, 18, 77, 32, -21, -46, -50, 34, + 89, 22, -37, -60, -56, 31, 95, 36, -27, -57, -82, -15, 53, 15, -13, -25, + -44, 14, 66, 14, -32, -53, -62, 25, 96, 50, 3, -32, -56, 25, 98, 51, + -9, -56, -78, 7, 92, 71, 28, -31, -92, -42, 28, 20, 24, 8, -34, 22, + 70, 18, -17, -53, -88, -20, 39, 7, -2, -8, -28, 35, 80, 19, -23, -55, + -93, -22, 63, 54, 47, 19, -52, -35, 2, -36, -32, -18, -49, -9, 41, 15, + 26, 34, -22, -6, 31, 1, 8, 9, -43, -15, 30, -3, -1, -7, -73, -48, + 6, -14, 5, 13, -47, -30, 12, -13, 6, 18, -37, -13, 39, 27, 45, 38, + -37, -32, 12, 3, 32, 46, -10, 6, 48, 16, 15, 15, -32, -2, 47, 24, + 26, 18, -51, -51, -15, -29, -1, 19, -28, -15, 21, 2, 18, 22, -34, -24, + 13, -3, 15, 14, -45, -34, 7, 10, 38, 31, -34, -30, 4, 5, 43, 61, + 13, 4, 6, -22, 4, 24, -13, -13, -10, -34, 0, 23, -16, -16, -13, -42, + -18, -4, -36, -17, 5, -10, 14, 22, -21, -22, -16, -37, -6, 20, -2, 17, + 36, 19, 43, 43, -9, -15, -12, -29, 6, 31, 6, 10, 7, -23, -2, 9, + -23, -15, -10, -26, 3, 20, -5, 1, 0, -22, 5, 22, -6, -8, -16, -37, + -5, 20, 2, 11, 6, -19, 11, 33, 12, 20, 16, -7, 20, 35, 11, 11, + -3, -28, 2, 19, -1, 3, -6, -29, -5, 2, -25, -17, -12, -16, 22, 34, + 3, -4, -21, -36, 4, 26, 8, -1, -30, -54, -23, -3, -11, 0, -12, -27, + 7, 24, 13, 19, -1, -21, 10, 27, 14, 17, 0, -14, 18, 33, 19, 14, + -17, -41, -10, 9, 2, 7, -14, -30, 4, 20, 9, 9, -15, -35, -3, 16, + 9, 0, -1, -2, -3, 4, 7, 4, -2, -3, 0, 3, -1, -1, 4, 5, + -2, -13, -9, 1, 4, 2, 1, 2, 2, -2, -8, -4, 0, 4, 4, -3, + -4, -3, 1, 2, -1, 3, 14, 1, -7, -12, -4, -2, 1, 1, 9, 5, + -6, -5, -2, -1, -1, 1, 14, 6, -6, -7, 3, 8, -2, -4, 13, 12, + -10, -17, -10, -5, -4, 2, 3, 7, -6, -6, -1, -1, -4, 1, 11, 6, + -6, -9, 10, 11, 3, 1, 14, 15, -12, -20, -12, -9, -15, -1, 7, 2, + -16, -7, 6, 0, -2, 10, 26, 17, -6, -11, 24, 21, 1, 0, 18, 15, + -17, -31, -28, -23, -14, 0, -4, 0, -16, -8, 8, -4, -3, 7, 15, 5, + -3, -3, 26, 25, 12, 8, 28, 17, -15, -28, -18, -17, -18, -7, -3, -7, + -20, 0, 7, 1, -9, 6, 9, -4, -9, 2, 15, 24, 34, 31, 10, -4, + -15, -29, -17, -21, -41, -40, -5, 19, -20, 3, 11, 33, 28, 21, 18, 15, + 16, 3, -1, 18, 17, 15, 1, -15, -10, -5, -14, -42, -48, -43, -26, 4, + -29, -14, -9, 32, 20, 12, 15, 21, 39, 24, 8, 26, 33, 6, -3, 0, + 1, -7, -16, -41, -44, -51, -34, -3, -6, -6, -19, 26, 10, 15, 35, 46, + 32, 20, 16, 23, 38, 15, -4, -10, 17, -6, -41, -48, -53, -70, -52, -9, + -9, -22, -15, 19, 24, 22, 30, 49, 34, 10, 1, 15, 33, 15, 1, 17, + 46, 12, -38, -59, -50, -57, -46, -13, -16, -30, -24, 26, 37, 33, 30, 45, + 40, 2, -11, 17, 41, 24, -4, 16, 48, 15, -38, -67, -64, -65, -46, -18, + -18, -35, -32, 35, 39, 37, 21, 45, 42, -2, -19, 14, 37, 22, 7, 24, + 40, 13, -42, -68, -63, -63, -38, -6, -12, -34, -25, 39, 43, 39, 17, 47, + 45, 3, -19, 21, 45, 25, 2, 21, 31, 0, -45, -71, -78, -83, -48, 2, + 7, -27, -32, 34, 45, 49, 23, 44, 36, 5, -5, 38, 60, 27, -13, 21, + 42, -13, -69, -81, -86, -79, -38, -9, -11, -41, -36, 38, 56, 45, 10, 43, + 43, 10, -6, 36, 57, 41, 10, 36, 46, -16, -67, -66, -71, -80, -44, -8, + -5, -29, -27, 30, 43, 46, 20, 52, 39, -9, -21, 40, 68, 42, -1, 20, + 32, -14, -70, -86, -94, -90, -45, -2, 0, -31, -17, 36, 47, 46, 18, 44, + 29, -2, -11, 46, 74, 51, 14, 36, 46, -15, -78, -87, -91, -89, -46, -12, + -11, -28, -5, 41, 46, 40, 17, 51, 33, -6, -13, 49, 75, 52, 15, 30, + 34, -21, -79, -88, -93, -88, -42, -9, -4, -25, -3, 36, 40, 34, 16, 44, + 23, -8, -10, 52, 83, 55, 17, 38, 31, -31, -82, -91, -93, -82, -39, -16, + -10, -25, 5, 33, 42, 32, 20, 54, 25, -9, -3, 59, 85, 63, 24, 37, + 24, -39, -86, -92, -97, -80, -34, -17, -15, -24, 10, 35, 45, 32, 16, 45, + 12, -23, -2, 62, 78, 53, 21, 37, 26, -39, -91, -95, -96, -77, -29, -16, + -16, -25, 10, -1, 0, 3, 21, -26, 18, -30, 32, -19, -15, -27, 2, 0, + 103, -84, -53, -52, 79, 51, 36, -69, -31, 48, 71, 33, -74, -64, 10, 51, + 49, -68, -91, -16, 30, 33, -31, -58, -42, 14, 24, -25, 23, -71, 79, -22, + 123, -74, 28, 28, 115, 99, -7, 9, -15, 72, 1, 16, -47, -5, -71, -18, + -75, -26, -71, -28, -56, -24, -57, -19, -33, -5, 7, -3, 14, -8, 82, 100, + 23, -32, -15, 80, 98, 68, -30, -21, 24, 71, 28, -41, -96, -22, 32, 37, + -57, -110, -67, 28, 35, -22, -112, -79, 13, 70, 27, -55, -63, 31, 95, 86, + -4, -40, 29, 110, 110, 28, -50, -12, 66, 80, 14, -87, -81, -7, 36, -5, + -95, -118, -42, 26, 8, -69, -121, -48, 37, 60, -6, -68, -29, 67, 104, 61, + -24, -17, 70, 123, 92, -5, -43, 23, 82, 67, -28, -96, -54, 18, 30, -39, + -115, -96, -7, 25, -13, -99, -101, -13, 52, 42, -35, -62, 9, 88, 93, 28, + -32, 15, 97, 118, 58, -29, -24, 51, 82, 39, -61, -88, -26, 28, 9, -70, + -117, -63, 7, 14, -46, -109, -71, 15, 55, 16, -51, -42, 43, 94, 75, 2, + -21, 48, 107, 101, 23, -36, 4, 65, 70, 1, -81, -69, -3, 26, -19, -94, + -106, -32, 14, -3, -74, -103, -37, 34, 46, -10, -56, -12, 66, 91, 49, -15, + 1, 74, 111, 76, -4, -28, 31, 72, 50, -33, -85, -43, 11, 15, -46, -106, + -80, -11, 13, -26, -92, -84, -8, 44, 29, -30, -48, 19, 80, 81, 26, -18, + 27, 91, 103, 49, -22, -10, 48, 68, 22, -60, -75, -22, 17, -5, -71, -105, + -54, 3, 3, -49, -98, -58, 14, 44, 11, -44, -27, 45, 85, 65, 5, -8, + 53, 100, 87, 21, -26, 11, 60, 56, -6, -74, -58, -4, 13, -25, -90, -91, + -29, 7, -12, -72, -90, -29, 32, 37, -10, -46, -2, 66, 83, 47, -8, 10, + 74, 101, 68, -3, -19, 31, 62, 38, -36, -77, -40, 6, 4, -49, -100, -72, + -12, 3, -31, -86, -73, -4, 37, 25, -28, -36, 25, 75, 74, 25, -9, 34, + 88, 94, 43, -16, -4, 47, 58, 15, -57, -69, -22, 6, -12, -73, -96, -50, + -4, -7, -53, -89, -49, 13, 36, 5, -37, -17, 47, 77, 59, 9, 2, 58, + 92, 79, 19, -17, 16, 54, 45, -13, -69, -52, -8, 3, -33, -85, -82, -29, + -2, -20, -68, -79, -23, 24, 29, -11, -34, 7, 61, 73, 41, 0, 22, 73, + 90, 58, 1, -9, 32, 52, 26, -36, -69, -35, -3, -7, -53, -90, -63, -16, + -7, -36, -78, -60, -4, 29, 16, -22, -23, 29, 68, 64, 26, 2, 42, 80, + 81, 38, -8, 5, 42, 44, 4, -53, -57, -21, -2, -22, -69, -83, -43, -10, + -15, -51, -77, -38, 11, 27, 3, -27, -5, 46, 68, 52, 13, 15, 58, 83, + 68, 19, -8, 21, 46, 32, -16, -60, -44, -12, -6, -36, -76, -74, -34, -10, + -20, -57, -73, -33, 12, 27, 3, -1, -6, -11, -3, 4, 0, -7, -8, 1, + 21, 14, 28, 33, 25, -1, 7, 4, -13, -21, -44, -29, -17, -31, -32, 2, + 0, -20, 4, 3, 4, 0, -2, -5, -4, -14, 3, 14, 9, 28, 34, 54, + 43, 54, 39, 19, 17, -1, 5, -23, -31, -25, -35, -46, -60, -29, -29, -13, + -37, -22, -16, -20, -27, -21, -6, -16, 8, -5, 15, 26, 69, 65, 74, 85, + 81, 76, 51, 22, -10, -10, -19, -3, -39, -73, -55, -36, -18, -45, -49, -45, + -52, -47, -74, -73, -56, -31, -15, -16, -5, 18, 65, 86, 108, 94, 97, 90, + 79, 54, 30, 19, 10, 25, -16, -34, -37, -9, -16, -35, -44, -60, -60, -50, + -62, -70, -66, -44, -34, -34, -29, -10, 23, 61, 85, 79, 75, 70, 61, 41, + 31, 7, 8, 3, -22, -42, -28, 0, -13, -29, -39, -52, -56, -55, -58, -60, + -57, -41, -35, -37, -19, 5, 35, 71, 87, 85, 97, 112, 97, 71, 56, 52, + 53, 43, 18, -7, -3, 10, 0, -17, -39, -55, -58, -64, -80, -106, -121, -112, + -110, -113, -105, -82, -51, -8, 16, 20, 45, 66, 66, 49, 46, 59, 75, 78, + 63, 62, 74, 80, 80, 69, 51, 27, 11, 0, -14, -40, -53, -48, -55, -68, + -71, -56, -34, -1, 14, 24, 49, 62, 59, 42, 34, 43, 47, 43, 26, 30, + 33, 38, 26, 4, -17, -41, -66, -81, -92, -112, -120, -115, -116, -128, -125, -103, + -71, -36, -11, 9, 33, 56, 59, 54, 61, 67, 77, 77, 77, 79, 74, 75, + 73, 55, 30, 10, -21, -38, -46, -61, -70, -67, -70, -81, -77, -64, -45, -23, + -4, 10, 30, 44, 44, 39, 42, 48, 51, 50, 51, 58, 58, 65, 65, 47, + 29, 12, -14, -31, -41, -53, -63, -60, -62, -64, -58, -44, -26, -11, 1, 10, + 20, 22, 17, 9, 5, 6, 6, 2, 4, 10, 10, 17, 19, 9, 7, -1, + -14, -18, -13, -14, -9, 1, 7, 12, 17, 23, 31, 35, 36, 35, 38, 31, + 21, 16, 3, 0, -8, -11, -11, -13, -19, -20, -23, -34, -39, -51, -69, -78, + -81, -83, -83, -78, -70, -60, -47, -34, -19, 2, 20, 39, 57, 60, 66, 67, + 63, 61, 53, 50, 51, 47, 37, 32, 23, 13, 6, -3, -17, -23, -28, -34, + -37, -35, -27, -15, -2, 4, 12, 23, 30, 44, 47, 43, 41, 35, 29, 22, + 15, 13, 14, 7, -1, -5, -11, -19, -20, -25, -37, -43, -41, -43, -47, -47, + -40, -29, -17, -7, 5, 13, 23, 38, 44, 37, 34, 31, 23, 17, 6, 1, + -2, -10, -20, -25, -35, -45, -50, -54, -64, -68, -65, -66, -65, -59, -47, -30, + -19, -7, 5, 14, 28, 48, 62, 66, 72, 75, 78, 76, 67, 60, 56, 46, + 32, 20, 9, -2, -10, -21, -35, -43, -44, -49, -56, -57, -51, -38, -25, -13, + -2, 9, 25, 42, 56, 59, 64, 65, 67, 65, 57, 52, 49, 41, 28, 18, + 8, -2, -10, 0, 8, 13, 21, 20, 20, 17, 10, 8, -2, -6, -17, -21, + -29, -23, -25, -14, -7, -2, 7, 10, 20, 21, 22, 23, 19, 14, 9, -2, + -6, -18, -20, -28, -25, -23, -18, -10, -3, 5, 9, 22, 17, 28, 22, 21, + 17, 11, 2, -8, -18, -23, -27, -26, -24, -19, -13, -6, 3, 9, 17, 20, + 28, 24, 25, 21, 13, 6, -5, -14, -21, -29, -29, -30, -23, -19, -7, -1, + 10, 18, 25, 29, 27, 28, 20, 17, 5, -7, -13, -26, -29, -30, -30, -27, + -20, -12, 0, 11, 19, 25, 27, 30, 26, 28, 19, 11, -2, -12, -24, -30, + -35, -34, -30, -24, -14, -2, 9, 18, 23, 28, 26, 33, 31, 29, 24, 12, + 5, -12, -23, -30, -37, -36, -36, -26, -19, -5, 5, 19, 22, 32, 32, 36, + 35, 26, 21, 3, -6, -22, -34, -41, -44, -38, -31, -18, -6, 6, 15, 23, + 32, 33, 39, 34, 31, 23, 10, -2, -21, -32, -44, -47, -45, -37, -23, -12, + 6, 13, 28, 30, 38, 40, 40, 38, 23, 17, -6, -15, -35, -42, -50, -49, + -41, -31, -14, 0, 14, 26, 35, 42, 45, 45, 40, 27, 18, -4, -14, -33, + -42, -54, -52, -47, -36, -21, -5, 13, 24, 39, 43, 52, 47, 42, 36, 20, + 7, -15, -32, -45, -55, -56, -54, -43, -27, -8, 12, 26, 38, 45, 50, 51, + 48, 40, 27, 9, -11, -30, -46, -58, -62, -58, -49, -31, -11, 9, 24, 41, + 45, 54, 53, 54, 45, 30, 14, -10, -27, -48, -58, -67, -64, -56, -35, -15, + 6, 24, 37, 45, 54, 56, 56, 49, 39, 18, 0, -26, -45, -60, -74, -70, + -63, -41, -23, 4, 21, 39, 48, 53, 61, 58, 59, 43, 29, 3, -20, -46, + -64, -77, -77, -69, -50, -27, 0, 20, 36, 49, 56, 64, 64, 63, 51, 34, + 6, -17, -46, -65, -79, -83, -76, -58, -33, -6, 17, 38, 49, 60, 67, 68, + 66, 53, 37, 13, -13, -38, -65, -79, -90, -82, -68, -41, -15, 14, 36, 52, + 63, 70, 73, 69, 62, 44, 19, -8, -38, -63, -83, -93, -90, -77, -49, -20, + 12, 34, 54, 65, 72, 75, 76, 65, 51, 26, -1, -33, -62, -86, -98, -96, + -86, -58, -29, 6, 32, 54, 66, 73, 79, 76, 73, 58, 36, 4, -27, -60, + -85, -101, -104, -92, -70, -36, -1, 31, 53, 70, 75, 81, 80, 78, 65, 41, + 15, -24, -56, -84, -105, -109, -101, -79, -46, -7, 25, 56, 65, 77, 82, 85, + 83, 69, 51, 19, -14, -50, -83, -103, -115, -107, -88, -55, -17, 21, 50, 67, + 81, 86, 89, 85, 79, 55, 28, -8, -46, -77, -103, -116, -117, -97, -67, -25, + 1, 39, 66, 81, 92, 96, 97, 90, 73, 45, 11, -27, -64, -97, -120, -128, + -117, -89, -49, -5, 35, 65, 81, 93, 98, 99, 91, 75, 46, 12, -27, 28, + -9, -42, -57, -50, -18, 33, 77, 77, 17, -64, -96, -55, 22, 73, 68, 17, + -43, -77, -67, -15, 59, 102, 79, 12, -48, -71, -57, -28, -3, 11, 10, -3, + -17, -4, 44, 88, 79, 10, -69, -103, -74, -6, 54, 75, 53, -4, -63, -80, + -38, 32, 73, 59, 7, -43, -67, -57, -18, 33, 71, 71, 24, -31, -47, -17, + 20, 23, -14, -58, -73, -47, 10, 73, 110, 93, 20, -62, -97, -68, -6, 43, + 54, 28, -13, -51, -65, -35, 26, 74, 69, 12, -50, -68, -37, 9, 37, 37, + 16, -12, -26, -7, 36, 65, 45, -19, -87, -112, -75, -7, 58, 97, 92, 41, + -30, -75, -62, -3, 49, 52, 7, -44, -63, -45, -6, 37, 60, 42, -5, -42, + -41, -3, 38, 41, 8, -33, -51, -38, 3, 54, 90, 79, 12, -76, -127, -106, + -29, 47, 78, 63, 23, -19, -36, -16, 24, 50, 35, -15, -59, -64, -27, 17, + 40, 35, 11, -20, -39, -26, 19, 63, 67, 14, -61, -97, -72, -5, 64, 101, + 87, 26, -49, -96, -86, -32, 24, 40, 17, -11, -17, -3, 24, 51, 55, 29, + -20, -66, -69, -23, 35, 55, 25, -26, -59, -55, -14, 44, 86, 80, 23, -56, + -105, -87, -19, 48, 79, 67, 27, -18, -46, -43, -14, 17, 16, -20, -54, -47, + 3, 59, 83, 66, 18, -35, -64, -54, -8, 44, 59, 18, -48, -87, -72, -16, + 49, 88, 84, 37, -31, -81, -79, -26, 33, 52, 29, -5, -19, -6, 20, 34, + 27, -5, -51, -84, -71, -9, 62, 95, 71, 12, -40, -58, -37, 8, 52, 63, + 22, -53, -103, -88, -23, 47, 80, 64, 24, -14, -33, -28, -3, 21, 18, -15, + -45, -39, 5, 57, 78, 54, -1, -60, -97, -89, -29, 50, 92, 67, 0, -53, + -57, -13, 38, 64, 52, 10, -44, -82, -76, -26, 28, 49, 32, 1, -14, -1, + 24, 40, 38, 9, -43, -87, -79, -13, 69, 110, 80, 4, -65, -90, -69, -21, + 32, 58, 39, -9, -48, -45, 0, 52, 69, 46, 5, -34, -57, -50, -14, 23, + 28, -8, -48, -48, 4, 71, 99, 69, 3, -63, -99, -88, -30, 46, 92, 78, + 16, -45, -66, -44, -6, 25, 34, 16, -24, -55, -43, 10, 67, 80, 37, -22, + -48, -29, 7, 30, 27, -5, -51, -84, -73, -11, 71, 116, 95, 27, -43, -84, + -84, -43, 18, 63, 60, 10, -44, -53, -9, 41, 49, 14, -31, -57, -50, -15, + 29, 61, 57, 14, -37, -51, -14, 38, 63, 47, -1, -61, -106, -105, -47, 44, + 115, 113, 42, -36, -64, -42, -2, 23, 20, -3, -28, -39, -21, 24, 64, 59, + 7, -48, -67, -47, -7, 36, 59, 47, 2, -55, -77, -31, 55, 111, 89, 7, + -75, -113, -96, -42, 21, 62, 64, 28, -13, -18, 17, 45, 28, -2, -7, -6, + -7, -7, -8, -8, -8, -8, -7, -6, -5, -4, -3, -3, -2, -2, -1, 0, + 1, 2, 4, 5, 6, 8, 9, 10, 11, 12, 13, 13, 14, 15, 16, 17, + 17, 17, 17, 17, 16, 16, 15, 15, 14, 14, 13, 12, 10, 10, 9, 8, + 7, 6, 5, 5, 4, 3, 2, 1, 0, -2, -3, -4, -5, -6, -7, -8, + -9, -10, -11, -12, -13, -13, -14, -14, -14, -14, -14, -15, -15, -15, -15, -16, + -16, -14, -14, -12, -10, -13, -10, -13, -7, -3, -5, -1, -1, -5, -5, 8, + 13, 10, 10, 15, 16, 17, 30, 34, 19, 17, 22, 29, 27, 22, 16, 1, + -3, 8, 18, 11, 6, 8, 8, 1, 6, 18, 5, -8, -4, 4, 5, 3, + 5, -3, -6, 12, 30, 23, 9, 5, 6, 9, 15, 27, 20, 2, 0, 10, + 17, 8, -1, -4, -8, -8, -3, -7, -19, -28, -24, -22, -31, -42, -47, -50, + -50, -42, -35, -35, -43, -41, -31, -27, -23, -17, -9, -7, 3, 26, 37, 38, + 37, 41, 39, 39, 49, 55, 50, 46, 53, 58, 51, 44, 36, 24, 9, 5, + 2, -12, -25, -28, -26, -33, -42, -44, -55, -66, -69, -62, -60, -65, -57, -42, + -33, -26, -15, -5, -6, 0, 15, 29, 34, 41, 55, 61, 62, 68, 71, 62, + 49, 49, 49, 39, 29, 24, 14, -2, -10, -16, -34, -56, -67, -70, -77, -83, + -85, -88, -93, -92, -79, -74, -78, -74, -61, -49, -41, -23, -9, -2, 11, 35, + 54, 56, 58, 64, 69, 73, 81, 91, 86, 77, 78, 77, 67, 50, 39, 24, + 6, -4, -10, -22, -41, -49, -52, -62, -73, -81, -87, -98, -97, -83, -74, -70, + -63, -46, -33, -23, -6, 9, 18, 26, 48, 69, 77, 85, 97, 106, 107, 111, + 114, 104, 89, 83, 84, 75, 60, 50, 34, 13, -5, -16, -34, -59, -74, -80, + -86, -95, -97, -96, -104, -104, -95, -86, -86, -82, -66, -49, -32, -11, 12, 26, + 36, 55, 73, 81, 84, 94, 104, 107, 114, 120, 116, 102, 92, 88, 73, 54, + 37, 21, 0, -16, -23, -37, -58, -76, -85, -94, -108, -114, -116, -120, -119, -106, + -89, -84, -78, -64, -49, -37, -21, 1, 13, 25, 46, 71, 88, 95, 105, 113, + 112, 113, 116, 112, 97, 91, 91, 83, 68, 51, 35, 11, -10, -23, -38, -60, + -80, -86, -93, -102, -107, -110, -116, -121, -114, -102, -98, -93, -77, -55, -38, -18, + 1, 13, 25, 46, 71, 88, 95, 105, 113, 112, 113, 116, 112, 97, 91, 91, + 83, 68, 51, 35, 11, -10, -23, -38, -60, -80, -86, -93, -102, -107, -110, -116, + -121, -114, -102, -98, -93, -77, -55, -38, -18, 1, -3, -7, -8, -3, 1, 0, + 3, -5, -9, -14, -15, -4, 0, 7, 12, 12, 11, 18, 16, 14, 14, 11, + 20, 14, 19, 7, 12, 8, 13, 8, 7, 9, 0, 9, -7, -4, -5, -8, + -7, -9, -7, -2, -7, -4, 1, 1, 0, -2, 3, 2, 1, 2, 1, -2, + -3, -7, -2, -2, -2, -5, -4, -4, -4, 3, 6, 8, 3, 0, -3, -2, + 3, 4, 3, 2, 2, -2, 1, 0, 2, 3, 9, 8, 2, -3, -4, -2, + 1, 4, 0, -2, 3, 1, 7, 1, -4, 0, 2, 3, 1, 1, 2, -5, + 3, -3, -4, -3, -8, 2, -7, 1, -3, -2, -5, -8, -7, -8, -7, -5, + -7, -4, -8, -10, -7, -8, -7, -5, 0, -2, 0, -2, -3, -3, -2, 0, + 1, 0, 1, 0, -3, -3, -5, -5, -9, -9, -13, -16, -21, -26, -25, -25, + -16, -16, -12, -13, -15, -9, 3, 25, 44, 66, 68, 66, 49, 17, 13, 18, + 41, 51, 40, 35, 25, 23, -2, -16, -28, -8, -4, -12, -18, -34, -29, -31, + -28, -18, -4, 2, 16, 13, 20, 9, 4, 2, -3, -4, -9, -9, -9, -8, + -9, -10, -13, -14, -15, -13, -4, 7, 13, 19, 18, 16, 9, 7, 4, 6, + 8, 7, 7, 3, -3, -15, -19, -24, -21, -16, -9, 0, 3, 7, 4, 4, + -3, -2, 6, 13, 20, 14, 16, 14, 11, 7, 0, -4, -3, -3, -7, -12, + -12, -9, -5, -5, -7, -9, -4, -2, -2, -2, -4, -9, -10, -13, -13, -14, + -15, -13, -9, -8, -9, -9, -7, -4, 2, 2, 6, 9, 8, 11, 9, 11, + 9, 8, 6, 0, -7, -13, -21, -29, -36, -45, -53, -63, -72, -73, -61, -41, + 0, 52, 98, 109, 81, 64, 54, 78, 77, 45, 39, 44, 25, 19, 6, -8, + 25, 30, 44, 62, 46, -20, -85, -89, -88, -47, -29, -30, 2, 11, 8, 12, + 24, 33, 29, 25, 22, 1, -15, -34, -37, -36, -41, -36, -28, -15, 2, 9, + 11, 14, 12, 8, 12, 17, 18, 19, 23, 20, 20, 20, 8, -5, -14, -15, + -15, -13, -13, -18, -19, -24, -29, -32, -31, -23, -12, -2, 12, 20, 23, 24, + 25, 20, 22, 18, 16, 14, 9, 7, 2, 1, -9, -10, -19, -15, -12, -13, + -8, -5, -4, -4, -7, -10, -12, -12, -16, -14, -8, -9, -13, -14, -18, -15, + -10, -5, -3, 3, 4, 6, 11, 13, 13, 16, 16, 16, 12, 6, -3, -10, + -16, -21, -28, -37, -48, -61, -77, -88, -87, -68, -34, 28, 92, 127, 99, 64, + 50, 72, 92, 55, 43, 51, 41, 32, 4, -8, -7, -17, -23, -31, -33, -35, + -32, -28, -23, -18, -12, -8, -4, -2, 0, 1, 2, 2, 3, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 3, 4, 6, 7, 7, 7, 8, 9, 9, 8, + 8, 9, 11, 14, 18, 22, 27, 32, 33, 30, 21, 6, -12, -30, -45, -54, + -56, -51, -41, -29, -17, -9, -3, 0, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 3, 3, 3, 3, 3, 2, 3, 4, 5, 8, 9, 10, 9, 8, 7, + 7, 8, 10, 15, 20, 25, 30, 35, 39, 39, 32, 19, 0, -22, -42, -56, + -62, -61, -53, -40, -27, -15, -7, -3, -1, 0, 0, 0, 0, 2, 3, 4, + 5, 5, 5, 4, 2, 0, -1, 0, 2, 5, 8, 9, 10, 10, 9, 9, + 8, 9, 10, 14, 19, 24, 28, 32, 34, 38, 36, 29, 17, -5, -28, -49, + -61, -65, -61, -52, -39, -25, -14, -7, -3, -2, -1, -2, -1, 0, 2, 4, + 6, 7, 7, 5, 3, 0, -1, -1, 0, 3, 7, 11, 13, 14, 13, 12, + 10, 8, 8, 9, 12, 17, 22, 26, 29, 31, 33, 31, 26, 18, 3, -16, + -35, -50, -59, -61, -56, -46, -35, -23, -14, -6, -2, 0, 1, 2, 3, 4, + 4, 5, 5, 5, 4, 2, 1, -1, -1, 0, 2, 5, 9, 12, 13, 13, + 12, 11, 9, 7, 7, 8, 11, 15, 20, 24, 29, 33, 35, 34, 30, 21, + 4, -16, -37, -55, -66, -68, -63, -50, -35, -21, -9, -1, 4, 5, 5, 4, + 4, 3, 3, 3, 3, 2, 2, 1, 0, -1, -1, 1, 6, 10, 13, 15, + 15, 13, 11, 8, 5, 4, 4, 7, 11, 17, 22, 27, 32, 36, 39, 39, + 36, 24, 6, -20, -48, -70, -81, -79, -67, -48, -29, -12, -1, 5, 7, 7, + 4, 2, 1, 1, 2, 2, 3, 2, 2, -1, -2, -3, -3, -1, 3, 8, + 13, 16, 17, 16, 12, 8, 3, -1, -3, -2, 2, 11, 21, 29, 36, 38, + 39, 42, 48, 57, 52, 23, -27, -76, -107, -113, -98, -71, -42, -18, -1, 8, + 12, 13, 10, 7, 3, 1, 1, 2, 3, 2, 1, 0, -2, -3, -3, -1, + 2, 8, 13, 17, 18, 17, 12, 7, 1, -3, -4, -3, 20, 30, 38, 41, + 39, 38, 46, 65, 75, 45, -23, -89, -126, -127, -101, -64, -31, -7, 5, 11, + 13, 14, 13, 9, 4, 1, 0, 1, 2, 1, -1, -3, -4, -4, -2, 2, + 6, 10, 14, 18, 18, 15, 9, 1, -6, -10, -13, -10, -4, 7, 20, 0, + 14, 19, 23, 26, 28, 28, 26, 23, 18, 11, 3, -4, -10, -16, -21, -23, + -24, -22, -20, -16, -12, -8, -3, 3, 8, 13, 19, 23, 26, 27, 26, 23, + 17, 10, 4, -3, -9, -15, -20, -24, -25, -25, -22, -17, -11, -3, 3, 9, + 14, 18, 20, 22, 23, 23, 21, 17, 13, 6, 1, -6, -11, -15, -18, -20, + -19, -19, -17, -16, -13, -11, -8, -5, -1, 2, 5, 7, 9, 9, 8, 6, + 3, 0, -3, -7, -10, -14, -17, -19, -19, -18, -16, -12, -7, -2, 3, 8, + 13, 16, 18, 19, 17, 14, 8, -1, -11, -21, -31, -38, -41, -40, -34, -25, + -12, 2, 17, 32, 45, 56, 62, 65, 63, 58, 49, 38, 25, 10, -6, -18, + -28, -37, -44, -51, -59, -64, -64, -56, -40, -17, 7, 29, 46, 56, 58, 59, + 56, 51, 45, 33, 19, 4, -13, -26, -39, -49, -56, -59, -55, -46, -34, -19, + -4, 10, 21, 30, 40, 46, 51, 52, 49, 43, 31, 18, 5, -8, -16, -21, + -23, -26, -29, -35, -39, -42, -40, -34, -22, -11, 2, 11, 18, 21, 24, 23, + 22, 19, 14, 7, -3, -13, -21, -30, -39, -46, -50, -52, -49, -42, -31, -17, + -3, 12, 26, 39, 49, 57, 60, 58, 51, 39, 22, 1, -23, -47, -68, -82, + -89, -88, -77, -60, -37, -11, 16, 43, 65, 83, 94, 100, 101, 96, 87, 71, + 51, 29, 4, -18, -38, -58, -75, -91, -104, -109, -105, -87, -61, -27, 8, 39, + 67, 87, 97, 97, 88, 71, 54, 36, 16, -2, -23, -42, -57, -70, -75, -75, + -71, -60, -43, -23, -1, 18, 31, 47, 57, 66, 71, 68, 61, 49, 32, 17, + 1, -11, -22, -33, -41, -47, -54, -59, -63, -62, -57, -46, -30, -12, 1, 17, + 30, 41, 49, 50, 47, 40, 29, 17, 3, -14, -30, -46, -60, -70, -76, -77, + -73, -63, -48, -28, -4, 20, 44, 65, 81, 91, 93, 88, 77, 60, 37, 11, + -19, -49, -76, -97, -109, -110, -100, -81, -56, -25, 7, 38, 67, 91, 109, 121, + 127, 126, 116, 96, 68, 38, 8, -18, -43, -68, -90, -110, -124, -127, -116, -91, + -59, -22, 14, 47, 77, 98, 107, 105, 93, 74, 54, 33, 13, -6, -26, -45, + -60, -71, -78, -79, -74, -61, -42, -21, 1, 18, 33, 49, 60, 68, 73, 70, + 62, 48, 32, 15, 0, -13, -24, -34, -42, -48, -55, -61, -65, -65, -60, -48, + -32, -15, 2, 19, 32, 43, 50, 51, 47, 40, 28, 16, 1, -14, 2, -2, + 2, -5, -3, -1, 0, -4, -4, -6, -4, -6, -4, -4, -7, -6, -7, -6, + -1, 0, 3, 13, 14, 16, 12, 13, 2, 1, 0, -1, -1, -1, -2, -2, + -2, -3, -3, -4, -8, -4, -4, -5, -5, -5, -7, -9, -12, -8, -14, -11, + -14, -18, -8, 1, 31, 71, 68, 24, -5, -11, -7, -5, -5, -5, -3, -2, + -5, -5, -9, -8, -7, -7, -9, -12, -11, -17, -14, -16, -15, -20, -26, -30, + -27, -15, 16, 51, 87, 101, 70, 8, -18, -11, -14, -7, -7, -1, -2, -5, + -7, -12, -14, -10, -10, -13, -14, -13, -16, -16, -17, -18, -35, -31, -30, -34, + -9, 16, 56, 84, 89, 60, 30, 5, -7, -5, -8, -3, -4, -4, -6, -12, + -14, -13, -10, -12, -12, -9, -10, -8, -12, -13, -15, -19, -23, -26, -33, -29, + -28, -9, 12, 43, 71, 88, 72, 48, 29, -2, -16, -19, -12, -12, -12, -7, + -11, -10, -10, -10, -11, -13, -15, -18, -19, -17, -16, -15, -13, -12, -13, -9, + -13, -17, -21, -18, 2, 34, 59, 87, 92, 98, 38, -30, -24, -27, -18, -16, + -11, -11, -13, -15, -12, -14, -15, -18, -17, -20, -18, -15, -10, -7, -3, -1, + 2, -8, -11, -22, -22, -20, 7, 31, 61, 97, 106, 43, -23, -28, -25, -20, + -12, -7, -5, -7, -10, -13, -13, -13, -11, -14, -15, -15, -12, -8, -7, -4, + -2, -4, -10, -15, -19, -26, -10, 12, 42, 72, 101, 90, 20, -25, -27, -22, + -18, -10, -6, -9, -11, -16, -17, -16, -14, -10, -8, -9, -9, -9, -9, -9, + -8, -5, -3, -6, -10, -17, -24, -21, 4, 30, 61, 84, 96, 79, -16, -38, + -27, -26, -17, -12, -8, -12, -13, -14, -14, -11, -8, -4, -4, -7, -9, -8, + -10, -12, -8, -5, -4, -7, -10, -18, -24, -11, 14, 42, 70, 79, 93, 36, + -32, -26, -28, -19, -15, -9, -9, -13, -16, -14, -12, -8, -5, -3, -7, -9, + -9, -9, -11, -8, -5, -1, -6, -9, -15, -24, -23, 6, 28, 63, 86, 127, + 37, -45, -27, -28, -26, -19, -4, -5, -8, -11, -12, -14, -12, -8, -4, -8, + -8, -10, -8, -13, -8, -8, -3, -8, -8, -16, -23, -17, 7, 34, 69, 83, + 113, 37, -50, -28, -25, -22, -16, 0, -3, -8, -12, -12, -14, -14, -10, -5, + -7, -6, -9, -9, -13, -9, -10, -7, -9, -9, -15, -20, -14, 8, 33, 64, + 81, 90, 57, -29, -28, 0, -4, 10, 10, 11, -15, 4, -1, 3, -11, 11, + 2, -12, 3, 18, -10, -62, 89, -16, -95, 118, -128, 122, -128, 112, -100, 109, + -121, 120, -104, 58, 10, -88, 127, -102, 6, 98, -126, 35, 89, -111, -7, 112, + -53, -94, 92, 64, -106, -53, 109, 52, -100, -75, 86, 95, -45, -119, -12, 111, + 74, -58, -118, -27, 97, 100, -4, -107, -95, 17, 109, 92, -4, -99, -109, -26, + 78, 115, 66, -27, -104, -109, -41, 55, 112, 98, 32, -53, -109, -105, -44, 41, + 102, 109, 67, -4, -74, -112, -102, -47, 27, 88, 112, 93, 45, -19, -78, -110, + -105, -65, -4, 59, 101, 110, 87, 43, -13, -67, -103, -111, -89, -44, 13, 65, + 100, 109, 93, 59, 14, -36, -78, -104, -108, -90, -53, -6, 43, 83, 104, 106, + 88, 57, 17, -27, -66, -95, -108, -102, -80, -44, -2, 41, 77, 99, 106, 98, + 77, 46, 10, -29, -64, -91, -105, -105, -91, -64, -29, 10, 48, 78, 98, 105, + 100, 84, 59, 30, -3, -36, -65, -88, -101, -105, -99, -83, -60, -32, -1, 30, + 58, 80, 96, 103, 102, 94, 80, 62, 40, 16, -10, -35, -58, -78, -92, -101, + -104, -100, -91, -77, -58, -36, -13, 12, 36, 57, 75, 89, 98, 102, 102, 97, + 88, 76, 61, 44, 25, 5, -15, -35, -54, -70, -84, -94, -101, -104, -103, -98, + -89, -77, -63, -46, -27, -8, 12, 31, 49, 65, 79, 90, 97, 102, 104, 102, + 97, 90, 81, 70, 57, 42, 27, 10, -7, -24, -40, -56, -70, -81, -91, -99, + -103, -105, -105, -101, -95, -87, -76, -63, -49, -34, -18, -1, 16, 32, 48, 62, + 74, 85, 93, 100, 104, 105, 105, 102, 97, 90, 82, 72, 61, 48, 35, 21, + 6, -9, -24, -38, -52, -65, -76, -86, -94, -101, -105, -108, -108, -106, -102, -96, + -87, -78, -66, -54, -40, -26, -11, 4, 19, 34, 48, 61, 73, 83, 92, 99, + 104, 107, 108, 108, 105, 101, 96, 89, 80, 70, 60, 48, 36, 22, 9, -5, + -19, -33, -46, -58, -69, -80, -89, -96, -102, -107, -109, -110, -110, -107, -102, -97, + -89, -80, -70, -59, -47, -33, -20, -6, 7, 19, 30, 41, 50, 58, 65, 71, + 75, 78, 79, 80, 79, 77, 74, 70, 65, 60, 54, 48, 42, 36, 29, 22, + 16, 10, 4, -2, -7, -12, -16, -19, -22, -24, -26, -27, -27, -27, -26, -25, + -23, -22, -19, -17, -14, -12, -10, -1, -1, -4, -9, -9, -7, -6, -7, -3, + 4, 8, 10, 11, 13, 10, 4, -3, -10, -15, -13, -9, -10, -11, -5, 4, + 12, 14, 12, 13, 14, 9, 1, -8, -15, -21, -23, -22, -13, -3, 7, 17, + 24, 27, 19, 11, 16, 15, -5, -24, -29, -23, -27, -32, -21, 5, 18, 20, + 21, 24, 24, 15, 11, 8, -6, -30, -31, -19, -17, -24, -14, 2, 17, 15, + 12, 17, 16, 19, 8, -5, -2, -1, -17, -17, -3, 6, 5, -4, 0, 1, + -12, -9, 9, 11, -4, -14, -8, 9, -2, -21, -14, 4, 9, 9, 11, 18, + 21, 10, 8, 16, 10, 26, 35, 6, -14, -28, -25, -24, -55, -65, -33, -17, + 1, -6, -6, 8, 23, 33, 49, 37, 19, 16, 11, 24, 42, 17, -37, -36, + 3, 7, -23, -36, -9, 9, -12, -20, -8, -2, -4, -23, -17, -6, 0, 10, + 24, 24, 40, 46, 33, 39, 26, 5, 6, 9, -12, -26, -33, -42, -61, -52, + -43, -37, -21, -4, 7, 13, 28, 36, 31, 24, 1, -1, 20, 24, 23, 21, + 26, 27, 8, -32, -44, -3, 28, -1, -36, -30, -6, 13, -12, -34, -18, -6, + 9, 21, 25, 16, 10, 38, 62, 46, 17, -11, -7, 10, -8, -44, -53, -33, + -35, -38, -29, -27, -16, 0, 1, 9, 37, 50, 36, 2, -20, -12, 15, 21, + 24, 32, 29, 20, 23, 12, -8, -3, 4, -10, -5, 2, -19, -63, -70, -21, + 20, 41, 23, 33, 57, 61, 42, 21, 15, 10, -45, -82, -60, -29, -44, -77, + -50, -7, 4, -4, 10, 32, 56, 42, 1, -10, -18, 2, 22, 28, 33, 42, + 47, 43, 47, 11, -23, 0, 10, -40, -81, -70, -28, -29, -68, -29, 19, 6, + 7, 21, 40, 41, 32, 22, 28, 47, 69, 66, 35, 21, 15, -3, -20, -34, + -24, -6, -19, -59, -47, -42, -35, -28, 15, 45, 51, 66, 78, 83, 37, 1, + 13, 7, -51, -81, -92, -83, -87, -74, -58, -73, -51, 12, 35, 26, 35, 47, + 69, 70, 63, 65, 49, 47, 68, 73, 52, 33, 15, -12, -30, -50, -51, -46, + -45, -60, -50, -50, -50, -54, -24, 38, 78, 90, 106, 99, 40, -6, -11, -46, + -110, -127, -107, -76, -67, -53, -41, -41, -23, 14, 33, 27, 34, 49, 70, 71, + 66, 65, 51, 51, 69, 72, 52, 32, 10, -12, 0, -5, -2, -5, 2, -29, + 22, 0, -27, 67, -59, 45, -13, -37, 28, 65, -4, 6, 60, 5, 58, 44, + 60, 27, 43, 96, 71, 81, 48, 96, 70, 23, 90, 66, 80, 88, 40, 20, + 61, 64, 12, 36, 24, 4, 7, 5, -27, -38, -26, -33, -49, -50, -70, -69, + -93, -92, -94, -104, -104, -101, -110, -107, -111, -111, -126, -87, -119, -100, -94, -112, + -93, -93, -80, -81, -76, -58, -56, -70, -30, -21, -42, -13, -3, 2, 8, 20, + 28, 41, 45, 59, 62, 69, 84, 85, 90, 103, 109, 111, 118, 121, 121, 123, + 121, 122, 121, 122, 121, 122, 121, 121, 120, 121, 120, 121, 120, 121, 120, 120, + 119, 120, 119, 120, 118, 105, 106, 110, 83, 89, 92, 75, 67, 61, 57, 47, + 40, 33, 24, 17, 10, 3, -2, -10, -20, -31, -31, -37, -49, -50, -63, -66, + -69, -74, -79, -91, -89, -92, -95, -102, -106, -104, -107, -113, -113, -110, -113, -116, + -114, -115, -114, -115, -114, -113, -114, -113, -114, -113, -112, -113, -109, -105, -111, -106, + -107, -103, -100, -103, -99, -97, -98, -99, -92, -92, -93, -92, -92, -90, -88, -90, + -88, -86, -89, -85, -85, -87, -85, -85, -82, -83, -82, -80, -78, -79, -76, -74, + -73, -73, -69, -68, -66, -64, -65, -62, -58, -56, -56, -52, -50, -47, -43, -42, + -39, -35, -33, -31, -27, -23, -21, -16, -16, -8, -7, -3, 1, 0, 10, 15, + 15, 19, 26, 29, 30, 38, 41, 42, 47, 54, 54, 57, 63, 68, 69, 72, + 77, 78, 80, 85, 84, 86, 87, 86, 87, 86, 85, 86, 85, 84, 85, 84, + 83, 84, 83, 82, 82, 83, 82, 81, 82, 81, 80, 81, 80, 79, 80, 79, + 79, 78, 79, 78, 78, 77, 74, 70, 66, 64, 61, 55, 52, 49, 45, 40, + 35, 32, 29, 24, 19, 15, 12, 8, 4, 0, -4, -8, -11, -15, -17, -20, + -25, -26, -29, -32, -34, -37, -39, -41, -43, -45, -46, -48, -49, -50, -50, -52, + -52, -53, -52, -53, -54, -53, -53, -52, -52, -51, -50, -50, -49, -48, -48, -46, + -45, -44, -42, -41, -40, -39, -37, -35, -34, -32, -30, -28, -27, -24, -23, -22, + -20, -19, -17, -15, -14, -13, -12, -10, -9, -8, -8, -6, -6, -5, -4, -4, + -3, -3, -2, -2, -1, -2, -1, -2, -1, -1, 0, -1, -1, 1, 0, 0, + -3, -1, 1, -4, -4, -3, -2, -5, -3, 0, -1, -1, -3, -1, 0, 2, + 0, -2, -5, 5, 4, 1, 7, 2, 2, 1, 8, 1, 6, 2, -4, 2, + 1, -4, 6, -8, -3, -7, -2, -6, -1, -9, 1, -2, -4, 1, 2, 1, + -2, 8, 2, 0, 14, 9, 10, 5, 3, 5, 6, 4, 3, -8, -2, -4, + -10, -1, -5, -3, -4, -6, -13, -5, -4, -4, -3, 2, -13, -6, 3, 6, + 6, 7, 1, 1, 6, 6, 16, 13, 9, 10, 9, 2, 7, 10, 4, -4, + -3, -17, -7, -6, -6, -10, -17, -17, -10, -11, -9, -5, -6, -8, 2, 1, + 8, 19, 15, 18, 24, 19, 16, 17, 19, 11, 7, 1, -5, -8, -9, -15, + -8, -9, -14, -20, -19, -9, -18, -10, -13, -23, -13, -12, -7, 0, -1, 5, + 16, 12, 28, 30, 32, 34, 34, 19, 24, 23, 16, 11, 5, -7, -19, -17, + -16, -21, -26, -23, -32, -31, -30, -25, -26, -24, -19, -13, -9, -1, 0, 4, + 6, 13, 15, 19, 17, 13, 8, 8, 8, 7, 0, -4, -8, -10, -7, -5, + -6, -6, -9, -12, -8, -10, -9, -9, -11, -13, -12, -9, -4, -1, 4, 9, + 19, 27, 31, 26, 16, 14, 16, 16, 12, 1, -8, -14, -11, -9, -6, -11, + -11, -12, -14, -10, -11, -13, -15, -19, -23, -19, -14, -8, -5, -1, 8, 34, + 62, 59, 12, 14, 32, 22, 6, 20, 6, -9, -54, -16, -1, -19, 7, -15, + -13, -12, -14, -15, -14, -22, -24, -30, -30, -20, -12, -6, 3, 26, 66, 88, + 39, 0, 47, 36, -2, 26, -23, 21, 13, -6, -60, -42, 6, -22, 4, -18, + -16, -4, -16, -19, -24, -39, -31, -25, -32, -26, -11, 12, 55, 104, 75, 10, + 35, 62, 9, 26, -16, -8, 19, 3, -9, -61, -46, 2, -26, -7, -16, -10, + 2, -7, -22, -23, -38, -40, -37, -44, -33, -8, 37, 101, 124, 36, -5, 89, + 20, 38, 5, -26, 3, 1, 5, -28, -65, -21, 1, -22, -12, -26, 1, -7, + -10, -24, -26, -33, -37, -48, -50, -36, 5, 63, 122, 109, 7, 35, 84, 5, + 59, -36, -4, -11, -1, -5, -40, -55, -4, -15, -21, -16, -22, 5, -10, -17, + -20, -27, -23, -44, -54, -62, -23, 29, 114, 127, 51, 7, -2, -4, -2, 4, + 11, 14, 10, 2, -7, -9, -9, -15, -16, -7, 3, 2, -10, -21, -17, 6, + 10, -8, -28, -11, 45, 66, 64, 47, 36, 49, 49, 27, 9, -12, -18, -25, + -30, -11, 0, -5, 0, -1, -18, -36, -33, -18, -10, -13, -31, -26, -25, -17, + 4, 28, 70, 89, 48, 9, -32, -58, -56, -70, -57, -17, -38, -48, -35, -32, + -7, 35, 38, 53, 62, 44, 33, 27, -6, -35, -52, -65, -54, -40, -43, -30, + -25, 2, 63, 54, 34, 17, 34, 70, 60, 8, -15, -3, 0, 39, 55, 35, + 39, 60, 75, 36, 20, -7, -25, -66, -110, -89, -89, -71, -36, -12, 9, 31, + 41, 54, 46, 45, 59, 41, 22, 3, -69, -110, -126, -116, -64, -15, 9, 29, + 33, 30, 56, 42, 12, 23, 6, -27, -36, -21, -22, -32, -21, -30, -29, -5, + 9, 16, 22, -9, -12, 31, 24, -17, -41, -23, 32, 32, 26, 34, 64, 66, + 109, 104, 51, 5, 12, 16, -36, -58, -59, -66, -63, -82, -64, -23, -9, 11, + 16, 20, 19, 13, 12, 33, 37, 41, 46, 28, 7, -58, -93, -79, -64, -33, + -1, 22, -4, 2, 19, 4, -7, -3, -3, 5, 1, -10, -3, 12, -6, -38, + -29, -17, -5, 11, 2, -33, -20, 44, 42, 20, -30, -24, 9, 44, 38, 20, + 36, 71, 61, 86, 72, 25, -8, 10, 17, -35, -54, -63, -67, -70, -78, -58, + -16, -7, 19, 22, 20, 21, 29, 21, 16, 35, 36, 16, -8, -27, -61, -58, + -67, -43, 3, 35, 38, -2, -2, 10, -9, -29, -14, -5, -1, -5, 2, 12, + -6, -32, -23, -22, -16, -5, 3, -9, -29, 27, 56, 39, 11, -27, -28, 23, + 34, 28, 18, 20, 62, 82, 71, 74, 24, -4, 16, 18, -39, -54, -65, -61, + -52, -64, -49, -11, -4, 12, 17, 16, 25, 24, 6, 23, 36, 18, 18, -1, + -42, -50, -90, -43, 3, 35, 38, -2, -2, 10, -9, -29, -14, -5, -1, -5, + 2, 12, -6, -32, -23, -22, -16, -5, 3, -9, -29, 27, 56, 39, 11, -27, + -28, 23, 34, 28, 18, 20, 62, 82, 71, 74, 24, -4, 16, 18, -39, -54, + -65, -61, -52, -64, -49, -11, -4, 12, 17, 16, 25, 24, 6, 23, 36, 18, + 18, -1, -42, -50, -90, -43, 0, 1, 6, -11, 19, -25, 24, -15, 11, -6, + 1, 9, -6, -3, 11, -18, 28, -23, 8, 6, -2, -1, 0, -5, 18, -23, + 24, -28, 27, -12, -1, -2, 6, 4, -14, 19, -29, 42, -40, 22, -6, -3, + 14, -16, 4, 8, -9, 13, -22, 17, 5, -24, 37, -34, 20, -4, -11, 19, + -20, 21, -16, 1, 17, -17, 5, -9, 25, -31, 31, -40, 32, -11, -7, 4, + -4, 13, -23, 29, -40, 51, -49, 20, 3, -20, 38, -47, 34, -21, 14, -9, + 4, -13, 20, -29, 37, -57, 59, -48, 23, -5, -7, 5, -6, -5, 13, -17, + 9, -4, -12, 22, -19, -8, 10, -5, -7, 8, -18, 19, -13, 5, -12, 6, + -10, 18, -40, 66, -91, 82, -56, 17, 19, -51, 56, -45, 30, -19, 5, -6, + 7, -9, -4, -2, -5, 13, -19, 1, 20, -28, 13, -6, 0, -17, 33, -48, + 38, -16, -20, 53, -75, 75, -61, 30, -12, -9, 2, 5, -9, -7, 15, -17, + 9, 4, -46, 70, -85, 86, -67, 29, 18, -60, 76, -70, 29, -8, -1, 1, + 14, -58, 93, -118, 127, -125, 85, -36, -2, 17, -39, 46, -61, 70, -99, 122, + -120, 56, 15, -85, 116, -101, 30, 43, -108, 127, -122, 72, -38, -3, 20, -31, + 29, -37, 42, -50, 63, -72, 40, -7, -46, 66, -82, 53, -25, 1, 1, -1, + -3, 3, -24, 24, -34, 27, -24, 36, -49, 37, -38, 35, -42, 13, -4, -14, + 14, -29, 42, -58, 58, -60, 41, -39, 27, -35, 27, -32, 25, -37, 43, -50, + 32, -20, -4, 4, -14, 16, -43, 66, -93, 79, -58, 27, -11, -21, 34, -40, + 24, -7, -25, 31, -29, 19, -18, -2, 1, -6, 4, -31, 47, -63, 62, -64, + 32, 2, -29, 23, -21, 19, -41, 59, -76, 62, -52, 26, -11, -1, -10, 6, + -10, -7, 17, -42, 34, -12, -34, 73, -106, 92, -61, 26, -24, 8, -7, -2, + 3, -24, 31, -44, 27, -9, -22, 38, -43, 15, -4, -3, -2, -12, 5, 1, + -7, 7, -25, 17, -17, 4, -15, 27, -40, 34, -18, 6, -13, 12, -3, -9, + -6, 8, -18, 18, -36, 54, -55, 30, -25, 26, -41, 38, -49, 48, -38, 8, + 16, -40, 47, -52, 34, -12, -4, 2, -13, 0, 1, 6, -11, 19, -25, 24, + -15, 11, -6, 1, 9, -6, -3, 11, -18, 28, -23, 8, 6, -2, -1, 0, + -5, 18, -23, 24, -28, 27, -12, -1, -2, 6, 4, -14, 19, -29, 42, -40, + 22, -6, -3, 14, -16, 4, 8, -9, 13, -22, 17, 5, -24, 37, -34, 20, + -4, -11, 19, -20, 21, -16, 1, 17, -17, 5, -9, 25, -31, 31, -40, 32, + -11, -7, 4, -4, 13, -23, 29, -40, 51, -49, 20, 3, -20, 38, -47, 34, + -21, 14, -9, 4, -13, 20, -29, 37, -57, 59, -48, 23, -5, -7, 5, -6, + -5, 13, -17, 9, -4, -12, 22, -19, -8, 10, -5, -7, 8, -18, 19, -13, + 5, -12, 6, -10, 18, -40, 66, -91, 82, -56, 17, 19, -51, 56, -45, 30, + -19, 5, -6, 7, -9, -4, -2, -5, 13, -19, 1, 20, -28, 13, -6, 0, + -17, 33, -48, 38, -16, -20, 53, -75, 75, -61, 30, -12, -9, 2, 5, -9, + -7, 15, -17, 9, 4, -46, 70, -85, 86, -67, 29, 18, -60, 76, -70, 29, + -8, -1, 1, 14, -58, 93, -118, 127, -125, 85, -36, -2, 17, -39, 46, -61, + 70, -99, 122, -120, 56, 15, -85, 116, -101, 30, 43, -108, 127, -122, 72, -38, + -3, 20, -31, 29, -37, 42, -50, 63, -72, 40, -7, -46, 66, -82, 53, -25, + 1, 1, -1, -3, 3, -24, 24, -34, 27, -24, 36, -49, 37, -38, 35, -42, + 13, -4, -14, 14, -29, 42, -58, 58, -60, 41, -39, 27, -35, 27, -32, 25, + -37, 43, -50, 32, -20, -4, 4, -14, 16, -43, 66, -93, 79, -58, 27, -11, + -21, 34, -40, 24, -7, -25, 31, -29, 19, -18, -2, 1, -6, 4, -31, 47, + -63, 62, -64, 32, 2, -29, 23, -21, 19, -41, 59, -76, 62, -52, 26, -11, + -1, -10, 6, -10, -7, 17, -42, 34, -12, -34, 73, -106, 92, -61, 26, -24, + 8, -7, -2, 3, -24, 31, -44, 27, -9, -22, 38, -43, 15, -4, -3, -2, + -12, 5, 1, -7, 7, -25, 17, -17, 4, -15, 27, -40, 34, -18, 6, -13, + 12, -3, -9, -6, 8, -18, 18, -36, 54, -55, 30, -25, 26, -41, 38, -49, + 48, -38, 8, 16, -40, 47, -52, 34, -12, -4, 2, -13, -1, -2, -1, -4, + -3, -25, -41, 8, 16, 27, 2, 16, 1, 13, 21, -8, -6, -29, 17, 8, + 8, 20, -13, 5, 4, 25, 17, 30, 22, 14, 15, 19, 7, 51, -16, -15, + -32, -13, 12, -8, -17, -49, -27, -29, -29, -52, -66, -55, -32, -20, -41, -21, + -36, -11, -16, 22, 3, 19, 0, -6, -10, 0, -38, -17, -35, -19, -27, 0, + -35, -27, -9, -17, -14, -2, 20, 50, 63, 57, 49, 70, 70, 97, 81, 68, + 52, 78, 93, 98, 102, 56, 34, 20, 53, 60, 45, 24, -18, 21, -10, 0, + -38, -79, -38, -37, -13, -27, -41, -50, -51, 14, 10, 16, -21, -13, -22, -20, + -48, -53, -55, -66, -76, -65, -91, -105, -92, -87, -101, -79, -56, -34, -7, -4, + 7, 20, 15, 26, 29, 32, -8, 36, 47, 50, 66, 29, 18, -33, -11, -4, + -10, -24, -42, -31, -22, 2, -23, -75, -34, -36, 5, 1, 1, -17, -47, 20, + 43, 68, 28, 30, 9, 29, 7, -9, -5, -32, -46, -36, -15, -40, -35, -15, + -26, -21, 2, 21, 49, 62, 83, 87, 106, 77, 97, 94, 67, 60, 85, 79, + 110, 80, 61, 1, 8, 16, 50, 36, 2, -22, 4, -2, 21, -35, -33, -19, + 4, 24, 19, 10, -58, -23, 18, 45, 34, 8, -12, -6, -5, -48, -51, -75, + -72, -77, -37, -65, -80, -57, -66, -68, -38, -38, 2, 10, 38, 31, 58, 22, + 39, 37, 27, -9, 23, 9, 35, 18, 15, -31, -50, -44, -5, 6, -10, -63, + -41, -56, -15, -41, -71, -45, -37, 7, -6, 5, -56, -71, -6, 21, 41, 8, + -13, -14, -40, -30, -41, -40, -56, -31, -31, -9, -15, -5, 10, 42, 27, 73, + 82, 73, 73, 79, 70, 38, 28, 31, 23, 45, 42, 44, 30, -40, 8, 28, + 52, 30, -18, -29, -40, -14, -45, -50, -55, -68, -39, -6, -29, -45, -59, -32, + 4, 31, 23, 16, 20, 11, -1, 1, -28, -45, -53, -56, -67, -60, -55, -40, + -31, -25, -16, 11, 20, 36, 67, 70, 75, 77, 81, 65, 46, 38, 34, 39, + 51, 44, 57, 7, -4, 13, 37, 46, 19, -8, -29, -1, -9, -21, -32, -43, + -55, -58, -40, -8, 15, 29, 38, 44, 59, 63, 51, 20, -20, -47, -61, -58, + -48, -42, -43, -35, -15, 15, 41, 55, 61, 62, 70, 67, 45, 11, -31, -62, + -80, -78, -71, -62, -54, -39, -15, 18, 50, 68, 79, 83, 92, 88, 57, 16, + -31, -71, -94, -95, -90, -83, -71, -55, -28, 7, 49, 77, 93, 100, 109, 107, + 78, 36, -20, -71, -99, -104, -100, -92, -83, -69, -43, -5, 42, 79, 100, 108, + 114, 112, 90, 51, -9, -65, -100, -110, -105, -95, -87, -76, -52, -11, 35, 75, + 100, 107, 111, 106, 90, 52, -4, -60, -97, -109, -99, -87, -80, -65, -35, 5, + 43, 75, 91, 95, 93, 87, 71, 31, -19, -64, -93, -99, -88, -76, -66, -44, + -9, 28, 59, 79, 84, 80, 71, 59, 35, -5, -45, -76, -96, -95, -77, -59, + -39, -9, 28, 61, 86, 98, 93, 74, 52, 28, -6, -43, -72, -94, -108, -99, + -77, -52, -20, 19, 56, 84, 106, 115, 106, 79, 45, 3, -40, -74, -93, -108, + -112, -100, -79, -46, -1, 45, 78, 100, 113, 118, 108, 81, 39, -19, -67, -93, + -103, -108, -104, -94, -74, -32, 19, 61, 88, 102, 108, 109, 100, 73, 21, -44, + -87, -102, -104, -97, -90, -78, -49, 0, 46, 78, 90, 92, 89, 87, 77, 43, + -15, -72, -101, -104, -93, -79, -69, -47, -3, 47, 84, 96, 89, 74, 65, 58, + 37, -7, -61, -99, -110, -101, -82, -62, -38, 2, 49, 92, 112, 106, 82, 59, + 41, 18, -19, -61, -95, -111, -110, -98, -74, -39, 6, 54, 99, 122, 123, 104, + 79, 50, 12, -32, -72, -100, -111, -110, -106, -90, -54, -4, 49, 99, 123, 126, + 113, 95, 69, 24, -27, -72, -102, -114, -109, -104, -94, -64, -16, 36, 87, 116, + 121, 111, 97, 76, 36, -15, -61, -94, -110, -108, -98, -86, -60, -19, 29, 77, + 104, 109, 99, 86, 67, 35, -7, -47, -82, -98, -101, -92, -77, -48, -14, 25, + 67, 92, 95, 83, 66, 45, 18, -9, -37, -62, -77, -81, -78, -54, -16, 0, + 0, 0, 12, -10, 16, -14, -18, 17, -31, -2, 3, -19, -8, 17, 28, 37, + 31, -1, -25, -16, -47, -13, -43, -22, 6, 34, 41, 49, 41, 27, 6, -33, + -62, -54, -59, -32, -13, 29, 53, 73, 60, 54, 16, -19, -58, -77, -89, -42, + -46, 17, 55, 78, 86, 81, 33, -3, -35, -84, -110, -75, -70, 0, 39, 78, + 92, 105, 70, 13, -15, -82, -107, -103, -84, -41, 20, 81, 85, 127, 86, 39, + -4, -63, -103, -99, -107, -69, 2, 68, 82, 127, 84, 58, 28, -44, -88, -104, + -108, -83, -13, 29, 69, 116, 87, 77, 40, -16, -65, -89, -104, -89, -40, -1, + 47, 96, 90, 85, 52, 9, -38, -62, -96, -95, -62, -22, 21, 73, 78, 86, + 65, 35, -15, -41, -80, -92, -69, -48, 1, 43, 65, 80, 73, 49, 8, -23, + -59, -75, -74, -60, -22, 17, 49, 69, 65, 60, 25, -1, -36, -59, -70, -61, + -40, -9, 30, 52, 57, 63, 37, 17, -12, -41, -61, -57, -50, -30, 9, 30, + 49, 60, 47, 28, 6, -20, -49, -51, -53, -42, -11, 13, 34, 53, 50, 34, + 18, -3, -35, -39, -52, -49, -23, 0, 18, 41, 47, 36, 31, 10, -21, -28, + -43, -49, -31, -13, 2, 28, 39, 35, 38, 19, -7, -18, -33, -42, -36, -26, + -12, 19, 30, 34, 36, 22, 6, -5, -25, -38, -36, -29, -17, 8, 19, 26, + 35, 28, 12, 3, -17, -30, -29, -29, -22, -3, 9, 19, 33, 26, 14, 8, + -9, -18, -22, -28, -25, -9, 3, 15, 22, 20, 18, 12, 1, -11, -22, -24, + -21, -13, -3, 8, 11, 20, 21, 12, 5, -6, -19, -16, -17, -17, -7, 3, + 8, 20, 17, 7, 7, -2, -11, -13, -16, -17, -5, 2, 5, 12, 13, 8, + 6, 3, -9, -11, -9, -14, -5, 1, -3, 6, 11, 6, 7, 2, -6, -4, + -4, -10, -6, -3, -4, 5, 8, 2, 5, 4, -2, 0, -3, -9, -4, -3, + -3, 2, 3, 0, 6, 4, 0, -1, -2, -2, 0, 0, 0, 12, -10, 16, + -14, -18, 17, -31, -2, 3, -19, -8, 17, 28, 37, 31, -1, -25, -16, -47, + -13, -43, -22, 6, 34, 41, 49, 41, 27, 6, -33, -62, -54, -59, -32, -13, + 29, 53, 73, 60, 54, 16, -19, -58, -77, -89, -42, -46, 17, 55, 78, 86, + 81, 33, -3, -35, -84, -110, -75, -70, 0, 39, 78, 92, 105, 70, 13, -15, + -82, -107, -103, -84, -41, 20, 81, 85, 127, 86, 39, -4, -63, -103, -99, -107, + -69, 2, 68, 82, 127, 84, 58, 28, -44, -88, -104, -108, -83, -13, 29, 69, + 116, 87, 77, 40, -16, -65, -89, -104, -89, -40, -1, 47, 96, 90, 85, 52, + 9, -38, -62, -96, -95, -62, -22, 21, 73, 78, 86, 65, 35, -15, -41, -80, + -92, -69, -48, 1, 43, 65, 80, 73, 49, 8, -23, -59, -75, -74, -60, -22, + 17, 49, 69, 65, 60, 25, -1, -36, -59, -70, -61, -40, -9, 30, 52, 57, + 63, 37, 17, -12, -41, -61, -57, -50, -30, 9, 30, 49, 60, 47, 28, 6, + -20, -49, -51, -53, -42, -11, 13, 34, 53, 50, 34, 18, -3, -35, -39, -52, + -49, -23, 0, 18, 41, 47, 36, 31, 10, -21, -28, -43, -49, -31, -13, 2, + 28, 39, 35, 38, 19, -7, -18, -33, -42, -36, -26, -12, 19, 30, 34, 36, + 22, 6, -5, -25, -38, -36, -29, -17, 8, 19, 26, 35, 28, 12, 3, -17, + -30, -29, -29, -22, -3, 9, 19, 33, 26, 14, 8, -9, -18, -22, -28, -25, + -9, 3, 15, 22, 20, 18, 12, 1, -11, -22, -24, -21, -13, -3, 8, 11, + 20, 21, 12, 5, -6, -19, -16, -17, -17, -7, 3, 8, 20, 17, 7, 7, + -2, -11, -13, -16, -17, -5, 2, 5, 12, 13, 8, 6, 3, -9, -11, -9, + -14, -5, 1, -3, 6, 11, 6, 7, 2, -6, -4, -4, -10, -6, -3, -4, + 5, 8, 2, 5, 4, -2, 0, -3, -9, -4, -3, -3, 2, 3, 0, 6, + 4, 0, -1, -2, -2, 0, -1, -1, -3, -7, -14, -23, -32, -45, -55, -66, + -74, -83, -88, -80, -77, -71, -64, -54, -46, -37, -31, -25, -19, -12, -6, -1, + 4, 8, 12, 17, 21, 23, 25, 25, 27, 29, 32, 35, 36, 34, 32, 31, + 32, 35, 37, 37, 35, 31, 29, 29, 31, 33, 34, 32, 29, 26, 25, 27, + 30, 32, 31, 29, 27, 27, 29, 31, 34, 35, 35, 35, 36, 38, 41, 43, + 45, 47, 49, 52, 55, 57, 59, 61, 63, 66, 69, 70, 70, 68, 66, 63, + 61, 58, 54, 47, 36, 24, 11, 1, -9, -20, -33, -48, -64, -78, -89, -97, + -103, -110, -116, -123, -128, -128, -126, -121, -116, -112, -107, -102, -95, -88, -78, -69, + -61, -54, -47, -41, -34, -27, -21, -16, -12, -7, -2, 2, 5, 6, 8, 10, + 13, 16, 19, 19, 19, 17, 18, 19, 22, 24, 24, 22, 19, 18, 19, 21, + 23, 24, 22, 19, 17, 18, 20, 22, 24, 24, 22, 21, 22, 24, 27, 29, + 30, 30, 31, 32, 35, 37, 40, 42, 45, 47, 50, 53, 56, 58, 60, 62, + 66, 68, 70, 69, 68, 65, 63, 61, 59, 54, 46, 36, 24, 13, -1, -14, + -28, -43, -57, -68, -78, -86, -94, -102, -109, -114, -117, -117, -115, -112, -109, -106, + -101, -96, -89, -81, -73, -67, -59, -53, -46, -40, -34, -28, -23, -18, -13, -9, + -5, -2, 0, 2, 5, 7, 10, 12, 14, 15, 15, 15, 16, 18, 19, 20, + 20, 19, 18, 18, 19, 21, 22, 22, 21, 20, 19, 21, 23, 24, 25, 25, + 25, 25, 26, 29, 31, 33, 34, 35, 36, 38, 40, 43, 46, 48, 51, 53, + 56, 59, 62, 65, 68, 71, 74, 77, 78, 79, 78, 77, 76, 74, 71, 66, + 58, 49, 39, 28, 17, 6, -6, -20, -35, -50, -64, -75, -85, -94, -102, -110, + -117, -122, -124, -123, -121, -118, -114, -110, -106, -99, -92, -84, -76, -69, -61, -55, + -48, -41, -34, -29, -23, -18, -13, -9, -5, -2, 0, -1, -1, 0, 2, 0, + 3, 2, 2, 4, 5, 4, 4, 4, 4, 5, 3, 4, 3, 1, 2, 0, + 0, -1, -3, -4, -2, -3, -5, -3, -4, -5, -5, -4, -3, -3, -6, -5, + -4, -2, -5, -5, -2, -3, -3, -3, 1, 4, 4, 8, 8, 8, 13, 12, + 13, 14, 12, 9, 8, 6, 6, 3, -2, -2, -5, -5, -4, -5, -11, -16, + -12, -7, -3, -5, -10, -11, -6, -2, -2, -1, -4, -6, -6, -7, -8, -5, + -2, 2, 5, 6, 8, 8, 9, 13, 16, 16, 14, 11, 7, 5, 4, 2, + 0, -2, -3, -3, 0, -3, -13, -28, -11, 7, -1, -15, -1, -5, -18, -10, + 6, 11, -11, -1, -10, -14, -13, -13, -4, 4, 6, 14, 13, 10, 10, 15, + 17, 24, 24, 13, 12, 10, 1, 0, 2, -4, 0, -6, 2, 7, -22, -68, + 2, 35, -40, 14, -24, -3, -10, -9, -20, -3, 28, 2, -9, -12, -28, -19, + -4, -1, 15, 17, 17, 16, 12, 16, 22, 25, 28, 6, 17, 9, -1, -2, + -3, 2, 12, -6, 6, -5, -35, -89, 32, 28, -39, 20, -36, 9, -20, -9, + -34, 3, 34, 8, -16, -11, -37, -15, -3, 0, 26, 18, 13, 15, 13, 25, + 27, 29, 20, 3, 21, 2, -2, 0, -8, 11, 16, -1, 8, -21, -76, -81, + 87, -25, 4, -4, -23, 6, -26, -20, -35, 23, 28, 0, -18, -16, -43, 2, + -9, 17, 25, 15, 9, 18, 17, 37, 28, 35, 3, 14, 12, -5, -1, -1, + -5, 27, 0, 16, -11, -49, -128, 36, 40, -36, 35, -41, 21, -27, -14, -45, + 4, 24, 20, -23, -6, -41, -9, -1, 6, 23, 19, 5, 15, 14, 33, 35, + 40, 16, 5, 16, -3, -5, 4, -12, 24, 10, 18, 1, -38, -128, -21, 72, + -50, 42, -38, 19, -16, -16, -43, -10, 21, 24, -22, -11, -30, -15, 6, 4, + 22, 18, 6, 11, 13, 27, 39, 42, 22, 4, -3, -2, -2, -5, -3, -5, + -3, -2, -6, -5, -5, -6, -5, -3, -5, -3, -5, -4, -6, -3, -1, -2, + -1, 0, -2, 1, 2, 1, 4, 4, 5, 5, 5, 8, 10, 11, 9, 10, + 11, 8, 5, 10, 7, 5, 5, 0, -3, 1, 0, -5, -2, -8, -9, -7, + -7, -5, -9, -11, -9, -8, -8, -7, -9, -7, -6, -7, -5, -6, -5, -3, + -3, -3, -4, -4, -2, 0, 1, 2, 5, 9, 12, 16, 19, 22, 22, 24, + 22, 22, 19, 13, 11, 7, 7, 4, -2, -7, -9, -9, -8, -10, -14, -14, + -15, -15, -13, -14, -17, -18, -14, -12, -12, -8, -9, -7, -6, -6, -6, -8, + -9, -9, -11, -13, -11, -6, -1, 3, 9, 20, 27, 33, 37, 46, 46, 42, + 37, 28, 21, 14, 11, 10, 14, 20, -2, -40, -47, -22, -5, -4, -1, 4, + -15, -53, -56, -7, -33, -14, -2, -19, -7, -8, -15, -6, -9, -8, -3, -9, + -15, -18, -26, -19, -6, -5, -6, 0, 12, 22, 29, 30, 28, 32, 29, 21, + 15, 13, 5, 5, 3, 19, 30, 3, -68, -26, 2, -17, 17, -12, 15, -1, + -12, -48, -43, -19, -1, 3, 6, -8, -4, -10, -10, -4, 0, -6, -1, -7, + -9, -17, -12, -6, -9, -14, -5, 14, 33, 33, 41, 32, 41, 35, 20, 10, + 8, 4, 10, -2, 36, 40, 3, -110, -8, -7, -6, 16, -18, 27, -2, -4, + -56, -57, -33, 16, -2, 12, -11, -5, -17, -9, -5, 10, -6, 0, -12, -11, + -20, -10, -8, -12, -17, -3, 17, 38, 34, 45, 36, 51, 37, 18, 4, -3, + 3, 8, 8, 54, 48, -34, -128, 28, -33, 28, -13, 1, 21, 3, -20, -59, + -65, -10, 17, -1, 7, -17, -10, -19, -8, 5, 11, -4, -2, -16, -17, -20, + -9, -11, -18, -11, 3, 31, 36, 41, 41, 44, 53, 30, 10, 1, -13, 12, + -5, 42, 63, 43, -127, -55, 19, -27, 28, -1, 0, 3, 5, 8, 12, 14, + 15, 15, 14, 12, 8, 5, 1, -3, -9, -14, -17, -19, -18, -16, -12, -8, + -5, -4, -2, -1, -1, -2, -3, -4, -3, -2, -1, -1, 0, 0, 0, 2, + 8, 12, 16, 19, 23, 26, 34, 40, 39, 28, 11, -8, -26, -36, -40, -39, + -35, -27, -19, -10, -5, -6, -10, -12, -15, -14, -12, -9, -5, -3, -1, 1, + 6, 8, 7, 7, 7, 8, 13, 20, 28, 35, 43, 48, 55, 57, 51, 32, + 3, -29, -56, -68, -67, -60, -46, -31, -17, -7, -4, -7, -11, -15, -16, -15, + -10, -5, -1, 1, 3, 5, 7, 9, 11, 12, 12, 10, 13, 19, 26, 36, + 43, 51, 58, 65, 61, 40, 6, -30, -60, -75, -73, -64, -49, -32, -16, -5, + -1, -4, -11, -18, -23, -23, -19, -12, -5, 2, 8, 12, 13, 11, 9, 8, + 8, 10, 15, 21, 27, 32, 37, 42, 49, 55, 63, 55, 32, -3, -39, -66, + -79, -73, -56, -39, -24, -12, -7, -7, -12, -19, -24, -24, -21, -14, -6, 3, + 8, 11, 12, 11, 10, 10, 10, 11, 14, 17, 21, 27, 33, 41, 49, 56, + 63, 66, 49, 15, -27, -61, -82, -85, -73, -52, -33, -18, -9, -5, -7, -12, + -18, -21, -20, -15, -9, -1, 4, 8, 12, 15, 15, 14, 11, 8, 7, 10, + 15, 22, 32, 45, 59, 72, 86, 95, 75, 22, -40, -93, -119, -120, -97, -64, + -32, -9, 5, 9, 5, -3, -14, -21, -23, -20, -13, -5, 4, 12, 17, 18, + 15, 10, 7, 4, 3, 6, 9, 15, 21, 30, 40, 56, 77, 99, 99, 54, + -19, -86, -123, -127, -103, -66, -27, 1, 16, 18, 11, -1, -12, -21, -23, -21, + -16, -8, 1, 9, 16, 19, 16, 11, 8, 5, 5, 7, 9, 14, 19, 27, + 35, 49, 68, 90, 101, 73, 6, -66, -114, -128, -113, -78, -39, -6, 13, 19, + 11, -1, 0, 10, 30, 35, 40, 39, 37, 28, 18, 6, -9, -20, -30, -35, + -33, -30, -28, -23, -24, -23, -19, -20, -15, -11, -8, -3, 0, 1, 0, -2, + -4, -1, 0, 10, 15, 21, 27, 25, 25, 22, 13, 10, -5, -9, -15, -19, + -17, -17, -12, -7, 0, 4, 10, 8, 5, -5, -13, -23, -31, -30, -24, -13, + 11, 36, 62, 81, 83, 78, 54, 35, 19, -11, -29, -49, -57, -47, -35, -20, + -19, -26, -27, -33, -30, -26, -22, -11, -8, 3, 11, 6, 0, -16, -23, -23, + -11, 9, 23, 35, 45, 51, 46, 49, 26, 12, -13, -26, -37, -45, -31, -35, + -17, -4, 8, 23, 24, 23, 9, -10, -22, -37, -40, -38, -33, -12, 22, 67, + 100, 119, 111, 79, 50, 10, -12, -32, -52, -69, -62, -38, -14, -9, -21, -42, + -60, -50, -39, -19, -4, -1, 3, 15, 19, 2, -16, -43, -57, -48, -21, 19, + 38, 63, 66, 69, 74, 59, 39, 4, -33, -52, -67, -58, -39, -25, 2, 10, + 32, 35, 36, 18, -7, -25, -37, -31, -28, -23, -10, 11, 53, 101, 121, 123, + 92, 48, 11, -24, -42, -60, -66, -67, -48, -20, 2, -16, -41, -67, -87, -62, + -44, -10, 8, 19, 30, 34, 35, 4, -36, -66, -78, -75, -27, 22, 49, 83, + 91, 97, 90, 69, 39, -18, -61, -104, -98, -75, -32, 19, 47, 68, 70, 56, + 16, -33, -77, -89, -76, -47, 7, 35, 64, 100, 123, 125, 107, 60, 5, -39, + -76, -94, -101, -93, -69, -36, -3, 17, 10, -15, -56, -80, -86, -69, -40, -7, + 25, 49, 66, 72, 54, 19, -19, -55, -77, -67, -40, 4, 45, 76, 96, 100, + 92, 67, 32, -11, -56, -88, -91, -73, -33, 9, 41, 61, 65, 52, 17, -28, + -67, -80, -68, -36, 6, 47, 82, 114, 126, 114, 74, 18, -32, -73, -93, -101, + -93, -70, -36, -3, 17, 10, -15, 0, -1, -2, -2, 0, 2, 3, 6, 7, + 6, 6, 3, 2, -1, -4, -8, -12, -14, -13, -13, -11, -5, -1, 5, 10, + 14, 17, 19, 18, 15, 12, 7, 3, 1, -2, -4, -4, -7, -11, -13, -16, + -16, -12, -9, -6, -3, -1, -1, -1, -4, -8, -11, -15, -16, -15, -10, -2, + 7, 18, 25, 28, 28, 24, 16, 10, 4, -2, -5, -5, -4, -4, -1, 0, + 0, 1, 1, 0, -1, -3, -6, -11, -11, -14, -16, -17, -19, -19, -16, -10, + -2, 8, 19, 27, 33, 35, 32, 26, 21, 14, 7, 0, -6, -11, -18, -25, + -31, -32, -27, -19, -9, 1, 10, 15, 14, 10, 0, -13, -28, -38, -42, -40, + -26, -4, 17, 40, 58, 66, 62, 51, 35, 17, 3, -8, -16, -18, -18, -15, + -13, -15, -17, -17, -15, -13, -11, -12, -3, -2, 1, -3, -15, -28, -36, -42, + -40, -28, -11, 14, 45, 63, 70, 69, 56, 44, 36, 21, 3, -12, -18, -26, + -37, -47, -58, -55, -41, -20, 4, 22, 34, 43, 37, 22, -7, -43, -71, -88, + -86, -64, -31, 7, 56, 99, 115, 106, 85, 48, 17, 1, -14, -28, -33, -20, + -11, -12, -18, -37, -44, -41, -29, -23, -7, 15, 31, 40, 33, 8, -27, -56, + -73, -74, -63, -33, 4, 50, 93, 101, 91, 79, 56, 43, 24, 5, -17, -32, + -31, -43, -56, -63, -72, -57, -32, 3, 26, 46, 62, 63, 45, 9, -39, -85, + -112, -106, -84, -49, 6, 60, 104, 127, 115, 83, 46, 16, -1, -16, -21, -26, + -16, -2, -8, -25, -47, -67, -62, -49, -26, 2, 34, 60, 74, 65, 33, -21, + -71, -98, -92, -77, -36, 21, 69, 106, 112, 88, 58, 29, 9, -8, -18, -24, + -17, -4, -10, -26, -47, -67, -62, -49, -26, 2, 34, 60, 74, 65, 33, 17, + 16, -38, 9, 40, -58, 27, 43, -80, 52, -2, -54, 64, -27, -17, 32, 4, + -49, 53, -22, -47, 90, -73, 17, 42, -45, 8, 23, -41, -1, 58, -74, 40, + 25, -66, 56, -19, -45, 58, -9, -39, 45, 3, -48, 55, -41, -27, 78, -66, + 13, 40, -38, 0, 29, -51, 12, 57, -79, 38, 31, -64, 40, -4, -47, 63, + -16, -40, 55, -16, -32, 45, -31, -29, 76, -64, 0, 58, -49, 4, 31, -52, + 31, 5, -35, 45, -21, 4, -5, 3, -17, -7, 55, -72, 43, 35, -88, 80, + -57, 3, 45, -62, 53, -14, -2, -17, 46, -77, 42, 23, -61, 75, -54, 39, + -40, 31, -42, 25, 11, -48, 93, -97, 62, -27, -13, 7, 0, 30, -59, 82, + -74, 28, 10, -53, 65, -47, 46, -41, 40, -48, 7, 45, -95, 127, -99, 43, + -9, -25, 40, -58, 84, -84, 78, -66, 11, 50, -96, 111, -85, 51, -26, -14, + 36, -60, 91, -84, 58, -26, -22, 56, -87, 98, -71, 47, -25, -11, 44, -84, + 103, -92, 69, -32, -3, 25, -59, 87, -90, 70, -45, 17, 16, -57, 81, -73, + 50, -33, 14, 0, -35, 75, -84, 69, -42, 8, 11, -46, 74, -69, 57, -47, + 36, -26, -20, 69, -89, 83, -58, 37, -24, -7, 41, -58, 54, -53, 53, -42, + 14, 28, -54, 52, -55, 46, -41, 22, 30, -57, 58, -64, 56, -54, 26, 31, + -55, 63, -73, 66, -68, 49, -3, -38, 61, -71, 75, -87, 69, -15, -27, 37, + -55, 74, -84, 73, -34, -5, 26, -59, 74, -85, 84, -33, -12, 30, -57, 65, + -85, 86, -40, 9, 15, -50, 69, -94, 93, -53, 15, 11, -38, 58, -86, 96, + -64, 11, 21, -30, 17, -3, -3, 0, 0, -3, -4, -4, -3, -4, -4, -5, + -6, -6, -8, -5, -6, -3, 0, 2, 4, 7, 8, 12, 12, 14, 13, 13, + 12, 8, 7, 2, 2, -4, -6, -10, -11, -12, -12, -14, -10, -9, -3, -3, + 2, 3, 3, 2, 1, 1, -3, -3, -4, -3, -3, -3, -4, 0, -3, -3, + -3, 0, -3, 0, -3, 0, 1, 0, 0, 0, 0, 0, -3, 1, -3, 1, + -3, 2, 1, 0, 0, -3, -4, -5, -9, -10, -15, -16, -17, -17, -14, -10, + -3, 4, 9, 14, 19, 24, 25, 26, 28, 30, 34, 42, 31, 9, -31, -39, + -23, -15, -17, -23, -30, -23, -12, -10, 4, 9, 19, 13, 14, 6, 0, -9, + -11, -12, -9, -8, 0, 0, 2, 1, 1, -3, -3, -5, -3, -5, -3, -4, + 0, -3, -4, -4, -3, -5, -3, -5, -3, 0, 3, 2, 7, 7, 7, 3, + 0, -14, -17, -26, -26, -28, -21, -17, -11, -10, 2, 6, 19, 18, 32, 32, + 60, 69, 98, 60, 7, -58, -8, -8, -14, -39, -30, -14, -47, -21, -45, -3, + 7, 20, 14, 31, 12, 10, -15, -5, -23, -14, -15, -4, -8, 2, 1, 7, + -3, 2, -8, -4, -6, -6, -3, 0, -6, -6, -8, -10, -11, -12, -9, -9, + -4, -3, 0, 8, 10, 12, 15, 13, 4, -10, -15, -30, -32, -30, -23, -22, + -19, -14, -4, 3, 10, 14, 26, 40, 70, 102, 127, 62, -17, -39, 9, -25, + -9, -87, -12, -16, 0, -30, -27, -19, -9, 6, 18, 21, 19, 6, 0, -9, + -17, -14, -16, -8, -6, 0, 4, 4, -5, -4, -11, -3, -6, 2, 2, 0, + -6, 0, -2, -4, -8, -14, -21, -25, -28, -32, -36, -40, -44, -48, -51, -55, + -59, -63, -67, -71, -74, -78, -82, -86, -90, -94, -98, -101, -84, -60, -38, -15, + 8, 28, 27, 23, 19, 16, 11, 21, 46, 68, 93, 109, 106, 102, 98, 95, + 91, 87, 83, 79, 75, 71, 67, 64, 60, 56, 52, 49, 45, 41, 37, 33, + 30, 26, 22, 18, 15, 11, 7, 3, -1, -5, -9, -13, -17, -20, -24, -28, + -32, -35, -39, -43, -47, -51, -54, -58, -62, -66, -69, -73, -77, -81, -85, -89, + -93, -97, -100, -105, -95, -70, -48, -23, -7, -10, -14, -17, -22, -18, 4, 26, + 50, 72, 96, 107, 103, 100, 96, 92, 88, 84, 80, 76, 72, 68, 64, 61, + 57, 53, 49, 46, 42, 38, 34, 30, 26, 23, 19, 15, 11, 8, 4, 0, + -4, -8, -11, -15, -19, -23, -27, -30, -35, -38, -43, -46, -51, -54, -58, -61, + -66, -56, -31, -9, 16, 33, 30, 26, 22, 18, 15, 11, 7, 3, -1, -5, + -9, -13, -16, -20, -24, -28, -32, -36, -40, -43, -48, -51, -55, -59, -63, -50, + -26, -4, 20, 42, 64, 67, 62, 59, 55, 51, 47, 43, 39, 35, 31, 27, + 23, 20, 16, 12, 8, 4, 0, -4, -7, -11, -15, -19, -22, -27, -17, 8, + 30, 55, 72, 69, 65, 61, 57, 54, 50, 46, 42, 38, 34, 30, 26, 22, + 18, 15, 11, 7, 3, 0, -4, -8, -12, -15, -19, -23, -27, -31, -35, -38, + -42, -46, -50, -54, -57, -61, -65, -69, -73, -77, -81, -85, -89, -92, -96, -100, + -100, -79, -64, -47, -31, -15, 0, 0, -4, -3, -6, -8, 6, 10, -8, -13, + 22, 55, 15, -58, -102, -88, -25, 51, 77, 79, 82, 19, -45, -107, -128, -88, + 19, 81, 86, 71, 35, -16, -50, -73, -55, -27, -14, 7, 77, 89, 31, -22, + -27, -61, -86, -34, 40, 55, 67, 80, 57, -1, -48, -60, -41, -46, -31, 28, + 62, 47, 43, 33, -5, -34, -45, -52, -33, 26, 66, 70, 41, 17, -34, -79, + -93, -41, -6, 22, 53, 93, 62, 17, -20, -66, -118, -88, -4, 45, 60, 69, + 67, 2, -72, -109, -95, -78, -7, 67, 101, 78, 69, 19, -56, -110, -89, -64, + -19, 45, 100, 86, 36, -11, -65, -107, -108, -41, 24, 69, 93, 111, 56, -15, + -70, -81, -88, -38, 30, 88, 90, 83, 43, -24, -81, -82, -57, -24, 38, 100, + 115, 70, 26, -25, -75, -108, -66, -20, 29, 71, 105, 67, 7, -46, -67, -83, + -60, 0, 58, 82, 81, 57, -9, -72, -99, -78, -60, -8, 54, 95, 69, 44, + 0, -51, -92, -69, -26, 18, 53, 81, 63, 6, -44, -74, -88, -79, -19, 40, + 75, 75, 72, 18, -42, -80, -74, -69, -25, 32, 76, 66, 39, 5, -41, -82, + -76, -34, 3, 42, 79, 88, 38, -12, -49, -74, -92, -48, 8, 51, 70, 83, + 50, -7, -58, -68, -65, -43, 13, 70, 82, 62, 34, -17, -72, -94, -65, -28, + 17, 69, 101, 71, 25, -21, -60, -88, -66, -13, 37, 62, 82, 68, 11, -47, + -73, -79, -66, -15, 49, 82, 76, 57, 11, -51, -88, -78, -48, -9, 49, 0, + 0, 0, 0, 0, 0, -3, -5, -5, -7, -6, -2, 5, 16, 24, 21, 17, + 12, 3, -10, -31, -44, -47, -42, -28, -2, 26, 29, 36, 35, 1, -26, -39, + -52, -53, -38, -10, -32, -41, -7, 2, 22, 65, 89, 74, 15, -16, -24, 12, + 62, 39, 6, -12, -3, 47, 48, 21, 109, 127, 119, 53, -9, 19, 9, -50, + -55, -43, -71, -46, -5, -2, -20, -12, -9, 12, -27, -66, -50, -8, -19, -58, + -22, -8, -19, -34, -42, 10, 32, -4, 4, 46, 96, 34, -51, -10, -8, -93, + -70, -58, -46, -16, -32, -30, 6, 7, -41, -29, 3, 25, 73, 67, 45, 37, + 30, 83, 0, -31, -4, -50, -28, -41, -75, -110, -53, -13, -3, 22, 14, 14, + 13, 7, 9, 38, 47, 39, 17, -8, 90, 75, -5, -29, -46, -54, -102, -66, + -35, -27, -29, -21, 32, 5, 1, 1, -2, 16, 16, 19, 30, 50, 89, 41, + 6, 40, -10, -15, -41, -46, -43, -77, -100, -100, -48, -37, -26, -4, -9, 0, + 13, 36, 70, 75, 59, 34, 12, -13, -27, 37, 71, 48, 53, 37, 7, 8, + 34, 48, 40, 31, 25, 2, -20, -15, -5, 12, -11, -49, -20, 15, -13, -42, + -29, 16, -6, -58, -28, 17, 12, -20, -11, 16, -3, -37, -14, 3, -32, -10, + 40, 54, 53, 27, -3, -5, -34, -47, -49, -90, -68, -36, -32, -31, -16, 26, + 3, 0, -2, -2, 15, 16, 19, 30, 51, 88, 40, 6, 39, -10, 3, -2, + 11, -7, 23, 19, 74, 39, 32, -13, -21, -7, -39, -44, -128, -58, -21, 52, + -86, -74, -94, 75, 61, 72, -38, 13, 59, 116, 71, -9, -33, -12, 68, -2, + -35, -128, -42, -43, 39, -78, -57, -81, 56, 59, 63, -13, 7, 69, 98, 87, + -13, -9, -24, 70, -11, -23, -128, -42, -48, 28, -68, -61, -69, 34, 64, 46, + 8, -5, 79, 82, 100, -17, 5, -29, 69, -13, -21, -122, -49, -43, 11, -55, + -72, -54, 13, 73, 30, 23, -16, 87, 72, 107, -17, 10, -26, 64, -6, -26, + -109, -61, -31, -6, -40, -86, -41, -4, 80, 17, 31, -22, 88, 70, 106, -10, + 6, -16, 53, 7, -37, -93, -76, -17, -21, -28, -99, -33, -15, 83, 12, 31, + -21, 83, 76, 98, 2, -4, -1, 41, 24, -49, -77, -89, -6, -31, -20, -106, + -32, -19, 79, 14, 23, -15, 71, 87, 87, 17, -16, 13, 30, 39, -57, -67, + -97, -1, -34, -19, -106, -38, -16, 69, 23, 11, -5, 56, 100, 75, 32, -28, + 25, 22, 50, -59, -62, -98, -2, -30, -24, -100, -52, -9, 55, 36, -4, 5, + 41, 112, 67, 43, -34, 30, 21, 55, -53, -65, -93, -11, -18, -34, -88, -69, + 0, 41, 48, -17, 12, 29, 118, 65, 49, -34, 28, 27, 53, -42, -72, -83, + -23, -6, -44, -77, -85, 5, -69, 1, -12, -29, -28, -13, 1, 9, -4, -27, + -18, -5, 11, 65, 87, 54, 59, 66, 30, 12, 8, -6, -7, 4, -7, -39, + -59, -63, -48, -23, -13, -6, 22, 61, 68, 15, -59, -87, -41, 3, 5, -10, + -17, -17, -20, -23, -20, -28, -17, -3, -10, -29, 23, 11, 25, 52, 56, 62, + 80, 54, 22, -15, -31, -38, -5, 11, -9, -7, -36, -44, -6, 52, 127, 26, + -68, -125, -105, 22, 15, -27, -27, 13, 25, 69, 28, -42, -77, -57, -70, 15, + 44, 14, 26, 57, 69, 43, 33, 41, 33, 32, 25, -50, -98, -100, -38, 24, + 7, -35, -38, -2, 76, 64, 15, -79, -93, -50, -12, 27, 45, 32, -4, 23, + 6, -36, -47, -33, -52, -15, 37, 78, 49, 40, 17, 14, 14, 70, 81, 60, + -3, -4, -12, -42, -50, -28, -20, 5, 9, 27, 46, -13, -69, -99, -88, -47, + 5, -4, -10, 17, 39, -12, -8, -21, -16, 22, 9, -9, 1, 15, 15, 33, + 29, 17, 11, 38, 72, 29, -8, -36, -27, -42, 17, -40, 25, 25, 8, -3, + 14, 15, 2, 43, 33, -2, -19, -24, -8, 2, -69, -114, -94, -77, -87, 22, + 27, 19, 24, 57, 121, 94, 40, -27, -29, 4, 28, -12, 5, -21, -28, -18, + 0, -9, 1, 36, 22, 7, 6, 12, 7, 8, 55, 6, -2, -7, -13, -12, + -12, -8, -5, -5, -1, -4, -4, -3, -1, 5, 11, 15, 18, 16, 11, 5, + -5, -12, -16, -17, -14, -10, -7, -3, -2, -3, -3, -5, -3, 2, 9, 18, + 22, 23, 18, 11, -2, -14, -20, -22, -18, -12, -8, -5, -3, -5, -6, -6, + -5, 1, 11, 22, 30, 31, 24, 15, -1, -12, -20, -23, -19, -13, -8, -3, + -3, -2, -6, -8, -9, -5, 6, 21, 32, 35, 29, 19, 1, -15, -27, -29, + -25, -15, -9, -4, -1, -2, -7, -14, -15, -10, 4, 24, 42, 48, 43, 26, + 4, -20, -36, -38, -30, -17, -7, -3, 0, -1, -4, -16, -24, -19, -3, 26, + 49, 61, 60, 40, 9, -23, -45, -52, -39, -22, -5, -2, 1, 3, -2, -18, + -32, -30, -10, 22, 55, 77, 78, 52, 15, -22, -51, -66, -52, -29, -5, 0, + 2, 9, 6, -15, -37, -42, -22, 10, 55, 89, 99, 71, 22, -20, -58, -79, + -68, -35, -8, 6, 1, 12, 13, -9, -37, -50, -35, 0, 46, 93, 116, 90, + 33, -15, -60, -89, -84, -44, -9, 10, 3, 13, 19, -3, -35, -53, -43, -12, + 34, 91, 127, 109, 46, -9, -57, -95, -96, -57, -13, 11, 7, 10, 25, 2, + -2, -35, 0, 2, 7, 12, -7, -79, -68, 2, -6, -5, 19, 40, 33, 55, + 56, 17, 32, 32, 2, -20, 5, 51, 27, -21, -13, -11, -17, -20, -6, -63, + -125, -116, -86, -59, -34, 11, 23, 20, 39, 66, 50, 47, 54, 46, 11, -4, + 44, 67, 30, 11, 16, 6, -2, 7, -4, -77, -114, -107, -70, -50, -20, 29, + 26, 12, 48, 69, 44, 47, 49, 28, -8, 9, 53, 49, 15, 9, 8, -3, + -11, 7, -33, -107, -123, -101, -62, -49, -5, 25, 6, 13, 55, 49, 32, 40, + 39, 7, -17, 18, 49, 32, 7, 8, 1, -12, -3, 7, -62, -113, -109, -74, + -50, -31, 23, 32, 13, 40, 69, 48, 46, 54, 42, 2, 1, 42, 52, 25, + 10, 11, 0, -11, 10, -10, -90, -115, -101, -64, -52, -15, 29, 16, 10, 51, + 59, 41, 46, 49, 25, -9, 15, 48, 42, 15, 10, 7, -9, -7, 16, -43, + -107, -113, -89, -60, -47, 4, 27, 4, 19, 58, 47, 38, 46, 43, 6, -9, + 28, 47, 29, 10, 11, 2, -14, 5, 5, -73, -111, -106, -73, -56, -29, 24, + 22, 6, 40, 61, 43, 43, 52, 37, -3, 6, 41, 47, 23, 12, 11, 0, + -14, 1, 3, 5, 5, 6, 8, 6, 4, 0, -4, -5, -6, -9, -9, -11, + -11, -12, -13, -13, -13, -12, -11, -9, -5, -2, -1, 1, 4, 6, 9, 11, + 12, 12, 11, 8, 5, 2, -2, -2, -2, -2, 0, -1, -1, -2, -5, -5, + -5, -1, 4, 10, 17, 20, 22, 19, 15, 7, -1, -9, -15, -19, -21, -21, + -18, -16, -13, -11, -12, -15, -19, -23, -24, -20, -13, -3, 9, 20, 34, 44, + 50, 46, 35, 21, 7, -4, -14, -20, -19, -13, -8, 2, 0, -5, -15, -28, + -32, -29, -14, 0, 11, 27, 42, 58, 59, 45, 22, 4, -15, -26, -37, -43, + -42, -37, -17, 1, 18, 23, 8, -5, -29, -47, -47, -43, -25, -5, 20, 52, + 80, 92, 76, 43, 9, -20, -35, -38, -46, -41, -29, -12, 19, 35, 22, 4, + -34, -53, -58, -40, -26, -16, 14, 47, 88, 108, 90, 50, 16, -9, -36, -51, + -64, -64, -52, -33, -1, 32, 40, 24, 3, -29, -62, -58, -65, -52, -18, 23, + 68, 114, 127, 95, 41, 1, -36, -54, -56, -68, -55, -35, -17, 19, 42, 29, + 13, -16, -46, -60, -54, -56, -47, -11, 29, 72, 116, 127, 94, 41, -3, 0, + 16, 39, 54, 46, 18, 7, -15, -36, -9, -6, -16, -5, -15, -30, -23, -35, + -20, 22, 3, -19, -20, -13, -9, 19, 23, 10, 12, 35, 66, 54, 4, -43, + -58, -15, -10, 16, 55, 18, -39, -38, -30, 2, 9, 27, 51, -32, -60, -72, + -4, 32, 71, 19, -8, 56, -2, -42, 10, 21, -6, 31, -9, -70, 8, -6, + -19, -93, -20, -5, -31, 10, 5, 56, 24, -45, 11, 66, 48, 61, 89, 49, + -57, -6, -20, -69, -104, -83, -50, 32, 10, -16, -87, -78, 30, 127, 63, -17, + -91, -2, -12, 45, 83, 30, 56, 54, 42, 7, 79, -26, -52, -64, -97, 12, + -3, -107, -99, -39, 34, 86, 19, -25, 25, 90, -8, -38, 65, 36, 10, 30, + 36, 19, -6, 38, -47, -101, -52, -45, 30, -9, -106, 18, -10, -37, 16, 100, + -94, -111, -25, -35, -12, -8, -9, 51, 24, -5, -70, -52, -52, -19, -11, 48, + 93, 61, 17, 113, 125, 73, -16, -30, -57, -78, -116, -55, -38, -10, -5, -4, + 38, 31, -3, -46, -46, -50, -20, -10, 52, 84, 48, 14, 115, 119, 64, -16, + -1, 4, 0, -9, -11, -1, 6, 2, -2, 4, -6, -10, -2, 11, 14, 3, + -10, -15, -1, 17, 4, 6, 4, -12, -18, 6, 10, 4, 6, -8, -36, 2, + 3, 3, 5, 15, -20, -17, 9, 8, 11, 17, -8, -26, 18, 2, 5, 5, + 13, -24, -8, -2, 2, 5, 7, -21, -18, 13, 5, -5, 17, 7, -14, -13, + -12, 0, 14, 3, -12, -26, 13, 3, 10, 18, 12, -15, -14, -1, 3, 19, + 0, -10, -29, 11, 4, 17, 15, 12, -24, -20, 6, 9, 22, -3, -13, -15, + 9, 1, 7, 6, 18, -19, -26, -18, 2, 22, 0, -25, -20, 15, 8, -4, + 8, 31, -12, -20, -15, 9, 33, 9, -29, -2, 27, 7, -11, 8, 20, -20, + -41, -10, 15, 35, 15, -21, 11, 49, 6, -6, 4, 3, -48, -76, -35, 14, + 37, 22, -24, 29, 68, 20, 3, 7, -5, -68, -90, -59, 19, 36, 28, -13, + 59, 93, 30, 2, 18, -25, -88, -105, -81, 13, 26, 30, -4, 88, 109, 33, + 0, 22, -30, -88, -112, -76, 17, 31, 18, 5, 94, 114, 30, -4, 0, 4, + -30, -1, 0, -2, -2, -2, -1, 4, 11, 18, 30, 7, -64, -60, -30, -7, + 0, 2, 22, 67, 117, 23, -128, -74, -30, -5, -2, 1, 19, 62, 116, 38, + -123, -82, -31, -8, -1, -1, 16, 57, 114, 52, -117, -88, -33, -10, -2, -3, + 14, 52, 112, 64, -108, -96, -35, -13, -2, -4, 12, 49, 108, 77, -99, -102, + -37, -15, -2, -5, 10, 43, 104, 86, -87, -109, -40, -18, -2, -6, 8, 40, + 100, 95, -73, -115, -42, -21, -2, -8, 7, 35, 95, 102, -59, -120, -45, -24, + -2, -8, 5, 32, 90, 109, -44, -124, -49, -26, -3, -9, 3, 28, 85, 114, + -29, -126, -53, -28, -4, -9, 2, 25, 81, 116, -13, -127, -58, -29, -6, -9, + 0, 22, 75, 119, 3, -126, -63, -31, -7, -9, -2, 19, 70, 120, 18, -124, + -69, -32, -9, -9, -3, 16, 65, 119, 34, -63, -107, -58, -23, -11, -7, 7, + 46, 107, 89, -52, -109, -62, -25, -12, -8, 5, 42, 104, 97, -41, -87, -70, + -36, -18, -11, 0, 30, 85, 100, -2, -87, -5, 11, -23, -10, -3, -20, -3, + -17, -24, -33, -26, -1, -13, -12, -6, -9, 6, 25, 19, -7, -1, 22, -6, + -20, 13, 6, -12, 26, 48, 0, -7, 34, 23, 4, 32, 23, -41, -11, 49, + -3, -30, 35, 45, -14, -2, 62, 18, -44, -2, 26, -4, -28, -6, 16, 2, + -9, -9, 2, 18, 24, 9, -25, -57, -36, 30, 38, -21, -63, -37, 9, 37, + 40, 0, -56, -56, 3, 39, 20, -23, -52, -58, -46, 8, 67, 56, -18, -61, + -18, 36, 70, 95, 73, -35, -128, -127, -73, -17, 32, 48, 29, 28, 60, 106, + 113, 91, 36, -26, -67, -90, -91, -71, -44, -25, -13, 9, 36, 51, 69, 70, + 32, -40, -92, -99, -70, -25, 12, 29, 21, 3, -9, 10, 21, 12, -11, -22, + -27, -44, -23, 10, 30, 25, 24, 39, 18, 3, 8, 19, -1, -19, -8, 6, + 5, 13, 50, 43, 37, 36, 40, 37, 4, 12, -10, -33, -31, -25, -1, 1, + 7, 14, 10, -4, -11, -10, -6, -19, -42, -28, -54, -51, -18, -5, 3, 2, + -10, -10, 10, 28, 27, 16, 5, -5, -24, -26, -7, -14, -25, -16, 53, 33, + -49, -30, 53, 50, -24, -34, 40, 82, -118, -23, 120, -56, -70, -72, 106, -10, + -48, 3, 87, 28, -126, -16, 81, 4, -84, -51, 38, 62, -32, 36, 84, -12, + -41, 72, -42, -60, -64, 4, 77, -24, -79, -9, 122, 6, -94, 52, 43, 35, + 13, -62, -7, -89, 24, -30, 16, 29, 56, -59, 83, 42, 31, 36, -76, -2, + -128, -2, 45, 27, -104, -31, 66, 21, 19, 36, 121, 11, -76, -26, -93, 34, + 24, -34, -65, -53, 53, 17, 73, 46, 75, -9, -64, -21, -103, 41, 51, -41, + -83, -43, 108, 6, -11, 28, 127, 2, -84, -38, -72, 39, 17, -23, -15, -67, + 37, 6, 29, 64, 79, 17, -39, -39, -120, 55, 23, -17, -62, -51, 81, 23, + 20, 24, 99, -38, -99, 4, 17, -66, -41, -33, 63, 62, 16, 53, 91, 56, + -65, -36, -99, -38, 14, -47, -29, -38, 35, 83, 9, 48, 83, 62, -45, -31, + -103, -49, 14, 2, 6, -33, 33, -4, -1, 34, -93, 60, -49, 68, -21, 41, + -38, -38, 27, -87, 127, -34, 38, -3, -34, -2, -85, 79, -24, 4, 75, -23, + 11, -70, 1, -6, -6, 63, -48, 76, -71, 2, -7, -15, 46, -32, 48, -25, + -5, 10, -31, 18, -23, 5, 6, 17, 11, 3, 24, -46, -21, -1, -5, 31, + 1, 36, -23, -11, -4, -29, 14, -5, 29, 9, -2, -2, -20, -2, -15, 13, + 7, 4, 15, -11, 4, -13, -1, 1, -13, 15, -6, 9, 9, -2, -4, -11, + -2, -11, 7, 12, 9, 5, -6, -6, -16, -2, 3, 6, 13, 1, 7, -14, + -3, -11, -1, 8, 0, 18, -3, -3, -6, -13, 0, 4, 2, 9, 2, 2, + -6, -4, -1, -8, 2, 4, 2, 7, -4, 2, 1, -7, -3, -2, 0, 2, + 8, -2, 2, -1, -7, -3, -1, 3, 4, 3, 3, -3, -4, -4, 0, 2, + 1, 5, -1, -2, 1, -4, -1, 1, 0, 2, -5, -8, -3, -3, -9, -2, + -2, 5, 10, 16, 11, 5, -3, -5, -1, -4, -6, -7, -15, -18, -27, -31, + -21, -11, 22, 56, 90, 66, -17, -25, -25, 0, -12, -15, -25, -32, -39, -37, + -26, 6, 33, 65, 69, 44, -1, -13, -12, 1, 0, -9, -14, -22, -40, -44, + -42, -23, 8, 39, 60, 84, 57, -16, -25, -19, 2, -8, -11, -18, -32, -51, + -45, -32, -6, 28, 54, 85, 96, -5, -29, -23, -7, -10, -17, -16, -28, -53, + -44, -40, -7, 22, 52, 82, 112, 17, -37, -25, -20, -11, -18, -10, -23, -33, + -51, -40, -23, 10, 45, 65, 96, 64, -21, -35, -34, -19, -20, -13, -5, -14, + -35, -41, -39, -17, 9, 45, 58, 82, 98, -2, -57, -47, -23, -12, -11, -2, + -18, -28, -39, -36, -24, -1, 26, 57, 84, 121, 23, -65, -50, -40, -12, -11, + -4, -14, -20, -34, -32, -27, -5, 19, 56, 80, 127, 15, -66, -50, -2, -5, + -5, 2, 10, 8, -7, -16, -9, 6, 17, 8, -19, -20, 14, 38, 34, 20, + -5, 1, 50, 37, -50, -54, -66, -32, 32, -3, -13, -18, -17, 46, 89, -17, + -62, 45, 127, 57, -57, -67, -109, -11, 88, -31, -90, -88, -27, 63, 97, -27, + -105, -44, 65, 110, 60, -12, -30, -27, 17, 49, -2, -39, -6, 30, -16, -36, + -43, 32, 67, -54, -58, -38, -21, 47, 95, 76, -33, -78, -62, 10, 107, 24, + -106, -107, 12, 52, 27, 78, 8, -75, 25, 6, -26, 59, 32, -17, -7, -19, + 11, 32, -51, -52, 41, -9, -13, 94, 2, -65, 5, -46, -86, 34, 62, 85, + 29, -93, -89, -29, 44, 35, -31, -33, -19, 56, 127, 7, -9, -62, -52, 23, + 46, 44, -56, -16, -55, -46, 22, 83, -13, -42, -7, 13, 81, 49, 3, -9, + -30, -47, -30, 3, 23, 6, -7, -20, -44, 10, 96, -13, 0, 16, 31, 47, + 61, 75, 87, 98, 107, 115, 121, 125, 127, 127, 125, 121, 116, 108, 99, 88, + 75, 62, 47, 32, 16, 0, -16, -31, -47, -61, -75, -87, -98, -108, -116, -122, + -126, -128, -128, -126, -123, -117, -109, -100, -89, -77, -64, -49, -34, -18, -2, 14, + 29, 45, 59, 73, 86, 97, 106, 114, 121, 125, 127, 127, 126, 122, 116, 109, + 100, 89, 77, 63, 49, 34, 18, 2, -14, -30, -45, -60, -73, -86, -97, -107, + -115, -121, -126, -128, -128, -127, -123, -118, -110, -101, -91, -79, -65, -51, -36, -20, + -4, 12, 28, 43, 58, 72, 84, 96, 106, 114, 120, 124, 127, 127, 126, 122, + 117, 109, 100, 90, 78, 64, 50, 35, 19, 3, -13, -29, -44, -59, -73, -85, + -97, -107, -115, -121, -125, -128, -128, -127, -123, -118, -110, -101, -91, -79, -65, -51, + -36, -20, -4, 12, 2, 5, 5, 0, -16, -9, -2, -19, 4, 18, 6, 10, + -16, -21, 22, -2, 3, -7, 21, 43, -57, -37, 46, -39, -31, 78, 23, -23, + -10, -10, -7, -52, 44, 50, -44, 9, -9, -46, 47, 12, -75, 40, 45, 32, + -10, -25, -15, -45, 24, 44, -40, -10, 18, -48, -29, 63, 44, -30, -1, 83, + -45, -94, 96, 0, -103, 21, 29, -42, 21, 80, -25, -15, 26, 39, -79, -18, + 73, -111, -45, 61, 29, 55, -22, -77, 40, 9, -72, 78, 35, -1, -1, -69, + 12, -50, -42, 123, 45, -7, -39, -86, 3, 51, 30, 28, -4, -33, -41, -66, + 54, -8, -30, 127, -7, -30, -32, -39, 48, -65, 20, 121, -33, -14, -53, -32, + 46, -24, 36, 98, -49, -39, -61, 1, 49, -54, 65, 59, -83, -11, -49, 32, + 39, -72, 113, 59, -83, -11, -49, 32, 39, -72, 113, 59, -2, -4, -4, -7, + -8, -8, -7, -4, -3, -2, 1, 4, 6, 6, 6, 4, 2, 0, -2, -3, + -4, -7, -7, -5, -3, 0, 4, 9, 11, 11, 9, 7, 4, 1, -3, -7, + -9, -12, -13, -16, -19, -19, -13, -2, 9, 17, 19, 20, 18, 13, 8, 3, + 0, -2, -3, -8, -14, -21, -25, -21, -9, 4, 15, 23, 28, 25, 20, 9, + -7, -21, -14, 3, 3, -18, -38, -49, -32, -7, 8, 14, 26, 37, 42, 37, + 26, 7, -18, -27, -5, 8, -7, -24, -34, -40, -32, -19, 1, 17, 42, 56, + 58, 40, -19, -81, 1, 67, 0, -60, -49, -27, -24, 0, -18, -24, -8, 37, + 67, 70, 59, 34, -42, -81, 7, 51, -12, -54, -37, -14, -25, -14, -16, -24, + 4, 55, 75, 102, 52, -102, -104, 90, 30, -48, -76, 1, -14, 0, -2, -2, + -3, -5, -7, -8, -8, -7, -6, -4, -2, 0, 1, 3, 4, 6, 6, 6, + 6, 5, 4, 3, 1, 0, 0, -3, -4, -7, -10, -11, -11, -8, -6, 1, + 5, 6, 8, 11, 11, 8, 5, 5, 2, 1, 0, 0, -2, 1, -4, -16, + -36, -27, -5, 6, -3, -6, 0, -6, 2, 27, 24, 19, 16, 9, 3, 0, + -4, 2, 1, 9, 19, -14, -79, -32, 22, -4, -22, -14, 25, 8, -11, 13, + 28, 16, 19, 16, 1, -2, -4, -3, -6, 28, 38, -59, -111, 25, 16, -16, + -40, 16, 24, -20, 4, 24, 29, 17, 27, 13, 1, -10, -6, -10, -8, 43, + 61, -68, -128, 28, 12, -15, -39, 12, 21, -28, 12, 37, 25, 12, 27, 11, + 0, -16, -2, -12, -11, 52, 67, -68, 35, 54, 47, 4, -60, -92, -68, -27, + 0, -2, -18, -20, -6, 2, -8, -15, -11, -3, 3, -7, -11, -6, -2, 7, + 15, 18, 19, 22, 27, 40, 40, 29, 20, 24, 28, 34, 30, 25, 32, 20, + 14, 9, 16, 19, 17, 6, -1, 3, -6, -14, -23, -18, -7, 1, -18, -18, + -24, -25, -24, -35, -35, -35, -21, -12, -14, -21, -17, -29, -24, -31, -34, -9, + -11, -9, -3, -7, -7, 6, -17, -22, 7, 16, 14, -4, -11, 10, 33, 24, + 21, 27, 3, -19, -25, -18, 17, 50, 48, 49, 61, 31, -48, -103, -73, 9, + 56, 70, 82, 109, 127, 71, -46, -127, -96, -30, -4, 9, 47, 103, 117, 60, + -39, -110, -119, -94, -64, -40, -4, 35, -8, -14, -9, -5, -4, -3, 6, 18, + 19, 6, -14, -20, -12, -3, -3, -6, 2, 21, 28, 13, -16, -26, -14, -6, + -6, -7, 1, 27, 36, 18, -15, -27, -15, -3, -2, -10, -6, 25, 41, 22, + -17, -34, -18, -4, -3, -16, -12, 29, 56, 31, -24, -44, -20, -4, -1, -19, + -22, 31, 73, 47, -27, -62, -25, -2, 4, -21, -36, 26, 91, 61, -27, -79, + -33, 0, 10, -18, -49, 14, 106, 82, -24, -94, -40, 8, 14, -12, -59, 1, + 112, 105, -19, -106, -51, 12, 16, -4, -63, -13, 110, 127, -12, -114, -51, 0, + -1, -4, -8, -11, -8, -2, 0, 7, 14, 21, 46, 92, 120, 76, -36, -121, + -119, -73, -31, -7, 3, 2, -4, -6, 2, 22, 60, 106, 116, 43, -72, -128, + -105, -57, -21, -3, 3, -1, -6, -5, 7, 33, 76, 117, 102, 5, -100, -127, + -89, -43, -13, 0, 2, -3, -7, -2, 14, 46, 92, 122, 79, -34, -118, -118, + -72, -31, -8, 1, 0, -5, -7, 2, 23, 61, 107, 118, 46, -69, -126, -104, + -56, -21, -4, 1, 0, -4, -5, 0, 16, 48, 87, 103, 60, -25, -87, -94, + -58, -20, -4, -11, 12, 24, 31, -36, 29, -9, 2, -38, -5, -5, -10, -33, + -10, -24, -20, -39, -36, -18, -38, -58, -5, -22, -15, -15, 90, -42, -3, -8, + 25, 6, 28, 25, 17, 25, -16, 28, 80, 22, 12, -6, 35, 22, 8, -7, + 28, 29, -19, 7, 8, -1, -29, -23, 10, -23, -13, -26, -17, -20, -33, -41, + -19, -28, -64, -13, -21, -13, -29, 54, 25, -20, -36, 42, -4, 13, 52, -8, + 47, -14, 9, 42, 88, -12, 20, -5, 43, 22, -11, 127, 127, -128, -128, -128, + -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, + -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, + -128, -128, -128, -128, -128, -128, -128, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, -128, 1, 4, 7, 10, 12, 16, 19, 22, 25, 28, 31, 35, 38, 42, + 45, 49, 51, 56, 58, 63, 65, 70, 73, 78, 80, 85, 87, 93, 95, 100, + 102, 108, 109, 117, 114, 127, 85, -63, -60, -64, -60, -62, -59, -61, -59, -61, + -58, -60, -58, -59, -58, -58, -57, -57, -55, -55, -54, -54, -52, -51, -50, -49, + -47, -46, -44, -43, -41, -40, -37, -36, -34, -32, -30, -28, -25, -24, -21, -19, + -16, -14, -11, -9, -6, 1, 1, 4, 7, 10, 12, 16, 19, 22, 25, 28, + 31, 35, 38, 42, 45, 49, 51, 56, 58, 63, 65, 70, 73, 78, 80, 85, + 87, 93, 95, 100, 102, 108, 109, 117, 114, 127, 85, -63, -60, -64, -60, -62, + -59, -61, -59, -61, -58, -60, -58, -59, -58, -58, -57, -57, -55, -55, -54, -54, + -52, -51, -50, -49, -47, -46, -44, -43, -41, -40, -37, -36, -34, -32, -30, -28, + -25, -24, -21, -19, -16, -14, -11, -9, -6, 1, -3, -19, -24, -14, -8, -19, + -12, -10, -5, -12, -50, -19, 23, 35, 4, -20, -7, -26, 9, 40, 69, 16, + -88, -69, -38, -32, -27, 41, 65, 55, 18, -40, -38, -20, 66, 127, 121, 57, + -23, -55, -48, 13, 53, 31, -20, -38, -13, 10, 8, 0, 12, 17, 13, 2, + -1, -3, -3, 6, 13, 7, -17, -24, -12, 4, 3, -10, -20, -32, -22, -18, + -12, -3, 6, 16, 22, 29, 30, 27, 20, 11, 0, -7, -12, -11, -5, 0, + -3, -14, -20, -16, -9, -9, -17, -25, -29, -31, -33, -35, -33, -29, -25, -22, + -20, -17, -14, -13, -12, -11, -9, -10, -13, -15, -11, -5, 3, 9, 10, 9, + 9, 12, 18, 30, 50, 80, 119, 127, 102, 82, 77, 60, 37, 5, -34, -70, + -84, -83, -74, -60, -46, -29, -12, -2, 6, -23, 28, -20, 50, 50, -14, 14, + -28, -2, 28, 52, -25, -13, -52, 43, -41, -9, -26, 36, -25, -20, -17, 3, + -11, 38, 30, -61, 12, -6, 5, 45, 41, -4, 4, -20, -12, 45, 33, -11, + -29, -44, 27, -17, -36, -1, 17, -11, -31, -12, 4, -10, 37, 20, -39, -23, + 0, -104, -55, -11, 24, 33, 30, 7, -15, -31, -30, -25, -23, -20, -9, 10, + 31, 59, 91, 111, 115, 92, 51, 7, -33, -64, -81, -81, -71, -51, -22, 16, + 52, 74, 82, 81, 68, 38, 0, -40, -81, -112, -124, -102, -57, -11, 0, 7, + -23, -58, -85, -100, -104, -100, -92, -81, -69, -57, -45, -33, -22, -11, -1, 8, + 18, 27, 37, 49, 62, 79, 99, 118, 124, 111, 84, 53, 26, 5, -8, -14, + -15, -12, -6, 2, 12, 21, 28, 26, 9, -22, -58, -20, 7, 10, 21, -14, + 9, 22, 57, 62, 127, 56, 28, 26, -28, 10, -81, -31, -81, -35, -19, -55, + -27, -4, -4, 23, 49, 88, 85, 22, 1, 0, -3, 18, -22, -12, -39, -14, + -47, -67, -53, -53, -33, -20, 8, -22, 25, 30, 6, -19, -62, -19, 10, 83, + 57, -67, -88, -52, 63, 127, 42, -63, -121, -70, 82, 111, 46, -43, -114, -35, + 45, 73, 39, -19, -54, -41, 9, 49, 24, -16, -14, -9, -6, 10, 8, -22, + 25, 30, 6, -19, -62, -19, 10, 83, 57, -67, -88, -52, 63, 127, 42, -63, + -121, -70, 82, 111, 46, -43, -114, -35, 45, 73, 39, -19, -54, -41, 9, 49, + 24, -16, -14, -9, -6, 10, 8, -22, 25, 30, 6, -19, -62, -19, 10, 83, + 57, -67, -88, -52, 63, 127, 42, -63, -121, -70, 82, 111, 46, -43, -114, -35, + 45, 73, 39, -19, -54, -41, 9, 49, 24, -16, -14, -9, -6, 10, -18, -15, + 80, 127, 20, 18, 72, 60, -36, 22, 33, -73, -105, -27, 29, 25, 8, 43, + 23, -22, -35, -14, -8, -34, -25, -5, -18, -46, -13, -28, -3, -19, -10, -28, + -10, 17, -18, 96, 127, 123, 127, 126, 126, 95, 61, 22, -17, -56, -95, -118, + -123, -128, -128, -128, -128, -128, -128, -128, -128, -124, -93, -55, -17, 25, 62, 100, + 107, 119, 119, 127, 41, -4, -4, -10, -27, -62, -102, -128, -117, -85, -76, -49, + -25, -7, 15, 24, 14, 0, -9, -12, -3, 33, 81, 105, 111, 101, 80, 62, + 45, 30, 16, 8, 1, -4, 126, 86, -44, -68, -88, -63, 4, 84, 127, 14, + -29, -51, -127, -47, 58, 87, 82, 24, -17, -112, -113, 18, 46, 72, 102, 19, + -72, -118, -51, 9, 27, 126, 19, -53, -114, -108, 15, 122, 111, 21, -71, -70, + 5, 59, 83, 23, -72, -84, -49, 12, 37, 38, -28, -65, -26, 7, -2, 11, + 5, 23, 68, 19, 27, -54, 15, -24, -31, 46, 71, 81, -24, -33, -87, -41, + -71, -61, -70, -36, -44, -3, 12, -25, -20, 20, 68, 85, 127, 15, 50, -5, + 27, 51, 82, 106, 127, 118, 101, 92, 74, 52, 39, 37, 14, -41, -105, -108, + -94, -119, -124, -93, -57, -40, -37, -45, -51, -41, -5, 51, 127, 127, -128, -128, + -128, -128, -128, -128, -128, -128, -128, -128, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127 +}; + +const EAS_U32 eas_sampleLengths[] = +{ + 16820, 16708, 16592, 11754, 10954, 10295, 9922, 7489, + 5779, 5462, 4452, 3779, 3115, 3093, 3057, 3024, + 2818, 2776, 2171, 2168, 2052, 1902, 1835, 1614, + 1603, 1528, 1517, 1480, 1455, 1424, 1387, 1302, + 1262, 1254, 1230, 1227, 1185, 1181, 1178, 1168, + 1132, 1120, 1034, 1033, 1018, 994, 964, 926, + 907, 886, 881, 866, 830, 817, 816, 813, + 749, 748, 739, 720, 652, 610, 610, 583, + 564, 561, 556, 549, 542, 535, 530, 530, + 516, 508, 492, 478, 461, 448, 437, 431, + 423, 418, 403, 402, 400, 394, 387, 387, + 367, 357, 347, 347, 341, 336, 334, 329, + 325, 312, 294, 284, 277, 265, 255, 233, + 230, 213, 207, 205, 194, 193, 184, 181, + 181, 167, 164, 158, 152, 152, 145, 139, + 128, 103, 100, 88, 87, 84, 84, 72, + 71, 55, 46, 45, 43, 40, 40, 40, + 37, 35, 32, 32, 30, 29, 27, 23, + 22, 21, 21, 21, 21, 20 +}; + +const EAS_U32 eas_sampleOffsets[] = +{ + 0x00000000, 0x000041b4, 0x000082f8, 0x0000c3c8, 0x0000f1b2, 0x00011c7c, 0x000144b3, 0x00016b75, + 0x000188b6, 0x00019f49, 0x0001b49f, 0x0001c603, 0x0001d4c6, 0x0001e0f1, 0x0001ed06, 0x0001f8f7, + 0x000204c7, 0x00020fc9, 0x00021aa1, 0x0002231c, 0x00022b94, 0x00023398, 0x00023b06, 0x00024231, + 0x0002487f, 0x00024ec2, 0x000254ba, 0x00025aa7, 0x0002606f, 0x0002661e, 0x00026bae, 0x00027119, + 0x0002762f, 0x00027b1d, 0x00028003, 0x000284d1, 0x0002899c, 0x00028e3d, 0x000292da, 0x00029774, + 0x00029c04, 0x0002a070, 0x0002a4d0, 0x0002a8da, 0x0002ace3, 0x0002b0dd, 0x0002b4bf, 0x0002b883, + 0x0002bc21, 0x0002bfac, 0x0002c322, 0x0002c693, 0x0002c9f5, 0x0002cd33, 0x0002d064, 0x0002d394, + 0x0002d6c1, 0x0002d9ae, 0x0002dc9a, 0x0002df7d, 0x0002e24d, 0x0002e4d9, 0x0002e73b, 0x0002e99d, + 0x0002ebe4, 0x0002ee18, 0x0002f049, 0x0002f275, 0x0002f49a, 0x0002f6b8, 0x0002f8cf, 0x0002fae1, + 0x0002fcf3, 0x0002fef7, 0x000300f3, 0x000302df, 0x000304bd, 0x0003068a, 0x0003084a, 0x000309ff, + 0x00030bae, 0x00030d55, 0x00030ef7, 0x0003108a, 0x0003121c, 0x000313ac, 0x00031536, 0x000316b9, + 0x0003183c, 0x000319ab, 0x00031b10, 0x00031c6b, 0x00031dc6, 0x00031f1b, 0x0003206b, 0x000321b9, + 0x00032302, 0x00032447, 0x0003257f, 0x000326a5, 0x000327c1, 0x000328d6, 0x000329df, 0x00032ade, + 0x00032bc7, 0x00032cad, 0x00032d82, 0x00032e51, 0x00032f1e, 0x00032fe0, 0x000330a1, 0x00033159, + 0x0003320e, 0x000332c3, 0x0003336a, 0x0003340e, 0x000334ac, 0x00033544, 0x000335dc, 0x0003366d, + 0x000336f8, 0x00033778, 0x000337df, 0x00033843, 0x0003389b, 0x000338f2, 0x00033946, 0x0003399a, + 0x000339e2, 0x00033a29, 0x00033a60, 0x00033a8e, 0x00033abb, 0x00033ae6, 0x00033b0e, 0x00033b36, + 0x00033b5e, 0x00033b83, 0x00033ba6, 0x00033bc6, 0x00033be6, 0x00033c04, 0x00033c21, 0x00033c3c, + 0x00033c53, 0x00033c69, 0x00033c7e, 0x00033c93, 0x00033ca8, 0x00033cbd +}; + +/*---------------------------------------------------------------------------- + * S_EAS + *---------------------------------------------------------------------------- +*/ +const S_EAS easSoundLib = +{ + 0x01534145, + 0x0010ac44, + eas_banks, + eas_programs, + eas_regions, + eas_articulations, + eas_sampleLengths, + eas_sampleOffsets, + eas_samples, + 0, + 1, + 1, + 377, + 185, + 150, + 0 +}; /* end S_EAS */ + +/*---------------------------------------------------------------------------- + * Statistics + * + * Number of banks: 1 + * Number of programs: 1 + * Number of regions: 377 + * Number of articulations: 185 + * Number of samples: 150 + * Size of sample pool: 212050 + *---------------------------------------------------------------------------- +*/ +/* end wt_200k_G_MAC.c */ -- cgit v1.2.3 From bff6c52ff96a8e58c6b7eb01fd2d74bf9dede924 Mon Sep 17 00:00:00 2001 From: Jean-Michel Trivi <> Date: Thu, 16 Apr 2009 12:50:28 -0700 Subject: AI 146491: am: CL 146462 Add JetCreator demo content. Original author: jmtrivi Merged from: //branches/cupcake/... Automated import of CL 146491 --- jet_tools/JetCreator_content/JetCreator_demo_1.zip | Bin 0 -> 138903 bytes jet_tools/JetCreator_content/JetCreator_demo_2.zip | Bin 0 -> 4739529 bytes jet_tools/JetCreator_content/README.txt | 11 +++++++++++ 3 files changed, 11 insertions(+) create mode 100755 jet_tools/JetCreator_content/JetCreator_demo_1.zip create mode 100755 jet_tools/JetCreator_content/JetCreator_demo_2.zip create mode 100644 jet_tools/JetCreator_content/README.txt diff --git a/jet_tools/JetCreator_content/JetCreator_demo_1.zip b/jet_tools/JetCreator_content/JetCreator_demo_1.zip new file mode 100755 index 0000000..298b108 Binary files /dev/null and b/jet_tools/JetCreator_content/JetCreator_demo_1.zip differ diff --git a/jet_tools/JetCreator_content/JetCreator_demo_2.zip b/jet_tools/JetCreator_content/JetCreator_demo_2.zip new file mode 100755 index 0000000..7702f80 Binary files /dev/null and b/jet_tools/JetCreator_content/JetCreator_demo_2.zip differ diff --git a/jet_tools/JetCreator_content/README.txt b/jet_tools/JetCreator_content/README.txt new file mode 100644 index 0000000..943c9b7 --- /dev/null +++ b/jet_tools/JetCreator_content/README.txt @@ -0,0 +1,11 @@ +JetCreator demonstration content + +The "JetCreator_content" folder contains JetCreator sample files. + +1. Open a command prompt and go to the directory where the JetCreator tool is located. + +2. Launch JET Creator by typing "Python JetCreator.py" (be sure Python and WXWidgets are installed on your system) + +3. Select the IMPORT command and import one of the JetCreator_demo_*.zip files. + +4. After importing the first time, you can use the OPEN command to open the .jtc file in the folder you selected as the target for import. -- cgit v1.2.3 From 7f2d29454f56c4a9977341b0c90543b1de966170 Mon Sep 17 00:00:00 2001 From: Xavier Ducrohet <> Date: Fri, 17 Apr 2009 11:41:49 -0700 Subject: AI 146750: am: CL 146747 Add the JetCreator tools and docs to the SDK (mac/windows only). Original author: xav Merged from: //branches/cupcake/... Automated import of CL 146750 --- docs/JET_Authoring_Guidelines.htm | 2442 ----------------------------- docs/JET_Authoring_Guidelines.html | 2442 +++++++++++++++++++++++++++++ docs/JET_Creator_User_Manual.htm | 3032 ------------------------------------ docs/JET_Creator_User_Manual.html | 3032 ++++++++++++++++++++++++++++++++++++ docs/JET_Programming_Manual.htm | 1333 ---------------- docs/JET_Programming_Manual.html | 1333 ++++++++++++++++ 6 files changed, 6807 insertions(+), 6807 deletions(-) delete mode 100644 docs/JET_Authoring_Guidelines.htm create mode 100644 docs/JET_Authoring_Guidelines.html delete mode 100644 docs/JET_Creator_User_Manual.htm create mode 100644 docs/JET_Creator_User_Manual.html delete mode 100644 docs/JET_Programming_Manual.htm create mode 100644 docs/JET_Programming_Manual.html diff --git a/docs/JET_Authoring_Guidelines.htm b/docs/JET_Authoring_Guidelines.htm deleted file mode 100644 index 2ade2e3..0000000 --- a/docs/JET_Authoring_Guidelines.htm +++ /dev/null @@ -1,2442 +0,0 @@ - - - - - - - - -JET Authoring Guidelines - - - - - - - - -
-   Copyright (C) 2009 The Android Open Source Project
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
- -
- -

JET™ Content Authoring Guidelines

- -

JET Interactive Music Engine

- -

Vrs 1.0

- -

Authored by SONiVOX

- -

www.sonivoxrocks.com

- -

Copyright 2009 Sonic Network, Inc.

- -

 

- -

 

- -

1         -Introduction

- -

1.1        -Overview

- -

This document contains content creation -guidelines for composers and sound designers authoring music and sound effects -for the SONiVOX JET platform.  JET is an -interactive music player for small embedded devices, including the Google Android -platform. It allows applications to include interactive music soundtracks, in MIDI format, that respond in real-time to game play -events and user interaction.

- -

 

- -

JET works in conjunction with SONiVOX’s -Embedded Audio Synthesizer (EAS) which is the MIDI -playback device for Android.  Both the -JET and EAS engines are integrated into the Android embedded platform as well -as inherent in the JET Creator application. As such, the JET content author can -be sure that the playback will sound exactly the same in both the JET Creator -and the final Android application playing back on Android mobile devices.

- -

 

- -

The JET content author works in up to three -different applications to create JET content; a standard MIDI -sequencer (Logic, Cubase, etc.), optionally a DLS2 instrument editor (Awave), -and the JET Creator application to add and audition JET interactive elements.

- -

 

- -

The final result is a .jet file that the -content author gives to the application programmer for use in the game or -application.

- -

 

- -

 

- -

1.2        -Abbreviations and Common Terms

- -

It is important to use a common set of -terms to minimize confusion. Since JET uses MIDI -in a unique way, normal industry terms may not always suffice. Here is the -definition of terms as they are used in this document and in the JET Creator -application:

- -

 

- -

Channel: MIDI data associated with a specific MIDI -channel. Standard MIDI allows for 16 channels of MIDI -data each of which are typically associated with a specific instrument.

- -

 

- -

Controller: A MIDI event consisting of a -channel number, controller number, and a controller value. The MIDI spec associates many controller numbers with -specific functions, such as volume, expression, sustain pedal, etc. JET also -uses controller events as a means of embedding special control information in a -MIDI sequence to provide for audio -synchronization.

- -

 

- -

DAW: Digital Audio Workstation. A common term for MIDI -and audio sequencing applications such as Logic, SONAR, Cubase and others.

- -

 

- -

EAS: Embedded MIDI Synthesizer. The -name of the SONiVOX MIDI synthesizer engine.

- -

 

- -

JET: Jet Interactive Engine. The name of the SONiVOX JET interactive -music engine.

- -

 

- -

Segment: A musical section such as a chorus or verse that is a component of -the overall composition. In JET, a segment can be an entire MIDI file or a -derived from a portion of a MIDI file.

- -

 

- -

SMF-0: Standard MIDI File Type 0, a MIDI file that contains a single -track, but may be made up of multiple channels of MIDI -data.

- -

 

- -

SMF-1: Standard MIDI File Type 1, a MIDI file that contains a one more -tracks, and each track may in turn be made up of one or more channels of MIDI data. By convention, each channel is stored on a -separate track in an SMF-1 file. However, it is possible to have multiple MIDI -channels on a single track, or multiple tracks that contain data for the same MIDI channel.

- -

 

- -

Track: A single track in a DAW containing a timed sequence of MIDI events. Be careful not to confuse Tracks with -Channels. A MIDI file may contain many tracks with several tracks utilizing the -same MIDI channel.

- -

 

- -

 

- -

1         -The JET Interactive Music Concept

- -

Interactive music can be defined as music -that changes in real-time according to non-predictable events such as user -interaction or game play events. In this way, interactive music is much more -engaging as it has the ability to match the energy and mood of a game much -closer than a pre-composed composition that never changes. In some applications -and games, interactive music is central to the game play. Guitar Hero is one -such popular game. When the end user successfully ‘captures’ the musical notes -coming down the fret board, the music adapts itself and simultaneously keeps -score of successes and failures. JET allows for these types of music driven -games as well.

- -

 

- -

There are several methods for making and -controlling interactive music and JET is one such method. This section -describes the features of JET and how they might be used in a game or software -application. It also describes how JET can be used to save memory in small -footprint devices such as Android enabled mobile handsets.

- -

1.1.1       Data Compression

- -

JET supports a flexible music format that -can be used to create extended musical sequences with a minimal amount of data. -A musical composition is broken up into segments that can be sequenced to -create a longer piece. The sequencing can be fixed at the time the music file -is authored, or it can be created dynamically under program control.

- -

1.1.2       Linear Music Example

- -

- -

Figure 1: Linear Music Piece

- -

 

- -

This diagram shows how musical segments are -stored. Each segment is authored as a separate MIDI -file. A post-processing tool combines the files into a single container file. -Each segment can contain alternate music tracks that can be muted or un-muted -to create additional interest. An example might be a brass accent in the chorus -that is played only the last time through. Also, segments can be transposed up -or down.

- -

 

- -

The bottom part of the diagram shows how -the musical segments can be recombined to create a linear music piece. In this -example, the bridge might end with a half-step key modulation and the remaining -segments could be transposed up a half-step to match.

- -

1.1.3          -Non-linear Music Example

- -

- -

Figure 2: Non-linear music piece

- -

 

- -

In this diagram, we see a non-linear music -piece. The scenario is a first-person-shooter (FPS) and JET is providing the -background music. The intro plays as the level is loading and then transitions -under program control to the Searching segment. This segment is repeated -indefinitely, perhaps with small variations (using the mute/un-mute feature) -until activity in the game dictates a change.

- -

 

- -

As the player nears a monster lair, the -program starts a synchronized transition to the Danger segment, increasing the -tension level in the audio. As the player draws closer to the lair, additional -tracks are un-muted to increase the tension.

- -

 

- -

As the player enters into combat with the -monster, the program starts a synchronized transition to the Combat segment. -The segment repeats indefinitely as the combat continues. A Bonus Hit -temporarily un-mutes a decorative track that notifies the player of a -successful attack, and similarly, another track is temporarily un-muted to -signify when the player receives Special Damage.

- -

 

- -

At the end of combat, the music transitions -to a victory or defeat segment based on the outcome of battle.

- -

1.1.4          -Mute/Un-mute Synchronization

- -

JET can also synchronize the muting and -un-muting of tracks to events in the music. For example, in the FPS game, it -would probably be desirable to place the musical events relating to bonuses and -damage as close to the actual game event as possible. However, simply un-muting -a track at the moment the game event occurs might result in a music clip -starting in the middle. Alternatively, a clip could be started from the -beginning, but then it wouldn’t be synchronized with the other music tracks.

- -

 

- -

However, with the JET sync engine, a clip -can be started at the next opportune moment and maintain synchronization. This -can be accomplished by placing a number of short music clips on a decorative -track. A MIDI event in the stream signifies -the start of a clip and a second event signifies the end of a clip. When the -application calls the JET clip function, the next clip in the track is allowed -to play fully synchronized to the music. Optionally, the track can be -automatically muted by a second MIDI event.

- -

 

- -

- -

Figure 3: Synchronized Mute/Unmute

- -

1.2        -Audio Synchronization

- -

JET provides an audio synchronization API -that allows game play to be synchronized to events in the audio. The mechanism -relies on data embedded in the MIDI file at -the time the content is authored. When the JET engine senses an event during -playback it generates a callback into the application program. The timing of -the callback can be adjusted to compensate for any latency in the audio -playback system so that audio and video can be synchronized. The diagram below -shows an example of a simple music game that involves pressing the left and -right arrows in time with the music.

- -

 

- -

 

- -

- -

Figure 4: Music Game with Synchronization

- -

 

- -

The arrows represent events in the music -sequence where game events need to be synchronized. In this case, the blue -arrow represents a time where the player is supposed to press the left button, -and the red arrow is for the right button. The yellow arrow tells the game -engine that the sequence is complete. The player is allowed a certain time -window before and after the event to press the appropriate key.

- -

 

- -

If an event is received and the player has -not pressed a button, a timer is set to half the length of the window. If the -player presses the button before the timer expires, the game registers a -success, and if not, the game registers a failure.

- -

 

- -

If the player presses the button before the -event is received, a timer is set to half the length of the window. If an event -is received before the timer expires, the game registers a success, and if not, -the game registers a failure. Game play might also include bonuses for getting -close to the timing of the actual event.

- -

 

- -

2         -JET Content Authoring Overview

- -

To author JET files and hear them playback interactively, -the content author will work in two or three applications which are designed to -work together smoothly. The first is application is any off-the-shelf MIDI sequencing application or Digital Audio Workstation -that supports VST (for PC) or AU (for Mac) plugins. (Logic, SONAR, Cubase, etc) -Here the author will compose their MIDI music -files using the SONiVOX EAS Synth plugin as the playback synthesizer.

- -

 

- -

Once the composer has completed their MIDI file(s), they import them into the JET Creator application. -Here the author will setup and audition the conditions for interactive playback -within the JET enabled game.

- -

 

- -

Optionally, the author may elect to create -a custom DLS soundbank. This can be created in any off-the-shelf DLS authoring -application, such as Awave from MJSoft, and loaded into JET Creator along with -the MIDI files.

- -

 

- -

Below is an overview of this process. A -more detailed explanation of each step follows.

- -

 

- -
    -
  • Launch digital audio workstation (DAW)
  • -
      -
    • Assign the SONiVOX EAS Synth plugin as the playback - synthesizer
    • -
    • Optionally load a custom DLS2 soundset
    • -
    • Compose and save MIDI file(s)
    • -
    -
  • Launch the JET Creator application
  • -
      -
    • Create segments using the MIDI - and DLS2 source files
    • -
    • Add interactive elements
    • -
    • Audition interactive elements
    • -
    • Save and Export JET files for use in the Android application
    • -
    -
- -

 

- -

Launch DAW – Content authors will need to -use a third party MIDI authoring application to compose their MIDI -files. It is recommended they use a digital audio workstation (DAW) application -that supports VST or AU plugins as this will enable them to listen to the EAS -MIDI Synthesizer and DLS2 soundsets that will be utilized in the Android -application itself. Some examples of popular DAWs include SONAR (PC) and LOGIC -(MAC).

- -

 

- -

Assign SONiVOX EAS Synth plugin as the -playback synthesizer – The SONiVOX EAS Synth plugin is a VST and AU compatible -virtual instrument that plugs into VST or AU compatible DAWs. This software -plugin uses the same SONiVOX EAS MIDI synthesizer engine and default General -MIDI  wavetable soundset inherent in -Android. Using this plugin allows content authors to hear the exact audio -rendering of the instruments and MIDI file -that will be used in their Android applications.

- -

 

- -

Optionally Load DLS2 Soundset – The SONiVOX -EAS Synth plugin allows for the loading of any DLS2 compatible soundset for -playback. These could include a new GM wavetable set, or a small collection of -just a few custom instruments for a given application. Note, the DLS file does -not replace the internal GM wavetable used by the EAS engine. DLS soundsets -play in conjunction with the internal GM wavetable.

- -

 

- -

Compose MIDI File – Compose MIDI soundtracks for the Android application.

- -

 

- -

Launch JET Creator – Once all DLS2 and MIDI source files have been authored, the content author -should launch the JET Creator and begin creating JET Segments. The segments -will reference the MIDI files and any custom -DLS2 soundbanks.

- -

 

- -

Assign JET Segment Attributes – After -creating segments the content author interactive elements. Interactive elements -include mute and unmute settings of individual tracks in the MIDI file(s) as -well as MIDI controller numbers that serve as -“events” in the game. These attributes tell the JET engine how and when to play -the different musical segments according to the JET API commands in the Android -application. See below for more detail on this.

- -

 

- -

Audition Interactive Playback – After -assigning the segment attributes and creating the JET file, the content author -can audition all interactive playback elements in the JET Audition window.

- -

 

- -

Save .jtc File – After the author is -satisfied with the result, it is recommended they save the JET Creator .jtc -file which will save their settings, references to source files, etc.

- -

 

- -

Export Files – Exporting the JET Creator -file will bundle all source files and their attributes into a single .zip file. -The zip file will also contain a .jet file for use by the Android application.

- -

 

- -

 

- -

3         -EAS Synth Virtual Instrument Plugin

- -

Included in the JET Creator package is the -EAS software synthesizer in plug-in format. The EAS plugin synth allows the -composer to hear the instruments used in Android as they are composing their MIDI sequence. The EAS Synth plugin allows for the -loading of custom DLS2 sounds as well.

- -

 

- -

3.1        -Installing the EAS Synth Plugin

- -

Follow the instructions for your individual -DAW to install and utilize the plugin. For Mac users this will typically -involve copying the “EAS Synth.componant” file into your plugins folder which -is usually located at /Library/Audio/Plug-ins/Components. PC users will want to -install the “EAS Synth.dll” into the plugin folder that their DAW requires.

- -

 

- -

3.2        -Requirements and Settings for -using the EAS Synth Plugin

- -

The EAS Synth is an embedded synthesizer -for small mobile devices. This means it does not have the flexibility of high -end synthesizers typically utilized in a professional application such as -Logic, Digital Performer, etc. As such, only the following attributes are -supported.

- -

 

- -

Macintosh:

- -

 

- -

Mac OSX (Intel) Macs

- -

ASIO Supported Soundcards

- -

Sample Rate:    44100 hz

- -

Buffer Size:       256 kbytes

- -

 

- -

PC:

- -

 

- -

Windows 2000 or Vista -operating systems

- -

ASIO supported soundcards

- -

Sample Rate:    44100 hz

- -

Buffer Size:       256 kbytes

- -

 

- -

3.3        -Assigning MIDI -Tracks to use the EAS Synth

- -

Each DAW has its own particular method of -assigning MIDI tracks to virtual instrument -plugins such as the SONiVOX EAS Synth. Please consult the user manual for your -DAW for detailed instructions. Below are some general guidelines for Logic -(Mac) and SONAR (PC).

- -

3.3.1          -LOGIC 8

- -

The SONiVOX EAS Synth virtual instrument is -a multi-timbral synthesizer. (i.e. it plays back multiple instruments on unique -MIDI channels in a single instance) In Logic -8, however, you’ll want to set up 16 Logic Instruments, -each with their own instance of the EAS Synth. Each Instrument should be assigned -its own MIDI channel. Use Channel 10 for -Drums. The reason for this is that MIDI controller messages, such as Volume -(CC7) and Pan (CC10) will not be channelized if the plugin is assigned to only -a single Instrument and all MIDI tracks are -set to playback on that Instrument. In order for each MIDI -channel to respond to its own controller messages, you must assign 16 different -EAS Synth instances to 16 unique Logic Instruments.

- -

 

- -

A Logic 8 template file has been included -in the Android Cupcake release to facilitate the above.

- -

 

- -

Playback in Logic 8 may require you to be -in record enable mode for each track you are auditioning. To record enable -multiple tracks hold down the Option key.

- -

 

- -

To write out a standard MIDI -(type 1) file from Logic, you need to use the File Export command. IMPORTANT: -Most edits in Logic are non-destructive edits meaning they are not modifying -the actual data but rather adding an overlay onto to the data. Quantize is one -such non-destructive edit. Therefore when you export a MIDI -file, you may not see your quanitization settings.

- -

 

- -

In addition, the mix parameters for volume, -pan and program changes may not appear in the event list and therefore may not -write out with the MIDI file. Before exporting -a MIDI file in Logic it is recommended you do -the following:

- -

 

- -

Select All and use the “Insert MIDI > -Insert MIDI Settings as Events” command.

- -

 

- -

Select All and use the “Apply Quantization -Settings Destructively” command.

- -

 

- -

3.3.2          -Cakewalk SONAR 7

- -

Sonar 7 is a bit easier to set up, use and -save than Logic 8. Simply open or start a new MIDI -file. Go to the Insert menu and select Insert Soft Synth>SONiVOX>EAS -Synth. Then assign each MIDI track’s output to -the EAS Synth. There is no need to record enable a track to hear it play back. -When saving, be sure to select MIDI Type 1.

- -

 

- -

SONAR 8 works similarly to SONAR 7.

- -

 

- -

3.3.3          -Digital Performer

- -

We’ve seen some instances when creating -content with Digital Performer where notes with a release velocity of non-0 -will generate an extra note-on event in the EAS synth. If you are hearing a -doubling, editing the release velocity events to zero should fix this problem.

- -

 

- -

3.4        -Using Custom DLS2 Soundsets

- -

The SONiVOX EAS Synthesizer supports two -simultaneous soundsets or wavetables. One is the internal General MIDI wavetable -inherent to the SONiVOX EAS Synthesizer. The other is a Downloadable Sounds -Level 2 (DLS2) soundset. The internal wavetable is a GM Level 1 compliant -wavetable with 127 melodic instruments and 1 drumkit. It is in a proprietary -SONiVOX format. The DLS2 soundsets are an open format published by the MIDI -Manufactures Association.

- -

 

- -

In the Android Cupcake release, the -internal wavetable is only 200 kbytes, very small, in order to be compliant -with all Android devices which may not have a lot of memory. DLS2 soundsets can -be any size that a particular device supports. Upgraded (larger) internal -wavetables as well as custom DLS2 instruments can be licensed from SONiVOX.

- -

3.4.1          -Loading a DLS2 Soundset

- -

To load a custom soundset, click on the -Load DLS button in the EAS Synth plugin interface. Browse to the DLS2 file you -wish to load and say OK. Only DLS Level 2 formatted soundsets are -supported.

- -

 

- -

3.4.2          -Using a DLS2 Soundset

- -

Since both the internal EAS GM wavetable -and a custom DLS2 soundset are used simultaneously, you must be sure you have -your MIDI Program Changes set correctly. DLS2 instruments must be assigned to a -Bank other than the default GM bank -used by the internal synthesizer.

- -

 

- -

The internal EAS synthesizer is assigned to -Banks 121 (melodic instruments) and 120 (drum instruments). This follows the -General MIDI Level 1 specification. Note: Most MIDI -sequencers require you to use Bank 0 to select the default wavetable. Custom -DLS2 soundsets, therefore, should utilize a different Bank. We recommend Bank -1.

- -

 

- -

The EAS synth supports MSB (Controller 0), -LSB (Controller 32) Bank change messages. There are two places you need to set -this Bank and Program Change number. The first is in your DLS2 soundset. Using -Bank 1, each Instrument would be assigned MSB 1, LSB 0, then the Instrument -Program Change number. The second place to use the Bank and Program Change -number is in your MIDI sequence.

- -

 

- -

In your MIDI -track, the MSB should be sent first followed by the LSB and then the Instrument -number. For example, if your DLS2 instrument is assigned MSB 1, LSB 0, -Program1, you would send CC0, 1 followed by CC32, 0 followed by Program Change -Message 1. This might look like the following in an event window:

- -

 

- -

 

- -

- -

 

- -

 

- -

 

- -

4         -JET Creator Guidelines

- -

JET Creator is the desktop application -where you’ll edit and audition the JET interactive music elements. For details -on the JET Creator application please see the “JET Creator User Manual”. Below -are some additional guidelines to help you out.

- -

 

- -

 

- -

 

- -

4.1        -Order of Tasks

- -

As with all projects, its best to discuss and -design the interactive music scheme with the game designer and programmer -before beginning your composition. An outline and/or specification can go a -long way in saving you from having to redo things after the game is in place.

- -

 

- -

In general you’ll want to first write your -music in your DAW of choice the way you’re used to composing, then break up the -final MIDI file as needed for the application. -Next, move to JET Creator and create all of your music segments in the order -easiest to preview them when played in order. Finally, add the JET Events to -control the segments via the Android game and Audition them as needed in JET -Creator. Finally, save the project in JET Creator and hand off the .jet file to -the programmer to integrate it in the game. After previewing there will likely -be changes to the MIDI file(s) and JET Creator -attributes.

- -

 

- -

4.2        -Conserving Memory

- -

If you’re trying to conserve memory, -compose as few MIDI files as possible, and create several segments from that MIDI file. For example a 12 bar MIDI -file with three sections of 4 bars, A, B, C, can create a much longer song. -Simply create multiple segments that reference the one MIDI -file, then order them however you like. For example, A, A, B, A, C, A, B, A, A -would create a 36 bar song. Use JET to add repeats, transpose segments, and -interactively mute and unmute tracks to keep it even more interesting.

- -

 

- -

4.3        -Replicate

- -

To make adding segments or events faster, -use the Replicate command. Replicate can add multiple segments or events at one -time and uses an offset parameter and prefix naming convention to keep things -easy to read. The MOVE command is also useful for moving multiple events by a -set number of measures, beats or ticks.

- -

 

- -

4.4        -Interactive Options

- -

There are several interactive audio -concepts possible in JET. Below are a few examples although we hope developers -will come up with others we haven’t thought of! These are:

- -

4.4.1          -Multiple Segment Triggering

- -

In this method the application is -triggering specific segments based on events in the game. For example a hallway -with lots of fighting might trigger segment 1 and a hallway with no fighting -might trigger segment 2. Using JET TriggerClips in conjunction with this method -creates even more diversity.

- -

4.4.2          -Mute Arrays

- -

In this method the application is -triggering mute and unmute events to specific tracks in a single MIDI sequence. For example a hallway with lots of -fighting might play MIDI tracks 1-16 and a -hallway with no fighting might play the same midi file but mute tracks 9-16. -Using JET TriggerClips in conjunction with this method creates even more -diversity.

- -

4.4.3          -Music Driven Gameplay

- -

Music driven gaming is similar to what -Guitar Hero and JETBOY have done in that the music content determines how -graphic events are displayed. The application then queries the user response to -the graphic events and interactively modifies the music in response. In this -method the game is utilizing JET Application Events, MIDI controllers that are -embedded in the MIDI file and read by the game -in real-time. Based on the user response, multiple segment triggering and/or -mute arrays can be set.

- -

 

- -

 

- -
- - - - diff --git a/docs/JET_Authoring_Guidelines.html b/docs/JET_Authoring_Guidelines.html new file mode 100644 index 0000000..2ade2e3 --- /dev/null +++ b/docs/JET_Authoring_Guidelines.html @@ -0,0 +1,2442 @@ + + + + + + + + +JET Authoring Guidelines + + + + + + + + +
+   Copyright (C) 2009 The Android Open Source Project
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+ +
+ +

JET™ Content Authoring Guidelines

+ +

JET Interactive Music Engine

+ +

Vrs 1.0

+ +

Authored by SONiVOX

+ +

www.sonivoxrocks.com

+ +

Copyright 2009 Sonic Network, Inc.

+ +

 

+ +

 

+ +

1         +Introduction

+ +

1.1        +Overview

+ +

This document contains content creation +guidelines for composers and sound designers authoring music and sound effects +for the SONiVOX JET platform.  JET is an +interactive music player for small embedded devices, including the Google Android +platform. It allows applications to include interactive music soundtracks, in MIDI format, that respond in real-time to game play +events and user interaction.

+ +

 

+ +

JET works in conjunction with SONiVOX’s +Embedded Audio Synthesizer (EAS) which is the MIDI +playback device for Android.  Both the +JET and EAS engines are integrated into the Android embedded platform as well +as inherent in the JET Creator application. As such, the JET content author can +be sure that the playback will sound exactly the same in both the JET Creator +and the final Android application playing back on Android mobile devices.

+ +

 

+ +

The JET content author works in up to three +different applications to create JET content; a standard MIDI +sequencer (Logic, Cubase, etc.), optionally a DLS2 instrument editor (Awave), +and the JET Creator application to add and audition JET interactive elements.

+ +

 

+ +

The final result is a .jet file that the +content author gives to the application programmer for use in the game or +application.

+ +

 

+ +

 

+ +

1.2        +Abbreviations and Common Terms

+ +

It is important to use a common set of +terms to minimize confusion. Since JET uses MIDI +in a unique way, normal industry terms may not always suffice. Here is the +definition of terms as they are used in this document and in the JET Creator +application:

+ +

 

+ +

Channel: MIDI data associated with a specific MIDI +channel. Standard MIDI allows for 16 channels of MIDI +data each of which are typically associated with a specific instrument.

+ +

 

+ +

Controller: A MIDI event consisting of a +channel number, controller number, and a controller value. The MIDI spec associates many controller numbers with +specific functions, such as volume, expression, sustain pedal, etc. JET also +uses controller events as a means of embedding special control information in a +MIDI sequence to provide for audio +synchronization.

+ +

 

+ +

DAW: Digital Audio Workstation. A common term for MIDI +and audio sequencing applications such as Logic, SONAR, Cubase and others.

+ +

 

+ +

EAS: Embedded MIDI Synthesizer. The +name of the SONiVOX MIDI synthesizer engine.

+ +

 

+ +

JET: Jet Interactive Engine. The name of the SONiVOX JET interactive +music engine.

+ +

 

+ +

Segment: A musical section such as a chorus or verse that is a component of +the overall composition. In JET, a segment can be an entire MIDI file or a +derived from a portion of a MIDI file.

+ +

 

+ +

SMF-0: Standard MIDI File Type 0, a MIDI file that contains a single +track, but may be made up of multiple channels of MIDI +data.

+ +

 

+ +

SMF-1: Standard MIDI File Type 1, a MIDI file that contains a one more +tracks, and each track may in turn be made up of one or more channels of MIDI data. By convention, each channel is stored on a +separate track in an SMF-1 file. However, it is possible to have multiple MIDI +channels on a single track, or multiple tracks that contain data for the same MIDI channel.

+ +

 

+ +

Track: A single track in a DAW containing a timed sequence of MIDI events. Be careful not to confuse Tracks with +Channels. A MIDI file may contain many tracks with several tracks utilizing the +same MIDI channel.

+ +

 

+ +

 

+ +

1         +The JET Interactive Music Concept

+ +

Interactive music can be defined as music +that changes in real-time according to non-predictable events such as user +interaction or game play events. In this way, interactive music is much more +engaging as it has the ability to match the energy and mood of a game much +closer than a pre-composed composition that never changes. In some applications +and games, interactive music is central to the game play. Guitar Hero is one +such popular game. When the end user successfully ‘captures’ the musical notes +coming down the fret board, the music adapts itself and simultaneously keeps +score of successes and failures. JET allows for these types of music driven +games as well.

+ +

 

+ +

There are several methods for making and +controlling interactive music and JET is one such method. This section +describes the features of JET and how they might be used in a game or software +application. It also describes how JET can be used to save memory in small +footprint devices such as Android enabled mobile handsets.

+ +

1.1.1       Data Compression

+ +

JET supports a flexible music format that +can be used to create extended musical sequences with a minimal amount of data. +A musical composition is broken up into segments that can be sequenced to +create a longer piece. The sequencing can be fixed at the time the music file +is authored, or it can be created dynamically under program control.

+ +

1.1.2       Linear Music Example

+ +

+ +

Figure 1: Linear Music Piece

+ +

 

+ +

This diagram shows how musical segments are +stored. Each segment is authored as a separate MIDI +file. A post-processing tool combines the files into a single container file. +Each segment can contain alternate music tracks that can be muted or un-muted +to create additional interest. An example might be a brass accent in the chorus +that is played only the last time through. Also, segments can be transposed up +or down.

+ +

 

+ +

The bottom part of the diagram shows how +the musical segments can be recombined to create a linear music piece. In this +example, the bridge might end with a half-step key modulation and the remaining +segments could be transposed up a half-step to match.

+ +

1.1.3          +Non-linear Music Example

+ +

+ +

Figure 2: Non-linear music piece

+ +

 

+ +

In this diagram, we see a non-linear music +piece. The scenario is a first-person-shooter (FPS) and JET is providing the +background music. The intro plays as the level is loading and then transitions +under program control to the Searching segment. This segment is repeated +indefinitely, perhaps with small variations (using the mute/un-mute feature) +until activity in the game dictates a change.

+ +

 

+ +

As the player nears a monster lair, the +program starts a synchronized transition to the Danger segment, increasing the +tension level in the audio. As the player draws closer to the lair, additional +tracks are un-muted to increase the tension.

+ +

 

+ +

As the player enters into combat with the +monster, the program starts a synchronized transition to the Combat segment. +The segment repeats indefinitely as the combat continues. A Bonus Hit +temporarily un-mutes a decorative track that notifies the player of a +successful attack, and similarly, another track is temporarily un-muted to +signify when the player receives Special Damage.

+ +

 

+ +

At the end of combat, the music transitions +to a victory or defeat segment based on the outcome of battle.

+ +

1.1.4          +Mute/Un-mute Synchronization

+ +

JET can also synchronize the muting and +un-muting of tracks to events in the music. For example, in the FPS game, it +would probably be desirable to place the musical events relating to bonuses and +damage as close to the actual game event as possible. However, simply un-muting +a track at the moment the game event occurs might result in a music clip +starting in the middle. Alternatively, a clip could be started from the +beginning, but then it wouldn’t be synchronized with the other music tracks.

+ +

 

+ +

However, with the JET sync engine, a clip +can be started at the next opportune moment and maintain synchronization. This +can be accomplished by placing a number of short music clips on a decorative +track. A MIDI event in the stream signifies +the start of a clip and a second event signifies the end of a clip. When the +application calls the JET clip function, the next clip in the track is allowed +to play fully synchronized to the music. Optionally, the track can be +automatically muted by a second MIDI event.

+ +

 

+ +

+ +

Figure 3: Synchronized Mute/Unmute

+ +

1.2        +Audio Synchronization

+ +

JET provides an audio synchronization API +that allows game play to be synchronized to events in the audio. The mechanism +relies on data embedded in the MIDI file at +the time the content is authored. When the JET engine senses an event during +playback it generates a callback into the application program. The timing of +the callback can be adjusted to compensate for any latency in the audio +playback system so that audio and video can be synchronized. The diagram below +shows an example of a simple music game that involves pressing the left and +right arrows in time with the music.

+ +

 

+ +

 

+ +

+ +

Figure 4: Music Game with Synchronization

+ +

 

+ +

The arrows represent events in the music +sequence where game events need to be synchronized. In this case, the blue +arrow represents a time where the player is supposed to press the left button, +and the red arrow is for the right button. The yellow arrow tells the game +engine that the sequence is complete. The player is allowed a certain time +window before and after the event to press the appropriate key.

+ +

 

+ +

If an event is received and the player has +not pressed a button, a timer is set to half the length of the window. If the +player presses the button before the timer expires, the game registers a +success, and if not, the game registers a failure.

+ +

 

+ +

If the player presses the button before the +event is received, a timer is set to half the length of the window. If an event +is received before the timer expires, the game registers a success, and if not, +the game registers a failure. Game play might also include bonuses for getting +close to the timing of the actual event.

+ +

 

+ +

2         +JET Content Authoring Overview

+ +

To author JET files and hear them playback interactively, +the content author will work in two or three applications which are designed to +work together smoothly. The first is application is any off-the-shelf MIDI sequencing application or Digital Audio Workstation +that supports VST (for PC) or AU (for Mac) plugins. (Logic, SONAR, Cubase, etc) +Here the author will compose their MIDI music +files using the SONiVOX EAS Synth plugin as the playback synthesizer.

+ +

 

+ +

Once the composer has completed their MIDI file(s), they import them into the JET Creator application. +Here the author will setup and audition the conditions for interactive playback +within the JET enabled game.

+ +

 

+ +

Optionally, the author may elect to create +a custom DLS soundbank. This can be created in any off-the-shelf DLS authoring +application, such as Awave from MJSoft, and loaded into JET Creator along with +the MIDI files.

+ +

 

+ +

Below is an overview of this process. A +more detailed explanation of each step follows.

+ +

 

+ +
    +
  • Launch digital audio workstation (DAW)
  • +
      +
    • Assign the SONiVOX EAS Synth plugin as the playback + synthesizer
    • +
    • Optionally load a custom DLS2 soundset
    • +
    • Compose and save MIDI file(s)
    • +
    +
  • Launch the JET Creator application
  • +
      +
    • Create segments using the MIDI + and DLS2 source files
    • +
    • Add interactive elements
    • +
    • Audition interactive elements
    • +
    • Save and Export JET files for use in the Android application
    • +
    +
+ +

 

+ +

Launch DAW – Content authors will need to +use a third party MIDI authoring application to compose their MIDI +files. It is recommended they use a digital audio workstation (DAW) application +that supports VST or AU plugins as this will enable them to listen to the EAS +MIDI Synthesizer and DLS2 soundsets that will be utilized in the Android +application itself. Some examples of popular DAWs include SONAR (PC) and LOGIC +(MAC).

+ +

 

+ +

Assign SONiVOX EAS Synth plugin as the +playback synthesizer – The SONiVOX EAS Synth plugin is a VST and AU compatible +virtual instrument that plugs into VST or AU compatible DAWs. This software +plugin uses the same SONiVOX EAS MIDI synthesizer engine and default General +MIDI  wavetable soundset inherent in +Android. Using this plugin allows content authors to hear the exact audio +rendering of the instruments and MIDI file +that will be used in their Android applications.

+ +

 

+ +

Optionally Load DLS2 Soundset – The SONiVOX +EAS Synth plugin allows for the loading of any DLS2 compatible soundset for +playback. These could include a new GM wavetable set, or a small collection of +just a few custom instruments for a given application. Note, the DLS file does +not replace the internal GM wavetable used by the EAS engine. DLS soundsets +play in conjunction with the internal GM wavetable.

+ +

 

+ +

Compose MIDI File – Compose MIDI soundtracks for the Android application.

+ +

 

+ +

Launch JET Creator – Once all DLS2 and MIDI source files have been authored, the content author +should launch the JET Creator and begin creating JET Segments. The segments +will reference the MIDI files and any custom +DLS2 soundbanks.

+ +

 

+ +

Assign JET Segment Attributes – After +creating segments the content author interactive elements. Interactive elements +include mute and unmute settings of individual tracks in the MIDI file(s) as +well as MIDI controller numbers that serve as +“events” in the game. These attributes tell the JET engine how and when to play +the different musical segments according to the JET API commands in the Android +application. See below for more detail on this.

+ +

 

+ +

Audition Interactive Playback – After +assigning the segment attributes and creating the JET file, the content author +can audition all interactive playback elements in the JET Audition window.

+ +

 

+ +

Save .jtc File – After the author is +satisfied with the result, it is recommended they save the JET Creator .jtc +file which will save their settings, references to source files, etc.

+ +

 

+ +

Export Files – Exporting the JET Creator +file will bundle all source files and their attributes into a single .zip file. +The zip file will also contain a .jet file for use by the Android application.

+ +

 

+ +

 

+ +

3         +EAS Synth Virtual Instrument Plugin

+ +

Included in the JET Creator package is the +EAS software synthesizer in plug-in format. The EAS plugin synth allows the +composer to hear the instruments used in Android as they are composing their MIDI sequence. The EAS Synth plugin allows for the +loading of custom DLS2 sounds as well.

+ +

 

+ +

3.1        +Installing the EAS Synth Plugin

+ +

Follow the instructions for your individual +DAW to install and utilize the plugin. For Mac users this will typically +involve copying the “EAS Synth.componant” file into your plugins folder which +is usually located at /Library/Audio/Plug-ins/Components. PC users will want to +install the “EAS Synth.dll” into the plugin folder that their DAW requires.

+ +

 

+ +

3.2        +Requirements and Settings for +using the EAS Synth Plugin

+ +

The EAS Synth is an embedded synthesizer +for small mobile devices. This means it does not have the flexibility of high +end synthesizers typically utilized in a professional application such as +Logic, Digital Performer, etc. As such, only the following attributes are +supported.

+ +

 

+ +

Macintosh:

+ +

 

+ +

Mac OSX (Intel) Macs

+ +

ASIO Supported Soundcards

+ +

Sample Rate:    44100 hz

+ +

Buffer Size:       256 kbytes

+ +

 

+ +

PC:

+ +

 

+ +

Windows 2000 or Vista +operating systems

+ +

ASIO supported soundcards

+ +

Sample Rate:    44100 hz

+ +

Buffer Size:       256 kbytes

+ +

 

+ +

3.3        +Assigning MIDI +Tracks to use the EAS Synth

+ +

Each DAW has its own particular method of +assigning MIDI tracks to virtual instrument +plugins such as the SONiVOX EAS Synth. Please consult the user manual for your +DAW for detailed instructions. Below are some general guidelines for Logic +(Mac) and SONAR (PC).

+ +

3.3.1          +LOGIC 8

+ +

The SONiVOX EAS Synth virtual instrument is +a multi-timbral synthesizer. (i.e. it plays back multiple instruments on unique +MIDI channels in a single instance) In Logic +8, however, you’ll want to set up 16 Logic Instruments, +each with their own instance of the EAS Synth. Each Instrument should be assigned +its own MIDI channel. Use Channel 10 for +Drums. The reason for this is that MIDI controller messages, such as Volume +(CC7) and Pan (CC10) will not be channelized if the plugin is assigned to only +a single Instrument and all MIDI tracks are +set to playback on that Instrument. In order for each MIDI +channel to respond to its own controller messages, you must assign 16 different +EAS Synth instances to 16 unique Logic Instruments.

+ +

 

+ +

A Logic 8 template file has been included +in the Android Cupcake release to facilitate the above.

+ +

 

+ +

Playback in Logic 8 may require you to be +in record enable mode for each track you are auditioning. To record enable +multiple tracks hold down the Option key.

+ +

 

+ +

To write out a standard MIDI +(type 1) file from Logic, you need to use the File Export command. IMPORTANT: +Most edits in Logic are non-destructive edits meaning they are not modifying +the actual data but rather adding an overlay onto to the data. Quantize is one +such non-destructive edit. Therefore when you export a MIDI +file, you may not see your quanitization settings.

+ +

 

+ +

In addition, the mix parameters for volume, +pan and program changes may not appear in the event list and therefore may not +write out with the MIDI file. Before exporting +a MIDI file in Logic it is recommended you do +the following:

+ +

 

+ +

Select All and use the “Insert MIDI > +Insert MIDI Settings as Events” command.

+ +

 

+ +

Select All and use the “Apply Quantization +Settings Destructively” command.

+ +

 

+ +

3.3.2          +Cakewalk SONAR 7

+ +

Sonar 7 is a bit easier to set up, use and +save than Logic 8. Simply open or start a new MIDI +file. Go to the Insert menu and select Insert Soft Synth>SONiVOX>EAS +Synth. Then assign each MIDI track’s output to +the EAS Synth. There is no need to record enable a track to hear it play back. +When saving, be sure to select MIDI Type 1.

+ +

 

+ +

SONAR 8 works similarly to SONAR 7.

+ +

 

+ +

3.3.3          +Digital Performer

+ +

We’ve seen some instances when creating +content with Digital Performer where notes with a release velocity of non-0 +will generate an extra note-on event in the EAS synth. If you are hearing a +doubling, editing the release velocity events to zero should fix this problem.

+ +

 

+ +

3.4        +Using Custom DLS2 Soundsets

+ +

The SONiVOX EAS Synthesizer supports two +simultaneous soundsets or wavetables. One is the internal General MIDI wavetable +inherent to the SONiVOX EAS Synthesizer. The other is a Downloadable Sounds +Level 2 (DLS2) soundset. The internal wavetable is a GM Level 1 compliant +wavetable with 127 melodic instruments and 1 drumkit. It is in a proprietary +SONiVOX format. The DLS2 soundsets are an open format published by the MIDI +Manufactures Association.

+ +

 

+ +

In the Android Cupcake release, the +internal wavetable is only 200 kbytes, very small, in order to be compliant +with all Android devices which may not have a lot of memory. DLS2 soundsets can +be any size that a particular device supports. Upgraded (larger) internal +wavetables as well as custom DLS2 instruments can be licensed from SONiVOX.

+ +

3.4.1          +Loading a DLS2 Soundset

+ +

To load a custom soundset, click on the +Load DLS button in the EAS Synth plugin interface. Browse to the DLS2 file you +wish to load and say OK. Only DLS Level 2 formatted soundsets are +supported.

+ +

 

+ +

3.4.2          +Using a DLS2 Soundset

+ +

Since both the internal EAS GM wavetable +and a custom DLS2 soundset are used simultaneously, you must be sure you have +your MIDI Program Changes set correctly. DLS2 instruments must be assigned to a +Bank other than the default GM bank +used by the internal synthesizer.

+ +

 

+ +

The internal EAS synthesizer is assigned to +Banks 121 (melodic instruments) and 120 (drum instruments). This follows the +General MIDI Level 1 specification. Note: Most MIDI +sequencers require you to use Bank 0 to select the default wavetable. Custom +DLS2 soundsets, therefore, should utilize a different Bank. We recommend Bank +1.

+ +

 

+ +

The EAS synth supports MSB (Controller 0), +LSB (Controller 32) Bank change messages. There are two places you need to set +this Bank and Program Change number. The first is in your DLS2 soundset. Using +Bank 1, each Instrument would be assigned MSB 1, LSB 0, then the Instrument +Program Change number. The second place to use the Bank and Program Change +number is in your MIDI sequence.

+ +

 

+ +

In your MIDI +track, the MSB should be sent first followed by the LSB and then the Instrument +number. For example, if your DLS2 instrument is assigned MSB 1, LSB 0, +Program1, you would send CC0, 1 followed by CC32, 0 followed by Program Change +Message 1. This might look like the following in an event window:

+ +

 

+ +

 

+ +

+ +

 

+ +

 

+ +

 

+ +

4         +JET Creator Guidelines

+ +

JET Creator is the desktop application +where you’ll edit and audition the JET interactive music elements. For details +on the JET Creator application please see the “JET Creator User Manual”. Below +are some additional guidelines to help you out.

+ +

 

+ +

 

+ +

 

+ +

4.1        +Order of Tasks

+ +

As with all projects, its best to discuss and +design the interactive music scheme with the game designer and programmer +before beginning your composition. An outline and/or specification can go a +long way in saving you from having to redo things after the game is in place.

+ +

 

+ +

In general you’ll want to first write your +music in your DAW of choice the way you’re used to composing, then break up the +final MIDI file as needed for the application. +Next, move to JET Creator and create all of your music segments in the order +easiest to preview them when played in order. Finally, add the JET Events to +control the segments via the Android game and Audition them as needed in JET +Creator. Finally, save the project in JET Creator and hand off the .jet file to +the programmer to integrate it in the game. After previewing there will likely +be changes to the MIDI file(s) and JET Creator +attributes.

+ +

 

+ +

4.2        +Conserving Memory

+ +

If you’re trying to conserve memory, +compose as few MIDI files as possible, and create several segments from that MIDI file. For example a 12 bar MIDI +file with three sections of 4 bars, A, B, C, can create a much longer song. +Simply create multiple segments that reference the one MIDI +file, then order them however you like. For example, A, A, B, A, C, A, B, A, A +would create a 36 bar song. Use JET to add repeats, transpose segments, and +interactively mute and unmute tracks to keep it even more interesting.

+ +

 

+ +

4.3        +Replicate

+ +

To make adding segments or events faster, +use the Replicate command. Replicate can add multiple segments or events at one +time and uses an offset parameter and prefix naming convention to keep things +easy to read. The MOVE command is also useful for moving multiple events by a +set number of measures, beats or ticks.

+ +

 

+ +

4.4        +Interactive Options

+ +

There are several interactive audio +concepts possible in JET. Below are a few examples although we hope developers +will come up with others we haven’t thought of! These are:

+ +

4.4.1          +Multiple Segment Triggering

+ +

In this method the application is +triggering specific segments based on events in the game. For example a hallway +with lots of fighting might trigger segment 1 and a hallway with no fighting +might trigger segment 2. Using JET TriggerClips in conjunction with this method +creates even more diversity.

+ +

4.4.2          +Mute Arrays

+ +

In this method the application is +triggering mute and unmute events to specific tracks in a single MIDI sequence. For example a hallway with lots of +fighting might play MIDI tracks 1-16 and a +hallway with no fighting might play the same midi file but mute tracks 9-16. +Using JET TriggerClips in conjunction with this method creates even more +diversity.

+ +

4.4.3          +Music Driven Gameplay

+ +

Music driven gaming is similar to what +Guitar Hero and JETBOY have done in that the music content determines how +graphic events are displayed. The application then queries the user response to +the graphic events and interactively modifies the music in response. In this +method the game is utilizing JET Application Events, MIDI controllers that are +embedded in the MIDI file and read by the game +in real-time. Based on the user response, multiple segment triggering and/or +mute arrays can be set.

+ +

 

+ +

 

+ +
+ + + + diff --git a/docs/JET_Creator_User_Manual.htm b/docs/JET_Creator_User_Manual.htm deleted file mode 100644 index 8582f5f..0000000 --- a/docs/JET_Creator_User_Manual.htm +++ /dev/null @@ -1,3032 +0,0 @@ - - - - - - - - - - - -SONiVOX JET Creator User Manual - - - - - - - - -
-   Copyright (C) 2009 The Android Open Source Project
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
- -
- -

JETCreator™ User Manual

- -

Vrs 1.0

- -

Content -Authoring Application for the

- -

JET -Interactive Music Engine

- -

Authored by SONiVOX

- -

www.sonivoxrocks.com

- -

Copyright 2009 Sonic Network, Inc.

- - - -

 

- -

 

- -

1         -Introduction

- -

1.1        -Overview

- -

This document contains the user guidelines -for the SONiVOX JET Creator, an authoring application for creating and -auditioning JET files. JET is an interactive music player for small embedded -devices, including the Google Android platform. It allows applications to -include interactive music soundtracks, in MIDI -format, that respond in real-time to game play events and user interaction.

- -

 

- -

JET works in conjunction with SONiVOX’s -Embedded Audio Synthesizer (EAS) which is the MIDI -playback device for Android.  Both the -JET and EAS engines are integrated into the Android embedded platform as well -as inherent in the JET Creator application. As such, the JET content author can -be sure that the playback will sound exactly the same in both the JET Creator -and the final Android application playing back on Android mobile devices.

- -

 

- -

In addition to the graphical user -interface, there are two main functionalities taking place in JET Creator. The -first involves gathering all the source data (MIDI -files and DLS file), adding JET’s real-time attributes and building a JET -(.jet) file that the Android application will use. The second functionality -involves auditioning the interactive playback elements as they will take place -in the Android application.

- -

 

- -

The JET Creator application is written in -the Python programming language, therefore you need to have the current version -of Python and WXWidgets installed. There is both a Mac and Windows version.

- -

 

- -

 

- -

1.2        -Abbreviations and Common Terms

- -

 

- -

It is important to use a common set of -terms to minimize confusion. Since JET uses MIDI -in a unique way, normal industry terms may not always suffice. Here is the -definition of terms as they are used in this document and in the JET Creator -application:

- -

 

- -

Channel: MIDI data associated with a specific MIDI -channel. Standard MIDI allows for 16 channels of MIDI -data each of which are typically associated with a specific instrument.

- -

 

- -

Controller: A MIDI event consisting of a -channel number, controller number, and a controller value. The MIDI spec associates many controller numbers with -specific functions, such as volume, expression, sustain pedal, etc. JET also -uses controller events as a means of embedding special control information in a -MIDI sequence to provide for audio synchronization.

- -

 

- -

DAW: Digital Audio Workstation. A common term for MIDI -and audio sequencing applications such as Logic, SONAR, Cubase and others.

- -

 

- -

EAS: Embedded MIDI Synthesizer. The -name of the SONiVOX MIDI synthesizer engine.

- -

 

- -

JET: Jet Interactive Engine. The name of the SONiVOX JET interactive -music engine.

- -

 

- -

M/B/T: Measures, Beats and Ticks

- -

 

- -

Segment: A musical section such as a chorus or verse that is a component of -the overall composition. In JET, a segment can be an entire MIDI file or a -derived from a portion of a MIDI file.

- -

 

- -

SMF-0: Standard MIDI File Type 0, a MIDI file that contains a single -track, but may be made up of multiple channels of MIDI -data.

- -

 

- -

SMF-1: Standard MIDI File Type 1, a MIDI file that contains a one more -tracks, and each track may in turn be made up of one or more channels of MIDI data. By convention, each channel is stored on a -separate track in an SMF-1 file. However, it is possible to have multiple MIDI -channels on a single track, or multiple tracks that contain data for the same MIDI channel.

- -

 

- -

Track: A single track in a DAW containing a timed sequence of MIDI events. Be careful not to confuse Tracks with -Channels. A MIDI file may contain many tracks with several tracks utilizing the -same MIDI channel.

- -

 

- -

 

- -

1         -The JET Interactive Music Concept

- -

Interactive music can be defined as music -that changes in real-time according to non-predictable events such as user -interaction or game play events. In this way, interactive music is much more -engaging as it has the ability to match the energy and mood of a game much -closer than a pre-composed composition that never changes. In some applications -and games, interactive music is central to the game play. Guitar Hero is one -such popular game. When the end user successfully ‘captures’ the musical notes -coming down the fret board, the music adapts itself and simultaneously keeps -score of successes and failures. JET allows for these types of music driven -games as well.

- -

 

- -

There are several methods for making and -controlling interactive music and JET is one such method. This section -describes the features of JET and how they might be used in a game or software -application. It also describes how JET can be used to save memory in small -footprint devices such as Android enabled mobile handsets.

- -

1.1.1       Data Compression

- -

JET supports a flexible music format that -can be used to create extended musical sequences with a minimal amount of data. -A musical composition is broken up into segments that can be sequenced to -create a longer piece. The sequencing can be fixed at the time the music file -is authored, or it can be created dynamically under program control.

- -

1.1.2       Linear Music Example

- -

- -

Figure 1: Linear Music Piece

- -

 

- -

This diagram shows how musical segments are -stored. Each segment is authored as a separate MIDI -file. A post-processing tool combines the files into a single container file. -Each segment can contain alternate music tracks that can be muted or un-muted -to create additional interest. An example might be a brass accent in the chorus -that is played only the last time through. Also, segments can be transposed up -or down.

- -

 

- -

The bottom part of the diagram shows how -the musical segments can be recombined to create a linear music piece. In this -example, the bridge might end with a half-step key modulation and the remaining -segments could be transposed up a half-step to match.

- -

1.1.3          -Non-linear Music Example

- -

- -

Figure 2: Non-linear music piece

- -

 

- -

In this diagram, we see a non-linear music -piece. The scenario is a first-person-shooter (FPS) and JET is providing the -background music. The intro plays as the level is loading and then transitions -under program control to the Searching segment. This segment is repeated indefinitely, -perhaps with small variations (using the mute/un-mute feature) until activity -in the game dictates a change.

- -

 

- -

As the player nears a monster lair, the -program starts a synchronized transition to the Danger segment, increasing the -tension level in the audio. As the player draws closer to the lair, additional -tracks are un-muted to increase the tension.

- -

 

- -

As the player enters into combat with the -monster, the program starts a synchronized transition to the Combat segment. -The segment repeats indefinitely as the combat continues. A Bonus Hit -temporarily un-mutes a decorative track that notifies the player of a -successful attack, and similarly, another track is temporarily un-muted to -signify when the player receives Special Damage.

- -

 

- -

At the end of combat, the music transitions -to a victory or defeat segment based on the outcome of battle.

- -

1.1.4          -Mute/Un-mute Synchronization

- -

JET can also synchronize the muting and -un-muting of tracks to events in the music. For example, in the FPS game, it would -probably be desirable to place the musical events relating to bonuses and -damage as close to the actual game event as possible. However, simply un-muting -a track at the moment the game event occurs might result in a music clip -starting in the middle. Alternatively, a clip could be started from the -beginning, but then it wouldn’t be synchronized with the other music tracks.

- -

 

- -

However, with the JET sync engine, a clip -can be started at the next opportune moment and maintain synchronization. This -can be accomplished by placing a number of short music clips on a decorative -track. A MIDI event in the stream signifies -the start of a clip and a second event signifies the end of a clip. When the -application calls the JET clip function, the next clip in the track is allowed -to play fully synchronized to the music. Optionally, the track can be -automatically muted by a second MIDI event.

- -

 

- -

- -

Figure 3: Synchronized Mute/Unmute

- -

1.2        -Audio Synchronization

- -

JET provides an audio synchronization API -that allows game play to be synchronized to events in the audio. The mechanism -relies on data embedded in the MIDI file at -the time the content is authored. When the JET engine senses an event during -playback it generates a callback into the application program. The timing of -the callback can be adjusted to compensate for any latency in the audio -playback system so that audio and video can be synchronized. The diagram below -shows an example of a simple music game that involves pressing the left and -right arrows in time with the music.

- -

 

- -

 

- -

- -

Figure 4: Music Game with Synchronization

- -

 

- -

The arrows represent events in the music sequence -where game events need to be synchronized. In this case, the blue arrow -represents a time where the player is supposed to press the left button, and -the red arrow is for the right button. The yellow arrow tells the game engine -that the sequence is complete. The player is allowed a certain time window -before and after the event to press the appropriate key.

- -

 

- -

If an event is received and the player has -not pressed a button, a timer is set to half the length of the window. If the -player presses the button before the timer expires, the game registers a -success, and if not, the game registers a failure.

- -

 

- -

If the player presses the button before the -event is received, a timer is set to half the length of the window. If an event -is received before the timer expires, the game registers a success, and if not, -the game registers a failure. Game play might also include bonuses for getting -close to the timing of the actual event.

- -

 

- -

2         -JET Content Authoring Overview

- -

To author JET files and hear them playback -interactively, the content author will work in two applications which are -designed to work together smoothly. The first is application is any -off-the-shelf MIDI sequencing application that -supports VST (for PC) or AU (for Mac) plugins. Here the author will compose -their MIDI music files using the plugin as the -synthesizer device. The second application is the JET Creator application. Here -the author will import their MIDI music files -(and optionally a DLS2 soundset) and setup the conditions for interactive -playback within the JET enabled game. Optionally the content author may create -a custom set of DLS instruments using an instrument editor that supports the -DLS Level 2 format. One such application is Awave from MJSoft.

- -

 

- -

Please see the JET Content Authoring Guidelines documentation for additional -details on content authoring.

- -

 

- -

3         -Installing and Launching JET -Creator

- -

JET Creator is a python language -application, therefore, you must have Python and wxPython installed on your -machine.

- -

 

- -

JetCreator was created and tested with:

- -

 

- -

Python Version 2.5.4

- -

wxPython Version 2.8.7.1

- -

 

- -

These can be downloaded here:

- -

 

- -

PC:

- -

http://www.python.org/download/releases/2.5.4/

- -

http://www.wxpython.org/download.php

- -

 

- -

MAC:

- -

http://wiki.python.org/moin/MacPython/Leopard

- -

http://www.wxpython.org/download.php

- -

 

- -

After installing Python and wxPython, -simply unzip or copy all the files in the JET Creator application directory to -a folder on your hard drive.

- -

                                                    

- -

To launch JET Creator go to a command -prompt and set the directory to where you’ve installed Python. Next run python -with the command:

- -

 

- -

python -jetcreator.py

- -

 

- -

 

- -

4         -Using JET Creator

- -

 

- -

4.1        -File Types

- -

There are a few different file types -associated with JET Creator.

- -

 

- -

.jtc        JET -Creator project file. This file contains all the information associated with a -JET Creator project. When you Save or Save-as out of JET Creator, this file -type is saved.

- -

 

- -

.jet        JET -File. This output file is automatically generated from JET Creator whenever you -save your JET Creator project. This is the file that bundles all JET assets -together into a single file that the Android application will use. Give this -file to the Android application developer.

- -

 

- -

.mid      MIDI File. This is the standard MIDI -type 1 file that JET Creator will use to make segments.

- -

 

- -

.seg      Segment -File. This is a JET Segment file. It has the same name as the MIDI -file which it references but contains additional Segment information.

- -

 

- -

.zip       Zip -Archive file. When you Export a JET Archive, a zip file is created that -contains all the assets (files) necessary for JET Creator. Use this to transfer -JET Creator projects to other people.

- -

 

- -

4.2        -Open Dialog

- -

When -you first launch JET Creator you are presented with an open dialog like the -following.

- -

 

- -

- -

 

- -

 

- -

Open will open an existing .jtc (JET Creator file) file. Use the browser -button to browse to the directory where you have saved your .jtc file.

- -

 

- -

New will create a new .jtc file.

- -

 

- -

Import will import a JET Archive (.zip) file.

- -

 

- -

Cancel will cancel the dialog and exit the application.

- -

 

- - - -

5         -Main Window

- -

The main window of the JET Creator -application looks like the picture below. There are three main sections from -top to bottom: segment view, event view, and timeline.

- -

 

- -

The segment view section displays a list of -the current segments, which MIDI file and -(optionally) DLS2 file each segment is derived from. It also shows each -segments start and stop time and each segments quantize, transpose, repeat and -mute flag settings.

- -

 

- -

Just below the Segment view is the event -view. The event view section displays all events associated with a given -segment. Events only display when the segment they are assigned to is -highlighted. Each event displays its type, start and end points, track and midi -channel assignment, and its event ID.

- -

 

- -

Just below the Event view is the timeline -display. The timeline shows how many measures a given segment is as well as any -events associated with that segment. The timeline changes to display the -currently selected or playing segment. You can trigger an event in this window -while the segment is play by simply clicking on the event in the timeline -display.

- -

 

- -

 

- -

- -

 

- -

JET -Creator Main Window

- -

 

- -

 

- -

The buttons along the left side of main -window do the following:

- -

 

- -

Add:                    - -Displays the segment or event window for adding a new segment or event

- -

Revise:                - -Displays the segment or event window for updating an existing segment or event

- -

Delete:                 - -Deletes the selected segment or event (will ask for confirmation)

- -

Move:                  - -Displays the move window which allows you to move selected segments or events -in time

- -

Queue All:            - Queue’s -(selects) all segments for playback

- -

Dequeue All:        - Dequeue’s -(deselects) all segments

- -

Play:                    - -Starts playback of all queue’d segments. This button changes to Stop if any -segments are playing

- -

Audition:              - -Displays the Audition window (see below)

- -

 

- -

5.1        -Segment Window

- -

The segment window is where a given -segment’s attributes are assigned and auditioned, as shown in the picture -below. The left side of the window displays the segments attributes that are -stored in the JET file. The right side of the window allows the author to set -mute flags, repeat and transpose settings and audition the segment as it will -play in the JET game.

- -

 

- -

Note: the audition attributes (mute flags, repeat and transpose) are not stored in the JET content file -(.jet) but rather are defined by the game or application itself. In programming -language, these settings correspond directly with the API calls to the JET -engine. By including them here, the JET content author can simulate how the -segment will respond to the applications API commands during game play.

- -

 

- -

 

- -

- -

 

- -

 

- -

The segment parameters do the following:

- -

 

- -

Segment Name             - Sets -the name of the segment

- -

MIDI File                       - -The name and location of the MIDI file from which -the segment is derived. The button to the immediate right will bring up a -browser for locating a midi file on the hard drive.

- -

DLS File                       - -The name and location of the DLS2 file, if any, that the MIDI -file uses for that segment.

- -

Starting M/B/T               - -Starting measure, beat and tick of the segment

- -

Ending M/B/T                - -Ending measure, beat and tick of the segment

- -

Quantize                       - -Quantize value for quantizing the current segment during playback

- -

 

- -

 

- -

The audition fields are as follows:

- -

 

- -

Track Mutes                  - -Shows the MIDI tracks (not channels) -in the MIDI file. Clicking on a track’s -checkbox will mute that track.

- -

Channel                        - -Displays the MIDI channel assigned to each -track

- -

Name                            - -Displays the track name meta event (if present) for each track

- -

Repeat                          - -Indicates the number of times a segment should repeat during playback

- -

Transpose                     - -Indicates the transposition in semi-tones or half-steps a segment should -transpose during playback

- -

 

- -

To the right of the Audition window are a few additional buttons. -These do as follows:

- -

 

- -

OK                               - -Selecting OK confirms all segment settings and closes the segment window

- -

Cancel                          - -Selecting Cancel cancels any changes and closes the segment window

- -

Replicate                      - -Displays the Replicate Segment window for entering multiple segments at once. -See below.

- -

Play/Stop Segment       - Starts -or Stops playback of the segment using the segment attributes assigned.

- -

Play/Stop MIDI File       - -Starts or Stops playback of the MIDI file -which the segment is assigned to.

- -

Pause/Resume              - -Pauses or Resumes playback.

- -

 

- -

 

- -

5.2        -Event Window

- -

The event window is where a given segment’s -event attributes are assigned and auditioned, as shown in the picture below. To -add an event to a segment, the author must first select the segment which will -contain the event, then select the Add button. This will bring up the Event -window.

- -

 

- -

- -

 

- -

 

- -

There are two main sections to the event -window. The segment section on the left side of the event window is for display -only. It shows what the segment attributes are for the given segment. The Event -section, on the right side, is where events can be assigned. The following -parameters are available:

- -

 

- -

Event Name                    - -Assigns a name to an event

- -

Event Type                     - -Selects which type of event to assign.

- -

Starting M/B/T                - -Sets the starting measure, beat, and tick for the event

- -

Ending M/B/T                 - -Sets the ending measure, beat, and tick for the event, if applicable

- -

Track                              - -Sets which track in the given segment the event will apply to

- -

Channel                          - -Sets which MIDI channel the event will apply -to. The MIDI channel should match the MIDI -channel of the track

- -

Event ID                         - -Sets the event ID for the event. Multiple events can be assigned to the same -segment and therefore the Event ID is used to identify them

- -

 

- -

To the right of the Audition window are a few additional buttons. -These do as follows:

- -

 

- -

OK                               - -Selecting OK confirms all event settings and closes the event window

- -

Cancel                          - -Selecting Cancel cancels any changes and closes the event window

- -

Replicate                      - -Displays the Replicate Event window for entering multiple events at once. See -below.

- -

Play/Stop                     - -Starts or Stops playback of the segment using the segment attributes assigned. -While the segment is playing, events can be triggered and auditioned.

- -

Trigger                          - -Triggers the event assigned. This replicates the API command that the JET game -will use to trigger the event, therefore giving the content author a method for -auditioning the behaviour of the event.

- -

Mute/UnMute                 - -Mute/UnMute will mute or unmute the track that the event is assigned to

- -

Pause/Resume              - -Pauses or Resumes playback.

- -

 

- -

To audition the behaviour of an event, you -can select the Play button. This will initiate playback. The trigger button -will send the trigger event when pressed. This is equivalent to selecting the -green trigger event in the timeline.

- -

 

- -

Note: Trigger events are meant to unmute a -single track of a segment when triggered, then mute that track at the end of -the trigger segment. Therefore you should make sure the mute flag is set to -mute the track that a trigger event will be unmuting when receiving a trigger event. -

- -

 

- -

Please read Section 7 “Under The Hood” -below for details on how trigger events work and behave.

- -

 

- -

5.3        -Replicate Windows

- -

Often in creating JET files, you’ll need to -create tens or even hundreds of events. You may also need to move events. The -Replicate and Move windows allow for this. There are two Replicate windows for -creating multiple segments or events. They look like the following:

- -

 

- -

- -

 

- -

Replicate Segment Window

- -

 

- -

 

- -

 

- -

- -

 

- -

Replicate Event Window

- -

 

- -

Both Replicate windows function the same. -After creating an initial segment or event, you can select the Replicate -button. The parameters are as follows:

- -

 

- -

Name Prefix                  - -Sets the prefix for the name of each segment or event created

- -

Starting M/B/T               - -Sets the starting time for the first segment or event

- -

Increment M/B/T            - -Sets the time between segments or events created.

- -

Number                         - -Sets the number of segments or events you wish to create. If the number -overflows the length of the MIDI file (for -segments) or segment (for events), those objects will not be created.

- -

Preview                         - -Preview allows you to examine the objects created before saying OK to insert -them.

- -

 

- -

 

- -

5.4        -Move Windows

- -

The Move function acts similarly to the -Replicate function in that it allows you to edit multiple segments or events at -one time, in this case move them in time. Like Replicate, there are two Move -windows, one for Segments and one for Events. The windows look like the -following:

- -

 

- -

- -

 

- -

Move Event Window

- -

 

- -

To use Move, first select the segments or -events you wish to move in time, then click the Move button. The parameters are -as follows:

- -

 

- -

Starting M/B/T               - -Sets the starting time for the first segment or event

- -

Increment M/B/T            - -Sets the time in M/B/T you wish to move the objects by.

- -

Preview                         - -Preview allows you to examine the objects created before saying OK to move -them.

- -

 

- -

 

- -

5.5        -Audition Window

- -

Clicking the Audition button in the main -window of the JET Creator application will open the Audition window. This is -where the content author or application programmer can simulate the interactive -playback as it may occur in the mobile application or game itself.

- -

 

- -

- -

 

- -

JET Audition Window

- -

 

- -

 

- -

There are four main sections to the -audition window. The left most section displays the available segments and -their length in seconds. The middle section displays a running list of what -segments are queued for playback and what their playback status is. The far -right section displays the mute flags for the currently playing segment. The -timeline section at the bottom is the same as in the main window. It displays -the currently playing segment as well as a visual display of any event triggers -associated with that segment.

- -

 

- -

The Audition window allows you to queue up -any segment in any order for playback. To do this simply select the segment you -wish to cue and hit Queue. That segment will appear in the queue window and -start playing (if it is the first segment). Subsequently you can select any -other segment or segments and cue them up for playback. As the segments -complete playback, the next segment in the queue will begin playing. As is the -other windows of JET Creator, you can mute, unmute, trigger event clips, etc. -in realtime as each segment is playing back.

- -

 

- -

Specifically the buttons behave as follows:

- -

 

- -

Queue                           - -loads the selected segment into the queue and starts playback

- -

Cancel and Queue         - -cancels the currently playing segment before queueing the selected segment for -playback

- -

Cancel Current               - -cancels the currently playing segment in the queue and begins playback of the -next segment

- -

Stop                             - -stops playback of all queued segments

- -

Mute All                        - -mutes all tracks in the current segment

- -

Mute None                    - -unmutes all tracks in the current segment

- -

Original Mutes               - -sets the original mute flags for the current segment

- -

 

- -

The combination of these playback options -allows an author or application programmer to audition any behaviour an -interactive music application may encounter.

- -

 

- -

 

- -

5.6        -JET Creator Menus

- -

The JET Creator menus provide access to -many of the parameters in the main window plus a few additional parameters.

- -

5.6.1          -File Menu

- -

The File Menu contains the following -elements:

- -

 

- -

New                              - -Creates a new JET Creator file (.jtc)

- -

Open                            - -Opens an existing JET Creator file

- -

Save                             - -Saves the currently opened JET Creator file

- -

Save As                        - -Saves the currently opened JET Creator file to a new file

- -

Import Project               - Imports a JET Creator archive (.zip)

- -

Export Project               - Exports a JET Creator archive (.zip)

- -

Exit                              - -Exits the application

- -

 

- -

5.6.2          -Edit Menu

- -

The Edit Menu contains the following -elements:

- -

 

- -

Undo                            - -Undo will undo the last edit made

- -

Redo                            - -Redo will redo the last undo

- -

Cut                               - -Copy selected parameter into clipboard and Delete selection

- -

Copy                            - -Copy selected parameter into clipboard and keep selection

- -

Paste                            - -Paste selected parameter

- -

 

- -

5.6.3          -JET

- -

The Edit Menu contains the following -elements:

- -

 

- -

Properties                     - -Brings up the JET Creator priorities window. This window allows you to set the -following conditions for a given JET file:

- -

Copyright Info               - Contains copyright info to be inserted into JET file

- -

Chase Controllers          - Option to chase controllers (on/off). This should usually -be ON.

- -

Delete Empty Tracks     - Deletes any empty MIDI tracks

- -

 

- -

5.6.4          -Segments

- -

The Segments Menu contains the following -elements:

- -

 

- -

Add Segment                - -Brings up the Segment window

- -

Update Segment           - Updates segment attributes

- -

Delete Segment                        - Deletes the current segment from the -Segment List

- -

 

- -

5.6.5          -Help

- -

The Help Menu will contain at least the -following elements:

- -

 

- -

JET Creator Help           - will launch PDF help document or go to on-line help

- -

About                           - -JET Creator version number, SONiVOX info

- -

 

- -

 

- -

6         -Trigger Events Explained

- -

Breaking a MIDI -file into individual (non-linear) segments and queueing up those segments for -playback in a game based on events within the game is one way JET music files are -interactive. Trigger events are an additional method for interactive playback. -Both would be used together in an interactive game or application.

- -

 

- -

Trigger events allow for the following:

- -

 

- -
    -
  1. Tracks within a MIDI segment can be turned on or off based on game - events. For example the composer could author two drum tracks, one fast - and one slow. If the action in a game is fast, the fast drum track could - play. If the action in the game is slow, the slow drum track can play.
  2. -
  3. User actions can be compared to trigger events which are - pre-inserted into a music file at musically ‘correct’ places. Based on the - results, scoring or other game actions can take place.
  4. -
  5. Musical transitions between levels or action sequences can be - synchronized to be musically seemless.
  6. -
- -

 

- -

Under the hood, JET uses standard MIDI CC -events to accomplish these actions and to synchronize audio. The controllers -used by JET are among those not defined for specific use by the MIDI specification. The specific controller definitions -are as follows:

- -

 

- -

            Controllers -80-83           Reserved for use by -application

- -

            Controller -102                JET event marker

- -

            Controller -103                JET clip marker

- -

            Controllers -104-119        Reserved for future use

- -

 

- -

6.1        -JET Clip Marker (CC103)

- -

Controller 103 is reserved for marking -clips in a MIDI track that can be triggered by -the JET_TriggerClip API call. The clip ID is encoded in the low 6 bits of the -controller value. Bit 6 is set to one to indicate the start of a clip, and set -to zero to indicate the end of a clip.

- -

 

- -

For example, to identify a clip with a clip -ID of 1, the author inserts a MIDI controller -event with controller=103 and value=65 at the start of the clip and another -event with controller=103 and value=1 at the end of the clip. When the -JET_TriggerClip() function is called with a clip ID of 1, the track will be -un-muted when the controller value 65 is encountered and muted again when the -controller value 1 is encountered.

- -

 

- -

- -

Figure 5: Synchronized Clip

- -

 

- -

In the figure above, if the -JET_TriggerClip() function is called prior to the first controller event, Track -3 will be un-muted when the first controller event occurs, the first clip will -play, and the track will be muted when the second controller event occurs. If -the JET_TriggerClip() function is called after the first controller event has -occurred, Track 3 will be un-muted when the third controller event occurs, the -second clip will play, and the track will be muted again when the fourth -controller event occurs.

- -

 

- -

Note: Normally, the track containing the clip is muted by the application -when the segment is initially queued by the call to JET_QueueSegment(). If it -is not muted, the clip will always play until Jet_TriggerClip() has been called -with the clip ID.

- -

 

- -

6.2        -JET Event Marker (CC102)

- -

Controller 102 is reserved for marking -events in the MIDI streams that are specific -to JET functionality. Currently, the only defined value is 0, which marks the -end of a segment for timing purposes.

- -

 

- -

Normally, JET starts playback of the next -segment (or repeats the current segment) when the MIDI -end-of-track meta-event is encountered. Some MIDI -authoring tools make it difficult to place the end-of-track marker accurately, -resulting in synchronization problems when segments are joined together.

- -

 

- -

To avoid this problem, the author can place -a JET end-of-segment marker (controller=102, value=0) at the point where the -segment is to be looped. When the end-of-segment marker is encountered, the -next segment will be triggered, or if the current segment is looped, playback -will resume at the start of the segment.

- -

 

- -

The end-of-segment marker can also be used -to allow for completion of a musical figure beyond the end of measure that -marks the start of the next segment. For example, the content author might -create a 4-bar segment with a drum fill that ends on beat 1 of the 5th -bar – a bar beyond the natural end of the segment. By placing an end-of-segment -marker at the end of the 4th bar, the next segment will be -triggered, but the drum fill will continue in parallel with the next segment -providing musical continuity.

- -

 

- -

- -

Figure 6: End-of-segment Marker

- -

6.3        -Application Controllers -(CC80-83)

- -

The application may use controllers in this -range for its own purposes. When a controller in this range is encountered, the -event is entered into an event queue that can be queried by the application. -Some possible uses include synchronizing video events with audio and marking a -point in a MIDI segment to queue up the next -segment. The range of controllers monitored by the application can be modified -by the application during initialization.

- -

 

- -
- - - - diff --git a/docs/JET_Creator_User_Manual.html b/docs/JET_Creator_User_Manual.html new file mode 100644 index 0000000..8582f5f --- /dev/null +++ b/docs/JET_Creator_User_Manual.html @@ -0,0 +1,3032 @@ + + + + + + + + + + + +SONiVOX JET Creator User Manual + + + + + + + + +
+   Copyright (C) 2009 The Android Open Source Project
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+ +
+ +

JETCreator™ User Manual

+ +

Vrs 1.0

+ +

Content +Authoring Application for the

+ +

JET +Interactive Music Engine

+ +

Authored by SONiVOX

+ +

www.sonivoxrocks.com

+ +

Copyright 2009 Sonic Network, Inc.

+ + + +

 

+ +

 

+ +

1         +Introduction

+ +

1.1        +Overview

+ +

This document contains the user guidelines +for the SONiVOX JET Creator, an authoring application for creating and +auditioning JET files. JET is an interactive music player for small embedded +devices, including the Google Android platform. It allows applications to +include interactive music soundtracks, in MIDI +format, that respond in real-time to game play events and user interaction.

+ +

 

+ +

JET works in conjunction with SONiVOX’s +Embedded Audio Synthesizer (EAS) which is the MIDI +playback device for Android.  Both the +JET and EAS engines are integrated into the Android embedded platform as well +as inherent in the JET Creator application. As such, the JET content author can +be sure that the playback will sound exactly the same in both the JET Creator +and the final Android application playing back on Android mobile devices.

+ +

 

+ +

In addition to the graphical user +interface, there are two main functionalities taking place in JET Creator. The +first involves gathering all the source data (MIDI +files and DLS file), adding JET’s real-time attributes and building a JET +(.jet) file that the Android application will use. The second functionality +involves auditioning the interactive playback elements as they will take place +in the Android application.

+ +

 

+ +

The JET Creator application is written in +the Python programming language, therefore you need to have the current version +of Python and WXWidgets installed. There is both a Mac and Windows version.

+ +

 

+ +

 

+ +

1.2        +Abbreviations and Common Terms

+ +

 

+ +

It is important to use a common set of +terms to minimize confusion. Since JET uses MIDI +in a unique way, normal industry terms may not always suffice. Here is the +definition of terms as they are used in this document and in the JET Creator +application:

+ +

 

+ +

Channel: MIDI data associated with a specific MIDI +channel. Standard MIDI allows for 16 channels of MIDI +data each of which are typically associated with a specific instrument.

+ +

 

+ +

Controller: A MIDI event consisting of a +channel number, controller number, and a controller value. The MIDI spec associates many controller numbers with +specific functions, such as volume, expression, sustain pedal, etc. JET also +uses controller events as a means of embedding special control information in a +MIDI sequence to provide for audio synchronization.

+ +

 

+ +

DAW: Digital Audio Workstation. A common term for MIDI +and audio sequencing applications such as Logic, SONAR, Cubase and others.

+ +

 

+ +

EAS: Embedded MIDI Synthesizer. The +name of the SONiVOX MIDI synthesizer engine.

+ +

 

+ +

JET: Jet Interactive Engine. The name of the SONiVOX JET interactive +music engine.

+ +

 

+ +

M/B/T: Measures, Beats and Ticks

+ +

 

+ +

Segment: A musical section such as a chorus or verse that is a component of +the overall composition. In JET, a segment can be an entire MIDI file or a +derived from a portion of a MIDI file.

+ +

 

+ +

SMF-0: Standard MIDI File Type 0, a MIDI file that contains a single +track, but may be made up of multiple channels of MIDI +data.

+ +

 

+ +

SMF-1: Standard MIDI File Type 1, a MIDI file that contains a one more +tracks, and each track may in turn be made up of one or more channels of MIDI data. By convention, each channel is stored on a +separate track in an SMF-1 file. However, it is possible to have multiple MIDI +channels on a single track, or multiple tracks that contain data for the same MIDI channel.

+ +

 

+ +

Track: A single track in a DAW containing a timed sequence of MIDI events. Be careful not to confuse Tracks with +Channels. A MIDI file may contain many tracks with several tracks utilizing the +same MIDI channel.

+ +

 

+ +

 

+ +

1         +The JET Interactive Music Concept

+ +

Interactive music can be defined as music +that changes in real-time according to non-predictable events such as user +interaction or game play events. In this way, interactive music is much more +engaging as it has the ability to match the energy and mood of a game much +closer than a pre-composed composition that never changes. In some applications +and games, interactive music is central to the game play. Guitar Hero is one +such popular game. When the end user successfully ‘captures’ the musical notes +coming down the fret board, the music adapts itself and simultaneously keeps +score of successes and failures. JET allows for these types of music driven +games as well.

+ +

 

+ +

There are several methods for making and +controlling interactive music and JET is one such method. This section +describes the features of JET and how they might be used in a game or software +application. It also describes how JET can be used to save memory in small +footprint devices such as Android enabled mobile handsets.

+ +

1.1.1       Data Compression

+ +

JET supports a flexible music format that +can be used to create extended musical sequences with a minimal amount of data. +A musical composition is broken up into segments that can be sequenced to +create a longer piece. The sequencing can be fixed at the time the music file +is authored, or it can be created dynamically under program control.

+ +

1.1.2       Linear Music Example

+ +

+ +

Figure 1: Linear Music Piece

+ +

 

+ +

This diagram shows how musical segments are +stored. Each segment is authored as a separate MIDI +file. A post-processing tool combines the files into a single container file. +Each segment can contain alternate music tracks that can be muted or un-muted +to create additional interest. An example might be a brass accent in the chorus +that is played only the last time through. Also, segments can be transposed up +or down.

+ +

 

+ +

The bottom part of the diagram shows how +the musical segments can be recombined to create a linear music piece. In this +example, the bridge might end with a half-step key modulation and the remaining +segments could be transposed up a half-step to match.

+ +

1.1.3          +Non-linear Music Example

+ +

+ +

Figure 2: Non-linear music piece

+ +

 

+ +

In this diagram, we see a non-linear music +piece. The scenario is a first-person-shooter (FPS) and JET is providing the +background music. The intro plays as the level is loading and then transitions +under program control to the Searching segment. This segment is repeated indefinitely, +perhaps with small variations (using the mute/un-mute feature) until activity +in the game dictates a change.

+ +

 

+ +

As the player nears a monster lair, the +program starts a synchronized transition to the Danger segment, increasing the +tension level in the audio. As the player draws closer to the lair, additional +tracks are un-muted to increase the tension.

+ +

 

+ +

As the player enters into combat with the +monster, the program starts a synchronized transition to the Combat segment. +The segment repeats indefinitely as the combat continues. A Bonus Hit +temporarily un-mutes a decorative track that notifies the player of a +successful attack, and similarly, another track is temporarily un-muted to +signify when the player receives Special Damage.

+ +

 

+ +

At the end of combat, the music transitions +to a victory or defeat segment based on the outcome of battle.

+ +

1.1.4          +Mute/Un-mute Synchronization

+ +

JET can also synchronize the muting and +un-muting of tracks to events in the music. For example, in the FPS game, it would +probably be desirable to place the musical events relating to bonuses and +damage as close to the actual game event as possible. However, simply un-muting +a track at the moment the game event occurs might result in a music clip +starting in the middle. Alternatively, a clip could be started from the +beginning, but then it wouldn’t be synchronized with the other music tracks.

+ +

 

+ +

However, with the JET sync engine, a clip +can be started at the next opportune moment and maintain synchronization. This +can be accomplished by placing a number of short music clips on a decorative +track. A MIDI event in the stream signifies +the start of a clip and a second event signifies the end of a clip. When the +application calls the JET clip function, the next clip in the track is allowed +to play fully synchronized to the music. Optionally, the track can be +automatically muted by a second MIDI event.

+ +

 

+ +

+ +

Figure 3: Synchronized Mute/Unmute

+ +

1.2        +Audio Synchronization

+ +

JET provides an audio synchronization API +that allows game play to be synchronized to events in the audio. The mechanism +relies on data embedded in the MIDI file at +the time the content is authored. When the JET engine senses an event during +playback it generates a callback into the application program. The timing of +the callback can be adjusted to compensate for any latency in the audio +playback system so that audio and video can be synchronized. The diagram below +shows an example of a simple music game that involves pressing the left and +right arrows in time with the music.

+ +

 

+ +

 

+ +

+ +

Figure 4: Music Game with Synchronization

+ +

 

+ +

The arrows represent events in the music sequence +where game events need to be synchronized. In this case, the blue arrow +represents a time where the player is supposed to press the left button, and +the red arrow is for the right button. The yellow arrow tells the game engine +that the sequence is complete. The player is allowed a certain time window +before and after the event to press the appropriate key.

+ +

 

+ +

If an event is received and the player has +not pressed a button, a timer is set to half the length of the window. If the +player presses the button before the timer expires, the game registers a +success, and if not, the game registers a failure.

+ +

 

+ +

If the player presses the button before the +event is received, a timer is set to half the length of the window. If an event +is received before the timer expires, the game registers a success, and if not, +the game registers a failure. Game play might also include bonuses for getting +close to the timing of the actual event.

+ +

 

+ +

2         +JET Content Authoring Overview

+ +

To author JET files and hear them playback +interactively, the content author will work in two applications which are +designed to work together smoothly. The first is application is any +off-the-shelf MIDI sequencing application that +supports VST (for PC) or AU (for Mac) plugins. Here the author will compose +their MIDI music files using the plugin as the +synthesizer device. The second application is the JET Creator application. Here +the author will import their MIDI music files +(and optionally a DLS2 soundset) and setup the conditions for interactive +playback within the JET enabled game. Optionally the content author may create +a custom set of DLS instruments using an instrument editor that supports the +DLS Level 2 format. One such application is Awave from MJSoft.

+ +

 

+ +

Please see the JET Content Authoring Guidelines documentation for additional +details on content authoring.

+ +

 

+ +

3         +Installing and Launching JET +Creator

+ +

JET Creator is a python language +application, therefore, you must have Python and wxPython installed on your +machine.

+ +

 

+ +

JetCreator was created and tested with:

+ +

 

+ +

Python Version 2.5.4

+ +

wxPython Version 2.8.7.1

+ +

 

+ +

These can be downloaded here:

+ +

 

+ +

PC:

+ +

http://www.python.org/download/releases/2.5.4/

+ +

http://www.wxpython.org/download.php

+ +

 

+ +

MAC:

+ +

http://wiki.python.org/moin/MacPython/Leopard

+ +

http://www.wxpython.org/download.php

+ +

 

+ +

After installing Python and wxPython, +simply unzip or copy all the files in the JET Creator application directory to +a folder on your hard drive.

+ +

                                                    

+ +

To launch JET Creator go to a command +prompt and set the directory to where you’ve installed Python. Next run python +with the command:

+ +

 

+ +

python +jetcreator.py

+ +

 

+ +

 

+ +

4         +Using JET Creator

+ +

 

+ +

4.1        +File Types

+ +

There are a few different file types +associated with JET Creator.

+ +

 

+ +

.jtc        JET +Creator project file. This file contains all the information associated with a +JET Creator project. When you Save or Save-as out of JET Creator, this file +type is saved.

+ +

 

+ +

.jet        JET +File. This output file is automatically generated from JET Creator whenever you +save your JET Creator project. This is the file that bundles all JET assets +together into a single file that the Android application will use. Give this +file to the Android application developer.

+ +

 

+ +

.mid      MIDI File. This is the standard MIDI +type 1 file that JET Creator will use to make segments.

+ +

 

+ +

.seg      Segment +File. This is a JET Segment file. It has the same name as the MIDI +file which it references but contains additional Segment information.

+ +

 

+ +

.zip       Zip +Archive file. When you Export a JET Archive, a zip file is created that +contains all the assets (files) necessary for JET Creator. Use this to transfer +JET Creator projects to other people.

+ +

 

+ +

4.2        +Open Dialog

+ +

When +you first launch JET Creator you are presented with an open dialog like the +following.

+ +

 

+ +

+ +

 

+ +

 

+ +

Open will open an existing .jtc (JET Creator file) file. Use the browser +button to browse to the directory where you have saved your .jtc file.

+ +

 

+ +

New will create a new .jtc file.

+ +

 

+ +

Import will import a JET Archive (.zip) file.

+ +

 

+ +

Cancel will cancel the dialog and exit the application.

+ +

 

+ + + +

5         +Main Window

+ +

The main window of the JET Creator +application looks like the picture below. There are three main sections from +top to bottom: segment view, event view, and timeline.

+ +

 

+ +

The segment view section displays a list of +the current segments, which MIDI file and +(optionally) DLS2 file each segment is derived from. It also shows each +segments start and stop time and each segments quantize, transpose, repeat and +mute flag settings.

+ +

 

+ +

Just below the Segment view is the event +view. The event view section displays all events associated with a given +segment. Events only display when the segment they are assigned to is +highlighted. Each event displays its type, start and end points, track and midi +channel assignment, and its event ID.

+ +

 

+ +

Just below the Event view is the timeline +display. The timeline shows how many measures a given segment is as well as any +events associated with that segment. The timeline changes to display the +currently selected or playing segment. You can trigger an event in this window +while the segment is play by simply clicking on the event in the timeline +display.

+ +

 

+ +

 

+ +

+ +

 

+ +

JET +Creator Main Window

+ +

 

+ +

 

+ +

The buttons along the left side of main +window do the following:

+ +

 

+ +

Add:                    - +Displays the segment or event window for adding a new segment or event

+ +

Revise:                - +Displays the segment or event window for updating an existing segment or event

+ +

Delete:                 - +Deletes the selected segment or event (will ask for confirmation)

+ +

Move:                  - +Displays the move window which allows you to move selected segments or events +in time

+ +

Queue All:            - Queue’s +(selects) all segments for playback

+ +

Dequeue All:        - Dequeue’s +(deselects) all segments

+ +

Play:                    - +Starts playback of all queue’d segments. This button changes to Stop if any +segments are playing

+ +

Audition:              - +Displays the Audition window (see below)

+ +

 

+ +

5.1        +Segment Window

+ +

The segment window is where a given +segment’s attributes are assigned and auditioned, as shown in the picture +below. The left side of the window displays the segments attributes that are +stored in the JET file. The right side of the window allows the author to set +mute flags, repeat and transpose settings and audition the segment as it will +play in the JET game.

+ +

 

+ +

Note: the audition attributes (mute flags, repeat and transpose) are not stored in the JET content file +(.jet) but rather are defined by the game or application itself. In programming +language, these settings correspond directly with the API calls to the JET +engine. By including them here, the JET content author can simulate how the +segment will respond to the applications API commands during game play.

+ +

 

+ +

 

+ +

+ +

 

+ +

 

+ +

The segment parameters do the following:

+ +

 

+ +

Segment Name             - Sets +the name of the segment

+ +

MIDI File                       - +The name and location of the MIDI file from which +the segment is derived. The button to the immediate right will bring up a +browser for locating a midi file on the hard drive.

+ +

DLS File                       - +The name and location of the DLS2 file, if any, that the MIDI +file uses for that segment.

+ +

Starting M/B/T               - +Starting measure, beat and tick of the segment

+ +

Ending M/B/T                - +Ending measure, beat and tick of the segment

+ +

Quantize                       - +Quantize value for quantizing the current segment during playback

+ +

 

+ +

 

+ +

The audition fields are as follows:

+ +

 

+ +

Track Mutes                  - +Shows the MIDI tracks (not channels) +in the MIDI file. Clicking on a track’s +checkbox will mute that track.

+ +

Channel                        - +Displays the MIDI channel assigned to each +track

+ +

Name                            - +Displays the track name meta event (if present) for each track

+ +

Repeat                          - +Indicates the number of times a segment should repeat during playback

+ +

Transpose                     - +Indicates the transposition in semi-tones or half-steps a segment should +transpose during playback

+ +

 

+ +

To the right of the Audition window are a few additional buttons. +These do as follows:

+ +

 

+ +

OK                               - +Selecting OK confirms all segment settings and closes the segment window

+ +

Cancel                          - +Selecting Cancel cancels any changes and closes the segment window

+ +

Replicate                      - +Displays the Replicate Segment window for entering multiple segments at once. +See below.

+ +

Play/Stop Segment       - Starts +or Stops playback of the segment using the segment attributes assigned.

+ +

Play/Stop MIDI File       - +Starts or Stops playback of the MIDI file +which the segment is assigned to.

+ +

Pause/Resume              - +Pauses or Resumes playback.

+ +

 

+ +

 

+ +

5.2        +Event Window

+ +

The event window is where a given segment’s +event attributes are assigned and auditioned, as shown in the picture below. To +add an event to a segment, the author must first select the segment which will +contain the event, then select the Add button. This will bring up the Event +window.

+ +

 

+ +

+ +

 

+ +

 

+ +

There are two main sections to the event +window. The segment section on the left side of the event window is for display +only. It shows what the segment attributes are for the given segment. The Event +section, on the right side, is where events can be assigned. The following +parameters are available:

+ +

 

+ +

Event Name                    - +Assigns a name to an event

+ +

Event Type                     - +Selects which type of event to assign.

+ +

Starting M/B/T                - +Sets the starting measure, beat, and tick for the event

+ +

Ending M/B/T                 - +Sets the ending measure, beat, and tick for the event, if applicable

+ +

Track                              - +Sets which track in the given segment the event will apply to

+ +

Channel                          - +Sets which MIDI channel the event will apply +to. The MIDI channel should match the MIDI +channel of the track

+ +

Event ID                         - +Sets the event ID for the event. Multiple events can be assigned to the same +segment and therefore the Event ID is used to identify them

+ +

 

+ +

To the right of the Audition window are a few additional buttons. +These do as follows:

+ +

 

+ +

OK                               - +Selecting OK confirms all event settings and closes the event window

+ +

Cancel                          - +Selecting Cancel cancels any changes and closes the event window

+ +

Replicate                      - +Displays the Replicate Event window for entering multiple events at once. See +below.

+ +

Play/Stop                     - +Starts or Stops playback of the segment using the segment attributes assigned. +While the segment is playing, events can be triggered and auditioned.

+ +

Trigger                          - +Triggers the event assigned. This replicates the API command that the JET game +will use to trigger the event, therefore giving the content author a method for +auditioning the behaviour of the event.

+ +

Mute/UnMute                 - +Mute/UnMute will mute or unmute the track that the event is assigned to

+ +

Pause/Resume              - +Pauses or Resumes playback.

+ +

 

+ +

To audition the behaviour of an event, you +can select the Play button. This will initiate playback. The trigger button +will send the trigger event when pressed. This is equivalent to selecting the +green trigger event in the timeline.

+ +

 

+ +

Note: Trigger events are meant to unmute a +single track of a segment when triggered, then mute that track at the end of +the trigger segment. Therefore you should make sure the mute flag is set to +mute the track that a trigger event will be unmuting when receiving a trigger event. +

+ +

 

+ +

Please read Section 7 “Under The Hood” +below for details on how trigger events work and behave.

+ +

 

+ +

5.3        +Replicate Windows

+ +

Often in creating JET files, you’ll need to +create tens or even hundreds of events. You may also need to move events. The +Replicate and Move windows allow for this. There are two Replicate windows for +creating multiple segments or events. They look like the following:

+ +

 

+ +

+ +

 

+ +

Replicate Segment Window

+ +

 

+ +

 

+ +

 

+ +

+ +

 

+ +

Replicate Event Window

+ +

 

+ +

Both Replicate windows function the same. +After creating an initial segment or event, you can select the Replicate +button. The parameters are as follows:

+ +

 

+ +

Name Prefix                  - +Sets the prefix for the name of each segment or event created

+ +

Starting M/B/T               - +Sets the starting time for the first segment or event

+ +

Increment M/B/T            - +Sets the time between segments or events created.

+ +

Number                         - +Sets the number of segments or events you wish to create. If the number +overflows the length of the MIDI file (for +segments) or segment (for events), those objects will not be created.

+ +

Preview                         - +Preview allows you to examine the objects created before saying OK to insert +them.

+ +

 

+ +

 

+ +

5.4        +Move Windows

+ +

The Move function acts similarly to the +Replicate function in that it allows you to edit multiple segments or events at +one time, in this case move them in time. Like Replicate, there are two Move +windows, one for Segments and one for Events. The windows look like the +following:

+ +

 

+ +

+ +

 

+ +

Move Event Window

+ +

 

+ +

To use Move, first select the segments or +events you wish to move in time, then click the Move button. The parameters are +as follows:

+ +

 

+ +

Starting M/B/T               - +Sets the starting time for the first segment or event

+ +

Increment M/B/T            - +Sets the time in M/B/T you wish to move the objects by.

+ +

Preview                         - +Preview allows you to examine the objects created before saying OK to move +them.

+ +

 

+ +

 

+ +

5.5        +Audition Window

+ +

Clicking the Audition button in the main +window of the JET Creator application will open the Audition window. This is +where the content author or application programmer can simulate the interactive +playback as it may occur in the mobile application or game itself.

+ +

 

+ +

+ +

 

+ +

JET Audition Window

+ +

 

+ +

 

+ +

There are four main sections to the +audition window. The left most section displays the available segments and +their length in seconds. The middle section displays a running list of what +segments are queued for playback and what their playback status is. The far +right section displays the mute flags for the currently playing segment. The +timeline section at the bottom is the same as in the main window. It displays +the currently playing segment as well as a visual display of any event triggers +associated with that segment.

+ +

 

+ +

The Audition window allows you to queue up +any segment in any order for playback. To do this simply select the segment you +wish to cue and hit Queue. That segment will appear in the queue window and +start playing (if it is the first segment). Subsequently you can select any +other segment or segments and cue them up for playback. As the segments +complete playback, the next segment in the queue will begin playing. As is the +other windows of JET Creator, you can mute, unmute, trigger event clips, etc. +in realtime as each segment is playing back.

+ +

 

+ +

Specifically the buttons behave as follows:

+ +

 

+ +

Queue                           - +loads the selected segment into the queue and starts playback

+ +

Cancel and Queue         - +cancels the currently playing segment before queueing the selected segment for +playback

+ +

Cancel Current               - +cancels the currently playing segment in the queue and begins playback of the +next segment

+ +

Stop                             - +stops playback of all queued segments

+ +

Mute All                        - +mutes all tracks in the current segment

+ +

Mute None                    - +unmutes all tracks in the current segment

+ +

Original Mutes               - +sets the original mute flags for the current segment

+ +

 

+ +

The combination of these playback options +allows an author or application programmer to audition any behaviour an +interactive music application may encounter.

+ +

 

+ +

 

+ +

5.6        +JET Creator Menus

+ +

The JET Creator menus provide access to +many of the parameters in the main window plus a few additional parameters.

+ +

5.6.1          +File Menu

+ +

The File Menu contains the following +elements:

+ +

 

+ +

New                              - +Creates a new JET Creator file (.jtc)

+ +

Open                            - +Opens an existing JET Creator file

+ +

Save                             - +Saves the currently opened JET Creator file

+ +

Save As                        - +Saves the currently opened JET Creator file to a new file

+ +

Import Project               - Imports a JET Creator archive (.zip)

+ +

Export Project               - Exports a JET Creator archive (.zip)

+ +

Exit                              - +Exits the application

+ +

 

+ +

5.6.2          +Edit Menu

+ +

The Edit Menu contains the following +elements:

+ +

 

+ +

Undo                            - +Undo will undo the last edit made

+ +

Redo                            - +Redo will redo the last undo

+ +

Cut                               - +Copy selected parameter into clipboard and Delete selection

+ +

Copy                            - +Copy selected parameter into clipboard and keep selection

+ +

Paste                            - +Paste selected parameter

+ +

 

+ +

5.6.3          +JET

+ +

The Edit Menu contains the following +elements:

+ +

 

+ +

Properties                     - +Brings up the JET Creator priorities window. This window allows you to set the +following conditions for a given JET file:

+ +

Copyright Info               - Contains copyright info to be inserted into JET file

+ +

Chase Controllers          - Option to chase controllers (on/off). This should usually +be ON.

+ +

Delete Empty Tracks     - Deletes any empty MIDI tracks

+ +

 

+ +

5.6.4          +Segments

+ +

The Segments Menu contains the following +elements:

+ +

 

+ +

Add Segment                - +Brings up the Segment window

+ +

Update Segment           - Updates segment attributes

+ +

Delete Segment                        - Deletes the current segment from the +Segment List

+ +

 

+ +

5.6.5          +Help

+ +

The Help Menu will contain at least the +following elements:

+ +

 

+ +

JET Creator Help           - will launch PDF help document or go to on-line help

+ +

About                           - +JET Creator version number, SONiVOX info

+ +

 

+ +

 

+ +

6         +Trigger Events Explained

+ +

Breaking a MIDI +file into individual (non-linear) segments and queueing up those segments for +playback in a game based on events within the game is one way JET music files are +interactive. Trigger events are an additional method for interactive playback. +Both would be used together in an interactive game or application.

+ +

 

+ +

Trigger events allow for the following:

+ +

 

+ +
    +
  1. Tracks within a MIDI segment can be turned on or off based on game + events. For example the composer could author two drum tracks, one fast + and one slow. If the action in a game is fast, the fast drum track could + play. If the action in the game is slow, the slow drum track can play.
  2. +
  3. User actions can be compared to trigger events which are + pre-inserted into a music file at musically ‘correct’ places. Based on the + results, scoring or other game actions can take place.
  4. +
  5. Musical transitions between levels or action sequences can be + synchronized to be musically seemless.
  6. +
+ +

 

+ +

Under the hood, JET uses standard MIDI CC +events to accomplish these actions and to synchronize audio. The controllers +used by JET are among those not defined for specific use by the MIDI specification. The specific controller definitions +are as follows:

+ +

 

+ +

            Controllers +80-83           Reserved for use by +application

+ +

            Controller +102                JET event marker

+ +

            Controller +103                JET clip marker

+ +

            Controllers +104-119        Reserved for future use

+ +

 

+ +

6.1        +JET Clip Marker (CC103)

+ +

Controller 103 is reserved for marking +clips in a MIDI track that can be triggered by +the JET_TriggerClip API call. The clip ID is encoded in the low 6 bits of the +controller value. Bit 6 is set to one to indicate the start of a clip, and set +to zero to indicate the end of a clip.

+ +

 

+ +

For example, to identify a clip with a clip +ID of 1, the author inserts a MIDI controller +event with controller=103 and value=65 at the start of the clip and another +event with controller=103 and value=1 at the end of the clip. When the +JET_TriggerClip() function is called with a clip ID of 1, the track will be +un-muted when the controller value 65 is encountered and muted again when the +controller value 1 is encountered.

+ +

 

+ +

+ +

Figure 5: Synchronized Clip

+ +

 

+ +

In the figure above, if the +JET_TriggerClip() function is called prior to the first controller event, Track +3 will be un-muted when the first controller event occurs, the first clip will +play, and the track will be muted when the second controller event occurs. If +the JET_TriggerClip() function is called after the first controller event has +occurred, Track 3 will be un-muted when the third controller event occurs, the +second clip will play, and the track will be muted again when the fourth +controller event occurs.

+ +

 

+ +

Note: Normally, the track containing the clip is muted by the application +when the segment is initially queued by the call to JET_QueueSegment(). If it +is not muted, the clip will always play until Jet_TriggerClip() has been called +with the clip ID.

+ +

 

+ +

6.2        +JET Event Marker (CC102)

+ +

Controller 102 is reserved for marking +events in the MIDI streams that are specific +to JET functionality. Currently, the only defined value is 0, which marks the +end of a segment for timing purposes.

+ +

 

+ +

Normally, JET starts playback of the next +segment (or repeats the current segment) when the MIDI +end-of-track meta-event is encountered. Some MIDI +authoring tools make it difficult to place the end-of-track marker accurately, +resulting in synchronization problems when segments are joined together.

+ +

 

+ +

To avoid this problem, the author can place +a JET end-of-segment marker (controller=102, value=0) at the point where the +segment is to be looped. When the end-of-segment marker is encountered, the +next segment will be triggered, or if the current segment is looped, playback +will resume at the start of the segment.

+ +

 

+ +

The end-of-segment marker can also be used +to allow for completion of a musical figure beyond the end of measure that +marks the start of the next segment. For example, the content author might +create a 4-bar segment with a drum fill that ends on beat 1 of the 5th +bar – a bar beyond the natural end of the segment. By placing an end-of-segment +marker at the end of the 4th bar, the next segment will be +triggered, but the drum fill will continue in parallel with the next segment +providing musical continuity.

+ +

 

+ +

+ +

Figure 6: End-of-segment Marker

+ +

6.3        +Application Controllers +(CC80-83)

+ +

The application may use controllers in this +range for its own purposes. When a controller in this range is encountered, the +event is entered into an event queue that can be queried by the application. +Some possible uses include synchronizing video events with audio and marking a +point in a MIDI segment to queue up the next +segment. The range of controllers monitored by the application can be modified +by the application during initialization.

+ +

 

+ +
+ + + + diff --git a/docs/JET_Programming_Manual.htm b/docs/JET_Programming_Manual.htm deleted file mode 100644 index 198a9e6..0000000 --- a/docs/JET_Programming_Manual.htm +++ /dev/null @@ -1,1333 +0,0 @@ - - - - - - - - - - - -JET PROGRAMMING MANUAL - - - - - - - - -
-   Copyright (C) 2009 The Android Open Source Project
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
- -
- -

JET™ Programming Manual

- -

JET -Interactive Music Engine

- -

Vrs 2.0

- -

Authored by SONiVOX

- -

www.sonivoxrocks.com

- -

Copyright 2009 Sonic Network, Inc.

- - - -

 

- -

 

- -

 

- -

Introduction

- -

This document contains programmer guidelines for the SONiVOX -JET Interactive Music System. JET is an interactive music player for small -embedded devices, including the Google Android platform. It allows applications -to include interactive music soundtracks, in MIDI -format, that respond in real-time to game play events and user interaction.

- -

 

- -

JET works in conjunction with SONiVOX’s Embedded Audio -Synthesizer (EAS) which is the MIDI playback -device for Android.  Both the JET and EAS -engines are integrated into the Android embedded platform as well as inherent -in JET Creator, an application for -authoring JET content files. As such, the JET content author can be sure that -the playback will sound exactly the same in both JET Creator and the final Android application playing back on -Android mobile devices.

- -

 

- -

The programmer of a JET application will want to work -closely with the content author in designing how real-time application events -and music will interactively work together. Once decided, the content author -will create the content and ultimately save a .jet file for the programmer to -include in the application.

- -

 

- -

Please see “JET Creator User Documentation” for additional -information on authoring JET content.

- -

 

- -

Abbreviations and Common Terms

- -

It is important to use a common set of terms to minimize confusion. -Since JET uses MIDI in a unique way, normal -industry terms may not always suffice. Here is the definition of terms as they -are used in this document and in the JET Creator application:

- -

 

- -

Channel: MIDI data -associated with a specific MIDI channel. -Standard MIDI allows for 16 channels of MIDI -data each of which are typically associated with a specific instrument.

- -

 

- -

Controller: A MIDI event consisting of a channel number, controller -number, and a controller value. The MIDI spec -associates many controller numbers with specific functions, such as volume, -expression, sustain pedal, etc. JET also uses controller events as a means of -embedding special control information in a MIDI -sequence to provide for audio synchronization.

- -

 

- -

DAW: Digital Audio -Workstation. A common term for MIDI and audio -sequencing applications such as Logic, SONAR, Cubase and others.

- -

 

- -

EAS: Embedded MIDI Synthesizer. The name of the SONiVOX MIDI -synthesizer engine.

- -

 

- -

JET: Jet -Interactive Engine. The name of the SONiVOX JET interactive music engine.

- -

 

- -

Segment: A musical -section such as a chorus or verse that is a component of the overall -composition. In JET, a segment can be an entire MIDI file or a derived from a -portion of a MIDI file.

- -

 

- -

SMF-0: Standard -MIDI File Type 0, a MIDI file that contains a single track, but may be made up -of multiple channels of MIDI data.

- -

 

- -

SMF-1: Standard -MIDI File Type 1, a MIDI file that contains a one more tracks, and each track -may in turn be made up of one or more channels of MIDI -data. By convention, each channel is stored on a separate track in an SMF-1 -file. However, it is possible to have multiple MIDI channels on a single track, -or multiple tracks that contain data for the same MIDI -channel.

- -

 

- -

Track: A single -track in a DAW containing a timed sequence of MIDI -events. Be careful not to confuse Tracks with Channels. A MIDI file may contain -many tracks with several tracks utilizing the same MIDI -channel.

- -

 

- -

 

- -

The JET -Interactive Music Concept

- -

Interactive music can be defined as music that changes in -real-time according to non-predictable events such as user interaction or game -play events. In this way, interactive music is much more engaging as it has the -ability to match the energy and mood of a game much closer than a pre-composed -composition that never changes. In some applications and games, interactive -music is central to the game play. Guitar Hero is one such popular game. When -the end user successfully ‘captures’ the musical notes coming down the fret -board, the music adapts itself and simultaneously keeps score of successes and -failures. JET allows for these types of music driven games as well.

- -

 

- -

There are several methods for making and controlling -interactive music and JET is one such method. This section describes the -features of JET and how they might be used in a game or software application. -It also describes how JET can be used to save memory in small footprint devices -such as Android enabled mobile handsets.

- -

 

- -

JET Operation

- -

JET supports a flexible music format that can be used to -create extended musical sequences with a minimal amount of data. A musical -composition is broken up into segments that can be sequenced to create a longer -piece. The sequencing can be fixed at the time the music file is authored, or -it can be created dynamically under program control.

- -

Linear Music -Example

- -

- -

Figure 1: Linear Music Piece

- -

 

- -

This diagram shows how musical segments are stored. Each -segment is authored as a separate MIDI file. A -post-processing tool combines the files into a single container file. Each -segment can contain alternate music tracks that can be muted or un-muted to -create additional interest. An example might be a brass accent in the chorus -that is played only the last time through. Also, segments can be transposed up -or down.

- -

 

- -

The bottom part of the diagram shows how the musical -segments can be recombined to create a linear music piece. In this example, the -bridge might end with a half-step key modulation and the remaining segments -could be transposed up a half-step to match.

- -

Non-linear Music Example

- -

- -

Figure 2: Non-linear music piece

- -

 

- -

In this diagram, we see a non-linear music piece. The -scenario is a first-person-shooter (FPS) and JET is providing the background -music. The intro plays as the level is loading and then transitions under -program control to the Searching segment. This segment is repeated -indefinitely, perhaps with small variations (using the mute/un-mute feature) -until activity in the game dictates a change.

- -

 

- -

As the player nears a monster lair, the program starts a -synchronized transition to the Danger segment, increasing the tension level in -the audio. As the player draws closer to the lair, additional tracks are -un-muted to increase the tension.

- -

 

- -

As the player enters into combat with the monster, the -program starts a synchronized transition to the Combat segment. The segment -repeats indefinitely as the combat continues. A Bonus Hit temporarily un-mutes -a decorative track that notifies the player of a successful attack, and -similarly, another track is temporarily un-muted to signify when the player -receives Special Damage.

- -

 

- -

At the end of combat, the music transitions to a victory or -defeat segment based on the outcome of battle.

- -

Mute/Un-mute Synchronization

- -

JET can also synchronize the muting and un-muting of tracks -to events in the music. For example, in the FPS game, it would probably be -desirable to place the musical events relating to bonuses and damage as close -to the actual game event as possible. However, simply un-muting a track at the -moment the game event occurs might result in a music clip starting in the -middle. Alternatively, a clip could be started from the beginning, but then it -wouldn’t be synchronized with the other music tracks.

- -

 

- -

However, with the JET sync engine, a clip can be started at -the next opportune moment and maintain synchronization. This can be -accomplished by placing a number of short music clips on a decorative track. A MIDI event in the stream signifies the start of a clip -and a second event signifies the end of a clip. When the application calls the -JET clip function, the next clip in the track is allowed to play fully -synchronized to the music. Optionally, the track can be automatically muted by -a second MIDI event.

- -

 

- -

- -

Figure 3: Synchronized Mute/Unmute

- -

Audio Synchronization

- -

JET provides an audio synchronization API that allows game -play to be synchronized to events in the audio. The mechanism relies on data -embedded in the MIDI file at the time the -content is authored. When the JET engine senses an event during playback it -generates a callback into the application program. The timing of the callback -can be adjusted to compensate for any latency in the audio playback system so -that audio and video can be synchronized. The diagram below shows an example of -a simple music game that involves pressing the left and right arrows in time -with the music.

- -

 

- -

 

- -

- -

Figure 4: Music Game with -Synchronization

- -

 

- -

The arrows represent events in the music sequence where game -events need to be synchronized. In this case, the blue arrow represents a time -where the player is supposed to press the left button, and the red arrow is for -the right button. The yellow arrow tells the game engine that the sequence is -complete. The player is allowed a certain time window before and after the -event to press the appropriate key.

- -

 

- -

If an event is received and the player has not pressed a -button, a timer is set to half the length of the window. If the player presses -the button before the timer expires, the game registers a success, and if not, -the game registers a failure.

- -

 

- -

If the player presses the button before the event is -received, a timer is set to half the length of the window. If an event is -received before the timer expires, the game registers a success, and if not, -the game registers a failure. Game play might also include bonuses for getting -close to the timing of the actual event.

- -

 

- -

Operational Details

- -

JET uses the standard EAS library calls to manage multiple MIDI streams that are synchronized to sound like a -seamless audio track. JET requires the use of the dynamic memory model, i.e. -support for malloc() and free() memory allocation functions or their -equivalent. JET also requires the DLS parser and synthesizer module to support -custom instruments in JET content files.

- -

 

- -

JET uses standard MIDI -events for audio synchronization. This simplifies the authoring process by -allowing content authors to use their favorite tools for developing content. -After the content has been developed, a simple post-processing tool pulls the -content together into a JET compatible content file.

- -

Synchronization Events

- -

JET uses MIDI controller -events to synchronize audio. The controllers used by JET are among those not -defined for specific use by the MIDI -specification. The specific controller definitions are as follows:

- -

 

- -

            Controllers -80-83                 Reserved for use by -application

- -

            Controller 102                       JET event marker

- -

            Controller -103                       JET clip marker

- -

            Controllers -104-119             Reserved for future -use

- -

 

- -

Controllers 80-83 – Application Controllers

- -

The application may use controllers in this range for its -own purposes. When a controller in this range is encountered, the event is -entered into an event queue that can be queried by the application. Some -possible uses include synchronizing video events with audio and marking a point -in a MIDI segment to queue up the next -segment. The range of controllers monitored by the application can be modified -by the application during initialization.

- -

Controller 102 – JET Event Marker

- -

Controller 102 is reserved for marking events in the MIDI streams that are specific to JET functionality. -Currently, the only defined value is 0, which marks the end of a segment for -timing purposes.

- -

 

- -

Normally, JET starts playback of the next segment (or -repeats the current segment) when the MIDI -end-of-track meta-event is encountered. Some MIDI -authoring tools make it difficult to place the end-of-track marker accurately, -resulting in synchronization problems when segments are joined together.

- -

 

- -

To avoid this problem, the author can place a JET -end-of-segment marker (controller=102, value=0) at the point where the segment is -to be looped. When the end-of-segment marker is encountered, the next segment -will be triggered, or if the current segment is looped, playback will resume at -the start of the segment.

- -

 

- -

The end-of-segment marker can also be used to allow for -completion of a musical figure beyond the end of measure that marks the start -of the next segment. For example, the content author might create a 4-bar -segment with a drum fill that ends on beat 1 of the 5th bar – a bar -beyond the natural end of the segment. By placing an end-of-segment marker at -the end of the 4th bar, the next segment will be triggered, but the -drum fill will continue in parallel with the next segment providing musical -continuity.

- -

 

- -

- -

Figure 5: End-of-segment Marker

- -

Controller 103 – JET Clip Marker

- -

Controller 103 is reserved for marking clips in a MIDI track that can be triggered by the JET_TriggerClip -API call. The clip ID is encoded in the low 6 bits of the controller value. Bit -6 is set to one to indicate the start of a clip, and set to zero to indicate -the end of a clip.

- -

 

- -

For example, to identify a clip with a clip ID of 1, the -author inserts a MIDI controller event with -controller=103 and value=65 at the start of the clip and another event with controller=103 -and value=1 at the end of the clip. When the JET_TriggerClip() function is -called with a clip ID of 1, the track will be un-muted when the controller -value 65 is encountered and muted again when the controller value 1 is -encountered.

- -

 

- -

- -

Figure 6: Synchronized Clip

- -

 

- -

In the figure above, if the JET_TriggerClip() function is -called prior to the first controller event, Track 3 will be un-muted when the -first controller event occurs, the first clip will play, and the track will be -muted when the second controller event occurs. If the JET_TriggerClip() -function is called after the first controller event has occurred, Track 3 will -be un-muted when the third controller event occurs, the second clip will play, -and the track will be muted again when the fourth controller event occurs.

- -

 

- -

Note: Normally, -the track containing the clip is muted by the application when the segment is -initially queued by the call to JET_QueueSegment(). If it is not muted, the clip -will always play until Jet_TriggerClip() has been called with the clip ID.

- -

JET Programming

- -

The JET library builds on functionality in the EAS library. -It is assumed that the reader is familiar with EAS and has implemented basic -EAS audio functionality in the application. Specifically, the application must -first initialize EAS by calling EAS_Init() and must call EAS_Render() at -appropriate times to render audio and stream it to the audio hardware. JET also -requires the use of the dynamic memory model which uses malloc() and free() or -functional equivalents.

- -

 

- -

Most JET function calls return an EAS_RESULT type which -should be checked against the EAS_SUCCESS return code. Most failures are not -fatal, i.e. they will not put the library in a state where it must be -re-initialized. However, some failures such as memory allocation or file -open/read errors will likely result in the specific open content failing to -render.

- -

JET Application Initialization

- -

The JET library is initialized by the JET_Init() function. -The application must first call EAS_Init() and then pass the EAS data handle -returned by EAS_Init() to the JET_Init() function. Currently, only a single JET -application can be active at a time.

- -

 

- -

The JET_Init function takes 3 arguments: The first is the -EAS data handle. The second is a pointer to a configuration structure -S_JET_CONFIG and the third is the size of the configuration structure. For most -applications, it is sufficient to pass a NULL pointer and size 0 for the -configuration data.

- -

 

- -

However, if desired, the configuration can be modified to -allow the application to monitor MIDI events -outside the normal range of controllers allocated for JET application events. -In this case, a configuration structure should be allocated and the data fields -initialized with the appropriate values with the low and high controller -numbers to be monitored. The size field should be the sizeof() of the data -structure. This is to allow for future enhancement of the configuration data -while maintaining compatibility.

- -

JET Application Termination

- -

When the JET application terminates, it should call -JET_Shutdown() to release the resources allocated by the JET engine.  If the application has no other use for the -EAS library, it should also call EAS_Shutdown().

- -

JET Audio Processing

- -

To start the JET engine, the content must first be opened -with the JET_OpenFile() function. Just as with EAS_OpenFile(), the file locator -is an opaque value that is passed to the EAS_HWOpenFile() function. It can -either be a pointer to a filename, or a pointer to an in-memory object, -depending on the user implementation of file I/O in the eas_host.c or -eas_hostmm.c module. Only a single JET content file can be opened at a time.

- -

 

- -

Once the JET file is opened, the application can begin -queuing up segments for playback by calling the JET_QueueSegment() function. -Generally, it is advisable to keep a minimum of two segments queued at all -times:  the currently playing segment -plus an additional segment that is ready to start playing when the current -segment finishes. However, with proper programming, it is possible to queue up -segments using a “just-in-time” technique. This technique typically involves -careful placement of application controller events near the end of a segment so -that the application is informed when a segment is about to end.

- -

 

- -

After the segment(s) are queued up, playback can begin. By -default, the segments are initialized in a paused state. To start playback, -call the JET_Play() function. Playback can be paused again by calling the JET_Pause() -function. Once initiated, playback will continue as long as the application -continues to queue up new segments before all the segments in the queue are -exhausted.

- -

 

- -

The JET_Status() function can be used to monitor progress. -It returns the number of segments queued, repeat count, current segment ID, and -play status. By monitor the number of segments queued, the application can -determine when it needs to queue another segment and when playback has -completed.

- -

 

- -

When playback has completed and the application is finished -with the contents of the currently open file, the application should call -JET_CloseFile() to close the file and release any resources associated with the -file.

- -

JET_Init

- -

EAS_PUBLIC EAS_RESULT JET_Init -(EAS_DATA_HANDLE easHandle, S_JET_CONFIG *pConfig, EAS_INT configSize)

- -

 

- -

Initializes JET library for use by application. Most -application should simply pass a NULL for pConfig and 0 for configSize, which -means that only controller events in the application range (80-83) will end up -in the application event queue. If desired, the application can instantiate an -S_JET_CONFIG data structure and set the controller range to a different range. -In this case, the configSize parameter should be set to sizeof(S_JET_CONFIG).

- -

JET_Shutdown

- -

EAS_PUBLIC EAS_RESULT JET_Shutdown -(EAS_DATA_HANDLE easHandle)

- -

 

- -

Releases resources used by the JET library. The application -should call this function when it is no longer using the JET library.

- -

JET_ OpenFile

- -

EAS_PUBLIC EAS_RESULT JET_OpenFile -(EAS_DATA_HANDLE easHandle, EAS_FILE_LOCATOR locator)

- -

 

- -

Opens a JET content file for playback. Content must be -formatted for use by the JET library, which is typically accomplished with the -jetfile.py script (see “Creating JET Content”). Only a single JET content file -can be opened at a time. However, since JET can contain many MIDI -files and DLS libraries, this limitation is normally not an issue.

- -

JET_ CloseFile

- -

EAS_PUBLIC EAS_RESULT JET_CloseFile -(EAS_DATA_HANDLE easHandle)

- -

 

- -

Closes a JET file and release the resources associated with it.

- -

JET_ Status

- -

EAS_PUBLIC EAS_RESULT JET_Status -(EAS_DATA_HANDLE easHandle, S_JET_STATUS *pStatus)

- -

 

- -

Returns the current JET status. The elements of the status -data structure are as follows:

- -

 

- -

typedef struct s_jet_status_tag

- -

{

- -

     EAS_INT   currentUserID;

- -

     EAS_INT   segmentRepeatCount;

- -

     EAS_INT   numQueuedSegments;

- -

     EAS_BOOL paused;

- -

} S_JET_STATUS;

- -

 

- -

currentUserID: An -8-bit value assigned by the application.

- -

 

- -

segmentRepeatCount: -Number of times left to repeat. Zero indicates no repeats, a negative number -indicates an infinite number of repeats. Any positive value indicates that the -segment will play n+1 times.

- -

 

- -

numQueuedSegments: -Number of segments currently queued to play including the currently playing -segment. A value of zero indicates that nothing is playing. Normally, the -application will queue a new segment each time the value is 1 so that playback -is uninterrupted.

- -

JET_ QueueSegment

- -

EAS_PUBLIC EAS_RESULT JET_QueueSegment -(EAS_DATA_HANDLE easHandle, EAS_INT segmentNum, EAS_INT libNum, EAS_INT -repeatCount, EAS_INT transpose, EAS_U32 muteFlags, EAS_U8 userID)

- -

 

- -

Queues up a JET MIDI segment for playback. The parameters -are as follows:

- -

 

- -

segmentNum: -Segment number as identified in the JET content configuration file.

- -

 

- -

libNum: The library -number as specified in the JET content configuration file. Use -1 to select the -standard General MIDI library.

- -

 

- -

repeatCount: The -number of times this segment should repeat. Zero indicates no repeat, i.e. play -only once. Any positive number indicates to play n+1 times. Set to -1 to repeat -indefinitely.

- -

 

- -

transpose: The -amount of pitch transposition. Set to 0 for normal playback. Range is -12 to -+12.

- -

 

- -

muteFlags: -Specific which MIDI tracks (not MIDI channels) -should be muted during playback. These flags can be changed dynamically using -the mute functions. Bit 0 = track 0, bit 1 = track 1, etc.

- -

 

- -

userID: 8-bit -value specified by the application that uniquely identifies the segment. This -value is returned in the JET_Status() function as well as by the application -event when an event is detected in a segment. Normally, the application keeps -an 8-bit value that is incremented each time a new segment is queued up. This -can be used to look up any special characteristics of that track including -trigger clips and mute flags.

- -

JET_ Play

- -

EAS_PUBLIC EAS_RESULT JET_Play -(EAS_DATA_HANDLE easHandle)

- -

 

- -

Starts playback of the current segment. This function must -be called once after the initial segments are queued up to start playback. It -is also called after JET_Pause() to resume playback.

- -

JET_ Pause

- -

EAS_PUBLIC EAS_RESULT JET_Pause -(EAS_DATA_HANDLE easHandle)

- -

 

- -

Pauses playback of the current segment. Call JET_Pause() to -resume playback.

- -

JET_ SetMuteFlags

- -

EAS_PUBLIC EAS_RESULT JET_SetMuteFlags -(EAS_DATA_HANDLE easHandle, EAS_U32 muteFlags, EAS_BOOL sync)

- -

 

- -

Modifies the mute flags during playback. If the sync parameter is false, the mute flags -are updated at the beginning of the next render. This means that any new notes -or controller events will be processed during the next audio frame. If the sync parameter is true, the mute flags -will be updated at the start of the next segment. If the segment is repeated, -the flags will take effect the next time segment is repeated.

- -

JET_ SetMuteFlag

- -

EAS_PUBLIC EAS_RESULT JET_SetMuteFlag -(EAS_DATA_HANDLE easHandle, EAS_INT trackNum, EAS_BOOL muteFlag, EAS_BOOL sync)

- -

Modifies a mute flag for a single track during playback. If -the sync parameter is false, the mute -flag is updated at the beginning of the next render. This means that any new -notes or controller events will be processed during the next audio frame. If -the sync parameter is true, the mute -flag will be updated at the start of the next segment. If the segment is -repeated, the flag will take effect the next time segment is repeated.

- -

JET_ TriggerClip

- -

EAS_PUBLIC EAS_RESULT JET_TriggerClip -(EAS_DATA_HANDLE easHandle, EAS_INT clipID)

- -

 

- -

Automatically updates mute flags in sync with the JET Clip -Marker (controller 103). The parameter clipID -must be in the range of 0-63. After the call to JET_TriggerClip, when JET next -encounters a controller event 103 with bits 0-5 of the value equal to clipID and bit 6 set to 1, it will automatically un-mute the track containing -the controller event. When JET encounters the complementary controller event -103 with bits 0-5 of the value equal to clipID -and bit 6 set to 0, it will mute -the track again.

- -

JET_ GetEvent

- -

EAS_BOOL JET_GetEvent (EAS_DATA_HANDLE -easHandle, EAS_U32 *pEventRaw, S_JET_EVENT *pEvent)

- -

 

- -

Attempts to read an event from the application event queue, -return EAS_TRUE if an event is found and EAS_FALSE if not. If the application -passes a valid pointer for pEventRaw, -a 32-bit compressed event code is returned. If the application passes a valid -pointer for pEvent, the event is -parsed into the S_JET_EVENT fields. The application can pass NULL for either -parameter and that variable will be ignored. Normally, the application will -call JET_GetEvent() repeatedly to retrieve events until it returns EAS_FALSE.

- -

JET_ ParseEvent

- -

EAS_PUBLIC void JET_ParseEvent (EAS_U32 -event, S_JET_EVENT *pEvent)

- -

Parses a 32-bit compressed event code into a data structure. -The application passes the event code received from JET_GetEvent(). The parsed -event data is returned in the memory pointed to by pEvent.

- -

JET_GetAppData

- -

EAS_RESULT JET_GetAppData -(EAS_DATA_HANDLE easHandle, EAS_I32 *pAppDataOffset, EAS_I32 *pAppDataSize)

- -

Returns the offset and size of the JAPP chunk in the JET -file. The application can use the file I/O functions in the eas_host module to -retrieve application specific data from the file.

- -

 

- -

 

- -

Creating JET Content

- -

JET uses standard MIDI files and DLS files that can be -created with commercially available content tools such as Logic, Cubase, -Digital Performer, or SONAR for MIDI files and -Awave for DLS2 files. These source files are then bundled into a .jet package -file suitable for use in a JET application.

- -

 

- -

To create JET file use the “JET Creator” desktop -application. The JET Creator application is written in Python and includes a -full graphical interface. It is available for MAC and PC platforms. See “JET -Creator User Manual” for more information.

- -
- - - - diff --git a/docs/JET_Programming_Manual.html b/docs/JET_Programming_Manual.html new file mode 100644 index 0000000..198a9e6 --- /dev/null +++ b/docs/JET_Programming_Manual.html @@ -0,0 +1,1333 @@ + + + + + + + + + + + +JET PROGRAMMING MANUAL + + + + + + + + +
+   Copyright (C) 2009 The Android Open Source Project
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+ +
+ +

JET™ Programming Manual

+ +

JET +Interactive Music Engine

+ +

Vrs 2.0

+ +

Authored by SONiVOX

+ +

www.sonivoxrocks.com

+ +

Copyright 2009 Sonic Network, Inc.

+ + + +

 

+ +

 

+ +

 

+ +

Introduction

+ +

This document contains programmer guidelines for the SONiVOX +JET Interactive Music System. JET is an interactive music player for small +embedded devices, including the Google Android platform. It allows applications +to include interactive music soundtracks, in MIDI +format, that respond in real-time to game play events and user interaction.

+ +

 

+ +

JET works in conjunction with SONiVOX’s Embedded Audio +Synthesizer (EAS) which is the MIDI playback +device for Android.  Both the JET and EAS +engines are integrated into the Android embedded platform as well as inherent +in JET Creator, an application for +authoring JET content files. As such, the JET content author can be sure that +the playback will sound exactly the same in both JET Creator and the final Android application playing back on +Android mobile devices.

+ +

 

+ +

The programmer of a JET application will want to work +closely with the content author in designing how real-time application events +and music will interactively work together. Once decided, the content author +will create the content and ultimately save a .jet file for the programmer to +include in the application.

+ +

 

+ +

Please see “JET Creator User Documentation” for additional +information on authoring JET content.

+ +

 

+ +

Abbreviations and Common Terms

+ +

It is important to use a common set of terms to minimize confusion. +Since JET uses MIDI in a unique way, normal +industry terms may not always suffice. Here is the definition of terms as they +are used in this document and in the JET Creator application:

+ +

 

+ +

Channel: MIDI data +associated with a specific MIDI channel. +Standard MIDI allows for 16 channels of MIDI +data each of which are typically associated with a specific instrument.

+ +

 

+ +

Controller: A MIDI event consisting of a channel number, controller +number, and a controller value. The MIDI spec +associates many controller numbers with specific functions, such as volume, +expression, sustain pedal, etc. JET also uses controller events as a means of +embedding special control information in a MIDI +sequence to provide for audio synchronization.

+ +

 

+ +

DAW: Digital Audio +Workstation. A common term for MIDI and audio +sequencing applications such as Logic, SONAR, Cubase and others.

+ +

 

+ +

EAS: Embedded MIDI Synthesizer. The name of the SONiVOX MIDI +synthesizer engine.

+ +

 

+ +

JET: Jet +Interactive Engine. The name of the SONiVOX JET interactive music engine.

+ +

 

+ +

Segment: A musical +section such as a chorus or verse that is a component of the overall +composition. In JET, a segment can be an entire MIDI file or a derived from a +portion of a MIDI file.

+ +

 

+ +

SMF-0: Standard +MIDI File Type 0, a MIDI file that contains a single track, but may be made up +of multiple channels of MIDI data.

+ +

 

+ +

SMF-1: Standard +MIDI File Type 1, a MIDI file that contains a one more tracks, and each track +may in turn be made up of one or more channels of MIDI +data. By convention, each channel is stored on a separate track in an SMF-1 +file. However, it is possible to have multiple MIDI channels on a single track, +or multiple tracks that contain data for the same MIDI +channel.

+ +

 

+ +

Track: A single +track in a DAW containing a timed sequence of MIDI +events. Be careful not to confuse Tracks with Channels. A MIDI file may contain +many tracks with several tracks utilizing the same MIDI +channel.

+ +

 

+ +

 

+ +

The JET +Interactive Music Concept

+ +

Interactive music can be defined as music that changes in +real-time according to non-predictable events such as user interaction or game +play events. In this way, interactive music is much more engaging as it has the +ability to match the energy and mood of a game much closer than a pre-composed +composition that never changes. In some applications and games, interactive +music is central to the game play. Guitar Hero is one such popular game. When +the end user successfully ‘captures’ the musical notes coming down the fret +board, the music adapts itself and simultaneously keeps score of successes and +failures. JET allows for these types of music driven games as well.

+ +

 

+ +

There are several methods for making and controlling +interactive music and JET is one such method. This section describes the +features of JET and how they might be used in a game or software application. +It also describes how JET can be used to save memory in small footprint devices +such as Android enabled mobile handsets.

+ +

 

+ +

JET Operation

+ +

JET supports a flexible music format that can be used to +create extended musical sequences with a minimal amount of data. A musical +composition is broken up into segments that can be sequenced to create a longer +piece. The sequencing can be fixed at the time the music file is authored, or +it can be created dynamically under program control.

+ +

Linear Music +Example

+ +

+ +

Figure 1: Linear Music Piece

+ +

 

+ +

This diagram shows how musical segments are stored. Each +segment is authored as a separate MIDI file. A +post-processing tool combines the files into a single container file. Each +segment can contain alternate music tracks that can be muted or un-muted to +create additional interest. An example might be a brass accent in the chorus +that is played only the last time through. Also, segments can be transposed up +or down.

+ +

 

+ +

The bottom part of the diagram shows how the musical +segments can be recombined to create a linear music piece. In this example, the +bridge might end with a half-step key modulation and the remaining segments +could be transposed up a half-step to match.

+ +

Non-linear Music Example

+ +

+ +

Figure 2: Non-linear music piece

+ +

 

+ +

In this diagram, we see a non-linear music piece. The +scenario is a first-person-shooter (FPS) and JET is providing the background +music. The intro plays as the level is loading and then transitions under +program control to the Searching segment. This segment is repeated +indefinitely, perhaps with small variations (using the mute/un-mute feature) +until activity in the game dictates a change.

+ +

 

+ +

As the player nears a monster lair, the program starts a +synchronized transition to the Danger segment, increasing the tension level in +the audio. As the player draws closer to the lair, additional tracks are +un-muted to increase the tension.

+ +

 

+ +

As the player enters into combat with the monster, the +program starts a synchronized transition to the Combat segment. The segment +repeats indefinitely as the combat continues. A Bonus Hit temporarily un-mutes +a decorative track that notifies the player of a successful attack, and +similarly, another track is temporarily un-muted to signify when the player +receives Special Damage.

+ +

 

+ +

At the end of combat, the music transitions to a victory or +defeat segment based on the outcome of battle.

+ +

Mute/Un-mute Synchronization

+ +

JET can also synchronize the muting and un-muting of tracks +to events in the music. For example, in the FPS game, it would probably be +desirable to place the musical events relating to bonuses and damage as close +to the actual game event as possible. However, simply un-muting a track at the +moment the game event occurs might result in a music clip starting in the +middle. Alternatively, a clip could be started from the beginning, but then it +wouldn’t be synchronized with the other music tracks.

+ +

 

+ +

However, with the JET sync engine, a clip can be started at +the next opportune moment and maintain synchronization. This can be +accomplished by placing a number of short music clips on a decorative track. A MIDI event in the stream signifies the start of a clip +and a second event signifies the end of a clip. When the application calls the +JET clip function, the next clip in the track is allowed to play fully +synchronized to the music. Optionally, the track can be automatically muted by +a second MIDI event.

+ +

 

+ +

+ +

Figure 3: Synchronized Mute/Unmute

+ +

Audio Synchronization

+ +

JET provides an audio synchronization API that allows game +play to be synchronized to events in the audio. The mechanism relies on data +embedded in the MIDI file at the time the +content is authored. When the JET engine senses an event during playback it +generates a callback into the application program. The timing of the callback +can be adjusted to compensate for any latency in the audio playback system so +that audio and video can be synchronized. The diagram below shows an example of +a simple music game that involves pressing the left and right arrows in time +with the music.

+ +

 

+ +

 

+ +

+ +

Figure 4: Music Game with +Synchronization

+ +

 

+ +

The arrows represent events in the music sequence where game +events need to be synchronized. In this case, the blue arrow represents a time +where the player is supposed to press the left button, and the red arrow is for +the right button. The yellow arrow tells the game engine that the sequence is +complete. The player is allowed a certain time window before and after the +event to press the appropriate key.

+ +

 

+ +

If an event is received and the player has not pressed a +button, a timer is set to half the length of the window. If the player presses +the button before the timer expires, the game registers a success, and if not, +the game registers a failure.

+ +

 

+ +

If the player presses the button before the event is +received, a timer is set to half the length of the window. If an event is +received before the timer expires, the game registers a success, and if not, +the game registers a failure. Game play might also include bonuses for getting +close to the timing of the actual event.

+ +

 

+ +

Operational Details

+ +

JET uses the standard EAS library calls to manage multiple MIDI streams that are synchronized to sound like a +seamless audio track. JET requires the use of the dynamic memory model, i.e. +support for malloc() and free() memory allocation functions or their +equivalent. JET also requires the DLS parser and synthesizer module to support +custom instruments in JET content files.

+ +

 

+ +

JET uses standard MIDI +events for audio synchronization. This simplifies the authoring process by +allowing content authors to use their favorite tools for developing content. +After the content has been developed, a simple post-processing tool pulls the +content together into a JET compatible content file.

+ +

Synchronization Events

+ +

JET uses MIDI controller +events to synchronize audio. The controllers used by JET are among those not +defined for specific use by the MIDI +specification. The specific controller definitions are as follows:

+ +

 

+ +

            Controllers +80-83                 Reserved for use by +application

+ +

            Controller 102                       JET event marker

+ +

            Controller +103                       JET clip marker

+ +

            Controllers +104-119             Reserved for future +use

+ +

 

+ +

Controllers 80-83 – Application Controllers

+ +

The application may use controllers in this range for its +own purposes. When a controller in this range is encountered, the event is +entered into an event queue that can be queried by the application. Some +possible uses include synchronizing video events with audio and marking a point +in a MIDI segment to queue up the next +segment. The range of controllers monitored by the application can be modified +by the application during initialization.

+ +

Controller 102 – JET Event Marker

+ +

Controller 102 is reserved for marking events in the MIDI streams that are specific to JET functionality. +Currently, the only defined value is 0, which marks the end of a segment for +timing purposes.

+ +

 

+ +

Normally, JET starts playback of the next segment (or +repeats the current segment) when the MIDI +end-of-track meta-event is encountered. Some MIDI +authoring tools make it difficult to place the end-of-track marker accurately, +resulting in synchronization problems when segments are joined together.

+ +

 

+ +

To avoid this problem, the author can place a JET +end-of-segment marker (controller=102, value=0) at the point where the segment is +to be looped. When the end-of-segment marker is encountered, the next segment +will be triggered, or if the current segment is looped, playback will resume at +the start of the segment.

+ +

 

+ +

The end-of-segment marker can also be used to allow for +completion of a musical figure beyond the end of measure that marks the start +of the next segment. For example, the content author might create a 4-bar +segment with a drum fill that ends on beat 1 of the 5th bar – a bar +beyond the natural end of the segment. By placing an end-of-segment marker at +the end of the 4th bar, the next segment will be triggered, but the +drum fill will continue in parallel with the next segment providing musical +continuity.

+ +

 

+ +

+ +

Figure 5: End-of-segment Marker

+ +

Controller 103 – JET Clip Marker

+ +

Controller 103 is reserved for marking clips in a MIDI track that can be triggered by the JET_TriggerClip +API call. The clip ID is encoded in the low 6 bits of the controller value. Bit +6 is set to one to indicate the start of a clip, and set to zero to indicate +the end of a clip.

+ +

 

+ +

For example, to identify a clip with a clip ID of 1, the +author inserts a MIDI controller event with +controller=103 and value=65 at the start of the clip and another event with controller=103 +and value=1 at the end of the clip. When the JET_TriggerClip() function is +called with a clip ID of 1, the track will be un-muted when the controller +value 65 is encountered and muted again when the controller value 1 is +encountered.

+ +

 

+ +

+ +

Figure 6: Synchronized Clip

+ +

 

+ +

In the figure above, if the JET_TriggerClip() function is +called prior to the first controller event, Track 3 will be un-muted when the +first controller event occurs, the first clip will play, and the track will be +muted when the second controller event occurs. If the JET_TriggerClip() +function is called after the first controller event has occurred, Track 3 will +be un-muted when the third controller event occurs, the second clip will play, +and the track will be muted again when the fourth controller event occurs.

+ +

 

+ +

Note: Normally, +the track containing the clip is muted by the application when the segment is +initially queued by the call to JET_QueueSegment(). If it is not muted, the clip +will always play until Jet_TriggerClip() has been called with the clip ID.

+ +

JET Programming

+ +

The JET library builds on functionality in the EAS library. +It is assumed that the reader is familiar with EAS and has implemented basic +EAS audio functionality in the application. Specifically, the application must +first initialize EAS by calling EAS_Init() and must call EAS_Render() at +appropriate times to render audio and stream it to the audio hardware. JET also +requires the use of the dynamic memory model which uses malloc() and free() or +functional equivalents.

+ +

 

+ +

Most JET function calls return an EAS_RESULT type which +should be checked against the EAS_SUCCESS return code. Most failures are not +fatal, i.e. they will not put the library in a state where it must be +re-initialized. However, some failures such as memory allocation or file +open/read errors will likely result in the specific open content failing to +render.

+ +

JET Application Initialization

+ +

The JET library is initialized by the JET_Init() function. +The application must first call EAS_Init() and then pass the EAS data handle +returned by EAS_Init() to the JET_Init() function. Currently, only a single JET +application can be active at a time.

+ +

 

+ +

The JET_Init function takes 3 arguments: The first is the +EAS data handle. The second is a pointer to a configuration structure +S_JET_CONFIG and the third is the size of the configuration structure. For most +applications, it is sufficient to pass a NULL pointer and size 0 for the +configuration data.

+ +

 

+ +

However, if desired, the configuration can be modified to +allow the application to monitor MIDI events +outside the normal range of controllers allocated for JET application events. +In this case, a configuration structure should be allocated and the data fields +initialized with the appropriate values with the low and high controller +numbers to be monitored. The size field should be the sizeof() of the data +structure. This is to allow for future enhancement of the configuration data +while maintaining compatibility.

+ +

JET Application Termination

+ +

When the JET application terminates, it should call +JET_Shutdown() to release the resources allocated by the JET engine.  If the application has no other use for the +EAS library, it should also call EAS_Shutdown().

+ +

JET Audio Processing

+ +

To start the JET engine, the content must first be opened +with the JET_OpenFile() function. Just as with EAS_OpenFile(), the file locator +is an opaque value that is passed to the EAS_HWOpenFile() function. It can +either be a pointer to a filename, or a pointer to an in-memory object, +depending on the user implementation of file I/O in the eas_host.c or +eas_hostmm.c module. Only a single JET content file can be opened at a time.

+ +

 

+ +

Once the JET file is opened, the application can begin +queuing up segments for playback by calling the JET_QueueSegment() function. +Generally, it is advisable to keep a minimum of two segments queued at all +times:  the currently playing segment +plus an additional segment that is ready to start playing when the current +segment finishes. However, with proper programming, it is possible to queue up +segments using a “just-in-time” technique. This technique typically involves +careful placement of application controller events near the end of a segment so +that the application is informed when a segment is about to end.

+ +

 

+ +

After the segment(s) are queued up, playback can begin. By +default, the segments are initialized in a paused state. To start playback, +call the JET_Play() function. Playback can be paused again by calling the JET_Pause() +function. Once initiated, playback will continue as long as the application +continues to queue up new segments before all the segments in the queue are +exhausted.

+ +

 

+ +

The JET_Status() function can be used to monitor progress. +It returns the number of segments queued, repeat count, current segment ID, and +play status. By monitor the number of segments queued, the application can +determine when it needs to queue another segment and when playback has +completed.

+ +

 

+ +

When playback has completed and the application is finished +with the contents of the currently open file, the application should call +JET_CloseFile() to close the file and release any resources associated with the +file.

+ +

JET_Init

+ +

EAS_PUBLIC EAS_RESULT JET_Init +(EAS_DATA_HANDLE easHandle, S_JET_CONFIG *pConfig, EAS_INT configSize)

+ +

 

+ +

Initializes JET library for use by application. Most +application should simply pass a NULL for pConfig and 0 for configSize, which +means that only controller events in the application range (80-83) will end up +in the application event queue. If desired, the application can instantiate an +S_JET_CONFIG data structure and set the controller range to a different range. +In this case, the configSize parameter should be set to sizeof(S_JET_CONFIG).

+ +

JET_Shutdown

+ +

EAS_PUBLIC EAS_RESULT JET_Shutdown +(EAS_DATA_HANDLE easHandle)

+ +

 

+ +

Releases resources used by the JET library. The application +should call this function when it is no longer using the JET library.

+ +

JET_ OpenFile

+ +

EAS_PUBLIC EAS_RESULT JET_OpenFile +(EAS_DATA_HANDLE easHandle, EAS_FILE_LOCATOR locator)

+ +

 

+ +

Opens a JET content file for playback. Content must be +formatted for use by the JET library, which is typically accomplished with the +jetfile.py script (see “Creating JET Content”). Only a single JET content file +can be opened at a time. However, since JET can contain many MIDI +files and DLS libraries, this limitation is normally not an issue.

+ +

JET_ CloseFile

+ +

EAS_PUBLIC EAS_RESULT JET_CloseFile +(EAS_DATA_HANDLE easHandle)

+ +

 

+ +

Closes a JET file and release the resources associated with it.

+ +

JET_ Status

+ +

EAS_PUBLIC EAS_RESULT JET_Status +(EAS_DATA_HANDLE easHandle, S_JET_STATUS *pStatus)

+ +

 

+ +

Returns the current JET status. The elements of the status +data structure are as follows:

+ +

 

+ +

typedef struct s_jet_status_tag

+ +

{

+ +

     EAS_INT   currentUserID;

+ +

     EAS_INT   segmentRepeatCount;

+ +

     EAS_INT   numQueuedSegments;

+ +

     EAS_BOOL paused;

+ +

} S_JET_STATUS;

+ +

 

+ +

currentUserID: An +8-bit value assigned by the application.

+ +

 

+ +

segmentRepeatCount: +Number of times left to repeat. Zero indicates no repeats, a negative number +indicates an infinite number of repeats. Any positive value indicates that the +segment will play n+1 times.

+ +

 

+ +

numQueuedSegments: +Number of segments currently queued to play including the currently playing +segment. A value of zero indicates that nothing is playing. Normally, the +application will queue a new segment each time the value is 1 so that playback +is uninterrupted.

+ +

JET_ QueueSegment

+ +

EAS_PUBLIC EAS_RESULT JET_QueueSegment +(EAS_DATA_HANDLE easHandle, EAS_INT segmentNum, EAS_INT libNum, EAS_INT +repeatCount, EAS_INT transpose, EAS_U32 muteFlags, EAS_U8 userID)

+ +

 

+ +

Queues up a JET MIDI segment for playback. The parameters +are as follows:

+ +

 

+ +

segmentNum: +Segment number as identified in the JET content configuration file.

+ +

 

+ +

libNum: The library +number as specified in the JET content configuration file. Use -1 to select the +standard General MIDI library.

+ +

 

+ +

repeatCount: The +number of times this segment should repeat. Zero indicates no repeat, i.e. play +only once. Any positive number indicates to play n+1 times. Set to -1 to repeat +indefinitely.

+ +

 

+ +

transpose: The +amount of pitch transposition. Set to 0 for normal playback. Range is -12 to ++12.

+ +

 

+ +

muteFlags: +Specific which MIDI tracks (not MIDI channels) +should be muted during playback. These flags can be changed dynamically using +the mute functions. Bit 0 = track 0, bit 1 = track 1, etc.

+ +

 

+ +

userID: 8-bit +value specified by the application that uniquely identifies the segment. This +value is returned in the JET_Status() function as well as by the application +event when an event is detected in a segment. Normally, the application keeps +an 8-bit value that is incremented each time a new segment is queued up. This +can be used to look up any special characteristics of that track including +trigger clips and mute flags.

+ +

JET_ Play

+ +

EAS_PUBLIC EAS_RESULT JET_Play +(EAS_DATA_HANDLE easHandle)

+ +

 

+ +

Starts playback of the current segment. This function must +be called once after the initial segments are queued up to start playback. It +is also called after JET_Pause() to resume playback.

+ +

JET_ Pause

+ +

EAS_PUBLIC EAS_RESULT JET_Pause +(EAS_DATA_HANDLE easHandle)

+ +

 

+ +

Pauses playback of the current segment. Call JET_Pause() to +resume playback.

+ +

JET_ SetMuteFlags

+ +

EAS_PUBLIC EAS_RESULT JET_SetMuteFlags +(EAS_DATA_HANDLE easHandle, EAS_U32 muteFlags, EAS_BOOL sync)

+ +

 

+ +

Modifies the mute flags during playback. If the sync parameter is false, the mute flags +are updated at the beginning of the next render. This means that any new notes +or controller events will be processed during the next audio frame. If the sync parameter is true, the mute flags +will be updated at the start of the next segment. If the segment is repeated, +the flags will take effect the next time segment is repeated.

+ +

JET_ SetMuteFlag

+ +

EAS_PUBLIC EAS_RESULT JET_SetMuteFlag +(EAS_DATA_HANDLE easHandle, EAS_INT trackNum, EAS_BOOL muteFlag, EAS_BOOL sync)

+ +

Modifies a mute flag for a single track during playback. If +the sync parameter is false, the mute +flag is updated at the beginning of the next render. This means that any new +notes or controller events will be processed during the next audio frame. If +the sync parameter is true, the mute +flag will be updated at the start of the next segment. If the segment is +repeated, the flag will take effect the next time segment is repeated.

+ +

JET_ TriggerClip

+ +

EAS_PUBLIC EAS_RESULT JET_TriggerClip +(EAS_DATA_HANDLE easHandle, EAS_INT clipID)

+ +

 

+ +

Automatically updates mute flags in sync with the JET Clip +Marker (controller 103). The parameter clipID +must be in the range of 0-63. After the call to JET_TriggerClip, when JET next +encounters a controller event 103 with bits 0-5 of the value equal to clipID and bit 6 set to 1, it will automatically un-mute the track containing +the controller event. When JET encounters the complementary controller event +103 with bits 0-5 of the value equal to clipID +and bit 6 set to 0, it will mute +the track again.

+ +

JET_ GetEvent

+ +

EAS_BOOL JET_GetEvent (EAS_DATA_HANDLE +easHandle, EAS_U32 *pEventRaw, S_JET_EVENT *pEvent)

+ +

 

+ +

Attempts to read an event from the application event queue, +return EAS_TRUE if an event is found and EAS_FALSE if not. If the application +passes a valid pointer for pEventRaw, +a 32-bit compressed event code is returned. If the application passes a valid +pointer for pEvent, the event is +parsed into the S_JET_EVENT fields. The application can pass NULL for either +parameter and that variable will be ignored. Normally, the application will +call JET_GetEvent() repeatedly to retrieve events until it returns EAS_FALSE.

+ +

JET_ ParseEvent

+ +

EAS_PUBLIC void JET_ParseEvent (EAS_U32 +event, S_JET_EVENT *pEvent)

+ +

Parses a 32-bit compressed event code into a data structure. +The application passes the event code received from JET_GetEvent(). The parsed +event data is returned in the memory pointed to by pEvent.

+ +

JET_GetAppData

+ +

EAS_RESULT JET_GetAppData +(EAS_DATA_HANDLE easHandle, EAS_I32 *pAppDataOffset, EAS_I32 *pAppDataSize)

+ +

Returns the offset and size of the JAPP chunk in the JET +file. The application can use the file I/O functions in the eas_host module to +retrieve application specific data from the file.

+ +

 

+ +

 

+ +

Creating JET Content

+ +

JET uses standard MIDI files and DLS files that can be +created with commercially available content tools such as Logic, Cubase, +Digital Performer, or SONAR for MIDI files and +Awave for DLS2 files. These source files are then bundled into a .jet package +file suitable for use in a JET application.

+ +

 

+ +

To create JET file use the “JET Creator” desktop +application. The JET Creator application is written in Python and includes a +full graphical interface. It is available for MAC and PC platforms. See “JET +Creator User Manual” for more information.

+ +
+ + + + -- cgit v1.2.3 From 58b401a1d5575cfc9a648c31e26530bf542a308b Mon Sep 17 00:00:00 2001 From: Jean-Michel Trivi <> Date: Sat, 18 Apr 2009 12:20:50 -0700 Subject: AI 146819: am: CL 146818 Add JET template for Apple Logic 8 for easier creation of MIDI files to import in JetCreator Original author: jmtrivi Merged from: //branches/cupcake/... Automated import of CL 146819 --- .../JET_Logic8.logic/LgDoc/displayState | Bin 0 -> 4245 bytes .../JET_Logic8.logic/LgDoc/documentData | Bin 0 -> 678442 bytes jet_tools/logic_templates/README.txt | 1 + 3 files changed, 1 insertion(+) create mode 100755 jet_tools/logic_templates/JET_Logic8.logic/LgDoc/displayState create mode 100755 jet_tools/logic_templates/JET_Logic8.logic/LgDoc/documentData create mode 100644 jet_tools/logic_templates/README.txt diff --git a/jet_tools/logic_templates/JET_Logic8.logic/LgDoc/displayState b/jet_tools/logic_templates/JET_Logic8.logic/LgDoc/displayState new file mode 100755 index 0000000..f1c6a4a Binary files /dev/null and b/jet_tools/logic_templates/JET_Logic8.logic/LgDoc/displayState differ diff --git a/jet_tools/logic_templates/JET_Logic8.logic/LgDoc/documentData b/jet_tools/logic_templates/JET_Logic8.logic/LgDoc/documentData new file mode 100755 index 0000000..2ff5ed4 Binary files /dev/null and b/jet_tools/logic_templates/JET_Logic8.logic/LgDoc/documentData differ diff --git a/jet_tools/logic_templates/README.txt b/jet_tools/logic_templates/README.txt new file mode 100644 index 0000000..471046c --- /dev/null +++ b/jet_tools/logic_templates/README.txt @@ -0,0 +1 @@ +This directory contains Apple Logic template files to facilitate the creation of MIDI files to import in JetCreator. \ No newline at end of file -- cgit v1.2.3 From 4ec49c9395befa2bb84b94deac19d9133149d55f Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Queru Date: Mon, 20 Apr 2009 15:24:08 -0700 Subject: Delete Mac system files that were submitted by accident --- arm-hybrid-22k/host_src/.DS_Store | Bin 6148 -> 0 bytes arm-hybrid-22k/host_src/._.DS_Store | Bin 82 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 arm-hybrid-22k/host_src/.DS_Store delete mode 100644 arm-hybrid-22k/host_src/._.DS_Store diff --git a/arm-hybrid-22k/host_src/.DS_Store b/arm-hybrid-22k/host_src/.DS_Store deleted file mode 100644 index 5008ddf..0000000 Binary files a/arm-hybrid-22k/host_src/.DS_Store and /dev/null differ diff --git a/arm-hybrid-22k/host_src/._.DS_Store b/arm-hybrid-22k/host_src/._.DS_Store deleted file mode 100644 index c9474ea..0000000 Binary files a/arm-hybrid-22k/host_src/._.DS_Store and /dev/null differ -- cgit v1.2.3