shithub: ft2-clone

Download patch

ref: 6c06e97860e82dbc8a4bd3a90ed36057046e52ec
parent: 307ecd87596c4927ee0c972cca568ba03d5ebb6c
author: Olav Sørensen <[email protected]>
date: Tue Mar 10 15:58:14 EDT 2020

Pushed v1.11 code

- Bugfix: The Help screen scrollbars could act strange when switching subjects
- Bugfix: Some of the Instr. Ed. (+ extension) scrollbars could be moved with
  the up/down pushbuttons even if the current instrument is not allocated.
  This is not supposed to be possible.
- Bugfix: In the Instr. Ed. screen, the "Add" button (vol/pan env.) could lead
  to a crash if the current instrument wasn't allocated.
- Bugfix: The piano in the Instr. Ed. screen could show wrong keypresses if
  extremely low or high pitches were being played.
- The up/down pushbutton delay has been increased, it's too fast in original FT2
  (in my opinion).
- The 4-tap cubic spline interpolation table (for the audio mixer) has been
  recalculated in higher precision and more phases. It should in theory be
  better, but I can't personally hear any difference.
- Windows: The DPI-scaling is now per-monitor aware instead of system aware.
  Maybe this solve the issue of blurry pixels for some people...
- Don't warn the user when loading a song with stereo samples. They will be
  mixed to mono anyway, and I don't think it's an important warning to show.
- Fixed some minor grammar errors in some GUI texts

--- a/src/ft2_header.h
+++ b/src/ft2_header.h
@@ -12,7 +12,7 @@
 #endif
 #include "ft2_replayer.h"
 
-#define PROG_VER_STR "1.10"
+#define PROG_VER_STR "1.11"
 
 // do NOT change these! It will only mess things up...
 
--- a/src/ft2_help.c
+++ b/src/ft2_help.c
@@ -451,8 +451,11 @@
 	fHlp_Nr = Nr;
 	fHlp_Line = 0;
 
+	// force update even if new pos value was to be the same as old
+	scrollBars[SB_HELP_SCROLL].oldPos = 0xFFFFFFFF;
+
 	setScrollBarEnd(SB_HELP_SCROLL, subjLen[fHlp_Nr]);
-	setScrollBarPos(SB_HELP_SCROLL, fHlp_Line, false);
+	setScrollBarPos(SB_HELP_SCROLL, 0, false);
 }
 
 void rbHelpFeatures(void)
--- a/src/ft2_inst_ed.c
+++ b/src/ft2_inst_ed.c
@@ -20,6 +20,7 @@
 #include "ft2_sample_loader.h"
 #include "ft2_diskop.h"
 #include "ft2_module_loader.h"
+#include "ft2_tables.h"
 
 #ifdef _MSC_VER
 #pragma pack(push)
@@ -257,32 +258,38 @@
 
 void midiChDown(void)
 {
-	scrollBarScrollLeft(SB_INST_EXT_MIDI_CH, 1);
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
+		scrollBarScrollLeft(SB_INST_EXT_MIDI_CH, 1);
 }
 
 void midiChUp(void)
 {
-	scrollBarScrollRight(SB_INST_EXT_MIDI_CH, 1);
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
+		scrollBarScrollRight(SB_INST_EXT_MIDI_CH, 1);
 }
 
 void midiPrgDown(void)
 {
-	scrollBarScrollLeft(SB_INST_EXT_MIDI_PRG, 1);
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
+		scrollBarScrollLeft(SB_INST_EXT_MIDI_PRG, 1);
 }
 
 void midiPrgUp(void)
 {
-	scrollBarScrollRight(SB_INST_EXT_MIDI_PRG, 1);
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
+		scrollBarScrollRight(SB_INST_EXT_MIDI_PRG, 1);
 }
 
 void midiBendDown(void)
 {
-	scrollBarScrollLeft(SB_INST_EXT_MIDI_BEND, 1);
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
+		scrollBarScrollLeft(SB_INST_EXT_MIDI_BEND, 1);
 }
 
 void midiBendUp(void)
 {
-	scrollBarScrollRight(SB_INST_EXT_MIDI_BEND, 1);
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
+		scrollBarScrollRight(SB_INST_EXT_MIDI_BEND, 1);
 }
 
 void sbMidiChPos(uint32_t pos)
