From efb111d4a08e44fbc1a76afa05dbe7ac7562692a Mon Sep 17 00:00:00 2001 From: falkTX Date: Mon, 8 Aug 2011 13:13:56 +0100 Subject: [PATCH] Add TAL-Reverb-II plugin to test --- tal-reverb-2-juce.lv2/TAL_Reverb_II_Plugin.ttl | 181 ++ tal-reverb-2-juce.lv2/manifest.ttl | 8 + tal-reverb-2-juce/Linux/Makefile | 25 + tal-reverb-2-juce/Linux/Math.h | 1 + tal-reverb-2-juce/Linux/TAL-Reverb-2.make | 102 + tal-reverb-2-juce/Linux/engine | 1 + tal-reverb-2-juce/Linux/manifest.ttl | 8 + tal-reverb-2-juce/Linux/premake.lua | 49 + tal-reverb-2-juce/src/Engine/AllPassFilter.h | 128 ++ tal-reverb-2-juce/src/Engine/AudioUtils.h | 142 ++ tal-reverb-2-juce/src/Engine/CombFilter.h | 119 + tal-reverb-2-juce/src/Engine/Filter.h | 89 + tal-reverb-2-juce/src/Engine/HighShelf.h | 112 + tal-reverb-2-juce/src/Engine/LowShelf.h | 114 + tal-reverb-2-juce/src/Engine/NoiseGenerator.h | 99 + tal-reverb-2-juce/src/Engine/ParamChangeUtil.h | 53 + tal-reverb-2-juce/src/Engine/Params.h | 76 + tal-reverb-2-juce/src/Engine/PeakEq.h | 106 + tal-reverb-2-juce/src/Engine/Reverb.h | 308 +++ tal-reverb-2-juce/src/Engine/ReverbEngine.h | 173 ++ tal-reverb-2-juce/src/Engine/TalEq.h | 113 + tal-reverb-2-juce/src/FilmStripKnob.h | 62 + tal-reverb-2-juce/src/ImageSlider.h | 63 + tal-reverb-2-juce/src/ImageToggleButton.h | 29 + tal-reverb-2-juce/src/JucePluginCharacteristics.h | 318 +++ tal-reverb-2-juce/src/Program.h | 29 + tal-reverb-2-juce/src/ProgramChunk.h | 44 + tal-reverb-2-juce/src/TalComponent.cpp | 2541 +++++++++++++++++++++ tal-reverb-2-juce/src/TalComponent.h | 142 ++ tal-reverb-2-juce/src/TalCore.cpp | 481 ++++ tal-reverb-2-juce/src/TalCore.h | 138 ++ tal-reverb-2-juce/src/TalPreset.h | 51 + tal-reverb-2-juce/src/includes.h | 32 + 33 files changed, 5937 insertions(+) create mode 100644 tal-reverb-2-juce.lv2/TAL_Reverb_II_Plugin.ttl create mode 100644 tal-reverb-2-juce.lv2/manifest.ttl create mode 100644 tal-reverb-2-juce/Linux/Makefile create mode 100644 tal-reverb-2-juce/Linux/Math.h create mode 100644 tal-reverb-2-juce/Linux/TAL-Reverb-2.make create mode 120000 tal-reverb-2-juce/Linux/engine create mode 100644 tal-reverb-2-juce/Linux/manifest.ttl create mode 100644 tal-reverb-2-juce/Linux/premake.lua create mode 100644 tal-reverb-2-juce/src/Engine/AllPassFilter.h create mode 100644 tal-reverb-2-juce/src/Engine/AudioUtils.h create mode 100644 tal-reverb-2-juce/src/Engine/CombFilter.h create mode 100644 tal-reverb-2-juce/src/Engine/Filter.h create mode 100644 tal-reverb-2-juce/src/Engine/HighShelf.h create mode 100644 tal-reverb-2-juce/src/Engine/LowShelf.h create mode 100644 tal-reverb-2-juce/src/Engine/NoiseGenerator.h create mode 100644 tal-reverb-2-juce/src/Engine/ParamChangeUtil.h create mode 100644 tal-reverb-2-juce/src/Engine/Params.h create mode 100644 tal-reverb-2-juce/src/Engine/PeakEq.h create mode 100644 tal-reverb-2-juce/src/Engine/Reverb.h create mode 100644 tal-reverb-2-juce/src/Engine/ReverbEngine.h create mode 100644 tal-reverb-2-juce/src/Engine/TalEq.h create mode 100644 tal-reverb-2-juce/src/FilmStripKnob.h create mode 100644 tal-reverb-2-juce/src/ImageSlider.h create mode 100644 tal-reverb-2-juce/src/ImageToggleButton.h create mode 100644 tal-reverb-2-juce/src/JucePluginCharacteristics.h create mode 100644 tal-reverb-2-juce/src/Program.h create mode 100644 tal-reverb-2-juce/src/ProgramChunk.h create mode 100644 tal-reverb-2-juce/src/TalComponent.cpp create mode 100644 tal-reverb-2-juce/src/TalComponent.h create mode 100644 tal-reverb-2-juce/src/TalCore.cpp create mode 100644 tal-reverb-2-juce/src/TalCore.h create mode 100644 tal-reverb-2-juce/src/TalPreset.h create mode 100644 tal-reverb-2-juce/src/includes.h diff --git a/tal-reverb-2-juce.lv2/TAL_Reverb_II_Plugin.ttl b/tal-reverb-2-juce.lv2/TAL_Reverb_II_Plugin.ttl new file mode 100644 index 0000000..4873eff --- /dev/null +++ b/tal-reverb-2-juce.lv2/TAL_Reverb_II_Plugin.ttl @@ -0,0 +1,181 @@ +@prefix doap: . +@prefix lv2: . +@prefix lv2ev: . +@prefix lv2ui: . + + + a lv2ui:external ; + lv2ui:binary . + + + a lv2:Plugin ; + lv2ui:ui ; + + lv2:port [ + a lv2:InputPort, lv2ev:EventPort; + lv2ev:supportsEvent ; + lv2:index 0; + lv2:symbol "midi_in"; + lv2:name "MIDI Input"; + ] ; + + lv2:port [ + a lv2:InputPort, lv2:AudioPort; + lv2:index 1; + lv2:symbol "audio_in_1"; + lv2:name "Audio Input 1"; + ], + [ + a lv2:InputPort, lv2:AudioPort; + lv2:index 2; + lv2:symbol "audio_in_2"; + lv2:name "Audio Input 2"; + ] ; + + lv2:port [ + a lv2:OutputPort, lv2:AudioPort; + lv2:index 3; + lv2:symbol "audio_out_1"; + lv2:name "Audio Output 1"; + ], + [ + a lv2:OutputPort, lv2:AudioPort; + lv2:index 4; + lv2:symbol "audio_out_2"; + lv2:name "Audio Output 2"; + ] ; + + lv2:port [ + a lv2:InputPort; + a lv2:ControlPort; + lv2:index 5; + lv2:symbol "0"; + lv2:name ""; + lv2:default 0.0; + lv2:minimum 0.0; + lv2:maximum 1.0; + ], + [ + a lv2:InputPort; + a lv2:ControlPort; + lv2:index 6; + lv2:symbol "dry"; + lv2:name "dry"; + lv2:default 0.5; + lv2:minimum 0.0; + lv2:maximum 1.0; + ], + [ + a lv2:InputPort; + a lv2:ControlPort; + lv2:index 7; + lv2:symbol "wet"; + lv2:name "wet"; + lv2:default 0.161000013; + lv2:minimum 0.0; + lv2:maximum 1.0; + ], + [ + a lv2:InputPort; + a lv2:ControlPort; + lv2:index 8; + lv2:symbol "room_size"; + lv2:name "room size"; + lv2:default 0.752000034; + lv2:minimum 0.0; + lv2:maximum 1.0; + ], + [ + a lv2:InputPort; + a lv2:ControlPort; + lv2:index 9; + lv2:symbol "pre_delay"; + lv2:name "pre delay"; + lv2:default 0.131999999; + lv2:minimum 0.0; + lv2:maximum 1.0; + ], + [ + a lv2:InputPort; + a lv2:ControlPort; + lv2:index 10; + lv2:symbol "low_shelf_frequency"; + lv2:name "low shelf frequency"; + lv2:default 0.0240000002; + lv2:minimum 0.0; + lv2:maximum 1.0; + ], + [ + a lv2:InputPort; + a lv2:ControlPort; + lv2:index 11; + lv2:symbol "high_shelf_frequency"; + lv2:name "high shelf frequency"; + lv2:default 1.0; + lv2:minimum 0.0; + lv2:maximum 1.0; + ], + [ + a lv2:InputPort; + a lv2:ControlPort; + lv2:index 12; + lv2:symbol "peak_frequency"; + lv2:name "peak frequency"; + lv2:default 0.492000014; + lv2:minimum 0.0; + lv2:maximum 1.0; + ], + [ + a lv2:InputPort; + a lv2:ControlPort; + lv2:index 13; + lv2:symbol "low_shelf_gain"; + lv2:name "low shelf gain"; + lv2:default 1.0; + lv2:minimum 0.0; + lv2:maximum 1.0; + ], + [ + a lv2:InputPort; + a lv2:ControlPort; + lv2:index 14; + lv2:symbol "high_shelf_gain"; + lv2:name "high shelf gain"; + lv2:default 1.0; + lv2:minimum 0.0; + lv2:maximum 1.0; + ], + [ + a lv2:InputPort; + a lv2:ControlPort; + lv2:index 15; + lv2:symbol "peak_gain"; + lv2:name "peak gain"; + lv2:default 1.0; + lv2:minimum 0.0; + lv2:maximum 1.0; + ], + [ + a lv2:InputPort; + a lv2:ControlPort; + lv2:index 16; + lv2:symbol "stereo"; + lv2:name "stereo"; + lv2:default 1.0; + lv2:minimum 0.0; + lv2:maximum 1.0; + ], + [ + a lv2:InputPort; + a lv2:ControlPort; + lv2:index 17; + lv2:symbol "stereo_input"; + lv2:name "stereo input"; + lv2:default 0.0; + lv2:minimum 0.0; + lv2:maximum 1.0; + ] ; + + doap:name "TAL Reverb II Plugin" ; + doap:creator "TAL-Togu Audio Line" . + diff --git a/tal-reverb-2-juce.lv2/manifest.ttl b/tal-reverb-2-juce.lv2/manifest.ttl new file mode 100644 index 0000000..970de67 --- /dev/null +++ b/tal-reverb-2-juce.lv2/manifest.ttl @@ -0,0 +1,8 @@ +@prefix lv2: . +@prefix rdfs: . + + + a lv2:Plugin ; + lv2:binary ; + rdfs:seeAlso . + diff --git a/tal-reverb-2-juce/Linux/Makefile b/tal-reverb-2-juce/Linux/Makefile new file mode 100644 index 0000000..b1c8dc7 --- /dev/null +++ b/tal-reverb-2-juce/Linux/Makefile @@ -0,0 +1,25 @@ +# Makefile autogenerated by premake +# Don't edit this file! Instead edit `premake.lua` then rerun `make` +# Options: +# CONFIG=[Debug|Release] + +ifndef CONFIG + CONFIG=Debug +endif + +export CONFIG + +.PHONY: all clean TAL-Reverb-2 + +all: TAL-Reverb-2 + +Makefile: premake.lua + @echo ==== Regenerating Makefiles ==== + @premake --file $^ --cc gcc --os linux --target gnu + +TAL-Reverb-2: + @echo ==== Building TAL-Reverb-2 ==== + @$(MAKE) --no-print-directory -C . -f TAL-Reverb-2.make + +clean: + @$(MAKE) --no-print-directory -C . -f TAL-Reverb-2.make clean diff --git a/tal-reverb-2-juce/Linux/Math.h b/tal-reverb-2-juce/Linux/Math.h new file mode 100644 index 0000000..a84546e --- /dev/null +++ b/tal-reverb-2-juce/Linux/Math.h @@ -0,0 +1 @@ +#include diff --git a/tal-reverb-2-juce/Linux/TAL-Reverb-2.make b/tal-reverb-2-juce/Linux/TAL-Reverb-2.make new file mode 100644 index 0000000..af023cf --- /dev/null +++ b/tal-reverb-2-juce/Linux/TAL-Reverb-2.make @@ -0,0 +1,102 @@ +# C++ Shared Library Makefile autogenerated by premake +# Don't edit this file! Instead edit `premake.lua` then rerun `make` + +ifndef CONFIG + CONFIG=Debug +endif + +# if multiple archs are defined turn off automated dependency generation +DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD) + +ifeq ($(CONFIG),Debug) + BINDIR := . + LIBDIR := . + OBJDIR := intermediate/Debug + OUTDIR := . + CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCE_ALSA=0" -D "JUCE_USE_VSTSDK_2_4=1" -D "JucePlugin_Build_LV2=1" -I "../src" -I "../src/engine" -I "/usr/include" -I "/usr/include/freetype2" -I "../../juce/source" -I "." + CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -fPIC -g -O0 -ggdb -static -fPIC + CXXFLAGS += $(CFLAGS) + LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -shared -L"/usr/X11R6/lib/" -L"/usr/lib/" -L"../../" -lfreetype -lpthread -lrt -lX11 -lGL -ljuce_debug + LDDEPS := + RESFLAGS := -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCE_ALSA=0" -D "JUCE_USE_VSTSDK_2_4=1" -D "JucePlugin_Build_LV2=1" -I "../src" -I "../src/engine" -I "/usr/include" -I "/usr/include/freetype2" -I "../../juce/source" -I "." + TARGET := libTAL-Reverb-2_debug.so + BLDCMD = $(CXX) -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH) +endif + +ifeq ($(CONFIG),Release) + BINDIR := . + LIBDIR := . + OBJDIR := intermediate/Release + OUTDIR := . + CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "NDEBUG=1" -D "JUCE_ALSA=0" -D "JUCE_USE_VSTSDK_2_4=1" -D "JucePlugin_Build_LV2=1" -I "../src" -I "../src/engine" -I "/usr/include" -I "/usr/include/freetype2" -I "../../juce/source" -I "." + CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -fPIC -O2 -O2 -s -fvisibility=hidden -msse -ffast-math -static -fPIC + CXXFLAGS += $(CFLAGS) + LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -shared -s -L"/usr/X11R6/lib/" -L"/usr/lib/" -L"../../" -lfreetype -lpthread -lrt -lX11 -lGL -ljuce + LDDEPS := + RESFLAGS := -D "LINUX=1" -D "NDEBUG=1" -D "JUCE_ALSA=0" -D "JUCE_USE_VSTSDK_2_4=1" -D "JucePlugin_Build_LV2=1" -I "../src" -I "../src/engine" -I "/usr/include" -I "/usr/include/freetype2" -I "../../juce/source" -I "." + TARGET := libTAL-Reverb-2.so + BLDCMD = $(CXX) -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH) +endif + +OBJECTS := \ + $(OBJDIR)/TalComponent.o \ + $(OBJDIR)/TalCore.o \ + $(OBJDIR)/juce_LV2_Wrapper.o \ + +MKDIR_TYPE := msdos +CMD := $(subst \,\\,$(ComSpec)$(COMSPEC)) +ifeq (,$(CMD)) + MKDIR_TYPE := posix +endif +ifeq (/bin,$(findstring /bin,$(SHELL))) + MKDIR_TYPE := posix +endif +ifeq ($(MKDIR_TYPE),posix) + CMD_MKBINDIR := mkdir -p $(BINDIR) + CMD_MKLIBDIR := mkdir -p $(LIBDIR) + CMD_MKOUTDIR := mkdir -p $(OUTDIR) + CMD_MKOBJDIR := mkdir -p $(OBJDIR) +else + CMD_MKBINDIR := $(CMD) /c if not exist $(subst /,\\,$(BINDIR)) mkdir $(subst /,\\,$(BINDIR)) + CMD_MKLIBDIR := $(CMD) /c if not exist $(subst /,\\,$(LIBDIR)) mkdir $(subst /,\\,$(LIBDIR)) + CMD_MKOUTDIR := $(CMD) /c if not exist $(subst /,\\,$(OUTDIR)) mkdir $(subst /,\\,$(OUTDIR)) + CMD_MKOBJDIR := $(CMD) /c if not exist $(subst /,\\,$(OBJDIR)) mkdir $(subst /,\\,$(OBJDIR)) +endif + +.PHONY: clean + +$(OUTDIR)/$(TARGET): $(OBJECTS) $(LDDEPS) $(RESOURCES) + @echo Linking TAL-Reverb-2 + -@$(CMD_MKBINDIR) + -@$(CMD_MKLIBDIR) + -@$(CMD_MKOUTDIR) + @$(BLDCMD) + +clean: + @echo Cleaning TAL-Reverb-2 +ifeq ($(MKDIR_TYPE),posix) + -@rm -f $(OUTDIR)/$(TARGET) + -@rm -rf $(OBJDIR) +else + -@if exist $(subst /,\,$(OUTDIR)/$(TARGET)) del /q $(subst /,\,$(OUTDIR)/$(TARGET)) + -@if exist $(subst /,\,$(OBJDIR)) del /q $(subst /,\,$(OBJDIR)) + -@if exist $(subst /,\,$(OBJDIR)) rmdir /s /q $(subst /,\,$(OBJDIR)) +endif + +$(OBJDIR)/TalComponent.o: ../src/TalComponent.cpp + -@$(CMD_MKOBJDIR) + @echo $(notdir $<) + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/TalCore.o: ../src/TalCore.cpp + -@$(CMD_MKOBJDIR) + @echo $(notdir $<) + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/juce_LV2_Wrapper.o: ../../juce/source/src/audio/plugin_client/LV2/juce_LV2_Wrapper.cpp + -@$(CMD_MKOBJDIR) + @echo $(notdir $<) + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +-include $(OBJECTS:%.o=%.d) + diff --git a/tal-reverb-2-juce/Linux/engine b/tal-reverb-2-juce/Linux/engine new file mode 120000 index 0000000..05d289e --- /dev/null +++ b/tal-reverb-2-juce/Linux/engine @@ -0,0 +1 @@ +../src/Engine \ No newline at end of file diff --git a/tal-reverb-2-juce/Linux/manifest.ttl b/tal-reverb-2-juce/Linux/manifest.ttl new file mode 100644 index 0000000..970de67 --- /dev/null +++ b/tal-reverb-2-juce/Linux/manifest.ttl @@ -0,0 +1,8 @@ +@prefix lv2: . +@prefix rdfs: . + + + a lv2:Plugin ; + lv2:binary ; + rdfs:seeAlso . + diff --git a/tal-reverb-2-juce/Linux/premake.lua b/tal-reverb-2-juce/Linux/premake.lua new file mode 100644 index 0000000..c1cef0a --- /dev/null +++ b/tal-reverb-2-juce/Linux/premake.lua @@ -0,0 +1,49 @@ + +project.name = "TAL-Reverb-2" +project.bindir = "." +project.libdir = project.bindir + +project.configs = { "Debug", "Release" } + +package = newpackage() +package.name = project.name +package.target = project.name +package.language = "c++" +package.linkflags = { "static-runtime" } +package.kind = "dll" + +package.config["Release"].objdir = "intermediate/Release" +package.config["Debug"].objdir = "intermediate/Debug" + +package.config["Release"].target = "TAL-Reverb-2" +package.config["Debug"].target = "TAL-Reverb-2_debug" + +package.config["Release"].defines = { "LINUX=1", "NDEBUG=1", "JUCE_ALSA=0", "JUCE_USE_VSTSDK_2_4=1", "JucePlugin_Build_LV2=1" }; +package.config["Release"].buildoptions = { "-O2 -s -fvisibility=hidden -msse -ffast-math -static -fPIC" } +package.config["Release"].links = { "freetype", "pthread", "rt", "X11", "GL", "juce" } + +package.config["Debug"].defines = { "LINUX=1", "DEBUG=1", "_DEBUG=1", "JUCE_ALSA=0", "JUCE_USE_VSTSDK_2_4=1", "JucePlugin_Build_LV2=1" }; +package.config["Debug"].buildoptions = { "-O0 -ggdb -static -fPIC" } +package.config["Debug"].links = { "freetype", "pthread", "rt", "X11", "GL", "juce_debug" } + +package.includepaths = { + "../src", + "../src/engine", + "/usr/include", + "/usr/include/freetype2", + "../../juce/source", + "." --fake +} + +package.libpaths = { + "/usr/X11R6/lib/", + "/usr/lib/", + "../../" +} + +package.files = { + matchfiles ( + "../src/*.cpp", + "../../juce/source/src/audio/plugin_client/LV2/juce_LV2_Wrapper.cpp" + ) +} diff --git a/tal-reverb-2-juce/src/Engine/AllPassFilter.h b/tal-reverb-2-juce/src/Engine/AllPassFilter.h new file mode 100644 index 0000000..bf55823 --- /dev/null +++ b/tal-reverb-2-juce/src/Engine/AllPassFilter.h @@ -0,0 +1,128 @@ +/* + ============================================================================== + This file is part of Tal-Reverb by Patrick Kunz. + + Copyright(c) 2005-2009 Patrick Kunz, TAL + Togu Audio Line, Inc. + http://kunz.corrupt.ch + + This file may be licensed under the terms of of the + GNU General Public License Version 2 (the ``GPL''). + + Software distributed under the License is distributed + on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either + express or implied. See the GPL for the specific language + governing rights and limitations. + + You should have received a copy of the GPL along with this + program. If not, go to http://www.gnu.org/licenses/gpl.html + or write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + ============================================================================== + */ + + +#if !defined(__AllPassFilter_h) +#define __AllPassFilter_h + +#include "Math.h" +#include "AudioUtils.h" + +class AllPassFilter +{ +private: + float delay, gain; + float* buffer; + int bufferLength, writePtr, readPtr1, readPtr2; + float z1; + + AudioUtils audioUtils; + +public: + // delay times in milliseconds + AllPassFilter(float delayTime, float feedbackGain, long samplingRate) + { + //OutputDebugString("start init allPass"); + gain = feedbackGain; + delay = delayTime; + + bufferLength = (int)(delay * samplingRate / 1000.0f); + bufferLength = audioUtils.getNextNearPrime(bufferLength); + buffer = new float[bufferLength]; + + //zero out the buffer (create silence) + for (int i = 0; i < bufferLength; i++) + buffer[i] = 0.0f; + + writePtr = readPtr1 = readPtr2 = 0; + z1 = 0.0f; + //OutputDebugString("end init allPass"); + } + + ~AllPassFilter() + { + delete buffer; + } + + // all values [0..1] + inline float processInterpolated(float input, float delayLength, float diffuse, bool negative) + { + // dynamic interpolated + float offset = (bufferLength - 2.0f) * delayLength + 1.0f; + readPtr1 = writePtr - (int)floorf(offset); + + if (readPtr1 < 0) + readPtr1 += bufferLength; + + readPtr2 = readPtr1 - 1; + if (readPtr2 < 0) + readPtr2 += bufferLength; + + // interpolate, see paper: http://www.stanford.edu/~dattorro/EffectDesignPart2.pdf + float frac = offset - (int)floorf(offset); + float temp = buffer[readPtr2] + buffer[readPtr1] * (1-frac) - (1-frac) * z1; + z1 = temp; + + float output; + if (!negative) + { + buffer[writePtr] = diffuse * gain * temp + input; + output = temp - diffuse * gain * buffer[writePtr]; + } + else + { + buffer[writePtr] = diffuse * gain * temp - input; + output = temp + diffuse * gain * buffer[writePtr]; + } + + if (++writePtr >= bufferLength) + writePtr = 0; + + return output; + } + + inline float process(float input, float diffuse) + { + float temp = buffer[readPtr1]; + buffer[readPtr1] = diffuse * gain * temp + input; + float output = temp - diffuse * gain * buffer[readPtr1]; + + if (++readPtr1 >= bufferLength) + readPtr1 = 0; + + return output; + } + + inline float process(float input) + { + float temp = buffer[readPtr1]; + buffer[readPtr1] = gain * temp + input; + float output = temp - gain * buffer[readPtr1]; + + if (++readPtr1 >= bufferLength) + readPtr1 = 0; + + return output; + } +}; +#endif \ No newline at end of file diff --git a/tal-reverb-2-juce/src/Engine/AudioUtils.h b/tal-reverb-2-juce/src/Engine/AudioUtils.h new file mode 100644 index 0000000..51f489f --- /dev/null +++ b/tal-reverb-2-juce/src/Engine/AudioUtils.h @@ -0,0 +1,142 @@ +/* +============================================================================== +This file is part of Tal-Dub-III by Patrick Kunz. + +Copyright(c) 2005-2009 Patrick Kunz, TAL +Togu Audio Line, Inc. +http://kunz.corrupt.ch + +This file may be licensed under the terms of of the +GNU General Public License Version 2 (the ``GPL''). + +Software distributed under the License is distributed +on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either +express or implied. See the GPL for the specific language +governing rights and limitations. + +You should have received a copy of the GPL along with this +program. If not, go to http://www.gnu.org/licenses/gpl.html +or write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +============================================================================== +*/ + + +#if !defined(__AudioUtils_h) +#define __AudioUtils_h + +#include "Math.h" + +class AudioUtils +{ +private: + +public: + AudioUtils() + { + } + + ~AudioUtils() + { + } + + float getLogScaledValueInDecibel(float inputValue, float maxValue) + { + float logScaled = getLogScaledVolume(inputValue, maxValue); + return getValueInDecibel(logScaled); + } + + float getLogScaledValueInDecibelFilter(float inputValue, float maxValue) + { + float logScaled = getLogScaledVolume(inputValue, maxValue); + return getValueInDecibelFilter(logScaled); + } + + // max value unscalled + float getLogScaledVolume(float inputValue, float maxValue) + { + return (expf(inputValue * maxValue * logf(20.0f)) - 1.0f) / 19.0f; + } + + // max value unscalled + float getLogScaledValue(float inputValue) + { + // have to return a value between 0..1 + return (expf(inputValue * logf(20.0f)) - 1.0f) / 19.0f; + } + + float getLogScaledFrequency(float inputValue) + { + return 100.0f + getLogScaledValue(inputValue) * 9900.0f; + } + + float getLogScaledValueInverted(float inputValue) + { + // have to return a value between 0..1 + inputValue = 1.0f - inputValue; + inputValue = (expf(inputValue * logf(20.0f)) - 1.0f) / 19.0f; + return 1.0f - inputValue; + } + + // input value >= 0 + float getValueInDecibel(float inputValue) + { + if (inputValue <= 0) + { + return -96.0f; + } + else + { + // 1.0 --> 0dB + return 20.0f * log10f(inputValue / 1.0f); + } + } + + float getValueInDecibelFilter(float inputValue) + { + if (inputValue <= 0) + { + return -18.0f; + } + else + { + // 1.0 --> 0dB + return 5.0f * log10f(inputValue / 1.0f); + } + } + + inline float tanhApp(float x) + { + // Original + //return tanh(x); + + // Approx + x*= 2.0f; + float a= fabs(x); + float b= 6.0f + a*(3.0f + a); // 6, 3 + return (x * b)/(a * b + 12.0f); + } + + inline int getNextNearPrime(int value) + { + while (!isPrime(value)) value++; + return value; + } + + inline bool isPrime(int value) + { + bool answer = true; + if (value == 0) value = 1; + for (int i = 2; i <= sqrtf((float)value) ; i++) + { + if (value % i == 0) + { + answer = false; + break; + } + } + return answer; + } +}; +#endif + diff --git a/tal-reverb-2-juce/src/Engine/CombFilter.h b/tal-reverb-2-juce/src/Engine/CombFilter.h new file mode 100644 index 0000000..517930e --- /dev/null +++ b/tal-reverb-2-juce/src/Engine/CombFilter.h @@ -0,0 +1,119 @@ +/* + ============================================================================== + This file is part of Tal-Reverb by Patrick Kunz. + + Copyright(c) 2005-2009 Patrick Kunz, TAL + Togu Audio Line, Inc. + http://kunz.corrupt.ch + + This file may be licensed under the terms of of the + GNU General Public License Version 2 (the ``GPL''). + + Software distributed under the License is distributed + on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either + express or implied. See the GPL for the specific language + governing rights and limitations. + + You should have received a copy of the GPL along with this + program. If not, go to http://www.gnu.org/licenses/gpl.html + or write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + ============================================================================== + */ + + +#if !defined(__CombFilter_h) +#define __CombFilter_h + +#include "Math.h" +#include "AudioUtils.h" + +class CombFilter +{ +private: + float gain, minDamp; + float* buffer; + int readPtr1, readPtr2, writePtr; + float z1; + int bufferLengthDelay; + float filterStore; + + AudioUtils audioUtils; + +public: + // delay times in milliseconds + CombFilter(float delayTime, float minDamp, long samplingRate) + { + //OutputDebugString("start init combfilter"); + bufferLengthDelay = (int)(delayTime * samplingRate / 1000); + bufferLengthDelay = audioUtils.getNextNearPrime(bufferLengthDelay); + buffer = new float[bufferLengthDelay]; + + // Print out samples + //File *file = new File("d:/delaytimes.txt"); + //String myXmlDoc = String((const int)bufferLengthDelay) << "\n"; + //file->appendText(myXmlDoc); + + //zero out the buffer (silence) + for (int i = 0; i < bufferLengthDelay; i++) + buffer[i] = 0.0f; + + writePtr = 0; + + //set read pointer to start of buffer + readPtr1 = 0; + z1 = filterStore = 0.0f; + this->minDamp = minDamp; + //OutputDebugString("end init combfilter"); + } + + ~CombFilter() + { + delete buffer; + } + + // delayIntensity [0..1] + inline float processInterpolated(float input, float damp, float feedback, float delay) + { + float offset = (bufferLengthDelay - 2) * delay + 1.0f; + readPtr1 = writePtr - (int)floorf(offset); + + if (readPtr1 < 0) + readPtr1 += bufferLengthDelay; + + readPtr2 = readPtr1 - 1; + if (readPtr2 < 0) + readPtr2 += bufferLengthDelay; + + // interpolate, see paper: http://www.stanford.edu/~dattorro/EffectDesignPart2.pdf + float frac = offset - (int)floorf(offset); + float output = buffer[readPtr2] + buffer[readPtr1] * (1-frac) - (1-frac) * z1; + z1 = output; + + damp = minDamp * damp; + filterStore = output * (1.0f - damp) + filterStore * damp; + buffer[writePtr] = input + (filterStore * feedback); + + if (++writePtr >= bufferLengthDelay) + writePtr = 0; + return output; + } + + inline float process(float input, float damp, float feedback, float delay) + { + float offset = (bufferLengthDelay - 2) * delay + 1.0f; + readPtr1 = writePtr - (int)floorf(offset); + + if (readPtr1 < 0) + readPtr1 += bufferLengthDelay; + + float output = buffer[readPtr1]; + filterStore = output * (1.0f - damp) + filterStore * damp; + buffer[writePtr] = input + (filterStore * feedback); + + if (++writePtr >= bufferLengthDelay) + writePtr = 0; + return output; + } +}; +#endif diff --git a/tal-reverb-2-juce/src/Engine/Filter.h b/tal-reverb-2-juce/src/Engine/Filter.h new file mode 100644 index 0000000..efb94b2 --- /dev/null +++ b/tal-reverb-2-juce/src/Engine/Filter.h @@ -0,0 +1,89 @@ +/* + ============================================================================== + This file is part of Tal-Reverb by Patrick Kunz. + + Copyright(c) 2005-2009 Patrick Kunz, TAL + Togu Audio Line, Inc. + http://kunz.corrupt.ch + + This file may be licensed under the terms of of the + GNU General Public License Version 2 (the ``GPL''). + + Software distributed under the License is distributed + on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either + express or implied. See the GPL for the specific language + governing rights and limitations. + + You should have received a copy of the GPL along with this + program. If not, go to http://www.gnu.org/licenses/gpl.html + or write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + ============================================================================== + */ + + +#if !defined(__Filter_h) +#define __Filter_h + +#include "Math.h" + +class Filter +{ +private: + float f, k, p, scale, r, x; + float y1, y2, y3, y4, oldx, oldy1, oldy2, oldy3; + float fCutoff, fActualCutoff; + float Pi; + + float sampleRateFactor; + +public: + + Filter(float sampleRate) + { + Pi = 3.141592653f; + y1 = y2 = y3 = y4 = oldx = oldy1 = oldy2 = oldy3 = 0.0f; + + if (sampleRate <= 0.0f) sampleRate = 44100.0f; + + sampleRateFactor= 44100.0f / sampleRate; + if (sampleRateFactor > 1.0f) + sampleRateFactor = 1.0f; + + fActualCutoff = -1.0f; + } + + inline float process(float input, float fCutoff, float fRes, bool highPass) + { + if (fCutoff != fActualCutoff) + { + fActualCutoff = fCutoff; + fCutoff *= sampleRateFactor; + updateValues(fCutoff * fCutoff); + } + x = input; + + // Four cascaded onepole filters (bilinear transform) + y1 = (x + oldx) * p - k * y1; + y2 = (y1 + oldy1) * p - k * y2; + + // Save values + oldx = x; + oldy1 = y1; + if (highPass) input = input - y2; + else input = y2; + return input; + } + + void updateValues(float fCutoff) + { + // Filter section MOOG VCF + // CSound source code, Stilson/Smith CCRMA paper. + f = fCutoff; // [0 - 1] + k = 3.6f * f - 1.6f * f * f - 1.0f; // (Empirical tunning) /// !!! original (convex) + + p = (k + 1.0f) * 0.5f; // scale [0, 1] + scale = expf((1.0f - p) * 1.386249f); // original + } +}; +#endif diff --git a/tal-reverb-2-juce/src/Engine/HighShelf.h b/tal-reverb-2-juce/src/Engine/HighShelf.h new file mode 100644 index 0000000..2509e4f --- /dev/null +++ b/tal-reverb-2-juce/src/Engine/HighShelf.h @@ -0,0 +1,112 @@ +/*----------------------------------------------------------------------------- + +Kunz Patrick 30.04.2007 + +A one pole low pass filter. + +-----------------------------------------------------------------------------*/ + +#if !defined(__HighShelf_h) +#define __HighShelf_h + +#include "Math.h" + +class HighShelf +{ +public: + int filterDecibel; + + float sampleRate; + + float a0, a1, a2; + float b0, b1, b2; + + float x0, x1, x2; + float y1, y2; + + float outSample; + + float a, w0, q, s, alpha; + float cosValue, sqrtValue; + float vsa; // Very small amount (Denormal Fix) + + float dBgain, freq; + + + HighShelf(float sampleRate, int filterDecibel) + { + this->sampleRate = sampleRate; + this->filterDecibel = filterDecibel; + + a0 = a1 = a2 = 0.0f; + b0 = b1 = b2 = 0.0f; + + x0 = x1 = x2 = 0.0f; + y1 = y2 = 0.0f; + + q = dBgain = freq = 0.0f; + + s = 2.0f; + vsa= (1.0f/4294967295.0f); // Very small amount (Denormal Fix) + } + + // gain [0..1], q[0..1], freq[0..44100] + inline void tick(float *inSample, float freq, float q, float gain) + { + gain = filterDecibel - (1.0f - gain) * filterDecibel * 2.0f; + calcCoefficients(freq, q, gain); + + outSample = b0*x0 + b1*x1 + b2*x2 - a1*y1 - a2*y2; + outSample = b0*x0 + b1*x1 + b2*x2 - a1*y1 - a2*y2; + updateHistory(*inSample, outSample); + *inSample = outSample; + } + + inline void calcCoefficients(float freq, float q, float dBgain) + { + if (this->q != q || this->dBgain != dBgain || this->freq != freq) + { + this->dBgain = dBgain; + this->q = q; + this->freq = freq; + w0 = 2.0f * 3.141592653589793f * freq / sampleRate; + a = sqrtf(pow(10, dBgain/20.0f)); + alpha = sinf(w0)/(2.0f*q); + q = 1.0f / sqrt((a + 1.0f/a)*(1.0f/s - 1.0f) + 2.0f); + + cosValue = cosf(w0); + sqrtValue = sqrtf(a); + } + b0 = a * ((a + 1.0f) + (a - 1.0f) * cosValue + 2.0f * sqrtValue * alpha ); + b1 = -2.0f * a * ((a - 1.0f) + (a + 1.0f) * cosValue ); + b2 = a * ((a + 1.0f) + (a - 1.0f) * cosValue - 2.0f * sqrtValue * alpha ); + a0 = (a + 1.0f) - (a - 1.0f) * cosValue + 2.0f * sqrtValue * alpha; + a1 = 2.0f * ((a - 1.0f) - (a + 1.0f) * cosValue ); + a2 = (a + 1.0f) - (a - 1.0f) * cosValue - 2.0f * sqrtValue * alpha; + + a0 = 1.0f/a0; + + b0 *= a0; + b1 *= a0; + b2 *= a0; + a1 *= a0; + a2 *= a0; + } + + inline void updateHistory(float inSample, float outSample) + { + x0 = saturate(x1, -0.05f); + x1 = saturate(x2, 0.04f); + x2 = inSample; + + y2 = y1; + y1 = outSample; + } + + inline float saturate(float x, float variation) + { + return x - 0.002f * (x + variation) * x * x; + } +}; + +#endif diff --git a/tal-reverb-2-juce/src/Engine/LowShelf.h b/tal-reverb-2-juce/src/Engine/LowShelf.h new file mode 100644 index 0000000..9bc6548 --- /dev/null +++ b/tal-reverb-2-juce/src/Engine/LowShelf.h @@ -0,0 +1,114 @@ +/*----------------------------------------------------------------------------- + +Kunz Patrick 30.04.2007 + +A one pole low pass filter. + +-----------------------------------------------------------------------------*/ + +#if !defined(__LowShelf_h) +#define __LowShelf_h + +#include "Math.h" + +class LowShelf +{ +public: + int filterDecibel; + + float sampleRate; + + float a0, a1, a2; + float b0, b1, b2; + + float x0, x1, x2; + float y1, y2; + + float outSample; + + float a, w0, q, s, alpha; + float cosValue, sqrtValue; + float vsa; // Very small amount (Denormal Fix) + + float dBgain, freq; + + float random; + + LowShelf(float sampleRate, int filterDecibel) + { + this->sampleRate = sampleRate; + this->filterDecibel = filterDecibel; + + a0 = a1 = a2 = 0.0f; + b0 = b1 = b2 = 0.0f; + + x0 = x1 = x2 = 0.0f; + y1 = y2 = 0.0f; + + q = dBgain = freq = 0.0f; + + s = 1.0f; + vsa= (1.0f/4294967295.0f); // Very small amount (Denormal Fix) + } + + // gain [0..1], q[0..1], freq[0..44100] + inline void tick(float *inSample, float freq, float q, float gain) + { + gain = filterDecibel - (1.0f - gain) * filterDecibel * 2.0f; + calcCoefficients(freq, q, gain); + + outSample = b0*x0 + b1*x1 + b2*x2 - a1*y1 - a2*y2; + outSample = b0*x0 + b1*x1 + b2*x2 - a1*y1 - a2*y2; + updateHistory(*inSample, outSample); + *inSample = outSample; + } + + inline void calcCoefficients(float freq, float q, float dBgain) + { + if (this->q != q || this->dBgain != dBgain || this->freq != freq) + { + this->dBgain = dBgain; + this->q = q; + this->freq = freq; + w0 = 2.0f * 3.141592653589793f * freq / sampleRate; + + a = sqrtf(pow(10, dBgain/20.0f)); + alpha = sinf(w0)/(2.0f*q); + q = 1.0f / sqrt((a + 1.0f/a)*(1.0f/s - 1.0f) + 2.0f); + + cosValue = cosf(w0); + sqrtValue = sqrtf(a); + } + b0 = a * ((a + 1.0f) - (a - 1.0f) * cosValue + 2.0f * sqrtValue * alpha ); + b1 = 2.0f * a * ((a - 1.0f) - (a + 1.0f) * cosValue ); + b2 = a * ((a + 1.0f) - (a - 1.0f) * cosValue - 2.0f * sqrtValue * alpha ); + a0 = (a + 1.0f) + (a - 1.0f) * cosValue + 2.0f * sqrtValue * alpha; + a1 = - 2.0f * ((a - 1.0f) + (a + 1.0f) * cosValue ); + a2 = (a + 1.0f) + (a - 1.0f) * cosValue - 2.0f * sqrtValue * alpha; + + a0 = 1.0f/a0; + + b0 *= a0; + b1 *= a0; + b2 *= a0; + a1 *= a0; + a2 *= a0; + } + + inline void updateHistory(float inSample, float outSample) + { + x0 = saturate(x1, -0.08f); + x1 = saturate(x2, 0.05f); + x2 = saturate(inSample, 0.01f); + + y2 = y1; + y1 = outSample; + } + + inline float saturate(float x, float variation) + { + return x - 0.002f * (x + variation) * x * x; + } +}; + +#endif diff --git a/tal-reverb-2-juce/src/Engine/NoiseGenerator.h b/tal-reverb-2-juce/src/Engine/NoiseGenerator.h new file mode 100644 index 0000000..083fe79 --- /dev/null +++ b/tal-reverb-2-juce/src/Engine/NoiseGenerator.h @@ -0,0 +1,99 @@ +/* + ============================================================================== + This file is part of Tal-Reverb by Patrick Kunz. + + Copyright(c) 2005-2009 Patrick Kunz, TAL + Togu Audio Line, Inc. + http://kunz.corrupt.ch + + This file may be licensed under the terms of of the + GNU General Public License Version 2 (the ``GPL''). + + Software distributed under the License is distributed + on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either + express or implied. See the GPL for the specific language + governing rights and limitations. + + You should have received a copy of the GPL along with this + program. If not, go to http://www.gnu.org/licenses/gpl.html + or write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + ============================================================================== + */ + + +#if !defined(__NoiseGenerator_h) +#define __NoiseGenerator_h + +#include + +class NoiseGenerator +{ +public: + int randSeed; + float actualValue; + float deltaValue; + + float actualValueFiltered; + float filterFactor; + float filterFactorInversePlusOne; + + float invertedRandomMax; + + NoiseGenerator(int sampleRate) + { + // No sample rate conversion here + filterFactor = 5000.0f; + filterFactorInversePlusOne = 1.0f / (filterFactor + 1.0f); + + actualValue = 0.0f; + actualValueFiltered = 0.0f; + deltaValue = 0.0f; + + getNextRandomPeriod(1.0f); + + randSeed = 1; + } + + // returns a random value [0..1] + inline float tickNoise() + { + // return ((float)(((randSeed = randSeed * 214013L + 2531011L) >> 16) & 0x7fff)/RAND_MAX); + + randSeed *= 16807; + return (float)(randSeed & 0x7FFFFFFF) * 4.6566129e-010f; + //return (float)randSeed * 4.6566129e-010f; + } + + // returns a lp filtered random value [0..1] + inline float tickFilteredNoise() + { + if (actualValue >= 1.0f) + { + getNextRandomPeriod(-1.0f); + } + if (actualValue <= 0.0f) + { + getNextRandomPeriod(1.0f); + } + actualValue += deltaValue; + + // Exponential averager + actualValueFiltered = (actualValueFiltered * filterFactor + actualValue) * filterFactorInversePlusOne; + return actualValueFiltered; + } + + inline void getNextRandomPeriod(float sign) + { + int randomPeriod = (int)(tickNoise() * 22768.0f) + 22188; + deltaValue = 1.0f / (float)randomPeriod; + deltaValue *= sign; + } + + inline float tickFilteredNoiseFast() + { + actualValueFiltered = (actualValueFiltered * 1000.0f + tickNoise()) / 1001.0f; + return actualValueFiltered; + } +}; +#endif diff --git a/tal-reverb-2-juce/src/Engine/ParamChangeUtil.h b/tal-reverb-2-juce/src/Engine/ParamChangeUtil.h new file mode 100644 index 0000000..68e4265 --- /dev/null +++ b/tal-reverb-2-juce/src/Engine/ParamChangeUtil.h @@ -0,0 +1,53 @@ +/* + ============================================================================== + This file is part of Tal-Reverb by Patrick Kunz. + + Copyright(c) 2005-2009 Patrick Kunz, TAL + Togu Audio Line, Inc. + http://kunz.corrupt.ch + + This file may be licensed under the terms of of the + GNU General Public License Version 2 (the ``GPL''). + + Software distributed under the License is distributed + on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either + express or implied. See the GPL for the specific language + governing rights and limitations. + + You should have received a copy of the GPL along with this + program. If not, go to http://www.gnu.org/licenses/gpl.html + or write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + ============================================================================== + */ + + +#if !defined(__ParamChangeUtil_h) +#define __ParamChangeUtil_h + +#include "Math.h" + +// Low pass filter for gentle parameter changes +class ParamChangeUtil +{ +private: + float currentValue; + float paramWeight; + float paramWeigthInverse; + +public: + // param weight should be bigger than 1 + ParamChangeUtil(float sampleRate, float paramWeight) + { + currentValue = 0; + this->paramWeight = paramWeight * sampleRate / 44100.0f; + paramWeigthInverse = 1.0f / (this->paramWeight + 1.0f); + } + + inline float tick(float input) + { + currentValue = (paramWeight * currentValue + input) * paramWeigthInverse; + return currentValue; + } +}; +#endif diff --git a/tal-reverb-2-juce/src/Engine/Params.h b/tal-reverb-2-juce/src/Engine/Params.h new file mode 100644 index 0000000..e4f0b54 --- /dev/null +++ b/tal-reverb-2-juce/src/Engine/Params.h @@ -0,0 +1,76 @@ +/* + ============================================================================== + This file is part of Tal-Reverb by Patrick Kunz. + + Copyright(c) 2005-2009 Patrick Kunz, TAL + Togu Audio Line, Inc. + http://kunz.corrupt.ch + + This file may be licensed under the terms of of the + GNU General Public License Version 2 (the ``GPL''). + + Software distributed under the License is distributed + on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either + express or implied. See the GPL for the specific language + governing rights and limitations. + + You should have received a copy of the GPL along with this + program. If not, go to http://www.gnu.org/licenses/gpl.html + or write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + ============================================================================== + */ + + +#ifndef Params_H +#define Params_H + +/*----------------------------------------------------------------------------- + +Kunz Patrick + +Parameter table + +-----------------------------------------------------------------------------*/ + +enum SYNTHPARAMETERS +{ + // Controllable values [0.0..1.0 + UNKNOWN= 0, + DRY, + WET, + + DECAYTIME, + PREDELAY, + + LOWSHELFFREQUENCY, + HIGHSHELFFREQUENCY, + PEAKFREQUENCY, + + LOWSHELFGAIN, + HIGHSHELFGAIN, + PEAKGAIN, + + STEREO, + REALSTEREOMODE, + + // Number of controllable synth paramenters + NUMPARAM, + NUMPROGRAMS = 10, +}; + +class Params +{ + public: + float *parameters; + + Params() { + parameters= new float[NUMPARAM]; + + // Zero program values + for(int j=0; j +#include "Math.h" + +class PeakEq +{ +public: + int filterDecibel; + + float sampleRate; + + float a0, a1, a2; + float b0, b1, b2; + + float x0, x1, x2; + float y1, y2; + + float outSample; + + float a, w0, q, s, alpha; + float cosValue, sqrtValue; + float vsa; // Very small amount (Denormal Fix) + + float dBgain, freq; + + + PeakEq(float sampleRate, int filterDecibel) + { + this->sampleRate = sampleRate; + this->filterDecibel = filterDecibel; + + a0 = a1 = a2 = 0.0f; + b0 = b1 = b2 = 0.0f; + + x0 = x1 = x2 = 0.0f; + y1 = y2 = 0.0f; + + q = dBgain = freq = 0.0f; + + s = 2.0f; + vsa= (1.0f/4294967295.0f); // Very small amount (Denormal Fix) + } + + // gain [0..1], q[0..1], freq[0..44100] + inline void tick(float *inSample, float freq, float q, float gain) + { + gain = filterDecibel - (1.0f - gain) * filterDecibel * 2.0f; + calcCoefficients(freq, q, gain); + + outSample = b0*x0 + b1*x1 + b2*x2 - a1*y1 - a2*y2; + outSample = b0*x0 + b1*x1 + b2*x2 - a1*y1 - a2*y2; + updateHistory(*inSample, outSample); + *inSample = outSample; + } + + inline void calcCoefficients(float freq, float q, float dBgain) + { + if (this->q != q || this->dBgain != dBgain || this->freq != freq) + { + this->dBgain = dBgain; + this->q = q; + this->freq = freq; + w0 = 2.0f * 3.141592653589793f * freq / sampleRate; + a = sqrtf(pow(10, dBgain/20.0f)); + alpha = sinf(w0)*sinhf( logf(2.0f)/2.0f * q * w0/sinf(w0)); + // q = 1.0f / sqrt((a + 1.0f/a)*(1.0f/s - 1.0f) + 2.0f); + + cosValue = cosf(w0); + sqrtValue = sqrtf(a); + } + + b0 = 1.0f + alpha * a; + b1 = -2.0f * cosValue; + b2 = 1.0f - alpha * a; + a0 = 1.0f + alpha / a; + a1 = -2.0f * cosValue; + a2 = 1.0f - alpha / a; + + a0 = 1.0f/a0; + + b0 *= a0; + b1 *= a0; + b2 *= a0; + a1 *= a0; + a2 *= a0; + } + + inline void updateHistory(float inSample, float outSample) + { + x0 = saturate(x1, -0.05f); + x1 = saturate(x2, 0.04f); + x2 = inSample; + + y2 = y1; + y1 = outSample; + } + + inline float saturate(float x, float variation) + { + return x - 0.002f * (x + variation) * x * x; + } +}; + +#endif diff --git a/tal-reverb-2-juce/src/Engine/Reverb.h b/tal-reverb-2-juce/src/Engine/Reverb.h new file mode 100644 index 0000000..a70de5e --- /dev/null +++ b/tal-reverb-2-juce/src/Engine/Reverb.h @@ -0,0 +1,308 @@ +/* + ============================================================================== + This file is part of Tal-Reverb by Patrick Kunz. + + Copyright(c) 2005-2009 Patrick Kunz, TAL + Togu Audio Line, Inc. + http://kunz.corrupt.ch + + This file may be licensed under the terms of of the + GNU General Public License Version 2 (the ``GPL''). + + Software distributed under the License is distributed + on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either + express or implied. See the GPL for the specific language + governing rights and limitations. + + You should have received a copy of the GPL along with this + program. If not, go to http://www.gnu.org/licenses/gpl.html + or write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + ============================================================================== + */ + + +#if !defined(__TalReverb_h) +#define __TalReverb_h + +#include "AllPassFilter.h" +#include "CombFilter.h" +#include "NoiseGenerator.h" +#include "Filter.h" +#include "Math.h" +#include "AudioUtils.h" +#include "TalEq.h" + +class TalReverb +{ +private: + static const int DELAY_LINES_COMB = 4; + static const int DELAY_LINES_ALLPASS = 5; + + static const int MAX_PRE_DELAY_MS = 1000; + float* reflectionGains; + float* reflectionDelays; + + CombFilter *combFiltersPreDelayL; + CombFilter *combFiltersPreDelayR; + + CombFilter **combFiltersL; + CombFilter **combFiltersR; + NoiseGenerator **noiseGeneratorAllPassL; + NoiseGenerator **noiseGeneratorAllPassR; + NoiseGenerator **noiseGeneratorDelayL; + NoiseGenerator **noiseGeneratorDelayR; + NoiseGenerator **diffusionL; + NoiseGenerator **diffusionR; + + AllPassFilter **allPassFiltersL; + AllPassFilter **allPassFiltersR; + + AllPassFilter *preAllPassFilterL; + AllPassFilter *preAllPassFilterR; + + AllPassFilter *postAllPassFilterL; + AllPassFilter *postAllPassFilterR; + + TalEq* talEqL; + TalEq* talEqR; + + float decayTime; + float preDelayTime; + bool stereoMode; + float modulationIntensity; + + float outL; + float outR; + + AudioUtils audioUtils; + +public: + TalReverb(int sampleRate) + { + createDelaysAndCoefficients(DELAY_LINES_COMB + DELAY_LINES_ALLPASS, 82.0f); + + combFiltersPreDelayL = new CombFilter((float)MAX_PRE_DELAY_MS, 0.0f, sampleRate); + combFiltersPreDelayR = new CombFilter((float)MAX_PRE_DELAY_MS, 0.0f, sampleRate); + + combFiltersL = new CombFilter *[DELAY_LINES_COMB]; + combFiltersR = new CombFilter *[DELAY_LINES_COMB]; + noiseGeneratorAllPassL = new NoiseGenerator *[DELAY_LINES_COMB]; + noiseGeneratorAllPassR = new NoiseGenerator *[DELAY_LINES_COMB]; + noiseGeneratorDelayL = new NoiseGenerator *[DELAY_LINES_COMB]; + noiseGeneratorDelayR = new NoiseGenerator *[DELAY_LINES_COMB]; + diffusionL = new NoiseGenerator *[DELAY_LINES_COMB]; + diffusionR = new NoiseGenerator *[DELAY_LINES_COMB]; + + float stereoSpreadValue = 0.008f; + float stereoSpreadSign = 1.0f; + for (int i = 0; i < DELAY_LINES_COMB; i++) + { + float stereoSpreadFactor = 1.0f + stereoSpreadValue; + if (stereoSpreadSign > 0.0f) + { + combFiltersL[i] = new CombFilter(reflectionDelays[i] * stereoSpreadFactor, reflectionGains[i], sampleRate); + combFiltersR[i] = new CombFilter(reflectionDelays[i], reflectionGains[i], sampleRate); + } + else + { + combFiltersL[i] = new CombFilter(reflectionDelays[i], reflectionGains[i], sampleRate); + combFiltersR[i] = new CombFilter(reflectionDelays[i] * stereoSpreadFactor, reflectionGains[i], sampleRate); + } + stereoSpreadSign *= -1.0f; + noiseGeneratorAllPassL[i] = new NoiseGenerator(sampleRate); + noiseGeneratorAllPassR[i] = new NoiseGenerator(sampleRate); + noiseGeneratorDelayL[i] = new NoiseGenerator(sampleRate); + noiseGeneratorDelayR[i] = new NoiseGenerator(sampleRate); + diffusionL[i] = new NoiseGenerator(sampleRate); + diffusionR[i] = new NoiseGenerator(sampleRate); + } + + preAllPassFilterL = new AllPassFilter(20.0f, 0.68f, sampleRate); + preAllPassFilterR = new AllPassFilter(20.0f, 0.68f, sampleRate); + + postAllPassFilterL = new AllPassFilter(200.0f, 0.68f, sampleRate); + postAllPassFilterR = new AllPassFilter(200.0f, 0.68f, sampleRate); + + allPassFiltersL = new AllPassFilter *[DELAY_LINES_ALLPASS]; + allPassFiltersR = new AllPassFilter *[DELAY_LINES_ALLPASS]; + for (int i = 0; i < DELAY_LINES_ALLPASS; i++) + { + allPassFiltersL[i] = new AllPassFilter(reflectionDelays[i + DELAY_LINES_COMB - 1] * 0.105f, 0.68f, sampleRate); + allPassFiltersR[i] = new AllPassFilter(reflectionDelays[i + DELAY_LINES_COMB - 1] * 0.1f, 0.68f, sampleRate); + } + + talEqL = new TalEq(sampleRate); + talEqR = new TalEq(sampleRate); + + decayTime = 0.5f; + preDelayTime = 0.0f; + modulationIntensity = 0.12f; + stereoMode = false; + + outL = 0.0f; + outR = 0.0f; + } + + ~TalReverb() + { + delete[] reflectionGains; + delete[] reflectionDelays; + + delete combFiltersPreDelayL; + delete combFiltersPreDelayR; + + for (int i = 0; i < DELAY_LINES_COMB; i++) delete combFiltersL[i]; + delete[] combFiltersL; + for (int i = 0; i < DELAY_LINES_COMB; i++) delete combFiltersR[i]; + delete[] combFiltersR; + + for (int i = 0; i < DELAY_LINES_ALLPASS; i++) delete allPassFiltersL[i]; + delete[] allPassFiltersL; + for (int i = 0; i < DELAY_LINES_ALLPASS; i++) delete allPassFiltersR[i]; + delete[] allPassFiltersR; + + for (int i = 0; i < DELAY_LINES_COMB; i++) delete noiseGeneratorAllPassL[i]; + delete[] noiseGeneratorAllPassL; + for (int i = 0; i < DELAY_LINES_COMB; i++) delete noiseGeneratorAllPassR[i]; + delete[] noiseGeneratorAllPassR; + for (int i = 0; i < DELAY_LINES_COMB; i++) delete noiseGeneratorDelayL[i]; + delete[] noiseGeneratorDelayL; + for (int i = 0; i < DELAY_LINES_COMB; i++) delete noiseGeneratorDelayR[i]; + delete[] noiseGeneratorDelayR; + + for (int i = 0; i < DELAY_LINES_COMB; i++) delete diffusionL[i]; + delete[] diffusionL; + for (int i = 0; i < DELAY_LINES_COMB; i++) delete diffusionR[i]; + delete[] diffusionR; + + delete preAllPassFilterL; + delete preAllPassFilterR; + + delete postAllPassFilterL; + delete postAllPassFilterR; + + delete talEqL; + delete talEqR; + } + + + void setDecayTime(float decayTime) + { + this->decayTime = audioUtils.getLogScaledValueInverted(decayTime) * 0.99f; + } + + void setPreDelay(float preDelayTime) + { + this->preDelayTime = audioUtils.getLogScaledValue(preDelayTime); + } + + void setStereoMode(bool stereoMode) + { + this->stereoMode = stereoMode; + } + + void setLowShelfGain(float lowShelfGain) + { + talEqL->setLowShelfGain(lowShelfGain); + talEqR->setLowShelfGain(lowShelfGain); + } + + void setHighShelfGain(float highShelfGain) + { + talEqL->setHighShelfGain(highShelfGain); + talEqR->setHighShelfGain(highShelfGain); + } + + void setLowShelfFrequency(float lowShelfFrequency) + { + talEqL->setLowShelfFrequency(lowShelfFrequency); + talEqR->setLowShelfFrequency(lowShelfFrequency); + } + + void setHighShelfFrequency(float highShelfFrequency) + { + talEqL->setHighShelfFrequency(highShelfFrequency); + talEqR->setHighShelfFrequency(highShelfFrequency); + } + + void setPeakFrequency(float peakFrequency) + { + talEqL->setPeakFrequency(peakFrequency); + talEqR->setPeakFrequency(peakFrequency); + } + + void setPeakGain(float peakGain) + { + talEqL->setPeakGain(peakGain); + talEqR->setPeakGain(peakGain); + } + + // All input values [0..1] + inline void process(float* sampleL, float* sampleR) + { + float revR; + float revL; + + if (!stereoMode) + { + revL = (*sampleL + *sampleR) * 0.25f; + revL = combFiltersPreDelayL->process(revL, 0.0f, 0.0f, preDelayTime); + talEqL->process(&revL); + revR = revL; + } + else + { + revL = combFiltersPreDelayL->process(*sampleL * 0.5f, 0.0f, 0.0f, preDelayTime); + revR = combFiltersPreDelayL->process(*sampleR * 0.5f, 0.0f, 0.0f, preDelayTime); + talEqL->process(&revL); + talEqR->process(&revR); + } + + // ----------------- Comb Filter -------------------- + outL = 0.0f; + outR = 0.0f; + + float scaledRoomSize = decayTime * 0.998f; + float sign = 1.0f; + for (int i = 0; i < DELAY_LINES_COMB; i++) + { + outL += sign * combFiltersL[i]->processInterpolated(revL, diffusionL[i]->tickFilteredNoiseFast() * 0.2f, scaledRoomSize, scaledRoomSize + 0.012f * noiseGeneratorDelayL[i]->tickFilteredNoise()); + outR += sign * combFiltersR[i]->processInterpolated(revR, diffusionR[i]->tickFilteredNoiseFast() * 0.2f, scaledRoomSize, scaledRoomSize + 0.012f * noiseGeneratorDelayR[i]->tickFilteredNoise()); + sign *= -1.0f; + } + + // ----------------- Pre AllPass -------------------- + outL += 0.5f * preAllPassFilterL->processInterpolated(revR, 0.6f + 0.4f * noiseGeneratorAllPassL[0]->tickFilteredNoise(), 0.99f, true); + outR += 0.5f * preAllPassFilterR->processInterpolated(revL, 0.6f + 0.4f * noiseGeneratorAllPassR[0]->tickFilteredNoise(), 0.99f, true); + + //// ----------------- Post AllPass -------------------- + outL += 0.45f * postAllPassFilterL->processInterpolated(revL, 0.8f + 0.2f * noiseGeneratorAllPassL[1]->tickFilteredNoise(), 0.7f, true); + outR += 0.45f * postAllPassFilterR->processInterpolated(revR, 0.8f + 0.2f * noiseGeneratorAllPassR[1]->tickFilteredNoise(), 0.7f, true); + + // ----------------- AllPass Filter ------------------ + for (int i = 0; i < DELAY_LINES_ALLPASS; i++) + { + outL = allPassFiltersL[i]->process(outL); + outR = allPassFiltersR[i]->process(outR); + } + + // ----------------- Write to output / Stereo -------- + *sampleL = outL; + *sampleR = outR; + } + + void createDelaysAndCoefficients(int numlines, float delayLength) + { + reflectionDelays = new float[numlines]; + reflectionGains = new float[numlines]; + + float volumeScale = (float)(-3.0 * delayLength / log10f(0.5f)); + for (int n = numlines - 1; n >= 0; n--) + { + reflectionDelays[numlines -1 - n] = delayLength / powf(2.0f, (float)n / numlines); + reflectionGains[numlines -1 - n] = powf(10.0f, - (3.0f * reflectionDelays[numlines -1 - n]) / volumeScale); + } + } +}; +#endif diff --git a/tal-reverb-2-juce/src/Engine/ReverbEngine.h b/tal-reverb-2-juce/src/Engine/ReverbEngine.h new file mode 100644 index 0000000..212d55d --- /dev/null +++ b/tal-reverb-2-juce/src/Engine/ReverbEngine.h @@ -0,0 +1,173 @@ +/* + ============================================================================== + This file is part of Tal-Reverb by Patrick Kunz. + + Copyright(c) 2005-2009 Patrick Kunz, TAL + Togu Audio Line, Inc. + http://kunz.corrupt.ch + + This file may be licensed under the terms of of the + GNU General Public License Version 2 (the ``GPL''). + + Software distributed under the License is distributed + on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either + express or implied. See the GPL for the specific language + governing rights and limitations. + + You should have received a copy of the GPL along with this + program. If not, go to http://www.gnu.org/licenses/gpl.html + or write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + ============================================================================== + */ + + +#if !defined(__ReverbEngine_h) +#define __ReverbEngine_h + +#include "Reverb.h" +#include "AudioUtils.h" +#include "Params.h" +#include "ParamChangeUtil.h" +#include "NoiseGenerator.h" + +class ReverbEngine +{ +public: + float *param; + TalReverb* reverb; + + ParamChangeUtil* dryParamChange; + ParamChangeUtil* wetParamChange; + + NoiseGenerator *noiseGenerator; + + float dry; + float wet; + float stereoWidth; + + AudioUtils audioUtils; + + ReverbEngine(float sampleRate) + { + Params *params= new Params(); + this->param= params->parameters; + initialize(sampleRate); + } + + ~ReverbEngine() + { + delete reverb; + + delete noiseGenerator; + } + + void setDry(float dry) + { + this->dry = audioUtils.getLogScaledVolume(dry, 2.0f); + } + + void setWet(float wet) + { + this->wet = audioUtils.getLogScaledVolume(wet, 2.0f); + } + + void setDecayTime(float decayTime) + { + reverb->setDecayTime(decayTime); + } + + void setPreDelay(float preDelay) + { + reverb->setPreDelay(preDelay); + } + + void setLowShelfGain(float lowShelfGain) + { + reverb->setLowShelfGain(lowShelfGain); + } + + void setHighShelfGain(float highShelfGain) + { + reverb->setHighShelfGain(highShelfGain); + } + + void setLowShelfFrequency(float lowShelfFrequency) + { + reverb->setLowShelfFrequency(lowShelfFrequency); + } + + void setHighShelfFrequency(float highShelfFrequency) + { + reverb->setHighShelfFrequency(highShelfFrequency); + } + + void setPeakFrequency(float peakFrequency) + { + reverb->setPeakFrequency(peakFrequency); + } + + void setPeakGain(float peakGain) + { + reverb->setPeakGain(peakGain); + } + + void setStereoWidth(float stereoWidth) + { + this->stereoWidth = stereoWidth; + } + + void setStereoMode(float stereoMode) + { + reverb->setStereoMode(stereoMode > 0.0f ? true : false); + } + + void setSampleRate(float sampleRate) + { + initialize(sampleRate); + } + + void initialize(float sampleRate) + { + if (sampleRate <= 0) + { + sampleRate = 44100.0f; + } + + reverb = new TalReverb((int)sampleRate); + + dryParamChange = new ParamChangeUtil(sampleRate, 300.0f); + wetParamChange = new ParamChangeUtil(sampleRate, 300.0f); + + noiseGenerator = new NoiseGenerator(sampleRate); + + dry = 1.0f; + wet = 0.5f; + stereoWidth = 1.0f; + } + + void process(float *sampleL, float *sampleR) + { + // avoid cpu spikes + float noise = noiseGenerator->tickNoise() * 0.000000001f; + + *sampleL += noise; + *sampleR += noise; + + float drysampleL = *sampleL; + float drysampleR = *sampleR; + + reverb->process(sampleL, sampleR); + + // Process Stereo + float actualDryValue = dryParamChange->tick(dry); + float wet1 = wet * (stereoWidth * 0.5f + 0.5f); + float wet2 = wet * ((1.0f - stereoWidth) * 0.5f); + float resultL = *sampleL * wet1 + *sampleR * wet2 + drysampleL * actualDryValue; + float resultR = *sampleR * wet1 + *sampleL * wet2 + drysampleR * actualDryValue; + *sampleL = resultL; + *sampleR = resultR; + } +}; +#endif + diff --git a/tal-reverb-2-juce/src/Engine/TalEq.h b/tal-reverb-2-juce/src/Engine/TalEq.h new file mode 100644 index 0000000..83fec4b --- /dev/null +++ b/tal-reverb-2-juce/src/Engine/TalEq.h @@ -0,0 +1,113 @@ +/* + ============================================================================== + This file is part of Tal-Reverb by Patrick Kunz. + + Copyright(c) 2005-2009 Patrick Kunz, TAL + Togu Audio Line, Inc. + http://kunz.corrupt.ch + + This file may be licensed under the terms of of the + GNU General Public License Version 2 (the ``GPL''). + + Software distributed under the License is distributed + on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either + express or implied. See the GPL for the specific language + governing rights and limitations. + + You should have received a copy of the GPL along with this + program. If not, go to http://www.gnu.org/licenses/gpl.html + or write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + ============================================================================== + */ + + +#if !defined(__TalEq_h) +#define __TalEq_h + +#include "HighShelf.h" +#include "LowShelf.h" +#include "PeakEq.h" + +class TalEq +{ +private: + HighShelf *highShelf; + LowShelf *lowShelf; + PeakEq *peakEq; + + float lowShelfGain; + float highShelfGain; + + float lowShelfFrequency; + float highShelfFrequency; + + float peakFrequency; + float peakGain; + + AudioUtils audioUtils; + +public: + TalEq(float sampleRate) + { + initialize(sampleRate); + } + + ~TalEq() + { + } + + void setLowShelfGain(float lowShelfGain) + { + this->lowShelfGain = lowShelfGain * 0.5f; + } + + void setHighShelfGain(float highShelfGain) + { + this->highShelfGain = highShelfGain * 0.5f; + } + + void setPeakGain(float peakGain) + { + this->peakGain = peakGain * 0.5f; + } + + void setLowShelfFrequency(float lowShelfFrequency) + { + this->lowShelfFrequency = audioUtils.getLogScaledFrequency(lowShelfFrequency); + } + + void setHighShelfFrequency(float highShelfFrequency) + { + this->highShelfFrequency = audioUtils.getLogScaledFrequency(highShelfFrequency); + } + + void setPeakFrequency(float peakFrequency) + { + this->peakFrequency = audioUtils.getLogScaledFrequency(peakFrequency); + } + + void initialize(float sampleRate) + { + highShelf = new HighShelf(sampleRate, 18); + lowShelf = new LowShelf(sampleRate, 18); + peakEq = new PeakEq(sampleRate, 18); + + lowShelfGain = 0.5f; + highShelfGain = 0.5f; + peakGain = 0.5f; + + lowShelfFrequency = 1000.0f; + highShelfFrequency = 1000.0f; + peakFrequency = 1000.0f; + } + + void process(float *sample) + { + highShelf->tick(sample, highShelfFrequency, 1.05f, highShelfGain); // 0..0.5 + lowShelf->tick(sample, lowShelfFrequency, 1.05f, lowShelfGain); // 0..0.5 + peakEq->tick(sample, peakFrequency, 1.05f, peakGain); // 0..0.5 + } +}; +#endif + diff --git a/tal-reverb-2-juce/src/FilmStripKnob.h b/tal-reverb-2-juce/src/FilmStripKnob.h new file mode 100644 index 0000000..0563206 --- /dev/null +++ b/tal-reverb-2-juce/src/FilmStripKnob.h @@ -0,0 +1,62 @@ +class FilmStripKnob : public Slider +{ +public: + FilmStripKnob(Image image, const int numFrames, const bool stripIsHorizontal) + : Slider("Film Strip Slider"), + filmStrip(image), + numFrames_(numFrames), + isHorizontal_(stripIsHorizontal) + { + setTextBoxStyle(NoTextBox, 0, 0, 0); + setSliderStyle(RotaryVerticalDrag); + frameHeight = filmStrip.getHeight() / numFrames_; + frameWidth = filmStrip.getWidth(); + setRange(0.0f, 1.0f, 0.001f); + customValueText = false; + valueTextHeight = 10; + } + + void paint(Graphics& g) + { + int value = (getValue() - getMinimum()) / (getMaximum() - getMinimum()) * (numFrames_ - 1); + if(isHorizontal_) { + g.drawImage(filmStrip, 8, 0, getWidth() - 16, getHeight() - valueTextHeight * 2, + value * frameWidth, 0, frameWidth, frameHeight); + } else { + g.drawImage(filmStrip, 8, 0, getWidth() - 16, getHeight() - valueTextHeight * 2, + 0, value * frameHeight, frameWidth, frameHeight); + } + + g.setColour(Colour((const juce::uint8)10, (const juce::uint8)10, (const juce::uint8)10)); + g.fillRoundedRectangle(0, getWidth() + 6 - 16, getWidth(), valueTextHeight + 4, 6.0f); + + g.setColour(Colour((const juce::uint8)200, (const juce::uint8)200, (const juce::uint8)200)); + + g.setFont(12.0f, Font::plain); + if (!customValueText) + { + valueText = juce::String(getValue(), 2); // << T("dB"); + g.drawText(valueText, 0, getWidth() + 8 - 16, getWidth(), valueTextHeight, juce::Justification::centred, false); + } + else + { + g.drawText(valueText, 0, getWidth() + 8 - 16, getWidth(), valueTextHeight, juce::Justification::centred, false); + } + } + + void setTextValue(juce::String valueText) + { + this->valueText = valueText; + customValueText = true; + } + +private: + Image filmStrip; + const int numFrames_; + const bool isHorizontal_; + int frameWidth, frameHeight; + + juce::String valueText; + bool customValueText; + int valueTextHeight; +}; \ No newline at end of file diff --git a/tal-reverb-2-juce/src/ImageSlider.h b/tal-reverb-2-juce/src/ImageSlider.h new file mode 100644 index 0000000..e4b9d8f --- /dev/null +++ b/tal-reverb-2-juce/src/ImageSlider.h @@ -0,0 +1,63 @@ +class ImageSlider : public Slider +{ +public: + + // Curently only supports vertical sliders + ImageSlider(Image image, const int length) + : Slider("Bitmap Slider"), + imageKnob(image) + { + this->length = length; + + setTextBoxStyle(NoTextBox, 0, 0, 0); + setSliderStyle(LinearVertical); + + frameHeight = imageKnob.getHeight(); + frameWidth = imageKnob.getWidth(); + + setRange(0.0f, 1.0f, 0.001f); + + customValueText = false; + valueTextHeight = 10; + + this->setSliderSnapsToMousePosition(false); + } + + void paint(Graphics& g) + { + double value = (getValue() - getMinimum()) / (getMaximum() - getMinimum()); + g.drawImage(imageKnob, 0, (1.0f - value) * length, frameWidth, frameHeight, + 0, 0, frameWidth, frameHeight); + + g.setColour(Colour((const juce::uint8)10, (const juce::uint8)10, (const juce::uint8)10)); + g.fillRoundedRectangle(8, length + frameHeight - 14, getWidth() - 16, valueTextHeight + 4, 6.0f); + + g.setColour(Colour((const juce::uint8)200, (const juce::uint8)200, (const juce::uint8)200)); + + g.setFont(12.0f, Font::plain); + if (!customValueText) + { + valueText = juce::String(getValue(), 2); // << T("dB"); + g.drawText(valueText, 0, length + frameHeight - 14 + 2, getWidth(), valueTextHeight, juce::Justification::centred, false); + } + else + { + g.drawText(valueText, 0, length + frameHeight - 14 + 2, getWidth(), valueTextHeight, juce::Justification::centred, false); + } + } + + void setTextValue(juce::String valueText) + { + this->valueText = valueText; + customValueText = true; + } + +private: + Image imageKnob; + int length; + int frameWidth, frameHeight; + + juce::String valueText; + bool customValueText; + int valueTextHeight; +}; diff --git a/tal-reverb-2-juce/src/ImageToggleButton.h b/tal-reverb-2-juce/src/ImageToggleButton.h new file mode 100644 index 0000000..5a732bd --- /dev/null +++ b/tal-reverb-2-juce/src/ImageToggleButton.h @@ -0,0 +1,29 @@ +class ImageToggleButton : public Button +{ +public: + ImageToggleButton(const String& componentName, Image imageOff, Image imageOn) + : Button(componentName), imageOn(imageOn), imageOff(imageOff) + { + frameHeight = imageOff.getHeight(); + frameWidth = imageOff.getWidth(); + + setClickingTogglesState (true); + } + + void paintButton(Graphics& g, bool isMouseOverButton, bool isButtonDown) + { + if (this->getToggleState()) + { + g.drawImage(imageOn, 0, 0, frameWidth, frameHeight, 0, 0, frameWidth, frameHeight); + } + else + { + g.drawImage(imageOff, 0, 0, frameWidth, frameHeight, 0, 0, frameWidth, frameHeight); + } + } + +private: + Image imageOn; + Image imageOff; + int frameWidth, frameHeight; +}; diff --git a/tal-reverb-2-juce/src/JucePluginCharacteristics.h b/tal-reverb-2-juce/src/JucePluginCharacteristics.h new file mode 100644 index 0000000..a685daa --- /dev/null +++ b/tal-reverb-2-juce/src/JucePluginCharacteristics.h @@ -0,0 +1,318 @@ +/* + ============================================================================== + + This file is part of the JUCE library - "Jules' Utility Class Extensions" + Copyright 2004-9 by Raw Material Software Ltd. + + ------------------------------------------------------------------------------ + + JUCE can be redistributed and/or modified under the terms of the GNU General + Public License (Version 2), as published by the Free Software Foundation. + A copy of the license is included in the JUCE distribution, or can be found + online at www.gnu.org/licenses. + + JUCE is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + ------------------------------------------------------------------------------ + + To release a closed-source product which uses JUCE, commercial licenses are + available: visit www.rawmaterialsoftware.com/juce for more information. + + ============================================================================== +*/ + +#ifndef __JUCE_PLUGIN_CHARACTERISTICS_H__ +#define __JUCE_PLUGIN_CHARACTERISTICS_H__ + + +//============================================================================== +/* All of the following settings need to be defined for your plugin. + + Go through each of these definitions and check that it's correctly + set-up before trying to do a build. +*/ + + +//============================================================================== +/* Plugin Formats to build */ + +#ifndef JucePlugin_Build_Standalone + #define JUCE_ObjCExtraSuffix tal_reverb2 +#endif + +// If your project is building a standalone app to run your plugin, you should +// set the JucePlugin_Build_Standalone flag in the project's settings.. +#ifndef JucePlugin_Build_Standalone + #define JucePlugin_Build_Standalone 0 +#endif + +#if ! JucePlugin_Build_Standalone + + // You should turn on these flags to enable the different types of plugin.. + #ifndef JucePlugin_Build_VST + #define JucePlugin_Build_VST 1 + #endif + + #ifndef JucePlugin_Build_RTAS + #define JucePlugin_Build_RTAS 0 + #endif + + #ifndef JucePlugin_Build_AU + #define JucePlugin_Build_AU 1 + #endif +#endif + +//============================================================================== +/* Generic settings */ + +/** The name of your plugin. (Try to keep this as short as possible) +*/ +#define JucePlugin_Name "TAL Reverb II Plugin" + +/** A longer decription of your plugin. +*/ +#define JucePlugin_Desc "TAL-Reverb-II" + +/** The name of your company. (Try to keep this as short as possible) +*/ +#define JucePlugin_Manufacturer "TAL-Togu Audio Line" + +/** A four-character code for your company. + Use single quotes - this isn't a string! +*/ +#define JucePlugin_ManufacturerCode 'TOGU' + +/** A unique four-character code for your plugin. + Use single quotes - this isn't a string! + + Note that for AU compatibility, this must contain at least one + upper-case letter. +*/ +#define JucePlugin_PluginCode '58h8' + +//============================================================================== +/** The maximum number of channels of audio input that the plugin can handle. + + The actual number of channels supplied may be less than this, depending on the host. + For VSTs, you specify a maximum number of channels, for AUs and RTAS a set + of channel configurations is specified in JucePlugin_PreferredChannelConfigurations + and the host will choose one of these, but you should still set the max number of + channels correctly. + + As soon as a plugin's prepareToPlay() method is called, you can find out the actual + number of channels that will be used with the AudioProcessor::getNumInputChannels() + method. +*/ +#define JucePlugin_MaxNumInputChannels 2 + +/** The maximum number of channels of audio output that the plugin can handle. + + The actual number of channels supplied may be less than this, depending on the host. + For VSTs, you specify a maximum number of channels, for AUs and RTAS a set + of channel configurations is specified in JucePlugin_PreferredChannelConfigurations + and the host will choose one of these, but you should still set the max number of + channels correctly. + + As soon as a plugin's prepareToPlay() method is called, you can find out the actual + number of channels that will be used with the AudioProcessor::getNumOutputChannels() + method. +*/ +#define JucePlugin_MaxNumOutputChannels 2 + +/** This allows the plugin to specify the configurations of input/output channels that + they can support. + + AU and RTAS hosts will use this information, although VSTs only have a concept of + a maximum number of channels. + + The list is a set of pairs of values in the form { numInputs, numOutputs }, and each + pair indicates a valid configuration that the plugin can handle. + + So for example, {1, 1}, {2, 2} means that the plugin can be used in just two + configurations: either with 1 input and 1 output, or with 2 inputs and 2 outputs. If + you used this in Pro-Tools, the plugin could be placed on a mono or stereo track. + If the list was just {1, 1}, then Pro-Tools would only allow it to be used as a mono + plugin. + + As soon as a plugin's prepareToPlay() method is called, you can find out the actual + number of channels that the host has connected to the plugin by using the + AudioProcessor::getNumOutputChannels() and AudioFilterBase::getNumInputChannels() + methods. +*/ +#define JucePlugin_PreferredChannelConfigurations { 1, 1 }, { 2, 2 } + +//============================================================================== +/** Set this value to 1 if your plugin is a synth, or 0 if it isn't. +*/ +#define JucePlugin_IsSynth 0 + +/** Set this to 1 if your plugin needs to receive midi messages, or 0 if + it doesn't. +*/ +#define JucePlugin_WantsMidiInput 1 + +/** Set this to 1 if your plugin wants to output midi messages, or 0 if + it doesn't. +*/ +#define JucePlugin_ProducesMidiOutput 0 + +/** If this is 1, it means that when the plugins input buffers are + silent, it's output will be too. + + Some hosts may use this to avoid calling the plugin when no audio + would be produced. +*/ +#define JucePlugin_SilenceInProducesSilenceOut 0 + +/** If your plugin has a tail, you can set the length here and this information + will be passed on to the host. + (Not all formats/hosts might actually use this, though) +*/ +#define JucePlugin_TailLengthSeconds 0 + +/** If set to 1, this hints that the host should ignore any keys that are pressed + when the plugin has keyboard focus. If 0, then the host should still execute + any shortcut keys that are pressed, even if the plugin does have focus. + + Various hosts/platforms may deal with this differently, or ignore it. +*/ +#define JucePlugin_EditorRequiresKeyboardFocus 1 + + +//============================================================================== +/** A version number +*/ +#define JucePlugin_VersionCode 0x00010100 + +#define JucePlugin_VersionString "1.0" + + +//============================================================================== +/* VST settings */ + +/** For VSTs, if you're compiling against the V2.3 SDK, set this to zero. If + you're using V2.4 or later, make sure it's set to 1. +*/ +#define JUCE_USE_VSTSDK_2_4 1 + +/** Defines a UID for your VST plugin. + The default setting here is probably fine, unless you specifically need + a custom value. It's passed to the setUniqueID() method of the plugin class. +*/ +#define JucePlugin_VSTUniqueID JucePlugin_PluginCode + +/** Defines the type of plugin. For most pursposes, you don't need to change this + setting. +*/ +#if JucePlugin_IsSynth + #define JucePlugin_VSTCategory kPlugCategSynth +#else + #define JucePlugin_VSTCategory kPlugCategEffect +#endif + +//============================================================================== +/* AudioUnit settings */ + +/** Defines the major type of plugin - see AUComponent.h for the available options. + If it's an effect, you should use kAudioUnitType_Effect. For a synth, you'll + need to use kAudioUnitType_MusicEffect or kAudioUnitType_MusicDevice. +*/ +#if JucePlugin_IsSynth + #define JucePlugin_AUMainType kAudioUnitType_MusicDevice +#else + #define JucePlugin_AUMainType kAudioUnitType_MusicEffect +#endif + +/** A 4-character plugin ID code that should be unique. + + You can leave this using the generic value JucePlugin_PluginCode, or + override it if necessary. + + Note that for AU, this must contain at least one upper-case letter. +*/ +#define JucePlugin_AUSubType JucePlugin_PluginCode + +/** A prefix for the names of exported entry-point functions that the component exposes. + + It's very important that your plugin's .exp file contains two entries that correspond to + this name. So for example if you set the prefix to "abc" then your exports + file must contain: + + _abcEntry + _abcViewEntry +*/ +#define JucePlugin_AUExportPrefix TalReverb2AU + +/** This is the same as JucePlugin_AUExportPrefix, but in quotes + (needed for the resource compiler...) +*/ +#define JucePlugin_AUExportPrefixQuoted "TalReverb2AU" + +/** A 4-character manufacturer code - this is your company name. + You can leave this using the generic value JucePlugin_ManufacturerCode, or + override it if necessary. +*/ +#define JucePlugin_AUManufacturerCode JucePlugin_ManufacturerCode + +/** If you define this value to be the same as the CFBundleIdentifier in your + plugin's plist, it allows the plugin to work out its own path, which is + needed if you want to use File::getSpecialLocation (currentExecutableFile) +*/ +#define JucePlugin_CFBundleIdentifier "ch.toguaudioline.talreverb2" + +/** In an AU, some hosts take the name of Cocoa class that creates the UI and + actually show it to the user in a list (why??)... Anyway, this macro lets you + provide a sensible name for that class to make it clear what plugin it refers to. + Obviously this has to be a valid obj-C class name. + + Just to make things a little more complicated, this name must also be unique to this + precise version of your software. Otherwise, if the host loads two plugins that use the + same class name, the obj-C linker will almost certainly connect the wrong modules together + and cause total meltdown. +*/ +#define JucePlugin_AUCocoaViewClassName TalReverb2_v09 + +//============================================================================== +/* RTAS settings */ + +/** How to categorise this plugin. + + For a synth you probably want to set this to ePlugInCategory_SWGenerators. + For an effect, you could choose one of: + ePlugInCategory_None, ePlugInCategory_EQ, ePlugInCategory_Dynamics, + ePlugInCategory_PitchShift, ePlugInCategory_Reverb, ePlugInCategory_Delay, + ePlugInCategory_Modulation, ePlugInCategory_Harmonic, ePlugInCategory_NoiseReduction, + ePlugInCategory_Dither, ePlugInCategory_SoundField + + (All values are listed in FicPluginEnums.h) +*/ +#if JucePlugin_IsSynth + #define JucePlugin_RTASCategory ePlugInCategory_SWGenerators +#else + #define JucePlugin_RTASCategory ePlugInCategory_None +#endif + +/** A 4-character manufacturer code - this is your company name. + You can leave this using the generic value JucePlugin_ManufacturerCode, or + override it if necessary. +*/ +#define JucePlugin_RTASManufacturerCode JucePlugin_ManufacturerCode + +/** A 4-character plugin ID code that should be unique. + You can leave this using the generic value JucePlugin_PluginCode, or + override it if necessary. +*/ +#define JucePlugin_RTASProductId JucePlugin_PluginCode + +/** You need to set this path to point to the location of the Digidesign WinBag + directory on your machine. (Only needed for Windows builds). Make sure you + don't put a slash on the end. +*/ +#define JucePlugin_WinBag_path "C:\\essentials\\PT_73_SDK\\WinBag" + + +//============================================================================== + +#endif diff --git a/tal-reverb-2-juce/src/Program.h b/tal-reverb-2-juce/src/Program.h new file mode 100644 index 0000000..b5479ff --- /dev/null +++ b/tal-reverb-2-juce/src/Program.h @@ -0,0 +1,29 @@ +#ifndef ProgramChunk_H +#define ProgramChunk_H + +/*----------------------------------------------------------------------------- + +Kunz Patrick 15.08.2007 + +Default Presets saved as Hex values. No need for system dependent resource +including. + +-----------------------------------------------------------------------------*/ + +const unsigned char chunk[]= { +}; + +class ProgramChunk +{ + +public: + ProgramChunk() + { + } + + const unsigned char* getChunk() + { + return chunk; + } +}; +#endif \ No newline at end of file diff --git a/tal-reverb-2-juce/src/ProgramChunk.h b/tal-reverb-2-juce/src/ProgramChunk.h new file mode 100644 index 0000000..e9bfd72 --- /dev/null +++ b/tal-reverb-2-juce/src/ProgramChunk.h @@ -0,0 +1,44 @@ +/* + ============================================================================== + This file is part of Tal-Reverb by Patrick Kunz. + + Copyright(c) 2005-2009 Patrick Kunz, TAL + Togu Audio Line, Inc. + http://kunz.corrupt.ch + + This file may be licensed under the terms of of the + GNU General Public License Version 2 (the ``GPL''). + + Software distributed under the License is distributed + on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either + express or implied. See the GPL for the specific language + governing rights and limitations. + + You should have received a copy of the GPL along with this + program. If not, go to http://www.gnu.org/licenses/gpl.html + or write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + ============================================================================== + */ + + +#ifndef ProgramChunk_H +#define ProgramChunk_H + +class ProgramChunk +{ + +public: + ProgramChunk() + { + xmlChunk = T(" "); + } + + const String getXmlChunk() + { + return xmlChunk; + } + private: + String xmlChunk; +}; +#endif \ No newline at end of file diff --git a/tal-reverb-2-juce/src/TalComponent.cpp b/tal-reverb-2-juce/src/TalComponent.cpp new file mode 100644 index 0000000..406fb7f --- /dev/null +++ b/tal-reverb-2-juce/src/TalComponent.cpp @@ -0,0 +1,2541 @@ +#include "includes.h" +#include "TalComponent.h" + +TalComponent::TalComponent (TalCore* const ownerFilter) +: AudioProcessorEditor (ownerFilter) +{ + Image backgroundImage = ImageCache::getFromMemory(bmp00128_png, bmp00128_pngSize); + Image knobImage = ImageCache::getFromMemory(bmp00129_png, bmp00129_pngSize); + Image sliderKnob = ImageCache::getFromMemory(bmp00130_png, bmp00130_pngSize); + Image offButtonImg = ImageCache::getFromMemory(bmp00132_png, bmp00132_pngSize); + Image onButtonImg = ImageCache::getFromMemory(bmp00133_png, bmp00133_pngSize); + + decayTimeKnob = addNormalKnob(314 - 8, 68, ownerFilter, knobImage, DECAYTIME); + preDelayKnob = addNormalKnob(386 - 8, 68, ownerFilter, knobImage, PREDELAY); + + highShelfFrequencyKnob = addNormalKnob(153 - 8, 34, ownerFilter, knobImage, HIGHSHELFFREQUENCY); + peakFrequencyKnob = addNormalKnob(153 - 8, 106, ownerFilter, knobImage, PEAKFREQUENCY); + lowShelfFrequencyKnob = addNormalKnob(154 - 8, 181, ownerFilter, knobImage, LOWSHELFFREQUENCY); + + highShelfGainKnob = addNormalKnob(223 - 8, 34, ownerFilter, knobImage, HIGHSHELFGAIN); + peakGainKnob = addNormalKnob(223 - 8, 106, ownerFilter, knobImage, PEAKGAIN); + lowShelfGainKnob = addNormalKnob(224 - 8, 181, ownerFilter, knobImage, LOWSHELFGAIN); + + stereoWithKnob = addNormalKnob(314 - 8, 180, ownerFilter, knobImage, STEREO); + + addAndMakeVisible(drySlider = new ImageSlider(sliderKnob, 127)); + addAndMakeVisible(wetSlider = new ImageSlider(sliderKnob, 127)); + + drySlider->setBounds(449, 67, sliderKnob.getWidth(), 179); + wetSlider->setBounds(519, 67, sliderKnob.getWidth(), 179); + + // Version info + versionLabel = new Label("Version Info", "V 1.50"); + versionLabel->setBounds(4, 1, 100, 20); + versionLabel->setColour(Label::textColourId, Colour((juce::uint8)100, (juce::uint8)100, (juce::uint8)100, 0.8f)); + addAndMakeVisible(versionLabel); + + realStereoModeButton = new ImageToggleButton("Toggle Button", offButtonImg, onButtonImg); + realStereoModeButton->setBounds(373, 170, 71, 52); + addAndMakeVisible(realStereoModeButton); + + // set our component's initial size to be the last one that was stored in the filter's settings + setSize (backgroundImage.getWidth(), backgroundImage.getHeight()); + + // Register change listener after initialisation + drySlider->addListener (this); + wetSlider->addListener (this); + realStereoModeButton->addButtonListener (this); + + // register ourselves with the filter - it will use its ChangeBroadcaster base + // class to tell us when something has changed, and this will call our changeListenerCallback() + // method. + ownerFilter->addChangeListener (this); + + updateParametersFromFilter(); +} + +TalComponent::~TalComponent() +{ + // ImageCache::release (internalCachedBackgroundImage); + getFilter()->removeChangeListener (this); + deleteAllChildren(); +} + +FilmStripKnob* TalComponent::addNormalKnob(int x, int y, TalCore* const ownerFilter, Image knobImage, int parameter) +{ + FilmStripKnob *filmStripKnob; + addAndMakeVisible(filmStripKnob = new FilmStripKnob(knobImage, + knobImage.getHeight() / knobImage.getWidth(), + false)); + filmStripKnob->setBounds(x, y, knobImage.getWidth() + 16, knobImage.getWidth() + 20); + filmStripKnob->setValue(ownerFilter->getParameter(parameter), false); + filmStripKnob->addListener (this); + return filmStripKnob; +} + +//============================================================================== +void TalComponent::paint (Graphics& g) +{ + // just clear the window + g.fillAll (Colour::greyLevel (0.9f)); + + Image backgroundImage = ImageCache::getFromMemory(bmp00128_png, bmp00128_pngSize); + g.drawImage (backgroundImage, + 0, 0, backgroundImage.getWidth(), backgroundImage.getHeight(), + 0, 0, backgroundImage.getWidth(), backgroundImage.getHeight()); +} + +//void DemoEditorComponent::resized() +//{ +// //gainSlider->setBounds (10, 10, 200, 22); +// +// //// resizer->setBounds (getWidth() - 16, getHeight() - 16, 16, 16); +// +// //// if we've been resized, tell the filter so that it can store the new size +// //// in its settings +// //getFilter()->lastUIWidth = getWidth(); +// //getFilter()->lastUIHeight = getHeight(); +//} + +//============================================================================== +void TalComponent::changeListenerCallback (ChangeBroadcaster* source) +{ + // this is the filter telling us that it's changed, so we'll update our + // display of the time, midi message, etc. + updateParametersFromFilter(); +} + +void TalComponent::sliderValueChanged (Slider* caller) +{ + TalCore* const filter = getFilter(); + if (caller == decayTimeKnob) filter->setParameterNotifyingHost(DECAYTIME, (float)decayTimeKnob->getValue()); + if (caller == preDelayKnob) filter->setParameterNotifyingHost(PREDELAY, (float)preDelayKnob->getValue()); + + if (caller == lowShelfFrequencyKnob) filter->setParameterNotifyingHost(LOWSHELFFREQUENCY, (float)lowShelfFrequencyKnob->getValue()); + if (caller == highShelfFrequencyKnob) filter->setParameterNotifyingHost(HIGHSHELFFREQUENCY, (float)highShelfFrequencyKnob->getValue()); + if (caller == peakFrequencyKnob) filter->setParameterNotifyingHost(PEAKFREQUENCY, (float)peakFrequencyKnob->getValue()); + + if (caller == lowShelfGainKnob) filter->setParameterNotifyingHost(LOWSHELFGAIN, (float)lowShelfGainKnob->getValue()); + if (caller == highShelfGainKnob) filter->setParameterNotifyingHost(HIGHSHELFGAIN, (float)highShelfGainKnob->getValue()); + if (caller == peakGainKnob) filter->setParameterNotifyingHost(PEAKGAIN, (float)peakGainKnob->getValue()); + + if (caller == stereoWithKnob) filter->setParameterNotifyingHost(STEREO, (float)stereoWithKnob->getValue()); + if (caller == drySlider) filter->setParameterNotifyingHost(DRY, (float)drySlider->getValue()); + if (caller == wetSlider) filter->setParameterNotifyingHost(WET, (float)wetSlider->getValue()); +} + +void TalComponent::buttonClicked (Button* caller) +{ + TalCore* const filter = getFilter(); + if (caller == realStereoModeButton) + { + float realStereoMode = 0.0f; + if (caller->getToggleState() == true) realStereoMode = 1.0f; + filter->setParameterNotifyingHost(REALSTEREOMODE, realStereoMode); + } +} + +//============================================================================== +void TalComponent::updateParametersFromFilter() +{ + TalCore* const filter = getFilter(); + + // we use this lock to make sure the processBlock() method isn't writing to the + // lastMidiMessage variable while we're trying to read it, but be extra-careful to + // only hold the lock for a minimum amount of time.. + filter->getCallbackLock().enter(); + + // take a local copy of the info we need while we've got the lock.. + float roomSize = filter->getParameter(DECAYTIME); + float preDelay = filter->getParameter(PREDELAY); + + float lowShelfFrequency = filter->getParameter(LOWSHELFFREQUENCY); + float highShelfFrequency = filter->getParameter(HIGHSHELFFREQUENCY); + float peakFrequency = filter->getParameter(PEAKFREQUENCY); + + float lowShelfGain = filter->getParameter(LOWSHELFGAIN); + float highShelfGain = filter->getParameter(HIGHSHELFGAIN); + float peakGain = filter->getParameter(PEAKGAIN); + + float stereo = filter->getParameter(STEREO); + + float dry = filter->getParameter(DRY); + float wet = filter->getParameter(WET); + + float realStereoMode = filter->getParameter(REALSTEREOMODE); + + // ..release the lock ASAP + filter->getCallbackLock().exit(); + + decayTimeKnob->setValue(roomSize, false); + + preDelayKnob->setValue(preDelay, false); + preDelayKnob->setTextValue(juce::String((int)(audioUtils.getLogScaledValue(preDelay) * 1000)) + T("ms")); + + lowShelfFrequencyKnob->setValue(lowShelfFrequency, false); + lowShelfFrequencyKnob->setTextValue(juce::String((int)audioUtils.getLogScaledFrequency(lowShelfFrequency)) + T("Hz")); + + highShelfFrequencyKnob->setValue(highShelfFrequency, false); + highShelfFrequencyKnob->setTextValue(juce::String((int)audioUtils.getLogScaledFrequency(highShelfFrequency)) + T("Hz")); + + peakFrequencyKnob->setValue(peakFrequency, false); + peakFrequencyKnob->setTextValue(juce::String((int)audioUtils.getLogScaledFrequency(peakFrequency)) + T("Hz")); + + lowShelfGainKnob->setValue(lowShelfGain, false); + lowShelfGainKnob->setTextValue(juce::String(audioUtils.getLogScaledValueInDecibelFilter(lowShelfGain, 1), 1) + T("dB")); + + highShelfGainKnob->setValue(highShelfGain, false); + highShelfGainKnob->setTextValue(juce::String(audioUtils.getLogScaledValueInDecibelFilter(highShelfGain, 1), 1) + T("dB")); + + peakGainKnob->setValue(peakGain, false); + peakGainKnob->setTextValue(juce::String(audioUtils.getLogScaledValueInDecibelFilter(peakGain, 1), 1) + T("dB")); + + stereoWithKnob->setValue(stereo, false); + + drySlider->setValue(dry, false); + drySlider->setTextValue(juce::String(audioUtils.getLogScaledValueInDecibel(dry, 2), 1) + T("dB")); + + wetSlider->setValue(wet, false); + wetSlider->setTextValue(juce::String(audioUtils.getLogScaledValueInDecibel(wet, 2), 1) + T("dB")); + + if (realStereoMode > 0.0f) + { + realStereoModeButton->setToggleState(true, false); + } + else + { + realStereoModeButton->setToggleState(false, false); + } +} + +//============================================================================== +// Binary resources - be careful not to edit any of these sections! + +// JUCER_RESOURCE: bmp00128_png, 71770, "E:/Code/tal/tal-reverb-2-juce/resources/bmp00128.png" +static const unsigned char resource_NewJucerComponent_bmp00128_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,2,181,0,0,1,29,8,6,0,0,0,18,7,159,95,0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19, +1,0,154,156,24,0,0,10,79,105,67,67,80,80,104,111,116,111,115,104,111,112,32,73,67,67,32,112,114,111,102,105,108,101,0,0,120,218,157,83,103,84,83,233,22,61,247,222,244,66,75,136,128,148,75,111,82,21,8, +32,82,66,139,128,20,145,38,42,33,9,16,74,136,33,161,217,21,81,193,17,69,69,4,27,200,160,136,3,142,142,128,140,21,81,44,12,138,10,216,7,228,33,162,142,131,163,136,138,202,251,225,123,163,107,214,188,247, +230,205,254,181,215,62,231,172,243,157,179,207,7,192,8,12,150,72,51,81,53,128,12,169,66,30,17,224,131,199,196,198,225,228,46,64,129,10,36,112,0,16,8,179,100,33,115,253,35,1,0,248,126,60,60,43,34,192,7, +190,0,1,120,211,11,8,0,192,77,155,192,48,28,135,255,15,234,66,153,92,1,128,132,1,192,116,145,56,75,8,128,20,0,64,122,142,66,166,0,64,70,1,128,157,152,38,83,0,160,4,0,96,203,99,98,227,0,80,45,0,96,39,127, +230,211,0,128,157,248,153,123,1,0,91,148,33,21,1,160,145,0,32,19,101,136,68,0,104,59,0,172,207,86,138,69,0,88,48,0,20,102,75,196,57,0,216,45,0,48,73,87,102,72,0,176,183,0,192,206,16,11,178,0,8,12,0,48, +81,136,133,41,0,4,123,0,96,200,35,35,120,0,132,153,0,20,70,242,87,60,241,43,174,16,231,42,0,0,120,153,178,60,185,36,57,69,129,91,8,45,113,7,87,87,46,30,40,206,73,23,43,20,54,97,2,97,154,64,46,194,121, +153,25,50,129,52,15,224,243,204,0,0,160,145,21,17,224,131,243,253,120,206,14,174,206,206,54,142,182,14,95,45,234,191,6,255,34,98,98,227,254,229,207,171,112,64,0,0,225,116,126,209,254,44,47,179,26,128, +59,6,128,109,254,162,37,238,4,104,94,11,160,117,247,139,102,178,15,64,181,0,160,233,218,87,243,112,248,126,60,60,69,161,144,185,217,217,229,228,228,216,74,196,66,91,97,202,87,125,254,103,194,95,192,87, +253,108,249,126,60,252,247,245,224,190,226,36,129,50,93,129,71,4,248,224,194,204,244,76,165,28,207,146,9,132,98,220,230,143,71,252,183,11,255,252,29,211,34,196,73,98,185,88,42,20,227,81,18,113,142,68, +154,140,243,50,165,34,137,66,146,41,197,37,210,255,100,226,223,44,251,3,62,223,53,0,176,106,62,1,123,145,45,168,93,99,3,246,75,39,16,88,116,192,226,247,0,0,242,187,111,193,212,40,8,3,128,104,131,225,207, +119,255,239,63,253,71,160,37,0,128,102,73,146,113,0,0,94,68,36,46,84,202,179,63,199,8,0,0,68,160,129,42,176,65,27,244,193,24,44,192,6,28,193,5,220,193,11,252,96,54,132,66,36,196,194,66,16,66,10,100,128, +28,114,96,41,172,130,66,40,134,205,176,29,42,96,47,212,64,29,52,192,81,104,134,147,112,14,46,194,85,184,14,61,112,15,250,97,8,158,193,40,188,129,9,4,65,200,8,19,97,33,218,136,1,98,138,88,35,142,8,23,153, +133,248,33,193,72,4,18,139,36,32,201,136,20,81,34,75,145,53,72,49,82,138,84,32,85,72,29,242,61,114,2,57,135,92,70,186,145,59,200,0,50,130,252,134,188,71,49,148,129,178,81,61,212,12,181,67,185,168,55,26, +132,70,162,11,208,100,116,49,154,143,22,160,155,208,114,180,26,61,140,54,161,231,208,171,104,15,218,143,62,67,199,48,192,232,24,7,51,196,108,48,46,198,195,66,177,56,44,9,147,99,203,177,34,172,12,171,198, +26,176,86,172,3,187,137,245,99,207,177,119,4,18,129,69,192,9,54,4,119,66,32,97,30,65,72,88,76,88,78,216,72,168,32,28,36,52,17,218,9,55,9,3,132,81,194,39,34,147,168,75,180,38,186,17,249,196,24,98,50,49, +135,88,72,44,35,214,18,143,19,47,16,123,136,67,196,55,36,18,137,67,50,39,185,144,2,73,177,164,84,210,18,210,70,210,110,82,35,233,44,169,155,52,72,26,35,147,201,218,100,107,178,7,57,148,44,32,43,200,133, +228,157,228,195,228,51,228,27,228,33,242,91,10,157,98,64,113,164,248,83,226,40,82,202,106,74,25,229,16,229,52,229,6,101,152,50,65,85,163,154,82,221,168,161,84,17,53,143,90,66,173,161,182,82,175,81,135, +168,19,52,117,154,57,205,131,22,73,75,165,173,162,149,211,26,104,23,104,247,105,175,232,116,186,17,221,149,30,78,151,208,87,210,203,233,71,232,151,232,3,244,119,12,13,134,21,131,199,136,103,40,25,155, +24,7,24,103,25,119,24,175,152,76,166,25,211,139,25,199,84,48,55,49,235,152,231,153,15,153,111,85,88,42,182,42,124,21,145,202,10,149,74,149,38,149,27,42,47,84,169,170,166,170,222,170,11,85,243,85,203,84, +143,169,94,83,125,174,70,85,51,83,227,169,9,212,150,171,85,170,157,80,235,83,27,83,103,169,59,168,135,170,103,168,111,84,63,164,126,89,253,137,6,89,195,76,195,79,67,164,81,160,177,95,227,188,198,32,11, +99,25,179,120,44,33,107,13,171,134,117,129,53,196,38,177,205,217,124,118,42,187,152,253,29,187,139,61,170,169,161,57,67,51,74,51,87,179,82,243,148,102,63,7,227,152,113,248,156,116,78,9,231,40,167,151, +243,126,138,222,20,239,41,226,41,27,166,52,76,185,49,101,92,107,170,150,151,150,88,171,72,171,81,171,71,235,189,54,174,237,167,157,166,189,69,187,89,251,129,14,65,199,74,39,92,39,71,103,143,206,5,157, +231,83,217,83,221,167,10,167,22,77,61,58,245,174,46,170,107,165,27,161,187,68,119,191,110,167,238,152,158,190,94,128,158,76,111,167,222,121,189,231,250,28,125,47,253,84,253,109,250,167,245,71,12,88,6, +179,12,36,6,219,12,206,24,60,197,53,113,111,60,29,47,199,219,241,81,67,93,195,64,67,165,97,149,97,151,225,132,145,185,209,60,163,213,70,141,70,15,140,105,198,92,227,36,227,109,198,109,198,163,38,6,38, +33,38,75,77,234,77,238,154,82,77,185,166,41,166,59,76,59,76,199,205,204,205,162,205,214,153,53,155,61,49,215,50,231,155,231,155,215,155,223,183,96,90,120,90,44,182,168,182,184,101,73,178,228,90,166,89, +238,182,188,110,133,90,57,89,165,88,85,90,93,179,70,173,157,173,37,214,187,173,187,167,17,167,185,78,147,78,171,158,214,103,195,176,241,182,201,182,169,183,25,176,229,216,6,219,174,182,109,182,125,97, +103,98,23,103,183,197,174,195,238,147,189,147,125,186,125,141,253,61,7,13,135,217,14,171,29,90,29,126,115,180,114,20,58,86,58,222,154,206,156,238,63,125,197,244,150,233,47,103,88,207,16,207,216,51,227, +182,19,203,41,196,105,157,83,155,211,71,103,23,103,185,115,131,243,136,139,137,75,130,203,46,151,62,46,155,27,198,221,200,189,228,74,116,245,113,93,225,122,210,245,157,155,179,155,194,237,168,219,175, +238,54,238,105,238,135,220,159,204,52,159,41,158,89,51,115,208,195,200,67,224,81,229,209,63,11,159,149,48,107,223,172,126,79,67,79,129,103,181,231,35,47,99,47,145,87,173,215,176,183,165,119,170,247,97, +239,23,62,246,62,114,159,227,62,227,60,55,222,50,222,89,95,204,55,192,183,200,183,203,79,195,111,158,95,133,223,67,127,35,255,100,255,122,255,209,0,167,128,37,1,103,3,137,129,65,129,91,2,251,248,122,124, +33,191,142,63,58,219,101,246,178,217,237,65,140,160,185,65,21,65,143,130,173,130,229,193,173,33,104,200,236,144,173,33,247,231,152,206,145,206,105,14,133,80,126,232,214,208,7,97,230,97,139,195,126,12, +39,133,135,133,87,134,63,142,112,136,88,26,209,49,151,53,119,209,220,67,115,223,68,250,68,150,68,222,155,103,49,79,57,175,45,74,53,42,62,170,46,106,60,218,55,186,52,186,63,198,46,102,89,204,213,88,157, +88,73,108,75,28,57,46,42,174,54,110,108,190,223,252,237,243,135,226,157,226,11,227,123,23,152,47,200,93,112,121,161,206,194,244,133,167,22,169,46,18,44,58,150,64,76,136,78,56,148,240,65,16,42,168,22,140, +37,242,19,119,37,142,10,121,194,29,194,103,34,47,209,54,209,136,216,67,92,42,30,78,242,72,42,77,122,146,236,145,188,53,121,36,197,51,165,44,229,185,132,39,169,144,188,76,13,76,221,155,58,158,22,154,118, +32,109,50,61,58,189,49,131,146,145,144,113,66,170,33,77,147,182,103,234,103,230,102,118,203,172,101,133,178,254,197,110,139,183,47,30,149,7,201,107,179,144,172,5,89,45,10,182,66,166,232,84,90,40,215,42, +7,178,103,101,87,102,191,205,137,202,57,150,171,158,43,205,237,204,179,202,219,144,55,156,239,159,255,237,18,194,18,225,146,182,165,134,75,87,45,29,88,230,189,172,106,57,178,60,113,121,219,10,227,21,5, +43,134,86,6,172,60,184,138,182,42,109,213,79,171,237,87,151,174,126,189,38,122,77,107,129,94,193,202,130,193,181,1,107,235,11,85,10,229,133,125,235,220,215,237,93,79,88,47,89,223,181,97,250,134,157,27, +62,21,137,138,174,20,219,23,151,21,127,216,40,220,120,229,27,135,111,202,191,153,220,148,180,169,171,196,185,100,207,102,210,102,233,230,222,45,158,91,14,150,170,151,230,151,14,110,13,217,218,180,13,223, +86,180,237,245,246,69,219,47,151,205,40,219,187,131,182,67,185,163,191,60,184,188,101,167,201,206,205,59,63,84,164,84,244,84,250,84,54,238,210,221,181,97,215,248,110,209,238,27,123,188,246,52,236,213, +219,91,188,247,253,62,201,190,219,85,1,85,77,213,102,213,101,251,73,251,179,247,63,174,137,170,233,248,150,251,109,93,173,78,109,113,237,199,3,210,3,253,7,35,14,182,215,185,212,213,29,210,61,84,82,143, +214,43,235,71,14,199,31,190,254,157,239,119,45,13,54,13,85,141,156,198,226,35,112,68,121,228,233,247,9,223,247,30,13,58,218,118,140,123,172,225,7,211,31,118,29,103,29,47,106,66,154,242,154,70,155,83,154, +251,91,98,91,186,79,204,62,209,214,234,222,122,252,71,219,31,15,156,52,60,89,121,74,243,84,201,105,218,233,130,211,147,103,242,207,140,157,149,157,125,126,46,249,220,96,219,162,182,123,231,99,206,223, +106,15,111,239,186,16,116,225,210,69,255,139,231,59,188,59,206,92,242,184,116,242,178,219,229,19,87,184,87,154,175,58,95,109,234,116,234,60,254,147,211,79,199,187,156,187,154,174,185,92,107,185,238,122, +189,181,123,102,247,233,27,158,55,206,221,244,189,121,241,22,255,214,213,158,57,61,221,189,243,122,111,247,197,247,245,223,22,221,126,114,39,253,206,203,187,217,119,39,238,173,188,79,188,95,244,64,237, +65,217,67,221,135,213,63,91,254,220,216,239,220,127,106,192,119,160,243,209,220,71,247,6,133,131,207,254,145,245,143,15,67,5,143,153,143,203,134,13,134,235,158,56,62,57,57,226,63,114,253,233,252,167,67, +207,100,207,38,158,23,254,162,254,203,174,23,22,47,126,248,213,235,215,206,209,152,209,161,151,242,151,147,191,109,124,165,253,234,192,235,25,175,219,198,194,198,30,190,201,120,51,49,94,244,86,251,237, +193,119,220,119,29,239,163,223,15,79,228,124,32,127,40,255,104,249,177,245,83,208,167,251,147,25,147,147,255,4,3,152,243,252,99,51,45,219,0,0,0,4,103,65,77,65,0,0,177,142,124,251,81,147,0,0,0,32,99,72, +82,77,0,0,122,37,0,0,128,131,0,0,249,255,0,0,128,233,0,0,117,48,0,0,234,96,0,0,58,152,0,0,23,111,146,95,197,70,0,1,13,117,73,68,65,84,120,218,236,189,121,124,27,231,125,231,255,153,19,51,0,1,138,4,41, +82,20,73,145,146,72,93,62,228,35,178,14,91,62,20,165,118,234,56,141,29,59,233,110,178,221,238,166,91,239,47,155,110,157,77,127,233,38,233,102,179,117,250,107,154,214,105,157,203,217,164,233,58,78,155, +172,29,123,99,71,62,214,182,98,71,177,45,57,62,36,91,177,36,82,178,37,145,148,37,153,55,72,12,128,185,158,223,31,115,96,102,48,56,9,144,32,53,95,189,244,34,206,1,230,139,153,121,222,207,231,249,30,212, +216,216,187,4,78,115,220,83,53,21,170,42,195,253,60,113,220,116,191,53,223,99,133,30,47,199,40,138,66,40,36,34,147,73,229,60,238,247,90,199,157,220,231,65,229,125,218,111,123,37,125,78,145,239,30,152, +101,52,0,29,28,47,32,207,193,2,69,201,128,101,121,80,52,29,184,43,176,121,49,77,85,161,235,106,224,136,192,230,205,242,94,3,47,112,83,228,180,203,63,214,253,197,104,165,178,207,92,120,202,121,151,128, +248,142,169,11,201,109,21,241,84,133,220,70,217,80,235,227,20,23,60,22,112,74,177,251,149,58,171,20,16,244,190,166,224,253,50,156,20,128,109,245,141,162,24,16,162,149,118,33,39,0,130,121,64,96,1,216,6, +182,196,161,86,215,52,208,12,19,56,35,15,216,46,102,171,53,208,206,5,102,151,42,183,177,249,128,86,211,180,178,156,82,41,233,251,61,111,237,80,190,247,58,119,216,249,26,138,162,236,251,222,109,80,20,149, +221,23,231,251,65,108,7,17,146,125,138,16,226,251,227,248,61,158,239,181,129,205,97,214,23,184,51,176,96,16,13,108,9,26,203,242,174,21,208,0,104,131,113,177,234,64,123,1,115,27,139,60,142,81,85,25,32, +196,94,238,207,231,136,82,104,191,92,9,187,208,235,157,14,200,231,204,124,78,162,178,123,62,39,176,13,108,110,202,68,96,129,213,31,208,202,129,19,2,155,183,107,31,195,112,1,204,6,86,49,23,85,2,180,23, +10,183,177,197,28,67,8,241,117,70,37,244,239,253,49,74,53,39,87,250,57,166,16,229,59,157,146,67,255,21,130,109,165,106,109,0,201,78,136,200,152,23,250,80,224,140,192,22,244,56,12,142,193,192,106,105,126, +185,1,1,208,150,54,9,88,234,177,180,165,194,100,185,64,155,143,207,46,4,110,99,115,28,99,110,32,20,18,65,0,100,210,169,146,137,191,80,240,114,165,51,0,99,7,243,59,172,20,202,207,75,255,30,89,123,174,96, +27,88,49,211,29,23,172,144,13,182,129,5,182,112,3,103,40,8,59,8,172,166,166,170,114,176,66,21,88,197,32,92,18,208,150,201,103,75,153,219,216,188,142,49,255,134,4,17,233,84,202,120,107,201,244,95,220,17, +165,6,28,231,139,221,240,134,89,148,66,249,222,199,253,100,237,185,132,34,4,160,91,154,41,178,12,142,231,3,71,4,182,0,199,94,218,161,2,101,0,144,192,41,129,205,219,113,23,132,29,148,59,233,20,150,236, +164,179,92,37,183,82,160,189,208,184,141,117,238,145,78,8,20,57,109,111,48,36,132,145,78,37,203,112,22,10,58,177,26,63,122,174,195,40,95,39,57,95,239,165,255,114,28,84,109,136,189,208,193,87,145,211,182, +106,17,44,251,6,54,207,163,72,14,100,4,22,216,124,129,89,0,180,23,14,216,86,194,60,37,87,74,168,16,104,47,20,110,99,1,64,215,9,20,57,55,204,160,84,160,245,115,74,53,2,143,243,237,164,191,163,114,157,148, +207,25,121,29,228,57,112,40,80,101,135,33,4,106,109,41,96,43,163,96,157,218,192,2,171,197,113,167,4,225,46,129,205,191,233,154,22,0,109,96,5,89,168,212,176,3,130,82,170,34,144,18,31,91,154,220,70,103, +50,41,208,62,180,204,243,2,4,33,12,66,168,188,142,33,36,215,49,126,137,101,206,199,156,247,75,253,239,183,29,239,103,21,251,78,165,252,224,222,32,16,150,101,114,30,174,70,49,226,192,116,251,96,14,20,179, +192,2,11,108,41,155,166,41,208,131,113,35,176,10,161,55,239,161,83,38,223,92,48,220,6,66,160,105,26,88,46,100,67,6,33,196,44,227,69,1,208,75,162,252,82,131,144,253,200,58,135,238,65,149,60,83,200,87,42, +194,82,88,243,101,221,229,37,127,151,156,237,54,134,97,178,245,123,3,155,147,5,161,7,129,205,15,80,104,208,53,37,112,68,96,11,11,41,186,10,77,5,24,150,13,156,81,174,4,162,235,129,19,224,31,118,80,24,94, +47,76,110,99,1,247,178,156,123,103,73,197,142,201,145,215,203,72,200,200,247,218,108,2,87,225,32,226,236,223,252,178,118,233,96,155,13,67,112,238,35,69,81,160,105,26,186,174,7,33,8,21,152,183,13,98,96, +129,85,219,84,85,5,113,116,7,227,184,80,16,130,16,216,130,24,77,179,208,117,21,12,2,168,45,119,156,160,233,165,229,179,114,58,123,249,134,29,212,16,104,151,2,183,177,126,206,44,228,100,154,230,160,105, +74,73,245,107,11,21,5,46,219,40,202,181,61,3,52,73,65,250,207,231,32,47,124,150,2,161,86,40,66,238,197,138,46,58,147,244,126,175,0,122,3,11,172,214,19,38,26,206,18,114,222,201,123,96,129,205,135,185,26, +46,4,64,123,65,88,181,66,20,75,221,76,105,53,104,179,143,45,117,110,163,139,21,227,245,58,166,20,160,37,230,63,251,77,206,128,9,160,236,184,12,191,237,56,63,35,223,204,195,25,175,145,127,159,242,236,127, +161,31,185,192,251,242,193,106,41,16,123,161,168,150,198,126,6,80,31,88,96,129,45,93,99,24,46,112,66,21,76,215,85,112,188,0,154,102,193,176,75,171,20,100,73,9,99,69,84,218,82,184,173,20,160,93,42,220, +198,150,234,92,63,199,20,164,252,50,36,246,252,144,159,75,240,174,109,155,179,128,98,244,239,37,255,66,244,95,202,236,169,208,203,20,69,129,162,40,24,26,26,193,250,245,253,37,43,178,181,6,218,123,239, +253,78,93,156,196,130,24,70,115,83,19,4,97,126,1,94,85,85,176,65,60,219,146,181,116,38,131,201,137,9,136,162,136,116,58,13,81,20,49,62,62,22,56,38,176,5,179,150,214,229,136,69,163,193,181,103,14,150,72, +36,140,243,57,28,6,8,144,78,167,48,51,147,88,50,16,155,239,249,79,127,250,206,170,64,241,133,200,109,212,240,208,32,41,22,143,81,138,99,252,156,82,78,224,113,41,230,252,242,174,29,49,111,83,118,121,136, +220,191,217,219,200,251,26,239,95,150,101,161,154,137,97,44,203,130,2,160,170,154,189,13,198,44,209,162,235,58,6,6,142,131,15,241,72,167,141,88,209,111,124,227,155,8,135,195,248,194,127,253,51,44,95,222, +10,134,97,114,126,104,103,253,61,11,106,173,251,163,163,99,248,191,79,255,18,39,79,190,227,242,193,198,141,27,112,227,141,187,17,9,135,23,21,204,2,128,32,136,0,69,205,11,212,234,132,128,54,127,40,77,215, +33,37,147,16,4,1,28,23,168,39,75,21,106,223,61,115,198,134,90,231,185,172,235,65,114,103,96,243,111,171,87,175,9,156,80,37,49,98,102,118,22,209,134,6,104,154,134,116,58,141,243,231,207,45,105,168,181, +236,255,249,244,31,231,16,42,41,249,239,5,202,109,197,136,188,18,199,84,210,130,173,176,83,220,219,202,105,161,102,226,188,147,254,189,65,197,94,242,47,70,252,214,123,14,29,122,19,123,246,60,137,59,110, +191,21,0,240,248,227,79,97,215,174,107,177,121,243,165,246,107,7,6,142,227,239,254,238,31,112,215,93,159,113,173,170,75,146,132,241,137,9,72,146,132,158,158,85,160,61,253,191,157,48,235,116,206,169,211, +67,56,122,100,16,191,243,129,27,208,218,122,135,235,245,167,78,15,225,145,135,31,197,141,55,238,70,107,107,75,201,64,219,209,177,2,215,95,127,45,226,241,230,5,63,177,231,35,204,194,91,42,204,88,186,10, +212,146,165,102,206,102,30,65,121,184,192,234,201,130,36,216,185,156,215,86,183,63,26,28,207,27,9,99,12,7,93,83,236,164,187,197,8,174,197,150,208,39,38,38,241,252,243,251,240,238,187,103,1,0,223,254,214, +125,248,244,127,186,19,197,56,45,224,182,236,125,214,207,41,213,112,76,161,58,107,115,233,33,236,44,247,224,10,22,174,208,65,222,217,131,211,73,239,190,123,22,247,125,247,251,46,80,29,24,28,196,192,224, +32,254,240,223,126,18,87,95,189,29,154,166,225,187,223,253,159,5,247,33,149,78,99,104,104,4,61,61,221,200,57,82,124,58,99,244,173,237,71,207,170,110,223,109,245,172,234,70,207,39,187,139,250,205,2,218, +122,130,89,23,136,112,66,205,194,106,137,110,52,118,208,77,149,93,39,36,200,60,190,0,224,54,176,192,2,91,42,102,13,14,58,20,57,13,138,98,64,204,132,108,134,101,237,107,185,166,170,70,37,34,134,89,18,215, +128,230,230,38,124,228,35,31,198,196,196,4,158,123,110,31,206,158,61,107,128,173,83,177,205,3,179,229,112,155,24,142,64,146,102,151,36,183,209,249,118,168,208,142,184,128,214,25,4,156,83,120,55,215,193, +115,249,95,104,155,206,39,189,129,200,37,239,143,227,185,95,254,242,121,76,77,77,229,253,209,254,233,127,61,128,100,82,194,204,204,44,36,41,85,244,71,78,74,73,12,12,12,250,14,198,206,147,209,154,221,191, +248,226,1,252,243,191,60,100,63,254,151,119,255,53,246,237,123,161,164,3,170,158,129,214,222,111,165,118,23,32,202,71,17,55,62,51,168,87,26,168,97,129,5,54,31,70,7,46,152,211,121,205,123,198,104,13,132, +24,34,133,234,184,142,51,44,107,119,106,227,120,1,44,23,2,91,167,201,100,165,42,184,6,220,54,227,186,235,174,193,138,21,43,0,0,223,254,246,247,10,168,178,149,113,27,69,49,75,142,219,124,207,60,247,151, +200,165,248,28,160,173,192,41,126,159,89,202,115,229,56,201,233,32,255,253,200,239,172,100,82,194,158,199,159,114,124,9,255,3,113,98,98,34,23,124,11,76,102,94,254,205,107,174,253,114,149,24,50,103,45, +138,156,198,244,244,52,6,143,191,141,223,251,189,223,181,159,254,139,47,253,57,94,125,245,117,156,58,61,84,242,73,84,175,64,91,174,194,166,200,178,217,90,23,121,39,5,206,255,196,183,196,26,13,142,227, +92,159,151,111,155,129,5,128,27,88,96,115,51,61,71,176,8,172,108,12,244,125,148,45,144,23,65,81,20,40,154,6,199,11,246,245,128,227,230,239,186,80,170,154,153,239,117,206,135,155,227,6,216,150,7,120,133, +184,205,80,68,69,49,146,253,48,202,200,245,9,71,162,139,158,219,172,199,232,98,178,115,94,160,205,67,203,249,156,82,108,103,75,121,62,159,147,242,81,123,33,7,21,218,207,193,227,199,33,73,82,206,190,122, +45,145,152,65,50,41,149,124,192,191,119,254,60,248,60,3,175,34,167,109,200,61,125,250,36,98,177,134,156,100,176,85,61,171,144,146,10,127,158,83,165,173,119,160,45,7,68,140,184,170,76,201,64,172,105,90, +78,175,117,43,254,50,59,216,4,157,106,22,187,185,39,41,1,64,4,22,76,172,2,243,252,30,84,62,0,206,173,61,79,211,108,22,134,23,240,183,180,184,163,57,222,140,21,43,218,65,8,193,183,191,253,189,188,220,85, +26,183,25,227,93,74,74,130,16,2,65,16,32,8,2,194,145,40,64,128,72,36,106,0,110,184,1,44,203,219,239,139,68,162,8,71,26,234,158,219,178,242,85,158,25,64,222,219,142,24,90,255,254,189,164,42,125,131,75, +237,39,236,71,239,196,83,23,173,156,253,3,128,51,35,239,86,116,0,22,179,211,67,35,144,229,52,56,179,37,177,253,215,158,81,26,247,87,173,234,197,244,84,110,217,146,211,167,78,27,165,77,74,176,235,175,191, +118,81,0,73,126,101,213,251,90,217,245,158,66,166,170,178,221,26,149,102,24,176,44,107,47,103,25,239,165,0,80,193,0,20,64,68,96,129,85,205,40,179,243,85,112,76,86,119,178,234,62,215,43,11,235,224,56,33, +167,62,58,33,196,86,116,45,192,245,75,38,118,43,189,213,79,4,41,168,238,18,130,107,175,189,166,224,107,75,229,54,65,8,3,132,32,36,136,230,99,246,147,54,75,133,195,6,188,242,60,159,5,89,16,27,122,35,145, +40,56,46,100,3,112,61,113,155,245,24,91,10,5,231,108,192,183,128,111,177,22,109,149,213,59,115,190,54,55,112,216,25,76,76,229,102,199,57,219,221,250,181,85,3,124,59,87,12,14,30,175,201,137,218,212,212, +100,127,119,158,23,92,73,98,28,23,178,239,135,195,33,172,93,219,139,47,126,233,43,184,252,242,205,0,128,215,94,125,29,27,54,172,207,155,64,230,181,197,160,210,2,0,203,242,121,99,96,179,23,51,222,113,177, +51,178,98,75,81,229,52,77,3,147,39,129,128,227,67,193,200,177,132,7,192,192,2,155,239,137,149,51,156,41,0,219,90,249,186,194,120,89,170,240,117,159,229,56,40,178,102,183,229,245,54,206,40,181,194,202, +92,42,51,248,182,196,245,25,203,75,85,47,189,183,211,169,36,0,10,52,69,229,0,173,107,187,142,207,143,152,42,174,115,123,4,70,126,74,62,134,91,40,110,179,254,178,249,28,81,106,28,109,49,160,173,20,108, +253,91,167,249,59,198,207,65,182,115,9,1,161,220,237,217,114,74,75,160,112,243,133,82,149,216,101,203,26,209,222,222,6,0,216,190,109,43,94,218,127,32,103,127,135,135,71,176,102,205,90,199,44,208,56,201, +188,45,60,119,238,188,26,27,54,172,199,216,152,81,64,190,156,218,180,75,251,162,22,42,25,98,116,77,177,85,96,138,102,65,116,213,188,186,17,4,22,88,96,129,213,5,112,5,86,23,70,81,76,206,200,192,48,28,8, +209,65,81,180,13,183,133,198,31,150,101,33,203,170,99,188,65,81,14,42,14,187,165,151,8,43,206,109,122,105,64,75,242,127,62,199,178,80,20,5,145,72,20,178,162,64,206,100,19,229,67,33,17,178,195,63,11,193, +109,180,151,246,11,134,29,148,1,180,121,29,92,32,184,216,251,99,149,186,141,124,129,196,126,1,200,254,7,130,207,15,232,249,122,28,199,161,171,171,19,159,253,236,159,160,191,191,207,247,59,183,183,183, +129,97,24,48,12,131,143,125,236,182,156,231,83,169,20,84,85,135,44,167,93,63,188,23,104,79,157,30,194,3,15,252,4,73,73,194,134,13,235,177,97,195,122,27,104,143,30,61,134,135,31,121,20,163,163,139,191, +91,18,199,9,69,85,218,185,154,149,49,155,189,192,144,162,170,159,34,167,231,214,239,58,176,249,179,224,119,10,44,176,37,103,206,10,6,206,164,175,154,126,38,199,129,227,56,87,69,5,154,97,202,26,163,172, +113,157,84,163,142,110,137,25,255,229,112,91,40,36,22,6,90,146,29,34,139,113,155,183,154,144,32,132,145,201,164,16,10,137,11,198,109,190,225,7,197,102,21,249,156,89,176,150,173,119,27,101,40,101,126,173, +212,188,212,158,251,24,149,35,77,59,191,127,62,202,47,164,214,182,183,47,71,52,218,128,254,254,62,220,121,103,39,62,251,217,255,215,245,124,255,186,62,187,195,24,0,132,195,97,116,117,117,230,129,185,144, +13,178,94,160,5,140,90,180,173,183,181,224,169,167,158,193,3,15,252,139,235,185,43,175,184,124,201,168,182,138,146,46,235,98,149,45,200,93,174,130,34,184,138,244,7,22,88,96,129,85,67,217,11,172,6,227, +130,9,134,44,203,67,85,235,175,66,13,199,11,70,165,34,159,177,219,50,43,33,92,46,178,170,88,140,141,202,41,3,150,143,219,120,94,64,38,147,66,56,108,116,100,243,2,173,87,157,45,133,219,88,206,25,123,108, +116,234,156,157,157,1,64,144,74,39,17,109,104,196,236,108,98,65,184,141,205,55,41,200,39,95,231,163,100,167,35,126,247,230,219,42,62,96,226,241,56,40,138,66,42,149,66,60,30,135,36,73,8,155,0,55,49,49, +129,217,217,89,0,64,107,107,43,0,224,127,253,211,125,121,100,105,227,155,59,227,52,252,228,108,231,254,219,47,245,249,94,209,104,212,1,172,98,94,181,214,105,97,15,120,138,162,33,205,43,74,6,44,203,67, +47,144,32,21,9,135,113,219,173,31,198,109,183,126,248,130,152,141,59,103,127,126,173,108,43,141,155,204,14,60,116,201,23,83,107,178,97,193,48,205,112,160,204,89,123,96,117,71,22,129,15,2,91,16,160,101, +131,150,219,53,5,71,171,137,78,189,94,119,252,218,220,231,91,57,178,32,151,16,64,150,83,62,128,90,250,71,23,107,144,64,51,44,52,85,177,185,205,78,0,3,64,211,140,155,219,28,64,251,95,191,240,229,202,39, +34,138,130,241,241,113,164,211,105,136,162,136,230,230,102,164,211,105,12,14,14,34,30,143,35,149,74,97,114,114,210,126,253,227,123,30,174,62,183,89,49,181,249,98,50,252,232,60,95,169,6,203,62,248,187, +183,150,60,203,240,218,218,181,107,241,238,187,239,34,28,14,67,146,36,172,92,185,210,134,218,9,179,213,172,36,73,32,132,160,161,161,1,130,32,32,157,78,227,223,254,225,157,232,235,235,195,151,190,248,57, +215,103,250,5,43,91,251,67,33,183,29,174,247,245,5,142,168,170,12,164,170,42,187,103,23,117,58,43,173,165,169,170,108,95,12,116,77,131,166,41,85,189,136,57,149,20,171,213,162,113,33,42,174,248,50,44,159, +237,96,227,72,54,11,192,182,126,140,232,122,205,195,87,2,11,204,127,24,208,0,112,193,10,80,45,185,113,17,156,219,197,98,108,179,48,75,236,57,56,207,139,102,157,250,52,248,144,8,57,147,206,29,143,74,168, +114,32,136,17,179,196,39,5,65,48,114,115,210,233,52,66,124,8,25,115,124,205,194,43,242,114,219,127,253,175,149,195,172,44,203,224,121,30,28,199,161,189,189,29,178,44,99,114,114,18,201,100,18,203,150,45, +131,40,138,118,233,48,73,146,144,74,165,64,211,180,45,124,62,241,248,35,85,227,54,235,54,155,111,38,144,175,218,129,117,215,171,206,58,129,86,146,36,100,50,25,67,234,46,193,122,122,122,144,72,36,192,48, +12,78,158,60,137,120,60,142,68,34,97,43,118,138,162,64,211,52,112,28,135,68,34,1,65,16,160,105,26,66,161,144,41,123,207,226,143,254,195,103,240,253,255,249,77,143,188,77,185,249,211,147,85,231,165,254, +74,141,175,66,38,253,133,6,180,246,12,79,78,131,97,56,27,104,173,65,66,181,179,43,43,175,37,75,136,6,138,98,42,170,101,170,249,252,30,154,166,64,51,75,133,5,3,217,194,30,51,129,5,86,47,199,97,0,182,213, +51,77,85,115,42,15,44,6,176,45,29,2,211,96,185,144,89,1,73,4,1,1,31,18,144,73,167,202,254,92,162,235,16,197,112,54,86,21,4,161,80,200,100,18,222,236,26,70,129,101,89,152,2,104,206,10,188,19,104,51,153, +12,20,69,41,184,130,236,7,181,214,231,201,178,140,84,42,133,137,137,9,132,195,97,168,170,10,134,97,112,254,252,121,164,82,41,140,143,143,67,215,117,208,52,109,179,219,238,15,124,8,207,60,253,139,170,114, +27,235,7,169,37,129,174,227,113,11,104,53,77,67,34,145,40,25,102,219,218,218,236,219,241,120,28,39,78,156,64,71,71,7,104,154,134,40,138,246,23,183,110,167,82,41,251,126,115,115,51,70,70,70,16,14,135,113, +254,252,121,196,98,49,220,122,219,191,194,35,15,255,75,206,14,23,115,132,159,51,139,197,253,58,65,182,179,179,51,7,108,253,124,53,62,62,94,242,193,146,148,36,236,251,213,11,144,204,125,14,139,34,118,94, +123,245,146,169,128,96,149,242,50,150,247,25,232,57,19,39,173,58,159,195,113,80,149,185,109,207,15,162,140,199,232,32,227,121,129,6,17,77,211,236,90,196,129,5,182,48,22,84,82,169,182,49,44,11,77,85,151, +212,62,57,89,32,95,119,179,80,72,68,58,35,193,8,147,211,93,239,203,23,43,75,81,116,65,110,227,121,62,71,165,181,183,227,0,90,93,215,33,73,82,89,48,235,252,62,20,69,97,114,114,210,46,89,42,8,198,62,78, +78,78,34,30,143,35,157,78,219,252,67,8,129,166,105,72,165,82,144,101,25,161,80,8,187,222,255,187,216,251,236,227,213,225,54,66,10,7,26,122,99,105,253,0,184,82,160,141,70,163,104,110,110,198,202,149,43, +33,138,34,206,156,57,3,81,20,17,14,135,209,212,212,132,72,36,98,127,78,36,18,65,60,30,71,103,103,39,250,250,250,32,138,162,13,184,227,227,227,24,29,29,197,185,115,231,108,242,119,66,120,206,239,237,201, +168,203,227,45,167,19,12,200,76,74,72,38,37,12,14,30,199,224,224,113,87,123,92,65,16,64,211,180,253,154,100,82,194,192,64,182,43,89,118,86,147,201,249,81,104,218,87,44,199,247,238,251,1,90,91,91,176,170, +187,11,71,142,28,69,107,107,11,238,185,231,94,36,37,105,73,94,204,88,199,197,172,218,74,92,181,0,57,215,130,142,100,11,165,142,49,12,3,150,229,193,176,193,164,34,176,5,195,149,178,149,186,192,74,3,219, +69,74,175,238,241,94,81,32,203,50,100,57,13,213,7,212,189,9,90,70,101,2,82,20,140,173,208,131,114,184,205,171,210,86,3,104,141,239,28,66,42,149,66,38,147,193,187,239,190,139,145,145,17,123,187,150,37, +147,73,72,146,228,98,67,11,110,51,153,12,100,89,198,213,215,188,127,206,220,102,237,27,235,247,68,190,22,104,133,28,93,174,66,219,220,220,108,67,172,245,152,5,199,86,21,1,47,161,139,162,8,73,146,236,192, +99,81,20,109,168,180,102,1,179,179,179,190,85,12,252,131,140,75,15,65,56,125,250,52,0,224,158,123,190,105,168,178,142,183,164,82,41,188,251,238,36,78,157,58,109,63,246,143,255,248,35,36,102,166,43,58, +80,142,30,61,134,85,61,171,112,229,149,151,3,0,158,124,234,105,92,121,229,229,136,68,194,24,58,61,132,13,27,214,47,242,139,150,187,92,75,22,98,171,31,67,85,139,165,234,236,119,14,226,57,231,27,102,173, +174,77,65,8,66,96,11,107,65,130,98,96,197,32,87,7,40,26,0,3,93,87,33,203,42,56,78,128,174,107,174,132,45,55,36,10,200,164,37,163,44,150,125,237,147,65,51,44,116,77,45,2,178,62,44,151,239,181,166,205,5, +104,45,19,4,1,162,40,98,108,108,204,197,132,186,174,219,42,45,33,4,203,151,47,199,123,239,189,103,243,157,166,105,246,127,154,166,171,198,109,115,26,149,45,149,214,75,225,197,172,185,185,25,241,120,28, +225,112,24,227,227,227,136,68,178,179,14,166,72,34,78,60,30,7,0,140,140,140,96,98,98,194,14,65,8,133,66,152,152,152,128,174,235,184,106,107,109,91,196,198,227,113,251,123,24,80,155,171,158,38,18,133,129, +150,54,227,134,252,186,143,108,216,176,30,71,142,28,197,147,79,62,141,135,31,121,20,0,48,58,58,134,159,61,252,115,180,180,180,44,41,80,113,195,201,226,80,62,85,69,129,95,232,65,42,149,194,192,192,32,6, +6,6,237,149,132,192,170,105,52,216,197,170,226,4,182,212,136,5,28,31,10,58,19,6,86,228,48,209,140,255,206,171,24,93,152,113,236,90,178,166,105,154,130,176,40,162,181,117,57,4,33,108,39,159,85,106,150, +74,155,201,100,230,12,180,198,247,13,129,231,121,208,52,141,230,230,230,156,21,106,203,146,201,164,11,102,25,134,177,1,181,154,220,198,230,11,163,245,99,252,124,177,183,153,76,166,172,15,77,165,82,246, +142,183,180,180,20,5,89,239,123,69,81,132,40,138,24,25,25,177,75,72,0,134,146,187,126,253,250,28,162,207,9,60,70,110,54,157,115,31,139,127,7,9,58,33,96,88,14,154,170,96,249,242,54,187,212,152,101,28,199, +67,41,144,252,85,44,30,240,179,159,253,19,188,246,234,235,104,109,109,193,141,55,238,6,0,220,249,199,159,66,107,235,226,135,90,218,204,106,181,193,190,140,216,200,124,241,67,222,238,115,190,218,74,9,138, +252,158,61,79,98,207,158,39,113,215,103,63,131,117,102,217,182,129,193,227,248,198,61,223,196,205,55,223,132,155,111,190,9,127,119,207,223,227,248,241,183,241,221,239,220,107,131,237,99,143,237,193,99, +143,237,113,109,107,247,238,93,248,216,199,110,183,239,127,234,83,119,98,253,250,117,248,220,231,238,178,31,251,219,191,253,6,142,29,27,192,15,126,112,223,220,175,159,53,246,205,66,154,161,142,203,80, +228,116,80,31,52,176,192,2,171,123,179,242,108,8,33,69,235,213,22,50,65,8,187,242,143,104,134,201,27,202,237,171,205,230,225,54,111,243,132,185,154,165,216,90,229,88,45,193,49,157,78,219,113,182,64,174, +112,201,48,12,46,185,228,146,57,115,155,245,90,182,208,96,88,10,225,169,170,90,150,74,11,100,19,166,10,1,173,149,37,231,132,217,241,241,113,23,192,138,162,136,116,58,141,145,145,17,251,118,79,79,143,157, +145,87,96,244,247,45,203,85,168,249,130,251,187,17,132,35,162,203,7,97,159,4,46,142,171,60,222,111,232,244,16,94,125,245,117,36,37,9,79,62,245,52,34,225,48,118,238,188,122,73,64,173,213,95,187,148,30, +217,121,59,165,148,81,148,58,95,209,230,185,128,28,113,204,112,45,160,109,105,105,193,101,151,93,10,0,120,241,197,151,240,204,51,123,33,138,34,110,185,229,230,218,136,0,117,234,155,218,129,173,81,150, +173,118,49,210,129,5,86,222,117,204,57,233,10,44,176,252,70,153,161,8,101,95,228,203,22,49,74,225,54,93,215,171,162,210,58,205,74,232,23,69,17,60,207,219,37,89,9,33,182,248,152,76,38,115,120,81,85,213, +57,115,27,203,241,160,96,36,199,177,165,12,132,213,182,112,56,156,119,208,116,198,212,58,127,0,171,198,153,101,19,19,19,85,7,132,156,120,14,159,215,49,44,139,68,98,26,169,116,10,154,170,128,97,57,164, +82,41,59,118,196,61,19,170,172,76,215,232,232,24,158,124,242,105,252,241,157,159,178,171,29,36,37,9,15,60,240,19,180,180,182,160,103,85,247,162,63,197,139,1,109,177,238,116,217,110,198,164,192,101,132, +50,1,45,183,247,180,31,216,85,2,89,169,84,202,6,218,47,127,249,139,246,164,107,215,174,27,240,63,254,199,221,56,120,240,141,170,67,109,113,223,144,162,215,54,107,151,173,125,175,182,111,170,10,15,102, +67,14,69,150,139,214,133,12,44,176,249,157,104,9,174,9,110,96,129,249,89,86,181,173,157,176,177,208,230,42,39,6,160,177,177,209,94,145,23,4,1,195,195,195,5,223,239,12,67,45,236,75,193,238,230,70,8,1,199, +101,67,128,210,105,9,236,66,56,211,57,80,250,65,44,144,93,162,214,117,29,169,84,10,132,16,187,1,131,21,139,27,143,199,49,57,57,9,81,20,93,221,42,242,65,106,53,204,206,208,55,129,85,83,21,164,82,18,198, +198,198,114,129,214,243,241,44,91,90,253,189,164,36,161,181,181,213,85,190,43,18,14,99,227,134,117,102,177,229,165,107,126,128,38,203,10,70,71,199,48,157,72,96,102,102,22,82,50,91,7,153,166,105,240,60, +143,112,36,140,104,67,4,209,88,20,173,45,113,176,44,11,138,162,236,255,160,40,163,110,31,40,80,148,255,177,81,214,241,98,190,246,224,193,67,0,128,247,191,255,122,27,104,1,160,165,37,142,255,246,223,190, +132,150,150,120,141,125,35,227,189,247,70,49,61,157,64,34,49,131,100,50,233,242,77,40,196,35,18,137,160,161,161,1,141,141,49,180,180,180,128,227,178,190,49,150,120,140,210,68,134,155,168,185,251,166,234, +7,133,6,69,214,76,117,236,194,172,231,28,88,125,90,78,71,169,192,2,171,231,241,117,30,75,208,101,50,25,91,136,180,242,157,10,114,79,50,89,18,183,201,114,218,172,191,235,110,88,165,105,138,241,120,53,192, +180,92,147,36,201,6,0,47,208,122,183,107,117,19,179,150,247,195,225,176,11,30,172,88,13,171,195,216,66,12,194,201,164,228,91,178,163,82,235,89,213,141,95,227,69,124,225,11,95,70,75,75,28,225,72,4,163, +163,163,104,109,109,197,157,59,175,94,50,10,135,83,113,243,3,182,177,177,113,156,62,61,140,55,15,191,133,241,241,9,104,154,142,76,38,131,76,70,134,170,170,118,136,10,203,178,8,241,60,248,16,15,154,166, +208,220,220,132,77,155,54,96,85,119,39,154,154,154,64,211,148,11,112,41,154,6,69,224,11,183,214,231,127,227,158,111,230,253,238,12,195,218,239,27,27,51,66,105,186,186,186,236,231,7,6,6,237,219,227,227, +227,88,183,174,223,190,127,236,216,0,62,245,169,59,231,12,179,99,99,99,56,121,242,52,222,120,227,48,198,199,199,161,170,70,121,148,116,58,147,235,155,16,143,80,40,4,134,49,2,249,47,190,120,19,86,173,234, +70,115,115,19,104,154,118,251,134,162,109,191,212,29,220,26,211,220,96,100,10,172,110,204,26,88,117,77,11,186,13,6,86,247,70,205,99,213,142,80,40,132,149,43,87,150,181,170,94,206,248,98,1,173,78,116,80, +196,209,157,213,185,177,90,75,217,44,203,218,217,251,165,102,135,91,101,188,0,163,149,110,58,157,206,113,146,87,165,173,22,164,151,234,222,153,153,68,222,253,117,255,8,165,7,102,127,242,147,191,15,0,56, +117,122,200,6,221,197,126,225,183,58,135,49,44,15,77,85,65,81,12,8,209,114,186,211,141,141,141,227,205,195,71,240,194,11,251,65,81,20,36,73,130,162,168,160,40,67,193,103,24,26,28,199,152,53,126,141,227, +54,35,103,140,144,16,77,195,196,196,20,222,125,247,28,0,130,45,91,174,196,69,155,54,160,169,105,25,104,154,54,0,215,4,62,63,184,37,230,191,174,174,78,123,34,37,73,18,70,134,207,152,199,9,3,189,72,12,249, +215,191,126,143,235,190,51,9,44,28,22,209,221,157,253,45,135,134,134,32,73,169,130,64,235,133,217,67,135,14,99,223,190,23,0,88,190,81,10,251,198,156,49,107,154,134,177,177,9,140,140,188,11,0,216,182,109, +11,46,185,100,147,9,254,180,9,184,166,111,10,192,109,189,39,149,213,194,70,70,206,32,41,73,104,137,55,187,42,159,120,109,96,240,56,0,160,187,171,211,53,249,14,108,105,154,53,176,106,154,209,1,145,9,170, +115,4,54,159,144,58,15,220,54,23,179,216,205,170,95,91,139,253,215,53,213,28,167,28,80,155,215,49,230,146,109,65,221,196,4,132,66,210,178,5,119,157,157,157,246,23,177,46,248,86,248,65,50,153,68,36,18, +113,37,135,89,161,7,249,96,215,250,107,41,180,43,86,172,192,154,53,107,138,67,110,145,12,240,255,252,159,63,13,138,162,16,10,133,240,157,239,252,189,217,210,206,136,19,185,239,190,123,237,109,176,44,11, +10,192,247,238,251,22,40,202,173,58,255,207,255,249,45,23,16,80,20,133,31,124,255,59,62,159,74,251,170,79,15,63,242,40,142,28,57,234,122,172,103,213,42,27,118,23,19,208,82,118,181,3,198,232,30,166,235, +102,76,45,109,30,119,52,0,3,110,143,28,29,196,158,61,79,98,106,42,97,182,236,211,192,178,52,56,14,136,68,194,104,108,140,162,161,33,138,72,36,12,65,224,205,99,72,71,38,35,35,149,146,144,76,166,33,73,105, +76,77,205,64,81,84,236,219,247,34,222,120,227,48,118,237,186,22,253,253,107,65,83,180,9,112,122,22,228,76,184,117,182,26,191,253,163,31,65,127,127,31,40,138,178,171,31,24,96,169,185,150,112,186,186,140, +99,122,120,120,216,86,100,173,24,218,151,94,58,144,19,150,210,221,221,237,91,253,192,15,102,189,127,223,122,235,40,30,125,116,15,166,166,166,32,203,115,247,205,115,207,237,195,193,131,111,96,247,238,93, +88,191,190,31,52,77,217,62,201,66,174,1,183,150,162,91,74,37,133,106,90,173,226,103,173,42,23,238,107,138,128,205,155,47,193,29,119,220,102,95,95,70,70,206,224,187,247,125,31,227,99,217,137,116,255,186, +62,252,199,59,63,229,130,214,253,251,95,198,131,15,62,140,84,42,251,125,119,237,186,14,183,223,126,171,13,187,214,49,20,111,105,198,87,239,254,239,0,128,251,239,255,49,246,239,255,13,0,216,213,53,234, +217,238,188,243,79,114,124,182,125,251,86,123,63,75,241,171,223,107,44,179,175,175,139,204,242,53,209,241,51,239,74,77,56,44,98,199,142,237,184,229,150,155,237,99,202,239,186,208,210,210,130,237,219,183, +98,251,246,109,248,31,255,227,110,0,192,215,190,246,87,246,123,6,6,6,241,245,175,223,131,174,174,46,124,249,203,95,92,52,190,251,147,63,185,11,225,112,4,127,253,215,198,62,61,251,236,94,252,244,167,15, +1,0,190,252,229,47,161,171,171,19,99,99,227,248,243,63,255,34,46,187,108,51,62,253,233,59,243,174,118,221,114,203,205,88,183,174,63,71,88,200,39,50,44,2,106,205,203,96,115,229,182,249,0,98,75,24,178,146, +196,252,172,92,110,227,184,16,84,85,54,216,130,162,236,214,245,54,115,228,219,127,10,84,78,252,133,177,77,119,15,94,239,237,66,0,218,220,220,108,239,232,196,196,132,29,11,107,61,238,180,177,177,49,52, +55,55,163,165,165,5,186,174,219,53,105,173,170,7,64,110,219,217,45,91,182,160,175,175,207,118,78,118,73,213,127,255,202,224,221,26,90,46,208,158,58,61,4,41,41,225,47,190,244,231,174,199,159,124,242,105, +28,61,122,108,81,52,95,224,56,1,138,146,134,170,202,57,241,102,52,77,67,37,196,60,247,8,8,81,49,57,57,133,103,247,62,143,183,222,58,134,100,82,130,174,107,0,116,68,34,2,218,218,90,177,124,121,59,154,155, +155,209,216,216,136,72,36,2,158,231,193,243,180,61,49,82,204,238,45,233,180,132,153,25,9,137,196,12,70,70,206,98,100,228,28,198,198,38,240,216,99,79,225,162,77,235,177,109,219,251,208,216,24,3,77,51,160, +105,2,134,33,160,9,49,39,102,52,136,110,116,99,241,107,81,72,249,100,175,174,95,191,14,225,176,136,103,159,125,14,59,118,108,119,85,59,56,120,240,141,138,124,231,252,108,66,8,38,39,39,241,244,211,123, +241,230,155,111,33,153,76,86,213,55,163,163,99,248,249,207,31,195,197,23,111,194,246,237,219,176,108,89,35,24,134,54,85,95,195,71,198,126,235,57,147,180,90,197,173,207,167,117,118,173,180,47,188,227,227, +227,216,191,255,55,136,199,227,184,249,230,155,48,62,62,142,191,251,187,127,64,42,149,198,182,109,91,16,143,199,49,120,252,4,6,7,142,227,239,238,185,23,95,250,226,231,1,0,135,14,189,137,251,239,255,103, +136,162,128,93,187,174,131,40,138,216,127,224,101,236,221,251,188,49,65,50,129,207,50,39,32,143,79,76,46,58,159,137,162,128,174,110,35,220,102,120,104,24,123,247,62,143,230,230,102,236,218,117,93,73,126, +245,123,205,133,102,206,21,155,161,161,33,60,243,204,94,0,112,149,0,180,174,47,150,13,13,13,225,177,199,246,96,221,186,126,188,255,253,187,240,216,99,123,240,204,51,123,237,235,205,47,126,241,56,0,224, +227,31,191,125,81,249,162,187,187,27,199,142,13,216,229,58,135,135,179,170,222,240,240,48,186,186,58,237,36,35,75,68,240,250,48,11,254,70,253,123,203,111,99,99,227,24,27,27,67,87,87,23,34,145,250,60,214, +84,77,5,203,176,57,21,159,10,3,30,124,51,217,253,184,13,84,150,119,202,225,182,74,204,89,190,43,147,201,96,124,124,28,169,84,42,47,208,86,194,109,138,146,241,89,61,116,64,237,92,118,224,137,199,31,193, +239,220,248,97,112,28,103,199,241,249,169,180,214,193,106,253,101,89,214,174,128,32,138,34,104,154,134,40,138,246,251,105,154,182,195,20,156,106,173,213,129,236,204,153,51,57,21,7,86,172,88,129,237,219, +183,131,166,105,92,127,221,182,186,150,227,139,93,200,35,225,48,70,71,71,145,148,36,87,178,216,216,216,56,54,108,92,28,221,196,20,37,109,43,181,0,192,152,53,105,141,146,76,198,201,196,176,44,212,180,138, +179,103,207,226,137,39,159,193,241,227,111,67,215,9,116,93,5,207,83,232,233,233,65,71,71,23,58,58,58,209,222,222,142,214,214,86,19,220,68,176,172,1,90,132,16,168,170,10,73,146,144,76,38,145,76,206,98, +102,102,22,169,84,10,107,214,244,226,252,249,81,236,223,255,26,166,166,18,120,245,181,67,152,78,36,112,205,53,219,177,124,121,43,88,134,134,174,51,96,24,198,128,91,218,10,62,200,2,37,229,152,245,209,12, +3,142,23,92,19,34,81,20,237,1,230,43,95,249,170,93,210,235,224,193,55,48,54,54,134,112,184,188,37,104,39,208,234,186,142,119,223,61,139,61,123,158,196,192,192,113,91,225,174,133,111,126,243,155,215,48, +61,157,192,117,215,93,131,214,214,229,96,89,67,81,55,124,195,0,48,84,91,231,53,119,41,128,237,237,183,223,106,215,35,78,165,82,184,235,174,207,99,240,248,9,91,117,76,165,210,184,253,246,91,93,192,246, +221,251,190,143,55,14,29,198,254,253,47,99,219,182,171,240,208,207,30,1,0,252,151,255,242,159,209,217,185,210,86,105,239,254,234,215,176,119,239,243,184,225,134,107,93,32,55,50,124,6,3,131,199,177,174, +191,15,131,3,199,237,199,22,139,117,117,119,225,179,119,125,198,86,178,239,190,251,107,120,227,205,195,46,31,21,242,171,223,107,22,187,149,123,30,56,87,108,82,169,20,254,230,111,238,193,51,207,236,197, +174,93,55,184,146,75,157,171,58,7,15,30,194,183,191,125,31,6,6,6,177,123,247,46,188,244,210,1,60,251,236,94,236,222,189,11,67,67,195,56,118,108,0,151,93,182,217,21,195,191,24,172,191,191,15,199,142,13, +96,104,200,88,237,26,26,26,65,87,87,23,134,135,135,109,192,181,254,58,247,205,187,234,229,52,235,113,171,220,226,199,63,126,123,93,248,69,150,157,43,207,70,3,31,150,97,109,238,153,15,251,255,254,191,175, +224,243,159,255,11,163,53,189,166,85,21,110,45,160,157,154,154,178,69,71,73,146,242,170,194,115,225,54,85,149,17,14,55,228,42,181,126,146,118,174,66,69,249,146,189,245,56,195,48,80,20,197,55,12,65,85, +85,176,44,107,67,173,245,227,89,59,108,109,131,166,105,36,147,73,164,82,41,52,55,55,231,252,192,150,58,43,73,18,4,65,112,73,213,43,86,172,192,31,254,225,31,162,191,191,31,179,179,179,121,19,92,252,98, +3,43,26,144,43,120,79,58,157,198,55,191,249,93,124,232,67,31,44,122,114,181,182,182,96,231,206,171,113,207,61,247,98,108,108,28,145,112,24,98,88,196,181,59,175,94,84,177,181,206,236,68,142,23,92,177,168, +132,16,200,153,20,206,157,59,135,199,159,120,26,131,131,111,67,215,117,168,106,26,109,109,45,232,235,235,199,234,213,107,177,122,245,26,44,95,190,2,203,150,197,192,48,148,169,108,235,54,180,89,131,137, +40,138,16,4,1,141,141,141,246,204,48,153,76,32,22,139,33,30,111,198,193,131,135,113,226,196,41,243,115,8,118,94,179,13,203,151,183,130,97,172,237,24,96,75,244,108,57,44,239,241,174,169,138,1,229,158,153, +176,165,148,60,251,236,94,91,113,1,128,203,46,219,156,163,188,148,58,64,18,66,112,246,236,57,60,246,216,19,24,24,24,156,23,223,28,59,102,124,206,117,215,93,131,182,182,229,208,117,198,222,142,1,183,128, +174,231,130,109,77,21,255,121,44,225,53,100,14,156,162,104,92,152,7,143,159,176,213,87,167,125,232,230,15,226,141,67,135,49,56,120,28,253,253,107,49,62,54,129,75,55,95,108,3,173,117,189,186,225,250,235, +240,208,67,143,96,112,240,4,154,227,198,106,84,87,167,1,176,35,195,103,236,9,171,245,216,98,180,120,188,185,108,191,46,69,51,106,39,87,150,40,38,138,34,118,239,190,1,63,252,225,253,24,28,28,68,75,139, +255,224,110,129,93,56,108,172,86,126,236,99,31,197,183,191,125,31,158,121,102,47,6,7,143,35,28,22,43,186,222,44,248,36,201,17,194,213,221,109,192,236,142,29,219,144,74,165,112,236,216,160,107,223,187, +187,187,150,200,17,99,132,222,25,213,92,40,112,28,231,230,139,50,65,147,2,5,66,185,91,229,90,130,12,241,121,173,197,92,170,170,86,61,12,97,98,98,2,19,19,19,56,115,230,140,125,124,231,3,218,185,114,155, +95,3,9,182,184,163,224,114,176,55,4,225,255,62,245,40,174,189,238,119,192,178,44,84,85,245,5,91,81,20,49,49,49,129,247,222,123,15,28,199,65,20,69,244,247,247,67,20,69,48,102,140,165,53,99,181,42,35,68, +34,17,91,142,183,186,135,1,192,59,239,188,227,235,152,237,219,183,131,162,40,172,235,95,85,88,194,166,168,162,25,128,229,22,161,47,244,18,93,215,49,62,62,129,247,70,71,49,114,230,172,231,125,214,69,48, +87,225,222,176,113,61,34,145,48,186,87,117,219,131,223,232,232,88,142,122,91,15,102,129,135,23,64,44,160,181,84,90,43,153,194,250,63,53,53,237,0,90,13,132,200,88,179,102,21,214,173,219,132,141,27,55,162, +183,183,15,77,77,77,57,192,230,132,54,171,136,180,117,27,48,178,46,89,150,133,32,8,16,132,89,68,34,2,226,241,102,180,181,181,226,229,151,15,226,196,137,119,192,208,52,174,191,97,39,98,209,6,3,96,65,0, +176,248,157,223,121,63,62,248,193,223,1,69,211,246,137,216,215,183,22,223,253,238,63,152,199,19,131,207,127,254,207,114,124,112,203,45,55,227,150,91,110,182,43,31,116,119,119,229,36,10,249,197,114,57, +149,6,183,111,166,240,139,95,88,64,59,127,190,25,28,60,1,154,166,177,123,247,13,136,197,162,230,182,178,223,215,15,108,231,3,110,107,101,126,85,46,110,184,193,128,216,241,177,9,244,175,203,85,18,45,120, +29,159,152,196,216,248,132,9,166,157,185,175,235,50,95,55,62,97,67,173,149,100,54,49,49,97,87,206,40,148,120,86,143,54,62,62,110,199,196,30,122,227,77,67,109,235,91,91,178,95,243,189,166,127,93,159,173, +0,95,104,102,29,3,214,49,97,89,190,248,91,107,210,188,126,253,58,60,251,236,94,72,82,10,183,220,114,115,85,75,8,206,31,212,118,217,224,58,52,52,236,82,100,95,124,113,191,237,151,150,150,22,215,53,213, +175,146,204,159,253,217,103,23,78,145,45,3,70,237,186,181,176,11,174,23,101,18,107,60,162,138,188,220,143,219,188,33,8,95,251,218,95,226,174,187,62,15,134,97,160,105,90,197,96,107,53,86,144,36,9,241,120, +28,103,206,156,177,5,75,107,123,126,109,115,171,197,109,170,42,187,66,226,108,168,205,23,43,91,76,193,181,30,255,213,243,255,23,215,236,220,109,94,240,59,49,53,53,133,217,217,89,232,186,14,150,101,49, +51,51,99,191,222,34,107,171,59,152,213,70,205,25,31,235,12,87,176,238,79,76,76,96,106,106,202,229,148,109,219,182,225,186,235,174,67,95,159,49,240,196,155,35,37,211,190,49,83,97,65,136,230,235,72,235, +245,35,35,103,240,203,231,126,133,107,174,222,14,77,211,113,207,61,247,162,127,93,31,182,109,187,10,59,175,217,81,240,32,28,24,56,14,134,161,33,155,251,156,74,121,127,220,252,201,117,247,220,115,47,54, +110,220,128,7,30,248,9,110,189,245,195,184,242,202,203,177,239,215,47,98,227,134,117,117,17,83,235,141,147,229,120,33,239,9,109,45,15,80,20,3,93,87,236,227,232,153,103,159,51,67,14,116,16,34,163,183,183, +23,23,95,124,41,46,189,116,51,122,123,215,34,20,10,153,141,19,74,131,54,231,125,0,224,56,14,13,13,81,176,44,7,150,77,97,203,150,203,193,243,33,60,255,252,75,24,60,254,54,98,177,40,174,190,122,171,167, +133,160,49,207,99,0,232,52,13,26,222,128,124,171,102,42,109,238,183,187,107,92,165,23,84,111,149,131,167,158,122,214,14,57,152,111,223,12,12,28,71,99,99,12,59,119,94,13,142,203,109,175,232,4,91,215,197, +118,17,130,173,5,158,35,195,103,32,138,2,190,244,165,207,215,28,50,251,215,245,97,120,228,140,61,64,247,245,175,93,92,80,59,54,225,74,244,234,95,215,151,163,102,151,226,87,111,76,109,151,67,233,94,188, +106,45,87,213,109,174,95,191,206,142,11,93,191,126,29,62,253,233,59,93,96,247,177,143,221,142,175,124,229,110,180,180,180,96,247,238,93,139,210,111,70,28,172,136,241,241,9,91,20,232,234,234,178,97,104, +96,96,16,195,195,195,174,248,98,11,240,189,49,181,245,24,163,237,189,70,114,156,144,23,70,21,85,177,19,235,109,120,245,136,108,246,245,56,79,172,108,14,183,229,81,107,191,241,141,175,225,79,255,244,255, +133,166,105,104,109,109,197,236,236,172,221,19,160,20,75,165,82,174,246,183,103,206,156,177,243,158,188,12,87,77,110,243,62,239,229,54,182,36,128,245,204,64,188,16,76,81,20,126,189,239,25,92,181,245,90, +232,186,142,174,174,46,108,218,180,201,213,175,216,207,218,218,218,208,208,208,128,161,161,33,215,151,151,101,25,203,150,45,179,19,200,82,169,20,206,158,117,171,156,171,86,173,66,111,111,175,29,23,178, +188,53,230,34,246,124,180,239,133,217,66,191,223,244,244,52,238,253,230,125,72,165,36,108,223,118,149,189,207,103,206,156,197,253,247,255,24,61,61,171,176,178,99,133,15,196,105,248,95,247,255,11,94,126, +249,55,248,211,63,253,140,67,177,46,237,132,59,122,244,24,54,110,220,128,219,110,253,48,110,188,113,55,190,122,247,215,208,82,71,237,113,243,22,26,183,102,74,102,28,109,110,97,100,198,62,102,142,30,59, +142,183,222,58,6,93,39,80,213,52,214,172,89,133,139,47,190,20,87,94,185,5,107,215,90,131,124,101,208,230,188,111,85,177,48,46,38,10,182,110,189,2,211,211,51,216,191,255,21,28,254,237,17,44,111,107,69, +223,218,213,158,19,57,11,182,132,102,242,196,203,213,166,94,42,33,4,71,142,28,195,225,195,111,217,33,7,11,225,155,55,222,248,45,218,218,218,208,223,191,22,28,151,123,146,48,12,64,8,189,100,98,106,173, +56,217,95,254,242,87,118,98,87,188,165,25,195,67,185,93,112,70,70,206,152,23,227,38,180,152,10,236,176,79,201,26,43,164,192,187,68,223,213,185,210,78,34,179,224,111,177,77,4,44,31,69,194,97,87,216,69, +41,126,245,190,102,169,216,92,26,48,100,91,199,187,193,255,115,159,187,11,169,84,10,95,249,202,87,113,236,216,128,29,55,155,85,57,59,237,247,45,230,18,114,86,178,152,33,116,137,232,234,234,180,161,246, +217,103,127,105,76,158,60,199,74,161,152,218,250,156,244,16,251,218,45,203,105,240,124,238,239,197,206,161,36,92,78,8,130,87,57,246,64,48,5,10,127,255,247,127,131,79,127,250,46,232,186,142,229,203,151, +99,213,170,85,104,106,106,42,233,243,36,73,2,77,211,24,29,29,181,195,69,253,58,171,86,139,219,74,1,93,0,160,169,34,111,112,74,190,222,231,189,247,95,62,240,43,60,252,179,127,54,85,160,6,68,34,145,130, +255,37,201,104,90,208,209,209,129,21,43,86,160,185,185,25,205,205,205,136,197,98,16,4,1,225,112,216,110,182,224,125,175,174,235,72,167,211,104,111,91,134,229,173,177,146,191,163,115,127,66,161,16,194, +225,6,132,195,13,57,64,63,56,120,2,239,190,123,22,51,51,9,52,55,199,205,231,104,208,12,99,207,62,102,18,51,56,119,238,188,203,95,201,164,132,227,199,79,224,240,225,195,142,217,187,97,179,179,51,165,157, +224,171,186,113,228,200,81,156,58,61,132,72,56,140,47,126,233,243,120,224,129,127,193,233,83,167,23,232,66,77,131,227,5,251,127,193,215,115,33,163,68,150,103,125,218,185,180,62,58,58,142,39,30,255,191, +72,38,37,16,162,163,173,173,5,235,214,109,194,165,151,110,118,64,27,230,12,109,214,253,108,76,40,11,142,227,113,221,117,59,176,98,69,27,210,233,12,94,62,240,170,93,62,76,81,20,168,138,10,85,83,161,105, +214,54,116,232,58,113,125,255,90,92,236,178,190,25,197,99,143,61,110,118,87,89,72,223,164,241,210,75,7,48,61,109,148,15,83,85,211,63,170,6,77,211,204,237,100,183,81,43,223,204,151,253,219,63,248,4,68, +81,192,222,189,207,219,128,209,223,183,22,169,84,218,6,80,203,126,177,231,9,123,144,141,199,227,136,183,52,227,141,67,135,109,216,181,38,226,191,124,238,121,243,117,110,37,214,130,192,225,161,225,69,169, +78,134,195,97,172,235,239,195,186,254,62,95,160,45,230,215,165,104,115,237,40,246,210,75,7,204,99,37,119,165,71,20,69,252,225,31,254,27,0,192,255,254,223,63,91,146,254,179,224,124,96,96,192,86,95,173, +85,47,43,158,214,89,249,96,49,154,81,26,84,128,44,103,76,241,46,5,57,99,176,68,38,147,114,199,135,22,105,124,67,21,81,52,115,184,173,192,235,191,253,237,111,224,43,255,253,139,96,24,198,174,46,85,202, +255,120,60,14,65,16,208,220,220,108,39,20,23,99,190,106,112,91,190,215,187,37,41,63,168,167,220,68,239,140,209,176,218,106,102,133,92,183,106,251,189,251,254,193,53,51,241,14,118,165,180,106,179,10,245, +251,237,76,190,191,238,157,244,44,135,82,20,24,154,131,174,171,16,68,1,105,51,20,32,157,73,219,179,3,138,98,236,237,60,246,139,39,241,145,143,124,200,179,31,186,89,78,41,107,83,83,211,152,78,36,176,174, +191,15,83,83,211,56,115,230,93,251,185,74,151,49,35,225,48,62,122,219,239,97,232,244,16,122,204,152,218,207,126,246,79,240,200,195,143,66,44,178,188,194,241,161,170,93,164,179,45,32,249,114,206,92,223, +109,56,1,238,173,35,131,152,152,156,130,174,107,224,121,160,175,175,223,140,19,173,13,180,89,143,89,199,73,83,211,50,124,226,19,119,224,59,223,249,71,76,77,39,112,108,96,16,151,109,190,196,221,89,11,217, +219,52,99,40,250,238,227,139,177,3,253,203,242,79,17,184,61,116,232,183,152,156,156,172,11,223,76,79,79,227,173,183,6,112,229,149,155,61,93,199,178,231,27,33,76,205,213,218,249,72,22,19,69,17,119,220, +113,27,238,191,255,159,241,224,67,143,224,63,222,249,71,184,249,230,155,112,232,208,155,120,232,161,71,48,50,50,226,42,233,213,217,181,18,219,182,93,101,40,142,31,189,21,247,221,247,3,252,221,223,253, +3,182,111,223,106,151,244,26,31,155,192,174,93,215,33,30,143,219,177,183,0,236,248,218,84,42,189,232,226,105,171,225,87,203,30,122,232,145,156,229,226,59,110,191,181,40,40,215,3,192,42,114,218,190,6,84, +114,236,15,13,13,225,111,255,246,27,0,178,101,167,118,239,222,149,55,38,118,221,186,126,236,216,177,13,47,190,184,31,207,62,187,23,239,127,255,174,37,117,156,88,192,42,73,41,151,34,187,126,253,58,187, +94,175,179,107,163,215,135,206,237,212,115,178,156,44,167,1,16,240,188,0,128,66,38,99,112,8,77,51,208,117,21,153,140,146,109,82,68,179,80,85,217,124,173,155,129,156,33,8,174,228,48,135,90,155,195,109, +128,121,223,193,82,86,62,9,5,124,246,174,255,84,17,183,205,206,38,124,85,227,106,113,155,181,45,255,164,177,220,207,240,109,190,224,141,1,201,255,156,241,245,253,78,236,124,39,187,5,201,165,72,233,206, +157,241,157,173,120,234,102,102,31,115,239,40,205,112,102,177,127,3,150,51,233,12,104,154,69,70,206,128,232,154,225,56,10,38,32,0,35,35,239,66,85,84,132,197,48,104,154,49,99,97,41,251,224,243,198,138, +252,114,239,243,104,109,105,201,81,34,188,133,247,203,177,13,27,214,99,195,6,55,232,22,107,188,192,176,60,226,205,205,72,250,4,102,87,162,58,204,85,125,32,38,44,101,161,75,193,216,216,4,246,237,251,181, +57,43,213,209,211,211,131,213,171,215,162,183,183,15,161,80,8,213,88,86,247,131,54,167,154,72,8,65,87,215,74,108,217,114,57,158,123,238,5,188,253,246,41,172,93,211,11,138,138,229,128,155,213,98,215,10, +67,200,154,86,117,149,118,108,108,12,191,254,245,11,144,229,250,241,205,137,19,111,163,191,127,13,98,49,79,171,97,138,114,52,100,160,107,214,148,193,74,64,156,15,219,182,237,42,236,121,252,73,188,113, +232,176,93,114,235,191,252,151,255,140,239,222,247,125,187,65,2,144,109,190,96,217,230,205,151,224,15,254,224,95,227,193,7,31,118,169,186,206,230,11,46,64,113,12,218,139,45,158,182,26,126,181,204,175, +226,195,92,175,93,243,97,150,162,70,136,86,241,177,41,73,41,27,214,194,97,17,187,119,239,178,171,168,228,179,15,125,232,102,188,248,226,126,60,246,216,30,187,38,246,210,129,218,46,23,192,59,33,213,242, +147,23,248,157,62,92,52,138,62,23,50,193,214,184,70,134,66,97,163,140,164,185,162,75,33,219,76,64,211,20,163,132,100,158,82,95,222,132,177,130,176,235,19,139,155,45,89,105,142,69,22,12,151,193,109,4,164, +64,205,255,185,113,91,41,219,242,189,127,250,212,49,226,78,82,201,77,90,177,111,131,216,212,239,247,30,63,202,47,84,236,215,186,31,137,68,145,76,206,128,162,25,16,93,3,227,128,80,11,68,157,247,11,83,191, +219,113,20,197,64,12,135,109,199,103,50,142,194,189,230,15,47,154,181,68,41,115,25,224,165,253,175,224,240,225,223,226,230,155,111,194,63,252,195,183,32,138,97,252,155,79,254,62,194,225,6,60,244,179,71, +48,54,54,6,154,166,241,201,79,124,28,0,240,247,255,240,109,188,255,253,55,224,162,77,89,10,253,135,123,191,3,93,215,112,151,35,155,247,27,223,248,38,254,236,115,127,106,159,180,213,86,183,24,150,199,15, +255,241,127,161,169,169,9,183,222,250,97,232,132,64,215,148,50,183,66,87,79,121,212,117,80,52,13,57,147,178,33,234,181,215,223,192,147,79,62,131,169,169,41,68,34,60,222,247,190,247,225,234,171,175,69, +127,255,134,178,50,249,203,133,54,227,182,81,147,143,227,120,68,34,17,156,63,63,137,111,125,235,62,40,138,140,43,175,216,140,245,235,13,120,228,67,33,240,28,7,142,99,205,68,42,6,12,203,130,118,128,156, +223,111,87,201,0,231,220,191,87,94,121,29,123,246,60,81,103,190,81,176,101,203,21,216,184,113,61,66,161,144,225,31,158,3,203,90,254,97,193,48,172,221,141,172,226,50,121,37,192,237,66,90,208,38,55,48,247, +64,202,204,9,106,3,91,162,150,39,4,203,205,65,70,232,129,21,83,155,201,72,224,67,34,64,140,124,34,157,100,5,56,150,97,64,0,252,252,255,60,6,138,162,240,225,15,223,236,102,179,44,93,250,176,26,252,185, +205,243,30,23,175,249,84,99,200,199,109,206,215,39,205,208,202,82,96,180,20,110,43,164,210,122,99,111,189,207,209,165,144,180,125,27,148,173,247,186,95,83,154,188,236,84,121,92,207,153,239,15,135,195, +160,105,163,49,3,195,112,96,88,227,191,181,68,229,124,175,85,38,202,235,152,112,36,10,154,102,179,109,11,157,165,32,40,163,56,112,40,20,130,32,8,16,133,108,119,50,107,239,5,33,156,109,237,38,136,104,110, +142,35,30,143,131,162,104,123,80,15,135,195,57,101,203,94,127,253,144,107,10,229,13,83,152,47,147,82,41,164,82,41,80,52,93,54,208,82,20,83,53,160,213,52,13,170,42,67,83,85,251,100,147,101,21,39,78,156, +132,36,73,96,89,26,109,109,173,232,232,232,196,242,229,43,230,5,218,172,199,100,57,131,76,70,67,44,22,195,234,213,189,200,100,100,156,63,63,138,76,70,129,162,170,80,21,5,170,154,141,171,213,117,29,68, +215,93,19,190,106,196,143,58,183,37,203,50,142,31,63,1,73,74,213,153,111,50,56,119,238,60,50,153,12,84,85,53,227,106,85,71,92,173,17,119,236,85,123,151,154,117,118,174,196,58,51,134,182,144,89,177,166, +1,208,94,24,182,208,147,173,192,22,203,36,200,189,196,110,0,45,177,133,36,203,120,158,71,40,36,34,20,18,93,85,16,242,9,5,249,98,101,13,86,131,63,183,57,222,156,195,107,14,86,66,142,64,152,203,113,233, +84,218,21,170,87,144,243,170,8,180,249,84,90,219,155,150,162,105,57,188,168,228,235,75,223,197,129,214,217,31,219,185,227,41,41,105,59,168,161,161,193,6,220,176,104,252,7,5,52,68,99,160,105,214,128,93, +198,168,117,235,220,118,164,33,138,112,36,10,10,176,3,153,195,145,168,239,175,239,222,151,220,199,173,184,216,84,218,0,196,137,241,113,16,98,64,108,58,157,70,83,83,147,107,112,43,101,16,103,104,6,31,54, +251,82,23,179,83,167,135,176,111,223,11,0,140,74,8,163,163,70,24,195,195,143,60,138,163,71,143,21,85,71,43,135,44,205,44,6,93,5,213,216,236,190,101,117,225,34,132,96,116,108,20,35,195,195,80,20,21,44, +75,99,249,242,118,180,183,183,99,217,178,216,156,161,205,239,113,47,180,89,247,85,85,53,179,79,121,244,246,246,130,162,40,36,37,9,179,179,51,80,21,21,138,98,64,155,1,110,90,54,33,10,133,129,77,145,211, +21,13,114,132,16,188,247,222,24,134,135,135,161,40,74,253,249,38,41,33,145,152,53,129,214,72,22,211,117,205,13,253,4,75,18,102,3,11,172,152,242,22,88,96,21,162,174,1,178,161,144,139,69,74,173,163,95,140, +99,124,168,55,247,225,60,96,235,7,183,94,110,163,40,163,37,175,247,177,162,226,104,30,160,45,196,151,126,19,131,124,254,96,157,64,147,47,150,214,93,248,215,236,45,108,18,191,21,151,97,252,245,122,209, +29,91,27,14,135,29,5,121,103,125,126,46,99,112,165,232,236,54,82,82,202,238,138,228,84,108,109,167,208,12,68,65,64,42,149,66,216,82,93,169,236,204,36,236,40,163,229,205,8,244,251,221,157,38,10,34,154, +154,154,64,211,52,26,26,162,136,52,132,113,251,237,31,193,209,163,131,120,229,149,87,237,37,40,16,130,241,2,241,179,145,112,4,43,87,118,96,253,250,210,106,152,166,36,9,163,102,17,238,35,71,7,176,113,131, +209,101,172,20,19,205,106,17,149,42,8,213,82,106,93,176,167,40,32,4,152,158,78,64,211,117,80,148,209,93,168,185,185,25,173,173,173,121,187,97,149,163,66,230,127,143,230,251,30,69,145,161,235,58,218,219, +219,17,14,135,49,51,51,139,137,201,41,68,163,81,48,12,13,85,101,64,51,52,24,141,1,77,235,70,220,168,174,23,40,241,149,171,222,148,178,52,105,125,239,233,233,105,104,90,189,250,102,6,147,147,147,104,108, +140,154,89,174,42,24,134,1,77,107,96,24,218,220,190,94,155,18,95,36,219,114,121,62,45,8,35,8,44,176,192,230,7,109,169,252,201,243,185,25,252,57,33,14,206,240,89,95,86,203,199,109,214,251,168,92,144,246, +198,208,18,202,255,251,53,52,52,32,57,155,204,91,103,182,16,140,123,129,214,201,109,121,89,173,136,74,75,81,20,88,203,9,162,24,65,42,149,52,193,40,130,148,148,116,57,41,167,26,2,72,206,243,22,216,18,159, +96,99,66,136,11,100,179,50,51,13,162,107,8,135,27,64,209,185,93,35,156,217,177,94,167,68,34,81,155,72,93,64,235,133,88,199,143,86,108,118,227,253,222,214,128,214,212,108,168,179,145,176,136,190,181,125, +120,231,157,119,204,224,110,10,225,112,4,146,233,47,167,197,227,205,232,238,234,66,44,22,173,202,236,62,20,18,16,10,229,31,96,53,85,70,179,9,225,0,140,4,185,66,33,8,20,3,10,0,203,113,53,59,97,157,177, +58,146,148,70,38,35,131,166,105,52,54,70,209,216,216,136,198,198,70,84,115,89,221,253,126,127,104,3,116,40,74,6,170,42,163,169,169,9,130,32,96,102,38,129,217,153,36,84,213,0,54,150,213,161,91,74,164,89, +214,139,166,137,121,220,83,5,225,173,212,56,59,103,76,122,34,145,64,58,157,169,83,223,204,24,42,182,237,27,171,103,120,182,172,23,77,211,246,181,182,154,96,59,223,64,187,127,255,203,120,240,193,135,145, +74,101,63,247,15,254,224,95,219,149,14,238,249,198,55,49,56,112,28,247,221,119,47,246,236,121,210,213,132,192,105,119,125,246,51,56,62,120,34,239,243,247,221,119,111,93,14,176,214,254,57,237,210,205,23, +227,142,219,111,181,87,167,114,246,219,49,208,222,119,223,189,24,24,60,142,111,220,243,77,220,124,243,77,184,249,230,155,242,126,214,248,248,56,190,248,197,175,32,222,210,140,175,222,253,223,1,0,135,14, +189,137,251,238,251,65,78,119,49,235,51,243,37,223,205,191,233,246,32,50,159,201,140,129,93,152,160,155,47,97,63,95,114,152,253,188,183,26,130,151,219,28,96,139,60,220,150,79,61,214,117,221,20,32,117, +68,26,162,144,146,179,37,43,203,190,64,235,225,54,63,117,183,152,74,235,82,106,101,115,217,217,8,3,72,230,84,54,240,5,91,179,92,132,115,131,89,197,214,31,110,115,224,142,232,136,68,162,144,82,18,34,225, +136,27,130,83,18,26,34,13,69,101,117,10,249,203,64,248,1,173,21,199,91,72,165,245,154,85,144,56,20,18,145,201,164,209,109,215,204,35,238,56,59,115,131,239,223,117,61,62,244,161,15,162,161,161,161,224, +15,157,207,70,71,199,236,208,131,83,38,88,159,61,123,46,167,88,185,85,254,195,57,80,68,34,17,199,231,48,174,90,185,52,205,130,153,67,129,231,82,77,211,52,27,174,173,223,59,153,76,34,147,145,193,48,166, +242,29,137,32,18,17,81,203,56,81,63,104,83,85,2,66,140,216,208,104,52,12,158,231,161,42,42,210,233,180,29,118,160,105,42,116,221,128,55,70,163,161,211,12,8,161,93,208,54,23,120,243,6,232,27,190,201,212, +167,111,84,5,146,228,244,141,241,126,227,55,206,170,181,213,242,205,66,89,42,149,194,131,15,62,12,0,118,135,172,151,94,58,128,251,239,255,103,244,247,175,205,137,167,141,199,155,93,109,116,37,73,242,205, +232,247,118,206,90,12,102,237,215,248,248,56,222,56,116,24,227,227,19,248,210,23,63,239,122,77,87,119,23,68,81,40,160,52,81,5,203,177,29,58,100,212,242,30,31,155,192,200,200,25,116,118,174,196,230,205, +151,160,127,93,31,6,7,142,219,21,40,82,169,20,246,238,125,14,162,40,20,132,228,249,54,39,200,6,96,27,88,62,37,181,172,151,249,245,192,245,94,71,11,169,181,158,202,6,190,96,235,229,54,43,121,140,178,145, +166,56,183,1,246,248,30,14,55,64,74,74,121,249,166,16,144,150,82,190,171,104,184,130,231,115,236,146,94,186,174,66,20,35,118,118,156,170,40,80,20,217,183,39,176,219,89,246,30,151,13,183,206,95,36,28,14, +67,146,36,136,97,17,52,101,100,81,55,68,26,114,223,231,195,181,206,224,98,175,66,91,10,76,230,83,105,157,27,176,126,192,76,198,168,51,215,215,191,6,66,200,24,168,164,148,100,151,248,18,4,1,43,59,58,176, +113,195,250,138,7,245,150,150,22,180,182,182,224,200,209,1,180,182,182,64,74,165,240,246,59,167,209,220,188,12,203,150,53,186,15,44,134,1,40,10,154,163,123,215,249,243,231,140,153,84,142,74,75,215,20, +104,173,132,42,134,101,193,48,158,18,88,132,32,147,145,161,170,42,56,142,65,36,98,0,19,203,210,168,52,78,180,220,101,117,11,218,156,143,137,98,200,232,127,173,235,80,20,197,128,54,221,1,111,196,157,32, +102,30,204,85,87,179,235,218,55,154,195,55,154,238,0,91,226,147,32,182,120,187,139,13,13,143,32,149,74,187,20,198,206,206,149,184,255,254,127,198,254,253,191,201,1,170,109,219,174,178,21,92,0,184,255, +254,31,99,100,248,12,182,109,219,130,117,253,125,56,62,120,2,192,226,236,156,229,84,73,239,191,255,199,216,191,255,55,216,191,255,101,108,219,118,21,24,214,88,217,249,253,223,255,152,157,35,96,196,226, +187,227,249,173,107,141,187,230,117,246,246,47,159,123,30,241,150,102,140,143,77,96,255,254,151,109,5,246,142,219,111,197,221,119,127,13,143,63,254,20,214,245,247,97,239,222,231,145,74,165,113,251,237, +183,214,85,40,136,34,103,236,186,224,1,208,6,86,28,100,169,252,237,108,11,133,32,228,97,23,95,181,182,208,103,89,106,172,31,183,217,43,170,197,225,214,107,12,195,152,175,43,84,118,171,0,111,121,184,173, +148,80,134,66,220,198,122,119,94,85,85,176,172,81,244,151,227,120,27,108,253,84,24,87,40,130,233,24,95,85,151,114,177,141,231,75,208,118,35,4,138,2,210,41,201,8,43,200,3,178,222,187,197,128,214,183,112, +47,149,71,225,245,155,21,121,62,55,20,18,114,190,79,88,12,67,18,36,8,130,128,222,158,85,230,82,108,229,161,6,225,72,24,27,55,172,203,243,156,232,186,136,106,170,10,93,87,193,176,188,11,108,115,190,59, +205,206,169,5,95,73,234,172,249,249,140,163,251,178,213,177,74,85,40,168,170,106,46,85,179,16,4,30,60,95,25,180,85,18,39,234,133,54,235,121,134,97,237,99,86,211,117,104,186,21,118,64,12,104,51,151,215, +117,87,103,177,210,151,216,137,171,97,73,238,115,198,243,164,238,125,99,40,179,238,74,9,206,142,107,198,235,179,159,93,45,149,118,62,26,47,216,147,73,179,41,194,222,189,207,1,48,234,207,122,193,53,159, +237,221,251,60,246,239,255,13,58,187,86,226,142,59,110,91,82,131,241,205,55,223,132,253,251,127,131,193,193,227,216,182,237,42,104,170,49,89,86,21,197,252,109,232,28,160,245,214,214,244,66,223,200,200, +25,187,57,197,192,224,113,188,244,210,1,27,106,59,59,87,98,215,174,235,176,119,239,243,56,116,232,77,236,221,251,28,58,187,86,218,234,121,96,129,45,109,250,69,78,184,64,49,169,215,2,83,191,80,2,55,167, +121,182,237,229,182,44,207,186,57,167,8,224,250,229,83,229,162,21,85,148,219,10,23,27,200,163,240,34,79,248,1,203,102,19,132,20,213,84,109,1,168,170,12,134,49,158,83,148,12,24,150,131,170,200,69,193,214, +9,193,238,193,189,196,31,181,200,195,126,217,114,229,2,109,225,153,64,129,47,106,30,75,130,96,92,168,117,162,67,20,69,172,92,217,97,43,186,60,47,128,162,40,40,74,6,44,23,130,170,100,74,62,166,165,164, +132,35,71,221,69,165,79,159,58,141,201,169,4,254,253,191,255,55,136,172,234,206,89,238,178,128,82,48,147,230,156,64,48,31,64,155,85,180,89,168,138,2,66,52,7,60,81,102,8,4,49,253,67,229,128,93,173,227, +68,253,160,141,16,3,38,173,227,148,2,5,226,84,60,73,246,245,200,211,101,197,95,193,73,219,190,47,53,89,204,72,188,170,99,223,80,200,251,89,164,12,223,148,175,134,165,231,13,108,227,241,56,110,191,253, +86,60,244,208,35,118,12,103,188,165,25,55,92,127,93,65,160,26,24,60,142,135,30,122,4,162,40,152,109,97,221,106,226,55,238,249,166,235,190,55,94,180,222,205,10,187,152,152,156,54,175,149,70,27,236,111, +252,125,118,191,136,174,163,127,93,31,62,255,249,63,43,105,162,242,242,111,94,179,213,238,230,230,102,60,244,208,35,56,116,232,77,108,222,124,137,13,210,70,232,199,143,109,149,182,254,44,168,128,16,216, +92,148,91,79,14,88,41,106,45,10,52,92,0,242,198,200,150,10,182,217,215,122,142,112,170,216,190,144,146,20,230,66,220,86,42,208,22,83,175,237,240,3,77,83,160,105,10,66,33,17,170,185,188,8,24,29,48,12,137, +153,53,235,142,42,190,210,183,245,197,242,133,35,228,83,176,140,25,62,237,184,13,72,73,35,233,42,28,14,23,206,118,243,201,148,43,7,104,243,201,224,126,191,32,229,185,211,212,212,12,179,202,23,226,205, +113,164,196,20,4,33,100,183,180,179,246,175,146,1,185,181,181,5,183,221,250,97,0,70,135,157,71,30,126,20,73,73,194,159,124,230,78,87,21,4,107,192,215,229,108,99,10,49,28,70,44,22,171,90,87,176,114,85, +53,235,123,185,47,253,6,224,242,156,209,200,128,16,98,47,99,171,170,106,134,191,212,54,78,212,251,122,64,7,195,80,200,100,82,118,252,111,54,147,159,56,106,211,146,220,174,91,40,109,153,189,52,160,53,142, +21,163,161,1,91,199,190,97,242,66,182,59,4,161,118,199,214,124,128,237,174,93,215,97,221,186,62,236,223,255,50,6,6,143,99,100,248,12,30,122,232,17,196,227,205,54,112,57,109,124,124,28,247,125,247,251, +0,128,63,248,131,79,248,182,120,245,198,212,118,213,121,27,216,252,19,86,43,1,213,40,255,216,213,213,133,72,36,187,95,29,43,218,75,27,1,97,36,132,181,46,111,69,103,231,74,68,26,162,120,232,161,71,240, +198,27,89,168,21,69,17,55,223,252,65,60,244,208,35,184,116,243,197,117,23,190,17,132,27,4,54,63,162,109,46,232,102,193,53,119,117,188,80,242,87,62,176,45,200,109,57,173,114,75,129,245,194,224,89,168,194, +65,41,64,91,236,47,235,220,168,213,208,192,57,141,112,198,96,90,128,43,203,233,252,173,113,157,244,239,112,138,55,222,86,12,55,32,157,74,122,92,197,152,96,75,217,117,104,125,193,56,79,133,3,63,71,121, +129,182,152,163,243,217,228,148,161,82,28,121,235,40,0,96,58,145,192,198,13,235,179,48,41,138,144,164,12,36,201,80,100,173,122,178,27,204,215,72,146,132,253,251,247,99,251,246,173,136,155,203,156,197, +236,232,209,99,120,224,129,159,224,198,27,119,251,182,200,181,46,172,20,197,216,21,12,82,146,4,46,22,91,176,147,176,16,120,136,97,17,60,207,67,150,101,100,50,50,20,69,49,226,168,69,113,94,226,68,157,207, +179,44,11,138,98,48,51,147,132,44,203,96,25,6,28,207,101,65,13,36,111,103,189,114,21,198,82,6,64,81,12,155,190,201,212,159,111,88,6,28,199,59,32,22,115,242,77,101,19,165,76,205,193,118,124,124,28,135, +14,29,198,230,205,23,219,202,224,200,200,25,220,125,247,215,240,203,231,126,229,11,181,223,189,239,7,118,28,174,223,243,192,226,140,169,245,250,5,20,133,120,188,217,117,44,127,252,227,183,99,221,186,126, +40,114,198,252,173,204,248,82,174,112,89,192,129,129,65,187,133,248,127,252,127,254,212,184,134,209,52,14,29,122,19,119,220,145,178,149,238,206,174,149,230,36,160,179,238,124,18,36,134,5,86,153,58,75, +149,118,173,164,74,38,200,156,48,4,226,150,127,125,193,214,0,217,108,247,176,82,185,141,170,20,100,243,112,155,127,117,131,92,160,45,231,115,88,191,82,17,0,236,229,242,16,35,218,190,101,57,214,110,148, +224,84,35,243,170,182,182,147,44,71,233,246,235,51,105,201,231,11,57,20,48,159,204,56,239,12,38,159,58,91,8,104,41,20,233,35,156,231,71,155,54,161,246,165,253,7,236,207,114,66,45,40,96,106,122,218,190, +251,226,75,198,235,86,116,172,0,33,4,83,83,19,120,244,177,61,102,22,117,97,168,77,74,18,190,119,223,15,112,122,104,24,159,252,196,239,35,18,9,219,144,220,189,170,27,17,83,245,177,6,120,171,113,134,170, +40,72,165,82,136,45,16,212,106,170,154,71,141,55,172,33,18,1,207,243,72,167,211,72,165,36,200,178,140,100,50,9,65,16,230,45,78,212,186,109,212,91,101,48,57,57,141,116,58,13,62,196,67,16,132,28,80,43,4, +108,165,148,245,202,55,240,121,183,25,141,70,16,10,241,72,167,83,245,231,27,62,4,81,172,158,111,42,179,218,47,245,14,14,158,192,67,15,61,130,137,137,9,27,106,11,157,171,86,98,216,165,155,47,174,171,172, +252,106,219,111,94,57,8,138,162,242,54,142,225,248,80,89,77,91,94,122,105,63,0,96,253,250,108,222,64,50,41,97,232,244,105,28,58,244,102,73,49,204,129,5,182,52,32,183,120,8,130,155,117,76,117,22,249,195, +16,92,241,181,121,192,214,245,89,94,213,22,158,100,232,2,121,33,154,166,33,147,73,229,191,214,23,224,182,114,128,182,88,39,49,231,106,59,235,125,66,85,85,112,44,11,214,92,98,34,30,7,138,225,136,217,117, +41,147,119,0,19,132,48,82,41,201,213,122,150,128,32,157,150,74,18,220,5,65,180,151,186,242,254,184,5,96,214,189,147,249,129,53,55,236,160,118,22,139,45,67,83,83,115,254,89,140,195,164,164,132,85,61,171, +176,170,103,21,78,15,13,187,158,107,105,105,177,161,150,166,89,232,186,27,36,219,218,218,22,12,104,189,223,197,107,209,104,3,104,154,130,166,105,144,36,25,233,180,132,100,114,214,172,199,10,27,170,206, +156,121,23,161,80,8,177,88,180,170,113,162,198,109,13,186,14,240,124,8,20,197,224,220,185,115,144,36,9,237,237,109,118,61,225,133,176,104,52,10,154,166,235,210,55,43,86,180,47,216,68,41,159,250,93,11, +219,188,249,18,60,248,224,195,216,187,247,121,72,146,132,120,60,142,253,7,94,6,0,92,122,201,197,57,175,223,191,255,55,166,146,57,129,123,190,225,142,155,221,182,117,139,125,251,161,135,30,201,41,233,117, +199,237,183,250,134,42,212,139,89,251,35,73,18,206,156,57,139,174,174,46,108,223,190,205,245,154,159,254,244,33,8,2,15,134,201,14,35,31,251,216,237,14,120,61,128,193,65,119,205,219,207,125,238,46,28,60, +120,8,45,45,45,248,220,231,238,178,31,31,27,27,199,231,63,255,5,28,122,35,128,218,192,150,24,169,86,188,157,242,212,218,188,241,181,62,96,91,76,181,205,74,9,133,171,253,48,44,139,16,21,70,38,147,42,176, +27,133,155,48,248,61,150,175,179,109,190,247,187,148,90,183,210,74,187,226,23,252,226,52,116,77,135,170,102,124,95,227,252,32,81,12,35,157,150,64,8,144,78,167,32,8,34,34,225,40,116,93,119,193,109,110, +96,52,65,38,109,56,40,28,110,200,255,99,151,66,254,5,202,127,249,1,45,85,242,177,86,160,28,67,21,204,25,83,91,200,116,93,181,85,90,227,32,213,160,152,147,146,249,132,89,134,101,139,2,173,1,228,113,116, +116,180,99,114,114,26,201,164,132,153,25,9,51,51,179,72,165,82,8,133,66,32,132,224,222,123,191,139,191,255,251,111,163,161,33,130,174,174,46,60,240,192,247,33,8,161,42,169,144,26,52,141,128,101,121,112, +92,8,170,170,226,212,169,147,134,58,73,83,96,89,102,193,174,131,173,173,45,88,185,178,3,19,19,147,245,231,27,134,6,199,177,117,49,94,212,50,252,64,20,69,252,193,31,124,194,46,97,101,3,234,182,45,5,19, +197,252,106,211,246,247,173,45,248,124,82,146,80,207,230,108,192,112,249,21,151,187,96,213,178,225,225,225,220,9,185,99,191,198,198,198,236,48,3,203,14,30,60,4,73,74,97,199,142,237,57,215,134,206,206, +14,188,113,232,48,82,169,84,221,119,113,179,66,241,2,11,172,124,230,245,174,142,23,80,107,45,240,114,190,200,79,173,45,22,95,235,1,219,28,110,115,170,182,200,190,41,95,203,94,39,183,89,64,91,106,123,223, +74,128,54,223,95,63,150,99,189,153,111,52,67,219,146,179,181,211,153,76,10,130,16,54,31,3,4,49,2,93,211,93,178,115,40,36,218,165,172,82,102,137,174,112,184,1,4,196,14,89,72,165,146,185,245,212,242,71, +105,228,133,198,82,200,63,95,82,88,81,160,173,129,106,75,81,20,18,137,169,146,95,127,234,244,16,30,120,224,95,124,159,251,228,39,255,21,122,86,117,103,103,37,142,110,96,78,192,173,133,66,150,15,172,25, +176,37,157,188,44,203,162,183,103,21,222,121,231,52,166,166,102,144,72,204,32,149,74,33,153,76,130,101,89,220,127,255,191,224,222,123,191,139,206,206,78,44,95,190,28,44,203,226,91,223,250,30,62,251,217, +255,84,149,101,117,77,35,230,177,202,33,20,10,99,122,122,22,39,79,158,2,203,178,136,70,27,124,123,85,231,141,235,6,230,180,188,238,235,155,222,30,156,56,241,78,93,249,134,227,88,196,98,209,121,245,141, +47,68,120,10,221,215,202,54,111,190,4,155,55,255,141,221,38,183,37,222,236,106,186,224,172,90,80,74,87,176,197,22,150,224,173,202,224,140,215,183,236,150,91,110,198,45,183,220,92,112,59,63,248,193,125, +101,63,247,149,175,124,217,245,219,174,235,239,171,187,206,107,65,28,109,96,11,170,0,123,33,182,8,216,90,44,103,115,106,129,206,97,5,219,226,146,92,6,179,58,196,230,99,184,82,42,21,228,178,89,233,106, +110,62,150,99,157,206,80,213,12,136,66,192,113,130,139,198,121,94,48,7,198,44,0,202,114,202,110,217,154,201,164,32,203,105,8,130,81,173,64,12,135,145,50,103,236,20,40,8,98,216,86,95,75,27,236,104,0,6, +28,139,230,178,157,159,227,252,119,46,191,58,91,13,160,165,230,32,203,90,165,182,138,89,207,170,110,252,197,151,254,188,76,229,202,104,88,65,116,189,234,231,146,179,220,155,223,103,151,10,25,20,69,161, +179,179,3,132,16,40,138,138,145,145,179,88,179,166,23,201,100,2,130,32,96,255,254,151,209,210,210,130,158,158,30,116,118,118,130,101,89,132,195,225,170,64,155,245,151,227,56,136,98,3,4,65,192,51,207,252, +18,137,68,2,29,29,43,208,209,209,14,10,6,164,209,52,109,223,246,203,198,156,235,68,32,159,111,186,187,59,1,212,155,111,58,208,209,209,1,163,45,183,233,27,10,115,242,205,98,176,197,156,216,181,184,1,46, +183,230,109,0,179,129,93,112,252,234,85,107,243,65,110,17,176,117,10,40,174,170,8,200,85,109,45,184,245,114,142,75,193,5,144,146,146,37,179,92,177,70,10,165,168,179,229,0,173,117,5,113,3,12,23,2,205,208, +80,148,52,24,51,174,150,97,24,200,114,26,178,156,125,204,218,160,44,167,32,134,35,246,64,151,78,75,72,167,164,108,126,24,5,23,208,150,246,159,32,28,142,64,20,195,6,92,248,36,128,229,12,168,212,28,129, +182,242,163,175,160,89,221,151,56,46,100,183,218,173,212,30,126,228,81,59,97,204,171,166,88,198,243,124,117,206,42,66,178,137,104,62,241,205,198,113,97,42,56,69,20,98,39,32,54,55,55,225,125,87,94,14,150, +101,49,50,114,14,231,207,143,34,153,76,35,153,156,197,182,109,87,161,161,161,1,177,88,204,252,27,69,87,87,103,21,150,213,53,123,82,38,138,17,132,195,81,140,141,77,224,149,87,94,5,195,48,136,70,35,0,136, +235,216,162,105,163,22,103,22,228,28,199,103,41,229,188,184,210,6,65,39,32,54,55,55,227,170,171,174,4,199,213,143,111,26,27,163,174,239,104,249,131,206,231,27,42,24,144,150,134,209,243,250,105,217,70, +14,1,220,7,118,33,136,174,133,27,21,228,21,242,242,169,162,62,27,243,133,66,239,155,242,8,20,148,167,82,129,243,31,199,133,192,113,161,146,88,174,24,183,25,99,203,28,128,214,199,63,180,211,17,28,23,2, +203,48,46,181,207,74,216,178,54,146,78,75,118,216,129,162,164,237,199,121,94,52,29,148,253,194,153,116,202,4,92,170,164,37,75,183,170,153,244,25,48,125,28,239,3,179,20,10,100,203,229,3,218,74,64,183,132, +23,90,153,228,162,40,162,169,169,169,38,138,22,33,26,184,106,193,172,231,120,240,42,191,186,89,191,184,226,147,152,162,176,97,67,31,26,27,99,80,20,21,7,14,188,142,137,137,73,164,211,18,62,244,161,27,177, +126,125,31,52,77,133,40,134,176,121,243,70,220,120,227,174,57,47,171,91,143,137,98,4,13,13,49,40,138,134,31,253,232,199,72,38,147,136,70,27,176,178,99,5,40,154,6,77,83,230,95,243,63,149,133,55,20,9,78, +207,81,106,149,52,20,57,93,210,64,237,60,174,55,110,220,128,198,198,198,186,240,77,44,22,69,103,103,71,214,31,142,255,94,160,45,199,55,115,177,122,5,159,165,104,214,241,107,149,236,170,21,204,90,215,48, +243,10,83,87,48,27,0,109,96,149,142,159,181,122,75,78,53,132,50,192,214,16,101,10,195,109,190,48,51,235,113,142,227,160,22,234,94,154,231,125,94,241,195,175,186,65,62,110,43,214,192,193,233,23,214,41, +115,43,170,12,142,229,65,211,180,221,68,192,84,169,141,152,90,19,106,121,94,176,193,150,16,130,140,153,248,69,100,119,215,48,66,242,183,7,45,13,108,37,132,195,145,146,128,146,42,34,111,151,14,180,20,90, +151,27,13,14,4,33,132,174,174,78,251,54,0,116,117,101,51,150,133,144,96,62,214,233,186,15,0,221,62,143,173,238,237,65,67,67,109,178,200,253,122,175,207,121,155,102,133,11,150,229,109,181,214,42,188,110, +221,214,52,165,40,176,81,20,49,33,136,2,77,209,104,106,106,194,181,215,110,199,19,79,60,139,201,201,105,28,60,120,24,241,120,51,88,150,199,87,191,250,223,144,76,74,0,8,34,145,72,85,150,213,117,93,71,36, +18,65,99,99,19,194,225,24,158,122,234,105,156,57,115,6,28,199,162,171,115,5,40,10,54,172,49,52,13,154,49,0,215,128,92,202,1,184,206,19,178,52,181,86,81,210,69,79,126,192,82,63,41,52,53,53,225,250,235, +175,197,158,61,79,44,176,111,56,116,119,119,58,224,213,104,78,65,211,140,7,110,45,95,25,221,208,106,25,138,80,47,64,91,168,140,89,81,37,225,2,144,178,75,241,143,170,24,117,135,25,179,225,72,161,118,210, +129,50,27,216,82,85,107,139,213,172,205,215,101,204,249,184,166,235,96,44,241,17,254,161,8,206,243,207,183,37,174,19,138,138,112,155,162,40,69,207,211,252,215,191,252,175,43,247,182,111,191,2,88,213,15, +60,96,11,0,28,203,27,47,43,49,38,162,212,150,184,132,148,119,225,74,165,146,16,243,129,109,1,152,205,167,206,186,222,147,167,134,218,117,215,238,4,40,128,161,105,220,126,251,173,134,164,77,27,207,221, +126,251,109,246,91,173,237,223,97,214,180,116,46,211,219,253,223,205,215,104,170,106,60,70,81,69,7,231,163,71,143,225,47,239,254,26,0,96,217,178,38,72,102,12,139,44,203,216,248,165,207,231,121,151,1,180, +211,211,211,118,25,168,170,169,41,170,12,154,225,192,48,140,173,212,234,132,128,232,186,111,89,177,124,71,179,115,150,182,102,117,47,214,175,95,139,55,222,120,11,39,78,156,66,91,219,114,108,217,114,25, +56,78,65,56,108,196,106,207,53,147,223,58,14,35,145,40,26,27,155,32,138,17,28,60,248,6,14,28,56,96,170,162,235,209,220,212,8,154,166,192,208,140,173,170,59,111,211,148,39,134,180,172,65,151,216,48,86, +104,160,244,206,82,251,250,86,99,195,134,245,56,120,240,141,5,243,205,69,23,109,68,60,222,100,119,90,179,125,227,184,157,133,124,170,230,113,181,11,9,180,206,129,39,223,237,98,96,231,119,157,172,119,200, +45,21,238,202,245,143,81,254,79,71,38,45,129,227,5,83,173,37,139,206,63,129,5,86,11,129,151,144,66,202,44,92,149,9,8,136,29,18,106,1,86,14,216,90,143,251,84,169,42,185,37,174,201,109,169,84,57,241,180, +165,65,111,169,37,187,242,243,156,59,209,140,245,35,255,80,72,68,38,147,66,136,23,236,229,103,89,78,131,15,25,93,190,156,85,15,124,157,228,147,89,55,7,85,190,144,64,91,120,231,75,84,103,125,15,28,191, +199,11,236,67,177,31,217,234,204,166,151,144,200,181,97,195,122,252,203,63,255,83,69,254,169,102,41,28,103,77,80,93,83,236,147,199,169,206,22,218,31,87,16,58,33,217,120,76,134,1,195,232,216,242,190,43, +48,147,152,197,219,239,156,194,203,47,191,14,158,231,177,117,235,21,96,152,236,123,189,141,5,74,133,54,67,41,229,236,101,245,112,56,134,131,7,15,225,137,39,158,68,50,153,196,154,53,189,104,140,25,181, +97,25,150,245,128,27,3,134,97,237,246,176,52,195,100,195,16,128,146,151,219,93,181,156,117,221,53,233,113,7,232,103,125,195,48,12,116,157,193,214,173,239,67,34,145,192,137,19,239,204,187,111,214,174,93, +131,101,203,98,160,105,26,44,203,130,166,25,176,44,227,242,143,245,93,153,10,125,179,152,20,199,252,127,173,235,61,41,168,180,24,254,32,62,191,123,61,43,184,186,217,197,45,52,7,255,184,253,164,153,109, +159,105,134,129,102,94,55,116,59,223,194,120,13,31,18,161,200,233,69,224,159,192,2,171,128,80,75,80,107,253,193,214,13,157,170,162,26,157,31,189,74,174,35,121,12,37,170,182,94,184,133,247,189,14,38,98, +152,18,69,172,18,248,168,208,57,94,138,58,235,7,180,0,192,186,202,159,153,14,178,234,142,17,199,192,76,81,20,228,76,170,4,117,150,242,149,172,75,85,52,220,219,48,26,49,148,46,109,23,218,249,242,129,182, +38,3,165,174,215,245,121,168,107,26,52,77,177,85,26,167,18,91,137,90,230,236,50,231,12,65,160,105,26,209,88,3,182,110,123,31,116,93,199,201,83,67,120,254,249,151,48,61,61,131,235,174,219,129,166,166,101, +32,132,128,166,105,200,114,198,134,179,226,203,234,70,184,68,40,100,100,242,135,195,81,40,138,134,167,158,122,26,7,14,28,64,50,153,68,119,119,23,218,218,226,6,168,177,166,50,203,178,96,237,255,134,34, +105,132,33,120,66,15,80,25,180,249,37,219,101,1,7,142,4,44,10,20,69,35,22,139,97,199,142,109,208,117,29,239,188,115,106,222,124,211,211,211,141,246,246,54,219,23,12,67,59,252,98,61,102,192,172,51,244, +192,153,36,86,11,0,169,117,139,220,98,176,38,203,10,70,71,199,48,157,72,96,102,102,22,82,82,66,38,147,129,166,105,102,184,22,143,112,36,140,104,67,4,209,88,20,173,45,113,179,221,48,229,86,249,237,115, +129,148,116,161,95,44,176,47,203,50,222,123,111,20,211,211,9,36,18,51,72,38,147,46,255,112,28,11,81,20,16,109,136,160,177,113,25,226,241,101,190,254,73,167,83,102,78,196,194,248,39,8,61,8,172,110,25,57, +15,114,230,3,219,92,24,118,171,182,69,185,45,207,120,158,47,108,162,242,144,132,18,58,133,149,8,180,128,221,124,33,23,108,45,117,214,233,8,65,48,58,71,20,83,103,75,137,45,43,37,134,74,20,195,229,207,0, +202,128,217,114,21,218,74,85,90,23,52,86,48,203,169,100,192,153,139,49,44,239,90,50,167,25,14,186,67,157,165,104,22,164,140,253,176,227,106,105,26,148,174,219,75,218,44,195,98,121,107,11,182,110,125,31, +104,154,198,59,39,79,99,255,254,87,112,234,212,48,62,241,137,219,209,213,181,18,132,16,176,172,0,89,78,67,81,100,40,74,6,132,40,46,104,3,116,27,182,120,222,200,204,12,133,194,16,4,1,99,99,19,248,209,143, +126,140,51,103,206,128,162,40,172,89,211,139,182,182,56,66,124,200,80,103,105,6,28,103,116,208,99,89,198,220,142,9,112,12,107,198,145,154,208,230,40,103,85,174,41,114,218,21,155,236,189,72,24,141,79,116, +91,1,101,89,6,203,151,183,98,199,142,173,160,105,26,111,191,125,178,230,190,89,187,118,13,86,172,104,67,40,196,219,161,6,44,203,153,144,159,5,254,44,248,51,14,160,165,107,30,130,80,107,176,245,131,181, +177,177,113,156,62,61,140,55,15,191,133,241,241,9,104,154,142,76,38,131,76,70,134,106,46,163,91,138,118,136,231,193,135,120,208,180,81,229,99,211,166,13,88,213,221,137,166,166,166,220,80,13,154,6,69,176, +168,224,214,223,63,99,56,121,242,52,222,120,227,48,198,199,199,161,170,26,50,153,12,210,233,76,93,249,135,227,141,54,207,170,146,9,128,54,176,186,49,69,81,192,113,92,78,216,142,1,142,240,229,149,156,198, +12,249,192,214,2,88,63,213,214,3,183,165,114,155,197,47,133,206,191,74,74,125,149,3,179,133,128,150,114,182,201,117,37,119,57,123,0,59,94,144,177,74,60,21,160,252,124,202,108,190,24,179,185,74,216,249, +119,186,50,152,5,128,177,209,49,164,51,25,180,45,95,142,243,239,189,7,0,232,236,92,105,7,99,151,186,196,240,224,131,15,99,231,206,107,236,207,216,183,239,5,92,189,99,27,90,91,155,139,238,107,82,146,176, +239,87,47,224,213,215,94,7,203,114,216,124,233,37,216,121,237,14,187,69,110,62,11,133,230,214,233,134,102,24,40,114,26,12,203,219,221,194,52,79,197,3,82,225,242,3,69,172,132,44,29,52,109,132,32,48,12, +131,214,214,56,118,92,189,21,13,13,17,28,27,56,129,179,103,207,225,59,223,249,71,108,217,114,57,182,109,219,142,88,204,88,34,215,117,29,170,154,133,9,11,222,24,134,2,69,89,234,33,3,85,85,49,61,61,139, +103,158,249,37,94,121,229,85,36,147,73,112,44,139,13,27,215,163,169,41,10,154,162,77,56,227,192,113,44,24,150,5,199,113,6,192,113,172,241,152,189,180,206,100,213,72,204,13,218,84,85,246,29,56,45,232,183, +147,213,24,26,154,102,128,109,107,107,43,174,189,246,106,68,163,13,56,114,100,160,54,190,225,88,108,218,180,17,77,77,77,96,24,10,44,107,248,192,0,90,195,55,28,231,240,17,203,152,191,159,51,97,108,113, +47,17,59,147,149,44,152,125,243,240,17,188,240,194,126,80,20,5,73,146,160,40,170,157,84,104,116,89,99,64,211,44,0,51,97,86,206,32,149,78,65,211,52,76,76,76,225,221,119,207,1,32,216,178,229,74,92,180,105, +3,154,154,150,101,213,120,19,246,10,193,219,194,251,147,20,240,207,24,14,29,58,140,125,251,94,0,96,249,71,153,179,127,66,130,8,77,149,171,226,159,242,32,181,252,18,102,15,255,239,127,94,146,160,117,219, +199,254,245,156,222,31,248,165,52,62,0,140,48,48,47,216,90,199,181,162,164,65,8,49,42,75,121,216,133,229,56,123,124,182,78,213,124,220,86,20,110,125,0,215,143,219,210,153,76,85,185,173,232,100,181,12, +152,117,190,151,45,212,178,173,168,147,124,40,63,95,60,109,69,23,104,42,143,94,74,149,80,171,173,20,152,245,121,19,5,10,207,63,191,15,195,195,103,240,209,143,126,4,63,251,217,255,1,0,252,167,207,220,9, +198,4,198,76,38,131,247,222,27,195,242,182,86,0,192,232,123,163,104,108,108,68,172,209,93,217,96,104,120,4,233,76,218,254,152,225,161,17,100,174,44,173,60,206,61,247,220,139,43,175,184,28,119,254,241, +167,0,0,175,190,250,58,238,185,231,222,146,155,50,204,85,17,51,192,72,133,46,171,190,106,109,37,7,180,165,214,26,3,59,177,151,182,117,66,16,139,54,96,203,150,203,209,210,26,199,193,131,135,145,72,204, +224,185,231,94,192,107,175,189,137,213,171,123,209,219,219,139,246,246,118,52,53,53,33,26,13,67,20,67,96,24,22,170,170,34,147,73,97,102,38,137,201,201,105,156,63,127,14,39,79,158,196,201,147,167,144,72, +36,192,48,52,154,154,150,161,163,99,57,154,150,69,205,36,48,218,6,90,150,227,192,115,92,22,220,88,227,49,107,233,221,134,54,79,211,129,138,129,195,132,3,202,17,135,154,5,91,218,1,182,12,8,97,161,235,4, +209,104,20,91,183,110,65,107,107,43,94,123,237,32,166,167,19,85,242,13,131,230,230,38,172,92,217,129,230,230,101,118,92,177,5,180,28,199,129,231,45,223,100,1,215,82,126,157,21,16,230,43,97,172,218,106, +173,159,250,120,228,232,32,246,236,121,18,83,83,9,40,138,2,93,215,192,178,52,56,14,136,68,194,104,108,140,162,161,33,138,72,36,12,65,48,74,233,25,10,174,140,84,74,66,50,153,134,36,165,49,53,53,3,69,81, +177,111,223,139,120,227,141,195,216,181,235,90,244,247,175,181,195,111,140,201,29,237,130,55,154,246,107,163,185,112,112,235,231,159,183,222,58,138,71,31,221,131,169,169,41,200,114,125,250,39,223,228, +49,255,241,83,89,88,216,186,141,155,10,150,48,90,108,118,248,208,193,170,108,39,240,139,83,221,52,4,7,222,231,152,148,101,217,174,45,111,29,215,178,121,124,178,92,8,180,169,216,166,211,105,71,111,128, +12,120,62,228,22,10,61,170,109,41,112,155,23,112,45,117,211,59,126,23,96,175,170,194,109,9,220,86,168,138,2,235,175,188,186,246,171,168,147,252,212,218,106,92,144,229,76,10,33,161,176,50,89,42,244,150, +2,179,165,126,200,123,239,141,225,193,135,30,198,71,63,250,17,0,192,207,126,246,127,176,99,251,86,108,219,190,181,232,219,165,148,4,138,98,28,117,25,115,237,212,233,33,244,172,90,133,155,110,250,128,253, +216,77,55,125,0,99,99,227,56,122,244,24,54,108,88,159,247,189,169,84,202,174,45,12,120,50,239,9,74,142,25,166,105,26,206,111,88,9,208,22,82,107,25,134,64,215,13,181,150,213,25,16,142,131,174,19,244,246, +116,35,222,220,140,227,39,222,193,208,208,8,146,201,36,222,124,243,48,14,31,254,45,194,97,99,217,156,231,121,83,121,164,204,122,171,26,100,89,70,58,157,134,36,73,32,68,7,203,114,88,177,162,29,209,104, +24,29,43,178,101,187,172,24,90,95,160,229,120,3,218,24,198,46,95,101,135,31,160,58,176,102,197,168,123,7,93,167,90,107,36,139,233,208,117,6,44,171,67,215,57,232,186,142,213,171,123,208,210,210,140,193, +193,19,56,117,106,8,179,179,149,248,134,128,101,89,116,116,172,64,44,22,197,202,149,43,236,120,222,108,12,109,46,208,102,193,54,171,210,102,195,15,22,231,64,229,4,53,66,8,38,39,167,240,236,222,231,241, +214,91,199,144,76,74,208,117,13,128,142,72,68,64,91,91,43,150,47,111,71,115,115,51,26,27,27,17,137,68,192,243,60,120,158,54,161,77,131,162,40,166,175,37,204,204,72,72,36,102,48,50,114,22,35,35,231,48, +54,54,129,199,30,123,10,23,109,90,143,109,219,222,135,198,198,152,185,10,64,192,48,4,180,25,35,173,235,180,75,149,204,151,88,54,31,19,219,92,255,76,226,233,167,247,226,205,55,223,66,50,153,172,91,255, +20,82,104,171,29,190,226,106,214,226,185,237,28,255,234,253,252,168,70,216,90,224,23,15,204,106,26,40,138,178,19,171,189,195,175,44,167,115,64,151,162,40,115,149,84,206,193,153,236,42,44,177,193,214,197, +101,30,41,182,36,110,243,93,151,201,195,80,20,80,173,164,35,202,63,142,115,78,48,235,130,90,231,11,252,42,21,148,4,183,69,100,236,74,15,16,171,6,46,31,18,65,151,17,126,80,42,204,22,4,90,42,207,235,231, +240,187,134,75,136,19,78,73,18,194,145,220,215,249,61,230,29,136,68,81,196,196,196,132,235,226,109,221,230,56,33,39,11,127,62,204,87,173,37,196,84,35,9,8,129,43,155,63,22,107,192,197,23,109,64,111,111, +55,134,135,207,152,201,39,179,72,38,147,72,36,166,161,170,217,82,86,217,170,1,70,178,78,91,219,114,52,52,132,65,211,20,86,180,183,3,32,246,146,47,195,178,54,208,50,44,107,3,173,1,111,60,120,158,115,36, +67,101,213,200,185,170,180,28,23,130,162,100,192,152,53,160,243,251,198,82,107,157,190,33,224,56,107,233,151,32,22,139,225,146,75,46,194,234,213,189,24,26,26,198,228,228,52,18,137,132,233,155,132,29,126, +224,246,13,131,80,136,71,123,123,27,26,26,26,192,48,52,58,58,218,237,201,139,23,104,89,150,181,129,214,0,19,227,175,17,150,225,141,167,157,63,149,182,86,64,171,235,58,206,158,61,135,39,158,124,6,199,143, +191,13,93,39,208,117,21,60,79,161,167,167,7,29,29,93,232,232,232,68,123,123,59,90,91,91,77,104,19,193,178,70,75,87,66,8,84,85,133,36,73,72,38,147,72,38,103,49,51,51,139,84,42,133,53,107,122,113,254,252, +40,246,239,127,13,83,83,9,188,250,218,33,76,39,18,184,230,154,237,88,190,188,21,44,67,155,147,59,198,128,55,218,60,63,124,174,203,243,233,91,175,127,222,125,247,44,246,236,121,18,3,3,199,237,85,156,122, +243,15,31,18,125,33,214,9,185,28,47,152,37,197,212,82,228,145,146,174,109,185,205,73,178,137,111,23,50,212,94,232,126,49,68,5,197,247,8,51,212,88,255,113,152,101,24,104,42,92,188,35,8,217,99,56,7,132, +115,226,105,203,128,91,39,183,229,219,15,243,111,72,16,109,30,155,171,58,91,46,183,149,147,203,196,230,123,97,41,112,155,227,168,124,159,94,133,194,218,54,152,241,162,93,51,86,211,52,119,141,182,66,144, +90,14,204,22,184,198,149,157,245,238,82,233,172,216,153,194,93,185,186,87,117,227,129,7,126,130,27,111,220,109,199,208,38,37,9,71,142,28,197,141,55,238,46,232,163,84,42,5,61,207,137,168,40,233,178,226, +204,74,174,65,59,7,181,150,16,6,4,196,5,181,150,69,169,6,244,173,93,13,89,150,49,155,148,48,61,53,141,164,148,66,38,99,38,161,104,154,1,129,12,13,142,101,33,136,2,162,209,6,112,118,86,53,236,112,7,43, +236,128,97,141,164,48,206,163,208,186,128,150,205,214,100,157,139,74,235,26,76,185,80,209,217,80,182,81,5,157,3,252,89,176,53,125,19,165,208,223,191,214,240,205,108,18,147,147,83,144,36,201,78,208,209, +76,149,192,10,39,16,4,17,177,88,20,28,199,230,180,187,181,84,105,43,1,204,169,204,90,192,159,5,90,119,245,131,249,84,105,21,57,93,114,251,225,82,7,29,66,8,206,157,59,143,199,159,120,26,131,131,111,155, +75,133,105,180,181,181,160,175,175,31,171,87,175,197,234,213,107,176,124,249,10,44,91,22,3,195,80,48,150,170,117,27,216,44,224,20,69,17,130,32,160,177,177,17,169,84,202,4,184,4,98,177,24,226,241,102,28, +60,120,24,39,78,156,50,63,135,96,231,53,219,176,124,121,43,24,198,218,142,1,110,12,0,221,7,220,230,91,165,181,254,159,61,123,14,143,61,246,4,6,6,6,23,157,127,252,174,119,238,107,26,85,176,108,89,41,43, +90,206,144,33,103,197,148,197,52,217,243,94,123,231,106,23,178,95,84,69,1,33,154,25,79,238,152,120,153,215,176,44,148,18,87,248,129,119,44,144,29,194,84,58,157,134,32,8,121,67,116,253,193,213,31,110,203, +230,54,0,153,76,26,161,144,96,23,11,168,96,224,47,129,149,230,94,62,149,162,168,220,152,90,191,55,250,53,83,240,3,92,95,103,205,85,218,244,1,51,187,142,174,249,151,231,243,168,184,229,130,172,245,85,11, +41,194,101,28,224,214,103,41,138,2,41,37,97,124,98,28,83,83,19,104,107,107,49,67,16,8,252,98,185,34,225,48,254,195,31,255,123,124,245,238,175,65,52,139,237,143,141,141,227,174,187,62,83,52,81,108,124, +98,2,43,59,58,170,226,235,106,2,173,243,120,162,105,64,215,105,123,105,209,59,183,242,94,244,104,218,72,94,106,136,132,161,105,26,52,77,51,213,34,115,224,5,201,9,121,113,149,16,115,212,84,205,102,240, +231,2,45,199,25,137,98,238,170,7,116,78,102,118,57,23,196,114,51,65,13,37,87,7,64,251,79,216,204,14,100,206,170,9,44,203,162,161,33,2,85,53,124,67,72,54,81,204,130,98,183,111,225,233,20,230,174,252,96, +37,133,89,74,173,51,198,214,169,210,186,203,121,81,243,82,110,41,187,2,65,121,23,204,202,30,168,8,33,152,154,154,118,0,173,6,66,100,172,89,179,10,235,214,109,194,198,141,27,209,219,219,103,39,208,57,97, +205,9,108,222,18,106,128,177,84,200,178,44,4,65,128,32,204,34,18,17,16,143,55,163,173,173,21,47,191,124,16,39,78,188,3,134,166,113,253,13,59,17,139,54,24,191,19,178,231,130,31,184,205,23,220,186,253,51, +133,95,252,194,2,218,122,244,15,109,30,27,161,138,212,236,185,0,173,83,145,100,24,71,121,64,231,132,120,17,174,94,84,83,169,189,16,253,194,114,28,20,89,203,25,63,173,202,27,126,97,7,133,198,5,231,231, +59,223,91,8,110,93,44,230,19,99,80,42,183,217,0,75,1,25,171,107,105,149,126,183,106,86,152,42,26,83,91,46,224,22,130,220,92,41,155,204,121,231,137,78,32,132,194,166,20,239,0,90,170,60,231,213,136,187, +115,54,200,113,28,194,8,131,232,4,0,237,24,156,243,135,1,244,172,234,198,95,253,213,87,202,254,88,57,147,198,248,196,68,73,138,69,41,202,120,45,204,89,226,139,241,89,52,112,194,44,205,48,96,20,6,12,163, +130,97,24,27,106,53,93,7,209,117,95,133,215,91,26,136,201,129,90,214,168,114,224,72,124,178,30,179,128,150,97,152,57,149,240,114,94,196,88,46,84,242,54,156,176,234,195,180,46,149,213,216,39,5,170,106, +237,155,233,27,205,9,181,249,125,227,237,22,102,249,193,153,20,102,41,180,78,160,205,170,180,11,55,48,113,124,168,162,99,212,155,197,255,204,179,207,153,33,7,58,8,145,209,219,219,139,139,47,190,20,151, +94,186,25,189,189,107,17,10,133,204,198,9,165,1,155,243,190,117,238,55,52,68,205,176,142,20,182,108,185,28,60,31,194,243,207,191,132,193,227,111,35,22,139,226,234,171,183,122,126,167,92,176,245,235,6, +84,171,1,92,206,164,108,181,246,169,167,158,181,67,14,234,211,63,64,200,204,14,47,213,63,20,197,216,240,81,45,120,163,205,242,128,222,114,119,180,39,33,244,66,131,218,11,209,47,133,174,75,222,100,48,135, +182,13,158,231,243,198,217,186,193,54,3,128,20,132,219,146,0,183,0,228,2,48,154,108,185,20,224,242,146,41,41,148,58,230,21,7,213,82,96,54,151,36,144,63,217,171,148,215,20,80,175,43,218,209,194,106,109, +198,104,135,198,242,160,253,70,254,133,2,217,188,223,215,153,100,85,252,192,24,29,29,195,190,95,191,232,251,220,206,107,118,160,181,181,165,224,251,83,146,59,238,133,101,121,187,233,67,169,241,180,197, +146,217,230,162,214,218,241,158,230,160,237,5,91,39,144,90,75,86,22,124,25,64,171,65,215,114,213,31,215,37,194,188,104,58,47,172,150,34,105,169,145,172,153,20,102,133,28,120,129,150,246,196,126,205,229, +34,92,76,69,202,241,141,169,102,123,15,111,111,232,0,77,83,54,104,102,129,86,43,221,55,142,164,47,183,138,157,91,159,214,219,116,161,90,190,169,232,156,178,195,145,132,138,225,246,232,177,227,120,235, +173,99,208,117,2,85,77,99,205,154,85,184,248,226,75,113,229,149,91,176,118,237,90,199,85,191,124,96,115,222,167,40,202,132,63,10,28,167,96,235,214,43,48,61,61,131,253,251,95,193,225,223,30,193,242,182, +86,244,173,93,237,185,230,102,193,141,208,204,130,196,212,30,57,114,12,135,15,191,101,135,28,212,151,127,120,0,154,225,31,71,136,67,169,74,154,170,40,80,100,25,156,207,210,111,57,230,92,177,112,175,120, +100,75,1,210,243,156,195,80,169,233,85,108,12,116,33,250,69,177,148,204,18,198,193,236,177,108,172,188,89,64,107,169,177,12,195,65,211,20,48,12,151,19,135,236,93,161,242,91,65,47,9,112,243,9,129,53,226, +182,82,152,171,82,144,205,11,181,197,164,239,98,27,247,107,247,86,243,3,206,140,171,52,126,119,186,58,142,173,182,170,196,113,152,154,154,66,60,222,140,101,203,154,205,131,223,2,92,58,231,68,8,71,194, +216,184,97,157,239,182,138,37,139,25,16,45,187,21,67,71,125,84,111,226,68,161,11,191,34,107,85,255,189,188,199,140,31,216,26,161,3,230,133,209,140,11,85,85,163,18,128,166,169,102,248,129,99,208,204,19, +126,144,11,126,217,14,89,22,196,25,64,199,218,75,99,94,160,173,198,210,122,57,42,173,123,96,200,5,91,111,247,49,227,123,27,45,19,221,161,25,22,64,248,135,31,120,99,222,114,195,51,252,219,227,250,133,99, +204,27,108,145,44,196,26,127,51,142,21,143,226,131,137,83,185,30,29,29,199,19,143,255,95,36,147,70,181,140,182,182,22,172,91,183,9,151,94,186,217,1,108,152,51,176,89,247,137,35,49,146,97,128,235,174,219, +129,83,167,134,112,246,236,121,188,124,224,85,180,182,180,160,177,49,154,115,121,182,252,107,132,235,148,127,76,85,162,98,19,66,240,238,153,51,120,236,177,199,145,76,38,235,203,63,20,3,64,133,177,226, +37,26,101,7,117,3,172,105,79,27,106,255,213,19,197,152,204,86,65,165,117,77,50,41,239,170,7,227,8,95,162,23,69,236,40,69,233,85,189,206,95,72,126,41,119,98,157,5,91,227,191,44,187,199,108,43,193,204,250, +27,22,69,164,211,70,232,101,97,209,177,48,220,250,1,106,110,124,173,241,39,36,136,118,23,217,90,89,57,191,127,169,33,8,108,57,161,7,229,66,110,53,151,55,252,182,173,105,10,24,150,135,170,102,114,10,20, +87,2,215,181,60,193,196,176,8,41,149,194,212,212,20,218,218,90,10,42,183,145,112,24,221,171,186,177,239,87,47,224,232,209,99,0,128,13,27,214,99,231,181,87,23,141,169,245,5,84,179,67,24,205,112,70,13,90, +79,43,92,0,217,70,11,230,95,85,81,230,237,96,118,130,173,123,121,220,104,177,169,105,26,104,134,54,213,89,54,11,181,196,29,130,224,189,160,82,142,22,183,246,178,151,217,201,140,113,149,237,114,196,122, +249,0,109,197,147,25,94,168,168,45,178,95,252,49,195,184,125,163,105,86,60,172,102,171,180,186,174,219,127,157,176,224,231,27,167,90,107,249,38,59,232,48,46,200,119,86,58,168,52,190,184,58,7,77,214,175, +198,223,202,67,16,14,255,246,45,76,76,78,65,215,53,240,60,208,215,215,111,198,136,214,6,216,172,199,172,223,160,169,105,25,62,241,137,59,240,157,239,252,35,166,166,19,56,54,48,136,203,54,95,226,158,44, +56,98,167,105,198,168,87,57,95,49,181,135,127,251,22,38,38,38,235,206,63,28,47,64,211,8,56,222,184,46,176,44,7,66,116,35,225,180,4,181,182,90,48,235,29,96,188,171,39,217,85,16,198,213,66,186,126,225,13, +213,87,78,47,16,191,40,114,166,226,49,48,123,109,46,111,156,48,132,43,10,156,121,60,171,154,6,214,161,126,228,11,15,45,5,114,157,22,10,133,145,201,72,115,56,4,230,95,12,98,253,158,152,139,58,59,223,208, +232,172,231,86,137,66,92,181,239,84,100,51,33,62,132,176,40,98,217,178,101,166,202,36,155,3,51,239,59,48,127,245,238,175,225,154,107,118,216,181,106,71,71,199,42,110,190,160,154,62,210,53,5,180,163,110, +158,175,242,237,104,184,80,75,160,245,14,64,52,140,101,86,103,60,173,166,25,5,216,25,134,6,163,49,89,104,35,58,136,78,74,142,27,165,104,75,49,96,92,217,254,217,219,206,38,2,168,74,177,112,11,188,202,45, +159,230,235,27,26,32,132,6,224,28,36,52,187,243,24,77,27,201,97,57,10,118,9,190,113,42,190,86,210,152,229,147,66,48,91,47,37,121,74,13,63,112,250,98,108,108,2,47,188,176,223,12,11,210,209,211,211,131, +213,171,215,162,183,183,207,172,5,57,247,37,117,63,96,115,126,7,66,8,186,186,86,98,203,150,203,241,220,115,47,224,237,183,79,97,237,154,94,80,84,204,225,99,216,231,2,69,81,118,24,66,45,174,167,139,199, +63,20,34,13,81,104,154,154,51,65,35,132,158,247,166,21,185,73,173,180,43,1,211,2,185,197,96,213,12,63,184,80,252,50,215,220,147,124,137,250,94,27,27,27,67,56,18,113,61,230,172,154,192,177,108,17,110,43, +29,114,221,175,211,231,237,26,95,45,213,150,173,149,58,91,237,186,119,197,62,91,81,178,7,23,195,242,254,45,109,107,112,161,163,80,122,188,9,239,200,180,117,199,114,185,51,185,79,157,30,66,247,170,110, +87,243,133,13,27,128,211,167,135,205,198,12,221,21,127,95,213,103,18,96,213,109,172,53,204,22,130,55,235,190,174,211,160,25,202,177,236,106,45,189,234,208,137,14,70,163,65,8,114,98,70,253,6,51,167,26, +73,81,70,11,224,108,183,34,202,221,173,8,84,78,156,104,185,199,11,199,9,101,151,77,43,199,55,6,60,48,14,223,232,54,244,235,58,49,225,150,152,202,85,105,190,177,18,190,188,177,110,94,208,175,215,194,233, +229,14,42,132,16,156,30,26,6,5,26,186,174,33,18,17,208,209,209,133,213,171,215,160,169,169,169,226,164,167,82,128,205,184,109,252,70,52,109,0,216,182,109,219,241,218,107,111,98,118,118,22,167,79,15,99, +253,250,62,227,56,180,127,3,205,84,229,141,199,106,173,214,46,6,255,40,138,98,31,159,198,196,87,179,143,229,133,104,84,145,111,178,232,109,62,80,223,138,36,169,9,100,46,53,191,88,13,21,252,198,209,185, +114,76,33,102,18,69,239,74,52,153,35,183,229,87,166,235,9,94,43,121,15,91,201,6,75,1,214,122,57,88,107,245,61,168,170,133,78,231,46,163,166,36,201,55,25,44,28,9,231,36,129,85,103,38,170,46,248,111,227, +76,144,34,196,84,109,105,26,180,61,232,25,224,166,155,106,149,78,116,187,229,108,190,146,116,86,128,189,85,27,209,89,0,220,9,179,78,117,214,245,222,114,1,75,73,215,216,55,180,185,191,150,122,234,6,2,134, +161,205,219,254,117,127,253,7,154,124,3,78,126,213,186,94,206,237,82,129,214,233,11,89,86,113,226,196,219,144,82,18,88,150,70,91,91,43,58,58,58,177,124,249,138,178,202,82,85,10,108,214,125,89,206,128, +101,5,196,98,49,172,94,221,139,55,223,60,140,243,231,71,209,219,219,99,76,190,204,48,24,171,93,172,174,83,160,117,189,38,106,237,162,241,207,123,99,166,127,146,142,115,153,54,39,117,198,4,111,190,213, +218,124,161,56,206,165,245,197,82,190,170,218,213,15,150,154,95,106,89,17,168,84,184,205,10,100,66,89,99,72,233,220,230,29,211,228,5,155,36,86,106,108,53,63,112,62,212,217,82,190,147,174,41,208,181,236, +15,175,233,122,94,229,182,130,15,154,151,31,249,200,145,163,190,143,229,75,32,171,76,181,53,18,140,234,109,226,97,41,147,78,184,37,186,14,154,38,246,160,101,36,135,56,75,52,185,213,110,231,5,51,103,233, +188,0,204,86,114,66,57,147,151,230,207,55,89,184,37,68,119,0,175,91,161,45,8,252,46,197,150,114,40,183,249,67,48,22,99,59,92,231,245,105,116,108,20,35,195,103,160,40,42,66,33,26,203,151,183,163,189,189, +29,203,150,197,230,12,108,206,37,244,66,192,150,5,183,52,194,225,24,122,123,123,113,248,240,111,145,148,36,204,206,206,128,227,88,59,92,198,104,48,99,180,135,213,205,110,128,181,82,107,235,221,63,146, +148,194,236,236,44,196,112,24,170,170,152,161,50,154,25,130,99,85,82,88,56,181,54,176,192,106,9,183,68,215,203,233,116,191,232,184,173,90,198,214,251,23,44,197,24,38,27,252,111,197,139,58,187,121,16,93, +135,6,84,12,182,20,40,156,63,119,30,0,240,179,159,253,220,247,53,47,189,248,50,58,86,172,176,239,231,123,93,41,214,189,170,27,31,189,237,247,114,30,223,184,97,29,186,43,8,61,96,89,222,119,185,132,232, +42,20,89,173,171,19,185,16,220,218,89,154,196,95,137,116,86,120,200,81,11,44,40,171,34,204,122,193,118,97,124,99,129,126,246,2,101,116,106,35,69,195,134,156,141,28,172,89,250,98,132,89,171,18,130,233, +129,2,106,36,48,61,157,128,166,235,160,40,64,20,5,52,55,55,163,181,181,53,111,39,172,114,20,200,82,129,205,250,175,40,50,116,93,71,123,123,59,194,225,48,102,102,102,49,49,57,133,104,52,10,134,161,161, +170,70,39,38,198,132,54,66,140,201,93,45,74,124,45,14,255,204,96,58,49,139,166,230,102,187,234,135,17,54,163,217,171,20,70,232,77,0,182,129,45,29,184,5,128,84,42,133,230,120,124,222,193,114,49,158,67, +236,82,248,241,157,157,151,172,218,110,214,99,170,106,64,91,89,64,107,101,30,3,85,12,50,40,31,165,157,3,116,75,75,75,209,250,180,78,184,119,43,178,6,208,210,12,103,103,227,19,162,129,162,89,16,93,173, +219,19,217,11,112,128,249,151,162,178,16,7,98,199,178,50,140,89,219,83,108,128,162,164,237,223,206,185,220,85,232,111,101,191,81,189,248,6,110,31,161,72,198,107,137,62,89,52,23,53,138,6,199,113,190,75, +132,70,177,125,163,244,219,76,98,6,153,140,12,154,166,209,216,24,69,99,99,35,26,27,27,81,205,37,117,247,251,253,129,13,208,161,40,25,168,170,140,166,166,38,8,130,128,153,153,4,102,103,146,80,85,213,172, +68,161,219,245,152,117,162,155,113,211,196,156,220,81,85,3,55,251,120,169,123,255,204,96,118,118,198,225,31,214,209,65,143,152,33,8,238,9,94,0,182,129,45,21,27,25,25,129,170,100,12,1,101,30,212,85,77, +211,22,149,127,114,74,122,121,47,112,139,209,172,31,193,9,185,214,242,122,193,165,246,5,188,240,249,13,194,82,82,194,217,115,163,0,128,201,201,113,44,91,214,132,135,31,121,12,132,232,5,171,31,104,154, +2,150,229,10,194,191,234,200,228,172,55,160,45,4,112,222,228,169,236,113,106,100,235,235,154,17,91,103,249,148,201,83,179,50,223,237,202,85,194,80,29,251,166,188,109,85,219,55,243,97,118,121,47,179,180, +141,117,223,234,191,110,248,197,152,208,209,12,133,116,70,70,38,35,131,97,104,52,52,68,17,137,68,16,137,136,168,117,140,168,23,216,84,149,128,16,5,170,170,34,26,13,131,231,121,168,138,138,116,58,157,237, +154,167,169,118,9,59,70,163,205,120,114,218,5,108,115,5,55,247,132,8,72,38,165,250,245,143,170,64,146,156,254,201,150,177,115,170,181,213,244,207,66,219,235,175,255,22,111,191,61,228,122,108,205,154,110, +92,126,249,69,23,52,224,93,136,126,81,205,250,243,190,161,110,53,224,182,66,85,146,234,85,0,3,124,148,218,66,23,128,122,5,94,11,88,173,154,154,190,59,90,139,250,132,85,26,148,179,197,228,13,192,109,109, +109,193,239,252,206,251,93,192,187,235,134,157,120,224,129,159,224,232,209,99,216,176,97,125,94,165,86,16,4,180,180,180,248,126,70,173,3,221,107,125,224,58,21,91,138,114,3,37,31,202,102,135,134,132,112, +30,197,174,212,130,197,12,96,119,83,51,226,76,173,227,167,26,93,136,106,235,155,194,9,2,249,124,176,216,6,254,98,49,204,198,239,197,65,145,101,48,44,107,194,143,142,76,70,134,170,170,224,56,6,145,136, +1,75,44,75,163,214,49,162,94,96,115,62,38,138,33,35,126,86,215,161,40,138,221,53,207,6,55,146,109,162,65,140,27,181,153,136,19,130,140,92,199,254,209,28,254,209,116,7,216,146,156,114,96,192,210,80,104, +223,126,123,8,251,15,188,148,243,248,133,14,181,23,154,95,172,107,56,203,242,254,101,34,11,93,15,22,177,80,89,201,184,196,214,242,3,106,9,193,70,25,34,163,149,28,28,49,147,139,209,178,106,83,200,209,18, +36,247,117,197,186,137,105,154,2,41,149,66,42,101,116,1,161,105,22,186,174,46,74,152,45,244,187,251,193,140,247,216,228,67,162,107,191,57,46,4,69,201,148,252,91,0,92,158,231,249,69,119,1,88,138,75,176, +165,198,48,179,28,103,195,19,64,160,170,170,185,76,205,66,16,120,240,124,101,192,86,73,140,168,23,216,178,85,43,88,123,82,162,233,58,52,221,10,59,48,43,89,88,181,135,205,101,118,59,206,188,138,225,7,214, +246,52,85,171,107,255,88,147,19,107,27,217,215,102,67,16,156,49,229,65,248,65,96,75,193,164,84,10,177,88,99,217,117,207,139,2,111,30,8,150,107,196,12,243,113,62,214,52,166,182,214,59,64,51,76,221,75,228, +149,28,124,146,148,194,216,232,40,166,166,38,236,167,146,73,9,175,189,250,58,118,94,179,163,224,38,116,77,197,249,243,231,140,219,117,28,94,48,7,39,85,12,62,206,251,196,204,36,183,147,202,104,182,46,42, +65,4,86,91,181,195,106,40,225,60,142,230,43,70,212,15,216,8,49,64,219,2,48,10,20,136,83,237,36,217,215,195,19,42,80,11,255,208,102,227,141,186,245,15,133,188,159,69,106,236,159,192,2,91,72,179,196,170, +249,224,16,175,40,180,152,108,81,143,226,150,211,141,216,80,214,132,58,13,116,158,16,132,197,98,153,116,26,71,143,13,98,114,114,220,245,248,93,119,125,166,104,178,216,82,183,106,197,176,90,51,222,90,86, +45,8,172,158,128,214,128,29,158,231,192,154,221,119,172,37,108,85,85,237,102,22,181,140,17,245,190,30,208,193,48,20,50,153,148,25,23,106,148,241,114,66,32,241,1,55,66,178,201,98,85,243,15,140,237,242, +28,7,150,101,22,141,127,244,124,254,9,184,54,176,37,100,154,170,128,230,120,91,140,153,47,182,10,160,118,1,140,97,56,23,196,150,2,180,170,98,168,187,245,26,103,219,212,220,132,27,174,191,218,245,88,82, +50,148,218,164,212,61,167,142,98,110,163,205,54,189,50,0,146,211,4,98,225,1,54,0,206,192,170,107,162,104,196,137,202,114,6,153,140,12,69,81,32,73,18,68,81,156,151,24,81,231,243,44,203,130,162,24,204,204, +36,33,203,50,88,150,65,72,16,64,51,102,200,4,72,142,2,89,107,21,82,12,139,166,127,228,186,244,15,199,241,14,136,197,188,251,103,225,39,103,1,173,95,136,126,137,52,68,17,9,135,161,170,114,205,199,197,197, +30,174,184,168,161,214,11,180,217,89,141,10,198,103,41,217,122,156,229,56,27,108,253,236,250,235,118,34,147,201,160,165,181,5,31,251,216,109,0,128,22,83,33,181,238,251,61,214,226,80,81,243,61,150,87,105, +117,36,127,56,15,170,163,71,143,225,87,251,94,196,208,233,33,92,113,229,229,184,226,202,203,171,232,65,221,4,90,125,73,28,204,129,5,86,108,176,139,70,35,8,133,120,164,211,41,164,82,18,100,89,70,50,153, +132,32,8,243,22,35,106,221,182,18,91,39,39,167,145,78,167,193,243,33,136,162,96,44,181,211,44,8,161,10,118,134,179,246,175,26,213,15,44,107,136,68,192,243,60,210,233,116,93,251,199,9,177,181,244,79,29, +30,209,193,73,125,1,250,37,44,138,16,195,225,64,232,89,170,80,155,15,102,85,85,5,209,85,87,227,5,215,251,74,140,153,108,93,222,106,223,238,236,234,116,61,231,189,63,215,199,108,115,0,109,82,146,176,239, +87,47,224,215,191,126,209,110,182,240,201,79,254,126,222,170,7,149,155,165,212,186,51,201,235,1,110,131,147,55,176,90,88,52,26,5,77,211,208,52,13,146,36,35,157,150,144,76,206,154,181,88,97,3,213,153,51, +239,34,20,10,33,22,139,86,53,70,212,184,173,65,215,1,158,15,129,162,24,156,59,119,14,146,36,97,197,138,118,196,98,49,243,26,199,20,44,207,87,59,255,52,128,166,169,186,247,207,133,58,65,11,148,218,11,211, +47,145,72,196,140,117,175,173,45,5,97,139,94,148,95,186,198,49,179,153,244,194,254,176,19,19,83,216,191,255,21,92,115,205,14,220,118,235,135,107,24,71,171,251,30,196,245,0,148,129,106,28,88,45,172,181, +181,5,43,87,118,128,166,25,36,147,18,102,102,36,204,204,204,34,149,74,217,112,117,239,189,223,197,53,215,124,0,55,220,240,65,124,228,35,255,10,201,164,228,187,212,94,41,176,105,26,1,195,112,224,184,16, +84,85,197,169,83,39,77,101,146,6,199,177,142,73,250,252,39,193,182,180,196,209,209,209,190,40,252,115,97,2,92,112,14,95,136,126,25,31,31,135,230,168,49,95,91,36,164,23,181,175,22,229,183,87,228,52,116, +77,131,238,233,120,193,178,108,65,32,83,228,140,13,75,133,226,105,31,125,236,113,60,248,224,195,144,146,210,188,239,27,203,242,232,237,233,193,221,95,253,239,104,109,109,193,195,143,60,138,167,158,124, +26,175,190,122,16,163,163,99,85,251,28,183,159,40,219,63,11,105,20,197,128,166,141,223,48,80,106,3,171,206,49,69,229,92,35,122,123,123,32,138,34,166,166,102,144,72,204,32,149,74,33,153,76,66,211,52,252, +211,63,253,24,247,222,251,93,116,118,118,162,191,127,29,162,209,24,190,245,173,239,85,109,73,93,211,140,209,55,20,226,16,10,133,49,51,35,225,228,201,83,224,56,22,177,88,52,167,69,49,69,179,174,199,138, +237,95,85,252,211,179,10,162,40,44,14,255,120,218,58,87,219,63,117,134,110,129,82,123,1,249,133,162,24,123,76,20,195,225,242,186,162,150,205,84,25,59,183,102,177,219,162,69,114,77,83,160,155,229,94,12, +85,163,186,229,171,134,135,70,48,58,58,138,239,127,255,135,120,237,181,131,208,53,125,126,14,100,154,182,179,27,175,188,242,114,220,249,199,255,30,127,255,15,95,199,170,85,93,184,239,123,63,192,209,163, +199,170,116,16,203,14,192,181,18,196,136,221,164,97,33,160,210,168,41,170,230,141,119,182,190,91,160,226,6,54,23,136,235,238,238,52,142,117,69,197,200,200,89,164,211,105,36,147,9,100,50,25,236,223,255, +50,90,90,90,208,211,211,131,254,254,126,244,247,247,35,28,14,87,5,216,172,191,44,203,66,20,27,32,8,2,126,243,155,223,32,145,72,32,30,111,65,71,71,135,89,114,155,2,77,211,160,205,214,191,94,136,171,181, +127,58,59,59,64,72,253,251,199,186,61,159,254,169,7,128,11,236,194,240,11,33,26,88,142,3,195,178,104,136,68,230,201,135,20,172,28,155,0,106,23,226,71,215,85,187,213,171,179,198,104,190,216,89,142,15,129, +227,133,130,73,98,94,75,76,207,224,249,231,246,97,100,228,12,198,198,198,144,72,36,230,101,223,24,134,177,193,50,18,14,99,231,206,171,241,23,95,250,243,42,196,213,150,246,147,87,27,28,25,134,3,195,112, +246,109,75,141,245,83,102,157,179,110,39,124,123,103,150,129,5,86,58,172,101,161,167,185,185,25,87,93,117,37,56,142,197,200,200,57,156,63,63,138,100,50,141,100,114,22,219,182,93,133,134,134,6,196,98,49, +243,111,20,93,93,157,115,142,17,181,90,186,2,128,40,70,16,14,71,49,54,54,129,87,94,121,21,12,195,160,177,49,234,250,142,198,127,2,77,83,28,16,231,120,174,202,29,179,40,80,14,255,52,225,125,87,94,14,150, +173,111,255,208,52,109,251,37,199,63,65,207,133,192,2,43,123,82,80,207,205,133,46,8,168,117,2,152,165,212,230,131,32,167,85,82,202,139,16,29,201,217,36,190,255,63,255,9,15,62,248,48,78,28,127,123,145, +122,75,119,252,165,0,80,53,3,68,218,1,177,154,166,24,3,52,205,22,129,15,198,247,196,202,253,93,73,77,33,60,176,165,8,182,89,69,111,227,198,13,104,108,108,132,162,168,56,112,224,117,76,76,76,34,157,150, +240,161,15,221,136,245,235,251,160,105,42,68,49,132,205,155,55,226,198,27,119,205,121,73,221,122,76,20,35,104,104,136,65,81,52,252,232,71,63,70,50,153,68,44,22,69,103,103,135,13,105,52,77,27,245,182,77, +181,214,2,54,56,190,127,45,253,3,138,194,134,13,125,104,108,140,213,173,127,242,1,109,45,253,83,31,234,93,112,30,95,56,126,201,197,51,111,200,101,181,204,18,149,150,194,56,186,36,162,238,41,154,181,27, +48,112,60,159,183,164,87,181,108,120,104,4,195,67,35,248,216,199,111,67,44,22,67,136,231,17,18,170,183,92,159,78,167,241,222,249,247,236,251,179,179,179,88,182,44,86,131,132,177,218,94,9,24,134,129,174, +41,118,98,159,166,41,57,93,187,188,191,147,119,194,81,104,230,168,200,25,119,51,134,165,211,242,61,176,42,195,154,1,58,150,186,71,161,169,169,9,215,95,127,45,246,236,121,2,147,147,211,56,120,240,48,226, +241,102,176,44,143,175,126,245,191,33,153,148,0,16,68,34,145,170,44,169,235,186,142,72,36,130,198,198,38,132,195,49,60,245,212,211,56,115,230,12,56,142,67,119,119,167,3,206,104,48,12,13,154,161,64,211, +198,127,138,166,28,128,155,85,34,171,5,111,150,42,108,124,7,10,52,69,163,169,169,9,215,94,187,29,79,60,241,108,125,250,135,102,60,112,75,155,254,50,186,161,93,24,161,8,129,45,225,171,150,239,216,87,219, +36,249,165,49,51,160,151,210,97,160,200,178,145,68,166,171,174,216,203,90,205,62,52,85,195,228,196,36,190,245,173,239,225,169,167,158,46,73,37,46,197,50,233,12,222,57,121,10,167,135,134,241,246,59,39, +113,122,104,24,247,125,239,7,248,203,187,255,122,113,204,148,88,222,158,249,89,127,105,71,56,69,101,51,201,226,203,34,138,146,14,226,110,3,43,10,183,214,255,190,190,213,216,176,97,61,40,138,194,137,19, +167,112,248,240,81,40,138,2,85,85,16,14,139,118,172,104,53,150,212,35,145,40,26,27,227,16,197,8,14,30,124,3,7,14,28,0,69,81,184,232,162,141,104,109,109,49,187,101,209,118,109,86,134,102,236,219,52,229, +137,31,173,21,172,121,150,239,215,172,238,197,250,245,107,235,211,63,142,219,89,208,15,96,54,176,165,97,213,234,156,89,222,103,46,141,228,108,118,105,29,8,188,9,155,42,116,93,173,41,208,122,237,173,223, +30,197,134,245,235,16,18,4,68,27,34,136,52,52,84,188,173,198,101,141,184,230,154,29,96,24,6,170,162,128,16,13,239,223,117,45,30,120,224,39,56,122,244,88,13,234,213,86,247,196,80,228,52,88,150,7,69,211, +53,74,58,163,124,79,122,235,179,3,11,204,9,178,217,2,252,196,86,252,24,134,129,174,51,216,186,245,125,72,36,18,56,113,226,29,188,252,242,235,224,121,30,91,183,94,1,134,201,190,215,219,84,160,212,178,84, +0,192,113,156,189,164,30,14,199,112,240,224,33,60,241,196,147,72,38,147,88,187,118,13,150,45,139,129,166,105,176,44,11,154,102,140,22,181,186,6,134,11,129,97,88,251,187,210,12,147,13,67,0,170,182,212, +238,242,15,201,250,135,102,24,48,140,142,45,239,187,2,51,137,89,188,253,206,169,186,241,79,22,108,25,219,63,76,141,252,19,88,96,213,52,154,102,109,54,113,141,93,156,0,69,73,219,227,91,206,42,100,96,23, +30,212,26,64,99,117,199,202,189,144,121,15,18,75,85,173,118,96,116,38,157,70,38,157,198,191,252,228,65,92,116,209,70,92,181,101,11,104,166,58,130,120,56,18,174,79,223,115,33,40,74,198,5,149,170,42,187, +20,219,234,26,113,193,178,21,19,28,0,109,96,133,193,205,81,89,128,166,64,81,52,98,177,24,118,236,216,6,93,215,241,206,59,167,240,252,243,47,97,122,122,6,215,93,183,3,77,77,203,64,8,1,77,211,144,229,140, +13,102,197,151,212,141,213,138,80,136,131,40,54,32,28,142,66,81,52,60,245,212,211,56,112,224,0,146,201,36,122,122,186,209,222,222,6,150,101,193,178,44,24,134,182,111,135,66,33,48,180,21,134,64,231,134, +30,160,186,192,102,251,7,148,43,4,129,166,105,68,99,13,216,186,237,125,208,117,29,39,79,13,213,133,127,178,143,25,48,235,12,61,112,38,137,5,64,27,216,124,139,57,133,207,51,6,186,174,218,57,38,174,17,141, +232,46,176,45,6,180,181,235,148,103,76,254,3,168,93,96,35,186,10,69,86,93,208,147,123,208,149,62,235,185,241,198,221,56,126,252,237,57,1,111,98,122,6,47,189,248,50,58,86,172,64,164,33,130,198,88,172,228, +237,121,99,106,19,51,9,204,36,18,120,237,213,215,177,243,154,29,245,113,224,112,33,215,192,193,153,247,231,115,9,35,59,81,33,249,216,55,136,177,13,204,62,78,141,255,52,40,74,183,21,62,150,101,176,124, +121,43,118,236,216,10,154,166,241,246,219,39,177,127,255,43,56,117,106,24,159,248,196,237,232,234,90,105,150,153,18,32,203,105,40,138,12,69,201,128,16,197,5,108,128,110,131,22,207,135,192,113,33,132,66, +97,8,130,128,177,177,9,252,232,71,63,198,153,51,103,64,81,20,214,174,93,131,21,43,218,16,10,241,246,82,58,203,114,166,10,105,0,27,77,81,6,188,49,172,25,67,106,2,155,163,148,85,245,253,67,140,237,235,186, +189,220,207,50,44,150,183,182,96,235,214,247,129,166,105,188,115,242,116,93,248,135,101,25,251,175,83,165,53,126,223,32,4,33,176,218,26,109,214,143,166,25,6,138,156,6,209,117,95,176,117,38,96,177,28,7, +69,214,64,8,1,199,11,208,53,13,154,166,216,239,43,167,62,123,112,124,47,113,168,45,13,128,220,203,224,133,0,51,22,139,225,138,43,46,3,0,252,209,127,248,67,188,246,218,33,48,44,3,77,173,44,243,48,57,155, +68,114,54,137,151,127,243,42,110,188,113,119,209,86,143,153,116,6,167,135,134,161,170,42,198,199,199,17,143,199,49,62,62,142,187,238,250,76,13,187,139,149,103,170,98,168,163,12,195,129,166,105,91,169, +173,249,4,198,78,115,53,234,233,201,153,148,231,241,236,9,47,203,41,215,119,90,234,23,130,124,5,200,253,124,115,33,94,36,45,112,179,146,139,24,134,134,166,25,96,219,218,218,138,107,175,189,26,209,104, +3,142,28,25,192,217,179,231,240,157,239,252,35,182,108,185,28,219,182,109,71,44,102,44,143,235,186,14,85,149,161,170,170,75,125,100,24,10,20,101,41,135,12,84,85,197,244,244,44,158,121,230,151,120,229, +149,87,145,76,38,193,113,44,54,109,218,136,166,166,38,48,140,1,173,28,199,154,192,198,130,227,56,112,156,241,151,166,136,99,89,157,201,42,145,160,106,90,253,128,34,48,253,163,131,166,141,16,4,134,97,208, +218,26,199,142,171,183,162,161,33,130,99,3,39,106,227,31,150,197,134,141,235,17,143,199,139,250,199,130,92,227,59,58,19,198,130,1,63,176,218,152,19,62,115,206,29,179,182,188,187,138,0,149,3,183,28,47, +24,225,145,154,102,132,20,153,137,95,229,140,157,22,12,3,198,138,135,170,202,57,159,51,135,81,36,128,218,165,110,177,88,12,215,95,191,211,60,80,101,92,126,197,101,120,235,183,111,33,147,41,63,41,108,120, +104,4,137,233,68,81,168,181,98,106,199,198,198,209,24,139,224,236,217,247,16,111,110,172,207,25,107,5,39,101,185,160,166,200,50,56,158,135,145,83,98,156,116,44,199,251,206,138,21,57,237,130,56,93,211, +65,209,148,189,45,231,128,183,216,7,63,231,126,230,187,93,12,124,45,31,44,53,223,228,3,118,75,205,203,130,45,3,66,88,232,58,65,52,26,197,214,173,91,208,218,218,138,215,94,59,136,233,233,4,158,123,238, +5,188,246,218,155,88,189,186,23,189,189,189,104,111,111,71,83,83,19,162,209,48,68,209,136,123,85,85,21,153,76,10,51,51,73,76,78,78,227,252,249,115,56,121,242,36,78,158,60,133,68,34,1,134,97,208,220,220, +132,149,43,59,208,220,188,204,78,114,178,128,141,227,56,240,60,103,66,27,103,198,143,194,94,118,183,129,205,211,112,160,154,225,7,217,219,134,90,107,124,38,177,151,253,117,66,16,139,54,96,203,150,203, +209,210,26,199,193,131,135,145,72,204,84,201,63,52,154,154,150,161,163,99,57,154,150,69,193,178,52,64,180,130,254,177,254,90,42,173,85,1,33,72,24,11,172,214,96,155,3,81,44,95,210,235,44,155,107,101,38, +11,134,9,33,182,184,148,79,188,83,21,165,96,9,211,218,133,49,4,80,59,47,102,65,80,165,0,198,241,60,174,191,126,39,174,191,126,39,78,28,127,27,145,134,8,164,100,170,38,223,245,135,255,120,63,250,250,215, +98,235,85,87,224,199,255,252,83,172,94,189,10,175,189,250,19,252,213,95,125,229,130,248,173,44,248,34,132,152,157,198,116,51,33,197,200,150,206,164,77,133,214,49,179,212,210,238,182,198,20,40,232,186, +238,138,65,244,59,137,11,157,212,3,3,131,248,250,215,239,1,0,180,180,180,224,175,255,250,110,0,192,63,253,211,253,120,241,197,253,0,128,91,110,185,25,183,220,114,51,254,246,111,191,129,99,199,6,240,131, +31,220,7,0,248,212,167,238,116,109,43,28,22,177,99,199,118,220,114,203,205,16,69,177,42,190,41,252,183,16,200,184,247,189,18,223,44,86,192,181,212,90,35,89,76,135,174,51,96,89,29,186,110,28,103,171,87, +247,160,165,165,25,131,131,39,112,234,212,16,102,103,147,120,243,205,195,56,124,248,183,8,135,141,37,115,158,231,77,213,145,50,107,173,106,144,101,25,233,116,26,146,36,217,157,177,86,172,104,71,99,99, +12,43,87,174,176,227,121,179,49,162,185,192,198,113,28,40,0,44,195,216,165,171,236,240,3,204,79,71,49,75,173,101,24,2,93,55,212,90,86,103,64,56,14,186,78,208,219,211,141,120,115,51,142,159,120,7,67,67, +35,72,38,43,241,143,14,150,229,176,98,69,59,162,209,48,58,86,172,0,69,193,132,83,2,134,225,242,250,199,0,218,172,74,155,13,63,8,84,218,192,22,224,154,66,215,190,136,84,34,145,64,196,209,85,204,169,214, +250,113,142,51,199,72,85,242,215,230,247,66,113,0,181,139,24,110,231,170,44,174,237,91,99,28,92,77,58,110,188,105,55,78,156,168,94,51,134,243,231,223,195,138,21,237,184,230,154,29,80,228,52,218,219,219, +112,219,173,31,134,148,148,234,190,250,65,53,97,214,250,43,203,50,222,123,111,20,211,211,9,76,78,78,64,74,74,200,100,50,208,204,2,245,60,207,35,28,9,35,218,16,65,52,22,69,107,75,28,44,107,196,60,49,44, +7,104,148,35,251,61,127,59,205,98,3,226,216,216,152,125,123,124,124,162,164,253,9,135,69,116,119,119,3,0,134,134,134,240,204,51,123,1,0,31,251,216,237,85,247,77,34,49,131,100,50,233,242,77,40,196,35,18, +137,160,161,161,1,141,141,49,180,180,180,128,227,88,87,237,214,106,248,102,113,170,181,196,84,106,141,236,125,142,35,246,202,64,44,22,195,37,151,92,132,213,171,123,49,52,52,140,201,201,105,36,18,9,36, +147,73,36,18,9,123,121,157,16,119,69,133,80,136,71,123,123,27,26,26,26,192,48,52,58,58,218,13,117,197,84,19,157,64,203,178,172,13,108,60,207,131,231,179,127,65,116,48,76,86,137,172,149,74,91,80,173,37, +78,255,192,85,233,32,22,107,192,197,23,109,64,111,111,55,134,135,207,152,199,223,172,233,159,105,168,170,230,227,31,227,92,109,107,91,142,134,134,48,104,154,194,138,246,118,0,196,78,222,99,88,22,12,205, +64,16,195,0,116,132,66,124,142,127,56,142,53,99,107,157,241,180,129,74,27,216,210,22,227,116,66,202,76,134,214,75,230,156,160,249,194,226,28,214,224,140,23,169,86,169,41,154,161,177,105,211,70,108,218, +180,17,186,166,35,149,146,48,157,152,153,211,1,156,73,167,209,16,109,176,219,249,94,115,205,54,0,64,180,72,216,194,124,154,149,193,73,8,1,209,245,57,23,133,246,3,182,177,177,49,156,60,121,26,111,188,113, +24,227,227,227,80,20,21,153,76,6,153,76,54,102,207,2,133,16,207,131,15,241,160,105,163,205,231,166,77,27,176,102,245,106,52,55,27,75,53,238,1,143,182,139,205,151,10,112,93,93,93,24,30,30,198,192,192,32, +214,173,235,199,177,99,3,246,99,133,172,187,187,27,159,251,220,93,0,128,84,42,133,191,249,155,123,240,204,51,123,177,107,215,13,104,105,137,87,205,55,170,170,33,147,201,32,157,206,228,250,38,196,27,25, +245,12,141,230,230,102,92,124,241,38,172,90,213,141,230,230,38,159,246,162,229,251,102,177,170,181,70,33,127,6,114,38,13,150,101,109,176,229,121,206,190,82,68,163,20,250,251,215,66,150,101,204,206,38, +49,57,57,133,217,217,89,200,178,2,85,85,161,105,154,49,121,50,195,9,4,65,64,44,26,5,199,115,57,237,92,45,229,213,74,112,114,42,143,6,220,26,192,70,116,2,150,203,214,99,157,47,149,54,159,90,75,8,3,2,226, +130,90,203,162,84,3,250,214,174,54,252,147,148,48,61,53,141,164,148,66,38,99,30,135,154,102,76,32,24,26,28,203,66,16,5,68,163,13,224,88,54,219,68,194,242,143,165,188,178,44,104,138,128,227,120,19,98,221, +254,177,146,197,156,213,15,2,149,54,176,165,9,180,178,61,118,140,79,76,148,241,190,180,71,181,245,231,29,171,114,209,82,170,28,116,129,64,109,182,174,169,243,199,171,118,13,213,116,58,141,84,58,61,167, +38,12,28,47,96,121,219,114,236,253,229,243,216,122,213,21,0,128,158,85,134,210,119,228,200,81,236,216,126,85,93,120,52,223,210,71,165,64,235,5,182,67,135,14,99,223,190,23,0,80,144,164,36,20,69,181,151, +39,25,134,6,199,49,160,105,22,128,177,188,153,145,51,72,165,83,208,52,13,19,19,83,120,247,221,115,120,6,191,196,150,45,87,226,178,205,151,160,169,169,201,81,235,83,119,168,59,254,0,231,189,223,221,221, +137,225,225,97,12,15,15,35,28,14,187,30,43,213,68,81,196,238,221,55,224,135,63,188,31,131,131,131,104,105,217,86,5,223,72,80,20,165,176,111,50,25,164,82,134,111,198,198,38,48,50,242,46,0,96,219,182,45, +184,228,146,77,134,111,236,184,196,242,125,179,24,213,90,163,243,148,14,69,150,33,136,97,104,142,246,147,225,72,4,138,162,194,217,153,138,162,140,9,130,16,226,0,170,29,154,166,129,16,221,17,22,3,40,230, +82,30,203,242,174,174,95,217,78,88,140,157,181,207,48,172,157,244,100,41,145,86,12,41,160,121,170,30,208,57,13,6,106,239,31,64,215,45,53,155,228,12,21,94,85,148,166,141,196,174,134,136,225,75,171,177, +130,174,155,32,12,146,147,176,232,42,33,230,168,55,107,65,191,32,70,124,253,99,133,31,100,227,105,169,156,201,89,96,129,45,126,160,205,216,66,92,50,57,59,103,48,182,199,110,71,29,127,139,57,2,168,93,132, +64,235,140,167,245,130,173,245,120,165,32,251,252,243,251,112,226,248,219,248,208,135,62,88,241,183,116,6,116,11,130,128,238,174,14,124,225,11,95,198,134,13,235,17,142,132,241,218,171,175,227,198,27,119, +215,69,245,3,43,227,146,97,56,168,115,168,122,224,167,64,190,245,214,81,60,250,232,30,76,77,77,65,150,21,232,186,6,150,165,193,113,64,36,18,70,99,99,20,13,13,81,68,34,97,8,130,217,108,67,211,145,201,200, +72,165,36,36,147,105,72,82,26,83,83,51,80,20,21,251,246,189,136,55,222,56,140,93,187,174,197,166,77,23,217,3,160,183,197,166,21,103,105,197,0,122,45,30,55,84,213,241,241,9,59,12,193,122,172,28,179,222, +51,54,54,190,224,190,121,238,185,125,56,120,240,13,236,222,189,11,235,215,247,151,237,155,197,12,15,22,252,240,161,176,29,167,13,24,93,233,88,214,173,178,26,176,165,32,157,210,16,10,133,160,19,128,161, +41,16,80,80,228,52,40,138,5,40,10,52,101,248,134,97,56,51,92,128,114,45,189,187,161,141,117,37,61,89,10,36,199,113,32,58,101,191,158,90,160,88,81,103,137,47,198,103,184,112,194,44,205,48,96,20,6,12,163, +130,97,24,27,106,53,93,7,177,161,223,7,106,173,255,52,109,214,229,117,251,71,16,4,95,255,56,27,48,4,37,188,2,91,186,86,173,74,4,122,142,160,231,167,234,6,80,123,1,219,232,123,163,248,237,91,71,209,215, +183,26,154,170,225,173,223,30,173,130,90,169,1,224,236,153,213,206,157,87,227,138,43,47,199,208,233,33,0,70,237,220,72,184,62,154,47,88,129,241,52,195,84,172,216,58,97,141,16,130,201,201,73,60,253,244, +94,188,249,230,91,72,38,147,208,117,13,128,142,72,68,64,91,91,43,150,47,111,71,115,115,51,26,27,27,17,137,68,204,24,59,218,4,55,13,138,162,152,137,40,18,102,102,36,36,18,51,24,25,57,139,145,145,115,24, +27,155,192,99,143,61,133,83,167,134,177,125,251,54,44,91,214,104,171,96,134,218,99,44,69,3,186,107,128,244,66,220,250,245,235,48,60,60,98,39,121,173,91,215,95,155,75,217,60,250,102,116,116,12,63,255,249, +99,184,248,226,77,21,249,102,177,193,132,183,218,131,165,72,90,209,51,44,195,130,162,217,156,208,1,154,54,66,12,210,41,201,0,54,134,2,77,27,203,228,86,45,86,38,228,174,133,205,135,66,142,109,100,147,154, +178,117,86,157,170,99,182,254,170,174,233,54,208,210,30,159,207,71,162,152,203,63,0,116,31,176,117,2,169,213,28,194,218,63,3,104,53,232,154,238,169,85,235,54,107,162,100,116,48,163,237,214,192,150,63, +104,138,32,20,10,229,248,199,219,116,97,62,253,19,88,96,129,5,80,187,224,179,29,103,92,73,190,226,200,197,76,83,85,36,37,9,63,255,249,47,48,250,158,161,212,173,238,93,85,213,111,234,252,110,73,73,194, +190,95,189,128,87,95,123,29,0,112,229,21,151,99,231,181,87,47,40,216,114,188,0,98,14,78,206,186,123,115,129,54,93,215,241,238,187,103,177,103,207,147,24,24,56,110,46,89,170,224,121,10,61,61,61,232,232, +232,66,71,71,39,218,219,219,209,218,218,106,130,155,104,148,253,129,49,96,170,170,10,73,146,144,76,38,145,76,206,98,102,102,22,169,84,10,107,214,244,226,252,249,81,236,223,255,26,166,166,18,248,205,111, +94,195,244,116,2,215,93,119,13,90,91,151,27,0,161,235,246,32,9,88,75,189,254,223,187,171,171,211,78,244,234,234,234,170,200,135,227,227,134,66,155,47,158,118,49,249,102,177,131,109,22,174,12,176,213,181, +140,89,187,86,181,147,233,156,64,203,48,42,64,116,104,154,10,157,80,208,84,5,180,32,24,224,230,89,94,231,56,193,14,9,113,150,15,243,46,177,251,181,127,165,160,187,128,118,190,151,213,115,252,227,3,182, +70,232,128,185,127,102,76,177,170,26,85,36,52,77,53,195,15,28,157,196,242,132,31,120,39,13,12,147,237,30,102,249,130,101,133,156,246,184,126,33,25,1,208,6,182,148,44,104,251,30,64,109,201,7,74,169,166, +107,58,142,30,59,134,215,94,59,136,107,119,94,109,170,180,99,21,127,246,166,139,54,32,214,24,203,1,89,138,202,77,178,186,247,222,239,98,243,165,23,227,206,63,254,20,0,224,213,87,95,199,61,247,220,139, +191,248,210,159,215,133,74,91,13,53,146,16,130,179,103,207,225,177,199,158,192,192,192,160,89,184,61,141,182,182,22,244,245,245,99,245,234,181,88,189,122,13,150,47,95,129,101,203,98,96,24,163,225,130, +245,223,218,6,69,81,16,69,17,130,32,160,177,177,17,169,84,202,132,56,163,38,112,60,222,140,131,7,15,227,196,137,83,56,118,204,248,156,235,174,187,6,109,109,203,161,235,217,236,119,99,192,180,98,9,221, +144,105,65,45,96,84,49,184,236,178,205,21,237,247,75,47,29,0,0,244,247,247,47,122,223,248,1,208,98,132,91,171,182,177,177,212,206,128,15,137,118,2,152,166,89,241,176,154,1,247,68,131,174,179,6,180,177, +12,116,226,94,98,119,94,103,40,192,78,82,204,42,223,217,216,90,154,206,38,131,101,27,45,208,32,68,203,1,218,133,134,127,39,216,186,99,105,141,42,27,154,166,129,102,104,83,157,101,179,80,155,199,63,46, +165,151,202,66,173,165,218,178,12,107,251,6,68,3,203,134,92,149,14,230,35,198,56,176,192,22,210,2,160,13,160,182,108,160,205,151,40,118,226,248,219,120,235,200,17,108,190,244,18,60,245,228,51,115,28,24, +104,196,26,163,136,54,52,96,85,207,42,104,170,154,3,178,70,232,65,214,78,157,30,66,231,202,14,220,116,211,7,236,199,110,186,233,3,24,27,27,95,176,146,94,213,74,168,115,198,215,77,77,77,225,23,191,176, +160,77,3,33,50,214,172,89,133,117,235,54,97,227,198,141,232,237,237,179,187,47,57,129,205,9,109,222,254,242,0,204,37,75,35,38,79,16,102,17,137,8,136,199,155,209,214,214,138,151,95,62,136,193,193,19,160, +105,26,187,119,223,128,88,44,106,39,250,88,230,132,183,236,64,76,236,120,88,73,74,149,28,79,59,52,52,132,191,253,219,111,0,48,226,104,199,198,198,176,123,247,46,95,165,118,177,249,166,144,186,183,24,128, +214,130,126,235,187,135,248,144,233,43,226,80,105,53,187,243,24,77,107,0,49,147,160,136,14,98,42,145,126,49,163,28,47,152,106,36,12,117,61,36,216,224,102,37,141,185,195,60,12,88,211,84,217,23,104,23,34, +166,214,171,194,211,0,8,205,184,226,105,53,205,232,62,198,48,52,24,205,80,247,75,241,143,27,140,105,80,52,101,134,48,48,174,74,17,118,187,94,150,45,168,206,6,96,27,88,0,180,129,93,80,80,155,15,96,253, +30,127,253,224,33,12,15,141,96,243,165,151,84,252,121,173,203,91,112,197,21,151,161,123,149,123,153,218,202,58,36,68,51,151,23,114,91,239,166,36,9,225,72,110,152,129,223,99,243,114,144,176,124,85,129, +214,186,253,212,83,207,218,203,234,132,200,232,237,237,197,197,23,95,138,75,47,221,140,222,222,181,8,133,66,160,40,82,50,180,57,239,3,0,199,113,104,104,136,154,53,65,83,216,178,229,114,240,124,8,207,63, +255,18,6,6,142,163,177,49,134,157,59,175,182,235,147,58,143,9,65,140,64,83,221,141,12,250,251,251,236,215,148,26,79,43,73,41,28,59,54,96,252,126,97,17,187,119,239,194,45,183,220,188,104,125,227,5,91,103, +220,241,98,5,91,62,36,218,251,32,103,210,208,117,163,88,185,5,77,70,121,52,3,220,8,81,193,104,52,8,65,206,132,193,218,6,203,242,160,25,26,32,196,81,78,142,182,75,127,249,37,228,169,170,12,10,185,49,162, +11,233,87,47,216,90,247,117,157,6,205,80,14,255,80,230,241,160,67,39,122,81,255,56,247,201,25,87,75,81,102,183,36,138,118,85,53,176,98,146,179,205,25,234,195,63,129,5,86,43,78,9,66,15,2,168,93,80,245, +209,105,162,40,34,214,24,195,191,249,55,255,26,128,17,139,235,108,139,71,81,140,75,153,117,118,254,176,172,123,85,55,30,120,224,39,174,228,176,164,36,225,200,145,163,184,241,198,221,243,238,39,85,149, +171,234,43,66,8,142,28,57,134,195,135,223,178,151,213,215,172,89,133,139,47,190,20,87,94,185,5,107,215,174,181,213,209,74,160,205,121,159,162,40,19,0,41,112,156,130,173,91,175,192,244,244,12,246,239,127, +5,111,188,241,91,180,181,181,161,191,127,45,56,142,88,95,14,132,232,72,167,146,96,24,6,189,61,221,248,222,247,190,109,15,156,86,183,48,203,156,247,173,122,180,126,207,45,9,223,120,192,150,16,122,209,183, +89,116,126,119,3,112,5,135,178,104,45,117,235,200,100,50,70,235,86,150,131,78,27,97,25,58,209,205,227,37,11,254,12,99,148,243,130,79,201,43,11,222,52,85,54,192,215,174,46,1,83,157,69,221,37,61,121,253, +99,37,215,17,98,170,182,52,13,218,62,190,104,35,228,160,128,127,188,219,182,124,69,83,180,43,134,57,171,224,26,53,122,53,53,3,62,36,6,73,97,129,93,176,2,92,96,23,4,212,186,27,42,228,3,215,90,207,120,66, +33,30,155,46,218,132,206,206,149,57,125,157,117,93,5,3,214,83,82,204,171,206,186,51,131,35,225,48,254,195,31,255,123,124,245,238,175,65,12,27,153,246,99,99,227,184,235,174,207,44,72,162,88,53,148,90,231, +18,228,232,232,40,30,123,236,113,36,147,73,16,162,163,173,173,5,235,214,109,194,165,151,110,118,64,27,230,12,109,214,125,226,232,140,196,48,192,117,215,237,192,169,83,67,56,123,246,60,94,122,233,0,218, +218,90,16,139,53,58,62,87,3,192,122,148,58,218,119,160,175,22,228,47,30,223,56,125,96,132,62,212,210,55,11,1,111,78,85,210,130,91,134,161,64,40,163,26,132,5,243,186,238,174,82,145,189,230,240,57,224,229, +172,163,10,162,129,97,88,87,135,48,203,135,245,170,62,230,247,79,22,110,137,174,151,228,159,28,168,5,114,195,10,236,134,19,8,194,13,2,187,96,96,54,176,11,0,106,189,202,166,159,202,106,20,41,118,62,23, +154,151,3,133,97,25,52,45,91,134,63,250,163,63,68,72,16,242,67,181,146,45,123,165,42,138,43,158,214,239,251,141,142,142,33,37,73,248,171,191,250,202,194,31,32,44,95,213,222,214,132,16,28,58,244,91,76, +78,78,66,215,53,240,60,208,215,215,111,198,137,214,6,218,172,199,172,193,176,169,105,25,62,241,137,59,240,157,239,252,35,166,166,166,113,248,240,91,184,108,243,37,160,208,0,85,145,193,113,156,93,24,158, +162,40,168,138,106,119,136,170,165,213,155,111,166,167,167,241,214,91,3,184,242,202,205,30,176,200,130,6,33,204,162,87,107,11,1,185,5,111,52,69,129,208,70,103,45,243,199,242,141,21,53,158,211,236,235, +147,183,29,177,162,164,17,18,194,230,113,149,89,84,75,233,133,252,99,193,109,73,254,241,1,91,75,177,53,164,10,42,167,101,179,229,47,62,36,6,163,118,96,75,206,188,241,248,1,224,86,110,116,189,126,49,3, +252,104,51,182,141,49,191,42,109,14,22,116,14,196,90,255,189,202,237,92,74,79,229,179,181,125,171,241,177,143,221,134,206,206,78,68,26,26,242,2,173,166,170,6,208,58,160,156,16,205,254,159,239,192,29,27, +27,195,145,163,3,117,1,180,213,86,34,199,198,198,240,235,95,191,0,89,86,0,232,232,233,233,198,234,213,107,209,219,219,135,144,93,231,179,250,208,230,220,6,33,4,93,93,43,177,101,203,229,80,85,21,111,191, +125,10,169,84,6,146,148,132,170,170,102,251,83,179,5,42,205,66,211,100,215,62,20,26,164,151,146,111,20,69,197,137,19,111,35,145,152,129,44,203,80,20,195,47,170,154,237,24,69,136,94,51,223,44,36,188,121, +255,135,132,176,217,53,139,7,237,170,61,203,130,97,221,255,5,177,193,44,77,197,122,18,159,40,48,174,198,22,139,179,36,149,223,247,182,203,114,153,37,190,10,249,199,245,159,97,237,132,48,154,178,252,67, +249,250,39,0,218,192,150,154,89,101,70,157,77,140,2,160,93,162,74,173,213,93,203,123,59,219,211,56,227,82,100,11,89,53,128,150,162,104,52,68,27,240,71,255,225,15,17,139,197,202,160,22,19,104,41,6,32,58, +74,237,18,114,228,136,127,67,135,157,215,236,152,183,174,98,170,25,251,71,116,189,42,106,45,33,4,39,79,26,205,36,116,93,67,36,34,160,163,163,11,171,87,175,65,83,83,83,197,137,79,165,64,155,113,91,51,84, +55,218,88,30,221,182,109,59,94,123,237,77,204,206,206,226,237,183,223,198,250,245,125,198,50,168,13,30,154,89,142,72,55,148,168,26,42,146,245,234,155,153,153,89,156,60,121,26,27,55,174,119,37,54,25,89, +239,154,157,4,181,84,212,218,66,202,100,72,8,131,16,2,197,60,167,179,0,239,126,157,174,229,198,160,91,219,178,226,66,141,10,40,212,146,137,71,182,238,59,143,131,124,254,41,182,173,124,183,3,11,108,169, +1,109,161,251,129,45,49,168,181,218,198,42,178,108,199,168,149,2,169,213,14,176,142,53,70,177,125,251,86,116,118,174,52,50,154,203,48,134,101,161,203,170,9,180,90,89,239,109,109,109,197,198,13,235,114, +30,175,101,5,4,134,229,161,169,114,213,97,205,250,47,203,50,142,31,63,1,73,74,129,101,105,180,181,181,162,163,163,19,203,151,175,40,171,52,85,165,208,102,221,151,229,12,88,86,64,44,22,195,234,213,189, +120,243,205,195,56,127,126,20,189,189,61,70,246,181,67,109,202,100,210,16,195,17,19,108,233,170,182,137,93,44,190,57,119,238,60,214,172,233,205,214,17,165,41,179,44,21,109,87,6,168,182,111,234,21,222, +10,197,117,58,247,223,121,30,57,175,73,78,184,93,42,131,152,215,63,249,170,97,148,114,124,4,16,27,216,133,100,52,205,218,21,145,88,46,4,85,201,4,78,89,138,80,155,173,8,128,5,155,201,172,237,91,141,182, +246,54,252,209,31,253,187,57,94,241,203,7,90,3,106,91,22,164,30,109,173,140,16,130,247,222,27,195,240,240,48,20,69,65,40,68,99,249,242,118,180,183,183,99,217,178,216,156,161,205,187,140,158,15,218,178, +240,150,70,56,28,67,111,111,47,14,31,254,45,146,146,132,217,217,25,112,28,107,215,203,212,52,13,124,72,116,84,11,168,141,34,89,247,190,73,74,72,36,102,193,113,156,163,243,147,102,214,110,173,173,111,234, +209,242,1,105,190,125,183,6,170,210,38,220,214,54,22,111,24,71,0,172,129,5,86,154,89,64,235,188,78,4,182,196,160,150,227,5,168,138,2,171,34,128,165,210,206,39,208,126,248,150,223,205,27,39,91,246,254, +112,156,111,45,218,66,214,189,170,27,45,45,45,243,231,115,46,4,69,201,24,203,202,126,131,209,28,67,15,44,160,154,158,158,134,166,233,160,40,64,20,5,52,55,55,163,181,181,53,111,55,172,114,84,200,82,161, +205,250,175,40,50,116,93,71,123,123,59,194,225,48,102,102,102,49,49,57,133,104,52,10,134,161,161,170,140,209,33,201,245,25,122,213,203,88,45,14,223,204,96,114,114,18,141,141,81,187,93,172,161,218,106, +102,237,214,218,248,166,174,47,156,102,2,165,174,235,21,173,110,120,147,91,179,64,107,193,44,13,111,85,148,192,2,11,108,113,154,179,76,87,16,102,112,1,64,173,37,193,187,149,12,218,113,64,200,57,74,71, +57,49,181,229,90,181,128,182,210,3,56,18,14,207,91,233,46,134,225,0,138,2,199,133,114,38,23,213,56,249,156,205,11,18,137,4,210,105,3,158,27,27,163,104,108,108,68,99,99,35,170,185,172,238,126,191,63,180, +1,58,20,37,3,85,149,209,212,212,4,65,16,48,51,147,192,236,140,145,40,102,180,49,213,205,150,159,134,34,201,48,186,25,111,154,221,175,106,132,31,44,14,223,204,96,118,118,198,225,27,163,13,42,33,186,81, +151,84,175,190,111,234,221,42,153,232,5,131,89,96,129,93,216,96,27,216,18,134,90,239,82,28,81,136,29,71,107,148,240,162,29,77,9,232,34,10,71,125,218,254,253,7,208,221,189,210,190,127,224,192,111,176,99, +251,54,196,227,205,11,254,221,114,90,6,43,25,95,176,37,122,229,106,145,179,67,22,0,36,147,73,100,50,25,48,12,141,134,134,40,34,145,8,34,17,17,181,142,19,245,66,155,170,18,16,162,64,85,85,68,163,97,240, +60,15,85,81,145,78,167,161,105,154,249,95,53,122,216,171,26,136,46,129,101,163,174,253,241,107,35,186,100,125,163,42,144,36,167,111,52,187,29,170,83,173,173,150,111,22,147,209,52,13,154,55,26,54,88,25, +204,238,154,212,229,12,100,150,82,75,129,227,249,96,16,44,112,189,10,44,176,192,2,171,27,168,245,187,64,177,28,7,85,81,60,23,114,61,231,61,181,82,103,157,246,224,131,15,99,120,104,4,31,253,232,239,225, +103,63,251,57,0,224,211,255,233,143,33,148,169,224,190,244,226,203,104,105,249,32,146,179,51,0,128,199,30,125,28,235,250,251,138,66,237,232,232,24,158,122,234,25,0,192,170,85,93,216,176,97,125,85,43,30, +176,92,174,15,173,16,4,111,178,88,181,106,212,18,66,144,201,200,80,85,21,28,199,32,18,49,128,137,101,105,212,58,78,212,11,109,206,199,68,49,100,196,207,234,58,20,69,49,160,77,207,194,155,172,164,17,14, +55,120,74,86,85,63,166,182,174,125,163,57,124,163,233,14,176,37,62,229,188,46,188,184,73,11,224,115,38,138,101,66,105,54,212,74,70,96,129,5,22,88,96,139,4,106,203,187,192,103,114,170,31,44,180,141,12, +143,224,127,255,239,135,241,209,143,254,30,0,224,103,63,251,57,182,239,184,10,219,182,109,205,121,173,5,180,229,88,107,107,11,62,249,201,223,7,0,28,61,122,12,251,126,253,34,70,71,199,16,9,135,113,227, +141,187,107,83,210,203,28,148,117,93,207,25,156,189,173,126,203,29,240,13,216,33,80,85,213,92,170,102,33,8,60,120,190,50,104,171,36,78,212,11,109,214,243,70,103,39,67,89,212,116,29,154,110,133,29,24,29, +145,136,217,21,201,90,102,103,152,236,103,87,171,250,193,98,240,141,161,204,102,183,145,125,173,94,19,223,44,38,171,206,190,82,46,133,215,216,46,99,30,39,26,2,11,44,176,197,108,116,142,80,23,216,18,128, +90,142,23,160,169,106,129,65,94,243,28,0,243,163,204,214,179,109,216,176,222,85,5,33,41,73,181,61,245,104,218,165,52,49,85,108,192,96,149,132,114,170,121,243,21,39,234,7,109,132,24,48,105,65,24,5,10,196, +169,120,18,29,52,195,185,154,10,212,162,185,192,162,240,13,133,188,159,85,75,223,92,56,150,245,157,106,118,32,12,96,22,142,107,81,230,130,31,11,2,91,220,199,110,176,2,51,191,211,135,121,177,66,64,235, +254,74,250,18,56,144,211,200,100,170,31,255,91,141,4,178,82,75,135,112,188,96,116,67,98,231,54,247,177,26,23,240,60,7,150,101,13,85,212,92,198,182,20,202,74,227,68,179,255,203,131,54,64,7,195,80,200,100, +82,102,108,40,237,200,228,55,149,71,218,0,218,76,58,5,93,211,28,42,104,53,129,118,177,248,134,201,11,217,238,16,132,224,162,202,241,130,171,147,97,246,62,85,210,165,152,16,226,106,56,19,152,1,253,65,140, +113,96,139,145,3,172,201,24,199,243,246,234,75,96,75,4,106,243,67,150,226,24,0,120,71,233,139,160,110,219,82,50,81,52,98,69,117,221,136,33,85,20,5,146,36,149,28,39,90,105,226,147,223,123,105,154,5,69, +49,152,153,73,66,150,101,176,12,3,142,55,32,150,102,88,16,16,40,138,209,194,144,227,66,128,163,168,252,5,231,27,150,1,199,241,14,136,69,142,66,123,161,170,180,197,18,41,141,54,152,86,157,218,66,74,163, +238,186,29,0,156,255,100,33,176,192,22,243,49,203,114,28,56,94,0,69,49,1,224,46,21,168,205,167,250,89,96,155,29,12,100,44,214,2,228,214,32,54,50,50,82,241,54,94,125,245,117,220,115,207,189,56,117,122, +8,127,121,247,95,227,143,254,232,211,120,224,129,159,44,170,193,193,11,58,209,104,4,161,16,15,93,215,145,74,73,144,101,25,201,100,114,94,227,68,173,219,70,189,85,6,147,147,211,72,167,211,224,67,33,68, +34,13,246,119,102,24,222,209,237,43,237,20,140,242,238,223,146,245,13,31,130,40,10,57,16,91,8,102,151,42,228,58,247,139,232,58,212,34,53,106,141,137,186,19,102,131,6,4,115,81,189,2,11,108,41,152,119,37, +166,90,97,126,129,205,51,212,234,186,10,69,78,231,0,44,203,113,57,63,178,83,177,93,132,67,31,0,32,153,156,173,232,221,163,163,99,120,242,169,167,113,211,77,31,192,35,15,255,28,87,94,113,57,190,255,253, +111,35,41,73,56,117,122,104,110,147,10,102,225,150,53,163,209,168,209,224,65,211,32,73,50,210,105,9,201,228,108,206,50,251,153,51,239,98,98,98,178,234,113,162,198,109,227,61,60,31,2,69,49,56,119,238,28, +36,73,66,99,99,12,177,88,204,115,92,90,203,70,161,154,51,201,98,243,205,133,106,174,150,176,52,157,247,26,101,1,152,161,212,166,29,171,78,1,212,206,21,108,3,184,13,108,169,128,45,77,179,193,10,196,98, +134,218,172,218,17,36,64,20,178,177,177,49,108,220,184,1,27,54,172,199,170,158,85,232,233,233,6,96,84,69,72,205,49,81,140,102,22,110,201,163,181,181,5,43,87,118,128,166,25,36,147,18,102,102,36,204,204, +204,34,149,74,217,128,117,239,189,223,197,53,215,124,0,55,220,240,65,124,228,35,255,10,201,164,84,149,56,81,11,218,52,141,128,97,56,112,92,8,170,170,226,212,169,147,166,58,73,131,227,216,156,25,179,95, +249,179,11,213,55,129,121,174,99,186,25,38,64,156,240,154,118,76,204,5,199,255,144,249,92,144,253,28,88,96,75,242,58,80,193,196,203,217,38,55,176,69,12,181,129,21,183,209,209,49,28,61,122,12,163,163,99, +56,117,106,200,190,61,167,153,33,59,191,5,221,189,165,142,88,150,69,111,111,15,68,81,196,212,212,12,18,137,25,164,82,41,36,147,73,104,154,134,127,250,167,31,227,222,123,191,139,206,206,78,244,247,175, +67,52,26,195,183,190,245,189,170,45,171,107,154,161,160,135,66,28,66,161,48,102,102,36,156,60,121,10,44,203,162,33,18,134,166,169,246,119,54,50,254,179,255,75,217,191,165,232,27,142,99,17,139,69,93,126, +168,181,111,22,139,81,52,13,142,19,160,40,254,231,148,31,232,6,54,119,11,148,173,192,22,202,252,146,221,173,90,238,206,146,124,133,142,81,69,54,26,217,4,86,27,11,228,151,58,52,49,28,198,232,232,40,126, +246,240,207,77,192,29,197,171,175,189,110,63,183,88,7,4,138,162,208,221,221,9,128,64,81,84,140,140,156,197,154,53,189,72,38,19,16,4,1,251,247,191,140,150,150,22,244,244,244,160,179,179,19,44,203,34,28, +14,87,5,218,172,191,28,199,65,20,27,32,8,2,158,121,230,151,72,36,18,232,232,232,64,103,87,23,56,206,168,203,74,211,52,40,10,190,32,119,33,250,166,163,163,195,246,199,66,248,166,126,37,26,228,0,109,190, +142,98,1,216,6,22,216,226,54,163,146,129,144,179,26,67,204,218,238,206,115,189,208,56,75,81,140,145,96,202,48,160,233,0,193,150,4,212,82,20,99,183,196,45,118,0,92,136,214,179,170,27,127,241,165,63,207, +121,124,174,74,237,194,193,108,22,124,154,155,155,113,213,85,87,98,223,190,23,49,50,114,14,231,207,143,34,22,139,65,16,102,177,109,219,85,120,231,157,211,136,197,98,104,104,104,0,207,115,232,234,90,49, +231,56,81,77,203,38,52,137,98,4,225,112,20,99,99,19,120,229,149,87,193,48,12,26,27,163,174,239,104,193,155,1,112,148,253,55,251,63,240,205,124,248,166,254,15,108,20,236,34,22,128,108,96,129,45,29,115, +158,235,12,195,65,211,140,220,32,75,169,117,62,111,156,251,148,157,143,97,196,212,83,230,235,120,215,0,16,92,39,170,107,11,22,126,176,180,235,48,82,0,40,132,195,145,138,183,112,207,61,247,226,11,95,248, +50,254,242,238,191,6,0,60,252,200,163,248,198,55,190,57,167,111,85,44,83,187,182,96,155,85,245,54,110,220,128,198,198,70,40,138,138,3,7,94,199,196,196,36,210,105,9,31,250,208,141,88,191,190,15,154,166, +66,20,67,216,188,121,35,110,188,113,215,156,151,213,173,199,68,49,130,134,134,24,20,69,195,143,126,244,99,36,147,73,196,98,81,116,118,118,216,160,230,252,239,133,54,231,126,4,190,153,31,223,44,54,37,39, +176,249,184,182,6,22,216,194,156,223,214,57,78,51,76,65,49,206,120,142,64,145,51,230,123,172,170,41,186,157,44,175,200,105,232,154,82,210,103,11,130,8,65,16,131,31,161,20,182,92,136,15,37,68,131,34,107, +142,122,180,114,238,12,102,81,207,232,140,164,144,206,206,78,243,34,76,204,65,191,180,57,196,169,211,67,8,71,34,248,171,207,254,9,30,126,228,81,124,225,11,95,198,21,87,94,142,47,126,233,243,115,110,190, +64,116,221,158,89,250,153,174,105,85,77,38,203,66,143,165,240,81,104,106,106,194,245,215,95,139,61,123,158,192,228,228,52,14,30,60,140,120,188,25,44,203,227,171,95,253,111,72,38,37,0,4,145,72,164,42,203, +234,186,174,35,18,137,160,177,177,9,225,112,12,79,61,245,52,206,156,57,3,142,227,208,221,221,233,0,52,163,1,3,77,51,30,128,51,190,183,213,241,171,90,203,237,129,111,2,11,172,50,165,44,176,192,234,249, +56,204,78,112,157,165,13,117,23,3,149,99,233,116,42,112,124,61,67,173,219,232,69,1,180,19,19,147,160,105,26,251,246,189,128,116,58,87,145,249,237,111,143,160,183,183,215,190,191,111,223,11,0,140,162,250, +169,148,1,34,132,148,150,249,156,146,36,180,182,182,0,0,54,110,88,7,41,41,225,182,91,63,60,63,191,70,141,170,35,88,176,163,169,26,40,138,66,95,223,106,108,216,176,30,7,15,190,129,19,39,78,161,173,109, +57,182,108,185,12,28,167,32,28,54,102,164,213,90,86,143,68,162,104,108,108,130,40,70,112,240,224,27,56,112,224,0,40,138,194,69,23,109,68,60,222,100,119,19,179,234,179,58,111,211,52,85,82,98,84,53,124, +99,253,15,124,179,180,6,192,64,193,173,158,82,22,128,109,96,11,70,42,52,91,82,119,205,90,156,243,130,32,6,215,215,197,0,181,134,66,171,99,49,20,97,176,212,228,225,33,255,134,10,137,233,25,100,28,176,59, +60,52,2,65,16,108,160,157,139,133,35,225,170,236,195,124,15,8,148,217,133,203,56,25,137,9,62,4,12,205,64,215,25,108,221,250,62,36,18,9,156,56,241,14,94,126,249,117,240,60,143,173,91,175,0,195,100,223, +235,109,44,80,42,180,1,48,19,159,140,101,245,112,56,134,131,7,15,225,137,39,158,68,50,153,196,218,181,107,176,108,89,12,52,77,131,101,89,208,52,3,150,101,28,240,198,216,237,97,173,219,222,101,246,114, +47,50,206,65,217,207,55,214,231,93,136,190,89,106,10,142,21,83,23,0,109,245,193,118,33,174,101,129,5,86,8,104,173,21,208,106,156,239,12,203,67,243,132,10,6,74,237,34,129,90,75,142,95,42,97,7,213,50,49, +28,198,145,35,71,113,228,200,81,251,49,235,246,39,63,249,175,208,179,170,187,188,147,196,209,112,161,92,181,163,220,215,107,170,234,58,249,179,240,102,101,207,83,0,69,65,215,52,196,98,49,108,189,234,125, +208,117,29,239,188,115,10,207,63,255,18,166,167,103,112,221,117,59,208,212,180,204,104,89,75,211,144,229,140,13,103,197,151,213,141,210,101,161,144,145,201,31,14,71,161,40,26,158,122,234,105,28,56,112, +0,201,100,18,61,61,221,104,111,111,3,203,178,96,89,22,12,67,219,183,179,143,25,192,230,92,94,119,38,66,85,2,180,222,219,132,16,48,44,15,85,201,128,97,57,59,4,129,162,104,196,98,49,236,216,177,237,130, +240,205,210,3,175,108,91,220,0,106,107,7,183,1,216,6,86,47,86,40,164,175,92,211,242,228,190,52,53,53,7,142,174,127,168,93,218,23,40,191,48,133,82,44,95,245,131,138,79,18,79,48,186,170,170,96,217,249,251, +233,141,176,3,21,52,195,130,15,137,80,85,21,124,72,128,148,156,193,242,229,45,216,177,99,43,104,154,198,219,111,159,196,254,253,175,224,212,169,97,124,226,19,183,163,171,107,37,8,33,96,89,1,178,156,134, +162,200,80,148,12,8,81,92,208,6,232,54,108,241,124,8,28,23,66,40,20,134,32,8,24,27,155,192,143,126,244,99,156,57,115,6,20,69,97,237,218,53,88,177,162,13,161,16,111,47,167,179,44,103,42,145,22,184,49,246, +95,167,18,73,81,116,89,203,236,126,64,227,125,76,85,50,160,40,35,137,79,83,85,99,137,139,49,148,209,229,203,91,151,172,111,150,178,113,124,8,138,162,56,186,136,5,86,25,40,176,70,233,35,87,195,138,108, +142,66,0,182,129,5,22,88,93,66,237,82,6,92,35,166,54,89,214,123,78,157,30,194,208,233,33,236,220,121,53,142,30,61,134,150,150,22,180,182,182,224,225,71,30,197,198,13,235,176,97,195,250,50,7,217,172,63, +105,134,129,94,70,225,231,114,127,11,191,37,26,163,45,178,14,77,85,141,56,80,77,3,209,117,115,169,29,104,109,109,197,181,215,94,141,104,180,1,71,142,12,224,236,217,115,248,206,119,254,17,91,182,92,142, +109,219,182,35,22,51,150,200,117,93,135,170,202,57,173,99,25,134,2,69,89,234,33,3,85,85,49,61,61,139,103,158,249,37,94,121,229,85,36,147,73,112,28,139,77,155,54,162,169,169,9,12,67,129,101,89,112,28,107, +66,27,11,142,227,192,113,198,95,11,228,104,154,49,147,163,104,87,125,86,247,241,154,241,148,109,33,174,129,183,84,232,167,8,140,207,160,105,232,154,2,93,83,65,116,21,77,203,98,139,214,55,23,162,217,199, +3,209,203,62,14,2,115,27,49,187,45,89,49,138,238,191,114,176,194,23,216,194,29,155,118,232,216,252,84,61,225,67,194,156,107,212,7,80,187,64,64,187,216,74,182,76,78,77,230,125,206,136,169,77,150,189,205, +148,36,97,116,108,28,0,112,228,232,0,54,110,128,157,56,86,137,89,16,107,37,129,205,103,171,92,138,162,192,241,60,20,217,84,140,41,2,138,34,160,105,202,72,58,98,57,200,178,130,104,52,138,173,91,183,32, +222,220,140,131,135,222,196,244,116,2,207,61,247,2,94,123,237,77,172,94,221,139,222,222,94,180,183,183,163,169,169,9,209,104,24,162,24,2,195,176,80,85,21,153,76,10,51,51,73,76,78,78,227,252,249,115,56, +121,242,36,78,158,60,133,68,34,1,134,97,208,220,220,132,149,43,59,208,220,188,204,78,116,178,160,141,227,56,240,60,103,130,91,22,226,44,117,211,153,229,95,40,41,42,11,180,40,25,100,156,219,160,40,2,138, +166,161,169,10,104,154,65,72,224,12,56,37,4,162,160,99,235,214,45,104,110,94,134,131,7,15,35,145,152,89,84,190,185,240,192,54,93,214,113,16,88,41,70,67,81,20,123,146,29,0,109,96,11,117,94,179,92,200,8, +25,115,212,170,173,181,201,153,52,38,198,199,131,31,97,241,64,237,194,39,84,88,205,32,170,101,233,116,26,130,48,255,138,115,67,67,20,179,179,51,174,199,52,77,113,197,213,46,196,197,128,162,24,240,33,17, +186,174,67,38,25,176,28,13,154,97,160,40,42,88,86,135,174,27,16,215,211,211,137,229,109,173,24,28,60,129,83,167,134,48,59,155,196,155,111,30,198,225,195,191,69,56,108,44,155,243,60,111,42,143,148,89,111, +85,131,44,203,72,167,211,144,36,201,92,150,103,209,209,177,2,177,88,20,43,87,174,176,19,177,178,113,162,185,208,150,133,183,172,18,153,93,98,247,87,34,45,149,182,26,240,111,168,181,20,24,134,130,162,40, +198,247,212,25,16,142,131,158,145,209,219,211,141,120,115,51,142,159,120,7,195,195,103,234,222,55,23,222,160,151,9,64,182,170,19,98,227,248,50,198,6,26,220,146,174,109,30,216,98,49,85,201,216,227,234, +124,90,144,44,182,168,160,214,204,200,94,4,97,7,211,211,211,16,4,1,161,80,8,153,76,6,32,58,206,156,57,131,120,188,25,147,147,19,176,150,159,165,148,52,167,207,25,29,29,195,209,163,199,48,58,58,134,83, +162,104,63,134,13,235,220,63,32,203,219,77,21,104,134,67,60,30,71,42,149,242,128,151,177,108,55,159,10,173,75,99,49,91,1,90,42,30,199,135,160,235,26,24,134,129,34,43,0,33,224,56,214,88,90,228,120,132, +1,108,220,208,143,213,171,123,49,52,52,140,201,201,105,36,18,9,36,147,73,36,18,9,123,137,221,90,2,178,50,241,67,33,30,237,237,109,104,104,104,0,195,208,232,232,104,55,63,159,206,129,54,150,101,109,104, +227,121,30,60,111,252,229,56,214,140,31,117,198,140,230,87,34,173,170,24,149,194,140,159,90,75,19,2,134,97,204,234,6,112,85,58,136,197,26,112,241,69,27,208,215,183,182,238,125,115,1,98,88,0,181,213,28, +21,136,6,221,12,167,53,50,203,131,144,131,192,2,11,108,81,64,109,29,56,194,161,2,108,218,180,1,93,93,43,209,184,172,17,219,119,92,5,0,104,92,214,8,0,184,233,131,31,0,0,100,50,25,68,26,68,68,26,68,236, +184,250,42,52,53,197,209,186,60,27,34,112,249,229,151,162,185,185,25,173,203,91,237,199,110,249,240,239,162,165,165,120,24,129,21,67,123,228,232,0,90,91,91,32,165,82,246,109,239,251,41,154,6,199,11,208, +52,205,206,74,55,154,62,212,207,36,129,229,56,16,66,160,200,178,169,30,170,32,68,135,174,105,96,24,26,132,176,80,148,12,88,150,181,235,167,90,192,215,223,191,22,178,44,99,118,54,137,241,177,9,164,51,105, +164,211,25,168,170,10,77,51,106,222,90,75,230,130,32,34,22,139,130,227,216,156,150,174,86,227,0,43,201,201,169,62,26,0,231,132,54,119,134,127,97,37,146,84,45,203,221,25,91,203,48,4,132,48,32,32,46,168, +205,231,155,201,201,41,72,146,84,103,190,169,47,27,24,24,4,0,116,119,119,65,20,171,223,157,199,2,174,185,30,11,169,84,10,67,195,70,233,192,117,253,125,23,212,117,152,97,121,91,157,165,25,14,12,195,0,224, +28,229,31,3,11,44,176,192,22,9,212,214,75,146,216,166,77,27,237,219,219,182,109,117,61,103,221,119,14,92,183,124,232,119,115,182,113,203,135,62,232,243,216,239,150,252,29,90,91,226,216,185,243,234,130, +175,177,20,80,0,230,197,63,123,219,235,71,231,125,43,198,86,55,151,162,231,69,195,162,40,115,80,50,226,105,117,157,6,77,19,16,162,129,97,40,16,184,203,128,89,255,85,85,7,203,80,104,136,136,16,133,14,16, +0,154,166,25,80,108,42,146,150,154,233,126,63,60,221,176,24,59,115,159,97,88,59,241,201,82,35,157,113,164,78,37,210,93,178,202,79,137,36,115,134,24,231,54,105,26,182,111,24,134,228,156,162,206,239,161, +40,42,88,134,193,178,101,141,104,104,136,64,85,181,58,243,77,125,216,75,47,237,199,79,127,250,32,36,41,187,130,241,239,254,221,31,96,251,246,109,0,128,79,125,234,206,188,239,253,179,63,251,44,126,241, +139,199,113,236,216,64,206,115,235,215,175,195,231,62,119,23,30,123,108,15,30,123,108,79,246,136,208,117,136,162,128,205,155,47,193,29,119,220,6,81,20,49,48,120,28,223,184,199,191,205,245,93,159,253,140, +13,175,15,61,244,8,246,238,125,222,126,78,20,5,220,113,199,109,216,182,237,170,11,98,64,162,205,210,72,86,21,16,239,132,33,176,192,2,11,172,238,160,118,177,118,217,153,175,152,185,112,36,140,100,82,194, +95,222,253,215,104,109,109,197,141,55,238,46,187,54,109,193,129,195,74,24,195,252,151,247,202,130,149,177,212,206,248,28,138,89,37,145,2,205,168,102,156,169,106,43,144,52,197,66,211,52,176,44,151,87,197, +116,170,145,206,46,88,86,173,85,103,226,147,165,66,58,161,45,171,68,206,47,172,149,231,27,6,140,98,248,133,9,133,192,178,6,212,106,154,19,106,151,142,111,42,177,84,42,133,159,254,244,65,0,192,238,221, +187,0,0,47,190,248,18,126,248,195,251,209,223,223,143,150,150,56,214,175,55,66,122,146,73,9,195,195,195,104,105,105,65,75,75,220,56,23,29,25,199,214,235,44,235,234,234,244,220,239,66,36,18,134,166,105, +24,31,31,199,254,253,191,65,60,30,199,205,55,223,100,191,38,222,210,140,120,60,238,122,159,213,250,218,2,218,120,75,51,182,109,189,10,169,84,10,47,189,116,0,247,223,255,207,16,69,17,155,55,95,178,244, +71,36,66,0,138,42,169,115,83,96,129,5,22,88,93,64,237,98,2,218,106,129,172,166,105,120,252,137,167,176,174,191,15,235,214,245,23,124,109,36,28,198,77,55,125,0,55,221,244,1,140,142,142,225,169,167,158, +193,3,167,255,5,27,55,110,192,141,55,238,182,7,65,93,87,161,203,70,109,83,152,75,205,197,76,215,180,121,143,173,213,84,213,6,42,99,220,50,227,61,1,232,62,240,102,131,151,185,60,78,83,89,248,210,52,13, +154,174,65,215,89,208,52,237,168,199,154,171,248,100,151,216,179,137,77,217,90,171,78,229,145,117,213,94,117,54,22,112,118,200,114,2,156,81,166,172,186,48,59,23,223,104,154,161,186,27,64,171,121,106,213, +206,175,111,234,201,134,134,134,33,73,41,220,114,203,205,184,229,150,155,109,24,253,225,15,239,199,75,47,237,199,45,183,220,140,207,125,238,46,0,70,120,194,215,191,126,15,182,111,223,106,191,214,105,214, +235,242,217,199,63,126,59,214,173,235,135,170,40,144,164,89,220,117,215,231,49,120,252,132,235,53,219,182,94,229,130,92,203,198,199,199,109,160,253,210,23,63,111,135,71,108,219,118,21,238,190,251,107, +120,232,103,143,92,24,80,27,36,28,6,22,88,96,139,13,106,243,89,61,38,138,25,241,146,115,3,219,100,50,137,51,103,222,197,99,143,62,142,63,251,179,63,45,235,189,173,173,45,184,241,198,221,120,245,213,215, +241,194,11,251,113,197,21,151,33,98,170,182,150,226,93,142,170,97,1,109,57,181,106,171,97,186,238,6,91,251,251,248,192,27,5,99,137,220,128,54,3,214,85,149,1,203,234,208,52,67,173,213,117,2,154,97,77,120, +243,95,98,183,98,70,157,45,93,221,240,230,223,2,214,9,109,249,150,214,89,142,171,250,228,108,46,190,209,52,29,154,78,192,113,20,100,89,54,186,141,101,210,230,190,243,243,234,155,122,50,75,21,125,246,217, +189,0,128,203,46,219,140,237,219,183,217,161,7,53,185,168,114,156,29,19,43,138,165,93,211,6,7,13,248,189,225,250,235,92,241,190,157,157,43,113,233,230,139,241,198,161,195,24,31,31,207,81,121,151,130,57, +235,207,6,22,88,96,129,213,17,212,90,217,191,148,227,190,190,232,64,214,105,137,233,105,28,62,252,22,186,187,187,192,241,60,126,254,243,199,208,218,218,140,29,219,183,33,30,47,220,182,78,146,36,140,141, +141,99,102,102,166,236,207,29,29,29,195,171,175,190,142,87,95,123,221,104,78,176,115,7,110,186,233,3,85,243,159,51,4,161,150,150,15,252,92,113,164,14,120,115,47,143,107,160,105,218,8,57,96,104,232,154, +14,93,103,109,168,101,88,206,181,204,238,6,55,202,165,72,90,113,160,86,252,168,161,80,50,174,229,119,43,198,212,11,109,229,236,87,181,225,182,60,223,232,198,253,16,15,157,232,96,104,193,223,55,52,11,158, +231,107,230,155,122,178,150,150,56,62,254,241,219,241,211,159,62,100,199,190,182,180,180,224,253,239,191,30,239,127,255,174,178,182,229,141,189,117,170,191,0,240,245,175,223,3,192,156,96,153,62,191,225, +134,235,92,239,217,179,231,73,236,217,243,164,235,177,251,238,187,23,227,227,19,6,196,118,173,204,249,220,174,255,159,189,119,15,147,227,172,239,124,191,239,91,151,174,234,158,251,140,102,116,153,25,89, +150,52,242,5,11,217,24,27,97,76,12,134,93,236,197,75,48,24,18,22,150,205,217,236,73,118,201,38,107,66,54,155,108,246,66,14,36,129,133,64,216,64,204,19,115,54,4,231,144,133,196,121,8,196,112,98,108,56, +24,35,99,108,44,75,54,88,146,47,146,102,132,117,235,153,233,153,233,174,238,186,189,231,143,186,116,85,117,85,119,245,117,122,70,239,79,207,60,234,174,238,174,174,250,117,93,62,239,247,253,93,166,167, +241,244,225,163,184,152,95,220,148,80,203,91,9,115,227,198,173,15,161,150,248,170,102,53,27,156,109,104,160,53,116,29,255,251,43,127,139,149,194,42,166,167,119,160,82,46,163,184,230,128,234,223,127,237, +31,240,177,143,125,36,17,108,31,252,246,195,248,250,223,255,3,126,229,87,254,117,211,223,251,211,159,62,135,111,126,243,31,113,253,245,215,213,180,203,21,68,25,204,182,97,219,38,44,211,236,235,216,51, +35,97,138,222,171,161,26,133,55,70,133,80,204,168,101,81,80,106,59,112,101,9,62,180,217,204,6,179,25,168,80,141,169,53,13,195,247,69,52,110,212,75,106,242,148,70,15,216,130,64,87,79,129,180,76,211,175, +142,209,233,176,131,110,249,166,81,76,173,95,95,150,194,111,139,219,138,111,54,2,216,190,233,77,183,98,223,190,125,248,193,15,14,225,185,231,142,99,126,126,30,127,253,215,95,197,248,248,56,174,189,246, +64,234,245,68,99,106,189,184,91,31,62,103,102,96,219,38,22,230,207,64,85,21,252,222,239,253,118,13,132,198,197,212,114,3,87,105,185,113,227,214,111,80,235,93,156,26,151,55,218,8,23,176,149,149,21,44,47, +21,176,82,8,171,172,90,89,131,86,210,48,62,62,129,179,103,207,58,55,170,0,216,90,150,133,211,243,11,248,223,127,253,55,45,127,247,236,206,89,188,239,125,239,169,233,34,230,180,204,157,196,212,212,164, +11,184,27,55,153,34,10,111,222,115,219,166,160,66,21,156,108,219,171,148,96,59,234,163,69,193,24,2,49,163,12,132,10,160,132,249,141,16,188,117,86,51,243,169,95,222,202,203,216,15,254,121,165,169,188,247, +7,215,65,8,241,67,13,8,17,32,74,82,207,193,182,117,223,56,179,36,81,168,13,250,134,82,10,73,146,91,246,77,191,219,197,139,121,28,62,124,24,7,14,28,192,187,223,125,23,0,96,126,126,1,31,254,240,71,240,208, +67,223,105,10,106,27,197,212,190,243,29,63,143,185,185,221,248,179,123,254,28,79,31,62,138,135,31,254,255,112,215,93,119,134,222,147,20,83,235,93,67,22,230,207,212,148,241,154,95,112,66,25,38,26,204,12, +109,88,152,229,165,125,185,113,227,214,33,235,224,236,179,115,101,242,128,214,1,87,26,123,17,51,244,114,223,79,57,125,235,91,15,130,177,106,232,132,166,105,208,52,13,170,162,186,207,157,230,10,103,207, +158,245,167,14,203,229,50,142,31,127,30,165,98,177,173,239,62,125,234,52,190,247,200,163,0,128,191,189,255,107,248,233,79,159,3,224,180,204,45,20,10,16,68,17,148,138,125,235,67,255,247,101,86,67,120,139, +170,126,148,18,80,66,156,41,112,81,12,212,78,21,33,137,94,205,84,9,146,236,212,80,205,100,100,255,127,129,82,200,114,198,129,52,23,194,36,201,107,30,32,249,165,170,188,44,127,65,16,107,74,83,69,183,203, +52,12,223,207,140,89,48,244,50,24,235,126,60,114,167,125,227,253,5,151,75,110,131,5,129,210,150,124,179,17,236,248,241,227,248,235,191,254,42,30,122,232,97,127,89,84,97,237,152,66,224,170,249,255,234, +253,239,133,170,42,120,232,161,239,34,159,178,181,229,220,220,30,0,192,195,223,249,110,168,121,202,194,194,25,60,125,248,232,166,84,120,125,113,131,231,134,113,227,198,173,83,215,225,78,195,76,16,92,163, +32,27,124,79,63,219,202,202,10,230,79,47,224,198,27,174,7,0,84,42,101,148,203,14,196,46,46,46,66,205,170,200,148,170,106,243,215,254,254,27,248,133,119,191,19,11,11,103,96,219,221,5,30,195,168,132,124, +24,30,68,172,159,89,166,233,39,131,181,2,112,209,231,126,141,85,42,128,80,10,102,219,110,93,91,234,43,180,14,104,122,211,235,130,83,219,82,116,98,133,77,195,173,34,64,0,73,146,34,83,231,213,166,1,113, +83,233,193,237,17,37,9,150,73,90,222,183,78,192,109,251,190,137,7,102,0,110,88,1,32,138,98,211,190,217,8,118,237,181,7,144,205,126,5,15,62,248,16,74,165,18,198,199,199,241,131,31,60,6,0,77,87,19,248,196, +39,62,85,179,44,170,222,82,42,66,85,85,188,235,93,239,192,23,191,248,87,248,202,87,239,199,191,253,213,127,227,191,126,232,177,31,198,84,68,184,1,7,15,222,136,91,111,189,5,15,61,244,93,124,228,163,31, +11,149,244,2,128,187,222,121,231,166,187,249,240,228,48,110,220,54,170,81,244,107,51,148,174,205,95,71,51,90,163,23,175,126,134,219,121,55,115,121,105,105,9,0,80,210,52,95,78,80,179,42,152,29,6,133,195, +79,61,141,153,153,105,108,223,182,117,221,182,217,52,140,80,87,180,94,222,144,58,213,77,43,110,89,16,224,152,55,79,201,226,187,108,57,175,57,131,10,81,172,198,160,18,0,130,224,197,219,54,15,108,130,40, +194,214,205,117,251,109,59,230,155,24,176,117,218,22,171,45,251,166,223,77,85,85,252,210,47,189,31,255,235,127,125,17,143,62,122,200,95,126,211,77,7,155,78,20,139,107,192,16,53,219,54,33,8,18,14,30,188, +17,223,248,135,111,226,233,195,71,113,236,248,9,255,245,252,197,69,228,47,46,134,62,51,183,215,81,105,189,80,133,135,30,250,174,159,76,166,170,10,222,255,254,127,177,41,203,121,113,160,229,198,109,99, +157,175,85,17,77,238,91,134,235,10,212,70,149,196,141,118,241,90,89,89,65,165,82,6,96,227,133,23,158,135,205,24,20,55,236,96,97,97,1,138,162,32,27,40,187,83,42,105,45,39,133,37,217,247,190,247,125,252, +228,39,63,197,197,139,121,60,249,196,143,161,102,85,92,188,152,199,85,87,238,139,125,191,51,37,222,27,168,237,166,234,94,15,224,0,247,127,66,188,228,242,42,204,197,173,203,159,215,180,193,108,203,135, +254,36,96,179,45,11,150,101,184,138,111,255,197,43,119,195,55,132,0,96,54,168,32,108,42,152,13,218,181,215,30,192,181,215,30,240,219,228,142,143,143,199,134,32,236,219,55,135,123,239,189,167,102,121,163, +88,90,175,10,130,119,62,88,150,1,65,144,240,209,143,252,247,208,251,238,185,231,51,13,183,245,174,187,238,196,91,223,122,219,37,208,38,55,125,228,27,179,109,16,74,193,141,27,183,30,131,172,148,137,173, +29,221,207,162,100,87,238,220,27,181,99,152,103,231,207,95,64,38,227,196,4,23,221,248,88,175,118,164,86,210,106,148,90,15,108,27,217,190,43,230,106,186,16,197,217,149,87,94,129,63,249,244,255,136,125, +173,88,42,37,126,206,52,12,24,166,9,169,139,64,214,171,223,53,105,218,61,216,164,192,195,179,52,235,10,182,115,77,250,142,160,178,233,85,150,104,39,172,98,163,248,134,49,11,150,105,65,206,168,117,1,122, +163,91,163,166,39,173,88,220,241,33,8,237,13,46,85,85,221,196,48,11,95,233,73,115,173,145,100,5,166,169,67,20,101,14,182,220,184,245,200,4,81,246,91,86,71,217,46,142,5,146,150,247,247,112,185,147,224, +195,250,59,221,181,82,209,157,155,75,86,117,47,164,4,75,75,139,96,204,194,63,127,219,237,200,13,168,88,90,92,76,239,100,42,96,102,102,6,191,245,161,255,16,106,187,89,207,254,241,193,239,224,99,31,255, +20,254,246,254,175,1,112,42,31,124,246,179,127,142,11,23,46,214,113,107,247,226,121,77,211,92,151,131,53,90,158,171,182,84,23,13,45,79,122,141,49,171,230,125,181,39,178,232,171,180,182,237,236,111,191, +1,109,55,124,67,8,129,44,43,27,46,9,172,63,46,254,34,8,21,99,127,23,110,245,239,17,134,174,167,18,71,36,89,225,64,203,141,91,15,205,50,117,55,217,155,213,61,63,107,207,107,125,221,183,189,171,115,172, +137,97,7,132,56,178,118,95,131,109,25,90,169,232,135,26,108,153,156,192,228,150,45,216,177,99,59,222,116,235,27,240,225,223,255,131,84,235,25,27,31,199,228,150,137,84,45,108,61,187,112,225,34,230,231, +23,240,107,191,246,43,248,187,251,191,142,47,125,233,203,56,121,234,20,222,247,190,247,96,215,101,187,98,33,214,43,55,213,174,74,27,141,205,53,116,29,146,44,67,20,69,24,250,250,3,94,18,44,52,130,8,73, +86,82,181,8,38,132,108,216,89,134,86,125,227,12,90,244,198,231,45,183,26,179,45,11,44,50,240,241,0,108,163,207,88,117,243,190,224,248,197,118,111,130,118,221,99,142,39,148,113,227,214,251,115,180,149, +247,57,177,182,21,143,80,54,31,212,198,93,156,66,206,96,12,134,81,73,140,219,88,215,155,149,27,98,160,149,74,208,74,37,140,142,140,248,175,101,179,89,220,116,83,253,54,155,51,179,211,248,63,126,233,95, +98,219,214,169,166,191,123,185,176,130,201,201,45,200,101,179,120,213,171,94,137,111,126,243,31,253,38,12,140,89,254,129,228,101,229,119,242,130,159,148,108,214,15,35,176,78,28,123,30,212,122,207,5,65, +10,129,46,21,4,88,150,1,110,155,215,62,251,217,123,240,212,83,135,241,71,127,244,81,76,76,140,251,117,107,1,224,23,126,225,46,63,129,236,63,253,167,223,67,169,84,196,103,62,243,41,252,242,47,255,42,174, +184,98,31,62,244,161,187,113,236,216,113,167,123,88,32,25,111,124,98,12,111,124,195,45,120,203,109,111,1,179,109,124,226,147,159,198,115,110,41,190,168,121,117,106,191,241,141,111,226,238,15,254,123,63, +212,224,216,241,19,248,212,31,255,79,188,245,173,183,197,214,178,221,44,22,6,253,116,29,39,13,189,12,73,82,120,249,47,110,220,58,104,212,13,149,178,59,120,207,75,211,171,96,67,67,109,226,40,219,5,218, +224,251,250,37,110,42,88,39,82,117,195,5,164,8,236,205,76,199,199,198,82,42,96,114,114,11,254,219,127,253,221,214,14,50,42,194,52,116,255,102,57,48,56,132,27,110,124,13,40,21,125,128,245,138,255,139,146, +4,1,98,199,59,139,121,106,173,167,162,108,22,181,137,184,181,125,131,211,197,84,16,96,91,150,255,152,43,107,155,223,102,102,166,241,212,83,135,49,63,63,239,66,237,188,255,154,87,249,68,211,52,92,188,120, +177,166,139,88,208,38,38,38,48,54,62,6,198,108,28,63,118,2,95,253,234,253,24,31,31,195,129,3,251,177,99,251,86,119,112,108,225,248,177,19,80,85,5,51,179,51,14,0,143,143,249,181,173,47,89,35,130,91,169, +196,41,35,215,41,229,136,27,183,75,217,194,177,173,21,56,106,41,141,29,68,6,223,235,65,237,102,56,207,186,10,181,193,44,249,104,184,65,8,104,221,199,94,66,128,3,32,189,131,219,104,125,221,124,62,143,5, +183,139,143,150,144,152,149,205,170,48,77,179,6,104,119,237,218,9,69,81,90,62,32,157,150,172,50,78,156,120,1,255,243,79,63,143,92,110,0,166,105,226,204,153,51,48,77,19,111,122,211,27,177,117,106,178,166, +218,129,215,241,170,35,7,133,223,53,203,222,84,39,188,55,77,28,156,46,14,66,44,87,104,47,13,243,18,198,230,231,23,112,237,181,7,124,144,157,153,153,193,233,211,206,227,211,167,29,208,157,171,147,176,117, +227,141,215,251,138,234,194,194,25,124,242,147,127,130,175,254,205,253,56,112,96,127,168,147,216,175,254,234,175,99,102,118,6,31,188,251,223,251,203,188,146,93,151,172,66,68,8,4,73,129,145,80,138,176, +122,94,18,191,83,32,55,110,220,210,15,250,60,197,52,152,148,105,154,38,68,81,172,97,151,78,193,108,63,136,66,61,11,63,8,66,108,61,11,198,246,117,194,217,142,147,73,232,135,174,190,166,135,192,205,251, +65,202,101,205,239,24,230,93,88,235,153,226,86,70,216,177,99,123,211,64,43,8,146,91,48,191,154,136,181,119,207,229,248,205,15,254,90,13,236,6,213,88,211,64,72,177,101,6,235,72,162,152,105,24,61,233,152, +197,141,219,122,217,172,171,152,122,48,251,220,115,199,49,49,49,129,217,217,105,60,250,232,33,104,154,230,171,183,105,170,149,0,192,244,244,14,28,56,176,31,135,14,61,142,124,62,191,233,186,127,117,218, +108,219,132,16,115,251,73,202,168,142,31,164,218,126,243,17,158,72,198,141,3,109,236,240,49,12,124,46,67,136,93,170,144,84,47,143,160,87,57,6,98,191,255,96,237,36,9,84,29,200,218,28,73,212,15,120,46,187, +225,10,67,67,131,77,193,108,112,234,59,205,126,68,111,2,30,124,154,29,20,24,29,149,22,28,108,185,109,90,83,85,21,19,19,19,62,212,206,207,207,227,166,155,14,98,223,190,57,60,250,232,33,156,62,61,239,135, +7,204,204,204,36,2,85,212,60,144,189,152,95,76,13,181,159,250,227,255,121,105,223,144,37,9,134,97,56,255,71,174,205,105,66,215,120,201,47,110,28,104,235,189,46,247,205,182,122,231,115,183,193,182,239, +161,150,16,161,165,110,89,134,209,217,169,100,175,94,237,194,194,25,0,192,233,249,5,191,131,216,216,216,24,74,154,230,191,39,248,190,233,233,29,254,178,165,229,21,76,77,77,33,155,205,134,226,56,61,96, +77,170,137,154,166,25,128,227,31,199,71,43,43,43,45,239,167,105,240,41,248,75,245,226,24,10,23,218,228,49,140,94,92,173,215,144,97,102,102,218,7,216,99,199,142,251,192,27,215,164,161,147,54,61,179,195, +47,243,87,42,149,176,48,127,230,146,4,91,203,140,94,247,8,188,25,178,154,150,235,145,92,12,192,153,225,139,38,125,2,232,120,190,1,55,110,235,101,83,91,183,165,2,217,126,1,237,122,240,218,77,184,237,235, +179,157,10,18,152,109,183,214,254,181,195,74,227,201,147,167,28,101,229,83,127,234,47,187,251,110,39,68,192,182,25,202,154,230,191,7,0,62,247,185,123,49,58,54,138,95,249,63,255,53,74,90,9,166,161,227, +161,135,30,193,187,223,253,14,255,38,22,45,49,229,181,99,165,84,132,205,24,16,168,116,0,0,133,229,2,50,74,198,15,113,240,98,104,163,241,181,106,202,90,184,73,112,204,147,165,46,61,75,250,205,55,43,224, +122,80,251,237,111,63,12,0,216,183,111,159,31,106,48,63,191,128,231,158,59,150,152,36,150,20,74,149,207,231,29,16,30,31,75,189,29,119,221,117,103,77,245,131,75,253,152,115,47,224,0,88,172,122,155,100, +150,101,128,10,66,40,28,129,3,45,183,205,96,187,118,93,190,97,133,146,218,178,95,74,87,193,182,175,231,107,108,171,170,208,166,153,166,175,29,233,119,207,156,142,99,30,68,170,161,231,178,172,64,81,20, +76,110,153,132,32,8,24,28,24,196,208,208,72,4,216,133,216,154,169,146,172,224,204,153,159,225,177,199,30,7,0,28,57,114,20,103,206,252,12,150,105,226,201,31,63,133,51,11,103,66,177,180,162,36,213,30,52, +109,94,200,37,89,225,217,198,28,114,97,232,149,154,108,90,231,79,223,240,251,231,1,236,177,99,199,66,207,175,184,98,95,32,113,44,28,79,203,234,20,34,215,52,13,135,15,31,193,248,196,24,143,167,93,231,227, +214,244,10,199,187,207,45,211,140,81,130,185,113,219,56,86,210,52,16,66,106,238,203,253,46,64,37,117,26,115,238,47,151,160,82,75,136,224,147,190,205,24,172,144,19,168,31,47,226,220,100,217,186,213,71, +91,140,148,231,209,245,50,212,172,26,90,214,76,243,133,170,3,4,20,10,43,0,179,48,185,197,41,3,52,49,62,2,198,172,216,74,7,134,174,67,215,117,200,125,20,71,195,109,35,91,52,22,221,27,3,111,252,170,24,94, +168,65,169,164,133,20,217,185,185,189,120,238,185,99,177,80,75,28,178,245,159,31,122,236,135,56,126,226,121,0,192,252,233,121,104,90,25,239,127,255,123,249,97,211,55,162,136,35,132,216,182,51,251,197, +141,219,70,181,172,170,110,248,125,72,19,150,176,105,161,150,10,18,108,171,154,133,31,239,4,59,0,180,222,141,183,18,168,127,216,195,139,39,179,145,85,195,83,254,227,99,237,171,53,94,109,220,129,193,161, +148,7,141,92,3,180,173,196,35,7,7,14,155,173,172,23,183,182,142,244,77,163,224,79,76,140,35,155,85,81,42,105,161,178,93,59,182,111,171,158,195,17,197,149,69,106,107,231,47,46,34,127,209,25,208,142,79, +140,225,173,111,189,29,7,14,236,231,135,73,159,152,101,25,161,227,149,199,215,114,219,168,48,152,212,21,114,35,94,143,37,89,1,99,12,166,81,129,40,101,96,166,172,140,181,161,161,54,93,119,11,26,15,187, +235,144,181,111,232,58,162,213,108,91,82,102,3,118,234,212,105,255,255,229,229,2,78,157,90,64,165,82,193,200,200,88,168,1,67,117,27,202,137,82,191,105,160,41,176,245,90,227,114,160,189,84,141,192,43,218, +29,109,86,81,61,54,146,7,77,134,94,78,149,220,184,222,246,153,207,124,202,185,100,216,182,191,205,251,247,95,141,123,239,189,167,230,189,127,254,231,127,230,95,124,247,205,237,197,61,247,124,38,245,247, +196,189,55,174,107,88,179,235,229,150,230,90,86,174,86,154,177,77,192,228,113,182,220,54,22,0,110,58,99,12,4,213,174,178,157,182,13,124,118,219,125,116,224,201,33,165,86,148,218,155,254,159,156,154,196, +235,111,190,9,0,176,115,182,90,82,104,203,196,24,134,134,7,2,192,42,213,192,168,238,43,215,142,202,26,7,192,105,124,187,25,226,38,185,181,2,179,158,34,192,220,62,222,229,80,179,138,168,98,16,4,90,219, +182,97,185,117,166,109,219,132,173,155,125,119,81,142,14,132,189,146,80,222,54,199,95,131,153,31,207,214,185,169,51,226,126,127,166,166,94,54,183,214,111,254,113,191,79,240,152,37,132,247,217,229,182, +81,89,144,109,142,29,9,158,131,93,56,31,249,144,181,3,54,183,215,153,190,28,30,30,5,237,64,173,196,66,97,5,203,133,2,246,239,191,38,180,188,126,40,129,3,177,94,6,182,7,36,81,240,216,136,131,6,110,61,187, +108,34,28,71,171,199,92,88,45,24,186,213,179,132,133,218,245,210,154,218,139,94,157,211,230,215,21,191,204,182,172,154,238,114,157,206,212,13,54,129,145,100,153,55,61,233,248,113,18,184,110,186,131,150, +96,109,240,104,146,110,123,97,90,220,184,117,23,102,25,99,208,220,122,248,220,234,27,175,86,221,162,141,5,202,246,8,130,8,65,16,59,2,180,0,80,41,151,157,4,177,232,8,36,112,209,13,170,175,193,150,182,94, +57,47,103,154,152,87,48,224,214,202,37,161,115,9,97,113,77,10,210,194,137,81,147,24,170,212,108,147,97,24,0,179,96,232,186,15,225,113,101,160,154,1,210,32,208,122,109,187,59,11,237,180,102,192,80,173, +98,194,47,201,221,50,203,50,252,223,209,75,34,243,170,34,120,173,193,121,57,67,110,253,98,222,253,155,16,2,66,136,95,10,116,83,1,187,221,121,241,140,43,181,49,246,91,31,250,15,254,227,123,239,253,92,232, +181,232,115,0,56,112,237,117,53,203,126,243,67,191,145,106,89,146,29,57,242,140,31,87,27,180,55,191,249,86,76,77,77,38,170,10,35,195,195,238,9,193,43,32,112,107,197,210,93,100,130,113,179,193,114,123, +209,105,96,79,37,75,219,241,41,169,182,161,183,93,53,203,125,117,211,14,125,111,167,224,36,218,182,187,83,62,78,30,112,242,25,146,94,192,109,104,240,98,134,67,79,226,66,84,184,113,227,214,121,235,198, +245,149,67,109,159,218,254,253,175,192,205,110,92,109,195,209,78,100,218,178,157,242,31,60,150,150,91,212,40,21,99,227,77,109,219,132,0,49,52,149,27,44,124,31,52,66,104,202,227,175,22,74,171,160,92,1, +8,77,21,106,208,85,117,33,33,182,45,184,60,41,118,147,16,193,15,55,224,211,221,125,50,140,179,205,20,199,36,229,66,1,183,158,152,32,72,53,225,79,220,56,212,110,74,43,44,23,0,0,195,35,195,117,149,132,246, +234,212,114,165,136,91,250,155,190,167,170,122,16,71,40,141,157,82,50,140,114,108,28,110,82,197,142,240,251,42,112,98,125,9,192,236,186,239,237,54,196,38,61,110,4,190,158,127,24,51,97,232,94,108,50,171, +5,165,117,40,73,200,45,221,117,209,57,230,72,40,30,154,27,183,78,91,180,20,221,166,61,163,172,238,92,231,56,212,182,105,146,172,224,217,103,127,130,149,149,21,92,121,229,21,254,114,74,41,134,134,134,90, +90,231,236,206,89,204,238,156,5,0,148,203,101,28,63,126,2,71,142,60,3,0,184,227,173,183,95,242,62,111,79,41,235,78,246,243,177,227,39,156,223,110,102,26,234,58,22,202,94,15,223,48,219,134,105,38,199,112, +75,82,198,207,114,245,64,54,62,76,32,169,46,178,11,180,32,61,5,90,207,103,201,255,123,91,151,12,183,196,221,102,66,152,239,99,203,50,64,8,129,40,137,208,117,29,146,36,85,125,207,129,182,207,141,87,79, +224,214,125,166,184,84,224,157,67,109,159,25,21,156,233,195,103,159,253,41,230,79,47,96,251,182,106,225,118,65,16,90,134,90,0,56,119,238,60,30,127,252,9,156,63,119,30,25,37,131,27,94,125,61,230,246,237, +237,218,190,244,115,130,68,103,149,50,150,186,196,207,55,190,241,77,124,227,27,223,196,221,31,252,247,216,55,23,239,251,67,135,126,136,175,124,229,111,161,105,85,255,221,122,235,45,184,235,174,59,1,0, +119,223,253,31,145,205,101,241,209,143,252,119,0,192,67,15,125,23,95,253,234,253,0,128,223,251,189,223,198,244,244,14,228,243,121,252,231,255,252,97,188,242,192,53,248,183,191,250,111,54,132,111,130,22, +138,139,98,240,195,15,36,41,227,173,168,78,2,88,104,236,158,0,16,12,209,202,12,189,134,89,93,55,112,225,194,69,20,86,86,176,186,186,134,82,177,132,74,165,2,203,178,64,41,133,44,203,200,230,178,24,28,200, +97,112,104,16,91,38,198,33,138,162,159,228,65,8,113,192,158,49,16,16,16,194,160,87,156,214,151,166,225,248,218,182,77,94,114,170,255,245,165,154,90,205,220,184,117,20,246,46,153,38,33,221,233,80,201,161, +182,21,167,137,50,108,198,218,110,176,144,100,167,79,157,198,151,238,251,107,220,113,199,109,184,227,142,219,241,200,35,143,66,81,58,59,229,21,159,140,211,159,48,219,105,165,44,10,111,205,0,92,208,14, +31,62,130,47,126,241,175,160,170,10,110,189,245,22,168,170,138,67,143,253,16,15,61,244,93,0,192,93,119,221,137,153,217,25,28,63,118,2,154,166,65,85,85,44,44,44,248,159,159,159,95,192,244,244,14,204,207, +159,1,0,204,76,79,111,26,223,4,129,182,117,197,34,211,211,1,87,156,47,47,94,204,227,212,169,121,28,57,250,44,242,249,69,88,150,141,74,165,130,74,69,135,105,154,176,109,27,148,82,136,162,136,140,44,67, +206,200,160,148,96,108,108,20,87,95,125,37,118,206,78,99,116,116,20,148,146,16,224,18,74,65,152,227,123,198,140,142,248,156,91,247,141,39,141,113,227,214,33,35,196,153,153,34,66,224,190,225,8,133,94,85, +27,14,181,189,250,45,40,5,172,238,77,19,206,238,156,197,47,255,242,191,194,209,35,207,224,190,251,190,140,74,185,130,225,225,33,204,118,248,123,250,85,157,237,149,82,22,7,14,205,192,196,87,255,198,81, +92,127,243,55,127,3,211,211,59,0,56,42,237,71,62,250,49,60,244,208,119,241,198,55,254,28,230,246,238,193,241,99,39,112,122,126,1,251,230,246,98,126,225,12,166,103,118,96,97,254,12,22,22,28,152,245,254, +223,59,183,103,67,251,198,59,158,36,41,3,195,168,180,13,0,189,142,155,141,194,236,145,163,63,193,247,191,127,8,132,16,148,74,37,24,134,9,66,156,208,34,65,160,144,36,1,148,138,0,156,193,64,69,175,64,43, +107,176,44,11,139,139,203,248,217,207,206,2,96,184,225,134,235,241,138,171,175,196,232,232,8,40,165,14,224,186,48,28,132,91,14,182,253,111,151,74,130,223,70,16,61,54,171,93,42,29,239,28,128,149,18,4,23, +64,108,177,54,56,135,218,86,15,188,46,169,180,158,77,77,77,98,234,205,111,4,0,28,63,118,2,199,142,159,192,143,30,127,18,111,189,227,118,76,77,77,110,74,159,174,151,82,214,10,192,229,243,121,228,47,46, +226,149,7,174,241,129,22,0,84,85,197,27,223,112,11,190,250,213,251,113,252,248,243,254,107,11,243,103,48,59,51,141,133,249,51,56,120,240,6,104,154,230,199,225,206,187,234,237,236,204,244,166,240,77,82, +252,108,243,214,157,233,169,70,126,253,201,79,143,227,27,223,248,38,150,151,87,96,24,6,108,219,130,40,82,72,18,144,203,101,49,60,60,136,129,129,65,228,114,89,40,138,51,13,237,248,94,135,166,149,80,44, +150,81,42,149,177,188,188,10,195,48,241,189,239,61,138,167,159,62,138,91,111,253,57,204,205,237,1,37,212,133,91,219,253,191,10,183,148,86,21,115,14,183,253,120,141,178,18,111,196,155,9,104,157,255,157, +182,208,60,49,174,55,22,173,50,99,232,101,8,162,220,177,250,247,27,201,188,129,99,189,78,129,73,175,113,168,109,198,209,226,250,196,81,205,237,219,139,185,125,123,113,252,216,137,206,141,146,58,220,33, +105,51,42,101,245,236,98,126,17,64,124,200,192,244,204,14,23,124,23,113,240,224,13,14,212,46,44,224,244,188,179,124,206,141,207,61,116,232,113,255,125,227,19,99,137,9,102,27,77,69,76,23,63,155,198,236, +174,31,115,65,255,46,45,45,227,219,15,125,23,207,62,251,28,138,197,18,108,219,2,96,35,151,83,48,53,181,5,147,147,91,49,54,54,134,225,225,97,228,114,57,200,178,12,89,166,46,212,90,48,12,3,186,174,163,92, +46,97,117,181,132,149,149,85,44,44,188,140,133,133,179,184,120,113,17,127,255,247,223,194,43,174,190,2,7,15,190,26,195,195,67,160,84,0,165,12,130,192,64,25,3,165,20,182,77,67,254,78,10,9,225,182,190,208, +119,105,168,152,140,171,181,61,52,15,104,47,157,152,218,244,231,27,33,2,24,99,161,78,169,137,156,198,107,162,165,183,122,25,222,189,176,115,231,207,119,44,182,182,95,128,182,159,149,50,198,88,221,152, +212,52,54,62,62,14,85,85,144,95,92,194,137,227,207,59,32,60,51,141,82,73,3,240,56,142,29,63,129,133,249,51,177,73,128,92,69,236,205,113,103,219,54,94,126,249,44,30,248,230,131,56,113,226,5,216,54,131, +109,155,144,101,130,203,46,187,12,219,183,207,96,251,246,105,108,221,186,21,91,182,108,113,161,86,133,40,58,213,26,24,99,48,77,19,165,82,9,197,98,17,197,226,26,86,87,215,160,105,26,118,239,222,133,115, +231,46,224,208,161,39,177,188,188,130,39,158,60,140,194,202,10,110,190,249,181,152,156,220,2,81,160,176,109,1,130,32,56,112,75,25,8,165,161,190,98,28,108,251,243,70,123,41,1,188,87,206,204,41,105,198, +147,228,186,97,94,51,27,7,112,121,105,205,160,0,87,43,200,233,161,132,205,234,49,74,185,82,203,173,63,192,162,31,149,50,31,104,99,42,9,76,184,109,146,231,3,137,95,158,45,184,137,95,227,238,123,188,100, +49,85,85,160,170,10,166,167,119,160,88,42,1,0,30,126,248,187,0,128,185,189,123,54,148,111,54,3,108,121,190,61,123,246,28,254,225,129,127,196,241,227,47,192,182,109,152,102,25,83,83,19,216,187,119,14,151, +95,190,7,151,95,190,27,147,147,219,48,50,50,4,65,32,112,20,100,219,7,90,207,7,170,170,66,81,20,12,15,15,67,211,52,23,112,87,48,52,52,132,241,241,49,60,245,212,81,60,255,252,73,247,123,24,94,127,243,65, +76,78,110,129,32,120,235,113,192,86,0,96,199,128,45,55,110,235,7,240,94,185,61,198,29,210,37,243,154,217,4,129,150,217,182,163,38,112,139,128,173,236,135,199,120,85,114,60,248,21,185,74,219,220,8,170, +23,86,88,46,224,200,209,103,106,150,159,58,117,26,59,103,103,54,133,202,176,33,148,50,22,222,222,32,88,140,143,143,99,124,98,12,79,31,62,138,133,133,51,126,236,172,166,105,120,248,59,46,168,186,137,95, +51,211,59,112,252,216,9,28,63,118,2,51,238,239,231,149,8,243,146,196,130,113,185,92,69,236,13,204,50,198,176,188,92,8,0,173,5,198,116,236,222,189,19,251,246,93,141,171,174,186,10,187,118,237,197,232,232, +104,13,204,6,129,214,182,109,216,182,237,63,6,128,76,38,3,81,20,161,40,10,20,101,13,185,156,130,241,241,49,76,77,109,193,15,127,248,20,158,127,254,69,8,148,226,13,111,124,61,134,6,7,192,152,87,169,194, +185,206,196,129,45,135,91,110,235,101,206,121,94,239,158,82,225,192,155,84,103,59,101,67,21,15,202,130,205,107,120,24,66,35,150,209,107,98,190,185,199,54,144,237,220,57,139,225,225,225,150,127,252,126, +235,22,214,239,74,25,99,12,96,12,95,249,234,253,200,101,179,126,2,212,204,244,14,220,117,215,157,184,235,157,119,226,158,123,238,197,39,63,249,39,120,237,107,95,227,151,244,202,95,92,196,173,183,222,130, +241,241,241,16,176,106,90,57,164,200,6,227,164,103,102,118,112,21,177,135,199,156,247,248,193,111,127,199,29,44,216,96,76,199,174,93,187,112,205,53,175,196,43,95,121,0,187,118,237,65,38,147,113,75,158, +165,3,218,224,115,192,201,240,29,24,24,132,40,74,16,69,13,55,220,112,29,100,57,131,239,126,247,7,56,126,226,5,12,13,13,226,117,175,123,77,104,187,226,192,54,24,246,193,193,150,91,239,207,27,43,230,94, +66,93,197,76,71,184,166,244,165,5,178,85,31,216,33,33,12,112,227,100,189,178,85,117,192,150,82,145,183,206,110,210,146,18,24,57,212,54,58,100,123,172,210,2,78,27,220,185,185,189,56,126,252,4,134,135,135, +176,127,255,53,29,88,107,255,0,237,70,81,202,188,136,218,133,249,5,31,104,73,160,163,208,129,3,251,241,254,247,255,11,124,229,43,127,235,215,166,5,194,205,23,28,96,173,38,147,5,203,118,121,10,46,0,31, +128,185,138,216,187,99,240,167,207,157,192,179,207,62,7,219,102,48,205,50,118,239,222,137,107,174,121,37,174,191,254,6,236,217,179,39,112,147,110,30,104,131,207,9,33,46,28,19,72,146,129,215,188,230,85, +40,20,86,113,232,208,143,112,244,153,159,96,114,106,11,246,238,185,60,210,20,35,112,28,82,129,199,212,114,235,35,179,253,255,195,48,71,113,233,117,92,179,67,144,239,249,162,166,181,56,179,252,234,6,209, +42,7,128,163,200,26,122,25,150,73,234,182,37,231,214,216,56,212,54,58,100,109,19,48,235,79,3,188,225,150,215,163,82,169,96,98,203,68,245,6,223,198,119,150,203,101,124,227,235,15,224,230,155,111,194,177, +227,39,80,46,87,112,195,13,215,111,146,17,255,198,81,202,110,123,203,63,193,237,183,191,5,148,16,191,172,138,95,215,213,181,131,7,111,196,193,131,55,214,109,147,59,61,189,3,247,220,243,153,26,95,220,117, +215,157,33,248,229,42,98,239,6,83,23,46,228,241,192,63,252,191,40,22,75,96,204,198,212,212,4,246,237,187,26,175,124,229,129,0,208,162,109,160,245,158,51,183,89,139,243,63,112,203,45,55,225,228,201,211, +120,249,229,115,248,225,99,79,96,203,196,4,134,135,7,107,46,207,222,241,102,219,52,20,90,199,1,151,91,127,1,46,2,96,119,73,202,95,169,88,194,11,49,176,245,48,184,26,122,217,23,208,4,142,101,253,9,181, +245,218,116,182,107,189,188,160,167,169,118,176,101,114,75,71,191,243,252,185,243,126,25,47,69,201,224,233,35,207,116,100,63,250,173,132,215,102,82,202,146,218,232,114,223,244,39,220,30,125,230,89,44, +46,45,195,182,45,200,50,176,119,239,156,171,126,119,7,104,189,101,222,245,107,116,116,4,239,125,239,187,240,185,207,125,1,203,133,21,60,119,236,56,174,61,176,63,92,47,24,213,199,84,112,98,26,57,204,114, +219,56,144,187,249,141,80,17,172,142,178,234,223,119,137,224,119,203,242,49,56,16,162,16,157,17,182,204,234,58,215,37,174,182,139,252,134,46,95,195,104,250,125,100,77,253,245,74,113,233,246,182,180,10, +130,135,14,61,134,79,126,226,79,112,234,228,41,255,239,147,159,248,19,103,42,187,73,43,20,10,155,226,2,208,15,74,153,32,136,144,36,25,183,220,114,19,182,109,155,66,185,92,193,15,31,123,194,47,145,101, +24,6,76,195,132,105,153,176,44,111,29,54,108,187,187,199,55,247,77,239,142,189,139,23,23,241,253,239,31,114,90,49,194,198,101,151,205,226,242,203,247,96,215,174,189,200,100,50,93,3,218,224,58,24,99,152, +153,217,129,27,110,184,14,166,105,226,133,23,78,98,117,117,21,186,110,192,52,77,152,166,9,203,50,97,89,150,243,126,219,118,194,64,250,220,207,220,184,93,74,150,4,180,148,138,62,180,74,178,2,74,72,136, +37,36,89,113,84,89,81,140,21,206,188,215,4,81,132,213,137,238,165,110,126,72,234,191,110,3,115,23,183,133,166,133,197,205,2,83,205,238,215,122,213,165,61,226,182,200,125,240,193,135,113,254,220,121,220, +119,223,151,113,223,125,95,198,185,115,231,55,5,220,6,149,50,73,98,235,166,148,229,114,89,95,41,11,1,133,105,193,178,172,42,188,161,55,231,1,247,77,247,253,123,234,244,60,8,40,108,219,66,46,167,96,251, +246,25,92,126,249,110,140,142,142,182,28,206,145,6,104,157,199,150,15,171,140,49,28,60,248,90,12,13,13,97,109,109,13,167,78,205,195,48,116,103,240,224,251,119,99,250,153,27,183,75,217,60,32,13,62,175, +199,18,245,212,216,212,221,75,215,11,82,187,127,209,110,106,191,196,75,253,34,25,221,255,224,244,30,165,226,186,116,247,152,221,57,139,15,124,224,87,58,186,206,245,14,61,168,175,148,93,22,81,202,186,7, +22,193,63,79,41,251,206,119,190,143,23,94,56,137,61,187,119,129,144,161,192,20,176,115,60,120,109,100,189,169,246,184,99,133,251,70,232,219,166,12,193,253,210,117,19,207,63,255,2,74,90,9,162,72,49,53, +181,5,219,183,79,99,114,114,91,83,9,119,173,2,173,247,92,215,43,16,69,5,67,67,67,184,252,242,93,56,114,228,40,206,157,187,128,93,187,46,3,21,4,167,241,133,27,203,77,169,13,219,38,160,182,221,215,126,230, +198,141,91,149,27,162,176,26,183,172,109,216,187,212,45,234,3,66,64,9,17,184,99,34,55,64,73,202,64,146,50,53,163,173,141,108,253,210,238,144,43,101,220,55,235,121,236,93,184,120,1,11,243,103,96,24,38, +68,145,98,114,114,43,182,110,221,138,145,145,161,182,125,27,183,60,14,104,157,210,108,38,116,189,12,89,150,177,107,215,46,16,66,80,44,149,176,182,182,10,211,48,97,24,166,171,134,91,238,103,25,87,107,185, +113,219,0,22,12,29,8,154,109,119,64,32,219,44,234,107,23,33,151,74,29,170,139,214,108,156,107,39,255,58,109,186,94,134,233,197,177,108,146,3,104,61,149,218,126,83,202,108,219,134,174,87,80,169,88,190, +82,86,169,232,56,119,238,2,42,21,3,134,105,194,52,12,55,174,49,176,238,46,196,53,114,223,244,242,24,4,10,133,21,88,182,13,66,0,85,85,48,54,54,134,45,91,182,36,214,248,109,198,183,201,159,177,106,62,227, +116,121,211,97,219,54,182,110,221,138,108,54,139,213,213,53,44,46,45,251,241,180,166,25,141,95,102,33,63,115,227,198,173,63,85,218,96,162,87,91,194,82,143,248,99,51,241,27,213,117,189,35,59,191,254,55, +172,206,109,147,28,57,248,156,169,224,192,65,214,35,59,119,238,60,30,121,228,81,60,242,200,163,109,199,210,246,131,82,203,149,50,238,155,245,58,238,0,167,214,238,234,202,42,42,21,29,148,82,12,15,15,98, +120,120,216,109,104,210,185,193,66,248,243,86,236,103,0,27,134,81,129,105,234,24,29,29,133,162,40,208,117,29,107,171,69,55,118,217,85,193,189,129,67,48,33,15,44,180,95,220,184,113,235,111,149,182,95,96, +246,82,224,55,49,205,23,182,122,19,233,166,165,137,37,171,23,47,155,72,249,130,20,82,55,9,21,107,74,113,248,7,91,23,227,217,190,253,224,195,88,94,94,198,220,62,167,84,212,35,223,251,62,50,138,130,59,238, +184,125,67,169,180,253,170,148,217,182,157,168,148,13,14,14,66,16,40,76,83,0,21,40,4,75,0,165,54,24,163,142,82,214,225,50,86,220,55,61,0,90,247,255,98,177,132,74,69,135,32,80,12,12,12,34,151,203,33,151, +83,209,237,24,218,40,208,154,38,3,99,142,226,61,56,152,133,44,203,48,13,19,229,114,217,31,48,88,150,9,219,118,178,159,5,139,194,166,2,24,163,254,254,108,196,22,197,220,184,113,107,0,179,93,184,254,173, +227,38,36,240,91,243,219,158,246,58,39,182,227,132,245,36,252,164,239,174,183,227,105,157,228,168,84,10,140,117,234,236,81,88,46,96,121,121,25,239,12,20,230,223,191,255,26,124,253,235,15,224,220,185,243, +152,154,154,108,90,165,93,239,240,131,141,160,148,173,174,174,248,74,153,32,8,16,197,90,165,140,82,79,41,235,12,80,112,223,244,246,134,81,209,117,152,166,9,73,18,144,203,57,48,41,138,20,173,170,223,205, +14,22,60,160,13,46,83,213,12,4,65,128,101,219,48,12,195,1,90,219,170,170,225,44,28,218,225,22,172,229,0,192,141,91,159,153,161,151,91,15,51,232,49,196,174,167,64,155,244,221,245,46,107,105,249,77,148, +101,25,149,74,25,105,122,54,183,3,177,237,124,182,153,155,99,51,116,31,151,69,108,91,134,15,182,132,16,136,105,202,105,116,248,38,83,40,20,48,181,117,170,102,249,200,200,48,42,229,114,75,39,26,87,202, +250,79,41,227,190,233,221,49,232,65,161,101,58,251,77,169,8,69,145,33,203,20,189,82,191,163,64,235,189,46,8,162,239,47,203,182,97,217,222,128,129,57,33,7,110,120,71,40,4,129,129,171,180,220,184,245,161, +53,93,49,169,77,186,76,203,86,237,124,13,67,27,252,6,210,178,43,210,66,110,168,106,85,165,162,37,2,109,51,49,14,221,12,6,110,103,221,105,223,219,246,118,118,112,216,51,60,60,140,83,167,78,215,44,63,119, +246,156,171,220,109,12,160,173,167,148,81,74,59,162,148,181,10,109,94,178,142,109,219,144,229,22,148,50,238,155,222,249,166,131,112,75,5,234,182,60,38,53,231,126,183,213,239,56,160,101,140,193,52,77,31, +80,9,8,88,240,55,100,129,214,198,140,199,210,114,227,214,239,102,55,51,195,219,166,80,88,159,105,210,23,75,96,13,254,181,117,221,109,99,221,105,247,33,232,11,177,85,242,111,12,147,221,59,104,162,244,222, +138,58,27,247,30,65,144,96,185,74,237,122,42,32,195,35,195,216,191,255,21,248,194,189,127,225,199,212,30,63,118,2,175,190,225,85,24,30,73,15,181,253,2,180,92,41,227,190,89,247,99,208,77,98,147,37,9,162, +232,196,253,90,150,3,239,166,105,130,16,210,117,245,59,250,126,192,134,32,16,84,42,26,44,203,2,165,20,130,64,195,157,199,98,224,185,154,44,198,85,90,110,220,54,172,181,8,73,157,96,175,134,160,218,205, +113,51,169,191,45,245,148,221,70,233,76,140,177,42,212,182,3,178,105,127,155,86,136,63,110,7,227,190,47,184,147,105,138,147,199,189,199,178,12,200,178,226,183,165,179,215,41,166,22,112,98,104,231,230, +246,226,188,91,245,96,255,53,175,104,10,104,251,205,36,57,131,178,86,228,74,25,87,17,215,213,212,172,10,89,150,161,235,58,42,21,167,238,110,169,84,130,170,170,61,137,161,13,190,46,138,34,8,17,176,186, +90,132,174,235,16,5,1,146,44,85,253,143,240,12,19,111,143,203,141,219,165,11,180,245,206,255,182,64,182,199,252,22,187,26,18,255,61,73,128,27,220,223,40,226,137,105,166,239,211,58,144,117,1,239,27,173, +211,219,233,164,88,140,52,128,75,169,8,203,50,32,138,50,0,224,185,231,142,99,101,101,5,59,119,78,227,241,199,159,196,214,173,91,113,229,149,87,0,0,126,250,211,231,252,207,69,151,121,207,1,96,126,254,76, +203,251,92,88,46,160,80,40,96,118,231,44,134,135,135,145,81,50,80,20,5,71,142,28,197,212,212,84,234,68,177,245,78,16,11,110,135,101,217,92,41,227,42,226,58,220,59,194,23,134,129,92,14,178,44,163,92,46, +67,211,74,208,117,29,197,98,17,138,162,244,76,253,246,30,11,130,0,65,16,176,180,84,64,185,92,134,156,145,161,40,74,13,196,214,191,153,241,184,90,110,220,46,5,160,109,101,85,177,252,212,135,252,86,243, +54,210,60,224,122,151,193,212,225,7,140,181,232,132,78,42,11,49,23,239,36,233,58,142,228,147,0,87,16,68,23,110,5,48,6,60,251,147,159,98,126,126,1,3,131,3,120,234,240,17,12,13,157,196,182,237,219,0,0,143, +254,224,49,255,115,209,101,222,115,0,56,125,122,190,169,0,233,16,212,22,10,56,117,122,30,179,59,103,113,228,232,51,216,57,59,131,217,157,179,40,20,86,48,50,220,223,106,109,28,72,27,122,25,150,109,67,146, +21,12,12,14,113,165,140,171,136,235,102,131,131,3,160,148,192,178,44,148,74,58,202,229,18,138,197,53,63,86,221,243,195,153,51,63,67,38,147,193,208,208,96,71,213,111,231,177,5,219,6,100,57,3,66,4,156,61, +123,22,165,82,9,91,183,78,97,104,104,144,223,244,185,113,219,192,38,8,82,114,178,24,99,48,45,43,93,2,122,139,48,155,22,100,251,153,223,66,139,83,2,174,183,169,52,234,192,168,19,163,1,186,117,3,124,163, +81,189,129,15,118,164,227,68,157,245,215,219,190,184,183,122,235,22,220,186,180,30,216,6,189,163,170,42,84,85,237,218,40,101,179,153,87,202,68,146,21,255,143,49,230,60,150,156,215,84,69,134,44,203,176, +109,59,164,148,245,50,78,180,211,74,89,167,85,68,238,155,238,217,196,196,56,182,111,223,10,74,5,20,139,37,172,174,150,176,186,186,6,77,211,252,125,255,204,103,254,12,55,223,252,79,240,198,55,222,142,183, +191,253,61,40,22,75,9,137,120,173,1,173,101,57,215,29,73,202,192,52,77,156,60,249,146,227,115,74,32,138,188,109,57,55,110,27,249,30,72,5,33,17,104,187,169,206,198,114,25,11,3,98,203,252,214,198,95,187, +252,86,187,34,212,77,50,11,197,212,202,25,21,122,165,18,112,156,13,143,125,25,172,84,222,237,86,188,97,60,248,147,186,53,32,188,157,142,170,183,193,1,3,77,24,49,89,166,137,181,213,21,44,46,46,182,5,182, +253,168,156,174,167,141,142,141,113,165,140,171,136,61,51,47,201,205,191,224,137,34,118,93,182,19,47,190,120,10,203,203,171,88,89,89,133,166,105,40,22,139,16,69,17,95,252,226,255,131,207,124,230,207,48, +61,61,141,201,201,73,136,162,136,63,253,211,207,227,131,31,252,181,142,12,22,44,203,217,150,76,70,66,38,147,69,161,176,134,151,94,58,9,81,20,49,56,56,224,196,46,187,23,40,239,113,112,89,236,53,144,219, +166,181,221,187,103,83,45,227,126,89,63,191,120,98,14,179,109,24,122,25,130,32,37,114,5,128,84,42,109,43,64,91,79,153,77,132,216,198,130,110,251,252,150,116,109,142,219,134,58,252,230,175,40,18,127,27, +85,109,67,49,181,122,69,171,85,52,193,128,40,208,214,168,185,189,83,106,130,23,241,216,112,130,24,114,173,7,183,222,52,129,101,154,16,69,71,181,181,44,11,197,98,9,0,80,42,149,80,42,149,218,250,65,155, +189,237,100,20,5,167,78,157,246,203,122,157,58,117,26,120,228,81,0,192,220,220,222,166,214,213,43,160,77,42,56,237,169,181,134,81,134,101,154,24,25,30,196,246,237,91,177,180,84,168,81,202,50,153,140,175, +148,125,250,211,159,197,192,64,14,51,51,51,248,210,151,254,28,138,146,233,144,10,233,40,101,162,40,247,157,82,230,169,136,220,55,221,133,220,233,233,237,238,49,105,98,97,225,101,236,222,189,11,197,226, +10,20,69,193,161,67,63,196,196,196,4,46,187,236,50,76,79,79,67,20,69,100,179,217,142,0,173,247,191,36,73,80,213,1,40,138,130,7,31,124,24,43,43,43,216,190,125,27,182,111,223,10,2,7,96,41,165,254,227,40, +228,114,187,116,236,186,235,94,129,235,174,123,5,119,68,159,250,197,203,195,1,0,66,105,178,80,214,165,166,86,157,128,89,150,188,33,221,184,0,199,126,47,137,126,103,19,112,27,125,93,76,218,7,6,134,76,198, +81,40,157,90,182,222,202,146,179,156,187,9,183,222,197,60,169,124,87,13,224,166,132,91,111,154,64,16,69,48,48,216,150,133,124,62,143,252,98,222,255,220,244,244,116,79,79,148,169,169,73,188,247,189,191, +24,251,90,185,92,238,251,11,14,179,109,255,36,247,148,50,73,82,64,169,9,195,48,185,82,198,85,196,222,195,108,0,16,199,198,70,241,234,235,175,195,247,31,125,12,11,11,103,113,238,220,5,12,13,13,65,81,214, +112,240,224,141,120,241,197,83,24,26,26,194,192,192,0,100,89,194,204,204,182,142,12,22,152,31,214,148,67,54,59,136,139,23,23,241,163,31,61,1,65,16,48,56,152,3,192,66,62,165,148,250,231,16,117,255,247, +255,120,57,47,110,220,214,205,36,89,1,179,109,31,100,27,137,59,237,0,109,43,234,108,35,152,101,77,64,108,39,249,45,73,153,101,73,10,110,35,184,141,81,109,169,156,81,33,203,170,191,142,106,172,2,9,59,139, +85,119,144,37,196,202,70,159,39,197,219,53,21,71,91,231,51,113,223,95,179,141,49,177,27,222,62,10,130,84,27,115,194,24,212,108,22,89,53,11,0,254,255,104,171,27,71,243,246,248,227,79,224,190,251,190,140, +71,92,133,246,244,169,211,248,194,189,127,129,66,97,165,239,84,218,232,119,17,247,102,156,86,41,43,151,203,40,22,87,80,169,84,66,74,217,220,220,28,230,230,230,58,174,148,137,162,232,43,101,143,63,254, +56,86,86,86,124,149,116,61,149,50,238,155,238,171,180,222,133,242,202,43,247,98,120,120,8,134,97,226,177,199,126,140,197,197,37,148,203,37,220,113,199,91,112,197,21,123,97,89,38,84,53,131,3,7,174,194, +91,222,114,107,219,131,5,111,153,170,230,48,48,48,4,195,176,240,151,127,121,31,138,197,34,6,7,7,176,99,251,54,16,74,65,41,113,255,119,255,8,245,129,22,1,95,115,227,198,109,157,175,39,9,247,184,86,21,207, +150,129,54,200,103,177,113,181,129,146,139,168,19,231,186,14,252,86,47,126,183,17,191,197,237,16,3,131,24,79,247,4,153,140,226,175,44,147,81,80,46,151,18,127,128,86,21,218,184,215,147,20,217,56,245,39, +170,206,70,27,43,132,158,215,33,255,56,234,15,218,98,126,177,109,176,109,198,10,203,5,28,63,126,2,239,124,231,219,241,141,175,63,128,111,63,248,48,206,158,59,135,183,222,113,123,234,114,94,221,26,157, +38,193,114,112,26,38,254,119,3,87,202,184,138,184,110,48,75,8,115,183,149,128,18,138,209,209,81,252,220,207,189,22,15,60,240,109,44,45,21,240,212,83,71,49,62,62,6,81,148,241,209,143,254,87,55,252,136, +33,151,203,117,100,176,96,219,54,114,185,28,134,135,71,145,205,14,225,91,223,250,71,156,57,115,6,146,36,98,102,122,27,8,129,15,178,2,165,110,205,98,226,66,46,9,0,174,231,103,14,183,220,184,173,231,125, +176,147,214,22,208,38,42,183,117,148,217,78,240,91,236,189,12,45,243,91,148,209,88,10,229,54,78,181,21,189,208,130,36,160,141,110,124,61,152,101,29,72,28,171,247,254,232,116,109,18,192,198,193,109,72, +254,118,31,139,162,8,195,52,32,185,177,180,166,105,66,20,69,76,140,143,161,56,179,3,185,92,22,35,35,78,114,140,162,100,0,0,51,51,213,80,4,37,227,28,220,179,238,50,239,121,236,50,2,204,204,78,35,147,201, +52,134,218,66,1,59,119,206,66,81,20,220,112,195,245,120,252,241,39,18,195,17,122,101,162,148,9,61,54,141,74,211,39,185,255,25,87,41,59,250,204,79,144,207,47,226,177,199,126,140,241,241,49,228,114,10,238, +184,227,45,120,242,201,167,124,165,236,154,107,174,192,171,95,125,93,199,148,178,92,110,176,70,41,27,25,25,94,119,165,44,170,34,114,223,116,133,110,3,240,13,236,190,124,23,174,184,98,15,158,126,250,89, +60,255,252,73,76,77,77,226,134,27,174,133,36,25,200,102,157,208,171,78,13,22,114,185,65,12,15,143,66,85,115,120,234,169,167,241,216,99,143,129,16,130,171,174,186,2,99,163,195,160,148,64,160,130,95,117, +34,248,152,18,26,26,20,130,195,44,55,110,155,6,104,155,226,163,118,129,182,89,126,107,122,251,234,137,55,72,197,111,113,112,27,138,185,109,0,182,98,212,33,178,172,132,187,3,185,95,146,201,168,190,90,91, +207,25,141,122,17,183,112,31,74,92,119,35,117,54,8,179,53,78,35,196,143,21,118,10,223,203,190,99,110,187,237,159,194,182,77,8,130,128,223,252,205,223,112,161,214,9,67,184,235,157,119,162,202,31,206,131, +187,238,186,179,230,102,243,174,119,189,163,102,7,252,101,77,218,212,214,169,150,79,192,78,132,32,136,82,38,4,43,132,16,136,82,198,143,157,181,45,203,15,142,143,139,51,10,43,124,92,41,227,42,98,111,85, +90,255,58,192,152,175,44,83,65,128,32,216,184,225,213,175,194,234,202,26,94,120,241,36,126,248,195,31,67,150,101,188,230,53,175,130,32,84,63,27,45,151,150,22,104,1,184,73,97,78,200,65,54,59,132,167,158, +58,140,7,30,248,38,138,197,34,118,239,222,133,225,161,65,199,175,162,8,65,160,85,168,21,4,8,130,232,54,189,16,64,5,161,58,128,8,92,123,184,90,203,141,91,31,3,109,139,157,90,89,163,82,179,41,128,54,73, +157,173,203,111,173,18,107,61,146,77,248,56,137,114,89,2,167,197,170,182,117,192,86,244,28,34,203,42,72,32,64,129,5,73,153,177,16,0,166,83,109,155,87,98,227,111,72,201,160,155,70,157,77,84,109,107,70, +3,12,162,32,250,251,25,252,14,66,8,116,93,135,44,203,113,131,133,174,216,145,35,207,224,212,169,211,168,148,43,40,87,42,126,37,132,55,191,249,214,166,66,16,226,192,214,171,72,16,82,79,83,2,173,223,50, +149,16,16,65,128,237,182,20,246,190,35,41,12,193,208,203,92,41,227,42,226,250,130,45,194,3,43,74,41,6,135,6,240,154,131,175,134,109,219,120,233,228,105,124,247,187,63,64,161,176,138,91,110,185,9,163,163, +35,78,251,98,74,161,235,149,80,183,181,250,131,5,231,60,200,100,156,42,7,217,236,32,12,195,194,183,190,245,143,120,236,177,199,80,44,22,49,59,59,131,169,169,113,136,162,0,65,116,125,42,138,16,253,63,1, +130,64,253,214,201,161,65,3,56,208,114,227,182,89,173,101,160,109,82,157,173,11,179,29,226,183,122,49,10,172,1,220,214,85,109,99,248,205,175,126,32,203,170,187,226,100,135,84,42,90,34,221,215,131,217, +118,170,33,196,133,26,68,65,55,9,110,211,168,182,222,227,140,172,132,28,35,136,18,44,211,8,237,135,36,43,16,26,4,133,167,105,87,121,225,252,5,100,148,12,134,134,134,234,190,111,118,231,44,62,240,129,95, +233,232,8,51,8,182,134,94,14,141,58,189,208,130,40,224,70,129,182,222,141,52,105,20,203,149,50,174,34,246,11,216,18,194,156,56,96,219,246,219,254,138,130,136,201,45,19,120,205,107,94,13,74,41,94,124,233, +20,14,29,250,17,78,158,156,199,123,223,123,23,102,102,118,184,9,116,10,116,189,12,195,208,97,24,21,48,102,212,180,21,22,69,17,130,32,64,150,51,144,164,12,50,153,44,20,69,193,197,139,139,248,203,191,188, +15,103,206,156,1,33,4,187,119,239,194,212,212,56,50,114,198,241,43,21,32,73,34,68,65,128,40,10,238,122,92,184,21,28,223,251,113,203,148,242,120,90,110,220,54,13,192,166,80,114,211,132,28,52,0,218,68,126, +171,3,179,221,226,183,218,146,92,97,184,77,163,218,198,133,35,120,96,43,18,210,216,33,113,161,7,73,48,203,82,214,176,109,229,199,174,117,20,137,133,219,40,128,5,85,219,164,56,219,138,94,70,38,163,194, +52,245,154,68,23,67,215,33,40,74,205,254,166,189,175,20,215,214,176,186,90,196,125,127,245,101,252,194,187,223,217,16,106,11,203,5,20,10,5,167,53,238,114,1,25,37,3,69,81,112,228,200,81,76,77,77,181,148, +44,230,169,179,65,112,101,140,249,64,27,189,73,198,1,109,208,108,203,130,101,25,126,71,182,134,35,54,128,43,101,92,69,92,127,176,101,94,40,133,13,74,157,193,131,32,8,216,178,101,28,55,189,238,53,24,24, +200,225,185,99,207,227,229,151,207,226,115,159,251,2,110,184,225,58,28,60,248,90,12,13,57,224,111,219,54,76,83,135,105,154,145,14,108,4,132,56,192,79,136,0,211,52,81,40,172,225,193,7,31,198,143,126,244, +4,138,197,34,36,81,196,149,87,93,129,209,209,65,80,66,93,128,149,32,73,34,4,81,132,36,73,16,69,9,162,36,58,203,60,53,156,10,110,184,71,181,234,4,55,110,220,54,160,228,218,161,143,180,10,180,141,96,182, +151,252,230,115,86,180,51,110,61,213,54,5,216,138,201,18,119,156,67,144,114,89,103,59,141,37,213,162,173,62,175,133,219,36,136,141,27,9,120,224,30,76,154,11,130,173,36,203,233,143,72,119,221,229,74,5, +79,253,248,48,102,102,167,97,154,206,20,125,185,92,134,86,214,26,118,100,40,20,10,56,117,122,30,179,59,103,113,228,232,51,216,57,59,227,0,110,97,5,35,110,119,169,86,253,40,8,18,8,165,241,141,43,130,187, +98,219,32,117,58,159,80,65,128,101,25,160,130,224,171,192,245,186,168,72,82,198,105,227,97,90,176,237,18,87,202,184,138,216,83,152,173,62,102,129,100,55,230,248,89,20,97,51,134,161,193,1,220,112,195,117, +152,216,50,142,167,158,58,138,149,149,85,124,231,59,223,199,147,79,30,193,229,151,239,194,174,93,187,176,117,235,86,140,142,142,98,112,48,11,85,205,64,16,68,152,166,137,74,69,195,234,106,17,75,75,5,156, +59,119,22,47,189,244,18,94,122,233,36,86,86,86,32,8,20,163,163,35,216,190,125,18,163,35,131,110,248,6,245,129,86,148,36,200,146,4,73,114,158,75,162,179,76,20,171,254,173,86,155,64,195,250,192,220,184, +113,219,120,42,109,124,216,1,75,181,172,101,160,77,203,111,109,148,126,170,246,5,72,168,86,21,3,183,113,170,109,93,176,13,10,114,177,65,197,49,14,241,26,49,104,90,177,230,7,96,41,2,144,91,5,219,26,186, +175,19,90,16,12,75,72,11,182,186,97,128,217,38,66,84,236,127,151,224,199,209,2,128,174,235,126,215,177,36,51,116,29,133,149,21,252,197,95,220,7,0,120,231,246,183,199,253,202,235,102,65,240,180,76,211, +77,136,115,218,250,53,19,8,239,197,210,250,235,178,140,88,176,245,218,6,18,74,221,41,118,39,25,209,1,91,174,148,113,21,113,253,212,90,65,96,176,109,199,207,162,45,128,73,18,108,155,97,215,101,179,24,31, +27,195,137,231,95,196,233,211,11,40,22,139,56,114,228,40,142,30,125,6,217,172,51,24,144,101,217,245,39,113,171,72,88,208,117,29,229,114,25,165,82,9,140,217,16,69,9,219,182,109,197,224,96,22,219,183,85, +19,238,60,245,59,22,104,37,217,241,181,224,170,225,84,168,14,28,184,74,203,141,219,165,3,189,105,64,50,37,191,213,0,109,26,126,107,208,173,44,37,209,134,214,19,5,220,112,8,94,240,51,77,130,109,176,170, +85,35,135,4,157,97,219,54,228,140,138,74,89,75,116,70,218,74,8,73,63,90,116,234,191,149,18,95,213,162,13,241,213,18,130,255,219,46,140,41,74,214,81,106,3,50,54,99,22,12,195,134,36,59,32,43,203,50,202, +149,74,181,82,66,192,158,125,246,167,152,152,152,64,185,82,198,242,242,210,134,56,105,4,81,4,204,250,10,107,61,56,166,129,68,49,15,108,189,117,121,48,43,8,18,44,203,112,225,202,121,108,187,211,230,92, +41,227,42,226,186,170,181,140,65,16,4,55,46,57,92,32,124,104,104,0,215,188,226,74,236,218,53,139,249,249,51,40,20,86,176,178,178,134,98,177,136,149,149,2,76,179,154,160,231,197,66,11,2,133,44,203,152, +154,154,196,192,64,22,148,18,108,219,186,21,128,119,188,19,39,62,217,5,90,65,20,125,223,202,178,4,73,146,33,203,146,31,230,33,8,162,59,112,224,42,45,55,110,220,226,195,14,210,242,91,146,58,27,78,24,99, +169,33,54,13,191,213,112,49,9,3,110,108,200,40,171,130,109,112,159,162,57,40,73,96,43,54,227,16,74,41,192,156,2,237,165,210,90,242,104,160,17,241,183,48,58,169,75,248,49,42,108,48,230,181,246,181,90,197, +182,92,46,65,16,36,216,182,25,114,150,36,73,225,81,141,109,66,215,45,200,178,10,211,52,177,182,86,196,151,238,251,50,42,149,10,222,249,78,71,149,85,213,44,42,21,39,206,177,92,214,160,40,170,11,206,10, +84,69,109,24,126,144,81,20,156,58,117,218,175,120,112,234,212,105,192,237,44,54,55,183,183,243,96,219,1,229,215,83,106,235,189,102,154,58,87,202,184,138,216,119,106,45,99,130,59,136,173,237,136,51,72, +6,176,119,207,229,208,117,29,107,197,18,10,203,5,20,75,26,42,149,138,163,136,91,22,8,113,226,139,37,81,132,162,42,24,28,28,128,36,138,213,242,102,126,57,52,199,95,130,232,132,115,72,17,223,134,128,86, +244,18,242,184,74,219,215,144,145,208,69,201,27,40,165,17,119,250,101,63,184,95,186,239,151,164,245,50,86,15,94,99,222,212,77,160,101,45,40,198,41,249,45,172,198,178,16,215,213,168,182,9,225,8,141,192, +86,172,39,89,215,115,136,156,81,234,43,182,117,138,1,183,112,23,170,145,176,235,213,172,141,42,182,64,109,117,130,56,176,173,253,90,1,149,138,6,66,4,168,170,226,47,59,118,236,24,94,124,233,20,46,187,108, +39,70,71,70,81,169,132,171,6,100,50,25,191,201,130,7,180,229,160,175,26,220,155,134,135,135,112,199,91,111,199,240,200,48,54,130,121,241,181,64,53,129,44,4,206,174,66,203,149,50,174,34,246,139,90,75,41, +96,219,158,34,206,188,73,171,48,248,70,234,43,139,162,136,129,92,22,150,101,193,178,44,55,196,195,253,93,192,106,174,63,161,228,63,90,173,30,225,37,219,121,106,120,208,183,146,228,132,120,132,227,149, +131,53,128,57,220,246,147,61,245,196,143,184,19,184,95,226,168,181,83,210,108,83,223,151,150,223,26,193,108,183,249,205,255,74,194,98,153,46,9,108,163,252,22,151,177,47,38,141,30,156,11,117,178,67,146, +128,54,41,43,175,149,145,79,168,11,88,140,131,60,71,212,47,229,21,95,250,43,14,116,45,203,0,165,34,24,179,156,239,97,150,243,93,204,153,98,95,92,92,194,215,191,241,0,142,31,63,1,2,224,178,157,51,168,84, +202,88,94,90,194,200,232,104,199,206,135,243,231,206,227,212,233,121,220,124,243,77,13,223,27,108,124,208,15,230,193,171,32,72,137,141,31,184,82,198,85,196,190,80,107,221,1,132,16,115,57,12,53,11,17,4, +8,134,0,65,112,26,178,120,80,107,217,54,152,59,120,136,254,54,33,40,118,155,86,132,161,86,116,226,147,253,120,229,234,50,15,104,5,65,224,37,188,250,216,254,249,219,223,193,157,176,142,126,33,68,112,238, +213,29,176,164,122,238,235,193,191,177,106,103,35,149,182,73,126,75,2,218,94,243,91,53,212,128,197,206,198,71,193,22,73,21,172,2,224,43,198,109,60,99,241,1,194,65,135,212,151,175,219,79,24,75,74,16,11, +102,131,49,48,40,25,167,211,87,165,162,33,147,81,97,51,6,2,192,112,75,87,69,193,182,158,106,235,60,14,159,36,249,252,34,158,127,254,36,102,103,118,192,182,25,22,22,206,32,159,207,99,102,122,6,32,20,153, +140,2,85,205,98,113,113,17,203,203,75,24,25,113,224,246,103,63,251,25,20,69,193,210,210,34,70,71,199,124,197,54,173,45,47,23,112,218,13,63,8,218,150,201,45,16,5,226,171,159,105,74,106,117,28,92,77,51, +20,182,96,153,102,44,220,122,9,104,222,197,162,83,74,25,136,0,189,162,109,42,165,140,171,136,189,85,107,125,21,27,128,29,3,182,132,16,200,25,5,154,86,130,156,81,161,149,138,16,4,138,140,226,228,20,88, +182,5,219,178,35,85,38,34,51,24,110,85,8,234,118,97,243,154,86,56,37,209,68,63,196,67,116,253,46,136,66,13,208,210,128,79,185,74,203,141,91,240,62,222,46,208,18,72,114,102,29,32,54,117,221,174,150,168, +56,21,191,213,83,103,27,241,91,42,207,34,21,191,53,82,109,163,96,27,199,111,81,192,19,27,198,97,196,56,36,26,79,27,231,140,102,18,198,154,253,225,131,157,38,202,149,146,239,136,114,185,4,66,136,127,112, +122,235,144,221,231,166,89,105,24,95,235,253,127,252,216,113,140,140,140,224,11,255,247,151,0,0,239,184,243,159,3,0,22,22,22,160,105,26,242,249,124,205,118,169,106,214,127,172,40,10,178,89,231,185,94, +209,49,54,62,138,183,189,237,173,152,153,153,78,181,255,94,89,175,168,13,13,13,65,204,41,177,49,172,189,178,104,28,174,109,155,137,170,109,210,118,182,170,148,201,114,6,150,101,131,192,222,180,74,25,87, +17,123,3,182,62,124,198,128,45,1,129,101,153,144,37,9,166,105,66,81,50,0,113,6,13,4,182,59,112,8,212,0,78,24,56,80,63,241,143,248,77,43,188,4,64,207,223,142,63,69,95,253,142,2,45,15,59,224,198,173,43, +120,9,67,175,132,192,182,63,183,178,142,74,219,2,191,37,170,179,105,187,141,181,194,227,53,161,5,238,182,248,213,188,106,85,219,56,176,109,20,95,235,75,64,137,36,94,199,33,44,193,33,173,180,206,173,127, +3,66,141,36,237,61,86,212,28,42,229,18,178,185,65,148,74,107,200,101,157,255,189,142,89,166,225,64,172,174,151,33,203,74,168,42,66,146,82,11,0,127,118,207,159,227,233,195,71,241,193,15,254,58,52,77,131, +170,170,17,136,179,80,210,74,200,186,203,51,153,12,138,197,34,50,153,12,42,149,10,52,173,228,194,127,9,51,51,51,152,152,152,0,0,76,140,143,167,222,239,157,59,103,99,195,15,162,83,36,30,56,246,106,148, +25,167,218,82,42,198,130,45,165,98,13,244,54,163,148,121,208,229,21,248,23,4,10,198,40,44,219,130,36,137,208,245,202,166,82,202,218,245,141,15,181,92,69,108,94,29,15,248,58,172,130,91,160,148,194,178, +44,152,150,9,81,204,128,128,193,178,76,7,106,89,120,240,80,51,112,8,52,167,240,98,144,169,91,131,88,8,37,220,5,194,57,98,128,150,27,55,110,157,179,106,184,193,250,38,171,177,22,146,178,88,3,1,176,29,160, +109,165,117,110,67,201,22,117,90,226,250,48,202,154,6,219,36,126,171,137,169,77,227,16,85,205,193,182,109,104,110,151,49,212,11,73,96,45,74,239,8,183,196,245,0,215,251,188,170,230,80,214,74,240,58,162, +101,50,170,191,125,146,148,129,40,10,48,244,42,205,235,122,57,182,220,87,28,220,106,37,45,180,29,167,78,157,244,31,107,154,243,90,177,184,134,82,169,136,76,198,129,201,177,177,49,247,245,82,232,185,40, +52,95,93,96,120,120,24,59,103,99,14,230,24,56,9,194,110,175,193,214,11,59,72,82,106,147,150,167,85,202,188,140,124,74,28,32,48,77,1,150,101,67,130,8,203,178,64,41,217,116,74,89,59,190,17,69,27,150,101, +114,21,49,245,181,133,213,128,45,163,66,88,9,167,78,83,22,65,160,200,208,44,244,138,134,220,192,128,211,58,220,118,6,184,141,212,112,7,84,137,59,248,16,252,196,61,167,198,47,13,151,70,35,241,73,119,28, +108,185,113,235,196,121,47,64,148,36,24,186,238,33,86,127,170,181,44,5,228,198,85,150,232,0,208,178,58,32,219,116,76,109,164,1,108,108,75,220,22,193,22,9,97,8,98,82,25,174,196,29,240,66,34,40,129,146, +81,66,89,253,73,48,219,110,40,66,245,38,68,1,216,80,213,172,15,143,209,31,89,146,51,208,245,50,116,189,246,70,16,87,233,32,169,10,130,247,131,159,63,127,46,162,140,214,130,218,158,189,187,177,123,247, +229,24,26,28,12,45,47,151,203,45,237,235,240,200,48,202,149,10,142,28,57,138,253,251,175,193,145,35,71,113,228,200,51,184,234,202,43,112,205,53,87,54,132,204,94,89,18,180,118,75,41,19,165,12,76,195,81, +103,41,5,4,65,217,180,74,89,179,190,161,2,117,213,89,177,10,181,92,69,108,10,108,189,231,182,77,65,5,103,223,108,219,132,154,117,6,241,149,178,6,73,150,64,169,4,48,79,9,23,125,37,60,46,134,44,168,136, +19,226,214,119,38,213,193,68,168,206,47,136,31,159,28,92,7,7,218,128,228,3,198,93,193,173,69,163,16,37,47,7,197,14,168,182,189,3,218,122,252,211,142,74,219,44,191,57,9,240,141,19,203,58,201,111,209,230, +10,8,130,105,32,28,129,196,201,177,77,240,155,152,36,91,199,86,53,136,56,132,82,10,198,130,23,244,234,243,70,14,143,115,82,220,6,135,61,195,92,194,71,72,113,101,140,129,18,226,199,250,194,85,162,226,187, +142,57,222,138,11,67,136,253,206,132,154,178,251,246,205,97,199,142,237,24,159,216,130,217,217,25,0,192,202,202,74,58,160,141,41,67,17,133,225,7,31,124,8,175,191,249,38,156,59,119,30,71,142,60,131,59, +222,122,59,238,253,194,255,194,214,173,91,176,101,203,68,236,231,218,173,57,219,140,25,70,123,49,189,105,149,50,203,114,58,108,9,2,133,101,217,16,104,198,129,54,102,131,185,106,228,102,83,202,90,241,141, +96,9,176,109,123,211,251,166,155,131,135,106,9,52,247,26,67,29,85,154,217,38,68,81,134,45,137,190,2,46,73,18,108,102,3,9,245,56,131,126,6,113,252,235,135,123,208,160,239,169,175,188,19,158,20,22,107,213, +169,98,238,15,110,109,201,48,145,99,170,210,157,99,42,37,248,37,190,141,181,246,225,102,249,45,86,157,77,209,105,44,9,196,211,52,206,138,133,219,72,56,66,16,108,25,97,181,85,174,64,144,192,189,213,58, +181,161,47,143,219,169,168,67,2,175,103,179,3,33,135,216,182,29,219,152,33,13,229,39,58,193,123,205,43,181,21,136,235,13,38,199,73,146,2,195,40,251,219,153,4,182,81,174,76,174,89,27,222,30,69,201,224, +93,119,189,3,7,14,188,18,19,19,99,142,130,69,41,108,187,118,187,75,165,146,159,40,150,250,92,176,109,16,74,113,254,220,121,236,220,57,139,217,157,179,120,228,145,71,177,127,255,43,48,60,50,140,171,174, +186,18,23,47,94,244,161,54,90,255,181,167,74,109,7,74,169,120,62,167,130,4,219,50,98,149,50,71,45,35,110,53,0,27,54,179,33,88,20,204,61,214,130,49,163,193,227,71,148,50,176,76,125,195,42,101,105,84,196, +86,125,195,85,196,250,112,27,244,183,7,183,78,59,105,1,148,50,48,70,93,223,86,47,250,117,161,22,168,169,16,81,15,102,185,58,27,133,217,106,102,122,82,153,64,110,220,146,79,110,193,191,95,5,195,244,54, +84,130,88,29,158,106,135,223,226,128,182,213,38,90,245,58,140,53,234,28,86,211,18,55,16,138,16,5,219,168,216,24,229,55,49,14,223,146,154,40,4,99,48,226,28,226,149,15,106,212,113,172,221,27,189,86,114, +98,105,115,185,65,39,110,48,80,171,149,185,37,189,66,49,26,72,232,33,156,36,105,39,12,129,202,229,10,142,159,120,30,217,108,22,217,236,126,12,14,14,64,215,43,16,197,218,182,185,94,76,109,83,251,71,41, +0,167,163,216,242,114,1,0,112,252,216,9,188,227,29,63,15,67,47,227,197,23,95,194,158,61,187,170,16,27,169,44,208,110,56,64,175,84,90,119,66,61,116,163,10,30,148,81,165,140,122,177,161,204,25,64,216,212, +105,74,16,84,202,8,17,34,251,207,32,102,228,13,173,148,165,81,17,211,248,134,171,136,173,129,109,28,220,70,175,129,73,254,141,83,197,189,81,52,135,217,84,191,70,245,122,195,65,150,91,7,5,24,211,48,2,97, +8,253,9,176,117,85,217,122,42,109,155,252,86,239,243,173,68,254,52,108,139,27,81,93,19,249,45,137,229,98,212,90,177,17,229,199,120,172,174,220,237,109,100,54,55,128,226,218,106,2,204,210,134,53,230,226, +27,41,56,143,179,217,156,31,83,235,169,77,182,101,213,150,190,32,141,128,54,94,173,173,103,135,15,63,141,195,135,159,6,190,8,252,254,135,255,11,134,134,6,145,203,229,32,203,106,199,14,240,169,169,73,168, +138,130,207,126,246,243,184,254,85,215,97,120,120,8,31,255,248,39,144,205,229,112,89,92,6,89,240,132,53,77,136,221,14,67,104,91,165,181,107,70,205,141,148,50,103,26,216,142,85,202,8,161,176,44,19,130, +32,135,42,49,200,25,37,84,31,207,182,205,13,169,148,181,227,27,174,34,118,22,110,225,93,152,3,73,172,245,110,72,222,133,216,91,101,146,47,57,204,214,222,166,157,4,30,133,67,45,183,142,40,181,222,177,212, +111,64,27,71,167,13,85,209,148,42,109,179,252,22,223,68,43,254,187,83,93,67,35,109,113,131,112,91,55,156,32,4,103,181,170,108,61,181,86,140,163,252,52,113,24,73,14,9,182,129,141,83,105,7,6,134,176,182, +182,210,80,221,168,157,46,165,80,179,42,168,171,102,230,114,3,161,29,161,84,64,185,180,26,254,76,32,62,35,14,142,235,169,181,193,145,10,137,137,187,201,229,6,176,188,92,192,242,114,1,159,255,252,189,120, +229,129,253,248,103,183,223,158,24,131,219,172,221,122,235,45,120,211,155,223,8,67,47,195,52,117,124,240,131,191,158,234,115,249,197,69,76,77,78,110,152,235,77,240,134,213,172,82,70,168,232,198,117,51, +24,122,217,47,33,6,136,126,185,171,42,148,17,120,209,25,27,17,216,184,138,216,63,131,137,232,128,59,205,9,31,110,133,76,234,254,174,220,106,193,54,238,122,193,141,91,90,17,166,26,114,160,172,223,102,212, +169,10,149,250,179,41,84,218,118,248,45,4,180,44,25,100,155,230,183,8,220,214,3,219,96,242,88,82,124,109,136,223,34,87,96,17,49,59,23,37,245,102,28,226,86,201,112,21,213,1,20,139,171,62,200,230,114,131, +46,244,82,228,178,89,20,139,171,32,84,0,179,171,202,159,154,205,1,0,180,82,17,0,69,54,155,13,195,73,160,251,68,212,49,178,172,66,215,181,154,58,104,190,99,98,84,91,47,105,44,244,90,138,35,206,43,237,5, +0,165,146,134,167,15,31,197,107,110,188,17,163,163,99,29,57,1,76,83,111,233,115,89,85,237,248,201,24,44,121,82,13,174,239,84,22,178,19,138,208,140,82,230,124,166,154,24,199,24,192,196,76,236,8,60,168, +144,17,200,190,138,187,81,129,141,171,136,235,235,243,184,65,113,220,133,62,201,103,28,98,91,1,91,14,178,220,90,56,111,169,8,130,222,38,80,119,129,132,19,1,55,170,198,118,130,223,130,32,92,11,226,105, +19,224,88,242,245,178,14,191,53,4,91,196,132,33,184,159,9,242,155,88,183,144,47,171,255,90,208,33,182,109,131,80,18,174,143,6,55,145,140,49,228,114,78,185,171,98,169,232,52,51,32,64,110,96,208,95,135, +166,105,200,102,179,126,98,139,154,205,65,160,66,242,13,131,5,226,53,152,179,76,16,4,48,6,100,20,21,134,94,110,208,14,55,249,181,55,188,225,245,40,5,160,53,14,12,236,0,136,51,48,247,253,12,90,57,220,172, +161,92,174,192,208,117,72,178,220,146,122,25,180,11,23,46,34,155,203,34,87,39,1,77,85,85,63,230,181,19,181,107,107,129,182,67,82,116,213,147,77,43,101,0,131,36,43,161,99,66,16,156,109,244,146,229,162, +23,50,47,78,212,208,173,77,161,148,113,21,177,191,6,22,220,95,220,184,245,25,15,218,166,115,231,54,157,251,65,180,189,123,255,12,219,88,131,231,245,62,219,25,126,171,169,97,219,98,178,88,84,52,169,87, +1,33,202,111,73,144,26,218,159,132,215,130,84,34,198,238,124,130,108,237,191,53,66,242,12,204,7,218,223,249,221,255,214,144,226,131,55,224,82,201,137,141,109,182,82,0,0,252,225,31,124,184,26,171,193,170, +55,149,74,89,11,183,239,76,8,67,8,14,134,130,106,237,43,95,185,31,7,14,188,18,134,97,226,224,193,27,113,232,208,15,83,143,168,202,90,41,12,181,149,50,206,252,236,101,136,162,128,19,199,95,192,193,215, +222,8,37,211,90,214,229,247,30,121,20,87,93,185,15,87,94,121,69,226,123,138,174,63,13,195,232,18,208,134,15,219,94,212,141,140,83,202,226,146,149,188,223,86,148,164,68,192,144,164,204,186,182,24,238,133, +111,226,0,139,171,136,220,184,113,187,164,6,159,84,4,37,196,79,34,239,123,197,182,137,91,105,93,120,109,129,223,188,23,27,241,91,39,45,137,223,28,224,13,199,215,198,133,33,36,193,174,24,218,185,58,84, +30,45,206,27,125,255,239,252,78,58,103,120,27,94,42,149,160,105,26,242,249,60,166,167,167,221,130,250,52,245,15,74,8,241,127,128,63,252,195,15,59,224,101,26,177,106,85,77,153,136,200,129,145,84,21,33, +151,203,226,253,255,242,95,224,173,255,236,54,8,130,128,229,229,2,40,21,66,42,109,156,45,45,229,113,230,204,25,236,216,177,195,95,102,154,22,158,252,241,83,216,179,231,114,204,204,76,215,253,124,59,201, +17,249,139,23,144,205,230,220,100,174,214,3,226,235,119,89,97,205,159,133,109,91,53,76,129,16,2,211,168,248,221,97,130,199,150,220,96,192,96,110,34,160,109,6,76,57,176,114,227,198,237,82,50,102,155,176, +128,117,109,35,223,222,14,212,111,168,80,143,199,186,197,111,157,217,173,120,126,139,139,149,69,92,153,175,36,126,115,217,86,172,197,21,150,152,45,231,83,116,36,24,57,232,144,74,165,2,195,48,98,251,205, +71,173,80,40,96,101,101,5,43,43,43,48,12,195,239,142,36,8,66,99,196,161,20,146,36,65,20,69,252,199,255,248,123,248,163,63,252,125,136,130,136,74,96,218,53,92,114,54,92,13,161,153,27,253,248,248,24,36, +73,194,150,45,19,120,223,251,126,17,135,14,253,16,199,143,159,168,251,25,69,81,112,230,204,153,218,161,68,10,43,151,203,120,249,103,47,67,211,180,80,108,237,133,11,23,129,43,247,53,252,124,48,222,183, +93,152,77,130,235,222,102,37,19,120,37,192,156,246,134,64,189,176,133,78,88,180,6,48,55,110,220,184,113,219,120,38,8,210,37,179,175,189,228,183,118,44,202,111,31,255,248,71,194,51,233,32,97,100,138,84, +67,168,81,107,3,38,70,119,50,137,172,89,130,3,61,135,56,77,23,74,77,57,195,11,57,40,149,170,83,246,245,128,54,90,72,190,82,169,192,52,77,72,146,132,15,253,214,239,226,19,255,227,15,18,71,54,137,213,13, +98,32,184,94,236,237,193,131,55,226,224,193,27,177,176,112,6,178,36,249,245,100,163,7,78,62,159,7,165,20,229,178,6,69,105,46,121,171,80,88,193,163,63,120,12,23,46,92,192,210,210,98,232,53,53,109,152,6, +17,90,58,216,60,160,141,170,180,253,50,210,245,98,147,13,93,111,169,52,75,176,228,87,189,101,254,9,34,202,45,39,237,113,227,198,141,27,183,245,53,203,114,102,112,215,51,252,32,109,229,131,52,241,180,113, +177,177,235,193,111,237,152,109,219,97,126,251,208,239,226,19,159,248,131,218,174,100,174,195,26,241,91,16,130,197,250,196,95,159,242,219,117,72,46,231,84,58,80,85,53,85,232,1,165,20,182,109,135,192,215, +178,44,255,181,187,63,248,219,248,227,63,254,35,84,202,90,13,168,122,71,83,48,147,46,201,73,181,201,54,181,54,61,189,3,146,40,98,235,214,41,188,251,93,239,192,183,31,250,110,236,251,52,173,20,15,181,117, +90,229,78,77,77,226,189,239,253,197,144,18,90,44,149,240,228,19,63,110,226,44,178,96,24,128,148,2,252,234,135,26,212,3,204,94,116,249,33,177,219,214,76,226,157,103,126,209,109,211,105,84,33,201,74,53, +121,192,172,54,175,240,70,246,130,32,249,13,49,184,113,227,198,141,219,198,52,219,54,33,196,224,78,199,27,49,52,89,171,43,174,124,86,42,48,78,179,222,4,126,43,149,74,32,132,224,215,127,227,67,24,27,27, +235,57,208,134,7,28,85,126,251,141,223,248,45,124,230,79,62,81,87,173,109,200,111,81,168,173,145,174,27,80,190,103,237,56,196,3,219,232,78,58,64,232,192,233,192,192,64,8,108,227,28,99,89,150,243,26,171, +67,243,132,212,93,150,250,160,13,124,70,16,4,220,122,235,27,112,235,173,111,64,169,84,66,62,191,136,98,177,132,241,241,113,127,223,188,100,184,84,39,159,101,249,49,64,132,138,56,126,236,56,30,122,248, +59,56,125,234,52,94,117,253,117,120,213,245,215,213,71,64,66,67,96,155,38,174,54,9,104,131,213,19,162,149,20,188,231,221,3,90,39,9,173,147,173,12,189,139,151,7,177,222,99,203,52,67,74,45,141,204,22,112, +181,150,27,183,141,96,181,229,1,185,113,11,222,179,130,98,76,95,91,11,221,87,211,242,155,109,155,96,140,33,159,207,131,49,134,98,177,8,211,52,49,49,49,177,46,187,26,228,183,184,190,0,177,106,109,157,16, +132,150,101,40,79,165,173,84,42,29,35,124,219,182,145,207,231,145,207,231,33,8,2,6,6,6,48,48,48,16,2,221,122,102,154,38,222,246,243,119,173,219,113,56,56,56,136,203,46,219,137,185,185,61,120,243,155,110, +197,240,240,48,0,130,108,86,77,85,221,193,118,247,179,88,42,225,7,143,62,134,143,127,252,147,120,232,225,239,0,0,222,247,190,95,196,59,238,124,91,221,114,94,206,111,111,131,49,187,35,39,111,240,243,209, +117,117,187,152,181,3,179,221,75,110,10,78,69,121,143,171,205,27,34,120,77,41,68,81,222,152,201,6,220,184,109,106,11,94,35,56,208,114,107,2,166,76,51,212,217,212,208,203,129,191,205,45,98,252,219,127, +119,55,52,77,195,83,79,61,133,181,181,53,104,154,214,84,131,133,110,152,109,219,248,192,7,238,110,123,61,98,34,241,215,46,140,141,221,240,106,162,182,99,197,162,83,187,54,159,207,35,151,203,129,49,134, +181,181,53,255,245,82,169,132,108,54,27,82,108,227,108,199,142,29,254,231,88,82,194,24,146,187,132,121,34,236,99,143,61,142,197,165,37,220,252,186,215,226,251,223,63,4,66,8,110,186,233,32,182,108,73,55, +146,145,36,9,183,188,225,245,56,120,240,6,172,174,174,224,194,133,11,32,46,48,69,85,91,102,219,78,71,52,87,29,180,44,3,249,252,18,190,246,181,175,227,166,155,110,196,245,215,95,135,239,61,242,104,83,254, +84,213,108,87,129,48,14,126,59,173,216,246,188,224,186,27,131,92,15,108,211,14,174,184,113,227,86,223,188,243,44,46,150,157,184,231,98,184,149,122,84,133,37,254,224,151,55,103,224,214,236,189,165,81,151, +186,86,194,219,122,110,44,105,113,237,11,154,166,65,201,40,88,91,91,241,195,235,84,85,69,165,82,65,177,88,196,244,244,52,242,249,60,178,217,44,20,69,241,75,102,54,83,149,170,93,219,187,119,111,13,80,215, +132,32,212,225,55,47,31,95,76,164,241,20,148,110,219,118,199,84,218,106,251,219,28,214,214,214,144,207,231,253,228,177,184,48,132,208,136,203,173,152,32,73,18,182,111,223,142,140,162,6,226,106,19,200, +181,102,113,85,222,126,236,135,63,194,137,227,207,227,138,125,115,120,224,155,255,8,85,85,49,55,183,39,53,212,122,151,92,74,129,145,145,97,140,142,142,160,88,44,97,239,158,221,33,223,69,167,185,189,108, +251,157,59,119,226,35,31,249,47,120,226,137,31,227,111,239,255,26,158,124,226,199,40,21,75,152,152,152,72,181,13,170,170,118,116,218,190,87,96,187,158,74,104,154,216,99,65,16,96,243,138,8,220,184,117, +196,130,177,236,193,48,39,230,183,53,149,34,48,162,187,96,75,67,208,209,202,181,167,183,213,91,184,245,35,216,110,24,139,176,88,185,92,66,70,201,162,82,169,192,178,12,168,106,181,11,171,170,230,80,46, +151,161,100,50,168,84,42,144,221,243,68,85,212,80,67,5,175,73,147,101,89,88,92,92,196,248,248,184,207,89,138,162,96,97,97,1,51,51,51,85,86,233,1,216,78,77,77,193,52,205,198,190,104,192,111,98,144,138, +187,101,158,83,138,197,162,15,174,113,239,25,31,31,7,224,84,69,56,126,252,184,255,60,169,68,149,101,89,126,173,91,85,85,177,111,223,62,76,77,77,37,3,109,162,159,106,179,235,188,209,142,109,91,40,22,215, +234,126,94,206,168,208,43,26,100,89,129,238,158,44,122,228,164,201,229,178,184,237,182,55,133,94,147,72,198,143,213,12,150,143,58,127,238,44,202,101,29,215,95,127,29,174,191,254,58,20,223,247,139,120, +242,137,31,227,158,207,223,139,119,190,227,231,235,54,95,24,27,27,95,63,48,76,209,163,189,55,201,101,253,13,239,220,184,93,138,22,60,119,108,219,132,173,59,48,27,76,224,161,84,76,204,82,15,86,62,169,237, +150,152,172,220,38,157,179,27,253,90,196,237,210,51,198,152,175,180,122,179,28,165,210,154,15,182,229,114,25,138,162,0,140,33,147,201,64,211,52,100,20,37,192,33,131,208,52,13,11,11,11,88,94,94,134,162, +40,62,196,58,252,48,230,55,197,186,112,225,130,91,175,63,231,172,19,72,85,110,117,61,124,18,228,183,150,106,92,176,38,139,238,107,154,134,92,46,231,135,17,92,184,112,1,227,227,227,62,253,199,85,63,200, +102,179,190,28,30,44,249,181,182,182,134,108,54,235,175,115,97,97,1,170,170,250,109,118,13,195,64,38,163,162,82,209,58,226,176,92,110,160,46,212,202,178,2,203,182,33,103,212,166,215,237,1,109,240,162, +43,201,10,76,211,198,169,211,243,152,153,217,238,108,67,54,139,215,191,254,117,120,253,235,95,215,112,157,35,35,35,125,11,127,146,172,128,217,157,137,247,93,47,51,221,78,109,252,70,200,141,91,243,38,8, +82,205,12,85,232,245,20,101,151,36,89,246,207,63,15,110,131,51,83,209,107,75,189,132,87,62,80,229,22,103,157,104,49,223,181,123,171,36,213,16,152,166,21,3,160,91,61,23,20,69,113,226,101,1,40,25,103,127, +20,85,241,195,52,21,69,193,242,242,50,182,111,223,238,179,88,62,159,247,195,36,167,167,167,161,170,42,46,94,188,8,74,105,79,146,201,18,195,11,82,90,75,80,219,204,23,122,229,34,60,240,244,254,0,132,192, +246,194,133,11,161,186,181,222,227,124,62,239,131,241,249,243,231,177,184,184,136,233,233,105,44,46,46,162,88,44,250,206,119,42,15,228,177,178,178,210,49,160,245,190,151,210,184,139,48,133,28,115,208, +7,213,218,102,78,160,168,157,58,117,26,231,206,157,13,255,88,162,140,215,30,124,117,83,97,16,253,164,210,0,104,190,68,86,115,125,43,186,7,179,166,9,209,189,225,154,6,15,65,224,198,173,21,163,29,83,122, +104,170,100,158,232,123,146,64,69,146,20,24,6,7,91,110,113,247,101,210,243,112,190,70,166,87,42,137,175,149,74,107,16,168,8,155,49,216,110,141,94,198,28,21,215,9,25,173,78,241,47,47,47,135,62,91,46,151, +193,24,67,54,155,197,232,232,40,242,249,60,20,69,241,121,108,109,109,173,97,110,83,187,70,218,188,225,139,64,184,103,124,39,205,131,78,79,238,246,200,223,131,90,79,109,165,148,34,155,205,250,163,4,207, +129,140,49,140,143,143,227,236,217,179,56,123,246,172,191,46,0,88,92,92,12,65,176,166,105,24,31,31,119,99,35,9,154,105,225,26,87,214,43,173,99,117,189,12,65,148,107,46,144,186,222,60,88,11,130,228,159, +72,195,195,195,216,125,249,108,205,235,217,92,54,241,80,232,87,144,109,243,8,239,11,243,128,214,57,79,120,150,53,55,110,27,99,48,45,167,203,100,39,92,177,229,150,172,172,84,143,11,234,47,91,15,208,245, +88,45,8,166,65,126,163,84,4,8,144,113,67,117,138,197,170,0,227,53,161,160,84,196,150,45,91,240,242,203,47,135,214,237,193,43,99,12,11,11,11,208,52,13,170,234,196,226,46,45,45,97,207,158,61,125,249,235, +68,249,77,76,4,90,66,26,38,139,217,182,93,23,136,85,85,245,65,21,168,42,179,185,92,14,197,98,209,47,223,229,73,220,249,124,30,139,139,139,62,180,106,154,230,199,225,2,192,202,202,74,100,68,82,2,99,12, +134,97,96,215,174,93,16,69,17,99,99,99,245,129,54,161,46,109,82,189,90,219,182,144,203,197,141,76,108,232,122,37,48,114,210,252,120,19,73,106,13,230,188,184,90,211,52,49,50,50,28,27,59,27,27,7,70,132, +84,137,78,125,117,153,112,195,16,130,202,45,179,109,16,74,253,255,251,211,220,237,38,66,36,59,155,27,55,110,245,6,236,157,134,85,239,90,153,100,193,107,100,63,79,39,115,219,72,214,251,240,57,211,52,97, +154,102,108,60,107,148,191,108,219,4,3,67,69,71,98,18,191,7,196,132,16,191,161,149,167,200,150,203,101,20,139,69,63,44,193,171,76,229,229,55,121,219,176,186,186,138,193,193,193,142,237,227,216,216,24, +182,111,223,30,170,122,213,42,191,209,248,65,43,137,29,201,122,101,30,66,112,82,7,124,41,165,88,88,88,192,153,51,103,0,132,19,190,60,224,245,194,17,242,249,188,159,129,231,253,149,74,37,191,100,88,16, +218,84,85,133,174,235,208,117,221,127,253,218,107,175,197,222,189,123,253,152,15,111,91,9,73,185,127,201,254,74,76,84,243,224,89,119,195,29,228,20,7,186,40,54,46,21,50,54,62,130,125,115,187,107,96,182, +230,68,34,130,243,183,1,225,202,52,245,26,112,37,148,194,208,203,125,222,197,139,186,199,189,213,212,133,237,82,234,63,206,141,91,205,89,211,165,4,19,49,18,131,107,232,21,255,47,122,222,114,21,150,91, +251,131,169,222,39,23,90,9,21,119,146,120,133,192,41,197,197,66,106,110,125,126,171,84,42,40,20,10,40,22,139,40,20,10,161,124,39,143,169,242,249,60,76,211,196,133,11,23,252,28,167,160,189,244,210,75,53, +194,99,90,187,226,138,43,48,61,61,141,29,59,118,132,248,13,77,240,91,195,54,185,141,236,15,255,240,195,248,237,223,254,47,16,69,17,150,101,53,21,190,16,12,75,8,42,185,94,21,131,197,197,69,148,74,37,232, +209,120,40,73,130,97,24,200,231,243,24,26,26,242,29,184,109,219,54,220,120,227,141,160,148,226,13,183,28,236,252,216,204,118,160,177,84,42,225,228,201,83,254,209,116,217,206,157,0,128,83,167,79,3,32,184, +98,223,21,78,61,56,5,56,113,226,4,0,96,118,118,218,95,207,252,252,2,246,206,237,3,109,48,165,94,42,150,240,131,67,143,187,240,103,96,104,104,216,31,21,237,191,230,21,24,30,25,118,166,202,12,195,241,137, +110,109,216,139,195,70,178,232,141,178,81,108,45,165,162,127,17,241,46,76,188,59,25,183,75,17,4,122,55,251,66,2,85,18,202,129,109,144,83,111,107,175,161,133,219,70,186,7,68,195,16,186,44,254,184,247,152, +124,62,15,219,182,81,46,151,18,107,169,135,97,181,62,19,124,241,47,62,143,219,110,127,59,36,73,130,105,154,190,170,91,40,20,124,214,1,224,55,101,80,85,21,165,82,201,207,101,242,102,208,199,199,199,253, +100,52,239,253,67,67,67,77,237,227,216,216,24,174,190,250,106,16,66,112,224,192,85,237,15,116,163,4,204,72,184,213,26,113,195,16,88,2,45,83,74,97,154,102,108,24,130,101,89,62,121,123,42,108,80,18,247, +28,17,172,71,59,54,54,134,103,159,125,182,102,67,85,85,245,33,86,211,52,95,161,221,182,109,27,126,233,151,126,9,115,115,115,88,91,91,139,143,143,141,25,161,196,45,107,100,39,79,158,198,125,127,245,21, +156,63,127,14,0,240,193,187,127,29,0,112,207,231,191,128,233,233,105,140,12,143,58,73,113,89,21,127,250,217,207,99,110,110,47,110,187,237,159,66,85,85,20,10,75,120,232,161,239,97,100,100,12,83,83,19,16, +69,57,228,179,224,104,44,155,203,226,186,107,15,64,211,52,88,150,129,145,145,49,255,181,140,146,217,20,128,88,247,132,236,219,240,131,112,214,154,232,14,40,156,88,60,175,134,102,213,4,81,172,105,205,200, +111,150,220,46,37,243,102,166,122,117,62,59,49,180,149,64,188,35,105,113,61,141,203,19,114,227,214,189,177,153,195,93,162,36,185,181,104,179,40,105,165,16,43,80,42,130,177,234,115,143,103,130,28,22,183, +204,91,62,62,62,14,81,20,81,40,20,192,24,243,235,218,42,138,226,55,193,242,18,240,61,126,43,151,157,115,97,97,97,1,217,108,22,243,243,243,80,85,21,132,16,76,79,79,195,182,237,80,82,117,26,160,125,203, +91,222,226,231,90,197,169,176,4,49,225,161,36,89,177,165,201,227,93,82,171,111,71,36,236,143,125,236,255,114,110,222,130,16,91,235,85,16,4,8,130,128,209,209,81,95,149,245,146,198,188,144,4,0,120,241,197, +23,241,226,139,47,66,211,52,44,46,46,250,5,131,131,22,148,181,163,64,251,218,215,190,22,178,44,99,223,220,206,16,176,214,48,43,33,13,19,192,226,64,55,88,253,224,226,197,11,160,84,8,45,43,149,138,208,74, +26,150,150,22,161,102,85,104,37,13,211,211,211,0,8,114,185,156,15,239,222,232,39,10,180,193,139,40,161,34,114,217,44,46,223,125,57,166,167,167,113,229,149,87,249,113,99,195,195,195,126,189,56,0,27,46, +142,54,141,9,130,4,211,212,67,45,11,251,73,113,138,198,107,87,219,5,203,129,99,72,240,187,34,249,3,60,247,55,228,97,8,220,184,117,251,60,205,184,179,42,78,214,122,187,9,61,60,22,151,91,83,48,218,204,219, +61,30,169,243,177,140,146,5,99,118,232,45,78,183,47,51,182,35,95,18,191,69,67,16,238,251,210,189,208,52,13,19,19,19,32,132,96,247,238,221,80,85,213,103,150,82,169,132,114,185,12,77,211,240,210,75,47,249, +241,182,154,166,193,52,77,172,172,172,192,178,44,172,173,173,249,21,174,182,109,219,86,211,53,181,17,208,94,125,245,213,144,36,9,51,51,83,33,126,67,43,252,6,128,38,197,202,70,65,143,36,56,238,83,159,250, +152,31,127,177,101,203,22,100,179,217,154,117,121,83,231,30,208,190,252,242,203,88,94,94,198,203,47,191,28,202,192,243,98,105,189,170,6,65,11,130,238,182,109,219,112,231,157,119,226,119,126,231,119,112, +243,205,55,67,16,4,108,153,24,76,173,210,198,189,30,124,11,73,116,151,215,69,205,242,67,18,188,117,44,46,230,1,175,190,26,129,187,15,110,204,109,0,204,188,70,20,132,82,80,65,240,255,60,160,245,226,96, +254,230,171,247,227,137,39,159,2,96,227,43,95,189,31,167,78,207,227,111,254,230,239,54,253,53,193,234,227,142,93,142,2,20,175,224,24,186,238,199,61,139,49,131,13,79,181,181,120,71,50,110,220,58,124,94, +150,99,106,98,103,58,154,157,30,155,211,192,237,18,182,230,42,224,4,25,164,30,247,70,73,43,238,173,130,40,67,16,36,40,106,14,106,54,135,108,118,32,21,227,196,45,255,246,131,223,64,185,92,198,248,248,56, +4,65,64,46,151,3,33,196,175,132,160,40,138,47,34,150,74,37,63,105,45,106,158,106,107,154,102,195,240,131,177,177,49,188,238,117,175,195,123,222,243,30,92,115,205,53,160,148,98,120,88,77,175,210,198,237, +91,224,45,98,156,83,67,33,8,209,42,8,1,217,151,49,7,226,62,253,233,143,227,3,31,184,27,182,109,99,114,114,18,59,119,238,196,232,232,104,205,6,188,240,194,11,29,57,156,118,238,220,233,87,59,176,44,11,147, +91,134,252,29,175,167,210,166,5,221,154,195,215,78,31,179,186,180,148,71,70,81,67,16,59,60,60,234,143,120,234,153,40,138,48,116,19,231,47,228,145,27,24,192,235,111,126,13,36,89,193,244,244,14,220,124, +243,77,168,148,43,56,125,234,52,102,119,206,94,114,55,45,66,197,212,83,26,221,84,128,226,65,55,3,192,246,111,172,94,101,4,211,168,62,230,83,152,220,184,117,75,28,19,186,222,21,51,58,136,229,198,45,28, +230,210,45,145,199,130,97,132,115,57,188,218,179,162,36,161,172,21,65,2,49,182,53,225,6,17,126,115,94,14,240,27,33,120,224,31,238,199,219,239,252,69,100,50,25,72,146,132,171,175,190,26,83,83,83,45,109, +239,228,228,100,195,170,8,83,83,83,216,182,109,155,211,118,222,182,49,50,146,245,153,178,158,74,27,199,160,177,28,149,232,12,15,112,93,186,141,198,214,70,223,255,217,207,126,10,96,192,31,127,234,79,253, +202,6,81,27,26,26,130,101,181,159,212,228,4,76,151,177,103,247,116,100,4,68,234,63,71,253,184,90,18,35,215,14,12,12,134,148,99,175,4,70,120,228,49,142,197,197,69,140,142,142,99,105,41,239,46,117,226,47, +61,21,59,155,117,202,98,172,172,44,195,182,167,19,179,129,9,21,97,153,22,20,37,3,47,58,228,205,111,190,21,64,124,60,237,165,96,130,32,193,238,193,77,171,61,208,13,23,232,54,116,22,80,108,165,72,210,10, +175,135,201,141,91,103,193,150,112,39,112,235,177,121,245,107,187,212,156,33,112,76,15,15,15,163,92,46,251,97,139,130,32,57,83,237,84,132,44,103,160,89,102,99,126,11,188,30,125,254,119,247,127,25,140, +49,252,187,15,124,16,3,3,3,200,229,114,45,157,131,182,109,199,178,95,200,107,140,65,215,117,236,216,190,37,4,175,181,188,134,230,248,45,4,181,145,94,5,65,181,214,121,12,159,246,9,224,62,15,92,76,152,219, +58,151,0,31,188,251,215,66,206,242,254,47,22,139,216,127,205,92,83,45,118,227,118,34,233,255,168,188,31,6,84,82,59,18,72,26,4,68,94,243,154,66,184,72,11,85,205,214,180,205,213,52,13,227,99,227,208,202, +26,146,131,99,8,24,115,96,216,52,117,200,130,10,219,5,124,203,50,252,169,45,81,20,49,57,53,137,239,61,242,168,31,167,57,53,53,9,192,233,50,182,255,154,87,108,234,203,68,210,20,31,237,243,109,140,94,212, +130,49,182,78,6,107,245,194,231,43,186,129,112,19,110,220,54,37,108,246,32,65,76,148,36,222,229,143,219,186,194,109,103,78,150,248,85,101,148,218,112,76,219,54,81,46,59,138,109,185,108,198,114,146,55, +147,30,226,55,226,124,9,99,49,239,37,4,159,251,236,31,199,242,91,117,79,89,221,29,200,100,20,63,215,167,17,191,85,195,137,73,141,160,72,34,128,22,140,61,174,81,105,35,252,38,70,253,24,74,96,138,194,110, +228,53,2,82,77,16,115,23,219,204,142,5,199,108,54,139,98,113,181,233,22,104,73,74,106,240,59,194,112,155,12,168,137,170,108,194,72,159,80,193,15,122,86,179,206,200,197,41,68,60,134,133,133,51,53,62,85, +21,21,101,173,228,66,112,252,126,122,149,12,130,74,93,52,121,72,81,20,236,223,255,10,124,225,222,191,192,206,157,179,200,40,25,28,63,118,2,175,190,225,85,24,30,25,230,215,144,13,102,78,149,132,176,50, +75,169,8,65,20,97,154,224,96,203,109,211,154,215,244,160,219,21,77,196,30,36,205,242,10,38,220,186,50,240,11,40,170,209,231,166,169,67,96,18,78,158,60,89,163,128,42,74,22,229,114,169,166,218,65,80,141, +77,126,205,249,166,184,4,255,184,101,65,72,174,103,178,36,167,99,174,0,156,134,56,174,14,191,213,123,45,248,76,140,126,137,183,211,182,101,131,10,180,234,100,151,246,67,97,8,17,176,117,90,176,209,234, +15,196,170,146,116,169,20,46,183,85,47,6,42,13,140,214,3,218,16,84,71,50,230,106,193,56,230,123,8,129,40,74,96,182,85,147,184,54,62,62,142,76,38,131,82,41,28,31,171,170,170,31,122,176,188,236,212,217, +205,102,179,126,168,130,166,105,32,36,254,162,110,89,70,77,56,194,254,253,215,96,110,110,47,206,159,59,15,0,120,245,171,95,21,170,124,176,209,205,50,77,8,235,28,35,219,139,27,122,210,115,219,54,33,128, +43,181,220,184,113,227,198,45,222,50,74,214,159,133,208,52,13,148,138,78,215,48,198,80,169,104,1,118,169,66,106,13,192,70,249,205,7,215,48,216,70,97,150,213,188,191,125,126,11,170,179,73,64,75,34,44,22, +226,183,40,203,197,240,155,232,173,132,197,65,95,66,24,66,16,108,25,179,65,8,245,119,122,109,109,13,106,86,13,125,161,247,99,120,5,129,147,70,2,237,128,109,35,160,141,42,187,245,84,91,192,137,129,205, +229,6,65,64,144,85,179,208,74,69,92,117,245,149,184,251,238,15,248,235,20,69,7,68,63,253,233,143,187,234,91,21,90,175,186,242,10,200,178,10,211,172,102,204,239,221,179,203,25,205,200,74,77,240,119,176, +182,91,97,185,128,35,71,159,9,189,126,234,244,188,3,187,110,243,133,141,108,166,97,128,49,11,182,110,94,66,25,197,20,213,140,89,2,184,3,156,164,26,183,220,184,109,42,53,170,175,187,4,114,227,214,9,1,163, +126,108,109,84,41,173,151,38,98,89,150,223,146,86,20,69,100,179,89,100,50,25,48,102,65,81,178,208,180,98,194,122,73,60,144,54,9,182,141,128,54,142,153,228,140,90,27,98,16,129,217,150,129,54,162,236,198, +197,210,122,38,38,133,27,136,162,24,31,134,16,248,53,8,128,146,91,127,214,3,219,96,73,47,155,217,238,244,189,93,23,88,211,194,109,18,216,6,129,54,50,116,105,176,14,196,174,79,20,37,140,141,141,251,197, +142,189,142,103,225,31,36,197,129,110,184,129,221,145,196,50,93,47,215,74,254,182,9,211,116,252,158,81,50,216,57,59,147,48,114,219,248,201,98,78,12,92,210,197,161,251,25,165,189,178,240,116,101,240,24, +96,110,107,227,228,41,83,42,72,96,182,29,27,186,192,141,219,70,50,175,140,225,102,177,96,162,167,36,43,96,140,193,52,42,252,135,190,228,205,73,28,147,164,76,205,253,94,78,43,222,184,172,37,10,98,40,36, +65,85,179,80,148,12,40,21,161,27,70,13,128,70,65,57,49,12,33,200,111,254,58,226,193,54,14,142,163,12,149,81,156,82,92,137,149,137,98,96,182,30,208,198,195,89,2,59,38,240,27,141,163,221,164,140,179,42, +53,87,73,217,41,212,91,244,27,51,8,130,224,59,70,43,105,32,96,46,120,10,129,114,91,173,253,5,41,61,90,186,43,236,36,146,232,196,122,143,61,243,186,103,36,14,5,154,52,211,212,83,181,70,245,14,12,69,81, +48,187,115,22,25,69,193,217,115,231,113,246,220,121,100,220,101,105,67,16,90,237,193,220,155,81,173,14,81,146,18,19,60,162,253,219,141,13,158,4,146,164,70,87,235,107,214,170,180,30,208,122,159,151,100, +197,137,195,229,205,27,184,109,48,179,54,97,91,104,73,86,170,221,210,220,123,8,63,55,55,175,53,51,163,24,172,75,239,61,214,245,50,24,75,78,41,171,23,171,186,186,186,134,161,161,65,72,146,4,66,105,108, +115,170,52,124,19,199,111,213,255,145,146,183,188,63,10,69,201,66,146,36,136,146,232,74,172,181,127,36,240,47,110,125,81,160,77,228,183,36,150,139,19,132,82,209,47,72,77,44,68,216,33,20,165,98,177,250, +30,119,131,195,141,24,236,68,80,13,174,47,233,245,120,135,199,0,109,196,9,113,9,101,53,3,1,66,156,18,25,238,66,205,77,14,163,132,134,130,179,123,89,52,230,235,95,127,0,143,124,239,251,168,84,42,168,84, +42,120,252,241,39,240,245,175,63,144,250,243,135,159,58,210,119,32,235,252,149,67,207,25,99,254,114,231,53,22,250,51,244,178,171,106,246,233,216,220,78,8,27,104,185,4,153,51,206,76,106,224,224,197,94, +75,178,194,111,162,220,184,173,203,181,172,236,214,206,14,171,207,60,196,98,19,255,230,134,215,138,86,104,26,108,171,235,104,110,198,205,99,152,195,135,143,250,156,18,84,68,211,112,77,13,3,161,94,24,103, +50,107,121,203,51,74,214,5,90,53,38,89,171,246,95,61,126,139,5,218,26,0,175,13,87,72,228,84,247,127,26,222,168,234,131,154,29,142,130,109,224,245,92,110,0,132,4,66,21,72,99,72,141,219,217,122,175,69,97, +54,238,7,240,71,33,117,128,54,78,221,21,4,201,25,113,136,50,4,81,198,248,248,120,200,41,107,107,171,145,237,106,239,4,9,238,171,7,38,132,138,126,167,142,194,114,1,133,66,1,239,188,235,78,220,124,243,77, +184,249,230,155,112,199,29,183,251,175,213,179,183,223,249,54,0,78,200,68,127,169,181,54,170,138,164,29,243,87,255,244,238,87,139,187,145,25,122,25,134,81,113,146,4,93,184,117,58,141,101,26,236,35,117, +75,129,209,84,170,1,21,4,95,49,242,254,130,239,169,182,240,85,208,95,69,209,184,113,219,216,170,93,84,185,147,100,133,135,32,108,74,163,161,223,154,165,16,88,188,251,123,44,216,234,101,232,122,25,182, +59,237,239,149,249,76,186,221,173,174,172,186,221,74,129,183,189,237,173,190,32,148,196,75,85,62,34,245,193,54,70,137,173,199,86,222,159,94,209,144,203,13,64,20,157,102,72,113,0,219,136,223,66,140,136, +58,137,253,164,113,252,109,204,151,130,38,6,246,38,44,171,1,91,247,61,170,154,11,110,43,40,37,160,180,145,132,221,108,232,65,125,152,141,2,109,154,253,169,161,252,152,17,77,187,224,154,230,34,9,84,195, +15,10,133,2,118,198,116,13,27,25,25,70,161,80,72,189,222,195,79,29,233,27,176,109,39,33,108,163,197,216,122,112,105,153,58,12,163,226,170,205,225,184,187,32,112,58,127,25,120,147,83,82,204,244,82,35,176, +246,254,68,81,14,249,186,250,152,129,27,183,117,179,232,204,5,99,201,179,28,27,114,247,248,249,181,57,7,47,50,44,211,236,216,108,161,44,171,62,103,232,174,248,81,69,171,48,51,172,172,174,224,240,225,163, +161,134,85,150,43,124,81,79,12,35,45,242,78,132,223,154,133,219,86,248,173,6,102,129,68,126,139,195,175,52,252,134,168,124,67,8,9,169,181,177,132,31,5,91,143,142,41,13,188,207,249,156,83,245,64,0,165, +66,75,14,10,58,55,174,186,65,200,33,72,160,250,154,207,212,174,199,178,12,232,134,1,203,50,96,154,58,242,249,124,40,236,96,203,150,201,224,64,160,179,227,192,64,134,99,208,150,151,11,56,125,234,116,232, +111,121,57,29,208,6,213,218,126,1,219,118,146,157,54,83,162,84,80,173,173,85,123,50,61,184,72,243,30,246,220,122,12,7,82,198,79,80,241,207,101,66,96,154,250,166,1,91,66,72,131,153,24,110,220,210,219,234, +234,42,158,62,124,20,139,75,139,16,4,1,111,185,237,77,168,232,101,136,162,232,139,30,73,225,155,73,156,19,59,251,30,228,167,4,94,106,21,112,195,244,90,195,181,137,252,22,87,246,43,46,100,161,182,194,66, +176,164,87,180,72,175,171,235,216,204,6,13,148,235,242,75,67,184,221,195,252,82,95,78,65,90,128,49,104,154,6,53,155,117,70,230,132,0,204,138,20,252,109,253,162,17,75,236,45,2,109,116,221,182,101,84,99, +106,203,101,228,23,243,176,44,19,185,92,174,166,45,110,210,58,154,81,242,76,83,79,132,139,225,225,97,140,140,12,251,101,188,60,27,25,25,198,240,112,186,114,94,111,191,243,109,248,187,251,191,134,124,62, +143,135,190,253,29,140,143,143,227,192,181,251,49,52,52,180,33,79,242,96,182,113,191,91,189,150,190,221,158,162,76,138,235,171,237,120,230,85,102,168,0,96,53,173,123,9,17,32,74,146,95,52,159,87,96,224, +214,206,32,46,233,248,241,18,104,69,81,222,112,49,169,252,156,216,220,22,44,179,217,177,99,198,112,42,33,120,161,9,178,172,192,182,45,80,234,136,91,171,43,107,120,250,233,167,113,49,191,232,127,230,109, +63,127,7,76,51,92,155,54,169,169,66,240,185,87,232,32,90,201,32,158,231,72,76,185,175,104,213,3,103,253,165,82,53,28,83,150,85,39,81,172,209,125,41,137,149,90,4,218,186,44,118,254,252,130,223,51,45,216, +26,205,182,25,42,21,39,97,74,81,114,254,114,255,61,129,6,11,213,155,185,237,215,176,45,149,74,80,179,89,104,165,146,243,150,128,124,159,102,170,166,33,52,166,10,124,110,156,84,22,247,255,194,194,25,148, +52,13,151,237,156,197,201,83,167,65,64,176,115,231,44,114,185,172,63,21,64,92,117,26,112,74,214,212,139,11,14,238,183,32,72,61,109,58,240,119,247,127,109,93,47,12,75,75,75,206,64,71,85,177,180,180,216, +242,122,100,89,65,46,231,52,193,24,29,29,237,235,11,160,101,89,40,105,26,180,82,9,170,154,5,165,4,170,170,226,204,153,51,152,153,153,169,185,104,244,139,21,10,133,154,65,147,87,142,233,194,133,11,32,148, +98,165,176,204,239,118,220,220,115,50,3,93,175,64,146,100,24,70,109,133,131,93,187,46,71,62,191,136,177,177,81,44,46,45,57,130,65,169,132,29,59,118,0,0,22,22,22,96,186,181,253,6,135,134,145,85,85,40,138, +226,215,231,236,133,85,116,29,153,38,195,125,162,230,157,203,23,47,230,161,105,78,135,39,211,228,109,123,211,90,46,55,224,182,123,45,195,182,45,191,73,145,195,9,189,11,235,16,4,17,150,101,66,16,170,85, +136,188,74,72,54,99,88,90,90,130,109,181,222,44,103,120,120,4,227,227,227,62,71,189,244,210,139,144,220,14,92,222,125,193,67,170,98,177,136,92,46,135,159,127,219,29,14,12,155,206,76,178,235,152,26,94, +171,255,63,106,249,45,166,13,110,149,233,88,205,241,13,0,153,140,51,123,93,46,151,0,16,200,178,2,81,18,81,42,174,34,155,27,76,132,216,180,252,214,12,208,38,207,214,187,80,107,153,38,4,65,8,239,32,99,126, +129,95,69,205,1,49,142,9,58,130,217,206,251,157,231,110,161,249,24,120,109,38,246,40,62,166,55,190,194,65,244,253,113,64,91,227,40,212,105,196,224,102,26,154,166,233,214,97,19,124,96,105,4,181,113,197, +144,131,251,46,103,212,158,95,56,214,3,110,23,23,23,177,188,188,212,193,155,168,163,46,78,79,239,232,235,139,244,202,202,10,202,229,50,214,214,86,49,48,48,232,131,45,0,63,172,197,11,207,9,118,171,235, +103,179,109,27,249,124,30,171,171,43,224,198,45,141,13,13,141,96,101,101,25,91,183,110,195,197,139,23,49,49,49,129,146,91,42,209,11,59,200,102,179,56,119,238,108,13,88,120,143,167,167,167,59,14,185,133, +66,193,191,22,143,140,140,212,135,222,74,5,153,76,227,176,130,98,169,4,74,8,46,94,188,232,42,114,58,63,0,26,221,223,169,0,102,91,200,229,6,160,40,10,202,229,50,138,197,53,80,42,192,182,45,132,11,228,119, +223,6,6,6,125,1,6,132,160,84,44,194,182,45,228,6,6,193,108,27,165,82,177,237,239,24,25,29,131,162,40,40,174,173,97,101,165,128,161,161,17,128,0,170,162,32,151,203,161,88,44,98,173,88,196,191,122,255,123, +32,136,50,4,42,192,178,44,80,129,86,59,136,197,1,105,148,203,106,158,39,191,47,244,127,208,223,9,252,150,205,14,160,84,90,115,160,182,142,64,151,150,223,146,42,107,69,129,214,135,214,40,175,69,74,124, +145,243,231,23,88,165,92,130,32,202,48,141,138,79,227,65,176,85,212,92,117,8,145,0,182,90,73,243,107,168,18,66,80,44,173,66,85,115,213,206,23,237,4,210,199,148,142,64,18,177,55,9,180,245,168,95,20,69, +88,166,229,62,174,66,173,159,84,70,105,232,128,232,103,168,237,165,245,98,90,174,159,195,16,188,142,105,84,144,96,91,134,223,218,208,57,102,196,234,241,211,67,69,170,93,179,76,211,223,7,110,220,90,58, +103,165,76,77,39,197,244,0,36,182,53,21,108,232,186,31,139,24,190,62,17,247,122,210,66,60,44,171,222,112,121,40,66,251,215,243,205,228,195,70,226,93,244,117,73,82,160,235,90,205,235,132,138,144,68,39, +41,172,236,206,156,199,129,45,75,5,186,233,192,182,6,110,1,100,213,28,74,165,53,0,142,98,91,169,104,161,48,138,108,118,160,37,126,107,27,104,3,235,247,94,17,171,55,45,221,223,177,232,7,203,30,216,6,6, +78,142,4,29,6,186,114,217,41,36,207,152,147,197,86,214,74,225,152,141,118,70,117,136,15,71,168,15,169,201,163,134,122,89,131,93,29,157,18,226,116,29,217,132,201,58,189,188,40,245,179,15,157,26,179,146, +171,54,57,224,106,235,166,211,60,65,20,125,63,109,4,168,245,0,157,27,183,182,207,217,54,226,201,153,109,6,111,87,45,152,29,2,219,32,153,198,1,85,195,107,11,107,190,238,40,183,100,152,221,108,131,130,104, +156,107,163,193,94,16,104,81,51,228,130,95,238,179,209,247,5,5,148,232,118,68,99,108,227,120,207,95,22,224,45,159,223,220,247,85,244,114,85,152,139,128,101,90,126,171,223,247,32,30,104,227,248,45,238, +123,169,29,40,23,65,220,50,19,65,80,149,101,21,170,154,115,188,193,88,160,42,2,141,64,33,243,107,213,18,194,106,10,233,214,43,204,27,221,249,52,69,124,91,1,218,68,101,22,241,42,45,137,25,104,52,130,224, +70,175,111,254,236,243,222,12,18,54,90,166,113,124,153,173,254,55,81,146,58,186,189,148,138,188,250,2,183,150,206,159,70,55,246,228,1,176,14,47,36,46,13,60,197,29,159,209,207,113,160,109,239,183,12,222, +7,211,54,52,216,108,208,27,28,236,213,205,33,34,78,133,38,37,147,69,38,163,58,181,237,107,24,134,6,102,144,197,58,156,131,134,12,84,51,163,237,254,203,100,178,32,32,80,50,89,72,162,228,207,156,4,85,218, +134,172,71,90,7,218,164,25,245,208,219,9,129,104,154,122,205,116,185,174,151,161,40,89,167,219,147,123,242,50,6,40,138,90,13,39,136,1,184,70,201,47,209,145,75,154,90,176,141,18,198,218,249,225,234,81, +63,225,215,158,22,71,221,188,0,121,146,5,19,4,41,21,97,153,102,79,147,6,219,187,8,59,109,174,91,13,65,112,138,211,27,161,107,192,102,155,114,228,214,121,163,130,228,207,118,180,26,126,32,201,178,11,182, +240,225,182,46,176,54,82,109,121,77,218,142,15,156,189,153,45,111,6,142,95,23,28,179,109,19,166,73,144,201,168,126,5,4,203,54,170,188,226,87,50,168,54,54,138,86,57,168,101,180,90,197,54,137,223,50,138, +10,102,51,88,150,5,81,16,192,164,140,127,62,18,16,100,100,181,62,199,213,8,180,41,102,204,235,117,26,107,0,180,0,32,134,29,83,141,249,140,150,177,34,196,9,57,8,150,139,240,206,239,168,3,147,226,73,91, +157,234,111,84,85,32,141,58,219,12,208,70,247,187,147,22,156,54,183,45,107,67,197,85,166,179,238,95,240,131,45,141,55,3,224,110,156,27,143,19,70,209,10,208,122,235,48,221,118,147,225,110,103,241,48,193, +141,91,231,6,220,178,123,124,181,94,23,215,7,46,222,57,44,245,117,186,217,251,91,104,0,65,132,190,110,145,222,45,147,101,21,54,179,253,100,202,104,45,123,171,98,132,1,133,49,63,127,195,99,26,22,97,186, +154,82,94,41,249,77,175,148,161,170,57,63,198,150,10,66,8,84,211,149,243,74,199,111,245,212,217,180,64,235,64,173,119,48,73,206,193,164,235,154,127,115,105,228,152,240,186,72,44,188,198,1,110,235,106, +81,18,229,163,33,253,215,5,218,20,63,66,171,240,157,116,113,12,171,17,2,191,2,54,97,126,105,147,77,224,191,141,164,214,118,29,156,221,250,205,220,250,28,16,37,165,39,211,239,65,149,118,61,141,15,182,90, +253,253,218,252,237,54,57,208,38,213,151,181,44,19,150,101,248,221,199,252,164,45,55,167,73,20,100,8,162,80,173,134,0,39,230,188,49,171,181,198,111,94,191,2,0,16,219,248,77,19,103,221,227,195,109,91,158, +77,247,130,47,252,139,84,26,199,132,142,187,4,231,196,57,40,250,153,86,0,49,46,204,160,30,184,166,2,218,184,50,19,29,2,216,122,159,105,101,36,219,207,214,203,139,191,7,182,130,219,46,112,195,170,25,27, +12,104,171,77,27,202,16,4,201,255,29,162,64,154,20,55,235,41,190,177,231,199,6,43,190,207,109,195,97,22,218,81,106,189,227,94,242,26,74,112,197,182,238,53,162,221,117,108,244,193,68,51,201,98,205,112, +69,77,24,142,23,79,208,37,126,19,168,208,21,126,75,3,179,169,128,54,194,111,98,51,142,9,59,129,212,237,58,17,23,179,81,15,116,155,115,76,61,208,109,238,113,26,160,77,179,189,105,247,201,83,31,188,19,118, +115,134,32,244,206,24,99,220,135,93,31,172,120,176,106,251,157,198,188,27,23,99,204,7,115,191,83,158,212,252,77,45,152,176,26,4,228,118,202,64,113,235,210,241,208,163,36,41,219,31,184,10,29,56,134,203, +29,220,127,126,60,198,15,208,101,191,204,37,183,214,193,55,58,19,233,85,144,242,103,245,220,183,11,84,170,137,175,237,6,191,181,26,70,154,248,62,146,252,52,29,167,161,46,191,137,126,201,173,200,30,197, +209,61,107,176,60,158,252,131,0,210,188,194,89,239,237,245,66,9,26,169,182,245,107,223,122,7,151,213,48,158,183,149,11,181,119,145,230,32,214,129,27,159,87,255,149,251,178,155,67,135,192,57,108,193,75, +234,112,110,100,129,113,49,165,45,171,52,150,101,64,146,149,208,185,37,109,176,10,23,220,186,0,74,29,58,175,131,51,12,220,82,250,76,202,184,176,228,12,100,184,15,215,15,116,107,42,8,48,64,146,36,72,144, +124,126,11,54,103,232,40,191,85,11,92,53,207,62,4,9,165,244,128,74,185,4,69,201,54,201,105,104,200,111,180,198,97,129,15,212,107,86,144,220,236,128,132,254,162,171,109,246,47,186,163,209,117,55,218,150, +184,229,105,128,54,206,209,94,231,176,118,33,215,178,172,13,63,109,94,239,198,177,30,102,185,229,126,12,131,183,167,236,252,239,154,113,139,211,87,161,213,236,176,159,253,242,62,148,130,80,10,81,148,227, +47,2,220,46,41,219,140,53,76,55,20,208,134,72,162,214,68,41,3,73,86,184,74,91,7,80,91,121,143,183,204,178,131,51,88,14,51,232,21,45,146,84,21,173,88,144,245,171,213,116,146,223,252,114,92,205,252,69,62, +94,41,151,96,232,58,42,21,103,182,163,162,235,169,56,141,164,4,90,144,64,162,88,72,177,245,62,152,32,103,39,211,125,123,37,190,210,28,4,233,98,109,235,213,124,75,7,180,209,234,15,73,219,223,44,208,246, +75,242,195,102,51,219,54,3,153,249,146,15,184,146,36,113,231,116,12,60,229,192,205,172,187,126,53,77,157,215,179,229,6,218,193,193,191,19,70,211,219,214,171,253,46,66,68,75,104,37,157,115,193,144,34,81, +148,253,1,168,255,59,117,1,104,171,37,34,47,221,223,43,26,207,74,64,2,141,15,170,174,113,234,200,170,33,206,201,200,78,231,175,118,248,77,245,186,201,198,241,79,28,135,69,158,87,42,21,80,74,29,160,213, +189,242,177,150,243,62,247,251,202,101,13,132,10,80,50,25,148,203,26,20,53,155,188,206,52,221,201,126,118,230,133,16,91,178,184,77,141,105,169,150,246,121,90,152,237,196,8,167,25,152,173,7,180,169,130, +156,27,192,116,52,118,197,155,74,13,94,8,54,91,44,232,122,43,42,132,8,238,244,184,115,182,115,40,218,184,198,108,219,63,87,184,82,199,225,107,189,174,77,155,185,102,234,70,185,62,58,254,111,63,201,111, +221,174,101,41,147,197,162,239,147,101,37,177,36,50,3,243,235,126,75,146,92,151,223,42,229,82,106,94,147,221,99,162,82,209,252,208,128,118,248,205,235,60,91,189,55,215,227,53,26,66,229,208,247,55,224, +183,80,153,177,224,251,157,134,97,164,214,57,145,88,219,36,186,79,91,237,160,19,149,3,210,130,102,51,48,219,214,247,212,241,1,33,36,86,121,218,76,64,203,108,187,47,74,50,57,39,143,13,110,27,219,108,198, +96,235,101,8,162,204,157,113,137,91,181,173,116,53,201,150,80,177,201,102,12,173,65,17,31,80,245,23,132,111,196,223,35,109,21,132,216,88,90,18,223,235,131,192,105,132,35,7,213,217,4,126,203,40,89,39,222, +54,5,191,129,16,80,66,66,10,109,171,252,166,235,122,228,51,141,24,138,53,205,111,113,205,29,196,36,7,166,133,219,36,7,213,91,222,238,1,146,106,121,35,103,116,1,104,227,14,130,36,208,119,70,89,214,166, +80,19,153,109,247,69,125,209,224,72,48,201,175,60,36,97,131,64,173,155,1,108,241,186,181,220,2,199,132,119,92,48,219,132,105,86,203,27,5,97,39,56,173,30,6,134,75,19,4,55,215,62,108,92,197,182,85,0,142, +130,173,101,153,16,4,49,62,230,53,129,223,50,25,213,141,99,101,0,179,65,8,69,38,163,4,80,50,246,134,218,52,191,121,202,44,165,162,19,102,224,67,180,213,52,191,85,244,138,191,141,113,252,150,212,173,236, +255,31,0,86,150,131,151,101,147,74,148,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* TalComponent::bmp00128_png = (const char*) resource_NewJucerComponent_bmp00128_png; +const int TalComponent::bmp00128_pngSize = 71770; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +// JUCER_RESOURCE: bmp00129_png, 36459, "E:/Code/tal/tal-reverb-2-juce/resources/bmp00129.png" +static const unsigned char resource_NewJucerComponent_bmp00129_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,45,0,0,14,16,8,6,0,0,0,210,193,141,180,0,0,0,1,115,82,71,66,0,174,206,28,233, +0,0,0,4,103,65,77,65,0,0,177,143,11,252,97,5,0,0,0,9,112,72,89,115,0,0,14,195,0,0,14,195,1,199,111,168,100,0,0,142,0,73,68,65,84,120,94,237,157,121,92,85,117,183,255,159,254,185,127,221,223,189,221,138, +162,241,177,174,210,236,144,149,86,106,89,137,102,90,206,6,138,50,136,102,138,138,138,35,226,80,234,147,154,67,165,129,99,62,106,88,104,246,52,152,101,82,138,57,163,169,128,40,138,102,138,227,99,154,153, +166,228,250,173,207,226,108,60,194,57,156,189,207,57,27,55,215,213,235,117,94,132,156,97,241,229,187,191,251,251,93,239,245,249,172,191,17,209,223,170,218,163,202,5,140,1,14,56,232,255,253,223,255,253, +143,186,117,235,86,239,208,161,67,120,231,206,157,99,248,145,196,143,209,252,24,231,250,138,239,99,240,115,60,15,207,15,244,47,235,119,208,119,221,117,87,40,7,211,185,105,211,166,169,45,91,182,204,140, +136,136,200,225,111,139,248,113,150,31,151,248,65,174,175,248,190,8,63,199,243,240,124,188,174,70,141,26,161,254,6,111,57,232,191,255,253,239,161,237,219,183,79,108,209,162,197,86,254,236,195,252,184, +208,169,83,39,14,176,19,117,233,18,69,49,49,93,41,46,46,134,226,227,99,249,17,71,221,186,197,82,108,108,12,69,71,119,165,168,40,249,69,46,224,117,175,188,242,202,214,142,29,59,38,214,169,83,199,114,240, +150,130,230,15,107,206,1,103,115,144,24,61,138,140,140,224,64,59,113,64,157,168,87,175,120,26,54,172,63,141,27,55,146,166,77,123,155,210,210,166,200,99,198,140,119,104,202,148,241,252,239,35,104,248,240, +36,74,76,76,224,95,44,26,193,19,222,135,3,207,198,251,90,25,117,83,65,243,60,12,121,238,185,231,70,241,155,159,48,130,141,140,236,200,35,217,149,146,147,7,210,187,239,78,162,133,11,231,210,23,95,44,165, +204,204,21,180,118,109,38,109,218,244,131,60,214,175,95,69,107,214,172,160,239,190,251,156,190,252,114,49,165,167,207,229,95,102,26,141,24,49,164,52,120,188,47,143,252,168,198,141,27,135,152,9,190,194, +160,95,120,225,133,27,26,54,108,24,214,188,121,243,249,252,198,197,37,1,191,198,35,27,65,163,70,13,166,153,51,223,231,64,62,163,45,91,54,208,207,63,239,163,211,167,79,210,165,75,231,248,115,207,243,227, +28,93,190,252,59,93,188,120,154,255,189,136,14,31,46,160,61,123,182,81,118,118,22,255,82,223,202,47,177,104,209,28,234,221,251,13,25,117,188,63,255,21,231,183,106,213,42,140,47,218,27,42,10,190,194,160, +159,127,254,249,48,30,129,244,146,96,35,169,67,135,54,148,144,208,93,70,22,193,230,229,237,164,147,39,79,82,113,241,69,254,140,75,252,248,243,170,128,255,250,235,44,255,18,103,232,207,63,127,165,11,23, +78,209,239,191,31,167,19,39,126,166,3,7,242,40,55,119,131,252,37,86,172,88,70,227,199,143,225,235,32,86,130,127,237,181,215,210,57,232,48,191,130,230,11,36,196,53,194,50,119,35,34,218,210,208,161,137, +244,225,135,179,249,195,214,241,135,159,224,96,139,249,189,255,50,21,240,31,127,156,148,160,127,251,237,40,253,250,235,97,58,122,180,144,246,237,219,33,193,111,222,188,154,230,206,253,128,122,244,232, +46,129,243,74,51,159,231,186,215,169,226,117,164,93,115,184,24,35,140,128,135,13,27,200,243,113,129,140,238,249,243,231,249,79,127,217,175,128,207,156,57,34,65,255,251,223,191,208,177,99,251,121,90,237, +162,221,187,183,82,78,206,70,185,46,186,117,235,38,83,133,63,119,148,183,209,246,24,52,174,102,227,162,195,148,192,8,35,224,130,130,221,174,64,49,186,214,71,216,61,96,76,147,227,199,15,200,136,31,60,152, +79,133,133,59,105,239,222,237,52,125,250,52,99,142,227,162,247,184,170,148,11,26,235,176,107,25,226,37,41,82,230,48,166,4,70,184,36,208,224,6,124,228,200,62,185,72,49,226,120,228,230,110,161,164,164,1, +70,224,217,61,122,244,40,183,142,151,11,26,55,14,172,159,152,199,88,37,112,209,97,14,99,74,216,21,240,47,191,236,150,128,49,226,69,69,123,105,251,246,141,198,252,62,27,21,21,149,88,118,154,92,21,52,110, +205,174,59,29,95,124,29,101,89,195,42,129,139,46,24,115,216,125,74,24,35,140,128,17,44,86,20,60,48,234,167,78,29,162,57,115,82,101,180,163,163,163,183,246,237,219,247,170,209,190,42,104,236,9,112,139, +197,40,227,198,129,117,24,211,194,223,85,194,219,28,246,20,48,230,52,86,19,252,2,184,72,243,242,118,208,27,111,200,26,142,173,66,103,247,209,46,13,26,187,47,94,31,177,153,185,128,91,51,238,116,24,101, +172,195,193,188,232,188,5,140,139,176,160,224,39,185,24,139,138,14,208,161,67,7,104,210,164,137,178,87,233,210,165,75,234,208,161,67,75,119,135,165,65,99,219,136,93,24,54,63,177,177,81,50,151,113,167, +51,123,227,112,95,135,203,142,48,150,54,172,18,190,2,198,210,151,159,159,205,211,36,159,87,150,34,90,186,116,9,117,237,138,13,88,92,102,191,126,253,170,27,163,93,26,52,246,187,37,219,203,146,205,15,214, +76,220,154,205,220,233,42,10,216,88,214,204,4,188,107,215,22,94,61,54,241,136,239,224,95,242,16,253,248,227,90,234,217,179,39,239,14,163,114,120,180,195,203,5,205,127,6,108,224,139,176,189,196,110,13, +155,31,236,37,124,221,154,173,4,124,232,208,158,210,139,206,88,151,49,37,48,194,70,192,184,67,230,229,109,230,233,81,200,95,115,121,87,152,136,41,130,125,122,140,167,160,113,194,56,139,253,48,182,151, +216,173,149,221,252,148,221,75,88,9,216,125,149,168,40,224,237,219,215,211,79,63,173,227,41,178,135,126,249,101,63,13,30,60,24,65,99,43,156,228,41,104,28,145,46,97,3,143,253,48,182,151,238,187,53,43,1, +91,153,195,238,35,140,128,183,109,251,81,118,130,133,133,249,124,155,47,226,191,250,48,227,4,52,218,83,208,56,211,201,137,3,155,119,236,192,140,237,165,149,128,253,153,195,152,18,238,1,111,217,178,134, +87,145,60,94,185,142,243,193,97,184,113,119,28,231,117,164,113,68,50,130,198,126,56,144,128,205,206,225,178,1,99,192,10,10,114,249,98,244,61,210,50,167,113,166,195,17,9,39,14,108,224,221,247,195,118,205, +97,99,74,96,132,75,78,60,153,60,61,242,100,245,242,53,167,101,245,192,33,20,103,58,28,145,112,226,48,54,240,193,90,135,189,205,97,35,224,13,27,50,249,254,176,134,246,239,223,205,219,213,29,21,175,30,198, +58,141,83,51,14,161,56,14,97,31,128,19,71,101,141,48,2,198,95,24,35,127,240,224,94,202,202,202,146,117,154,215,232,156,152,152,152,242,235,180,113,71,196,49,63,57,25,27,165,197,114,166,195,105,195,56, +113,224,78,151,151,151,205,123,132,28,57,54,149,189,232,2,153,195,37,1,175,228,27,202,74,217,158,98,185,203,200,200,144,59,34,239,65,50,199,142,29,91,254,142,232,190,247,192,49,31,167,102,44,61,8,14,71, +36,4,252,230,155,41,116,243,205,55,211,223,255,126,15,53,104,240,12,255,9,243,76,221,154,205,76,9,4,140,3,239,134,13,63,240,96,237,228,247,46,160,137,19,39,200,222,131,71,57,53,45,45,173,252,222,3,203, +137,177,203,67,94,2,199,124,188,9,182,139,56,30,77,157,58,145,66,66,66,168,86,173,90,212,164,73,19,122,233,165,151,104,192,128,190,50,133,172,220,56,202,94,116,198,148,192,103,225,129,159,227,2,220,177, +99,187,239,93,30,130,70,170,10,153,31,172,215,200,75,96,94,99,13,197,102,167,99,199,118,244,224,131,15,210,171,175,190,202,123,147,94,196,123,92,126,206,208,160,4,140,41,145,149,245,13,143,114,38,111, +152,182,243,77,229,48,205,158,61,75,214,231,132,132,132,173,233,233,233,222,247,211,8,28,169,42,156,92,48,218,200,75,96,9,194,62,23,35,253,196,19,79,96,243,34,203,208,136,17,201,188,223,158,110,106,47, +225,105,29,54,230,48,70,23,1,227,129,19,203,193,131,133,60,80,59,249,228,210,67,110,223,124,208,173,248,228,130,160,145,91,227,220,3,82,85,252,91,246,146,188,4,70,123,223,190,157,28,112,164,164,19,70, +141,74,225,109,227,71,1,6,188,74,166,3,130,93,189,250,107,94,230,214,242,103,236,226,71,129,177,54,115,6,42,38,187,236,40,35,70,159,167,113,36,82,144,151,192,78,12,167,138,93,187,176,35,203,14,56,96,99, +74,148,4,188,70,238,128,71,142,28,166,121,243,230,89,63,141,27,247,119,228,214,144,127,64,230,103,238,220,84,201,75,96,119,102,156,154,113,129,250,218,173,121,190,232,74,86,9,99,74,96,132,17,48,78,42, +203,151,47,55,166,69,113,74,74,138,181,188,7,2,231,213,33,4,185,53,76,19,100,126,112,40,192,81,200,56,53,35,104,204,117,79,251,97,95,115,184,100,105,203,148,57,140,41,129,17,94,190,252,43,206,235,245, +150,81,230,61,244,252,169,83,167,90,207,48,33,240,182,109,219,134,33,183,134,55,66,230,7,137,20,44,252,56,230,99,169,195,116,193,47,130,35,18,78,28,158,118,107,184,144,141,101,13,83,2,235,48,254,2,88, +37,112,209,97,14,99,74,184,46,60,4,158,158,156,156,236,95,46,15,65,35,123,201,171,73,24,114,107,152,42,8,62,41,105,160,140,16,142,249,56,53,227,16,138,51,29,142,72,56,113,96,3,143,155,146,251,230,7,255, +143,64,241,11,227,198,129,117,24,203,26,86,9,215,134,72,82,97,24,225,49,99,198,132,241,118,212,255,172,169,49,191,121,180,67,144,91,227,55,150,252,52,166,11,242,18,56,230,99,46,226,16,138,51,29,142,72, +56,113,96,3,143,253,48,230,42,118,107,216,252,96,47,129,91,51,238,116,184,113,96,29,54,70,23,239,139,57,188,96,193,130,192,243,211,101,51,59,252,230,205,121,157,198,114,40,36,0,121,9,28,243,113,106,198, +33,20,103,58,4,134,19,7,54,240,216,15,99,84,177,91,195,230,103,201,146,12,185,53,187,242,25,178,14,243,73,219,30,18,224,30,60,114,107,72,85,33,243,195,31,42,204,5,155,26,236,198,112,8,197,159,27,71,36, +156,56,240,21,223,227,223,241,115,60,15,207,199,235,112,167,195,141,195,211,58,236,45,91,90,238,228,226,235,137,101,127,142,84,21,246,42,221,187,119,79,69,94,2,199,124,236,199,93,127,133,114,116,11,219, +75,236,214,248,23,16,186,229,79,176,1,7,109,188,1,50,63,72,164,32,47,193,177,120,229,136,216,15,99,123,233,190,91,179,58,80,65,11,218,223,15,14,228,117,166,232,86,32,31,96,199,107,53,104,59,70,213,211, +123,6,60,210,10,244,77,214,158,88,30,105,5,250,10,244,93,115,75,129,190,2,125,47,203,140,2,125,87,201,132,2,125,247,251,187,2,125,87,138,216,40,74,81,160,143,233,161,64,223,173,78,9,83,194,10,12,85,160, +31,12,122,107,22,36,41,208,55,75,111,173,204,97,5,250,200,43,43,208,119,21,86,149,173,162,241,68,13,20,232,27,184,217,236,94,194,63,144,20,100,160,191,108,217,98,106,211,166,21,39,197,123,84,13,160,223, +175,95,2,221,114,203,45,130,154,159,124,242,73,106,216,176,129,233,90,187,107,2,244,127,249,101,15,221,125,247,221,244,232,163,143,18,243,69,212,95,8,110,254,242,203,165,206,6,250,247,220,115,15,113,74, +65,120,9,144,196,232,209,35,153,155,175,113,54,208,239,218,53,138,94,124,241,69,1,148,204,249,104,241,226,127,6,33,224,171,233,109,208,129,62,56,225,103,159,125,76,19,38,140,101,146,181,42,8,1,87,34,208, +15,86,81,138,2,125,227,100,174,64,223,85,186,166,64,223,23,224,81,160,175,64,223,36,89,50,166,146,2,125,139,3,102,25,201,249,186,104,43,227,231,26,116,101,140,178,215,10,200,202,250,112,127,63,39,224, +233,161,64,223,228,42,98,121,164,21,232,43,208,87,160,175,10,125,89,56,84,161,239,111,18,94,21,250,170,208,231,82,124,5,250,10,244,61,212,120,88,129,161,10,244,21,232,187,172,94,188,73,168,84,161,111, +70,142,173,10,125,85,232,7,80,88,101,134,222,6,93,161,255,245,215,159,177,128,108,139,200,250,124,237,37,174,57,208,31,60,120,32,221,116,211,77,84,173,90,53,170,89,243,81,81,128,58,90,161,255,195,15,223, +8,204,127,228,145,71,136,237,16,69,59,222,190,125,91,103,3,253,183,223,30,75,213,171,87,167,151,95,126,25,226,115,26,56,112,32,235,198,135,179,104,114,143,115,129,254,135,31,206,36,214,147,179,95,94,7, +150,171,38,137,208,125,254,252,89,65,11,216,54,133,254,156,57,31,176,5,93,71,134,249,195,232,211,79,23,7,41,96,155,129,190,33,189,182,226,167,228,75,221,92,105,10,125,5,250,236,131,160,10,125,85,232,171, +66,223,162,149,179,42,244,85,161,111,18,139,169,66,223,226,64,89,230,136,254,162,225,96,190,78,131,14,230,104,86,244,94,1,143,180,2,125,147,23,164,229,145,86,160,175,64,95,129,190,2,125,5,250,124,3,43, +105,27,225,143,77,174,2,125,5,250,38,146,240,106,185,175,150,251,62,108,114,21,232,7,178,14,27,57,109,85,232,227,60,198,41,47,181,220,15,20,115,168,229,190,187,191,186,93,250,241,235,91,161,255,201,39, +11,233,127,255,247,62,170,95,191,30,91,214,206,112,62,208,31,62,124,112,41,27,231,54,109,244,236,179,207,178,247,238,110,103,3,253,59,239,188,83,96,126,235,214,173,185,161,71,60,177,107,44,141,25,147, +226,92,160,95,88,152,67,225,225,47,202,232,194,197,24,66,247,145,35,83,104,229,202,47,131,216,35,160,68,142,29,84,203,125,112,241,38,77,94,100,227,236,56,54,14,30,70,152,223,129,174,195,101,205,180,109, +177,220,199,136,127,250,105,186,45,83,194,54,203,125,0,125,179,29,157,204,212,41,161,49,135,2,125,108,160,212,114,191,212,193,190,164,40,69,45,247,203,114,14,181,220,87,203,125,147,112,198,152,58,106, +185,111,113,192,130,230,94,175,150,251,38,71,222,50,71,172,44,148,108,43,102,190,22,191,196,245,57,210,10,244,237,186,16,21,232,43,208,87,160,175,64,95,129,190,2,253,164,164,1,70,187,193,108,28,58,202, +238,111,202,237,61,212,114,95,45,247,169,116,86,148,254,143,90,238,7,160,12,85,160,175,64,95,21,250,220,18,51,62,62,182,180,29,125,48,166,132,191,205,166,21,232,87,57,160,159,146,50,76,44,201,203,54,72, +178,226,148,98,134,124,5,69,161,159,144,208,83,132,238,144,97,163,73,250,27,111,116,23,117,190,99,21,250,232,122,141,22,244,96,227,205,155,55,103,145,123,123,182,221,111,237,108,203,253,85,171,150,139, +149,64,179,102,205,68,232,62,104,208,32,230,227,131,184,157,119,86,144,97,104,9,249,66,239,102,180,66,70,103,97,52,234,69,223,91,238,204,154,234,222,149,245,170,253,52,250,203,162,49,46,186,186,167,165, +77,147,55,65,253,231,11,47,60,47,234,124,110,253,42,77,117,23,45,250,80,154,74,7,147,143,7,29,232,131,139,39,37,37,114,192,67,40,51,115,121,144,71,120,21,27,203,175,148,254,227,232,150,141,238,216,104, +54,141,222,205,104,165,140,206,194,101,27,245,150,59,185,112,215,235,196,78,156,249,193,104,47,90,52,135,123,1,252,32,125,197,177,66,4,203,218,229,74,5,66,37,40,244,21,232,187,166,196,234,213,95,75,111, +114,180,249,70,135,119,52,76,199,180,112,181,9,111,110,169,37,172,2,125,5,250,62,116,227,10,244,21,232,155,132,51,10,244,121,17,46,123,107,182,2,81,3,134,159,10,244,77,78,213,128,71,218,202,159,53,88, +207,213,160,131,53,146,190,222,39,224,145,86,160,111,215,133,168,64,95,129,190,2,125,5,250,10,244,21,232,43,208,183,91,63,174,10,125,187,71,216,221,136,120,47,247,112,46,42,58,192,238,180,7,104,210,164, +137,146,84,231,22,180,169,56,214,149,43,250,174,91,183,110,245,150,45,91,102,114,154,151,98,99,163,232,221,119,39,113,98,112,3,21,23,95,228,231,94,226,199,159,252,56,239,215,42,97,5,36,41,208,15,6,189, +85,133,190,42,244,143,31,8,10,72,186,190,129,126,110,110,54,85,25,160,255,143,127,188,73,55,222,120,35,221,123,239,189,210,28,221,241,64,127,245,234,111,75,217,56,90,119,3,55,195,241,219,209,150,251,19, +38,140,43,53,129,239,213,171,151,160,230,254,253,251,57,27,232,79,158,252,182,152,192,115,215,96,129,249,96,227,31,126,56,203,54,122,27,52,160,63,122,116,50,69,69,117,230,17,78,228,142,238,11,108,8,216, +6,133,62,240,242,129,3,187,108,43,74,81,160,159,144,208,139,86,172,88,70,176,206,87,133,62,91,10,24,83,66,129,254,75,47,189,20,194,69,86,243,81,198,208,163,71,119,90,184,112,46,225,40,100,116,102,192, +33,20,197,43,222,58,58,109,219,246,35,101,103,103,73,89,68,217,162,20,85,232,171,66,127,111,158,84,203,20,22,230,113,185,218,110,54,230,217,75,191,252,178,95,74,215,118,236,216,46,133,85,176,147,49,170, +104,82,82,82,70,45,88,176,32,196,23,36,194,207,45,129,34,181,220,87,203,125,147,88,204,152,123,10,244,77,14,152,165,11,209,204,149,93,25,207,209,160,43,99,148,45,175,211,158,130,82,160,111,215,133,168, +64,95,129,190,2,125,5,250,10,244,253,66,117,134,154,67,45,247,213,114,95,45,247,93,55,18,85,232,171,66,191,39,83,136,168,28,46,159,8,47,87,58,193,137,152,24,126,20,117,233,18,69,195,134,245,167,47,190, +88,74,167,79,159,12,168,100,194,223,222,205,121,121,155,185,222,163,144,242,242,114,41,49,49,17,89,168,34,196,231,41,232,36,254,1,75,250,186,210,184,113,35,89,119,184,130,46,93,58,231,119,141,71,32,50, +192,159,126,90,199,184,100,143,164,209,224,194,140,184,248,145,228,41,104,181,220,15,84,202,122,125,2,125,40,151,95,122,169,41,181,108,249,178,16,129,223,44,122,209,88,237,240,30,176,229,62,36,216,128, +249,16,186,215,171,87,143,26,52,104,32,245,28,238,61,2,172,20,86,85,138,66,191,113,227,103,169,70,141,26,210,209,189,107,215,174,196,26,110,230,227,9,206,6,250,173,90,181,228,222,0,245,41,58,58,218,37, +116,31,76,211,167,79,117,54,208,207,200,88,72,141,26,53,162,184,184,88,26,58,116,8,99,135,84,130,213,64,32,235,112,69,228,43,104,64,31,39,11,56,216,219,89,227,17,116,133,62,46,60,59,3,86,160,175,64,255, +42,220,172,64,255,138,83,154,2,125,246,237,64,219,8,172,18,88,135,177,78,195,199,227,224,193,66,174,100,40,16,211,6,3,57,247,238,221,59,61,57,57,57,172,34,20,82,33,40,82,133,190,2,125,147,112,70,21,250, +170,208,183,56,85,42,139,208,150,253,28,101,227,149,53,242,215,231,72,43,208,55,185,16,88,158,30,10,244,21,232,43,208,87,160,175,64,95,129,190,42,244,237,214,143,171,66,223,238,17,86,133,254,207,63,239, +11,216,82,192,31,204,81,80,176,131,9,218,33,78,163,173,165,158,61,21,232,159,162,63,254,56,105,139,186,89,129,254,159,127,254,74,23,46,216,55,194,238,168,46,40,64,63,35,99,17,45,88,48,87,40,151,89,193, +187,89,151,137,237,219,215,75,206,218,93,85,7,9,213,209,163,69,92,48,51,12,245,30,151,248,49,218,107,145,74,183,110,177,52,99,198,59,146,4,191,120,241,52,7,58,71,216,56,159,13,197,87,253,185,231,26,57, +31,232,135,132,132,208,3,15,60,192,173,187,155,80,187,118,237,168,85,171,86,108,207,178,207,185,64,63,59,123,173,88,9,60,247,220,115,130,23,160,27,31,50,100,48,97,170,216,9,67,49,85,160,170,203,202,202, +146,117,154,139,174,114,184,144,160,124,225,149,225,89,3,125,120,114,242,96,110,98,176,152,93,228,183,73,47,140,240,240,38,4,117,62,75,158,24,55,167,121,13,56,144,57,12,63,245,245,235,87,10,151,201,205, +221,34,245,75,25,25,25,82,249,240,198,27,111,100,142,29,59,182,122,185,57,237,94,76,152,152,152,64,233,233,115,229,194,64,3,131,249,243,103,209,192,129,137,162,204,183,111,132,131,108,185,143,130,20,247, +162,20,127,110,205,144,113,123,90,37,74,70,216,38,133,190,125,35,172,150,251,104,44,160,10,125,55,253,184,2,125,5,250,101,44,5,20,232,95,153,18,222,232,20,251,213,132,68,70,70,142,114,245,163,16,67,135, +57,115,82,185,190,121,135,248,218,29,63,94,36,103,58,212,60,163,132,184,176,48,159,205,30,84,161,127,21,102,177,204,92,208,206,146,203,221,19,185,34,114,43,186,236,192,57,16,155,26,236,198,80,85,142,34, +109,108,220,225,34,132,175,248,30,255,142,159,227,121,120,62,94,135,230,50,221,186,117,75,244,199,197,222,114,208,198,20,234,219,183,111,40,122,3,117,239,222,61,53,46,46,46,19,117,251,174,50,120,84,149, +227,164,97,156,56,240,61,151,237,119,201,193,110,141,127,129,84,188,206,159,96,203,237,242,252,165,173,170,208,183,139,35,250,251,23,9,230,235,252,158,211,193,12,194,234,123,93,159,65,43,208,183,235,66, +84,160,175,64,95,129,190,2,125,5,250,10,244,21,232,219,141,155,21,232,219,61,194,10,244,21,232,31,46,224,12,212,30,166,86,249,210,133,184,34,177,176,42,244,47,93,186,178,249,169,168,2,33,24,234,102,228, +3,143,29,243,141,153,199,33,43,4,110,152,150,54,69,178,246,101,187,48,128,212,86,9,160,255,241,199,11,232,182,219,110,163,187,238,186,139,30,124,240,65,154,59,55,213,249,64,31,108,252,254,251,239,23,212, +140,38,233,225,225,225,156,218,253,185,156,131,125,48,217,98,64,10,253,79,63,93,76,247,220,115,15,247,27,127,129,94,127,253,117,201,126,162,81,186,163,45,247,183,108,201,162,218,181,107,17,247,105,102, +63,245,254,12,243,135,176,208,253,93,182,174,205,179,17,55,175,146,218,143,128,128,254,247,223,127,77,29,59,182,103,168,222,147,47,208,233,244,195,15,223,84,13,160,111,183,203,132,81,129,80,226,75,253, +3,87,63,236,20,35,226,137,19,39,72,18,158,203,38,82,211,210,210,202,183,251,65,18,16,201,110,100,233,209,213,61,45,109,26,225,77,112,247,82,160,95,206,253,91,129,190,2,125,143,244,54,43,235,27,82,203, +125,85,232,171,66,223,164,123,189,2,125,190,53,51,110,54,250,3,156,101,68,157,13,43,127,43,88,206,50,146,83,160,111,146,102,5,93,55,174,64,223,228,200,91,158,211,86,46,24,187,158,171,65,219,53,178,65, +191,16,21,232,219,117,33,42,208,87,160,175,64,95,129,190,2,125,5,250,10,244,237,198,205,10,244,237,30,97,5,250,10,244,21,232,187,118,116,208,101,67,53,17,23,23,67,211,166,189,205,144,40,211,239,30,1,215, +28,232,111,218,180,134,58,117,122,141,106,214,124,148,6,12,232,39,224,211,46,15,132,160,40,244,97,35,112,255,253,97,84,173,90,53,122,242,201,39,185,171,123,67,110,146,30,238,108,160,15,245,50,170,15,96, +79,206,226,26,46,171,136,231,81,239,36,196,182,44,31,119,12,208,71,79,128,135,30,122,136,218,180,105,195,18,236,129,194,198,167,78,125,199,217,64,127,255,254,92,138,140,124,141,217,120,7,158,207,3,104, +252,248,177,244,205,55,159,219,46,199,14,24,232,3,49,163,35,131,25,62,110,182,176,202,187,126,60,136,10,125,51,1,255,242,11,186,2,251,174,4,171,40,96,5,250,106,185,239,161,255,56,112,51,30,219,183,111, +20,247,239,220,220,157,134,243,247,89,8,45,125,102,77,235,212,169,19,202,8,14,196,73,21,250,87,119,120,87,133,190,42,244,85,161,239,190,130,152,162,91,10,244,21,232,155,36,75,170,208,183,56,80,65,179, +21,168,44,74,107,121,245,184,22,129,85,244,153,166,150,60,13,218,207,121,28,212,233,161,64,223,228,95,193,242,156,86,160,175,64,95,129,190,2,125,5,250,10,244,21,232,219,141,155,21,232,219,61,194,10,244, +21,232,43,208,55,1,244,161,171,157,54,109,18,173,88,241,47,50,227,96,127,77,129,62,92,234,159,125,182,161,136,221,225,171,94,187,118,109,9,222,209,64,63,61,125,62,221,126,251,237,244,196,19,79,136,1,60, +103,79,89,9,212,73,136,173,25,182,24,8,12,245,219,114,127,204,152,20,122,248,225,135,133,141,67,55,14,187,207,17,35,134,155,10,56,16,24,26,144,66,63,63,127,155,148,76,112,63,91,74,74,74,162,177,99,223, +162,47,190,88,226,108,160,127,152,151,169,35,71,10,41,37,101,24,189,247,222,100,218,184,113,141,173,37,19,134,191,122,192,64,31,23,99,101,180,141,8,186,229,190,153,139,46,144,57,172,10,253,239,190,251, +156,57,245,6,182,105,46,180,213,101,2,93,24,192,198,49,226,232,142,125,236,216,97,154,61,123,150,8,45,97,68,92,214,215,183,92,90,172,99,199,142,137,92,167,116,22,126,8,139,22,205,17,27,152,125,251,118, +240,27,237,103,51,146,3,242,11,28,57,178,143,112,145,6,107,74,40,208,199,159,103,252,248,49,92,14,180,154,118,239,222,42,149,51,193,25,97,5,250,10,244,21,232,91,102,46,10,244,21,232,155,36,75,10,244,45, +14,148,2,253,202,102,231,150,225,103,101,7,232,233,243,174,207,160,21,232,155,92,77,44,79,15,5,250,10,244,21,232,43,208,87,160,175,64,95,129,190,221,184,89,129,190,221,35,172,64,95,129,190,2,253,10,128, +254,165,75,191,179,46,176,27,221,116,211,77,210,194,187,78,157,218,180,110,221,247,62,29,236,175,41,208,71,213,193,45,183,220,66,181,106,213,18,3,120,118,149,165,214,173,95,117,54,208,239,213,235,117, +169,62,0,204,239,211,167,143,24,193,15,25,50,72,216,184,25,182,120,77,128,126,86,214,119,92,129,240,184,84,31,148,116,117,31,194,125,200,255,105,42,224,64,200,87,64,64,255,244,233,34,182,90,254,150,45, +5,58,211,232,209,35,233,227,143,23,122,12,56,24,115,216,93,25,138,255,223,191,127,55,229,228,236,144,191,174,171,151,104,76,185,92,30,87,26,132,71,68,68,228,68,71,119,165,113,227,70,16,192,39,72,86,101, +181,141,0,175,84,160,111,230,162,11,100,14,43,208,87,160,207,253,44,178,203,245,8,88,41,13,20,20,232,43,208,47,93,135,175,158,18,91,182,172,37,212,224,161,111,249,242,229,203,13,227,134,226,148,148,148, +81,222,168,131,215,84,175,90,238,171,229,190,90,238,175,165,188,188,92,46,198,218,47,77,190,78,158,60,206,69,90,69,132,195,49,118,107,89,89,89,180,100,73,134,116,195,81,203,125,43,96,179,111,223,190,161, +232,13,212,189,123,247,84,110,80,144,25,21,21,149,227,218,247,158,133,27,28,214,120,215,87,124,95,196,54,95,57,60,194,153,188,63,78,197,235,202,214,218,89,249,108,203,116,171,236,155,171,229,190,93,28, +209,202,159,209,174,231,6,60,61,236,10,76,109,5,202,142,128,2,125,187,46,68,5,250,10,244,21,232,43,208,87,160,175,64,95,129,190,221,184,89,129,190,221,35,172,64,95,129,126,101,2,253,185,115,103,178,167, +250,223,233,238,187,239,98,166,151,64,102,91,210,7,34,3,252,233,167,117,220,94,121,143,100,171,160,160,230,52,9,114,39,73,229,56,162,39,203,253,156,156,108,129,249,232,232,142,38,233,207,63,255,60,245, +237,219,219,39,91,12,6,12,45,44,204,151,244,218,176,97,195,140,164,207,104,79,65,143,67,86,40,62,62,150,155,73,79,17,241,36,216,120,245,234,213,5,228,163,73,58,114,112,125,250,244,166,179,103,143,153, +22,11,251,139,234,246,238,205,147,124,224,240,225,195,141,86,155,227,188,142,116,124,124,92,105,208,139,23,255,147,234,214,173,75,76,114,75,217,120,106,234,251,166,3,190,38,64,255,226,197,211,50,29,96, +4,63,104,80,18,205,155,55,139,165,171,185,206,7,250,149,229,50,161,64,95,21,250,172,65,87,203,125,172,129,53,106,212,8,125,229,149,87,182,98,189,30,49,98,136,20,170,168,66,95,129,126,153,108,37,186,82, +243,227,132,2,125,5,250,21,36,178,219,182,109,27,198,133,132,233,152,38,220,131,130,166,79,159,198,171,201,22,42,42,218,43,229,111,48,116,216,187,119,59,123,114,100,243,191,111,146,149,198,251,58,92,98, +218,176,97,195,15,4,79,26,248,120,160,207,197,190,125,5,188,167,153,103,148,76,80,239,222,189,211,147,147,147,195,252,102,46,92,171,119,3,251,125,132,241,46,111,62,7,94,140,224,147,146,6,74,99,141,83, +167,14,137,81,73,81,209,1,222,176,231,115,205,198,14,198,204,155,9,27,120,247,178,31,84,51,98,95,129,64,241,11,239,217,179,83,208,51,140,71,208,152,195,181,201,199,246,179,152,193,232,252,49,99,198,132, +241,118,244,6,191,131,54,94,168,10,125,5,250,38,201,146,42,244,45,14,148,42,244,43,155,143,43,208,175,172,17,15,120,164,21,232,155,92,77,44,143,180,2,125,5,250,10,244,21,232,43,208,87,160,175,64,223,110, +220,172,64,223,238,17,86,160,95,101,129,126,78,206,54,234,215,175,15,119,193,78,20,195,236,191,254,58,235,55,31,55,11,67,145,94,59,116,168,80,212,28,21,106,108,1,204,1,206,99,98,160,177,29,73,153,153, +43,232,196,137,34,97,227,104,146,254,216,99,143,81,253,250,245,105,214,172,25,166,28,236,175,25,208,31,58,116,144,4,12,152,31,25,25,73,172,176,160,232,232,46,206,6,250,147,39,79,16,155,125,67,55,142,12, +231,196,137,227,133,141,155,117,255,174,116,160,15,196,140,62,1,134,17,252,184,113,99,233,243,207,151,152,14,216,236,28,246,148,211,246,219,114,31,64,255,204,153,163,156,111,254,81,186,49,108,221,186, +206,116,192,254,142,48,74,54,2,86,232,43,208,223,181,197,20,230,80,203,125,244,188,0,103,57,113,226,103,219,252,213,1,146,192,101,246,239,47,16,25,32,223,59,46,196,196,196,164,166,165,165,253,135,199, +84,47,212,107,252,223,97,152,192,167,165,77,19,77,55,182,139,8,214,222,128,87,201,103,225,129,169,129,237,195,142,29,219,13,221,226,97,4,229,213,202,89,129,190,169,139,78,21,250,10,244,203,24,194,171, +66,255,74,143,0,99,121,81,160,175,64,223,36,231,192,148,65,153,16,159,94,178,93,245,204,114,199,154,52,105,34,45,93,186,132,107,57,84,161,95,33,11,178,12,138,20,232,91,152,154,94,55,76,149,69,92,3,253, +28,191,167,71,160,31,28,200,235,53,232,64,70,207,202,107,3,30,105,5,250,38,87,19,203,35,173,64,95,129,190,2,125,5,250,10,244,21,232,43,208,183,27,55,43,208,183,123,132,21,232,35,35,127,254,252,89,150, +129,108,97,74,123,38,160,101,205,74,27,89,200,79,142,30,61,36,185,148,158,61,123,130,20,231,176,223,94,184,39,53,115,76,137,25,95,20,107,181,251,51,188,95,74,167,79,159,100,30,94,143,66,67,67,69,138,93, +171,86,77,182,70,220,226,108,160,63,101,202,36,186,227,142,59,164,73,122,139,22,45,168,101,203,150,98,4,111,134,45,94,51,160,255,143,127,140,165,71,30,121,132,56,123,42,37,12,3,6,12,16,41,54,196,238,21, +181,164,191,166,10,253,51,103,142,80,189,122,245,74,217,56,140,224,51,50,62,114,182,229,254,229,203,191,179,181,231,119,44,54,139,225,206,193,111,209,39,159,44,180,20,240,53,3,250,149,225,50,1,118,88, +86,164,86,88,152,39,60,209,151,235,132,172,30,177,177,49,52,101,202,120,90,179,102,5,175,30,69,166,46,186,96,204,97,85,232,91,169,162,9,100,14,27,14,246,16,90,66,183,8,67,146,140,140,12,234,218,181,43, +146,247,153,99,199,142,173,94,238,230,130,76,17,87,208,192,221,245,2,28,83,210,211,231,202,60,3,188,87,203,125,143,134,240,10,244,231,136,13,204,190,125,59,88,19,187,223,182,26,15,181,220,87,133,190,42, +244,85,161,175,10,125,175,148,194,18,190,80,160,159,144,176,149,157,44,18,253,113,177,183,52,210,238,172,79,45,247,77,162,56,85,232,91,65,196,193,120,174,223,115,58,24,31,238,239,123,92,159,65,43,208, +55,185,138,88,158,30,10,244,21,232,43,208,87,160,175,64,63,32,242,5,55,56,131,37,194,41,14,169,11,151,201,96,115,79,183,250,114,235,52,214,97,118,110,67,185,49,117,234,20,73,9,9,221,233,195,15,103,179, +116,116,39,191,254,47,183,199,37,254,255,63,249,113,62,160,128,13,84,247,243,207,187,56,137,190,75,50,166,10,244,237,198,205,10,244,237,30,97,5,250,64,98,19,38,252,131,238,187,239,62,186,235,174,187,232, +153,103,158,226,171,59,59,32,193,187,25,237,109,64,64,255,147,79,22,211,205,55,223,76,15,63,252,176,152,192,55,109,218,148,145,115,107,103,3,253,105,211,38,19,107,20,169,121,243,230,34,15,225,92,7,113, +107,65,46,167,248,183,79,193,251,53,3,250,184,113,60,246,88,29,106,223,190,125,169,17,252,123,239,77,21,212,236,88,160,15,179,134,212,212,247,56,232,118,82,125,48,103,78,26,109,220,184,218,18,31,55,51, +135,61,153,184,250,109,185,15,160,95,25,46,19,65,87,232,43,208,223,189,149,118,153,208,222,2,238,239,223,191,91,186,178,86,232,239,193,136,57,156,61,121,115,162,163,225,239,49,66,172,201,97,34,124,225, +194,169,74,153,195,224,149,37,124,124,149,200,176,15,30,220,43,109,100,81,120,133,38,167,172,29,47,95,120,197,237,34,170,115,141,18,119,73,237,76,201,201,131,233,203,47,23,179,232,124,155,37,91,12,5,250, +170,208,63,126,128,11,253,10,201,74,113,160,25,51,109,240,113,204,105,152,105,195,155,122,246,236,89,114,236,74,96,204,81,22,113,148,59,110,241,81,43,177,19,103,126,224,135,176,104,145,2,253,50,250,241, +146,26,15,140,240,234,213,95,243,207,214,114,181,195,46,177,43,55,220,191,121,197,200,246,4,146,60,38,32,213,114,223,71,23,6,140,48,76,117,14,29,58,64,203,151,47,55,12,225,139,83,82,82,70,121,35,5,94, +83,189,220,151,40,132,119,119,48,128,231,55,234,78,11,23,206,21,167,122,28,243,145,167,192,33,20,197,43,5,5,63,209,110,147,119,186,245,235,75,44,5,240,192,69,7,67,121,76,137,35,71,14,115,192,95,193,185, +94,46,62,24,194,79,157,58,53,196,114,208,120,129,42,244,85,161,111,146,115,168,66,159,205,124,112,167,83,160,111,133,164,14,29,58,244,63,250,245,235,87,29,66,3,94,174,80,25,12,223,189,209,252,64,155,55, +124,197,247,124,115,139,9,71,189,168,187,159,146,149,207,81,133,190,191,163,21,200,235,44,195,207,64,62,44,88,175,189,62,131,86,160,111,242,70,103,121,122,40,208,87,160,175,64,95,129,190,2,253,128,248, +184,2,253,232,232,8,122,247,221,73,172,117,89,199,68,11,213,6,70,21,66,112,43,16,192,101,140,212,4,154,235,33,181,128,180,5,140,215,88,20,156,88,118,163,117,213,29,145,1,103,40,107,105,165,231,103,100, +100,71,26,53,10,121,234,207,88,191,117,130,46,95,190,236,10,58,248,1,27,121,20,5,250,85,14,232,231,231,239,162,184,184,88,106,216,176,1,43,66,39,49,131,249,149,167,138,53,84,103,69,25,138,6,145,232,183, +120,252,120,145,152,7,66,143,24,23,23,151,137,115,104,185,162,111,3,20,117,238,220,137,251,140,199,75,238,110,243,230,245,44,112,175,69,188,179,163,199,31,127,156,26,52,120,134,231,250,107,2,143,236,68, +117,1,1,253,244,244,133,34,118,111,208,160,1,215,51,117,162,216,216,88,49,131,247,55,96,179,32,41,32,203,253,243,231,127,147,86,244,220,69,152,250,247,239,47,201,238,129,3,7,114,235,204,195,182,162,58, +180,224,60,112,96,143,72,86,125,169,153,145,163,184,20,23,23,67,211,166,189,205,233,216,76,70,204,231,232,205,55,71,178,165,192,203,2,33,185,129,40,167,100,255,229,51,96,43,115,216,27,12,45,44,204,103, +246,82,196,190,12,195,176,94,95,66,14,197,147,129,3,146,43,20,31,31,91,218,142,158,232,92,233,69,183,99,199,38,90,183,46,211,103,192,129,148,76,184,235,199,21,232,219,221,212,64,45,247,43,99,132,21,232, +171,66,95,21,250,174,92,135,2,125,31,253,199,21,232,99,99,194,59,187,81,188,23,41,198,1,96,238,220,84,174,220,218,40,117,251,70,25,60,206,115,238,37,196,86,249,184,97,218,160,64,95,129,62,23,7,98,219, +9,101,5,122,181,160,46,27,117,74,185,185,59,75,171,104,48,21,81,50,49,102,204,152,176,225,195,135,223,80,17,84,50,69,2,184,133,85,8,247,221,194,28,63,97,212,127,204,153,147,202,50,146,29,82,92,130,67, +40,92,215,208,149,12,39,14,108,224,177,31,70,241,9,252,148,80,205,136,226,64,156,68,208,92,6,189,90,80,88,213,163,71,143,82,77,11,138,82,22,44,88,224,181,198,195,111,248,169,10,125,5,250,38,177,152,49, +199,20,232,155,28,48,83,171,71,176,152,118,176,222,71,131,14,214,72,250,122,159,128,71,90,129,190,93,23,162,2,125,5,250,10,244,21,232,43,208,87,160,175,10,125,187,113,179,2,253,77,155,54,50,166,251,32, +168,46,19,222,180,183,144,165,20,21,29,144,212,4,154,235,193,134,151,107,179,83,113,172,43,199,17,13,61,98,9,78,142,146,226,148,45,91,54,208,219,111,255,67,26,165,243,22,148,106,214,124,148,165,216,61, +156,13,244,55,108,248,145,238,185,231,110,17,187,55,107,214,76,188,213,91,181,106,197,194,154,213,126,243,113,51,234,230,128,128,62,50,66,247,220,115,15,189,240,194,11,34,27,29,52,104,16,245,233,211,135, +213,160,39,76,153,105,151,165,183,149,2,244,47,93,58,199,60,124,168,140,50,20,250,128,235,16,187,59,94,161,15,62,142,38,207,67,135,14,226,252,219,7,44,114,252,201,39,31,119,12,208,247,183,198,195,204, +28,86,133,254,197,139,167,109,93,37,188,105,111,55,109,202,148,20,177,90,238,219,221,48,93,21,250,246,142,112,137,148,21,203,43,184,12,48,199,196,137,19,100,239,193,186,175,84,119,205,215,85,105,49,126, +2,254,59,12,205,120,90,218,52,121,19,108,23,17,172,189,1,171,229,190,42,244,85,161,239,49,71,173,64,191,76,143,0,85,232,151,101,29,92,83,125,3,151,7,133,177,1,15,60,17,138,193,197,147,146,6,138,208,224, +212,169,67,244,239,127,255,34,135,80,20,105,227,136,132,18,98,84,228,150,237,55,4,183,31,5,250,190,72,146,251,207,21,232,43,208,55,137,197,20,232,91,28,168,128,137,173,149,11,57,88,207,213,160,131,53, +146,190,222,39,224,145,86,160,111,242,130,180,60,210,10,244,21,232,43,208,87,160,175,64,95,129,190,2,253,42,5,244,127,251,237,55,174,225,63,194,243,214,62,75,1,200,79,96,207,8,139,1,164,38,80,186,15,118, +137,212,51,242,207,30,203,235,221,251,216,118,233,210,137,161,231,64,241,65,88,191,126,61,221,123,239,189,116,231,157,119,138,85,249,200,145,201,226,73,109,85,240,110,86,123,27,20,160,223,170,213,171, +84,173,90,53,122,250,233,167,233,229,151,95,22,51,248,53,107,86,90,50,211,182,2,67,3,86,232,239,222,157,75,181,107,215,150,158,227,16,185,67,59,14,71,204,241,227,199,216,138,234,2,2,250,167,79,159,164, +225,195,135,210,179,207,54,98,105,118,188,176,113,104,199,255,253,239,67,206,6,250,112,176,239,215,175,55,129,195,160,209,193,23,95,124,234,87,192,86,112,115,64,10,253,178,189,90,204,150,76,88,153,195, +182,42,244,21,232,155,176,201,133,132,234,232,81,223,94,8,48,152,60,219,173,91,44,205,152,241,142,24,178,43,208,183,96,68,172,150,251,103,206,28,169,16,55,155,45,172,242,212,54,162,196,82,96,37,253,248, +227,74,209,45,162,232,43,35,35,67,60,107,120,15,146,9,79,212,114,117,121,238,123,143,196,196,4,74,79,159,43,236,228,196,137,159,73,21,250,170,208,87,133,254,22,190,152,54,241,99,3,51,199,245,194,16,221, +217,162,225,227,161,10,125,85,232,51,98,190,210,171,69,45,247,201,99,114,93,129,190,42,244,77,194,25,99,179,194,254,5,161,48,147,140,142,142,134,87,36,18,41,23,176,169,65,37,59,76,211,112,248,133,137, +25,155,48,200,87,124,143,127,199,207,241,60,60,31,175,83,203,125,95,224,177,236,207,85,161,111,114,170,90,230,136,86,255,18,118,60,95,131,182,99,84,61,189,103,192,35,173,64,223,174,11,81,129,190,2,125, +5,250,10,244,21,232,43,208,87,160,95,101,128,126,78,206,118,154,63,127,62,53,105,210,132,26,53,106,196,249,185,159,120,254,162,209,193,21,111,234,96,145,175,160,1,253,105,211,166,73,163,116,216,148,63, +243,204,51,236,98,223,144,150,45,251,216,217,64,191,79,159,4,186,255,254,251,137,59,83,194,250,158,248,20,206,39,235,30,206,5,250,208,184,2,45,63,241,196,19,2,244,135,12,25,34,130,247,25,51,222,117,54, +208,255,245,215,99,244,226,139,47,16,235,93,36,224,233,211,253,15,216,44,72,10,200,114,31,10,125,247,139,238,211,79,23,211,153,51,71,171,22,208,55,187,74,40,208,231,244,26,74,152,248,49,174,28,71,68,243, +0,52,17,136,143,143,43,237,19,16,104,157,146,217,57,236,137,203,40,208,247,68,111,131,49,135,1,241,13,204,161,64,95,129,190,151,238,216,170,208,71,253,39,202,40,204,150,95,154,183,43,95,37,53,30,176,43, +7,126,206,207,223,46,222,212,176,122,198,250,12,204,81,182,187,123,185,4,164,90,238,43,208,191,2,104,189,230,167,85,161,175,10,125,250,91,133,248,66,129,190,2,125,147,112,70,129,62,223,159,203,222,154, +173,48,200,128,57,162,2,125,147,83,53,224,145,182,242,103,13,214,115,53,232,96,141,164,175,247,9,120,164,21,232,219,117,33,42,208,87,160,175,64,95,129,190,2,253,128,96,40,20,204,70,51,189,233,211,167, +149,54,16,131,45,152,169,18,55,172,195,156,101,202,70,74,170,83,167,72,78,75,117,167,15,63,156,205,146,232,157,252,122,163,29,61,190,6,87,142,109,116,3,132,4,234,250,6,250,27,55,110,228,38,233,147,131, +62,194,238,218,219,160,90,238,183,108,217,146,110,189,245,86,193,205,53,107,214,164,89,179,224,100,239,96,160,191,112,225,66,9,152,221,237,233,213,87,95,165,118,237,218,49,189,237,32,16,20,74,125,179, +108,209,108,138,56,40,10,253,13,27,214,201,8,99,180,185,143,189,160,102,136,222,173,4,108,5,36,5,172,208,7,208,63,127,254,44,213,175,95,143,90,183,110,45,181,253,195,135,15,99,113,227,71,130,154,241,184, +112,225,20,253,241,199,73,118,180,63,30,52,221,98,192,10,125,162,63,133,143,47,88,48,135,205,27,134,211,194,133,243,252,158,18,102,97,104,80,129,190,149,41,97,118,14,123,194,28,65,85,232,155,189,232,172, +204,97,85,232,3,249,42,208,231,150,39,5,38,5,239,106,185,95,57,250,241,85,162,201,69,223,219,172,172,44,209,124,113,19,154,28,54,131,15,47,87,164,98,52,161,137,138,234,204,110,41,131,217,100,103,49,187, +200,111,147,155,134,217,27,135,217,117,88,21,250,106,185,111,194,120,196,208,143,43,208,79,72,232,69,43,86,44,19,165,61,206,112,71,143,22,210,145,35,251,232,240,225,2,182,178,64,103,235,124,233,216,224, +95,135,247,146,46,12,40,153,88,189,250,107,182,227,95,203,54,93,187,248,81,80,218,206,155,87,140,108,79,108,198,99,170,23,167,96,163,77,55,140,162,54,111,94,77,216,216,32,200,96,5,108,76,137,146,128,215, +72,155,239,35,71,14,211,188,121,243,172,159,198,141,181,80,129,190,2,125,5,250,135,184,105,93,33,175,38,123,120,53,201,167,189,123,243,228,226,66,131,164,253,251,177,210,236,21,243,28,52,151,217,177,99, +187,20,86,177,6,189,244,162,75,73,73,25,181,96,193,130,16,95,144,8,63,183,4,138,212,114,95,45,247,77,98,49,99,238,41,208,55,57,96,150,46,68,51,87,118,101,60,71,131,174,140,81,182,188,78,123,10,74,129, +190,93,23,162,2,125,5,250,10,244,21,232,43,208,15,8,134,42,208,143,142,142,144,190,227,155,54,173,99,70,248,27,159,251,10,92,149,8,193,173,64,64,182,10,25,44,140,120,81,209,94,233,85,215,163,71,119,156, +31,207,194,199,172,236,246,225,170,93,222,93,119,221,21,218,162,69,11,24,157,81,100,100,71,26,53,10,121,234,207,216,152,53,157,194,194,194,136,127,78,15,60,240,128,52,79,183,67,240,30,84,160,223,184,113, +99,186,239,190,251,168,65,131,6,162,31,111,209,226,101,62,85,231,5,12,146,202,230,3,131,166,208,63,121,242,36,221,126,251,237,162,206,231,132,160,240,241,215,95,239,65,139,22,205,179,196,199,205,194,208, +160,0,253,243,231,207,209,107,175,117,148,238,238,104,54,0,193,251,192,129,3,133,137,219,1,67,131,2,244,141,178,159,136,136,142,114,113,140,30,61,146,86,174,252,202,116,192,102,71,216,29,55,7,13,232,7, +163,40,197,44,72,82,160,111,199,28,86,160,175,64,159,123,181,96,253,85,160,143,13,9,203,248,194,185,201,110,78,116,116,87,26,55,110,4,125,247,221,231,66,178,236,40,172,242,101,166,173,64,223,222,150,244, +37,222,212,170,208,87,133,126,25,24,10,62,142,7,78,44,7,15,22,50,139,223,105,144,47,238,122,210,173,226,147,11,86,145,58,117,234,132,190,246,218,107,82,244,173,64,255,42,67,248,43,166,13,10,244,249,44, +24,210,190,125,123,116,116,151,205,255,194,133,115,229,86,108,156,154,113,8,197,153,206,236,173,217,104,125,130,101,173,100,105,203,148,57,140,26,15,148,76,44,95,254,149,244,244,194,231,113,245,240,252, +169,83,167,122,165,183,21,50,151,182,109,219,134,241,252,78,199,27,241,5,193,22,93,211,164,215,10,142,249,184,91,226,200,143,95,4,71,36,51,109,35,80,227,129,117,24,119,60,248,120,224,162,67,81,10,106, +60,12,228,204,129,167,115,111,175,176,138,80,136,42,244,21,232,87,192,95,44,115,68,181,220,55,73,179,42,204,229,249,3,47,21,232,155,28,121,203,115,218,159,191,70,176,95,163,65,7,123,68,189,189,95,192, +35,173,64,223,174,11,81,129,190,2,125,5,250,10,244,21,232,59,23,232,95,186,4,233,170,161,210,15,46,31,183,69,161,191,109,219,54,129,160,144,96,7,219,82,192,22,160,63,115,230,76,186,233,166,155,164,179, +59,172,202,209,48,253,187,239,190,14,104,74,120,210,203,4,21,232,3,43,243,198,72,108,247,89,102,39,9,149,158,61,187,59,27,232,207,154,53,83,20,250,157,58,117,18,177,59,30,147,39,79,116,46,208,47,46,190, +40,115,184,65,131,103,100,78,15,24,48,128,249,248,40,233,238,110,7,12,13,42,208,71,81,202,103,159,125,194,41,172,153,156,214,90,111,58,96,5,250,174,61,81,233,201,133,47,46,233,55,30,19,3,36,55,146,50, +51,87,240,104,94,109,185,175,10,125,31,114,108,8,124,142,29,243,221,217,125,28,150,178,248,248,216,82,247,250,96,212,120,248,171,91,132,34,233,228,201,227,210,209,82,45,247,237,130,161,170,208,87,133, +190,199,118,222,43,197,95,29,92,7,50,192,140,140,12,105,35,203,165,117,153,99,199,142,173,94,206,86,0,153,34,46,159,72,69,159,217,196,196,4,46,213,156,43,61,194,97,254,94,57,35,172,64,127,131,232,197, +21,232,43,208,119,237,162,84,161,239,165,49,135,81,227,1,15,4,168,158,15,29,58,192,124,124,185,129,155,139,161,110,182,156,84,87,160,207,21,7,235,215,151,212,120,40,208,175,8,242,112,249,68,72,100,100, +228,40,195,62,3,245,31,115,230,164,178,47,228,14,153,139,199,143,23,241,90,174,10,253,10,1,150,101,186,165,64,223,36,205,82,160,95,89,132,54,232,35,125,45,2,183,124,33,94,139,32,117,164,49,2,10,244,77, +46,129,150,231,180,2,125,5,250,10,244,21,232,43,208,15,136,222,218,166,208,223,185,243,39,54,50,251,137,190,248,226,115,91,4,239,182,0,125,88,146,163,89,58,112,243,163,143,62,202,246,138,57,65,21,188, +7,93,161,191,101,203,22,9,24,206,245,16,187,195,170,188,67,135,246,244,235,175,69,65,229,227,65,5,250,185,185,185,116,239,189,247,82,211,166,77,69,33,145,148,148,196,218,241,1,44,70,248,41,168,124,60, +168,10,125,20,166,212,171,87,143,237,4,90,136,66,127,232,208,33,244,222,123,83,131,26,176,161,12,13,138,66,223,0,250,48,132,239,209,163,27,43,244,7,81,106,234,251,194,198,171,4,208,7,12,61,123,246,152, +165,128,21,232,43,208,63,115,132,151,191,195,165,92,70,45,247,21,232,151,153,18,254,172,18,222,244,227,10,244,43,7,55,171,229,254,213,203,90,48,231,176,187,148,85,21,250,10,244,21,232,43,208,95,47,250, +112,148,20,161,15,0,140,123,220,87,9,5,250,238,124,67,21,250,60,85,80,186,182,103,207,78,246,83,216,199,197,175,135,197,199,99,240,224,193,70,45,105,49,60,16,198,140,25,19,198,245,165,55,248,109,43,96, +188,80,129,254,196,9,226,187,231,170,212,61,27,23,23,7,3,20,143,109,50,45,87,214,120,123,129,2,125,147,52,43,232,240,83,21,250,38,71,222,50,71,84,54,110,114,100,131,62,167,175,197,200,7,60,61,20,232,155, +156,46,150,71,90,129,190,2,125,5,250,10,244,175,35,160,15,19,237,96,11,222,109,3,250,59,118,108,227,6,166,195,197,16,30,218,241,96,11,222,109,1,250,35,70,140,160,219,110,187,141,106,213,170,69,207,61, +247,28,63,158,101,168,191,51,160,146,9,119,193,123,208,129,254,137,19,39,4,230,227,209,166,77,27,54,130,127,93,76,225,39,79,158,224,92,160,95,92,92,44,129,194,114,31,14,133,48,131,199,99,214,172,25,65, +229,227,65,7,250,152,195,225,225,77,8,6,196,131,7,15,226,174,123,105,220,209,253,223,166,249,184,217,36,124,208,129,62,4,239,43,86,252,139,214,173,251,222,210,8,91,129,161,65,87,232,87,150,186,89,45,247, +85,161,175,10,253,248,184,82,91,129,203,151,127,183,180,74,148,93,214,204,182,141,240,212,127,28,114,191,163,71,125,123,33,136,235,68,183,110,177,52,99,198,59,162,106,187,120,241,116,208,215,97,247,198, +28,10,244,213,114,223,199,42,81,150,124,169,66,223,46,91,12,163,37,189,97,166,13,246,8,144,132,86,200,46,204,113,152,23,136,206,238,57,195,171,50,76,236,104,21,202,125,198,165,133,213,136,17,67,164,149, +4,174,112,85,232,87,64,111,213,114,127,243,230,213,124,30,220,42,30,234,240,82,247,215,60,231,10,31,87,203,125,42,189,48,85,161,175,10,125,147,237,232,21,232,43,208,55,73,150,140,61,64,223,190,125,67, +177,39,232,222,189,123,42,151,63,100,114,155,203,28,254,182,8,7,9,126,92,114,149,70,224,43,190,47,98,239,200,28,248,41,113,33,10,108,147,58,115,119,203,80,127,25,164,101,186,85,246,131,20,232,155,252, +107,7,60,210,254,254,137,3,121,157,6,29,200,232,89,121,109,192,35,173,64,223,174,11,81,129,190,2,125,5,250,10,244,175,19,160,191,121,243,70,118,75,94,197,214,157,31,7,85,240,110,27,208,223,190,125,171, +52,71,15,13,13,149,238,238,96,228,103,206,156,8,154,224,221,22,160,143,102,233,33,33,33,244,216,99,143,81,171,86,173,196,122,31,118,229,231,206,157,12,10,31,183,5,232,255,252,243,207,84,189,122,117,106, +222,188,57,90,1,74,89,252,176,97,67,68,162,26,44,84,23,84,133,62,128,62,10,83,80,231,1,193,59,124,17,0,244,23,46,12,110,75,122,91,128,62,4,239,241,76,191,70,140,24,70,31,126,56,171,234,0,125,127,248,184, +2,125,222,98,184,187,215,199,148,28,245,163,248,2,235,207,230,35,75,233,244,233,147,60,151,209,89,228,124,80,202,126,204,194,208,188,188,205,236,45,89,200,30,147,185,114,209,187,82,19,49,198,233,70,45, +247,13,161,165,149,57,188,107,215,22,143,77,78,213,114,255,143,63,78,210,239,191,31,55,229,254,109,118,14,43,208,63,125,186,136,254,252,243,87,159,45,233,131,49,135,221,113,51,254,127,255,254,221,148, +147,179,163,226,213,131,77,224,195,35,34,34,114,80,194,166,64,95,129,126,9,125,187,42,45,134,100,55,255,119,56,38,38,154,75,130,166,73,183,106,108,23,1,243,21,232,123,105,152,142,138,4,116,199,134,148, +117,246,236,89,34,180,76,72,72,216,90,150,26,148,75,64,118,236,216,49,145,187,62,113,7,157,104,90,180,104,142,72,167,177,207,197,10,97,182,94,212,76,157,146,39,57,182,2,125,5,250,235,75,26,115,168,66, +95,21,250,188,242,192,158,8,123,9,20,84,169,66,223,44,89,130,146,158,113,50,20,245,64,199,82,130,54,105,210,68,90,186,116,9,119,91,88,43,103,58,180,233,65,147,47,244,204,66,129,43,202,213,176,91,203,202, +202,162,37,75,50,104,162,2,125,147,100,73,129,190,197,129,42,151,66,48,59,175,157,240,188,128,137,237,181,248,37,52,232,202,26,245,128,71,90,129,190,201,213,196,242,72,43,208,87,160,175,64,95,129,190, +127,64,63,39,103,59,227,229,51,100,176,197,64,244,227,200,165,128,212,34,79,146,147,179,145,185,228,92,17,30,243,94,189,24,125,190,188,221,172,60,46,121,238,93,251,58,116,104,195,206,222,137,220,78,115, +1,109,220,184,158,98,99,99,5,55,131,141,159,59,119,38,40,32,201,54,160,159,151,183,83,20,250,183,223,126,187,240,241,23,94,120,129,158,127,254,121,70,204,176,25,56,23,48,31,183,5,232,255,254,251,239,220, +134,254,41,170,93,187,54,181,111,223,158,122,245,234,69,92,205,203,228,118,102,192,1,67,205,97,11,208,191,124,249,178,204,183,134,13,27,74,176,96,227,195,135,3,55,207,116,54,208,199,69,215,164,201,139, +44,120,143,102,64,58,148,19,148,243,131,22,112,97,225,78,73,116,98,126,3,237,161,185,158,79,237,150,123,31,219,46,93,58,241,252,29,72,95,126,249,25,159,170,65,109,255,186,202,101,34,43,235,59,214,117, +125,21,212,128,109,179,220,247,23,55,91,1,73,170,208,15,198,178,102,22,134,42,208,183,163,109,132,2,125,0,34,85,232,239,221,206,157,129,127,146,29,157,183,41,97,240,113,181,220,87,203,125,47,222,212,170, +208,87,160,175,64,159,147,52,117,234,212,9,101,77,45,8,22,151,45,244,98,179,168,101,226,135,128,227,16,60,17,220,77,204,176,97,71,61,8,54,240,198,126,216,204,58,236,110,218,0,220,188,122,245,215,204,26, +215,242,33,96,23,63,10,74,221,191,217,191,44,219,147,216,210,231,105,124,252,248,49,164,64,95,129,190,135,132,182,90,238,43,208,55,201,57,144,12,84,160,207,165,107,156,177,74,244,71,244,110,25,20,41,208, +183,48,53,189,90,26,85,22,113,13,244,115,252,158,30,129,126,112,32,175,215,160,3,25,61,43,175,13,120,164,21,232,155,92,77,44,143,180,2,125,5,250,10,244,21,232,251,7,244,97,8,191,97,195,6,102,229,233,44, +85,218,119,21,170,179,202,101,42,5,232,163,29,61,180,226,183,222,122,43,221,127,255,253,2,245,131,161,12,181,21,232,35,104,4,204,9,29,98,131,75,97,228,237,219,183,115,46,208,63,127,254,60,79,139,245,210, +39,224,229,151,95,38,182,233,146,76,80,82,210,192,128,49,135,173,64,31,184,249,249,231,27,151,118,120,7,212,159,63,127,78,208,112,179,45,10,125,163,138,6,206,201,232,240,62,127,254,108,110,154,126,60, +104,206,201,182,2,125,171,171,196,137,19,63,155,150,80,217,98,185,239,79,192,10,244,85,161,31,196,254,227,63,253,180,142,147,245,123,68,126,226,106,175,9,137,74,146,39,91,129,209,176,65,140,139,139,161, +105,211,222,102,81,88,166,223,30,8,86,230,176,2,125,5,250,22,65,146,2,125,5,250,10,244,85,161,239,217,218,229,234,46,12,87,252,213,85,161,175,64,223,205,95,253,74,5,194,26,174,36,203,229,10,135,195,52, +111,222,60,163,67,246,9,111,221,177,189,102,77,249,180,61,10,130,130,184,184,88,154,59,55,85,132,6,40,145,48,202,224,253,47,153,80,133,254,149,30,1,198,190,85,129,190,2,125,147,156,67,129,62,111,21,224, +69,163,64,223,10,136,84,203,125,147,215,151,101,142,104,229,175,96,215,115,53,104,187,70,182,236,251,6,60,210,10,244,237,186,16,21,232,43,208,87,160,239,48,160,127,238,156,209,229,253,146,37,220,12,37, +7,74,245,129,224,112,210,71,37,252,220,185,31,80,143,30,221,229,80,203,174,159,243,217,108,48,196,146,216,29,79,230,70,232,114,176,101,165,60,191,73,91,22,2,15,20,193,59,12,225,251,244,233,67,247,222, +123,47,53,110,252,28,127,232,14,75,1,159,113,195,28,149,2,244,11,10,118,179,228,122,158,116,120,71,195,116,116,120,111,212,168,145,223,152,195,176,103,180,21,232,95,186,244,39,254,116,244,240,195,15,139, +131,61,26,167,67,67,14,177,67,160,50,64,91,20,250,0,250,96,227,16,184,215,175,95,159,186,118,237,42,130,247,161,67,135,176,51,230,7,1,243,113,219,20,250,134,126,28,115,25,35,62,104,208,32,246,63,13,94, +75,122,91,129,62,244,227,235,215,127,207,86,114,31,177,1,113,240,90,33,43,208,15,196,120,4,21,8,86,96,168,42,244,253,41,153,240,183,255,184,42,244,85,161,239,67,63,190,119,111,158,56,118,14,31,62,220, +32,3,227,188,150,78,160,139,72,90,218,20,177,112,14,244,214,108,214,101,66,45,247,213,114,223,132,7,130,161,189,133,175,239,193,131,123,197,117,182,103,207,158,132,38,167,172,183,13,47,55,167,235,214, +173,91,189,101,203,150,220,37,181,51,155,236,12,102,147,157,197,180,103,207,54,105,25,81,25,109,35,12,187,114,85,232,171,66,95,21,250,170,208,223,192,233,134,245,98,75,158,157,157,37,22,229,184,203,26, +203,26,86,9,5,250,88,196,95,122,233,165,16,174,249,159,143,140,15,50,63,176,58,68,109,179,113,106,198,33,20,103,58,179,230,57,238,109,35,208,39,0,223,163,109,4,76,27,80,50,177,124,249,87,212,187,119,111, +217,28,113,219,170,249,83,167,78,181,158,97,66,224,10,244,21,232,155,228,28,10,244,21,232,91,152,42,198,222,86,129,190,201,65,11,152,216,86,22,90,118,255,28,13,186,178,70,61,224,145,86,160,111,215,133, +168,64,95,129,190,2,125,7,1,253,101,203,150,209,167,159,126,42,254,118,86,65,82,165,3,125,24,194,143,28,57,146,110,185,229,22,226,53,90,52,228,191,254,122,204,47,62,94,105,64,255,215,95,255,77,255,243, +63,255,67,143,60,242,8,53,107,214,140,90,183,110,205,143,86,1,9,222,109,5,250,192,204,240,63,64,217,4,44,247,145,134,29,48,96,0,55,77,239,199,39,245,156,128,248,184,173,64,31,129,191,242,74,75,226,20, +131,212,125,0,234,191,247,222,52,238,152,125,36,32,253,184,237,64,31,166,13,109,219,182,102,107,129,4,122,247,221,41,65,235,240,110,59,208,191,116,233,55,58,113,226,96,64,83,2,30,8,238,142,157,10,244, +173,174,195,238,117,74,10,244,93,219,11,247,118,244,49,232,85,223,165,75,20,87,134,245,167,47,190,88,202,43,2,186,49,252,233,215,141,195,147,105,131,89,24,170,64,95,129,190,2,125,182,118,153,49,227,29, +174,6,91,69,23,47,6,175,18,204,138,213,179,42,244,85,161,175,10,125,85,232,171,66,191,116,159,84,46,107,170,150,251,10,244,175,232,218,189,38,213,21,232,187,153,54,108,216,240,131,212,128,228,231,111, +231,67,45,180,46,5,98,218,208,163,71,15,169,64,224,74,132,244,228,228,228,176,138,80,72,133,248,162,67,135,14,55,176,72,38,12,98,25,104,94,240,166,112,34,68,201,195,169,83,135,164,81,93,81,209,1,182,212, +202,231,18,138,29,220,180,110,51,193,98,203,189,40,5,155,31,20,168,32,208,220,220,45,92,54,7,19,136,125,92,8,126,152,191,223,89,218,231,2,239,143,146,137,49,99,198,132,113,125,233,13,126,7,109,188,144, +27,120,132,160,157,37,191,49,236,43,164,254,99,206,156,84,233,172,119,232,208,1,246,194,43,98,133,208,33,254,255,66,241,4,43,44,204,231,140,83,158,216,95,20,22,230,113,86,10,169,130,189,226,21,182,127, +127,1,237,216,177,157,21,27,179,74,71,23,239,155,146,146,50,106,193,130,5,94,107,60,252,70,114,106,185,175,10,125,147,88,76,129,190,197,129,10,152,216,86,22,90,246,123,245,184,22,1,122,250,204,235,115, +164,21,232,155,188,32,45,79,15,5,250,10,244,21,232,59,8,232,79,159,62,157,248,144,64,109,218,180,166,111,191,253,218,18,230,184,38,64,255,196,137,19,194,199,171,87,175,46,114,236,6,13,158,241,139,203, +84,26,208,7,102,78,75,75,165,106,213,170,73,59,122,244,30,199,163,87,175,215,253,86,213,217,14,244,17,244,71,31,45,18,91,1,88,238,67,59,14,187,229,105,211,38,5,68,111,109,7,250,128,161,245,235,215,227, +249,220,134,6,14,28,72,41,41,35,104,229,202,47,157,15,244,207,159,255,149,97,254,59,52,97,194,56,46,82,57,28,80,192,6,31,183,29,232,7,67,221,172,64,63,54,54,138,255,244,147,56,201,178,129,138,139,47,90, +46,172,82,160,207,37,71,81,81,81,57,172,254,44,175,252,228,68,140,2,253,178,150,2,101,47,186,138,96,168,90,238,255,249,231,175,116,225,194,41,46,180,58,105,90,44,108,101,132,221,101,128,170,208,55,43, +199,246,119,132,33,180,84,160,175,64,95,129,190,2,125,5,250,10,244,69,79,110,77,63,126,165,11,195,234,213,95,11,28,85,203,125,85,232,179,105,131,2,253,138,200,149,2,253,137,19,232,141,55,222,48,172,183, +206,178,241,101,182,183,198,28,150,125,77,189,189,128,139,73,66,249,116,156,200,73,199,173,252,97,135,249,113,1,38,150,16,234,112,189,134,228,245,134,13,27,38,158,96,248,138,239,241,239,248,57,158,135, +231,227,117,106,185,111,149,202,170,66,223,46,142,104,245,47,97,199,243,45,195,79,59,130,176,250,158,215,103,208,10,244,237,186,16,21,232,43,208,255,191,14,244,15,28,56,192,105,223,223,76,113,25,36,47, +33,249,3,122,131,107,61,146,141,43,86,44,19,123,115,116,82,195,41,137,183,193,233,204,220,253,171,234,229,50,251,144,230,205,155,139,33,90,100,100,132,56,216,15,29,154,200,70,240,179,249,195,214,209,234, +213,171,169,97,195,134,210,52,189,118,237,218,108,35,103,190,239,237,53,1,250,191,255,254,187,4,12,62,254,244,211,79,83,211,166,77,229,97,149,45,86,42,208,7,31,127,240,193,7,169,94,189,122,240,28,21,253, +56,108,227,126,248,225,27,191,248,120,165,0,125,4,29,31,223,77,250,4,192,118,31,130,247,81,163,70,210,185,115,39,252,198,205,149,2,244,161,189,13,15,111,34,167,17,64,253,47,191,252,212,239,128,65,13,42, +69,161,15,7,123,144,217,53,107,86,202,148,0,68,10,20,36,41,208,55,154,26,4,83,142,237,13,36,33,47,8,113,4,180,6,147,38,77,148,131,48,95,236,169,56,214,25,251,238,210,253,180,97,48,220,169,83,39,82,160, +127,252,128,244,110,57,114,100,31,29,62,92,192,10,140,171,77,27,60,101,92,33,63,129,154,227,199,31,215,74,234,65,129,190,93,184,89,129,126,160,235,48,250,224,154,165,6,10,244,21,232,123,81,134,2,28,65, +164,150,147,179,67,50,174,240,29,65,185,82,185,155,11,159,22,194,89,194,151,19,29,221,149,198,141,27,65,223,125,247,185,172,171,149,85,148,226,238,77,173,150,251,246,58,216,151,116,199,6,72,130,208,18, +186,197,137,76,13,176,247,224,198,6,169,105,105,105,229,247,30,152,47,252,4,252,119,56,38,38,154,203,141,167,201,155,96,187,136,96,237,13,120,149,124,22,30,152,26,80,134,66,104,233,194,28,160,13,157,189, +202,160,106,212,168,17,202,125,198,129,37,104,196,136,33,50,175,113,106,198,222,1,210,84,79,230,57,102,246,18,120,15,51,254,234,112,255,134,246,22,82,86,40,67,17,7,48,71,122,122,122,104,133,218,45,214, +212,38,242,78,239,44,70,123,209,162,57,114,204,135,19,21,14,161,129,212,218,121,54,132,191,186,97,58,180,187,16,11,67,123,235,18,10,159,69,43,228,178,169,96,85,232,239,182,208,73,68,45,247,141,249,163, +10,125,85,232,211,223,76,129,34,5,250,10,244,77,146,37,99,117,233,219,183,111,40,246,4,221,187,119,79,229,242,7,110,200,20,149,227,218,247,158,229,175,151,112,11,118,125,197,247,236,195,215,37,135,247, +18,153,188,63,78,197,235,202,222,154,173,0,80,83,115,186,162,55,84,160,111,242,175,29,240,72,91,249,179,6,235,185,26,116,176,70,210,215,251,4,60,210,10,244,237,186,16,21,232,43,208,255,191,14,244,83,83, +83,153,33,126,206,41,134,227,62,5,239,215,28,232,67,240,142,99,126,72,72,8,133,133,133,209,227,143,215,37,136,133,205,240,241,107,2,244,209,48,253,208,161,67,116,243,205,55,139,229,62,183,221,20,57,246, +107,175,117,176,36,120,175,116,160,143,198,184,247,221,119,159,216,238,3,232,3,53,15,31,62,212,217,64,31,130,119,168,244,91,180,104,193,150,251,253,165,130,119,254,252,57,126,243,241,74,3,250,224,34,29, +58,180,99,23,251,62,180,96,193,92,191,3,174,84,160,239,126,209,41,208,231,12,45,188,248,124,166,122,177,91,99,132,129,243,27,3,244,78,220,128,23,53,28,159,113,39,106,248,170,255,101,170,176,42,24,48,84, +129,62,138,82,204,220,56,202,90,10,248,147,211,86,160,143,178,31,179,14,246,254,140,176,129,57,20,232,43,208,223,85,177,148,21,250,196,163,71,139,100,123,224,74,175,141,46,135,153,249,7,73,252,96,154, +164,150,251,236,32,107,190,198,195,224,227,10,244,125,221,56,204,182,62,241,78,111,87,114,133,216,74,49,34,134,175,111,70,70,134,148,133,34,69,60,118,236,216,234,229,230,180,251,222,35,49,49,129,210,211, +231,138,187,49,208,114,229,120,32,40,208,87,160,95,166,195,187,2,253,206,205,249,70,35,174,222,80,70,108,222,188,154,0,235,81,6,111,182,94,212,108,141,135,42,244,21,232,43,208,87,160,191,150,115,21,185, +178,103,56,118,172,136,83,15,199,101,63,140,114,53,148,95,102,101,101,209,146,37,25,82,107,167,10,125,95,252,206,253,231,10,244,77,162,184,114,91,83,43,163,124,173,159,27,48,177,189,22,191,128,6,93,89, +163,30,240,72,43,208,55,185,138,88,30,105,5,250,10,244,255,175,3,253,217,179,103,179,12,59,138,58,118,236,192,187,185,109,188,234,121,199,28,142,0,250,216,110,194,197,158,5,16,226,98,255,236,179,141,76, +113,153,107,6,244,47,95,190,204,76,60,65,2,14,15,15,23,7,123,46,221,100,219,129,153,166,249,120,165,3,253,18,235,253,15,136,181,185,236,149,16,41,206,86,73,73,73,226,98,111,149,203,84,154,66,223,104,231, +141,105,193,50,19,169,66,152,48,225,109,78,90,254,232,151,126,188,210,128,62,46,186,173,91,215,177,146,173,15,143,240,59,226,150,236,47,151,169,52,133,126,176,97,168,42,244,21,232,251,16,188,231,231,103, +75,191,69,180,47,92,186,116,137,224,11,84,194,247,235,215,175,60,190,48,148,159,157,59,119,226,142,33,241,180,112,225,92,201,89,24,171,132,2,125,214,56,86,132,234,208,209,18,13,34,145,252,169,80,99,107, +192,207,152,24,104,108,71,82,102,230,10,190,73,156,171,112,47,17,140,162,20,79,34,53,5,250,254,222,56,140,214,39,86,232,173,42,244,85,161,175,10,253,228,193,92,147,183,152,69,231,219,164,199,133,217,41, +161,64,95,21,250,126,184,253,152,165,183,170,208,199,72,225,56,100,213,79,201,215,8,195,176,33,43,235,27,54,12,132,131,253,90,182,47,216,37,253,199,113,72,6,151,103,183,137,108,79,98,75,143,9,72,126,129, +2,125,84,127,93,113,74,185,186,198,3,35,140,26,60,120,137,45,95,190,220,48,110,40,70,255,113,111,73,122,175,169,94,5,250,10,244,21,232,43,208,175,144,5,89,6,69,170,208,55,137,224,124,26,237,84,22,117, +13,228,115,252,158,30,129,124,104,160,175,213,160,3,29,65,179,175,15,120,164,21,232,155,92,77,44,143,180,2,125,5,250,126,0,253,109,219,182,208,233,211,39,203,229,180,47,94,60,205,255,94,36,117,215,72, +254,64,28,129,179,33,188,248,96,109,215,187,119,105,191,162,98,110,5,62,191,85,171,86,97,76,37,110,168,104,37,169,112,78,115,19,244,48,54,253,75,47,113,176,143,100,17,112,27,54,221,235,46,45,144,161,10, +205,203,219,41,202,80,56,41,163,203,123,189,122,79,242,177,234,71,175,124,220,17,64,255,226,197,139,194,195,239,184,227,14,122,236,177,199,164,211,251,75,47,53,243,41,120,191,166,64,31,168,174,90,181, +191,75,192,64,205,176,93,102,95,38,103,3,125,144,175,38,77,94,188,202,197,126,228,200,20,203,124,188,210,129,254,182,109,27,197,197,30,109,32,144,100,89,178,100,177,95,124,188,82,129,62,248,56,156,56, +231,204,73,101,96,249,179,95,1,95,51,133,190,213,26,15,79,118,229,10,244,21,232,43,208,103,83,234,18,51,190,40,86,16,247,167,47,190,88,42,123,137,96,118,97,48,11,146,20,232,155,93,214,80,111,23,40,53, +40,44,204,23,189,140,47,221,248,56,236,230,226,227,99,185,222,110,138,36,193,131,93,88,165,64,31,27,110,85,232,155,232,36,82,17,249,82,133,190,42,244,249,128,235,9,213,169,229,190,90,238,243,141,11,21, +7,235,215,171,66,95,129,126,133,166,13,10,244,177,31,105,219,182,109,24,218,89,98,247,199,61,40,104,250,244,105,98,205,82,84,180,87,18,138,72,178,192,117,13,53,207,185,185,155,164,185,135,175,198,28,88, +135,209,7,3,141,57,208,231,2,69,41,243,230,205,51,74,38,208,103,49,61,57,57,217,191,246,153,8,26,217,75,78,119,133,113,71,29,180,209,44,70,240,73,73,3,57,176,141,116,234,212,33,201,119,160,239,27,138, +180,97,98,134,19,7,42,114,145,25,53,110,28,155,54,101,202,255,35,80,252,194,232,213,130,186,108,116,18,65,99,14,163,138,6,239,207,101,199,243,199,140,25,19,198,13,214,253,207,154,26,233,86,181,220,87, +133,190,73,178,164,64,223,226,64,169,66,223,44,30,14,214,243,44,195,207,96,125,112,32,239,115,125,6,173,64,223,228,106,98,121,122,40,208,87,160,239,7,208,255,241,199,53,108,133,184,166,234,0,125,136,29, +239,189,247,94,186,235,174,187,152,143,55,102,47,166,2,143,124,220,17,64,191,184,184,152,79,31,7,232,206,59,239,164,251,239,191,95,128,126,243,230,205,89,248,30,85,33,31,191,230,64,31,124,28,65,163,203, +59,250,6,176,63,19,11,31,251,153,18,188,95,19,133,190,33,101,197,40,195,197,126,192,128,1,210,154,62,45,109,186,37,220,92,233,64,31,218,219,89,179,102,72,208,220,53,146,222,124,115,12,173,90,181,220,114, +87,214,74,7,250,151,47,255,206,7,219,157,50,186,184,216,252,105,35,171,10,125,212,41,97,149,168,12,62,142,222,162,152,223,72,77,168,229,190,63,108,209,10,12,85,133,190,63,35,92,214,193,94,129,190,139, +216,142,134,225,122,92,92,12,187,162,188,205,165,149,153,126,91,10,88,153,195,187,188,24,194,43,208,183,98,218,96,118,14,123,202,105,171,229,190,39,127,245,96,204,97,119,122,171,64,95,129,190,2,253,87, +94,217,10,138,53,98,196,16,169,219,7,102,67,229,151,2,125,5,250,174,204,146,42,244,189,172,18,240,64,192,67,129,190,2,125,5,250,38,109,5,12,124,134,85,133,101,79,217,232,26,133,27,16,172,243,39,77,154, +40,190,118,63,254,168,10,125,85,232,151,27,129,161,67,135,254,7,172,14,187,116,233,18,206,83,6,186,2,52,29,195,33,25,69,228,248,138,239,217,126,38,38,28,29,157,210,210,210,254,35,16,90,139,215,90,70,114, +129,126,96,48,94,175,65,7,99,20,205,188,199,245,57,210,10,244,21,232,187,29,14,88,219,157,205,146,107,185,141,71,70,70,176,159,122,39,134,157,37,174,179,208,124,193,19,21,9,76,8,124,240,152,49,227,29, +154,50,101,60,255,251,8,238,146,157,196,140,49,129,61,195,162,197,59,12,239,195,21,150,216,22,52,55,115,1,90,42,188,226,121,27,194,112,115,148,209,64,12,193,70,70,118,100,245,81,87,233,44,12,29,57,108, +114,33,82,131,137,43,50,174,80,36,225,177,126,253,42,90,179,102,133,28,146,225,118,136,110,128,105,105,211,228,224,108,4,143,247,101,125,250,168,198,141,27,135,152,9,190,194,213,227,133,23,94,184,161, +97,195,134,97,140,142,75,107,77,35,35,95,227,145,141,160,81,163,6,211,204,153,239,139,232,125,203,22,20,198,102,179,206,118,22,87,160,103,49,173,253,189,84,66,229,88,133,254,111,191,157,166,23,95,124, +145,66,67,67,233,129,7,30,160,182,109,91,59,27,232,3,213,189,247,222,52,81,233,195,95,253,213,87,95,165,86,173,94,165,239,191,135,215,239,25,143,184,217,17,64,63,53,117,58,61,244,208,67,212,166,77,27, +113,49,198,227,205,55,71,250,228,227,215,20,232,159,63,255,43,91,239,63,198,6,15,29,104,208,160,65,82,19,61,127,254,108,211,184,249,154,0,125,144,175,201,147,223,150,214,244,56,205,44,93,186,152,206,157, +59,33,110,246,102,61,81,175,9,208,55,154,77,35,29,172,64,63,58,122,43,26,147,185,175,223,87,173,211,188,200,227,191,195,184,121,224,198,129,117,88,129,62,167,140,61,121,32,184,107,111,161,230,128,56,2, +70,150,56,233,243,32,94,224,163,92,42,142,117,229,110,227,220,120,163,122,203,150,45,51,97,229,18,27,27,37,183,102,220,233,138,139,47,242,115,47,5,164,31,183,2,146,20,232,43,208,247,209,206,91,45,247, +213,114,223,75,201,132,129,155,21,232,43,208,103,185,159,187,12,176,68,44,188,74,100,128,7,15,238,149,54,178,112,209,226,59,98,14,18,152,94,239,136,81,81,157,249,176,170,150,251,228,173,78,73,21,250,10, +244,43,20,11,171,66,95,21,250,170,208,247,73,183,84,161,175,10,125,147,156,195,85,174,172,64,159,157,44,18,61,181,62,241,69,3,252,230,136,72,85,33,29,197,230,171,169,104,5,200,37,21,57,252,109,145,171, +172,226,18,182,2,40,34,119,125,207,62,124,93,114,56,57,153,201,105,224,84,188,206,159,96,45,49,151,138,126,115,5,250,38,175,47,191,167,135,175,121,103,231,207,53,104,59,71,215,107,126,218,159,15,85,160, +111,215,133,168,10,125,5,250,126,40,244,97,8,245,237,183,95,211,216,177,99,56,207,177,157,17,243,111,194,199,29,11,244,193,101,208,39,224,198,27,111,20,165,126,237,218,181,185,235,251,27,229,4,239,142, +81,232,27,218,219,103,159,109,36,173,233,81,141,0,220,220,186,117,107,103,3,125,56,39,63,253,244,83,244,212,83,79,161,211,158,240,113,180,166,63,123,246,88,133,244,246,154,2,125,8,222,71,141,74,38,46, +104,97,104,26,47,42,125,180,166,223,183,47,215,20,31,191,102,64,31,58,152,129,3,251,113,171,237,46,28,240,63,104,197,138,127,153,10,216,128,161,215,20,232,131,203,88,173,64,80,203,125,5,250,38,187,178, +42,208,199,178,22,12,62,142,139,206,87,255,113,248,73,30,61,122,72,196,17,0,69,56,233,163,18,190,220,105,220,85,26,175,150,251,254,58,216,43,208,87,160,175,64,63,54,70,138,180,81,243,140,38,95,102,166, +132,149,194,42,51,244,86,21,250,170,208,87,133,190,42,244,125,185,127,43,208,87,160,175,64,95,129,190,90,238,251,192,24,150,144,156,42,244,19,18,182,42,208,183,194,19,21,232,219,197,17,173,252,21,236, +122,174,165,213,195,174,32,172,190,239,245,25,180,2,125,187,46,68,5,250,10,244,253,4,250,232,123,59,103,206,76,246,68,24,44,29,177,139,139,127,115,54,208,135,208,50,57,121,40,133,132,132,136,74,159,69, +153,44,196,124,231,42,62,238,56,160,15,62,142,128,107,214,172,73,108,198,64,220,246,138,91,212,183,119,174,66,223,104,133,124,247,221,119,75,21,2,119,41,115,137,222,147,156,13,244,65,190,94,124,241,121, +106,214,172,25,177,47,147,64,253,143,63,94,104,138,143,95,51,160,143,42,154,63,255,60,45,42,253,126,253,250,112,127,184,153,180,127,127,94,213,80,232,43,208,231,114,230,104,85,232,243,28,54,76,27,204, +112,153,178,254,234,222,112,179,2,125,5,250,7,242,168,162,134,233,232,104,121,232,80,33,59,94,228,138,149,140,75,107,16,227,169,10,1,102,124,103,99,98,186,138,1,20,252,148,46,93,58,199,207,171,188,146, +9,163,103,168,2,253,96,174,18,187,119,111,173,80,123,187,119,111,30,157,60,121,156,173,189,134,139,165,23,236,25,61,77,15,105,110,16,31,31,39,158,96,176,216,194,173,57,144,101,77,45,247,217,0,211,107, +57,80,172,2,253,157,210,81,184,160,224,39,242,53,135,49,29,85,161,239,201,180,193,236,94,194,252,8,151,208,91,244,110,70,43,228,253,251,11,104,34,55,234,133,59,16,151,55,167,186,155,184,122,244,97,130, +249,30,140,248,240,38,7,248,238,5,215,53,60,236,116,176,199,103,225,1,243,6,148,234,239,216,177,93,44,191,224,11,5,85,157,87,113,14,87,154,135,242,161,84,45,247,43,110,231,173,64,95,129,190,2,125,5,250, +10,244,21,232,243,8,112,51,210,80,46,119,79,68,230,199,117,139,189,208,181,107,87,41,131,199,33,20,246,160,195,134,13,147,19,7,190,226,123,252,59,126,142,231,97,47,129,215,113,171,77,5,250,150,128,168, +2,125,187,56,162,85,142,109,199,243,45,77,5,59,2,240,231,61,175,207,160,21,232,219,117,33,42,208,87,160,31,0,208,71,78,123,252,248,183,120,239,49,216,249,10,125,0,253,95,127,61,38,250,113,116,122,127, +244,209,71,169,94,189,39,233,135,31,190,41,229,227,142,4,250,57,57,217,210,43,224,201,39,159,164,118,237,218,49,208,71,215,134,216,114,124,220,17,150,251,6,208,135,184,29,214,2,236,99,45,219,81,40,245, +39,79,158,224,149,143,95,115,133,62,128,62,108,4,106,213,42,41,157,24,48,96,128,64,253,79,62,89,232,147,143,95,83,160,15,106,128,57,220,190,125,91,26,61,58,133,62,253,244,99,159,1,59,70,161,15,203,125, +92,116,102,123,4,168,66,95,21,250,170,208,119,221,178,217,178,37,60,34,34,130,61,239,74,250,13,161,125,15,50,242,129,246,8,240,7,115,168,66,63,16,122,107,198,3,65,129,126,101,141,48,200,150,97,87,174, +64,223,202,173,217,151,143,135,55,242,181,105,83,38,87,222,228,201,234,133,4,166,203,177,83,129,190,244,35,247,213,92,198,60,110,86,203,253,35,54,243,113,5,250,27,100,206,218,89,129,240,227,143,43,165, +247,56,138,84,242,243,183,211,177,99,135,105,246,236,89,82,112,5,204,81,214,215,183,92,214,148,79,208,137,104,182,136,242,137,69,139,230,72,1,214,190,125,59,248,141,246,179,56,225,64,144,47,58,5,250,10, +244,21,232,43,208,87,160,175,64,95,129,126,250,85,221,37,173,64,208,128,225,167,2,125,187,56,162,149,63,163,93,207,13,120,122,216,21,88,69,239,123,125,6,173,64,223,174,11,81,129,190,2,253,0,129,62,68, +106,0,250,227,199,191,233,124,133,62,112,115,86,214,42,186,249,230,155,169,90,181,106,98,189,223,176,225,51,124,146,63,32,124,220,145,64,31,35,220,163,71,55,9,248,185,231,158,19,149,126,68,196,107,180, +117,235,186,171,248,184,163,128,62,248,120,116,116,20,61,254,248,227,146,104,1,208,31,52,40,137,114,115,179,61,210,91,71,0,125,168,234,254,249,207,217,84,191,126,125,72,167,5,232,79,157,250,142,76,143, +138,4,62,215,28,232,95,186,116,134,29,104,39,80,247,238,221,88,17,244,15,90,185,242,203,10,3,86,160,31,25,217,145,187,44,160,53,236,103,116,226,196,9,174,71,186,204,27,175,191,108,133,161,144,92,29,62, +92,64,167,78,29,98,115,147,84,185,46,84,161,31,168,148,85,21,250,10,244,203,36,225,205,170,155,85,161,143,27,135,25,193,123,48,236,202,11,11,243,249,78,90,36,178,19,87,159,197,209,158,36,216,227,176,46, +162,98,209,16,187,87,86,219,8,79,184,89,129,190,2,253,237,235,69,189,92,182,37,189,90,238,171,229,190,90,238,171,66,95,45,247,75,211,210,30,243,211,48,199,230,199,9,220,214,199,143,31,67,155,55,175,22, +83,17,156,154,113,28,178,82,205,232,105,29,94,191,126,21,119,122,42,169,241,88,189,250,107,97,231,5,5,185,92,7,117,152,45,235,230,25,198,58,248,252,230,158,146,235,94,147,234,92,215,63,138,95,84,28,23, +23,75,115,231,166,82,78,206,70,49,124,50,26,213,225,60,87,145,1,212,118,47,55,142,245,235,175,174,241,216,178,101,173,4,124,232,208,1,90,190,124,57,39,123,122,32,232,226,148,148,148,81,222,104,128,215, +160,95,122,233,165,144,246,237,219,207,199,104,247,232,209,93,170,124,97,229,130,160,141,122,59,20,175,88,179,118,41,9,184,196,124,36,147,182,111,223,200,5,48,187,100,132,151,47,255,74,108,24,241,121, +172,220,152,63,117,234,212,16,203,65,227,5,109,219,182,13,227,212,86,58,222,136,173,196,105,250,244,105,156,45,218,66,69,69,123,101,154,32,120,252,34,249,249,217,252,239,190,46,186,146,41,1,167,20,76, +25,148,253,28,60,88,200,65,23,200,148,112,141,48,2,79,79,78,78,14,243,155,185,112,77,245,13,92,30,20,198,117,213,24,241,98,4,159,148,52,80,70,8,199,124,212,53,21,21,29,96,183,149,124,30,241,29,236,5,182, +153,96,177,229,190,151,64,53,35,230,44,2,197,47,12,107,23,84,54,162,78,41,55,119,167,81,225,40,83,2,35,60,102,204,152,48,150,111,223,224,119,208,198,11,121,180,67,34,35,35,49,199,229,226,196,116,65,94, +34,47,111,135,204,197,227,199,139,164,141,26,76,204,14,28,216,195,115,29,127,129,60,153,171,40,191,220,191,31,173,216,246,242,5,188,95,188,104,96,237,130,194,42,99,116,241,190,152,195,11,22,44,240,58, +37,188,218,191,248,194,107,184,154,89,232,158,237,170,253,20,79,153,73,147,38,210,210,165,75,164,239,27,92,215,16,24,78,28,176,216,58,122,180,72,70,53,39,103,7,175,20,89,180,100,73,134,152,231,184,188, +104,164,134,148,187,194,227,253,60,174,18,126,205,105,79,47,82,133,190,73,154,85,118,240,2,134,159,10,244,77,142,124,192,35,237,235,226,181,227,231,26,180,29,163,106,105,195,100,54,0,5,250,118,93,136, +10,244,21,232,7,8,244,255,250,235,156,88,238,15,27,54,72,118,131,232,104,137,253,247,158,61,219,100,219,138,67,192,119,223,125,46,149,240,189,123,139,145,159,108,77,113,232,104,213,170,85,24,182,196,126, +111,77,159,127,254,249,48,62,118,201,33,128,183,166,108,61,222,134,107,244,187,179,149,254,36,65,117,121,121,59,121,55,119,146,251,1,92,188,10,213,189,247,222,100,186,233,166,155,136,87,22,129,250,67, +135,14,114,54,208,71,78,251,206,59,239,160,7,31,124,144,248,200,38,80,63,50,50,194,217,64,31,168,238,158,123,238,161,198,141,27,139,97,20,160,126,255,254,137,206,6,250,144,1,198,198,118,45,237,23,0,168, +63,119,238,76,231,3,253,131,7,119,115,231,234,72,158,255,189,104,230,204,25,162,68,242,149,113,53,82,19,56,71,38,37,13,48,46,206,108,28,58,124,238,167,249,10,22,157,11,230,97,116,116,132,92,116,155,54, +173,163,243,231,225,67,13,54,110,158,143,35,80,179,158,168,70,106,2,39,125,28,156,113,14,197,113,12,62,102,21,6,125,215,93,119,133,182,104,209,66,44,66,21,232,115,170,225,196,137,159,125,42,146,144,252, +65,46,5,169,9,156,244,125,154,177,98,183,198,139,122,42,143,242,133,46,93,58,113,155,147,129,178,22,99,29,182,50,37,2,5,73,106,185,95,153,134,240,170,208,175,44,253,184,90,238,155,169,64,8,150,208,82, +129,126,160,235,176,25,253,184,42,244,205,110,126,252,245,64,80,203,253,202,25,97,85,232,171,66,191,66,57,54,78,44,96,139,64,117,46,242,117,22,173,144,125,30,183,234,212,169,19,202,199,126,16,39,57,227, +173,88,177,140,223,100,131,144,218,96,251,120,32,105,115,133,143,175,21,122,11,24,234,114,79,33,110,31,145,93,214,7,1,191,128,2,253,93,187,182,152,192,205,10,244,169,220,84,81,160,175,64,223,36,231,192, +82,163,64,95,45,247,45,76,23,76,25,5,250,38,7,76,217,184,89,52,29,232,243,174,207,145,86,160,111,215,133,168,64,95,129,126,128,64,31,212,224,210,165,223,184,17,233,54,122,235,173,81,244,237,183,95,56, +31,232,131,143,247,233,243,134,40,245,195,194,194,232,177,199,234,48,139,92,227,92,133,190,33,82,67,21,2,122,5,192,201,158,169,25,55,85,138,42,229,227,142,83,232,3,232,255,241,199,191,197,90,32,60,60, +156,71,188,143,64,253,183,222,26,93,142,222,58,70,161,15,46,115,224,192,46,122,232,161,135,136,233,175,88,239,67,83,248,209,71,243,189,242,113,71,40,244,129,57,150,46,77,167,54,109,90,81,191,126,125,233, +227,143,23,74,178,167,162,22,156,10,244,85,161,239,195,98,84,129,126,160,14,246,86,212,205,144,159,64,205,1,113,4,180,6,104,154,199,186,129,204,126,253,250,85,47,167,102,86,203,125,47,69,41,170,208,119, +165,188,164,179,123,92,92,12,77,155,246,54,151,86,102,242,63,163,216,234,156,229,14,239,86,230,176,183,156,182,42,244,255,248,227,164,233,230,50,102,231,176,39,25,32,36,84,80,36,249,242,66,72,66,29,92, +183,110,177,52,99,198,59,4,161,227,197,139,167,121,51,111,206,180,33,88,37,19,240,187,86,160,95,57,184,89,45,247,213,114,191,12,110,94,85,170,189,133,66,20,26,70,8,45,125,150,109,226,6,195,45,213,66,185, +156,94,10,100,71,140,24,34,117,251,64,204,106,185,207,122,91,44,107,37,85,52,106,185,175,10,125,181,220,247,90,239,97,28,107,20,232,43,208,55,201,57,20,232,119,238,124,24,205,101,80,9,230,169,176,202, +23,103,244,155,35,246,237,219,55,148,111,247,157,187,119,239,158,138,188,4,139,104,184,227,95,231,34,151,79,194,37,151,92,15,95,207,226,223,187,116,233,146,195,123,137,76,118,150,128,194,163,179,63,193, +150,203,123,248,250,237,188,253,92,129,190,201,235,203,239,233,225,239,95,38,24,175,211,160,131,49,138,102,222,35,224,145,86,160,111,215,133,168,64,95,129,126,16,128,62,82,196,23,47,158,225,195,235,247, +162,210,207,201,217,236,108,133,190,145,211,6,252,12,9,9,17,168,255,194,11,207,139,100,21,15,152,169,33,53,129,83,57,42,225,225,20,7,227,53,236,87,96,11,198,40,197,63,155,46,46,179,15,105,222,188,185, +24,162,65,217,28,17,209,150,237,1,18,233,195,15,103,139,186,25,238,223,197,197,197,94,165,172,223,127,191,66,2,126,236,177,199,4,234,191,250,234,171,244,206,59,255,16,62,238,72,160,15,62,158,148,148,72, +15,60,240,0,177,33,3,163,230,126,204,200,251,51,97,152,116,21,31,119,20,208,71,78,123,222,188,153,50,202,48,126,128,48,97,204,152,209,98,189,239,137,143,59,6,232,159,59,119,130,237,234,98,24,234,183,225, +178,137,49,244,249,231,75,170,6,208,135,12,16,62,31,190,44,5,96,207,168,10,125,24,143,84,180,74,4,83,44,172,64,95,129,62,95,116,190,148,161,170,208,15,230,69,7,119,9,111,158,168,170,208,87,133,190,15, +25,160,2,125,79,124,60,24,69,41,176,198,53,80,157,90,238,251,218,173,5,82,148,98,192,80,56,39,195,64,10,246,185,25,25,25,82,226,134,20,241,216,177,99,203,151,184,185,187,3,37,38,38,80,122,250,92,177,137, +195,153,174,114,74,38,84,161,175,64,95,21,250,87,165,124,161,165,53,92,189,213,114,223,67,141,135,90,238,3,35,40,208,87,160,111,146,115,40,208,87,160,111,97,170,24,144,82,129,190,201,65,11,152,216,154, +193,194,193,126,142,6,29,236,17,245,246,126,1,143,180,2,125,187,46,68,5,250,10,244,131,4,244,33,199,134,192,231,199,31,87,209,198,141,63,84,13,160,15,155,242,231,159,127,142,110,187,237,54,113,179,95, +188,248,159,206,6,250,160,6,93,187,118,38,118,15,151,78,239,92,28,64,175,188,210,146,253,17,182,58,23,232,131,143,223,125,247,221,244,248,227,143,75,73,4,151,121,82,175,94,189,156,13,244,65,13,94,122, +169,41,61,247,220,115,244,250,235,175,19,172,247,71,141,26,233,108,160,127,225,194,41,182,200,248,146,231,244,243,220,133,56,94,160,254,151,95,126,42,126,233,158,252,213,29,163,208,7,208,71,144,40,151, +248,233,167,245,94,3,86,160,63,115,230,251,210,73,68,129,254,145,125,21,182,224,84,203,125,127,229,216,254,104,111,21,232,43,208,47,248,73,122,227,170,66,31,200,23,251,225,64,166,68,32,48,84,129,190,2, +125,166,3,238,141,122,213,114,95,129,190,151,41,97,116,199,86,133,62,74,126,252,217,252,160,246,223,108,195,116,181,220,223,188,121,181,236,19,80,35,138,230,140,56,211,249,170,23,173,120,132,75,26,166, +95,233,17,176,70,218,124,163,195,59,26,166,187,84,163,104,19,238,177,59,182,215,252,52,187,79,160,191,120,49,164,28,115,231,66,167,178,145,123,135,163,193,249,46,121,64,246,129,239,43,42,191,196,69,85, +126,29,86,203,125,181,220,47,45,251,129,61,17,138,3,49,85,80,186,182,103,15,166,216,62,150,143,28,150,198,28,70,159,11,76,69,86,58,207,31,51,102,76,216,240,225,195,253,111,84,106,128,26,150,38,133,176, +94,5,115,28,23,135,244,46,132,30,11,157,245,14,29,58,32,54,113,71,143,30,226,255,47,228,185,190,135,231,122,62,207,245,60,185,184,10,11,243,104,255,126,92,184,123,165,214,110,255,254,2,177,118,153,61, +123,150,209,73,4,23,222,137,148,148,148,81,11,22,44,8,49,3,155,44,129,34,181,220,87,133,190,73,44,166,64,223,226,64,89,186,16,205,92,217,149,241,28,13,186,50,70,217,167,209,142,153,32,20,232,155,188,32, +45,207,105,5,250,10,244,131,12,244,79,159,46,162,157,59,55,85,13,160,143,140,235,134,13,63,208,147,79,62,65,213,171,255,47,11,230,59,58,31,232,131,143,35,216,251,238,187,143,158,126,250,105,161,183,145, +145,175,9,4,133,219,33,52,181,56,0,227,224,60,119,238,7,70,143,113,254,229,34,230,119,236,216,209,235,222,218,235,234,193,76,91,14,182,16,171,195,82,96,216,176,129,172,125,89,32,92,17,13,211,47,95,190, +236,213,82,192,61,167,125,251,237,183,211,51,207,60,195,13,215,163,169,103,207,158,252,120,189,148,143,59,78,161,15,160,191,121,115,22,221,127,255,253,98,189,223,191,127,127,129,250,239,190,59,185,28, +110,118,140,66,31,64,31,190,190,49,49,93,168,89,179,102,98,189,63,113,226,219,180,102,205,183,206,7,250,200,184,34,79,50,99,198,84,158,195,57,94,59,188,171,66,95,129,62,47,115,71,20,232,119,232,16,206, +139,58,123,222,117,226,2,169,120,90,184,112,174,100,130,2,181,20,240,39,167,173,64,63,16,122,107,37,167,173,10,125,85,232,171,66,63,54,134,166,76,25,207,27,155,21,132,19,135,153,41,161,10,125,110,170, +0,106,128,36,124,86,86,150,236,193,225,137,202,29,177,195,203,249,154,214,173,91,183,58,123,128,177,169,106,103,74,78,30,204,117,161,139,229,76,135,210,75,60,204,240,241,64,138,82,84,161,15,94,136,2,215, +138,122,102,89,185,113,120,102,139,106,185,63,71,60,55,112,106,86,160,47,250,241,146,41,113,133,143,175,229,193,217,197,143,130,82,182,200,43,70,182,39,247,100,143,41,4,85,232,179,71,136,187,181,75,217, +46,12,170,208,87,133,190,2,125,250,155,37,124,161,64,95,129,190,73,44,166,64,223,226,64,89,186,16,205,16,220,202,120,142,6,93,25,163,172,64,191,36,227,234,189,203,8,126,142,131,115,211,166,77,165,203, +8,26,147,249,251,151,177,60,167,21,232,43,208,183,1,232,163,238,26,201,31,148,38,227,108,136,230,122,139,22,205,161,222,189,223,48,234,165,139,219,183,111,63,159,61,216,195,216,189,222,255,90,83,102,217, +97,92,71,157,94,226,96,31,201,109,229,219,80,66,66,119,166,174,147,56,3,245,153,32,231,147,39,79,178,156,245,98,133,152,99,219,182,245,212,190,125,91,14,46,130,107,76,103,56,215,114,223,157,26,220,121, +231,29,210,158,30,194,247,167,159,126,138,165,217,159,59,27,232,207,153,243,129,88,11,52,106,212,72,166,1,192,126,239,222,61,133,143,59,18,232,131,143,15,31,62,152,106,214,172,201,83,171,3,247,14,72,18, +168,159,150,246,222,85,184,217,113,64,223,40,82,225,250,13,9,122,194,132,127,84,13,160,127,242,228,65,246,67,136,231,42,132,113,244,253,247,95,123,212,203,40,208,87,160,175,64,159,111,219,188,36,41,208, +247,100,60,98,22,36,229,229,109,22,249,73,94,94,46,177,246,5,55,37,116,3,140,41,71,183,248,31,165,223,120,76,76,87,26,55,110,36,101,102,174,224,94,227,231,248,121,254,181,164,247,167,100,194,16,169,41, +208,55,67,111,3,25,97,119,242,5,69,210,201,147,199,121,27,48,220,216,186,142,243,52,61,70,243,244,184,20,31,31,199,123,131,41,2,136,84,161,95,65,219,136,178,108,17,34,53,104,190,80,142,228,18,164,161, +5,103,146,167,145,142,193,85,26,171,64,223,31,101,168,2,253,35,54,243,113,181,220,87,203,125,181,220,87,203,125,43,166,13,10,244,21,232,43,208,87,160,223,83,14,161,216,255,14,27,54,76,78,28,248,138,239, +241,239,40,191,68,191,33,222,254,94,224,199,225,4,5,250,22,57,181,90,238,155,28,48,203,28,209,95,96,25,204,215,105,208,193,28,205,138,222,43,224,145,86,133,190,93,23,162,2,125,5,250,10,244,207,136,192, +231,200,145,66,90,182,108,49,165,166,190,91,53,128,62,148,73,247,220,115,15,221,113,199,29,244,240,195,15,83,92,92,140,179,129,62,248,120,147,38,47,74,21,66,195,134,13,137,187,166,81,235,214,173,216,78, +32,219,185,64,31,130,247,135,31,126,136,234,213,171,7,57,19,13,28,56,144,6,12,24,192,5,43,219,75,113,179,227,128,62,36,84,81,81,157,232,217,103,159,21,3,52,84,33,76,155,54,185,28,31,119,148,229,190,161, +249,234,212,233,53,158,203,177,244,222,123,83,196,35,1,174,19,238,114,108,71,2,125,112,69,79,108,209,93,66,5,201,21,106,157,78,157,58,36,214,118,174,162,150,173,220,130,226,170,26,190,178,233,48,212,249, +29,142,140,140,224,46,10,93,73,45,247,143,31,40,55,37,60,57,118,170,229,126,101,226,102,85,232,171,66,95,45,247,21,232,231,251,101,68,172,64,223,140,224,61,24,114,108,85,232,219,43,120,87,160,175,64,95, +129,190,2,125,5,250,30,114,214,21,146,0,206,6,133,177,9,188,136,115,186,117,235,70,211,167,79,19,7,250,162,162,189,114,106,198,25,15,103,186,252,252,108,254,247,77,98,66,233,189,207,69,73,23,6,8,27,112, +199,203,207,223,206,175,135,121,101,129,116,97,64,78,4,159,211,187,119,239,244,228,228,228,48,191,241,5,228,72,172,154,8,131,251,37,76,44,241,166,73,73,3,57,176,141,114,204,135,86,165,168,232,0,111,138, +242,217,169,126,7,151,14,111,230,150,130,235,174,234,194,160,150,251,174,169,98,9,20,169,66,95,129,190,73,44,166,10,125,139,3,101,233,66,172,44,140,236,235,115,52,104,95,35,20,172,159,7,60,210,10,244, +77,94,144,150,71,90,129,190,2,125,5,250,37,64,31,184,249,228,201,95,184,27,84,94,213,0,250,8,248,187,239,190,162,90,181,106,82,104,104,40,187,217,63,45,170,102,199,90,238,27,134,240,55,223,124,51,247, +12,168,46,184,153,141,73,232,149,87,90,200,177,13,164,22,205,245,208,171,14,246,209,56,214,185,172,254,71,121,187,25,249,52,249,131,105,195,208,161,137,210,35,160,160,96,183,171,55,192,95,166,122,4,24, +1,127,243,205,231,116,247,221,119,19,247,30,144,214,244,125,250,244,225,99,219,0,103,3,253,227,199,127,166,135,30,122,144,71,247,21,169,64,64,181,239,236,217,169,87,193,80,71,2,253,129,3,251,73,191,128, +254,253,19,217,126,255,189,170,5,244,191,252,114,169,156,220,61,25,194,43,208,39,194,133,119,137,31,127,218,174,110,86,160,175,64,223,71,147,83,85,232,163,125,143,25,193,123,48,236,202,209,130,243,216, +177,34,185,17,65,207,206,143,209,158,36,216,227,144,21,141,143,143,45,21,187,19,157,11,88,240,238,47,12,85,133,190,89,127,117,127,71,24,118,6,10,244,21,232,123,105,54,13,46,3,174,131,70,189,25,25,25,34, +82,123,227,141,55,50,199,142,29,91,189,220,234,129,76,17,51,22,88,29,94,72,76,76,224,77,255,92,97,39,40,181,172,156,17,86,160,175,64,95,129,190,2,125,5,250,10,244,21,232,119,62,145,146,146,50,106,193, +130,5,94,251,124,186,231,245,44,225,11,5,250,10,244,77,98,49,5,250,22,7,202,210,133,24,44,76,28,232,251,104,208,129,142,160,217,215,7,60,210,10,244,77,94,144,150,71,90,129,190,2,125,5,250,87,114,218,72, +94,34,249,3,244,134,35,25,146,141,43,86,44,163,241,227,199,136,104,24,169,102,84,17,115,210,200,191,170,222,58,117,234,132,52,111,222,28,213,188,220,35,32,66,90,210,3,55,127,248,225,108,254,176,117,252, +225,39,184,63,64,177,37,220,252,249,231,75,232,213,87,91,178,224,189,53,171,154,39,59,31,232,99,148,255,235,191,254,139,120,93,167,250,245,235,179,5,127,67,54,92,205,113,46,208,71,192,93,187,118,166,123, +239,189,151,94,124,241,69,73,42,162,95,192,228,201,111,11,110,118,164,66,31,9,204,184,184,104,226,102,168,212,169,83,39,177,238,50,250,5,24,184,217,145,64,255,95,255,202,160,167,158,170,47,126,8,8,250, +189,247,166,58,95,161,143,82,252,194,194,92,233,23,240,238,187,239,200,10,2,93,129,42,244,147,147,7,74,251,19,180,62,81,160,95,102,74,20,22,94,237,156,12,249,9,212,28,199,143,23,209,210,165,75,100,165, +137,139,139,203,236,215,175,95,121,124,161,150,251,124,209,169,229,62,183,2,240,102,79,46,70,240,112,238,153,54,237,109,110,126,148,233,119,21,141,2,125,181,220,63,99,159,93,185,2,253,202,193,205,106, +185,111,223,28,222,32,253,199,21,232,43,208,87,160,175,64,95,129,190,2,125,5,250,10,244,169,28,147,97,119,136,208,168,168,168,68,78,32,110,133,245,34,138,15,113,204,135,165,190,90,238,87,64,186,44,211, +173,178,128,82,45,247,237,226,136,102,81,176,157,207,11,120,122,216,25,156,37,61,226,181,8,196,202,103,6,60,210,10,244,237,186,16,21,232,43,208,87,160,95,197,129,62,112,243,142,29,155,232,163,143,62,100, +8,244,81,213,0,250,191,252,178,71,122,5,220,117,215,93,244,232,163,143,178,108,111,144,179,129,62,50,174,247,222,91,77,172,5,26,55,110,204,189,2,90,75,191,0,88,239,59,22,232,195,249,237,142,59,110,151, +6,7,204,5,69,169,63,100,200,96,174,29,89,35,184,217,145,64,31,83,3,83,2,42,125,118,163,23,69,103,90,218,244,82,62,238,72,203,125,0,125,140,104,139,22,205,57,232,62,244,193,7,239,86,45,160,159,151,151, +45,243,184,172,208,18,126,31,248,119,252,130,121,121,59,160,142,67,93,19,206,161,157,61,150,215,187,171,228,186,116,233,68,10,244,143,237,55,213,35,0,230,36,10,244,131,33,199,62,116,104,143,204,89,84, +213,148,45,153,216,181,107,75,169,99,167,42,244,85,161,207,23,157,251,148,40,107,226,170,10,125,85,232,111,95,47,190,189,144,122,111,225,94,183,168,242,5,189,197,255,239,223,191,155,13,165,118,72,38,150, +111,136,69,252,136,41,167,27,55,10,175,162,163,187,210,184,113,35,216,86,235,115,217,27,24,6,80,149,49,194,37,184,89,129,190,2,253,50,184,121,21,23,122,125,43,15,204,241,159,127,222,199,103,201,237,190, +119,121,152,228,53,106,212,8,101,255,47,96,9,26,49,98,136,204,107,128,76,212,56,99,187,232,171,5,85,69,183,102,95,102,218,89,89,223,200,69,8,51,237,99,199,14,179,247,216,44,41,183,71,103,225,244,244,116, +239,45,172,16,56,155,100,39,114,141,243,217,152,152,104,90,180,104,142,92,209,216,231,162,108,237,184,201,142,78,216,173,85,116,227,48,86,9,163,198,3,1,227,129,35,25,220,191,115,115,119,26,206,223,103, +217,138,46,177,108,70,181,92,214,148,181,0,161,44,38,200,46,249,45,123,137,208,0,163,141,227,80,217,174,100,102,54,63,21,141,48,166,3,130,93,189,250,107,158,46,107,121,112,118,137,93,57,234,171,241,249, +49,49,49,217,101,71,25,191,128,79,191,60,40,35,54,111,94,45,70,124,8,178,108,205,115,160,83,162,36,224,53,108,146,150,203,69,224,135,197,95,29,1,243,227,4,52,189,158,242,214,94,243,211,60,183,71,193,33, +16,82,142,185,115,83,197,57,16,1,26,167,102,95,219,75,239,35,92,82,246,99,76,9,140,48,2,62,116,232,0,45,95,190,220,152,22,197,80,55,91,38,1,47,189,244,82,72,251,246,237,69,50,210,163,71,119,177,58,132, +89,153,113,106,70,208,152,235,5,62,26,36,185,223,233,140,57,140,160,113,209,97,14,99,74,96,132,151,47,255,10,206,245,50,202,124,23,156,63,117,234,84,175,114,108,181,220,87,203,253,96,17,91,85,232,171, +66,223,36,22,83,133,190,197,129,10,152,216,90,193,195,193,122,174,6,29,172,145,244,245,62,1,143,180,2,125,147,23,164,229,145,86,160,175,64,95,129,254,255,1,160,15,220,108,168,232,28,111,185,111,36,48, +129,149,161,206,175,86,173,26,215,167,118,23,171,114,71,90,238,187,103,92,255,223,255,251,127,98,45,240,204,51,207,136,5,255,251,239,79,113,46,208,63,195,170,186,81,163,146,137,215,121,122,254,249,231, +5,234,191,254,250,235,236,102,223,87,130,118,36,208,71,147,83,136,220,107,213,170,69,156,122,147,44,210,240,225,195,100,164,129,155,29,11,244,145,192,172,87,239,73,106,223,190,157,52,210,123,255,253,105, +85,67,161,143,180,26,50,86,232,23,160,64,63,54,54,138,231,223,36,78,12,110,96,183,148,139,188,189,13,172,71,128,21,117,179,2,125,5,250,101,76,27,202,82,3,180,224,60,112,96,143,120,80,187,18,236,170,208, +39,220,233,236,232,142,173,64,191,50,112,179,42,244,85,161,175,150,251,92,38,9,196,156,150,54,77,120,31,208,27,150,52,59,150,181,43,184,89,129,190,2,125,143,53,30,10,244,21,232,187,74,215,20,232,123,99, +28,92,171,119,3,231,40,194,34,34,34,80,66,81,140,178,6,28,253,81,242,112,74,21,250,170,208,87,133,126,14,26,36,113,169,15,250,32,117,246,84,5,230,139,31,150,43,144,53,251,2,85,232,155,228,134,62,139,9, +253,29,241,202,124,157,101,248,89,153,193,89,174,203,115,66,112,182,5,173,64,223,228,133,105,121,78,43,208,87,160,175,64,255,255,8,208,71,226,7,165,250,85,6,232,35,9,143,147,207,156,57,31,208,170,85,203, +57,240,157,206,7,250,24,101,64,253,123,238,185,71,116,228,109,218,180,98,153,200,182,82,37,232,244,233,211,172,107,2,176,14,243,185,80,212,23,157,58,69,178,2,163,187,116,97,200,203,219,201,119,85,244, +29,55,30,254,177,197,176,176,26,98,45,0,168,207,229,251,28,116,27,202,204,92,238,92,160,15,129,207,109,183,221,70,13,26,52,32,214,175,8,185,26,58,116,8,125,254,121,134,179,129,126,243,230,205,164,43,3, +68,11,176,22,152,49,227,221,82,177,176,97,195,143,147,254,156,57,169,50,77,96,188,198,54,4,222,21,69,56,6,65,17,143,6,29,241,241,93,105,230,204,247,101,90,88,109,204,81,17,151,217,191,63,79,90,74,36,38, +246,225,6,7,37,5,42,134,252,68,21,250,10,244,185,138,198,151,230,11,197,88,71,143,30,162,31,127,92,43,230,129,108,42,152,195,61,51,194,203,157,198,161,97,133,150,181,75,151,40,190,64,250,211,23,95,44, +165,211,167,209,141,225,79,126,156,231,71,224,13,211,85,161,143,97,231,81,86,203,125,163,185,140,191,29,222,21,232,43,208,87,133,126,242,96,46,246,91,204,110,84,219,8,211,193,236,148,48,187,14,87,36,101, +253,241,199,149,44,68,222,34,245,75,25,25,25,210,132,6,41,226,177,99,199,150,111,66,227,238,14,148,152,152,64,233,233,115,197,88,1,165,150,149,83,50,161,150,251,170,208,87,203,125,181,220,87,203,125,181, +220,87,160,175,64,95,129,190,2,125,203,88,238,90,211,220,42,23,176,87,119,160,107,61,146,190,62,255,250,28,105,5,250,10,244,93,35,0,163,29,38,82,217,48,76,3,15,1,230,128,175,111,116,116,39,234,213,43, +94,82,196,227,198,141,148,158,161,105,105,83,228,49,99,198,59,52,101,202,120,113,59,28,62,60,137,177,69,2,123,134,69,11,79,193,251,184,72,154,71,59,174,128,138,84,120,222,134,176,136,23,182,93,240,251, +146,96,35,35,59,10,151,129,17,49,100,128,112,196,66,78,59,51,115,133,52,57,69,233,60,30,176,71,92,179,102,133,216,216,33,151,130,212,4,74,247,97,109,103,4,143,247,69,21,49,59,128,123,117,185,114,255,5, +42,92,61,94,120,225,133,27,216,153,59,204,213,225,93,106,77,35,35,95,227,145,141,96,145,239,96,1,73,104,133,12,221,34,140,249,144,132,191,116,233,220,85,73,248,139,23,79,243,191,23,137,145,26,146,63,200, +165,64,107,128,95,2,214,118,189,123,139,93,51,30,197,176,5,107,213,170,85,24,106,92,43,90,246,42,12,154,1,101,24,143,64,122,73,176,145,212,161,67,27,129,161,24,89,4,11,242,133,222,205,102,133,150,200, +84,33,249,3,154,133,35,25,254,18,176,182,131,83,28,140,215,240,57,108,123,151,206,65,135,249,21,52,251,230,133,184,70,88,166,67,68,68,91,6,149,137,66,111,55,109,90,199,31,126,194,111,84,87,37,129,62,130, +198,136,35,225,190,127,127,110,213,0,250,135,14,21,48,204,127,132,145,243,173,60,37,34,216,172,114,157,179,129,62,70,248,63,255,243,63,197,90,0,140,156,47,118,86,233,247,113,54,208,159,62,125,42,221,125, +247,221,210,224,0,214,2,189,122,245,98,55,251,4,30,233,28,225,139,69,69,123,165,30,4,198,130,124,97,158,69,99,178,10,107,77,185,189,67,104,139,22,45,196,34,20,235,48,150,53,172,18,184,232,46,95,190,236, +42,155,240,175,100,194,176,24,69,208,53,107,214,148,178,137,65,131,6,9,212,159,54,237,29,89,81,28,11,244,81,6,212,172,89,56,181,107,215,150,75,39,6,17,138,82,170,12,208,255,228,147,5,244,233,167,233,229, +252,213,225,51,89,84,116,64,140,44,39,77,154,136,41,114,129,17,115,42,58,169,149,195,204,117,235,214,173,222,178,101,203,76,222,15,144,42,244,253,112,157,85,160,255,215,95,103,121,67,116,165,56,240,143, +63,78,154,38,95,86,112,179,42,244,255,252,243,215,74,179,43,87,160,111,150,222,90,153,195,101,29,236,85,161,95,57,184,89,45,247,237,241,241,40,235,175,190,97,195,15,124,0,222,201,39,154,2,154,56,113,130, +236,61,216,166,60,53,45,45,173,252,222,195,85,124,37,101,155,170,208,207,221,36,39,111,181,220,47,123,148,81,203,125,47,133,85,72,149,161,236,231,138,165,128,90,238,171,229,190,76,9,172,195,216,107,160, +49,7,250,92,160,109,4,186,48,112,31,115,201,229,113,217,125,122,114,114,178,127,185,60,92,160,170,208,63,184,87,106,237,112,167,67,175,22,180,62,49,70,23,249,105,180,141,88,176,96,65,224,249,233,178,203, +33,72,0,103,124,160,129,17,18,128,86,128,56,230,47,93,186,68,170,202,243,242,114,37,176,99,199,138,56,5,124,156,171,205,139,36,111,141,6,73,89,89,89,180,100,73,134,220,154,93,45,4,37,131,196,89,38,188, +95,240,73,128,123,240,60,58,161,72,85,65,202,129,91,62,246,6,168,82,68,25,60,58,55,65,187,130,172,209,240,225,195,229,43,190,199,191,227,231,120,30,158,143,215,161,185,12,122,181,248,35,122,247,155,35, +66,123,130,141,74,247,238,221,83,121,180,50,81,183,207,223,162,213,20,254,10,151,92,217,125,124,197,247,92,182,223,69,129,190,223,163,237,11,7,219,245,243,42,23,176,2,125,187,166,130,167,247,13,120,122, +40,208,87,160,175,64,95,129,126,249,106,71,5,250,110,212,160,202,2,125,192,80,248,82,195,75,221,241,150,251,238,6,152,176,41,95,182,108,49,159,100,74,154,235,129,33,58,82,161,143,17,46,44,204,21,107,1, +48,242,71,30,121,132,154,54,109,34,77,14,48,234,144,64,37,37,13,48,170,109,178,113,232,168,144,141,227,135,204,172,165,19,37,10,83,80,246,131,42,26,20,165,156,63,15,157,109,96,150,2,8,248,224,193,221, +244,196,19,143,75,21,2,154,27,180,107,215,142,184,4,136,59,87,150,244,95,116,36,208,223,179,103,187,152,55,160,35,67,108,108,172,28,199,192,200,215,175,255,222,217,64,191,67,135,182,82,231,129,115,35, +188,16,222,125,119,138,204,105,71,43,244,81,2,20,19,211,133,250,245,235,35,93,26,220,91,112,42,208,15,150,224,221,12,170,83,160,175,64,223,71,87,214,194,194,124,73,175,33,75,229,74,254,140,246,100,224, +48,14,89,161,248,248,88,169,198,5,42,11,134,105,131,153,57,236,9,36,41,208,87,160,175,10,125,85,232,91,107,152,174,64,223,40,112,13,126,75,250,43,244,22,237,188,129,234,142,29,59,44,32,9,247,13,96,142, +178,136,163,92,2,146,37,28,114,114,65,249,4,132,6,184,201,96,159,139,67,104,240,3,190,186,97,58,74,144,193,22,115,115,119,26,228,235,44,184,140,207,227,150,2,125,5,250,87,50,96,94,147,234,47,189,244,82, +8,196,50,184,24,80,234,14,197,16,142,66,70,163,58,20,106,99,174,23,248,216,173,109,217,178,70,174,11,92,100,106,185,239,141,151,40,208,87,160,111,18,206,24,83,72,129,190,197,1,43,119,70,244,23,94,66,202, +209,175,95,191,234,112,14,228,229,17,70,129,73,252,128,141,29,206,156,248,138,239,185,242,50,38,28,6,80,238,229,151,254,126,102,192,240,211,223,15,14,228,117,26,116,32,163,103,229,181,215,231,72,43,208, +55,185,4,90,158,30,106,185,175,10,125,181,220,87,203,125,89,56,188,174,30,46,151,137,98,120,32,192,82,96,216,176,129,236,24,177,64,252,15,64,111,131,161,110,174,146,64,31,201,31,227,160,236,120,160,15, +149,62,2,174,91,247,49,177,223,135,66,31,77,14,28,11,244,17,48,50,163,255,245,95,255,37,80,255,169,167,158,18,176,63,112,96,63,231,2,125,140,240,91,111,141,36,190,179,74,131,3,62,28,208,235,175,191,206, +185,149,120,103,3,125,152,144,212,174,93,27,6,36,46,107,129,161,194,200,29,15,244,235,215,175,199,206,44,237,165,116,2,253,2,144,189,66,182,202,241,64,255,179,207,62,166,5,11,102,149,6,140,90,166,252, +252,108,158,38,249,124,161,22,137,214,0,37,249,168,132,199,57,180,220,193,150,179,73,225,220,188,145,75,228,75,236,137,144,187,131,8,33,208,30,1,254,228,180,21,232,43,208,87,160,31,31,87,90,133,112,249, +242,239,20,200,148,8,196,174,188,160,32,87,20,73,190,74,39,144,190,98,154,20,43,38,102,16,58,194,98,171,50,92,38,84,161,15,19,179,11,23,78,145,93,62,30,101,71,184,132,203,168,66,95,21,250,30,27,166,195, +71,15,83,6,219,7,8,45,93,186,69,200,7,59,187,39,40,175,58,35,214,168,81,35,148,253,241,196,241,10,206,129,48,226,67,81,20,12,159,20,232,151,129,161,208,143,227,161,64,127,243,230,213,82,183,143,162,108, +44,131,254,214,218,93,193,205,170,208,191,66,250,21,232,187,238,116,170,208,247,69,150,248,168,31,194,57,189,82,7,89,212,127,160,21,96,94,222,14,241,181,195,33,20,109,212,14,29,42,228,67,233,30,46,151, +207,231,195,106,30,159,174,115,249,255,243,88,149,143,86,108,170,208,47,47,52,171,104,228,21,232,155,164,89,62,75,220,124,205,239,178,63,87,160,111,114,228,45,115,68,171,127,9,59,158,175,65,219,49,170, +170,208,135,175,47,142,65,77,155,54,77,133,137,107,73,198,213,187,41,9,126,142,231,225,249,120,29,78,73,254,254,101,44,207,105,5,250,10,244,21,232,43,208,87,160,31,144,12,16,169,137,42,3,244,145,110,3, +250,203,204,92,46,238,245,142,6,250,96,139,235,214,101,150,90,11,60,252,240,195,156,108,236,225,108,160,15,149,254,35,143,60,44,101,19,168,64,104,221,186,53,63,90,113,62,111,165,100,176,78,113,115,61, +28,156,145,8,133,241,26,124,204,188,102,77,177,39,224,255,14,195,7,1,189,90,208,250,4,149,52,197,197,197,46,31,132,192,122,4,24,244,118,221,186,85,116,251,237,183,83,163,70,141,136,21,67,108,216,144,196, +53,31,137,156,165,253,66,70,27,25,90,156,244,125,166,122,221,251,216,162,27,14,154,203,160,177,1,90,159,148,24,55,4,39,96,163,59,118,173,90,53,217,109,162,41,245,233,211,135,9,214,80,238,174,51,201,249, +64,31,58,153,22,45,154,179,151,94,95,174,66,152,92,170,151,113,60,208,71,153,196,206,157,27,202,9,124,20,232,7,66,111,173,228,180,213,114,95,45,247,119,109,97,114,230,221,155,90,129,190,39,7,123,212,140, +98,243,99,220,56,172,92,116,158,248,56,52,140,200,105,195,196,21,158,168,174,83,126,140,215,194,171,232,232,174,210,247,13,224,83,129,190,143,57,108,40,67,193,101,96,32,5,251,220,140,140,12,41,113,227, +61,72,38,36,84,229,70,218,125,239,129,206,122,104,84,135,190,111,168,13,173,156,166,6,37,114,108,85,232,43,208,87,160,239,230,170,201,107,163,116,157,68,217,176,2,253,245,87,155,54,108,217,178,86,32,41, +32,234,242,229,203,13,227,134,98,216,149,123,75,5,171,66,223,76,99,14,181,220,175,8,37,40,208,87,203,125,147,136,215,152,70,106,185,111,113,192,44,35,57,127,217,95,48,95,167,65,7,115,52,43,122,175,235, +115,164,85,161,111,114,21,177,60,61,20,232,43,208,87,160,175,64,95,129,254,245,5,244,145,211,6,165,5,204,119,60,208,55,146,240,175,190,218,146,185,248,171,82,137,224,88,203,125,131,143,47,89,178,136,254, +251,191,255,155,238,187,239,62,122,252,241,199,233,233,167,159,166,247,223,159,236,92,160,143,41,17,17,209,81,2,134,245,62,210,111,236,77,198,22,252,241,206,6,250,45,91,190,76,79,62,249,164,4,59,104,208, +32,121,76,157,58,193,217,10,253,156,156,205,84,191,126,125,226,30,116,82,133,48,117,234,36,81,45,57,30,232,127,253,245,167,244,206,59,227,185,174,228,61,9,120,151,139,203,40,208,87,160,175,10,125,85,232, +231,139,15,141,123,235,19,247,85,194,91,18,126,211,166,76,209,124,65,32,12,167,21,87,11,206,164,114,196,214,229,148,89,20,27,27,195,149,91,227,105,205,154,21,116,250,116,17,153,169,241,80,160,175,10,253, +51,170,208,87,133,254,223,212,114,159,125,20,182,87,224,96,143,162,148,43,45,233,215,178,77,215,46,233,63,238,90,155,225,59,150,237,169,119,179,199,4,36,175,217,205,21,232,123,112,176,55,76,27,20,232, +227,62,223,182,109,219,48,70,204,233,56,120,162,162,28,189,11,81,201,133,206,122,40,127,195,145,31,229,196,56,34,85,84,205,104,120,209,168,66,223,23,149,82,160,175,64,223,36,89,82,160,111,113,160,202, +157,92,124,93,140,78,250,185,101,142,232,132,224,53,232,202,250,43,4,60,210,10,244,77,174,38,150,71,90,129,190,2,125,5,250,10,244,21,232,95,127,64,31,135,228,42,5,244,17,240,143,63,174,146,62,1,142,7, +250,224,227,223,124,243,47,186,227,142,219,233,206,59,239,164,7,30,120,128,62,252,112,166,179,129,254,198,141,63,208,93,119,221,73,236,18,36,74,125,182,111,164,86,173,94,113,54,208,159,49,99,42,221,125, +247,221,82,133,16,31,31,79,236,78,207,18,190,158,206,6,250,176,198,120,240,193,7,197,188,1,94,8,236,6,39,253,2,114,114,54,58,219,114,127,244,232,100,158,18,175,114,208,3,232,131,15,222,85,160,31,208,141, +195,31,177,176,42,244,205,208,91,127,218,70,120,194,205,176,24,61,121,242,56,13,31,62,92,106,156,208,111,209,19,102,70,3,198,75,241,10,244,21,232,171,66,191,212,3,33,144,182,17,170,208,71,101,204,175, +191,30,150,135,157,130,119,208,91,181,220,71,107,41,148,252,4,235,198,81,182,255,184,90,238,171,66,223,139,105,131,2,125,5,250,92,239,1,23,32,84,48,236,217,131,62,136,251,120,53,58,204,223,239,44,173, +162,225,235,167,152,157,128,230,143,25,51,38,140,183,163,55,4,172,252,84,160,175,64,223,36,89,82,160,111,113,160,20,232,87,22,94,214,145,174,114,35,173,64,223,228,106,162,64,127,216,176,254,236,106,56, +146,166,77,123,91,186,89,226,129,6,145,80,115,192,237,112,248,240,36,182,71,76,224,18,227,104,201,207,117,82,160,175,64,95,129,190,2,253,128,184,76,149,179,220,55,64,82,149,3,250,176,201,69,208,85,2,232, +27,13,34,199,140,25,65,95,124,177,68,180,139,142,181,220,55,166,4,228,215,176,22,168,86,173,26,247,13,120,132,221,236,155,56,27,232,231,231,111,99,91,129,123,165,100,34,60,60,156,218,181,107,199,200,185, +149,244,38,40,42,58,32,70,150,147,38,77,196,237,254,2,171,248,83,209,73,173,220,33,160,110,221,186,213,209,248,136,247,3,20,27,27,69,239,190,59,137,149,108,27,184,177,193,197,128,123,4,120,83,134,162, +206,163,113,227,198,244,250,235,175,139,173,192,192,129,3,105,233,210,69,206,5,250,168,66,232,220,57,130,71,185,9,245,238,221,91,170,16,96,45,176,117,43,44,67,119,72,191,197,31,127,92,203,166,14,61,97, +61,144,195,163,29,238,85,99,219,165,11,188,9,250,243,133,177,148,53,182,232,198,240,39,63,206,7,180,14,27,115,216,19,72,26,57,114,24,215,122,244,102,225,207,228,82,129,79,94,222,102,105,16,153,151,151, +91,177,105,54,207,29,233,55,30,19,3,211,236,145,108,18,178,130,123,141,159,11,90,192,86,220,191,21,232,43,208,87,203,125,85,232,239,148,146,181,2,31,182,24,232,11,224,222,108,26,212,0,125,111,179,178, +178,100,157,230,53,58,135,245,182,229,215,105,227,142,24,21,213,153,187,230,12,230,174,57,139,25,53,108,163,223,127,63,46,15,51,14,246,10,244,247,23,208,68,166,6,216,123,240,40,167,166,165,165,149,223, +123,224,22,105,52,86,66,94,34,45,109,154,0,118,5,250,60,87,209,48,161,236,28,134,246,22,124,28,53,31,249,249,219,133,124,205,158,61,75,18,58,9,9,9,91,203,106,199,203,165,197,84,161,175,10,253,43,141,175, +189,102,77,95,121,229,21,244,23,47,142,139,139,165,185,115,83,165,218,22,222,51,198,169,217,31,47,26,163,78,201,240,64,192,60,86,160,175,64,95,129,62,253,205,18,190,128,239,7,31,50,179,93,102,78,210,10, +16,199,252,165,75,151,200,33,20,103,58,180,233,57,118,172,72,42,114,143,30,45,146,50,9,52,72,194,230,103,201,146,12,185,53,187,90,8,138,41,84,92,92,28,222,175,185,21,66,102,41,104,188,113,143,30,61,66, +57,240,68,52,91,68,47,69,236,13,208,71,8,187,49,116,110,130,11,202,176,97,195,164,132,24,95,241,61,254,29,63,199,243,240,124,188,14,119,58,118,178,72,244,228,148,226,235,23,176,28,180,2,125,147,8,174, +236,200,251,61,210,190,254,132,118,254,92,131,182,115,116,221,223,251,250,28,105,5,250,38,87,19,203,211,67,21,250,10,244,21,232,43,208,87,160,31,16,72,82,160,31,29,29,33,16,116,211,166,117,116,254,60, +176,28,154,165,7,191,97,122,149,4,250,152,30,72,254,84,9,160,143,17,70,83,131,167,159,174,79,207,61,215,72,220,235,17,56,52,98,121,121,59,140,3,48,206,161,157,61,110,77,221,251,216,118,233,210,137,105, +192,64,166,1,159,241,169,26,212,214,158,41,49,103,206,7,116,227,141,55,82,88,88,152,56,217,63,243,204,51,244,246,219,111,58,27,232,55,105,242,130,120,33,52,107,214,140,248,116,79,156,78,224,209,237,238, +92,160,143,105,16,25,217,145,234,213,171,39,169,5,84,33,12,25,50,132,243,40,227,156,15,244,27,52,120,134,115,33,157,196,15,225,253,247,167,50,13,248,142,231,179,195,129,62,108,113,63,248,96,234,85,22, +163,10,244,21,232,43,208,87,160,175,64,191,122,185,106,49,247,189,7,234,246,211,211,231,10,18,62,113,226,103,83,21,8,86,10,171,80,26,81,30,55,151,116,199,70,239,102,8,45,247,43,208,63,126,128,89,74,97, +169,105,67,224,35,188,138,121,141,2,253,94,180,98,197,50,222,23,108,16,188,28,236,17,86,203,125,44,45,10,244,203,88,10,148,44,109,153,220,173,97,163,116,97,56,114,228,48,45,95,254,149,84,247,226,56,8, +253,248,212,169,83,67,188,225,144,10,243,211,106,185,175,10,125,147,156,195,85,2,167,64,95,129,190,21,242,10,41,7,251,55,86,135,208,192,213,187,11,101,250,48,87,27,231,250,138,239,185,242,50,38,124,236, +216,177,213,221,203,47,173,124,142,18,91,127,71,43,144,215,89,134,159,129,124,88,176,94,123,125,6,173,64,223,228,141,206,242,244,80,160,175,64,95,129,190,2,125,5,250,10,244,97,162,237,50,21,206,70,21, +177,207,90,211,246,237,219,39,194,225,36,50,50,130,129,164,2,125,73,27,87,228,216,89,101,128,190,81,129,176,121,243,106,97,137,248,222,209,64,31,35,59,96,64,95,250,159,255,249,31,182,22,248,59,187,217, +63,64,223,126,251,47,103,3,253,165,75,63,162,91,110,185,133,30,125,244,81,106,210,164,9,189,252,242,203,212,178,229,203,206,6,250,67,135,38,73,21,66,139,22,45,36,143,215,191,127,127,126,244,165,157,59, +55,57,87,161,15,6,94,171,86,45,226,21,75,170,16,96,45,0,165,190,227,129,254,208,161,3,169,67,135,118,60,183,251,179,112,243,93,233,123,91,37,128,254,79,63,193,62,244,234,70,189,133,133,249,162,151,129, +236,4,6,245,200,161,148,67,114,174,228,10,55,207,136,21,123,45,168,139,137,206,209,229,203,191,211,95,127,157,101,95,132,43,187,181,63,254,56,105,90,44,236,47,72,82,203,125,179,114,108,127,71,24,127,225, +77,155,50,89,251,152,39,18,42,87,159,230,179,112,197,240,52,61,98,248,7,69,177,10,244,21,232,43,208,103,13,226,110,217,157,249,47,22,94,37,21,8,106,185,175,150,251,165,244,182,100,74,64,59,190,122,245, +215,162,31,7,189,221,183,175,160,212,253,155,145,71,182,39,101,168,199,4,36,52,175,252,56,129,195,229,248,241,99,8,167,138,221,187,183,202,188,53,76,204,2,157,195,70,141,71,73,192,107,184,190,52,87,112, +243,188,121,243,140,67,45,62,223,163,246,86,21,250,190,91,210,151,212,41,41,208,47,155,20,233,208,161,195,13,236,247,17,22,17,17,49,31,102,14,152,227,73,73,3,165,228,225,212,169,67,114,106,134,77,220, +129,3,249,82,243,140,19,7,54,240,238,149,96,216,252,96,206,170,229,190,21,76,166,10,125,85,232,155,196,98,198,180,82,160,111,114,192,44,115,68,43,23,174,93,207,213,160,237,26,89,159,36,192,234,7,43,208, +183,235,66,84,160,175,64,95,129,190,2,125,5,250,1,81,3,85,232,43,208,231,147,251,255,57,160,15,127,73,36,58,29,15,244,221,243,129,227,199,143,166,207,62,91,44,134,196,142,182,220,71,18,62,58,58,138,110, +186,233,38,238,25,112,31,131,253,71,24,53,15,116,54,208,255,252,243,79,40,36,164,164,10,225,165,151,94,34,214,213,112,147,131,182,156,254,93,233,92,160,159,151,183,133,238,189,247,94,241,66,232,211,167, +143,64,253,126,253,250,10,45,118,172,229,62,114,222,15,63,252,16,215,120,180,148,178,9,88,48,206,156,57,221,249,64,255,187,239,190,144,230,6,195,135,15,98,137,236,135,146,168,68,2,83,129,190,149,10,132, +64,236,202,129,51,96,49,234,171,116,66,218,72,116,235,22,43,93,201,214,175,95,69,23,47,158,174,244,146,9,5,250,149,81,50,81,98,245,188,74,46,70,181,220,183,175,37,189,42,244,55,136,94,220,190,17,86,133, +62,26,11,168,66,255,170,78,34,10,244,141,164,58,111,202,67,184,112,21,120,153,122,244,232,78,11,23,206,149,163,144,209,168,14,167,14,156,233,172,245,106,81,160,127,165,69,131,59,190,80,160,207,237,123, +224,108,15,47,154,29,59,182,75,235,19,150,131,148,86,209,164,164,164,140,90,176,96,129,87,211,6,191,213,204,10,244,21,232,155,196,98,10,244,45,14,148,178,113,171,136,218,223,231,95,159,35,173,64,223,228, +5,105,121,122,40,208,87,160,175,64,95,129,190,2,125,5,250,170,208,183,203,16,190,202,89,238,187,243,241,42,7,244,141,206,194,85,2,232,231,231,111,37,116,119,175,95,191,30,69,68,116,160,149,43,63,119,54, +208,71,27,229,54,109,94,165,219,110,187,141,106,214,172,201,157,25,158,166,103,159,109,72,235,214,101,58,23,232,99,42,220,114,203,205,84,167,78,29,174,62,104,71,177,177,177,196,109,12,197,205,222,177, +64,127,199,142,245,236,54,81,141,154,54,109,74,125,251,246,117,245,86,28,42,108,252,192,129,61,146,70,243,165,102,134,155,224,165,184,184,24,154,54,237,109,214,87,101,242,93,14,237,80,172,11,222,143,29, +219,111,218,215,119,208,160,68,14,58,156,131,238,195,80,127,152,180,159,133,42,207,241,64,63,35,99,62,253,235,95,31,151,86,32,64,54,165,10,253,202,192,205,170,208,55,211,146,62,24,114,108,5,250,191,254, +122,216,70,220,172,64,95,129,190,232,109,81,167,228,169,97,58,180,187,7,15,22,178,127,205,78,131,124,113,77,85,183,68,159,50,40,222,188,132,190,246,218,107,104,242,172,64,255,234,17,190,82,227,161,10, +125,5,250,174,210,53,212,120,160,245,9,238,120,249,249,219,229,162,131,203,4,76,27,12,228,204,30,99,233,201,201,201,97,21,241,152,10,147,234,10,244,21,232,155,132,51,198,28,131,251,37,31,62,19,185,203, +222,86,94,203,209,187,240,2,26,216,245,236,217,19,61,43,92,231,188,97,82,192,141,138,92,156,241,240,239,248,57,158,135,231,227,117,9,10,244,45,142,188,42,244,77,14,152,101,142,232,47,207,14,230,235,52, +232,96,142,166,223,119,68,51,65,40,208,183,235,66,84,160,175,64,95,129,190,2,125,5,250,126,97,14,195,95,93,21,250,170,208,87,133,190,235,70,226,222,199,182,75,151,78,148,156,60,144,190,252,242,51,58,121, +242,36,95,100,127,241,227,18,63,254,244,155,45,86,212,212,0,150,2,85,10,232,187,7,12,73,118,126,126,182,179,129,62,2,70,51,131,39,159,124,66,160,126,245,234,255,203,41,135,1,226,39,121,244,232,33,238, +111,187,86,82,15,156,178,200,65,175,58,175,166,217,93,186,68,113,190,162,63,125,241,197,82,58,125,26,83,35,120,83,194,147,186,185,73,147,23,136,183,187,92,58,81,95,24,249,11,47,188,192,130,247,247,156, +11,244,49,29,110,189,245,86,9,152,147,63,2,245,223,120,227,13,190,158,6,59,23,232,239,226,238,238,117,234,212,150,22,18,156,113,162,33,67,134,112,193,74,138,243,21,250,159,126,250,17,53,111,222,76,68, +109,35,70,12,167,57,115,62,16,38,163,64,95,129,62,247,185,240,212,48,29,80,105,255,254,221,148,147,179,67,50,174,104,5,128,22,156,229,150,60,206,250,135,179,39,111,78,116,116,87,26,55,110,4,125,247,221, +231,226,53,125,225,194,41,178,98,218,160,64,63,35,67,114,218,188,12,102,162,201,105,185,145,118,223,123,36,38,38,176,65,200,92,89,122,224,157,84,57,37,19,10,244,21,232,43,208,191,42,185,174,150,251,188, +2,85,84,227,129,166,6,48,213,57,116,232,0,183,164,95,110,224,230,98,168,155,189,229,199,189,226,11,5,250,10,244,233,111,166,232,22,151,7,133,68,70,70,142,50,250,97,96,239,59,103,78,42,247,5,216,33,115, +241,248,241,34,57,211,161,230,25,37,196,168,200,197,126,24,115,21,13,146,176,249,129,219,143,42,244,205,80,44,5,250,60,207,60,245,105,49,59,120,166,230,116,69,111,166,64,223,46,142,104,246,79,104,231, +243,2,158,30,118,6,103,249,54,126,45,130,49,251,153,1,143,180,2,125,187,46,68,5,250,10,244,21,232,43,208,87,160,175,64,95,21,250,118,227,102,184,29,34,145,143,230,122,56,56,67,107,131,58,109,70,117,161, +238,155,169,178,233,48,126,94,231,195,145,145,17,220,88,186,43,67,200,247,249,196,189,147,138,139,139,43,133,143,171,66,63,208,10,4,43,234,230,42,1,244,141,146,137,156,156,141,162,104,222,186,21,9,73, +135,3,253,111,190,249,76,170,15,66,67,67,41,44,172,6,213,173,251,152,116,180,116,172,66,31,158,168,96,227,232,21,208,160,65,3,177,222,111,209,162,133,56,217,59,86,161,143,110,172,247,220,115,55,61,245, +212,83,82,133,48,96,192,0,129,157,67,135,38,57,91,161,223,171,87,15,122,238,185,231,232,245,215,95,151,42,132,113,227,222,226,14,194,43,156,15,244,83,82,134,114,5,77,119,26,59,118,52,125,248,97,154,84, +33,168,229,190,39,122,107,101,29,70,97,138,175,206,194,10,244,207,156,57,66,21,9,222,3,105,27,97,168,155,33,180,204,205,221,34,212,32,67,129,254,241,3,166,157,82,204,204,97,116,97,48,186,99,163,104,229, +231,159,247,137,115,50,42,199,92,242,193,206,94,183,166,53,106,212,8,125,229,149,87,160,51,228,34,168,33,82,168,146,155,171,64,95,129,190,2,125,92,7,219,189,84,130,173,95,95,82,246,147,149,245,141,60, +20,232,99,137,225,230,93,97,140,152,211,177,154,176,101,5,77,159,62,77,22,254,162,162,189,114,106,134,106,2,39,15,28,145,124,221,154,177,172,169,66,223,23,160,81,160,63,113,130,113,167,195,221,238,108, +92,92,28,12,80,154,251,26,56,175,119,68,51,47,84,133,190,73,154,85,118,48,3,230,136,10,244,77,142,124,192,35,109,230,58,8,246,115,52,232,96,143,168,109,85,8,10,244,237,186,16,21,232,43,208,87,160,175, +64,95,129,190,2,125,5,250,10,244,57,111,82,86,6,168,64,95,129,254,47,80,98,228,51,70,206,99,42,123,197,3,1,26,114,131,26,56,30,232,131,143,207,154,53,157,229,79,113,20,23,215,149,157,1,22,59,31,232,191, +253,246,155,116,211,77,55,17,163,19,122,252,241,199,169,94,189,122,146,10,118,44,208,199,148,120,228,145,135,233,193,7,31,36,214,138,73,99,3,22,1,201,168,59,214,114,31,233,225,250,245,159,148,178,9,164, +146,97,114,153,148,148,68,163,71,39,59,27,232,127,240,193,20,169,66,48,130,158,60,121,2,247,190,248,206,249,64,127,217,178,116,190,24,223,167,79,62,249,167,32,13,181,220,175,28,253,248,42,177,26,128,170, +46,43,43,75,156,84,216,69,37,39,38,38,166,188,147,74,221,186,117,171,115,13,81,102,84,84,103,49,5,249,242,203,197,132,126,43,48,108,48,107,218,160,64,159,59,11,79,100,106,0,155,92,30,229,212,180,180,180, +255,40,103,43,128,127,64,205,38,0,122,76,76,52,165,165,77,115,45,242,121,82,46,97,111,143,0,5,250,115,164,8,10,251,92,148,252,152,53,128,114,223,252,88,161,183,106,185,143,246,59,24,61,108,41,65,106,131, +97,60,2,122,139,27,137,90,238,171,66,95,21,250,170,208,95,203,103,187,92,41,2,60,118,172,136,205,1,143,115,25,92,145,148,171,193,79,9,155,159,37,75,50,228,214,236,42,93,83,160,111,10,136,66,123,130,141, +74,247,238,221,83,185,252,129,119,135,81,57,46,103,170,179,104,239,134,106,28,215,87,124,95,132,237,37,252,148,184,168,59,21,175,83,133,126,101,81,215,64,62,199,212,84,8,228,3,236,120,173,6,109,199,168, +122,122,207,128,71,90,129,190,2,125,215,8,160,126,174,125,251,246,217,157,24,196,227,230,1,221,34,124,125,163,163,59,81,175,94,241,98,226,58,110,220,72,233,25,154,150,54,69,30,51,102,188,67,83,166,140, +23,183,195,225,195,147,88,49,148,64,56,56,227,245,120,159,142,29,59,218,83,151,199,243,54,132,243,109,165,150,70,8,54,50,178,163,8,45,97,68,252,238,187,147,104,225,194,185,226,58,155,153,185,66,154,156, +226,108,137,7,106,76,215,172,89,33,85,239,200,165,192,60,16,39,125,84,194,27,193,195,42,137,43,228,71,53,110,220,56,196,204,197,92,225,133,200,22,180,55,52,108,216,48,172,121,243,230,243,249,141,139,75, +70,247,53,30,217,8,26,53,106,176,40,67,225,156,188,101,203,6,217,24,193,38,247,210,165,115,252,185,87,186,178,94,188,120,154,255,189,72,142,105,72,254,192,237,16,249,103,252,18,139,22,205,161,222,189, +165,238,31,143,98,254,43,206,111,213,170,85,24,186,80,85,20,124,133,65,63,255,252,243,97,60,2,82,213,139,188,113,135,14,109,216,233,181,187,140,44,130,133,148,21,86,207,197,197,23,249,51,124,91,61,35, +83,5,123,70,160,11,156,210,241,151,88,177,98,25,141,31,63,134,41,64,172,4,143,42,98,14,218,191,190,91,220,8,47,196,53,194,50,119,35,34,218,178,122,45,145,181,85,179,249,195,214,241,135,159,240,91,123, +139,196,207,209,163,104,20,182,67,130,199,193,121,238,220,15,196,69,22,129,179,235,231,124,158,235,94,167,138,215,145,118,205,225,98,140,48,2,30,54,108,32,207,199,5,50,186,231,207,159,167,203,151,47,7, +44,22,70,46,229,231,159,119,201,73,31,202,79,92,23,200,83,99,170,192,22,204,82,181,24,86,9,92,28,248,173,49,37,48,194,8,184,160,96,183,43,80,56,127,7,207,253,91,45,247,213,114,95,45,247,213,114,255,184, +71,95,95,43,202,208,42,165,208,175,114,64,191,108,18,222,241,10,125,4,220,173,91,52,221,126,251,237,34,124,31,55,110,20,253,244,211,58,103,3,125,4,12,31,132,218,181,107,19,111,208,184,185,193,243,156, +62,91,228,92,160,143,253,198,195,15,63,68,181,106,213,162,118,237,218,73,142,15,74,253,248,248,88,103,3,253,150,45,155,83,163,70,141,136,211,107,98,43,48,116,232,16,154,48,225,45,103,3,253,239,191,95, +206,211,226,57,160,100,14,122,48,165,166,190,171,64,191,146,12,225,21,232,87,108,41,16,56,91,84,203,125,85,232,171,66,95,21,250,86,106,60,84,161,175,10,125,110,223,131,90,59,88,18,236,217,179,83,50,172, +199,142,29,230,239,119,74,125,169,145,53,101,48,58,127,204,152,49,97,220,96,221,255,172,169,145,75,83,133,190,2,125,147,100,201,152,50,10,244,45,14,88,192,240,211,12,216,9,246,115,52,232,96,143,168,37, +124,81,89,31,238,239,231,4,60,61,20,232,155,92,69,44,143,180,42,244,21,232,171,66,95,21,250,170,208,87,133,190,42,244,131,89,227,113,228,200,190,114,242,19,181,220,183,123,132,221,245,227,176,103,44,42, +58,32,221,0,39,77,154,40,42,57,134,72,169,48,94,43,167,146,51,244,136,92,224,71,177,177,81,82,17,134,210,53,179,149,96,21,181,66,86,160,207,91,140,210,173,41,255,25,98,74,106,247,163,164,252,18,213,140, +40,14,36,250,243,170,226,192,191,254,58,203,5,131,87,110,205,86,154,77,155,85,134,86,9,160,95,214,57,217,241,64,127,233,210,69,84,179,230,163,116,219,109,183,17,31,221,184,6,176,131,84,70,58,86,161,143, +17,110,212,168,33,85,171,86,77,122,5,192,90,160,89,179,166,244,193,7,83,157,11,244,119,238,220,32,173,35,96,218,0,54,142,198,6,125,250,244,225,122,214,55,156,13,244,223,120,163,59,61,251,236,179,210,41, +24,85,8,35,70,36,115,61,107,170,116,101,69,30,219,149,191,70,189,118,82,185,117,218,88,61,98,99,99,164,72,27,53,207,40,33,254,243,207,95,125,182,164,183,178,14,123,178,43,239,217,51,158,171,122,99,56, +224,97,82,40,171,150,251,106,185,239,165,59,246,134,13,63,8,151,217,175,10,125,27,122,4,24,114,108,116,101,200,207,223,46,228,107,246,236,89,66,189,18,18,18,182,150,149,1,150,75,139,113,89,123,34,164, +28,80,70,64,104,160,10,125,230,137,24,132,146,62,23,37,166,13,87,4,239,107,89,35,176,139,31,5,165,108,145,221,38,178,61,137,45,61,38,32,221,203,235,161,140,80,133,190,90,238,123,72,104,171,229,190,2,125, +147,156,195,229,105,211,156,245,225,144,226,137,180,15,85,184,56,230,47,93,186,132,187,45,168,66,191,66,22,100,25,20,41,208,183,48,53,221,65,169,223,35,237,47,109,13,198,235,52,232,96,140,162,153,247, +184,62,71,90,129,190,201,213,196,242,244,80,160,175,64,95,129,190,2,125,5,250,10,244,21,232,219,141,155,21,232,219,61,194,10,244,129,196,204,120,209,88,225,227,102,116,139,85,194,114,191,74,42,244,171, +28,208,71,192,243,230,125,64,41,41,67,104,254,252,153,162,60,130,87,147,163,129,254,168,81,195,233,150,91,110,161,234,213,171,139,82,191,126,253,122,140,52,190,117,46,208,223,190,125,157,148,75,60,252, +240,195,82,129,192,114,43,98,199,43,66,151,134,130,130,92,177,24,29,54,108,152,97,128,57,218,19,27,79,66,54,180,91,183,88,49,49,3,200,129,197,150,191,85,52,102,86,9,232,22,239,188,243,78,233,19,0,15,4, +192,251,254,253,251,211,160,65,137,206,6,250,240,61,120,241,197,23,196,11,1,221,24,198,140,25,197,214,93,159,49,177,221,45,38,174,40,167,64,153,18,10,14,202,141,52,251,121,133,179,61,86,78,116,116,87, +177,137,131,97,25,76,204,46,92,56,69,193,94,135,203,42,67,151,44,89,200,101,19,3,196,217,237,219,111,255,165,150,251,54,59,216,171,66,95,21,250,170,208,87,133,190,42,244,61,228,172,43,204,79,43,208,87, +160,111,146,115,40,208,231,238,60,40,93,99,15,211,68,127,92,236,45,131,34,5,250,22,166,166,2,125,51,44,59,216,207,241,123,78,7,59,16,43,239,119,125,6,173,64,223,228,106,98,121,122,40,208,87,160,175,64, +95,129,190,2,125,5,250,10,244,237,198,205,10,244,237,30,97,5,250,10,244,153,148,169,66,223,149,242,26,205,128,241,18,84,197,104,65,133,142,78,238,13,146,172,120,32,4,170,110,118,60,208,255,225,135,175, +153,214,198,210,67,15,61,72,175,190,218,146,133,155,115,133,203,236,221,155,39,45,56,217,227,212,240,61,29,231,137,141,203,72,199,199,199,73,147,47,136,29,47,95,254,157,172,140,112,217,222,205,102,230, +48,156,235,193,199,31,123,236,49,226,118,89,44,124,111,68,235,214,125,231,92,160,191,125,251,90,41,155,120,242,201,39,209,1,138,155,26,196,139,189,0,186,164,57,90,161,95,171,86,77,10,15,15,135,0,88,108, +5,146,146,6,210,228,201,255,112,54,208,159,53,235,125,106,210,228,69,46,157,232,193,243,119,24,189,247,222,100,153,154,7,15,238,149,54,178,61,123,246,196,232,231,176,222,54,220,171,103,77,84,84,103,238, +15,55,88,250,190,161,141,26,186,146,225,241,219,111,71,201,110,133,254,226,197,115,165,43,54,140,136,209,15,55,35,35,131,186,118,237,10,53,94,230,216,177,99,171,151,11,26,153,34,46,159,64,187,214,11,232, +172,135,70,117,88,122,208,70,205,76,192,102,139,82,182,111,95,95,90,167,132,85,226,138,186,89,129,190,2,125,5,250,10,244,21,232,43,208,63,117,136,254,205,157,248,96,19,119,224,64,62,239,202,118,112,151, +202,205,210,51,11,55,37,227,198,177,105,83,166,252,191,90,238,91,65,97,240,253,80,133,190,2,125,147,104,12,83,11,222,140,253,250,245,171,206,123,222,112,151,213,23,74,154,113,116,27,231,250,138,239,121, +59,28,19,142,237,101,90,90,90,169,151,163,149,169,169,64,223,223,209,10,228,117,150,225,103,32,31,22,172,215,94,159,65,43,208,55,185,106,89,158,30,10,244,21,232,43,208,87,160,175,64,95,129,190,2,125,187, +113,179,2,125,187,71,88,129,190,2,125,5,250,174,29,157,43,71,161,64,31,106,104,51,168,110,221,186,111,169,44,170,115,52,208,159,56,241,45,226,35,156,64,253,26,53,170,179,229,232,56,97,139,142,85,232,111, +221,186,134,110,188,241,70,122,224,129,7,168,113,227,198,212,188,121,115,230,228,77,56,232,76,103,3,253,187,239,190,91,2,134,173,0,212,248,96,225,232,200,224,88,133,62,122,17,60,250,232,35,50,194,8,24, +85,8,111,189,53,134,190,249,230,51,103,3,253,143,62,154,199,65,55,227,90,143,110,92,231,49,134,230,204,153,174,64,95,192,16,170,18,202,150,253,152,89,214,42,102,139,37,254,234,120,0,40,97,251,176,99,199, +118,49,48,230,251,199,97,126,116,246,154,159,174,81,163,70,232,43,175,188,178,21,207,129,3,4,156,39,240,97,71,143,22,218,26,176,90,238,39,36,244,98,131,144,101,50,218,63,255,188,75,70,220,83,147,47,247, +253,112,89,123,34,239,69,41,106,185,79,146,16,225,185,61,138,231,118,113,92,92,44,247,88,73,101,43,150,141,124,151,66,131,243,93,242,192,121,206,191,17,46,41,251,65,83,3,60,182,108,89,43,183,108,52,7, +91,190,124,185,52,163,193,231,166,164,164,140,242,70,14,188,166,122,217,173,39,164,125,251,246,243,113,81,246,232,209,157,22,46,156,203,85,137,219,37,224,131,7,243,37,232,125,251,118,240,7,254,68,230, +167,68,73,192,120,160,43,195,246,237,27,165,11,195,145,35,135,57,224,175,168,119,239,222,82,237,136,14,239,83,167,78,13,177,28,52,94,160,10,125,85,232,155,228,28,170,208,87,133,190,133,169,98,44,71,10, +244,77,14,154,101,142,24,44,190,29,200,251,104,208,129,140,158,149,215,6,60,210,10,244,237,186,16,21,232,43,208,87,160,175,64,95,129,190,2,125,5,250,118,227,102,5,250,118,143,176,2,125,5,250,10,244,21, +232,7,143,124,57,26,232,103,103,175,166,119,222,25,79,239,190,59,233,42,205,151,99,129,62,0,212,51,207,60,69,183,223,126,187,64,125,52,55,24,55,110,148,179,129,254,134,13,223,83,72,72,8,61,254,248,227, +210,212,160,93,187,118,244,242,203,205,69,85,231,88,160,255,193,7,211,184,198,163,6,181,108,217,82,128,254,160,65,131,216,86,96,128,216,238,59,90,161,255,212,83,245,75,131,30,58,116,8,77,157,58,177,106, +0,253,183,222,26,201,100,171,167,244,188,216,176,225,7,182,51,216,201,211,163,128,38,78,156,0,218,117,129,117,95,169,238,154,175,178,42,102,176,243,195,232,234,158,150,54,77,208,25,182,139,191,254,122, +216,230,30,1,10,244,231,72,17,20,32,39,124,104,130,95,50,113,53,189,5,12,61,120,176,144,231,244,78,131,220,114,215,147,110,137,101,51,170,229,178,166,117,234,212,9,229,190,42,104,26,205,70,33,10,244,221, +108,49,86,113,215,236,149,194,198,225,231,129,117,25,119,64,224,230,121,243,230,25,198,58,39,160,233,245,148,183,246,154,159,86,160,207,215,5,0,254,250,245,10,244,75,106,60,202,62,216,14,230,134,142,29, +59,134,177,221,16,74,40,138,113,113,194,189,7,87,249,41,85,232,119,62,129,162,148,5,11,22,120,173,241,240,91,205,172,10,125,181,220,55,137,197,20,232,91,28,168,128,137,173,21,60,28,172,231,106,208,193, +26,73,95,239,19,240,72,43,208,55,121,65,90,30,105,5,250,10,244,21,232,43,208,87,160,175,64,95,129,190,221,184,89,129,190,221,35,172,64,95,129,190,2,125,5,250,215,9,208,247,166,189,117,52,208,159,50,101, +2,27,193,191,192,130,247,103,105,241,226,249,194,101,28,173,208,223,184,241,7,250,239,255,254,111,170,94,189,58,61,245,212,83,244,244,211,79,19,220,236,29,13,244,227,227,99,233,222,123,239,165,23,95,124, +145,162,163,163,197,169,62,34,162,131,200,176,29,11,244,71,143,78,166,218,181,107,19,115,75,26,60,120,176,84,33,36,39,15,113,54,208,95,185,242,115,158,18,79,17,203,98,105,192,128,1,148,146,50,130,222, +127,127,74,213,1,250,168,68,248,246,219,207,84,161,175,64,191,132,222,170,66,95,21,250,30,219,70,168,66,95,129,62,183,160,194,246,18,13,146,80,205,136,189,4,186,225,160,116,13,214,46,179,103,207,50,234, +148,80,73,163,64,191,28,147,97,255,141,80,238,21,144,200,187,50,120,219,192,4,231,2,118,103,48,125,66,233,37,54,62,195,134,13,147,38,95,248,138,239,13,83,40,60,15,207,199,235,184,251,211,86,84,130,165, +167,167,135,250,66,112,62,171,197,204,190,65,223,190,125,67,81,121,216,189,123,247,212,184,184,184,76,254,69,114,248,219,34,126,156,229,199,37,20,180,184,190,226,251,34,116,116,66,131,36,254,5,208,7,169, +179,63,193,26,177,89,166,91,101,127,41,85,232,219,197,17,205,78,31,59,159,23,240,244,176,51,56,191,60,107,174,69,64,102,62,51,224,145,86,160,111,215,133,168,64,95,129,190,2,125,5,250,10,244,21,232,43, +208,183,27,55,43,208,183,123,132,21,232,43,208,87,160,175,64,95,129,62,187,48,23,73,62,208,149,94,27,93,46,45,198,63,64,199,72,150,135,198,210,140,25,239,8,200,185,120,241,52,93,186,116,101,63,252,199, +31,39,77,55,76,183,226,254,253,213,87,75,202,181,145,69,138,24,171,23,18,152,174,252,96,146,167,160,99,144,40,140,141,141,161,41,83,198,19,156,229,79,159,46,162,63,255,252,149,46,92,56,69,21,5,12,253, +173,191,222,212,245,235,215,163,91,111,189,149,238,187,239,62,166,182,125,69,183,232,104,160,223,186,245,171,210,137,225,201,39,159,36,118,97,166,166,77,195,217,54,250,3,103,3,253,135,31,126,136,30,123, +236,49,1,250,220,236,148,122,245,234,69,3,7,246,115,54,208,79,72,232,73,13,26,52,32,78,174,203,220,29,50,100,48,141,25,147,226,124,160,223,189,123,28,143,116,71,94,37,134,240,2,48,181,106,1,253,111,190, +89,38,23,97,126,254,118,230,240,135,5,36,149,104,215,19,182,150,165,6,229,18,144,172,169,77,236,196,153,31,248,33,44,90,164,10,253,50,244,86,129,190,2,125,5,250,166,56,162,42,244,21,232,155,132,51,198, +124,82,160,111,113,192,76,93,136,102,64,164,2,125,147,35,31,48,177,53,243,215,8,246,115,52,232,96,143,168,109,85,8,10,244,237,186,16,21,232,43,208,87,160,175,64,95,129,190,2,125,5,250,118,227,102,5,250, +118,143,176,2,125,5,250,10,244,21,232,43,208,119,54,208,135,78,60,59,59,171,148,26,56,90,161,143,102,211,179,103,207,160,62,125,222,184,10,115,56,22,232,99,116,187,118,237,76,183,220,114,11,133,133,133, +113,99,131,154,212,165,75,164,148,108,56,90,161,127,211,77,55,81,205,154,53,137,189,174,69,240,222,170,213,171,180,108,217,71,206,5,250,95,124,145,65,213,170,85,163,240,240,112,160,100,177,20,232,219, +183,15,45,88,48,199,185,64,31,150,24,29,59,182,163,102,205,154,241,156,238,35,85,8,147,38,189,93,53,128,254,130,5,179,9,149,8,48,115,248,225,135,229,10,244,165,57,186,191,117,74,101,215,97,85,232,187, +39,177,213,114,95,45,247,233,111,21,130,34,5,250,10,244,77,194,25,5,250,170,208,183,56,85,42,139,208,6,205,192,225,90,5,140,207,85,160,95,89,163,31,240,72,43,208,55,185,16,88,30,105,5,250,10,244,21,232, +43,208,87,160,175,64,95,129,190,221,184,89,129,190,221,35,172,64,95,129,190,2,125,5,250,10,244,21,232,211,153,51,71,174,234,63,30,136,66,223,19,249,114,44,208,71,5,194,132,9,111,209,227,143,63,38,184, +121,234,212,9,174,86,200,14,6,250,235,215,103,210,141,55,222,40,21,8,141,26,53,146,199,27,111,196,75,119,236,220,220,45,226,235,155,145,145,33,189,3,96,226,58,118,236,216,234,229,180,91,200,20,49,99,129, +187,235,133,196,196,4,74,79,159,43,133,35,39,78,252,76,191,253,118,180,220,148,8,180,97,122,82,82,162,52,54,104,210,164,9,197,199,199,203,163,83,167,8,30,237,31,156,11,244,63,250,104,30,151,77,60,74,237, +218,181,147,10,4,0,253,209,163,83,100,160,176,125,128,115,50,143,48,4,239,240,3,238,236,158,39,188,42,195,84,163,70,141,80,134,158,48,14,166,17,35,134,208,119,223,125,206,127,170,13,130,151,255,253,239, +95,100,212,3,29,97,247,178,159,184,184,104,169,245,64,21,194,232,209,35,105,250,244,201,85,7,232,191,255,254,59,220,216,224,95,210,93,251,224,193,66,30,168,157,134,55,53,155,164,116,75,244,153,84,175, +83,167,78,40,91,87,100,151,248,16,244,162,21,43,150,201,104,43,208,231,58,37,172,18,89,89,223,208,234,213,95,75,209,21,92,193,143,28,57,76,243,230,205,19,227,6,184,127,163,235,182,167,156,183,215,172, +169,2,125,5,250,10,244,15,209,161,67,133,116,224,192,30,182,217,207,167,189,106,185,95,98,223,225,183,110,92,21,250,38,105,150,207,59,162,85,128,169,10,125,147,35,111,153,35,90,253,75,216,241,124,13,218, +142,81,181,180,97,50,27,128,2,125,187,46,68,5,250,10,244,21,232,43,208,87,160,175,64,95,129,190,221,184,89,129,190,221,35,172,64,95,129,190,2,125,5,250,193,3,73,72,96,158,60,121,92,58,90,186,200,192,56, +79,70,240,163,97,109,31,31,31,71,105,105,83,164,45,252,229,203,191,211,95,127,157,245,219,193,254,208,161,61,12,126,242,57,147,154,199,153,212,157,156,73,221,206,152,226,39,218,189,123,43,237,218,181, +133,89,206,38,225,57,160,183,101,113,51,112,134,163,45,247,171,156,66,191,202,1,253,111,190,249,76,44,246,65,183,48,29,13,237,173,99,21,250,235,214,173,226,166,6,33,116,215,93,119,209,131,15,62,200,176, +179,27,91,10,172,116,54,208,127,230,153,167,4,232,63,251,236,179,108,39,208,138,94,126,185,185,140,186,99,129,62,166,2,234,60,234,213,171,39,165,17,3,7,14,164,222,189,123,83,82,82,63,103,43,244,81,158, +129,26,15,163,177,65,114,242,112,182,21,24,231,124,160,63,105,210,88,138,140,124,141,71,120,0,87,32,76,169,90,64,255,187,239,190,224,21,100,45,237,219,183,139,31,5,70,59,20,138,137,137,201,246,212,14, +217,99,82,29,32,221,5,212,105,252,248,49,180,121,243,106,185,139,225,238,118,152,119,107,86,122,181,120,179,20,80,160,111,108,74,184,191,74,8,187,155,204,199,102,165,71,143,238,180,112,225,92,217,59,160, +238,195,216,79,236,219,183,195,244,94,162,228,198,177,146,214,174,253,86,30,248,30,69,41,152,18,40,153,88,190,252,43,89,65,240,121,220,41,123,254,212,169,83,67,252,242,234,109,219,182,109,24,23,172,164, +227,141,112,149,79,159,62,77,42,185,138,138,246,202,52,65,240,248,69,242,243,179,43,220,252,24,119,58,76,9,172,195,152,50,104,204,129,42,26,204,97,212,120,48,84,149,128,57,240,244,228,228,228,176,138, +72,132,42,244,21,232,87,192,95,44,115,68,5,250,38,105,150,2,125,179,128,52,216,207,179,60,167,131,29,128,63,239,167,65,251,51,106,254,188,38,224,145,86,160,111,114,9,180,60,210,10,244,21,232,43,208,87, +160,175,64,95,129,190,2,125,187,113,179,2,125,187,71,88,129,190,2,125,5,250,10,244,21,232,43,208,191,190,21,250,222,200,151,99,129,62,2,139,142,142,98,38,222,76,192,167,1,146,28,173,208,127,224,129,251, +165,2,161,118,237,218,194,200,99,99,163,92,212,203,161,10,253,249,243,103,82,104,104,40,213,175,95,159,109,247,59,114,39,134,46,252,181,3,173,92,249,47,231,2,253,175,190,90,66,247,223,31,198,83,227,101, +234,215,175,159,96,229,1,3,250,203,20,1,170,59,118,236,48,247,196,152,37,136,142,27,31,108,45,139,154,203,165,197,248,55,79,236,196,153,159,152,152,104,90,180,104,142,84,188,0,114,194,195,35,152,150,2, +189,123,191,206,141,13,154,82,175,94,189,36,232,41,83,38,84,13,160,255,201,39,255,164,33,67,74,42,16,214,175,255,94,129,62,151,233,164,82,78,206,70,169,173,3,27,199,195,159,90,59,119,62,14,75,1,60,80, +50,129,26,188,67,135,14,48,31,95,110,224,230,226,148,148,148,81,150,217,184,2,125,169,64,40,49,109,80,160,95,17,176,225,242,137,144,200,200,200,81,70,181,13,234,63,230,204,73,165,188,188,29,50,23,143, +31,47,226,109,164,42,244,43,196,42,150,153,139,2,125,147,52,75,129,190,63,180,53,24,175,177,60,167,131,241,161,129,190,135,6,29,232,8,154,125,125,192,35,173,64,223,228,18,104,121,164,21,232,43,208,87, +160,175,64,95,129,190,2,125,5,250,118,227,102,5,250,118,143,176,2,125,5,250,10,244,21,232,43,208,87,160,175,64,223,221,174,220,241,10,125,0,253,31,126,248,154,190,254,122,153,155,165,128,131,21,250,232, +17,80,191,126,61,182,21,184,149,56,67,69,253,251,39,148,74,89,29,171,208,239,217,179,59,221,113,199,29,244,196,19,79,16,163,63,10,15,15,167,97,195,146,164,10,1,127,1,71,90,238,183,109,219,154,123,4,212, +36,22,30,83,223,190,125,133,143,195,192,193,209,64,255,205,55,83,164,198,3,37,19,128,249,120,140,31,63,218,249,64,127,212,168,225,212,161,67,123,150,91,247,147,10,4,204,229,42,161,208,255,230,155,101, +204,195,151,170,229,190,42,244,21,232,155,129,51,10,244,39,78,48,154,203,160,26,236,108,92,92,28,58,154,120,108,204,97,185,178,198,219,11,20,232,155,164,89,10,244,205,92,196,118,60,199,50,71,180,35,8, +171,239,249,255,1,83,144,34,244,91,28,100,189,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* TalComponent::bmp00129_png = (const char*) resource_NewJucerComponent_bmp00129_png; +const int TalComponent::bmp00129_pngSize = 36459; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +// JUCER_RESOURCE: bmp00130_png, 4300, "E:/Code/tal/tal-reverb-2-juce/resources/bmp00130.png" +static const unsigned char resource_NewJucerComponent_bmp00130_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,83,0,0,0,51,8,6,0,0,0,235,70,52,90,0,0,0,9,112,72,89,115,0,0,14,195,0,0,14, +195,1,199,111,168,100,0,0,10,79,105,67,67,80,80,104,111,116,111,115,104,111,112,32,73,67,67,32,112,114,111,102,105,108,101,0,0,120,218,157,83,103,84,83,233,22,61,247,222,244,66,75,136,128,148,75,111,82, +21,8,32,82,66,139,128,20,145,38,42,33,9,16,74,136,33,161,217,21,81,193,17,69,69,4,27,200,160,136,3,142,142,128,140,21,81,44,12,138,10,216,7,228,33,162,142,131,163,136,138,202,251,225,123,163,107,214,188, +247,230,205,254,181,215,62,231,172,243,157,179,207,7,192,8,12,150,72,51,81,53,128,12,169,66,30,17,224,131,199,196,198,225,228,46,64,129,10,36,112,0,16,8,179,100,33,115,253,35,1,0,248,126,60,60,43,34,192, +7,190,0,1,120,211,11,8,0,192,77,155,192,48,28,135,255,15,234,66,153,92,1,128,132,1,192,116,145,56,75,8,128,20,0,64,122,142,66,166,0,64,70,1,128,157,152,38,83,0,160,4,0,96,203,99,98,227,0,80,45,0,96,39, +127,230,211,0,128,157,248,153,123,1,0,91,148,33,21,1,160,145,0,32,19,101,136,68,0,104,59,0,172,207,86,138,69,0,88,48,0,20,102,75,196,57,0,216,45,0,48,73,87,102,72,0,176,183,0,192,206,16,11,178,0,8,12, +0,48,81,136,133,41,0,4,123,0,96,200,35,35,120,0,132,153,0,20,70,242,87,60,241,43,174,16,231,42,0,0,120,153,178,60,185,36,57,69,129,91,8,45,113,7,87,87,46,30,40,206,73,23,43,20,54,97,2,97,154,64,46,194, +121,153,25,50,129,52,15,224,243,204,0,0,160,145,21,17,224,131,243,253,120,206,14,174,206,206,54,142,182,14,95,45,234,191,6,255,34,98,98,227,254,229,207,171,112,64,0,0,225,116,126,209,254,44,47,179,26, +128,59,6,128,109,254,162,37,238,4,104,94,11,160,117,247,139,102,178,15,64,181,0,160,233,218,87,243,112,248,126,60,60,69,161,144,185,217,217,229,228,228,216,74,196,66,91,97,202,87,125,254,103,194,95,192, +87,253,108,249,126,60,252,247,245,224,190,226,36,129,50,93,129,71,4,248,224,194,204,244,76,165,28,207,146,9,132,98,220,230,143,71,252,183,11,255,252,29,211,34,196,73,98,185,88,42,20,227,81,18,113,142, +68,154,140,243,50,165,34,137,66,146,41,197,37,210,255,100,226,223,44,251,3,62,223,53,0,176,106,62,1,123,145,45,168,93,99,3,246,75,39,16,88,116,192,226,247,0,0,242,187,111,193,212,40,8,3,128,104,131,225, +207,119,255,239,63,253,71,160,37,0,128,102,73,146,113,0,0,94,68,36,46,84,202,179,63,199,8,0,0,68,160,129,42,176,65,27,244,193,24,44,192,6,28,193,5,220,193,11,252,96,54,132,66,36,196,194,66,16,66,10,100, +128,28,114,96,41,172,130,66,40,134,205,176,29,42,96,47,212,64,29,52,192,81,104,134,147,112,14,46,194,85,184,14,61,112,15,250,97,8,158,193,40,188,129,9,4,65,200,8,19,97,33,218,136,1,98,138,88,35,142,8, +23,153,133,248,33,193,72,4,18,139,36,32,201,136,20,81,34,75,145,53,72,49,82,138,84,32,85,72,29,242,61,114,2,57,135,92,70,186,145,59,200,0,50,130,252,134,188,71,49,148,129,178,81,61,212,12,181,67,185,168, +55,26,132,70,162,11,208,100,116,49,154,143,22,160,155,208,114,180,26,61,140,54,161,231,208,171,104,15,218,143,62,67,199,48,192,232,24,7,51,196,108,48,46,198,195,66,177,56,44,9,147,99,203,177,34,172,12, +171,198,26,176,86,172,3,187,137,245,99,207,177,119,4,18,129,69,192,9,54,4,119,66,32,97,30,65,72,88,76,88,78,216,72,168,32,28,36,52,17,218,9,55,9,3,132,81,194,39,34,147,168,75,180,38,186,17,249,196,24, +98,50,49,135,88,72,44,35,214,18,143,19,47,16,123,136,67,196,55,36,18,137,67,50,39,185,144,2,73,177,164,84,210,18,210,70,210,110,82,35,233,44,169,155,52,72,26,35,147,201,218,100,107,178,7,57,148,44,32, +43,200,133,228,157,228,195,228,51,228,27,228,33,242,91,10,157,98,64,113,164,248,83,226,40,82,202,106,74,25,229,16,229,52,229,6,101,152,50,65,85,163,154,82,221,168,161,84,17,53,143,90,66,173,161,182,82, +175,81,135,168,19,52,117,154,57,205,131,22,73,75,165,173,162,149,211,26,104,23,104,247,105,175,232,116,186,17,221,149,30,78,151,208,87,210,203,233,71,232,151,232,3,244,119,12,13,134,21,131,199,136,103, +40,25,155,24,7,24,103,25,119,24,175,152,76,166,25,211,139,25,199,84,48,55,49,235,152,231,153,15,153,111,85,88,42,182,42,124,21,145,202,10,149,74,149,38,149,27,42,47,84,169,170,166,170,222,170,11,85,243, +85,203,84,143,169,94,83,125,174,70,85,51,83,227,169,9,212,150,171,85,170,157,80,235,83,27,83,103,169,59,168,135,170,103,168,111,84,63,164,126,89,253,137,6,89,195,76,195,79,67,164,81,160,177,95,227,188, +198,32,11,99,25,179,120,44,33,107,13,171,134,117,129,53,196,38,177,205,217,124,118,42,187,152,253,29,187,139,61,170,169,161,57,67,51,74,51,87,179,82,243,148,102,63,7,227,152,113,248,156,116,78,9,231,40, +167,151,243,126,138,222,20,239,41,226,41,27,166,52,76,185,49,101,92,107,170,150,151,150,88,171,72,171,81,171,71,235,189,54,174,237,167,157,166,189,69,187,89,251,129,14,65,199,74,39,92,39,71,103,143,206, +5,157,231,83,217,83,221,167,10,167,22,77,61,58,245,174,46,170,107,165,27,161,187,68,119,191,110,167,238,152,158,190,94,128,158,76,111,167,222,121,189,231,250,28,125,47,253,84,253,109,250,167,245,71,12, +88,6,179,12,36,6,219,12,206,24,60,197,53,113,111,60,29,47,199,219,241,81,67,93,195,64,67,165,97,149,97,151,225,132,145,185,209,60,163,213,70,141,70,15,140,105,198,92,227,36,227,109,198,109,198,163,38, +6,38,33,38,75,77,234,77,238,154,82,77,185,166,41,166,59,76,59,76,199,205,204,205,162,205,214,153,53,155,61,49,215,50,231,155,231,155,215,155,223,183,96,90,120,90,44,182,168,182,184,101,73,178,228,90,166, +89,238,182,188,110,133,90,57,89,165,88,85,90,93,179,70,173,157,173,37,214,187,173,187,167,17,167,185,78,147,78,171,158,214,103,195,176,241,182,201,182,169,183,25,176,229,216,6,219,174,182,109,182,125, +97,103,98,23,103,183,197,174,195,238,147,189,147,125,186,125,141,253,61,7,13,135,217,14,171,29,90,29,126,115,180,114,20,58,86,58,222,154,206,156,238,63,125,197,244,150,233,47,103,88,207,16,207,216,51, +227,182,19,203,41,196,105,157,83,155,211,71,103,23,103,185,115,131,243,136,139,137,75,130,203,46,151,62,46,155,27,198,221,200,189,228,74,116,245,113,93,225,122,210,245,157,155,179,155,194,237,168,219, +175,238,54,238,105,238,135,220,159,204,52,159,41,158,89,51,115,208,195,200,67,224,81,229,209,63,11,159,149,48,107,223,172,126,79,67,79,129,103,181,231,35,47,99,47,145,87,173,215,176,183,165,119,170,247, +97,239,23,62,246,62,114,159,227,62,227,60,55,222,50,222,89,95,204,55,192,183,200,183,203,79,195,111,158,95,133,223,67,127,35,255,100,255,122,255,209,0,167,128,37,1,103,3,137,129,65,129,91,2,251,248,122, +124,33,191,142,63,58,219,101,246,178,217,237,65,140,160,185,65,21,65,143,130,173,130,229,193,173,33,104,200,236,144,173,33,247,231,152,206,145,206,105,14,133,80,126,232,214,208,7,97,230,97,139,195,126, +12,39,133,135,133,87,134,63,142,112,136,88,26,209,49,151,53,119,209,220,67,115,223,68,250,68,150,68,222,155,103,49,79,57,175,45,74,53,42,62,170,46,106,60,218,55,186,52,186,63,198,46,102,89,204,213,88, +157,88,73,108,75,28,57,46,42,174,54,110,108,190,223,252,237,243,135,226,157,226,11,227,123,23,152,47,200,93,112,121,161,206,194,244,133,167,22,169,46,18,44,58,150,64,76,136,78,56,148,240,65,16,42,168, +22,140,37,242,19,119,37,142,10,121,194,29,194,103,34,47,209,54,209,136,216,67,92,42,30,78,242,72,42,77,122,146,236,145,188,53,121,36,197,51,165,44,229,185,132,39,169,144,188,76,13,76,221,155,58,158,22, +154,118,32,109,50,61,58,189,49,131,146,145,144,113,66,170,33,77,147,182,103,234,103,230,102,118,203,172,101,133,178,254,197,110,139,183,47,30,149,7,201,107,179,144,172,5,89,45,10,182,66,166,232,84,90, +40,215,42,7,178,103,101,87,102,191,205,137,202,57,150,171,158,43,205,237,204,179,202,219,144,55,156,239,159,255,237,18,194,18,225,146,182,165,134,75,87,45,29,88,230,189,172,106,57,178,60,113,121,219,10, +227,21,5,43,134,86,6,172,60,184,138,182,42,109,213,79,171,237,87,151,174,126,189,38,122,77,107,129,94,193,202,130,193,181,1,107,235,11,85,10,229,133,125,235,220,215,237,93,79,88,47,89,223,181,97,250,134, +157,27,62,21,137,138,174,20,219,23,151,21,127,216,40,220,120,229,27,135,111,202,191,153,220,148,180,169,171,196,185,100,207,102,210,102,233,230,222,45,158,91,14,150,170,151,230,151,14,110,13,217,218,180, +13,223,86,180,237,245,246,69,219,47,151,205,40,219,187,131,182,67,185,163,191,60,184,188,101,167,201,206,205,59,63,84,164,84,244,84,250,84,54,238,210,221,181,97,215,248,110,209,238,27,123,188,246,52,236, +213,219,91,188,247,253,62,201,190,219,85,1,85,77,213,102,213,101,251,73,251,179,247,63,174,137,170,233,248,150,251,109,93,173,78,109,113,237,199,3,210,3,253,7,35,14,182,215,185,212,213,29,210,61,84,82, +143,214,43,235,71,14,199,31,190,254,157,239,119,45,13,54,13,85,141,156,198,226,35,112,68,121,228,233,247,9,223,247,30,13,58,218,118,140,123,172,225,7,211,31,118,29,103,29,47,106,66,154,242,154,70,155, +83,154,251,91,98,91,186,79,204,62,209,214,234,222,122,252,71,219,31,15,156,52,60,89,121,74,243,84,201,105,218,233,130,211,147,103,242,207,140,157,149,157,125,126,46,249,220,96,219,162,182,123,231,99,206, +223,106,15,111,239,186,16,116,225,210,69,255,139,231,59,188,59,206,92,242,184,116,242,178,219,229,19,87,184,87,154,175,58,95,109,234,116,234,60,254,147,211,79,199,187,156,187,154,174,185,92,107,185,238, +122,189,181,123,102,247,233,27,158,55,206,221,244,189,121,241,22,255,214,213,158,57,61,221,189,243,122,111,247,197,247,245,223,22,221,126,114,39,253,206,203,187,217,119,39,238,173,188,79,188,95,244,64, +237,65,217,67,221,135,213,63,91,254,220,216,239,220,127,106,192,119,160,243,209,220,71,247,6,133,131,207,254,145,245,143,15,67,5,143,153,143,203,134,13,134,235,158,56,62,57,57,226,63,114,253,233,252,167, +67,207,100,207,38,158,23,254,162,254,203,174,23,22,47,126,248,213,235,215,206,209,152,209,161,151,242,151,147,191,109,124,165,253,234,192,235,25,175,219,198,194,198,30,190,201,120,51,49,94,244,86,251, +237,193,119,220,119,29,239,163,223,15,79,228,124,32,127,40,255,104,249,177,245,83,208,167,251,147,25,147,147,255,4,3,152,243,252,99,51,45,219,0,0,0,4,103,65,77,65,0,0,177,142,124,251,81,147,0,0,0,32,99, +72,82,77,0,0,122,37,0,0,128,131,0,0,249,255,0,0,128,233,0,0,117,48,0,0,234,96,0,0,58,152,0,0,23,111,146,95,197,70,0,0,5,231,73,68,65,84,120,218,236,155,203,118,219,54,16,134,255,1,233,244,9,250,148,233, +178,222,229,13,218,190,66,182,125,41,47,114,210,158,56,113,234,19,93,40,139,20,57,51,93,16,100,32,8,0,73,221,76,165,165,14,76,10,148,100,232,211,63,23,12,65,82,85,248,27,17,29,116,33,188,209,137,207,231, +176,233,137,207,251,254,124,196,63,163,129,190,208,49,141,120,237,107,0,214,129,62,117,198,19,123,109,236,60,229,71,12,40,6,143,18,125,49,208,215,4,154,2,233,3,237,160,185,123,247,24,222,49,0,32,159,168, +74,74,236,41,0,149,6,128,191,38,76,245,224,185,199,161,115,49,149,234,88,152,67,32,167,54,188,18,80,29,80,164,78,104,136,40,55,9,147,142,0,105,108,59,5,234,53,212,57,22,162,216,54,164,76,26,27,128,66, +144,251,246,238,221,125,153,101,89,251,233,42,16,17,132,50,132,185,109,34,10,230,6,117,93,163,170,42,148,229,22,239,223,255,249,179,133,215,129,36,15,186,164,20,159,79,52,239,3,37,138,112,159,78,169,42, +68,4,34,183,0,83,44,200,18,101,89,98,185,92,117,60,196,1,217,193,235,250,76,68,169,58,37,154,83,64,153,6,0,53,13,35,203,20,247,191,222,67,85,123,85,206,89,157,93,30,173,42,80,5,222,254,242,22,171,85,225, +195,228,128,120,216,3,186,23,217,243,99,205,187,3,218,52,53,68,76,111,222,221,0,231,10,244,251,132,164,29,219,215,175,255,96,189,46,80,20,27,0,184,179,192,196,129,231,43,80,2,254,94,199,154,121,18,102, +93,215,32,34,48,75,111,230,170,173,219,153,163,56,91,150,45,131,167,167,39,124,248,240,17,235,117,129,237,118,219,193,52,158,42,17,201,65,39,195,140,229,138,6,64,214,250,76,177,42,100,11,84,192,60,127, +152,155,77,129,47,95,158,240,252,252,140,221,174,70,93,55,46,76,19,201,50,220,111,36,94,52,143,194,164,1,176,198,217,247,14,189,133,201,189,74,231,106,230,173,37,113,40,243,120,3,160,9,192,244,83,38,227, +64,164,169,102,30,11,64,198,77,53,58,85,50,115,15,115,78,64,59,144,157,91,18,81,136,138,15,211,0,168,71,228,161,62,147,211,3,80,119,178,131,216,52,141,3,83,102,101,234,68,0,145,1,17,161,105,24,34,236, +167,113,121,32,216,184,105,145,113,204,155,142,81,102,44,207,220,87,166,77,216,217,182,239,209,125,110,202,84,24,99,236,24,15,198,119,231,249,68,25,9,116,82,213,40,5,180,253,25,69,218,95,154,25,220,52, +51,134,73,80,99,160,194,16,101,155,121,28,192,84,43,52,118,114,206,216,84,121,180,153,211,8,115,183,202,84,107,234,135,126,115,110,48,179,172,117,75,194,10,221,55,243,204,194,235,64,102,35,64,78,154,78, +98,160,184,225,40,179,133,200,220,88,7,47,179,131,105,76,27,136,153,25,162,7,227,115,103,64,89,151,254,141,40,222,12,194,28,42,252,154,3,101,138,130,133,209,88,101,206,18,166,42,20,0,75,59,62,209,3,101, +186,170,244,83,65,255,123,239,49,58,87,165,29,42,210,55,225,214,119,206,17,38,84,91,7,39,214,196,247,199,103,2,121,180,137,152,246,201,102,30,155,25,117,83,11,47,25,107,31,115,218,252,42,47,246,47,30, +166,124,227,32,212,252,92,131,52,68,109,14,215,63,96,255,206,40,207,116,198,69,176,9,124,58,62,96,74,1,251,100,152,93,212,38,50,48,6,40,203,10,203,229,162,143,234,115,51,243,44,51,200,50,131,170,218,97, +177,92,96,181,90,163,174,107,52,77,115,242,231,159,12,179,174,119,96,102,20,69,129,79,159,30,241,248,248,25,203,213,18,194,214,185,207,108,10,100,136,96,50,131,170,172,240,109,177,192,114,177,196,102, +179,245,97,250,23,210,244,220,48,67,151,67,181,170,42,188,188,108,241,240,240,128,143,127,253,141,207,143,95,176,94,175,251,185,186,206,202,204,97,45,136,80,237,118,40,138,2,85,89,161,174,107,127,214, +19,186,136,38,33,151,139,35,175,78,6,161,22,197,6,171,85,129,223,126,255,3,155,205,11,182,219,18,93,89,238,6,55,247,250,143,70,224,70,213,154,15,64,35,28,94,226,116,139,0,186,90,21,88,44,150,88,175,139, +174,38,120,203,27,219,18,92,55,133,84,15,174,123,236,243,80,138,172,53,162,64,222,101,156,164,182,219,223,57,237,141,211,126,242,250,115,167,249,51,11,19,155,158,93,32,35,114,139,22,236,192,235,218,206, +150,223,106,0,149,125,190,243,250,107,251,90,118,246,2,64,242,17,131,160,68,170,22,26,160,56,5,214,80,109,208,175,192,80,162,178,125,78,152,190,233,178,7,164,246,250,220,239,147,242,165,147,3,144,142, +4,105,28,144,181,247,254,124,196,156,247,26,185,186,15,211,7,90,123,125,99,128,142,174,103,250,190,51,5,210,133,137,64,109,208,157,247,250,151,62,204,133,3,139,31,96,92,43,98,7,166,107,246,60,5,104,126, +228,175,59,4,52,166,74,126,5,127,57,228,55,197,83,98,227,153,252,16,72,61,198,204,67,75,69,186,107,203,161,185,172,6,212,24,3,121,77,152,177,64,36,158,34,83,234,12,166,73,249,145,129,199,93,62,226,2,245, +29,190,4,64,166,170,49,116,33,136,49,152,26,240,159,28,129,41,129,60,116,146,50,213,155,64,132,22,48,81,34,122,134,92,128,95,27,196,21,97,34,144,51,74,36,40,113,40,253,113,142,15,214,113,230,39,12,202, +95,42,18,243,77,156,48,237,215,50,115,29,0,42,151,244,153,199,192,52,137,124,146,198,22,92,207,168,204,84,16,77,65,149,75,7,32,56,160,56,242,15,98,106,52,129,154,225,53,151,97,167,138,23,50,208,244,152, +0,20,203,51,67,249,155,9,204,87,213,57,23,90,86,131,43,169,50,165,78,68,130,137,15,45,54,71,63,41,207,140,85,75,36,80,222,87,47,218,223,250,50,236,212,250,246,73,85,35,95,157,148,40,150,10,246,23,52,253, +136,55,8,196,170,104,147,3,80,8,168,226,199,191,117,37,10,112,106,158,73,35,253,167,255,250,91,191,169,42,5,60,248,153,199,250,76,138,20,65,66,202,189,181,219,253,134,64,31,85,105,31,154,90,34,161,210, +216,249,255,252,141,168,136,168,44,245,193,177,247,205,249,158,22,157,216,143,169,62,115,44,212,177,3,162,27,130,56,249,125,249,5,6,64,23,24,248,77,128,166,91,184,53,239,86,54,243,63,130,243,109,255,14, +0,127,145,11,125,24,209,94,181,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* TalComponent::bmp00130_png = (const char*) resource_NewJucerComponent_bmp00130_png; +const int TalComponent::bmp00130_pngSize = 4300; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +// JUCER_RESOURCE: bmp00132_png, 3570, "E:/Code/tal/tal-reverb-2-juce/resources/bmp00132.png" +static const unsigned char resource_NewJucerComponent_bmp00132_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,71,0,0,0,52,8,6,0,0,0,216,6,37,112,0,0,0,9,112,72,89,115,0,0,14,195,0,0,14, +195,1,199,111,168,100,0,0,10,79,105,67,67,80,80,104,111,116,111,115,104,111,112,32,73,67,67,32,112,114,111,102,105,108,101,0,0,120,218,157,83,103,84,83,233,22,61,247,222,244,66,75,136,128,148,75,111,82, +21,8,32,82,66,139,128,20,145,38,42,33,9,16,74,136,33,161,217,21,81,193,17,69,69,4,27,200,160,136,3,142,142,128,140,21,81,44,12,138,10,216,7,228,33,162,142,131,163,136,138,202,251,225,123,163,107,214,188, +247,230,205,254,181,215,62,231,172,243,157,179,207,7,192,8,12,150,72,51,81,53,128,12,169,66,30,17,224,131,199,196,198,225,228,46,64,129,10,36,112,0,16,8,179,100,33,115,253,35,1,0,248,126,60,60,43,34,192, +7,190,0,1,120,211,11,8,0,192,77,155,192,48,28,135,255,15,234,66,153,92,1,128,132,1,192,116,145,56,75,8,128,20,0,64,122,142,66,166,0,64,70,1,128,157,152,38,83,0,160,4,0,96,203,99,98,227,0,80,45,0,96,39, +127,230,211,0,128,157,248,153,123,1,0,91,148,33,21,1,160,145,0,32,19,101,136,68,0,104,59,0,172,207,86,138,69,0,88,48,0,20,102,75,196,57,0,216,45,0,48,73,87,102,72,0,176,183,0,192,206,16,11,178,0,8,12, +0,48,81,136,133,41,0,4,123,0,96,200,35,35,120,0,132,153,0,20,70,242,87,60,241,43,174,16,231,42,0,0,120,153,178,60,185,36,57,69,129,91,8,45,113,7,87,87,46,30,40,206,73,23,43,20,54,97,2,97,154,64,46,194, +121,153,25,50,129,52,15,224,243,204,0,0,160,145,21,17,224,131,243,253,120,206,14,174,206,206,54,142,182,14,95,45,234,191,6,255,34,98,98,227,254,229,207,171,112,64,0,0,225,116,126,209,254,44,47,179,26, +128,59,6,128,109,254,162,37,238,4,104,94,11,160,117,247,139,102,178,15,64,181,0,160,233,218,87,243,112,248,126,60,60,69,161,144,185,217,217,229,228,228,216,74,196,66,91,97,202,87,125,254,103,194,95,192, +87,253,108,249,126,60,252,247,245,224,190,226,36,129,50,93,129,71,4,248,224,194,204,244,76,165,28,207,146,9,132,98,220,230,143,71,252,183,11,255,252,29,211,34,196,73,98,185,88,42,20,227,81,18,113,142, +68,154,140,243,50,165,34,137,66,146,41,197,37,210,255,100,226,223,44,251,3,62,223,53,0,176,106,62,1,123,145,45,168,93,99,3,246,75,39,16,88,116,192,226,247,0,0,242,187,111,193,212,40,8,3,128,104,131,225, +207,119,255,239,63,253,71,160,37,0,128,102,73,146,113,0,0,94,68,36,46,84,202,179,63,199,8,0,0,68,160,129,42,176,65,27,244,193,24,44,192,6,28,193,5,220,193,11,252,96,54,132,66,36,196,194,66,16,66,10,100, +128,28,114,96,41,172,130,66,40,134,205,176,29,42,96,47,212,64,29,52,192,81,104,134,147,112,14,46,194,85,184,14,61,112,15,250,97,8,158,193,40,188,129,9,4,65,200,8,19,97,33,218,136,1,98,138,88,35,142,8, +23,153,133,248,33,193,72,4,18,139,36,32,201,136,20,81,34,75,145,53,72,49,82,138,84,32,85,72,29,242,61,114,2,57,135,92,70,186,145,59,200,0,50,130,252,134,188,71,49,148,129,178,81,61,212,12,181,67,185,168, +55,26,132,70,162,11,208,100,116,49,154,143,22,160,155,208,114,180,26,61,140,54,161,231,208,171,104,15,218,143,62,67,199,48,192,232,24,7,51,196,108,48,46,198,195,66,177,56,44,9,147,99,203,177,34,172,12, +171,198,26,176,86,172,3,187,137,245,99,207,177,119,4,18,129,69,192,9,54,4,119,66,32,97,30,65,72,88,76,88,78,216,72,168,32,28,36,52,17,218,9,55,9,3,132,81,194,39,34,147,168,75,180,38,186,17,249,196,24, +98,50,49,135,88,72,44,35,214,18,143,19,47,16,123,136,67,196,55,36,18,137,67,50,39,185,144,2,73,177,164,84,210,18,210,70,210,110,82,35,233,44,169,155,52,72,26,35,147,201,218,100,107,178,7,57,148,44,32, +43,200,133,228,157,228,195,228,51,228,27,228,33,242,91,10,157,98,64,113,164,248,83,226,40,82,202,106,74,25,229,16,229,52,229,6,101,152,50,65,85,163,154,82,221,168,161,84,17,53,143,90,66,173,161,182,82, +175,81,135,168,19,52,117,154,57,205,131,22,73,75,165,173,162,149,211,26,104,23,104,247,105,175,232,116,186,17,221,149,30,78,151,208,87,210,203,233,71,232,151,232,3,244,119,12,13,134,21,131,199,136,103, +40,25,155,24,7,24,103,25,119,24,175,152,76,166,25,211,139,25,199,84,48,55,49,235,152,231,153,15,153,111,85,88,42,182,42,124,21,145,202,10,149,74,149,38,149,27,42,47,84,169,170,166,170,222,170,11,85,243, +85,203,84,143,169,94,83,125,174,70,85,51,83,227,169,9,212,150,171,85,170,157,80,235,83,27,83,103,169,59,168,135,170,103,168,111,84,63,164,126,89,253,137,6,89,195,76,195,79,67,164,81,160,177,95,227,188, +198,32,11,99,25,179,120,44,33,107,13,171,134,117,129,53,196,38,177,205,217,124,118,42,187,152,253,29,187,139,61,170,169,161,57,67,51,74,51,87,179,82,243,148,102,63,7,227,152,113,248,156,116,78,9,231,40, +167,151,243,126,138,222,20,239,41,226,41,27,166,52,76,185,49,101,92,107,170,150,151,150,88,171,72,171,81,171,71,235,189,54,174,237,167,157,166,189,69,187,89,251,129,14,65,199,74,39,92,39,71,103,143,206, +5,157,231,83,217,83,221,167,10,167,22,77,61,58,245,174,46,170,107,165,27,161,187,68,119,191,110,167,238,152,158,190,94,128,158,76,111,167,222,121,189,231,250,28,125,47,253,84,253,109,250,167,245,71,12, +88,6,179,12,36,6,219,12,206,24,60,197,53,113,111,60,29,47,199,219,241,81,67,93,195,64,67,165,97,149,97,151,225,132,145,185,209,60,163,213,70,141,70,15,140,105,198,92,227,36,227,109,198,109,198,163,38, +6,38,33,38,75,77,234,77,238,154,82,77,185,166,41,166,59,76,59,76,199,205,204,205,162,205,214,153,53,155,61,49,215,50,231,155,231,155,215,155,223,183,96,90,120,90,44,182,168,182,184,101,73,178,228,90,166, +89,238,182,188,110,133,90,57,89,165,88,85,90,93,179,70,173,157,173,37,214,187,173,187,167,17,167,185,78,147,78,171,158,214,103,195,176,241,182,201,182,169,183,25,176,229,216,6,219,174,182,109,182,125, +97,103,98,23,103,183,197,174,195,238,147,189,147,125,186,125,141,253,61,7,13,135,217,14,171,29,90,29,126,115,180,114,20,58,86,58,222,154,206,156,238,63,125,197,244,150,233,47,103,88,207,16,207,216,51, +227,182,19,203,41,196,105,157,83,155,211,71,103,23,103,185,115,131,243,136,139,137,75,130,203,46,151,62,46,155,27,198,221,200,189,228,74,116,245,113,93,225,122,210,245,157,155,179,155,194,237,168,219, +175,238,54,238,105,238,135,220,159,204,52,159,41,158,89,51,115,208,195,200,67,224,81,229,209,63,11,159,149,48,107,223,172,126,79,67,79,129,103,181,231,35,47,99,47,145,87,173,215,176,183,165,119,170,247, +97,239,23,62,246,62,114,159,227,62,227,60,55,222,50,222,89,95,204,55,192,183,200,183,203,79,195,111,158,95,133,223,67,127,35,255,100,255,122,255,209,0,167,128,37,1,103,3,137,129,65,129,91,2,251,248,122, +124,33,191,142,63,58,219,101,246,178,217,237,65,140,160,185,65,21,65,143,130,173,130,229,193,173,33,104,200,236,144,173,33,247,231,152,206,145,206,105,14,133,80,126,232,214,208,7,97,230,97,139,195,126, +12,39,133,135,133,87,134,63,142,112,136,88,26,209,49,151,53,119,209,220,67,115,223,68,250,68,150,68,222,155,103,49,79,57,175,45,74,53,42,62,170,46,106,60,218,55,186,52,186,63,198,46,102,89,204,213,88, +157,88,73,108,75,28,57,46,42,174,54,110,108,190,223,252,237,243,135,226,157,226,11,227,123,23,152,47,200,93,112,121,161,206,194,244,133,167,22,169,46,18,44,58,150,64,76,136,78,56,148,240,65,16,42,168, +22,140,37,242,19,119,37,142,10,121,194,29,194,103,34,47,209,54,209,136,216,67,92,42,30,78,242,72,42,77,122,146,236,145,188,53,121,36,197,51,165,44,229,185,132,39,169,144,188,76,13,76,221,155,58,158,22, +154,118,32,109,50,61,58,189,49,131,146,145,144,113,66,170,33,77,147,182,103,234,103,230,102,118,203,172,101,133,178,254,197,110,139,183,47,30,149,7,201,107,179,144,172,5,89,45,10,182,66,166,232,84,90, +40,215,42,7,178,103,101,87,102,191,205,137,202,57,150,171,158,43,205,237,204,179,202,219,144,55,156,239,159,255,237,18,194,18,225,146,182,165,134,75,87,45,29,88,230,189,172,106,57,178,60,113,121,219,10, +227,21,5,43,134,86,6,172,60,184,138,182,42,109,213,79,171,237,87,151,174,126,189,38,122,77,107,129,94,193,202,130,193,181,1,107,235,11,85,10,229,133,125,235,220,215,237,93,79,88,47,89,223,181,97,250,134, +157,27,62,21,137,138,174,20,219,23,151,21,127,216,40,220,120,229,27,135,111,202,191,153,220,148,180,169,171,196,185,100,207,102,210,102,233,230,222,45,158,91,14,150,170,151,230,151,14,110,13,217,218,180, +13,223,86,180,237,245,246,69,219,47,151,205,40,219,187,131,182,67,185,163,191,60,184,188,101,167,201,206,205,59,63,84,164,84,244,84,250,84,54,238,210,221,181,97,215,248,110,209,238,27,123,188,246,52,236, +213,219,91,188,247,253,62,201,190,219,85,1,85,77,213,102,213,101,251,73,251,179,247,63,174,137,170,233,248,150,251,109,93,173,78,109,113,237,199,3,210,3,253,7,35,14,182,215,185,212,213,29,210,61,84,82, +143,214,43,235,71,14,199,31,190,254,157,239,119,45,13,54,13,85,141,156,198,226,35,112,68,121,228,233,247,9,223,247,30,13,58,218,118,140,123,172,225,7,211,31,118,29,103,29,47,106,66,154,242,154,70,155, +83,154,251,91,98,91,186,79,204,62,209,214,234,222,122,252,71,219,31,15,156,52,60,89,121,74,243,84,201,105,218,233,130,211,147,103,242,207,140,157,149,157,125,126,46,249,220,96,219,162,182,123,231,99,206, +223,106,15,111,239,186,16,116,225,210,69,255,139,231,59,188,59,206,92,242,184,116,242,178,219,229,19,87,184,87,154,175,58,95,109,234,116,234,60,254,147,211,79,199,187,156,187,154,174,185,92,107,185,238, +122,189,181,123,102,247,233,27,158,55,206,221,244,189,121,241,22,255,214,213,158,57,61,221,189,243,122,111,247,197,247,245,223,22,221,126,114,39,253,206,203,187,217,119,39,238,173,188,79,188,95,244,64, +237,65,217,67,221,135,213,63,91,254,220,216,239,220,127,106,192,119,160,243,209,220,71,247,6,133,131,207,254,145,245,143,15,67,5,143,153,143,203,134,13,134,235,158,56,62,57,57,226,63,114,253,233,252,167, +67,207,100,207,38,158,23,254,162,254,203,174,23,22,47,126,248,213,235,215,206,209,152,209,161,151,242,151,147,191,109,124,165,253,234,192,235,25,175,219,198,194,198,30,190,201,120,51,49,94,244,86,251, +237,193,119,220,119,29,239,163,223,15,79,228,124,32,127,40,255,104,249,177,245,83,208,167,251,147,25,147,147,255,4,3,152,243,252,99,51,45,219,0,0,0,4,103,65,77,65,0,0,177,142,124,251,81,147,0,0,0,32,99, +72,82,77,0,0,122,37,0,0,128,131,0,0,249,255,0,0,128,233,0,0,117,48,0,0,234,96,0,0,58,152,0,0,23,111,146,95,197,70,0,0,3,13,73,68,65,84,120,218,236,154,237,109,226,64,16,134,95,78,20,144,14,142,6,44,57, +29,152,10,142,171,224,184,10,128,10,32,21,64,42,176,169,32,92,5,246,85,128,79,20,16,167,2,220,1,247,231,93,105,180,90,27,27,127,196,132,25,201,130,216,222,157,245,51,31,59,99,50,186,92,46,80,113,203,55, +69,160,112,20,142,194,233,81,198,174,147,167,211,233,225,178,180,231,121,35,245,156,166,158,83,70,211,225,101,247,206,224,162,57,71,19,178,194,81,56,131,79,200,37,137,55,224,103,10,32,31,240,243,61,1, +240,249,61,233,218,115,230,0,206,0,98,30,103,158,147,153,191,232,8,56,198,117,45,230,248,181,227,218,25,64,200,7,53,134,41,211,97,100,123,101,173,237,121,14,23,183,229,247,157,128,21,210,42,153,176,142, +177,88,198,3,150,135,217,86,76,29,127,155,251,39,212,147,1,120,17,247,200,185,97,233,216,2,88,242,122,196,245,152,181,230,0,14,109,195,241,169,100,35,22,249,143,10,127,241,220,84,88,55,230,194,94,28,115, +77,175,232,90,89,160,207,156,83,206,85,52,247,68,128,121,22,192,246,0,142,4,215,58,28,99,165,37,63,255,112,129,81,199,121,195,119,120,94,153,152,208,122,181,198,164,132,50,35,192,172,205,156,147,209,162, +198,123,142,0,222,5,172,186,85,169,60,214,214,245,216,145,143,94,173,123,54,142,121,0,224,123,65,168,202,115,147,182,61,199,228,154,132,97,20,208,170,91,130,59,212,152,199,206,57,31,5,15,225,211,250,207, +14,75,103,85,172,223,203,86,78,218,51,66,88,137,197,31,1,44,106,194,169,154,115,222,168,115,33,116,94,203,57,31,98,109,73,65,136,86,130,90,39,172,2,122,201,194,145,135,186,146,223,244,156,101,213,80,16, +64,22,98,251,55,96,102,117,60,174,142,231,28,196,22,249,68,5,115,145,156,235,72,92,209,155,114,122,76,72,221,63,173,154,43,176,238,223,211,163,118,92,231,209,218,202,225,240,192,86,224,228,180,100,104, +21,83,145,168,123,234,120,97,85,137,152,176,103,214,184,137,195,155,18,11,192,146,137,91,174,191,114,248,143,92,63,205,152,55,129,242,125,78,65,251,144,245,16,90,93,183,15,151,162,119,87,227,27,149,38, +184,15,201,155,172,85,187,114,133,243,185,112,2,171,210,53,221,117,88,114,143,171,187,126,119,116,249,113,65,245,124,173,67,111,252,11,202,184,99,248,115,22,106,217,149,182,36,19,15,27,178,66,78,107,230, +20,179,123,181,246,142,169,143,176,218,86,216,170,167,60,204,22,252,163,226,220,169,24,27,137,109,124,90,161,10,31,4,156,89,141,186,102,80,101,65,215,97,21,49,180,214,5,125,144,93,16,154,14,255,239,35, +192,217,179,8,11,74,234,141,192,2,180,27,74,29,53,238,65,199,138,59,204,166,196,187,246,67,172,184,251,128,147,240,8,74,242,76,82,178,27,249,108,3,114,177,43,229,125,192,233,171,8,92,221,56,238,64,48, +111,204,91,49,225,28,190,138,231,152,45,55,66,205,159,70,8,213,183,242,82,218,0,118,45,185,181,43,239,91,100,104,165,45,207,221,188,43,247,60,207,121,190,39,104,233,103,88,68,27,79,133,163,112,20,142, +194,185,135,10,249,17,255,229,86,61,167,73,17,168,162,158,163,112,20,142,194,81,56,131,146,255,3,0,167,84,15,181,128,100,82,70,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* TalComponent::bmp00132_png = (const char*) resource_NewJucerComponent_bmp00132_png; +const int TalComponent::bmp00132_pngSize = 3570; + + + + + + + + + + + + + + + + + + + + + + + +// JUCER_RESOURCE: bmp00133_png, 4989, "E:/Code/tal/tal-reverb-2-juce/resources/bmp00133.png" +static const unsigned char resource_NewJucerComponent_bmp00133_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,71,0,0,0,52,8,6,0,0,0,216,6,37,112,0,0,0,9,112,72,89,115,0,0,14,195,0,0,14, +195,1,199,111,168,100,0,0,10,79,105,67,67,80,80,104,111,116,111,115,104,111,112,32,73,67,67,32,112,114,111,102,105,108,101,0,0,120,218,157,83,103,84,83,233,22,61,247,222,244,66,75,136,128,148,75,111,82, +21,8,32,82,66,139,128,20,145,38,42,33,9,16,74,136,33,161,217,21,81,193,17,69,69,4,27,200,160,136,3,142,142,128,140,21,81,44,12,138,10,216,7,228,33,162,142,131,163,136,138,202,251,225,123,163,107,214,188, +247,230,205,254,181,215,62,231,172,243,157,179,207,7,192,8,12,150,72,51,81,53,128,12,169,66,30,17,224,131,199,196,198,225,228,46,64,129,10,36,112,0,16,8,179,100,33,115,253,35,1,0,248,126,60,60,43,34,192, +7,190,0,1,120,211,11,8,0,192,77,155,192,48,28,135,255,15,234,66,153,92,1,128,132,1,192,116,145,56,75,8,128,20,0,64,122,142,66,166,0,64,70,1,128,157,152,38,83,0,160,4,0,96,203,99,98,227,0,80,45,0,96,39, +127,230,211,0,128,157,248,153,123,1,0,91,148,33,21,1,160,145,0,32,19,101,136,68,0,104,59,0,172,207,86,138,69,0,88,48,0,20,102,75,196,57,0,216,45,0,48,73,87,102,72,0,176,183,0,192,206,16,11,178,0,8,12, +0,48,81,136,133,41,0,4,123,0,96,200,35,35,120,0,132,153,0,20,70,242,87,60,241,43,174,16,231,42,0,0,120,153,178,60,185,36,57,69,129,91,8,45,113,7,87,87,46,30,40,206,73,23,43,20,54,97,2,97,154,64,46,194, +121,153,25,50,129,52,15,224,243,204,0,0,160,145,21,17,224,131,243,253,120,206,14,174,206,206,54,142,182,14,95,45,234,191,6,255,34,98,98,227,254,229,207,171,112,64,0,0,225,116,126,209,254,44,47,179,26, +128,59,6,128,109,254,162,37,238,4,104,94,11,160,117,247,139,102,178,15,64,181,0,160,233,218,87,243,112,248,126,60,60,69,161,144,185,217,217,229,228,228,216,74,196,66,91,97,202,87,125,254,103,194,95,192, +87,253,108,249,126,60,252,247,245,224,190,226,36,129,50,93,129,71,4,248,224,194,204,244,76,165,28,207,146,9,132,98,220,230,143,71,252,183,11,255,252,29,211,34,196,73,98,185,88,42,20,227,81,18,113,142, +68,154,140,243,50,165,34,137,66,146,41,197,37,210,255,100,226,223,44,251,3,62,223,53,0,176,106,62,1,123,145,45,168,93,99,3,246,75,39,16,88,116,192,226,247,0,0,242,187,111,193,212,40,8,3,128,104,131,225, +207,119,255,239,63,253,71,160,37,0,128,102,73,146,113,0,0,94,68,36,46,84,202,179,63,199,8,0,0,68,160,129,42,176,65,27,244,193,24,44,192,6,28,193,5,220,193,11,252,96,54,132,66,36,196,194,66,16,66,10,100, +128,28,114,96,41,172,130,66,40,134,205,176,29,42,96,47,212,64,29,52,192,81,104,134,147,112,14,46,194,85,184,14,61,112,15,250,97,8,158,193,40,188,129,9,4,65,200,8,19,97,33,218,136,1,98,138,88,35,142,8, +23,153,133,248,33,193,72,4,18,139,36,32,201,136,20,81,34,75,145,53,72,49,82,138,84,32,85,72,29,242,61,114,2,57,135,92,70,186,145,59,200,0,50,130,252,134,188,71,49,148,129,178,81,61,212,12,181,67,185,168, +55,26,132,70,162,11,208,100,116,49,154,143,22,160,155,208,114,180,26,61,140,54,161,231,208,171,104,15,218,143,62,67,199,48,192,232,24,7,51,196,108,48,46,198,195,66,177,56,44,9,147,99,203,177,34,172,12, +171,198,26,176,86,172,3,187,137,245,99,207,177,119,4,18,129,69,192,9,54,4,119,66,32,97,30,65,72,88,76,88,78,216,72,168,32,28,36,52,17,218,9,55,9,3,132,81,194,39,34,147,168,75,180,38,186,17,249,196,24, +98,50,49,135,88,72,44,35,214,18,143,19,47,16,123,136,67,196,55,36,18,137,67,50,39,185,144,2,73,177,164,84,210,18,210,70,210,110,82,35,233,44,169,155,52,72,26,35,147,201,218,100,107,178,7,57,148,44,32, +43,200,133,228,157,228,195,228,51,228,27,228,33,242,91,10,157,98,64,113,164,248,83,226,40,82,202,106,74,25,229,16,229,52,229,6,101,152,50,65,85,163,154,82,221,168,161,84,17,53,143,90,66,173,161,182,82, +175,81,135,168,19,52,117,154,57,205,131,22,73,75,165,173,162,149,211,26,104,23,104,247,105,175,232,116,186,17,221,149,30,78,151,208,87,210,203,233,71,232,151,232,3,244,119,12,13,134,21,131,199,136,103, +40,25,155,24,7,24,103,25,119,24,175,152,76,166,25,211,139,25,199,84,48,55,49,235,152,231,153,15,153,111,85,88,42,182,42,124,21,145,202,10,149,74,149,38,149,27,42,47,84,169,170,166,170,222,170,11,85,243, +85,203,84,143,169,94,83,125,174,70,85,51,83,227,169,9,212,150,171,85,170,157,80,235,83,27,83,103,169,59,168,135,170,103,168,111,84,63,164,126,89,253,137,6,89,195,76,195,79,67,164,81,160,177,95,227,188, +198,32,11,99,25,179,120,44,33,107,13,171,134,117,129,53,196,38,177,205,217,124,118,42,187,152,253,29,187,139,61,170,169,161,57,67,51,74,51,87,179,82,243,148,102,63,7,227,152,113,248,156,116,78,9,231,40, +167,151,243,126,138,222,20,239,41,226,41,27,166,52,76,185,49,101,92,107,170,150,151,150,88,171,72,171,81,171,71,235,189,54,174,237,167,157,166,189,69,187,89,251,129,14,65,199,74,39,92,39,71,103,143,206, +5,157,231,83,217,83,221,167,10,167,22,77,61,58,245,174,46,170,107,165,27,161,187,68,119,191,110,167,238,152,158,190,94,128,158,76,111,167,222,121,189,231,250,28,125,47,253,84,253,109,250,167,245,71,12, +88,6,179,12,36,6,219,12,206,24,60,197,53,113,111,60,29,47,199,219,241,81,67,93,195,64,67,165,97,149,97,151,225,132,145,185,209,60,163,213,70,141,70,15,140,105,198,92,227,36,227,109,198,109,198,163,38, +6,38,33,38,75,77,234,77,238,154,82,77,185,166,41,166,59,76,59,76,199,205,204,205,162,205,214,153,53,155,61,49,215,50,231,155,231,155,215,155,223,183,96,90,120,90,44,182,168,182,184,101,73,178,228,90,166, +89,238,182,188,110,133,90,57,89,165,88,85,90,93,179,70,173,157,173,37,214,187,173,187,167,17,167,185,78,147,78,171,158,214,103,195,176,241,182,201,182,169,183,25,176,229,216,6,219,174,182,109,182,125, +97,103,98,23,103,183,197,174,195,238,147,189,147,125,186,125,141,253,61,7,13,135,217,14,171,29,90,29,126,115,180,114,20,58,86,58,222,154,206,156,238,63,125,197,244,150,233,47,103,88,207,16,207,216,51, +227,182,19,203,41,196,105,157,83,155,211,71,103,23,103,185,115,131,243,136,139,137,75,130,203,46,151,62,46,155,27,198,221,200,189,228,74,116,245,113,93,225,122,210,245,157,155,179,155,194,237,168,219, +175,238,54,238,105,238,135,220,159,204,52,159,41,158,89,51,115,208,195,200,67,224,81,229,209,63,11,159,149,48,107,223,172,126,79,67,79,129,103,181,231,35,47,99,47,145,87,173,215,176,183,165,119,170,247, +97,239,23,62,246,62,114,159,227,62,227,60,55,222,50,222,89,95,204,55,192,183,200,183,203,79,195,111,158,95,133,223,67,127,35,255,100,255,122,255,209,0,167,128,37,1,103,3,137,129,65,129,91,2,251,248,122, +124,33,191,142,63,58,219,101,246,178,217,237,65,140,160,185,65,21,65,143,130,173,130,229,193,173,33,104,200,236,144,173,33,247,231,152,206,145,206,105,14,133,80,126,232,214,208,7,97,230,97,139,195,126, +12,39,133,135,133,87,134,63,142,112,136,88,26,209,49,151,53,119,209,220,67,115,223,68,250,68,150,68,222,155,103,49,79,57,175,45,74,53,42,62,170,46,106,60,218,55,186,52,186,63,198,46,102,89,204,213,88, +157,88,73,108,75,28,57,46,42,174,54,110,108,190,223,252,237,243,135,226,157,226,11,227,123,23,152,47,200,93,112,121,161,206,194,244,133,167,22,169,46,18,44,58,150,64,76,136,78,56,148,240,65,16,42,168, +22,140,37,242,19,119,37,142,10,121,194,29,194,103,34,47,209,54,209,136,216,67,92,42,30,78,242,72,42,77,122,146,236,145,188,53,121,36,197,51,165,44,229,185,132,39,169,144,188,76,13,76,221,155,58,158,22, +154,118,32,109,50,61,58,189,49,131,146,145,144,113,66,170,33,77,147,182,103,234,103,230,102,118,203,172,101,133,178,254,197,110,139,183,47,30,149,7,201,107,179,144,172,5,89,45,10,182,66,166,232,84,90, +40,215,42,7,178,103,101,87,102,191,205,137,202,57,150,171,158,43,205,237,204,179,202,219,144,55,156,239,159,255,237,18,194,18,225,146,182,165,134,75,87,45,29,88,230,189,172,106,57,178,60,113,121,219,10, +227,21,5,43,134,86,6,172,60,184,138,182,42,109,213,79,171,237,87,151,174,126,189,38,122,77,107,129,94,193,202,130,193,181,1,107,235,11,85,10,229,133,125,235,220,215,237,93,79,88,47,89,223,181,97,250,134, +157,27,62,21,137,138,174,20,219,23,151,21,127,216,40,220,120,229,27,135,111,202,191,153,220,148,180,169,171,196,185,100,207,102,210,102,233,230,222,45,158,91,14,150,170,151,230,151,14,110,13,217,218,180, +13,223,86,180,237,245,246,69,219,47,151,205,40,219,187,131,182,67,185,163,191,60,184,188,101,167,201,206,205,59,63,84,164,84,244,84,250,84,54,238,210,221,181,97,215,248,110,209,238,27,123,188,246,52,236, +213,219,91,188,247,253,62,201,190,219,85,1,85,77,213,102,213,101,251,73,251,179,247,63,174,137,170,233,248,150,251,109,93,173,78,109,113,237,199,3,210,3,253,7,35,14,182,215,185,212,213,29,210,61,84,82, +143,214,43,235,71,14,199,31,190,254,157,239,119,45,13,54,13,85,141,156,198,226,35,112,68,121,228,233,247,9,223,247,30,13,58,218,118,140,123,172,225,7,211,31,118,29,103,29,47,106,66,154,242,154,70,155, +83,154,251,91,98,91,186,79,204,62,209,214,234,222,122,252,71,219,31,15,156,52,60,89,121,74,243,84,201,105,218,233,130,211,147,103,242,207,140,157,149,157,125,126,46,249,220,96,219,162,182,123,231,99,206, +223,106,15,111,239,186,16,116,225,210,69,255,139,231,59,188,59,206,92,242,184,116,242,178,219,229,19,87,184,87,154,175,58,95,109,234,116,234,60,254,147,211,79,199,187,156,187,154,174,185,92,107,185,238, +122,189,181,123,102,247,233,27,158,55,206,221,244,189,121,241,22,255,214,213,158,57,61,221,189,243,122,111,247,197,247,245,223,22,221,126,114,39,253,206,203,187,217,119,39,238,173,188,79,188,95,244,64, +237,65,217,67,221,135,213,63,91,254,220,216,239,220,127,106,192,119,160,243,209,220,71,247,6,133,131,207,254,145,245,143,15,67,5,143,153,143,203,134,13,134,235,158,56,62,57,57,226,63,114,253,233,252,167, +67,207,100,207,38,158,23,254,162,254,203,174,23,22,47,126,248,213,235,215,206,209,152,209,161,151,242,151,147,191,109,124,165,253,234,192,235,25,175,219,198,194,198,30,190,201,120,51,49,94,244,86,251, +237,193,119,220,119,29,239,163,223,15,79,228,124,32,127,40,255,104,249,177,245,83,208,167,251,147,25,147,147,255,4,3,152,243,252,99,51,45,219,0,0,0,4,103,65,77,65,0,0,177,142,124,251,81,147,0,0,0,32,99, +72,82,77,0,0,122,37,0,0,128,131,0,0,249,255,0,0,128,233,0,0,117,48,0,0,234,96,0,0,58,152,0,0,23,111,146,95,197,70,0,0,8,152,73,68,65,84,120,218,236,155,123,136,93,87,21,198,127,247,220,51,51,119,204,52, +173,253,67,91,16,108,241,81,72,140,196,16,31,136,90,45,168,136,65,41,88,34,45,106,125,225,131,82,144,250,168,82,81,171,82,20,165,32,5,45,168,181,245,109,173,138,13,84,45,53,85,148,162,166,209,86,109,169, +213,70,49,58,77,170,145,54,147,153,155,185,231,225,31,253,118,250,185,220,119,238,188,76,205,76,55,108,206,185,231,177,247,94,223,94,123,173,111,173,125,110,167,109,91,30,43,249,82,2,108,219,211,7,232, +168,22,225,216,89,195,242,183,170,77,56,182,123,183,247,30,6,199,192,40,85,199,236,188,88,163,0,37,48,42,213,129,157,55,64,235,224,36,80,122,192,227,128,9,253,238,234,254,90,90,127,73,158,90,160,28,5, +102,129,190,238,15,28,156,164,53,61,224,36,96,163,0,114,112,26,213,19,189,20,170,14,206,172,228,196,174,55,174,57,99,2,100,35,240,155,117,104,127,183,10,148,10,152,79,40,186,230,76,8,160,245,88,146,41, +73,118,150,156,205,25,179,23,94,47,20,251,192,145,132,232,9,94,198,129,13,50,33,227,192,117,186,62,102,142,168,19,193,41,180,238,186,214,208,188,214,227,12,240,144,126,119,50,86,255,255,217,240,198,177, +142,39,155,18,238,37,217,139,8,142,243,28,111,176,47,96,14,27,56,222,105,187,132,65,229,238,45,5,216,54,243,126,110,28,237,136,103,198,237,90,177,144,252,229,16,223,159,202,17,211,154,25,129,83,6,119, +232,239,20,153,78,218,140,112,157,204,245,40,188,63,227,158,50,71,80,219,69,62,83,155,246,119,130,252,77,156,172,50,51,67,14,206,192,200,81,109,29,187,123,175,131,64,174,158,222,105,155,25,108,20,170, +176,234,92,36,106,69,17,248,87,19,64,238,216,88,210,56,106,91,78,181,17,191,156,220,67,193,137,203,163,43,67,53,161,142,122,192,243,116,255,46,224,144,58,106,3,195,238,134,89,143,224,52,97,176,105,221, +71,86,94,153,96,173,121,214,110,104,39,177,91,108,28,143,7,54,233,218,109,210,154,54,240,183,133,99,171,17,224,20,198,129,206,3,222,7,76,217,51,31,2,190,173,78,239,90,160,173,139,128,55,3,207,202,220, +219,3,188,21,120,167,142,94,102,128,91,129,79,105,121,63,27,184,122,72,31,23,2,191,146,224,151,2,231,219,189,195,192,39,128,239,202,238,140,5,155,195,114,53,167,4,78,6,222,171,235,223,19,24,47,5,62,2, +220,14,236,215,177,16,203,126,42,112,0,184,223,150,104,154,237,223,134,101,245,39,99,228,0,247,201,75,182,192,19,128,29,192,63,128,47,26,15,59,160,234,237,12,116,255,221,192,78,96,26,248,129,38,243,21, +192,199,128,57,224,231,65,251,150,5,142,107,207,38,9,253,21,224,91,26,208,125,192,37,192,171,128,207,2,111,151,128,207,5,174,4,126,100,60,194,151,212,101,198,68,7,90,22,62,216,47,1,191,215,121,15,248, +42,176,13,248,154,102,29,224,199,250,157,108,199,188,206,159,108,192,92,104,32,239,2,174,21,112,191,92,45,112,146,96,211,58,63,87,239,253,2,184,5,184,81,170,223,6,59,226,94,164,147,225,20,77,240,108,197, +16,53,127,138,142,179,193,150,21,214,78,58,111,129,237,186,127,61,240,160,25,237,123,128,159,2,47,2,158,36,77,44,86,3,28,128,191,3,159,1,46,6,94,171,122,16,184,1,184,198,60,2,102,24,83,96,87,132,190,190, +19,218,190,22,248,178,13,246,242,76,255,55,6,0,119,170,122,57,7,56,93,231,247,102,60,208,189,2,231,116,224,95,43,53,200,4,143,243,117,224,110,173,223,45,192,153,192,59,128,125,192,15,237,185,129,129,51, +31,34,94,180,100,220,5,223,31,248,210,62,29,207,20,215,122,151,52,215,93,246,65,224,129,64,21,86,149,173,47,6,156,212,233,105,192,203,229,89,174,150,192,103,72,155,118,2,55,217,64,235,160,57,77,0,231, +3,6,220,192,184,82,122,238,11,2,240,82,217,175,87,2,159,11,0,238,150,205,137,92,44,45,255,167,203,115,57,153,124,154,142,211,102,231,22,204,109,44,182,108,215,12,158,107,26,50,29,180,43,242,22,207,180, +85,25,198,235,51,94,219,123,41,208,253,164,236,217,171,129,83,3,25,109,66,59,233,253,219,117,255,60,224,20,227,60,103,105,73,77,203,179,214,163,242,83,229,34,180,38,13,224,102,113,156,215,40,231,115,0, +120,153,121,142,202,58,172,194,178,42,194,172,127,60,104,101,43,79,87,153,241,125,72,220,228,74,224,131,192,219,164,113,3,179,47,155,67,27,187,84,191,41,109,190,38,184,114,196,151,6,210,168,122,53,192, +169,128,127,2,239,7,174,48,80,0,190,15,124,94,179,157,88,236,188,25,230,57,45,193,202,192,121,102,166,175,89,123,111,70,6,179,208,210,121,147,102,125,147,165,50,159,168,234,229,54,181,115,133,198,114, +62,240,70,35,129,151,9,172,113,181,189,32,56,157,182,109,217,182,167,63,41,181,61,85,148,251,39,186,255,18,11,58,103,133,118,15,120,190,206,247,203,120,246,61,49,29,188,74,107,174,118,92,181,12,113,81, +147,209,188,24,35,117,173,157,50,19,127,213,161,255,174,52,124,147,174,123,248,48,41,109,58,73,90,15,112,182,38,228,16,112,104,239,246,222,220,82,52,103,222,98,152,91,66,30,182,202,4,127,77,38,192,244, +232,184,155,9,66,163,160,100,2,210,174,17,184,97,59,35,169,141,7,100,184,93,134,244,126,61,202,187,149,139,244,84,181,50,244,3,227,45,49,112,43,248,239,189,175,24,145,183,33,146,239,134,109,161,92,154, +163,13,237,120,58,163,107,239,37,237,170,77,11,7,193,33,84,182,195,210,172,20,156,24,245,206,7,112,74,139,218,199,77,221,187,25,131,222,6,38,28,151,135,47,175,174,205,108,212,162,78,38,180,233,26,208, +149,25,219,202,38,181,10,20,99,36,56,139,117,229,185,13,48,79,51,188,24,248,171,2,211,147,129,247,0,127,144,167,57,69,215,206,145,125,186,68,193,225,11,129,59,181,211,241,107,224,14,197,98,23,232,249, +141,192,159,197,192,123,74,153,244,20,22,236,211,100,188,0,248,157,222,221,43,55,126,135,136,234,62,3,221,53,103,36,40,203,9,31,114,169,205,34,36,229,199,37,84,79,191,119,0,223,0,254,166,164,54,18,114, +42,68,215,7,117,190,69,30,229,47,18,48,245,49,25,52,47,181,51,39,80,58,10,9,78,3,254,168,152,170,14,217,202,37,179,231,229,128,67,8,252,74,107,167,148,208,227,246,220,197,114,173,27,12,64,127,230,86,139, +242,119,200,109,159,109,33,68,33,32,218,160,237,133,98,165,139,52,142,183,0,111,0,174,2,126,38,47,91,47,198,240,174,54,56,185,180,40,230,174,189,60,71,26,225,125,78,100,250,238,200,187,16,236,86,218,112, +108,66,218,35,166,81,27,179,39,85,160,6,205,241,214,156,78,38,153,30,119,47,118,139,43,237,20,107,245,165,152,132,127,134,61,191,67,199,59,67,63,101,38,1,223,14,201,67,199,143,2,142,187,230,140,242,110, +14,206,25,162,249,155,135,56,130,120,239,6,229,138,8,154,211,102,184,140,239,54,84,150,113,60,106,188,172,121,52,108,78,155,49,118,77,200,232,163,248,230,242,144,123,241,32,243,102,69,244,3,121,188,253, +182,3,233,201,177,184,39,85,7,250,223,100,18,242,245,74,82,25,229,10,128,33,19,77,59,89,76,3,189,91,233,135,205,246,206,81,139,163,246,203,128,246,141,34,116,101,151,102,148,9,156,82,148,158,82,39,135, +205,182,180,33,221,209,132,165,180,236,28,79,177,194,229,19,183,68,170,16,64,30,145,91,189,202,222,75,91,204,125,251,61,99,59,171,51,122,111,78,113,207,20,240,97,224,117,192,167,5,206,110,99,235,131,192, +187,162,49,254,159,38,187,22,210,158,218,146,219,73,208,195,210,140,20,93,31,82,210,105,151,12,110,95,110,118,86,207,28,229,145,173,102,223,87,106,181,91,112,22,15,127,30,178,85,207,223,3,124,52,104,168, +219,28,79,160,173,40,51,56,42,42,255,143,72,85,179,25,183,108,82,232,48,17,220,111,220,161,28,182,161,55,111,59,7,85,112,247,147,170,91,196,154,31,212,182,206,156,101,2,8,187,155,117,38,59,232,32,45,74, +214,197,68,229,163,194,137,58,8,27,227,158,102,136,203,247,96,178,202,68,226,110,47,42,109,165,116,236,119,212,14,143,217,154,76,10,227,81,89,86,77,38,210,102,136,33,204,125,32,208,102,82,166,49,26,175, +66,238,166,9,26,49,108,15,126,197,9,247,114,132,145,78,201,169,158,212,113,33,166,220,89,1,200,185,79,72,134,125,173,225,75,40,247,89,10,35,60,213,36,143,124,184,52,190,144,115,42,135,236,110,166,178, +33,112,137,73,142,127,233,140,8,126,151,90,122,202,20,108,180,120,143,92,226,172,28,66,234,188,161,38,184,225,19,189,164,204,193,148,101,15,178,242,151,25,3,91,135,134,60,16,92,139,223,4,70,214,126,204, +136,151,193,43,12,2,253,191,142,245,83,220,253,183,110,132,26,75,41,206,178,62,203,172,228,63,182,133,228,154,227,95,114,111,101,253,125,193,158,88,251,32,46,171,164,57,125,91,127,179,172,207,255,62,100, +53,167,10,231,235,249,95,51,109,206,91,37,74,62,207,58,255,191,213,177,192,243,177,178,250,249,156,53,95,254,61,0,249,119,177,122,230,229,155,248,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* TalComponent::bmp00133_png = (const char*) resource_NewJucerComponent_bmp00133_png; +const int TalComponent::bmp00133_pngSize = 4989; + diff --git a/tal-reverb-2-juce/src/TalComponent.h b/tal-reverb-2-juce/src/TalComponent.h new file mode 100644 index 0000000..b19bfed --- /dev/null +++ b/tal-reverb-2-juce/src/TalComponent.h @@ -0,0 +1,142 @@ +/* + ============================================================================== + + This file is part of the JUCE library - "Jules' Utility Class Extensions" + Copyright 2004-7 by Raw Material Software ltd. + + ------------------------------------------------------------------------------ + + JUCE can be redistributed and/or modified under the terms of the + GNU General Public License, as published by the Free Software Foundation; + either version 2 of the License, or (at your option) any later version. + + JUCE is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with JUCE; if not, visit www.gnu.org/licenses or write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + ------------------------------------------------------------------------------ + + If you'd like to release a closed-source product which uses JUCE, commercial + licenses are also available: visit www.rawmaterialsoftware.com/juce for + more information. + + ============================================================================== +*/ + +#ifndef TALCOMPONENTEDITOR_H +#define TALCOMPONENTEDITOR_H + +#include "TalCore.h" +#include "FilmStripKnob.h" +#include "ImageSlider.h" +#include "ImageToggleButton.h" + +#include "./Engine/AudioUtils.h" + + +//============================================================================== +/** + This is the Component that our filter will use as its UI. + + One or more of these is created by the DemoJuceFilter::createEditor() method, + and they will be deleted at some later time by the wrapper code. + + To demonstrate the correct way of connecting a filter to its UI, this + class is a ChangeListener, and our demo filter is a ChangeBroadcaster. The + editor component registers with the filter when it's created and deregisters + when it's destroyed. When the filter's parameters are changed, it broadcasts + a message and this editor responds by updating its display. +*/ +class TalComponent : public AudioProcessorEditor, + public ChangeListener, + public SliderListener, + public ButtonListener +{ +public: + /** Constructor. + + When created, this will register itself with the filter for changes. It's + safe to assume that the filter won't be deleted before this object is. + */ + TalComponent(TalCore* const ownerFilter); + + + + /** Destructor. */ + ~TalComponent(); + + //============================================================================== + /** Our demo filter is a ChangeBroadcaster, and will call us back when one of + its parameters changes. + */ + void changeListenerCallback (ChangeBroadcaster* source); + + void sliderValueChanged (Slider*); + + void buttonClicked (Button *); + + //============================================================================== + /** Standard Juce paint callback. */ + void paint (Graphics& g); + + /** Standard Juce resize callback. */ + //void resized(); + + static const char* bmp00128_png; + static const int bmp00128_pngSize; + + static const char* bmp00129_png; + static const int bmp00129_pngSize; + + static const char* bmp00130_png; + static const int bmp00130_pngSize; + + static const char* bmp00132_png; + static const int bmp00132_pngSize; + + static const char* bmp00133_png; + static const int bmp00133_pngSize; + +private: + //============================================================================== + FilmStripKnob *decayTimeKnob; + FilmStripKnob *preDelayKnob; + + + FilmStripKnob *lowShelfFrequencyKnob; + FilmStripKnob *highShelfFrequencyKnob; + FilmStripKnob *peakFrequencyKnob; + + FilmStripKnob *lowShelfGainKnob; + FilmStripKnob *highShelfGainKnob; + FilmStripKnob *peakGainKnob; + + FilmStripKnob *stereoWithKnob; + + ImageSlider *drySlider; + ImageSlider *wetSlider; + + ImageToggleButton *realStereoModeButton; + + Label *versionLabel; + + AudioUtils audioUtils; + TooltipWindow tooltipWindow; + + void updateParametersFromFilter(); + FilmStripKnob* addNormalKnob(int x, int y, TalCore* const ownerFilter, Image knobImage, const int parameter); + void setTooltip(Slider* slider); + + // handy wrapper method to avoid having to cast the filter to a DemoJuceFilter + // every time we need it.. + TalCore* getFilter() const throw() { return (TalCore*) getAudioProcessor(); } +}; + + +#endif diff --git a/tal-reverb-2-juce/src/TalCore.cpp b/tal-reverb-2-juce/src/TalCore.cpp new file mode 100644 index 0000000..03b68fe --- /dev/null +++ b/tal-reverb-2-juce/src/TalCore.cpp @@ -0,0 +1,481 @@ +/* + ============================================================================== + + This file is part of the JUCE library - "Jules' Utility Class Extensions" + Copyright 2004-7 by Raw Material Software ltd. + + ------------------------------------------------------------------------------ + + JUCE can be redistributed and/or modified under the terms of the + GNU General Public License, as published by the Free Software Foundation; + either version 2 of the License, or (at your option) any later version. + + JUCE is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with JUCE; if not, visit www.gnu.org/licenses or write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + ------------------------------------------------------------------------------ + + If you'd like to release a closed-source product which uses JUCE, commercial + licenses are also available: visit www.rawmaterialsoftware.com/juce for + more information. + + ============================================================================== +*/ + +#include "includes.h" +#include "TalComponent.h" +#include "ProgramChunk.h" + +/** + This function must be implemented to create a new instance of your + plugin object. +*/ +AudioProcessor* JUCE_CALLTYPE createPluginFilter() +{ + return new TalCore(); +} + +TalCore::TalCore() +{ + // init engine + if (this->getSampleRate() > 0) + sampleRate = (float)this->getSampleRate(); + else + sampleRate = 44100.0f; + + engine = new ReverbEngine(sampleRate); + params = engine->param; + talPresets = new TalPreset*[NUMPROGRAMS]; + + for (int i = 0; i < NUMPROGRAMS; i++) talPresets[i] = new TalPreset(); + curProgram = 0; + + // load factory presets + ProgramChunk *chunk = new ProgramChunk(); + XmlDocument myDocument (chunk->getXmlChunk()); + XmlElement* mainElement = myDocument.getDocumentElement(); + + MemoryBlock* destData = new MemoryBlock(); + copyXmlToBinary(*mainElement, *destData); + setStateInformation(destData->getData(), destData->getSize()); + setCurrentProgram(curProgram); + + // used for midi learn + lastMovedController = 0; +} + +TalCore::~TalCore() +{ + if (talPresets) delete[] talPresets; + if (engine) delete engine; +} + +const String TalCore::getName() const +{ + return "Tal-Reverb-II"; +} + +int TalCore::getNumParameters() +{ + return (int)NUMPARAM; +} + +float TalCore::getParameter (int index) +{ + if (index < NUMPARAM) + return talPresets[curProgram]->programData[index]; + else + return 0; +} + +void TalCore::setParameter (int index, float newValue) +{ + if (index < NUMPARAM) + { + params[index] = newValue; + talPresets[curProgram]->programData[index] = newValue; + + switch(index) + { + case WET: + engine->setWet(newValue); + break; + case DRY: + engine->setDry(newValue); + break; + case DECAYTIME: + engine->setDecayTime(newValue); + break; + case PREDELAY: + engine->setPreDelay(newValue); + break; + case STEREO: + engine->setStereoWidth(newValue); + break; + case REALSTEREOMODE: + engine->setStereoMode(newValue); + break; + + case LOWSHELFFREQUENCY: + engine->setLowShelfFrequency(newValue); + break; + case HIGHSHELFFREQUENCY: + engine->setHighShelfFrequency(newValue); + break; + case PEAKFREQUENCY: + engine->setPeakFrequency(newValue); + break; + + case LOWSHELFGAIN: + engine->setLowShelfGain(newValue); + break; + case HIGHSHELFGAIN: + engine->setHighShelfGain(newValue); + break; + case PEAKGAIN: + engine->setPeakGain(newValue); + break; + } + + sendChangeMessage (); + + // for midi learn + lastMovedController = index; + } +} + +const String TalCore::getParameterName (int index) +{ + switch(index) + { + case WET: return T("wet"); + case DRY: return T("dry"); + case DECAYTIME: return T("room size"); + case PREDELAY: return T("pre delay"); + + case LOWSHELFFREQUENCY: return T("low shelf frequency"); + case HIGHSHELFFREQUENCY: return T("high shelf frequency"); + case PEAKFREQUENCY: return T("peak frequency"); + + case LOWSHELFGAIN: return T("low shelf gain"); + case HIGHSHELFGAIN: return T("high shelf gain"); + case PEAKGAIN: return T("peak gain"); + + case STEREO: return T("stereo"); + case REALSTEREOMODE: return T("stereo input"); + } + return String::empty; +} + +const String TalCore::getParameterText (int index) +{ + if (index < NUMPARAM) + { + return String(talPresets[curProgram]->programData[index], 2); + } + return String::empty; +} + +const String TalCore::getInputChannelName (const int channelIndex) const +{ + return String (channelIndex + 1); +} + +const String TalCore::getOutputChannelName (const int channelIndex) const +{ + return String (channelIndex + 1); +} + +bool TalCore::isInputChannelStereoPair (int index) const +{ + return true; +} + +bool TalCore::isOutputChannelStereoPair (int index) const +{ + return true; +} + +bool TalCore::acceptsMidi() const +{ + return true; +} + +bool TalCore::producesMidi() const +{ + return false; +} + +void TalCore::prepareToPlay (double sampleRate, int samplesPerBlock) +{ +} + +void TalCore::releaseResources() +{ + // when playback stops, you can use this as an opportunity to free up any + // spare memory, etc. +} + +void TalCore::processBlock (AudioSampleBuffer& buffer, + MidiBuffer& midiMessages) +{ + // Change sample rate if required + if (sampleRate != this->getSampleRate()) + { + sampleRate = this->getSampleRate(); + engine->setSampleRate(sampleRate); + setCurrentProgram(curProgram); + } + const ScopedLock sl (this->getCallbackLock()); + + // for each of our input channels, we'll attenuate its level by the + // amount that our volume parameter is set to. + int numberOfChannels = getNumInputChannels(); + int bufferSize = buffer.getNumSamples(); + + // midi buffer + MidiMessage controllerMidiMessage (0xF0); + MidiBuffer::Iterator midiIterator(midiMessages); + hasMoreMidiMessages = midiIterator.getNextEvent(controllerMidiMessage, midiEventPos); + + if (numberOfChannels == 2) + { + float *samples0 = buffer.getSampleData(0, 0); + float *samples1 = buffer.getSampleData(1, 0); + + int samplePos = 0; + int numSamples = buffer.getNumSamples(); + while (numSamples > 0) + { + processMidiPerSample(&midiIterator, controllerMidiMessage, samplePos); + engine->process(samples0++, samples1++); + + numSamples--; + samplePos++; + } + } + if (numberOfChannels == 1) + { + float *samples0 = buffer.getSampleData(0, 0); + float *samples1 = buffer.getSampleData(0, 0); + + int samplePos = 0; + int numSamples = buffer.getNumSamples(); + while (numSamples > 0) + { + processMidiPerSample(&midiIterator, controllerMidiMessage, samplePos); + engine->process(samples0++, samples1++); + + numSamples--; + samplePos++; + } + } + // in case we have more outputs than inputs, we'll clear any output + // channels that didn't contain input data, (because these aren't + // guaranteed to be empty - they may contain garbage). + for (int i = getNumInputChannels(); i < getNumOutputChannels(); ++i) + { + buffer.clear (i, 0, buffer.getNumSamples()); + } +} + +void TalCore::processMidiPerSample(MidiBuffer::Iterator *midiIterator, MidiMessage controllerMidiMessage, int samplePos) +{ + // There can be more than one event at the same position + while (hasMoreMidiMessages && midiEventPos == samplePos) + { + if (controllerMidiMessage.isController()) + { + handleController (controllerMidiMessage.getControllerNumber(), + controllerMidiMessage.getControllerValue()); + } + hasMoreMidiMessages = midiIterator->getNextEvent (controllerMidiMessage, midiEventPos); + } +} + +void TalCore::handleController (const int controllerNumber, + const int controllerValue) +{ + // no midi + //if (params[REALSTEREOMODE] > 0.0f) + //{ + // for (int i = 0; i < NUMPROGRAMS; i++) + // { + // talPresets[i].midiMap[controllerNumber] = lastMovedController; + // } + //} + //if (talPresets[curProgram].midiMap[controllerNumber] > 0) + //{ + // setParameter (talPresets[curProgram].midiMap[controllerNumber], controllerValue / 127.0f); + //} +} + +AudioProcessorEditor* TalCore::createEditor() +{ + return new TalComponent (this); +} + +void TalCore::getStateInformation (MemoryBlock& destData) +{ + // you can store your parameters as binary data if you want to or if you've got + // a load of binary to put in there, but if you're not doing anything too heavy, + // XML is a much cleaner way of doing it - here's an example of how to store your + // params as XML.. + + // header + XmlElement tal("tal"); + tal.setAttribute (T("curprogram"), curProgram); + tal.setAttribute (T("version"), 1); + + // programs + XmlElement *programList = new XmlElement ("programs"); + for (int i = 0; i < NUMPROGRAMS; i++) + { + XmlElement* program = new XmlElement ("program"); + program->setAttribute (T("programname"), talPresets[i]->name); + program->setAttribute (T("dry"), talPresets[i]->programData[DRY]); + program->setAttribute (T("wet"), talPresets[i]->programData[WET]); + program->setAttribute (T("roomsize"), talPresets[i]->programData[DECAYTIME]); + program->setAttribute (T("predelay"), talPresets[i]->programData[PREDELAY]); + + program->setAttribute (T("lowshelffrequency"), talPresets[i]->programData[LOWSHELFFREQUENCY]); + program->setAttribute (T("highshelffrequency"), talPresets[i]->programData[HIGHSHELFFREQUENCY]); + program->setAttribute (T("peakfrequency"), talPresets[i]->programData[PEAKFREQUENCY]); + + program->setAttribute (T("lowshelfgain"), talPresets[i]->programData[LOWSHELFGAIN]); + program->setAttribute (T("highshelfgain"), talPresets[i]->programData[HIGHSHELFGAIN]); + program->setAttribute (T("peakgain"), talPresets[i]->programData[PEAKGAIN]); + + program->setAttribute (T("stereowidth"), talPresets[i]->programData[STEREO]); + program->setAttribute (T("realstereomode"), talPresets[i]->programData[REALSTEREOMODE]); + programList->addChildElement(program); + } + tal.addChildElement(programList); + + // midi params + XmlElement *midiMapList = new XmlElement ("midimap"); + for (int i = 0; i < 255; i++) + { + if (talPresets[0]->midiMap[i] != 0) + { + XmlElement* map = new XmlElement ("map"); + map->setAttribute (T("param"), talPresets[0]->midiMap[i]); + map->setAttribute (T("controllernumber"), i); + midiMapList->addChildElement(map); + } + } + tal.addChildElement(midiMapList); + + // then use this helper function to stuff it into the binary blob and return it.. + copyXmlToBinary (tal, destData); + + // use this for new factory presets + //#ifdef _DEBUG && WIN32 + //File *file = new File("e:/presets.txt"); + //String myXmlDoc = tal.createDocument (String::empty); + //file->replaceWithText(myXmlDoc); + //#endif +} + +void TalCore::setStateInformation (const void* data, int sizeInBytes) +{ + // use this helper function to get the XML from this binary blob.. + XmlElement* const xmlState = getXmlFromBinary (data, sizeInBytes); + + curProgram = 0; + if (xmlState != 0 && xmlState->hasTagName(T("tal"))) + { + curProgram = (int)xmlState->getIntAttribute (T("curprogram"), 1); + XmlElement* programs = xmlState->getFirstChildElement(); + if (programs->hasTagName(T("programs"))) + { + int i = 0; + forEachXmlChildElement (*programs, e) + { + if (e->hasTagName(T("program")) && i < NUMPROGRAMS) + { + talPresets[i]->name = e->getStringAttribute (T("programname"), T("Not Saved")); + talPresets[i]->programData[DRY] = (float) e->getDoubleAttribute (T("dry"), 0.8f); + talPresets[i]->programData[WET] = (float) e->getDoubleAttribute (T("wet"), 0.8f); + talPresets[i]->programData[DECAYTIME] = (float) e->getDoubleAttribute (T("roomsize"), 0.8f); + talPresets[i]->programData[PREDELAY] = (float) e->getDoubleAttribute (T("predelay"), 0.0f); + + talPresets[i]->programData[LOWSHELFFREQUENCY] = (float) e->getDoubleAttribute (T("lowshelffrequency"), 0.5f); + talPresets[i]->programData[HIGHSHELFFREQUENCY] = (float) e->getDoubleAttribute (T("highshelffrequency"), 0.5f); + talPresets[i]->programData[PEAKFREQUENCY] = (float) e->getDoubleAttribute (T("peakfrequency"), 0.5f); + + talPresets[i]->programData[LOWSHELFGAIN] = (float) e->getDoubleAttribute (T("lowshelfgain"), 1.0f); + talPresets[i]->programData[HIGHSHELFGAIN] = (float) e->getDoubleAttribute (T("highshelfgain"), 1.0f); + talPresets[i]->programData[PEAKGAIN] = (float) e->getDoubleAttribute (T("peakgain"), 1.0f); + + talPresets[i]->programData[STEREO] = (float) e->getDoubleAttribute (T("stereowidth"), 1.0f); + talPresets[i]->programData[REALSTEREOMODE] = (float) e->getDoubleAttribute (T("realstereomode"), 0.0f); + i++; + } + } + } + // restore midi mapping + XmlElement* midiMap = xmlState->getChildByName(T("midimap")); + if (midiMap != 0 && midiMap->hasTagName(T("midimap"))) + { + forEachXmlChildElement (*midiMap, e) + { + for (int j = 0; j < NUMPROGRAMS; j++) + { + int controller = e->getIntAttribute(T("controllernumber"), 0); + if (controller < 255 && controller > 0) + { + talPresets[j]->midiMap[controller] = e->getIntAttribute(T("param"), 0); + } + } + } + } + delete xmlState; + setCurrentProgram(curProgram); + sendChangeMessage (); + } +} + +int TalCore::getNumPrograms () +{ + return NUMPROGRAMS; +} + +int TalCore::getCurrentProgram () +{ + return curProgram; +} + +void TalCore::setCurrentProgram (int index) +{ + if (index < NUMPROGRAMS) + { + curProgram = index; + for (int i = 0; i < NUMPARAM; i++) + { + setParameter(i, talPresets[index]->programData[i]); + } + sendChangeMessage (); + } +} + +const String TalCore::getProgramName (int index) +{ + if (index < NUMPROGRAMS) + return talPresets[index]->name; + else + return T("Invalid"); +} + +void TalCore::changeProgramName (int index, const String& newName) +{ + if (index < NUMPROGRAMS) + talPresets[index]->name = newName; +} diff --git a/tal-reverb-2-juce/src/TalCore.h b/tal-reverb-2-juce/src/TalCore.h new file mode 100644 index 0000000..c399787 --- /dev/null +++ b/tal-reverb-2-juce/src/TalCore.h @@ -0,0 +1,138 @@ +/* + ============================================================================== + + This file is part of the JUCE library - "Jules' Utility Class Extensions" + Copyright 2004-7 by Raw Material Software ltd. + + ------------------------------------------------------------------------------ + + JUCE can be redistributed and/or modified under the terms of the + GNU General Public License, as published by the Free Software Foundation; + either version 2 of the License, or (at your option) any later version. + + JUCE is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with JUCE; if not, visit www.gnu.org/licenses or write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + ------------------------------------------------------------------------------ + + If you'd like to release a closed-source product which uses JUCE, commercial + licenses are also available: visit www.rawmaterialsoftware.com/juce for + more information. + + ============================================================================== +*/ + +#ifndef TALCORE_H +#define TALCORE_H + +#include "./engine/ReverbEngine.h" +#include "./engine/Params.h" +#include "TalPreset.h" + +//============================================================================== +/** + A simple plugin filter that just applies a gain change to the audio + passing through it. + +*/ + +class TalCore : public AudioProcessor, + public ChangeBroadcaster +{ +public: + //============================================================================== + TalCore(); + ~TalCore(); + + bool hasEditor() const { return true; } + + //============================================================================== + void prepareToPlay (double sampleRate, int samplesPerBlock); + void releaseResources(); + + void processBlock (AudioSampleBuffer& buffer, + MidiBuffer& midiMessages); + + //============================================================================== + AudioProcessorEditor* createEditor(); + + //============================================================================== + const String getName() const; + + int getNumParameters(); + + float getParameter (int index); + void setParameter (int index, float newValue); + + const String getParameterName (int index); + const String getParameterText (int index); + + const String getInputChannelName (const int channelIndex) const; + const String getOutputChannelName (const int channelIndex) const; + bool isInputChannelStereoPair (int index) const; + bool isOutputChannelStereoPair (int index) const; + + bool acceptsMidi() const; + bool producesMidi() const; + + //============================================================================== + int getNumPrograms(); + int getCurrentProgram(); + void setCurrentProgram (int index); + const String getProgramName (int index); + void changeProgramName (int index, const String& newName); + + //============================================================================== + void getStateInformation (MemoryBlock& destData); + void setStateInformation (const void* data, int sizeInBytes); + + void handleController (const int controllerNumber, + const int controllerValue); + + void processMidiPerSample (MidiBuffer::Iterator *midiIterator, + MidiMessage controllerMidiMessage, int samplePos); + + + //============================================================================== + // These properties are public so that our editor component can access them + // - a bit of a hacky way to do it, but it's only a demo! + + // this is kept up to date with the midi messages that arrive, and the UI component + // registers with it so it can represent the incoming messages + // MidiKeyboardState keyboardState; + + // this keeps a copy of the last set of time info that was acquired during an audio + // callback - the UI component will read this and display it. + // AudioPlayHead::CurrentPositionInfo lastPosInfo; + + // these are used to persist the UI's size - the values are stored along with the + // filter's other parameters, and the UI component will update them when it gets + // resized. + //int lastUIWidth, lastUIHeight; + + //============================================================================== + juce_UseDebuggingNewOperator + +private: + + float *params; + ReverbEngine *engine; + float sampleRate; + + TalPreset **talPresets; + int curProgram; + + // Midi values + int midiEventPos; + bool hasMoreMidiMessages; + + int lastMovedController; +}; +#endif diff --git a/tal-reverb-2-juce/src/TalPreset.h b/tal-reverb-2-juce/src/TalPreset.h new file mode 100644 index 0000000..978211a --- /dev/null +++ b/tal-reverb-2-juce/src/TalPreset.h @@ -0,0 +1,51 @@ +/* + ============================================================================== + This file is part of Tal-Reverb by Patrick Kunz. + + Copyright(c) 2005-2009 Patrick Kunz, TAL + Togu Audio Line, Inc. + http://kunz.corrupt.ch + + This file may be licensed under the terms of of the + GNU General Public License Version 2 (the ``GPL''). + + Software distributed under the License is distributed + on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either + express or implied. See the GPL for the specific language + governing rights and limitations. + + You should have received a copy of the GPL along with this + program. If not, go to http://www.gnu.org/licenses/gpl.html + or write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + ============================================================================== + */ + +#if !defined(__TalPreset_h) +#define __TalPreset_h + +class TalPreset +{ + public: + String name; + float programData[NUMPARAM]; + int midiMap[255]; // 255 Midi Values to Map + + TalPreset() + { + // Set values to 0 + for (int i = 0; i < NUMPARAM; i++) { + programData[i]= 0.0f; + } + + // Init default midiMap + for (int i = 0; i < 255; i++) + { + midiMap[i]= 0; + } + name = T("default"); + } + + ~TalPreset() {} +}; +#endif diff --git a/tal-reverb-2-juce/src/includes.h b/tal-reverb-2-juce/src/includes.h new file mode 100644 index 0000000..dc24cb4 --- /dev/null +++ b/tal-reverb-2-juce/src/includes.h @@ -0,0 +1,32 @@ +/* + ============================================================================== + + This file is part of the JUCE library - "Jules' Utility Class Extensions" + Copyright 2004-7 by Raw Material Software ltd. + + ------------------------------------------------------------------------------ + + JUCE can be redistributed and/or modified under the terms of the + GNU General Public License, as published by the Free Software Foundation; + either version 2 of the License, or (at your option) any later version. + + JUCE is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with JUCE; if not, visit www.gnu.org/licenses or write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + ------------------------------------------------------------------------------ + + If you'd like to release a closed-source product which uses JUCE, commercial + licenses are also available: visit www.rawmaterialsoftware.com/juce for + more information. + + ============================================================================== +*/ + +#include "juce.h" -- 2.11.4.GIT