@@ -553,7 +560,7 @@
 
 static void setStdVolEnvelope(instrTyp *ins, uint8_t num)
 {
-	if (editor.curInstr == 0)
+	if (editor.curInstr == 0 || ins == NULL)
 		return;
 
 	pauseMusic();
@@ -576,7 +583,7 @@
 
 static void setStdPanEnvelope(instrTyp *ins, uint8_t num)
 {
-	if (editor.curInstr == 0)
+	if (editor.curInstr == 0 || ins == NULL)
 		return;
 
 	pauseMusic();
@@ -660,73 +667,73 @@
 
 void volPreDef1(void)
 {
-	if (editor.curInstr > 0)
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
 		setOrStoreVolEnvPreset(1 - 1);
 }
 
 void volPreDef2(void)
 {
-	if (editor.curInstr > 0)
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
 		setOrStoreVolEnvPreset(2 - 1);
 }
 
 void volPreDef3(void)
 {
-	if (editor.curInstr > 0)
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
 		setOrStoreVolEnvPreset(3 - 1);
 }
 
 void volPreDef4(void)
 {
-	if (editor.curInstr > 0)
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
 		setOrStoreVolEnvPreset(4 - 1);
 }
 
 void volPreDef5(void)
 {
-	if (editor.curInstr > 0)
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
 		setOrStoreVolEnvPreset(5 - 1);
 }
 
 void volPreDef6(void)
 {
-	if (editor.curInstr > 0)
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
 		setOrStoreVolEnvPreset(6 - 1);
 }
 
 void panPreDef1(void)
 {
-	if (editor.curInstr > 0)
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
 		setOrStorePanEnvPreset(1 - 1);
 }
 
 void panPreDef2(void)
 {
-	if (editor.curInstr > 0)
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
 		setOrStorePanEnvPreset(2 - 1);
 }
 
 void panPreDef3(void)
 {
-	if (editor.curInstr > 0)
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
 		setOrStorePanEnvPreset(3 - 1);
 }
 
 void panPreDef4(void)
 {
-	if (editor.curInstr > 0)
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
 		setOrStorePanEnvPreset(4 - 1);
 }
 
 void panPreDef5(void)
 {
-	if (editor.curInstr > 0)
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
 		setOrStorePanEnvPreset(5 - 1);
 }
 
 void panPreDef6(void)
 {
-	if (editor.curInstr > 0)
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
 		setOrStorePanEnvPreset(6 - 1);
 }
 
@@ -800,9 +807,11 @@
 {
 	int16_t i, ant;
 	instrTyp *ins = instr[editor.curInstr];
+	if (editor.curInstr == 0 || ins == NULL)
+		return;
 
 	ant = ins->envVPAnt;
-	if (ins == NULL || editor.curInstr == 0 || ant >= 12)
+	if (ant >= 12)
 		return;
 
 	i = (int16_t)editor.currVolEnvPoint;
@@ -989,9 +998,11 @@
 {
 	int16_t i, ant;
 	instrTyp *ins = instr[editor.curInstr];
+	if (ins == NULL || editor.curInstr == 0)
+		return;
 
 	ant = ins->envPPAnt;
-	if (ins == NULL || editor.curInstr == 0 || ant >= 12)
+	if (ant >= 12)
 		return;
 
 	i = (int16_t)editor.currPanEnvPoint;
@@ -1176,72 +1187,86 @@
 
 void volDown(void)
 {
-	scrollBarScrollLeft(SB_INST_VOL, 1);
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
+		scrollBarScrollLeft(SB_INST_VOL, 1);
 }
 
 void volUp(void)
 {
-	scrollBarScrollRight(SB_INST_VOL, 1);
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
+		scrollBarScrollRight(SB_INST_VOL, 1);
 }
 
 void panDown(void)
 {
-	scrollBarScrollLeft(SB_INST_PAN, 1);
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
+		scrollBarScrollLeft(SB_INST_PAN, 1);
 }
 
 void panUp(void)
 {
-	scrollBarScrollRight(SB_INST_PAN, 1);
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
+		scrollBarScrollRight(SB_INST_PAN, 1);
 }
 
 void ftuneDown(void)
 {
-	scrollBarScrollLeft(SB_INST_FTUNE, 1);
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
+		scrollBarScrollLeft(SB_INST_FTUNE, 1);
 }
 
 void ftuneUp(void)
 {
-	scrollBarScrollRight(SB_INST_FTUNE, 1);
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
+		scrollBarScrollRight(SB_INST_FTUNE, 1);
 }
 
 void fadeoutDown(void)
 {
-	scrollBarScrollLeft(SB_INST_FADEOUT, 1);
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
+		scrollBarScrollLeft(SB_INST_FADEOUT, 1);
 }
 
 void fadeoutUp(void)
 {
-	scrollBarScrollRight(SB_INST_FADEOUT, 1);
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
+		scrollBarScrollRight(SB_INST_FADEOUT, 1);
 }
 
 void vibSpeedDown(void)
 {
-	scrollBarScrollLeft(SB_INST_VIBSPEED, 1);
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
+		scrollBarScrollLeft(SB_INST_VIBSPEED, 1);
 }
 
 void vibSpeedUp(void)
 {
-	scrollBarScrollRight(SB_INST_VIBSPEED, 1);
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
+		scrollBarScrollRight(SB_INST_VIBSPEED, 1);
 }
 
 void vibDepthDown(void)
 {
-	scrollBarScrollLeft(SB_INST_VIBDEPTH, 1);
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
+		scrollBarScrollLeft(SB_INST_VIBDEPTH, 1);
 }
 
 void vibDepthUp(void)
 {
-	scrollBarScrollRight(SB_INST_VIBDEPTH, 1);
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
+		scrollBarScrollRight(SB_INST_VIBDEPTH, 1);
 }
 
 void vibSweepDown(void)
 {
-	scrollBarScrollLeft(SB_INST_VIBSWEEP, 1);
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
+		scrollBarScrollLeft(SB_INST_VIBSWEEP, 1);
 }
 
 void vibSweepUp(void)
 {
-	scrollBarScrollRight(SB_INST_VIBSWEEP, 1);
+	if (editor.curInstr != 0 && instr[editor.curInstr] != NULL)
+		scrollBarScrollRight(SB_INST_VIBSWEEP, 1);
 }
 
 void setVolumeScroll(uint32_t pos)
@@ -1553,7 +1578,7 @@
 	uint16_t x;
 
 	number = 0;
-	if (instr[editor.curInstr] != NULL && editor.curInstr > 0)
+	if (instr[editor.curInstr] != NULL && editor.curInstr != 0)
 		number = instr[editor.curInstr]->ta[note];
 
 	x = keyDigitXPos[key] + (octave * 77);
@@ -1583,8 +1608,8 @@
 	memset(pianoKeyStatus, 0, sizeof (pianoKeyStatus));
 	for (uint8_t i = 0; i < 96; i++)
 	{
-		key = i % 12;
-		octave = i / 12;
+		key = noteTab1[i];
+		octave = noteTab2[i];
 
 		if (keyIsBlackTab[key])
 			drawBlackPianoKey(key, octave, false);
@@ -1602,8 +1627,11 @@
 	instrTyp *ins;
 
 	if (!editor.ui.instEditorShown)
-		return false;
+		return false; // area not clicked
 
+	if (editor.curInstr == 0 || instr[editor.curInstr] == NULL)
+		return true; // area clicked, but don't do anything
+
 	mx = mouse.x;
 	my = mouse.y;
 
@@ -1621,8 +1649,6 @@
 	}
 
 	ins = instr[editor.curInstr];
-	if (ins == NULL)
-		return true;
 
 	mx -= 8;
 	if (my < 378)
@@ -1665,7 +1691,7 @@
 		if (ins->ta[note] != editor.curSmp)
 		{
 			ins->ta[note] = editor.curSmp;
-			writePianoNumber(note, note % 12, octave);
+			writePianoNumber(note, noteTab2[note], octave);
 			setSongModifiedFlag();
 		}
 	}
@@ -1673,45 +1699,40 @@
 	return true;
 }
 
-static uint8_t getNote(uint8_t i) // returns 1..96
+/* 8bitbubsy: This is my new version of FT2's buggy getNote().
+** It's used to convert a channel's period into a piano key number.
+**
+** It's probably slower in "Amiga frequencies" mode, but at least it doesn't
+** have weird overflow/underflow patterns.
+**
+** Warning: This function intentionally doesn't clamp the output value!
+*/
+static int32_t getPianoKey(int32_t period, int32_t finetune, int32_t relativeTone, bool linearFrequencies)
 {
-	int8_t fineTune;
-	uint8_t note;
-	int32_t period, loPeriod, hiPeriod, tmpPeriod, tableIndex;
-	stmTyp *ch;
+	int32_t note;
 
-	ch = &stm[i];
+	finetune >>= 3; // FT2 does this in the replayer internally
 
-	fineTune = (ch->fineTune >> 3) + 16;
-	hiPeriod = 8 * 12 * 16;
-	loPeriod = 0;
-	period = ch->finalPeriod;
-
-	for (i = 0; i < 8; i++)
+	if (linearFrequencies)
 	{
-		tmpPeriod = (((loPeriod + hiPeriod) >> 1) & 0xFFFFFFF0) + fineTune;
-
-		tableIndex = tmpPeriod - 8;
-		if (tableIndex < 0) // added security check
-			tableIndex = 0;
-
-		if (period >= note2Period[tableIndex])
-			hiPeriod = tmpPeriod - fineTune;
-		else
-			loPeriod = tmpPeriod - fineTune;
+		period = ((10 * 12 * 16 * 4) - period) - (finetune << 2);
+		note = (period + (1 << 5)) >> 6; // rounded
 	}
+	else
+	{
+		double dNote = (log2(period * (1.0 / (1712.0 * 16.0))) * -12.0) - (finetune * (1.0 / 16.0));
+		note = (int32_t)(dNote + 0.5); // rounded
+	}
 
-	if (loPeriod >= ((8*12*16) + 15) - 1) // FT2 bug: off-by-one error
-		loPeriod = (8*12*16) + 15;
-
-	note = (uint8_t)(((loPeriod + 8) >> 4) - ch->relTonNr) + 1;
+	note -= relativeTone;
 	return note;
 }
 
-void drawPiano(void) // draw piano in idle mode
+void drawPiano(void) // draw piano in idle mode (jamming keys)
 {
 	bool keyDown, newStatus[96];
-	uint8_t key, note, octave;
+	uint8_t key, octave;
+	int32_t note;
 	stmTyp *ch;
 
 	memset(newStatus, 0, sizeof (newStatus));
@@ -1722,11 +1743,11 @@
 		for (uint8_t i = 0; i < song.antChn; i++)
 		{
 			ch = &stm[i];
-			if (ch->instrNr == editor.curInstr)
+			if (ch->instrNr == editor.curInstr && ch->envSustainActive)
 			{
-				note = getNote(i);
-				if (ch->envSustainActive)
-					newStatus[(note - 1) % 96] = true;
+				note = getPianoKey(ch->finalPeriod, ch->fineTune, ch->relTonNr, linearFrqTab);
+				if (note >= 0 && note <= 95)
+					newStatus[note] = true;
 			}
 		}
 	}
@@ -1737,8 +1758,8 @@
 		keyDown = newStatus[i];
 		if (pianoKeyStatus[i] ^ keyDown)
 		{
-			key = i % 12;
-			octave = i / 12;
+			key = noteTab1[i];
+			octave = noteTab2[i];
 
 			if (keyIsBlackTab[key])
 				drawBlackPianoKey(key, octave, keyDown);
@@ -1750,42 +1771,11 @@
 	}
 }
 
-static uint8_t getNoteReplayer(syncedChannel_t *ch) // returns 1..96
+void drawPianoReplayer(chSyncData_t *chSyncData) // draw piano with synced replayer state (song playing)
 {
-	int8_t fineTune;
-	uint8_t note;
-	int32_t period, loPeriod, hiPeriod, tmpPeriod, tableIndex;
-
-	fineTune = (ch->fineTune >> 3) + 16;
-	hiPeriod = 8 * 12 * 16;
-	loPeriod = 0;
-	period = ch->finalPeriod;
-
-	for (uint8_t i = 0; i < 8; i++)
-	{
-		tmpPeriod = (((loPeriod + hiPeriod) >> 1) & 0xFFFFFFF0) + fineTune;
-
-		tableIndex = tmpPeriod - 8;
-		if (tableIndex < 0) // added security check
-			tableIndex = 0;
-
-		if (period >= note2Period[tableIndex])
-			hiPeriod = tmpPeriod - fineTune;
-		else
-			loPeriod = tmpPeriod - fineTune;
-	}
-
-	if (loPeriod >= ((8*12*16) + 15) - 1) // FT2 bug: off-by-one error
-		loPeriod = (8*12*16) + 15;
-
-	note = (uint8_t)(((loPeriod + 8) >> 4) - ch->relTonNr) + 1;
-	return note;
-}
-
-void drawPianoReplayer(chSyncData_t *chSyncData) // draw piano with synced replayer datas
-{
 	bool keyDown, newStatus[96];
-	uint8_t key, note, octave;
+	uint8_t key, octave;
+	int32_t note;
 	syncedChannel_t *ch;
 
 	memset(newStatus, 0, sizeof (newStatus));
@@ -1796,11 +1786,11 @@
 		for (uint8_t i = 0; i < song.antChn; i++)
 		{
 			ch = &chSyncData->channels[i];
-			if (ch->instrNr == editor.curInstr)
+			if (ch->instrNr == editor.curInstr && ch->envSustainActive)
 			{
-				note = getNoteReplayer(ch);
-				if (ch->envSustainActive)
-					newStatus[(note - 1) % 96] = true;
+				note = getPianoKey(ch->finalPeriod, ch->fineTune, ch->relTonNr, linearFrqTab);
+				if (note >= 0 && note <= 95)
+					newStatus[note] = true;
 			}
 		}
 	}
@@ -1811,8 +1801,8 @@
 		keyDown = newStatus[i];
 		if (pianoKeyStatus[i] ^ keyDown)
 		{
-			key = i % 12;
-			octave = i / 12;
+			key = noteTab1[i];
+			octave = noteTab2[i];
 
 			if (keyIsBlackTab[key])
 				drawBlackPianoKey(key, octave, keyDown);
--- /dev/null
+++ b/src/ft2_intrp_table.c
@@ -1,0 +1,1036 @@
+#include <stdint.h>
+#include "ft2_intrp_table.h"
+
+/* 4-tap cubic spline table
+**
+** This table was generated using a modified version of Schism Tracker's lutgen.cpp
+** with 15-bit precision and 4096 phases.
+*/
+
+const int16_t cubicSplineTable[CUBIC_WIDTH * CUBIC_PHASES] =
+{
+	    0, 32767,     0,     0,    -4, 32767,     4,     0,    -8, 32767,     8,     0,   -12, 32767,    12,     0,
+	  -16, 32767,    16,     0,   -20, 32767,    20,     0,   -24, 32767,    24,     0,   -28, 32767,    28,     0,
+	  -32, 32767,    32,     0,   -36, 32767,    36,     0,   -40, 32767,    40,     0,   -44, 32767,    44,     0,
+	  -48, 32767,    49,     0,   -52, 32767,    53,     0,   -56, 32767,    57,     0,   -60, 32767,    61,     0,
+	  -64, 32767,    65,     0,   -67, 32766,    69,     0,   -71, 32766,    73,     0,   -75, 32766,    77,     0,
+	  -79, 32765,    82,     0,   -83, 32765,    86,     0,   -87, 32765,    90,     0,   -91, 32766,    94,    -1,
+	  -95, 32766,    98,    -1,   -99, 32766,   102,    -1,  -103, 32765,   107,    -1,  -107, 32765,   111,    -1,
+	 -110, 32764,   115,    -1,  -114, 32764,   119,    -1,  -118, 32764,   123,    -1,  -122, 32763,   128,    -1,
+	 -126, 32763,   132,    -1,  -130, 32763,   136,    -1,  -134, 32763,   140,    -1,  -138, 32762,   145,    -1,
+	 -141, 32761,   149,    -1,  -145, 32761,   153,    -1,  -149, 32760,   158,    -1,  -153, 32760,   162,    -1,
+	 -157, 32761,   166,    -2,  -161, 32760,   171,    -2,  -165, 32760,   175,    -2,  -168, 32759,   179,    -2,
+	 -172, 32758,   184,    -2,  -176, 32758,   188,    -2,  -180, 32758,   192,    -2,  -184, 32757,   197,    -2,
+	 -188, 32757,   201,    -2,  -191, 32756,   205,    -2,  -195, 32755,   210,    -2,  -199, 32756,   214,    -3,
+	 -203, 32756,   218,    -3,  -207, 32755,   223,    -3,  -210, 32754,   227,    -3,  -214, 32753,   232,    -3,
+	 -218, 32753,   236,    -3,  -222, 32752,   241,    -3,  -225, 32751,   245,    -3,  -229, 32751,   249,    -3,
+	 -233, 32750,   254,    -3,  -237, 32751,   258,    -4,  -241, 32750,   263,    -4,  -244, 32749,   267,    -4,
+	 -248, 32748,   272,    -4,  -252, 32748,   276,    -4,  -256, 32747,   281,    -4,  -259, 32746,   285,    -4,
+	 -263, 32745,   290,    -4,  -267, 32746,   294,    -5,  -271, 32745,   299,    -5,  -274, 32744,   303,    -5,
+	 -278, 32743,   308,    -5,  -282, 32742,   313,    -5,  -285, 32741,   317,    -5,  -289, 32740,   322,    -5,
+	 -293, 32741,   326,    -6,  -297, 32740,   331,    -6,  -300, 32739,   335,    -6,  -304, 32738,   340,    -6,
+	 -308, 32737,   345,    -6,  -311, 32736,   349,    -6,  -315, 32735,   354,    -6,  -319, 32735,   359,    -7,
+	 -322, 32734,   363,    -7,  -326, 32733,   368,    -7,  -330, 32733,   372,    -7,  -333, 32731,   377,    -7,
+	 -337, 32730,   382,    -7,  -341, 32731,   386,    -8,  -344, 32729,   391,    -8,  -348, 32728,   396,    -8,
+	 -352, 32727,   401,    -8,  -355, 32726,   405,    -8,  -359, 32725,   410,    -8,  -363, 32725,   415,    -9,
+	 -366, 32724,   419,    -9,  -370, 32723,   424,    -9,  -373, 32721,   429,    -9,  -377, 32720,   434,    -9,
+	 -381, 32721,   438,   -10,  -384, 32719,   443,   -10,  -388, 32718,   448,   -10,  -392, 32717,   453,   -10,
+	 -395, 32716,   457,   -10,  -399, 32715,   462,   -10,  -402, 32714,   467,   -11,  -406, 32713,   472,   -11,
+	 -410, 32712,   477,   -11,  -413, 32711,   481,   -11,  -417, 32710,   486,   -11,  -420, 32709,   491,   -12,
+	 -424, 32708,   496,   -12,  -427, 32706,   501,   -12,  -431, 32705,   506,   -12,  -435, 32705,   511,   -13,
+	 -438, 32704,   515,   -13,  -442, 32703,   520,   -13,  -445, 32701,   525,   -13,  -449, 32700,   530,   -13,
+	 -452, 32699,   535,   -14,  -456, 32698,   540,   -14,  -459, 32696,   545,   -14,  -463, 32695,   550,   -14,
+	 -466, 32694,   555,   -15,  -470, 32693,   560,   -15,  -473, 32691,   565,   -15,  -477, 32690,   570,   -15,
+	 -481, 32690,   575,   -16,  -484, 32689,   579,   -16,  -488, 32688,   584,   -16,  -491, 32686,   589,   -16,
+	 -495, 32685,   594,   -16,  -498, 32684,   599,   -17,  -502, 32683,   604,   -17,  -505, 32681,   609,   -17,
+	 -508, 32679,   614,   -17,  -512, 32679,   619,   -18,  -515, 32676,   625,   -18,  -519, 32675,   630,   -18,
+	 -522, 32673,   635,   -18,  -526, 32673,   640,   -19,  -529, 32671,   645,   -19,  -533, 32670,   650,   -19,
+	 -536, 32669,   655,   -20,  -540, 32668,   660,   -20,  -543, 32666,   665,   -20,  -547, 32665,   670,   -20,
+	 -550, 32664,   675,   -21,  -553, 32662,   680,   -21,  -557, 32661,   685,   -21,  -560, 32658,   691,   -21,
+	 -564, 32658,   696,   -22,  -567, 32656,   701,   -22,  -571, 32655,   706,   -22,  -574, 32654,   711,   -23,
+	 -577, 32652,   716,   -23,  -581, 32650,   722,   -23,  -584, 32648,   727,   -23,  -588, 32648,   732,   -24,
+	 -591, 32646,   737,   -24,  -594, 32644,   742,   -24,  -598, 32644,   747,   -25,  -601, 32641,   753,   -25,
+	 -605, 32640,   758,   -25,  -608, 32639,   763,   -26,  -611, 32637,   768,   -26,  -615, 32635,   774,   -26,
+	 -618, 32633,   779,   -26,  -621, 32632,   784,   -27,  -625, 32631,   789,   -27,  -628, 32628,   795,   -27,
+	 -631, 32627,   800,   -28,  -635, 32626,   805,   -28,  -638, 32624,   810,   -28,  -641, 32622,   816,   -29,
+	 -645, 32621,   821,   -29,  -648, 32619,   826,   -29,  -651, 32617,   832,   -30,  -655, 32616,   837,   -30,
+	 -658, 32614,   842,   -30,  -661, 32612,   848,   -31,  -665, 32611,   853,   -31,  -668, 32609,   858,   -31,
+	 -671, 32607,   864,   -32,  -675, 32606,   869,   -32,  -678, 32603,   875,   -32,  -681, 32602,   880,   -33,
+	 -685, 32601,   885,   -33,  -688, 32598,   891,   -33,  -691, 32597,   896,   -34,  -694, 32594,   902,   -34,
+	 -698, 32593,   907,   -34,  -701, 32592,   912,   -35,  -704, 32589,   918,   -35,  -708, 32588,   923,   -35,
+	 -711, 32586,   929,   -36,  -714, 32584,   934,   -36,  -717, 32581,   940,   -36,  -721, 32581,   945,   -37,
+	 -724, 32578,   951,   -37,  -727, 32577,   956,   -38,  -730, 32575,   961,   -38,  -734, 32573,   967,   -38,
+	 -737, 32572,   972,   -39,  -740, 32569,   978,   -39,  -743, 32566,   984,   -39,  -746, 32565,   989,   -40,
+	 -750, 32563,   995,   -40,  -753, 32561,  1000,   -40,  -756, 32559,  1006,   -41,  -759, 32557,  1011,   -41,
+	 -762, 32555,  1017,   -42,  -766, 32554,  1022,   -42,  -769, 32551,  1028,   -42,  -772, 32550,  1033,   -43,
+	 -775, 32547,  1039,   -43,  -778, 32545,  1045,   -44,  -782, 32544,  1050,   -44,  -785, 32541,  1056,   -44,
+	 -788, 32540,  1061,   -45,  -791, 32537,  1067,   -45,  -794, 32535,  1073,   -46,  -798, 32534,  1078,   -46,
+	 -801, 32531,  1084,   -46,  -804, 32529,  1090,   -47,  -807, 32527,  1095,   -47,  -810, 32525,  1101,   -48,
+	 -813, 32522,  1107,   -48,  -816, 32520,  1112,   -48,  -820, 32519,  1118,   -49,  -823, 32516,  1124,   -49,
+	 -826, 32515,  1129,   -50,  -829, 32512,  1135,   -50,  -832, 32509,  1141,   -50,  -835, 32508,  1146,   -51,
+	 -838, 32505,  1152,   -51,  -841, 32503,  1158,   -52,  -845, 32501,  1164,   -52,  -848, 32500,  1169,   -53,
+	 -851, 32497,  1175,   -53,  -854, 32494,  1181,   -53,  -857, 32492,  1187,   -54,  -860, 32490,  1192,   -54,
+	 -863, 32488,  1198,   -55,  -866, 32485,  1204,   -55,  -869, 32483,  1210,   -56,  -872, 32480,  1216,   -56,
+	 -876, 32479,  1221,   -56,  -879, 32477,  1227,   -57,  -882, 32474,  1233,   -57,  -885, 32472,  1239,   -58,
+	 -888, 32469,  1245,   -58,  -891, 32468,  1250,   -59,  -894, 32465,  1256,   -59,  -897, 32463,  1262,   -60,
+	 -900, 32460,  1268,   -60,  -903, 32457,  1274,   -60,  -906, 32455,  1280,   -61,  -909, 32452,  1286,   -61,
+	 -912, 32451,  1291,   -62,  -915, 32448,  1297,   -62,  -918, 32446,  1303,   -63,  -921, 32443,  1309,   -63,
+	 -924, 32441,  1315,   -64,  -927, 32438,  1321,   -64,  -930, 32436,  1327,   -65,  -933, 32433,  1333,   -65,
+	 -936, 32431,  1339,   -66,  -939, 32428,  1345,   -66,  -942, 32425,  1351,   -66,  -945, 32423,  1357,   -67,
+	 -948, 32420,  1363,   -67,  -951, 32418,  1369,   -68,  -954, 32415,  1375,   -68,  -957, 32413,  1381,   -69,
+	 -960, 32410,  1387,   -69,  -963, 32408,  1393,   -70,  -966, 32405,  1399,   -70,  -969, 32403,  1405,   -71,
+	 -972, 32400,  1411,   -71,  -975, 32398,  1417,   -72,  -978, 32395,  1423,   -72,  -981, 32393,  1429,   -73,
+	 -984, 32390,  1435,   -73,  -987, 32388,  1441,   -74,  -990, 32385,  1447,   -74,  -993, 32383,  1453,   -75,
+	 -996, 32380,  1459,   -75,  -999, 32378,  1465,   -76, -1002, 32375,  1471,   -76, -1004, 32372,  1477,   -77,
+	-1007, 32369,  1483,   -77, -1010, 32367,  1489,   -78, -1013, 32364,  1495,   -78, -1016, 32361,  1502,   -79,
+	-1019, 32358,  1508,   -79, -1022, 32356,  1514,   -80, -1025, 32353,  1520,   -80, -1028, 32351,  1526,   -81,
+	-1031, 32348,  1532,   -81, -1034, 32346,  1538,   -82, -1036, 32341,  1545,   -82, -1039, 32339,  1551,   -83,
+	-1042, 32337,  1557,   -84, -1045, 32334,  1563,   -84, -1048, 32332,  1569,   -85, -1051, 32329,  1575,   -85,
+	-1054, 32326,  1582,   -86, -1057, 32323,  1588,   -86, -1059, 32320,  1594,   -87, -1062, 32317,  1600,   -87,
+	-1065, 32314,  1607,   -88, -1068, 32311,  1613,   -88, -1071, 32309,  1619,   -89, -1074, 32306,  1625,   -89,
+	-1076, 32303,  1631,   -90, -1079, 32300,  1638,   -91, -1082, 32297,  1644,   -91, -1085, 32295,  1650,   -92,
+	-1088, 32291,  1657,   -92, -1091, 32289,  1663,   -93, -1093, 32285,  1669,   -93, -1096, 32283,  1675,   -94,
+	-1099, 32279,  1682,   -94, -1102, 32277,  1688,   -95, -1105, 32275,  1694,   -96, -1107, 32270,  1701,   -96,
+	-1110, 32268,  1707,   -97, -1113, 32265,  1713,   -97, -1116, 32262,  1720,   -98, -1119, 32259,  1726,   -98,
+	-1121, 32256,  1732,   -99, -1124, 32252,  1739,   -99, -1127, 32250,  1745,  -100, -1130, 32248,  1751,  -101,
+	-1133, 32244,  1758,  -101, -1135, 32241,  1764,  -102, -1138, 32237,  1771,  -102, -1141, 32235,  1777,  -103,
+	-1144, 32233,  1783,  -104, -1146, 32228,  1790,  -104, -1149, 32226,  1796,  -105, -1152, 32222,  1803,  -105,
+	-1155, 32220,  1809,  -106, -1157, 32215,  1816,  -106, -1160, 32213,  1822,  -107, -1163, 32211,  1828,  -108,
+	-1166, 32207,  1835,  -108, -1168, 32204,  1841,  -109, -1171, 32200,  1848,  -109, -1174, 32198,  1854,  -110,
+	-1176, 32194,  1861,  -111, -1179, 32191,  1867,  -111, -1182, 32188,  1874,  -112, -1185, 32185,  1880,  -112,
+	-1187, 32181,  1887,  -113, -1190, 32179,  1893,  -114, -1193, 32175,  1900,  -114, -1195, 32172,  1906,  -115,
+	-1198, 32168,  1913,  -115, -1201, 32166,  1919,  -116, -1203, 32162,  1926,  -117, -1206, 32158,  1933,  -117,
+	-1209, 32156,  1939,  -118, -1211, 32152,  1946,  -119, -1214, 32149,  1952,  -119, -1217, 32146,  1959,  -120,
+	-1219, 32142,  1965,  -120, -1222, 32139,  1972,  -121, -1225, 32136,  1979,  -122, -1227, 32132,  1985,  -122,
+	-1230, 32129,  1992,  -123, -1233, 32126,  1998,  -123, -1235, 32122,  2005,  -124, -1238, 32119,  2012,  -125,
+	-1241, 32116,  2018,  -125, -1243, 32112,  2025,  -126, -1246, 32109,  2032,  -127, -1248, 32105,  2038,  -127,
+	-1251, 32102,  2045,  -128, -1254, 32100,  2051,  -129, -1256, 32095,  2058,  -129, -1259, 32092,  2065,  -130,
+	-1262, 32089,  2072,  -131, -1264, 32085,  2078,  -131, -1267, 32082,  2085,  -132, -1269, 32077,  2092,  -132,
+	-1272, 32075,  2098,  -133, -1274, 32071,  2105,  -134, -1277, 32067,  2112,  -134, -1280, 32065,  2118,  -135,
+	-1282, 32061,  2125,  -136, -1285, 32057,  2132,  -136, -1287, 32053,  2139,  -137, -1290, 32051,  2145,  -138,
+	-1293, 32047,  2152,  -138, -1295, 32043,  2159,  -139, -1298, 32040,  2166,  -140, -1300, 32036,  2172,  -140,
+	-1303, 32033,  2179,  -141, -1305, 32029,  2186,  -142, -1308, 32025,  2193,  -142, -1310, 32021,  2200,  -143,
+	-1313, 32019,  2206,  -144, -1315, 32014,  2213,  -144, -1318, 32011,  2220,  -145, -1321, 32008,  2227,  -146,
+	-1323, 32003,  2234,  -146, -1326, 32000,  2241,  -147, -1328, 31997,  2247,  -148, -1331, 31993,  2254,  -148,
+	-1333, 31989,  2261,  -149, -1336, 31986,  2268,  -150, -1338, 31981,  2275,  -150, -1341, 31978,  2282,  -151,
+	-1343, 31974,  2289,  -152, -1346, 31972,  2295,  -153, -1348, 31967,  2302,  -153, -1351, 31964,  2309,  -154,
+	-1353, 31960,  2316,  -155, -1356, 31956,  2323,  -155, -1358, 31952,  2330,  -156, -1361, 31949,  2337,  -157,
+	-1363, 31944,  2344,  -157, -1366, 31941,  2351,  -158, -1368, 31937,  2358,  -159, -1370, 31932,  2365,  -159,
+	-1373, 31930,  2371,  -160, -1375, 31926,  2378,  -161, -1378, 31923,  2385,  -162, -1380, 31918,  2392,  -162,
+	-1383, 31915,  2399,  -163, -1385, 31911,  2406,  -164, -1388, 31907,  2413,  -164, -1390, 31903,  2420,  -165,
+	-1392, 31899,  2427,  -166, -1395, 31896,  2434,  -167, -1397, 31891,  2441,  -167, -1400, 31888,  2448,  -168,
+	-1402, 31884,  2455,  -169, -1405, 31880,  2462,  -169, -1407, 31876,  2469,  -170, -1409, 31872,  2476,  -171,
+	-1412, 31869,  2483,  -172, -1414, 31863,  2491,  -172, -1417, 31860,  2498,  -173, -1419, 31856,  2505,  -174,
+	-1421, 31852,  2512,  -175, -1424, 31848,  2519,  -175, -1426, 31844,  2526,  -176, -1429, 31841,  2533,  -177,
+	-1431, 31836,  2540,  -177, -1433, 31832,  2547,  -178, -1436, 31829,  2554,  -179, -1438, 31825,  2561,  -180,
+	-1440, 31820,  2568,  -180, -1443, 31816,  2576,  -181, -1445, 31812,  2583,  -182, -1448, 31809,  2590,  -183,
+	-1450, 31804,  2597,  -183, -1452, 31800,  2604,  -184, -1455, 31797,  2611,  -185, -1457, 31793,  2618,  -186,
+	-1459, 31787,  2626,  -186, -1462, 31784,  2633,  -187, -1464, 31780,  2640,  -188, -1466, 31776,  2647,  -189,
+	-1469, 31772,  2654,  -189, -1471, 31768,  2661,  -190, -1473, 31763,  2669,  -191, -1476, 31760,  2676,  -192,
+	-1478, 31755,  2683,  -192, -1480, 31751,  2690,  -193, -1483, 31748,  2697,  -194, -1485, 31743,  2705,  -195,
+	-1487, 31739,  2712,  -196, -1489, 31734,  2719,  -196, -1492, 31731,  2726,  -197, -1494, 31726,  2734,  -198,
+	-1496, 31722,  2741,  -199, -1499, 31718,  2748,  -199, -1501, 31714,  2755,  -200, -1503, 31709,  2763,  -201,
+	-1506, 31706,  2770,  -202, -1508, 31702,  2777,  -203, -1510, 31696,  2785,  -203, -1512, 31692,  2792,  -204,
+	-1515, 31689,  2799,  -205, -1517, 31685,  2806,  -206, -1519, 31679,  2814,  -206, -1521, 31675,  2821,  -207,
+	-1524, 31672,  2828,  -208, -1526, 31667,  2836,  -209, -1528, 31663,  2843,  -210, -1530, 31658,  2850,  -210,
+	-1533, 31654,  2858,  -211, -1535, 31650,  2865,  -212, -1537, 31646,  2872,  -213, -1539, 31641,  2880,  -214,
+	-1542, 31637,  2887,  -214, -1544, 31632,  2895,  -215, -1546, 31628,  2902,  -216, -1548, 31624,  2909,  -217,
+	-1550, 31619,  2917,  -218, -1553, 31615,  2924,  -218, -1555, 31611,  2931,  -219, -1557, 31606,  2939,  -220,
+	-1559, 31602,  2946,  -221, -1561, 31597,  2954,  -222, -1564, 31593,  2961,  -222, -1566, 31588,  2969,  -223,
+	-1568, 31584,  2976,  -224, -1570, 31580,  2983,  -225, -1572, 31575,  2991,  -226, -1575, 31571,  2998,  -226,
+	-1577, 31566,  3006,  -227, -1579, 31562,  3013,  -228, -1581, 31557,  3021,  -229, -1583, 31553,  3028,  -230,
+	-1585, 31548,  3036,  -231, -1588, 31544,  3043,  -231, -1590, 31539,  3051,  -232, -1592, 31535,  3058,  -233,
+	-1594, 31530,  3066,  -234, -1596, 31526,  3073,  -235, -1598, 31520,  3081,  -235, -1600, 31516,  3088,  -236,
+	-1603, 31512,  3096,  -237, -1605, 31508,  3103,  -238, -1607, 31503,  3111,  -239, -1609, 31499,  3118,  -240,
+	-1611, 31493,  3126,  -240, -1613, 31489,  3133,  -241, -1615, 31484,  3141,  -242, -1617, 31479,  3149,  -243,
+	-1620, 31476,  3156,  -244, -1622, 31471,  3164,  -245, -1624, 31467,  3171,  -246, -1626, 31461,  3179,  -246,
+	-1628, 31457,  3186,  -247, -1630, 31452,  3194,  -248, -1632, 31447,  3202,  -249, -1634, 31443,  3209,  -250,
+	-1636, 31438,  3217,  -251, -1638, 31433,  3224,  -251, -1641, 31429,  3232,  -252, -1643, 31424,  3240,  -253,
+	-1645, 31420,  3247,  -254, -1647, 31415,  3255,  -255, -1649, 31410,  3263,  -256, -1651, 31406,  3270,  -257,
+	-1653, 31400,  3278,  -257, -1655, 31395,  3286,  -258, -1657, 31391,  3293,  -259, -1659, 31386,  3301,  -260,
+	-1661, 31381,  3309,  -261, -1663, 31377,  3316,  -262, -1665, 31372,  3324,  -263, -1667, 31367,  3332,  -264,
+	-1669, 31362,  3339,  -264, -1671, 31357,  3347,  -265, -1673, 31352,  3355,  -266, -1675, 31347,  3363,  -267,
+	-1677, 31343,  3370,  -268, -1680, 31339,  3378,  -269, -1682, 31334,  3386,  -270, -1684, 31329,  3393,  -270,
+	-1686, 31324,  3401,  -271, -1688, 31319,  3409,  -272, -1690, 31314,  3417,  -273, -1692, 31310,  3424,  -274,
+	-1694, 31305,  3432,  -275, -1696, 31300,  3440,  -276, -1698, 31295,  3448,  -277, -1700, 31290,  3456,  -278,
+	-1702, 31285,  3463,  -278, -1704, 31280,  3471,  -279, -1706, 31275,  3479,  -280, -1708, 31270,  3487,  -281,
+	-1709, 31264,  3495,  -282, -1711, 31260,  3502,  -283, -1713, 31255,  3510,  -284, -1715, 31250,  3518,  -285,
+	-1717, 31245,  3526,  -286, -1719, 31239,  3534,  -286, -1721, 31235,  3541,  -287, -1723, 31230,  3549,  -288,
+	-1725, 31225,  3557,  -289, -1727, 31220,  3565,  -290, -1729, 31215,  3573,  -291, -1731, 31210,  3581,  -292,
+	-1733, 31205,  3589,  -293, -1735, 31201,  3596,  -294, -1737, 31196,  3604,  -295, -1739, 31191,  3612,  -296,
+	-1741, 31185,  3620,  -296, -1743, 31180,  3628,  -297, -1745, 31175,  3636,  -298, -1746, 31169,  3644,  -299,
+	-1748, 31164,  3652,  -300, -1750, 31159,  3660,  -301, -1752, 31154,  3668,  -302, -1754, 31149,  3676,  -303,
+	-1756, 31145,  3683,  -304, -1758, 31140,  3691,  -305, -1760, 31135,  3699,  -306, -1762, 31129,  3707,  -306,
+	-1764, 31124,  3715,  -307, -1765, 31118,  3723,  -308, -1767, 31113,  3731,  -309, -1769, 31108,  3739,  -310,
+	-1771, 31103,  3747,  -311, -1773, 31098,  3755,  -312, -1775, 31093,  3763,  -313, -1777, 31088,  3771,  -314,
+	-1779, 31083,  3779,  -315, -1780, 31077,  3787,  -316, -1782, 31072,  3795,  -317, -1784, 31067,  3803,  -318,
+	-1786, 31062,  3811,  -319, -1788, 31057,  3819,  -320, -1790, 31051,  3827,  -320, -1792, 31046,  3835,  -321,
+	-1793, 31040,  3843,  -322, -1795, 31035,  3851,  -323, -1797, 31030,  3859,  -324, -1799, 31025,  3867,  -325,
+	-1801, 31020,  3875,  -326, -1803, 31015,  3883,  -327, -1804, 31008,  3892,  -328, -1806, 31003,  3900,  -329,
+	-1808, 30998,  3908,  -330, -1810, 30993,  3916,  -331, -1812, 30988,  3924,  -332, -1813, 30982,  3932,  -333,
+	-1815, 30977,  3940,  -334, -1817, 30972,  3948,  -335, -1819, 30967,  3956,  -336, -1821, 30962,  3964,  -337,
+	-1823, 30956,  3973,  -338, -1824, 30949,  3981,  -338, -1826, 30944,  3989,  -339, -1828, 30939,  3997,  -340,
+	-1830, 30934,  4005,  -341, -1831, 30928,  4013,  -342, -1833, 30923,  4021,  -343, -1835, 30918,  4029,  -344,
+	-1837, 30912,  4038,  -345, -1839, 30907,  4046,  -346, -1840, 30901,  4054,  -347, -1842, 30896,  4062,  -348,
+	-1844, 30891,  4070,  -349, -1846, 30885,  4079,  -350, -1847, 30879,  4087,  -351, -1849, 30874,  4095,  -352,
+	-1851, 30869,  4103,  -353, -1853, 30864,  4111,  -354, -1854, 30858,  4119,  -355, -1856, 30852,  4128,  -356,
+	-1858, 30847,  4136,  -357, -1859, 30841,  4144,  -358, -1861, 30836,  4152,  -359, -1863, 30830,  4161,  -360,
+	-1865, 30825,  4169,  -361, -1866, 30819,  4177,  -362, -1868, 30814,  4185,  -363, -1870, 30808,  4194,  -364,
+	-1872, 30803,  4202,  -365, -1873, 30797,  4210,  -366, -1875, 30792,  4218,  -367, -1877, 30786,  4227,  -368,
+	-1878, 30780,  4235,  -369, -1880, 30775,  4243,  -370, -1882, 30769,  4252,  -371, -1883, 30763,  4260,  -372,
+	-1885, 30758,  4268,  -373, -1887, 30753,  4276,  -374, -1888, 30746,  4285,  -375, -1890, 30741,  4293,  -376,
+	-1892, 30736,  4301,  -377, -1894, 30730,  4310,  -378, -1895, 30724,  4318,  -379, -1897, 30719,  4326,  -380,
+	-1899, 30713,  4335,  -381, -1900, 30707,  4343,  -382, -1902, 30702,  4351,  -383, -1903, 30695,  4360,  -384,
+	-1905, 30690,  4368,  -385, -1907, 30685,  4376,  -386, -1908, 30678,  4385,  -387, -1910, 30673,  4393,  -388,
+	-1912, 30667,  4402,  -389, -1913, 30661,  4410,  -390, -1915, 30656,  4418,  -391, -1917, 30650,  4427,  -392,
+	-1918, 30644,  4435,  -393, -1920, 30639,  4443,  -394, -1922, 30633,  4452,  -395, -1923, 30627,  4460,  -396,
+	-1925, 30621,  4469,  -397, -1926, 30615,  4477,  -398, -1928, 30609,  4486,  -399, -1930, 30604,  4494,  -400,
+	-1931, 30598,  4502,  -401, -1933, 30592,  4511,  -402, -1934, 30586,  4519,  -403, -1936, 30580,  4528,  -404,
+	-1938, 30575,  4536,  -405, -1939, 30568,  4545,  -406, -1941, 30563,  4553,  -407, -1942, 30556,  4562,  -408,
+	-1944, 30551,  4570,  -409, -1946, 30545,  4579,  -410, -1947, 30539,  4587,  -411, -1949, 30533,  4596,  -412,
+	-1950, 30527,  4604,  -413, -1952, 30521,  4613,  -414, -1953, 30515,  4621,  -415, -1955, 30509,  4630,  -416,
+	-1956, 30503,  4638,  -417, -1958, 30497,  4647,  -418, -1960, 30492,  4655,  -419, -1961, 30485,  4664,  -420,
+	-1963, 30480,  4672,  -421, -1964, 30473,  4681,  -422, -1966, 30468,  4689,  -423, -1967, 30462,  4698,  -425,
+	-1969, 30457,  4706,  -426, -1970, 30450,  4715,  -427, -1972, 30445,  4723,  -428, -1973, 30438,  4732,  -429,
+	-1975, 30432,  4741,  -430, -1977, 30427,  4749,  -431, -1978, 30420,  4758,  -432, -1980, 30415,  4766,  -433,
+	-1981, 30408,  4775,  -434, -1983, 30403,  4783,  -435, -1984, 30396,  4792,  -436, -1986, 30390,  4801,  -437,
+	-1987, 30384,  4809,  -438, -1989, 30378,  4818,  -439, -1990, 30372,  4826,  -440, -1992, 30366,  4835,  -441,
+	-1993, 30359,  4844,  -442, -1995, 30354,  4852,  -443, -1996, 30347,  4861,  -444, -1998, 30342,  4870,  -446,
+	-1999, 30336,  4878,  -447, -2000, 30329,  4887,  -448, -2002, 30323,  4896,  -449, -2003, 30317,  4904,  -450,
+	-2005, 30311,  4913,  -451, -2006, 30305,  4921,  -452, -2008, 30299,  4930,  -453, -2009, 30292,  4939,  -454,
+	-2011, 30286,  4948,  -455, -2012, 30280,  4956,  -456, -2014, 30274,  4965,  -457, -2015, 30267,  4974,  -458,
+	-2017, 30262,  4982,  -459, -2018, 30255,  4991,  -460, -2019, 30249,  5000,  -462, -2021, 30244,  5008,  -463,
+	-2022, 30237,  5017,  -464, -2024, 30231,  5026,  -465, -2025, 30224,  5035,  -466, -2027, 30219,  5043,  -467,
+	-2028, 30212,  5052,  -468, -2029, 30205,  5061,  -469, -2031, 30200,  5069,  -470, -2032, 30193,  5078,  -471,
+	-2034, 30187,  5087,  -472, -2035, 30180,  5096,  -473, -2036, 30174,  5104,  -474, -2038, 30169,  5113,  -476,
+	-2039, 30162,  5122,  -477, -2041, 30156,  5131,  -478, -2042, 30149,  5140,  -479, -2043, 30143,  5148,  -480,
+	-2045, 30137,  5157,  -481, -2046, 30130,  5166,  -482, -2048, 30124,  5175,  -483, -2049, 30117,  5184,  -484,
+	-2050, 30111,  5192,  -485, -2052, 30105,  5201,  -486, -2053, 30099,  5210,  -488, -2055, 30093,  5219,  -489,
+	-2056, 30086,  5228,  -490, -2057, 30080,  5236,  -491, -2059, 30074,  5245,  -492, -2060, 30067,  5254,  -493,
+	-2061, 30060,  5263,  -494, -2063, 30054,  5272,  -495, -2064, 30047,  5281,  -496, -2065, 30041,  5289,  -497,
+	-2067, 30036,  5298,  -499, -2068, 30029,  5307,  -500, -2069, 30022,  5316,  -501, -2071, 30016,  5325,  -502,
+	-2072, 30009,  5334,  -503, -2073, 30002,  5343,  -504, -2075, 29996,  5352,  -505, -2076, 29990,  5360,  -506,
+	-2077, 29983,  5369,  -507, -2079, 29977,  5378,  -508, -2080, 29971,  5387,  -510, -2081, 29964,  5396,  -511,
+	-2083, 29958,  5405,  -512, -2084, 29951,  5414,  -513, -2085, 29944,  5423,  -514, -2087, 29938,  5432,  -515,
+	-2088, 29931,  5441,  -516, -2089, 29924,  5450,  -517, -2090, 29918,  5458,  -518, -2092, 29913,  5467,  -520,
+	-2093, 29906,  5476,  -521, -2094, 29899,  5485,  -522, -2096, 29893,  5494,  -523, -2097, 29886,  5503,  -524,
+	-2098, 29879,  5512,  -525, -2099, 29872,  5521,  -526, -2101, 29866,  5530,  -527, -2102, 29860,  5539,  -529,
+	-2103, 29853,  5548,  -530, -2105, 29847,  5557,  -531, -2106, 29840,  5566,  -532, -2107, 29833,  5575,  -533,
+	-2108, 29826,  5584,  -534, -2110, 29820,  5593,  -535, -2111, 29813,  5602,  -536, -2112, 29807,  5611,  -538,
+	-2113, 29800,  5620,  -539, -2115, 29794,  5629,  -540, -2116, 29787,  5638,  -541, -2117, 29780,  5647,  -542,
+	-2118, 29773,  5656,  -543, -2120, 29767,  5665,  -544, -2121, 29760,  5674,  -545, -2122, 29754,  5683,  -547,
+	-2123, 29747,  5692,  -548, -2124, 29740,  5701,  -549, -2126, 29734,  5710,  -550, -2127, 29727,  5719,  -551,
+	-2128, 29719,  5729,  -552, -2129, 29712,  5738,  -553, -2130, 29706,  5747,  -555, -2132, 29700,  5756,  -556,
+	-2133, 29693,  5765,  -557, -2134, 29686,  5774,  -558, -2135, 29679,  5783,  -559, -2136, 29672,  5792,  -560,
+	-2138, 29666,  5801,  -561, -2139, 29660,  5810,  -563, -2140, 29653,  5819,  -564, -2141, 29645,  5829,  -565,
+	-2142, 29638,  5838,  -566, -2144, 29632,  5847,  -567, -2145, 29625,  5856,  -568, -2146, 29618,  5865,  -569,
+	-2147, 29612,  5874,  -571, -2148, 29605,  5883,  -572, -2149, 29598,  5892,  -573, -2151, 29591,  5902,  -574,
+	-2152, 29584,  5911,  -575, -2153, 29577,  5920,  -576, -2154, 29571,  5929,  -578, -2155, 29564,  5938,  -579,
+	-2156, 29557,  5947,  -580, -2158, 29551,  5956,  -581, -2159, 29543,  5966,  -582, -2160, 29536,  5975,  -583,
+	-2161, 29529,  5984,  -584, -2162, 29523,  5993,  -586, -2163, 29516,  6002,  -587, -2164, 29508,  6012,  -588,
+	-2165, 29501,  6021,  -589, -2167, 29495,  6030,  -590, -2168, 29488,  6039,  -591, -2169, 29482,  6048,  -593,
+	-2170, 29474,  6058,  -594, -2171, 29467,  6067,  -595, -2172, 29460,  6076,  -596, -2173, 29453,  6085,  -597,
+	-2174, 29446,  6094,  -598, -2176, 29440,  6104,  -600, -2177, 29433,  6113,  -601, -2178, 29426,  6122,  -602,
+	-2179, 29419,  6131,  -603, -2180, 29411,  6141,  -604, -2181, 29404,  6150,  -605, -2182, 29398,  6159,  -607,
+	-2183, 29391,  6168,  -608, -2184, 29383,  6178,  -609, -2185, 29376,  6187,  -610, -2186, 29369,  6196,  -611,
+	-2188, 29363,  6206,  -613, -2189, 29356,  6215,  -614, -2190, 29349,  6224,  -615, -2191, 29342,  6233,  -616,
+	-2192, 29334,  6243,  -617, -2193, 29327,  6252,  -618, -2194, 29321,  6261,  -620, -2195, 29313,  6271,  -621,
+	-2196, 29306,  6280,  -622, -2197, 29299,  6289,  -623, -2198, 29292,  6298,  -624, -2199, 29284,  6308,  -625,
+	-2200, 29278,  6317,  -627, -2201, 29271,  6326,  -628, -2202, 29263,  6336,  -629, -2203, 29256,  6345,  -630,
+	-2204, 29249,  6354,  -631, -2205, 29242,  6364,  -633, -2206, 29235,  6373,  -634, -2207, 29228,  6382,  -635,
+	-2208, 29220,  6392,  -636, -2209, 29213,  6401,  -637, -2211, 29207,  6411,  -639, -2212, 29200,  6420,  -640,
+	-2213, 29193,  6429,  -641, -2214, 29185,  6439,  -642, -2215, 29178,  6448,  -643, -2216, 29171,  6457,  -644,
+	-2217, 29164,  6467,  -646, -2218, 29157,  6476,  -647, -2219, 29149,  6486,  -648, -2220, 29142,  6495,  -649,
+	-2221, 29135,  6504,  -650, -2222, 29128,  6514,  -652, -2223, 29121,  6523,  -653, -2224, 29113,  6533,  -654,
+	-2224, 29105,  6542,  -655, -2225, 29098,  6551,  -656, -2226, 29091,  6561,  -658, -2227, 29084,  6570,  -659,
+	-2228, 29076,  6580,  -660, -2229, 29069,  6589,  -661, -2230, 29061,  6599,  -662, -2231, 29055,  6608,  -664,
+	-2232, 29048,  6617,  -665, -2233, 29040,  6627,  -666, -2234, 29033,  6636,  -667, -2235, 29025,  6646,  -668,
+	-2236, 29019,  6655,  -670, -2237, 29011,  6665,  -671, -2238, 29004,  6674,  -672, -2239, 28996,  6684,  -673,
+	-2240, 28990,  6693,  -675, -2241, 28982,  6703,  -676, -2242, 28975,  6712,  -677, -2243, 28967,  6722,  -678,
+	-2244, 28960,  6731,  -679, -2245, 28953,  6741,  -681, -2245, 28945,  6750,  -682, -2246, 28937,  6760,  -683,
+	-2247, 28930,  6769,  -684, -2248, 28922,  6779,  -685, -2249, 28916,  6788,  -687, -2250, 28908,  6798,  -688,
+	-2251, 28901,  6807,  -689, -2252, 28893,  6817,  -690, -2253, 28886,  6826,  -691, -2254, 28879,  6836,  -693,
+	-2255, 28872,  6845,  -694, -2255, 28863,  6855,  -695, -2256, 28856,  6864,  -696, -2257, 28849,  6874,  -698,
+	-2258, 28842,  6883,  -699, -2259, 28834,  6893,  -700, -2260, 28826,  6903,  -701, -2261, 28819,  6912,  -702,
+	-2262, 28812,  6922,  -704, -2263, 28805,  6931,  -705, -2263, 28796,  6941,  -706, -2264, 28789,  6950,  -707,
+	-2265, 28782,  6960,  -709, -2266, 28774,  6970,  -710, -2267, 28767,  6979,  -711, -2268, 28759,  6989,  -712,
+	-2269, 28752,  6998,  -713, -2269, 28744,  7008,  -715, -2270, 28736,  7018,  -716, -2271, 28729,  7027,  -717,
+	-2272, 28721,  7037,  -718, -2273, 28715,  7046,  -720, -2274, 28707,  7056,  -721, -2275, 28699,  7066,  -722,
+	-2275, 28691,  7075,  -723, -2276, 28684,  7085,  -725, -2277, 28676,  7095,  -726, -2278, 28669,  7104,  -727,
+	-2279, 28661,  7114,  -728, -2280, 28654,  7123,  -729, -2280, 28646,  7133,  -731, -2281, 28638,  7143,  -732,
+	-2282, 28631,  7152,  -733, -2283, 28623,  7162,  -734, -2284, 28616,  7172,  -736, -2284, 28608,  7181,  -737,
+	-2285, 28600,  7191,  -738, -2286, 28592,  7201,  -739, -2287, 28586,  7210,  -741, -2288, 28578,  7220,  -742,
+	-2289, 28570,  7230,  -743, -2289, 28562,  7239,  -744, -2290, 28555,  7249,  -746, -2291, 28547,  7259,  -747,
+	-2292, 28540,  7268,  -748, -2292, 28531,  7278,  -749, -2293, 28524,  7288,  -751, -2294, 28516,  7298,  -752,
+	-2295, 28509,  7307,  -753, -2296, 28501,  7317,  -754, -2296, 28493,  7327,  -756, -2297, 28486,  7336,  -757,
+	-2298, 28478,  7346,  -758, -2299, 28470,  7356,  -759, -2299, 28462,  7366,  -761, -2300, 28455,  7375,  -762,
+	-2301, 28447,  7385,  -763, -2302, 28439,  7395,  -764, -2302, 28431,  7405,  -766, -2303, 28424,  7414,  -767,
+	-2304, 28416,  7424,  -768, -2305, 28408,  7434,  -769, -2305, 28400,  7444,  -771, -2306, 28393,  7453,  -772,
+	-2307, 28385,  7463,  -773, -2308, 28377,  7473,  -774, -2308, 28369,  7483,  -776, -2309, 28362,  7492,  -777,
+	-2310, 28354,  7502,  -778, -2311, 28346,  7512,  -779, -2311, 28338,  7522,  -781, -2312, 28331,  7531,  -782,
+	-2313, 28323,  7541,  -783, -2314, 28315,  7551,  -784, -2314, 28307,  7561,  -786, -2315, 28299,  7571,  -787,
+	-2316, 28292,  7580,  -788, -2316, 28283,  7590,  -789, -2317, 28276,  7600,  -791, -2318, 28268,  7610,  -792,
+	-2319, 28260,  7620,  -793, -2319, 28252,  7629,  -794, -2320, 28245,  7639,  -796, -2321, 28237,  7649,  -797,
+	-2321, 28228,  7659,  -798, -2322, 28220,  7669,  -799, -2323, 28213,  7679,  -801, -2323, 28205,  7688,  -802,
+	-2324, 28197,  7698,  -803, -2325, 28189,  7708,  -804, -2325, 28181,  7718,  -806, -2326, 28173,  7728,  -807,
+	-2327, 28165,  7738,  -808, -2327, 28157,  7748,  -810, -2328, 28150,  7757,  -811, -2329, 28142,  7767,  -812,
+	-2329, 28133,  7777,  -813, -2330, 28126,  7787,  -815, -2331, 28118,  7797,  -816, -2331, 28109,  7807,  -817,
+	-2332, 28101,  7817,  -818, -2333, 28094,  7827,  -820, -2333, 28086,  7836,  -821, -2334, 28078,  7846,  -822,
+	-2335, 28070,  7856,  -823, -2335, 28062,  7866,  -825, -2336, 28054,  7876,  -826, -2337, 28046,  7886,  -827,
+	-2337, 28038,  7896,  -829, -2338, 28030,  7906,  -830, -2338, 28021,  7916,  -831, -2339, 28013,  7926,  -832,
+	-2340, 28006,  7936,  -834, -2340, 27998,  7945,  -835, -2341, 27990,  7955,  -836, -2342, 27982,  7965,  -837,
+	-2342, 27974,  7975,  -839, -2343, 27966,  7985,  -840, -2343, 27957,  7995,  -841, -2344, 27950,  8005,  -843,
+	-2345, 27942,  8015,  -844, -2345, 27933,  8025,  -845, -2346, 27925,  8035,  -846, -2346, 27917,  8045,  -848,
+	-2347, 27909,  8055,  -849, -2348, 27901,  8065,  -850, -2348, 27892,  8075,  -851, -2349, 27885,  8085,  -853,
+	-2349, 27876,  8095,  -854, -2350, 27868,  8105,  -855, -2351, 27861,  8115,  -857, -2351, 27852,  8125,  -858,
+	-2352, 27844,  8135,  -859, -2352, 27835,  8145,  -860, -2353, 27828,  8155,  -862, -2353, 27819,  8165,  -863,
+	-2354, 27811,  8175,  -864, -2355, 27804,  8185,  -866, -2355, 27795,  8195,  -867, -2356, 27787,  8205,  -868,
+	-2356, 27778,  8215,  -869, -2357, 27771,  8225,  -871, -2357, 27762,  8235,  -872, -2358, 27754,  8245,  -873,
+	-2359, 27747,  8255,  -875, -2359, 27738,  8265,  -876, -2360, 27730,  8275,  -877, -2360, 27721,  8285,  -878,
+	-2361, 27714,  8295,  -880, -2361, 27705,  8305,  -881, -2362, 27697,  8315,  -882, -2362, 27689,  8325,  -884,
+	-2363, 27681,  8335,  -885, -2363, 27672,  8345,  -886, -2364, 27664,  8355,  -887, -2364, 27656,  8365,  -889,
+	-2365, 27648,  8375,  -890, -2365, 27639,  8385,  -891, -2366, 27632,  8395,  -893, -2367, 27624,  8405,  -894,
+	-2367, 27615,  8415,  -895, -2368, 27607,  8425,  -896, -2368, 27598,  8436,  -898, -2369, 27590,  8446,  -899,
+	-2369, 27581,  8456,  -900, -2370, 27574,  8466,  -902, -2370, 27565,  8476,  -903, -2371, 27557,  8486,  -904,
+	-2371, 27549,  8496,  -906, -2372, 27541,  8506,  -907, -2372, 27532,  8516,  -908, -2373, 27524,  8526,  -909,
+	-2373, 27516,  8536,  -911, -2374, 27507,  8547,  -912, -2374, 27498,  8557,  -913, -2374, 27490,  8567,  -915,
+	-2375, 27482,  8577,  -916, -2375, 27473,  8587,  -917, -2376, 27466,  8597,  -919, -2376, 27457,  8607,  -920,
+	-2377, 27449,  8617,  -921, -2377, 27439,  8628,  -922, -2378, 27432,  8638,  -924, -2378, 27423,  8648,  -925,
+	-2379, 27415,  8658,  -926, -2379, 27407,  8668,  -928, -2380, 27399,  8678,  -929, -2380, 27390,  8688,  -930,
+	-2381, 27382,  8699,  -932, -2381, 27373,  8709,  -933, -2381, 27364,  8719,  -934, -2382, 27356,  8729,  -935,
+	-2382, 27348,  8739,  -937, -2383, 27340,  8749,  -938, -2383, 27331,  8759,  -939, -2384, 27323,  8770,  -941,
+	-2384, 27314,  8780,  -942, -2384, 27305,  8790,  -943, -2385, 27298,  8800,  -945, -2385, 27289,  8810,  -946,
+	-2386, 27280,  8821,  -947, -2386, 27271,  8831,  -948, -2387, 27264,  8841,  -950, -2387, 27255,  8851,  -951,
+	-2387, 27246,  8861,  -952, -2388, 27238,  8872,  -954, -2388, 27229,  8882,  -955, -2389, 27221,  8892,  -956,
+	-2389, 27213,  8902,  -958, -2389, 27204,  8912,  -959, -2390, 27195,  8923,  -960, -2390, 27186,  8933,  -961,
+	-2391, 27179,  8943,  -963, -2391, 27170,  8953,  -964, -2391, 27161,  8963,  -965, -2392, 27153,  8974,  -967,
+	-2392, 27144,  8984,  -968, -2393, 27136,  8994,  -969, -2393, 27128,  9004,  -971, -2393, 27118,  9015,  -972,
+	-2394, 27110,  9025,  -973, -2394, 27102,  9035,  -975, -2394, 27093,  9045,  -976, -2395, 27084,  9056,  -977,
+	-2395, 27076,  9066,  -979, -2396, 27068,  9076,  -980, -2396, 27059,  9086,  -981, -2396, 27049,  9097,  -982,
+	-2397, 27042,  9107,  -984, -2397, 27033,  9117,  -985, -2397, 27024,  9127,  -986, -2398, 27016,  9138,  -988,
+	-2398, 27007,  9148,  -989, -2398, 26998,  9158,  -990, -2399, 26991,  9168,  -992, -2399, 26981,  9179,  -993,
+	-2399, 26972,  9189,  -994, -2400, 26965,  9199,  -996, -2400, 26955,  9210,  -997, -2401, 26947,  9220,  -998,
+	-2401, 26939,  9230, -1000, -2401, 26930,  9240, -1001, -2402, 26921,  9251, -1002, -2402, 26912,  9261, -1003,
+	-2402, 26904,  9271, -1005, -2402, 26894,  9282, -1006, -2403, 26886,  9292, -1007, -2403, 26878,  9302, -1009,
+	-2403, 26868,  9313, -1010, -2404, 26860,  9323, -1011, -2404, 26852,  9333, -1013, -2404, 26842,  9344, -1014,
+	-2405, 26834,  9354, -1015, -2405, 26826,  9364, -1017, -2405, 26816,  9375, -1018, -2406, 26808,  9385, -1019,
+	-2406, 26800,  9395, -1021, -2406, 26790,  9406, -1022, -2406, 26781,  9416, -1023, -2407, 26774,  9426, -1025,
+	-2407, 26764,  9437, -1026, -2407, 26755,  9447, -1027, -2408, 26747,  9457, -1028, -2408, 26738,  9468, -1030,
+	-2408, 26729,  9478, -1031, -2409, 26721,  9488, -1032, -2409, 26712,  9499, -1034, -2409, 26703,  9509, -1035,
+	-2409, 26693,  9520, -1036, -2410, 26686,  9530, -1038, -2410, 26677,  9540, -1039, -2410, 26667,  9551, -1040,
+	-2410, 26659,  9561, -1042, -2411, 26651,  9571, -1043, -2411, 26641,  9582, -1044, -2411, 26633,  9592, -1046,
+	-2411, 26623,  9603, -1047, -2412, 26615,  9613, -1048, -2412, 26607,  9623, -1050, -2412, 26597,  9634, -1051,
+	-2412, 26588,  9644, -1052, -2413, 26581,  9654, -1054, -2413, 26571,  9665, -1055, -2413, 26562,  9675, -1056,
+	-2413, 26553,  9686, -1058, -2414, 26545,  9696, -1059, -2414, 26535,  9707, -1060, -2414, 26527,  9717, -1062,
+	-2414, 26518,  9727, -1063, -2415, 26509,  9738, -1064, -2415, 26501,  9748, -1066, -2415, 26491,  9759, -1067,
+	-2415, 26482,  9769, -1068, -2415, 26473,  9779, -1069, -2416, 26465,  9790, -1071, -2416, 26456,  9800, -1072,
+	-2416, 26446,  9811, -1073, -2416, 26438,  9821, -1075, -2417, 26429,  9832, -1076, -2417, 26420,  9842, -1077,
+	-2417, 26411,  9853, -1079, -2417, 26402,  9863, -1080, -2417, 26393,  9873, -1081, -2418, 26385,  9884, -1083,
+	-2418, 26376,  9894, -1084, -2418, 26366,  9905, -1085, -2418, 26358,  9915, -1087, -2418, 26348,  9926, -1088,
+	-2419, 26340,  9936, -1089, -2419, 26331,  9947, -1091, -2419, 26322,  9957, -1092, -2419, 26312,  9968, -1093,
+	-2419, 26304,  9978, -1095, -2419, 26294,  9989, -1096, -2420, 26286,  9999, -1097, -2420, 26277, 10010, -1099,
+	-2420, 26268, 10020, -1100, -2420, 26259, 10030, -1101, -2420, 26250, 10041, -1103, -2421, 26242, 10051, -1104,
+	-2421, 26232, 10062, -1105, -2421, 26224, 10072, -1107, -2421, 26214, 10083, -1108, -2421, 26205, 10093, -1109,
+	-2421, 26196, 10104, -1111, -2421, 26187, 10114, -1112, -2422, 26178, 10125, -1113, -2422, 26170, 10135, -1115,
+	-2422, 26160, 10146, -1116, -2422, 26151, 10156, -1117, -2422, 26142, 10167, -1119, -2422, 26132, 10178, -1120,
+	-2422, 26123, 10188, -1121, -2423, 26115, 10199, -1123, -2423, 26106, 10209, -1124, -2423, 26096, 10220, -1125,
+	-2423, 26088, 10230, -1127, -2423, 26078, 10241, -1128, -2423, 26069, 10251, -1129, -2423, 26060, 10262, -1131,
+	-2424, 26052, 10272, -1132, -2424, 26042, 10283, -1133, -2424, 26034, 10293, -1135, -2424, 26024, 10304, -1136,
+	-2424, 26015, 10314, -1137, -2424, 26006, 10325, -1139, -2424, 25996, 10336, -1140, -2424, 25987, 10346, -1141,
+	-2424, 25978, 10357, -1143, -2425, 25970, 10367, -1144, -2425, 25960, 10378, -1145, -2425, 25952, 10388, -1147,
+	-2425, 25942, 10399, -1148, -2425, 25933, 10409, -1149, -2425, 25924, 10420, -1151, -2425, 25914, 10431, -1152,
+	-2425, 25905, 10441, -1153, -2425, 25896, 10452, -1155, -2425, 25887, 10462, -1156, -2425, 25877, 10473, -1157,
+	-2426, 25870, 10483, -1159, -2426, 25860, 10494, -1160, -2426, 25850, 10505, -1161, -2426, 25842, 10515, -1163,
+	-2426, 25832, 10526, -1164, -2426, 25823, 10536, -1165, -2426, 25814, 10547, -1167, -2426, 25804, 10558, -1168,
+	-2426, 25795, 10568, -1169, -2426, 25786, 10579, -1171, -2426, 25777, 10589, -1172, -2426, 25767, 10600, -1173,
+	-2426, 25758, 10611, -1175, -2426, 25749, 10621, -1176, -2427, 25740, 10632, -1177, -2427, 25732, 10642, -1179,
+	-2427, 25722, 10653, -1180, -2427, 25712, 10664, -1181, -2427, 25704, 10674, -1183, -2427, 25694, 10685, -1184,
+	-2427, 25684, 10696, -1185, -2427, 25676, 10706, -1187, -2427, 25666, 10717, -1188, -2427, 25657, 10727, -1189,
+	-2427, 25648, 10738, -1191, -2427, 25638, 10749, -1192, -2427, 25629, 10759, -1193, -2427, 25620, 10770, -1195,
+	-2427, 25610, 10781, -1196, -2427, 25601, 10791, -1197, -2427, 25592, 10802, -1199, -2427, 25582, 10813, -1200,
+	-2427, 25573, 10823, -1201, -2427, 25564, 10834, -1203, -2427, 25555, 10844, -1204, -2427, 25545, 10855, -1205,
+	-2427, 25536, 10866, -1207, -2427, 25527, 10876, -1208, -2427, 25517, 10887, -1209, -2427, 25508, 10898, -1211,
+	-2427, 25499, 10908, -1212, -2427, 25489, 10919, -1213, -2427, 25480, 10930, -1215, -2427, 25471, 10940, -1216,
+	-2427, 25461, 10951, -1217, -2427, 25452, 10962, -1219, -2427, 25443, 10972, -1220, -2427, 25433, 10983, -1221,
+	-2427, 25424, 10994, -1223, -2427, 25414, 11005, -1224, -2427, 25405, 11015, -1225, -2427, 25396, 11026, -1227,
+	-2427, 25386, 11037, -1228, -2427, 25377, 11047, -1229, -2427, 25368, 11058, -1231, -2427, 25358, 11069, -1232,
+	-2427, 25349, 11079, -1233, -2427, 25340, 11090, -1235, -2427, 25330, 11101, -1236, -2427, 25321, 11111, -1237,
+	-2427, 25312, 11122, -1239, -2427, 25302, 11133, -1240, -2427, 25292, 11144, -1241, -2427, 25284, 11154, -1243,
+	-2427, 25274, 11165, -1244, -2427, 25264, 11176, -1245, -2427, 25256, 11186, -1247, -2427, 25246, 11197, -1248,
+	-2427, 25236, 11208, -1249, -2427, 25227, 11219, -1251, -2426, 25217, 11229, -1252, -2426, 25207, 11240, -1253,
+	-2426, 25198, 11251, -1255, -2426, 25189, 11261, -1256, -2426, 25179, 11272, -1257, -2426, 25170, 11283, -1259,
+	-2426, 25160, 11294, -1260, -2426, 25151, 11304, -1261, -2426, 25142, 11315, -1263, -2426, 25132, 11326, -1264,
+	-2426, 25122, 11337, -1265, -2426, 25114, 11347, -1267, -2426, 25104, 11358, -1268, -2426, 25094, 11369, -1269,
+	-2426, 25085, 11380, -1271, -2425, 25075, 11390, -1272, -2425, 25065, 11401, -1273, -2425, 25055, 11412, -1274,
+	-2425, 25047, 11422, -1276, -2425, 25037, 11433, -1277, -2425, 25027, 11444, -1278, -2425, 25018, 11455, -1280,
+	-2425, 25008, 11466, -1281, -2425, 24999, 11476, -1282, -2425, 24990, 11487, -1284, -2424, 24979, 11498, -1285,
+	-2424, 24969, 11509, -1286, -2424, 24961, 11519, -1288, -2424, 24951, 11530, -1289, -2424, 24941, 11541, -1290,
+	-2424, 24932, 11552, -1292, -2424, 24923, 11562, -1293, -2424, 24913, 11573, -1294, -2424, 24904, 11584, -1296,
+	-2423, 24893, 11595, -1297, -2423, 24883, 11606, -1298, -2423, 24875, 11616, -1300, -2423, 24865, 11627, -1301,
+	-2423, 24855, 11638, -1302, -2423, 24846, 11649, -1304, -2423, 24837, 11659, -1305, -2423, 24827, 11670, -1306,
+	-2422, 24817, 11681, -1308, -2422, 24807, 11692, -1309, -2422, 24797, 11703, -1310, -2422, 24789, 11713, -1312,
+	-2422, 24779, 11724, -1313, -2422, 24769, 11735, -1314, -2422, 24760, 11746, -1316, -2421, 24749, 11757, -1317,
+	-2421, 24740, 11767, -1318, -2421, 24731, 11778, -1320, -2421, 24721, 11789, -1321, -2421, 24711, 11800, -1322,
+	-2421, 24702, 11811, -1324, -2421, 24692, 11822, -1325, -2420, 24682, 11832, -1326, -2420, 24673, 11843, -1328,
+	-2420, 24663, 11854, -1329, -2420, 24653, 11865, -1330, -2420, 24644, 11876, -1332, -2420, 24635, 11886, -1333,
+	-2419, 24624, 11897, -1334, -2419, 24615, 11908, -1336, -2419, 24605, 11919, -1337, -2419, 24595, 11930, -1338,
+	-2419, 24586, 11941, -1340, -2419, 24577, 11951, -1341, -2418, 24566, 11962, -1342, -2418, 24557, 11973, -1344,
+	-2418, 24547, 11984, -1345, -2418, 24537, 11995, -1346, -2418, 24528, 12006, -1348, -2417, 24518, 12016, -1349,
+	-2417, 24508, 12027, -1350, -2417, 24499, 12038, -1352, -2417, 24489, 12049, -1353, -2417, 24479, 12060, -1354,
+	-2416, 24469, 12071, -1356, -2416, 24459, 12082, -1357, -2416, 24450, 12092, -1358, -2416, 24441, 12103, -1360,
+	-2416, 24431, 12114, -1361, -2415, 24420, 12125, -1362, -2415, 24411, 12136, -1364, -2415, 24401, 12147, -1365,
+	-2415, 24391, 12158, -1366, -2415, 24382, 12168, -1367, -2414, 24372, 12179, -1369, -2414, 24362, 12190, -1370,
+	-2414, 24352, 12201, -1371, -2414, 24343, 12212, -1373, -2413, 24332, 12223, -1374, -2413, 24322, 12234, -1375,
+	-2413, 24314, 12244, -1377, -2413, 24304, 12255, -1378, -2413, 24294, 12266, -1379, -2412, 24284, 12277, -1381,
+	-2412, 24274, 12288, -1382, -2412, 24264, 12299, -1383, -2412, 24255, 12310, -1385, -2411, 24244, 12321, -1386,
+	-2411, 24234, 12332, -1387, -2411, 24226, 12342, -1389, -2411, 24216, 12353, -1390, -2410, 24205, 12364, -1391,
+	-2410, 24196, 12375, -1393, -2410, 24186, 12386, -1394, -2410, 24176, 12397, -1395, -2409, 24166, 12408, -1397,
+	-2409, 24156, 12419, -1398, -2409, 24146, 12430, -1399, -2409, 24138, 12440, -1401, -2408, 24127, 12451, -1402,
+	-2408, 24117, 12462, -1403, -2408, 24107, 12473, -1404, -2408, 24098, 12484, -1406, -2407, 24087, 12495, -1407,
+	-2407, 24077, 12506, -1408, -2407, 24068, 12517, -1410, -2406, 24057, 12528, -1411, -2406, 24047, 12539, -1412,
+	-2406, 24039, 12549, -1414, -2406, 24029, 12560, -1415, -2405, 24018, 12571, -1416, -2405, 24009, 12582, -1418,
+	-2405, 23999, 12593, -1419, -2404, 23988, 12604, -1420, -2404, 23979, 12615, -1422, -2404, 23969, 12626, -1423,
+	-2404, 23959, 12637, -1424, -2403, 23949, 12648, -1426, -2403, 23939, 12659, -1427, -2403, 23929, 12670, -1428,
+	-2402, 23918, 12681, -1429, -2402, 23910, 12691, -1431, -2402, 23900, 12702, -1432, -2402, 23890, 12713, -1433,
+	-2401, 23880, 12724, -1435, -2401, 23870, 12735, -1436, -2401, 23860, 12746, -1437, -2400, 23850, 12757, -1439,
+	-2400, 23840, 12768, -1440, -2400, 23830, 12779, -1441, -2399, 23820, 12790, -1443, -2399, 23810, 12801, -1444,
+	-2399, 23800, 12812, -1445, -2398, 23790, 12823, -1447, -2398, 23780, 12834, -1448, -2398, 23770, 12845, -1449,
+	-2397, 23759, 12856, -1450, -2397, 23751, 12866, -1452, -2397, 23741, 12877, -1453, -2396, 23730, 12888, -1454,
+	-2396, 23721, 12899, -1456, -2396, 23711, 12910, -1457, -2395, 23700, 12921, -1458, -2395, 23691, 12932, -1460,
+	-2395, 23681, 12943, -1461, -2394, 23670, 12954, -1462, -2394, 23661, 12965, -1464, -2394, 23651, 12976, -1465,
+	-2393, 23640, 12987, -1466, -2393, 23631, 12998, -1468, -2393, 23621, 13009, -1469, -2392, 23610, 13020, -1470,
+	-2392, 23600, 13031, -1471, -2392, 23591, 13042, -1473, -2391, 23580, 13053, -1474, -2391, 23570, 13064, -1475,
+	-2391, 23561, 13075, -1477, -2390, 23550, 13086, -1478, -2390, 23540, 13097, -1479, -2389, 23530, 13108, -1481,
+	-2389, 23520, 13119, -1482, -2389, 23510, 13130, -1483, -2388, 23499, 13141, -1484, -2388, 23490, 13152, -1486,
+	-2388, 23480, 13163, -1487, -2387, 23470, 13173, -1488, -2387, 23461, 13184, -1490, -2387, 23451, 13195, -1491,
+	-2386, 23440, 13206, -1492, -2386, 23431, 13217, -1494, -2385, 23420, 13228, -1495, -2385, 23410, 13239, -1496,
+	-2385, 23400, 13250, -1497, -2384, 23390, 13261, -1499, -2384, 23380, 13272, -1500, -2383, 23369, 13283, -1501,
+	-2383, 23360, 13294, -1503, -2383, 23350, 13305, -1504, -2382, 23339, 13316, -1505, -2382, 23330, 13327, -1507,
+	-2381, 23319, 13338, -1508, -2381, 23309, 13349, -1509, -2381, 23299, 13360, -1510, -2380, 23289, 13371, -1512,
+	-2380, 23279, 13382, -1513, -2379, 23268, 13393, -1514, -2379, 23259, 13404, -1516, -2379, 23249, 13415, -1517,
+	-2378, 23238, 13426, -1518, -2378, 23229, 13437, -1520, -2377, 23218, 13448, -1521, -2377, 23208, 13459, -1522,
+	-2377, 23198, 13470, -1523, -2376, 23188, 13481, -1525, -2376, 23178, 13492, -1526, -2375, 23167, 13503, -1527,
+	-2375, 23158, 13514, -1529, -2374, 23147, 13525, -1530, -2374, 23137, 13536, -1531, -2374, 23127, 13547, -1532,
+	-2373, 23117, 13558, -1534, -2373, 23107, 13569, -1535, -2372, 23096, 13580, -1536, -2372, 23087, 13591, -1538,
+	-2371, 23076, 13602, -1539, -2371, 23066, 13613, -1540, -2371, 23057, 13624, -1542, -2370, 23045, 13636, -1543,
+	-2370, 23035, 13647, -1544, -2369, 23024, 13658, -1545, -2369, 23015, 13669, -1547, -2368, 23004, 13680, -1548,
+	-2368, 22994, 13691, -1549, -2367, 22984, 13702, -1551, -2367, 22974, 13713, -1552, -2367, 22964, 13724, -1553,
+	-2366, 22953, 13735, -1554, -2366, 22944, 13746, -1556, -2365, 22933, 13757, -1557, -2365, 22923, 13768, -1558,
+	-2364, 22913, 13779, -1560, -2364, 22903, 13790, -1561, -2363, 22892, 13801, -1562, -2363, 22882, 13812, -1563,
+	-2362, 22872, 13823, -1565, -2362, 22862, 13834, -1566, -2361, 22851, 13845, -1567, -2361, 22842, 13856, -1569,
+	-2360, 22831, 13867, -1570, -2360, 22821, 13878, -1571, -2359, 22810, 13889, -1572, -2359, 22801, 13900, -1574,
+	-2359, 22791, 13911, -1575, -2358, 22780, 13922, -1576, -2358, 22770, 13933, -1577, -2357, 22760, 13944, -1579,
+	-2357, 22750, 13955, -1580, -2356, 22738, 13967, -1581, -2356, 22729, 13978, -1583, -2355, 22718, 13989, -1584,
+	-2355, 22708, 14000, -1585, -2354, 22697, 14011, -1586, -2354, 22688, 14022, -1588, -2353, 22677, 14033, -1589,
+	-2353, 22667, 14044, -1590, -2352, 22657, 14055, -1592, -2352, 22647, 14066, -1593, -2351, 22636, 14077, -1594,
+	-2351, 22626, 14088, -1595, -2350, 22616, 14099, -1597, -2350, 22606, 14110, -1598, -2349, 22595, 14121, -1599,
+	-2349, 22585, 14132, -1600, -2348, 22575, 14143, -1602, -2348, 22565, 14154, -1603, -2347, 22554, 14165, -1604,
+	-2347, 22544, 14177, -1606, -2346, 22533, 14188, -1607, -2345, 22522, 14199, -1608, -2345, 22512, 14210, -1609,
+	-2344, 22502, 14221, -1611, -2344, 22492, 14232, -1612, -2343, 22481, 14243, -1613, -2343, 22471, 14254, -1614,
+	-2342, 22461, 14265, -1616, -2342, 22451, 14276, -1617, -2341, 22440, 14287, -1618, -2341, 22430, 14298, -1619,
+	-2340, 22420, 14309, -1621, -2340, 22410, 14320, -1622, -2339, 22399, 14331, -1623, -2339, 22389, 14342, -1624,
+	-2338, 22378, 14354, -1626, -2337, 22367, 14365, -1627, -2337, 22357, 14376, -1628, -2336, 22347, 14387, -1630,
+	-2336, 22337, 14398, -1631, -2335, 22326, 14409, -1632, -2335, 22316, 14420, -1633, -2334, 22306, 14431, -1635,
+	-2334, 22296, 14442, -1636, -2333, 22285, 14453, -1637, -2332, 22274, 14464, -1638, -2332, 22265, 14475, -1640,
+	-2331, 22254, 14486, -1641, -2331, 22244, 14497, -1642, -2330, 22232, 14509, -1643, -2330, 22223, 14520, -1645,
+	-2329, 22212, 14531, -1646, -2329, 22202, 14542, -1647, -2328, 22191, 14553, -1648, -2327, 22181, 14564, -1650,
+	-2327, 22171, 14575, -1651, -2326, 22160, 14586, -1652, -2326, 22150, 14597, -1653, -2325, 22140, 14608, -1655,
+	-2325, 22130, 14619, -1656, -2324, 22119, 14630, -1657, -2323, 22107, 14642, -1658, -2323, 22098, 14653, -1660,
+	-2322, 22087, 14664, -1661, -2322, 22077, 14675, -1662, -2321, 22066, 14686, -1663, -2320, 22056, 14697, -1665,
+	-2320, 22046, 14708, -1666, -2319, 22035, 14719, -1667, -2319, 22025, 14730, -1668, -2318, 22015, 14741, -1670,
+	-2317, 22004, 14752, -1671, -2317, 21994, 14763, -1672, -2316, 21982, 14775, -1673, -2316, 21973, 14786, -1675,
+	-2315, 21962, 14797, -1676, -2314, 21951, 14808, -1677, -2314, 21941, 14819, -1678, -2313, 21931, 14830, -1680,
+	-2313, 21921, 14841, -1681, -2312, 21910, 14852, -1682, -2311, 21899, 14863, -1683, -2311, 21890, 14874, -1685,
+	-2310, 21879, 14885, -1686, -2310, 21868, 14897, -1687, -2309, 21857, 14908, -1688, -2308, 21847, 14919, -1690,
+	-2308, 21837, 14930, -1691, -2307, 21826, 14941, -1692, -2306, 21815, 14952, -1693, -2306, 21805, 14963, -1694,
+	-2305, 21795, 14974, -1696, -2305, 21785, 14985, -1697, -2304, 21774, 14996, -1698, -2303, 21763, 15007, -1699,
+	-2303, 21753, 15019, -1701, -2302, 21742, 15030, -1702, -2301, 21731, 15041, -1703, -2301, 21721, 15052, -1704,
+	-2300, 21711, 15063, -1706, -2300, 21701, 15074, -1707, -2299, 21690, 15085, -1708, -2298, 21679, 15096, -1709,
+	-2298, 21669, 15107, -1710, -2297, 21659, 15118, -1712, -2296, 21647, 15130, -1713, -2296, 21637, 15141, -1714,
+	-2295, 21626, 15152, -1715, -2294, 21616, 15163, -1717, -2294, 21606, 15174, -1718, -2293, 21595, 15185, -1719,
+	-2292, 21584, 15196, -1720, -2292, 21575, 15207, -1722, -2291, 21564, 15218, -1723, -2290, 21553, 15229, -1724,
+	-2290, 21542, 15241, -1725, -2289, 21531, 15252, -1726, -2288, 21521, 15263, -1728, -2288, 21511, 15274, -1729,
+	-2287, 21500, 15285, -1730, -2286, 21489, 15296, -1731, -2286, 21480, 15307, -1733, -2285, 21469, 15318, -1734,
+	-2284, 21458, 15329, -1735, -2284, 21447, 15341, -1736, -2283, 21436, 15352, -1737, -2282, 21426, 15363, -1739,
+	-2282, 21416, 15374, -1740, -2281, 21405, 15385, -1741, -2280, 21394, 15396, -1742, -2280, 21384, 15407, -1743,
+	-2279, 21374, 15418, -1745, -2278, 21363, 15429, -1746, -2278, 21353, 15440, -1747, -2277, 21341, 15452, -1748,
+	-2276, 21331, 15463, -1750, -2276, 21321, 15474, -1751, -2275, 21310, 15485, -1752, -2274, 21299, 15496, -1753,
+	-2274, 21289, 15507, -1754, -2273, 21279, 15518, -1756, -2272, 21268, 15529, -1757, -2271, 21257, 15540, -1758,
+	-2271, 21246, 15552, -1759, -2270, 21235, 15563, -1760, -2269, 21225, 15574, -1762, -2269, 21215, 15585, -1763,
+	-2268, 21204, 15596, -1764, -2267, 21193, 15607, -1765, -2267, 21183, 15618, -1766, -2266, 21173, 15629, -1768,
+	-2265, 21162, 15640, -1769, -2264, 21150, 15652, -1770, -2264, 21140, 15663, -1771, -2263, 21129, 15674, -1772,
+	-2262, 21119, 15685, -1774, -2262, 21109, 15696, -1775, -2261, 21098, 15707, -1776, -2260, 21087, 15718, -1777,
+	-2259, 21076, 15729, -1778, -2259, 21067, 15740, -1780, -2258, 21055, 15752, -1781, -2257, 21044, 15763, -1782,
+	-2257, 21034, 15774, -1783, -2256, 21023, 15785, -1784, -2255, 21013, 15796, -1786, -2254, 21002, 15807, -1787,
+	-2254, 20992, 15818, -1788, -2253, 20981, 15829, -1789, -2252, 20970, 15840, -1790, -2251, 20959, 15852, -1792,
+	-2251, 20949, 15863, -1793, -2250, 20938, 15874, -1794, -2249, 20927, 15885, -1795, -2249, 20917, 15896, -1796,
+	-2248, 20906, 15907, -1797, -2247, 20896, 15918, -1799, -2246, 20885, 15929, -1800, -2246, 20875, 15940, -1801,
+	-2245, 20863, 15952, -1802, -2244, 20852, 15963, -1803, -2243, 20842, 15974, -1805, -2243, 20832, 15985, -1806,
+	-2242, 20821, 15996, -1807, -2241, 20810, 16007, -1808, -2240, 20799, 16018, -1809, -2240, 20789, 16029, -1810,
+	-2239, 20779, 16040, -1812, -2238, 20767, 16052, -1813, -2237, 20756, 16063, -1814, -2237, 20746, 16074, -1815,
+	-2236, 20735, 16085, -1816, -2235, 20725, 16096, -1818, -2234, 20714, 16107, -1819, -2233, 20703, 16118, -1820,
+	-2233, 20693, 16129, -1821, -2232, 20682, 16140, -1822, -2231, 20670, 16152, -1823, -2230, 20660, 16163, -1825,
+	-2230, 20650, 16174, -1826, -2229, 20639, 16185, -1827, -2228, 20628, 16196, -1828, -2227, 20617, 16207, -1829,
+	-2227, 20607, 16218, -1830, -2226, 20597, 16229, -1832, -2225, 20586, 16240, -1833, -2224, 20574, 16252, -1834,
+	-2223, 20563, 16263, -1835, -2223, 20553, 16274, -1836, -2222, 20542, 16285, -1837, -2221, 20532, 16296, -1839,
+	-2220, 20521, 16307, -1840, -2220, 20511, 16318, -1841, -2219, 20500, 16329, -1842, -2218, 20489, 16340, -1843,
+	-2217, 20478, 16351, -1844, -2216, 20466, 16363, -1845, -2216, 20457, 16374, -1847, -2215, 20446, 16385, -1848,
+	-2214, 20435, 16396, -1849, -2213, 20424, 16407, -1850, -2212, 20413, 16418, -1851, -2212, 20403, 16429, -1852,
+	-2211, 20393, 16440, -1854, -2210, 20382, 16451, -1855, -2209, 20370, 16463, -1856, -2208, 20359, 16474, -1857,
+	-2208, 20349, 16485, -1858, -2207, 20338, 16496, -1859, -2206, 20327, 16507, -1860, -2205, 20317, 16518, -1862,
+	-2204, 20306, 16529, -1863, -2204, 20296, 16540, -1864, -2203, 20285, 16551, -1865, -2202, 20273, 16563, -1866,
+	-2201, 20262, 16574, -1867, -2200, 20251, 16585, -1868, -2199, 20241, 16596, -1870, -2199, 20231, 16607, -1871,
+	-2198, 20220, 16618, -1872, -2197, 20209, 16629, -1873, -2196, 20198, 16640, -1874, -2195, 20187, 16651, -1875,
+	-2195, 20177, 16662, -1876, -2194, 20166, 16674, -1878, -2193, 20155, 16685, -1879, -2192, 20144, 16696, -1880,
+	-2191, 20133, 16707, -1881, -2190, 20122, 16718, -1882, -2190, 20112, 16729, -1883, -2189, 20101, 16740, -1884,
+	-2188, 20091, 16751, -1886, -2187, 20080, 16762, -1887, -2186, 20069, 16773, -1888, -2185, 20057, 16785, -1889,
+	-2185, 20047, 16796, -1890, -2184, 20036, 16807, -1891, -2183, 20025, 16818, -1892, -2182, 20014, 16829, -1893,
+	-2181, 20004, 16840, -1895, -2180, 19993, 16851, -1896, -2179, 19982, 16862, -1897, -2179, 19972, 16873, -1898,
+	-2178, 19961, 16884, -1899, -2177, 19950, 16895, -1900, -2176, 19938, 16907, -1901, -2175, 19927, 16918, -1902,
+	-2174, 19917, 16929, -1904, -2174, 19907, 16940, -1905, -2173, 19896, 16951, -1906, -2172, 19885, 16962, -1907,
+	-2171, 19874, 16973, -1908, -2170, 19863, 16984, -1909, -2169, 19852, 16995, -1910, -2168, 19841, 17006, -1911,
+	-2168, 19831, 17018, -1913, -2167, 19820, 17029, -1914, -2166, 19809, 17040, -1915, -2165, 19798, 17051, -1916,
+	-2164, 19787, 17062, -1917, -2163, 19776, 17073, -1918, -2162, 19765, 17084, -1919, -2161, 19754, 17095, -1920,
+	-2161, 19744, 17106, -1921, -2160, 19733, 17117, -1922, -2159, 19723, 17128, -1924, -2158, 19712, 17139, -1925,
+	-2157, 19700, 17151, -1926, -2156, 19689, 17162, -1927, -2155, 19678, 17173, -1928, -2154, 19667, 17184, -1929,
+	-2154, 19657, 17195, -1930, -2153, 19646, 17206, -1931, -2152, 19635, 17217, -1932, -2151, 19625, 17228, -1934,
+	-2150, 19614, 17239, -1935, -2149, 19603, 17250, -1936, -2148, 19592, 17261, -1937, -2147, 19581, 17272, -1938,
+	-2146, 19569, 17284, -1939, -2146, 19559, 17295, -1940, -2145, 19548, 17306, -1941, -2144, 19537, 17317, -1942,
+	-2143, 19526, 17328, -1943, -2142, 19515, 17339, -1944, -2141, 19505, 17350, -1946, -2140, 19494, 17361, -1947,
+	-2139, 19483, 17372, -1948, -2138, 19472, 17383, -1949, -2137, 19461, 17394, -1950, -2137, 19451, 17405, -1951,
+	-2136, 19440, 17416, -1952, -2135, 19429, 17427, -1953, -2134, 19417, 17439, -1954, -2133, 19406, 17450, -1955,
+	-2132, 19395, 17461, -1956, -2131, 19384, 17472, -1957, -2130, 19374, 17483, -1959, -2129, 19363, 17494, -1960,
+	-2128, 19352, 17505, -1961, -2127, 19341, 17516, -1962, -2127, 19331, 17527, -1963, -2126, 19320, 17538, -1964,
+	-2125, 19309, 17549, -1965, -2124, 19298, 17560, -1966, -2123, 19287, 17571, -1967, -2122, 19276, 17582, -1968,
+	-2121, 19265, 17593, -1969, -2120, 19253, 17605, -1970, -2119, 19242, 17616, -1971, -2118, 19231, 17627, -1972,
+	-2117, 19221, 17638, -1974, -2116, 19210, 17649, -1975, -2116, 19200, 17660, -1976, -2115, 19189, 17671, -1977,
+	-2114, 19178, 17682, -1978, -2113, 19167, 17693, -1979, -2112, 19156, 17704, -1980, -2111, 19145, 17715, -1981,
+	-2110, 19134, 17726, -1982, -2109, 19123, 17737, -1983, -2108, 19112, 17748, -1984, -2107, 19101, 17759, -1985,
+	-2106, 19090, 17770, -1986, -2105, 19079, 17781, -1987, -2104, 19068, 17792, -1988, -2103, 19056, 17804, -1989,
+	-2102, 19046, 17815, -1991, -2101, 19035, 17826, -1992, -2101, 19025, 17837, -1993, -2100, 19014, 17848, -1994,
+	-2099, 19003, 17859, -1995, -2098, 18992, 17870, -1996, -2097, 18981, 17881, -1997, -2096, 18970, 17892, -1998,
+	-2095, 18959, 17903, -1999, -2094, 18948, 17914, -2000, -2093, 18937, 17925, -2001, -2092, 18926, 17936, -2002,
+	-2091, 18915, 17947, -2003, -2090, 18904, 17958, -2004, -2089, 18893, 17969, -2005, -2088, 18882, 17980, -2006,
+	-2087, 18871, 17991, -2007, -2086, 18860, 18002, -2008, -2085, 18849, 18013, -2009, -2084, 18838, 18024, -2010,
+	-2083, 18827, 18035, -2011, -2082, 18816, 18046, -2012, -2081, 18805, 18057, -2013, -2080, 18794, 18068, -2014,
+	-2079, 18783, 18080, -2016, -2079, 18773, 18091, -2017, -2078, 18762, 18102, -2018, -2077, 18751, 18113, -2019,
+	-2076, 18740, 18124, -2020, -2075, 18729, 18135, -2021, -2074, 18718, 18146, -2022, -2073, 18707, 18157, -2023,
+	-2072, 18696, 18168, -2024, -2071, 18685, 18179, -2025, -2070, 18674, 18190, -2026, -2069, 18663, 18201, -2027,
+	-2068, 18652, 18212, -2028, -2067, 18641, 18223, -2029, -2066, 18630, 18234, -2030, -2065, 18619, 18245, -2031,
+	-2064, 18608, 18256, -2032, -2063, 18597, 18267, -2033, -2062, 18586, 18278, -2034, -2061, 18575, 18289, -2035,
+	-2060, 18564, 18300, -2036, -2059, 18553, 18311, -2037, -2058, 18542, 18322, -2038, -2057, 18531, 18333, -2039,
+	-2056, 18520, 18344, -2040, -2055, 18509, 18355, -2041, -2054, 18498, 18366, -2042, -2053, 18487, 18377, -2043,
+	-2052, 18476, 18388, -2044, -2051, 18465, 18399, -2045, -2050, 18454, 18410, -2046, -2049, 18443, 18421, -2047,
+	-2048, 18432, 18432, -2048, -2047, 18421, 18443, -2049, -2046, 18410, 18454, -2050, -2045, 18399, 18465, -2051,
+	-2044, 18388, 18476, -2052, -2043, 18377, 18487, -2053, -2042, 18366, 18498, -2054, -2041, 18355, 18509, -2055,
+	-2040, 18344, 18520, -2056, -2039, 18333, 18531, -2057, -2038, 18322, 18542, -2058, -2037, 18311, 18553, -2059,
+	-2036, 18300, 18564, -2060, -2035, 18289, 18575, -2061, -2034, 18278, 18586, -2062, -2033, 18267, 18597, -2063,
+	-2032, 18256, 18608, -2064, -2031, 18245, 18619, -2065, -2030, 18234, 18630, -2066, -2029, 18223, 18641, -2067,
+	-2028, 18212, 18652, -2068, -2027, 18201, 18663, -2069, -2026, 18190, 18674, -2070, -2025, 18179, 18685, -2071,
+	-2024, 18168, 18696, -2072, -2023, 18157, 18707, -2073, -2022, 18146, 18718, -2074, -2021, 18135, 18729, -2075,
+	-2020, 18124, 18740, -2076, -2019, 18113, 18751, -2077, -2018, 18102, 18762, -2078, -2017, 18091, 18773, -2079,
+	-2016, 18080, 18783, -2079, -2014, 18068, 18794, -2080, -2013, 18057, 18805, -2081, -2012, 18046, 18816, -2082,
+	-2011, 18035, 18827, -2083, -2010, 18024, 18838, -2084, -2009, 18013, 18849, -2085, -2008, 18002, 18860, -2086,
+	-2007, 17991, 18871, -2087, -2006, 17980, 18882, -2088, -2005, 17969, 18893, -2089, -2004, 17958, 18904, -2090,
+	-2003, 17947, 18915, -2091, -2002, 17936, 18926, -2092, -2001, 17925, 18937, -2093, -2000, 17914, 18948, -2094,
+	-1999, 17903, 18959, -2095, -1998, 17892, 18970, -2096, -1997, 17881, 18981, -2097, -1996, 17870, 18992, -2098,
+	-1995, 17859, 19003, -2099, -1994, 17848, 19014, -2100, -1993, 17837, 19025, -2101, -1992, 17826, 19035, -2101,
+	-1991, 17815, 19046, -2102, -1989, 17804, 19056, -2103, -1988, 17792, 19068, -2104, -1987, 17781, 19079, -2105,
+	-1986, 17770, 19090, -2106, -1985, 17759, 19101, -2107, -1984, 17748, 19112, -2108, -1983, 17737, 19123, -2109,
+	-1982, 17726, 19134, -2110, -1981, 17715, 19145, -2111, -1980, 17704, 19156, -2112, -1979, 17693, 19167, -2113,
+	-1978, 17682, 19178, -2114, -1977, 17671, 19189, -2115, -1976, 17660, 19200, -2116, -1975, 17649, 19210, -2116,
+	-1974, 17638, 19221, -2117, -1972, 17627, 19231, -2118, -1971, 17616, 19242, -2119, -1970, 17605, 19253, -2120,
+	-1969, 17593, 19265, -2121, -1968, 17582, 19276, -2122, -1967, 17571, 19287, -2123, -1966, 17560, 19298, -2124,
+	-1965, 17549, 19309, -2125, -1964, 17538, 19320, -2126, -1963, 17527, 19331, -2127, -1962, 17516, 19341, -2127,
+	-1961, 17505, 19352, -2128, -1960, 17494, 19363, -2129, -1959, 17483, 19374, -2130, -1957, 17472, 19384, -2131,
+	-1956, 17461, 19395, -2132, -1955, 17450, 19406, -2133, -1954, 17439, 19417, -2134, -1953, 17427, 19429, -2135,
+	-1952, 17416, 19440, -2136, -1951, 17405, 19451, -2137, -1950, 17394, 19461, -2137, -1949, 17383, 19472, -2138,
+	-1948, 17372, 19483, -2139, -1947, 17361, 19494, -2140, -1946, 17350, 19505, -2141, -1944, 17339, 19515, -2142,
+	-1943, 17328, 19526, -2143, -1942, 17317, 19537, -2144, -1941, 17306, 19548, -2145, -1940, 17295, 19559, -2146,
+	-1939, 17284, 19569, -2146, -1938, 17272, 19581, -2147, -1937, 17261, 19592, -2148, -1936, 17250, 19603, -2149,
+	-1935, 17239, 19614, -2150, -1934, 17228, 19625, -2151, -1932, 17217, 19635, -2152, -1931, 17206, 19646, -2153,
+	-1930, 17195, 19657, -2154, -1929, 17184, 19667, -2154, -1928, 17173, 19678, -2155, -1927, 17162, 19689, -2156,
+	-1926, 17151, 19700, -2157, -1925, 17139, 19712, -2158, -1924, 17128, 19723, -2159, -1922, 17117, 19733, -2160,
+	-1921, 17106, 19744, -2161, -1920, 17095, 19754, -2161, -1919, 17084, 19765, -2162, -1918, 17073, 19776, -2163,
+	-1917, 17062, 19787, -2164, -1916, 17051, 19798, -2165, -1915, 17040, 19809, -2166, -1914, 17029, 19820, -2167,
+	-1913, 17018, 19831, -2168, -1911, 17006, 19841, -2168, -1910, 16995, 19852, -2169, -1909, 16984, 19863, -2170,
+	-1908, 16973, 19874, -2171, -1907, 16962, 19885, -2172, -1906, 16951, 19896, -2173, -1905, 16940, 19907, -2174,
+	-1904, 16929, 19917, -2174, -1902, 16918, 19927, -2175, -1901, 16907, 19938, -2176, -1900, 16895, 19950, -2177,
+	-1899, 16884, 19961, -2178, -1898, 16873, 19972, -2179, -1897, 16862, 19982, -2179, -1896, 16851, 19993, -2180,
+	-1895, 16840, 20004, -2181, -1893, 16829, 20014, -2182, -1892, 16818, 20025, -2183, -1891, 16807, 20036, -2184,
+	-1890, 16796, 20047, -2185, -1889, 16785, 20057, -2185, -1888, 16773, 20069, -2186, -1887, 16762, 20080, -2187,
+	-1886, 16751, 20091, -2188, -1884, 16740, 20101, -2189, -1883, 16729, 20112, -2190, -1882, 16718, 20122, -2190,
+	-1881, 16707, 20133, -2191, -1880, 16696, 20144, -2192, -1879, 16685, 20155, -2193, -1878, 16674, 20166, -2194,
+	-1876, 16662, 20177, -2195, -1875, 16651, 20187, -2195, -1874, 16640, 20198, -2196, -1873, 16629, 20209, -2197,
+	-1872, 16618, 20220, -2198, -1871, 16607, 20231, -2199, -1870, 16596, 20241, -2199, -1868, 16585, 20251, -2200,
+	-1867, 16574, 20262, -2201, -1866, 16563, 20273, -2202, -1865, 16551, 20285, -2203, -1864, 16540, 20296, -2204,
+	-1863, 16529, 20306, -2204, -1862, 16518, 20317, -2205, -1860, 16507, 20327, -2206, -1859, 16496, 20338, -2207,
+	-1858, 16485, 20349, -2208, -1857, 16474, 20359, -2208, -1856, 16463, 20370, -2209, -1855, 16451, 20382, -2210,
+	-1854, 16440, 20393, -2211, -1852, 16429, 20403, -2212, -1851, 16418, 20413, -2212, -1850, 16407, 20424, -2213,
+	-1849, 16396, 20435, -2214, -1848, 16385, 20446, -2215, -1847, 16374, 20457, -2216, -1845, 16363, 20466, -2216,
+	-1844, 16351, 20478, -2217, -1843, 16340, 20489, -2218, -1842, 16329, 20500, -2219, -1841, 16318, 20511, -2220,
+	-1840, 16307, 20521, -2220, -1839, 16296, 20532, -2221, -1837, 16285, 20542, -2222, -1836, 16274, 20553, -2223,
+	-1835, 16263, 20563, -2223, -1834, 16252, 20574, -2224, -1833, 16240, 20586, -2225, -1832, 16229, 20597, -2226,
+	-1830, 16218, 20607, -2227, -1829, 16207, 20617, -2227, -1828, 16196, 20628, -2228, -1827, 16185, 20639, -2229,
+	-1826, 16174, 20650, -2230, -1825, 16163, 20660, -2230, -1823, 16152, 20670, -2231, -1822, 16140, 20682, -2232,
+	-1821, 16129, 20693, -2233, -1820, 16118, 20703, -2233, -1819, 16107, 20714, -2234, -1818, 16096, 20725, -2235,
+	-1816, 16085, 20735, -2236, -1815, 16074, 20746, -2237, -1814, 16063, 20756, -2237, -1813, 16052, 20767, -2238,
+	-1812, 16040, 20779, -2239, -1810, 16029, 20789, -2240, -1809, 16018, 20799, -2240, -1808, 16007, 20810, -2241,
+	-1807, 15996, 20821, -2242, -1806, 15985, 20832, -2243, -1805, 15974, 20842, -2243, -1803, 15963, 20852, -2244,
+	-1802, 15952, 20863, -2245, -1801, 15940, 20875, -2246, -1800, 15929, 20885, -2246, -1799, 15918, 20896, -2247,
+	-1797, 15907, 20906, -2248, -1796, 15896, 20917, -2249, -1795, 15885, 20927, -2249, -1794, 15874, 20938, -2250,
+	-1793, 15863, 20949, -2251, -1792, 15852, 20959, -2251, -1790, 15840, 20970, -2252, -1789, 15829, 20981, -2253,
+	-1788, 15818, 20992, -2254, -1787, 15807, 21002, -2254, -1786, 15796, 21013, -2255, -1784, 15785, 21023, -2256,
+	-1783, 15774, 21034, -2257, -1782, 15763, 21044, -2257, -1781, 15752, 21055, -2258, -1780, 15740, 21067, -2259,
+	-1778, 15729, 21076, -2259, -1777, 15718, 21087, -2260, -1776, 15707, 21098, -2261, -1775, 15696, 21109, -2262,
+	-1774, 15685, 21119, -2262, -1772, 15674, 21129, -2263, -1771, 15663, 21140, -2264, -1770, 15652, 21150, -2264,
+	-1769, 15640, 21162, -2265, -1768, 15629, 21173, -2266, -1766, 15618, 21183, -2267, -1765, 15607, 21193, -2267,
+	-1764, 15596, 21204, -2268, -1763, 15585, 21215, -2269, -1762, 15574, 21225, -2269, -1760, 15563, 21235, -2270,
+	-1759, 15552, 21246, -2271, -1758, 15540, 21257, -2271, -1757, 15529, 21268, -2272, -1756, 15518, 21279, -2273,
+	-1754, 15507, 21289, -2274, -1753, 15496, 21299, -2274, -1752, 15485, 21310, -2275, -1751, 15474, 21321, -2276,
+	-1750, 15463, 21331, -2276, -1748, 15452, 21341, -2277, -1747, 15440, 21353, -2278, -1746, 15429, 21363, -2278,
+	-1745, 15418, 21374, -2279, -1743, 15407, 21384, -2280, -1742, 15396, 21394, -2280, -1741, 15385, 21405, -2281,
+	-1740, 15374, 21416, -2282, -1739, 15363, 21426, -2282, -1737, 15352, 21436, -2283, -1736, 15341, 21447, -2284,
+	-1735, 15329, 21458, -2284, -1734, 15318, 21469, -2285, -1733, 15307, 21480, -2286, -1731, 15296, 21489, -2286,
+	-1730, 15285, 21500, -2287, -1729, 15274, 21511, -2288, -1728, 15263, 21521, -2288, -1726, 15252, 21531, -2289,
+	-1725, 15241, 21542, -2290, -1724, 15229, 21553, -2290, -1723, 15218, 21564, -2291, -1722, 15207, 21575, -2292,
+	-1720, 15196, 21584, -2292, -1719, 15185, 21595, -2293, -1718, 15174, 21606, -2294, -1717, 15163, 21616, -2294,
+	-1715, 15152, 21626, -2295, -1714, 15141, 21637, -2296, -1713, 15130, 21647, -2296, -1712, 15118, 21659, -2297,
+	-1710, 15107, 21669, -2298, -1709, 15096, 21679, -2298, -1708, 15085, 21690, -2299, -1707, 15074, 21701, -2300,
+	-1706, 15063, 21711, -2300, -1704, 15052, 21721, -2301, -1703, 15041, 21731, -2301, -1702, 15030, 21742, -2302,
+	-1701, 15019, 21753, -2303, -1699, 15007, 21763, -2303, -1698, 14996, 21774, -2304, -1697, 14985, 21785, -2305,
+	-1696, 14974, 21795, -2305, -1694, 14963, 21805, -2306, -1693, 14952, 21815, -2306, -1692, 14941, 21826, -2307,
+	-1691, 14930, 21837, -2308, -1690, 14919, 21847, -2308, -1688, 14908, 21857, -2309, -1687, 14897, 21868, -2310,
+	-1686, 14885, 21879, -2310, -1685, 14874, 21890, -2311, -1683, 14863, 21899, -2311, -1682, 14852, 21910, -2312,
+	-1681, 14841, 21921, -2313, -1680, 14830, 21931, -2313, -1678, 14819, 21941, -2314, -1677, 14808, 21951, -2314,
+	-1676, 14797, 21962, -2315, -1675, 14786, 21973, -2316, -1673, 14775, 21982, -2316, -1672, 14763, 21994, -2317,
+	-1671, 14752, 22004, -2317, -1670, 14741, 22015, -2318, -1668, 14730, 22025, -2319, -1667, 14719, 22035, -2319,
+	-1666, 14708, 22046, -2320, -1665, 14697, 22056, -2320, -1663, 14686, 22066, -2321, -1662, 14675, 22077, -2322,
+	-1661, 14664, 22087, -2322, -1660, 14653, 22098, -2323, -1658, 14642, 22107, -2323, -1657, 14630, 22119, -2324,
+	-1656, 14619, 22130, -2325, -1655, 14608, 22140, -2325, -1653, 14597, 22150, -2326, -1652, 14586, 22160, -2326,
+	-1651, 14575, 22171, -2327, -1650, 14564, 22181, -2327, -1648, 14553, 22191, -2328, -1647, 14542, 22202, -2329,
+	-1646, 14531, 22212, -2329, -1645, 14520, 22223, -2330, -1643, 14509, 22232, -2330, -1642, 14497, 22244, -2331,
+	-1641, 14486, 22254, -2331, -1640, 14475, 22265, -2332, -1638, 14464, 22274, -2332, -1637, 14453, 22285, -2333,
+	-1636, 14442, 22296, -2334, -1635, 14431, 22306, -2334, -1633, 14420, 22316, -2335, -1632, 14409, 22326, -2335,
+	-1631, 14398, 22337, -2336, -1630, 14387, 22347, -2336, -1628, 14376, 22357, -2337, -1627, 14365, 22367, -2337,
+	-1626, 14354, 22378, -2338, -1624, 14342, 22389, -2339, -1623, 14331, 22399, -2339, -1622, 14320, 22410, -2340,
+	-1621, 14309, 22420, -2340, -1619, 14298, 22430, -2341, -1618, 14287, 22440, -2341, -1617, 14276, 22451, -2342,
+	-1616, 14265, 22461, -2342, -1614, 14254, 22471, -2343, -1613, 14243, 22481, -2343, -1612, 14232, 22492, -2344,
+	-1611, 14221, 22502, -2344, -1609, 14210, 22512, -2345, -1608, 14199, 22522, -2345, -1607, 14188, 22533, -2346,
+	-1606, 14177, 22544, -2347, -1604, 14165, 22554, -2347, -1603, 14154, 22565, -2348, -1602, 14143, 22575, -2348,
+	-1600, 14132, 22585, -2349, -1599, 14121, 22595, -2349, -1598, 14110, 22606, -2350, -1597, 14099, 22616, -2350,
+	-1595, 14088, 22626, -2351, -1594, 14077, 22636, -2351, -1593, 14066, 22647, -2352, -1592, 14055, 22657, -2352,
+	-1590, 14044, 22667, -2353, -1589, 14033, 22677, -2353, -1588, 14022, 22688, -2354, -1586, 14011, 22697, -2354,
+	-1585, 14000, 22708, -2355, -1584, 13989, 22718, -2355, -1583, 13978, 22729, -2356, -1581, 13967, 22738, -2356,
+	-1580, 13955, 22750, -2357, -1579, 13944, 22760, -2357, -1577, 13933, 22770, -2358, -1576, 13922, 22780, -2358,
+	-1575, 13911, 22791, -2359, -1574, 13900, 22801, -2359, -1572, 13889, 22810, -2359, -1571, 13878, 22821, -2360,
+	-1570, 13867, 22831, -2360, -1569, 13856, 22842, -2361, -1567, 13845, 22851, -2361, -1566, 13834, 22862, -2362,
+	-1565, 13823, 22872, -2362, -1563, 13812, 22882, -2363, -1562, 13801, 22892, -2363, -1561, 13790, 22903, -2364,
+	-1560, 13779, 22913, -2364, -1558, 13768, 22923, -2365, -1557, 13757, 22933, -2365, -1556, 13746, 22944, -2366,
+	-1554, 13735, 22953, -2366, -1553, 13724, 22964, -2367, -1552, 13713, 22974, -2367, -1551, 13702, 22984, -2367,
+	-1549, 13691, 22994, -2368, -1548, 13680, 23004, -2368, -1547, 13669, 23015, -2369, -1545, 13658, 23024, -2369,
+	-1544, 13647, 23035, -2370, -1543, 13636, 23045, -2370, -1542, 13624, 23057, -2371, -1540, 13613, 23066, -2371,
+	-1539, 13602, 23076, -2371, -1538, 13591, 23087, -2372, -1536, 13580, 23096, -2372, -1535, 13569, 23107, -2373,
+	-1534, 13558, 23117, -2373, -1532, 13547, 23127, -2374, -1531, 13536, 23137, -2374, -1530, 13525, 23147, -2374,
+	-1529, 13514, 23158, -2375, -1527, 13503, 23167, -2375, -1526, 13492, 23178, -2376, -1525, 13481, 23188, -2376,
+	-1523, 13470, 23198, -2377, -1522, 13459, 23208, -2377, -1521, 13448, 23218, -2377, -1520, 13437, 23229, -2378,
+	-1518, 13426, 23238, -2378, -1517, 13415, 23249, -2379, -1516, 13404, 23259, -2379, -1514, 13393, 23268, -2379,
+	-1513, 13382, 23279, -2380, -1512, 13371, 23289, -2380, -1510, 13360, 23299, -2381, -1509, 13349, 23309, -2381,
+	-1508, 13338, 23319, -2381, -1507, 13327, 23330, -2382, -1505, 13316, 23339, -2382, -1504, 13305, 23350, -2383,
+	-1503, 13294, 23360, -2383, -1501, 13283, 23369, -2383, -1500, 13272, 23380, -2384, -1499, 13261, 23390, -2384,
+	-1497, 13250, 23400, -2385, -1496, 13239, 23410, -2385, -1495, 13228, 23420, -2385, -1494, 13217, 23431, -2386,
+	-1492, 13206, 23440, -2386, -1491, 13195, 23451, -2387, -1490, 13184, 23461, -2387, -1488, 13173, 23470, -2387,
+	-1487, 13163, 23480, -2388, -1486, 13152, 23490, -2388, -1484, 13141, 23499, -2388, -1483, 13130, 23510, -2389,
+	-1482, 13119, 23520, -2389, -1481, 13108, 23530, -2389, -1479, 13097, 23540, -2390, -1478, 13086, 23550, -2390,
+	-1477, 13075, 23561, -2391, -1475, 13064, 23570, -2391, -1474, 13053, 23580, -2391, -1473, 13042, 23591, -2392,
+	-1471, 13031, 23600, -2392, -1470, 13020, 23610, -2392, -1469, 13009, 23621, -2393, -1468, 12998, 23631, -2393,
+	-1466, 12987, 23640, -2393, -1465, 12976, 23651, -2394, -1464, 12965, 23661, -2394, -1462, 12954, 23670, -2394,
+	-1461, 12943, 23681, -2395, -1460, 12932, 23691, -2395, -1458, 12921, 23700, -2395, -1457, 12910, 23711, -2396,
+	-1456, 12899, 23721, -2396, -1454, 12888, 23730, -2396, -1453, 12877, 23741, -2397, -1452, 12866, 23751, -2397,
+	-1450, 12856, 23759, -2397, -1449, 12845, 23770, -2398, -1448, 12834, 23780, -2398, -1447, 12823, 23790, -2398,
+	-1445, 12812, 23800, -2399, -1444, 12801, 23810, -2399, -1443, 12790, 23820, -2399, -1441, 12779, 23830, -2400,
+	-1440, 12768, 23840, -2400, -1439, 12757, 23850, -2400, -1437, 12746, 23860, -2401, -1436, 12735, 23870, -2401,
+	-1435, 12724, 23880, -2401, -1433, 12713, 23890, -2402, -1432, 12702, 23900, -2402, -1431, 12691, 23910, -2402,
+	-1429, 12681, 23918, -2402, -1428, 12670, 23929, -2403, -1427, 12659, 23939, -2403, -1426, 12648, 23949, -2403,
+	-1424, 12637, 23959, -2404, -1423, 12626, 23969, -2404, -1422, 12615, 23979, -2404, -1420, 12604, 23988, -2404,
+	-1419, 12593, 23999, -2405, -1418, 12582, 24009, -2405, -1416, 12571, 24018, -2405, -1415, 12560, 24029, -2406,
+	-1414, 12549, 24039, -2406, -1412, 12539, 24047, -2406, -1411, 12528, 24057, -2406, -1410, 12517, 24068, -2407,
+	-1408, 12506, 24077, -2407, -1407, 12495, 24087, -2407, -1406, 12484, 24098, -2408, -1404, 12473, 24107, -2408,
+	-1403, 12462, 24117, -2408, -1402, 12451, 24127, -2408, -1401, 12440, 24138, -2409, -1399, 12430, 24146, -2409,
+	-1398, 12419, 24156, -2409, -1397, 12408, 24166, -2409, -1395, 12397, 24176, -2410, -1394, 12386, 24186, -2410,
+	-1393, 12375, 24196, -2410, -1391, 12364, 24205, -2410, -1390, 12353, 24216, -2411, -1389, 12342, 24226, -2411,
+	-1387, 12332, 24234, -2411, -1386, 12321, 24244, -2411, -1385, 12310, 24255, -2412, -1383, 12299, 24264, -2412,
+	-1382, 12288, 24274, -2412, -1381, 12277, 24284, -2412, -1379, 12266, 24294, -2413, -1378, 12255, 24304, -2413,
+	-1377, 12244, 24314, -2413, -1375, 12234, 24322, -2413, -1374, 12223, 24332, -2413, -1373, 12212, 24343, -2414,
+	-1371, 12201, 24352, -2414, -1370, 12190, 24362, -2414, -1369, 12179, 24372, -2414, -1367, 12168, 24382, -2415,
+	-1366, 12158, 24391, -2415, -1365, 12147, 24401, -2415, -1364, 12136, 24411, -2415, -1362, 12125, 24420, -2415,
+	-1361, 12114, 24431, -2416, -1360, 12103, 24441, -2416, -1358, 12092, 24450, -2416, -1357, 12082, 24459, -2416,
+	-1356, 12071, 24469, -2416, -1354, 12060, 24479, -2417, -1353, 12049, 24489, -2417, -1352, 12038, 24499, -2417,
+	-1350, 12027, 24508, -2417, -1349, 12016, 24518, -2417, -1348, 12006, 24528, -2418, -1346, 11995, 24537, -2418,
+	-1345, 11984, 24547, -2418, -1344, 11973, 24557, -2418, -1342, 11962, 24566, -2418, -1341, 11951, 24577, -2419,
+	-1340, 11941, 24586, -2419, -1338, 11930, 24595, -2419, -1337, 11919, 24605, -2419, -1336, 11908, 24615, -2419,
+	-1334, 11897, 24624, -2419, -1333, 11886, 24635, -2420, -1332, 11876, 24644, -2420, -1330, 11865, 24653, -2420,
+	-1329, 11854, 24663, -2420, -1328, 11843, 24673, -2420, -1326, 11832, 24682, -2420, -1325, 11822, 24692, -2421,
+	-1324, 11811, 24702, -2421, -1322, 11800, 24711, -2421, -1321, 11789, 24721, -2421, -1320, 11778, 24731, -2421,
+	-1318, 11767, 24740, -2421, -1317, 11757, 24749, -2421, -1316, 11746, 24760, -2422, -1314, 11735, 24769, -2422,
+	-1313, 11724, 24779, -2422, -1312, 11713, 24789, -2422, -1310, 11703, 24797, -2422, -1309, 11692, 24807, -2422,
+	-1308, 11681, 24817, -2422, -1306, 11670, 24827, -2423, -1305, 11659, 24837, -2423, -1304, 11649, 24846, -2423,
+	-1302, 11638, 24855, -2423, -1301, 11627, 24865, -2423, -1300, 11616, 24875, -2423, -1298, 11606, 24883, -2423,
+	-1297, 11595, 24893, -2423, -1296, 11584, 24904, -2424, -1294, 11573, 24913, -2424, -1293, 11562, 24923, -2424,
+	-1292, 11552, 24932, -2424, -1290, 11541, 24941, -2424, -1289, 11530, 24951, -2424, -1288, 11519, 24961, -2424,
+	-1286, 11509, 24969, -2424, -1285, 11498, 24979, -2424, -1284, 11487, 24990, -2425, -1282, 11476, 24999, -2425,
+	-1281, 11466, 25008, -2425, -1280, 11455, 25018, -2425, -1278, 11444, 25027, -2425, -1277, 11433, 25037, -2425,
+	-1276, 11422, 25047, -2425, -1274, 11412, 25055, -2425, -1273, 11401, 25065, -2425, -1272, 11390, 25075, -2425,
+	-1271, 11380, 25085, -2426, -1269, 11369, 25094, -2426, -1268, 11358, 25104, -2426, -1267, 11347, 25114, -2426,
+	-1265, 11337, 25122, -2426, -1264, 11326, 25132, -2426, -1263, 11315, 25142, -2426, -1261, 11304, 25151, -2426,
+	-1260, 11294, 25160, -2426, -1259, 11283, 25170, -2426, -1257, 11272, 25179, -2426, -1256, 11261, 25189, -2426,
+	-1255, 11251, 25198, -2426, -1253, 11240, 25207, -2426, -1252, 11229, 25217, -2426, -1251, 11219, 25227, -2427,
+	-1249, 11208, 25236, -2427, -1248, 11197, 25246, -2427, -1247, 11186, 25256, -2427, -1245, 11176, 25264, -2427,
+	-1244, 11165, 25274, -2427, -1243, 11154, 25284, -2427, -1241, 11144, 25292, -2427, -1240, 11133, 25302, -2427,
+	-1239, 11122, 25312, -2427, -1237, 11111, 25321, -2427, -1236, 11101, 25330, -2427, -1235, 11090, 25340, -2427,
+	-1233, 11079, 25349, -2427, -1232, 11069, 25358, -2427, -1231, 11058, 25368, -2427, -1229, 11047, 25377, -2427,
+	-1228, 11037, 25386, -2427, -1227, 11026, 25396, -2427, -1225, 11015, 25405, -2427, -1224, 11005, 25414, -2427,
+	-1223, 10994, 25424, -2427, -1221, 10983, 25433, -2427, -1220, 10972, 25443, -2427, -1219, 10962, 25452, -2427,
+	-1217, 10951, 25461, -2427, -1216, 10940, 25471, -2427, -1215, 10930, 25480, -2427, -1213, 10919, 25489, -2427,
+	-1212, 10908, 25499, -2427, -1211, 10898, 25508, -2427, -1209, 10887, 25517, -2427, -1208, 10876, 25527, -2427,
+	-1207, 10866, 25536, -2427, -1205, 10855, 25545, -2427, -1204, 10844, 25555, -2427, -1203, 10834, 25564, -2427,
+	-1201, 10823, 25573, -2427, -1200, 10813, 25582, -2427, -1199, 10802, 25592, -2427, -1197, 10791, 25601, -2427,
+	-1196, 10781, 25610, -2427, -1195, 10770, 25620, -2427, -1193, 10759, 25629, -2427, -1192, 10749, 25638, -2427,
+	-1191, 10738, 25648, -2427, -1189, 10727, 25657, -2427, -1188, 10717, 25666, -2427, -1187, 10706, 25676, -2427,
+	-1185, 10696, 25684, -2427, -1184, 10685, 25694, -2427, -1183, 10674, 25704, -2427, -1181, 10664, 25712, -2427,
+	-1180, 10653, 25722, -2427, -1179, 10642, 25732, -2427, -1177, 10632, 25740, -2427, -1176, 10621, 25749, -2426,
+	-1175, 10611, 25758, -2426, -1173, 10600, 25767, -2426, -1172, 10589, 25777, -2426, -1171, 10579, 25786, -2426,
+	-1169, 10568, 25795, -2426, -1168, 10558, 25804, -2426, -1167, 10547, 25814, -2426, -1165, 10536, 25823, -2426,
+	-1164, 10526, 25832, -2426, -1163, 10515, 25842, -2426, -1161, 10505, 25850, -2426, -1160, 10494, 25860, -2426,
+	-1159, 10483, 25870, -2426, -1157, 10473, 25877, -2425, -1156, 10462, 25887, -2425, -1155, 10452, 25896, -2425,
+	-1153, 10441, 25905, -2425, -1152, 10431, 25914, -2425, -1151, 10420, 25924, -2425, -1149, 10409, 25933, -2425,
+	-1148, 10399, 25942, -2425, -1147, 10388, 25952, -2425, -1145, 10378, 25960, -2425, -1144, 10367, 25970, -2425,
+	-1143, 10357, 25978, -2424, -1141, 10346, 25987, -2424, -1140, 10336, 25996, -2424, -1139, 10325, 26006, -2424,
+	-1137, 10314, 26015, -2424, -1136, 10304, 26024, -2424, -1135, 10293, 26034, -2424, -1133, 10283, 26042, -2424,
+	-1132, 10272, 26052, -2424, -1131, 10262, 26060, -2423, -1129, 10251, 26069, -2423, -1128, 10241, 26078, -2423,
+	-1127, 10230, 26088, -2423, -1125, 10220, 26096, -2423, -1124, 10209, 26106, -2423, -1123, 10199, 26115, -2423,
+	-1121, 10188, 26123, -2422, -1120, 10178, 26132, -2422, -1119, 10167, 26142, -2422, -1117, 10156, 26151, -2422,
+	-1116, 10146, 26160, -2422, -1115, 10135, 26170, -2422, -1113, 10125, 26178, -2422, -1112, 10114, 26187, -2421,
+	-1111, 10104, 26196, -2421, -1109, 10093, 26205, -2421, -1108, 10083, 26214, -2421, -1107, 10072, 26224, -2421,
+	-1105, 10062, 26232, -2421, -1104, 10051, 26242, -2421, -1103, 10041, 26250, -2420, -1101, 10030, 26259, -2420,
+	-1100, 10020, 26268, -2420, -1099, 10010, 26277, -2420, -1097,  9999, 26286, -2420, -1096,  9989, 26294, -2419,
+	-1095,  9978, 26304, -2419, -1093,  9968, 26312, -2419, -1092,  9957, 26322, -2419, -1091,  9947, 26331, -2419,
+	-1089,  9936, 26340, -2419, -1088,  9926, 26348, -2418, -1087,  9915, 26358, -2418, -1085,  9905, 26366, -2418,
+	-1084,  9894, 26376, -2418, -1083,  9884, 26385, -2418, -1081,  9873, 26393, -2417, -1080,  9863, 26402, -2417,
+	-1079,  9853, 26411, -2417, -1077,  9842, 26420, -2417, -1076,  9832, 26429, -2417, -1075,  9821, 26438, -2416,
+	-1073,  9811, 26446, -2416, -1072,  9800, 26456, -2416, -1071,  9790, 26465, -2416, -1069,  9779, 26473, -2415,
+	-1068,  9769, 26482, -2415, -1067,  9759, 26491, -2415, -1066,  9748, 26501, -2415, -1064,  9738, 26509, -2415,
+	-1063,  9727, 26518, -2414, -1062,  9717, 26527, -2414, -1060,  9707, 26535, -2414, -1059,  9696, 26545, -2414,
+	-1058,  9686, 26553, -2413, -1056,  9675, 26562, -2413, -1055,  9665, 26571, -2413, -1054,  9654, 26581, -2413,
+	-1052,  9644, 26588, -2412, -1051,  9634, 26597, -2412, -1050,  9623, 26607, -2412, -1048,  9613, 26615, -2412,
+	-1047,  9603, 26623, -2411, -1046,  9592, 26633, -2411, -1044,  9582, 26641, -2411, -1043,  9571, 26651, -2411,
+	-1042,  9561, 26659, -2410, -1040,  9551, 26667, -2410, -1039,  9540, 26677, -2410, -1038,  9530, 26686, -2410,
+	-1036,  9520, 26693, -2409, -1035,  9509, 26703, -2409, -1034,  9499, 26712, -2409, -1032,  9488, 26721, -2409,
+	-1031,  9478, 26729, -2408, -1030,  9468, 26738, -2408, -1028,  9457, 26747, -2408, -1027,  9447, 26755, -2407,
+	-1026,  9437, 26764, -2407, -1025,  9426, 26774, -2407, -1023,  9416, 26781, -2406, -1022,  9406, 26790, -2406,
+	-1021,  9395, 26800, -2406, -1019,  9385, 26808, -2406, -1018,  9375, 26816, -2405, -1017,  9364, 26826, -2405,
+	-1015,  9354, 26834, -2405, -1014,  9344, 26842, -2404, -1013,  9333, 26852, -2404, -1011,  9323, 26860, -2404,
+	-1010,  9313, 26868, -2403, -1009,  9302, 26878, -2403, -1007,  9292, 26886, -2403, -1006,  9282, 26894, -2402,
+	-1005,  9271, 26904, -2402, -1003,  9261, 26912, -2402, -1002,  9251, 26921, -2402, -1001,  9240, 26930, -2401,
+	-1000,  9230, 26939, -2401,  -998,  9220, 26947, -2401,  -997,  9210, 26955, -2400,  -996,  9199, 26965, -2400,
+	 -994,  9189, 26972, -2399,  -993,  9179, 26981, -2399,  -992,  9168, 26991, -2399,  -990,  9158, 26998, -2398,
+	 -989,  9148, 27007, -2398,  -988,  9138, 27016, -2398,  -986,  9127, 27024, -2397,  -985,  9117, 27033, -2397,
+	 -984,  9107, 27042, -2397,  -982,  9097, 27049, -2396,  -981,  9086, 27059, -2396,  -980,  9076, 27068, -2396,
+	 -979,  9066, 27076, -2395,  -977,  9056, 27084, -2395,  -976,  9045, 27093, -2394,  -975,  9035, 27102, -2394,
+	 -973,  9025, 27110, -2394,  -972,  9015, 27118, -2393,  -971,  9004, 27128, -2393,  -969,  8994, 27136, -2393,
+	 -968,  8984, 27144, -2392,  -967,  8974, 27153, -2392,  -965,  8963, 27161, -2391,  -964,  8953, 27170, -2391,
+	 -963,  8943, 27179, -2391,  -961,  8933, 27186, -2390,  -960,  8923, 27195, -2390,  -959,  8912, 27204, -2389,
+	 -958,  8902, 27213, -2389,  -956,  8892, 27221, -2389,  -955,  8882, 27229, -2388,  -954,  8872, 27238, -2388,
+	 -952,  8861, 27246, -2387,  -951,  8851, 27255, -2387,  -950,  8841, 27264, -2387,  -948,  8831, 27271, -2386,
+	 -947,  8821, 27280, -2386,  -946,  8810, 27289, -2385,  -945,  8800, 27298, -2385,  -943,  8790, 27305, -2384,
+	 -942,  8780, 27314, -2384,  -941,  8770, 27323, -2384,  -939,  8759, 27331, -2383,  -938,  8749, 27340, -2383,
+	 -937,  8739, 27348, -2382,  -935,  8729, 27356, -2382,  -934,  8719, 27364, -2381,  -933,  8709, 27373, -2381,
+	 -932,  8699, 27382, -2381,  -930,  8688, 27390, -2380,  -929,  8678, 27399, -2380,  -928,  8668, 27407, -2379,
+	 -926,  8658, 27415, -2379,  -925,  8648, 27423, -2378,  -924,  8638, 27432, -2378,  -922,  8628, 27439, -2377,
+	 -921,  8617, 27449, -2377,  -920,  8607, 27457, -2376,  -919,  8597, 27466, -2376,  -917,  8587, 27473, -2375,
+	 -916,  8577, 27482, -2375,  -915,  8567, 27490, -2374,  -913,  8557, 27498, -2374,  -912,  8547, 27507, -2374,
+	 -911,  8536, 27516, -2373,  -909,  8526, 27524, -2373,  -908,  8516, 27532, -2372,  -907,  8506, 27541, -2372,
+	 -906,  8496, 27549, -2371,  -904,  8486, 27557, -2371,  -903,  8476, 27565, -2370,  -902,  8466, 27574, -2370,
+	 -900,  8456, 27581, -2369,  -899,  8446, 27590, -2369,  -898,  8436, 27598, -2368,  -896,  8425, 27607, -2368,
+	 -895,  8415, 27615, -2367,  -894,  8405, 27624, -2367,  -893,  8395, 27632, -2366,  -891,  8385, 27639, -2365,
+	 -890,  8375, 27648, -2365,  -889,  8365, 27656, -2364,  -887,  8355, 27664, -2364,  -886,  8345, 27672, -2363,
+	 -885,  8335, 27681, -2363,  -884,  8325, 27689, -2362,  -882,  8315, 27697, -2362,  -881,  8305, 27705, -2361,
+	 -880,  8295, 27714, -2361,  -878,  8285, 27721, -2360,  -877,  8275, 27730, -2360,  -876,  8265, 27738, -2359,
+	 -875,  8255, 27747, -2359,  -873,  8245, 27754, -2358,  -872,  8235, 27762, -2357,  -871,  8225, 27771, -2357,
+	 -869,  8215, 27778, -2356,  -868,  8205, 27787, -2356,  -867,  8195, 27795, -2355,  -866,  8185, 27804, -2355,
+	 -864,  8175, 27811, -2354,  -863,  8165, 27819, -2353,  -862,  8155, 27828, -2353,  -860,  8145, 27835, -2352,
+	 -859,  8135, 27844, -2352,  -858,  8125, 27852, -2351,  -857,  8115, 27861, -2351,  -855,  8105, 27868, -2350,
+	 -854,  8095, 27876, -2349,  -853,  8085, 27885, -2349,  -851,  8075, 27892, -2348,  -850,  8065, 27901, -2348,
+	 -849,  8055, 27909, -2347,  -848,  8045, 27917, -2346,  -846,  8035, 27925, -2346,  -845,  8025, 27933, -2345,
+	 -844,  8015, 27942, -2345,  -843,  8005, 27950, -2344,  -841,  7995, 27957, -2343,  -840,  7985, 27966, -2343,
+	 -839,  7975, 27974, -2342,  -837,  7965, 27982, -2342,  -836,  7955, 27990, -2341,  -835,  7945, 27998, -2340,
+	 -834,  7936, 28006, -2340,  -832,  7926, 28013, -2339,  -831,  7916, 28021, -2338,  -830,  7906, 28030, -2338,
+	 -829,  7896, 28038, -2337,  -827,  7886, 28046, -2337,  -826,  7876, 28054, -2336,  -825,  7866, 28062, -2335,
+	 -823,  7856, 28070, -2335,  -822,  7846, 28078, -2334,  -821,  7836, 28086, -2333,  -820,  7827, 28094, -2333,
+	 -818,  7817, 28101, -2332,  -817,  7807, 28109, -2331,  -816,  7797, 28118, -2331,  -815,  7787, 28126, -2330,
+	 -813,  7777, 28133, -2329,  -812,  7767, 28142, -2329,  -811,  7757, 28150, -2328,  -810,  7748, 28157, -2327,
+	 -808,  7738, 28165, -2327,  -807,  7728, 28173, -2326,  -806,  7718, 28181, -2325,  -804,  7708, 28189, -2325,
+	 -803,  7698, 28197, -2324,  -802,  7688, 28205, -2323,  -801,  7679, 28213, -2323,  -799,  7669, 28220, -2322,
+	 -798,  7659, 28228, -2321,  -797,  7649, 28237, -2321,  -796,  7639, 28245, -2320,  -794,  7629, 28252, -2319,
+	 -793,  7620, 28260, -2319,  -792,  7610, 28268, -2318,  -791,  7600, 28276, -2317,  -789,  7590, 28283, -2316,
+	 -788,  7580, 28292, -2316,  -787,  7571, 28299, -2315,  -786,  7561, 28307, -2314,  -784,  7551, 28315, -2314,
+	 -783,  7541, 28323, -2313,  -782,  7531, 28331, -2312,  -781,  7522, 28338, -2311,  -779,  7512, 28346, -2311,
+	 -778,  7502, 28354, -2310,  -777,  7492, 28362, -2309,  -776,  7483, 28369, -2308,  -774,  7473, 28377, -2308,
+	 -773,  7463, 28385, -2307,  -772,  7453, 28393, -2306,  -771,  7444, 28400, -2305,  -769,  7434, 28408, -2305,
+	 -768,  7424, 28416, -2304,  -767,  7414, 28424, -2303,  -766,  7405, 28431, -2302,  -764,  7395, 28439, -2302,
+	 -763,  7385, 28447, -2301,  -762,  7375, 28455, -2300,  -761,  7366, 28462, -2299,  -759,  7356, 28470, -2299,
+	 -758,  7346, 28478, -2298,  -757,  7336, 28486, -2297,  -756,  7327, 28493, -2296,  -754,  7317, 28501, -2296,
+	 -753,  7307, 28509, -2295,  -752,  7298, 28516, -2294,  -751,  7288, 28524, -2293,  -749,  7278, 28531, -2292,
+	 -748,  7268, 28540, -2292,  -747,  7259, 28547, -2291,  -746,  7249, 28555, -2290,  -744,  7239, 28562, -2289,
+	 -743,  7230, 28570, -2289,  -742,  7220, 28578, -2288,  -741,  7210, 28586, -2287,  -739,  7201, 28592, -2286,
+	 -738,  7191, 28600, -2285,  -737,  7181, 28608, -2284,  -736,  7172, 28616, -2284,  -734,  7162, 28623, -2283,
+	 -733,  7152, 28631, -2282,  -732,  7143, 28638, -2281,  -731,  7133, 28646, -2280,  -729,  7123, 28654, -2280,
+	 -728,  7114, 28661, -2279,  -727,  7104, 28669, -2278,  -726,  7095, 28676, -2277,  -725,  7085, 28684, -2276,
+	 -723,  7075, 28691, -2275,  -722,  7066, 28699, -2275,  -721,  7056, 28707, -2274,  -720,  7046, 28715, -2273,
+	 -718,  7037, 28721, -2272,  -717,  7027, 28729, -2271,  -716,  7018, 28736, -2270,  -715,  7008, 28744, -2269,
+	 -713,  6998, 28752, -2269,  -712,  6989, 28759, -2268,  -711,  6979, 28767, -2267,  -710,  6970, 28774, -2266,
+	 -709,  6960, 28782, -2265,  -707,  6950, 28789, -2264,  -706,  6941, 28796, -2263,  -705,  6931, 28805, -2263,
+	 -704,  6922, 28812, -2262,  -702,  6912, 28819, -2261,  -701,  6903, 28826, -2260,  -700,  6893, 28834, -2259,
+	 -699,  6883, 28842, -2258,  -698,  6874, 28849, -2257,  -696,  6864, 28856, -2256,  -695,  6855, 28863, -2255,
+	 -694,  6845, 28872, -2255,  -693,  6836, 28879, -2254,  -691,  6826, 28886, -2253,  -690,  6817, 28893, -2252,
+	 -689,  6807, 28901, -2251,  -688,  6798, 28908, -2250,  -687,  6788, 28916, -2249,  -685,  6779, 28922, -2248,
+	 -684,  6769, 28930, -2247,  -683,  6760, 28937, -2246,  -682,  6750, 28945, -2245,  -681,  6741, 28953, -2245,
+	 -679,  6731, 28960, -2244,  -678,  6722, 28967, -2243,  -677,  6712, 28975, -2242,  -676,  6703, 28982, -2241,
+	 -675,  6693, 28990, -2240,  -673,  6684, 28996, -2239,  -672,  6674, 29004, -2238,  -671,  6665, 29011, -2237,
+	 -670,  6655, 29019, -2236,  -668,  6646, 29025, -2235,  -667,  6636, 29033, -2234,  -666,  6627, 29040, -2233,
+	 -665,  6617, 29048, -2232,  -664,  6608, 29055, -2231,  -662,  6599, 29061, -2230,  -661,  6589, 29069, -2229,
+	 -660,  6580, 29076, -2228,  -659,  6570, 29084, -2227,  -658,  6561, 29091, -2226,  -656,  6551, 29098, -2225,
+	 -655,  6542, 29105, -2224,  -654,  6533, 29113, -2224,  -653,  6523, 29121, -2223,  -652,  6514, 29128, -2222,
+	 -650,  6504, 29135, -2221,  -649,  6495, 29142, -2220,  -648,  6486, 29149, -2219,  -647,  6476, 29157, -2218,
+	 -646,  6467, 29164, -2217,  -644,  6457, 29171, -2216,  -643,  6448, 29178, -2215,  -642,  6439, 29185, -2214,
+	 -641,  6429, 29193, -2213,  -640,  6420, 29200, -2212,  -639,  6411, 29207, -2211,  -637,  6401, 29213, -2209,
+	 -636,  6392, 29220, -2208,  -635,  6382, 29228, -2207,  -634,  6373, 29235, -2206,  -633,  6364, 29242, -2205,
+	 -631,  6354, 29249, -2204,  -630,  6345, 29256, -2203,  -629,  6336, 29263, -2202,  -628,  6326, 29271, -2201,
+	 -627,  6317, 29278, -2200,  -625,  6308, 29284, -2199,  -624,  6298, 29292, -2198,  -623,  6289, 29299, -2197,
+	 -622,  6280, 29306, -2196,  -621,  6271, 29313, -2195,  -620,  6261, 29321, -2194,  -618,  6252, 29327, -2193,
+	 -617,  6243, 29334, -2192,  -616,  6233, 29342, -2191,  -615,  6224, 29349, -2190,  -614,  6215, 29356, -2189,
+	 -613,  6206, 29363, -2188,  -611,  6196, 29369, -2186,  -610,  6187, 29376, -2185,  -609,  6178, 29383, -2184,
+	 -608,  6168, 29391, -2183,  -607,  6159, 29398, -2182,  -605,  6150, 29404, -2181,  -604,  6141, 29411, -2180,
+	 -603,  6131, 29419, -2179,  -602,  6122, 29426, -2178,  -601,  6113, 29433, -2177,  -600,  6104, 29440, -2176,
+	 -598,  6094, 29446, -2174,  -597,  6085, 29453, -2173,  -596,  6076, 29460, -2172,  -595,  6067, 29467, -2171,
+	 -594,  6058, 29474, -2170,  -593,  6048, 29482, -2169,  -591,  6039, 29488, -2168,  -590,  6030, 29495, -2167,
+	 -589,  6021, 29501, -2165,  -588,  6012, 29508, -2164,  -587,  6002, 29516, -2163,  -586,  5993, 29523, -2162,
+	 -584,  5984, 29529, -2161,  -583,  5975, 29536, -2160,  -582,  5966, 29543, -2159,  -581,  5956, 29551, -2158,
+	 -580,  5947, 29557, -2156,  -579,  5938, 29564, -2155,  -578,  5929, 29571, -2154,  -576,  5920, 29577, -2153,
+	 -575,  5911, 29584, -2152,  -574,  5902, 29591, -2151,  -573,  5892, 29598, -2149,  -572,  5883, 29605, -2148,
+	 -571,  5874, 29612, -2147,  -569,  5865, 29618, -2146,  -568,  5856, 29625, -2145,  -567,  5847, 29632, -2144,
+	 -566,  5838, 29638, -2142,  -565,  5829, 29645, -2141,  -564,  5819, 29653, -2140,  -563,  5810, 29660, -2139,
+	 -561,  5801, 29666, -2138,  -560,  5792, 29672, -2136,  -559,  5783, 29679, -2135,  -558,  5774, 29686, -2134,
+	 -557,  5765, 29693, -2133,  -556,  5756, 29700, -2132,  -555,  5747, 29706, -2130,  -553,  5738, 29712, -2129,
+	 -552,  5729, 29719, -2128,  -551,  5719, 29727, -2127,  -550,  5710, 29734, -2126,  -549,  5701, 29740, -2124,
+	 -548,  5692, 29747, -2123,  -547,  5683, 29754, -2122,  -545,  5674, 29760, -2121,  -544,  5665, 29767, -2120,
+	 -543,  5656, 29773, -2118,  -542,  5647, 29780, -2117,  -541,  5638, 29787, -2116,  -540,  5629, 29794, -2115,
+	 -539,  5620, 29800, -2113,  -538,  5611, 29807, -2112,  -536,  5602, 29813, -2111,  -535,  5593, 29820, -2110,
+	 -534,  5584, 29826, -2108,  -533,  5575, 29833, -2107,  -532,  5566, 29840, -2106,  -531,  5557, 29847, -2105,
+	 -530,  5548, 29853, -2103,  -529,  5539, 29860, -2102,  -527,  5530, 29866, -2101,  -526,  5521, 29872, -2099,
+	 -525,  5512, 29879, -2098,  -524,  5503, 29886, -2097,  -523,  5494, 29893, -2096,  -522,  5485, 29899, -2094,
+	 -521,  5476, 29906, -2093,  -520,  5467, 29913, -2092,  -518,  5458, 29918, -2090,  -517,  5450, 29924, -2089,
+	 -516,  5441, 29931, -2088,  -515,  5432, 29938, -2087,  -514,  5423, 29944, -2085,  -513,  5414, 29951, -2084,
+	 -512,  5405, 29958, -2083,  -511,  5396, 29964, -2081,  -510,  5387, 29971, -2080,  -508,  5378, 29977, -2079,
+	 -507,  5369, 29983, -2077,  -506,  5360, 29990, -2076,  -505,  5352, 29996, -2075,  -504,  5343, 30002, -2073,
+	 -503,  5334, 30009, -2072,  -502,  5325, 30016, -2071,  -501,  5316, 30022, -2069,  -500,  5307, 30029, -2068,
+	 -499,  5298, 30036, -2067,  -497,  5289, 30041, -2065,  -496,  5281, 30047, -2064,  -495,  5272, 30054, -2063,
+	 -494,  5263, 30060, -2061,  -493,  5254, 30067, -2060,  -492,  5245, 30074, -2059,  -491,  5236, 30080, -2057,
+	 -490,  5228, 30086, -2056,  -489,  5219, 30093, -2055,  -488,  5210, 30099, -2053,  -486,  5201, 30105, -2052,
+	 -485,  5192, 30111, -2050,  -484,  5184, 30117, -2049,  -483,  5175, 30124, -2048,  -482,  5166, 30130, -2046,
+	 -481,  5157, 30137, -2045,  -480,  5148, 30143, -2043,  -479,  5140, 30149, -2042,  -478,  5131, 30156, -2041,
+	 -477,  5122, 30162, -2039,  -476,  5113, 30169, -2038,  -474,  5104, 30174, -2036,  -473,  5096, 30180, -2035,
+	 -472,  5087, 30187, -2034,  -471,  5078, 30193, -2032,  -470,  5069, 30200, -2031,  -469,  5061, 30205, -2029,
+	 -468,  5052, 30212, -2028,  -467,  5043, 30219, -2027,  -466,  5035, 30224, -2025,  -465,  5026, 30231, -2024,
+	 -464,  5017, 30237, -2022,  -463,  5008, 30244, -2021,  -462,  5000, 30249, -2019,  -460,  4991, 30255, -2018,
+	 -459,  4982, 30262, -2017,  -458,  4974, 30267, -2015,  -457,  4965, 30274, -2014,  -456,  4956, 30280, -2012,
+	 -455,  4948, 30286, -2011,  -454,  4939, 30292, -2009,  -453,  4930, 30299, -2008,  -452,  4921, 30305, -2006,
+	 -451,  4913, 30311, -2005,  -450,  4904, 30317, -2003,  -449,  4896, 30323, -2002,  -448,  4887, 30329, -2000,
+	 -447,  4878, 30336, -1999,  -446,  4870, 30342, -1998,  -444,  4861, 30347, -1996,  -443,  4852, 30354, -1995,
+	 -442,  4844, 30359, -1993,  -441,  4835, 30366, -1992,  -440,  4826, 30372, -1990,  -439,  4818, 30378, -1989,
+	 -438,  4809, 30384, -1987,  -437,  4801, 30390, -1986,  -436,  4792, 30396, -1984,  -435,  4783, 30403, -1983,
+	 -434,  4775, 30408, -1981,  -433,  4766, 30415, -1980,  -432,  4758, 30420, -1978,  -431,  4749, 30427, -1977,
+	 -430,  4741, 30432, -1975,  -429,  4732, 30438, -1973,  -428,  4723, 30445, -1972,  -427,  4715, 30450, -1970,
+	 -426,  4706, 30457, -1969,  -425,  4698, 30462, -1967,  -423,  4689, 30468, -1966,  -422,  4681, 30473, -1964,
+	 -421,  4672, 30480, -1963,  -420,  4664, 30485, -1961,  -419,  4655, 30492, -1960,  -418,  4647, 30497, -1958,
+	 -417,  4638, 30503, -1956,  -416,  4630, 30509, -1955,  -415,  4621, 30515, -1953,  -414,  4613, 30521, -1952,
+	 -413,  4604, 30527, -1950,  -412,  4596, 30533, -1949,  -411,  4587, 30539, -1947,  -410,  4579, 30545, -1946,
+	 -409,  4570, 30551, -1944,  -408,  4562, 30556, -1942,  -407,  4553, 30563, -1941,  -406,  4545, 30568, -1939,
+	 -405,  4536, 30575, -1938,  -404,  4528, 30580, -1936,  -403,  4519, 30586, -1934,  -402,  4511, 30592, -1933,
+	 -401,  4502, 30598, -1931,  -400,  4494, 30604, -1930,  -399,  4486, 30609, -1928,  -398,  4477, 30615, -1926,
+	 -397,  4469, 30621, -1925,  -396,  4460, 30627, -1923,  -395,  4452, 30633, -1922,  -394,  4443, 30639, -1920,
+	 -393,  4435, 30644, -1918,  -392,  4427, 30650, -1917,  -391,  4418, 30656, -1915,  -390,  4410, 30661, -1913,
+	 -389,  4402, 30667, -1912,  -388,  4393, 30673, -1910,  -387,  4385, 30678, -1908,  -386,  4376, 30685, -1907,
+	 -385,  4368, 30690, -1905,  -384,  4360, 30695, -1903,  -383,  4351, 30702, -1902,  -382,  4343, 30707, -1900,
+	 -381,  4335, 30713, -1899,  -380,  4326, 30719, -1897,  -379,  4318, 30724, -1895,  -378,  4310, 30730, -1894,
+	 -377,  4301, 30736, -1892,  -376,  4293, 30741, -1890,  -375,  4285, 30746, -1888,  -374,  4276, 30753, -1887,
+	 -373,  4268, 30758, -1885,  -372,  4260, 30763, -1883,  -371,  4252, 30769, -1882,  -370,  4243, 30775, -1880,
+	 -369,  4235, 30780, -1878,  -368,  4227, 30786, -1877,  -367,  4218, 30792, -1875,  -366,  4210, 30797, -1873,
+	 -365,  4202, 30803, -1872,  -364,  4194, 30808, -1870,  -363,  4185, 30814, -1868,  -362,  4177, 30819, -1866,
+	 -361,  4169, 30825, -1865,  -360,  4161, 30830, -1863,  -359,  4152, 30836, -1861,  -358,  4144, 30841, -1859,
+	 -357,  4136, 30847, -1858,  -356,  4128, 30852, -1856,  -355,  4119, 30858, -1854,  -354,  4111, 30864, -1853,
+	 -353,  4103, 30869, -1851,  -352,  4095, 30874, -1849,  -351,  4087, 30879, -1847,  -350,  4079, 30885, -1846,
+	 -349,  4070, 30891, -1844,  -348,  4062, 30896, -1842,  -347,  4054, 30901, -1840,  -346,  4046, 30907, -1839,
+	 -345,  4038, 30912, -1837,  -344,  4029, 30918, -1835,  -343,  4021, 30923, -1833,  -342,  4013, 30928, -1831,
+	 -341,  4005, 30934, -1830,  -340,  3997, 30939, -1828,  -339,  3989, 30944, -1826,  -338,  3981, 30949, -1824,
+	 -338,  3973, 30956, -1823,  -337,  3964, 30962, -1821,  -336,  3956, 30967, -1819,  -335,  3948, 30972, -1817,
+	 -334,  3940, 30977, -1815,  -333,  3932, 30982, -1813,  -332,  3924, 30988, -1812,  -331,  3916, 30993, -1810,
+	 -330,  3908, 30998, -1808,  -329,  3900, 31003, -1806,  -328,  3892, 31008, -1804,  -327,  3883, 31015, -1803,
+	 -326,  3875, 31020, -1801,  -325,  3867, 31025, -1799,  -324,  3859, 31030, -1797,  -323,  3851, 31035, -1795,
+	 -322,  3843, 31040, -1793,  -321,  3835, 31046, -1792,  -320,  3827, 31051, -1790,  -320,  3819, 31057, -1788,
+	 -319,  3811, 31062, -1786,  -318,  3803, 31067, -1784,  -317,  3795, 31072, -1782,  -316,  3787, 31077, -1780,
+	 -315,  3779, 31083, -1779,  -314,  3771, 31088, -1777,  -313,  3763, 31093, -1775,  -312,  3755, 31098, -1773,
+	 -311,  3747, 31103, -1771,  -310,  3739, 31108, -1769,  -309,  3731, 31113, -1767,  -308,  3723, 31118, -1765,
+	 -307,  3715, 31124, -1764,  -306,  3707, 31129, -1762,  -306,  3699, 31135, -1760,  -305,  3691, 31140, -1758,
+	 -304,  3683, 31145, -1756,  -303,  3676, 31149, -1754,  -302,  3668, 31154, -1752,  -301,  3660, 31159, -1750,
+	 -300,  3652, 31164, -1748,  -299,  3644, 31169, -1746,  -298,  3636, 31175, -1745,  -297,  3628, 31180, -1743,
+	 -296,  3620, 31185, -1741,  -296,  3612, 31191, -1739,  -295,  3604, 31196, -1737,  -294,  3596, 31201, -1735,
+	 -293,  3589, 31205, -1733,  -292,  3581, 31210, -1731,  -291,  3573, 31215, -1729,  -290,  3565, 31220, -1727,
+	 -289,  3557, 31225, -1725,  -288,  3549, 31230, -1723,  -287,  3541, 31235, -1721,  -286,  3534, 31239, -1719,
+	 -286,  3526, 31245, -1717,  -285,  3518, 31250, -1715,  -284,  3510, 31255, -1713,  -283,  3502, 31260, -1711,
+	 -282,  3495, 31264, -1709,  -281,  3487, 31270, -1708,  -280,  3479, 31275, -1706,  -279,  3471, 31280, -1704,
+	 -278,  3463, 31285, -1702,  -278,  3456, 31290, -1700,  -277,  3448, 31295, -1698,  -276,  3440, 31300, -1696,
+	 -275,  3432, 31305, -1694,  -274,  3424, 31310, -1692,  -273,  3417, 31314, -1690,  -272,  3409, 31319, -1688,
+	 -271,  3401, 31324, -1686,  -270,  3393, 31329, -1684,  -270,  3386, 31334, -1682,  -269,  3378, 31339, -1680,
+	 -268,  3370, 31343, -1677,  -267,  3363, 31347, -1675,  -266,  3355, 31352, -1673,  -265,  3347, 31357, -1671,
+	 -264,  3339, 31362, -1669,  -264,  3332, 31367, -1667,  -263,  3324, 31372, -1665,  -262,  3316, 31377, -1663,
+	 -261,  3309, 31381, -1661,  -260,  3301, 31386, -1659,  -259,  3293, 31391, -1657,  -258,  3286, 31395, -1655,
+	 -257,  3278, 31400, -1653,  -257,  3270, 31406, -1651,  -256,  3263, 31410, -1649,  -255,  3255, 31415, -1647,
+	 -254,  3247, 31420, -1645,  -253,  3240, 31424, -1643,  -252,  3232, 31429, -1641,  -251,  3224, 31433, -1638,
+	 -251,  3217, 31438, -1636,  -250,  3209, 31443, -1634,  -249,  3202, 31447, -1632,  -248,  3194, 31452, -1630,
+	 -247,  3186, 31457, -1628,  -246,  3179, 31461, -1626,  -246,  3171, 31467, -1624,  -245,  3164, 31471, -1622,
+	 -244,  3156, 31476, -1620,  -243,  3149, 31479, -1617,  -242,  3141, 31484, -1615,  -241,  3133, 31489, -1613,
+	 -240,  3126, 31493, -1611,  -240,  3118, 31499, -1609,  -239,  3111, 31503, -1607,  -238,  3103, 31508, -1605,
+	 -237,  3096, 31512, -1603,  -236,  3088, 31516, -1600,  -235,  3081, 31520, -1598,  -235,  3073, 31526, -1596,
+	 -234,  3066, 31530, -1594,  -233,  3058, 31535, -1592,  -232,  3051, 31539, -1590,  -231,  3043, 31544, -1588,
+	 -231,  3036, 31548, -1585,  -230,  3028, 31553, -1583,  -229,  3021, 31557, -1581,  -228,  3013, 31562, -1579,
+	 -227,  3006, 31566, -1577,  -226,  2998, 31571, -1575,  -226,  2991, 31575, -1572,  -225,  2983, 31580, -1570,
+	 -224,  2976, 31584, -1568,  -223,  2969, 31588, -1566,  -222,  2961, 31593, -1564,  -222,  2954, 31597, -1561,
+	 -221,  2946, 31602, -1559,  -220,  2939, 31606, -1557,  -219,  2931, 31611, -1555,  -218,  2924, 31615, -1553,
+	 -218,  2917, 31619, -1550,  -217,  2909, 31624, -1548,  -216,  2902, 31628, -1546,  -215,  2895, 31632, -1544,
+	 -214,  2887, 31637, -1542,  -214,  2880, 31641, -1539,  -213,  2872, 31646, -1537,  -212,  2865, 31650, -1535,
+	 -211,  2858, 31654, -1533,  -210,  2850, 31658, -1530,  -210,  2843, 31663, -1528,  -209,  2836, 31667, -1526,
+	 -208,  2828, 31672, -1524,  -207,  2821, 31675, -1521,  -206,  2814, 31679, -1519,  -206,  2806, 31685, -1517,
+	 -205,  2799, 31689, -1515,  -204,  2792, 31692, -1512,  -203,  2785, 31696, -1510,  -203,  2777, 31702, -1508,
+	 -202,  2770, 31706, -1506,  -201,  2763, 31709, -1503,  -200,  2755, 31714, -1501,  -199,  2748, 31718, -1499,
+	 -199,  2741, 31722, -1496,  -198,  2734, 31726, -1494,  -197,  2726, 31731, -1492,  -196,  2719, 31734, -1489,
+	 -196,  2712, 31739, -1487,  -195,  2705, 31743, -1485,  -194,  2697, 31748, -1483,  -193,  2690, 31751, -1480,
+	 -192,  2683, 31755, -1478,  -192,  2676, 31760, -1476,  -191,  2669, 31763, -1473,  -190,  2661, 31768, -1471,
+	 -189,  2654, 31772, -1469,  -189,  2647, 31776, -1466,  -188,  2640, 31780, -1464,  -187,  2633, 31784, -1462,
+	 -186,  2626, 31787, -1459,  -186,  2618, 31793, -1457,  -185,  2611, 31797, -1455,  -184,  2604, 31800, -1452,
+	 -183,  2597, 31804, -1450,  -183,  2590, 31809, -1448,  -182,  2583, 31812, -1445,  -181,  2576, 31816, -1443,
+	 -180,  2568, 31820, -1440,  -180,  2561, 31825, -1438,  -179,  2554, 31829, -1436,  -178,  2547, 31832, -1433,
+	 -177,  2540, 31836, -1431,  -177,  2533, 31841, -1429,  -176,  2526, 31844, -1426,  -175,  2519, 31848, -1424,
+	 -175,  2512, 31852, -1421,  -174,  2505, 31856, -1419,  -173,  2498, 31860, -1417,  -172,  2491, 31863, -1414,
+	 -172,  2483, 31869, -1412,  -171,  2476, 31872, -1409,  -170,  2469, 31876, -1407,  -169,  2462, 31880, -1405,
+	 -169,  2455, 31884, -1402,  -168,  2448, 31888, -1400,  -167,  2441, 31891, -1397,  -167,  2434, 31896, -1395,
+	 -166,  2427, 31899, -1392,  -165,  2420, 31903, -1390,  -164,  2413, 31907, -1388,  -164,  2406, 31911, -1385,
+	 -163,  2399, 31915, -1383,  -162,  2392, 31918, -1380,  -162,  2385, 31923, -1378,  -161,  2378, 31926, -1375,
+	 -160,  2371, 31930, -1373,  -159,  2365, 31932, -1370,  -159,  2358, 31937, -1368,  -158,  2351, 31941, -1366,
+	 -157,  2344, 31944, -1363,  -157,  2337, 31949, -1361,  -156,  2330, 31952, -1358,  -155,  2323, 31956, -1356,
+	 -155,  2316, 31960, -1353,  -154,  2309, 31964, -1351,  -153,  2302, 31967, -1348,  -153,  2295, 31972, -1346,
+	 -152,  2289, 31974, -1343,  -151,  2282, 31978, -1341,  -150,  2275, 31981, -1338,  -150,  2268, 31986, -1336,
+	 -149,  2261, 31989, -1333,  -148,  2254, 31993, -1331,  -148,  2247, 31997, -1328,  -147,  2241, 32000, -1326,
+	 -146,  2234, 32003, -1323,  -146,  2227, 32008, -1321,  -145,  2220, 32011, -1318,  -144,  2213, 32014, -1315,
+	 -144,  2206, 32019, -1313,  -143,  2200, 32021, -1310,  -142,  2193, 32025, -1308,  -142,  2186, 32029, -1305,
+	 -141,  2179, 32033, -1303,  -140,  2172, 32036, -1300,  -140,  2166, 32040, -1298,  -139,  2159, 32043, -1295,
+	 -138,  2152, 32047, -1293,  -138,  2145, 32051, -1290,  -137,  2139, 32053, -1287,  -136,  2132, 32057, -1285,
+	 -136,  2125, 32061, -1282,  -135,  2118, 32065, -1280,  -134,  2112, 32067, -1277,  -134,  2105, 32071, -1274,
+	 -133,  2098, 32075, -1272,  -132,  2092, 32077, -1269,  -132,  2085, 32082, -1267,  -131,  2078, 32085, -1264,
+	 -131,  2072, 32089, -1262,  -130,  2065, 32092, -1259,  -129,  2058, 32095, -1256,  -129,  2051, 32100, -1254,
+	 -128,  2045, 32102, -1251,  -127,  2038, 32105, -1248,  -127,  2032, 32109, -1246,  -126,  2025, 32112, -1243,
+	 -125,  2018, 32116, -1241,  -125,  2012, 32119, -1238,  -124,  2005, 32122, -1235,  -123,  1998, 32126, -1233,
+	 -123,  1992, 32129, -1230,  -122,  1985, 32132, -1227,  -122,  1979, 32136, -1225,  -121,  1972, 32139, -1222,
+	 -120,  1965, 32142, -1219,  -120,  1959, 32146, -1217,  -119,  1952, 32149, -1214,  -119,  1946, 32152, -1211,
+	 -118,  1939, 32156, -1209,  -117,  1933, 32158, -1206,  -117,  1926, 32162, -1203,  -116,  1919, 32166, -1201,
+	 -115,  1913, 32168, -1198,  -115,  1906, 32172, -1195,  -114,  1900, 32175, -1193,  -114,  1893, 32179, -1190,
+	 -113,  1887, 32181, -1187,  -112,  1880, 32185, -1185,  -112,  1874, 32188, -1182,  -111,  1867, 32191, -1179,
+	 -111,  1861, 32194, -1176,  -110,  1854, 32198, -1174,  -109,  1848, 32200, -1171,  -109,  1841, 32204, -1168,
+	 -108,  1835, 32207, -1166,  -108,  1828, 32211, -1163,  -107,  1822, 32213, -1160,  -106,  1816, 32215, -1157,
+	 -106,  1809, 32220, -1155,  -105,  1803, 32222, -1152,  -105,  1796, 32226, -1149,  -104,  1790, 32228, -1146,
+	 -104,  1783, 32233, -1144,  -103,  1777, 32235, -1141,  -102,  1771, 32237, -1138,  -102,  1764, 32241, -1135,
+	 -101,  1758, 32244, -1133,  -101,  1751, 32248, -1130,  -100,  1745, 32250, -1127,   -99,  1739, 32252, -1124,
+	  -99,  1732, 32256, -1121,   -98,  1726, 32259, -1119,   -98,  1720, 32262, -1116,   -97,  1713, 32265, -1113,
+	  -97,  1707, 32268, -1110,   -96,  1701, 32270, -1107,   -96,  1694, 32275, -1105,   -95,  1688, 32277, -1102,
+	  -94,  1682, 32279, -1099,   -94,  1675, 32283, -1096,   -93,  1669, 32285, -1093,   -93,  1663, 32289, -1091,
+	  -92,  1657, 32291, -1088,   -92,  1650, 32295, -1085,   -91,  1644, 32297, -1082,   -91,  1638, 32300, -1079,
+	  -90,  1631, 32303, -1076,   -89,  1625, 32306, -1074,   -89,  1619, 32309, -1071,   -88,  1613, 32311, -1068,
+	  -88,  1607, 32314, -1065,   -87,  1600, 32317, -1062,   -87,  1594, 32320, -1059,   -86,  1588, 32323, -1057,
+	  -86,  1582, 32326, -1054,   -85,  1575, 32329, -1051,   -85,  1569, 32332, -1048,   -84,  1563, 32334, -1045,
+	  -84,  1557, 32337, -1042,   -83,  1551, 32339, -1039,   -82,  1545, 32341, -1036,   -82,  1538, 32346, -1034,
+	  -81,  1532, 32348, -1031,   -81,  1526, 32351, -1028,   -80,  1520, 32353, -1025,   -80,  1514, 32356, -1022,
+	  -79,  1508, 32358, -1019,   -79,  1502, 32361, -1016,   -78,  1495, 32364, -1013,   -78,  1489, 32367, -1010,
+	  -77,  1483, 32369, -1007,   -77,  1477, 32372, -1004,   -76,  1471, 32375, -1002,   -76,  1465, 32378,  -999,
+	  -75,  1459, 32380,  -996,   -75,  1453, 32383,  -993,   -74,  1447, 32385,  -990,   -74,  1441, 32388,  -987,
+	  -73,  1435, 32390,  -984,   -73,  1429, 32393,  -981,   -72,  1423, 32395,  -978,   -72,  1417, 32398,  -975,
+	  -71,  1411, 32400,  -972,   -71,  1405, 32403,  -969,   -70,  1399, 32405,  -966,   -70,  1393, 32408,  -963,
+	  -69,  1387, 32410,  -960,   -69,  1381, 32413,  -957,   -68,  1375, 32415,  -954,   -68,  1369, 32418,  -951,
+	  -67,  1363, 32420,  -948,   -67,  1357, 32423,  -945,   -66,  1351, 32425,  -942,   -66,  1345, 32428,  -939,
+	  -66,  1339, 32431,  -936,   -65,  1333, 32433,  -933,   -65,  1327, 32436,  -930,   -64,  1321, 32438,  -927,
+	  -64,  1315, 32441,  -924,   -63,  1309, 32443,  -921,   -63,  1303, 32446,  -918,   -62,  1297, 32448,  -915,
+	  -62,  1291, 32451,  -912,   -61,  1286, 32452,  -909,   -61,  1280, 32455,  -906,   -60,  1274, 32457,  -903,
+	  -60,  1268, 32460,  -900,   -60,  1262, 32463,  -897,   -59,  1256, 32465,  -894,   -59,  1250, 32468,  -891,
+	  -58,  1245, 32469,  -888,   -58,  1239, 32472,  -885,   -57,  1233, 32474,  -882,   -57,  1227, 32477,  -879,
+	  -56,  1221, 32479,  -876,   -56,  1216, 32480,  -872,   -56,  1210, 32483,  -869,   -55,  1204, 32485,  -866,
+	  -55,  1198, 32488,  -863,   -54,  1192, 32490,  -860,   -54,  1187, 32492,  -857,   -53,  1181, 32494,  -854,
+	  -53,  1175, 32497,  -851,   -53,  1169, 32500,  -848,   -52,  1164, 32501,  -845,   -52,  1158, 32503,  -841,
+	  -51,  1152, 32505,  -838,   -51,  1146, 32508,  -835,   -50,  1141, 32509,  -832,   -50,  1135, 32512,  -829,
+	  -50,  1129, 32515,  -826,   -49,  1124, 32516,  -823,   -49,  1118, 32519,  -820,   -48,  1112, 32520,  -816,
+	  -48,  1107, 32522,  -813,   -48,  1101, 32525,  -810,   -47,  1095, 32527,  -807,   -47,  1090, 32529,  -804,
+	  -46,  1084, 32531,  -801,   -46,  1078, 32534,  -798,   -46,  1073, 32535,  -794,   -45,  1067, 32537,  -791,
+	  -45,  1061, 32540,  -788,   -44,  1056, 32541,  -785,   -44,  1050, 32544,  -782,   -44,  1045, 32545,  -778,
+	  -43,  1039, 32547,  -775,   -43,  1033, 32550,  -772,   -42,  1028, 32551,  -769,   -42,  1022, 32554,  -766,
+	  -42,  1017, 32555,  -762,   -41,  1011, 32557,  -759,   -41,  1006, 32559,  -756,   -40,  1000, 32561,  -753,
+	  -40,   995, 32563,  -750,   -40,   989, 32565,  -746,   -39,   984, 32566,  -743,   -39,   978, 32569,  -740,
+	  -39,   972, 32572,  -737,   -38,   967, 32573,  -734,   -38,   961, 32575,  -730,   -38,   956, 32577,  -727,
+	  -37,   951, 32578,  -724,   -37,   945, 32581,  -721,   -36,   940, 32581,  -717,   -36,   934, 32584,  -714,
+	  -36,   929, 32586,  -711,   -35,   923, 32588,  -708,   -35,   918, 32589,  -704,   -35,   912, 32592,  -701,
+	  -34,   907, 32593,  -698,   -34,   902, 32594,  -694,   -34,   896, 32597,  -691,   -33,   891, 32598,  -688,
+	  -33,   885, 32601,  -685,   -33,   880, 32602,  -681,   -32,   875, 32603,  -678,   -32,   869, 32606,  -675,
+	  -32,   864, 32607,  -671,   -31,   858, 32609,  -668,   -31,   853, 32611,  -665,   -31,   848, 32612,  -661,
+	  -30,   842, 32614,  -658,   -30,   837, 32616,  -655,   -30,   832, 32617,  -651,   -29,   826, 32619,  -648,
+	  -29,   821, 32621,  -645,   -29,   816, 32622,  -641,   -28,   810, 32624,  -638,   -28,   805, 32626,  -635,
+	  -28,   800, 32627,  -631,   -27,   795, 32628,  -628,   -27,   789, 32631,  -625,   -27,   784, 32632,  -621,
+	  -26,   779, 32633,  -618,   -26,   774, 32635,  -615,   -26,   768, 32637,  -611,   -26,   763, 32639,  -608,
+	  -25,   758, 32640,  -605,   -25,   753, 32641,  -601,   -25,   747, 32644,  -598,   -24,   742, 32644,  -594,
+	  -24,   737, 32646,  -591,   -24,   732, 32648,  -588,   -23,   727, 32648,  -584,   -23,   722, 32650,  -581,
+	  -23,   716, 32652,  -577,   -23,   711, 32654,  -574,   -22,   706, 32655,  -571,   -22,   701, 32656,  -567,
+	  -22,   696, 32658,  -564,   -21,   691, 32658,  -560,   -21,   685, 32661,  -557,   -21,   680, 32662,  -553,
+	  -21,   675, 32664,  -550,   -20,   670, 32665,  -547,   -20,   665, 32666,  -543,   -20,   660, 32668,  -540,
+	  -20,   655, 32669,  -536,   -19,   650, 32670,  -533,   -19,   645, 32671,  -529,   -19,   640, 32673,  -526,
+	  -18,   635, 32673,  -522,   -18,   630, 32675,  -519,   -18,   625, 32676,  -515,   -18,   619, 32679,  -512,
+	  -17,   614, 32679,  -508,   -17,   609, 32681,  -505,   -17,   604, 32683,  -502,   -17,   599, 32684,  -498,
+	  -16,   594, 32685,  -495,   -16,   589, 32686,  -491,   -16,   584, 32688,  -488,   -16,   579, 32689,  -484,
+	  -16,   575, 32690,  -481,   -15,   570, 32690,  -477,   -15,   565, 32691,  -473,   -15,   560, 32693,  -470,
+	  -15,   555, 32694,  -466,   -14,   550, 32695,  -463,   -14,   545, 32696,  -459,   -14,   540, 32698,  -456,
+	  -14,   535, 32699,  -452,   -13,   530, 32700,  -449,   -13,   525, 32701,  -445,   -13,   520, 32703,  -442,
+	  -13,   515, 32704,  -438,   -13,   511, 32705,  -435,   -12,   506, 32705,  -431,   -12,   501, 32706,  -427,
+	  -12,   496, 32708,  -424,   -12,   491, 32709,  -420,   -11,   486, 32710,  -417,   -11,   481, 32711,  -413,
+	  -11,   477, 32712,  -410,   -11,   472, 32713,  -406,   -11,   467, 32714,  -402,   -10,   462, 32715,  -399,
+	  -10,   457, 32716,  -395,   -10,   453, 32717,  -392,   -10,   448, 32718,  -388,   -10,   443, 32719,  -384,
+	  -10,   438, 32721,  -381,    -9,   434, 32720,  -377,    -9,   429, 32721,  -373,    -9,   424, 32723,  -370,
+	   -9,   419, 32724,  -366,    -9,   415, 32725,  -363,    -8,   410, 32725,  -359,    -8,   405, 32726,  -355,
+	   -8,   401, 32727,  -352,    -8,   396, 32728,  -348,    -8,   391, 32729,  -344,    -8,   386, 32731,  -341,
+	   -7,   382, 32730,  -337,    -7,   377, 32731,  -333,    -7,   372, 32733,  -330,    -7,   368, 32733,  -326,
+	   -7,   363, 32734,  -322,    -7,   359, 32735,  -319,    -6,   354, 32735,  -315,    -6,   349, 32736,  -311,
+	   -6,   345, 32737,  -308,    -6,   340, 32738,  -304,    -6,   335, 32739,  -300,    -6,   331, 32740,  -297,
+	   -6,   326, 32741,  -293,    -5,   322, 32740,  -289,    -5,   317, 32741,  -285,    -5,   313, 32742,  -282,
+	   -5,   308, 32743,  -278,    -5,   303, 32744,  -274,    -5,   299, 32745,  -271,    -5,   294, 32746,  -267,
+	   -4,   290, 32745,  -263,    -4,   285, 32746,  -259,    -4,   281, 32747,  -256,    -4,   276, 32748,  -252,
+	   -4,   272, 32748,  -248,    -4,   267, 32749,  -244,    -4,   263, 32750,  -241,    -4,   258, 32751,  -237,
+	   -3,   254, 32750,  -233,    -3,   249, 32751,  -229,    -3,   245, 32751,  -225,    -3,   241, 32752,  -222,
+	   -3,   236, 32753,  -218,    -3,   232, 32753,  -214,    -3,   227, 32754,  -210,    -3,   223, 32755,  -207,
+	   -3,   218, 32756,  -203,    -3,   214, 32756,  -199,    -2,   210, 32755,  -195,    -2,   205, 32756,  -191,
+	   -2,   201, 32757,  -188,    -2,   197, 32757,  -184,    -2,   192, 32758,  -180,    -2,   188, 32758,  -176,
+	   -2,   184, 32758,  -172,    -2,   179, 32759,  -168,    -2,   175, 32760,  -165,    -2,   171, 32760,  -161,
+	   -2,   166, 32761,  -157,    -1,   162, 32760,  -153,    -1,   158, 32760,  -149,    -1,   153, 32761,  -145,
+	   -1,   149, 32761,  -141,    -1,   145, 32762,  -138,    -1,   140, 32763,  -134,    -1,   136, 32763,  -130,
+	   -1,   132, 32763,  -126,    -1,   128, 32763,  -122,    -1,   123, 32764,  -118,    -1,   119, 32764,  -114,
+	   -1,   115, 32764,  -110,    -1,   111, 32765,  -107,    -1,   107, 32765,  -103,    -1,   102, 32766,   -99,
+	   -1,    98, 32766,   -95,    -1,    94, 32766,   -91,     0,    90, 32765,   -87,     0,    86, 32765,   -83,
+	    0,    82, 32765,   -79,     0,    77, 32766,   -75,     0,    73, 32766,   -71,     0,    69, 32766,   -67,
+	    0,    65, 32767,   -64,     0,    61, 32767,   -60,     0,    57, 32767,   -56,     0,    53, 32767,   -52,
+	    0,    49, 32767,   -48,     0,    44, 32767,   -44,     0,    40, 32767,   -40,     0,    36, 32767,   -36,
+	    0,    32, 32767,   -32,     0,    28, 32767,   -28,     0,    24, 32767,   -24,     0,    20, 32767,   -20,
+	    0,    16, 32767,   -16,     0,    12, 32767,   -12,     0,     8, 32767,    -8,     0,     4, 32767,    -4
+};
--- /dev/null
+++ b/src/ft2_intrp_table.h
@@ -1,0 +1,17 @@
+#pragma once
+
+#include <stdint.h>
+
+// number of bits for fractional sample position in audio mixer
+#define FRAC_BITS 16
+
+#define CUBIC_WIDTH 4
+#define CUBIC_WIDTH_BITS 2
+#define CUBIC_PHASES 4096
+#define CUBIC_PHASES_BITS 12
+
+#define CUBIC_FSHIFT (FRAC_BITS-(CUBIC_PHASES_BITS+CUBIC_WIDTH_BITS))
+#define CUBIC_FMASK ((CUBIC_WIDTH*CUBIC_PHASES)-CUBIC_WIDTH)
+#define CUBIC_QUANTSHIFT 15
+
+extern const int16_t cubicSplineTable[CUBIC_WIDTH * CUBIC_PHASES];
--- a/src/ft2_mix.c
+++ b/src/ft2_mix.c
@@ -2,7 +2,7 @@
 #include <stdbool.h>
 #include "ft2_mix.h"
 #include "ft2_mix_macros.h"
-#include "ft2_tables.h"
+#include "ft2_intrp_table.h"
 
 /*
 ** --------------------- 32-bit fixed-point audio channel mixer ---------------------
--- a/src/ft2_mix_macros.h
+++ b/src/ft2_mix_macros.h
@@ -106,15 +106,15 @@
 // in: int32_t s0,s1,s2,s3 = -128..127 | f = 0..65535 (frac) | out: 16-bit s0 (will exceed 16-bits because of overshoot)
 #define INTERPOLATE8(s0, s1, s2, s3, f) \
 { \
-	const int16_t *t = fastSincTable + ((f >> 6) & 0x3FC); \
-	s0 = ((s0 * t[0]) + (s1 * t[1]) + (s2 * t[2]) + (s3 * t[3])) >> (FAST_SINC_TABLE_BITS - 8); \
+	const int16_t *t = cubicSplineTable + ((f >> CUBIC_FSHIFT) & CUBIC_FMASK); \
+	s0 = ((s0 * t[0]) + (s1 * t[1]) + (s2 * t[2]) + (s3 * t[3])) >> (CUBIC_QUANTSHIFT-8); \
 } \
 
 // in: int32_t s0,s1,s2,s3 = -32768..32767 | f = 0..65535 (frac) | out: 16-bit s0 (will exceed 16-bits because of overshoot)
 #define INTERPOLATE16(s0, s1, s2, s3, f) \
 { \
-	const int16_t *t = fastSincTable + ((f >> 6) & 0x3FC); \
-	s0 = ((s0 * t[0]) + (s1 * t[1]) + (s2 * t[2]) + (s3 * t[3])) >> FAST_SINC_TABLE_BITS; \
+	const int16_t *t = cubicSplineTable + ((f >> CUBIC_FSHIFT) & CUBIC_FMASK); \
+	s0 = ((s0 * t[0]) + (s1 * t[1]) + (s2 * t[2]) + (s3 * t[3])) >> CUBIC_QUANTSHIFT; \
 } \
 
 #define RENDER_8BIT_SMP_INTRP \
--- a/src/ft2_module_loader.c
+++ b/src/ft2_module_loader.c
@@ -128,7 +128,7 @@
 #endif
 
 static volatile uint8_t loadedFormat;
-static volatile bool stereoSamplesWarn, linearFreqTable, musicIsLoading, moduleLoaded, moduleFailedToLoad;
+static volatile bool linearFreqTable, musicIsLoading, moduleLoaded, moduleFailedToLoad;
 static uint8_t oldPlayMode, pattBuff[12288];
 static const uint8_t stmEff[16] = { 0, 0, 11, 0, 10, 2, 1, 3, 4, 7, 0, 5 ,6, 0, 0, 0 };
 static SDL_Thread *thread;
@@ -1108,8 +1108,6 @@
 
 	showMsg = fromExternalThread ? okBoxThreadSafe : okBox;
 
-	stereoSamplesWarn = false;
-
 	rewind(f);
 
 	// start loading S3M
@@ -1606,10 +1604,7 @@
 					len *= 2;
 
 				if (stereoSample) // stereo
-				{
-					stereoSamplesWarn = true;
 					len *= 2;
-				}
 
 				tmpSmp = (int8_t *)malloc(len + LOOP_FIX_LEN);
 				if (tmpSmp == NULL)
@@ -1708,9 +1703,6 @@
 		}
 	}
 
-	if (stereoSamplesWarn)
-		showMsg(0, "System message", "Stereo samples were found and will be converted to mono.");
-
 	// non-FT2: fix overflown 9xx and illegal 3xx slides
 
 	for (i = 0; i < ap; i++)
@@ -1804,7 +1796,6 @@
 
 	showMsg = fromExternalThread ? okBoxThreadSafe : okBox;
 
-	stereoSamplesWarn = false;
 	linearFreqTable = false;
 
 	if (editor.tmpFilenameU == NULL)
@@ -1963,9 +1954,6 @@
 		}
 	}
 
-	if (stereoSamplesWarn)
-		showMsg(0, "System message", "Stereo samples were found and will be converted to mono.");
-
 	fclose(f);
 
 	moduleLoaded = true;
@@ -2322,8 +2310,6 @@
 					s->origPek = newPtr;
 					s->pek = s->origPek + SMP_DAT_OFFSET;
 				}
-
-				stereoSamplesWarn = true;
 			}
 		}
 
--- a/src/ft2_nibbles.c
+++ b/src/ft2_nibbles.c
@@ -23,8 +23,8 @@
 	"The \"Wrap\" option controls whether it's possible to walk through",
 	"the screen edges or not. Turn it on and use your brain to get",
 	"the maximum out of this feature.",
-	"The \"Surround\" option turns nibbles into a completely different",
-	"game. Don't change this option during play! (You'll see why)",
+	"The \"Surround\" option turns Nibbles into a completely different",
+	"game. Don't change this option during play! (you'll see why)",
 	"We wish you many hours of fun playing this game."
 };
 #define NIBBLES_HELP_LINES (sizeof (NI_HelpText) / sizeof (char *))
@@ -43,7 +43,7 @@
 static const char nibblesCheatCode1[] = "skip", nibblesCheatCode2[] = "triton";
 static char nibblesCheatBuffer[16];
 
-const char convHexTable2[10] = { 7, 8, 9, 10, 11, 12, 13, 16, 17, 18 };
+static const char convHexTable2[10] = { 7, 8, 9, 10, 11, 12, 13, 16, 17, 18 };
 static const uint8_t NI_Speeds[4] = { 12, 8, 6, 4 };
 static bool NI_EternalLives;
 static uint8_t NI_CheatIndex, NI_CurSpeed, NI_CurTick60Hz, NI_CurSpeed60Hz, NI_Screen[51][23], NI_Level;
@@ -265,7 +265,7 @@
 {
 	if (editor.NI_Play)
 	{
-		okBox(0, "System message", "No highscoretable is available during play.");
+		okBox(0, "System message", "The highscore table is not available during play.");
 		return;
 	}
 
@@ -781,13 +781,13 @@
 {
 	if (editor.NI_Play)
 	{
-		if (okBox(2, "Nibbles request", "Restart the current game of nibbles?") != 1)
+		if (okBox(2, "Nibbles request", "Restart the current game of Nibbles?") != 1)
 			return;
 	}
 
 	if (config.NI_Surround && config.NI_AntPlayers == 0)
 	{
-		okBox(0, "Nibbles message", "\"Surround\" is not appropriate in one-player mode.");
+		okBox(0, "Nibbles message", "Surround mode is not appropriate in one-player mode.");
 		return;
 	}
 
@@ -812,7 +812,7 @@
 {
 	if (editor.NI_Play)
 	{
-		okBox(0, "System message", "No help available during play.");
+		okBox(0, "System message", "Help is not available during play.");
 		return;
 	}
 
@@ -827,7 +827,7 @@
 {
 	if (editor.NI_Play)
 	{
-		if (okBox(2, "System request", "Quit current game of nibbles?") == 1)
+		if (okBox(2, "System request", "Quit current game of Nibbles?") == 1)
 		{
 			editor.NI_Play = false;
 			exitNibblesScreen();
@@ -910,7 +910,7 @@
 {
 	if (scancode == SDL_SCANCODE_ESCAPE)
 	{
-		if (okBox(2, "System request", "Quit current game of nibbles?") == 1)
+		if (okBox(2, "System request", "Quit current game of Nibbles?") == 1)
 		{
 			editor.NI_Play = false;
 			exitNibblesScreen();
--- a/src/ft2_pattern_ed.c
+++ b/src/ft2_pattern_ed.c
@@ -527,7 +527,7 @@
 		pushButtons[PB_POSED_PATT_UP].y = 20;
 		pushButtons[PB_POSED_PATT_DOWN].y = 20;
 		pushButtons[PB_POSED_DEL].y = 35;
-		pushButtons[PB_SWAP_BANK].caption = "Swap b.";
+		pushButtons[PB_SWAP_BANK].caption = "Swap B.";
 		pushButtons[PB_SWAP_BANK].caption2 = NULL;
 		pushButtons[PB_SWAP_BANK].x = 162;
 		pushButtons[PB_SWAP_BANK].y = 35;
@@ -582,7 +582,7 @@
 		pushButtons[PB_POSED_PATT_DOWN].y = 19;
 		pushButtons[PB_POSED_DEL].y = 33;
 		pushButtons[PB_SWAP_BANK].caption = "Swap";
-		pushButtons[PB_SWAP_BANK].caption2 = "bank";
+		pushButtons[PB_SWAP_BANK].caption2 = "Bank";
 		pushButtons[PB_SWAP_BANK].x = 590;
 		pushButtons[PB_SWAP_BANK].y = 144;
 		pushButtons[PB_SWAP_BANK].w = 39;
@@ -614,6 +614,11 @@
 			p->y = iSwitchY[i & 7];
 		}
 	}
+
+	// force update even if new values were to be the same as the old ones
+	scrollBars[SB_POS_ED].oldEnd = 0xFFFFFFFF;
+	scrollBars[SB_POS_ED].oldPage = 0xFFFFFFFF;
+	scrollBars[SB_POS_ED].oldPos = 0xFFFFFFFF;
 }
 
 void patternEditorExtended(void)
@@ -652,11 +657,6 @@
 
 	drawFramework(2,  2, 51, 20, FRAMEWORK_TYPE2);
 	drawFramework(2, 31, 51, 20, FRAMEWORK_TYPE2);
-
-	// force updating of end/page/length when showing scrollbar
-	scrollBars[SB_POS_ED].oldEnd = 0xFFFFFFFF;
-	scrollBars[SB_POS_ED].oldPage = 0xFFFFFFFF;
-	scrollBars[SB_POS_ED].oldPos = 0xFFFFFFFF;
 
 	showScrollBar(SB_POS_ED);
 
--- a/src/ft2_pushbuttons.c
+++ b/src/ft2_pushbuttons.c
@@ -126,7 +126,7 @@
 	{ 590,  90, 39, 16, 0, 0, "69-70",           NULL,    NULL,                 pbSetInstrBank14 },
 	{ 590, 107, 39, 16, 0, 0, "71-78",           NULL,    NULL,                 pbSetInstrBank15 },
 	{ 590, 124, 39, 16, 0, 0, "79-80",           NULL,    NULL,                 pbSetInstrBank16 },
-	{ 590, 144, 39, 27, 0, 0, "Swap",            "bank",  NULL,                 pbSwapInstrBank },
+	{ 590, 144, 39, 27, 0, 0, "Swap",            "Bank",  NULL,                 pbSwapInstrBank },
 	{ 566,  99, 18, 13, 1, 4, ARROW_UP_STRING,   NULL,    sampleListScrollUp,   NULL },
 	{ 566, 140, 18, 13, 1, 4, ARROW_DOWN_STRING, NULL,    sampleListScrollDown, NULL },
 
@@ -151,8 +151,8 @@
 	// ------ HELP SCREEN PUSHBUTTONS ------
 	//x,   y,   w,  h,  p, d, text #1,           text #2, funcOnDown,     funcOnUp
 	{   3, 155, 59, 16, 0, 0, "Exit",            NULL,    NULL,           exitHelpScreen },
-	{ 611,   2, 18, 13, 0, 0, ARROW_UP_STRING,   NULL,    helpScrollUp,   NULL },
-	{ 611, 158, 18, 13, 0, 0, ARROW_DOWN_STRING, NULL,    helpScrollDown, NULL },
+	{ 611,   2, 18, 13, 1, 2, ARROW_UP_STRING,   NULL,    helpScrollUp,   NULL },
+	{ 611, 158, 18, 13, 1, 2, ARROW_DOWN_STRING, NULL,    helpScrollDown, NULL },
 
 	// ------ PATTERN EDITOR PUSHBUTTONS ------
 	//x,   y,   w,  h,  p, d, text #1,            text #2, funcOnDown,         funcOnUp
@@ -357,7 +357,7 @@
 	{  70,   2, 58, 16, 0, 0, "Save",            NULL,    NULL,             pbDiskOpSave },
 	{  70,  19, 58, 16, 0, 0, "Delete",          NULL,    NULL,             pbDiskOpDelete },
 	{  70,  36, 58, 16, 0, 0, "Rename",          NULL,    NULL,             pbDiskOpRename },
-	{  70,  53, 58, 16, 0, 0, "Make dir",        NULL,    NULL,             pbDiskOpMakeDir },
+	{  70,  53, 58, 16, 0, 0, "Make dir.",        NULL,    NULL,             pbDiskOpMakeDir },
 	{  70,  70, 58, 16, 0, 0, "Refresh",         NULL,    NULL,             pbDiskOpRefresh },
 	{  70,  87, 58, 16, 0, 0, "Set path",        NULL,    NULL,             pbDiskOpSetPath },
 	{  70, 104, 58, 16, 0, 0, "Show all",        NULL,    NULL,             pbDiskOpShowAll },
--- a/src/ft2_pushbuttons.h
+++ b/src/ft2_pushbuttons.h
@@ -346,7 +346,7 @@
 #define RADIOBUTTON_STATES 3
 
 // amount of frames to wait
-#define BUTTON_DOWN_DELAY 8
+#define BUTTON_DOWN_DELAY 16
 
 // font #1/#2 special characters (used for buttons)
 #define ARROW_UP_STRING "\x05"
--- a/src/ft2_replayer.c
+++ b/src/ft2_replayer.c
@@ -1502,37 +1502,37 @@
 	}
 }
 
-int16_t relocateTon(int16_t period, int8_t relativeNote, stmTyp *ch)
+// for arpeggio and portamento (semitone-slide mode)
+static int16_t relocateTon(int16_t period, uint8_t arpNote, stmTyp *ch)
 {
-	int8_t fineTune;
-	int32_t loPeriod, hiPeriod, tmpPeriod, tableIndex;
+	int32_t fineTune, loPeriod, hiPeriod, tmpPeriod, tableIndex;
 
-	fineTune = (ch->fineTune >> 3) + 16;
-	hiPeriod = 8 * 12 * 16;
+	fineTune = ((ch->fineTune >> 3) + 16) << 1;
+	hiPeriod = (8 * 12 * 16) * 2;
 	loPeriod = 0;
 
 	for (int8_t i = 0; i < 8; i++)
 	{
-		tmpPeriod = (((loPeriod + hiPeriod) >> 1) & 0xFFFFFFF0) + fineTune;
+		tmpPeriod = (((loPeriod + hiPeriod) >> 1) & 0xFFFFFFE0) + fineTune;
 
-		tableIndex = tmpPeriod - 8;
-		if (tableIndex < 0) // added security check
-			tableIndex = 0;
+		tableIndex = (tmpPeriod - 16) >> 1;
+		tableIndex = CLAMP(tableIndex, 0, 1935); // 8bitbubsy: added security check
 
 		if (period >= note2Period[tableIndex])
-			hiPeriod = tmpPeriod - fineTune;
+			hiPeriod = (tmpPeriod - fineTune) & 0xFFFFFFE0;
 		else
-			loPeriod = tmpPeriod - fineTune;
+			loPeriod = (tmpPeriod - fineTune) & 0xFFFFFFE0;
 	}
 
-	tmpPeriod = loPeriod + fineTune + (relativeNote << 4);
-	if (tmpPeriod < 0) // added security check
+	tmpPeriod = loPeriod + fineTune + (arpNote << 5);
+
+	if (tmpPeriod < 0) // 8bitbubsy: added security check
 		tmpPeriod = 0;
 
-	if (tmpPeriod >= ((8*12*16)+15)-1) // FT2 bug: off-by-one edge case
-		tmpPeriod = (8*12*16)+15;
+	if (tmpPeriod >= (8*12*16+15)*2-1) // FT2 bug: off-by-one edge case
+		tmpPeriod = (8*12*16+15)*2;
 
-	return note2Period[tmpPeriod];
+	return note2Period[tmpPeriod>>1];
 }
 
 static void tonePorta(stmTyp *ch)
@@ -1559,7 +1559,7 @@
 		}
 	}
 
-	if (ch->glissFunk) // semi-tone slide flag
+	if (ch->glissFunk) // semitone-slide flag
 		ch->outPeriod = relocateTon(ch->realPeriod, 0, ch);
 	else
 		ch->outPeriod = ch->realPeriod;
--- a/src/ft2_replayer.h
+++ b/src/ft2_replayer.h
@@ -244,7 +244,6 @@
 void resetOldRates(void);
 void tuneSample(sampleTyp *s, int32_t midCFreq);
 uint32_t getFrequenceValue(int32_t period);
-int16_t relocateTon(int16_t period, int8_t relativeNote, stmTyp *ch);
 
 bool allocateInstr(int16_t nr);
 void freeInstr(int16_t nr);
--- a/src/ft2_tables.c
+++ b/src/ft2_tables.c
@@ -436,80 +436,6 @@
 	65536
 };
 
-/* 8bitbubsy: This table was taken from Tables.cpp (the OpenMPT project)
-**
-** Comment from Tables.cpp:
-** "Reversed sinc coefficients for 4x256 taps polyphase FIR resampling filter (SchismTracker's lutgen.c
-**  should generate a very similar table, but it's more precise)"
-*/
-const int16_t fastSincTable[256 * 4] =
-{ // Cubic Spline
-	    0, 16384,     0,     0,   -31, 16383,    32,     0,   -63, 16381,    65,     0,   -93, 16378,   100,    -1,
-	 -124, 16374,   135,    -1,  -153, 16368,   172,    -3,  -183, 16361,   209,    -4,  -211, 16353,   247,    -5,
-	 -240, 16344,   287,    -7,  -268, 16334,   327,    -9,  -295, 16322,   368,   -12,  -322, 16310,   410,   -14,
-	 -348, 16296,   453,   -17,  -374, 16281,   497,   -20,  -400, 16265,   541,   -23,  -425, 16248,   587,   -26,
-	 -450, 16230,   634,   -30,  -474, 16210,   681,   -33,  -497, 16190,   729,   -37,  -521, 16168,   778,   -41,
-	 -543, 16145,   828,   -46,  -566, 16121,   878,   -50,  -588, 16097,   930,   -55,  -609, 16071,   982,   -60,
-	 -630, 16044,  1035,   -65,  -651, 16016,  1089,   -70,  -671, 15987,  1144,   -75,  -691, 15957,  1199,   -81,
-	 -710, 15926,  1255,   -87,  -729, 15894,  1312,   -93,  -748, 15861,  1370,   -99,  -766, 15827,  1428,  -105,
-	 -784, 15792,  1488,  -112,  -801, 15756,  1547,  -118,  -818, 15719,  1608,  -125,  -834, 15681,  1669,  -132,
-	 -850, 15642,  1731,  -139,  -866, 15602,  1794,  -146,  -881, 15561,  1857,  -153,  -896, 15520,  1921,  -161,
-	 -911, 15477,  1986,  -168,  -925, 15434,  2051,  -176,  -939, 15390,  2117,  -184,  -952, 15344,  2184,  -192,
-	 -965, 15298,  2251,  -200,  -978, 15251,  2319,  -208,  -990, 15204,  2387,  -216, -1002, 15155,  2456,  -225,
-	-1014, 15106,  2526,  -234, -1025, 15055,  2596,  -242, -1036, 15004,  2666,  -251, -1046, 14952,  2738,  -260,
-	-1056, 14899,  2810,  -269, -1066, 14846,  2882,  -278, -1075, 14792,  2955,  -287, -1084, 14737,  3028,  -296,
-	-1093, 14681,  3102,  -306, -1102, 14624,  3177,  -315, -1110, 14567,  3252,  -325, -1118, 14509,  3327,  -334,
-	-1125, 14450,  3403,  -344, -1132, 14390,  3480,  -354, -1139, 14330,  3556,  -364, -1145, 14269,  3634,  -374,
-	-1152, 14208,  3712,  -384, -1157, 14145,  3790,  -394, -1163, 14082,  3868,  -404, -1168, 14018,  3947,  -414,
-	-1173, 13954,  4027,  -424, -1178, 13889,  4107,  -434, -1182, 13823,  4187,  -445, -1186, 13757,  4268,  -455,
-	-1190, 13690,  4349,  -465, -1193, 13623,  4430,  -476, -1196, 13555,  4512,  -486, -1199, 13486,  4594,  -497,
-	-1202, 13417,  4676,  -507, -1204, 13347,  4759,  -518, -1206, 13276,  4842,  -528, -1208, 13205,  4926,  -539,
-	-1210, 13134,  5010,  -550, -1211, 13061,  5094,  -560, -1212, 12989,  5178,  -571, -1212, 12915,  5262,  -581,
-	-1213, 12842,  5347,  -592, -1213, 12767,  5432,  -603, -1213, 12693,  5518,  -613, -1213, 12617,  5603,  -624,
-	-1212, 12542,  5689,  -635, -1211, 12466,  5775,  -645, -1210, 12389,  5862,  -656, -1209, 12312,  5948,  -667,
-	-1208, 12234,  6035,  -677, -1206, 12156,  6122,  -688, -1204, 12078,  6209,  -698, -1202, 11999,  6296,  -709,
-	-1200, 11920,  6384,  -720, -1197, 11840,  6471,  -730, -1194, 11760,  6559,  -740, -1191, 11679,  6647,  -751,
-	-1188, 11598,  6735,  -761, -1184, 11517,  6823,  -772, -1181, 11436,  6911,  -782, -1177, 11354,  6999,  -792,
-	-1173, 11271,  7088,  -802, -1168, 11189,  7176,  -812, -1164, 11106,  7265,  -822, -1159, 11022,  7354,  -832,
-	-1155, 10939,  7442,  -842, -1150, 10855,  7531,  -852, -1144, 10771,  7620,  -862, -1139, 10686,  7709,  -872,
-	-1134, 10602,  7798,  -882, -1128, 10516,  7886,  -891, -1122, 10431,  7975,  -901, -1116, 10346,  8064,  -910,
-	-1110, 10260,  8153,  -919, -1103, 10174,  8242,  -929, -1097, 10088,  8331,  -938, -1090, 10001,  8420,  -947,
-	-1083,  9915,  8508,  -956, -1076,  9828,  8597,  -965, -1069,  9741,  8686,  -973, -1062,  9654,  8774,  -982,
-	-1054,  9566,  8863,  -991, -1047,  9479,  8951,  -999, -1039,  9391,  9039, -1007, -1031,  9303,  9127, -1015,
-	-1024,  9216,  9216, -1024, -1015,  9127,  9303, -1031, -1007,  9039,  9391, -1039,  -999,  8951,  9479, -1047,
-	 -991,  8863,  9566, -1054,  -982,  8774,  9654, -1062,  -973,  8686,  9741, -1069,  -965,  8597,  9828, -1076,
-	 -956,  8508,  9915, -1083,  -947,  8420, 10001, -1090,  -938,  8331, 10088, -1097,  -929,  8242, 10174, -1103,
-	 -919,  8153, 10260, -1110,  -910,  8064, 10346, -1116,  -901,  7975, 10431, -1122,  -891,  7886, 10516, -1128,
-	 -882,  7798, 10602, -1134,  -872,  7709, 10686, -1139,  -862,  7620, 10771, -1144,  -852,  7531, 10855, -1150,
-	 -842,  7442, 10939, -1155,  -832,  7354, 11022, -1159,  -822,  7265, 11106, -1164,  -812,  7176, 11189, -1168,
-	 -802,  7088, 11271, -1173,  -792,  6999, 11354, -1177,  -782,  6911, 11436, -1181,  -772,  6823, 11517, -1184,
-	 -761,  6735, 11598, -1188,  -751,  6647, 11679, -1191,  -740,  6559, 11760, -1194,  -730,  6471, 11840, -1197,
-	 -720,  6384, 11920, -1200,  -709,  6296, 11999, -1202,  -698,  6209, 12078, -1204,  -688,  6122, 12156, -1206,
-	 -677,  6035, 12234, -1208,  -667,  5948, 12312, -1209,  -656,  5862, 12389, -1210,  -645,  5775, 12466, -1211,
-	 -635,  5689, 12542, -1212,  -624,  5603, 12617, -1213,  -613,  5518, 12693, -1213,  -603,  5432, 12767, -1213,
-	 -592,  5347, 12842, -1213,  -581,  5262, 12915, -1212,  -571,  5178, 12989, -1212,  -560,  5094, 13061, -1211,
-	 -550,  5010, 13134, -1210,  -539,  4926, 13205, -1208,  -528,  4842, 13276, -1206,  -518,  4759, 13347, -1204,
-	 -507,  4676, 13417, -1202,  -497,  4594, 13486, -1199,  -486,  4512, 13555, -1196,  -476,  4430, 13623, -1193,
-	 -465,  4349, 13690, -1190,  -455,  4268, 13757, -1186,  -445,  4187, 13823, -1182,  -434,  4107, 13889, -1178,
-	 -424,  4027, 13954, -1173,  -414,  3947, 14018, -1168,  -404,  3868, 14082, -1163,  -394,  3790, 14145, -1157,
-	 -384,  3712, 14208, -1152,  -374,  3634, 14269, -1145,  -364,  3556, 14330, -1139,  -354,  3480, 14390, -1132,
-	 -344,  3403, 14450, -1125,  -334,  3327, 14509, -1118,  -325,  3252, 14567, -1110,  -315,  3177, 14624, -1102,
-	 -306,  3102, 14681, -1093,  -296,  3028, 14737, -1084,  -287,  2955, 14792, -1075,  -278,  2882, 14846, -1066,
-	 -269,  2810, 14899, -1056,  -260,  2738, 14952, -1046,  -251,  2666, 15004, -1036,  -242,  2596, 15055, -1025,
-	 -234,  2526, 15106, -1014,  -225,  2456, 15155, -1002,  -216,  2387, 15204,  -990,  -208,  2319, 15251,  -978,
-	 -200,  2251, 15298,  -965,  -192,  2184, 15344,  -952,  -184,  2117, 15390,  -939,  -176,  2051, 15434,  -925,
-	 -168,  1986, 15477,  -911,  -161,  1921, 15520,  -896,  -153,  1857, 15561,  -881,  -146,  1794, 15602,  -866,
-	 -139,  1731, 15642,  -850,  -132,  1669, 15681,  -834,  -125,  1608, 15719,  -818,  -118,  1547, 15756,  -801,
-	 -112,  1488, 15792,  -784,  -105,  1428, 15827,  -766,   -99,  1370, 15861,  -748,   -93,  1312, 15894,  -729,
-	  -87,  1255, 15926,  -710,   -81,  1199, 15957,  -691,   -75,  1144, 15987,  -671,   -70,  1089, 16016,  -651,
-	  -65,  1035, 16044,  -630,   -60,   982, 16071,  -609,   -55,   930, 16097,  -588,   -50,   878, 16121,  -566,
-	  -46,   828, 16145,  -543,   -41,   778, 16168,  -521,   -37,   729, 16190,  -497,   -33,   681, 16210,  -474,
-	  -30,   634, 16230,  -450,   -26,   587, 16248,  -425,   -23,   541, 16265,  -400,   -20,   497, 16281,  -374,
-	  -17,   453, 16296,  -348,   -14,   410, 16310,  -322,   -12,   368, 16322,  -295,    -9,   327, 16334,  -268,
-	   -7,   287, 16344,  -240,    -5,   247, 16353,  -211,    -4,   209, 16361,  -183,    -3,   172, 16368,  -153,
-	   -1,   135, 16374,  -124,    -1,   100, 16378,   -93,     0,    65, 16381,   -63,     0,    32, 16383,   -31
-};
-
 /* ----------------------------------------------------------------------- */
 /*                               GUI TABLES                                */
 /* ----------------------------------------------------------------------- */
@@ -831,7 +757,7 @@
 	'0', '1', '2'
 };
 
-const int16_t sinusTables[256 * 5] =
+const int16_t sinusTables[256 * 5] = // for 3D stars in About screen
 {
 	     0,    201,    402,    603,    804,   1005,   1206,   1407,   1608,   1809,
 	  2009,   2210,   2410,   2611,   2811,   3011,   3212,   3412,   3612,   3811,
--- a/src/ft2_tables.h
+++ b/src/ft2_tables.h
@@ -7,7 +7,6 @@
 #include "ft2_config.h" // CONFIG_FILE_SIZE
 
 #define LOG_TABLE_BITS 24
-#define FAST_SINC_TABLE_BITS 14
 
 #define KEY2VOL_ENTRIES (signed)(sizeof (key2VolTab) / sizeof (SDL_Keycode))
 #define KEY2EFX_ENTRIES (signed)(sizeof (key2EfxTab) / sizeof (SDL_Keycode))
@@ -22,12 +21,11 @@
 extern const uint32_t logTab[768];
 
 extern const uint32_t panningTab[257];
-extern const int16_t fastSincTable[256 * 4];
 
 extern pal16 palTable[12][16];
 extern const uint16_t chanWidths[6];
 extern const pattCoordsMouse_t pattCoordMouseTable[2][2][2];
-extern const int16_t sinusTables[256 * 5];
+extern const int16_t sinusTables[256 * 5]; // for 3D stars in About screen
 extern const uint8_t noteTab1[96];
 extern const uint8_t noteTab2[96];
 extern const uint8_t hex2Dec[256];
--- a/vs2019_project/ft2-clone/ft2-clone.vcxproj
+++ b/vs2019_project/ft2-clone/ft2-clone.vcxproj
@@ -141,7 +141,7 @@
     <PostBuildEvent />
     <Manifest />
     <Manifest>
-      <EnableDpiAwareness>true</EnableDpiAwareness>
+      <EnableDpiAwareness>PerMonitorHighDPIAware</EnableDpiAwareness>
     </Manifest>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -212,7 +212,7 @@
     </ResourceCompile>
     <Manifest />
     <Manifest>
-      <EnableDpiAwareness>true</EnableDpiAwareness>
+      <EnableDpiAwareness>PerMonitorHighDPIAware</EnableDpiAwareness>
     </Manifest>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
@@ -258,7 +258,7 @@
       </Command>
     </PreBuildEvent>
     <Manifest>
-      <EnableDpiAwareness>true</EnableDpiAwareness>
+      <EnableDpiAwareness>PerMonitorHighDPIAware</EnableDpiAwareness>
     </Manifest>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@@ -312,7 +312,7 @@
       <PreprocessorDefinitions>_WIN64</PreprocessorDefinitions>
     </ResourceCompile>
     <Manifest>
-      <EnableDpiAwareness>true</EnableDpiAwareness>
+      <EnableDpiAwareness>PerMonitorHighDPIAware</EnableDpiAwareness>
     </Manifest>
   </ItemDefinitionGroup>
   <ItemGroup>
@@ -334,6 +334,7 @@
     <ClCompile Include="..\..\src\ft2_gui.c" />
     <ClCompile Include="..\..\src\ft2_help.c" />
     <ClCompile Include="..\..\src\ft2_inst_ed.c" />
+    <ClCompile Include="..\..\src\ft2_intrp_table.c" />
     <ClCompile Include="..\..\src\ft2_keyboard.c" />
     <ClCompile Include="..\..\src\ft2_main.c" />
     <ClCompile Include="..\..\src\ft2_midi.c" />
@@ -402,6 +403,7 @@
     <ClInclude Include="..\..\src\ft2_header.h" />
     <ClInclude Include="..\..\src\ft2_help.h" />
     <ClInclude Include="..\..\src\ft2_inst_ed.h" />
+    <ClInclude Include="..\..\src\ft2_intrp_table.h" />
     <ClInclude Include="..\..\src\ft2_keyboard.h" />
     <ClInclude Include="..\..\src\ft2_midi.h" />
     <ClInclude Include="..\..\src\ft2_mix.h" />
--- a/vs2019_project/ft2-clone/ft2-clone.vcxproj.filters
+++ b/vs2019_project/ft2-clone/ft2-clone.vcxproj.filters
@@ -71,6 +71,7 @@
     <ClCompile Include="..\..\src\ft2_palette.c" />
     <ClCompile Include="..\..\src\ft2_scopedraw.c" />
     <ClCompile Include="..\..\src\ft2_tables.c" />
+    <ClCompile Include="..\..\src\ft2_intrp_table.c" />
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\src\ft2_audio.h">
@@ -203,6 +204,9 @@
       <Filter>headers</Filter>
     </ClInclude>
     <ClInclude Include="..\..\src\ft2_tables.h">
+      <Filter>headers</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\ft2_intrp_table.h">
       <Filter>headers</Filter>
     </ClInclude>
   </ItemGroup>