ft2-clone

Fasttracker 2 clone
Log | Files | Refs | README | LICENSE

commit f56d9f67013745d4c5cde1e4ce6d5f95bee8997c
parent aa20067f8c702ec399583970214f698e41591892
Author: Olav Sørensen <olav.sorensen@live.no>
Date:   Thu, 13 Apr 2023 17:46:26 +0200

Pushed v1.66 code

- Added a 16 point sinc interpolation option (higher quality)
- Changed some settings for the default configuration:
   1) Palette theme = Dark mode
   2) Scopes = Lined
  Note: Your existing configuration will not be changed!
- Changed the layout a little in the Config section (Audio / "I/O Devices")
- Removed the 192kHz audio output setting. This was a bit extreme to begin with.
  Note: You can still select this rate when exporting songs to WAV.
- Some code cleanup

Diffstat:
Msrc/ft2_audio.c | 106+++++++++++++++++++++++++++++++++++++++++++++----------------------------------
Msrc/ft2_audio.h | 10+++++-----
Msrc/ft2_audioselector.c | 8++++----
Msrc/ft2_bmp.c | 4++++
Msrc/ft2_checkboxes.c | 2+-
Msrc/ft2_config.c | 134+++++++++++++++++++++++++++++++++++++++++++------------------------------------
Msrc/ft2_config.h | 33++++++++++++++++++---------------
Msrc/ft2_diskop.c | 3+++
Msrc/ft2_header.h | 4++--
Msrc/ft2_keyboard.c | 6+++---
Msrc/ft2_main.c | 7+++++++
Msrc/ft2_module_loader.c | 2+-
Msrc/ft2_module_saver.c | 5++++-
Msrc/ft2_mouse.c | 2+-
Msrc/ft2_pattern_ed.c | 2+-
Msrc/ft2_pushbuttons.c | 8++++----
Msrc/ft2_radiobuttons.c | 28++++++++++++++--------------
Msrc/ft2_radiobuttons.h | 16++++++++--------
Msrc/ft2_replayer.c | 24+++++++++---------------
Msrc/ft2_replayer.h | 8++++----
Msrc/ft2_sample_ed.c | 70+++++++++++++++++++++++++++++++++++-----------------------------------
Msrc/ft2_sample_saver.c | 6+++---
Msrc/ft2_scrollbars.c | 4++--
Msrc/ft2_scrollbars.h | 4++--
Msrc/ft2_tables.c | 4++--
Msrc/helpdata/FT2.HLP | 24++++++++++++------------
Msrc/helpdata/ft2_help_data.h | 3961+++++++++++++++++++++++++++++++++++++++----------------------------------------
Msrc/mixer/ft2_center_mix.c | 1082++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------
Msrc/mixer/ft2_center_mix.h | 37+++++++++++++++++++++++++------------
Msrc/mixer/ft2_mix.c | 1162++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------
Msrc/mixer/ft2_mix.h | 2+-
Msrc/mixer/ft2_mix_macros.h | 130+++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------
Msrc/mixer/ft2_windowed_sinc.c | 97++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------
Msrc/mixer/ft2_windowed_sinc.h | 36+++++++++++++++---------------------
Msrc/smploaders/ft2_load_aiff.c | 27++++++++++++++-------------
35 files changed, 4385 insertions(+), 2673 deletions(-)

diff --git a/src/ft2_audio.c b/src/ft2_audio.c @@ -28,7 +28,7 @@ static int32_t smpShiftValue; static uint32_t oldAudioFreq, tickTimeLenInt, randSeed = INITIAL_DITHER_SEED; static uint64_t tickTimeLenFrac; -static double dAudioNormalizeMul, dPanningTab[256+1], dPrngStateL, dPrngStateR; +static double dAudioNormalizeMul, dSqrtPanningTable[256+1], dPrngStateL, dPrngStateR; static voice_t voice[MAX_CHANNELS * 2]; // globalized @@ -89,8 +89,8 @@ bool setNewAudioSettings(void) // only call this from the main input/video threa } // also update config audio radio buttons if we're on that screen at the moment - if (ui.configScreenShown && editor.currConfigScreen == CONFIG_SCREEN_IO_DEVICES) - setConfigIORadioButtonStates(); + if (ui.configScreenShown && editor.currConfigScreen == CONFIG_SCREEN_AUDIO) + setConfigAudioRadioButtonStates(); // if it didn't work to use the old settings again, then something is seriously wrong... if (!setupAudio(CONFIG_HIDE_ERRORS)) @@ -127,8 +127,8 @@ void decreaseMasterVol(void) setAudioAmp(config.boostLevel, config.masterVol, !!(config.specialFlags & BITDEPTH_32)); - // if Config -> I/O Devices is open, update master volume scrollbar - if (ui.configScreenShown && editor.currConfigScreen == CONFIG_SCREEN_IO_DEVICES) + // if Config -> Audio is open, update master volume scrollbar + if (ui.configScreenShown && editor.currConfigScreen == CONFIG_SCREEN_AUDIO) drawScrollBar(SB_MASTERVOL_SCROLL); } @@ -141,8 +141,8 @@ void increaseMasterVol(void) setAudioAmp(config.boostLevel, config.masterVol, !!(config.specialFlags & BITDEPTH_32)); - // if Config -> I/O Devices is open, update master volume scrollbar - if (ui.configScreenShown && editor.currConfigScreen == CONFIG_SCREEN_IO_DEVICES) + // if Config -> Audio is open, update master volume scrollbar + if (ui.configScreenShown && editor.currConfigScreen == CONFIG_SCREEN_AUDIO) drawScrollBar(SB_MASTERVOL_SCROLL); } @@ -195,78 +195,94 @@ void audioSetInterpolationType(uint8_t interpolationType) { lockMixerCallback(); audio.interpolationType = interpolationType; + + // set sinc polyphase LUT pointers + if (config.interpolation == INTERPOLATION_SINC8) + { + fKaiserSinc = fKaiserSinc_8; + fDownSample1 = fDownSample1_8; + fDownSample2 = fDownSample2_8; + } + else if (config.interpolation == INTERPOLATION_SINC16) + { + fKaiserSinc = fKaiserSinc_16; + fDownSample1 = fDownSample1_16; + fDownSample2 = fDownSample2_16; + } + unlockMixerCallback(); } void calcPanningTable(void) { - // same formula as FT2's panning table (with 0.0..1.0 range) + // same formula as FT2's panning table (with 0.0 .. 1.0 scale) for (int32_t i = 0; i <= 256; i++) - dPanningTab[i] = sqrt(i / 256.0); + dSqrtPanningTable[i] = sqrt(i / 256.0); } static void voiceUpdateVolumes(int32_t i, uint8_t status) { voice_t *v = &voice[i]; - const float fVolumeL = (float)(v->dVolume * dPanningTab[256-v->panning]); - const float fVolumeR = (float)(v->dVolume * dPanningTab[ v->panning]); + v->fTargetVolumeL = (float)(v->dVolume * dSqrtPanningTable[256-v->panning]); + v->fTargetVolumeR = (float)(v->dVolume * dSqrtPanningTable[ v->panning]); if (!audio.volumeRampingFlag) { - // volume ramping is disabled - v->fVolumeL = fVolumeL; - v->fVolumeR = fVolumeR; + // volume ramping is disabled, set volume directly + v->fCurrVolumeL = v->fTargetVolumeL; + v->fCurrVolumeR = v->fTargetVolumeR; v->volumeRampLength = 0; return; } - v->fVolumeLTarget = fVolumeL; - v->fVolumeRTarget = fVolumeR; + // now we need to handle volume ramping + + const bool voiceSampleTrigger = !!(status & IS_Trigger); - if (status & IS_Trigger) + if (voiceSampleTrigger) { // sample is about to start, ramp out/in at the same time - // setup "fade out" voice (only if current voice volume > 0) - if (v->fVolumeL > 0.0f || v->fVolumeR > 0.0f) + if (v->fCurrVolumeL > 0.0f || v->fCurrVolumeR > 0.0f) { + // setup fadeout voice + voice_t *f = &voice[MAX_CHANNELS+i]; - *f = *v; // copy voice + *f = *v; // store current voice in respective fadeout ramp voice - const float fVolumeLTarget = -f->fVolumeL; - const float fVolumeRTarget = -f->fVolumeR; + const float fVolumeLDiff = 0.0f - f->fCurrVolumeL; + const float fVolumeRDiff = 0.0f - f->fCurrVolumeR; f->volumeRampLength = audio.quickVolRampSamples; // 5ms const float fVolumeRampLength = (float)(int32_t)f->volumeRampLength; - f->fVolumeLDelta = fVolumeLTarget / fVolumeRampLength; - f->fVolumeRDelta = fVolumeRTarget / fVolumeRampLength; + f->fVolumeLDelta = fVolumeLDiff / fVolumeRampLength; + f->fVolumeRDelta = fVolumeRDiff / fVolumeRampLength; f->isFadeOutVoice = true; } // make current voice fade in from zero when it starts - v->fVolumeL = v->fVolumeR = 0.0f; + v->fCurrVolumeL = v->fCurrVolumeR = 0.0f; } - // if destination volume and current volume is the same (and we have no sample trigger), don't do ramp - if (fVolumeL == v->fVolumeL && fVolumeR == v->fVolumeR && !(status & IS_Trigger)) + if (!voiceSampleTrigger && v->fTargetVolumeL == v->fCurrVolumeL && v->fTargetVolumeR == v->fCurrVolumeR) { - v->volumeRampLength = 0; + v->volumeRampLength = 0; // no ramp needed for now } else { - const float fVolumeLTarget = fVolumeL - v->fVolumeL; - const float fVolumeRTarget = fVolumeR - v->fVolumeR; + const float fVolumeLDiff = v->fTargetVolumeL - v->fCurrVolumeL; + const float fVolumeRDiff = v->fTargetVolumeR - v->fCurrVolumeR; // IS_QuickVol = 5ms, otherwise the duration of a tick v->volumeRampLength = (status & IS_QuickVol) ? audio.quickVolRampSamples : audio.samplesPerTickInt; const float fVolumeRampLength = (float)(int32_t)v->volumeRampLength; - v->fVolumeLDelta = fVolumeLTarget / fVolumeRampLength; - v->fVolumeRDelta = fVolumeRTarget / fVolumeRampLength; + v->fVolumeLDelta = fVolumeLDiff / fVolumeRampLength; + v->fVolumeRDelta = fVolumeRDiff / fVolumeRampLength; } } @@ -294,13 +310,13 @@ static void voiceTrigger(int32_t ch, sample_t *s, int32_t position) { v->base16 = (const int16_t *)s->dataPtr; v->revBase16 = &v->base16[loopStart + loopEnd]; // for pingpong loops - v->leftEdgeTaps16 = s->leftEdgeTapSamples16 + SINC_LEFT_TAPS; + v->leftEdgeTaps16 = s->leftEdgeTapSamples16 + SINC_MAX_LEFT_TAPS; } else { v->base8 = s->dataPtr; v->revBase8 = &v->base8[loopStart + loopEnd]; // for pingpong loops - v->leftEdgeTaps8 = s->leftEdgeTapSamples8 + SINC_LEFT_TAPS; + v->leftEdgeTaps8 = s->leftEdgeTapSamples8 + SINC_MAX_LEFT_TAPS; } v->hasLooped = false; // for sinc interpolation special case @@ -319,7 +335,7 @@ static void voiceTrigger(int32_t ch, sample_t *s, int32_t position) return; } - v->mixFuncOffset = (sample16Bit * 9) + (audio.interpolationType * 3) + loopType; + v->mixFuncOffset = ((int32_t)sample16Bit * 12) + (audio.interpolationType * 3) + loopType; v->active = true; } @@ -328,8 +344,8 @@ void resetRampVolumes(void) voice_t *v = voice; for (int32_t i = 0; i < song.numChannels; i++, v++) { - v->fVolumeL = v->fVolumeLTarget; - v->fVolumeR = v->fVolumeRTarget; + v->fCurrVolumeL = v->fTargetVolumeL; + v->fCurrVolumeR = v->fTargetVolumeR; v->volumeRampLength = 0; } } @@ -486,26 +502,26 @@ static void doChannelMixing(int32_t bufferPosition, int32_t samplesToMix) const bool volRampFlag = (v->volumeRampLength > 0); if (volRampFlag) { - centerMixFlag = (v->fVolumeLTarget == v->fVolumeRTarget) && (v->fVolumeLDelta == v->fVolumeRDelta); + centerMixFlag = (v->fTargetVolumeL == v->fTargetVolumeR) && (v->fVolumeLDelta == v->fVolumeRDelta); } else // no volume ramping active { - if (v->fVolumeL == 0.0f && v->fVolumeR == 0.0f) + if (v->fCurrVolumeL == 0.0f && v->fCurrVolumeR == 0.0f) { silenceMixRoutine(v, samplesToMix); continue; } - centerMixFlag = (v->fVolumeL == v->fVolumeR); + centerMixFlag = (v->fCurrVolumeL == v->fCurrVolumeR); } - mixFuncTab[((int32_t)centerMixFlag * 36) + ((int32_t)volRampFlag * 18) + v->mixFuncOffset](v, bufferPosition, samplesToMix); + mixFuncTab[((int32_t)centerMixFlag * (3*4*2*2)) + ((int32_t)volRampFlag * (3*4*2)) + v->mixFuncOffset](v, bufferPosition, samplesToMix); } if (r->active) // volume ramp fadeout-voice { - const bool centerMixFlag = (r->fVolumeLTarget == r->fVolumeRTarget) && (r->fVolumeLDelta == r->fVolumeRDelta); - mixFuncTab[((int32_t)centerMixFlag * 36) + 18 + r->mixFuncOffset](r, bufferPosition, samplesToMix); + const bool centerMixFlag = (r->fTargetVolumeL == r->fTargetVolumeR) && (r->fVolumeLDelta == r->fVolumeRDelta); + mixFuncTab[((int32_t)centerMixFlag * (3*4*2*2)) + (3*4*2) + r->mixFuncOffset](r, bufferPosition, samplesToMix); } } } @@ -1016,7 +1032,7 @@ bool setupAudio(bool showErrorMsg) } #if CPU_64BIT - if (have.freq != 44100 && have.freq != 48000 && have.freq != 96000 && have.freq != 192000) + if (have.freq != 44100 && have.freq != 48000 && have.freq != 96000) #else // 32-bit CPUs only support .16fp resampling precision. Not sensible with high rates. if (have.freq != 44100 && have.freq != 48000) #endif @@ -1064,7 +1080,7 @@ bool setupAudio(bool showErrorMsg) setLastWorkingAudioDevName(); // update config audio radio buttons if we're on that screen at the moment - if (ui.configScreenShown && editor.currConfigScreen == CONFIG_SCREEN_IO_DEVICES) + if (ui.configScreenShown && editor.currConfigScreen == CONFIG_SCREEN_AUDIO) showConfigScreen(); updateWavRendererSettings(); diff --git a/src/ft2_audio.h b/src/ft2_audio.h @@ -17,7 +17,7 @@ enum #define MIN_AUDIO_FREQ 44100 #if CPU_64BIT -#define MAX_AUDIO_FREQ 192000 +#define MAX_AUDIO_FREQ 96000 #else #define MAX_AUDIO_FREQ 48000 #endif @@ -44,8 +44,8 @@ typedef struct audio_t volatile bool locked, resetSyncTickTimeFlag, volumeRampingFlag; bool linearPeriodsFlag, rescanAudioDevicesSupported; volatile uint8_t interpolationType; - int32_t quickVolRampSamples, inputDeviceNum, outputDeviceNum, lastWorkingAudioFreq, lastWorkingAudioBits; - uint32_t freq; + int32_t inputDeviceNum, outputDeviceNum, lastWorkingAudioFreq, lastWorkingAudioBits; + uint32_t quickVolRampSamples, freq; uint32_t tickSampleCounter, samplesPerTickInt, samplesPerTickIntTab[(MAX_BPM-MIN_BPM)+1]; uint64_t tickSampleCounterFrac, samplesPerTickFrac, samplesPerTickFracTab[(MAX_BPM-MIN_BPM)+1]; @@ -73,13 +73,13 @@ typedef struct uintCPUWord_t positionFrac, delta, oldDelta, scopeDelta; - // if (loopEnabled && hasLooped && samplingPos <= loopStart+SINC_LEFT_TAPS) readFixedTapsFromThisPointer(); + // if (loopEnabled && hasLooped && samplingPos <= loopStart+SINC_MAX_LEFT_TAPS) readFixedTapsFromThisPointer(); const int8_t *leftEdgeTaps8; const int16_t *leftEdgeTaps16; const float *fSincLUT; double dVolume; - float fVolumeL, fVolumeR, fVolumeLDelta, fVolumeRDelta, fVolumeLTarget, fVolumeRTarget; + float fCurrVolumeL, fCurrVolumeR, fVolumeLDelta, fVolumeRDelta, fTargetVolumeL, fTargetVolumeR; } voice_t; #ifdef _MSC_VER diff --git a/src/ft2_audioselector.c b/src/ft2_audioselector.c @@ -232,7 +232,7 @@ void drawAudioInputList(void) bool testAudioDeviceListsMouseDown(void) { - if (!ui.configScreenShown || editor.currConfigScreen != CONFIG_SCREEN_IO_DEVICES) + if (!ui.configScreenShown || editor.currConfigScreen != CONFIG_SCREEN_AUDIO) return false; const int32_t mx = mouse.x; @@ -400,7 +400,7 @@ void setToDefaultAudioInputDevice(void) void rescanAudioDevices(void) { - const bool listShown = (ui.configScreenShown && editor.currConfigScreen == CONFIG_SCREEN_IO_DEVICES); + const bool listShown = (ui.configScreenShown && editor.currConfigScreen == CONFIG_SCREEN_AUDIO); freeAudioDeviceLists(); @@ -492,7 +492,7 @@ void scrollAudOutputDevListDown(void) void sbAudOutputSetPos(uint32_t pos) { - if (ui.configScreenShown && (editor.currConfigScreen == CONFIG_SCREEN_IO_DEVICES)) + if (ui.configScreenShown && (editor.currConfigScreen == CONFIG_SCREEN_AUDIO)) drawAudioOutputList(); (void)pos; @@ -500,7 +500,7 @@ void sbAudOutputSetPos(uint32_t pos) void sbAudInputSetPos(uint32_t pos) { - if (ui.configScreenShown && (editor.currConfigScreen == CONFIG_SCREEN_IO_DEVICES)) + if (ui.configScreenShown && (editor.currConfigScreen == CONFIG_SCREEN_AUDIO)) drawAudioInputList(); (void)pos; diff --git a/src/ft2_bmp.c b/src/ft2_bmp.c @@ -11,6 +11,7 @@ #include "ft2_palette.h" #include "ft2_gfxdata.h" #include "ft2_bmp.h" +#include "ft2_video.h" enum { @@ -102,7 +103,10 @@ bool loadBMPs(void) bmp.mouseCursorBusyGlass == NULL || bmp.whitePianoKeys == NULL || bmp.blackPianoKeys == NULL || bmp.vibratoWaveforms == NULL || bmp.scopeRec == NULL || bmp.scopeMute == NULL || bmp.radiobuttonGfx == NULL || bmp.checkboxGfx == NULL) + { + showErrorMsgBox("Not enough memory!"); return false; + } return true; } diff --git a/src/ft2_checkboxes.c b/src/ft2_checkboxes.c @@ -82,7 +82,7 @@ checkBox_t checkBoxes[NUM_CHECKBOXES] = // ------ CONFIG CHECKBOXES ------ //x, y, w, h, funcOnUp { 3, 91, 77, 12, cbToggleAutoSaveConfig }, - { 389, 159, 107, 12, cbConfigVolRamp }, + { 508, 158, 107, 12, cbConfigVolRamp }, { 113, 14, 108, 12, cbConfigPattStretch }, { 113, 27, 117, 12, cbConfigHexCount }, { 113, 40, 81, 12, cbConfigAccidential }, diff --git a/src/ft2_config.c b/src/ft2_config.c @@ -155,7 +155,7 @@ static void loadConfigFromBuffer(bool defaults) } #if CPU_64BIT - if (config.audioFreq != 44100 && config.audioFreq != 48000 && config.audioFreq != 96000 && config.audioFreq != 192000) + if (config.audioFreq != 44100 && config.audioFreq != 48000 && config.audioFreq != 96000) #else if (config.audioFreq != 44100 && config.audioFreq != 48000) #endif @@ -201,7 +201,15 @@ static void configDrawAmp(void) { char str[8]; sprintf(str, "%02d", config.boostLevel); - textOutFixed(607, 120, PAL_FORGRND, PAL_DESKTOP, str); + textOutFixed(607, 105, PAL_FORGRND, PAL_DESKTOP, str); +} + +static void configDrawMasterVol(void) +{ + char str[9]; + sprintf(str, "%3d", config.masterVol); + fillRect(607, 133, 20, 8, PAL_DESKTOP); + textOutFixed(607, 133, PAL_FORGRND, PAL_DESKTOP, str); } static void setDefaultConfigSettings(void) @@ -781,7 +789,7 @@ static void setConfigRadioButtonStates(void) switch (editor.currConfigScreen) { default: - case CONFIG_SCREEN_IO_DEVICES: tmpID = RB_CONFIG_IO_DEVICES; break; + case CONFIG_SCREEN_AUDIO: tmpID = RB_CONFIG_AUDIO; break; case CONFIG_SCREEN_LAYOUT: tmpID = RB_CONFIG_LAYOUT; break; case CONFIG_SCREEN_MISCELLANEOUS: tmpID = RB_CONFIG_MISCELLANEOUS; break; #ifdef HAS_MIDI @@ -793,7 +801,7 @@ static void setConfigRadioButtonStates(void) showRadioButtonGroup(RB_GROUP_CONFIG_SELECT); } -void setConfigIORadioButtonStates(void) // accessed by other .c files +void setConfigAudioRadioButtonStates(void) // accessed by other .c files { uint16_t tmpID; @@ -820,12 +828,14 @@ void setConfigIORadioButtonStates(void) // accessed by other .c files // AUDIO INTERPOLATION uncheckRadioButtonGroup(RB_GROUP_CONFIG_AUDIO_INTERPOLATION); - if (config.interpolation == INTERPOLATION_NONE) - tmpID = RB_CONFIG_AUDIO_INTRP_NONE; + if (config.interpolation == INTERPOLATION_DISABLED) + tmpID = RB_CONFIG_AUDIO_INTRP_DISABLED; else if (config.interpolation == INTERPOLATION_LINEAR) tmpID = RB_CONFIG_AUDIO_INTRP_LINEAR; + else if (config.interpolation == INTERPOLATION_SINC16) + tmpID = RB_CONFIG_AUDIO_INTRP_SINC16; else - tmpID = RB_CONFIG_AUDIO_INTRP_SINC; + tmpID = RB_CONFIG_AUDIO_INTRP_SINC8; // default case radioButtons[tmpID].state = RADIOBUTTON_CHECKED; @@ -837,7 +847,6 @@ void setConfigIORadioButtonStates(void) // accessed by other .c files default: case 48000: tmpID = RB_CONFIG_AUDIO_48KHZ; break; #if CPU_64BIT case 96000: tmpID = RB_CONFIG_AUDIO_96KHZ; break; - case 192000: tmpID = RB_CONFIG_AUDIO_192KHZ; break; #endif } radioButtons[tmpID].state = RADIOBUTTON_CHECKED; @@ -852,9 +861,9 @@ void setConfigIORadioButtonStates(void) // accessed by other .c files } radioButtons[tmpID].state = RADIOBUTTON_CHECKED; - // FREQUENCY TABLE - uncheckRadioButtonGroup(RB_GROUP_CONFIG_FREQ_TABLE); - tmpID = audio.linearPeriodsFlag ? RB_CONFIG_FREQ_LINEAR : RB_CONFIG_FREQ_AMIGA; + // FREQUENCY SLIDES + uncheckRadioButtonGroup(RB_GROUP_CONFIG_FREQ_SLIDES); + tmpID = audio.linearPeriodsFlag ? RB_CONFIG_FREQ_SLIDES_LINEAR : RB_CONFIG_FREQ_SLIDES_AMIGA; radioButtons[tmpID].state = RADIOBUTTON_CHECKED; // show result @@ -864,10 +873,10 @@ void setConfigIORadioButtonStates(void) // accessed by other .c files showRadioButtonGroup(RB_GROUP_CONFIG_AUDIO_INTERPOLATION); showRadioButtonGroup(RB_GROUP_CONFIG_AUDIO_FREQ); showRadioButtonGroup(RB_GROUP_CONFIG_AUDIO_INPUT_FREQ); - showRadioButtonGroup(RB_GROUP_CONFIG_FREQ_TABLE); + showRadioButtonGroup(RB_GROUP_CONFIG_FREQ_SLIDES); } -static void setConfigIOCheckButtonStates(void) +static void setConfigAudioCheckButtonStates(void) { checkBoxes[CB_CONF_VOL_RAMP].checked = (config.specialFlags & NO_VOLRAMP_FLAG) ? false : true; showCheckBox(CB_CONF_VOL_RAMP); @@ -1100,7 +1109,7 @@ void showConfigScreen(void) showPushButton(PB_CONFIG_EXIT); textOutShadow(4, 4, PAL_FORGRND, PAL_DSKTOP2, "Configuration:"); - textOutShadow(21, 19, PAL_FORGRND, PAL_DSKTOP2, "I/O devices"); + textOutShadow(21, 19, PAL_FORGRND, PAL_DSKTOP2, "Audio"); textOutShadow(21, 35, PAL_FORGRND, PAL_DSKTOP2, "Layout"); textOutShadow(21, 51, PAL_FORGRND, PAL_DSKTOP2, "Miscellaneous"); #ifdef HAS_MIDI @@ -1111,18 +1120,18 @@ void showConfigScreen(void) switch (editor.currConfigScreen) { default: - case CONFIG_SCREEN_IO_DEVICES: + case CONFIG_SCREEN_AUDIO: { drawFramework(110, 0, 276, 87, FRAMEWORK_TYPE1); drawFramework(110, 87, 276, 86, FRAMEWORK_TYPE1); - drawFramework(386, 0, 119, 58, FRAMEWORK_TYPE1); - drawFramework(386, 58, 119, 44, FRAMEWORK_TYPE1); - drawFramework(386, 102, 119, 71, FRAMEWORK_TYPE1); + drawFramework(386, 0, 119, 58, FRAMEWORK_TYPE1); + drawFramework(386, 58, 119, 44, FRAMEWORK_TYPE1); + drawFramework(386, 102, 119, 71, FRAMEWORK_TYPE1); - drawFramework(505, 0, 127, 73, FRAMEWORK_TYPE1); - drawFramework(505, 117, 127, 56, FRAMEWORK_TYPE1); - drawFramework(505, 73, 127, 44, FRAMEWORK_TYPE1); + drawFramework(505, 0, 127, 58, FRAMEWORK_TYPE1); + drawFramework(505, 102, 127, 71, FRAMEWORK_TYPE1); + drawFramework(505, 58, 127, 44, FRAMEWORK_TYPE1); drawFramework(112, 16, AUDIO_SELECTORS_BOX_WIDTH+4, 69, FRAMEWORK_TYPE2); drawFramework(112, 103, AUDIO_SELECTORS_BOX_WIDTH+4, 47, FRAMEWORK_TYPE2); @@ -1160,30 +1169,31 @@ void showConfigScreen(void) textOutShadow(406, 89, PAL_FORGRND, PAL_DSKTOP2, "32-bit float"); textOutShadow(390, 105, PAL_FORGRND, PAL_DSKTOP2, "Interpolation:"); - textOutShadow(406, 118, PAL_FORGRND, PAL_DSKTOP2, "None"); - textOutShadow(406, 132, PAL_FORGRND, PAL_DSKTOP2, "Linear (FT2)"); - textOutShadow(406, 146, PAL_FORGRND, PAL_DSKTOP2, "Windowed-sinc"); - textOutShadow(406, 161, PAL_FORGRND, PAL_DSKTOP2, "Volume ramping"); + textOutShadow(406, 118, PAL_FORGRND, PAL_DSKTOP2, "Disabled"); + textOutShadow(406, 132, PAL_FORGRND, PAL_DSKTOP2, "Linear (2 point)"); + textOutShadow(406, 146, PAL_FORGRND, PAL_DSKTOP2, "Sinc (8 point)"); + textOutShadow(406, 160, PAL_FORGRND, PAL_DSKTOP2, "Sinc (16 point)"); - textOutShadow(509, 3, PAL_FORGRND, PAL_DSKTOP2, "Mixing frequency:"); + textOutShadow(509, 3, PAL_FORGRND, PAL_DSKTOP2, "Output frequency:"); textOutShadow(525, 17, PAL_FORGRND, PAL_DSKTOP2, "44100Hz"); textOutShadow(525, 31, PAL_FORGRND, PAL_DSKTOP2, "48000Hz (default)"); #if CPU_64BIT textOutShadow(525, 45, PAL_FORGRND, PAL_DSKTOP2, "96000Hz"); - textOutShadow(525, 59, PAL_FORGRND, PAL_DSKTOP2, "192000Hz"); #endif - textOutShadow(509, 76, PAL_FORGRND, PAL_DSKTOP2, "Frequency table:"); - textOutShadow(525, 90, PAL_FORGRND, PAL_DSKTOP2, "Amiga freq. table"); - textOutShadow(525, 104, PAL_FORGRND, PAL_DSKTOP2, "Linear freq. table"); + textOutShadow(509, 61, PAL_FORGRND, PAL_DSKTOP2, "Frequency slides:"); + textOutShadow(525, 75, PAL_FORGRND, PAL_DSKTOP2, "Amiga"); + textOutShadow(525, 89, PAL_FORGRND, PAL_DSKTOP2, "Linear (default)"); - textOutShadow(509, 120, PAL_FORGRND, PAL_DSKTOP2, "Amplification:"); - charOutShadow(621, 120, PAL_FORGRND, PAL_DSKTOP2, 'X'); - textOutShadow(509, 148, PAL_FORGRND, PAL_DSKTOP2, "Master volume:"); + textOutShadow(509, 105, PAL_FORGRND, PAL_DSKTOP2, "Amplification:"); + charOutShadow(621, 105, PAL_FORGRND, PAL_DSKTOP2, 'X'); + textOutShadow(509, 133, PAL_FORGRND, PAL_DSKTOP2, "Master volume:"); + textOutShadow(525, 160, PAL_FORGRND, PAL_DSKTOP2, "Volume ramping"); - setConfigIORadioButtonStates(); - setConfigIOCheckButtonStates(); + setConfigAudioRadioButtonStates(); + setConfigAudioCheckButtonStates(); configDrawAmp(); + configDrawMasterVol(); setScrollBarPos(SB_AMP_SCROLL, config.boostLevel - 1, false); setScrollBarPos(SB_MASTERVOL_SCROLL, config.masterVol, false); @@ -1239,7 +1249,7 @@ void showConfigScreen(void) textOutShadow(338, 129, PAL_FORGRND, PAL_DSKTOP2, "Bold"); textOutShadow(256, 146, PAL_FORGRND, PAL_DSKTOP2, "Scopes:"); - textOutShadow(319, 146, PAL_FORGRND, PAL_DSKTOP2, "Std."); + textOutShadow(319, 146, PAL_FORGRND, PAL_DSKTOP2, "FT2"); textOutShadow(360, 146, PAL_FORGRND, PAL_DSKTOP2, "Lined"); textOutShadow(272, 160, PAL_FORGRND, PAL_DSKTOP2, "Software mouse"); @@ -1410,7 +1420,7 @@ void hideConfigScreen(void) hideRadioButtonGroup(RB_GROUP_CONFIG_AUDIO_INTERPOLATION); hideRadioButtonGroup(RB_GROUP_CONFIG_AUDIO_FREQ); hideRadioButtonGroup(RB_GROUP_CONFIG_AUDIO_INPUT_FREQ); - hideRadioButtonGroup(RB_GROUP_CONFIG_FREQ_TABLE); + hideRadioButtonGroup(RB_GROUP_CONFIG_FREQ_SLIDES); hideCheckBox(CB_CONF_VOL_RAMP); hidePushButton(PB_CONFIG_AUDIO_RESCAN); hidePushButton(PB_CONFIG_AUDIO_OUTPUT_DOWN); @@ -1523,10 +1533,10 @@ void configToggleNotYetAppliedWarning(void) config.dontShowAgainFlags ^= DONT_SHOW_NOT_YET_APPLIED_WARNING_FLAG; } -void rbConfigIODevices(void) +void rbConfigAudio(void) { - checkRadioButton(RB_CONFIG_IO_DEVICES); - editor.currConfigScreen = CONFIG_SCREEN_IO_DEVICES; + checkRadioButton(RB_CONFIG_AUDIO); + editor.currConfigScreen = CONFIG_SCREEN_AUDIO; hideConfigScreen(); showConfigScreen(); @@ -1561,7 +1571,7 @@ void rbConfigMidiInput(void) } #endif -void rbConfigSbs512(void) +void rbConfigAudioBuffSmall(void) { config.specialFlags &= ~(BUFFSIZE_1024 + BUFFSIZE_2048); config.specialFlags |= BUFFSIZE_512; @@ -1569,7 +1579,7 @@ void rbConfigSbs512(void) setNewAudioSettings(); } -void rbConfigSbs1024(void) +void rbConfigAudioBuffMedium(void) { config.specialFlags &= ~(BUFFSIZE_512 + BUFFSIZE_2048); config.specialFlags |= BUFFSIZE_1024; @@ -1577,7 +1587,7 @@ void rbConfigSbs1024(void) setNewAudioSettings(); } -void rbConfigSbs2048(void) +void rbConfigAudioBuffLarge(void) { config.specialFlags &= ~(BUFFSIZE_512 + BUFFSIZE_1024); config.specialFlags |= BUFFSIZE_2048; @@ -1585,7 +1595,7 @@ void rbConfigSbs2048(void) setNewAudioSettings(); } -void rbConfigAudio16bit(void) +void rbConfigAudio16Bit(void) { config.specialFlags &= ~BITDEPTH_32; config.specialFlags |= BITDEPTH_16; @@ -1593,7 +1603,7 @@ void rbConfigAudio16bit(void) setNewAudioSettings(); } -void rbConfigAudio24bit(void) +void rbConfigAudio32BitFloat(void) { config.specialFlags &= ~BITDEPTH_16; config.specialFlags |= BITDEPTH_32; @@ -1601,11 +1611,11 @@ void rbConfigAudio24bit(void) setNewAudioSettings(); } -void rbConfigAudioIntrpNone(void) +void rbConfigAudioIntrpDisabled(void) { - config.interpolation = INTERPOLATION_NONE; + config.interpolation = INTERPOLATION_DISABLED; audioSetInterpolationType(config.interpolation); - checkRadioButton(RB_CONFIG_AUDIO_INTRP_NONE); + checkRadioButton(RB_CONFIG_AUDIO_INTRP_DISABLED); } void rbConfigAudioIntrpLinear(void) @@ -1615,11 +1625,18 @@ void rbConfigAudioIntrpLinear(void) checkRadioButton(RB_CONFIG_AUDIO_INTRP_LINEAR); } -void rbConfigAudioIntrpSinc(void) +void rbConfigAudioIntrp8PointSinc(void) { - config.interpolation = INTERPOLATION_SINC; + config.interpolation = INTERPOLATION_SINC8; audioSetInterpolationType(config.interpolation); - checkRadioButton(RB_CONFIG_AUDIO_INTRP_SINC); + checkRadioButton(RB_CONFIG_AUDIO_INTRP_SINC8); +} + +void rbConfigAudioIntrp16PointSinc(void) +{ + config.interpolation = INTERPOLATION_SINC16; + audioSetInterpolationType(config.interpolation); + checkRadioButton(RB_CONFIG_AUDIO_INTRP_SINC16); } void rbConfigAudio44kHz(void) @@ -1640,12 +1657,6 @@ void rbConfigAudio96kHz(void) config.audioFreq = 96000; setNewAudioSettings(); } - -void rbConfigAudio192kHz(void) -{ - config.audioFreq = 192000; - setNewAudioSettings(); -} #endif void rbConfigAudioInput44kHz(void) @@ -1666,17 +1677,17 @@ void rbConfigAudioInput96kHz(void) checkRadioButton(RB_CONFIG_AUDIO_INPUT_96KHZ); } -void rbConfigFreqTableAmiga(void) +void rbConfigFreqSlidesAmiga(void) { lockMixerCallback(); - setFrequencyTable(false); + setLinearPeriods(false); unlockMixerCallback(); } -void rbConfigFreqTableLinear(void) +void rbConfigFreqSlidesLinear(void) { lockMixerCallback(); - setFrequencyTable(true); + setLinearPeriods(true); unlockMixerCallback(); } @@ -2235,6 +2246,7 @@ void sbMasterVol(uint32_t pos) { config.masterVol = (int16_t)pos; setAudioAmp(config.boostLevel, config.masterVol, !!(config.specialFlags & BITDEPTH_32)); + configDrawMasterVol(); } } diff --git a/src/ft2_config.h b/src/ft2_config.h @@ -11,7 +11,7 @@ enum { - CONFIG_SCREEN_IO_DEVICES, + CONFIG_SCREEN_AUDIO, CONFIG_SCREEN_LAYOUT, CONFIG_SCREEN_MISCELLANEOUS, CONFIG_SCREEN_MIDI_INPUT, @@ -19,9 +19,12 @@ enum CONFIG_HIDE_ERRORS = 0, CONFIG_SHOW_ERRORS = 1, - INTERPOLATION_NONE = 0, - INTERPOLATION_SINC = 1, + // don't change the order of these! (yes, it looks off) + INTERPOLATION_DISABLED = 0, + INTERPOLATION_SINC8 = 1, INTERPOLATION_LINEAR = 2, + INTERPOLATION_SINC16 = 3, + // ------ MOUSE_IDLE_SHAPE_NICE = 0, MOUSE_IDLE_SHAPE_UGLY = 1, @@ -186,7 +189,7 @@ void loadConfigOrSetDefaults(void); void showConfigScreen(void); void hideConfigScreen(void); void exitConfigScreen(void); -void setConfigIORadioButtonStates(void); +void setConfigAudioRadioButtonStates(void); void configToggleImportWarning(void); void configToggleNotYetAppliedWarning(void); void drawAudioOutputList(void); @@ -203,31 +206,31 @@ void configMIDITransUp(void); void configMIDITransDown(void); void configMIDISensDown(void); void configMIDISensUp(void); -void rbConfigIODevices(void); +void rbConfigAudio(void); void rbConfigLayout(void); void rbConfigMiscellaneous(void); #ifdef HAS_MIDI void rbConfigMidiInput(void); #endif -void rbConfigSbs512(void); -void rbConfigSbs1024(void); -void rbConfigSbs2048(void); -void rbConfigAudio16bit(void); -void rbConfigAudio24bit(void); -void rbConfigAudioIntrpNone(void); +void rbConfigAudioBuffSmall(void); +void rbConfigAudioBuffMedium(void); +void rbConfigAudioBuffLarge(void); +void rbConfigAudio16Bit(void); +void rbConfigAudio32BitFloat(void); +void rbConfigAudioIntrpDisabled(void); void rbConfigAudioIntrpLinear(void); -void rbConfigAudioIntrpSinc(void); +void rbConfigAudioIntrp8PointSinc(void); +void rbConfigAudioIntrp16PointSinc(void); void rbConfigAudio44kHz(void); void rbConfigAudio48kHz(void); #if CPU_64BIT void rbConfigAudio96kHz(void); -void rbConfigAudio192kHz(void); #endif void rbConfigAudioInput44kHz(void); void rbConfigAudioInput48kHz(void); void rbConfigAudioInput96kHz(void); -void rbConfigFreqTableAmiga(void); -void rbConfigFreqTableLinear(void); +void rbConfigFreqSlidesAmiga(void); +void rbConfigFreqSlidesLinear(void); void rbConfigMouseNice(void); void rbConfigMouseUgly(void); void rbConfigMouseAwful(void); diff --git a/src/ft2_diskop.c b/src/ft2_diskop.c @@ -88,7 +88,10 @@ bool setupExecutablePath(void) { editor.binaryPathU = (UNICHAR *)malloc((PATH_MAX + 1) * sizeof (UNICHAR)); if (editor.binaryPathU == NULL) + { + showErrorMsgBox("Not enough memory!"); return false; + } editor.binaryPathU[0] = 0; UNICHAR_GETCWD(editor.binaryPathU, PATH_MAX); diff --git a/src/ft2_header.h b/src/ft2_header.h @@ -37,8 +37,8 @@ ** branchless in the inner channel mixer loop. ** Warning: Do not change this! */ -#define SMP_DAT_OFFSET ((SINC_LEFT_TAPS*2)+1) -#define SAMPLE_PAD_LENGTH (SMP_DAT_OFFSET+(SINC_RIGHT_TAPS*2)) +#define SMP_DAT_OFFSET ((SINC_MAX_LEFT_TAPS*2)+1) +#define SAMPLE_PAD_LENGTH (SMP_DAT_OFFSET+(SINC_MAX_RIGHT_TAPS*2)) #ifndef _WIN32 #define _stricmp strcasecmp diff --git a/src/ft2_keyboard.c b/src/ft2_keyboard.c @@ -244,7 +244,7 @@ static void handleKeys(SDL_Keycode keycode, SDL_Scancode scanKey) config.masterVol = 0; setAudioAmp(config.boostLevel, config.masterVol, !!(config.specialFlags & BITDEPTH_32)); - if (ui.configScreenShown && editor.currConfigScreen == CONFIG_SCREEN_IO_DEVICES) + if (ui.configScreenShown && editor.currConfigScreen == CONFIG_SCREEN_AUDIO) showConfigScreen(); } else @@ -277,7 +277,7 @@ static void handleKeys(SDL_Keycode keycode, SDL_Scancode scanKey) config.masterVol = 256; setAudioAmp(config.boostLevel, config.masterVol, !!(config.specialFlags & BITDEPTH_32)); - if (ui.configScreenShown && editor.currConfigScreen == CONFIG_SCREEN_IO_DEVICES) + if (ui.configScreenShown && editor.currConfigScreen == CONFIG_SCREEN_AUDIO) showConfigScreen(); } } @@ -1229,7 +1229,7 @@ static bool checkModifiedKeys(SDL_Keycode keycode) { editor.currConfigScreen = 0; showConfigScreen(); - checkRadioButton(RB_CONFIG_IO_DEVICES); + checkRadioButton(RB_CONFIG_AUDIO); return true; } diff --git a/src/ft2_main.c b/src/ft2_main.c @@ -156,9 +156,16 @@ int main(int argc, char *argv[]) return 1; } + if (!calcWindowedSincTables()) // must be called before config is loaded + { + cleanUpAndExit(); + return false; + } + loadConfigOrSetDefaults(); if (!setupWindow() || !setupRenderer()) { + // error message was shown in the functions above cleanUpAndExit(); return 1; } diff --git a/src/ft2_module_loader.c b/src/ft2_module_loader.c @@ -475,7 +475,7 @@ static void setupLoadedModule(void) editor.tick = song.tick; editor.globalVolume = song.globalVolume; - setFrequencyTable(tmpLinearPeriodsFlag); + setLinearPeriods(tmpLinearPeriodsFlag); unlockMixerCallback(); diff --git a/src/ft2_module_saver.c b/src/ft2_module_saver.c @@ -290,8 +290,11 @@ static bool saveMOD(UNICHAR *filenameU) sample_t *smp; modHdr_t hdr; + // Commented out. This one was probably confusing to many people... + /* if (audio.linearPeriodsFlag) - okBoxThreadSafe(0, "System message", "Warning: Amiga frequency table isn't used!"); + okBoxThreadSafe(0, "System message", "Warning: \"Frequency slides\" is not set to Amiga!"); + */ int32_t songLength = song.songLength; if (songLength > 128) diff --git a/src/ft2_mouse.c b/src/ft2_mouse.c @@ -496,7 +496,7 @@ void mouseWheelHandler(bool directionUp) } else if (ui.configScreenShown) { - if (editor.currConfigScreen == CONFIG_SCREEN_IO_DEVICES) + if (editor.currConfigScreen == CONFIG_SCREEN_AUDIO) { // audio device selectors if (mouse.x >= 110 && mouse.x <= 355 && mouse.y <= 173) diff --git a/src/ft2_pattern_ed.c b/src/ft2_pattern_ed.c @@ -2592,7 +2592,7 @@ static void zapSong(void) resetPlaybackTime(); if (!audio.linearPeriodsFlag) - setFrequencyTable(true); + setLinearPeriods(true); clearPattMark(); resetWavRenderer(); diff --git a/src/ft2_pushbuttons.c b/src/ft2_pushbuttons.c @@ -318,10 +318,10 @@ pushButton_t pushButtons[NUM_PUSHBUTTONS] = { 365, 72, 18, 13, 1, 4, ARROW_DOWN_STRING, NULL, scrollAudOutputDevListDown, NULL }, { 365, 103, 18, 13, 1, 4, ARROW_UP_STRING, NULL, scrollAudInputDevListUp, NULL }, { 365, 137, 18, 13, 1, 4, ARROW_DOWN_STRING, NULL, scrollAudInputDevListDown, NULL }, - { 508, 132, 21, 13, 1, 4, ARROW_LEFT_STRING, NULL, configAmpDown, NULL }, - { 608, 132, 21, 13, 1, 4, ARROW_RIGHT_STRING, NULL, configAmpUp, NULL }, - { 508, 158, 21, 13, 1, 0, ARROW_LEFT_STRING, NULL, configMasterVolDown, NULL }, - { 608, 158, 21, 13, 1, 0, ARROW_RIGHT_STRING, NULL, configMasterVolUp, NULL }, + { 508, 117, 21, 13, 1, 4, ARROW_LEFT_STRING, NULL, configAmpDown, NULL }, + { 608, 117, 21, 13, 1, 4, ARROW_RIGHT_STRING, NULL, configAmpUp, NULL }, + { 508, 143, 21, 13, 1, 0, ARROW_LEFT_STRING, NULL, configMasterVolDown, NULL }, + { 608, 143, 21, 13, 1, 0, ARROW_RIGHT_STRING, NULL, configMasterVolUp, NULL }, // ------ CONFIG LAYOUT PUSHBUTTONS ------ //x, y, w, h, p, d, text #1, text #2, funcOnDown, funcOnUp diff --git a/src/ft2_radiobuttons.c b/src/ft2_radiobuttons.c @@ -64,7 +64,7 @@ radioButton_t radioButtons[NUM_RADIOBUTTONS] = // ------ CONFIG SCREEN LEFT RADIOBUTTONS ------ //x, y, w, group, funcOnUp - { 5, 18, 85, RB_GROUP_CONFIG_SELECT, rbConfigIODevices }, + { 5, 18, 48, RB_GROUP_CONFIG_SELECT, rbConfigAudio }, { 5, 34, 57, RB_GROUP_CONFIG_SELECT, rbConfigLayout }, { 5, 50, 97, RB_GROUP_CONFIG_SELECT, rbConfigMiscellaneous }, #ifdef HAS_MIDI @@ -75,20 +75,21 @@ radioButton_t radioButtons[NUM_RADIOBUTTONS] = // audio buffer size //x, y, w, group, funcOnUp - { 390, 16, 46, RB_GROUP_CONFIG_SOUND_BUFF_SIZE, rbConfigSbs512 }, - { 390, 30, 113, RB_GROUP_CONFIG_SOUND_BUFF_SIZE, rbConfigSbs1024 }, - { 390, 44, 50, RB_GROUP_CONFIG_SOUND_BUFF_SIZE, rbConfigSbs2048 }, + { 390, 16, 46, RB_GROUP_CONFIG_SOUND_BUFF_SIZE, rbConfigAudioBuffSmall }, + { 390, 30, 113, RB_GROUP_CONFIG_SOUND_BUFF_SIZE, rbConfigAudioBuffMedium }, + { 390, 44, 50, RB_GROUP_CONFIG_SOUND_BUFF_SIZE, rbConfigAudioBuffLarge }, // audio bit depth //x, y, w, group, funcOnUp - { 390, 74, 107, RB_GROUP_CONFIG_AUDIO_BIT_DEPTH, rbConfigAudio16bit }, - { 390, 88, 83, RB_GROUP_CONFIG_AUDIO_BIT_DEPTH, rbConfigAudio24bit }, + { 390, 74, 107, RB_GROUP_CONFIG_AUDIO_BIT_DEPTH, rbConfigAudio16Bit }, + { 390, 88, 83, RB_GROUP_CONFIG_AUDIO_BIT_DEPTH, rbConfigAudio32BitFloat }, // audio interpolation //x, y, w, group, funcOnUp - { 390, 117, 46, RB_GROUP_CONFIG_AUDIO_INTERPOLATION, rbConfigAudioIntrpNone }, - { 390, 131, 91, RB_GROUP_CONFIG_AUDIO_INTERPOLATION, rbConfigAudioIntrpLinear }, - { 390, 145, 103, RB_GROUP_CONFIG_AUDIO_INTERPOLATION, rbConfigAudioIntrpSinc }, + { 390, 117, 65, RB_GROUP_CONFIG_AUDIO_INTERPOLATION, rbConfigAudioIntrpDisabled }, + { 390, 131, 107, RB_GROUP_CONFIG_AUDIO_INTERPOLATION, rbConfigAudioIntrpLinear }, + { 390, 145, 95, RB_GROUP_CONFIG_AUDIO_INTERPOLATION, rbConfigAudioIntrp8PointSinc }, + { 390, 159, 102, RB_GROUP_CONFIG_AUDIO_INTERPOLATION, rbConfigAudioIntrp16PointSinc }, // audio output frequency //x, y, w, group, funcOnUp @@ -96,7 +97,6 @@ radioButton_t radioButtons[NUM_RADIOBUTTONS] = { 509, 30, 121, RB_GROUP_CONFIG_AUDIO_FREQ, rbConfigAudio48kHz }, #if CPU_64BIT { 509, 44, 66, RB_GROUP_CONFIG_AUDIO_FREQ, rbConfigAudio96kHz }, - { 509, 58, 73, RB_GROUP_CONFIG_AUDIO_FREQ, rbConfigAudio192kHz }, #endif // audio input frequency @@ -105,10 +105,10 @@ radioButton_t radioButtons[NUM_RADIOBUTTONS] = { 251, 156, 60, RB_GROUP_CONFIG_AUDIO_INPUT_FREQ, rbConfigAudioInput48kHz }, { 322, 156, 60, RB_GROUP_CONFIG_AUDIO_INPUT_FREQ, rbConfigAudioInput96kHz }, - // frequency table + // frequency slides //x, y, w, group, funcOnUp - { 509, 89, 114, RB_GROUP_CONFIG_FREQ_TABLE, rbConfigFreqTableAmiga }, - { 509, 103, 117, RB_GROUP_CONFIG_FREQ_TABLE, rbConfigFreqTableLinear }, + { 509, 74, 50, RB_GROUP_CONFIG_FREQ_SLIDES, rbConfigFreqSlidesAmiga }, + { 509, 88, 108, RB_GROUP_CONFIG_FREQ_SLIDES, rbConfigFreqSlidesLinear }, // ------ CONFIG LAYOUT ------ @@ -126,7 +126,7 @@ radioButton_t radioButtons[NUM_RADIOBUTTONS] = // scope style //x, y, w, group, funcOnUp - { 305, 145, 37, RB_GROUP_CONFIG_SCOPE, rbConfigScopeStandard }, + { 305, 145, 38, RB_GROUP_CONFIG_SCOPE, rbConfigScopeStandard }, { 346, 145, 46, RB_GROUP_CONFIG_SCOPE, rbConfigScopeLined }, // visible pattern channels diff --git a/src/ft2_radiobuttons.h b/src/ft2_radiobuttons.h @@ -36,7 +36,7 @@ enum // RADIOBUTTONS RB_INST_WAVE_RAMP_UP, // CONFIG SELECT - RB_CONFIG_IO_DEVICES, + RB_CONFIG_AUDIO, RB_CONFIG_LAYOUT, RB_CONFIG_MISCELLANEOUS, @@ -56,16 +56,16 @@ enum // RADIOBUTTONS RB_CONFIG_AUDIO_24BIT, // AUDIO INTERPOLATION - RB_CONFIG_AUDIO_INTRP_NONE, + RB_CONFIG_AUDIO_INTRP_DISABLED, RB_CONFIG_AUDIO_INTRP_LINEAR, - RB_CONFIG_AUDIO_INTRP_SINC, + RB_CONFIG_AUDIO_INTRP_SINC8, + RB_CONFIG_AUDIO_INTRP_SINC16, // AUDIO FREQUENCY RB_CONFIG_AUDIO_44KHZ, RB_CONFIG_AUDIO_48KHZ, #if CPU_64BIT RB_CONFIG_AUDIO_96KHZ, - RB_CONFIG_AUDIO_192KHZ, #endif // AUDIO INPUT FREQUENCY @@ -73,9 +73,9 @@ enum // RADIOBUTTONS RB_CONFIG_AUDIO_INPUT_48KHZ, RB_CONFIG_AUDIO_INPUT_96KHZ, - // FREQUENCY TABLE - RB_CONFIG_FREQ_AMIGA, - RB_CONFIG_FREQ_LINEAR, + // FREQUENCY SLIDES + RB_CONFIG_FREQ_SLIDES_AMIGA, + RB_CONFIG_FREQ_SLIDES_LINEAR, // CONFIG LAYOUT @@ -177,7 +177,7 @@ enum // RADIOBUTTONS RB_GROUP_CONFIG_AUDIO_INTERPOLATION, RB_GROUP_CONFIG_AUDIO_FREQ, RB_GROUP_CONFIG_AUDIO_INPUT_FREQ, - RB_GROUP_CONFIG_FREQ_TABLE, + RB_GROUP_CONFIG_FREQ_SLIDES, RB_GROUP_CONFIG_MOUSE, RB_GROUP_CONFIG_MOUSE_BUSY, diff --git a/src/ft2_replayer.c b/src/ft2_replayer.c @@ -295,7 +295,7 @@ double getSampleC4Rate(sample_t *s) return dPeriod2Hz(period); } -void setFrequencyTable(bool linearPeriodsFlag) +void setLinearPeriods(bool linearPeriodsFlag) { pauseAudio(); @@ -308,15 +308,15 @@ void setFrequencyTable(bool linearPeriodsFlag) resumeAudio(); - if (ui.configScreenShown && editor.currConfigScreen == CONFIG_SCREEN_IO_DEVICES) + if (ui.configScreenShown && editor.currConfigScreen == CONFIG_SCREEN_AUDIO) { - // update "frequency table" radiobutton, if it's shown - setConfigIORadioButtonStates(); - - // update mid-C freq. in instr. editor (it can slightly differ between Amiga/linear) - if (ui.instEditorShown) - drawC4Rate(); + // update "frequency slides" radiobutton, if it's shown + setConfigAudioRadioButtonStates(); } + + // update mid-C freq. in instr. editor (it can slightly differ between Amiga/linear) + if (ui.instEditorShown) + drawC4Rate(); } static void retrigVolume(channel_t *ch) @@ -412,7 +412,7 @@ void calcReplayerVars(int32_t audioFreq) return; audio.dHz2MixDeltaMul = (double)MIXER_FRAC_SCALE / audioFreq; - audio.quickVolRampSamples = (int32_t)round(audioFreq / (double)FT2_QUICKRAMP_SAMPLES); + audio.quickVolRampSamples = (uint32_t)round(audioFreq / (double)FT2_QUICKRAMP_SAMPLES); for (int32_t bpm = MIN_BPM; bpm <= MAX_BPM; bpm++) { @@ -2797,12 +2797,6 @@ bool setupReplayer(void) audio.linearPeriodsFlag = true; note2Period = linearPeriods; - if (!calcWindowedSincTables()) - { - showErrorMsgBox("Not enough memory!"); - return false; - } - calcPanningTable(); setPos(0, 0, true); diff --git a/src/ft2_replayer.h b/src/ft2_replayer.h @@ -217,9 +217,9 @@ typedef struct sample_t int32_t length, loopStart, loopLength; // fix for resampling interpolation taps - int8_t leftEdgeTapSamples8[SINC_TAPS+SINC_LEFT_TAPS]; - int16_t leftEdgeTapSamples16[SINC_TAPS+SINC_LEFT_TAPS]; - int16_t fixedSmp[SINC_RIGHT_TAPS]; + int8_t leftEdgeTapSamples8[32]; + int16_t leftEdgeTapSamples16[32]; + int16_t fixedSmp[32]; int32_t fixedPos; } sample_t; @@ -328,7 +328,7 @@ void conv16BitSample(int8_t *p, int32_t length, bool stereo); // changes sample void delta2Samp(int8_t *p, int32_t length, uint8_t smpFlags); void samp2Delta(int8_t *p, int32_t length, uint8_t smpFlags); void setPatternLen(uint16_t pattNum, int16_t numRows); -void setFrequencyTable(bool linearPeriodsFlag); +void setLinearPeriods(bool linearPeriodsFlag); void tickReplayer(void); // periodically called from audio callback void resetChannels(void); bool patternEmpty(uint16_t pattNum); diff --git a/src/ft2_sample_ed.c b/src/ft2_sample_ed.c @@ -260,25 +260,25 @@ void fixSample(sample_t *s) */ if (sample16Bit) { - for (int32_t i = 0; i < SINC_LEFT_TAPS; i++) - ptr16[i-SINC_LEFT_TAPS] = ptr16[0]; + for (int32_t i = 0; i < SINC_MAX_LEFT_TAPS; i++) + ptr16[i-SINC_MAX_LEFT_TAPS] = ptr16[0]; } else { - for (int32_t i = 0; i < SINC_LEFT_TAPS; i++) - s->dataPtr[i-SINC_LEFT_TAPS] = s->dataPtr[0]; + for (int32_t i = 0; i < SINC_MAX_LEFT_TAPS; i++) + s->dataPtr[i-SINC_MAX_LEFT_TAPS] = s->dataPtr[0]; } if (loopType == LOOP_OFF) // no loop { if (sample16Bit) { - for (int32_t i = 0; i < SINC_RIGHT_TAPS; i++) + for (int32_t i = 0; i < SINC_MAX_RIGHT_TAPS; i++) ptr16[length+i] = ptr16[length-1]; } else { - for (int32_t i = 0; i < SINC_RIGHT_TAPS; i++) + for (int32_t i = 0; i < SINC_MAX_RIGHT_TAPS; i++) s->dataPtr[length+i] = s->dataPtr[length-1]; } @@ -294,16 +294,16 @@ void fixSample(sample_t *s) { if (sample16Bit) { - // left edge (we need SINC_TAPS amount of taps starting from the center tap) - for (int32_t i = -SINC_LEFT_TAPS; i < SINC_TAPS; i++) + // left edge (we need SINC_MAX_TAPS amount of taps starting from the center tap) + for (int32_t i = -SINC_MAX_LEFT_TAPS; i < SINC_MAX_TAPS; i++) { pos = loopStart + myMod(i, loopLength); - s->leftEdgeTapSamples16[SINC_LEFT_TAPS+i] = ptr16[pos]; + s->leftEdgeTapSamples16[SINC_MAX_LEFT_TAPS+i] = ptr16[pos]; } // right edge (change actual sample data since data after loop is never used) pos = loopStart; - for (int32_t i = 0; i < SINC_RIGHT_TAPS; i++) + for (int32_t i = 0; i < SINC_MAX_RIGHT_TAPS; i++) { s->fixedSmp[i] = ptr16[loopEnd+i]; ptr16[loopEnd+i] = ptr16[pos]; @@ -314,16 +314,16 @@ void fixSample(sample_t *s) } else // 8-bit { - // left edge (we need SINC_TAPS amount of taps starting from the center tap) - for (int32_t i = -SINC_LEFT_TAPS; i < SINC_TAPS; i++) + // left edge (we need SINC_MAX_TAPS amount of taps starting from the center tap) + for (int32_t i = -SINC_MAX_LEFT_TAPS; i < SINC_MAX_TAPS; i++) { pos = loopStart + myMod(i, loopLength); - s->leftEdgeTapSamples8[SINC_LEFT_TAPS+i] = s->dataPtr[pos]; + s->leftEdgeTapSamples8[SINC_MAX_LEFT_TAPS+i] = s->dataPtr[pos]; } // right edge (change actual sample data since data after loop is never used) pos = loopStart; - for (int32_t i = 0; i < SINC_RIGHT_TAPS; i++) + for (int32_t i = 0; i < SINC_MAX_RIGHT_TAPS; i++) { s->fixedSmp[i] = s->dataPtr[loopEnd+i]; s->dataPtr[loopEnd+i] = s->dataPtr[pos]; @@ -337,10 +337,10 @@ void fixSample(sample_t *s) { if (sample16Bit) { - // left edge (positive taps, we need SINC_TAPS amount of taps starting from the center tap) + // left edge (positive taps, we need SINC_MAX_TAPS amount of taps starting from the center tap) pos = loopStart; backwards = false; - for (int32_t i = 0; i < SINC_TAPS; i++) + for (int32_t i = 0; i < SINC_MAX_TAPS; i++) { if (backwards) { @@ -356,7 +356,7 @@ void fixSample(sample_t *s) backwards = true; } - s->leftEdgeTapSamples16[SINC_LEFT_TAPS+i] = ptr16[pos]; + s->leftEdgeTapSamples16[SINC_MAX_LEFT_TAPS+i] = ptr16[pos]; if (backwards) pos--; @@ -365,13 +365,13 @@ void fixSample(sample_t *s) } // left edge (negative taps) - for (int32_t i = 0; i < SINC_LEFT_TAPS; i++) - s->leftEdgeTapSamples16[(SINC_LEFT_TAPS-1)-i] = s->leftEdgeTapSamples16[SINC_LEFT_TAPS+1+i]; + for (int32_t i = 0; i < SINC_MAX_LEFT_TAPS; i++) + s->leftEdgeTapSamples16[(SINC_MAX_LEFT_TAPS-1)-i] = s->leftEdgeTapSamples16[SINC_MAX_LEFT_TAPS+1+i]; // right edge (change actual sample data since data after loop is never used) pos = loopEnd-1; backwards = true; - for (int32_t i = 0; i < SINC_RIGHT_TAPS; i++) + for (int32_t i = 0; i < SINC_MAX_RIGHT_TAPS; i++) { if (backwards) { @@ -398,10 +398,10 @@ void fixSample(sample_t *s) } else // 8-bit { - // left edge (positive taps, we need SINC_TAPS amount of taps starting from the center tap) + // left edge (positive taps, we need SINC_MAX_TAPS amount of taps starting from the center tap) pos = loopStart; backwards = false; - for (int32_t i = 0; i < SINC_TAPS; i++) + for (int32_t i = 0; i < SINC_MAX_TAPS; i++) { if (backwards) { @@ -417,7 +417,7 @@ void fixSample(sample_t *s) backwards = true; } - s->leftEdgeTapSamples8[SINC_LEFT_TAPS+i] = s->dataPtr[pos]; + s->leftEdgeTapSamples8[SINC_MAX_LEFT_TAPS+i] = s->dataPtr[pos]; if (backwards) pos--; @@ -426,13 +426,13 @@ void fixSample(sample_t *s) } // left edge (negative taps) - for (int32_t i = 0; i < SINC_LEFT_TAPS; i++) - s->leftEdgeTapSamples8[(SINC_LEFT_TAPS-1)-i] = s->leftEdgeTapSamples8[SINC_LEFT_TAPS+1+i]; + for (int32_t i = 0; i < SINC_MAX_LEFT_TAPS; i++) + s->leftEdgeTapSamples8[(SINC_MAX_LEFT_TAPS-1)-i] = s->leftEdgeTapSamples8[SINC_MAX_LEFT_TAPS+1+i]; // right edge (change actual sample data since data after loop is never used) pos = loopEnd-1; backwards = true; - for (int32_t i = 0; i < SINC_RIGHT_TAPS; i++) + for (int32_t i = 0; i < SINC_MAX_RIGHT_TAPS; i++) { if (backwards) { @@ -470,13 +470,13 @@ void unfixSample(sample_t *s) if (s->flags & SAMPLE_16BIT) { int16_t *ptr16 = (int16_t *)s->dataPtr + s->fixedPos; - for (int32_t i = 0; i < SINC_RIGHT_TAPS; i++) + for (int32_t i = 0; i < SINC_MAX_RIGHT_TAPS; i++) ptr16[i] = s->fixedSmp[i]; } else // 8-bit { int8_t *ptr8 = s->dataPtr + s->fixedPos; - for (int32_t i = 0; i < SINC_RIGHT_TAPS; i++) + for (int32_t i = 0; i < SINC_MAX_RIGHT_TAPS; i++) ptr8[i] = (int8_t)s->fixedSmp[i]; } @@ -818,7 +818,7 @@ static int32_t getScaledSample(sample_t *s, int32_t index) // for sample data vi int16_t *ptr16 = (int16_t *)s->dataPtr; // don't read fixed mixer interpolation samples, read the prestine ones instead - if (index >= s->fixedPos && index < s->fixedPos+SINC_RIGHT_TAPS && s->length > loopEnd && s->isFixed) + if (index >= s->fixedPos && index < s->fixedPos+SINC_MAX_RIGHT_TAPS && s->length > loopEnd && s->isFixed) tmp32 = s->fixedSmp[index-s->fixedPos]; else tmp32 = ptr16[index]; @@ -827,7 +827,7 @@ static int32_t getScaledSample(sample_t *s, int32_t index) // for sample data vi } else // 8-bit { - if (index >= s->fixedPos && index < s->fixedPos+SINC_RIGHT_TAPS && s->length > loopEnd && s->isFixed) + if (index >= s->fixedPos && index < s->fixedPos+SINC_MAX_RIGHT_TAPS && s->length > loopEnd && s->isFixed) tmp32 = s->fixedSmp[index-s->fixedPos]; else tmp32 = s->dataPtr[index]; @@ -1095,7 +1095,7 @@ static void getMinMax8(const void *p, uint32_t scanLen, int8_t *min8, int8_t *ma } } -// for scanning sample data peak where loopEnd+SINC_RIGHT_TAPS is within scan range (fixed interpolation tap samples) +// for scanning sample data peak where loopEnd+SINC_MAX_RIGHT_TAPS is within scan range (fixed interpolation tap samples) static void getSpecialMinMax16(sample_t *s, int32_t index, int32_t scanEnd, int16_t *min16, int16_t *max16) { int16_t minVal2, maxVal2; @@ -1114,7 +1114,7 @@ static void getSpecialMinMax16(sample_t *s, int32_t index, int32_t scanEnd, int1 // read fixed samples (we are guaranteed to be within the fixed samples here) const int32_t tapIndex = index-s->fixedPos; - const int32_t scanLength = SINC_RIGHT_TAPS-tapIndex; + const int32_t scanLength = SINC_MAX_RIGHT_TAPS-tapIndex; int32_t tmpScanEnd = index+scanLength; if (tmpScanEnd > scanEnd) @@ -1140,7 +1140,7 @@ static void getSpecialMinMax16(sample_t *s, int32_t index, int32_t scanEnd, int1 *max16 = maxVal; } -// for scanning sample data peak where loopEnd+SINC_RIGHT_TAPS is within scan range (fixed interpolation tap samples) +// for scanning sample data peak where loopEnd+SINC_MAX_RIGHT_TAPS is within scan range (fixed interpolation tap samples) static void getSpecialMinMax8(sample_t *s, int32_t index, int32_t scanEnd, int8_t *min8, int8_t *max8) { int8_t minVal2, maxVal2; @@ -1159,7 +1159,7 @@ static void getSpecialMinMax8(sample_t *s, int32_t index, int32_t scanEnd, int8_ // read fixed samples (we are guaranteed to be within the fixed samples here) const int32_t tapIndex = index-s->fixedPos; - const int32_t scanLength = SINC_RIGHT_TAPS-tapIndex; + const int32_t scanLength = SINC_MAX_RIGHT_TAPS-tapIndex; int32_t tmpScanEnd = index+scanLength; if (tmpScanEnd > scanEnd) @@ -1204,7 +1204,7 @@ static void getSampleDataPeak(sample_t *s, int32_t index, int32_t length, int16_ /* If the scan area is including the fixed samples (for branchless mixer interpolation), ** do a special procedure to scan the original non-touched samples when needed. */ - const bool insideRange = index >= s->fixedPos && index < s->fixedPos+SINC_RIGHT_TAPS; + const bool insideRange = index >= s->fixedPos && index < s->fixedPos+SINC_MAX_RIGHT_TAPS; if (insideRange || (index < s->fixedPos && scanEnd >= s->fixedPos)) { if (s->flags & SAMPLE_16BIT) diff --git a/src/ft2_sample_saver.c b/src/ft2_sample_saver.c @@ -59,14 +59,14 @@ static void fileRestoreFixedSampleData(UNICHAR *filenameU, uint32_t sampleDataOf int32_t sampleFixPos = s->fixedPos; int32_t sampleFixOffset = 0; - int32_t samplesToWrite = SINC_RIGHT_TAPS; + int32_t samplesToWrite = SINC_MAX_RIGHT_TAPS; if (saveRangeFlag) { const int32_t markStart = getSampleRangeStart(); const int32_t markEnd = getSampleRangeEnd(); - if (markStart > sampleFixPos+SINC_RIGHT_TAPS || markEnd < sampleFixPos) + if (markStart > sampleFixPos+SINC_MAX_RIGHT_TAPS || markEnd < sampleFixPos) return; // nothing to do here if (markStart > sampleFixPos) @@ -80,7 +80,7 @@ static void fileRestoreFixedSampleData(UNICHAR *filenameU, uint32_t sampleDataOf if (sampleFixPos + samplesToWrite > markEnd) samplesToWrite = markEnd - sampleFixPos; - if (samplesToWrite < 0 || samplesToWrite > SINC_RIGHT_TAPS || sampleFixPos < 0 || sampleFixOffset < 0 || sampleFixOffset >= SINC_RIGHT_TAPS) + if (samplesToWrite < 0 || samplesToWrite > SINC_MAX_RIGHT_TAPS || sampleFixPos < 0 || sampleFixOffset < 0 || sampleFixOffset >= SINC_MAX_RIGHT_TAPS) return; } diff --git a/src/ft2_scrollbars.c b/src/ft2_scrollbars.c @@ -83,8 +83,8 @@ scrollBar_t scrollBars[NUM_SCROLLBARS] = //x, y, w, h, type, style funcOnDown { 365, 29, 18, 43, SCROLLBAR_VERTICAL, SCROLLBAR_THUMB_FLAT, sbAudOutputSetPos }, { 365, 116, 18, 21, SCROLLBAR_VERTICAL, SCROLLBAR_THUMB_FLAT, sbAudInputSetPos }, - { 529, 132, 79, 13, SCROLLBAR_HORIZONTAL, SCROLLBAR_THUMB_NOFLAT, sbAmp }, - { 529, 158, 79, 13, SCROLLBAR_HORIZONTAL, SCROLLBAR_THUMB_NOFLAT, sbMasterVol }, + { 529, 117, 79, 13, SCROLLBAR_HORIZONTAL, SCROLLBAR_THUMB_NOFLAT, sbAmp }, + { 529, 143, 79, 13, SCROLLBAR_HORIZONTAL, SCROLLBAR_THUMB_NOFLAT, sbMasterVol }, // ------ CONFIG LAYOUT SCROLLBARS ------ //x, y, w, h, type, style funcOnDown diff --git a/src/ft2_scrollbars.h b/src/ft2_scrollbars.h @@ -30,7 +30,7 @@ enum // SCROLLBARS SB_INST_EXT_MIDI_PRG, SB_INST_EXT_MIDI_BEND, - // Config I/O devices + // Config Audio SB_AUDIO_OUTPUT_SCROLL, SB_AUDIO_INPUT_SCROLL, SB_AMP_SCROLL, @@ -46,7 +46,7 @@ enum // SCROLLBARS SB_MIDI_SENS, #ifdef HAS_MIDI - // Config Midi + // Config MIDI input SB_MIDI_INPUT_SCROLL, #endif diff --git a/src/ft2_tables.c b/src/ft2_tables.c @@ -789,7 +789,7 @@ const uint8_t defConfigData[CONFIG_FILE_SIZE] = 0x2D,0x88,0x18,0x00,0x66,0x88,0x18,0x00,0x00,0x01,0x00,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x01,0x01,0x10,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x64,0x00,0x01,0x01, - 0x01,0x01,0x12,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x01,0x92,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, @@ -809,7 +809,7 @@ const uint8_t defConfigData[CONFIG_FILE_SIZE] = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0A,0x00,0x01,0x60,0x00,0x05,0x56,0x6F,0x67, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x01,0x60,0x00,0x05,0x56,0x6F,0x67, 0x75,0x65,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x02,0x16,0x05,0x4D,0x72,0x2E,0x20,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x17,0x04,0x4C,0x6F,0x6F,0x74,0x00,0x00,0x00, diff --git a/src/helpdata/FT2.HLP b/src/helpdata/FT2.HLP @@ -134,7 +134,7 @@ Ex.: C-1 037 Syntax: (1 or 2) + Speed Portamento is used to slide the sample pitch up or down. This is -done using the period value. If Amiga frequency table is used, the +done using the period value. If Amiga frequency slides is used, the sliding will be non-linear (the speed depends on the frequency). @X040@C001Tone portamento @@ -689,7 +689,7 @@ point in changing it on the synthesizer, do it in FT2 instead. synthesizer can be pitchbended. FT2 uses this value for transmitting the portamento up/down and tone-portamento commands correctly. ->The MIDI-pitchbend works correctly only with linear frequency table. +>The MIDI-pitchbend works correctly only with linear frequency slides. @X020@C001Sample Editor: > @@ -798,16 +798,16 @@ This settings only affects WAV export, and not tracker playback. If the auto save is on, FT2 will update the configuration file when you exit the program. -@X020@C001Configuration, I/O devices: +@X020@C001Configuration, Audio: > >@X040@C001Interpolation: >@X060@C002 Selects what type of resampling interpolation to use. -"None" uses no interpolation (nearest neighbor), which will result in -aliasing (noise) in the sound. "Linear" is what real FT2 uses, which is a -mediocre interpolation type. "Windowed-sinc" is the recommended setting -for the best audio quality, although it may sometimes sound too filtered -on low-quality samples (f.ex. Amiga MODs). +"Disabled" uses no interpolation (nearest neighbor), which will result in +aliasing (noise) in the sound. "Linear" is what real FT2 uses, +which is a mediocre interpolation type. "Sinc" is the recommended +setting for the best audio quality, although it may sometimes sound too filtered +and timbre-changing on low-quality samples. >@X040@C001Volume ramping: >@X060@C002 @@ -820,11 +820,11 @@ clone only. Amplifies the volume when mixing. If you set this one too high, you'll get distortion. 32X equals full amplitude for one channel. ->@X040@C001Frequency table: +>@X040@C001Frequency slides: >@X060@C002 -The linear frequency table makes all pitch bends run in constant -speed, independent of the current frequency. If you switch this -one, on a finished song, it might sound strange if the sound uses +Linear mode makes all pitch slides run in constant speed, +independent of the current frequency. If you switch this +one, on a finished song, it might sound strange if the song uses portamentoes. @X020@C001Configuration, Layout: diff --git a/src/helpdata/ft2_help_data.h b/src/helpdata/ft2_help_data.h @@ -3,9 +3,9 @@ #include <stdint.h> -#define HELP_DATA_LEN 27887 +#define HELP_DATA_LEN 27865 -const uint8_t helpData[27887] = +const uint8_t helpData[27865] = { 0x4C,0x3B,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, @@ -274,2007 +274,1822 @@ const uint8_t helpData[27887] = 0x6F,0x20,0x73,0x6C,0x69,0x64,0x65,0x20,0x74,0x68,0x65,0x20, 0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x70,0x69,0x74,0x63,0x68, 0x20,0x75,0x70,0x20,0x6F,0x72,0x20,0x64,0x6F,0x77,0x6E,0x2E, - 0x20,0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x42,0x64,0x6F,0x6E, + 0x20,0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x43,0x64,0x6F,0x6E, 0x65,0x20,0x75,0x73,0x69,0x6E,0x67,0x20,0x74,0x68,0x65,0x20, 0x70,0x65,0x72,0x69,0x6F,0x64,0x20,0x76,0x61,0x6C,0x75,0x65, 0x2E,0x20,0x49,0x66,0x20,0x41,0x6D,0x69,0x67,0x61,0x20,0x66, - 0x72,0x65,0x71,0x75,0x65,0x6E,0x63,0x79,0x20,0x74,0x61,0x62, - 0x6C,0x65,0x20,0x69,0x73,0x20,0x75,0x73,0x65,0x64,0x2C,0x20, - 0x74,0x68,0x65,0x40,0x73,0x6C,0x69,0x64,0x69,0x6E,0x67,0x20, - 0x77,0x69,0x6C,0x6C,0x20,0x62,0x65,0x20,0x6E,0x6F,0x6E,0x2D, - 0x6C,0x69,0x6E,0x65,0x61,0x72,0x20,0x28,0x74,0x68,0x65,0x20, - 0x73,0x70,0x65,0x65,0x64,0x20,0x64,0x65,0x70,0x65,0x6E,0x64, - 0x73,0x20,0x6F,0x6E,0x20,0x74,0x68,0x65,0x20,0x66,0x72,0x65, - 0x71,0x75,0x65,0x6E,0x63,0x79,0x29,0x2E,0x00,0x19,0x40,0x58, - 0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x54,0x6F,0x6E,0x65, - 0x20,0x70,0x6F,0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,0x0B, - 0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x11, - 0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x33,0x20,0x2B,0x20, - 0x53,0x70,0x65,0x65,0x64,0x00,0x40,0x54,0x68,0x69,0x73,0x20, - 0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x69,0x73,0x20,0x75, + 0x72,0x65,0x71,0x75,0x65,0x6E,0x63,0x79,0x20,0x73,0x6C,0x69, + 0x64,0x65,0x73,0x20,0x69,0x73,0x20,0x75,0x73,0x65,0x64,0x2C, + 0x20,0x74,0x68,0x65,0x40,0x73,0x6C,0x69,0x64,0x69,0x6E,0x67, + 0x20,0x77,0x69,0x6C,0x6C,0x20,0x62,0x65,0x20,0x6E,0x6F,0x6E, + 0x2D,0x6C,0x69,0x6E,0x65,0x61,0x72,0x20,0x28,0x74,0x68,0x65, + 0x20,0x73,0x70,0x65,0x65,0x64,0x20,0x64,0x65,0x70,0x65,0x6E, + 0x64,0x73,0x20,0x6F,0x6E,0x20,0x74,0x68,0x65,0x20,0x66,0x72, + 0x65,0x71,0x75,0x65,0x6E,0x63,0x79,0x29,0x2E,0x00,0x19,0x40, + 0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x54,0x6F,0x6E, + 0x65,0x20,0x70,0x6F,0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F, + 0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32, + 0x11,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x33,0x20,0x2B, + 0x20,0x53,0x70,0x65,0x65,0x64,0x00,0x40,0x54,0x68,0x69,0x73, + 0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x69,0x73,0x20, + 0x75,0x73,0x65,0x64,0x20,0x74,0x6F,0x67,0x65,0x74,0x68,0x65, + 0x72,0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x20,0x6E,0x6F,0x74, + 0x65,0x2C,0x20,0x61,0x6E,0x64,0x20,0x77,0x69,0x6C,0x6C,0x20, + 0x73,0x6C,0x69,0x64,0x65,0x20,0x74,0x6F,0x20,0x69,0x74,0x73, + 0x43,0x66,0x72,0x65,0x71,0x75,0x65,0x6E,0x63,0x79,0x2E,0x20, + 0x49,0x66,0x20,0x67,0x6C,0x69,0x73,0x73,0x61,0x6E,0x64,0x6F, + 0x20,0x28,0x45,0x33,0x29,0x20,0x69,0x73,0x20,0x75,0x73,0x65, + 0x64,0x2C,0x20,0x74,0x68,0x65,0x20,0x66,0x72,0x65,0x71,0x75, + 0x65,0x6E,0x63,0x79,0x20,0x77,0x69,0x6C,0x6C,0x20,0x62,0x65, + 0x20,0x72,0x6F,0x75,0x6E,0x64,0x65,0x64,0x18,0x74,0x6F,0x20, + 0x74,0x68,0x65,0x20,0x6E,0x65,0x61,0x72,0x65,0x73,0x74,0x20, + 0x68,0x61,0x6C,0x66,0x74,0x6F,0x6E,0x65,0x2E,0x00,0x11,0x40, + 0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x56,0x69,0x62, + 0x72,0x61,0x74,0x6F,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40, + 0x43,0x30,0x30,0x32,0x18,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A, + 0x20,0x34,0x20,0x2B,0x20,0x52,0x61,0x74,0x65,0x20,0x2B,0x20, + 0x44,0x65,0x70,0x74,0x68,0x00,0x3E,0x41,0x64,0x64,0x73,0x20, + 0x76,0x69,0x62,0x72,0x61,0x74,0x6F,0x20,0x74,0x6F,0x20,0x74, + 0x68,0x65,0x20,0x63,0x68,0x61,0x6E,0x6E,0x65,0x6C,0x20,0x77, + 0x69,0x74,0x68,0x20,0x61,0x20,0x72,0x61,0x74,0x65,0x20,0x61, + 0x6E,0x64,0x20,0x73,0x70,0x65,0x65,0x64,0x2E,0x20,0x53,0x65, + 0x74,0x20,0x76,0x69,0x62,0x72,0x61,0x74,0x6F,0x3C,0x63,0x6F, + 0x6E,0x74,0x72,0x6F,0x6C,0x20,0x28,0x45,0x34,0x29,0x20,0x63, + 0x61,0x6E,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x74, + 0x6F,0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x20,0x74,0x68,0x65, + 0x20,0x76,0x69,0x62,0x72,0x61,0x74,0x6F,0x20,0x77,0x61,0x76, + 0x65,0x66,0x6F,0x72,0x6D,0x20,0x28,0x73,0x65,0x65,0x07,0x62, + 0x65,0x6C,0x6F,0x77,0x29,0x2E,0x00,0x28,0x40,0x58,0x30,0x34, + 0x30,0x40,0x43,0x30,0x30,0x31,0x54,0x6F,0x6E,0x65,0x20,0x70, + 0x6F,0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,0x20,0x2B,0x20, + 0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C,0x69,0x64,0x65, + 0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32, + 0x11,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x35,0x20,0x2B, + 0x20,0x53,0x70,0x65,0x65,0x64,0x00,0x40,0x54,0x68,0x69,0x73, + 0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x77,0x69,0x6C, + 0x6C,0x20,0x65,0x78,0x65,0x63,0x75,0x74,0x65,0x20,0x62,0x6F, + 0x74,0x68,0x20,0x74,0x6F,0x6E,0x65,0x20,0x70,0x6F,0x72,0x74, + 0x61,0x6D,0x65,0x6E,0x74,0x6F,0x20,0x61,0x6E,0x64,0x20,0x76, + 0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C,0x69,0x64,0x65,0x2E, + 0x27,0x54,0x68,0x65,0x20,0x73,0x70,0x65,0x65,0x64,0x20,0x69, + 0x73,0x20,0x75,0x73,0x65,0x64,0x20,0x66,0x6F,0x72,0x20,0x74, + 0x68,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C, + 0x69,0x64,0x65,0x2E,0x00,0x20,0x40,0x58,0x30,0x34,0x30,0x40, + 0x43,0x30,0x30,0x31,0x56,0x69,0x62,0x72,0x61,0x74,0x6F,0x20, + 0x2B,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C,0x69, + 0x64,0x65,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30, + 0x30,0x32,0x11,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x36, + 0x20,0x2B,0x20,0x53,0x70,0x65,0x65,0x64,0x00,0x3C,0x54,0x68, + 0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x77, + 0x69,0x6C,0x6C,0x20,0x65,0x78,0x65,0x63,0x75,0x74,0x65,0x20, + 0x62,0x6F,0x74,0x68,0x20,0x76,0x69,0x62,0x72,0x61,0x74,0x6F, + 0x20,0x61,0x6E,0x64,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20, + 0x73,0x6C,0x69,0x64,0x65,0x2E,0x20,0x54,0x68,0x65,0x23,0x73, + 0x70,0x65,0x65,0x64,0x20,0x69,0x73,0x20,0x75,0x73,0x65,0x64, + 0x20,0x66,0x6F,0x72,0x20,0x74,0x68,0x65,0x20,0x76,0x6F,0x6C, + 0x75,0x6D,0x65,0x20,0x73,0x6C,0x69,0x64,0x65,0x2E,0x00,0x11, + 0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x54,0x72, + 0x65,0x6D,0x6F,0x6C,0x6F,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30, + 0x40,0x43,0x30,0x30,0x32,0x18,0x53,0x79,0x6E,0x74,0x61,0x78, + 0x3A,0x20,0x37,0x20,0x2B,0x20,0x52,0x61,0x74,0x65,0x20,0x2B, + 0x20,0x44,0x65,0x70,0x74,0x68,0x00,0x41,0x54,0x72,0x65,0x6D, + 0x6F,0x6C,0x6F,0x20,0x61,0x64,0x64,0x73,0x20,0x76,0x69,0x62, + 0x72,0x61,0x74,0x6F,0x20,0x74,0x6F,0x20,0x74,0x68,0x65,0x20, + 0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x76,0x6F,0x6C,0x75, + 0x6D,0x65,0x2E,0x20,0x54,0x68,0x65,0x20,0x73,0x79,0x6E,0x74, + 0x61,0x78,0x20,0x69,0x73,0x20,0x65,0x78,0x61,0x63,0x74,0x6C, + 0x79,0x1B,0x61,0x73,0x20,0x66,0x6F,0x72,0x20,0x74,0x68,0x65, + 0x20,0x76,0x69,0x62,0x72,0x61,0x74,0x6F,0x20,0x63,0x6F,0x6D, + 0x6D,0x61,0x6E,0x64,0x2E,0x00,0x1E,0x40,0x58,0x30,0x34,0x30, + 0x40,0x43,0x30,0x30,0x31,0x53,0x65,0x74,0x20,0x70,0x61,0x6E, + 0x6E,0x69,0x6E,0x67,0x20,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F, + 0x6E,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30, + 0x32,0x14,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x38,0x20, + 0x2B,0x20,0x50,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x00,0x3E, + 0x53,0x65,0x74,0x73,0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x6E, + 0x6E,0x69,0x6E,0x67,0x20,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F, + 0x6E,0x20,0x66,0x6F,0x72,0x20,0x74,0x68,0x65,0x20,0x63,0x68, + 0x61,0x6E,0x6E,0x65,0x6C,0x2E,0x20,0x24,0x30,0x30,0x20,0x69, + 0x73,0x20,0x74,0x68,0x65,0x20,0x6C,0x65,0x66,0x74,0x6D,0x6F, + 0x73,0x74,0x3F,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x20, + 0x61,0x6E,0x64,0x20,0x24,0x46,0x46,0x20,0x74,0x68,0x65,0x20, + 0x72,0x69,0x67,0x68,0x74,0x6D,0x6F,0x73,0x74,0x2E,0x20,0x4E, + 0x6F,0x74,0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x73,0x6F,0x6D, + 0x65,0x20,0x73,0x6F,0x75,0x6E,0x64,0x20,0x63,0x61,0x72,0x64, + 0x73,0x20,0x28,0x65,0x78,0x2E,0x30,0x47,0x55,0x53,0x29,0x20, + 0x63,0x61,0x6E,0x27,0x74,0x20,0x75,0x73,0x65,0x20,0x61,0x73, + 0x20,0x6D,0x61,0x6E,0x79,0x20,0x61,0x73,0x20,0x32,0x35,0x36, + 0x20,0x70,0x61,0x6E,0x6E,0x69,0x6E,0x67,0x20,0x70,0x6F,0x73, + 0x69,0x74,0x69,0x6F,0x6E,0x73,0x2E,0x00,0x17,0x40,0x58,0x30, + 0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x61,0x6D,0x70,0x6C, + 0x65,0x20,0x6F,0x66,0x66,0x73,0x65,0x74,0x0B,0x3E,0x40,0x58, + 0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x12,0x53,0x79,0x6E, + 0x74,0x61,0x78,0x3A,0x20,0x39,0x20,0x2B,0x20,0x4F,0x66,0x66, + 0x73,0x65,0x74,0x00,0x41,0x54,0x68,0x69,0x73,0x20,0x63,0x6F, + 0x6D,0x6D,0x61,0x6E,0x64,0x20,0x73,0x68,0x6F,0x75,0x6C,0x64, + 0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x74,0x6F,0x67, + 0x65,0x74,0x68,0x65,0x72,0x20,0x77,0x69,0x74,0x68,0x20,0x61, + 0x20,0x6E,0x6F,0x74,0x65,0x2E,0x20,0x54,0x68,0x65,0x20,0x73, + 0x61,0x6D,0x70,0x6C,0x65,0x20,0x77,0x69,0x6C,0x6C,0x2D,0x62, + 0x65,0x20,0x70,0x6C,0x61,0x79,0x65,0x64,0x20,0x66,0x72,0x6F, + 0x6D,0x20,0x28,0x4F,0x66,0x66,0x73,0x65,0x74,0x2A,0x24,0x31, + 0x30,0x30,0x29,0x20,0x69,0x6E,0x73,0x74,0x65,0x61,0x64,0x20, + 0x6F,0x66,0x20,0x7A,0x65,0x72,0x6F,0x2E,0x00,0x16,0x40,0x58, + 0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x56,0x6F,0x6C,0x75, + 0x6D,0x65,0x20,0x73,0x6C,0x69,0x64,0x65,0x0B,0x3E,0x40,0x58, + 0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x21,0x53,0x79,0x6E, + 0x74,0x61,0x78,0x3A,0x20,0x41,0x20,0x2B,0x20,0x55,0x70,0x20, + 0x73,0x70,0x65,0x65,0x64,0x20,0x2B,0x20,0x44,0x6F,0x77,0x6E, + 0x20,0x73,0x70,0x65,0x65,0x64,0x00,0x3D,0x53,0x6C,0x69,0x64, + 0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72,0x65, + 0x6E,0x74,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x75,0x70, + 0x20,0x6F,0x72,0x20,0x64,0x6F,0x77,0x6E,0x2E,0x20,0x45,0x69, + 0x74,0x68,0x65,0x72,0x20,0x75,0x70,0x20,0x73,0x70,0x65,0x65, + 0x64,0x20,0x6F,0x72,0x20,0x64,0x6F,0x77,0x6E,0x15,0x73,0x70, + 0x65,0x65,0x64,0x20,0x73,0x68,0x6F,0x75,0x6C,0x64,0x20,0x62, + 0x65,0x20,0x7A,0x65,0x72,0x6F,0x2E,0x00,0x17,0x40,0x58,0x30, + 0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x50,0x6F,0x73,0x69,0x74, + 0x69,0x6F,0x6E,0x20,0x6A,0x75,0x6D,0x70,0x0B,0x3E,0x40,0x58, + 0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x14,0x53,0x79,0x6E, + 0x74,0x61,0x78,0x3A,0x20,0x42,0x20,0x2B,0x20,0x50,0x6F,0x73, + 0x69,0x74,0x69,0x6F,0x6E,0x00,0x41,0x54,0x68,0x69,0x73,0x20, + 0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x77,0x69,0x6C,0x6C, + 0x20,0x6A,0x75,0x6D,0x70,0x20,0x74,0x6F,0x20,0x74,0x68,0x65, + 0x20,0x73,0x65,0x6C,0x65,0x63,0x74,0x65,0x64,0x20,0x73,0x6F, + 0x6E,0x67,0x20,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x20, + 0x61,0x6E,0x64,0x20,0x70,0x6C,0x61,0x79,0x20,0x74,0x68,0x65, + 0x1B,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x66,0x72,0x6F, + 0x6D,0x20,0x74,0x68,0x65,0x20,0x62,0x65,0x67,0x69,0x6E,0x6E, + 0x69,0x6E,0x67,0x2E,0x00,0x14,0x40,0x58,0x30,0x34,0x30,0x40, + 0x43,0x30,0x30,0x31,0x53,0x65,0x74,0x20,0x76,0x6F,0x6C,0x75, + 0x6D,0x65,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30, + 0x30,0x32,0x12,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x43, + 0x20,0x2B,0x20,0x56,0x6F,0x6C,0x75,0x6D,0x65,0x00,0x3E,0x53, + 0x65,0x74,0x73,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72, + 0x65,0x6E,0x74,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x2E,0x20, + 0x54,0x68,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73, + 0x68,0x6F,0x75,0x6C,0x64,0x20,0x6E,0x6F,0x74,0x20,0x62,0x65, + 0x20,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x20,0x74,0x68,0x61, + 0x6E,0x04,0x24,0x34,0x30,0x2E,0x00,0x17,0x40,0x58,0x30,0x34, + 0x30,0x40,0x43,0x30,0x30,0x31,0x50,0x61,0x74,0x74,0x65,0x72, + 0x6E,0x20,0x62,0x72,0x65,0x61,0x6B,0x0B,0x3E,0x40,0x58,0x30, + 0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x1C,0x53,0x79,0x6E,0x74, + 0x61,0x78,0x3A,0x20,0x44,0x20,0x2B,0x20,0x50,0x61,0x74,0x74, + 0x65,0x72,0x6E,0x2D,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E, + 0x00,0x3C,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61, + 0x6E,0x64,0x20,0x77,0x69,0x6C,0x6C,0x20,0x6A,0x75,0x6D,0x70, + 0x20,0x74,0x6F,0x20,0x74,0x68,0x65,0x20,0x6E,0x65,0x78,0x74, + 0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x61,0x6E,0x64, + 0x20,0x70,0x6C,0x61,0x79,0x20,0x66,0x72,0x6F,0x6D,0x20,0x74, + 0x68,0x65,0x13,0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x65,0x64, + 0x20,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x2E,0x00,0x22, + 0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x65, + 0x74,0x20,0x66,0x69,0x6C,0x74,0x65,0x72,0x20,0x28,0x41,0x6D, + 0x69,0x67,0x61,0x20,0x6F,0x6E,0x6C,0x79,0x21,0x29,0x0B,0x3E, + 0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x13,0x53, + 0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x45,0x30,0x20,0x2B,0x20, + 0x53,0x74,0x61,0x74,0x75,0x73,0x00,0x38,0x55,0x73,0x65,0x20, + 0x45,0x30,0x30,0x20,0x61,0x6E,0x64,0x20,0x79,0x6F,0x75,0x72, + 0x20,0x74,0x75,0x6E,0x65,0x20,0x77,0x69,0x6C,0x6C,0x20,0x73, + 0x6F,0x75,0x6E,0x64,0x20,0x72,0x65,0x61,0x6C,0x6C,0x79,0x20, + 0x62,0x61,0x64,0x20,0x6F,0x6E,0x20,0x61,0x6E,0x20,0x41,0x6D, + 0x69,0x67,0x61,0x21,0x00,0x21,0x40,0x58,0x30,0x34,0x30,0x40, + 0x43,0x30,0x30,0x31,0x46,0x69,0x6E,0x65,0x20,0x70,0x6F,0x72, + 0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,0x20,0x75,0x70,0x2F,0x64, + 0x6F,0x77,0x6E,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43, + 0x30,0x30,0x32,0x19,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20, + 0x45,0x28,0x31,0x20,0x6F,0x72,0x20,0x32,0x29,0x20,0x2B,0x20, + 0x53,0x70,0x65,0x65,0x64,0x00,0x3F,0x54,0x68,0x69,0x73,0x20, + 0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x77,0x6F,0x72,0x6B, + 0x73,0x20,0x61,0x73,0x20,0x70,0x6F,0x72,0x74,0x61,0x6D,0x65, + 0x6E,0x74,0x6F,0x20,0x75,0x70,0x2F,0x64,0x6F,0x77,0x6E,0x2C, + 0x20,0x62,0x75,0x74,0x20,0x69,0x74,0x20,0x6F,0x6E,0x6C,0x79, + 0x20,0x73,0x6C,0x69,0x64,0x65,0x73,0x20,0x75,0x70,0x05,0x6F, + 0x6E,0x63,0x65,0x2E,0x00,0x1F,0x40,0x58,0x30,0x34,0x30,0x40, + 0x43,0x30,0x30,0x31,0x53,0x65,0x74,0x20,0x67,0x6C,0x69,0x73, + 0x73,0x61,0x6E,0x64,0x6F,0x20,0x63,0x6F,0x6E,0x74,0x72,0x6F, + 0x6C,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30, + 0x32,0x13,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x45,0x33, + 0x20,0x2B,0x20,0x53,0x74,0x61,0x74,0x75,0x73,0x00,0x41,0x49, + 0x66,0x20,0x53,0x74,0x61,0x74,0x75,0x73,0x20,0x69,0x73,0x20, + 0x3D,0x31,0x2C,0x20,0x74,0x68,0x65,0x20,0x66,0x72,0x65,0x71, + 0x75,0x65,0x6E,0x63,0x79,0x20,0x77,0x68,0x65,0x6E,0x20,0x75, + 0x73,0x69,0x6E,0x67,0x20,0x74,0x6F,0x6E,0x65,0x20,0x70,0x6F, + 0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,0x20,0x77,0x69,0x6C, + 0x6C,0x20,0x62,0x65,0x20,0x72,0x6F,0x75,0x6E,0x64,0x65,0x64, + 0x20,0x74,0x6F,0x20,0x74,0x68,0x65,0x20,0x6E,0x65,0x61,0x72, + 0x65,0x73,0x74,0x20,0x68,0x61,0x6C,0x66,0x74,0x6F,0x6E,0x65, + 0x2E,0x00,0x1D,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30, + 0x31,0x53,0x65,0x74,0x20,0x76,0x69,0x62,0x72,0x61,0x74,0x6F, + 0x20,0x63,0x6F,0x6E,0x74,0x72,0x6F,0x6C,0x0B,0x3E,0x40,0x58, + 0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x11,0x53,0x79,0x6E, + 0x74,0x61,0x78,0x3A,0x20,0x45,0x34,0x20,0x2B,0x20,0x54,0x79, + 0x70,0x65,0x00,0x2B,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D, + 0x6D,0x61,0x6E,0x64,0x20,0x63,0x6F,0x6E,0x74,0x72,0x6F,0x6C, + 0x73,0x20,0x74,0x68,0x65,0x20,0x76,0x69,0x62,0x72,0x61,0x74, + 0x6F,0x20,0x77,0x61,0x76,0x65,0x66,0x6F,0x72,0x6D,0x2E,0x00, + 0x33,0x54,0x79,0x70,0x65,0x3A,0x20,0x30,0x20,0x3D,0x20,0x53, + 0x69,0x6E,0x65,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x31,0x20, + 0x3D,0x20,0x52,0x61,0x6D,0x70,0x20,0x64,0x6F,0x77,0x6E,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x32,0x20,0x3D,0x20,0x53,0x71, + 0x75,0x61,0x72,0x65,0x00,0x43,0x49,0x66,0x20,0x79,0x6F,0x75, + 0x20,0x61,0x64,0x64,0x20,0x34,0x20,0x74,0x6F,0x20,0x74,0x68, + 0x65,0x20,0x74,0x79,0x70,0x65,0x2C,0x20,0x74,0x68,0x65,0x20, + 0x77,0x61,0x76,0x65,0x66,0x6F,0x72,0x6D,0x20,0x77,0x69,0x6C, + 0x6C,0x20,0x6E,0x6F,0x74,0x20,0x62,0x65,0x20,0x72,0x65,0x74, + 0x72,0x69,0x67,0x67,0x65,0x64,0x20,0x77,0x68,0x65,0x6E,0x20, + 0x61,0x19,0x6E,0x65,0x77,0x20,0x69,0x6E,0x73,0x74,0x72,0x75, + 0x6D,0x65,0x6E,0x74,0x20,0x69,0x73,0x20,0x70,0x6C,0x61,0x79, + 0x65,0x64,0x2E,0x00,0x17,0x40,0x58,0x30,0x34,0x30,0x40,0x43, + 0x30,0x30,0x31,0x53,0x65,0x74,0x20,0x66,0x69,0x6E,0x65,0x2D, + 0x74,0x75,0x6E,0x65,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40, + 0x43,0x30,0x30,0x32,0x11,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A, + 0x20,0x45,0x35,0x20,0x2B,0x20,0x54,0x75,0x6E,0x65,0x00,0x3F, + 0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64, + 0x20,0x73,0x68,0x6F,0x75,0x6C,0x64,0x20,0x62,0x65,0x20,0x75, 0x73,0x65,0x64,0x20,0x74,0x6F,0x67,0x65,0x74,0x68,0x65,0x72, 0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x20,0x6E,0x6F,0x74,0x65, - 0x2C,0x20,0x61,0x6E,0x64,0x20,0x77,0x69,0x6C,0x6C,0x20,0x73, - 0x6C,0x69,0x64,0x65,0x20,0x74,0x6F,0x20,0x69,0x74,0x73,0x43, - 0x66,0x72,0x65,0x71,0x75,0x65,0x6E,0x63,0x79,0x2E,0x20,0x49, - 0x66,0x20,0x67,0x6C,0x69,0x73,0x73,0x61,0x6E,0x64,0x6F,0x20, - 0x28,0x45,0x33,0x29,0x20,0x69,0x73,0x20,0x75,0x73,0x65,0x64, - 0x2C,0x20,0x74,0x68,0x65,0x20,0x66,0x72,0x65,0x71,0x75,0x65, - 0x6E,0x63,0x79,0x20,0x77,0x69,0x6C,0x6C,0x20,0x62,0x65,0x20, - 0x72,0x6F,0x75,0x6E,0x64,0x65,0x64,0x18,0x74,0x6F,0x20,0x74, - 0x68,0x65,0x20,0x6E,0x65,0x61,0x72,0x65,0x73,0x74,0x20,0x68, - 0x61,0x6C,0x66,0x74,0x6F,0x6E,0x65,0x2E,0x00,0x11,0x40,0x58, - 0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x56,0x69,0x62,0x72, - 0x61,0x74,0x6F,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43, - 0x30,0x30,0x32,0x18,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20, - 0x34,0x20,0x2B,0x20,0x52,0x61,0x74,0x65,0x20,0x2B,0x20,0x44, - 0x65,0x70,0x74,0x68,0x00,0x3E,0x41,0x64,0x64,0x73,0x20,0x76, - 0x69,0x62,0x72,0x61,0x74,0x6F,0x20,0x74,0x6F,0x20,0x74,0x68, - 0x65,0x20,0x63,0x68,0x61,0x6E,0x6E,0x65,0x6C,0x20,0x77,0x69, - 0x74,0x68,0x20,0x61,0x20,0x72,0x61,0x74,0x65,0x20,0x61,0x6E, - 0x64,0x20,0x73,0x70,0x65,0x65,0x64,0x2E,0x20,0x53,0x65,0x74, - 0x20,0x76,0x69,0x62,0x72,0x61,0x74,0x6F,0x3C,0x63,0x6F,0x6E, - 0x74,0x72,0x6F,0x6C,0x20,0x28,0x45,0x34,0x29,0x20,0x63,0x61, - 0x6E,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x74,0x6F, - 0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x20,0x74,0x68,0x65,0x20, - 0x76,0x69,0x62,0x72,0x61,0x74,0x6F,0x20,0x77,0x61,0x76,0x65, - 0x66,0x6F,0x72,0x6D,0x20,0x28,0x73,0x65,0x65,0x07,0x62,0x65, - 0x6C,0x6F,0x77,0x29,0x2E,0x00,0x28,0x40,0x58,0x30,0x34,0x30, - 0x40,0x43,0x30,0x30,0x31,0x54,0x6F,0x6E,0x65,0x20,0x70,0x6F, - 0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,0x20,0x2B,0x20,0x76, - 0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C,0x69,0x64,0x65,0x0B, - 0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x11, - 0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x35,0x20,0x2B,0x20, - 0x53,0x70,0x65,0x65,0x64,0x00,0x40,0x54,0x68,0x69,0x73,0x20, - 0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x77,0x69,0x6C,0x6C, - 0x20,0x65,0x78,0x65,0x63,0x75,0x74,0x65,0x20,0x62,0x6F,0x74, - 0x68,0x20,0x74,0x6F,0x6E,0x65,0x20,0x70,0x6F,0x72,0x74,0x61, - 0x6D,0x65,0x6E,0x74,0x6F,0x20,0x61,0x6E,0x64,0x20,0x76,0x6F, - 0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C,0x69,0x64,0x65,0x2E,0x27, - 0x54,0x68,0x65,0x20,0x73,0x70,0x65,0x65,0x64,0x20,0x69,0x73, - 0x20,0x75,0x73,0x65,0x64,0x20,0x66,0x6F,0x72,0x20,0x74,0x68, - 0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C,0x69, - 0x64,0x65,0x2E,0x00,0x20,0x40,0x58,0x30,0x34,0x30,0x40,0x43, - 0x30,0x30,0x31,0x56,0x69,0x62,0x72,0x61,0x74,0x6F,0x20,0x2B, - 0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C,0x69,0x64, - 0x65,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30, - 0x32,0x11,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x36,0x20, - 0x2B,0x20,0x53,0x70,0x65,0x65,0x64,0x00,0x3C,0x54,0x68,0x69, - 0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x77,0x69, - 0x6C,0x6C,0x20,0x65,0x78,0x65,0x63,0x75,0x74,0x65,0x20,0x62, - 0x6F,0x74,0x68,0x20,0x76,0x69,0x62,0x72,0x61,0x74,0x6F,0x20, - 0x61,0x6E,0x64,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73, - 0x6C,0x69,0x64,0x65,0x2E,0x20,0x54,0x68,0x65,0x23,0x73,0x70, - 0x65,0x65,0x64,0x20,0x69,0x73,0x20,0x75,0x73,0x65,0x64,0x20, - 0x66,0x6F,0x72,0x20,0x74,0x68,0x65,0x20,0x76,0x6F,0x6C,0x75, - 0x6D,0x65,0x20,0x73,0x6C,0x69,0x64,0x65,0x2E,0x00,0x11,0x40, - 0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x54,0x72,0x65, - 0x6D,0x6F,0x6C,0x6F,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40, - 0x43,0x30,0x30,0x32,0x18,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A, - 0x20,0x37,0x20,0x2B,0x20,0x52,0x61,0x74,0x65,0x20,0x2B,0x20, - 0x44,0x65,0x70,0x74,0x68,0x00,0x41,0x54,0x72,0x65,0x6D,0x6F, - 0x6C,0x6F,0x20,0x61,0x64,0x64,0x73,0x20,0x76,0x69,0x62,0x72, - 0x61,0x74,0x6F,0x20,0x74,0x6F,0x20,0x74,0x68,0x65,0x20,0x63, - 0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x76,0x6F,0x6C,0x75,0x6D, - 0x65,0x2E,0x20,0x54,0x68,0x65,0x20,0x73,0x79,0x6E,0x74,0x61, - 0x78,0x20,0x69,0x73,0x20,0x65,0x78,0x61,0x63,0x74,0x6C,0x79, - 0x1B,0x61,0x73,0x20,0x66,0x6F,0x72,0x20,0x74,0x68,0x65,0x20, - 0x76,0x69,0x62,0x72,0x61,0x74,0x6F,0x20,0x63,0x6F,0x6D,0x6D, - 0x61,0x6E,0x64,0x2E,0x00,0x1E,0x40,0x58,0x30,0x34,0x30,0x40, - 0x43,0x30,0x30,0x31,0x53,0x65,0x74,0x20,0x70,0x61,0x6E,0x6E, - 0x69,0x6E,0x67,0x20,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E, + 0x2E,0x20,0x49,0x74,0x20,0x77,0x69,0x6C,0x6C,0x20,0x63,0x61, + 0x75,0x73,0x65,0x44,0x61,0x6E,0x6F,0x74,0x68,0x65,0x72,0x20, + 0x66,0x69,0x6E,0x65,0x2D,0x74,0x75,0x6E,0x65,0x20,0x76,0x61, + 0x6C,0x75,0x65,0x20,0x74,0x6F,0x20,0x62,0x65,0x20,0x75,0x73, + 0x65,0x64,0x2E,0x20,0x49,0x74,0x20,0x73,0x65,0x65,0x6D,0x73, + 0x20,0x71,0x75,0x69,0x74,0x65,0x20,0x75,0x6E,0x75,0x73,0x61, + 0x62,0x6C,0x65,0x20,0x74,0x6F,0x20,0x6D,0x65,0x2E,0x2E,0x2E, + 0x00,0x16,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31, + 0x50,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x6C,0x6F,0x6F,0x70, 0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32, - 0x14,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x38,0x20,0x2B, - 0x20,0x50,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x00,0x3E,0x53, - 0x65,0x74,0x73,0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x6E,0x6E, - 0x69,0x6E,0x67,0x20,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E, - 0x20,0x66,0x6F,0x72,0x20,0x74,0x68,0x65,0x20,0x63,0x68,0x61, - 0x6E,0x6E,0x65,0x6C,0x2E,0x20,0x24,0x30,0x30,0x20,0x69,0x73, - 0x20,0x74,0x68,0x65,0x20,0x6C,0x65,0x66,0x74,0x6D,0x6F,0x73, - 0x74,0x3F,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x20,0x61, - 0x6E,0x64,0x20,0x24,0x46,0x46,0x20,0x74,0x68,0x65,0x20,0x72, - 0x69,0x67,0x68,0x74,0x6D,0x6F,0x73,0x74,0x2E,0x20,0x4E,0x6F, - 0x74,0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x73,0x6F,0x6D,0x65, - 0x20,0x73,0x6F,0x75,0x6E,0x64,0x20,0x63,0x61,0x72,0x64,0x73, - 0x20,0x28,0x65,0x78,0x2E,0x30,0x47,0x55,0x53,0x29,0x20,0x63, - 0x61,0x6E,0x27,0x74,0x20,0x75,0x73,0x65,0x20,0x61,0x73,0x20, - 0x6D,0x61,0x6E,0x79,0x20,0x61,0x73,0x20,0x32,0x35,0x36,0x20, - 0x70,0x61,0x6E,0x6E,0x69,0x6E,0x67,0x20,0x70,0x6F,0x73,0x69, - 0x74,0x69,0x6F,0x6E,0x73,0x2E,0x00,0x17,0x40,0x58,0x30,0x34, - 0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x61,0x6D,0x70,0x6C,0x65, - 0x20,0x6F,0x66,0x66,0x73,0x65,0x74,0x0B,0x3E,0x40,0x58,0x30, - 0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x12,0x53,0x79,0x6E,0x74, - 0x61,0x78,0x3A,0x20,0x39,0x20,0x2B,0x20,0x4F,0x66,0x66,0x73, - 0x65,0x74,0x00,0x41,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D, - 0x6D,0x61,0x6E,0x64,0x20,0x73,0x68,0x6F,0x75,0x6C,0x64,0x20, - 0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x74,0x6F,0x67,0x65, - 0x74,0x68,0x65,0x72,0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x20, - 0x6E,0x6F,0x74,0x65,0x2E,0x20,0x54,0x68,0x65,0x20,0x73,0x61, - 0x6D,0x70,0x6C,0x65,0x20,0x77,0x69,0x6C,0x6C,0x2D,0x62,0x65, - 0x20,0x70,0x6C,0x61,0x79,0x65,0x64,0x20,0x66,0x72,0x6F,0x6D, - 0x20,0x28,0x4F,0x66,0x66,0x73,0x65,0x74,0x2A,0x24,0x31,0x30, - 0x30,0x29,0x20,0x69,0x6E,0x73,0x74,0x65,0x61,0x64,0x20,0x6F, - 0x66,0x20,0x7A,0x65,0x72,0x6F,0x2E,0x00,0x16,0x40,0x58,0x30, - 0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x56,0x6F,0x6C,0x75,0x6D, - 0x65,0x20,0x73,0x6C,0x69,0x64,0x65,0x0B,0x3E,0x40,0x58,0x30, - 0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x21,0x53,0x79,0x6E,0x74, - 0x61,0x78,0x3A,0x20,0x41,0x20,0x2B,0x20,0x55,0x70,0x20,0x73, - 0x70,0x65,0x65,0x64,0x20,0x2B,0x20,0x44,0x6F,0x77,0x6E,0x20, - 0x73,0x70,0x65,0x65,0x64,0x00,0x3D,0x53,0x6C,0x69,0x64,0x65, - 0x73,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6E, - 0x74,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x75,0x70,0x20, - 0x6F,0x72,0x20,0x64,0x6F,0x77,0x6E,0x2E,0x20,0x45,0x69,0x74, - 0x68,0x65,0x72,0x20,0x75,0x70,0x20,0x73,0x70,0x65,0x65,0x64, - 0x20,0x6F,0x72,0x20,0x64,0x6F,0x77,0x6E,0x15,0x73,0x70,0x65, - 0x65,0x64,0x20,0x73,0x68,0x6F,0x75,0x6C,0x64,0x20,0x62,0x65, - 0x20,0x7A,0x65,0x72,0x6F,0x2E,0x00,0x17,0x40,0x58,0x30,0x34, - 0x30,0x40,0x43,0x30,0x30,0x31,0x50,0x6F,0x73,0x69,0x74,0x69, - 0x6F,0x6E,0x20,0x6A,0x75,0x6D,0x70,0x0B,0x3E,0x40,0x58,0x30, - 0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x14,0x53,0x79,0x6E,0x74, - 0x61,0x78,0x3A,0x20,0x42,0x20,0x2B,0x20,0x50,0x6F,0x73,0x69, - 0x74,0x69,0x6F,0x6E,0x00,0x41,0x54,0x68,0x69,0x73,0x20,0x63, - 0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x77,0x69,0x6C,0x6C,0x20, - 0x6A,0x75,0x6D,0x70,0x20,0x74,0x6F,0x20,0x74,0x68,0x65,0x20, - 0x73,0x65,0x6C,0x65,0x63,0x74,0x65,0x64,0x20,0x73,0x6F,0x6E, - 0x67,0x20,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x20,0x61, - 0x6E,0x64,0x20,0x70,0x6C,0x61,0x79,0x20,0x74,0x68,0x65,0x1B, - 0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x66,0x72,0x6F,0x6D, - 0x20,0x74,0x68,0x65,0x20,0x62,0x65,0x67,0x69,0x6E,0x6E,0x69, - 0x6E,0x67,0x2E,0x00,0x14,0x40,0x58,0x30,0x34,0x30,0x40,0x43, - 0x30,0x30,0x31,0x53,0x65,0x74,0x20,0x76,0x6F,0x6C,0x75,0x6D, - 0x65,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30, - 0x32,0x12,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x43,0x20, - 0x2B,0x20,0x56,0x6F,0x6C,0x75,0x6D,0x65,0x00,0x3E,0x53,0x65, - 0x74,0x73,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72,0x65, - 0x6E,0x74,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x2E,0x20,0x54, - 0x68,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,0x68, - 0x6F,0x75,0x6C,0x64,0x20,0x6E,0x6F,0x74,0x20,0x62,0x65,0x20, - 0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x20,0x74,0x68,0x61,0x6E, - 0x04,0x24,0x34,0x30,0x2E,0x00,0x17,0x40,0x58,0x30,0x34,0x30, - 0x40,0x43,0x30,0x30,0x31,0x50,0x61,0x74,0x74,0x65,0x72,0x6E, - 0x20,0x62,0x72,0x65,0x61,0x6B,0x0B,0x3E,0x40,0x58,0x30,0x36, - 0x30,0x40,0x43,0x30,0x30,0x32,0x1C,0x53,0x79,0x6E,0x74,0x61, - 0x78,0x3A,0x20,0x44,0x20,0x2B,0x20,0x50,0x61,0x74,0x74,0x65, - 0x72,0x6E,0x2D,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x00, - 0x3C,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E, - 0x64,0x20,0x77,0x69,0x6C,0x6C,0x20,0x6A,0x75,0x6D,0x70,0x20, - 0x74,0x6F,0x20,0x74,0x68,0x65,0x20,0x6E,0x65,0x78,0x74,0x20, - 0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x61,0x6E,0x64,0x20, - 0x70,0x6C,0x61,0x79,0x20,0x66,0x72,0x6F,0x6D,0x20,0x74,0x68, - 0x65,0x13,0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x65,0x64,0x20, - 0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x2E,0x00,0x22,0x40, - 0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x65,0x74, - 0x20,0x66,0x69,0x6C,0x74,0x65,0x72,0x20,0x28,0x41,0x6D,0x69, - 0x67,0x61,0x20,0x6F,0x6E,0x6C,0x79,0x21,0x29,0x0B,0x3E,0x40, - 0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x13,0x53,0x79, - 0x6E,0x74,0x61,0x78,0x3A,0x20,0x45,0x30,0x20,0x2B,0x20,0x53, - 0x74,0x61,0x74,0x75,0x73,0x00,0x38,0x55,0x73,0x65,0x20,0x45, - 0x30,0x30,0x20,0x61,0x6E,0x64,0x20,0x79,0x6F,0x75,0x72,0x20, - 0x74,0x75,0x6E,0x65,0x20,0x77,0x69,0x6C,0x6C,0x20,0x73,0x6F, - 0x75,0x6E,0x64,0x20,0x72,0x65,0x61,0x6C,0x6C,0x79,0x20,0x62, - 0x61,0x64,0x20,0x6F,0x6E,0x20,0x61,0x6E,0x20,0x41,0x6D,0x69, - 0x67,0x61,0x21,0x00,0x21,0x40,0x58,0x30,0x34,0x30,0x40,0x43, - 0x30,0x30,0x31,0x46,0x69,0x6E,0x65,0x20,0x70,0x6F,0x72,0x74, - 0x61,0x6D,0x65,0x6E,0x74,0x6F,0x20,0x75,0x70,0x2F,0x64,0x6F, - 0x77,0x6E,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30, - 0x30,0x32,0x19,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x45, - 0x28,0x31,0x20,0x6F,0x72,0x20,0x32,0x29,0x20,0x2B,0x20,0x53, - 0x70,0x65,0x65,0x64,0x00,0x3F,0x54,0x68,0x69,0x73,0x20,0x63, - 0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x77,0x6F,0x72,0x6B,0x73, - 0x20,0x61,0x73,0x20,0x70,0x6F,0x72,0x74,0x61,0x6D,0x65,0x6E, - 0x74,0x6F,0x20,0x75,0x70,0x2F,0x64,0x6F,0x77,0x6E,0x2C,0x20, - 0x62,0x75,0x74,0x20,0x69,0x74,0x20,0x6F,0x6E,0x6C,0x79,0x20, - 0x73,0x6C,0x69,0x64,0x65,0x73,0x20,0x75,0x70,0x05,0x6F,0x6E, - 0x63,0x65,0x2E,0x00,0x1F,0x40,0x58,0x30,0x34,0x30,0x40,0x43, - 0x30,0x30,0x31,0x53,0x65,0x74,0x20,0x67,0x6C,0x69,0x73,0x73, - 0x61,0x6E,0x64,0x6F,0x20,0x63,0x6F,0x6E,0x74,0x72,0x6F,0x6C, + 0x12,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x45,0x36,0x20, + 0x2B,0x20,0x43,0x6F,0x75,0x6E,0x74,0x00,0x45,0x49,0x66,0x20, + 0x63,0x6F,0x75,0x6E,0x74,0x20,0x69,0x73,0x20,0x7A,0x65,0x72, + 0x6F,0x2C,0x20,0x74,0x68,0x65,0x20,0x62,0x65,0x67,0x69,0x6E, + 0x6E,0x69,0x6E,0x67,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20, + 0x6C,0x6F,0x6F,0x70,0x20,0x77,0x69,0x6C,0x6C,0x20,0x62,0x65, + 0x20,0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x65,0x64,0x2E,0x20, + 0x57,0x68,0x65,0x6E,0x20,0x61,0x40,0x6E,0x6F,0x6E,0x2D,0x7A, + 0x65,0x72,0x6F,0x20,0x76,0x61,0x6C,0x75,0x65,0x20,0x69,0x73, + 0x20,0x75,0x73,0x65,0x64,0x2C,0x20,0x74,0x68,0x65,0x20,0x70, + 0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x77,0x69,0x6C,0x6C,0x20, + 0x62,0x65,0x20,0x6C,0x6F,0x6F,0x70,0x65,0x64,0x20,0x66,0x72, + 0x6F,0x6D,0x20,0x74,0x68,0x65,0x20,0x6C,0x6F,0x6F,0x70,0x06, + 0x73,0x74,0x61,0x72,0x74,0x2E,0x00,0x1D,0x40,0x58,0x30,0x34, + 0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x65,0x74,0x20,0x74,0x72, + 0x65,0x6D,0x6F,0x6C,0x6F,0x20,0x63,0x6F,0x6E,0x74,0x72,0x6F, + 0x6C,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30, + 0x32,0x11,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x45,0x37, + 0x20,0x2B,0x20,0x54,0x79,0x70,0x65,0x00,0x3A,0x54,0x68,0x69, + 0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x77,0x6F, + 0x72,0x6B,0x73,0x20,0x65,0x78,0x61,0x63,0x74,0x6C,0x79,0x20, + 0x61,0x73,0x20,0x73,0x65,0x74,0x20,0x76,0x69,0x62,0x72,0x61, + 0x74,0x6F,0x20,0x63,0x6F,0x6E,0x74,0x72,0x6F,0x6C,0x2C,0x20, + 0x62,0x75,0x74,0x20,0x74,0x68,0x65,0x29,0x74,0x72,0x65,0x6D, + 0x6F,0x6C,0x6F,0x20,0x77,0x61,0x76,0x65,0x66,0x6F,0x72,0x6D, + 0x20,0x77,0x69,0x6C,0x6C,0x20,0x62,0x65,0x20,0x63,0x68,0x61, + 0x6E,0x67,0x65,0x64,0x20,0x69,0x6E,0x73,0x74,0x65,0x61,0x64, + 0x2E,0x00,0x15,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30, + 0x31,0x52,0x65,0x74,0x72,0x69,0x67,0x20,0x6E,0x6F,0x74,0x65, 0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32, - 0x13,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x45,0x33,0x20, - 0x2B,0x20,0x53,0x74,0x61,0x74,0x75,0x73,0x00,0x41,0x49,0x66, - 0x20,0x53,0x74,0x61,0x74,0x75,0x73,0x20,0x69,0x73,0x20,0x3D, - 0x31,0x2C,0x20,0x74,0x68,0x65,0x20,0x66,0x72,0x65,0x71,0x75, - 0x65,0x6E,0x63,0x79,0x20,0x77,0x68,0x65,0x6E,0x20,0x75,0x73, - 0x69,0x6E,0x67,0x20,0x74,0x6F,0x6E,0x65,0x20,0x70,0x6F,0x72, - 0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,0x20,0x77,0x69,0x6C,0x6C, - 0x20,0x62,0x65,0x20,0x72,0x6F,0x75,0x6E,0x64,0x65,0x64,0x20, - 0x74,0x6F,0x20,0x74,0x68,0x65,0x20,0x6E,0x65,0x61,0x72,0x65, - 0x73,0x74,0x20,0x68,0x61,0x6C,0x66,0x74,0x6F,0x6E,0x65,0x2E, - 0x00,0x1D,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31, - 0x53,0x65,0x74,0x20,0x76,0x69,0x62,0x72,0x61,0x74,0x6F,0x20, - 0x63,0x6F,0x6E,0x74,0x72,0x6F,0x6C,0x0B,0x3E,0x40,0x58,0x30, - 0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x11,0x53,0x79,0x6E,0x74, - 0x61,0x78,0x3A,0x20,0x45,0x34,0x20,0x2B,0x20,0x54,0x79,0x70, - 0x65,0x00,0x2B,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D, - 0x61,0x6E,0x64,0x20,0x63,0x6F,0x6E,0x74,0x72,0x6F,0x6C,0x73, - 0x20,0x74,0x68,0x65,0x20,0x76,0x69,0x62,0x72,0x61,0x74,0x6F, - 0x20,0x77,0x61,0x76,0x65,0x66,0x6F,0x72,0x6D,0x2E,0x00,0x33, - 0x54,0x79,0x70,0x65,0x3A,0x20,0x30,0x20,0x3D,0x20,0x53,0x69, - 0x6E,0x65,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x31,0x20,0x3D, - 0x20,0x52,0x61,0x6D,0x70,0x20,0x64,0x6F,0x77,0x6E,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x32,0x20,0x3D,0x20,0x53,0x71,0x75, - 0x61,0x72,0x65,0x00,0x43,0x49,0x66,0x20,0x79,0x6F,0x75,0x20, - 0x61,0x64,0x64,0x20,0x34,0x20,0x74,0x6F,0x20,0x74,0x68,0x65, - 0x20,0x74,0x79,0x70,0x65,0x2C,0x20,0x74,0x68,0x65,0x20,0x77, - 0x61,0x76,0x65,0x66,0x6F,0x72,0x6D,0x20,0x77,0x69,0x6C,0x6C, - 0x20,0x6E,0x6F,0x74,0x20,0x62,0x65,0x20,0x72,0x65,0x74,0x72, - 0x69,0x67,0x67,0x65,0x64,0x20,0x77,0x68,0x65,0x6E,0x20,0x61, - 0x19,0x6E,0x65,0x77,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D, - 0x65,0x6E,0x74,0x20,0x69,0x73,0x20,0x70,0x6C,0x61,0x79,0x65, - 0x64,0x2E,0x00,0x17,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30, - 0x30,0x31,0x53,0x65,0x74,0x20,0x66,0x69,0x6E,0x65,0x2D,0x74, - 0x75,0x6E,0x65,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43, - 0x30,0x30,0x32,0x11,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20, - 0x45,0x35,0x20,0x2B,0x20,0x54,0x75,0x6E,0x65,0x00,0x3F,0x54, - 0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20, - 0x73,0x68,0x6F,0x75,0x6C,0x64,0x20,0x62,0x65,0x20,0x75,0x73, - 0x65,0x64,0x20,0x74,0x6F,0x67,0x65,0x74,0x68,0x65,0x72,0x20, - 0x77,0x69,0x74,0x68,0x20,0x61,0x20,0x6E,0x6F,0x74,0x65,0x2E, - 0x20,0x49,0x74,0x20,0x77,0x69,0x6C,0x6C,0x20,0x63,0x61,0x75, - 0x73,0x65,0x44,0x61,0x6E,0x6F,0x74,0x68,0x65,0x72,0x20,0x66, - 0x69,0x6E,0x65,0x2D,0x74,0x75,0x6E,0x65,0x20,0x76,0x61,0x6C, - 0x75,0x65,0x20,0x74,0x6F,0x20,0x62,0x65,0x20,0x75,0x73,0x65, - 0x64,0x2E,0x20,0x49,0x74,0x20,0x73,0x65,0x65,0x6D,0x73,0x20, - 0x71,0x75,0x69,0x74,0x65,0x20,0x75,0x6E,0x75,0x73,0x61,0x62, - 0x6C,0x65,0x20,0x74,0x6F,0x20,0x6D,0x65,0x2E,0x2E,0x2E,0x00, - 0x16,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x50, - 0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x6C,0x6F,0x6F,0x70,0x0B, - 0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x12, - 0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x45,0x36,0x20,0x2B, - 0x20,0x43,0x6F,0x75,0x6E,0x74,0x00,0x45,0x49,0x66,0x20,0x63, - 0x6F,0x75,0x6E,0x74,0x20,0x69,0x73,0x20,0x7A,0x65,0x72,0x6F, - 0x2C,0x20,0x74,0x68,0x65,0x20,0x62,0x65,0x67,0x69,0x6E,0x6E, - 0x69,0x6E,0x67,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,0x6C, - 0x6F,0x6F,0x70,0x20,0x77,0x69,0x6C,0x6C,0x20,0x62,0x65,0x20, - 0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x65,0x64,0x2E,0x20,0x57, - 0x68,0x65,0x6E,0x20,0x61,0x40,0x6E,0x6F,0x6E,0x2D,0x7A,0x65, - 0x72,0x6F,0x20,0x76,0x61,0x6C,0x75,0x65,0x20,0x69,0x73,0x20, - 0x75,0x73,0x65,0x64,0x2C,0x20,0x74,0x68,0x65,0x20,0x70,0x61, - 0x74,0x74,0x65,0x72,0x6E,0x20,0x77,0x69,0x6C,0x6C,0x20,0x62, - 0x65,0x20,0x6C,0x6F,0x6F,0x70,0x65,0x64,0x20,0x66,0x72,0x6F, - 0x6D,0x20,0x74,0x68,0x65,0x20,0x6C,0x6F,0x6F,0x70,0x06,0x73, - 0x74,0x61,0x72,0x74,0x2E,0x00,0x1D,0x40,0x58,0x30,0x34,0x30, - 0x40,0x43,0x30,0x30,0x31,0x53,0x65,0x74,0x20,0x74,0x72,0x65, - 0x6D,0x6F,0x6C,0x6F,0x20,0x63,0x6F,0x6E,0x74,0x72,0x6F,0x6C, + 0x15,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x45,0x39,0x20, + 0x2B,0x20,0x49,0x6E,0x74,0x65,0x72,0x76,0x61,0x6C,0x00,0x2D, + 0x52,0x65,0x74,0x72,0x69,0x67,0x73,0x20,0x74,0x68,0x65,0x20, + 0x6E,0x6F,0x74,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x74,0x68, + 0x65,0x20,0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x65,0x64,0x20, + 0x69,0x6E,0x74,0x65,0x72,0x76,0x61,0x6C,0x2E,0x00,0x23,0x40, + 0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x46,0x69,0x6E, + 0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C,0x69, + 0x64,0x65,0x20,0x75,0x70,0x2F,0x64,0x6F,0x77,0x6E,0x0B,0x3E, + 0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x19,0x53, + 0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x45,0x28,0x41,0x20,0x6F, + 0x72,0x20,0x42,0x29,0x20,0x2B,0x20,0x53,0x70,0x65,0x65,0x64, + 0x00,0x44,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61, + 0x6E,0x64,0x20,0x77,0x6F,0x72,0x6B,0x73,0x20,0x61,0x73,0x20, + 0x74,0x68,0x65,0x20,0x75,0x73,0x75,0x61,0x6C,0x20,0x76,0x6F, + 0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C,0x69,0x64,0x65,0x2C,0x20, + 0x62,0x75,0x74,0x20,0x69,0x74,0x20,0x77,0x69,0x6C,0x6C,0x20, + 0x6F,0x6E,0x6C,0x79,0x20,0x73,0x6C,0x69,0x64,0x65,0x05,0x6F, + 0x6E,0x63,0x65,0x2E,0x00,0x12,0x40,0x58,0x30,0x34,0x30,0x40, + 0x43,0x30,0x30,0x31,0x4E,0x6F,0x74,0x65,0x20,0x63,0x75,0x74, 0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32, - 0x11,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x45,0x37,0x20, - 0x2B,0x20,0x54,0x79,0x70,0x65,0x00,0x3A,0x54,0x68,0x69,0x73, - 0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x77,0x6F,0x72, - 0x6B,0x73,0x20,0x65,0x78,0x61,0x63,0x74,0x6C,0x79,0x20,0x61, - 0x73,0x20,0x73,0x65,0x74,0x20,0x76,0x69,0x62,0x72,0x61,0x74, - 0x6F,0x20,0x63,0x6F,0x6E,0x74,0x72,0x6F,0x6C,0x2C,0x20,0x62, - 0x75,0x74,0x20,0x74,0x68,0x65,0x29,0x74,0x72,0x65,0x6D,0x6F, - 0x6C,0x6F,0x20,0x77,0x61,0x76,0x65,0x66,0x6F,0x72,0x6D,0x20, + 0x11,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x45,0x43,0x20, + 0x2B,0x20,0x54,0x69,0x63,0x6B,0x00,0x43,0x43,0x75,0x74,0x73, + 0x20,0x74,0x68,0x65,0x20,0x6E,0x6F,0x74,0x65,0x20,0x61,0x74, + 0x20,0x74,0x68,0x65,0x20,0x73,0x70,0x65,0x63,0x69,0x66,0x69, + 0x65,0x64,0x20,0x74,0x69,0x63,0x6B,0x2E,0x20,0x4E,0x6F,0x74, + 0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x69,0x74,0x20,0x77,0x69, + 0x6C,0x6C,0x20,0x6F,0x6E,0x6C,0x79,0x20,0x73,0x65,0x74,0x20, + 0x74,0x68,0x65,0x34,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x74, + 0x6F,0x20,0x7A,0x65,0x72,0x6F,0x2C,0x20,0x61,0x6E,0x64,0x20, + 0x74,0x68,0x65,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x77, + 0x69,0x6C,0x6C,0x20,0x73,0x74,0x69,0x6C,0x6C,0x20,0x62,0x65, + 0x20,0x70,0x6C,0x61,0x79,0x65,0x64,0x2E,0x00,0x14,0x40,0x58, + 0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x4E,0x6F,0x74,0x65, + 0x20,0x64,0x65,0x6C,0x61,0x79,0x0B,0x3E,0x40,0x58,0x30,0x36, + 0x30,0x40,0x43,0x30,0x30,0x32,0x12,0x53,0x79,0x6E,0x74,0x61, + 0x78,0x3A,0x20,0x45,0x44,0x20,0x2B,0x20,0x54,0x69,0x63,0x6B, + 0x73,0x00,0x3E,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D, + 0x61,0x6E,0x64,0x20,0x77,0x69,0x6C,0x6C,0x20,0x64,0x65,0x6C, + 0x61,0x79,0x20,0x74,0x68,0x65,0x20,0x6E,0x6F,0x74,0x65,0x20, + 0x74,0x68,0x65,0x20,0x73,0x65,0x6C,0x65,0x63,0x74,0x65,0x64, + 0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x20,0x6F,0x66,0x20,0x74, + 0x69,0x63,0x6B,0x73,0x2E,0x00,0x17,0x40,0x58,0x30,0x34,0x30, + 0x40,0x43,0x30,0x30,0x31,0x50,0x61,0x74,0x74,0x65,0x72,0x6E, + 0x20,0x64,0x65,0x6C,0x61,0x79,0x0B,0x3E,0x40,0x58,0x30,0x36, + 0x30,0x40,0x43,0x30,0x30,0x32,0x12,0x53,0x79,0x6E,0x74,0x61, + 0x78,0x3A,0x20,0x45,0x45,0x20,0x2B,0x20,0x4E,0x6F,0x74,0x65, + 0x73,0x00,0x41,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D, + 0x61,0x6E,0x64,0x20,0x77,0x69,0x6C,0x6C,0x20,0x64,0x65,0x6C, + 0x61,0x79,0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x74,0x74,0x65, + 0x72,0x6E,0x20,0x74,0x68,0x65,0x20,0x73,0x65,0x6C,0x65,0x63, + 0x74,0x65,0x64,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x20,0x6F, + 0x66,0x20,0x6E,0x6F,0x74,0x65,0x73,0x2E,0x00,0x13,0x40,0x58, + 0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x65,0x74,0x20, + 0x73,0x70,0x65,0x65,0x64,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30, + 0x40,0x43,0x30,0x30,0x32,0x11,0x53,0x79,0x6E,0x74,0x61,0x78, + 0x3A,0x20,0x46,0x20,0x2B,0x20,0x56,0x61,0x6C,0x75,0x65,0x00, + 0x42,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E, + 0x64,0x20,0x77,0x69,0x6C,0x6C,0x20,0x73,0x65,0x74,0x20,0x74, + 0x68,0x65,0x20,0x73,0x70,0x65,0x65,0x64,0x20,0x6F,0x72,0x20, + 0x42,0x50,0x4D,0x20,0x76,0x61,0x6C,0x75,0x65,0x20,0x6F,0x66, + 0x20,0x74,0x68,0x65,0x20,0x73,0x6F,0x6E,0x67,0x2E,0x20,0x49, + 0x66,0x20,0x76,0x61,0x6C,0x75,0x65,0x3F,0x69,0x73,0x20,0x6C, + 0x65,0x73,0x73,0x20,0x74,0x68,0x61,0x6E,0x20,0x24,0x32,0x30, + 0x2C,0x20,0x74,0x68,0x65,0x20,0x73,0x70,0x65,0x65,0x64,0x20, 0x77,0x69,0x6C,0x6C,0x20,0x62,0x65,0x20,0x63,0x68,0x61,0x6E, - 0x67,0x65,0x64,0x20,0x69,0x6E,0x73,0x74,0x65,0x61,0x64,0x2E, - 0x00,0x15,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31, - 0x52,0x65,0x74,0x72,0x69,0x67,0x20,0x6E,0x6F,0x74,0x65,0x0B, - 0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x15, - 0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x45,0x39,0x20,0x2B, - 0x20,0x49,0x6E,0x74,0x65,0x72,0x76,0x61,0x6C,0x00,0x2D,0x52, - 0x65,0x74,0x72,0x69,0x67,0x73,0x20,0x74,0x68,0x65,0x20,0x6E, - 0x6F,0x74,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x74,0x68,0x65, - 0x20,0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x65,0x64,0x20,0x69, - 0x6E,0x74,0x65,0x72,0x76,0x61,0x6C,0x2E,0x00,0x23,0x40,0x58, - 0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x46,0x69,0x6E,0x65, + 0x67,0x65,0x64,0x2E,0x20,0x4F,0x74,0x68,0x65,0x72,0x77,0x69, + 0x73,0x65,0x2C,0x20,0x74,0x68,0x65,0x20,0x42,0x50,0x4D,0x16, + 0x76,0x61,0x6C,0x75,0x65,0x20,0x77,0x69,0x6C,0x6C,0x20,0x62, + 0x65,0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x64,0x2E,0x00,0x1B, + 0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x65, + 0x74,0x20,0x67,0x6C,0x6F,0x62,0x61,0x6C,0x20,0x76,0x6F,0x6C, + 0x75,0x6D,0x65,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43, + 0x30,0x30,0x32,0x12,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20, + 0x47,0x20,0x2B,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x00,0x42, + 0x53,0x65,0x74,0x73,0x20,0x74,0x68,0x65,0x20,0x67,0x6C,0x6F, + 0x62,0x61,0x6C,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x2E,0x20, + 0x54,0x68,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73, + 0x68,0x6F,0x75,0x6C,0x64,0x20,0x6E,0x6F,0x74,0x20,0x62,0x65, + 0x20,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x20,0x74,0x68,0x61, + 0x6E,0x20,0x24,0x34,0x30,0x2E,0x00,0x1D,0x40,0x58,0x30,0x34, + 0x30,0x40,0x43,0x30,0x30,0x31,0x47,0x6C,0x6F,0x62,0x61,0x6C, 0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C,0x69,0x64, - 0x65,0x20,0x75,0x70,0x2F,0x64,0x6F,0x77,0x6E,0x0B,0x3E,0x40, - 0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x19,0x53,0x79, - 0x6E,0x74,0x61,0x78,0x3A,0x20,0x45,0x28,0x41,0x20,0x6F,0x72, - 0x20,0x42,0x29,0x20,0x2B,0x20,0x53,0x70,0x65,0x65,0x64,0x00, - 0x44,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E, - 0x64,0x20,0x77,0x6F,0x72,0x6B,0x73,0x20,0x61,0x73,0x20,0x74, - 0x68,0x65,0x20,0x75,0x73,0x75,0x61,0x6C,0x20,0x76,0x6F,0x6C, - 0x75,0x6D,0x65,0x20,0x73,0x6C,0x69,0x64,0x65,0x2C,0x20,0x62, - 0x75,0x74,0x20,0x69,0x74,0x20,0x77,0x69,0x6C,0x6C,0x20,0x6F, - 0x6E,0x6C,0x79,0x20,0x73,0x6C,0x69,0x64,0x65,0x05,0x6F,0x6E, - 0x63,0x65,0x2E,0x00,0x12,0x40,0x58,0x30,0x34,0x30,0x40,0x43, - 0x30,0x30,0x31,0x4E,0x6F,0x74,0x65,0x20,0x63,0x75,0x74,0x0B, - 0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x11, - 0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x45,0x43,0x20,0x2B, - 0x20,0x54,0x69,0x63,0x6B,0x00,0x43,0x43,0x75,0x74,0x73,0x20, - 0x74,0x68,0x65,0x20,0x6E,0x6F,0x74,0x65,0x20,0x61,0x74,0x20, - 0x74,0x68,0x65,0x20,0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x65, - 0x64,0x20,0x74,0x69,0x63,0x6B,0x2E,0x20,0x4E,0x6F,0x74,0x65, - 0x20,0x74,0x68,0x61,0x74,0x20,0x69,0x74,0x20,0x77,0x69,0x6C, - 0x6C,0x20,0x6F,0x6E,0x6C,0x79,0x20,0x73,0x65,0x74,0x20,0x74, - 0x68,0x65,0x34,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x74,0x6F, - 0x20,0x7A,0x65,0x72,0x6F,0x2C,0x20,0x61,0x6E,0x64,0x20,0x74, - 0x68,0x65,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x77,0x69, - 0x6C,0x6C,0x20,0x73,0x74,0x69,0x6C,0x6C,0x20,0x62,0x65,0x20, - 0x70,0x6C,0x61,0x79,0x65,0x64,0x2E,0x00,0x14,0x40,0x58,0x30, - 0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x4E,0x6F,0x74,0x65,0x20, - 0x64,0x65,0x6C,0x61,0x79,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30, - 0x40,0x43,0x30,0x30,0x32,0x12,0x53,0x79,0x6E,0x74,0x61,0x78, - 0x3A,0x20,0x45,0x44,0x20,0x2B,0x20,0x54,0x69,0x63,0x6B,0x73, - 0x00,0x3E,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61, - 0x6E,0x64,0x20,0x77,0x69,0x6C,0x6C,0x20,0x64,0x65,0x6C,0x61, - 0x79,0x20,0x74,0x68,0x65,0x20,0x6E,0x6F,0x74,0x65,0x20,0x74, - 0x68,0x65,0x20,0x73,0x65,0x6C,0x65,0x63,0x74,0x65,0x64,0x20, - 0x6E,0x75,0x6D,0x62,0x65,0x72,0x20,0x6F,0x66,0x20,0x74,0x69, - 0x63,0x6B,0x73,0x2E,0x00,0x17,0x40,0x58,0x30,0x34,0x30,0x40, - 0x43,0x30,0x30,0x31,0x50,0x61,0x74,0x74,0x65,0x72,0x6E,0x20, - 0x64,0x65,0x6C,0x61,0x79,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30, - 0x40,0x43,0x30,0x30,0x32,0x12,0x53,0x79,0x6E,0x74,0x61,0x78, - 0x3A,0x20,0x45,0x45,0x20,0x2B,0x20,0x4E,0x6F,0x74,0x65,0x73, - 0x00,0x41,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61, - 0x6E,0x64,0x20,0x77,0x69,0x6C,0x6C,0x20,0x64,0x65,0x6C,0x61, - 0x79,0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x74,0x74,0x65,0x72, - 0x6E,0x20,0x74,0x68,0x65,0x20,0x73,0x65,0x6C,0x65,0x63,0x74, - 0x65,0x64,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x20,0x6F,0x66, - 0x20,0x6E,0x6F,0x74,0x65,0x73,0x2E,0x00,0x13,0x40,0x58,0x30, - 0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x65,0x74,0x20,0x73, - 0x70,0x65,0x65,0x64,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40, - 0x43,0x30,0x30,0x32,0x11,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A, - 0x20,0x46,0x20,0x2B,0x20,0x56,0x61,0x6C,0x75,0x65,0x00,0x42, - 0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64, - 0x20,0x77,0x69,0x6C,0x6C,0x20,0x73,0x65,0x74,0x20,0x74,0x68, - 0x65,0x20,0x73,0x70,0x65,0x65,0x64,0x20,0x6F,0x72,0x20,0x42, - 0x50,0x4D,0x20,0x76,0x61,0x6C,0x75,0x65,0x20,0x6F,0x66,0x20, - 0x74,0x68,0x65,0x20,0x73,0x6F,0x6E,0x67,0x2E,0x20,0x49,0x66, - 0x20,0x76,0x61,0x6C,0x75,0x65,0x3F,0x69,0x73,0x20,0x6C,0x65, - 0x73,0x73,0x20,0x74,0x68,0x61,0x6E,0x20,0x24,0x32,0x30,0x2C, - 0x20,0x74,0x68,0x65,0x20,0x73,0x70,0x65,0x65,0x64,0x20,0x77, - 0x69,0x6C,0x6C,0x20,0x62,0x65,0x20,0x63,0x68,0x61,0x6E,0x67, - 0x65,0x64,0x2E,0x20,0x4F,0x74,0x68,0x65,0x72,0x77,0x69,0x73, - 0x65,0x2C,0x20,0x74,0x68,0x65,0x20,0x42,0x50,0x4D,0x16,0x76, - 0x61,0x6C,0x75,0x65,0x20,0x77,0x69,0x6C,0x6C,0x20,0x62,0x65, - 0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x64,0x2E,0x00,0x1B,0x40, - 0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x65,0x74, - 0x20,0x67,0x6C,0x6F,0x62,0x61,0x6C,0x20,0x76,0x6F,0x6C,0x75, - 0x6D,0x65,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30, - 0x30,0x32,0x12,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x47, - 0x20,0x2B,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x00,0x42,0x53, - 0x65,0x74,0x73,0x20,0x74,0x68,0x65,0x20,0x67,0x6C,0x6F,0x62, - 0x61,0x6C,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x2E,0x20,0x54, - 0x68,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,0x68, - 0x6F,0x75,0x6C,0x64,0x20,0x6E,0x6F,0x74,0x20,0x62,0x65,0x20, - 0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x20,0x74,0x68,0x61,0x6E, - 0x20,0x24,0x34,0x30,0x2E,0x00,0x1D,0x40,0x58,0x30,0x34,0x30, - 0x40,0x43,0x30,0x30,0x31,0x47,0x6C,0x6F,0x62,0x61,0x6C,0x20, - 0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C,0x69,0x64,0x65, + 0x65,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30, + 0x32,0x21,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x48,0x20, + 0x2B,0x20,0x55,0x70,0x20,0x73,0x70,0x65,0x65,0x64,0x20,0x2B, + 0x20,0x44,0x6F,0x77,0x6E,0x20,0x73,0x70,0x65,0x65,0x64,0x00, + 0x3D,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E, + 0x64,0x20,0x77,0x6F,0x72,0x6B,0x73,0x20,0x65,0x78,0x61,0x63, + 0x74,0x6C,0x79,0x20,0x61,0x73,0x20,0x76,0x6F,0x6C,0x75,0x6D, + 0x65,0x20,0x73,0x6C,0x69,0x64,0x65,0x2C,0x20,0x62,0x75,0x74, + 0x20,0x69,0x74,0x20,0x73,0x6C,0x69,0x64,0x65,0x73,0x20,0x74, + 0x68,0x65,0x16,0x67,0x6C,0x6F,0x62,0x61,0x6C,0x20,0x76,0x6F, + 0x6C,0x75,0x6D,0x65,0x20,0x69,0x6E,0x73,0x74,0x65,0x61,0x64, + 0x2E,0x00,0x11,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30, + 0x31,0x4B,0x65,0x79,0x20,0x6F,0x66,0x66,0x0B,0x3E,0x40,0x58, + 0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x10,0x53,0x79,0x6E, + 0x74,0x61,0x78,0x3A,0x20,0x4B,0x20,0x2B,0x20,0x54,0x69,0x63, + 0x6B,0x00,0x3C,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D, + 0x61,0x6E,0x64,0x20,0x77,0x69,0x6C,0x6C,0x20,0x74,0x72,0x69, + 0x67,0x67,0x65,0x72,0x20,0x61,0x20,0x22,0x4B,0x65,0x79,0x20, + 0x6F,0x66,0x66,0x22,0x20,0x61,0x74,0x20,0x74,0x68,0x65,0x20, + 0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x65,0x64,0x20,0x74,0x69, + 0x63,0x6B,0x2E,0x00,0x1F,0x40,0x58,0x30,0x34,0x30,0x40,0x43, + 0x30,0x30,0x31,0x53,0x65,0x74,0x20,0x65,0x6E,0x76,0x65,0x6C, + 0x6F,0x70,0x65,0x20,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E, 0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32, - 0x21,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x48,0x20,0x2B, - 0x20,0x55,0x70,0x20,0x73,0x70,0x65,0x65,0x64,0x20,0x2B,0x20, - 0x44,0x6F,0x77,0x6E,0x20,0x73,0x70,0x65,0x65,0x64,0x00,0x3D, - 0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64, - 0x20,0x77,0x6F,0x72,0x6B,0x73,0x20,0x65,0x78,0x61,0x63,0x74, - 0x6C,0x79,0x20,0x61,0x73,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65, - 0x20,0x73,0x6C,0x69,0x64,0x65,0x2C,0x20,0x62,0x75,0x74,0x20, - 0x69,0x74,0x20,0x73,0x6C,0x69,0x64,0x65,0x73,0x20,0x74,0x68, - 0x65,0x16,0x67,0x6C,0x6F,0x62,0x61,0x6C,0x20,0x76,0x6F,0x6C, - 0x75,0x6D,0x65,0x20,0x69,0x6E,0x73,0x74,0x65,0x61,0x64,0x2E, - 0x00,0x11,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31, - 0x4B,0x65,0x79,0x20,0x6F,0x66,0x66,0x0B,0x3E,0x40,0x58,0x30, - 0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x10,0x53,0x79,0x6E,0x74, - 0x61,0x78,0x3A,0x20,0x4B,0x20,0x2B,0x20,0x54,0x69,0x63,0x6B, - 0x00,0x3C,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61, - 0x6E,0x64,0x20,0x77,0x69,0x6C,0x6C,0x20,0x74,0x72,0x69,0x67, - 0x67,0x65,0x72,0x20,0x61,0x20,0x22,0x4B,0x65,0x79,0x20,0x6F, - 0x66,0x66,0x22,0x20,0x61,0x74,0x20,0x74,0x68,0x65,0x20,0x73, - 0x70,0x65,0x63,0x69,0x66,0x69,0x65,0x64,0x20,0x74,0x69,0x63, - 0x6B,0x2E,0x00,0x1F,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30, - 0x30,0x31,0x53,0x65,0x74,0x20,0x65,0x6E,0x76,0x65,0x6C,0x6F, - 0x70,0x65,0x20,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x0B, - 0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x14, - 0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x4C,0x20,0x2B,0x20, - 0x50,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x00,0x3E,0x43,0x68, - 0x61,0x6E,0x67,0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x65,0x6E, - 0x76,0x65,0x6C,0x6F,0x70,0x65,0x20,0x70,0x6F,0x73,0x69,0x74, - 0x69,0x6F,0x6E,0x2E,0x20,0x4D,0x61,0x67,0x6E,0x75,0x73,0x20, - 0x74,0x6F,0x6C,0x64,0x20,0x6D,0x65,0x20,0x74,0x68,0x61,0x74, - 0x20,0x69,0x74,0x20,0x77,0x6F,0x75,0x6C,0x64,0x20,0x62,0x65, - 0x0C,0x76,0x65,0x72,0x79,0x20,0x75,0x73,0x61,0x62,0x6C,0x65, - 0x2E,0x00,0x17,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30, - 0x31,0x50,0x61,0x6E,0x6E,0x69,0x6E,0x67,0x20,0x73,0x6C,0x69, - 0x64,0x65,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30, - 0x30,0x32,0x24,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x50, - 0x20,0x2B,0x20,0x52,0x69,0x67,0x68,0x74,0x20,0x73,0x70,0x65, - 0x65,0x64,0x20,0x2B,0x20,0x4C,0x65,0x66,0x74,0x20,0x73,0x70, - 0x65,0x65,0x64,0x00,0x42,0x54,0x68,0x69,0x73,0x20,0x63,0x6F, - 0x6D,0x6D,0x61,0x6E,0x64,0x20,0x73,0x6C,0x69,0x64,0x65,0x73, - 0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x6E,0x6E,0x69,0x6E,0x67, - 0x20,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x2E,0x20,0x49, - 0x74,0x20,0x77,0x6F,0x72,0x6B,0x73,0x20,0x6C,0x69,0x6B,0x65, - 0x20,0x74,0x68,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x3C, - 0x73,0x6C,0x69,0x64,0x65,0x2E,0x20,0x4E,0x6F,0x74,0x65,0x20, - 0x74,0x68,0x61,0x74,0x20,0x73,0x6F,0x6D,0x65,0x20,0x73,0x6F, - 0x75,0x6E,0x64,0x20,0x63,0x61,0x72,0x64,0x73,0x20,0x6D,0x61, - 0x79,0x20,0x6E,0x6F,0x74,0x20,0x68,0x61,0x6E,0x64,0x6C,0x65, - 0x20,0x32,0x35,0x36,0x20,0x70,0x61,0x6E,0x6E,0x69,0x6E,0x67, - 0x0A,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x73,0x2E,0x00, - 0x16,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x4D, - 0x75,0x6C,0x74,0x69,0x20,0x72,0x65,0x74,0x72,0x69,0x67,0x0B, - 0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x24, - 0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x52,0x20,0x2B,0x20, - 0x56,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x63,0x68,0x61,0x6E,0x67, - 0x65,0x20,0x2B,0x20,0x49,0x6E,0x74,0x65,0x72,0x76,0x61,0x6C, - 0x00,0x32,0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x61,0x6E, - 0x20,0x65,0x78,0x74,0x65,0x6E,0x64,0x65,0x64,0x20,0x76,0x65, - 0x72,0x73,0x69,0x6F,0x6E,0x20,0x6F,0x66,0x20,0x74,0x68,0x65, - 0x20,0x72,0x65,0x74,0x72,0x69,0x67,0x20,0x63,0x6F,0x6D,0x6D, - 0x61,0x6E,0x64,0x2E,0x00,0x0E,0x56,0x6F,0x6C,0x75,0x6D,0x65, - 0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x3A,0x1F,0x3E,0x40,0x58, - 0x31,0x30,0x30,0x30,0x20,0x3D,0x20,0x4E,0x6F,0x6E,0x65,0x20, - 0x20,0x40,0x54,0x33,0x30,0x30,0x38,0x20,0x3D,0x20,0x55,0x6E, - 0x75,0x73,0x65,0x64,0x16,0x3E,0x31,0x20,0x3D,0x20,0x2D,0x31, - 0x20,0x20,0x20,0x20,0x40,0x54,0x33,0x30,0x30,0x39,0x20,0x3D, - 0x20,0x2B,0x31,0x16,0x3E,0x32,0x20,0x3D,0x20,0x2D,0x32,0x20, - 0x20,0x20,0x20,0x40,0x54,0x33,0x30,0x30,0x41,0x20,0x3D,0x20, - 0x2B,0x32,0x16,0x3E,0x33,0x20,0x3D,0x20,0x2D,0x34,0x20,0x20, - 0x20,0x20,0x40,0x54,0x33,0x30,0x30,0x42,0x20,0x3D,0x20,0x2B, - 0x34,0x16,0x3E,0x34,0x20,0x3D,0x20,0x2D,0x38,0x20,0x20,0x20, - 0x20,0x40,0x54,0x33,0x30,0x30,0x43,0x20,0x3D,0x20,0x2B,0x38, - 0x17,0x3E,0x35,0x20,0x3D,0x20,0x2D,0x31,0x36,0x20,0x20,0x20, - 0x40,0x54,0x33,0x30,0x30,0x44,0x20,0x3D,0x20,0x2B,0x31,0x36, - 0x18,0x3E,0x36,0x20,0x3D,0x20,0x2A,0x32,0x2F,0x33,0x20,0x20, - 0x40,0x54,0x33,0x30,0x30,0x45,0x20,0x3D,0x20,0x2A,0x33,0x2F, - 0x32,0x16,0x3E,0x37,0x20,0x3D,0x20,0x2A,0x31,0x2F,0x32,0x20, - 0x20,0x40,0x54,0x33,0x30,0x30,0x46,0x20,0x3D,0x20,0x2A,0x32, - 0x00,0x10,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31, - 0x54,0x72,0x65,0x6D,0x6F,0x72,0x0B,0x3E,0x40,0x58,0x30,0x36, - 0x30,0x40,0x43,0x30,0x30,0x32,0x1E,0x53,0x79,0x6E,0x74,0x61, - 0x78,0x3A,0x20,0x54,0x20,0x2B,0x20,0x4F,0x6E,0x20,0x74,0x69, - 0x6D,0x65,0x20,0x2B,0x20,0x4F,0x66,0x66,0x20,0x74,0x69,0x6D, - 0x65,0x00,0x3E,0x54,0x68,0x69,0x73,0x20,0x77,0x65,0x69,0x72, - 0x64,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x77,0x69, - 0x6C,0x6C,0x20,0x73,0x65,0x74,0x20,0x74,0x68,0x65,0x20,0x76, - 0x6F,0x6C,0x75,0x6D,0x65,0x20,0x74,0x6F,0x20,0x7A,0x65,0x72, - 0x6F,0x20,0x64,0x75,0x72,0x69,0x6E,0x67,0x20,0x6F,0x66,0x66, - 0x20,0x74,0x69,0x6D,0x65,0x36,0x6E,0x75,0x6D,0x62,0x65,0x72, - 0x20,0x6F,0x66,0x20,0x74,0x69,0x63,0x6B,0x73,0x2E,0x20,0x49, - 0x74,0x20,0x69,0x73,0x20,0x69,0x6E,0x63,0x6C,0x75,0x64,0x65, - 0x64,0x20,0x66,0x6F,0x72,0x20,0x53,0x54,0x4D,0x20,0x63,0x6F, - 0x6D,0x70,0x61,0x74,0x69,0x62,0x69,0x6C,0x69,0x74,0x79,0x2E, - 0x00,0x27,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31, - 0x45,0x78,0x74,0x72,0x61,0x20,0x66,0x69,0x6E,0x65,0x20,0x70, - 0x6F,0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,0x20,0x75,0x70, - 0x2F,0x64,0x6F,0x77,0x6E,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30, - 0x40,0x43,0x30,0x30,0x32,0x19,0x53,0x79,0x6E,0x74,0x61,0x78, - 0x3A,0x20,0x58,0x28,0x31,0x20,0x6F,0x72,0x20,0x32,0x29,0x20, - 0x2B,0x20,0x53,0x70,0x65,0x65,0x64,0x00,0x3C,0x54,0x68,0x69, - 0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x77,0x6F, - 0x72,0x6B,0x73,0x20,0x61,0x73,0x20,0x66,0x69,0x6E,0x65,0x20, + 0x14,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x4C,0x20,0x2B, + 0x20,0x50,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x00,0x3E,0x43, + 0x68,0x61,0x6E,0x67,0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x65, + 0x6E,0x76,0x65,0x6C,0x6F,0x70,0x65,0x20,0x70,0x6F,0x73,0x69, + 0x74,0x69,0x6F,0x6E,0x2E,0x20,0x4D,0x61,0x67,0x6E,0x75,0x73, + 0x20,0x74,0x6F,0x6C,0x64,0x20,0x6D,0x65,0x20,0x74,0x68,0x61, + 0x74,0x20,0x69,0x74,0x20,0x77,0x6F,0x75,0x6C,0x64,0x20,0x62, + 0x65,0x0C,0x76,0x65,0x72,0x79,0x20,0x75,0x73,0x61,0x62,0x6C, + 0x65,0x2E,0x00,0x17,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30, + 0x30,0x31,0x50,0x61,0x6E,0x6E,0x69,0x6E,0x67,0x20,0x73,0x6C, + 0x69,0x64,0x65,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43, + 0x30,0x30,0x32,0x24,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20, + 0x50,0x20,0x2B,0x20,0x52,0x69,0x67,0x68,0x74,0x20,0x73,0x70, + 0x65,0x65,0x64,0x20,0x2B,0x20,0x4C,0x65,0x66,0x74,0x20,0x73, + 0x70,0x65,0x65,0x64,0x00,0x42,0x54,0x68,0x69,0x73,0x20,0x63, + 0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x73,0x6C,0x69,0x64,0x65, + 0x73,0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x6E,0x6E,0x69,0x6E, + 0x67,0x20,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x2E,0x20, + 0x49,0x74,0x20,0x77,0x6F,0x72,0x6B,0x73,0x20,0x6C,0x69,0x6B, + 0x65,0x20,0x74,0x68,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65, + 0x3C,0x73,0x6C,0x69,0x64,0x65,0x2E,0x20,0x4E,0x6F,0x74,0x65, + 0x20,0x74,0x68,0x61,0x74,0x20,0x73,0x6F,0x6D,0x65,0x20,0x73, + 0x6F,0x75,0x6E,0x64,0x20,0x63,0x61,0x72,0x64,0x73,0x20,0x6D, + 0x61,0x79,0x20,0x6E,0x6F,0x74,0x20,0x68,0x61,0x6E,0x64,0x6C, + 0x65,0x20,0x32,0x35,0x36,0x20,0x70,0x61,0x6E,0x6E,0x69,0x6E, + 0x67,0x0A,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x73,0x2E, + 0x00,0x16,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31, + 0x4D,0x75,0x6C,0x74,0x69,0x20,0x72,0x65,0x74,0x72,0x69,0x67, + 0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32, + 0x24,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x52,0x20,0x2B, + 0x20,0x56,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x63,0x68,0x61,0x6E, + 0x67,0x65,0x20,0x2B,0x20,0x49,0x6E,0x74,0x65,0x72,0x76,0x61, + 0x6C,0x00,0x32,0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x61, + 0x6E,0x20,0x65,0x78,0x74,0x65,0x6E,0x64,0x65,0x64,0x20,0x76, + 0x65,0x72,0x73,0x69,0x6F,0x6E,0x20,0x6F,0x66,0x20,0x74,0x68, + 0x65,0x20,0x72,0x65,0x74,0x72,0x69,0x67,0x20,0x63,0x6F,0x6D, + 0x6D,0x61,0x6E,0x64,0x2E,0x00,0x0E,0x56,0x6F,0x6C,0x75,0x6D, + 0x65,0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x3A,0x1F,0x3E,0x40, + 0x58,0x31,0x30,0x30,0x30,0x20,0x3D,0x20,0x4E,0x6F,0x6E,0x65, + 0x20,0x20,0x40,0x54,0x33,0x30,0x30,0x38,0x20,0x3D,0x20,0x55, + 0x6E,0x75,0x73,0x65,0x64,0x16,0x3E,0x31,0x20,0x3D,0x20,0x2D, + 0x31,0x20,0x20,0x20,0x20,0x40,0x54,0x33,0x30,0x30,0x39,0x20, + 0x3D,0x20,0x2B,0x31,0x16,0x3E,0x32,0x20,0x3D,0x20,0x2D,0x32, + 0x20,0x20,0x20,0x20,0x40,0x54,0x33,0x30,0x30,0x41,0x20,0x3D, + 0x20,0x2B,0x32,0x16,0x3E,0x33,0x20,0x3D,0x20,0x2D,0x34,0x20, + 0x20,0x20,0x20,0x40,0x54,0x33,0x30,0x30,0x42,0x20,0x3D,0x20, + 0x2B,0x34,0x16,0x3E,0x34,0x20,0x3D,0x20,0x2D,0x38,0x20,0x20, + 0x20,0x20,0x40,0x54,0x33,0x30,0x30,0x43,0x20,0x3D,0x20,0x2B, + 0x38,0x17,0x3E,0x35,0x20,0x3D,0x20,0x2D,0x31,0x36,0x20,0x20, + 0x20,0x40,0x54,0x33,0x30,0x30,0x44,0x20,0x3D,0x20,0x2B,0x31, + 0x36,0x18,0x3E,0x36,0x20,0x3D,0x20,0x2A,0x32,0x2F,0x33,0x20, + 0x20,0x40,0x54,0x33,0x30,0x30,0x45,0x20,0x3D,0x20,0x2A,0x33, + 0x2F,0x32,0x16,0x3E,0x37,0x20,0x3D,0x20,0x2A,0x31,0x2F,0x32, + 0x20,0x20,0x40,0x54,0x33,0x30,0x30,0x46,0x20,0x3D,0x20,0x2A, + 0x32,0x00,0x10,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30, + 0x31,0x54,0x72,0x65,0x6D,0x6F,0x72,0x0B,0x3E,0x40,0x58,0x30, + 0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x1E,0x53,0x79,0x6E,0x74, + 0x61,0x78,0x3A,0x20,0x54,0x20,0x2B,0x20,0x4F,0x6E,0x20,0x74, + 0x69,0x6D,0x65,0x20,0x2B,0x20,0x4F,0x66,0x66,0x20,0x74,0x69, + 0x6D,0x65,0x00,0x3E,0x54,0x68,0x69,0x73,0x20,0x77,0x65,0x69, + 0x72,0x64,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x77, + 0x69,0x6C,0x6C,0x20,0x73,0x65,0x74,0x20,0x74,0x68,0x65,0x20, + 0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x74,0x6F,0x20,0x7A,0x65, + 0x72,0x6F,0x20,0x64,0x75,0x72,0x69,0x6E,0x67,0x20,0x6F,0x66, + 0x66,0x20,0x74,0x69,0x6D,0x65,0x36,0x6E,0x75,0x6D,0x62,0x65, + 0x72,0x20,0x6F,0x66,0x20,0x74,0x69,0x63,0x6B,0x73,0x2E,0x20, + 0x49,0x74,0x20,0x69,0x73,0x20,0x69,0x6E,0x63,0x6C,0x75,0x64, + 0x65,0x64,0x20,0x66,0x6F,0x72,0x20,0x53,0x54,0x4D,0x20,0x63, + 0x6F,0x6D,0x70,0x61,0x74,0x69,0x62,0x69,0x6C,0x69,0x74,0x79, + 0x2E,0x00,0x27,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30, + 0x31,0x45,0x78,0x74,0x72,0x61,0x20,0x66,0x69,0x6E,0x65,0x20, 0x70,0x6F,0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,0x20,0x75, - 0x70,0x2F,0x64,0x6F,0x77,0x6E,0x2C,0x20,0x62,0x75,0x74,0x20, - 0x74,0x68,0x65,0x20,0x73,0x70,0x65,0x65,0x64,0x18,0x77,0x69, - 0x6C,0x6C,0x20,0x62,0x65,0x20,0x64,0x69,0x76,0x69,0x64,0x65, - 0x64,0x20,0x62,0x79,0x20,0x66,0x6F,0x75,0x72,0x2E,0x00,0x03, - 0x45,0x4E,0x44,0x4C,0x3B,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, - 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, - 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, - 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, - 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, - 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, - 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x4C,0x3B,0x2A,0x2A, - 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, - 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, - 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, - 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, - 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, - 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, - 0x2A,0x0D,0x40,0x4C,0x4B,0x65,0x79,0x62,0x69,0x6E,0x64,0x69, - 0x6E,0x67,0x73,0x0B,0x3E,0x40,0x58,0x30,0x32,0x30,0x40,0x43, - 0x30,0x30,0x32,0x4A,0x3E,0x49,0x66,0x20,0x79,0x6F,0x75,0x20, - 0x68,0x61,0x76,0x65,0x20,0x61,0x6E,0x20,0x61,0x6D,0x62,0x69, - 0x74,0x69,0x6F,0x6E,0x20,0x74,0x6F,0x20,0x63,0x72,0x65,0x61, - 0x74,0x65,0x20,0x6D,0x75,0x73,0x69,0x63,0x20,0x65,0x66,0x66, - 0x69,0x63,0x69,0x65,0x6E,0x74,0x6C,0x79,0x20,0x77,0x65,0x20, - 0x73,0x74,0x72,0x6F,0x6E,0x67,0x6C,0x79,0x20,0x72,0x65,0x63, - 0x6F,0x6D,0x6D,0x65,0x6E,0x64,0x44,0x74,0x68,0x61,0x74,0x20, - 0x79,0x6F,0x75,0x20,0x6C,0x65,0x61,0x72,0x6E,0x20,0x41,0x4C, - 0x4C,0x20,0x74,0x68,0x65,0x20,0x6B,0x65,0x79,0x62,0x6F,0x61, - 0x72,0x64,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x73, - 0x2E,0x20,0x4D,0x61,0x6E,0x79,0x20,0x6F,0x66,0x20,0x74,0x68, - 0x65,0x6D,0x20,0x61,0x72,0x65,0x20,0x74,0x68,0x65,0x20,0x73, - 0x61,0x6D,0x65,0x45,0x66,0x72,0x6F,0x6D,0x20,0x46,0x61,0x73, - 0x74,0x74,0x72,0x61,0x63,0x6B,0x65,0x72,0x20,0x31,0x20,0x61, - 0x6E,0x64,0x20,0x50,0x72,0x6F,0x54,0x72,0x61,0x63,0x6B,0x65, - 0x72,0x20,0x74,0x6F,0x20,0x65,0x6E,0x73,0x75,0x72,0x65,0x20, - 0x74,0x68,0x61,0x74,0x20,0x79,0x6F,0x75,0x20,0x66,0x65,0x65, - 0x6C,0x20,0x63,0x6F,0x6D,0x66,0x6F,0x72,0x74,0x61,0x62,0x6C, - 0x65,0x2E,0x75,0x73,0x69,0x6E,0x67,0x20,0x74,0x68,0x69,0x73, - 0x20,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x20,0x66,0x72,0x6F, - 0x6D,0x20,0x74,0x68,0x65,0x20,0x76,0x65,0x72,0x79,0x20,0x66, - 0x69,0x72,0x73,0x74,0x20,0x6D,0x69,0x6E,0x75,0x74,0x65,0x2E, - 0x01,0x3E,0x2B,0x3E,0x40,0x58,0x30,0x32,0x30,0x40,0x43,0x30, - 0x30,0x32,0x4E,0x6F,0x74,0x65,0x20,0x66,0x6F,0x72,0x20,0x4D, - 0x61,0x63,0x20,0x6B,0x65,0x79,0x62,0x6F,0x61,0x72,0x64,0x73, - 0x20,0x6F,0x6E,0x20,0x4D,0x61,0x63,0x4F,0x53,0x3A,0x2F,0x3E, - 0x40,0x43,0x30,0x30,0x32,0x2D,0x20,0x54,0x68,0x65,0x20,0x6C, - 0x65,0x66,0x74,0x20,0x4F,0x70,0x74,0x69,0x6F,0x6E,0x20,0x6B, - 0x65,0x79,0x20,0x69,0x73,0x20,0x74,0x68,0x65,0x20,0x6C,0x65, - 0x66,0x74,0x20,0x41,0x6C,0x74,0x20,0x6B,0x65,0x79,0x3B,0x3E, - 0x2D,0x20,0x54,0x68,0x65,0x20,0x6C,0x65,0x66,0x74,0x20,0x43, - 0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x6B,0x65,0x79,0x20,0x63, - 0x61,0x6E,0x20,0x61,0x6C,0x73,0x6F,0x20,0x62,0x65,0x20,0x75, - 0x73,0x65,0x64,0x20,0x69,0x6E,0x73,0x74,0x65,0x61,0x64,0x20, - 0x6F,0x66,0x20,0x41,0x6C,0x74,0x20,0x66,0x6F,0x72,0x3A,0x3E, - 0x40,0x58,0x30,0x33,0x31,0x22,0x73,0x65,0x6C,0x65,0x63,0x74, - 0x20,0x61,0x6C,0x6C,0x22,0x2F,0x63,0x75,0x74,0x2F,0x63,0x6F, - 0x70,0x79,0x2F,0x70,0x61,0x73,0x74,0x65,0x20,0x66,0x6F,0x72, - 0x20,0x74,0x65,0x78,0x74,0x2F,0x73,0x61,0x6D,0x70,0x6C,0x65, - 0x20,0x65,0x64,0x69,0x74,0x69,0x6E,0x67,0x2E,0x0B,0x3E,0x40, - 0x58,0x30,0x32,0x30,0x40,0x43,0x30,0x30,0x31,0x26,0x3E,0x59, - 0x6F,0x75,0x20,0x73,0x68,0x6F,0x75,0x6C,0x64,0x20,0x62,0x65, - 0x20,0x61,0x77,0x61,0x72,0x65,0x20,0x6F,0x66,0x20,0x74,0x68, - 0x65,0x20,0x66,0x61,0x63,0x74,0x20,0x74,0x68,0x61,0x74,0x3A, - 0x01,0x3E,0x48,0x3E,0x40,0x43,0x30,0x30,0x32,0x54,0x68,0x69, - 0x73,0x20,0x68,0x65,0x6C,0x70,0x20,0x74,0x65,0x78,0x74,0x20, - 0x69,0x73,0x20,0x77,0x72,0x69,0x74,0x74,0x65,0x6E,0x20,0x75, - 0x73,0x69,0x6E,0x67,0x20,0x61,0x20,0x53,0x77,0x65,0x64,0x69, - 0x73,0x68,0x20,0x6B,0x65,0x79,0x62,0x6F,0x61,0x72,0x64,0x2E, - 0x20,0x54,0x68,0x65,0x72,0x65,0x66,0x6F,0x72,0x65,0x20,0x73, - 0x6F,0x6D,0x65,0x2F,0x72,0x65,0x66,0x65,0x72,0x65,0x6E,0x63, - 0x65,0x73,0x20,0x74,0x6F,0x20,0x6E,0x6F,0x6E,0x2D,0x6F,0x72, - 0x64,0x69,0x6E,0x61,0x72,0x79,0x20,0x6B,0x65,0x79,0x73,0x20, - 0x6D,0x69,0x67,0x68,0x74,0x20,0x62,0x65,0x20,0x77,0x72,0x6F, - 0x6E,0x67,0x2E,0x0F,0x53,0x68,0x20,0x3D,0x20,0x73,0x68,0x69, - 0x66,0x74,0x20,0x6B,0x65,0x79,0x2E,0x01,0x3E,0x10,0x40,0x58, - 0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x41,0x75,0x64,0x69, - 0x6F,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30, - 0x30,0x32,0x32,0x3E,0x43,0x74,0x72,0x6C,0x20,0x26,0x20,0x6E, - 0x75,0x6D,0x70,0x61,0x64,0x2B,0x20,0x40,0x54,0x31,0x36,0x30, - 0x49,0x6E,0x63,0x72,0x65,0x61,0x73,0x65,0x20,0x6D,0x61,0x73, - 0x74,0x65,0x72,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x62, - 0x79,0x20,0x31,0x36,0x2E,0x32,0x3E,0x43,0x74,0x72,0x6C,0x20, - 0x26,0x20,0x6E,0x75,0x6D,0x70,0x61,0x64,0x2D,0x20,0x40,0x54, - 0x31,0x36,0x30,0x44,0x65,0x63,0x72,0x65,0x61,0x73,0x65,0x20, - 0x6D,0x61,0x73,0x74,0x65,0x72,0x20,0x76,0x6F,0x6C,0x75,0x6D, - 0x65,0x20,0x62,0x79,0x20,0x31,0x36,0x2E,0x00,0x10,0x40,0x58, - 0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x56,0x69,0x64,0x65, - 0x6F,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30, - 0x30,0x32,0x25,0x41,0x6C,0x74,0x2B,0x45,0x6E,0x74,0x65,0x72, - 0x20,0x40,0x54,0x31,0x36,0x30,0x54,0x6F,0x67,0x67,0x6C,0x65, - 0x20,0x66,0x75,0x6C,0x6C,0x73,0x63,0x72,0x65,0x65,0x6E,0x20, - 0x6D,0x6F,0x64,0x65,0x01,0x3E,0x2C,0x3E,0x28,0x4F,0x72,0x20, - 0x22,0x4C,0x65,0x66,0x74,0x20,0x43,0x74,0x72,0x6C,0x20,0x2B, - 0x20,0x4C,0x65,0x66,0x74,0x20,0x43,0x6F,0x6D,0x6D,0x61,0x6E, - 0x64,0x20,0x2B,0x20,0x46,0x22,0x20,0x6F,0x6E,0x20,0x4D,0x61, - 0x63,0x73,0x29,0x00,0x17,0x40,0x58,0x30,0x34,0x30,0x40,0x43, - 0x30,0x30,0x31,0x43,0x75,0x72,0x73,0x6F,0x72,0x20,0x6D,0x6F, - 0x76,0x65,0x73,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40, - 0x43,0x30,0x30,0x32,0x1D,0x46,0x39,0x2E,0x2E,0x46,0x31,0x32, - 0x20,0x40,0x54,0x31,0x36,0x30,0x4A,0x75,0x6D,0x70,0x20,0x69, - 0x6E,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x2E,0x32,0x3E, - 0x43,0x74,0x72,0x6C,0x2B,0x46,0x39,0x2E,0x2E,0x46,0x31,0x32, - 0x20,0x40,0x54,0x31,0x36,0x30,0x50,0x61,0x74,0x74,0x65,0x72, - 0x6E,0x2D,0x70,0x6C,0x61,0x79,0x20,0x66,0x72,0x6F,0x6D,0x20, - 0x46,0x39,0x2E,0x2E,0x46,0x31,0x32,0x20,0x6C,0x69,0x6E,0x65, - 0x2E,0x2F,0x3E,0x53,0x68,0x2B,0x46,0x39,0x2E,0x2E,0x46,0x31, - 0x32,0x20,0x40,0x54,0x31,0x36,0x30,0x53,0x74,0x6F,0x72,0x65, - 0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x6C,0x69,0x6E, - 0x65,0x20,0x69,0x6E,0x20,0x46,0x39,0x2E,0x2E,0x46,0x31,0x32, - 0x2E,0x24,0x3E,0x50,0x61,0x67,0x65,0x55,0x70,0x20,0x20,0x40, - 0x54,0x31,0x36,0x30,0x4A,0x75,0x6D,0x70,0x20,0x31,0x36,0x2D, - 0x6C,0x69,0x6E,0x65,0x73,0x20,0x75,0x70,0x77,0x61,0x72,0x64, - 0x73,0x2E,0x27,0x3E,0x50,0x61,0x67,0x65,0x44,0x6F,0x77,0x6E, - 0x20,0x40,0x54,0x31,0x36,0x30,0x4A,0x75,0x6D,0x70,0x20,0x31, - 0x36,0x2D,0x6C,0x69,0x6E,0x65,0x73,0x20,0x64,0x6F,0x77,0x6E, - 0x77,0x61,0x72,0x64,0x73,0x2E,0x1B,0x3E,0x48,0x6F,0x6D,0x65, - 0x20,0x20,0x40,0x54,0x31,0x36,0x30,0x4A,0x75,0x6D,0x70,0x20, - 0x74,0x6F,0x20,0x6C,0x69,0x6E,0x65,0x20,0x30,0x2E,0x1D,0x3E, - 0x45,0x6E,0x64,0x20,0x20,0x40,0x54,0x31,0x36,0x30,0x4A,0x75, - 0x6D,0x70,0x20,0x74,0x6F,0x20,0x6C,0x61,0x73,0x74,0x20,0x6C, - 0x69,0x6E,0x65,0x2E,0x1E,0x3E,0x54,0x61,0x62,0x20,0x20,0x40, + 0x70,0x2F,0x64,0x6F,0x77,0x6E,0x0B,0x3E,0x40,0x58,0x30,0x36, + 0x30,0x40,0x43,0x30,0x30,0x32,0x19,0x53,0x79,0x6E,0x74,0x61, + 0x78,0x3A,0x20,0x58,0x28,0x31,0x20,0x6F,0x72,0x20,0x32,0x29, + 0x20,0x2B,0x20,0x53,0x70,0x65,0x65,0x64,0x00,0x3C,0x54,0x68, + 0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x77, + 0x6F,0x72,0x6B,0x73,0x20,0x61,0x73,0x20,0x66,0x69,0x6E,0x65, + 0x20,0x70,0x6F,0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,0x20, + 0x75,0x70,0x2F,0x64,0x6F,0x77,0x6E,0x2C,0x20,0x62,0x75,0x74, + 0x20,0x74,0x68,0x65,0x20,0x73,0x70,0x65,0x65,0x64,0x18,0x77, + 0x69,0x6C,0x6C,0x20,0x62,0x65,0x20,0x64,0x69,0x76,0x69,0x64, + 0x65,0x64,0x20,0x62,0x79,0x20,0x66,0x6F,0x75,0x72,0x2E,0x00, + 0x03,0x45,0x4E,0x44,0x4C,0x3B,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, + 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, + 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, + 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, + 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, + 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, + 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x4C,0x3B,0x2A, + 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, + 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, + 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, + 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, + 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, + 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, + 0x2A,0x2A,0x0D,0x40,0x4C,0x4B,0x65,0x79,0x62,0x69,0x6E,0x64, + 0x69,0x6E,0x67,0x73,0x0B,0x3E,0x40,0x58,0x30,0x32,0x30,0x40, + 0x43,0x30,0x30,0x32,0x4A,0x3E,0x49,0x66,0x20,0x79,0x6F,0x75, + 0x20,0x68,0x61,0x76,0x65,0x20,0x61,0x6E,0x20,0x61,0x6D,0x62, + 0x69,0x74,0x69,0x6F,0x6E,0x20,0x74,0x6F,0x20,0x63,0x72,0x65, + 0x61,0x74,0x65,0x20,0x6D,0x75,0x73,0x69,0x63,0x20,0x65,0x66, + 0x66,0x69,0x63,0x69,0x65,0x6E,0x74,0x6C,0x79,0x20,0x77,0x65, + 0x20,0x73,0x74,0x72,0x6F,0x6E,0x67,0x6C,0x79,0x20,0x72,0x65, + 0x63,0x6F,0x6D,0x6D,0x65,0x6E,0x64,0x44,0x74,0x68,0x61,0x74, + 0x20,0x79,0x6F,0x75,0x20,0x6C,0x65,0x61,0x72,0x6E,0x20,0x41, + 0x4C,0x4C,0x20,0x74,0x68,0x65,0x20,0x6B,0x65,0x79,0x62,0x6F, + 0x61,0x72,0x64,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E, + 0x73,0x2E,0x20,0x4D,0x61,0x6E,0x79,0x20,0x6F,0x66,0x20,0x74, + 0x68,0x65,0x6D,0x20,0x61,0x72,0x65,0x20,0x74,0x68,0x65,0x20, + 0x73,0x61,0x6D,0x65,0x45,0x66,0x72,0x6F,0x6D,0x20,0x46,0x61, + 0x73,0x74,0x74,0x72,0x61,0x63,0x6B,0x65,0x72,0x20,0x31,0x20, + 0x61,0x6E,0x64,0x20,0x50,0x72,0x6F,0x54,0x72,0x61,0x63,0x6B, + 0x65,0x72,0x20,0x74,0x6F,0x20,0x65,0x6E,0x73,0x75,0x72,0x65, + 0x20,0x74,0x68,0x61,0x74,0x20,0x79,0x6F,0x75,0x20,0x66,0x65, + 0x65,0x6C,0x20,0x63,0x6F,0x6D,0x66,0x6F,0x72,0x74,0x61,0x62, + 0x6C,0x65,0x2E,0x75,0x73,0x69,0x6E,0x67,0x20,0x74,0x68,0x69, + 0x73,0x20,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x20,0x66,0x72, + 0x6F,0x6D,0x20,0x74,0x68,0x65,0x20,0x76,0x65,0x72,0x79,0x20, + 0x66,0x69,0x72,0x73,0x74,0x20,0x6D,0x69,0x6E,0x75,0x74,0x65, + 0x2E,0x01,0x3E,0x2B,0x3E,0x40,0x58,0x30,0x32,0x30,0x40,0x43, + 0x30,0x30,0x32,0x4E,0x6F,0x74,0x65,0x20,0x66,0x6F,0x72,0x20, + 0x4D,0x61,0x63,0x20,0x6B,0x65,0x79,0x62,0x6F,0x61,0x72,0x64, + 0x73,0x20,0x6F,0x6E,0x20,0x4D,0x61,0x63,0x4F,0x53,0x3A,0x2F, + 0x3E,0x40,0x43,0x30,0x30,0x32,0x2D,0x20,0x54,0x68,0x65,0x20, + 0x6C,0x65,0x66,0x74,0x20,0x4F,0x70,0x74,0x69,0x6F,0x6E,0x20, + 0x6B,0x65,0x79,0x20,0x69,0x73,0x20,0x74,0x68,0x65,0x20,0x6C, + 0x65,0x66,0x74,0x20,0x41,0x6C,0x74,0x20,0x6B,0x65,0x79,0x3B, + 0x3E,0x2D,0x20,0x54,0x68,0x65,0x20,0x6C,0x65,0x66,0x74,0x20, + 0x43,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x6B,0x65,0x79,0x20, + 0x63,0x61,0x6E,0x20,0x61,0x6C,0x73,0x6F,0x20,0x62,0x65,0x20, + 0x75,0x73,0x65,0x64,0x20,0x69,0x6E,0x73,0x74,0x65,0x61,0x64, + 0x20,0x6F,0x66,0x20,0x41,0x6C,0x74,0x20,0x66,0x6F,0x72,0x3A, + 0x3E,0x40,0x58,0x30,0x33,0x31,0x22,0x73,0x65,0x6C,0x65,0x63, + 0x74,0x20,0x61,0x6C,0x6C,0x22,0x2F,0x63,0x75,0x74,0x2F,0x63, + 0x6F,0x70,0x79,0x2F,0x70,0x61,0x73,0x74,0x65,0x20,0x66,0x6F, + 0x72,0x20,0x74,0x65,0x78,0x74,0x2F,0x73,0x61,0x6D,0x70,0x6C, + 0x65,0x20,0x65,0x64,0x69,0x74,0x69,0x6E,0x67,0x2E,0x0B,0x3E, + 0x40,0x58,0x30,0x32,0x30,0x40,0x43,0x30,0x30,0x31,0x26,0x3E, + 0x59,0x6F,0x75,0x20,0x73,0x68,0x6F,0x75,0x6C,0x64,0x20,0x62, + 0x65,0x20,0x61,0x77,0x61,0x72,0x65,0x20,0x6F,0x66,0x20,0x74, + 0x68,0x65,0x20,0x66,0x61,0x63,0x74,0x20,0x74,0x68,0x61,0x74, + 0x3A,0x01,0x3E,0x48,0x3E,0x40,0x43,0x30,0x30,0x32,0x54,0x68, + 0x69,0x73,0x20,0x68,0x65,0x6C,0x70,0x20,0x74,0x65,0x78,0x74, + 0x20,0x69,0x73,0x20,0x77,0x72,0x69,0x74,0x74,0x65,0x6E,0x20, + 0x75,0x73,0x69,0x6E,0x67,0x20,0x61,0x20,0x53,0x77,0x65,0x64, + 0x69,0x73,0x68,0x20,0x6B,0x65,0x79,0x62,0x6F,0x61,0x72,0x64, + 0x2E,0x20,0x54,0x68,0x65,0x72,0x65,0x66,0x6F,0x72,0x65,0x20, + 0x73,0x6F,0x6D,0x65,0x2F,0x72,0x65,0x66,0x65,0x72,0x65,0x6E, + 0x63,0x65,0x73,0x20,0x74,0x6F,0x20,0x6E,0x6F,0x6E,0x2D,0x6F, + 0x72,0x64,0x69,0x6E,0x61,0x72,0x79,0x20,0x6B,0x65,0x79,0x73, + 0x20,0x6D,0x69,0x67,0x68,0x74,0x20,0x62,0x65,0x20,0x77,0x72, + 0x6F,0x6E,0x67,0x2E,0x0F,0x53,0x68,0x20,0x3D,0x20,0x73,0x68, + 0x69,0x66,0x74,0x20,0x6B,0x65,0x79,0x2E,0x01,0x3E,0x10,0x40, + 0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x41,0x75,0x64, + 0x69,0x6F,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43, + 0x30,0x30,0x32,0x32,0x3E,0x43,0x74,0x72,0x6C,0x20,0x26,0x20, + 0x6E,0x75,0x6D,0x70,0x61,0x64,0x2B,0x20,0x40,0x54,0x31,0x36, + 0x30,0x49,0x6E,0x63,0x72,0x65,0x61,0x73,0x65,0x20,0x6D,0x61, + 0x73,0x74,0x65,0x72,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20, + 0x62,0x79,0x20,0x31,0x36,0x2E,0x32,0x3E,0x43,0x74,0x72,0x6C, + 0x20,0x26,0x20,0x6E,0x75,0x6D,0x70,0x61,0x64,0x2D,0x20,0x40, + 0x54,0x31,0x36,0x30,0x44,0x65,0x63,0x72,0x65,0x61,0x73,0x65, + 0x20,0x6D,0x61,0x73,0x74,0x65,0x72,0x20,0x76,0x6F,0x6C,0x75, + 0x6D,0x65,0x20,0x62,0x79,0x20,0x31,0x36,0x2E,0x00,0x10,0x40, + 0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x56,0x69,0x64, + 0x65,0x6F,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43, + 0x30,0x30,0x32,0x25,0x41,0x6C,0x74,0x2B,0x45,0x6E,0x74,0x65, + 0x72,0x20,0x40,0x54,0x31,0x36,0x30,0x54,0x6F,0x67,0x67,0x6C, + 0x65,0x20,0x66,0x75,0x6C,0x6C,0x73,0x63,0x72,0x65,0x65,0x6E, + 0x20,0x6D,0x6F,0x64,0x65,0x01,0x3E,0x2C,0x3E,0x28,0x4F,0x72, + 0x20,0x22,0x4C,0x65,0x66,0x74,0x20,0x43,0x74,0x72,0x6C,0x20, + 0x2B,0x20,0x4C,0x65,0x66,0x74,0x20,0x43,0x6F,0x6D,0x6D,0x61, + 0x6E,0x64,0x20,0x2B,0x20,0x46,0x22,0x20,0x6F,0x6E,0x20,0x4D, + 0x61,0x63,0x73,0x29,0x00,0x17,0x40,0x58,0x30,0x34,0x30,0x40, + 0x43,0x30,0x30,0x31,0x43,0x75,0x72,0x73,0x6F,0x72,0x20,0x6D, + 0x6F,0x76,0x65,0x73,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30, + 0x40,0x43,0x30,0x30,0x32,0x1D,0x46,0x39,0x2E,0x2E,0x46,0x31, + 0x32,0x20,0x40,0x54,0x31,0x36,0x30,0x4A,0x75,0x6D,0x70,0x20, + 0x69,0x6E,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x2E,0x32, + 0x3E,0x43,0x74,0x72,0x6C,0x2B,0x46,0x39,0x2E,0x2E,0x46,0x31, + 0x32,0x20,0x40,0x54,0x31,0x36,0x30,0x50,0x61,0x74,0x74,0x65, + 0x72,0x6E,0x2D,0x70,0x6C,0x61,0x79,0x20,0x66,0x72,0x6F,0x6D, + 0x20,0x46,0x39,0x2E,0x2E,0x46,0x31,0x32,0x20,0x6C,0x69,0x6E, + 0x65,0x2E,0x2F,0x3E,0x53,0x68,0x2B,0x46,0x39,0x2E,0x2E,0x46, + 0x31,0x32,0x20,0x40,0x54,0x31,0x36,0x30,0x53,0x74,0x6F,0x72, + 0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x6C,0x69, + 0x6E,0x65,0x20,0x69,0x6E,0x20,0x46,0x39,0x2E,0x2E,0x46,0x31, + 0x32,0x2E,0x24,0x3E,0x50,0x61,0x67,0x65,0x55,0x70,0x20,0x20, + 0x40,0x54,0x31,0x36,0x30,0x4A,0x75,0x6D,0x70,0x20,0x31,0x36, + 0x2D,0x6C,0x69,0x6E,0x65,0x73,0x20,0x75,0x70,0x77,0x61,0x72, + 0x64,0x73,0x2E,0x27,0x3E,0x50,0x61,0x67,0x65,0x44,0x6F,0x77, + 0x6E,0x20,0x40,0x54,0x31,0x36,0x30,0x4A,0x75,0x6D,0x70,0x20, + 0x31,0x36,0x2D,0x6C,0x69,0x6E,0x65,0x73,0x20,0x64,0x6F,0x77, + 0x6E,0x77,0x61,0x72,0x64,0x73,0x2E,0x1B,0x3E,0x48,0x6F,0x6D, + 0x65,0x20,0x20,0x40,0x54,0x31,0x36,0x30,0x4A,0x75,0x6D,0x70, + 0x20,0x74,0x6F,0x20,0x6C,0x69,0x6E,0x65,0x20,0x30,0x2E,0x1D, + 0x3E,0x45,0x6E,0x64,0x20,0x20,0x40,0x54,0x31,0x36,0x30,0x4A, + 0x75,0x6D,0x70,0x20,0x74,0x6F,0x20,0x6C,0x61,0x73,0x74,0x20, + 0x6C,0x69,0x6E,0x65,0x2E,0x1E,0x3E,0x54,0x61,0x62,0x20,0x20, + 0x40,0x54,0x31,0x36,0x30,0x4A,0x75,0x6D,0x70,0x20,0x74,0x6F, + 0x20,0x6E,0x65,0x78,0x74,0x20,0x74,0x72,0x61,0x63,0x6B,0x2E, + 0x33,0x3E,0x41,0x6C,0x74,0x2B,0x51,0x2E,0x2E,0x49,0x20,0x40, 0x54,0x31,0x36,0x30,0x4A,0x75,0x6D,0x70,0x20,0x74,0x6F,0x20, - 0x6E,0x65,0x78,0x74,0x20,0x74,0x72,0x61,0x63,0x6B,0x2E,0x33, - 0x3E,0x41,0x6C,0x74,0x2B,0x51,0x2E,0x2E,0x49,0x20,0x40,0x54, - 0x31,0x36,0x30,0x4A,0x75,0x6D,0x70,0x20,0x74,0x6F,0x20,0x74, - 0x72,0x61,0x63,0x6B,0x20,0x28,0x30,0x2E,0x2E,0x37,0x29,0x20, - 0x4D,0x4F,0x44,0x20,0x4E,0x2D,0x43,0x68,0x61,0x6E,0x6E,0x65, - 0x6C,0x73,0x2E,0x34,0x3E,0x41,0x6C,0x74,0x2B,0x41,0x2E,0x2E, - 0x4B,0x20,0x40,0x54,0x31,0x36,0x30,0x4A,0x75,0x6D,0x70,0x20, - 0x74,0x6F,0x20,0x74,0x72,0x61,0x63,0x6B,0x20,0x28,0x38,0x2E, - 0x2E,0x31,0x35,0x29,0x20,0x4D,0x4F,0x44,0x20,0x4E,0x2D,0x43, - 0x68,0x61,0x6E,0x6E,0x65,0x6C,0x73,0x2E,0x00,0x19,0x40,0x58, - 0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x43,0x75,0x74,0x2F, - 0x43,0x6F,0x70,0x79,0x2F,0x50,0x61,0x73,0x74,0x65,0x3A,0x0B, - 0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x34, - 0x44,0x65,0x6C,0x65,0x74,0x65,0x20,0x20,0x40,0x54,0x31,0x36, - 0x30,0x44,0x65,0x6C,0x65,0x74,0x65,0x20,0x6E,0x6F,0x74,0x65, - 0x20,0x6F,0x72,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x63, - 0x6F,0x6C,0x75,0x6D,0x6E,0x20,0x61,0x74,0x20,0x63,0x75,0x72, - 0x73,0x6F,0x72,0x2E,0x39,0x3E,0x53,0x68,0x2B,0x44,0x65,0x6C, - 0x65,0x74,0x65,0x20,0x40,0x54,0x31,0x36,0x30,0x44,0x65,0x6C, - 0x65,0x74,0x65,0x20,0x6E,0x6F,0x74,0x65,0x2C,0x20,0x76,0x6F, - 0x6C,0x75,0x6D,0x65,0x20,0x61,0x6E,0x64,0x20,0x65,0x66,0x66, - 0x65,0x63,0x74,0x20,0x61,0x74,0x20,0x63,0x75,0x72,0x73,0x6F, - 0x72,0x2E,0x35,0x3E,0x43,0x74,0x72,0x6C,0x2B,0x44,0x65,0x6C, - 0x65,0x74,0x65,0x20,0x40,0x54,0x31,0x36,0x30,0x44,0x65,0x6C, - 0x65,0x74,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x61, - 0x6E,0x64,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x20,0x61,0x74, - 0x20,0x63,0x75,0x72,0x73,0x6F,0x72,0x2E,0x29,0x3E,0x41,0x6C, - 0x74,0x2B,0x44,0x65,0x6C,0x65,0x74,0x65,0x20,0x40,0x54,0x31, - 0x36,0x30,0x44,0x65,0x6C,0x65,0x74,0x65,0x20,0x65,0x66,0x66, - 0x65,0x63,0x74,0x20,0x61,0x74,0x20,0x63,0x75,0x72,0x73,0x6F, - 0x72,0x2E,0x24,0x3E,0x49,0x6E,0x73,0x65,0x72,0x74,0x20,0x20, - 0x40,0x54,0x31,0x36,0x30,0x49,0x6E,0x73,0x65,0x72,0x74,0x20, - 0x6E,0x6F,0x74,0x65,0x20,0x61,0x74,0x20,0x63,0x75,0x72,0x73, - 0x6F,0x72,0x2E,0x27,0x3E,0x53,0x68,0x2B,0x49,0x6E,0x73,0x65, - 0x72,0x74,0x20,0x20,0x40,0x54,0x31,0x36,0x30,0x49,0x6E,0x73, - 0x65,0x72,0x74,0x20,0x6C,0x69,0x6E,0x65,0x20,0x61,0x74,0x20, - 0x63,0x75,0x72,0x73,0x6F,0x72,0x2E,0x25,0x3E,0x42,0x61,0x63, - 0x6B,0x73,0x70,0x61,0x63,0x65,0x20,0x40,0x54,0x31,0x36,0x30, - 0x44,0x65,0x6C,0x65,0x74,0x65,0x20,0x70,0x72,0x65,0x76,0x69, - 0x6F,0x75,0x73,0x20,0x6E,0x6F,0x74,0x65,0x2E,0x28,0x3E,0x53, - 0x68,0x2B,0x42,0x61,0x63,0x6B,0x73,0x70,0x61,0x63,0x65,0x20, - 0x40,0x54,0x31,0x36,0x30,0x44,0x65,0x6C,0x65,0x74,0x65,0x20, - 0x70,0x72,0x65,0x76,0x69,0x6F,0x75,0x73,0x20,0x6C,0x69,0x6E, - 0x65,0x2E,0x1C,0x3E,0x41,0x6C,0x74,0x2B,0x43,0x75,0x72,0x73, - 0x6F,0x72,0x20,0x40,0x54,0x31,0x36,0x30,0x4D,0x61,0x72,0x6B, - 0x20,0x62,0x6C,0x6F,0x63,0x6B,0x2E,0x16,0x3E,0x53,0x68,0x2B, - 0x46,0x33,0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x75,0x74,0x20, - 0x74,0x72,0x61,0x63,0x6B,0x2E,0x17,0x3E,0x53,0x68,0x2B,0x46, - 0x34,0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x6F,0x70,0x79,0x20, - 0x74,0x72,0x61,0x63,0x6B,0x2E,0x18,0x3E,0x53,0x68,0x2B,0x46, - 0x35,0x20,0x40,0x54,0x31,0x36,0x30,0x50,0x61,0x73,0x74,0x65, - 0x20,0x74,0x72,0x61,0x63,0x6B,0x2E,0x1A,0x3E,0x43,0x74,0x72, - 0x6C,0x2B,0x46,0x33,0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x75, - 0x74,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x2E,0x1B,0x3E, - 0x43,0x74,0x72,0x6C,0x2B,0x46,0x34,0x20,0x40,0x54,0x31,0x36, - 0x30,0x43,0x6F,0x70,0x79,0x20,0x70,0x61,0x74,0x74,0x65,0x72, - 0x6E,0x2E,0x1C,0x3E,0x43,0x74,0x72,0x6C,0x2B,0x46,0x35,0x20, - 0x40,0x54,0x31,0x36,0x30,0x50,0x61,0x73,0x74,0x65,0x20,0x70, - 0x61,0x74,0x74,0x65,0x72,0x6E,0x2E,0x17,0x3E,0x41,0x6C,0x74, + 0x74,0x72,0x61,0x63,0x6B,0x20,0x28,0x30,0x2E,0x2E,0x37,0x29, + 0x20,0x4D,0x4F,0x44,0x20,0x4E,0x2D,0x43,0x68,0x61,0x6E,0x6E, + 0x65,0x6C,0x73,0x2E,0x34,0x3E,0x41,0x6C,0x74,0x2B,0x41,0x2E, + 0x2E,0x4B,0x20,0x40,0x54,0x31,0x36,0x30,0x4A,0x75,0x6D,0x70, + 0x20,0x74,0x6F,0x20,0x74,0x72,0x61,0x63,0x6B,0x20,0x28,0x38, + 0x2E,0x2E,0x31,0x35,0x29,0x20,0x4D,0x4F,0x44,0x20,0x4E,0x2D, + 0x43,0x68,0x61,0x6E,0x6E,0x65,0x6C,0x73,0x2E,0x00,0x19,0x40, + 0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x43,0x75,0x74, + 0x2F,0x43,0x6F,0x70,0x79,0x2F,0x50,0x61,0x73,0x74,0x65,0x3A, + 0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32, + 0x34,0x44,0x65,0x6C,0x65,0x74,0x65,0x20,0x20,0x40,0x54,0x31, + 0x36,0x30,0x44,0x65,0x6C,0x65,0x74,0x65,0x20,0x6E,0x6F,0x74, + 0x65,0x20,0x6F,0x72,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20, + 0x63,0x6F,0x6C,0x75,0x6D,0x6E,0x20,0x61,0x74,0x20,0x63,0x75, + 0x72,0x73,0x6F,0x72,0x2E,0x39,0x3E,0x53,0x68,0x2B,0x44,0x65, + 0x6C,0x65,0x74,0x65,0x20,0x40,0x54,0x31,0x36,0x30,0x44,0x65, + 0x6C,0x65,0x74,0x65,0x20,0x6E,0x6F,0x74,0x65,0x2C,0x20,0x76, + 0x6F,0x6C,0x75,0x6D,0x65,0x20,0x61,0x6E,0x64,0x20,0x65,0x66, + 0x66,0x65,0x63,0x74,0x20,0x61,0x74,0x20,0x63,0x75,0x72,0x73, + 0x6F,0x72,0x2E,0x35,0x3E,0x43,0x74,0x72,0x6C,0x2B,0x44,0x65, + 0x6C,0x65,0x74,0x65,0x20,0x40,0x54,0x31,0x36,0x30,0x44,0x65, + 0x6C,0x65,0x74,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20, + 0x61,0x6E,0x64,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x20,0x61, + 0x74,0x20,0x63,0x75,0x72,0x73,0x6F,0x72,0x2E,0x29,0x3E,0x41, + 0x6C,0x74,0x2B,0x44,0x65,0x6C,0x65,0x74,0x65,0x20,0x40,0x54, + 0x31,0x36,0x30,0x44,0x65,0x6C,0x65,0x74,0x65,0x20,0x65,0x66, + 0x66,0x65,0x63,0x74,0x20,0x61,0x74,0x20,0x63,0x75,0x72,0x73, + 0x6F,0x72,0x2E,0x24,0x3E,0x49,0x6E,0x73,0x65,0x72,0x74,0x20, + 0x20,0x40,0x54,0x31,0x36,0x30,0x49,0x6E,0x73,0x65,0x72,0x74, + 0x20,0x6E,0x6F,0x74,0x65,0x20,0x61,0x74,0x20,0x63,0x75,0x72, + 0x73,0x6F,0x72,0x2E,0x27,0x3E,0x53,0x68,0x2B,0x49,0x6E,0x73, + 0x65,0x72,0x74,0x20,0x20,0x40,0x54,0x31,0x36,0x30,0x49,0x6E, + 0x73,0x65,0x72,0x74,0x20,0x6C,0x69,0x6E,0x65,0x20,0x61,0x74, + 0x20,0x63,0x75,0x72,0x73,0x6F,0x72,0x2E,0x25,0x3E,0x42,0x61, + 0x63,0x6B,0x73,0x70,0x61,0x63,0x65,0x20,0x40,0x54,0x31,0x36, + 0x30,0x44,0x65,0x6C,0x65,0x74,0x65,0x20,0x70,0x72,0x65,0x76, + 0x69,0x6F,0x75,0x73,0x20,0x6E,0x6F,0x74,0x65,0x2E,0x28,0x3E, + 0x53,0x68,0x2B,0x42,0x61,0x63,0x6B,0x73,0x70,0x61,0x63,0x65, + 0x20,0x40,0x54,0x31,0x36,0x30,0x44,0x65,0x6C,0x65,0x74,0x65, + 0x20,0x70,0x72,0x65,0x76,0x69,0x6F,0x75,0x73,0x20,0x6C,0x69, + 0x6E,0x65,0x2E,0x1C,0x3E,0x41,0x6C,0x74,0x2B,0x43,0x75,0x72, + 0x73,0x6F,0x72,0x20,0x40,0x54,0x31,0x36,0x30,0x4D,0x61,0x72, + 0x6B,0x20,0x62,0x6C,0x6F,0x63,0x6B,0x2E,0x16,0x3E,0x53,0x68, 0x2B,0x46,0x33,0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x75,0x74, - 0x20,0x62,0x6C,0x6F,0x63,0x6B,0x2E,0x18,0x3E,0x41,0x6C,0x74, - 0x2B,0x46,0x34,0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x6F,0x70, - 0x79,0x20,0x62,0x6C,0x6F,0x63,0x6B,0x2E,0x19,0x3E,0x41,0x6C, - 0x74,0x2B,0x46,0x35,0x20,0x40,0x54,0x31,0x36,0x30,0x50,0x61, - 0x73,0x74,0x65,0x20,0x62,0x6C,0x6F,0x63,0x6B,0x2E,0x20,0x3E, - 0x41,0x6C,0x74,0x2B,0x43,0x20,0x20,0x40,0x54,0x31,0x36,0x30, - 0x4D,0x61,0x72,0x6B,0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74, - 0x20,0x74,0x72,0x61,0x63,0x6B,0x2E,0x00,0x18,0x40,0x58,0x30, - 0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x4D,0x69,0x73,0x63,0x65, - 0x6C,0x6C,0x61,0x6E,0x65,0x6F,0x75,0x73,0x3A,0x0B,0x3E,0x40, - 0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x1C,0x52,0x69, - 0x67,0x68,0x74,0x20,0x63,0x74,0x72,0x6C,0x2E,0x20,0x20,0x40, - 0x54,0x31,0x36,0x30,0x50,0x6C,0x61,0x79,0x20,0x73,0x6F,0x6E, - 0x67,0x2E,0x20,0x3E,0x52,0x69,0x67,0x68,0x74,0x20,0x61,0x6C, - 0x74,0x20,0x20,0x20,0x20,0x40,0x54,0x31,0x36,0x30,0x50,0x6C, - 0x61,0x79,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x2E,0x22, - 0x3E,0x52,0x69,0x67,0x68,0x74,0x20,0x73,0x68,0x69,0x66,0x74, - 0x20,0x20,0x40,0x54,0x31,0x36,0x30,0x52,0x65,0x63,0x6F,0x72, - 0x64,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x2E,0x19,0x3E, - 0x53,0x70,0x61,0x63,0x65,0x20,0x20,0x20,0x20,0x40,0x54,0x31, - 0x36,0x30,0x53,0x74,0x6F,0x70,0x2F,0x45,0x64,0x69,0x74,0x2E, - 0x1B,0x3E,0x46,0x31,0x2E,0x2E,0x46,0x37,0x20,0x40,0x54,0x31, - 0x36,0x30,0x53,0x65,0x6C,0x65,0x63,0x74,0x20,0x6F,0x63,0x74, - 0x61,0x76,0x65,0x2E,0x27,0x3E,0x4B,0x65,0x79,0x20,0x62,0x65, - 0x6C,0x6F,0x77,0x20,0x45,0x73,0x63,0x20,0x40,0x54,0x31,0x36, - 0x30,0x49,0x6E,0x63,0x72,0x65,0x61,0x73,0x65,0x20,0x63,0x75, - 0x72,0x73,0x6F,0x72,0x61,0x64,0x64,0x2E,0x22,0x3E,0x53,0x68, - 0x2B,0x28,0x31,0x2F,0x32,0x29,0x20,0x40,0x54,0x31,0x36,0x30, - 0x44,0x65,0x63,0x72,0x65,0x61,0x73,0x65,0x20,0x63,0x75,0x72, - 0x73,0x6F,0x72,0x61,0x64,0x64,0x2E,0x29,0x3E,0x43,0x61,0x70, - 0x73,0x4C,0x6F,0x63,0x6B,0x20,0x6F,0x72,0x20,0x3C,0x3E,0x20, - 0x40,0x54,0x31,0x36,0x30,0x45,0x6E,0x74,0x65,0x72,0x20,0x4B, - 0x65,0x79,0x6F,0x66,0x66,0x2D,0x22,0x6E,0x6F,0x74,0x65,0x22, - 0x2E,0x25,0x3E,0x53,0x68,0x2B,0x4C,0x65,0x66,0x74,0x20,0x40, - 0x54,0x31,0x36,0x30,0x49,0x6E,0x63,0x72,0x65,0x61,0x73,0x65, - 0x20,0x73,0x6F,0x6E,0x67,0x20,0x70,0x6F,0x73,0x69,0x74,0x69, - 0x6F,0x6E,0x2E,0x26,0x3E,0x53,0x68,0x2B,0x52,0x69,0x67,0x68, - 0x74,0x20,0x40,0x54,0x31,0x36,0x30,0x44,0x65,0x63,0x72,0x65, - 0x61,0x73,0x65,0x20,0x73,0x6F,0x6E,0x67,0x20,0x70,0x6F,0x73, - 0x69,0x74,0x69,0x6F,0x6E,0x2E,0x28,0x3E,0x43,0x74,0x72,0x6C, - 0x2B,0x4C,0x65,0x66,0x74,0x20,0x40,0x54,0x31,0x36,0x30,0x49, - 0x6E,0x63,0x72,0x65,0x61,0x73,0x65,0x20,0x70,0x61,0x74,0x74, - 0x65,0x72,0x6E,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x2E,0x29, - 0x3E,0x43,0x74,0x72,0x6C,0x2B,0x52,0x69,0x67,0x68,0x74,0x20, - 0x40,0x54,0x31,0x36,0x30,0x44,0x65,0x63,0x72,0x65,0x61,0x73, - 0x65,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x6E,0x75, - 0x6D,0x62,0x65,0x72,0x2E,0x00,0x2C,0x40,0x58,0x30,0x34,0x30, - 0x40,0x43,0x30,0x30,0x31,0x4D,0x69,0x73,0x63,0x65,0x6C,0x6C, - 0x61,0x6E,0x65,0x6F,0x75,0x73,0x20,0x28,0x6F,0x6E,0x20,0x61, - 0x20,0x4D,0x61,0x63,0x20,0x6B,0x65,0x79,0x62,0x6F,0x61,0x72, - 0x64,0x29,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43, - 0x30,0x30,0x32,0x1E,0x52,0x69,0x67,0x68,0x74,0x20,0x63,0x6F, - 0x6D,0x6D,0x61,0x6E,0x64,0x20,0x20,0x40,0x54,0x32,0x34,0x30, - 0x50,0x6C,0x61,0x79,0x20,0x73,0x6F,0x6E,0x67,0x2E,0x25,0x3E, - 0x52,0x69,0x67,0x68,0x74,0x20,0x61,0x6C,0x74,0x2F,0x6F,0x70, - 0x74,0x69,0x6F,0x6E,0x20,0x20,0x40,0x54,0x32,0x34,0x30,0x50, + 0x20,0x74,0x72,0x61,0x63,0x6B,0x2E,0x17,0x3E,0x53,0x68,0x2B, + 0x46,0x34,0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x6F,0x70,0x79, + 0x20,0x74,0x72,0x61,0x63,0x6B,0x2E,0x18,0x3E,0x53,0x68,0x2B, + 0x46,0x35,0x20,0x40,0x54,0x31,0x36,0x30,0x50,0x61,0x73,0x74, + 0x65,0x20,0x74,0x72,0x61,0x63,0x6B,0x2E,0x1A,0x3E,0x43,0x74, + 0x72,0x6C,0x2B,0x46,0x33,0x20,0x40,0x54,0x31,0x36,0x30,0x43, + 0x75,0x74,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x2E,0x1B, + 0x3E,0x43,0x74,0x72,0x6C,0x2B,0x46,0x34,0x20,0x40,0x54,0x31, + 0x36,0x30,0x43,0x6F,0x70,0x79,0x20,0x70,0x61,0x74,0x74,0x65, + 0x72,0x6E,0x2E,0x1C,0x3E,0x43,0x74,0x72,0x6C,0x2B,0x46,0x35, + 0x20,0x40,0x54,0x31,0x36,0x30,0x50,0x61,0x73,0x74,0x65,0x20, + 0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x2E,0x17,0x3E,0x41,0x6C, + 0x74,0x2B,0x46,0x33,0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x75, + 0x74,0x20,0x62,0x6C,0x6F,0x63,0x6B,0x2E,0x18,0x3E,0x41,0x6C, + 0x74,0x2B,0x46,0x34,0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x6F, + 0x70,0x79,0x20,0x62,0x6C,0x6F,0x63,0x6B,0x2E,0x19,0x3E,0x41, + 0x6C,0x74,0x2B,0x46,0x35,0x20,0x40,0x54,0x31,0x36,0x30,0x50, + 0x61,0x73,0x74,0x65,0x20,0x62,0x6C,0x6F,0x63,0x6B,0x2E,0x20, + 0x3E,0x41,0x6C,0x74,0x2B,0x43,0x20,0x20,0x40,0x54,0x31,0x36, + 0x30,0x4D,0x61,0x72,0x6B,0x20,0x63,0x75,0x72,0x72,0x65,0x6E, + 0x74,0x20,0x74,0x72,0x61,0x63,0x6B,0x2E,0x00,0x18,0x40,0x58, + 0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x4D,0x69,0x73,0x63, + 0x65,0x6C,0x6C,0x61,0x6E,0x65,0x6F,0x75,0x73,0x3A,0x0B,0x3E, + 0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x1C,0x52, + 0x69,0x67,0x68,0x74,0x20,0x63,0x74,0x72,0x6C,0x2E,0x20,0x20, + 0x40,0x54,0x31,0x36,0x30,0x50,0x6C,0x61,0x79,0x20,0x73,0x6F, + 0x6E,0x67,0x2E,0x20,0x3E,0x52,0x69,0x67,0x68,0x74,0x20,0x61, + 0x6C,0x74,0x20,0x20,0x20,0x20,0x40,0x54,0x31,0x36,0x30,0x50, 0x6C,0x61,0x79,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x2E, 0x22,0x3E,0x52,0x69,0x67,0x68,0x74,0x20,0x73,0x68,0x69,0x66, - 0x74,0x20,0x20,0x40,0x54,0x32,0x34,0x30,0x52,0x65,0x63,0x6F, - 0x72,0x64,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x2E,0x00, - 0x1B,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x57, - 0x69,0x6E,0x64,0x6F,0x77,0x20,0x73,0x77,0x69,0x74,0x63,0x68, - 0x69,0x6E,0x67,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40, - 0x43,0x30,0x30,0x32,0x05,0x43,0x74,0x72,0x6C,0x2B,0x16,0x3E, - 0x41,0x20,0x40,0x54,0x31,0x36,0x30,0x41,0x64,0x76,0x61,0x6E, - 0x63,0x65,0x64,0x20,0x65,0x64,0x69,0x74,0x2E,0x0E,0x3E,0x42, - 0x20,0x40,0x54,0x31,0x36,0x30,0x41,0x62,0x6F,0x75,0x74,0x2E, - 0x16,0x3E,0x43,0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x6F,0x6E, - 0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x2E,0x18, - 0x3E,0x44,0x20,0x40,0x54,0x31,0x36,0x30,0x44,0x69,0x73,0x6B, - 0x20,0x6F,0x70,0x65,0x72,0x61,0x74,0x69,0x6F,0x6E,0x73,0x2E, - 0x20,0x3E,0x45,0x20,0x40,0x54,0x31,0x36,0x30,0x53,0x61,0x6D, - 0x70,0x6C,0x65,0x20,0x65,0x64,0x69,0x74,0x6F,0x72,0x20,0x65, - 0x78,0x74,0x65,0x6E,0x73,0x69,0x6F,0x6E,0x2E,0x0D,0x3E,0x48, - 0x20,0x40,0x54,0x31,0x36,0x30,0x48,0x65,0x6C,0x70,0x2E,0x1A, - 0x3E,0x49,0x20,0x40,0x54,0x31,0x36,0x30,0x49,0x6E,0x73,0x74, - 0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x65,0x64,0x69,0x74,0x6F, - 0x72,0x2E,0x2B,0x3E,0x4D,0x20,0x40,0x54,0x31,0x36,0x30,0x49, - 0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x65,0x64, - 0x69,0x74,0x6F,0x72,0x20,0x65,0x78,0x74,0x65,0x6E,0x73,0x69, - 0x6F,0x6E,0x2E,0x20,0x28,0x4D,0x49,0x44,0x49,0x29,0x10,0x3E, - 0x4E,0x20,0x40,0x54,0x31,0x36,0x30,0x4E,0x69,0x62,0x62,0x6C, - 0x65,0x73,0x2E,0x10,0x3E,0x50,0x20,0x40,0x54,0x31,0x36,0x30, - 0x50,0x61,0x74,0x74,0x65,0x72,0x6E,0x2E,0x0D,0x3E,0x52,0x20, - 0x40,0x54,0x31,0x36,0x30,0x54,0x72,0x69,0x6D,0x2E,0x16,0x3E, - 0x53,0x20,0x40,0x54,0x31,0x36,0x30,0x53,0x61,0x6D,0x70,0x6C, - 0x65,0x20,0x65,0x64,0x69,0x74,0x6F,0x72,0x2E,0x12,0x3E,0x54, - 0x20,0x40,0x54,0x31,0x36,0x30,0x54,0x72,0x61,0x6E,0x73,0x70, - 0x6F,0x73,0x65,0x2E,0x23,0x3E,0x58,0x20,0x40,0x54,0x31,0x36, - 0x30,0x4D,0x61,0x69,0x6E,0x20,0x73,0x63,0x72,0x65,0x65,0x6E, - 0x2E,0x20,0x28,0x61,0x6C,0x6D,0x6F,0x73,0x74,0x20,0x61,0x6C, - 0x74,0x2B,0x58,0x29,0x27,0x3E,0x5A,0x20,0x40,0x54,0x31,0x36, - 0x30,0x46,0x75,0x6C,0x6C,0x20,0x73,0x63,0x72,0x65,0x65,0x6E, - 0x20,0x65,0x64,0x69,0x74,0x2E,0x20,0x28,0x5A,0x20,0x66,0x6F, - 0x72,0x20,0x73,0x69,0x5A,0x65,0x3F,0x29,0x19,0x3E,0x31,0x20, - 0x40,0x54,0x31,0x36,0x30,0x43,0x6F,0x6E,0x66,0x69,0x67,0x75, - 0x72,0x61,0x74,0x69,0x6F,0x6E,0x20,0x23,0x31,0x2E,0x19,0x3E, - 0x32,0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x6F,0x6E,0x66,0x69, - 0x67,0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x20,0x23,0x32,0x2E, - 0x19,0x3E,0x33,0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x6F,0x6E, - 0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x20,0x23, - 0x33,0x2E,0x19,0x3E,0x34,0x20,0x40,0x54,0x31,0x36,0x30,0x43, - 0x6F,0x6E,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6F,0x6E, - 0x20,0x23,0x34,0x2E,0x00,0x2D,0x40,0x58,0x30,0x34,0x30,0x40, - 0x43,0x30,0x30,0x31,0x49,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65, - 0x6E,0x74,0x20,0x73,0x65,0x6C,0x65,0x63,0x74,0x20,0x28,0x4E, - 0x75,0x6D,0x65,0x72,0x69,0x63,0x20,0x6B,0x65,0x79,0x70,0x61, - 0x64,0x29,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43, - 0x30,0x30,0x32,0x28,0x54,0x6F,0x70,0x20,0x34,0x20,0x6B,0x65, + 0x74,0x20,0x20,0x40,0x54,0x31,0x36,0x30,0x52,0x65,0x63,0x6F, + 0x72,0x64,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x2E,0x19, + 0x3E,0x53,0x70,0x61,0x63,0x65,0x20,0x20,0x20,0x20,0x40,0x54, + 0x31,0x36,0x30,0x53,0x74,0x6F,0x70,0x2F,0x45,0x64,0x69,0x74, + 0x2E,0x1B,0x3E,0x46,0x31,0x2E,0x2E,0x46,0x37,0x20,0x40,0x54, + 0x31,0x36,0x30,0x53,0x65,0x6C,0x65,0x63,0x74,0x20,0x6F,0x63, + 0x74,0x61,0x76,0x65,0x2E,0x27,0x3E,0x4B,0x65,0x79,0x20,0x62, + 0x65,0x6C,0x6F,0x77,0x20,0x45,0x73,0x63,0x20,0x40,0x54,0x31, + 0x36,0x30,0x49,0x6E,0x63,0x72,0x65,0x61,0x73,0x65,0x20,0x63, + 0x75,0x72,0x73,0x6F,0x72,0x61,0x64,0x64,0x2E,0x22,0x3E,0x53, + 0x68,0x2B,0x28,0x31,0x2F,0x32,0x29,0x20,0x40,0x54,0x31,0x36, + 0x30,0x44,0x65,0x63,0x72,0x65,0x61,0x73,0x65,0x20,0x63,0x75, + 0x72,0x73,0x6F,0x72,0x61,0x64,0x64,0x2E,0x29,0x3E,0x43,0x61, + 0x70,0x73,0x4C,0x6F,0x63,0x6B,0x20,0x6F,0x72,0x20,0x3C,0x3E, + 0x20,0x40,0x54,0x31,0x36,0x30,0x45,0x6E,0x74,0x65,0x72,0x20, + 0x4B,0x65,0x79,0x6F,0x66,0x66,0x2D,0x22,0x6E,0x6F,0x74,0x65, + 0x22,0x2E,0x25,0x3E,0x53,0x68,0x2B,0x4C,0x65,0x66,0x74,0x20, + 0x40,0x54,0x31,0x36,0x30,0x49,0x6E,0x63,0x72,0x65,0x61,0x73, + 0x65,0x20,0x73,0x6F,0x6E,0x67,0x20,0x70,0x6F,0x73,0x69,0x74, + 0x69,0x6F,0x6E,0x2E,0x26,0x3E,0x53,0x68,0x2B,0x52,0x69,0x67, + 0x68,0x74,0x20,0x40,0x54,0x31,0x36,0x30,0x44,0x65,0x63,0x72, + 0x65,0x61,0x73,0x65,0x20,0x73,0x6F,0x6E,0x67,0x20,0x70,0x6F, + 0x73,0x69,0x74,0x69,0x6F,0x6E,0x2E,0x28,0x3E,0x43,0x74,0x72, + 0x6C,0x2B,0x4C,0x65,0x66,0x74,0x20,0x40,0x54,0x31,0x36,0x30, + 0x49,0x6E,0x63,0x72,0x65,0x61,0x73,0x65,0x20,0x70,0x61,0x74, + 0x74,0x65,0x72,0x6E,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x2E, + 0x29,0x3E,0x43,0x74,0x72,0x6C,0x2B,0x52,0x69,0x67,0x68,0x74, + 0x20,0x40,0x54,0x31,0x36,0x30,0x44,0x65,0x63,0x72,0x65,0x61, + 0x73,0x65,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x6E, + 0x75,0x6D,0x62,0x65,0x72,0x2E,0x00,0x2C,0x40,0x58,0x30,0x34, + 0x30,0x40,0x43,0x30,0x30,0x31,0x4D,0x69,0x73,0x63,0x65,0x6C, + 0x6C,0x61,0x6E,0x65,0x6F,0x75,0x73,0x20,0x28,0x6F,0x6E,0x20, + 0x61,0x20,0x4D,0x61,0x63,0x20,0x6B,0x65,0x79,0x62,0x6F,0x61, + 0x72,0x64,0x29,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40, + 0x43,0x30,0x30,0x32,0x1E,0x52,0x69,0x67,0x68,0x74,0x20,0x63, + 0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x20,0x40,0x54,0x32,0x34, + 0x30,0x50,0x6C,0x61,0x79,0x20,0x73,0x6F,0x6E,0x67,0x2E,0x25, + 0x3E,0x52,0x69,0x67,0x68,0x74,0x20,0x61,0x6C,0x74,0x2F,0x6F, + 0x70,0x74,0x69,0x6F,0x6E,0x20,0x20,0x40,0x54,0x32,0x34,0x30, + 0x50,0x6C,0x61,0x79,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E, + 0x2E,0x22,0x3E,0x52,0x69,0x67,0x68,0x74,0x20,0x73,0x68,0x69, + 0x66,0x74,0x20,0x20,0x40,0x54,0x32,0x34,0x30,0x52,0x65,0x63, + 0x6F,0x72,0x64,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x2E, + 0x00,0x1B,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31, + 0x57,0x69,0x6E,0x64,0x6F,0x77,0x20,0x73,0x77,0x69,0x74,0x63, + 0x68,0x69,0x6E,0x67,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30, + 0x40,0x43,0x30,0x30,0x32,0x05,0x43,0x74,0x72,0x6C,0x2B,0x16, + 0x3E,0x41,0x20,0x40,0x54,0x31,0x36,0x30,0x41,0x64,0x76,0x61, + 0x6E,0x63,0x65,0x64,0x20,0x65,0x64,0x69,0x74,0x2E,0x0E,0x3E, + 0x42,0x20,0x40,0x54,0x31,0x36,0x30,0x41,0x62,0x6F,0x75,0x74, + 0x2E,0x16,0x3E,0x43,0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x6F, + 0x6E,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x2E, + 0x18,0x3E,0x44,0x20,0x40,0x54,0x31,0x36,0x30,0x44,0x69,0x73, + 0x6B,0x20,0x6F,0x70,0x65,0x72,0x61,0x74,0x69,0x6F,0x6E,0x73, + 0x2E,0x20,0x3E,0x45,0x20,0x40,0x54,0x31,0x36,0x30,0x53,0x61, + 0x6D,0x70,0x6C,0x65,0x20,0x65,0x64,0x69,0x74,0x6F,0x72,0x20, + 0x65,0x78,0x74,0x65,0x6E,0x73,0x69,0x6F,0x6E,0x2E,0x0D,0x3E, + 0x48,0x20,0x40,0x54,0x31,0x36,0x30,0x48,0x65,0x6C,0x70,0x2E, + 0x1A,0x3E,0x49,0x20,0x40,0x54,0x31,0x36,0x30,0x49,0x6E,0x73, + 0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x65,0x64,0x69,0x74, + 0x6F,0x72,0x2E,0x2B,0x3E,0x4D,0x20,0x40,0x54,0x31,0x36,0x30, + 0x49,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x65, + 0x64,0x69,0x74,0x6F,0x72,0x20,0x65,0x78,0x74,0x65,0x6E,0x73, + 0x69,0x6F,0x6E,0x2E,0x20,0x28,0x4D,0x49,0x44,0x49,0x29,0x10, + 0x3E,0x4E,0x20,0x40,0x54,0x31,0x36,0x30,0x4E,0x69,0x62,0x62, + 0x6C,0x65,0x73,0x2E,0x10,0x3E,0x50,0x20,0x40,0x54,0x31,0x36, + 0x30,0x50,0x61,0x74,0x74,0x65,0x72,0x6E,0x2E,0x0D,0x3E,0x52, + 0x20,0x40,0x54,0x31,0x36,0x30,0x54,0x72,0x69,0x6D,0x2E,0x16, + 0x3E,0x53,0x20,0x40,0x54,0x31,0x36,0x30,0x53,0x61,0x6D,0x70, + 0x6C,0x65,0x20,0x65,0x64,0x69,0x74,0x6F,0x72,0x2E,0x12,0x3E, + 0x54,0x20,0x40,0x54,0x31,0x36,0x30,0x54,0x72,0x61,0x6E,0x73, + 0x70,0x6F,0x73,0x65,0x2E,0x23,0x3E,0x58,0x20,0x40,0x54,0x31, + 0x36,0x30,0x4D,0x61,0x69,0x6E,0x20,0x73,0x63,0x72,0x65,0x65, + 0x6E,0x2E,0x20,0x28,0x61,0x6C,0x6D,0x6F,0x73,0x74,0x20,0x61, + 0x6C,0x74,0x2B,0x58,0x29,0x27,0x3E,0x5A,0x20,0x40,0x54,0x31, + 0x36,0x30,0x46,0x75,0x6C,0x6C,0x20,0x73,0x63,0x72,0x65,0x65, + 0x6E,0x20,0x65,0x64,0x69,0x74,0x2E,0x20,0x28,0x5A,0x20,0x66, + 0x6F,0x72,0x20,0x73,0x69,0x5A,0x65,0x3F,0x29,0x19,0x3E,0x31, + 0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x6F,0x6E,0x66,0x69,0x67, + 0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x20,0x23,0x31,0x2E,0x19, + 0x3E,0x32,0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x6F,0x6E,0x66, + 0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x20,0x23,0x32, + 0x2E,0x19,0x3E,0x33,0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x6F, + 0x6E,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x20, + 0x23,0x33,0x2E,0x19,0x3E,0x34,0x20,0x40,0x54,0x31,0x36,0x30, + 0x43,0x6F,0x6E,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6F, + 0x6E,0x20,0x23,0x34,0x2E,0x00,0x2D,0x40,0x58,0x30,0x34,0x30, + 0x40,0x43,0x30,0x30,0x31,0x49,0x6E,0x73,0x74,0x72,0x75,0x6D, + 0x65,0x6E,0x74,0x20,0x73,0x65,0x6C,0x65,0x63,0x74,0x20,0x28, + 0x4E,0x75,0x6D,0x65,0x72,0x69,0x63,0x20,0x6B,0x65,0x79,0x70, + 0x61,0x64,0x29,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40, + 0x43,0x30,0x30,0x32,0x28,0x54,0x6F,0x70,0x20,0x34,0x20,0x6B, + 0x65,0x79,0x73,0x20,0x40,0x54,0x31,0x36,0x30,0x53,0x65,0x6C, + 0x65,0x63,0x74,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65, + 0x6E,0x74,0x20,0x62,0x6C,0x6F,0x63,0x6B,0x2E,0x32,0x3E,0x27, + 0x2B,0x27,0x20,0x2B,0x54,0x6F,0x70,0x20,0x34,0x20,0x6B,0x65, 0x79,0x73,0x20,0x40,0x54,0x31,0x36,0x30,0x53,0x65,0x6C,0x65, 0x63,0x74,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E, - 0x74,0x20,0x62,0x6C,0x6F,0x63,0x6B,0x2E,0x32,0x3E,0x27,0x2B, - 0x27,0x20,0x2B,0x54,0x6F,0x70,0x20,0x34,0x20,0x6B,0x65,0x79, - 0x73,0x20,0x40,0x54,0x31,0x36,0x30,0x53,0x65,0x6C,0x65,0x63, - 0x74,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74, - 0x20,0x62,0x6C,0x6F,0x63,0x6B,0x20,0x2B,0x20,0x34,0x2E,0x23, - 0x3E,0x45,0x6E,0x74,0x65,0x72,0x20,0x40,0x54,0x31,0x36,0x30, - 0x53,0x65,0x6C,0x65,0x63,0x74,0x20,0x69,0x6E,0x73,0x74,0x72, - 0x75,0x6D,0x65,0x6E,0x74,0x20,0x62,0x61,0x6E,0x6B,0x2E,0x1D, - 0x3E,0x30,0x20,0x40,0x54,0x31,0x36,0x30,0x53,0x65,0x6C,0x65, - 0x63,0x74,0x20,0x6E,0x6F,0x20,0x69,0x6E,0x73,0x74,0x72,0x75, - 0x6D,0x65,0x6E,0x74,0x2E,0x26,0x3E,0x31,0x2E,0x2E,0x38,0x20, - 0x40,0x54,0x31,0x36,0x30,0x53,0x65,0x6C,0x65,0x63,0x74,0x20, - 0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x69, - 0x6E,0x20,0x62,0x6C,0x6F,0x63,0x6B,0x2E,0x19,0x3E,0x2C,0x20, - 0x40,0x54,0x31,0x36,0x30,0x43,0x6C,0x65,0x61,0x72,0x20,0x69, - 0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x18,0x3E, - 0x53,0x68,0x2B,0x2C,0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x6C, - 0x65,0x61,0x72,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x27, - 0x3E,0x53,0x68,0x2B,0x55,0x70,0x20,0x40,0x54,0x31,0x36,0x30, - 0x53,0x65,0x6C,0x65,0x63,0x74,0x20,0x70,0x72,0x65,0x76,0x69, - 0x6F,0x75,0x73,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65, - 0x6E,0x74,0x2E,0x25,0x3E,0x53,0x68,0x2B,0x44,0x6F,0x77,0x6E, + 0x74,0x20,0x62,0x6C,0x6F,0x63,0x6B,0x20,0x2B,0x20,0x34,0x2E, + 0x23,0x3E,0x45,0x6E,0x74,0x65,0x72,0x20,0x40,0x54,0x31,0x36, + 0x30,0x53,0x65,0x6C,0x65,0x63,0x74,0x20,0x69,0x6E,0x73,0x74, + 0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x62,0x61,0x6E,0x6B,0x2E, + 0x1D,0x3E,0x30,0x20,0x40,0x54,0x31,0x36,0x30,0x53,0x65,0x6C, + 0x65,0x63,0x74,0x20,0x6E,0x6F,0x20,0x69,0x6E,0x73,0x74,0x72, + 0x75,0x6D,0x65,0x6E,0x74,0x2E,0x26,0x3E,0x31,0x2E,0x2E,0x38, 0x20,0x40,0x54,0x31,0x36,0x30,0x53,0x65,0x6C,0x65,0x63,0x74, - 0x20,0x6E,0x65,0x78,0x74,0x20,0x69,0x6E,0x73,0x74,0x72,0x75, - 0x6D,0x65,0x6E,0x74,0x2E,0x00,0x1F,0x40,0x58,0x30,0x34,0x30, - 0x40,0x43,0x30,0x30,0x31,0x43,0x6F,0x6D,0x6D,0x61,0x6E,0x64, - 0x2F,0x56,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x6D,0x61,0x63,0x72, - 0x6F,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30, - 0x30,0x32,0x2D,0x41,0x6C,0x74,0x2B,0x31,0x2E,0x2E,0x30,0x20, - 0x40,0x54,0x31,0x36,0x30,0x57,0x72,0x69,0x74,0x65,0x20,0x63, - 0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x2F,0x76,0x6F,0x6C,0x75,0x6D, - 0x65,0x20,0x61,0x74,0x20,0x63,0x75,0x72,0x73,0x6F,0x72,0x2E, - 0x30,0x3E,0x53,0x68,0x2B,0x41,0x6C,0x74,0x2B,0x31,0x2E,0x2E, - 0x30,0x20,0x40,0x54,0x31,0x36,0x30,0x52,0x65,0x61,0x64,0x20, + 0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20, + 0x69,0x6E,0x20,0x62,0x6C,0x6F,0x63,0x6B,0x2E,0x19,0x3E,0x2C, + 0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x6C,0x65,0x61,0x72,0x20, + 0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x18, + 0x3E,0x53,0x68,0x2B,0x2C,0x20,0x40,0x54,0x31,0x36,0x30,0x43, + 0x6C,0x65,0x61,0x72,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x2E, + 0x27,0x3E,0x53,0x68,0x2B,0x55,0x70,0x20,0x40,0x54,0x31,0x36, + 0x30,0x53,0x65,0x6C,0x65,0x63,0x74,0x20,0x70,0x72,0x65,0x76, + 0x69,0x6F,0x75,0x73,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D, + 0x65,0x6E,0x74,0x2E,0x25,0x3E,0x53,0x68,0x2B,0x44,0x6F,0x77, + 0x6E,0x20,0x40,0x54,0x31,0x36,0x30,0x53,0x65,0x6C,0x65,0x63, + 0x74,0x20,0x6E,0x65,0x78,0x74,0x20,0x69,0x6E,0x73,0x74,0x72, + 0x75,0x6D,0x65,0x6E,0x74,0x2E,0x00,0x1F,0x40,0x58,0x30,0x34, + 0x30,0x40,0x43,0x30,0x30,0x31,0x43,0x6F,0x6D,0x6D,0x61,0x6E, + 0x64,0x2F,0x56,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x6D,0x61,0x63, + 0x72,0x6F,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43, + 0x30,0x30,0x32,0x2D,0x41,0x6C,0x74,0x2B,0x31,0x2E,0x2E,0x30, + 0x20,0x40,0x54,0x31,0x36,0x30,0x57,0x72,0x69,0x74,0x65,0x20, 0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x2F,0x76,0x6F,0x6C,0x75, 0x6D,0x65,0x20,0x61,0x74,0x20,0x63,0x75,0x72,0x73,0x6F,0x72, - 0x2E,0x00,0x1C,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30, - 0x31,0x53,0x63,0x61,0x6C,0x65,0x2D,0x66,0x61,0x64,0x65,0x20, - 0x76,0x6F,0x6C,0x75,0x6D,0x65,0x3A,0x0B,0x3E,0x40,0x58,0x30, - 0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x25,0x53,0x68,0x2B,0x56, + 0x2E,0x30,0x3E,0x53,0x68,0x2B,0x41,0x6C,0x74,0x2B,0x31,0x2E, + 0x2E,0x30,0x20,0x40,0x54,0x31,0x36,0x30,0x52,0x65,0x61,0x64, + 0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x2F,0x76,0x6F,0x6C, + 0x75,0x6D,0x65,0x20,0x61,0x74,0x20,0x63,0x75,0x72,0x73,0x6F, + 0x72,0x2E,0x00,0x1C,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30, + 0x30,0x31,0x53,0x63,0x61,0x6C,0x65,0x2D,0x66,0x61,0x64,0x65, + 0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x3A,0x0B,0x3E,0x40,0x58, + 0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x25,0x53,0x68,0x2B, + 0x56,0x20,0x40,0x54,0x31,0x36,0x30,0x53,0x63,0x61,0x6C,0x65, + 0x2D,0x66,0x61,0x64,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65, + 0x20,0x69,0x6E,0x20,0x74,0x72,0x61,0x63,0x6B,0x2E,0x2A,0x3E, + 0x43,0x74,0x72,0x6C,0x2B,0x56,0x20,0x40,0x54,0x31,0x36,0x30, + 0x53,0x63,0x61,0x6C,0x65,0x2D,0x66,0x61,0x64,0x65,0x20,0x76, + 0x6F,0x6C,0x75,0x6D,0x65,0x20,0x69,0x6E,0x20,0x70,0x61,0x74, + 0x74,0x65,0x72,0x6E,0x2E,0x27,0x3E,0x41,0x6C,0x74,0x2B,0x56, 0x20,0x40,0x54,0x31,0x36,0x30,0x53,0x63,0x61,0x6C,0x65,0x2D, 0x66,0x61,0x64,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20, - 0x69,0x6E,0x20,0x74,0x72,0x61,0x63,0x6B,0x2E,0x2A,0x3E,0x43, - 0x74,0x72,0x6C,0x2B,0x56,0x20,0x40,0x54,0x31,0x36,0x30,0x53, - 0x63,0x61,0x6C,0x65,0x2D,0x66,0x61,0x64,0x65,0x20,0x76,0x6F, - 0x6C,0x75,0x6D,0x65,0x20,0x69,0x6E,0x20,0x70,0x61,0x74,0x74, - 0x65,0x72,0x6E,0x2E,0x27,0x3E,0x41,0x6C,0x74,0x2B,0x56,0x20, - 0x40,0x54,0x31,0x36,0x30,0x53,0x63,0x61,0x6C,0x65,0x2D,0x66, - 0x61,0x64,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x69, - 0x6E,0x20,0x62,0x6C,0x6F,0x63,0x6B,0x2E,0x00,0x14,0x40,0x58, - 0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x54,0x72,0x61,0x6E, - 0x73,0x70,0x6F,0x73,0x65,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36, - 0x30,0x40,0x43,0x30,0x30,0x32,0x36,0x53,0x68,0x2B,0x46,0x37, - 0x20,0x40,0x54,0x31,0x36,0x30,0x54,0x72,0x61,0x6E,0x73,0x70, - 0x6F,0x73,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20, - 0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x69, - 0x6E,0x20,0x74,0x72,0x61,0x63,0x6B,0x20,0x64,0x6F,0x77,0x6E, - 0x2E,0x35,0x3E,0x53,0x68,0x2B,0x46,0x38,0x20,0x40,0x54,0x31, - 0x36,0x30,0x54,0x72,0x61,0x6E,0x73,0x70,0x6F,0x73,0x65,0x20, - 0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x69,0x6E,0x73,0x74, - 0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x69,0x6E,0x20,0x74,0x72, - 0x61,0x63,0x6B,0x20,0x75,0x70,0x2E,0x3B,0x3E,0x43,0x74,0x72, - 0x6C,0x2B,0x46,0x37,0x20,0x40,0x54,0x31,0x36,0x30,0x54,0x72, - 0x61,0x6E,0x73,0x70,0x6F,0x73,0x65,0x20,0x63,0x75,0x72,0x72, - 0x65,0x6E,0x74,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65, - 0x6E,0x74,0x20,0x69,0x6E,0x20,0x70,0x61,0x74,0x74,0x65,0x72, - 0x6E,0x20,0x64,0x6F,0x77,0x6E,0x2E,0x39,0x3E,0x43,0x74,0x72, - 0x6C,0x2B,0x46,0x38,0x20,0x40,0x54,0x31,0x36,0x30,0x54,0x72, - 0x61,0x6E,0x73,0x70,0x6F,0x73,0x65,0x20,0x63,0x75,0x72,0x72, - 0x65,0x6E,0x74,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65, - 0x6E,0x74,0x20,0x69,0x6E,0x20,0x70,0x61,0x74,0x74,0x65,0x72, - 0x6E,0x20,0x75,0x70,0x2E,0x38,0x3E,0x41,0x6C,0x74,0x2B,0x46, + 0x69,0x6E,0x20,0x62,0x6C,0x6F,0x63,0x6B,0x2E,0x00,0x14,0x40, + 0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x54,0x72,0x61, + 0x6E,0x73,0x70,0x6F,0x73,0x65,0x3A,0x0B,0x3E,0x40,0x58,0x30, + 0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x36,0x53,0x68,0x2B,0x46, 0x37,0x20,0x40,0x54,0x31,0x36,0x30,0x54,0x72,0x61,0x6E,0x73, 0x70,0x6F,0x73,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74, 0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20, - 0x69,0x6E,0x20,0x62,0x6C,0x6F,0x63,0x6B,0x20,0x64,0x6F,0x77, - 0x6E,0x2E,0x36,0x3E,0x41,0x6C,0x74,0x2B,0x46,0x38,0x20,0x40, - 0x54,0x31,0x36,0x30,0x54,0x72,0x61,0x6E,0x73,0x70,0x6F,0x73, - 0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x69,0x6E, - 0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x69,0x6E,0x20, - 0x62,0x6C,0x6F,0x63,0x6B,0x20,0x75,0x70,0x2E,0x34,0x3E,0x53, - 0x68,0x2B,0x46,0x31,0x20,0x40,0x54,0x31,0x36,0x30,0x54,0x72, - 0x61,0x6E,0x73,0x70,0x6F,0x73,0x65,0x20,0x61,0x6C,0x6C,0x20, - 0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x73,0x20, 0x69,0x6E,0x20,0x74,0x72,0x61,0x63,0x6B,0x20,0x64,0x6F,0x77, - 0x6E,0x2E,0x32,0x3E,0x53,0x68,0x2B,0x46,0x32,0x20,0x40,0x54, + 0x6E,0x2E,0x35,0x3E,0x53,0x68,0x2B,0x46,0x38,0x20,0x40,0x54, 0x31,0x36,0x30,0x54,0x72,0x61,0x6E,0x73,0x70,0x6F,0x73,0x65, - 0x20,0x61,0x6C,0x6C,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D, - 0x65,0x6E,0x74,0x73,0x20,0x69,0x6E,0x20,0x74,0x72,0x61,0x63, - 0x6B,0x20,0x75,0x70,0x2E,0x38,0x3E,0x43,0x74,0x72,0x6C,0x2B, - 0x46,0x31,0x20,0x40,0x54,0x31,0x36,0x30,0x54,0x72,0x61,0x6E, - 0x73,0x70,0x6F,0x73,0x65,0x20,0x61,0x6C,0x6C,0x20,0x69,0x6E, - 0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x73,0x20,0x69,0x6E, - 0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x64,0x6F,0x77, - 0x6E,0x2E,0x36,0x3E,0x43,0x74,0x72,0x6C,0x2B,0x46,0x32,0x20, + 0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x69,0x6E,0x73, + 0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x69,0x6E,0x20,0x74, + 0x72,0x61,0x63,0x6B,0x20,0x75,0x70,0x2E,0x3B,0x3E,0x43,0x74, + 0x72,0x6C,0x2B,0x46,0x37,0x20,0x40,0x54,0x31,0x36,0x30,0x54, + 0x72,0x61,0x6E,0x73,0x70,0x6F,0x73,0x65,0x20,0x63,0x75,0x72, + 0x72,0x65,0x6E,0x74,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D, + 0x65,0x6E,0x74,0x20,0x69,0x6E,0x20,0x70,0x61,0x74,0x74,0x65, + 0x72,0x6E,0x20,0x64,0x6F,0x77,0x6E,0x2E,0x39,0x3E,0x43,0x74, + 0x72,0x6C,0x2B,0x46,0x38,0x20,0x40,0x54,0x31,0x36,0x30,0x54, + 0x72,0x61,0x6E,0x73,0x70,0x6F,0x73,0x65,0x20,0x63,0x75,0x72, + 0x72,0x65,0x6E,0x74,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D, + 0x65,0x6E,0x74,0x20,0x69,0x6E,0x20,0x70,0x61,0x74,0x74,0x65, + 0x72,0x6E,0x20,0x75,0x70,0x2E,0x38,0x3E,0x41,0x6C,0x74,0x2B, + 0x46,0x37,0x20,0x40,0x54,0x31,0x36,0x30,0x54,0x72,0x61,0x6E, + 0x73,0x70,0x6F,0x73,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6E, + 0x74,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74, + 0x20,0x69,0x6E,0x20,0x62,0x6C,0x6F,0x63,0x6B,0x20,0x64,0x6F, + 0x77,0x6E,0x2E,0x36,0x3E,0x41,0x6C,0x74,0x2B,0x46,0x38,0x20, 0x40,0x54,0x31,0x36,0x30,0x54,0x72,0x61,0x6E,0x73,0x70,0x6F, - 0x73,0x65,0x20,0x61,0x6C,0x6C,0x20,0x69,0x6E,0x73,0x74,0x72, - 0x75,0x6D,0x65,0x6E,0x74,0x73,0x20,0x69,0x6E,0x20,0x70,0x61, - 0x74,0x74,0x65,0x72,0x6E,0x20,0x75,0x70,0x2E,0x35,0x3E,0x41, - 0x6C,0x74,0x2B,0x46,0x31,0x20,0x40,0x54,0x31,0x36,0x30,0x54, + 0x73,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x69, + 0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x69,0x6E, + 0x20,0x62,0x6C,0x6F,0x63,0x6B,0x20,0x75,0x70,0x2E,0x34,0x3E, + 0x53,0x68,0x2B,0x46,0x31,0x20,0x40,0x54,0x31,0x36,0x30,0x54, 0x72,0x61,0x6E,0x73,0x70,0x6F,0x73,0x65,0x20,0x61,0x6C,0x6C, 0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x73, - 0x20,0x69,0x6E,0x20,0x62,0x6C,0x6F,0x63,0x6B,0x20,0x64,0x6F, - 0x77,0x6E,0x2E,0x33,0x3E,0x41,0x6C,0x74,0x2B,0x46,0x32,0x20, - 0x40,0x54,0x31,0x36,0x30,0x54,0x72,0x61,0x6E,0x73,0x70,0x6F, - 0x73,0x65,0x20,0x61,0x6C,0x6C,0x20,0x69,0x6E,0x73,0x74,0x72, - 0x75,0x6D,0x65,0x6E,0x74,0x73,0x20,0x69,0x6E,0x20,0x62,0x6C, - 0x6F,0x63,0x6B,0x20,0x75,0x70,0x2E,0x01,0x3E,0x18,0x40,0x58, - 0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x61,0x6D,0x70, - 0x6C,0x65,0x20,0x65,0x64,0x69,0x74,0x6F,0x72,0x3A,0x0B,0x3E, - 0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x1A,0x41, - 0x6C,0x74,0x2F,0x43,0x74,0x72,0x6C,0x2B,0x41,0x20,0x40,0x54, - 0x31,0x36,0x30,0x52,0x61,0x6E,0x67,0x65,0x20,0x61,0x6C,0x6C, - 0x2E,0x17,0x3E,0x41,0x6C,0x74,0x2B,0x53,0x20,0x40,0x54,0x31, - 0x36,0x30,0x53,0x68,0x6F,0x77,0x20,0x72,0x61,0x6E,0x67,0x65, - 0x2E,0x15,0x3E,0x41,0x6C,0x74,0x2B,0x5A,0x20,0x40,0x54,0x31, - 0x36,0x30,0x5A,0x6F,0x6F,0x6D,0x20,0x6F,0x75,0x74,0x2E,0x1A, - 0x3E,0x41,0x6C,0x74,0x2B,0x58,0x20,0x6F,0x72,0x20,0x44,0x65, - 0x6C,0x65,0x74,0x65,0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x75, - 0x74,0x2E,0x16,0x3E,0x41,0x6C,0x74,0x2F,0x43,0x74,0x72,0x6C, - 0x2B,0x43,0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x6F,0x70,0x79, - 0x2E,0x17,0x3E,0x41,0x6C,0x74,0x2F,0x43,0x74,0x72,0x6C,0x2B, - 0x56,0x20,0x40,0x54,0x31,0x36,0x30,0x50,0x61,0x73,0x74,0x65, - 0x2E,0x11,0x3E,0x41,0x6C,0x74,0x2B,0x52,0x20,0x40,0x54,0x31, - 0x36,0x30,0x43,0x72,0x6F,0x70,0x2E,0x2A,0x3E,0x4D,0x6F,0x75, - 0x73,0x65,0x20,0x77,0x68,0x65,0x65,0x6C,0x20,0x40,0x54,0x31, - 0x36,0x30,0x5A,0x6F,0x6F,0x6D,0x20,0x73,0x61,0x6D,0x70,0x6C, - 0x65,0x20,0x64,0x61,0x74,0x61,0x20,0x69,0x6E,0x2F,0x6F,0x75, - 0x74,0x2E,0x00,0x03,0x45,0x4E,0x44,0x4C,0x3B,0x2A,0x2A,0x2A, + 0x20,0x69,0x6E,0x20,0x74,0x72,0x61,0x63,0x6B,0x20,0x64,0x6F, + 0x77,0x6E,0x2E,0x32,0x3E,0x53,0x68,0x2B,0x46,0x32,0x20,0x40, + 0x54,0x31,0x36,0x30,0x54,0x72,0x61,0x6E,0x73,0x70,0x6F,0x73, + 0x65,0x20,0x61,0x6C,0x6C,0x20,0x69,0x6E,0x73,0x74,0x72,0x75, + 0x6D,0x65,0x6E,0x74,0x73,0x20,0x69,0x6E,0x20,0x74,0x72,0x61, + 0x63,0x6B,0x20,0x75,0x70,0x2E,0x38,0x3E,0x43,0x74,0x72,0x6C, + 0x2B,0x46,0x31,0x20,0x40,0x54,0x31,0x36,0x30,0x54,0x72,0x61, + 0x6E,0x73,0x70,0x6F,0x73,0x65,0x20,0x61,0x6C,0x6C,0x20,0x69, + 0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x73,0x20,0x69, + 0x6E,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x64,0x6F, + 0x77,0x6E,0x2E,0x36,0x3E,0x43,0x74,0x72,0x6C,0x2B,0x46,0x32, + 0x20,0x40,0x54,0x31,0x36,0x30,0x54,0x72,0x61,0x6E,0x73,0x70, + 0x6F,0x73,0x65,0x20,0x61,0x6C,0x6C,0x20,0x69,0x6E,0x73,0x74, + 0x72,0x75,0x6D,0x65,0x6E,0x74,0x73,0x20,0x69,0x6E,0x20,0x70, + 0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x75,0x70,0x2E,0x35,0x3E, + 0x41,0x6C,0x74,0x2B,0x46,0x31,0x20,0x40,0x54,0x31,0x36,0x30, + 0x54,0x72,0x61,0x6E,0x73,0x70,0x6F,0x73,0x65,0x20,0x61,0x6C, + 0x6C,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74, + 0x73,0x20,0x69,0x6E,0x20,0x62,0x6C,0x6F,0x63,0x6B,0x20,0x64, + 0x6F,0x77,0x6E,0x2E,0x33,0x3E,0x41,0x6C,0x74,0x2B,0x46,0x32, + 0x20,0x40,0x54,0x31,0x36,0x30,0x54,0x72,0x61,0x6E,0x73,0x70, + 0x6F,0x73,0x65,0x20,0x61,0x6C,0x6C,0x20,0x69,0x6E,0x73,0x74, + 0x72,0x75,0x6D,0x65,0x6E,0x74,0x73,0x20,0x69,0x6E,0x20,0x62, + 0x6C,0x6F,0x63,0x6B,0x20,0x75,0x70,0x2E,0x01,0x3E,0x18,0x40, + 0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x61,0x6D, + 0x70,0x6C,0x65,0x20,0x65,0x64,0x69,0x74,0x6F,0x72,0x3A,0x0B, + 0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x1A, + 0x41,0x6C,0x74,0x2F,0x43,0x74,0x72,0x6C,0x2B,0x41,0x20,0x40, + 0x54,0x31,0x36,0x30,0x52,0x61,0x6E,0x67,0x65,0x20,0x61,0x6C, + 0x6C,0x2E,0x17,0x3E,0x41,0x6C,0x74,0x2B,0x53,0x20,0x40,0x54, + 0x31,0x36,0x30,0x53,0x68,0x6F,0x77,0x20,0x72,0x61,0x6E,0x67, + 0x65,0x2E,0x15,0x3E,0x41,0x6C,0x74,0x2B,0x5A,0x20,0x40,0x54, + 0x31,0x36,0x30,0x5A,0x6F,0x6F,0x6D,0x20,0x6F,0x75,0x74,0x2E, + 0x1A,0x3E,0x41,0x6C,0x74,0x2B,0x58,0x20,0x6F,0x72,0x20,0x44, + 0x65,0x6C,0x65,0x74,0x65,0x20,0x40,0x54,0x31,0x36,0x30,0x43, + 0x75,0x74,0x2E,0x16,0x3E,0x41,0x6C,0x74,0x2F,0x43,0x74,0x72, + 0x6C,0x2B,0x43,0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x6F,0x70, + 0x79,0x2E,0x17,0x3E,0x41,0x6C,0x74,0x2F,0x43,0x74,0x72,0x6C, + 0x2B,0x56,0x20,0x40,0x54,0x31,0x36,0x30,0x50,0x61,0x73,0x74, + 0x65,0x2E,0x11,0x3E,0x41,0x6C,0x74,0x2B,0x52,0x20,0x40,0x54, + 0x31,0x36,0x30,0x43,0x72,0x6F,0x70,0x2E,0x2A,0x3E,0x4D,0x6F, + 0x75,0x73,0x65,0x20,0x77,0x68,0x65,0x65,0x6C,0x20,0x40,0x54, + 0x31,0x36,0x30,0x5A,0x6F,0x6F,0x6D,0x20,0x73,0x61,0x6D,0x70, + 0x6C,0x65,0x20,0x64,0x61,0x74,0x61,0x20,0x69,0x6E,0x2F,0x6F, + 0x75,0x74,0x2E,0x00,0x03,0x45,0x4E,0x44,0x4C,0x3B,0x2A,0x2A, 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, - 0x4C,0x3B,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, + 0x2A,0x4C,0x3B,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, - 0x2A,0x2A,0x2A,0x2A,0x2A,0x1B,0x40,0x4C,0x48,0x6F,0x77,0x20, - 0x74,0x6F,0x20,0x75,0x73,0x65,0x20,0x46,0x61,0x73,0x74,0x74, - 0x72,0x61,0x63,0x6B,0x65,0x72,0x20,0x49,0x49,0x0B,0x3E,0x40, - 0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x32,0x40,0x3E,0x41, - 0x6C,0x6C,0x20,0x22,0x6E,0x6F,0x74,0x2D,0x74,0x6F,0x6F,0x2D, - 0x74,0x72,0x69,0x76,0x69,0x61,0x6C,0x22,0x20,0x66,0x75,0x6E, - 0x63,0x74,0x69,0x6F,0x6E,0x73,0x20,0x61,0x72,0x65,0x20,0x70, - 0x72,0x65,0x73,0x65,0x6E,0x74,0x65,0x64,0x20,0x62,0x65,0x6C, - 0x6F,0x77,0x20,0x28,0x6F,0x72,0x64,0x65,0x72,0x65,0x64,0x20, - 0x69,0x6E,0x22,0x77,0x69,0x6E,0x64,0x6F,0x77,0x73,0x29,0x20, - 0x77,0x69,0x74,0x68,0x20,0x61,0x20,0x73,0x68,0x6F,0x72,0x74, - 0x20,0x64,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6F,0x6E, - 0x2E,0x00,0x17,0x3E,0x40,0x58,0x30,0x32,0x30,0x40,0x43,0x30, - 0x30,0x31,0x4D,0x61,0x69,0x6E,0x20,0x73,0x63,0x72,0x65,0x65, - 0x6E,0x3A,0x01,0x3E,0x22,0x3E,0x40,0x58,0x30,0x34,0x30,0x40, - 0x43,0x30,0x30,0x31,0x42,0x50,0x4D,0x20,0x28,0x42,0x65,0x61, - 0x74,0x73,0x20,0x70,0x65,0x72,0x20,0x6D,0x69,0x6E,0x75,0x74, - 0x65,0x29,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43, - 0x30,0x30,0x32,0x40,0x54,0x68,0x65,0x20,0x42,0x50,0x4D,0x20, - 0x73,0x65,0x74,0x74,0x69,0x6E,0x67,0x20,0x64,0x65,0x66,0x69, - 0x6E,0x65,0x73,0x20,0x68,0x6F,0x77,0x20,0x66,0x61,0x73,0x74, - 0x20,0x28,0x74,0x69,0x63,0x6B,0x73,0x2F,0x73,0x65,0x63,0x6F, - 0x6E,0x64,0x29,0x20,0x74,0x68,0x65,0x20,0x6D,0x75,0x73,0x69, - 0x63,0x20,0x70,0x6C,0x61,0x79,0x65,0x72,0x1C,0x77,0x69,0x6C, - 0x6C,0x20,0x72,0x75,0x6E,0x2E,0x20,0x31,0x32,0x35,0x20,0x42, - 0x50,0x4D,0x20,0x3C,0x2D,0x3E,0x20,0x35,0x30,0x20,0x48,0x7A, - 0x2E,0x28,0x3E,0x4E,0x75,0x6D,0x62,0x65,0x72,0x20,0x6F,0x66, - 0x20,0x70,0x6C,0x61,0x79,0x65,0x72,0x20,0x74,0x69,0x63,0x6B, - 0x73,0x2F,0x73,0x65,0x63,0x6F,0x6E,0x64,0x20,0x3D,0x20,0x42, - 0x50,0x4D,0x2A,0x32,0x2F,0x35,0x00,0x16,0x3E,0x40,0x58,0x30, - 0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x70,0x64,0x2C,0x20, - 0x53,0x70,0x65,0x65,0x64,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36, - 0x30,0x40,0x43,0x30,0x30,0x32,0x2C,0x53,0x70,0x65,0x65,0x64, - 0x20,0x3D,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x20,0x6F,0x66, - 0x20,0x70,0x6C,0x61,0x79,0x65,0x72,0x20,0x74,0x69,0x63,0x6B, - 0x73,0x2F,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x6C,0x69, - 0x6E,0x65,0x2E,0x00,0x0F,0x3E,0x40,0x58,0x30,0x34,0x30,0x40, - 0x43,0x30,0x30,0x31,0x41,0x64,0x64,0x3A,0x0B,0x3E,0x40,0x58, - 0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x3E,0x22,0x41,0x64, - 0x64,0x22,0x20,0x69,0x73,0x20,0x74,0x68,0x65,0x20,0x6E,0x75, - 0x6D,0x62,0x65,0x72,0x20,0x6F,0x66,0x20,0x70,0x61,0x74,0x74, - 0x65,0x72,0x6E,0x20,0x6C,0x69,0x6E,0x65,0x73,0x20,0x74,0x68, - 0x65,0x20,0x63,0x75,0x72,0x73,0x6F,0x72,0x20,0x6A,0x75,0x6D, - 0x70,0x73,0x20,0x77,0x68,0x65,0x6E,0x20,0x79,0x6F,0x75,0x0C, - 0x65,0x64,0x69,0x74,0x20,0x61,0x20,0x6E,0x6F,0x74,0x65,0x2E, - 0x00,0x0F,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30, - 0x31,0x50,0x74,0x6E,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30, - 0x40,0x43,0x30,0x30,0x32,0x1B,0x54,0x68,0x65,0x20,0x63,0x75, - 0x72,0x72,0x65,0x6E,0x74,0x20,0x70,0x61,0x74,0x74,0x65,0x72, - 0x6E,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x2E,0x00,0x0E,0x3E, - 0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x4C,0x6E, - 0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30, - 0x32,0x43,0x54,0x68,0x65,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72, - 0x20,0x6F,0x66,0x20,0x6C,0x69,0x6E,0x65,0x73,0x20,0x66,0x6F, - 0x72,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6E, - 0x74,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x2E,0x20,0x55, - 0x70,0x20,0x74,0x6F,0x20,0x24,0x31,0x30,0x30,0x20,0x6C,0x69, - 0x6E,0x65,0x73,0x2E,0x20,0x4E,0x6F,0x74,0x65,0x40,0x74,0x68, - 0x61,0x74,0x20,0x46,0x54,0x32,0x20,0x77,0x6F,0x6E,0x27,0x74, - 0x20,0x77,0x61,0x72,0x6E,0x20,0x79,0x6F,0x75,0x20,0x69,0x66, - 0x20,0x79,0x6F,0x75,0x20,0x64,0x65,0x63,0x72,0x65,0x61,0x73, - 0x65,0x20,0x74,0x68,0x69,0x73,0x20,0x76,0x61,0x6C,0x75,0x65, - 0x2E,0x20,0x54,0x68,0x65,0x20,0x6E,0x6F,0x74,0x65,0x73,0x20, - 0x61,0x74,0x37,0x74,0x68,0x65,0x20,0x62,0x6F,0x74,0x74,0x6F, - 0x6D,0x20,0x6C,0x69,0x6E,0x65,0x20,0x77,0x69,0x6C,0x6C,0x20, - 0x62,0x65,0x20,0x74,0x68,0x72,0x6F,0x77,0x6E,0x20,0x6F,0x75, - 0x74,0x20,0x74,0x6F,0x20,0x74,0x68,0x65,0x20,0x62,0x69,0x6E, - 0x61,0x72,0x79,0x20,0x73,0x70,0x61,0x63,0x65,0x2E,0x00,0x10, - 0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x45, - 0x78,0x70,0x64,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40, - 0x43,0x30,0x30,0x32,0x44,0x45,0x78,0x70,0x61,0x6E,0x64,0x20, - 0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x2E,0x20,0x49,0x6E,0x73, - 0x65,0x72,0x74,0x73,0x20,0x61,0x20,0x62,0x6C,0x61,0x6E,0x6B, - 0x20,0x6C,0x69,0x6E,0x65,0x20,0x61,0x66,0x74,0x65,0x72,0x20, - 0x65,0x61,0x63,0x68,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E, - 0x20,0x6C,0x69,0x6E,0x65,0x2E,0x20,0x55,0x73,0x65,0x66,0x75, - 0x6C,0x3C,0x69,0x66,0x20,0x79,0x6F,0x75,0x20,0x77,0x61,0x6E, - 0x74,0x20,0x74,0x6F,0x20,0x63,0x6F,0x6E,0x76,0x65,0x72,0x74, - 0x20,0x61,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x74, - 0x68,0x61,0x74,0x20,0x72,0x75,0x6E,0x73,0x20,0x69,0x6E,0x20, - 0x73,0x70,0x65,0x65,0x64,0x20,0x32,0x2A,0x78,0x20,0x74,0x6F, - 0x20,0x61,0x1D,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x74, - 0x68,0x61,0x74,0x20,0x72,0x75,0x6E,0x73,0x20,0x69,0x6E,0x20, - 0x73,0x70,0x65,0x65,0x64,0x20,0x78,0x2E,0x00,0x10,0x3E,0x40, - 0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x68,0x6E, - 0x6B,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30, - 0x30,0x32,0x2E,0x53,0x68,0x72,0x69,0x6E,0x6B,0x20,0x70,0x61, - 0x74,0x74,0x65,0x72,0x6E,0x2E,0x20,0x44,0x65,0x6C,0x65,0x74, - 0x65,0x73,0x20,0x61,0x6C,0x6C,0x20,0x6F,0x64,0x64,0x20,0x70, - 0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x6C,0x69,0x6E,0x65,0x73, - 0x2E,0x00,0x2A,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30, - 0x30,0x31,0x54,0x68,0x65,0x20,0x69,0x6E,0x73,0x74,0x72,0x75, - 0x6D,0x65,0x6E,0x74,0x2F,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20, - 0x73,0x65,0x6C,0x65,0x63,0x74,0x6F,0x72,0x3A,0x0B,0x3E,0x40, - 0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x3A,0x54,0x68, - 0x65,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74, - 0x20,0x74,0x68,0x61,0x74,0x20,0x68,0x61,0x73,0x20,0x61,0x20, - 0x6D,0x61,0x72,0x6B,0x20,0x6F,0x6E,0x20,0x69,0x74,0x27,0x73, - 0x20,0x6E,0x61,0x6D,0x65,0x20,0x73,0x74,0x72,0x69,0x6E,0x67, - 0x2C,0x20,0x69,0x73,0x20,0x74,0x68,0x65,0x17,0x64,0x65,0x73, - 0x74,0x69,0x6E,0x61,0x74,0x69,0x6F,0x6E,0x20,0x69,0x6E,0x73, - 0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x3D,0x3E,0x54,0x68, - 0x65,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74, - 0x20,0x74,0x68,0x61,0x74,0x20,0x68,0x61,0x73,0x20,0x61,0x20, - 0x6D,0x61,0x72,0x6B,0x20,0x6F,0x6E,0x20,0x69,0x74,0x27,0x73, - 0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x2C,0x20,0x69,0x73,0x20, - 0x74,0x68,0x65,0x20,0x73,0x6F,0x75,0x72,0x63,0x65,0x0B,0x69, - 0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x1F,0x3E, - 0x54,0x68,0x65,0x20,0x73,0x61,0x6D,0x65,0x20,0x67,0x6F,0x65, - 0x73,0x20,0x66,0x6F,0x72,0x20,0x74,0x68,0x65,0x20,0x73,0x61, - 0x6D,0x70,0x6C,0x65,0x73,0x2E,0x42,0x3E,0x59,0x6F,0x75,0x20, - 0x63,0x68,0x61,0x6E,0x67,0x65,0x20,0x74,0x68,0x65,0x20,0x6E, - 0x61,0x6D,0x65,0x20,0x6F,0x6E,0x20,0x61,0x6E,0x20,0x69,0x6E, - 0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x2F,0x73,0x61,0x6D, - 0x70,0x6C,0x65,0x20,0x62,0x79,0x20,0x63,0x6C,0x69,0x63,0x6B, - 0x69,0x6E,0x67,0x20,0x74,0x68,0x65,0x20,0x72,0x69,0x67,0x68, - 0x74,0x07,0x62,0x75,0x74,0x74,0x6F,0x6E,0x2E,0x00,0x12,0x3E, - 0x40,0x58,0x30,0x32,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x63, - 0x6F,0x70,0x65,0x73,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30, - 0x40,0x43,0x30,0x30,0x32,0x22,0x3E,0x4C,0x65,0x66,0x74,0x20, - 0x62,0x75,0x74,0x74,0x6F,0x6E,0x3A,0x20,0x54,0x75,0x72,0x6E, - 0x20,0x63,0x68,0x61,0x6E,0x6E,0x65,0x6C,0x20,0x6F,0x6E,0x2F, - 0x6F,0x66,0x66,0x2E,0x35,0x3E,0x52,0x69,0x67,0x68,0x74,0x20, + 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x1B,0x40,0x4C,0x48,0x6F,0x77, + 0x20,0x74,0x6F,0x20,0x75,0x73,0x65,0x20,0x46,0x61,0x73,0x74, + 0x74,0x72,0x61,0x63,0x6B,0x65,0x72,0x20,0x49,0x49,0x0B,0x3E, + 0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x32,0x40,0x3E, + 0x41,0x6C,0x6C,0x20,0x22,0x6E,0x6F,0x74,0x2D,0x74,0x6F,0x6F, + 0x2D,0x74,0x72,0x69,0x76,0x69,0x61,0x6C,0x22,0x20,0x66,0x75, + 0x6E,0x63,0x74,0x69,0x6F,0x6E,0x73,0x20,0x61,0x72,0x65,0x20, + 0x70,0x72,0x65,0x73,0x65,0x6E,0x74,0x65,0x64,0x20,0x62,0x65, + 0x6C,0x6F,0x77,0x20,0x28,0x6F,0x72,0x64,0x65,0x72,0x65,0x64, + 0x20,0x69,0x6E,0x22,0x77,0x69,0x6E,0x64,0x6F,0x77,0x73,0x29, + 0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x20,0x73,0x68,0x6F,0x72, + 0x74,0x20,0x64,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6F, + 0x6E,0x2E,0x00,0x17,0x3E,0x40,0x58,0x30,0x32,0x30,0x40,0x43, + 0x30,0x30,0x31,0x4D,0x61,0x69,0x6E,0x20,0x73,0x63,0x72,0x65, + 0x65,0x6E,0x3A,0x01,0x3E,0x22,0x3E,0x40,0x58,0x30,0x34,0x30, + 0x40,0x43,0x30,0x30,0x31,0x42,0x50,0x4D,0x20,0x28,0x42,0x65, + 0x61,0x74,0x73,0x20,0x70,0x65,0x72,0x20,0x6D,0x69,0x6E,0x75, + 0x74,0x65,0x29,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40, + 0x43,0x30,0x30,0x32,0x40,0x54,0x68,0x65,0x20,0x42,0x50,0x4D, + 0x20,0x73,0x65,0x74,0x74,0x69,0x6E,0x67,0x20,0x64,0x65,0x66, + 0x69,0x6E,0x65,0x73,0x20,0x68,0x6F,0x77,0x20,0x66,0x61,0x73, + 0x74,0x20,0x28,0x74,0x69,0x63,0x6B,0x73,0x2F,0x73,0x65,0x63, + 0x6F,0x6E,0x64,0x29,0x20,0x74,0x68,0x65,0x20,0x6D,0x75,0x73, + 0x69,0x63,0x20,0x70,0x6C,0x61,0x79,0x65,0x72,0x1C,0x77,0x69, + 0x6C,0x6C,0x20,0x72,0x75,0x6E,0x2E,0x20,0x31,0x32,0x35,0x20, + 0x42,0x50,0x4D,0x20,0x3C,0x2D,0x3E,0x20,0x35,0x30,0x20,0x48, + 0x7A,0x2E,0x28,0x3E,0x4E,0x75,0x6D,0x62,0x65,0x72,0x20,0x6F, + 0x66,0x20,0x70,0x6C,0x61,0x79,0x65,0x72,0x20,0x74,0x69,0x63, + 0x6B,0x73,0x2F,0x73,0x65,0x63,0x6F,0x6E,0x64,0x20,0x3D,0x20, + 0x42,0x50,0x4D,0x2A,0x32,0x2F,0x35,0x00,0x16,0x3E,0x40,0x58, + 0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x70,0x64,0x2C, + 0x20,0x53,0x70,0x65,0x65,0x64,0x3A,0x0B,0x3E,0x40,0x58,0x30, + 0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x2C,0x53,0x70,0x65,0x65, + 0x64,0x20,0x3D,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x20,0x6F, + 0x66,0x20,0x70,0x6C,0x61,0x79,0x65,0x72,0x20,0x74,0x69,0x63, + 0x6B,0x73,0x2F,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x6C, + 0x69,0x6E,0x65,0x2E,0x00,0x0F,0x3E,0x40,0x58,0x30,0x34,0x30, + 0x40,0x43,0x30,0x30,0x31,0x41,0x64,0x64,0x3A,0x0B,0x3E,0x40, + 0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x3E,0x22,0x41, + 0x64,0x64,0x22,0x20,0x69,0x73,0x20,0x74,0x68,0x65,0x20,0x6E, + 0x75,0x6D,0x62,0x65,0x72,0x20,0x6F,0x66,0x20,0x70,0x61,0x74, + 0x74,0x65,0x72,0x6E,0x20,0x6C,0x69,0x6E,0x65,0x73,0x20,0x74, + 0x68,0x65,0x20,0x63,0x75,0x72,0x73,0x6F,0x72,0x20,0x6A,0x75, + 0x6D,0x70,0x73,0x20,0x77,0x68,0x65,0x6E,0x20,0x79,0x6F,0x75, + 0x0C,0x65,0x64,0x69,0x74,0x20,0x61,0x20,0x6E,0x6F,0x74,0x65, + 0x2E,0x00,0x0F,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30, + 0x30,0x31,0x50,0x74,0x6E,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36, + 0x30,0x40,0x43,0x30,0x30,0x32,0x1B,0x54,0x68,0x65,0x20,0x63, + 0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x70,0x61,0x74,0x74,0x65, + 0x72,0x6E,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x2E,0x00,0x0E, + 0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x4C, + 0x6E,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30, + 0x30,0x32,0x43,0x54,0x68,0x65,0x20,0x6E,0x75,0x6D,0x62,0x65, + 0x72,0x20,0x6F,0x66,0x20,0x6C,0x69,0x6E,0x65,0x73,0x20,0x66, + 0x6F,0x72,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72,0x65, + 0x6E,0x74,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x2E,0x20, + 0x55,0x70,0x20,0x74,0x6F,0x20,0x24,0x31,0x30,0x30,0x20,0x6C, + 0x69,0x6E,0x65,0x73,0x2E,0x20,0x4E,0x6F,0x74,0x65,0x40,0x74, + 0x68,0x61,0x74,0x20,0x46,0x54,0x32,0x20,0x77,0x6F,0x6E,0x27, + 0x74,0x20,0x77,0x61,0x72,0x6E,0x20,0x79,0x6F,0x75,0x20,0x69, + 0x66,0x20,0x79,0x6F,0x75,0x20,0x64,0x65,0x63,0x72,0x65,0x61, + 0x73,0x65,0x20,0x74,0x68,0x69,0x73,0x20,0x76,0x61,0x6C,0x75, + 0x65,0x2E,0x20,0x54,0x68,0x65,0x20,0x6E,0x6F,0x74,0x65,0x73, + 0x20,0x61,0x74,0x37,0x74,0x68,0x65,0x20,0x62,0x6F,0x74,0x74, + 0x6F,0x6D,0x20,0x6C,0x69,0x6E,0x65,0x20,0x77,0x69,0x6C,0x6C, + 0x20,0x62,0x65,0x20,0x74,0x68,0x72,0x6F,0x77,0x6E,0x20,0x6F, + 0x75,0x74,0x20,0x74,0x6F,0x20,0x74,0x68,0x65,0x20,0x62,0x69, + 0x6E,0x61,0x72,0x79,0x20,0x73,0x70,0x61,0x63,0x65,0x2E,0x00, + 0x10,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31, + 0x45,0x78,0x70,0x64,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30, + 0x40,0x43,0x30,0x30,0x32,0x44,0x45,0x78,0x70,0x61,0x6E,0x64, + 0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x2E,0x20,0x49,0x6E, + 0x73,0x65,0x72,0x74,0x73,0x20,0x61,0x20,0x62,0x6C,0x61,0x6E, + 0x6B,0x20,0x6C,0x69,0x6E,0x65,0x20,0x61,0x66,0x74,0x65,0x72, + 0x20,0x65,0x61,0x63,0x68,0x20,0x70,0x61,0x74,0x74,0x65,0x72, + 0x6E,0x20,0x6C,0x69,0x6E,0x65,0x2E,0x20,0x55,0x73,0x65,0x66, + 0x75,0x6C,0x3C,0x69,0x66,0x20,0x79,0x6F,0x75,0x20,0x77,0x61, + 0x6E,0x74,0x20,0x74,0x6F,0x20,0x63,0x6F,0x6E,0x76,0x65,0x72, + 0x74,0x20,0x61,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20, + 0x74,0x68,0x61,0x74,0x20,0x72,0x75,0x6E,0x73,0x20,0x69,0x6E, + 0x20,0x73,0x70,0x65,0x65,0x64,0x20,0x32,0x2A,0x78,0x20,0x74, + 0x6F,0x20,0x61,0x1D,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20, + 0x74,0x68,0x61,0x74,0x20,0x72,0x75,0x6E,0x73,0x20,0x69,0x6E, + 0x20,0x73,0x70,0x65,0x65,0x64,0x20,0x78,0x2E,0x00,0x10,0x3E, + 0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x68, + 0x6E,0x6B,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43, + 0x30,0x30,0x32,0x2E,0x53,0x68,0x72,0x69,0x6E,0x6B,0x20,0x70, + 0x61,0x74,0x74,0x65,0x72,0x6E,0x2E,0x20,0x44,0x65,0x6C,0x65, + 0x74,0x65,0x73,0x20,0x61,0x6C,0x6C,0x20,0x6F,0x64,0x64,0x20, + 0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x6C,0x69,0x6E,0x65, + 0x73,0x2E,0x00,0x2A,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43, + 0x30,0x30,0x31,0x54,0x68,0x65,0x20,0x69,0x6E,0x73,0x74,0x72, + 0x75,0x6D,0x65,0x6E,0x74,0x2F,0x73,0x61,0x6D,0x70,0x6C,0x65, + 0x20,0x73,0x65,0x6C,0x65,0x63,0x74,0x6F,0x72,0x3A,0x0B,0x3E, + 0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x3A,0x54, + 0x68,0x65,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E, + 0x74,0x20,0x74,0x68,0x61,0x74,0x20,0x68,0x61,0x73,0x20,0x61, + 0x20,0x6D,0x61,0x72,0x6B,0x20,0x6F,0x6E,0x20,0x69,0x74,0x27, + 0x73,0x20,0x6E,0x61,0x6D,0x65,0x20,0x73,0x74,0x72,0x69,0x6E, + 0x67,0x2C,0x20,0x69,0x73,0x20,0x74,0x68,0x65,0x17,0x64,0x65, + 0x73,0x74,0x69,0x6E,0x61,0x74,0x69,0x6F,0x6E,0x20,0x69,0x6E, + 0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x3D,0x3E,0x54, + 0x68,0x65,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E, + 0x74,0x20,0x74,0x68,0x61,0x74,0x20,0x68,0x61,0x73,0x20,0x61, + 0x20,0x6D,0x61,0x72,0x6B,0x20,0x6F,0x6E,0x20,0x69,0x74,0x27, + 0x73,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x2C,0x20,0x69,0x73, + 0x20,0x74,0x68,0x65,0x20,0x73,0x6F,0x75,0x72,0x63,0x65,0x0B, + 0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x1F, + 0x3E,0x54,0x68,0x65,0x20,0x73,0x61,0x6D,0x65,0x20,0x67,0x6F, + 0x65,0x73,0x20,0x66,0x6F,0x72,0x20,0x74,0x68,0x65,0x20,0x73, + 0x61,0x6D,0x70,0x6C,0x65,0x73,0x2E,0x42,0x3E,0x59,0x6F,0x75, + 0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x20,0x74,0x68,0x65,0x20, + 0x6E,0x61,0x6D,0x65,0x20,0x6F,0x6E,0x20,0x61,0x6E,0x20,0x69, + 0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x2F,0x73,0x61, + 0x6D,0x70,0x6C,0x65,0x20,0x62,0x79,0x20,0x63,0x6C,0x69,0x63, + 0x6B,0x69,0x6E,0x67,0x20,0x74,0x68,0x65,0x20,0x72,0x69,0x67, + 0x68,0x74,0x07,0x62,0x75,0x74,0x74,0x6F,0x6E,0x2E,0x00,0x12, + 0x3E,0x40,0x58,0x30,0x32,0x30,0x40,0x43,0x30,0x30,0x31,0x53, + 0x63,0x6F,0x70,0x65,0x73,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36, + 0x30,0x40,0x43,0x30,0x30,0x32,0x22,0x3E,0x4C,0x65,0x66,0x74, + 0x20,0x62,0x75,0x74,0x74,0x6F,0x6E,0x3A,0x20,0x54,0x75,0x72, + 0x6E,0x20,0x63,0x68,0x61,0x6E,0x6E,0x65,0x6C,0x20,0x6F,0x6E, + 0x2F,0x6F,0x66,0x66,0x2E,0x35,0x3E,0x52,0x69,0x67,0x68,0x74, + 0x20,0x62,0x75,0x74,0x74,0x6F,0x6E,0x3A,0x20,0x54,0x75,0x72, + 0x6E,0x20,0x63,0x68,0x61,0x6E,0x6E,0x65,0x6C,0x20,0x6D,0x75, + 0x6C,0x74,0x69,0x2D,0x72,0x65,0x63,0x6F,0x72,0x64,0x2F,0x65, + 0x64,0x69,0x74,0x20,0x6F,0x6E,0x2F,0x6F,0x66,0x66,0x2E,0x42, + 0x3E,0x4C,0x65,0x66,0x74,0x2B,0x72,0x69,0x67,0x68,0x74,0x20, 0x62,0x75,0x74,0x74,0x6F,0x6E,0x3A,0x20,0x54,0x75,0x72,0x6E, - 0x20,0x63,0x68,0x61,0x6E,0x6E,0x65,0x6C,0x20,0x6D,0x75,0x6C, - 0x74,0x69,0x2D,0x72,0x65,0x63,0x6F,0x72,0x64,0x2F,0x65,0x64, - 0x69,0x74,0x20,0x6F,0x6E,0x2F,0x6F,0x66,0x66,0x2E,0x42,0x3E, - 0x4C,0x65,0x66,0x74,0x2B,0x72,0x69,0x67,0x68,0x74,0x20,0x62, - 0x75,0x74,0x74,0x6F,0x6E,0x3A,0x20,0x54,0x75,0x72,0x6E,0x20, - 0x61,0x6C,0x6C,0x20,0x63,0x68,0x61,0x6E,0x6E,0x65,0x6C,0x73, - 0x20,0x6F,0x66,0x66,0x20,0x65,0x78,0x63,0x65,0x70,0x74,0x20, - 0x74,0x68,0x65,0x20,0x73,0x65,0x6C,0x65,0x63,0x74,0x65,0x64, - 0x20,0x6F,0x6E,0x65,0x2E,0x00,0x1C,0x40,0x58,0x30,0x32,0x30, - 0x40,0x43,0x30,0x30,0x31,0x49,0x6E,0x73,0x74,0x72,0x75,0x6D, - 0x65,0x6E,0x74,0x20,0x45,0x64,0x69,0x74,0x6F,0x72,0x3A,0x01, - 0x3E,0x22,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30, - 0x31,0x57,0x68,0x61,0x74,0x20,0x69,0x73,0x20,0x61,0x6E,0x20, - 0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x3F,0x3A, - 0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32, - 0x1E,0x41,0x20,0x46,0x61,0x73,0x74,0x74,0x72,0x61,0x63,0x6B, - 0x65,0x72,0x20,0x32,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D, - 0x65,0x6E,0x74,0x20,0x69,0x73,0x3A,0x15,0x3E,0x20,0x20,0x20, - 0x31,0x20,0x56,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x65,0x6E,0x76, - 0x65,0x6C,0x6F,0x70,0x65,0x16,0x3E,0x20,0x20,0x20,0x31,0x20, - 0x50,0x61,0x6E,0x6E,0x69,0x6E,0x67,0x20,0x65,0x6E,0x76,0x65, - 0x6C,0x6F,0x70,0x65,0x1D,0x3E,0x20,0x20,0x20,0x31,0x20,0x41, - 0x75,0x74,0x6F,0x2D,0x76,0x69,0x62,0x72,0x61,0x74,0x6F,0x20, - 0x64,0x65,0x66,0x69,0x6E,0x69,0x74,0x69,0x6F,0x6E,0x13,0x3E, - 0x20,0x20,0x20,0x31,0x2E,0x2E,0x31,0x36,0x20,0x73,0x61,0x6D, - 0x70,0x6C,0x65,0x28,0x73,0x29,0x1F,0x3E,0x20,0x20,0x20,0x31, - 0x20,0x4B,0x65,0x79,0x62,0x6F,0x61,0x72,0x64,0x20,0x73,0x70, - 0x6C,0x69,0x74,0x20,0x64,0x65,0x66,0x69,0x6E,0x69,0x74,0x69, - 0x6F,0x6E,0x15,0x3E,0x20,0x20,0x20,0x31,0x20,0x4D,0x49,0x44, - 0x49,0x20,0x64,0x65,0x66,0x69,0x6E,0x69,0x74,0x69,0x6F,0x6E, - 0x00,0x1B,0x3E,0x41,0x20,0x46,0x61,0x73,0x74,0x74,0x72,0x61, - 0x63,0x6B,0x65,0x72,0x20,0x32,0x20,0x73,0x61,0x6D,0x70,0x6C, - 0x65,0x20,0x69,0x73,0x3A,0x28,0x3E,0x20,0x20,0x20,0x31,0x20, - 0x56,0x6F,0x6C,0x75,0x6D,0x65,0x2F,0x50,0x61,0x6E,0x6E,0x69, - 0x6E,0x67,0x2F,0x46,0x69,0x6E,0x65,0x74,0x75,0x6E,0x65,0x20, - 0x64,0x65,0x66,0x69,0x6E,0x69,0x74,0x69,0x6F,0x6E,0x13,0x3E, - 0x20,0x20,0x20,0x31,0x20,0x52,0x65,0x6C,0x61,0x74,0x69,0x76, - 0x65,0x20,0x6E,0x6F,0x74,0x65,0x0E,0x3E,0x20,0x20,0x20,0x31, - 0x20,0x57,0x61,0x76,0x65,0x66,0x6F,0x72,0x6D,0x00,0x1F,0x3E, + 0x20,0x61,0x6C,0x6C,0x20,0x63,0x68,0x61,0x6E,0x6E,0x65,0x6C, + 0x73,0x20,0x6F,0x66,0x66,0x20,0x65,0x78,0x63,0x65,0x70,0x74, + 0x20,0x74,0x68,0x65,0x20,0x73,0x65,0x6C,0x65,0x63,0x74,0x65, + 0x64,0x20,0x6F,0x6E,0x65,0x2E,0x00,0x1C,0x40,0x58,0x30,0x32, + 0x30,0x40,0x43,0x30,0x30,0x31,0x49,0x6E,0x73,0x74,0x72,0x75, + 0x6D,0x65,0x6E,0x74,0x20,0x45,0x64,0x69,0x74,0x6F,0x72,0x3A, + 0x01,0x3E,0x22,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30, + 0x30,0x31,0x57,0x68,0x61,0x74,0x20,0x69,0x73,0x20,0x61,0x6E, + 0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x3F, + 0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30, + 0x32,0x1E,0x41,0x20,0x46,0x61,0x73,0x74,0x74,0x72,0x61,0x63, + 0x6B,0x65,0x72,0x20,0x32,0x20,0x69,0x6E,0x73,0x74,0x72,0x75, + 0x6D,0x65,0x6E,0x74,0x20,0x69,0x73,0x3A,0x15,0x3E,0x20,0x20, + 0x20,0x31,0x20,0x56,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x65,0x6E, + 0x76,0x65,0x6C,0x6F,0x70,0x65,0x16,0x3E,0x20,0x20,0x20,0x31, + 0x20,0x50,0x61,0x6E,0x6E,0x69,0x6E,0x67,0x20,0x65,0x6E,0x76, + 0x65,0x6C,0x6F,0x70,0x65,0x1D,0x3E,0x20,0x20,0x20,0x31,0x20, + 0x41,0x75,0x74,0x6F,0x2D,0x76,0x69,0x62,0x72,0x61,0x74,0x6F, + 0x20,0x64,0x65,0x66,0x69,0x6E,0x69,0x74,0x69,0x6F,0x6E,0x13, + 0x3E,0x20,0x20,0x20,0x31,0x2E,0x2E,0x31,0x36,0x20,0x73,0x61, + 0x6D,0x70,0x6C,0x65,0x28,0x73,0x29,0x1F,0x3E,0x20,0x20,0x20, + 0x31,0x20,0x4B,0x65,0x79,0x62,0x6F,0x61,0x72,0x64,0x20,0x73, + 0x70,0x6C,0x69,0x74,0x20,0x64,0x65,0x66,0x69,0x6E,0x69,0x74, + 0x69,0x6F,0x6E,0x15,0x3E,0x20,0x20,0x20,0x31,0x20,0x4D,0x49, + 0x44,0x49,0x20,0x64,0x65,0x66,0x69,0x6E,0x69,0x74,0x69,0x6F, + 0x6E,0x00,0x1B,0x3E,0x41,0x20,0x46,0x61,0x73,0x74,0x74,0x72, + 0x61,0x63,0x6B,0x65,0x72,0x20,0x32,0x20,0x73,0x61,0x6D,0x70, + 0x6C,0x65,0x20,0x69,0x73,0x3A,0x28,0x3E,0x20,0x20,0x20,0x31, + 0x20,0x56,0x6F,0x6C,0x75,0x6D,0x65,0x2F,0x50,0x61,0x6E,0x6E, + 0x69,0x6E,0x67,0x2F,0x46,0x69,0x6E,0x65,0x74,0x75,0x6E,0x65, + 0x20,0x64,0x65,0x66,0x69,0x6E,0x69,0x74,0x69,0x6F,0x6E,0x13, + 0x3E,0x20,0x20,0x20,0x31,0x20,0x52,0x65,0x6C,0x61,0x74,0x69, + 0x76,0x65,0x20,0x6E,0x6F,0x74,0x65,0x0E,0x3E,0x20,0x20,0x20, + 0x31,0x20,0x57,0x61,0x76,0x65,0x66,0x6F,0x72,0x6D,0x00,0x1F, + 0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x54, + 0x68,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x65,0x6E, + 0x76,0x65,0x6C,0x6F,0x70,0x65,0x3A,0x0B,0x3E,0x40,0x58,0x30, + 0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x40,0x3E,0x41,0x6E,0x20, + 0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x27,0x73, + 0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x69,0x73,0x20,0x64, + 0x65,0x66,0x69,0x6E,0x65,0x64,0x20,0x62,0x79,0x20,0x69,0x74, + 0x73,0x20,0x65,0x6E,0x76,0x65,0x6C,0x6F,0x70,0x65,0x20,0x63, + 0x75,0x72,0x76,0x65,0x2E,0x20,0x49,0x66,0x20,0x74,0x68,0x65, + 0x3E,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20, + 0x68,0x61,0x73,0x20,0x61,0x20,0x73,0x75,0x73,0x74,0x61,0x69, + 0x6E,0x20,0x70,0x6F,0x69,0x6E,0x74,0x2C,0x20,0x74,0x68,0x65, + 0x20,0x65,0x6E,0x76,0x65,0x6C,0x6F,0x70,0x65,0x20,0x77,0x69, + 0x6C,0x6C,0x20,0x73,0x74,0x6F,0x70,0x20,0x61,0x74,0x20,0x74, + 0x68,0x61,0x74,0x42,0x70,0x6F,0x69,0x6E,0x74,0x20,0x75,0x6E, + 0x74,0x69,0x6C,0x20,0x61,0x20,0x6B,0x65,0x79,0x2D,0x6F,0x66, + 0x66,0x20,0x6E,0x6F,0x74,0x65,0x20,0x68,0x61,0x73,0x20,0x62, + 0x65,0x65,0x6E,0x20,0x70,0x6C,0x61,0x79,0x65,0x64,0x2E,0x20, + 0x57,0x68,0x65,0x6E,0x20,0x61,0x20,0x6B,0x65,0x79,0x2D,0x6F, + 0x66,0x66,0x20,0x6E,0x6F,0x74,0x65,0x20,0x69,0x73,0x1D,0x70, + 0x6C,0x61,0x79,0x65,0x64,0x2C,0x20,0x74,0x68,0x65,0x20,0x22, + 0x66,0x61,0x64,0x65,0x6F,0x75,0x74,0x22,0x20,0x62,0x65,0x67, + 0x69,0x6E,0x73,0x2E,0x44,0x3E,0x4F,0x6E,0x65,0x20,0x70,0x69, + 0x78,0x65,0x6C,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x65, + 0x6E,0x76,0x65,0x6C,0x6F,0x70,0x65,0x20,0x77,0x69,0x6E,0x64, + 0x6F,0x77,0x20,0x63,0x6F,0x72,0x72,0x65,0x73,0x70,0x6F,0x6E, + 0x64,0x73,0x20,0x74,0x6F,0x20,0x6F,0x6E,0x65,0x20,0x70,0x6C, + 0x61,0x79,0x65,0x72,0x2D,0x74,0x69,0x63,0x6B,0x2E,0x20,0x49, + 0x66,0x3C,0x74,0x68,0x65,0x20,0x42,0x50,0x4D,0x20,0x69,0x73, + 0x20,0x31,0x32,0x35,0x2C,0x20,0x79,0x6F,0x75,0x27,0x6C,0x6C, + 0x20,0x63,0x6F,0x6E,0x73,0x75,0x6D,0x65,0x20,0x35,0x30,0x20, + 0x70,0x69,0x78,0x65,0x6C,0x2F,0x73,0x65,0x63,0x6F,0x6E,0x64, + 0x2E,0x20,0x54,0x68,0x65,0x20,0x77,0x69,0x6E,0x64,0x6F,0x77, + 0x27,0x73,0x1A,0x22,0x73,0x69,0x7A,0x65,0x22,0x20,0x69,0x73, + 0x20,0x61,0x62,0x6F,0x75,0x74,0x20,0x36,0x20,0x73,0x65,0x63, + 0x6F,0x6E,0x64,0x73,0x2E,0x3E,0x3E,0x49,0x66,0x20,0x79,0x6F, + 0x75,0x20,0x70,0x72,0x65,0x73,0x73,0x20,0x74,0x68,0x65,0x20, + 0x72,0x69,0x67,0x68,0x74,0x20,0x6D,0x6F,0x75,0x73,0x65,0x20, + 0x62,0x75,0x74,0x74,0x6F,0x6E,0x20,0x61,0x74,0x20,0x74,0x68, + 0x65,0x20,0x70,0x72,0x65,0x64,0x65,0x66,0x69,0x6E,0x65,0x20, + 0x62,0x75,0x74,0x74,0x6F,0x6E,0x73,0x2C,0x3F,0x79,0x6F,0x75, + 0x27,0x6C,0x6C,0x20,0x73,0x74,0x6F,0x72,0x65,0x20,0x74,0x68, + 0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x65,0x6E, + 0x76,0x65,0x6C,0x6F,0x70,0x65,0x20,0x69,0x6E,0x74,0x6F,0x20, + 0x74,0x68,0x61,0x74,0x20,0x70,0x72,0x65,0x64,0x65,0x66,0x69, + 0x6E,0x65,0x20,0x63,0x65,0x6C,0x6C,0x2E,0x20,0x54,0x68,0x65, + 0x30,0x70,0x72,0x65,0x64,0x65,0x66,0x69,0x6E,0x65,0x73,0x20, + 0x61,0x72,0x65,0x20,0x73,0x74,0x6F,0x72,0x65,0x64,0x20,0x69, + 0x6E,0x20,0x74,0x68,0x65,0x20,0x63,0x6F,0x6E,0x66,0x69,0x67, + 0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x20,0x66,0x69,0x6C,0x65, + 0x2E,0x43,0x3E,0x50,0x72,0x65,0x64,0x65,0x66,0x69,0x6E,0x65, + 0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x20,0x31,0x20,0x69,0x73, + 0x20,0x74,0x68,0x65,0x20,0x64,0x65,0x66,0x61,0x75,0x6C,0x74, + 0x20,0x65,0x6E,0x76,0x65,0x6C,0x6F,0x70,0x65,0x2E,0x20,0x54, + 0x68,0x69,0x73,0x20,0x6D,0x65,0x61,0x6E,0x73,0x20,0x74,0x68, + 0x61,0x74,0x20,0x69,0x66,0x20,0x79,0x6F,0x75,0x42,0x6C,0x6F, + 0x61,0x64,0x20,0x61,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x2C, + 0x20,0x69,0x74,0x20,0x77,0x69,0x6C,0x6C,0x20,0x67,0x65,0x74, + 0x20,0x61,0x6C,0x6C,0x20,0x65,0x6E,0x76,0x65,0x6C,0x6F,0x70, + 0x65,0x20,0x69,0x6E,0x66,0x6F,0x72,0x6D,0x61,0x74,0x69,0x6F, + 0x6E,0x20,0x66,0x72,0x6F,0x6D,0x20,0x70,0x72,0x65,0x64,0x65, + 0x66,0x69,0x6E,0x65,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x20, + 0x31,0x2C,0x20,0x69,0x6E,0x63,0x6C,0x75,0x64,0x69,0x6E,0x67, + 0x20,0x74,0x68,0x65,0x20,0x76,0x69,0x62,0x72,0x61,0x74,0x6F, + 0x2E,0x42,0x3E,0x4E,0x6F,0x74,0x65,0x20,0x74,0x68,0x61,0x74, + 0x20,0x69,0x66,0x20,0x79,0x6F,0x75,0x20,0x74,0x75,0x72,0x6E, + 0x20,0x74,0x68,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x2D, + 0x65,0x6E,0x76,0x65,0x6C,0x6F,0x70,0x65,0x20,0x6F,0x66,0x66, + 0x2C,0x20,0x79,0x6F,0x75,0x20,0x64,0x6F,0x6E,0x27,0x74,0x20, + 0x74,0x75,0x72,0x6E,0x20,0x74,0x68,0x65,0x0C,0x76,0x69,0x62, + 0x72,0x61,0x74,0x6F,0x20,0x6F,0x66,0x66,0x2E,0x00,0x20,0x3E, 0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x54,0x68, - 0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x65,0x6E,0x76, - 0x65,0x6C,0x6F,0x70,0x65,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36, - 0x30,0x40,0x43,0x30,0x30,0x32,0x40,0x3E,0x41,0x6E,0x20,0x69, - 0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x27,0x73,0x20, - 0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x69,0x73,0x20,0x64,0x65, - 0x66,0x69,0x6E,0x65,0x64,0x20,0x62,0x79,0x20,0x69,0x74,0x73, - 0x20,0x65,0x6E,0x76,0x65,0x6C,0x6F,0x70,0x65,0x20,0x63,0x75, - 0x72,0x76,0x65,0x2E,0x20,0x49,0x66,0x20,0x74,0x68,0x65,0x3E, - 0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x68, - 0x61,0x73,0x20,0x61,0x20,0x73,0x75,0x73,0x74,0x61,0x69,0x6E, - 0x20,0x70,0x6F,0x69,0x6E,0x74,0x2C,0x20,0x74,0x68,0x65,0x20, - 0x65,0x6E,0x76,0x65,0x6C,0x6F,0x70,0x65,0x20,0x77,0x69,0x6C, - 0x6C,0x20,0x73,0x74,0x6F,0x70,0x20,0x61,0x74,0x20,0x74,0x68, - 0x61,0x74,0x42,0x70,0x6F,0x69,0x6E,0x74,0x20,0x75,0x6E,0x74, - 0x69,0x6C,0x20,0x61,0x20,0x6B,0x65,0x79,0x2D,0x6F,0x66,0x66, - 0x20,0x6E,0x6F,0x74,0x65,0x20,0x68,0x61,0x73,0x20,0x62,0x65, - 0x65,0x6E,0x20,0x70,0x6C,0x61,0x79,0x65,0x64,0x2E,0x20,0x57, - 0x68,0x65,0x6E,0x20,0x61,0x20,0x6B,0x65,0x79,0x2D,0x6F,0x66, - 0x66,0x20,0x6E,0x6F,0x74,0x65,0x20,0x69,0x73,0x1D,0x70,0x6C, - 0x61,0x79,0x65,0x64,0x2C,0x20,0x74,0x68,0x65,0x20,0x22,0x66, - 0x61,0x64,0x65,0x6F,0x75,0x74,0x22,0x20,0x62,0x65,0x67,0x69, - 0x6E,0x73,0x2E,0x44,0x3E,0x4F,0x6E,0x65,0x20,0x70,0x69,0x78, - 0x65,0x6C,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x65,0x6E, - 0x76,0x65,0x6C,0x6F,0x70,0x65,0x20,0x77,0x69,0x6E,0x64,0x6F, - 0x77,0x20,0x63,0x6F,0x72,0x72,0x65,0x73,0x70,0x6F,0x6E,0x64, - 0x73,0x20,0x74,0x6F,0x20,0x6F,0x6E,0x65,0x20,0x70,0x6C,0x61, - 0x79,0x65,0x72,0x2D,0x74,0x69,0x63,0x6B,0x2E,0x20,0x49,0x66, - 0x3C,0x74,0x68,0x65,0x20,0x42,0x50,0x4D,0x20,0x69,0x73,0x20, - 0x31,0x32,0x35,0x2C,0x20,0x79,0x6F,0x75,0x27,0x6C,0x6C,0x20, - 0x63,0x6F,0x6E,0x73,0x75,0x6D,0x65,0x20,0x35,0x30,0x20,0x70, - 0x69,0x78,0x65,0x6C,0x2F,0x73,0x65,0x63,0x6F,0x6E,0x64,0x2E, - 0x20,0x54,0x68,0x65,0x20,0x77,0x69,0x6E,0x64,0x6F,0x77,0x27, - 0x73,0x1A,0x22,0x73,0x69,0x7A,0x65,0x22,0x20,0x69,0x73,0x20, - 0x61,0x62,0x6F,0x75,0x74,0x20,0x36,0x20,0x73,0x65,0x63,0x6F, - 0x6E,0x64,0x73,0x2E,0x3E,0x3E,0x49,0x66,0x20,0x79,0x6F,0x75, - 0x20,0x70,0x72,0x65,0x73,0x73,0x20,0x74,0x68,0x65,0x20,0x72, - 0x69,0x67,0x68,0x74,0x20,0x6D,0x6F,0x75,0x73,0x65,0x20,0x62, - 0x75,0x74,0x74,0x6F,0x6E,0x20,0x61,0x74,0x20,0x74,0x68,0x65, - 0x20,0x70,0x72,0x65,0x64,0x65,0x66,0x69,0x6E,0x65,0x20,0x62, - 0x75,0x74,0x74,0x6F,0x6E,0x73,0x2C,0x3F,0x79,0x6F,0x75,0x27, - 0x6C,0x6C,0x20,0x73,0x74,0x6F,0x72,0x65,0x20,0x74,0x68,0x65, - 0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x65,0x6E,0x76, - 0x65,0x6C,0x6F,0x70,0x65,0x20,0x69,0x6E,0x74,0x6F,0x20,0x74, - 0x68,0x61,0x74,0x20,0x70,0x72,0x65,0x64,0x65,0x66,0x69,0x6E, - 0x65,0x20,0x63,0x65,0x6C,0x6C,0x2E,0x20,0x54,0x68,0x65,0x30, - 0x70,0x72,0x65,0x64,0x65,0x66,0x69,0x6E,0x65,0x73,0x20,0x61, - 0x72,0x65,0x20,0x73,0x74,0x6F,0x72,0x65,0x64,0x20,0x69,0x6E, - 0x20,0x74,0x68,0x65,0x20,0x63,0x6F,0x6E,0x66,0x69,0x67,0x75, - 0x72,0x61,0x74,0x69,0x6F,0x6E,0x20,0x66,0x69,0x6C,0x65,0x2E, - 0x43,0x3E,0x50,0x72,0x65,0x64,0x65,0x66,0x69,0x6E,0x65,0x20, - 0x6E,0x75,0x6D,0x62,0x65,0x72,0x20,0x31,0x20,0x69,0x73,0x20, - 0x74,0x68,0x65,0x20,0x64,0x65,0x66,0x61,0x75,0x6C,0x74,0x20, - 0x65,0x6E,0x76,0x65,0x6C,0x6F,0x70,0x65,0x2E,0x20,0x54,0x68, - 0x69,0x73,0x20,0x6D,0x65,0x61,0x6E,0x73,0x20,0x74,0x68,0x61, - 0x74,0x20,0x69,0x66,0x20,0x79,0x6F,0x75,0x42,0x6C,0x6F,0x61, - 0x64,0x20,0x61,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x2C,0x20, - 0x69,0x74,0x20,0x77,0x69,0x6C,0x6C,0x20,0x67,0x65,0x74,0x20, - 0x61,0x6C,0x6C,0x20,0x65,0x6E,0x76,0x65,0x6C,0x6F,0x70,0x65, - 0x20,0x69,0x6E,0x66,0x6F,0x72,0x6D,0x61,0x74,0x69,0x6F,0x6E, - 0x20,0x66,0x72,0x6F,0x6D,0x20,0x70,0x72,0x65,0x64,0x65,0x66, - 0x69,0x6E,0x65,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x20,0x31, - 0x2C,0x20,0x69,0x6E,0x63,0x6C,0x75,0x64,0x69,0x6E,0x67,0x20, - 0x74,0x68,0x65,0x20,0x76,0x69,0x62,0x72,0x61,0x74,0x6F,0x2E, - 0x42,0x3E,0x4E,0x6F,0x74,0x65,0x20,0x74,0x68,0x61,0x74,0x20, - 0x69,0x66,0x20,0x79,0x6F,0x75,0x20,0x74,0x75,0x72,0x6E,0x20, - 0x74,0x68,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x2D,0x65, - 0x6E,0x76,0x65,0x6C,0x6F,0x70,0x65,0x20,0x6F,0x66,0x66,0x2C, - 0x20,0x79,0x6F,0x75,0x20,0x64,0x6F,0x6E,0x27,0x74,0x20,0x74, - 0x75,0x72,0x6E,0x20,0x74,0x68,0x65,0x0C,0x76,0x69,0x62,0x72, - 0x61,0x74,0x6F,0x20,0x6F,0x66,0x66,0x2E,0x00,0x20,0x3E,0x40, - 0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x54,0x68,0x65, - 0x20,0x70,0x61,0x6E,0x6E,0x69,0x6E,0x67,0x20,0x65,0x6E,0x76, - 0x65,0x6C,0x6F,0x70,0x65,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36, - 0x30,0x40,0x43,0x30,0x30,0x32,0x40,0x3E,0x53,0x61,0x6D,0x65, - 0x20,0x61,0x73,0x20,0x61,0x62,0x6F,0x76,0x65,0x2C,0x20,0x65, - 0x78,0x63,0x65,0x70,0x74,0x20,0x66,0x72,0x6F,0x6D,0x20,0x74, - 0x68,0x61,0x74,0x20,0x74,0x68,0x65,0x20,0x76,0x69,0x62,0x72, - 0x61,0x74,0x6F,0x20,0x69,0x73,0x20,0x6E,0x6F,0x74,0x20,0x63, - 0x6F,0x6E,0x6E,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x6F,0x15, - 0x74,0x68,0x65,0x20,0x70,0x61,0x6E,0x6E,0x69,0x6E,0x67,0x20, - 0x65,0x6E,0x76,0x65,0x6C,0x6F,0x70,0x65,0x2E,0x00,0x1B,0x3E, - 0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x54,0x75, - 0x6E,0x65,0x20,0x28,0x66,0x69,0x6E,0x65,0x74,0x75,0x6E,0x65, - 0x29,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30, - 0x30,0x32,0x3E,0x3E,0x54,0x68,0x65,0x20,0x66,0x69,0x6E,0x65, - 0x74,0x75,0x6E,0x65,0x20,0x72,0x65,0x73,0x6F,0x6C,0x75,0x74, - 0x69,0x6F,0x6E,0x20,0x68,0x61,0x73,0x20,0x62,0x65,0x65,0x6E, - 0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x64,0x20,0x66,0x72,0x6F, - 0x6D,0x20,0x61,0x20,0x73,0x69,0x67,0x6E,0x65,0x64,0x20,0x6E, - 0x69,0x62,0x62,0x6C,0x65,0x27,0x28,0x2D,0x38,0x2E,0x2E,0x2B, - 0x37,0x29,0x20,0x74,0x6F,0x20,0x61,0x20,0x73,0x69,0x67,0x6E, - 0x65,0x64,0x20,0x62,0x79,0x74,0x65,0x20,0x28,0x2D,0x31,0x32, - 0x38,0x2E,0x2E,0x2B,0x31,0x32,0x37,0x29,0x2E,0x46,0x3E,0x4E, - 0x4F,0x54,0x45,0x3A,0x20,0x54,0x68,0x65,0x20,0x6C,0x61,0x73, - 0x74,0x20,0x33,0x20,0x62,0x69,0x74,0x73,0x20,0x61,0x72,0x65, - 0x20,0x64,0x69,0x73,0x63,0x61,0x72,0x64,0x65,0x64,0x20,0x64, - 0x75,0x72,0x69,0x6E,0x67,0x20,0x70,0x6C,0x61,0x79,0x62,0x61, - 0x63,0x6B,0x2C,0x20,0x73,0x6F,0x20,0x74,0x68,0x65,0x20,0x74, - 0x72,0x75,0x65,0x20,0x73,0x74,0x65,0x70,0x17,0x73,0x69,0x7A, - 0x65,0x20,0x69,0x73,0x20,0x38,0x20,0x69,0x6E,0x73,0x74,0x65, - 0x61,0x64,0x20,0x6F,0x66,0x20,0x31,0x2E,0x00,0x13,0x3E,0x40, - 0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x46,0x61,0x64, - 0x65,0x6F,0x75,0x74,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30, - 0x40,0x43,0x30,0x30,0x32,0x1B,0x3E,0x54,0x68,0x69,0x73,0x20, - 0x69,0x73,0x20,0x74,0x68,0x65,0x20,0x66,0x61,0x64,0x65,0x6F, - 0x75,0x74,0x20,0x73,0x70,0x65,0x65,0x64,0x2E,0x00,0x19,0x3E, - 0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x56,0x69, - 0x62,0x72,0x61,0x74,0x6F,0x20,0x73,0x77,0x65,0x65,0x70,0x3A, - 0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32, - 0x3E,0x3E,0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x74,0x68, - 0x65,0x20,0x74,0x69,0x6D,0x65,0x20,0x28,0x69,0x6E,0x20,0x70, - 0x6C,0x61,0x79,0x65,0x72,0x20,0x74,0x69,0x63,0x6B,0x73,0x29, - 0x20,0x74,0x68,0x61,0x74,0x20,0x77,0x69,0x6C,0x6C,0x20,0x62, - 0x79,0x70,0x61,0x73,0x73,0x20,0x75,0x6E,0x74,0x69,0x6C,0x20, - 0x74,0x68,0x65,0x2D,0x61,0x75,0x74,0x6F,0x2D,0x76,0x69,0x62, - 0x72,0x61,0x74,0x6F,0x20,0x77,0x69,0x6C,0x6C,0x20,0x72,0x65, - 0x61,0x63,0x68,0x20,0x69,0x74,0x27,0x73,0x20,0x66,0x69,0x6E, - 0x61,0x6C,0x20,0x61,0x6D,0x70,0x6C,0x69,0x74,0x75,0x64,0x65, - 0x2E,0x00,0x1E,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30, - 0x30,0x31,0x54,0x68,0x65,0x20,0x70,0x69,0x61,0x6E,0x6F,0x20, - 0x6B,0x65,0x79,0x62,0x6F,0x61,0x72,0x64,0x3A,0x0B,0x3E,0x40, - 0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x3F,0x3E,0x54, - 0x68,0x65,0x20,0x70,0x69,0x61,0x6E,0x6F,0x20,0x6B,0x65,0x79, - 0x62,0x6F,0x61,0x72,0x64,0x20,0x64,0x65,0x66,0x69,0x6E,0x65, - 0x73,0x20,0x74,0x68,0x65,0x20,0x6B,0x65,0x79,0x20,0x73,0x70, - 0x6C,0x69,0x74,0x20,0x66,0x6F,0x72,0x20,0x61,0x6E,0x20,0x69, - 0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x20,0x54, - 0x6F,0x3F,0x63,0x68,0x61,0x6E,0x67,0x65,0x20,0x74,0x68,0x65, - 0x20,0x6B,0x65,0x79,0x20,0x73,0x70,0x6C,0x69,0x74,0x2C,0x20, - 0x63,0x68,0x6F,0x6F,0x73,0x65,0x20,0x61,0x20,0x73,0x61,0x6D, - 0x70,0x6C,0x65,0x20,0x77,0x69,0x74,0x68,0x69,0x6E,0x20,0x74, - 0x68,0x65,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E, - 0x74,0x20,0x61,0x6E,0x64,0x1C,0x74,0x68,0x65,0x6E,0x20,0x22, - 0x64,0x72,0x61,0x77,0x22,0x20,0x6F,0x6E,0x20,0x74,0x68,0x65, - 0x20,0x6B,0x65,0x79,0x62,0x6F,0x61,0x72,0x64,0x2E,0x42,0x3E, - 0x54,0x68,0x65,0x20,0x6E,0x6F,0x74,0x65,0x73,0x20,0x70,0x6C, - 0x61,0x79,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x74,0x68, - 0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x69,0x6E, - 0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x61,0x72,0x65, - 0x20,0x69,0x6E,0x64,0x69,0x63,0x61,0x74,0x65,0x64,0x20,0x6F, - 0x6E,0x20,0x74,0x68,0x65,0x09,0x6B,0x65,0x79,0x62,0x6F,0x61, - 0x72,0x64,0x2E,0x00,0x1A,0x3E,0x40,0x58,0x30,0x34,0x30,0x40, - 0x43,0x30,0x30,0x31,0x49,0x6D,0x70,0x6F,0x72,0x74,0x61,0x6E, - 0x74,0x20,0x6E,0x6F,0x74,0x65,0x3A,0x0B,0x3E,0x40,0x58,0x30, - 0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x44,0x3E,0x54,0x68,0x65, - 0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x2C,0x20,0x70,0x61,0x6E, - 0x6E,0x69,0x6E,0x67,0x2C,0x20,0x66,0x69,0x6E,0x65,0x74,0x75, - 0x6E,0x65,0x20,0x61,0x6E,0x64,0x20,0x72,0x65,0x6C,0x61,0x74, - 0x69,0x76,0x65,0x20,0x6E,0x6F,0x74,0x65,0x20,0x69,0x73,0x20, - 0x64,0x65,0x66,0x69,0x6E,0x65,0x64,0x20,0x66,0x6F,0x72,0x20, - 0x45,0x41,0x43,0x48,0x41,0x53,0x41,0x4D,0x50,0x4C,0x45,0x20, - 0x69,0x6E,0x20,0x61,0x6E,0x20,0x69,0x6E,0x73,0x74,0x72,0x75, - 0x6D,0x65,0x6E,0x74,0x2E,0x20,0x41,0x6C,0x6C,0x20,0x6F,0x74, - 0x68,0x65,0x72,0x20,0x69,0x6E,0x66,0x6F,0x72,0x6D,0x61,0x74, - 0x69,0x6F,0x6E,0x20,0x69,0x73,0x20,0x64,0x65,0x66,0x69,0x6E, - 0x65,0x64,0x20,0x66,0x6F,0x72,0x20,0x74,0x68,0x65,0x12,0x65, - 0x6E,0x74,0x69,0x72,0x65,0x20,0x69,0x6E,0x73,0x74,0x72,0x75, - 0x6D,0x65,0x6E,0x74,0x2E,0x00,0x31,0x40,0x58,0x30,0x32,0x30, - 0x40,0x43,0x30,0x30,0x31,0x49,0x6E,0x73,0x74,0x72,0x75,0x6D, - 0x65,0x6E,0x74,0x20,0x45,0x64,0x69,0x74,0x6F,0x72,0x20,0x45, - 0x78,0x74,0x65,0x6E,0x73,0x69,0x6F,0x6E,0x3A,0x20,0x28,0x49, - 0x2E,0x45,0x2E,0x45,0x78,0x74,0x2E,0x29,0x01,0x3E,0x10,0x3E, - 0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x4D,0x49, - 0x44,0x49,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43, - 0x30,0x30,0x32,0x28,0x3E,0x27,0x70,0x2E,0x27,0x20,0x73,0x74, - 0x61,0x6E,0x64,0x73,0x20,0x66,0x6F,0x72,0x20,0x22,0x70,0x72, - 0x6F,0x67,0x72,0x61,0x6D,0x22,0x20,0x28,0x69,0x6E,0x73,0x74, - 0x72,0x75,0x6D,0x65,0x6E,0x74,0x29,0x2E,0x40,0x3E,0x53,0x65, - 0x76,0x65,0x72,0x61,0x6C,0x20,0x69,0x6E,0x73,0x74,0x72,0x75, - 0x6D,0x65,0x6E,0x74,0x73,0x20,0x63,0x61,0x6E,0x20,0x68,0x61, - 0x76,0x65,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6D,0x65,0x20, - 0x74,0x72,0x61,0x6E,0x73,0x6D,0x69,0x74,0x20,0x63,0x68,0x61, - 0x6E,0x6E,0x65,0x6C,0x20,0x62,0x75,0x74,0x20,0x77,0x69,0x74, - 0x68,0x33,0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6E,0x74,0x20, - 0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x73,0x2E,0x20,0x46,0x54, - 0x32,0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x73,0x20,0x74,0x68, - 0x65,0x20,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x73,0x20,0x6F, - 0x6E,0x20,0x74,0x68,0x65,0x43,0x4D,0x49,0x44,0x49,0x2D,0x63, - 0x68,0x61,0x6E,0x6E,0x65,0x6C,0x73,0x20,0x69,0x6E,0x73,0x74, - 0x61,0x6E,0x74,0x6C,0x79,0x20,0x64,0x75,0x72,0x69,0x6E,0x67, - 0x20,0x70,0x6C,0x61,0x79,0x20,0x69,0x66,0x20,0x64,0x69,0x66, - 0x66,0x65,0x72,0x65,0x6E,0x74,0x20,0x70,0x72,0x6F,0x67,0x72, - 0x61,0x6D,0x73,0x20,0x61,0x72,0x65,0x20,0x75,0x73,0x65,0x64, - 0x2E,0x3E,0x44,0x69,0x66,0x66,0x65,0x72,0x65,0x6E,0x74,0x20, - 0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x73,0x20,0x63,0x61,0x6E, - 0x6E,0x6F,0x74,0x20,0x62,0x65,0x20,0x70,0x6C,0x61,0x79,0x65, - 0x64,0x20,0x61,0x74,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6D, - 0x65,0x20,0x63,0x68,0x61,0x6E,0x6E,0x65,0x6C,0x20,0x61,0x74, - 0x20,0x74,0x68,0x65,0x11,0x73,0x61,0x6D,0x65,0x20,0x74,0x69, - 0x6D,0x65,0x20,0x74,0x68,0x6F,0x75,0x67,0x68,0x2E,0x44,0x3E, - 0x49,0x66,0x20,0x79,0x6F,0x75,0x20,0x63,0x68,0x61,0x6E,0x67, - 0x65,0x20,0x74,0x68,0x69,0x73,0x20,0x76,0x61,0x6C,0x75,0x65, - 0x2C,0x20,0x74,0x68,0x65,0x20,0x70,0x72,0x6F,0x67,0x72,0x61, - 0x6D,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x20,0x77,0x69,0x6C, - 0x6C,0x20,0x62,0x65,0x20,0x74,0x72,0x61,0x6E,0x73,0x6D,0x69, - 0x74,0x74,0x65,0x64,0x20,0x74,0x6F,0x1C,0x74,0x68,0x65,0x20, - 0x73,0x79,0x6E,0x74,0x68,0x65,0x73,0x69,0x7A,0x65,0x72,0x20, - 0x69,0x6D,0x6D,0x65,0x64,0x69,0x61,0x74,0x65,0x6C,0x79,0x2E, - 0x3E,0x3E,0x53,0x6F,0x6D,0x65,0x20,0x73,0x79,0x6E,0x74,0x68, - 0x65,0x73,0x69,0x7A,0x65,0x72,0x73,0x20,0x74,0x72,0x61,0x6E, - 0x73,0x6D,0x69,0x74,0x20,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D, - 0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x20,0x69,0x6E,0x66,0x6F, - 0x72,0x6D,0x61,0x74,0x69,0x6F,0x6E,0x2E,0x20,0x49,0x66,0x20, - 0x74,0x68,0x65,0x43,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20, - 0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x69, - 0x6E,0x20,0x46,0x54,0x32,0x20,0x69,0x73,0x20,0x61,0x20,0x4D, - 0x49,0x44,0x49,0x2D,0x69,0x6E,0x73,0x74,0x72,0x2E,0x20,0x77, - 0x69,0x74,0x68,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6D,0x65, - 0x20,0x63,0x68,0x61,0x6E,0x6E,0x65,0x6C,0x20,0x61,0x73,0x3F, - 0x74,0x68,0x65,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64, - 0x20,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x20,0x63,0x68,0x61, - 0x6E,0x67,0x65,0x2C,0x20,0x69,0x74,0x27,0x73,0x20,0x4D,0x49, - 0x44,0x49,0x2D,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x20,0x77, - 0x69,0x6C,0x6C,0x20,0x62,0x65,0x20,0x63,0x68,0x61,0x6E,0x67, - 0x65,0x64,0x2E,0x40,0x3E,0x49,0x66,0x20,0x79,0x6F,0x75,0x72, + 0x65,0x20,0x70,0x61,0x6E,0x6E,0x69,0x6E,0x67,0x20,0x65,0x6E, + 0x76,0x65,0x6C,0x6F,0x70,0x65,0x3A,0x0B,0x3E,0x40,0x58,0x30, + 0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x40,0x3E,0x53,0x61,0x6D, + 0x65,0x20,0x61,0x73,0x20,0x61,0x62,0x6F,0x76,0x65,0x2C,0x20, + 0x65,0x78,0x63,0x65,0x70,0x74,0x20,0x66,0x72,0x6F,0x6D,0x20, + 0x74,0x68,0x61,0x74,0x20,0x74,0x68,0x65,0x20,0x76,0x69,0x62, + 0x72,0x61,0x74,0x6F,0x20,0x69,0x73,0x20,0x6E,0x6F,0x74,0x20, + 0x63,0x6F,0x6E,0x6E,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x6F, + 0x15,0x74,0x68,0x65,0x20,0x70,0x61,0x6E,0x6E,0x69,0x6E,0x67, + 0x20,0x65,0x6E,0x76,0x65,0x6C,0x6F,0x70,0x65,0x2E,0x00,0x1B, + 0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x54, + 0x75,0x6E,0x65,0x20,0x28,0x66,0x69,0x6E,0x65,0x74,0x75,0x6E, + 0x65,0x29,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43, + 0x30,0x30,0x32,0x3E,0x3E,0x54,0x68,0x65,0x20,0x66,0x69,0x6E, + 0x65,0x74,0x75,0x6E,0x65,0x20,0x72,0x65,0x73,0x6F,0x6C,0x75, + 0x74,0x69,0x6F,0x6E,0x20,0x68,0x61,0x73,0x20,0x62,0x65,0x65, + 0x6E,0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x64,0x20,0x66,0x72, + 0x6F,0x6D,0x20,0x61,0x20,0x73,0x69,0x67,0x6E,0x65,0x64,0x20, + 0x6E,0x69,0x62,0x62,0x6C,0x65,0x27,0x28,0x2D,0x38,0x2E,0x2E, + 0x2B,0x37,0x29,0x20,0x74,0x6F,0x20,0x61,0x20,0x73,0x69,0x67, + 0x6E,0x65,0x64,0x20,0x62,0x79,0x74,0x65,0x20,0x28,0x2D,0x31, + 0x32,0x38,0x2E,0x2E,0x2B,0x31,0x32,0x37,0x29,0x2E,0x46,0x3E, + 0x4E,0x4F,0x54,0x45,0x3A,0x20,0x54,0x68,0x65,0x20,0x6C,0x61, + 0x73,0x74,0x20,0x33,0x20,0x62,0x69,0x74,0x73,0x20,0x61,0x72, + 0x65,0x20,0x64,0x69,0x73,0x63,0x61,0x72,0x64,0x65,0x64,0x20, + 0x64,0x75,0x72,0x69,0x6E,0x67,0x20,0x70,0x6C,0x61,0x79,0x62, + 0x61,0x63,0x6B,0x2C,0x20,0x73,0x6F,0x20,0x74,0x68,0x65,0x20, + 0x74,0x72,0x75,0x65,0x20,0x73,0x74,0x65,0x70,0x17,0x73,0x69, + 0x7A,0x65,0x20,0x69,0x73,0x20,0x38,0x20,0x69,0x6E,0x73,0x74, + 0x65,0x61,0x64,0x20,0x6F,0x66,0x20,0x31,0x2E,0x00,0x13,0x3E, + 0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x46,0x61, + 0x64,0x65,0x6F,0x75,0x74,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36, + 0x30,0x40,0x43,0x30,0x30,0x32,0x1B,0x3E,0x54,0x68,0x69,0x73, + 0x20,0x69,0x73,0x20,0x74,0x68,0x65,0x20,0x66,0x61,0x64,0x65, + 0x6F,0x75,0x74,0x20,0x73,0x70,0x65,0x65,0x64,0x2E,0x00,0x19, + 0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x56, + 0x69,0x62,0x72,0x61,0x74,0x6F,0x20,0x73,0x77,0x65,0x65,0x70, + 0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30, + 0x32,0x3E,0x3E,0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x74, + 0x68,0x65,0x20,0x74,0x69,0x6D,0x65,0x20,0x28,0x69,0x6E,0x20, + 0x70,0x6C,0x61,0x79,0x65,0x72,0x20,0x74,0x69,0x63,0x6B,0x73, + 0x29,0x20,0x74,0x68,0x61,0x74,0x20,0x77,0x69,0x6C,0x6C,0x20, + 0x62,0x79,0x70,0x61,0x73,0x73,0x20,0x75,0x6E,0x74,0x69,0x6C, + 0x20,0x74,0x68,0x65,0x2D,0x61,0x75,0x74,0x6F,0x2D,0x76,0x69, + 0x62,0x72,0x61,0x74,0x6F,0x20,0x77,0x69,0x6C,0x6C,0x20,0x72, + 0x65,0x61,0x63,0x68,0x20,0x69,0x74,0x27,0x73,0x20,0x66,0x69, + 0x6E,0x61,0x6C,0x20,0x61,0x6D,0x70,0x6C,0x69,0x74,0x75,0x64, + 0x65,0x2E,0x00,0x1E,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43, + 0x30,0x30,0x31,0x54,0x68,0x65,0x20,0x70,0x69,0x61,0x6E,0x6F, + 0x20,0x6B,0x65,0x79,0x62,0x6F,0x61,0x72,0x64,0x3A,0x0B,0x3E, + 0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x3F,0x3E, + 0x54,0x68,0x65,0x20,0x70,0x69,0x61,0x6E,0x6F,0x20,0x6B,0x65, + 0x79,0x62,0x6F,0x61,0x72,0x64,0x20,0x64,0x65,0x66,0x69,0x6E, + 0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x6B,0x65,0x79,0x20,0x73, + 0x70,0x6C,0x69,0x74,0x20,0x66,0x6F,0x72,0x20,0x61,0x6E,0x20, + 0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x20, + 0x54,0x6F,0x3F,0x63,0x68,0x61,0x6E,0x67,0x65,0x20,0x74,0x68, + 0x65,0x20,0x6B,0x65,0x79,0x20,0x73,0x70,0x6C,0x69,0x74,0x2C, + 0x20,0x63,0x68,0x6F,0x6F,0x73,0x65,0x20,0x61,0x20,0x73,0x61, + 0x6D,0x70,0x6C,0x65,0x20,0x77,0x69,0x74,0x68,0x69,0x6E,0x20, + 0x74,0x68,0x65,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65, + 0x6E,0x74,0x20,0x61,0x6E,0x64,0x1C,0x74,0x68,0x65,0x6E,0x20, + 0x22,0x64,0x72,0x61,0x77,0x22,0x20,0x6F,0x6E,0x20,0x74,0x68, + 0x65,0x20,0x6B,0x65,0x79,0x62,0x6F,0x61,0x72,0x64,0x2E,0x42, + 0x3E,0x54,0x68,0x65,0x20,0x6E,0x6F,0x74,0x65,0x73,0x20,0x70, + 0x6C,0x61,0x79,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x74, + 0x68,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x69, + 0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x61,0x72, + 0x65,0x20,0x69,0x6E,0x64,0x69,0x63,0x61,0x74,0x65,0x64,0x20, + 0x6F,0x6E,0x20,0x74,0x68,0x65,0x09,0x6B,0x65,0x79,0x62,0x6F, + 0x61,0x72,0x64,0x2E,0x00,0x1A,0x3E,0x40,0x58,0x30,0x34,0x30, + 0x40,0x43,0x30,0x30,0x31,0x49,0x6D,0x70,0x6F,0x72,0x74,0x61, + 0x6E,0x74,0x20,0x6E,0x6F,0x74,0x65,0x3A,0x0B,0x3E,0x40,0x58, + 0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x44,0x3E,0x54,0x68, + 0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x2C,0x20,0x70,0x61, + 0x6E,0x6E,0x69,0x6E,0x67,0x2C,0x20,0x66,0x69,0x6E,0x65,0x74, + 0x75,0x6E,0x65,0x20,0x61,0x6E,0x64,0x20,0x72,0x65,0x6C,0x61, + 0x74,0x69,0x76,0x65,0x20,0x6E,0x6F,0x74,0x65,0x20,0x69,0x73, + 0x20,0x64,0x65,0x66,0x69,0x6E,0x65,0x64,0x20,0x66,0x6F,0x72, + 0x20,0x45,0x41,0x43,0x48,0x41,0x53,0x41,0x4D,0x50,0x4C,0x45, + 0x20,0x69,0x6E,0x20,0x61,0x6E,0x20,0x69,0x6E,0x73,0x74,0x72, + 0x75,0x6D,0x65,0x6E,0x74,0x2E,0x20,0x41,0x6C,0x6C,0x20,0x6F, + 0x74,0x68,0x65,0x72,0x20,0x69,0x6E,0x66,0x6F,0x72,0x6D,0x61, + 0x74,0x69,0x6F,0x6E,0x20,0x69,0x73,0x20,0x64,0x65,0x66,0x69, + 0x6E,0x65,0x64,0x20,0x66,0x6F,0x72,0x20,0x74,0x68,0x65,0x12, + 0x65,0x6E,0x74,0x69,0x72,0x65,0x20,0x69,0x6E,0x73,0x74,0x72, + 0x75,0x6D,0x65,0x6E,0x74,0x2E,0x00,0x31,0x40,0x58,0x30,0x32, + 0x30,0x40,0x43,0x30,0x30,0x31,0x49,0x6E,0x73,0x74,0x72,0x75, + 0x6D,0x65,0x6E,0x74,0x20,0x45,0x64,0x69,0x74,0x6F,0x72,0x20, + 0x45,0x78,0x74,0x65,0x6E,0x73,0x69,0x6F,0x6E,0x3A,0x20,0x28, + 0x49,0x2E,0x45,0x2E,0x45,0x78,0x74,0x2E,0x29,0x01,0x3E,0x10, + 0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x4D, + 0x49,0x44,0x49,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40, + 0x43,0x30,0x30,0x32,0x28,0x3E,0x27,0x70,0x2E,0x27,0x20,0x73, + 0x74,0x61,0x6E,0x64,0x73,0x20,0x66,0x6F,0x72,0x20,0x22,0x70, + 0x72,0x6F,0x67,0x72,0x61,0x6D,0x22,0x20,0x28,0x69,0x6E,0x73, + 0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x29,0x2E,0x40,0x3E,0x53, + 0x65,0x76,0x65,0x72,0x61,0x6C,0x20,0x69,0x6E,0x73,0x74,0x72, + 0x75,0x6D,0x65,0x6E,0x74,0x73,0x20,0x63,0x61,0x6E,0x20,0x68, + 0x61,0x76,0x65,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6D,0x65, + 0x20,0x74,0x72,0x61,0x6E,0x73,0x6D,0x69,0x74,0x20,0x63,0x68, + 0x61,0x6E,0x6E,0x65,0x6C,0x20,0x62,0x75,0x74,0x20,0x77,0x69, + 0x74,0x68,0x33,0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6E,0x74, + 0x20,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x73,0x2E,0x20,0x46, + 0x54,0x32,0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x73,0x20,0x74, + 0x68,0x65,0x20,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x73,0x20, + 0x6F,0x6E,0x20,0x74,0x68,0x65,0x43,0x4D,0x49,0x44,0x49,0x2D, + 0x63,0x68,0x61,0x6E,0x6E,0x65,0x6C,0x73,0x20,0x69,0x6E,0x73, + 0x74,0x61,0x6E,0x74,0x6C,0x79,0x20,0x64,0x75,0x72,0x69,0x6E, + 0x67,0x20,0x70,0x6C,0x61,0x79,0x20,0x69,0x66,0x20,0x64,0x69, + 0x66,0x66,0x65,0x72,0x65,0x6E,0x74,0x20,0x70,0x72,0x6F,0x67, + 0x72,0x61,0x6D,0x73,0x20,0x61,0x72,0x65,0x20,0x75,0x73,0x65, + 0x64,0x2E,0x3E,0x44,0x69,0x66,0x66,0x65,0x72,0x65,0x6E,0x74, + 0x20,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x73,0x20,0x63,0x61, + 0x6E,0x6E,0x6F,0x74,0x20,0x62,0x65,0x20,0x70,0x6C,0x61,0x79, + 0x65,0x64,0x20,0x61,0x74,0x20,0x74,0x68,0x65,0x20,0x73,0x61, + 0x6D,0x65,0x20,0x63,0x68,0x61,0x6E,0x6E,0x65,0x6C,0x20,0x61, + 0x74,0x20,0x74,0x68,0x65,0x11,0x73,0x61,0x6D,0x65,0x20,0x74, + 0x69,0x6D,0x65,0x20,0x74,0x68,0x6F,0x75,0x67,0x68,0x2E,0x44, + 0x3E,0x49,0x66,0x20,0x79,0x6F,0x75,0x20,0x63,0x68,0x61,0x6E, + 0x67,0x65,0x20,0x74,0x68,0x69,0x73,0x20,0x76,0x61,0x6C,0x75, + 0x65,0x2C,0x20,0x74,0x68,0x65,0x20,0x70,0x72,0x6F,0x67,0x72, + 0x61,0x6D,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x20,0x77,0x69, + 0x6C,0x6C,0x20,0x62,0x65,0x20,0x74,0x72,0x61,0x6E,0x73,0x6D, + 0x69,0x74,0x74,0x65,0x64,0x20,0x74,0x6F,0x1C,0x74,0x68,0x65, 0x20,0x73,0x79,0x6E,0x74,0x68,0x65,0x73,0x69,0x7A,0x65,0x72, - 0x20,0x64,0x6F,0x65,0x73,0x6E,0x27,0x74,0x20,0x74,0x72,0x61, + 0x20,0x69,0x6D,0x6D,0x65,0x64,0x69,0x61,0x74,0x65,0x6C,0x79, + 0x2E,0x3E,0x3E,0x53,0x6F,0x6D,0x65,0x20,0x73,0x79,0x6E,0x74, + 0x68,0x65,0x73,0x69,0x7A,0x65,0x72,0x73,0x20,0x74,0x72,0x61, 0x6E,0x73,0x6D,0x69,0x74,0x20,0x70,0x72,0x6F,0x67,0x72,0x61, - 0x6D,0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x2C,0x20,0x74,0x68, - 0x65,0x72,0x65,0x27,0x73,0x20,0x6E,0x6F,0x3E,0x70,0x6F,0x69, - 0x6E,0x74,0x20,0x69,0x6E,0x20,0x63,0x68,0x61,0x6E,0x67,0x69, - 0x6E,0x67,0x20,0x69,0x74,0x20,0x6F,0x6E,0x20,0x74,0x68,0x65, - 0x20,0x73,0x79,0x6E,0x74,0x68,0x65,0x73,0x69,0x7A,0x65,0x72, - 0x2C,0x20,0x64,0x6F,0x20,0x69,0x74,0x20,0x69,0x6E,0x20,0x46, - 0x54,0x32,0x20,0x69,0x6E,0x73,0x74,0x65,0x61,0x64,0x2E,0x00, - 0x18,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31, - 0x42,0x65,0x6E,0x64,0x65,0x72,0x20,0x72,0x61,0x6E,0x67,0x65, + 0x6D,0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x20,0x69,0x6E,0x66, + 0x6F,0x72,0x6D,0x61,0x74,0x69,0x6F,0x6E,0x2E,0x20,0x49,0x66, + 0x20,0x74,0x68,0x65,0x43,0x63,0x75,0x72,0x72,0x65,0x6E,0x74, + 0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20, + 0x69,0x6E,0x20,0x46,0x54,0x32,0x20,0x69,0x73,0x20,0x61,0x20, + 0x4D,0x49,0x44,0x49,0x2D,0x69,0x6E,0x73,0x74,0x72,0x2E,0x20, + 0x77,0x69,0x74,0x68,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6D, + 0x65,0x20,0x63,0x68,0x61,0x6E,0x6E,0x65,0x6C,0x20,0x61,0x73, + 0x3F,0x74,0x68,0x65,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65, + 0x64,0x20,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x20,0x63,0x68, + 0x61,0x6E,0x67,0x65,0x2C,0x20,0x69,0x74,0x27,0x73,0x20,0x4D, + 0x49,0x44,0x49,0x2D,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x20, + 0x77,0x69,0x6C,0x6C,0x20,0x62,0x65,0x20,0x63,0x68,0x61,0x6E, + 0x67,0x65,0x64,0x2E,0x40,0x3E,0x49,0x66,0x20,0x79,0x6F,0x75, + 0x72,0x20,0x73,0x79,0x6E,0x74,0x68,0x65,0x73,0x69,0x7A,0x65, + 0x72,0x20,0x64,0x6F,0x65,0x73,0x6E,0x27,0x74,0x20,0x74,0x72, + 0x61,0x6E,0x73,0x6D,0x69,0x74,0x20,0x70,0x72,0x6F,0x67,0x72, + 0x61,0x6D,0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x2C,0x20,0x74, + 0x68,0x65,0x72,0x65,0x27,0x73,0x20,0x6E,0x6F,0x3E,0x70,0x6F, + 0x69,0x6E,0x74,0x20,0x69,0x6E,0x20,0x63,0x68,0x61,0x6E,0x67, + 0x69,0x6E,0x67,0x20,0x69,0x74,0x20,0x6F,0x6E,0x20,0x74,0x68, + 0x65,0x20,0x73,0x79,0x6E,0x74,0x68,0x65,0x73,0x69,0x7A,0x65, + 0x72,0x2C,0x20,0x64,0x6F,0x20,0x69,0x74,0x20,0x69,0x6E,0x20, + 0x46,0x54,0x32,0x20,0x69,0x6E,0x73,0x74,0x65,0x61,0x64,0x2E, + 0x00,0x18,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30, + 0x31,0x42,0x65,0x6E,0x64,0x65,0x72,0x20,0x72,0x61,0x6E,0x67, + 0x65,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30, + 0x30,0x32,0x38,0x3E,0x54,0x68,0x69,0x73,0x20,0x76,0x61,0x6C, + 0x75,0x65,0x20,0x64,0x65,0x66,0x69,0x6E,0x65,0x73,0x20,0x68, + 0x6F,0x77,0x20,0x6D,0x61,0x6E,0x79,0x20,0x6E,0x6F,0x74,0x65, + 0x73,0x20,0x74,0x68,0x65,0x20,0x69,0x6E,0x73,0x74,0x72,0x75, + 0x6D,0x65,0x6E,0x74,0x20,0x6F,0x6E,0x20,0x74,0x68,0x65,0x37, + 0x73,0x79,0x6E,0x74,0x68,0x65,0x73,0x69,0x7A,0x65,0x72,0x20, + 0x63,0x61,0x6E,0x20,0x62,0x65,0x20,0x70,0x69,0x74,0x63,0x68, + 0x62,0x65,0x6E,0x64,0x65,0x64,0x2E,0x20,0x46,0x54,0x32,0x20, + 0x75,0x73,0x65,0x73,0x20,0x74,0x68,0x69,0x73,0x20,0x76,0x61, + 0x6C,0x75,0x65,0x20,0x66,0x6F,0x72,0x37,0x74,0x72,0x61,0x6E, + 0x73,0x6D,0x69,0x74,0x74,0x69,0x6E,0x67,0x20,0x74,0x68,0x65, + 0x20,0x70,0x6F,0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,0x20, + 0x75,0x70,0x2F,0x64,0x6F,0x77,0x6E,0x20,0x61,0x6E,0x64,0x20, + 0x74,0x6F,0x6E,0x65,0x2D,0x70,0x6F,0x72,0x74,0x61,0x6D,0x65, + 0x6E,0x74,0x6F,0x13,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x73, + 0x20,0x63,0x6F,0x72,0x72,0x65,0x63,0x74,0x6C,0x79,0x2E,0x46, + 0x3E,0x54,0x68,0x65,0x20,0x4D,0x49,0x44,0x49,0x2D,0x70,0x69, + 0x74,0x63,0x68,0x62,0x65,0x6E,0x64,0x20,0x77,0x6F,0x72,0x6B, + 0x73,0x20,0x63,0x6F,0x72,0x72,0x65,0x63,0x74,0x6C,0x79,0x20, + 0x6F,0x6E,0x6C,0x79,0x20,0x77,0x69,0x74,0x68,0x20,0x6C,0x69, + 0x6E,0x65,0x61,0x72,0x20,0x66,0x72,0x65,0x71,0x75,0x65,0x6E, + 0x63,0x79,0x20,0x73,0x6C,0x69,0x64,0x65,0x73,0x2E,0x00,0x18, + 0x40,0x58,0x30,0x32,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x61, + 0x6D,0x70,0x6C,0x65,0x20,0x45,0x64,0x69,0x74,0x6F,0x72,0x3A, + 0x01,0x3E,0x2B,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30, + 0x30,0x31,0x50,0x6C,0x61,0x79,0x20,0x28,0x57,0x61,0x76,0x65, + 0x66,0x6F,0x72,0x6D,0x2C,0x20,0x72,0x61,0x6E,0x67,0x65,0x2C, + 0x20,0x64,0x69,0x73,0x70,0x6C,0x61,0x79,0x29,0x3A,0x0B,0x3E, + 0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x42,0x3E, + 0x50,0x6C,0x61,0x79,0x73,0x20,0x74,0x68,0x65,0x20,0x63,0x75, + 0x72,0x72,0x65,0x6E,0x74,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65, + 0x20,0x77,0x69,0x74,0x68,0x20,0x74,0x68,0x65,0x20,0x6E,0x6F, + 0x74,0x65,0x20,0x64,0x69,0x73,0x70,0x6C,0x61,0x79,0x65,0x64, + 0x20,0x61,0x62,0x6F,0x76,0x65,0x20,0x74,0x68,0x65,0x20,0x22, + 0x73,0x74,0x6F,0x70,0x22,0x3D,0x62,0x75,0x74,0x74,0x6F,0x6E, + 0x2E,0x20,0x4E,0x6F,0x74,0x65,0x20,0x74,0x68,0x61,0x74,0x20, + 0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x20,0x69,0x73,0x20,0x74, + 0x61,0x6B,0x65,0x6E,0x20,0x74,0x6F,0x20,0x74,0x68,0x65,0x20, + 0x70,0x61,0x72,0x74,0x69,0x63,0x75,0x6C,0x61,0x72,0x20,0x73, + 0x61,0x6D,0x70,0x6C,0x65,0x27,0x73,0x0E,0x72,0x65,0x6C,0x61, + 0x74,0x69,0x76,0x65,0x20,0x6E,0x6F,0x74,0x65,0x2E,0x00,0x16, + 0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53, + 0x61,0x76,0x65,0x20,0x72,0x61,0x6E,0x67,0x65,0x3A,0x0B,0x3E, + 0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x3C,0x3E, + 0x53,0x74,0x6F,0x72,0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x72, + 0x61,0x6E,0x67,0x65,0x20,0x73,0x70,0x65,0x63,0x69,0x66,0x69, + 0x65,0x64,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x63,0x75, + 0x72,0x72,0x65,0x6E,0x74,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65, + 0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6F,0x72,0x79,0x2E,0x00, + 0x11,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31, + 0x50,0x61,0x73,0x74,0x65,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36, + 0x30,0x40,0x43,0x30,0x30,0x32,0x40,0x3E,0x54,0x68,0x65,0x20, + 0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x64,0x61,0x74,0x61,0x20, + 0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x63,0x6F,0x70,0x79,0x20, + 0x62,0x75,0x66,0x66,0x65,0x72,0x20,0x69,0x73,0x20,0x73,0x74, + 0x6F,0x72,0x65,0x64,0x20,0x49,0x4E,0x54,0x4F,0x20,0x74,0x68, + 0x65,0x20,0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x65,0x64,0x06, + 0x72,0x61,0x6E,0x67,0x65,0x2E,0x00,0x10,0x3E,0x40,0x58,0x30, + 0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x43,0x72,0x6F,0x70,0x3A, + 0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32, + 0x3E,0x3E,0x43,0x75,0x74,0x73,0x20,0x65,0x76,0x65,0x72,0x79, + 0x74,0x68,0x69,0x6E,0x67,0x20,0x62,0x75,0x74,0x20,0x74,0x68, + 0x65,0x20,0x72,0x61,0x6E,0x67,0x65,0x2E,0x20,0x4E,0x6F,0x74, + 0x68,0x69,0x6E,0x67,0x20,0x69,0x73,0x20,0x63,0x68,0x61,0x6E, + 0x67,0x65,0x64,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x63, + 0x6F,0x70,0x79,0x19,0x62,0x75,0x66,0x66,0x65,0x72,0x20,0x62, + 0x79,0x20,0x74,0x68,0x69,0x73,0x20,0x6F,0x70,0x65,0x72,0x61, + 0x74,0x69,0x6F,0x6E,0x2E,0x00,0x12,0x3E,0x40,0x58,0x30,0x34, + 0x30,0x40,0x43,0x30,0x30,0x31,0x56,0x6F,0x6C,0x75,0x6D,0x65, 0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30, - 0x32,0x38,0x3E,0x54,0x68,0x69,0x73,0x20,0x76,0x61,0x6C,0x75, - 0x65,0x20,0x64,0x65,0x66,0x69,0x6E,0x65,0x73,0x20,0x68,0x6F, - 0x77,0x20,0x6D,0x61,0x6E,0x79,0x20,0x6E,0x6F,0x74,0x65,0x73, - 0x20,0x74,0x68,0x65,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D, - 0x65,0x6E,0x74,0x20,0x6F,0x6E,0x20,0x74,0x68,0x65,0x37,0x73, - 0x79,0x6E,0x74,0x68,0x65,0x73,0x69,0x7A,0x65,0x72,0x20,0x63, - 0x61,0x6E,0x20,0x62,0x65,0x20,0x70,0x69,0x74,0x63,0x68,0x62, - 0x65,0x6E,0x64,0x65,0x64,0x2E,0x20,0x46,0x54,0x32,0x20,0x75, - 0x73,0x65,0x73,0x20,0x74,0x68,0x69,0x73,0x20,0x76,0x61,0x6C, - 0x75,0x65,0x20,0x66,0x6F,0x72,0x37,0x74,0x72,0x61,0x6E,0x73, - 0x6D,0x69,0x74,0x74,0x69,0x6E,0x67,0x20,0x74,0x68,0x65,0x20, - 0x70,0x6F,0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,0x20,0x75, - 0x70,0x2F,0x64,0x6F,0x77,0x6E,0x20,0x61,0x6E,0x64,0x20,0x74, - 0x6F,0x6E,0x65,0x2D,0x70,0x6F,0x72,0x74,0x61,0x6D,0x65,0x6E, - 0x74,0x6F,0x13,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x73,0x20, - 0x63,0x6F,0x72,0x72,0x65,0x63,0x74,0x6C,0x79,0x2E,0x45,0x3E, - 0x54,0x68,0x65,0x20,0x4D,0x49,0x44,0x49,0x2D,0x70,0x69,0x74, - 0x63,0x68,0x62,0x65,0x6E,0x64,0x20,0x77,0x6F,0x72,0x6B,0x73, - 0x20,0x63,0x6F,0x72,0x72,0x65,0x63,0x74,0x6C,0x79,0x20,0x6F, - 0x6E,0x6C,0x79,0x20,0x77,0x69,0x74,0x68,0x20,0x6C,0x69,0x6E, - 0x65,0x61,0x72,0x20,0x66,0x72,0x65,0x71,0x75,0x65,0x6E,0x63, - 0x79,0x20,0x74,0x61,0x62,0x6C,0x65,0x2E,0x00,0x18,0x40,0x58, - 0x30,0x32,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x61,0x6D,0x70, - 0x6C,0x65,0x20,0x45,0x64,0x69,0x74,0x6F,0x72,0x3A,0x01,0x3E, - 0x2B,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31, - 0x50,0x6C,0x61,0x79,0x20,0x28,0x57,0x61,0x76,0x65,0x66,0x6F, - 0x72,0x6D,0x2C,0x20,0x72,0x61,0x6E,0x67,0x65,0x2C,0x20,0x64, - 0x69,0x73,0x70,0x6C,0x61,0x79,0x29,0x3A,0x0B,0x3E,0x40,0x58, - 0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x42,0x3E,0x50,0x6C, - 0x61,0x79,0x73,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72, - 0x65,0x6E,0x74,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x77, - 0x69,0x74,0x68,0x20,0x74,0x68,0x65,0x20,0x6E,0x6F,0x74,0x65, - 0x20,0x64,0x69,0x73,0x70,0x6C,0x61,0x79,0x65,0x64,0x20,0x61, - 0x62,0x6F,0x76,0x65,0x20,0x74,0x68,0x65,0x20,0x22,0x73,0x74, - 0x6F,0x70,0x22,0x3D,0x62,0x75,0x74,0x74,0x6F,0x6E,0x2E,0x20, - 0x4E,0x6F,0x74,0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x72,0x65, - 0x73,0x70,0x65,0x63,0x74,0x20,0x69,0x73,0x20,0x74,0x61,0x6B, - 0x65,0x6E,0x20,0x74,0x6F,0x20,0x74,0x68,0x65,0x20,0x70,0x61, - 0x72,0x74,0x69,0x63,0x75,0x6C,0x61,0x72,0x20,0x73,0x61,0x6D, - 0x70,0x6C,0x65,0x27,0x73,0x0E,0x72,0x65,0x6C,0x61,0x74,0x69, - 0x76,0x65,0x20,0x6E,0x6F,0x74,0x65,0x2E,0x00,0x16,0x3E,0x40, - 0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x61,0x76, - 0x65,0x20,0x72,0x61,0x6E,0x67,0x65,0x3A,0x0B,0x3E,0x40,0x58, - 0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x3C,0x3E,0x53,0x74, - 0x6F,0x72,0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x72,0x61,0x6E, - 0x67,0x65,0x20,0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x65,0x64, - 0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72, - 0x65,0x6E,0x74,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x64, - 0x69,0x72,0x65,0x63,0x74,0x6F,0x72,0x79,0x2E,0x00,0x11,0x3E, - 0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x50,0x61, - 0x73,0x74,0x65,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40, - 0x43,0x30,0x30,0x32,0x40,0x3E,0x54,0x68,0x65,0x20,0x73,0x61, - 0x6D,0x70,0x6C,0x65,0x20,0x64,0x61,0x74,0x61,0x20,0x69,0x6E, - 0x20,0x74,0x68,0x65,0x20,0x63,0x6F,0x70,0x79,0x20,0x62,0x75, - 0x66,0x66,0x65,0x72,0x20,0x69,0x73,0x20,0x73,0x74,0x6F,0x72, - 0x65,0x64,0x20,0x49,0x4E,0x54,0x4F,0x20,0x74,0x68,0x65,0x20, - 0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x65,0x64,0x06,0x72,0x61, - 0x6E,0x67,0x65,0x2E,0x00,0x10,0x3E,0x40,0x58,0x30,0x34,0x30, - 0x40,0x43,0x30,0x30,0x31,0x43,0x72,0x6F,0x70,0x3A,0x0B,0x3E, - 0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x3E,0x3E, - 0x43,0x75,0x74,0x73,0x20,0x65,0x76,0x65,0x72,0x79,0x74,0x68, - 0x69,0x6E,0x67,0x20,0x62,0x75,0x74,0x20,0x74,0x68,0x65,0x20, - 0x72,0x61,0x6E,0x67,0x65,0x2E,0x20,0x4E,0x6F,0x74,0x68,0x69, - 0x6E,0x67,0x20,0x69,0x73,0x20,0x63,0x68,0x61,0x6E,0x67,0x65, - 0x64,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x63,0x6F,0x70, - 0x79,0x19,0x62,0x75,0x66,0x66,0x65,0x72,0x20,0x62,0x79,0x20, - 0x74,0x68,0x69,0x73,0x20,0x6F,0x70,0x65,0x72,0x61,0x74,0x69, - 0x6F,0x6E,0x2E,0x00,0x12,0x3E,0x40,0x58,0x30,0x34,0x30,0x40, - 0x43,0x30,0x30,0x31,0x56,0x6F,0x6C,0x75,0x6D,0x65,0x3A,0x0B, - 0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x17, - 0x3E,0x4F,0x70,0x65,0x72,0x61,0x74,0x65,0x73,0x20,0x6F,0x6E, - 0x20,0x74,0x68,0x65,0x20,0x72,0x61,0x6E,0x67,0x65,0x2E,0x00, - 0x12,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31, - 0x58,0x2D,0x46,0x61,0x64,0x65,0x3A,0x0B,0x3E,0x40,0x58,0x30, - 0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x44,0x3E,0x54,0x68,0x69, - 0x73,0x20,0x69,0x73,0x20,0x61,0x20,0x74,0x6F,0x6F,0x6C,0x20, - 0x66,0x6F,0x72,0x20,0x6D,0x61,0x6B,0x69,0x6E,0x67,0x20,0x73, - 0x6D,0x6F,0x6F,0x74,0x68,0x20,0x6C,0x6F,0x6F,0x70,0x73,0x2E, - 0x20,0x53,0x70,0x65,0x63,0x69,0x66,0x79,0x20,0x61,0x20,0x72, - 0x61,0x6E,0x67,0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x63,0x6F, - 0x76,0x65,0x72,0x73,0x41,0x74,0x68,0x65,0x20,0x66,0x69,0x72, - 0x73,0x74,0x20,0x6C,0x6F,0x6F,0x70,0x20,0x70,0x6F,0x69,0x6E, - 0x74,0x2E,0x20,0x4D,0x61,0x6B,0x65,0x20,0x73,0x75,0x72,0x65, - 0x20,0x74,0x68,0x61,0x74,0x20,0x74,0x68,0x65,0x72,0x65,0x20, - 0x69,0x73,0x20,0x61,0x73,0x20,0x6D,0x75,0x63,0x68,0x20,0x73, - 0x70,0x61,0x63,0x65,0x20,0x61,0x66,0x74,0x65,0x72,0x41,0x74, - 0x68,0x65,0x20,0x73,0x65,0x63,0x6F,0x6E,0x64,0x20,0x6C,0x6F, - 0x6F,0x70,0x20,0x70,0x6F,0x69,0x6E,0x74,0x20,0x61,0x73,0x20, - 0x74,0x68,0x65,0x20,0x72,0x61,0x6E,0x67,0x65,0x20,0x62,0x79, - 0x70,0x61,0x73,0x73,0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x66, + 0x32,0x17,0x3E,0x4F,0x70,0x65,0x72,0x61,0x74,0x65,0x73,0x20, + 0x6F,0x6E,0x20,0x74,0x68,0x65,0x20,0x72,0x61,0x6E,0x67,0x65, + 0x2E,0x00,0x12,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30, + 0x30,0x31,0x58,0x2D,0x46,0x61,0x64,0x65,0x3A,0x0B,0x3E,0x40, + 0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x44,0x3E,0x54, + 0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x61,0x20,0x74,0x6F,0x6F, + 0x6C,0x20,0x66,0x6F,0x72,0x20,0x6D,0x61,0x6B,0x69,0x6E,0x67, + 0x20,0x73,0x6D,0x6F,0x6F,0x74,0x68,0x20,0x6C,0x6F,0x6F,0x70, + 0x73,0x2E,0x20,0x53,0x70,0x65,0x63,0x69,0x66,0x79,0x20,0x61, + 0x20,0x72,0x61,0x6E,0x67,0x65,0x20,0x74,0x68,0x61,0x74,0x20, + 0x63,0x6F,0x76,0x65,0x72,0x73,0x41,0x74,0x68,0x65,0x20,0x66, 0x69,0x72,0x73,0x74,0x20,0x6C,0x6F,0x6F,0x70,0x20,0x70,0x6F, - 0x69,0x6E,0x74,0x2E,0x1F,0x50,0x72,0x65,0x73,0x73,0x20,0x74, - 0x68,0x65,0x20,0x58,0x2D,0x66,0x61,0x64,0x65,0x20,0x62,0x75, - 0x74,0x74,0x6F,0x6E,0x2E,0x20,0x45,0x6E,0x6A,0x6F,0x79,0x21, - 0x00,0x18,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30, - 0x31,0x38,0x2D,0x42,0x69,0x74,0x2F,0x31,0x36,0x2D,0x62,0x69, + 0x69,0x6E,0x74,0x2E,0x20,0x4D,0x61,0x6B,0x65,0x20,0x73,0x75, + 0x72,0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x74,0x68,0x65,0x72, + 0x65,0x20,0x69,0x73,0x20,0x61,0x73,0x20,0x6D,0x75,0x63,0x68, + 0x20,0x73,0x70,0x61,0x63,0x65,0x20,0x61,0x66,0x74,0x65,0x72, + 0x41,0x74,0x68,0x65,0x20,0x73,0x65,0x63,0x6F,0x6E,0x64,0x20, + 0x6C,0x6F,0x6F,0x70,0x20,0x70,0x6F,0x69,0x6E,0x74,0x20,0x61, + 0x73,0x20,0x74,0x68,0x65,0x20,0x72,0x61,0x6E,0x67,0x65,0x20, + 0x62,0x79,0x70,0x61,0x73,0x73,0x65,0x73,0x20,0x74,0x68,0x65, + 0x20,0x66,0x69,0x72,0x73,0x74,0x20,0x6C,0x6F,0x6F,0x70,0x20, + 0x70,0x6F,0x69,0x6E,0x74,0x2E,0x1F,0x50,0x72,0x65,0x73,0x73, + 0x20,0x74,0x68,0x65,0x20,0x58,0x2D,0x66,0x61,0x64,0x65,0x20, + 0x62,0x75,0x74,0x74,0x6F,0x6E,0x2E,0x20,0x45,0x6E,0x6A,0x6F, + 0x79,0x21,0x00,0x18,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43, + 0x30,0x30,0x31,0x38,0x2D,0x42,0x69,0x74,0x2F,0x31,0x36,0x2D, + 0x62,0x69,0x74,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40, + 0x43,0x30,0x30,0x32,0x42,0x3E,0x49,0x66,0x20,0x79,0x6F,0x75, + 0x20,0x6C,0x6F,0x61,0x64,0x20,0x61,0x20,0x31,0x36,0x2D,0x62, + 0x69,0x74,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x77,0x69, + 0x74,0x68,0x6F,0x75,0x74,0x20,0x68,0x65,0x61,0x64,0x65,0x72, + 0x2C,0x20,0x46,0x54,0x32,0x20,0x61,0x73,0x73,0x75,0x6D,0x65, + 0x73,0x20,0x74,0x68,0x61,0x74,0x20,0x69,0x74,0x27,0x73,0x3E, + 0x61,0x6E,0x20,0x38,0x2D,0x62,0x69,0x74,0x20,0x73,0x61,0x6D, + 0x70,0x6C,0x65,0x2E,0x20,0x57,0x68,0x65,0x6E,0x20,0x70,0x72, + 0x65,0x73,0x73,0x69,0x6E,0x67,0x20,0x74,0x68,0x65,0x20,0x31, + 0x36,0x2D,0x62,0x69,0x74,0x20,0x62,0x75,0x74,0x74,0x6F,0x6E, + 0x2C,0x20,0x64,0x6F,0x20,0x6E,0x6F,0x74,0x20,0x70,0x72,0x65, + 0x73,0x73,0x23,0x22,0x63,0x6F,0x6E,0x76,0x65,0x72,0x74,0x22, + 0x20,0x77,0x68,0x65,0x6E,0x20,0x74,0x68,0x65,0x20,0x72,0x65, + 0x71,0x75,0x65,0x73,0x74,0x20,0x69,0x73,0x20,0x6D,0x61,0x64, + 0x65,0x2E,0x00,0x14,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43, + 0x30,0x30,0x31,0x4D,0x69,0x6E,0x69,0x6D,0x69,0x7A,0x65,0x3A, + 0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32, + 0x44,0x3E,0x54,0x68,0x69,0x73,0x20,0x66,0x75,0x6E,0x63,0x74, + 0x69,0x6F,0x6E,0x20,0x63,0x75,0x74,0x73,0x20,0x74,0x68,0x65, + 0x20,0x70,0x61,0x72,0x74,0x20,0x6F,0x66,0x20,0x74,0x68,0x65, + 0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x74,0x68,0x61,0x74, + 0x20,0x69,0x73,0x20,0x62,0x65,0x79,0x6F,0x6E,0x64,0x20,0x74, + 0x68,0x65,0x20,0x73,0x65,0x63,0x6F,0x6E,0x64,0x0B,0x6C,0x6F, + 0x6F,0x70,0x20,0x70,0x6F,0x69,0x6E,0x74,0x2E,0x00,0x2D,0x40, + 0x58,0x30,0x32,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x61,0x6D, + 0x70,0x6C,0x65,0x20,0x45,0x64,0x69,0x74,0x6F,0x72,0x20,0x45, + 0x78,0x74,0x65,0x6E,0x73,0x69,0x6F,0x6E,0x3A,0x20,0x28,0x53, + 0x2E,0x45,0x2E,0x45,0x78,0x74,0x2E,0x29,0x01,0x3E,0x27,0x3E, + 0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x43,0x6F, + 0x70,0x79,0x2F,0x58,0x63,0x68,0x67,0x20,0x53,0x61,0x6D,0x70, + 0x6C,0x65,0x2F,0x49,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E, 0x74,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30, - 0x30,0x32,0x42,0x3E,0x49,0x66,0x20,0x79,0x6F,0x75,0x20,0x6C, - 0x6F,0x61,0x64,0x20,0x61,0x20,0x31,0x36,0x2D,0x62,0x69,0x74, - 0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x77,0x69,0x74,0x68, - 0x6F,0x75,0x74,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x2C,0x20, - 0x46,0x54,0x32,0x20,0x61,0x73,0x73,0x75,0x6D,0x65,0x73,0x20, - 0x74,0x68,0x61,0x74,0x20,0x69,0x74,0x27,0x73,0x3E,0x61,0x6E, - 0x20,0x38,0x2D,0x62,0x69,0x74,0x20,0x73,0x61,0x6D,0x70,0x6C, - 0x65,0x2E,0x20,0x57,0x68,0x65,0x6E,0x20,0x70,0x72,0x65,0x73, - 0x73,0x69,0x6E,0x67,0x20,0x74,0x68,0x65,0x20,0x31,0x36,0x2D, - 0x62,0x69,0x74,0x20,0x62,0x75,0x74,0x74,0x6F,0x6E,0x2C,0x20, - 0x64,0x6F,0x20,0x6E,0x6F,0x74,0x20,0x70,0x72,0x65,0x73,0x73, - 0x23,0x22,0x63,0x6F,0x6E,0x76,0x65,0x72,0x74,0x22,0x20,0x77, - 0x68,0x65,0x6E,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x71,0x75, - 0x65,0x73,0x74,0x20,0x69,0x73,0x20,0x6D,0x61,0x64,0x65,0x2E, - 0x00,0x14,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30, - 0x31,0x4D,0x69,0x6E,0x69,0x6D,0x69,0x7A,0x65,0x3A,0x0B,0x3E, - 0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x44,0x3E, - 0x54,0x68,0x69,0x73,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F, - 0x6E,0x20,0x63,0x75,0x74,0x73,0x20,0x74,0x68,0x65,0x20,0x70, - 0x61,0x72,0x74,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,0x73, - 0x61,0x6D,0x70,0x6C,0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x69, - 0x73,0x20,0x62,0x65,0x79,0x6F,0x6E,0x64,0x20,0x74,0x68,0x65, - 0x20,0x73,0x65,0x63,0x6F,0x6E,0x64,0x0B,0x6C,0x6F,0x6F,0x70, - 0x20,0x70,0x6F,0x69,0x6E,0x74,0x2E,0x00,0x2D,0x40,0x58,0x30, - 0x32,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x61,0x6D,0x70,0x6C, - 0x65,0x20,0x45,0x64,0x69,0x74,0x6F,0x72,0x20,0x45,0x78,0x74, - 0x65,0x6E,0x73,0x69,0x6F,0x6E,0x3A,0x20,0x28,0x53,0x2E,0x45, - 0x2E,0x45,0x78,0x74,0x2E,0x29,0x01,0x3E,0x27,0x3E,0x40,0x58, - 0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x43,0x6F,0x70,0x79, - 0x2F,0x58,0x63,0x68,0x67,0x20,0x53,0x61,0x6D,0x70,0x6C,0x65, - 0x2F,0x49,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x3A, + 0x30,0x32,0x3C,0x3E,0x54,0x68,0x65,0x20,0x73,0x6F,0x75,0x72, + 0x63,0x65,0x20,0x69,0x73,0x20,0x73,0x70,0x65,0x63,0x69,0x66, + 0x69,0x65,0x64,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x6C, + 0x69,0x6E,0x65,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x69,0x6E, + 0x67,0x20,0x63,0x6F,0x6C,0x75,0x6D,0x6E,0x20,0x6F,0x66,0x20, + 0x74,0x68,0x65,0x40,0x69,0x6E,0x73,0x74,0x72,0x2E,0x2F,0x73, + 0x61,0x6D,0x70,0x6C,0x65,0x20,0x6C,0x69,0x73,0x74,0x73,0x20, + 0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x75,0x70,0x70,0x65,0x72, + 0x2D,0x72,0x69,0x67,0x68,0x74,0x20,0x63,0x6F,0x72,0x6E,0x65, + 0x72,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,0x73,0x63,0x72, + 0x65,0x65,0x6E,0x2E,0x20,0x54,0x68,0x65,0x29,0x64,0x65,0x73, + 0x74,0x69,0x6E,0x61,0x74,0x69,0x6F,0x6E,0x20,0x69,0x73,0x20, + 0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20, + 0x69,0x6E,0x73,0x74,0x72,0x2E,0x2F,0x73,0x61,0x6D,0x70,0x6C, + 0x65,0x2E,0x00,0x15,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43, + 0x30,0x30,0x31,0x42,0x61,0x63,0x6B,0x77,0x61,0x72,0x64,0x73, + 0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30, + 0x32,0x40,0x3E,0x4F,0x70,0x65,0x72,0x61,0x74,0x65,0x73,0x20, + 0x6F,0x6E,0x20,0x74,0x68,0x65,0x20,0x72,0x61,0x6E,0x67,0x65, + 0x20,0x28,0x6F,0x72,0x20,0x74,0x68,0x65,0x20,0x77,0x68,0x6F, + 0x6C,0x65,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x69,0x66, + 0x20,0x6E,0x6F,0x20,0x72,0x61,0x6E,0x67,0x65,0x20,0x69,0x73, + 0x20,0x73,0x65,0x74,0x29,0x2E,0x00,0x10,0x3E,0x40,0x58,0x30, + 0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x69,0x67,0x6E,0x3A, 0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32, - 0x3C,0x3E,0x54,0x68,0x65,0x20,0x73,0x6F,0x75,0x72,0x63,0x65, - 0x20,0x69,0x73,0x20,0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x65, - 0x64,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x6C,0x69,0x6E, - 0x65,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x69,0x6E,0x67,0x20, - 0x63,0x6F,0x6C,0x75,0x6D,0x6E,0x20,0x6F,0x66,0x20,0x74,0x68, - 0x65,0x40,0x69,0x6E,0x73,0x74,0x72,0x2E,0x2F,0x73,0x61,0x6D, - 0x70,0x6C,0x65,0x20,0x6C,0x69,0x73,0x74,0x73,0x20,0x69,0x6E, - 0x20,0x74,0x68,0x65,0x20,0x75,0x70,0x70,0x65,0x72,0x2D,0x72, - 0x69,0x67,0x68,0x74,0x20,0x63,0x6F,0x72,0x6E,0x65,0x72,0x20, - 0x6F,0x66,0x20,0x74,0x68,0x65,0x20,0x73,0x63,0x72,0x65,0x65, - 0x6E,0x2E,0x20,0x54,0x68,0x65,0x29,0x64,0x65,0x73,0x74,0x69, - 0x6E,0x61,0x74,0x69,0x6F,0x6E,0x20,0x69,0x73,0x20,0x74,0x68, - 0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x69,0x6E, - 0x73,0x74,0x72,0x2E,0x2F,0x73,0x61,0x6D,0x70,0x6C,0x65,0x2E, - 0x00,0x15,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30, - 0x31,0x42,0x61,0x63,0x6B,0x77,0x61,0x72,0x64,0x73,0x3A,0x0B, - 0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x40, - 0x3E,0x4F,0x70,0x65,0x72,0x61,0x74,0x65,0x73,0x20,0x6F,0x6E, - 0x20,0x74,0x68,0x65,0x20,0x72,0x61,0x6E,0x67,0x65,0x20,0x28, - 0x6F,0x72,0x20,0x74,0x68,0x65,0x20,0x77,0x68,0x6F,0x6C,0x65, - 0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x69,0x66,0x20,0x6E, - 0x6F,0x20,0x72,0x61,0x6E,0x67,0x65,0x20,0x69,0x73,0x20,0x73, - 0x65,0x74,0x29,0x2E,0x00,0x10,0x3E,0x40,0x58,0x30,0x34,0x30, - 0x40,0x43,0x30,0x30,0x31,0x53,0x69,0x67,0x6E,0x3A,0x0B,0x3E, - 0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x22,0x3E, - 0x43,0x6F,0x6E,0x76,0x65,0x72,0x74,0x73,0x20,0x62,0x65,0x74, - 0x77,0x65,0x65,0x6E,0x20,0x73,0x69,0x67,0x6E,0x65,0x64,0x2F, - 0x75,0x6E,0x73,0x69,0x67,0x6E,0x65,0x64,0x2E,0x00,0x1F,0x3E, - 0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x42,0x2E, - 0x20,0x73,0x77,0x61,0x70,0x20,0x28,0x62,0x79,0x74,0x65,0x20, - 0x73,0x77,0x61,0x70,0x29,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36, - 0x30,0x40,0x43,0x30,0x30,0x32,0x3F,0x53,0x77,0x61,0x70,0x73, - 0x20,0x74,0x68,0x65,0x20,0x62,0x79,0x74,0x65,0x20,0x6F,0x72, - 0x64,0x65,0x72,0x20,0x74,0x6F,0x2F,0x66,0x72,0x6F,0x6D,0x20, - 0x49,0x6E,0x74,0x65,0x6C,0x20,0x66,0x72,0x6F,0x6D,0x2F,0x74, - 0x6F,0x20,0x4D,0x6F,0x74,0x6F,0x72,0x6F,0x6C,0x61,0x20,0x73, - 0x74,0x61,0x6E,0x64,0x61,0x72,0x64,0x20,0x6F,0x6E,0x12,0x74, - 0x68,0x65,0x20,0x65,0x6E,0x74,0x69,0x72,0x65,0x20,0x73,0x61, - 0x6D,0x70,0x6C,0x65,0x2E,0x44,0x59,0x6F,0x75,0x27,0x6C,0x6C, - 0x20,0x6E,0x65,0x65,0x64,0x20,0x74,0x68,0x69,0x73,0x20,0x66, - 0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x69,0x66,0x20,0x79, - 0x6F,0x75,0x20,0x69,0x6D,0x70,0x6F,0x72,0x74,0x20,0x31,0x36, - 0x2D,0x62,0x69,0x74,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x73, - 0x20,0x77,0x69,0x74,0x68,0x20,0x4D,0x6F,0x74,0x6F,0x72,0x6F, - 0x6C,0x61,0x2D,0x62,0x79,0x74,0x65,0x2D,0x6F,0x72,0x64,0x65, - 0x72,0x69,0x6E,0x67,0x20,0x28,0x66,0x2E,0x65,0x78,0x2E,0x20, - 0x4B,0x75,0x72,0x7A,0x77,0x65,0x69,0x6C,0x20,0x4B,0x32,0x30, - 0x30,0x30,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x73,0x2E,0x29, - 0x00,0x10,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30, - 0x31,0x45,0x63,0x68,0x6F,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36, - 0x30,0x40,0x43,0x30,0x30,0x32,0x1E,0x4F,0x70,0x65,0x72,0x61, + 0x22,0x3E,0x43,0x6F,0x6E,0x76,0x65,0x72,0x74,0x73,0x20,0x62, + 0x65,0x74,0x77,0x65,0x65,0x6E,0x20,0x73,0x69,0x67,0x6E,0x65, + 0x64,0x2F,0x75,0x6E,0x73,0x69,0x67,0x6E,0x65,0x64,0x2E,0x00, + 0x1F,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31, + 0x42,0x2E,0x20,0x73,0x77,0x61,0x70,0x20,0x28,0x62,0x79,0x74, + 0x65,0x20,0x73,0x77,0x61,0x70,0x29,0x3A,0x0B,0x3E,0x40,0x58, + 0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x3F,0x53,0x77,0x61, + 0x70,0x73,0x20,0x74,0x68,0x65,0x20,0x62,0x79,0x74,0x65,0x20, + 0x6F,0x72,0x64,0x65,0x72,0x20,0x74,0x6F,0x2F,0x66,0x72,0x6F, + 0x6D,0x20,0x49,0x6E,0x74,0x65,0x6C,0x20,0x66,0x72,0x6F,0x6D, + 0x2F,0x74,0x6F,0x20,0x4D,0x6F,0x74,0x6F,0x72,0x6F,0x6C,0x61, + 0x20,0x73,0x74,0x61,0x6E,0x64,0x61,0x72,0x64,0x20,0x6F,0x6E, + 0x12,0x74,0x68,0x65,0x20,0x65,0x6E,0x74,0x69,0x72,0x65,0x20, + 0x73,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x44,0x59,0x6F,0x75,0x27, + 0x6C,0x6C,0x20,0x6E,0x65,0x65,0x64,0x20,0x74,0x68,0x69,0x73, + 0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x69,0x66, + 0x20,0x79,0x6F,0x75,0x20,0x69,0x6D,0x70,0x6F,0x72,0x74,0x20, + 0x31,0x36,0x2D,0x62,0x69,0x74,0x20,0x73,0x61,0x6D,0x70,0x6C, + 0x65,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x4D,0x6F,0x74,0x6F, + 0x72,0x6F,0x6C,0x61,0x2D,0x62,0x79,0x74,0x65,0x2D,0x6F,0x72, + 0x64,0x65,0x72,0x69,0x6E,0x67,0x20,0x28,0x66,0x2E,0x65,0x78, + 0x2E,0x20,0x4B,0x75,0x72,0x7A,0x77,0x65,0x69,0x6C,0x20,0x4B, + 0x32,0x30,0x30,0x30,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x73, + 0x2E,0x29,0x00,0x10,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43, + 0x30,0x30,0x31,0x45,0x63,0x68,0x6F,0x3A,0x0B,0x3E,0x40,0x58, + 0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x1E,0x4F,0x70,0x65, + 0x72,0x61,0x74,0x65,0x73,0x20,0x6F,0x6E,0x20,0x74,0x68,0x65, + 0x20,0x65,0x6E,0x74,0x69,0x72,0x65,0x20,0x73,0x61,0x6D,0x70, + 0x6C,0x65,0x2E,0x00,0x12,0x3E,0x40,0x58,0x30,0x34,0x30,0x40, + 0x43,0x30,0x30,0x31,0x46,0x69,0x78,0x20,0x44,0x43,0x3A,0x0B, + 0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x3D, + 0x41,0x74,0x74,0x65,0x6D,0x70,0x74,0x73,0x20,0x74,0x6F,0x20, + 0x63,0x65,0x6E,0x74,0x65,0x72,0x20,0x61,0x20,0x73,0x61,0x6D, + 0x70,0x6C,0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x68,0x61,0x73, + 0x20,0x75,0x6E,0x77,0x61,0x6E,0x74,0x65,0x64,0x20,0x44,0x43, + 0x20,0x6F,0x66,0x66,0x73,0x65,0x74,0x2F,0x62,0x69,0x61,0x73, + 0x2E,0x43,0x50,0x6C,0x65,0x61,0x73,0x65,0x20,0x6E,0x6F,0x74, + 0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x69,0x74,0x20,0x69,0x73, + 0x20,0x75,0x73,0x69,0x6E,0x67,0x20,0x61,0x20,0x63,0x72,0x75, + 0x64,0x65,0x20,0x61,0x6C,0x67,0x6F,0x72,0x69,0x74,0x68,0x6D, + 0x2C,0x20,0x73,0x6F,0x20,0x69,0x74,0x20,0x63,0x61,0x6E,0x20, + 0x73,0x6F,0x6D,0x65,0x74,0x69,0x6D,0x65,0x73,0x22,0x66,0x61, + 0x69,0x6C,0x20,0x64,0x65,0x70,0x65,0x6E,0x64,0x69,0x6E,0x67, + 0x20,0x6F,0x6E,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6D,0x70, + 0x6C,0x65,0x20,0x64,0x61,0x74,0x61,0x2E,0x00,0x14,0x3E,0x40, + 0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x52,0x65,0x73, + 0x61,0x6D,0x70,0x6C,0x65,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36, + 0x30,0x40,0x43,0x30,0x30,0x32,0x3C,0x4F,0x70,0x65,0x72,0x61, 0x74,0x65,0x73,0x20,0x6F,0x6E,0x20,0x74,0x68,0x65,0x20,0x65, 0x6E,0x74,0x69,0x72,0x65,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65, - 0x2E,0x00,0x12,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30, - 0x30,0x31,0x46,0x69,0x78,0x20,0x44,0x43,0x3A,0x0B,0x3E,0x40, - 0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x3D,0x41,0x74, - 0x74,0x65,0x6D,0x70,0x74,0x73,0x20,0x74,0x6F,0x20,0x63,0x65, - 0x6E,0x74,0x65,0x72,0x20,0x61,0x20,0x73,0x61,0x6D,0x70,0x6C, - 0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x68,0x61,0x73,0x20,0x75, - 0x6E,0x77,0x61,0x6E,0x74,0x65,0x64,0x20,0x44,0x43,0x20,0x6F, - 0x66,0x66,0x73,0x65,0x74,0x2F,0x62,0x69,0x61,0x73,0x2E,0x43, - 0x50,0x6C,0x65,0x61,0x73,0x65,0x20,0x6E,0x6F,0x74,0x65,0x20, - 0x74,0x68,0x61,0x74,0x20,0x69,0x74,0x20,0x69,0x73,0x20,0x75, - 0x73,0x69,0x6E,0x67,0x20,0x61,0x20,0x63,0x72,0x75,0x64,0x65, - 0x20,0x61,0x6C,0x67,0x6F,0x72,0x69,0x74,0x68,0x6D,0x2C,0x20, - 0x73,0x6F,0x20,0x69,0x74,0x20,0x63,0x61,0x6E,0x20,0x73,0x6F, - 0x6D,0x65,0x74,0x69,0x6D,0x65,0x73,0x22,0x66,0x61,0x69,0x6C, - 0x20,0x64,0x65,0x70,0x65,0x6E,0x64,0x69,0x6E,0x67,0x20,0x6F, - 0x6E,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65, - 0x20,0x64,0x61,0x74,0x61,0x2E,0x00,0x14,0x3E,0x40,0x58,0x30, - 0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x52,0x65,0x73,0x61,0x6D, + 0x2E,0x20,0x54,0x68,0x65,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65, + 0x27,0x73,0x20,0x72,0x65,0x6C,0x61,0x74,0x69,0x76,0x65,0x20, + 0x6E,0x6F,0x74,0x65,0x20,0x69,0x73,0x2C,0x63,0x68,0x61,0x6E, + 0x67,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x72,0x65,0x73, + 0x70,0x65,0x63,0x74,0x20,0x74,0x6F,0x20,0x74,0x68,0x65,0x20, + 0x72,0x65,0x73,0x61,0x6D,0x70,0x6C,0x69,0x6E,0x67,0x20,0x72, + 0x61,0x74,0x65,0x2E,0x00,0x16,0x3E,0x40,0x58,0x30,0x34,0x30, + 0x40,0x43,0x30,0x30,0x31,0x4D,0x69,0x78,0x20,0x73,0x61,0x6D, 0x70,0x6C,0x65,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40, - 0x43,0x30,0x30,0x32,0x3C,0x4F,0x70,0x65,0x72,0x61,0x74,0x65, - 0x73,0x20,0x6F,0x6E,0x20,0x74,0x68,0x65,0x20,0x65,0x6E,0x74, - 0x69,0x72,0x65,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x20, - 0x54,0x68,0x65,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x27,0x73, - 0x20,0x72,0x65,0x6C,0x61,0x74,0x69,0x76,0x65,0x20,0x6E,0x6F, - 0x74,0x65,0x20,0x69,0x73,0x2C,0x63,0x68,0x61,0x6E,0x67,0x65, - 0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x72,0x65,0x73,0x70,0x65, - 0x63,0x74,0x20,0x74,0x6F,0x20,0x74,0x68,0x65,0x20,0x72,0x65, - 0x73,0x61,0x6D,0x70,0x6C,0x69,0x6E,0x67,0x20,0x72,0x61,0x74, - 0x65,0x2E,0x00,0x16,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43, - 0x30,0x30,0x31,0x4D,0x69,0x78,0x20,0x73,0x61,0x6D,0x70,0x6C, + 0x43,0x30,0x30,0x32,0x35,0x3E,0x4D,0x69,0x78,0x65,0x73,0x20, + 0x74,0x68,0x65,0x20,0x73,0x6F,0x75,0x72,0x63,0x65,0x20,0x77, + 0x69,0x74,0x68,0x20,0x74,0x68,0x65,0x20,0x64,0x65,0x73,0x74, + 0x69,0x6E,0x61,0x74,0x69,0x6F,0x6E,0x20,0x74,0x6F,0x20,0x74, + 0x68,0x65,0x20,0x73,0x6F,0x75,0x72,0x63,0x65,0x2E,0x00,0x15, + 0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x44, + 0x72,0x61,0x77,0x20,0x6D,0x6F,0x64,0x65,0x3A,0x0B,0x3E,0x40, + 0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x40,0x42,0x79, + 0x20,0x70,0x72,0x65,0x73,0x73,0x69,0x6E,0x67,0x20,0x74,0x68, + 0x65,0x20,0x72,0x69,0x67,0x68,0x74,0x20,0x6D,0x6F,0x75,0x73, + 0x65,0x20,0x62,0x75,0x74,0x74,0x6F,0x6E,0x20,0x69,0x6E,0x20, + 0x74,0x68,0x65,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x77, + 0x69,0x6E,0x64,0x6F,0x77,0x2C,0x20,0x79,0x6F,0x75,0x20,0x63, + 0x61,0x6E,0x1D,0x64,0x72,0x61,0x77,0x20,0x79,0x6F,0x75,0x72, + 0x20,0x77,0x61,0x76,0x65,0x66,0x6F,0x72,0x6D,0x73,0x20,0x6D, + 0x61,0x6E,0x75,0x61,0x6C,0x6C,0x79,0x2E,0x00,0x15,0x40,0x58, + 0x30,0x32,0x30,0x40,0x43,0x30,0x30,0x31,0x57,0x41,0x56,0x20, + 0x65,0x78,0x70,0x6F,0x72,0x74,0x3A,0x01,0x3E,0x1F,0x3E,0x40, + 0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x49,0x6D,0x70, + 0x72,0x65,0x63,0x69,0x73,0x65,0x20,0x42,0x50,0x4D,0x20,0x28, + 0x46,0x54,0x32,0x29,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30, + 0x40,0x43,0x30,0x30,0x32,0x44,0x54,0x68,0x65,0x20,0x42,0x50, + 0x4D,0x20,0x70,0x72,0x65,0x63,0x69,0x73,0x69,0x6F,0x6E,0x20, + 0x69,0x6E,0x20,0x6F,0x72,0x69,0x67,0x69,0x6E,0x61,0x6C,0x20, + 0x46,0x54,0x32,0x20,0x69,0x73,0x20,0x6E,0x6F,0x74,0x20,0x65, + 0x78,0x61,0x63,0x74,0x2E,0x20,0x54,0x69,0x63,0x6B,0x20,0x74, + 0x68,0x69,0x73,0x20,0x62,0x6F,0x78,0x20,0x74,0x6F,0x20,0x75, + 0x73,0x65,0x40,0x74,0x68,0x65,0x20,0x73,0x61,0x6D,0x65,0x20, + 0x28,0x70,0x6F,0x6F,0x72,0x29,0x20,0x42,0x50,0x4D,0x20,0x70, + 0x72,0x65,0x63,0x69,0x73,0x69,0x6F,0x6E,0x20,0x74,0x68,0x61, + 0x74,0x20,0x6F,0x72,0x69,0x67,0x69,0x6E,0x61,0x6C,0x20,0x46, + 0x54,0x32,0x20,0x75,0x73,0x65,0x73,0x2E,0x20,0x49,0x74,0x20, + 0x77,0x69,0x6C,0x6C,0x20,0x62,0x65,0x47,0x61,0x20,0x66,0x72, + 0x61,0x63,0x74,0x69,0x6F,0x6E,0x20,0x6F,0x66,0x66,0x2C,0x20, + 0x62,0x75,0x74,0x20,0x74,0x68,0x65,0x20,0x57,0x41,0x56,0x20, + 0x6F,0x75,0x74,0x70,0x75,0x74,0x20,0x77,0x69,0x6C,0x6C,0x20, + 0x62,0x65,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6D,0x65,0x20, + 0x6C,0x65,0x6E,0x67,0x74,0x68,0x20,0x61,0x73,0x20,0x66,0x72, + 0x6F,0x6D,0x20,0x46,0x54,0x32,0x2E,0x40,0x54,0x68,0x69,0x73, + 0x20,0x73,0x65,0x74,0x74,0x69,0x6E,0x67,0x73,0x20,0x6F,0x6E, + 0x6C,0x79,0x20,0x61,0x66,0x66,0x65,0x63,0x74,0x73,0x20,0x57, + 0x41,0x56,0x20,0x65,0x78,0x70,0x6F,0x72,0x74,0x2C,0x20,0x61, + 0x6E,0x64,0x20,0x6E,0x6F,0x74,0x20,0x74,0x72,0x61,0x63,0x6B, + 0x65,0x72,0x20,0x70,0x6C,0x61,0x79,0x62,0x61,0x63,0x6B,0x2E, + 0x00,0x18,0x40,0x58,0x30,0x32,0x30,0x40,0x43,0x30,0x30,0x31, + 0x43,0x6F,0x6E,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6F, + 0x6E,0x3A,0x01,0x3E,0x15,0x3E,0x40,0x58,0x30,0x34,0x30,0x40, + 0x43,0x30,0x30,0x31,0x41,0x75,0x74,0x6F,0x20,0x73,0x61,0x76, 0x65,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30, - 0x30,0x32,0x35,0x3E,0x4D,0x69,0x78,0x65,0x73,0x20,0x74,0x68, - 0x65,0x20,0x73,0x6F,0x75,0x72,0x63,0x65,0x20,0x77,0x69,0x74, - 0x68,0x20,0x74,0x68,0x65,0x20,0x64,0x65,0x73,0x74,0x69,0x6E, - 0x61,0x74,0x69,0x6F,0x6E,0x20,0x74,0x6F,0x20,0x74,0x68,0x65, - 0x20,0x73,0x6F,0x75,0x72,0x63,0x65,0x2E,0x00,0x15,0x3E,0x40, - 0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x44,0x72,0x61, - 0x77,0x20,0x6D,0x6F,0x64,0x65,0x3A,0x0B,0x3E,0x40,0x58,0x30, - 0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x40,0x42,0x79,0x20,0x70, - 0x72,0x65,0x73,0x73,0x69,0x6E,0x67,0x20,0x74,0x68,0x65,0x20, - 0x72,0x69,0x67,0x68,0x74,0x20,0x6D,0x6F,0x75,0x73,0x65,0x20, - 0x62,0x75,0x74,0x74,0x6F,0x6E,0x20,0x69,0x6E,0x20,0x74,0x68, - 0x65,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x77,0x69,0x6E, - 0x64,0x6F,0x77,0x2C,0x20,0x79,0x6F,0x75,0x20,0x63,0x61,0x6E, - 0x1D,0x64,0x72,0x61,0x77,0x20,0x79,0x6F,0x75,0x72,0x20,0x77, - 0x61,0x76,0x65,0x66,0x6F,0x72,0x6D,0x73,0x20,0x6D,0x61,0x6E, - 0x75,0x61,0x6C,0x6C,0x79,0x2E,0x00,0x15,0x40,0x58,0x30,0x32, - 0x30,0x40,0x43,0x30,0x30,0x31,0x57,0x41,0x56,0x20,0x65,0x78, - 0x70,0x6F,0x72,0x74,0x3A,0x01,0x3E,0x1F,0x3E,0x40,0x58,0x30, - 0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x49,0x6D,0x70,0x72,0x65, - 0x63,0x69,0x73,0x65,0x20,0x42,0x50,0x4D,0x20,0x28,0x46,0x54, - 0x32,0x29,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43, - 0x30,0x30,0x32,0x44,0x54,0x68,0x65,0x20,0x42,0x50,0x4D,0x20, - 0x70,0x72,0x65,0x63,0x69,0x73,0x69,0x6F,0x6E,0x20,0x69,0x6E, - 0x20,0x6F,0x72,0x69,0x67,0x69,0x6E,0x61,0x6C,0x20,0x46,0x54, - 0x32,0x20,0x69,0x73,0x20,0x6E,0x6F,0x74,0x20,0x65,0x78,0x61, - 0x63,0x74,0x2E,0x20,0x54,0x69,0x63,0x6B,0x20,0x74,0x68,0x69, - 0x73,0x20,0x62,0x6F,0x78,0x20,0x74,0x6F,0x20,0x75,0x73,0x65, - 0x40,0x74,0x68,0x65,0x20,0x73,0x61,0x6D,0x65,0x20,0x28,0x70, - 0x6F,0x6F,0x72,0x29,0x20,0x42,0x50,0x4D,0x20,0x70,0x72,0x65, - 0x63,0x69,0x73,0x69,0x6F,0x6E,0x20,0x74,0x68,0x61,0x74,0x20, - 0x6F,0x72,0x69,0x67,0x69,0x6E,0x61,0x6C,0x20,0x46,0x54,0x32, - 0x20,0x75,0x73,0x65,0x73,0x2E,0x20,0x49,0x74,0x20,0x77,0x69, - 0x6C,0x6C,0x20,0x62,0x65,0x47,0x61,0x20,0x66,0x72,0x61,0x63, - 0x74,0x69,0x6F,0x6E,0x20,0x6F,0x66,0x66,0x2C,0x20,0x62,0x75, - 0x74,0x20,0x74,0x68,0x65,0x20,0x57,0x41,0x56,0x20,0x6F,0x75, - 0x74,0x70,0x75,0x74,0x20,0x77,0x69,0x6C,0x6C,0x20,0x62,0x65, - 0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6D,0x65,0x20,0x6C,0x65, - 0x6E,0x67,0x74,0x68,0x20,0x61,0x73,0x20,0x66,0x72,0x6F,0x6D, - 0x20,0x46,0x54,0x32,0x2E,0x40,0x54,0x68,0x69,0x73,0x20,0x73, - 0x65,0x74,0x74,0x69,0x6E,0x67,0x73,0x20,0x6F,0x6E,0x6C,0x79, - 0x20,0x61,0x66,0x66,0x65,0x63,0x74,0x73,0x20,0x57,0x41,0x56, - 0x20,0x65,0x78,0x70,0x6F,0x72,0x74,0x2C,0x20,0x61,0x6E,0x64, - 0x20,0x6E,0x6F,0x74,0x20,0x74,0x72,0x61,0x63,0x6B,0x65,0x72, - 0x20,0x70,0x6C,0x61,0x79,0x62,0x61,0x63,0x6B,0x2E,0x00,0x18, - 0x40,0x58,0x30,0x32,0x30,0x40,0x43,0x30,0x30,0x31,0x43,0x6F, - 0x6E,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x3A, - 0x01,0x3E,0x15,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30, - 0x30,0x31,0x41,0x75,0x74,0x6F,0x20,0x73,0x61,0x76,0x65,0x3A, - 0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32, - 0x43,0x49,0x66,0x20,0x74,0x68,0x65,0x20,0x61,0x75,0x74,0x6F, - 0x20,0x73,0x61,0x76,0x65,0x20,0x69,0x73,0x20,0x6F,0x6E,0x2C, - 0x20,0x46,0x54,0x32,0x20,0x77,0x69,0x6C,0x6C,0x20,0x75,0x70, - 0x64,0x61,0x74,0x65,0x20,0x74,0x68,0x65,0x20,0x63,0x6F,0x6E, - 0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x20,0x66, - 0x69,0x6C,0x65,0x20,0x77,0x68,0x65,0x6E,0x15,0x79,0x6F,0x75, - 0x20,0x65,0x78,0x69,0x74,0x20,0x74,0x68,0x65,0x20,0x70,0x72, - 0x6F,0x67,0x72,0x61,0x6D,0x2E,0x00,0x25,0x40,0x58,0x30,0x32, - 0x30,0x40,0x43,0x30,0x30,0x31,0x43,0x6F,0x6E,0x66,0x69,0x67, - 0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x2C,0x20,0x49,0x2F,0x4F, - 0x20,0x64,0x65,0x76,0x69,0x63,0x65,0x73,0x3A,0x01,0x3E,0x19, - 0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x49, - 0x6E,0x74,0x65,0x72,0x70,0x6F,0x6C,0x61,0x74,0x69,0x6F,0x6E, - 0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30, - 0x32,0x35,0x53,0x65,0x6C,0x65,0x63,0x74,0x73,0x20,0x77,0x68, - 0x61,0x74,0x20,0x74,0x79,0x70,0x65,0x20,0x6F,0x66,0x20,0x72, - 0x65,0x73,0x61,0x6D,0x70,0x6C,0x69,0x6E,0x67,0x20,0x69,0x6E, - 0x74,0x65,0x72,0x70,0x6F,0x6C,0x61,0x74,0x69,0x6F,0x6E,0x20, - 0x74,0x6F,0x20,0x75,0x73,0x65,0x2E,0x45,0x22,0x4E,0x6F,0x6E, - 0x65,0x22,0x20,0x75,0x73,0x65,0x73,0x20,0x6E,0x6F,0x20,0x69, + 0x30,0x32,0x43,0x49,0x66,0x20,0x74,0x68,0x65,0x20,0x61,0x75, + 0x74,0x6F,0x20,0x73,0x61,0x76,0x65,0x20,0x69,0x73,0x20,0x6F, + 0x6E,0x2C,0x20,0x46,0x54,0x32,0x20,0x77,0x69,0x6C,0x6C,0x20, + 0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x74,0x68,0x65,0x20,0x63, + 0x6F,0x6E,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6F,0x6E, + 0x20,0x66,0x69,0x6C,0x65,0x20,0x77,0x68,0x65,0x6E,0x15,0x79, + 0x6F,0x75,0x20,0x65,0x78,0x69,0x74,0x20,0x74,0x68,0x65,0x20, + 0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x2E,0x00,0x1F,0x40,0x58, + 0x30,0x32,0x30,0x40,0x43,0x30,0x30,0x31,0x43,0x6F,0x6E,0x66, + 0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x2C,0x20,0x41, + 0x75,0x64,0x69,0x6F,0x3A,0x01,0x3E,0x19,0x3E,0x40,0x58,0x30, + 0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x49,0x6E,0x74,0x65,0x72, + 0x70,0x6F,0x6C,0x61,0x74,0x69,0x6F,0x6E,0x3A,0x0B,0x3E,0x40, + 0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x35,0x53,0x65, + 0x6C,0x65,0x63,0x74,0x73,0x20,0x77,0x68,0x61,0x74,0x20,0x74, + 0x79,0x70,0x65,0x20,0x6F,0x66,0x20,0x72,0x65,0x73,0x61,0x6D, + 0x70,0x6C,0x69,0x6E,0x67,0x20,0x69,0x6E,0x74,0x65,0x72,0x70, + 0x6F,0x6C,0x61,0x74,0x69,0x6F,0x6E,0x20,0x74,0x6F,0x20,0x75, + 0x73,0x65,0x2E,0x49,0x22,0x44,0x69,0x73,0x61,0x62,0x6C,0x65, + 0x64,0x22,0x20,0x75,0x73,0x65,0x73,0x20,0x6E,0x6F,0x20,0x69, 0x6E,0x74,0x65,0x72,0x70,0x6F,0x6C,0x61,0x74,0x69,0x6F,0x6E, 0x20,0x28,0x6E,0x65,0x61,0x72,0x65,0x73,0x74,0x20,0x6E,0x65, 0x69,0x67,0x68,0x62,0x6F,0x72,0x29,0x2C,0x20,0x77,0x68,0x69, 0x63,0x68,0x20,0x77,0x69,0x6C,0x6C,0x20,0x72,0x65,0x73,0x75, - 0x6C,0x74,0x20,0x69,0x6E,0x49,0x61,0x6C,0x69,0x61,0x73,0x69, + 0x6C,0x74,0x20,0x69,0x6E,0x3E,0x61,0x6C,0x69,0x61,0x73,0x69, 0x6E,0x67,0x20,0x28,0x6E,0x6F,0x69,0x73,0x65,0x29,0x20,0x69, 0x6E,0x20,0x74,0x68,0x65,0x20,0x73,0x6F,0x75,0x6E,0x64,0x2E, 0x20,0x22,0x4C,0x69,0x6E,0x65,0x61,0x72,0x22,0x20,0x69,0x73, 0x20,0x77,0x68,0x61,0x74,0x20,0x72,0x65,0x61,0x6C,0x20,0x46, - 0x54,0x32,0x20,0x75,0x73,0x65,0x73,0x2C,0x20,0x77,0x68,0x69, - 0x63,0x68,0x20,0x69,0x73,0x20,0x61,0x47,0x6D,0x65,0x64,0x69, + 0x54,0x32,0x20,0x75,0x73,0x65,0x73,0x2C,0x41,0x77,0x68,0x69, + 0x63,0x68,0x20,0x69,0x73,0x20,0x61,0x20,0x6D,0x65,0x64,0x69, 0x6F,0x63,0x72,0x65,0x20,0x69,0x6E,0x74,0x65,0x72,0x70,0x6F, 0x6C,0x61,0x74,0x69,0x6F,0x6E,0x20,0x74,0x79,0x70,0x65,0x2E, - 0x20,0x22,0x57,0x69,0x6E,0x64,0x6F,0x77,0x65,0x64,0x2D,0x73, - 0x69,0x6E,0x63,0x22,0x20,0x69,0x73,0x20,0x74,0x68,0x65,0x20, - 0x72,0x65,0x63,0x6F,0x6D,0x6D,0x65,0x6E,0x64,0x65,0x64,0x20, - 0x73,0x65,0x74,0x74,0x69,0x6E,0x67,0x48,0x66,0x6F,0x72,0x20, - 0x74,0x68,0x65,0x20,0x62,0x65,0x73,0x74,0x20,0x61,0x75,0x64, - 0x69,0x6F,0x20,0x71,0x75,0x61,0x6C,0x69,0x74,0x79,0x2C,0x20, - 0x61,0x6C,0x74,0x68,0x6F,0x75,0x67,0x68,0x20,0x69,0x74,0x20, - 0x6D,0x61,0x79,0x20,0x73,0x6F,0x6D,0x65,0x74,0x69,0x6D,0x65, - 0x73,0x20,0x73,0x6F,0x75,0x6E,0x64,0x20,0x74,0x6F,0x6F,0x20, - 0x66,0x69,0x6C,0x74,0x65,0x72,0x65,0x64,0x2A,0x6F,0x6E,0x20, - 0x6C,0x6F,0x77,0x2D,0x71,0x75,0x61,0x6C,0x69,0x74,0x79,0x20, - 0x73,0x61,0x6D,0x70,0x6C,0x65,0x73,0x20,0x28,0x66,0x2E,0x65, - 0x78,0x2E,0x20,0x41,0x6D,0x69,0x67,0x61,0x20,0x4D,0x4F,0x44, - 0x73,0x29,0x2E,0x00,0x1A,0x3E,0x40,0x58,0x30,0x34,0x30,0x40, - 0x43,0x30,0x30,0x31,0x56,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x72, - 0x61,0x6D,0x70,0x69,0x6E,0x67,0x3A,0x0B,0x3E,0x40,0x58,0x30, - 0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x3B,0x45,0x6E,0x61,0x62, - 0x6C,0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x61,0x6E,0x74,0x69, - 0x2D,0x63,0x6C,0x69,0x63,0x6B,0x20,0x73,0x79,0x73,0x74,0x65, - 0x6D,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x61,0x75,0x64, - 0x69,0x6F,0x20,0x6D,0x69,0x78,0x65,0x72,0x20,0x28,0x46,0x54, - 0x32,0x2E,0x30,0x38,0x2B,0x29,0x2E,0x3B,0x50,0x6C,0x65,0x61, - 0x73,0x65,0x20,0x6E,0x6F,0x74,0x65,0x20,0x74,0x68,0x61,0x74, - 0x20,0x6F,0x72,0x69,0x67,0x69,0x6E,0x61,0x6C,0x20,0x46,0x54, - 0x32,0x20,0x63,0x61,0x6E,0x27,0x74,0x20,0x6C,0x6F,0x61,0x64, - 0x20,0x74,0x68,0x69,0x73,0x20,0x63,0x6F,0x6E,0x66,0x69,0x67, - 0x20,0x65,0x6E,0x74,0x72,0x79,0x2C,0x0B,0x63,0x6C,0x6F,0x6E, - 0x65,0x20,0x6F,0x6E,0x6C,0x79,0x2E,0x00,0x19,0x3E,0x40,0x58, - 0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x41,0x6D,0x70,0x6C, - 0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6F,0x6E,0x3A,0x0B,0x3E, - 0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x46,0x41, - 0x6D,0x70,0x6C,0x69,0x66,0x69,0x65,0x73,0x20,0x74,0x68,0x65, - 0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x77,0x68,0x65,0x6E, - 0x20,0x6D,0x69,0x78,0x69,0x6E,0x67,0x2E,0x20,0x49,0x66,0x20, - 0x79,0x6F,0x75,0x20,0x73,0x65,0x74,0x20,0x74,0x68,0x69,0x73, - 0x20,0x6F,0x6E,0x65,0x20,0x74,0x6F,0x6F,0x20,0x68,0x69,0x67, - 0x68,0x2C,0x20,0x79,0x6F,0x75,0x27,0x6C,0x6C,0x3A,0x67,0x65, - 0x74,0x20,0x64,0x69,0x73,0x74,0x6F,0x72,0x74,0x69,0x6F,0x6E, - 0x2E,0x20,0x33,0x32,0x58,0x20,0x65,0x71,0x75,0x61,0x6C,0x73, - 0x20,0x66,0x75,0x6C,0x6C,0x20,0x61,0x6D,0x70,0x6C,0x69,0x74, - 0x75,0x64,0x65,0x20,0x66,0x6F,0x72,0x20,0x6F,0x6E,0x65,0x20, - 0x63,0x68,0x61,0x6E,0x6E,0x65,0x6C,0x2E,0x00,0x1B,0x3E,0x40, - 0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x46,0x72,0x65, - 0x71,0x75,0x65,0x6E,0x63,0x79,0x20,0x74,0x61,0x62,0x6C,0x65, - 0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30, - 0x32,0x40,0x54,0x68,0x65,0x20,0x6C,0x69,0x6E,0x65,0x61,0x72, - 0x20,0x66,0x72,0x65,0x71,0x75,0x65,0x6E,0x63,0x79,0x20,0x74, - 0x61,0x62,0x6C,0x65,0x20,0x6D,0x61,0x6B,0x65,0x73,0x20,0x61, - 0x6C,0x6C,0x20,0x70,0x69,0x74,0x63,0x68,0x20,0x62,0x65,0x6E, - 0x64,0x73,0x20,0x72,0x75,0x6E,0x20,0x69,0x6E,0x20,0x63,0x6F, - 0x6E,0x73,0x74,0x61,0x6E,0x74,0x3F,0x73,0x70,0x65,0x65,0x64, - 0x2C,0x20,0x69,0x6E,0x64,0x65,0x70,0x65,0x6E,0x64,0x65,0x6E, - 0x74,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72, - 0x72,0x65,0x6E,0x74,0x20,0x66,0x72,0x65,0x71,0x75,0x65,0x6E, - 0x63,0x79,0x2E,0x20,0x49,0x66,0x20,0x79,0x6F,0x75,0x20,0x73, - 0x77,0x69,0x74,0x63,0x68,0x20,0x74,0x68,0x69,0x73,0x41,0x6F, - 0x6E,0x65,0x2C,0x20,0x6F,0x6E,0x20,0x61,0x20,0x66,0x69,0x6E, - 0x69,0x73,0x68,0x65,0x64,0x20,0x73,0x6F,0x6E,0x67,0x2C,0x20, - 0x69,0x74,0x20,0x6D,0x69,0x67,0x68,0x74,0x20,0x73,0x6F,0x75, - 0x6E,0x64,0x20,0x73,0x74,0x72,0x61,0x6E,0x67,0x65,0x20,0x69, - 0x66,0x20,0x74,0x68,0x65,0x20,0x73,0x6F,0x75,0x6E,0x64,0x20, - 0x75,0x73,0x65,0x73,0x0D,0x70,0x6F,0x72,0x74,0x61,0x6D,0x65, - 0x6E,0x74,0x6F,0x65,0x73,0x2E,0x00,0x20,0x40,0x58,0x30,0x32, - 0x30,0x40,0x43,0x30,0x30,0x31,0x43,0x6F,0x6E,0x66,0x69,0x67, - 0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x2C,0x20,0x4C,0x61,0x79, - 0x6F,0x75,0x74,0x3A,0x01,0x3E,0x29,0x3E,0x40,0x58,0x30,0x34, - 0x30,0x40,0x43,0x30,0x30,0x31,0x50,0x61,0x74,0x74,0x65,0x72, - 0x6E,0x20,0x6C,0x61,0x79,0x6F,0x75,0x74,0x2C,0x20,0x68,0x65, - 0x78,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x69,0x6E,0x67,0x3A, - 0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32, - 0x41,0x49,0x66,0x20,0x79,0x6F,0x75,0x20,0x75,0x73,0x65,0x20, - 0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x73,0x20,0x74,0x68,0x61, - 0x74,0x20,0x61,0x72,0x65,0x20,0x6C,0x6F,0x6E,0x67,0x65,0x72, - 0x20,0x74,0x68,0x61,0x6E,0x20,0x39,0x39,0x20,0x6C,0x69,0x6E, - 0x65,0x73,0x2C,0x20,0x79,0x6F,0x75,0x20,0x73,0x68,0x6F,0x75, - 0x6C,0x64,0x20,0x75,0x73,0x65,0x45,0x68,0x65,0x78,0x20,0x63, - 0x6F,0x75,0x6E,0x74,0x69,0x6E,0x67,0x20,0x73,0x69,0x6E,0x63, - 0x65,0x20,0x74,0x68,0x65,0x72,0x65,0x20,0x61,0x72,0x65,0x20, - 0x6F,0x6E,0x6C,0x79,0x20,0x32,0x20,0x64,0x69,0x67,0x69,0x74, - 0x73,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x6C,0x69,0x6E, - 0x65,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x20,0x63,0x6F,0x6C, - 0x75,0x6D,0x6E,0x2E,0x00,0x12,0x3E,0x40,0x58,0x30,0x34,0x30, - 0x40,0x43,0x30,0x30,0x31,0x53,0x63,0x6F,0x70,0x65,0x73,0x3A, - 0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32, - 0x43,0x22,0x53,0x74,0x64,0x2E,0x22,0x20,0x28,0x73,0x74,0x61, - 0x6E,0x64,0x61,0x72,0x64,0x29,0x20,0x77,0x69,0x6C,0x6C,0x20, - 0x73,0x68,0x6F,0x77,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6D, - 0x70,0x6C,0x65,0x20,0x70,0x6F,0x69,0x6E,0x74,0x73,0x20,0x61, - 0x73,0x20,0x70,0x69,0x78,0x65,0x6C,0x73,0x20,0x28,0x6C,0x69, - 0x6B,0x65,0x20,0x46,0x54,0x32,0x29,0x2E,0x3D,0x22,0x4C,0x69, - 0x6E,0x65,0x64,0x22,0x20,0x77,0x69,0x6C,0x6C,0x20,0x64,0x72, - 0x61,0x77,0x20,0x69,0x6E,0x74,0x65,0x72,0x70,0x6F,0x6C,0x61, - 0x74,0x65,0x64,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x73,0x20, - 0x28,0x6C,0x69,0x6E,0x65,0x61,0x72,0x20,0x69,0x6E,0x74,0x65, - 0x72,0x70,0x6F,0x6C,0x61,0x74,0x69,0x6F,0x6E,0x2E,0x00,0x27, - 0x40,0x58,0x30,0x32,0x30,0x40,0x43,0x30,0x30,0x31,0x43,0x6F, - 0x6E,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x2C, - 0x20,0x4D,0x69,0x73,0x63,0x65,0x6C,0x6C,0x61,0x6E,0x65,0x6F, - 0x75,0x73,0x3A,0x01,0x3E,0x15,0x3E,0x40,0x58,0x30,0x34,0x30, - 0x40,0x43,0x30,0x30,0x31,0x56,0x53,0x79,0x6E,0x63,0x20,0x6F, - 0x66,0x66,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43, - 0x30,0x30,0x32,0x3F,0x54,0x65,0x6C,0x6C,0x73,0x20,0x74,0x68, - 0x65,0x20,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x20,0x74,0x6F, - 0x20,0x6E,0x6F,0x74,0x20,0x75,0x73,0x65,0x20,0x56,0x53,0x79, - 0x6E,0x63,0x20,0x66,0x6F,0x72,0x20,0x76,0x69,0x64,0x65,0x6F, - 0x2E,0x20,0x49,0x66,0x20,0x79,0x6F,0x75,0x72,0x20,0x6D,0x6F, - 0x6E,0x69,0x74,0x6F,0x72,0x27,0x73,0x40,0x72,0x65,0x66,0x72, - 0x65,0x73,0x68,0x20,0x72,0x61,0x74,0x65,0x20,0x69,0x73,0x20, - 0x6E,0x6F,0x74,0x20,0x36,0x30,0x48,0x7A,0x20,0x28,0x6F,0x72, - 0x20,0x35,0x39,0x48,0x7A,0x29,0x2C,0x20,0x74,0x68,0x65,0x6E, - 0x20,0x56,0x53,0x79,0x6E,0x63,0x20,0x69,0x73,0x20,0x61,0x6C, - 0x77,0x61,0x79,0x73,0x20,0x6F,0x66,0x66,0x20,0x66,0x6F,0x72, - 0x45,0x74,0x68,0x69,0x73,0x20,0x70,0x72,0x6F,0x67,0x72,0x61, - 0x6D,0x2E,0x20,0x4E,0x6F,0x74,0x20,0x68,0x61,0x76,0x69,0x6E, - 0x67,0x20,0x56,0x53,0x79,0x6E,0x63,0x20,0x77,0x69,0x6C,0x6C, - 0x20,0x72,0x65,0x73,0x75,0x6C,0x74,0x20,0x69,0x6E,0x20,0x6C, - 0x65,0x73,0x73,0x20,0x69,0x6E,0x70,0x75,0x74,0x2F,0x76,0x69, - 0x64,0x65,0x6F,0x20,0x64,0x65,0x6C,0x61,0x79,0x2C,0x1E,0x62, - 0x75,0x74,0x20,0x61,0x6C,0x73,0x6F,0x20,0x70,0x6F,0x74,0x65, - 0x6E,0x74,0x69,0x61,0x6C,0x20,0x73,0x74,0x75,0x74,0x74,0x65, - 0x72,0x69,0x6E,0x67,0x2E,0x00,0x15,0x3E,0x40,0x58,0x30,0x34, - 0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x74,0x72,0x65,0x74,0x63, - 0x68,0x65,0x64,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40, - 0x43,0x30,0x30,0x32,0x4A,0x4D,0x61,0x6B,0x65,0x73,0x20,0x66, - 0x75,0x6C,0x6C,0x73,0x63,0x72,0x65,0x65,0x6E,0x20,0x6D,0x6F, - 0x64,0x65,0x20,0x63,0x6F,0x6D,0x70,0x6C,0x65,0x74,0x65,0x6C, - 0x79,0x20,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x20,0x6F,0x75, - 0x74,0x20,0x74,0x68,0x65,0x20,0x69,0x6D,0x61,0x67,0x65,0x2E, - 0x20,0x54,0x68,0x69,0x73,0x20,0x63,0x61,0x6E,0x20,0x72,0x65, - 0x73,0x75,0x6C,0x74,0x20,0x69,0x6E,0x4E,0x61,0x6C,0x69,0x61, - 0x73,0x69,0x6E,0x67,0x20,0x28,0x75,0x6E,0x65,0x76,0x65,0x6E, - 0x20,0x70,0x69,0x78,0x65,0x6C,0x20,0x77,0x69,0x64,0x74,0x68, - 0x73,0x29,0x20,0x69,0x66,0x20,0x74,0x68,0x65,0x20,0x61,0x73, - 0x70,0x65,0x63,0x74,0x20,0x72,0x61,0x74,0x69,0x6F,0x20,0x6F, - 0x66,0x20,0x74,0x68,0x65,0x20,0x73,0x63,0x72,0x65,0x65,0x6E, - 0x20,0x69,0x73,0x20,0x6E,0x6F,0x74,0x20,0x31,0x36,0x3A,0x31, - 0x30,0x2E,0x52,0x54,0x68,0x65,0x20,0x22,0x50,0x69,0x78,0x65, - 0x6C,0x20,0x66,0x69,0x6C,0x74,0x65,0x72,0x22,0x20,0x73,0x65, - 0x74,0x74,0x69,0x6E,0x67,0x20,0x63,0x61,0x6E,0x20,0x68,0x65, - 0x6C,0x70,0x20,0x77,0x69,0x74,0x68,0x20,0x74,0x68,0x69,0x73, - 0x2C,0x20,0x62,0x75,0x74,0x20,0x69,0x74,0x20,0x6D,0x61,0x6B, - 0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x69,0x6D,0x61,0x67,0x65, - 0x20,0x6C,0x6F,0x6F,0x6B,0x20,0x62,0x6C,0x75,0x72,0x72,0x79, - 0x2E,0x01,0x20,0x18,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43, - 0x30,0x30,0x31,0x50,0x69,0x78,0x65,0x6C,0x20,0x66,0x69,0x6C, - 0x74,0x65,0x72,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40, - 0x43,0x30,0x30,0x32,0x52,0x41,0x70,0x70,0x6C,0x69,0x65,0x73, - 0x20,0x61,0x6E,0x20,0x61,0x6E,0x74,0x69,0x2D,0x61,0x6C,0x69, - 0x61,0x73,0x69,0x6E,0x67,0x20,0x73,0x75,0x62,0x70,0x69,0x78, - 0x65,0x6C,0x20,0x66,0x69,0x6C,0x74,0x65,0x72,0x20,0x74,0x68, - 0x61,0x74,0x20,0x69,0x73,0x20,0x75,0x73,0x65,0x64,0x20,0x77, - 0x68,0x65,0x6E,0x20,0x74,0x68,0x65,0x20,0x77,0x69,0x6E,0x64, - 0x6F,0x77,0x20,0x69,0x73,0x20,0x75,0x70,0x73,0x63,0x61,0x6C, - 0x65,0x64,0x2E,0x3B,0x50,0x6C,0x65,0x61,0x73,0x65,0x20,0x6B, - 0x65,0x65,0x70,0x20,0x69,0x6E,0x20,0x6D,0x69,0x6E,0x64,0x20, - 0x74,0x68,0x61,0x74,0x20,0x74,0x68,0x69,0x73,0x20,0x77,0x69, - 0x6C,0x6C,0x20,0x6D,0x61,0x6B,0x65,0x20,0x70,0x69,0x78,0x65, - 0x6C,0x73,0x20,0x6C,0x6F,0x6F,0x6B,0x20,0x62,0x6C,0x75,0x72, - 0x72,0x79,0x2E,0x00,0x23,0x40,0x58,0x30,0x32,0x30,0x40,0x43, - 0x30,0x30,0x31,0x41,0x64,0x76,0x61,0x6E,0x63,0x65,0x64,0x20, - 0x65,0x64,0x69,0x74,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F, - 0x6E,0x73,0x3A,0x20,0x01,0x3E,0x1E,0x3E,0x40,0x58,0x30,0x34, - 0x30,0x40,0x43,0x30,0x30,0x31,0x43,0x6F,0x70,0x79,0x2F,0x50, - 0x61,0x73,0x74,0x65,0x20,0x6D,0x61,0x73,0x6B,0x69,0x6E,0x67, - 0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30, - 0x32,0x37,0x54,0x68,0x65,0x20,0x6D,0x61,0x73,0x6B,0x69,0x6E, - 0x67,0x20,0x69,0x73,0x20,0x75,0x73,0x65,0x64,0x20,0x66,0x6F, - 0x72,0x20,0x63,0x6F,0x70,0x79,0x69,0x6E,0x67,0x2F,0x70,0x61, - 0x73,0x74,0x69,0x6E,0x67,0x20,0x6F,0x6E,0x6C,0x79,0x20,0x70, - 0x61,0x72,0x74,0x73,0x20,0x6F,0x66,0x20,0x61,0x46,0x22,0x6E, - 0x6F,0x74,0x65,0x2D,0x63,0x65,0x6C,0x6C,0x22,0x2E,0x20,0x54, - 0x68,0x65,0x20,0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6E,0x74, - 0x20,0x70,0x61,0x72,0x74,0x73,0x20,0x6F,0x66,0x20,0x61,0x20, - 0x22,0x6E,0x6F,0x74,0x65,0x2D,0x63,0x65,0x6C,0x6C,0x22,0x20, - 0x69,0x73,0x20,0x4E,0x6F,0x74,0x65,0x2C,0x20,0x49,0x6E,0x73, - 0x74,0x72,0x2E,0x20,0x6E,0x72,0x2E,0x2C,0x20,0x56,0x6F,0x6C, - 0x75,0x6D,0x65,0x2C,0x20,0x45,0x66,0x66,0x65,0x63,0x74,0x20, - 0x6E,0x72,0x20,0x26,0x20,0x45,0x66,0x66,0x65,0x63,0x74,0x20, - 0x64,0x61,0x74,0x61,0x2E,0x34,0x3E,0x41,0x73,0x20,0x79,0x6F, - 0x75,0x20,0x63,0x61,0x6E,0x20,0x73,0x65,0x65,0x20,0x69,0x6E, - 0x20,0x74,0x68,0x65,0x20,0x77,0x69,0x6E,0x64,0x6F,0x77,0x20, - 0x74,0x68,0x65,0x72,0x65,0x20,0x61,0x72,0x65,0x20,0x33,0x20, - 0x63,0x6F,0x6C,0x75,0x6D,0x6E,0x73,0x20,0x6F,0x66,0x3D,0x22, - 0x65,0x6E,0x61,0x62,0x6C,0x65,0x2F,0x64,0x69,0x73,0x61,0x62, - 0x6C,0x65,0x20,0x62,0x75,0x74,0x74,0x6F,0x6E,0x73,0x22,0x20, - 0x77,0x68,0x69,0x63,0x68,0x20,0x68,0x61,0x73,0x20,0x74,0x68, - 0x65,0x20,0x6C,0x65,0x74,0x74,0x65,0x72,0x73,0x20,0x43,0x2C, - 0x50,0x20,0x26,0x20,0x54,0x20,0x61,0x62,0x6F,0x76,0x65,0x2E, - 0x45,0x3E,0x43,0x20,0x6D,0x65,0x61,0x6E,0x73,0x20,0x63,0x6F, - 0x70,0x79,0x2C,0x20,0x69,0x74,0x20,0x63,0x6F,0x6E,0x74,0x72, - 0x6F,0x6C,0x73,0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x70,0x61, - 0x72,0x74,0x73,0x20,0x74,0x68,0x61,0x74,0x20,0x67,0x6F,0x65, - 0x73,0x20,0x69,0x6E,0x74,0x6F,0x20,0x74,0x68,0x65,0x20,0x63, - 0x6F,0x70,0x79,0x62,0x75,0x66,0x66,0x65,0x72,0x2E,0x3E,0x3E, - 0x50,0x20,0x6D,0x65,0x61,0x6E,0x73,0x20,0x70,0x61,0x73,0x74, - 0x65,0x20,0x61,0x6E,0x64,0x20,0x63,0x6F,0x6E,0x74,0x72,0x6F, - 0x6C,0x73,0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x70,0x61,0x72, - 0x74,0x73,0x20,0x74,0x68,0x61,0x74,0x20,0x67,0x6F,0x65,0x73, - 0x20,0x6F,0x75,0x74,0x20,0x66,0x72,0x6F,0x6D,0x20,0x74,0x68, - 0x65,0x0B,0x63,0x6F,0x70,0x79,0x62,0x75,0x66,0x66,0x65,0x72, - 0x2E,0x45,0x3E,0x54,0x20,0x6D,0x65,0x61,0x6E,0x73,0x20,0x74, - 0x72,0x61,0x6E,0x73,0x70,0x61,0x72,0x65,0x6E,0x63,0x79,0x2E, - 0x20,0x49,0x66,0x20,0x69,0x74,0x27,0x73,0x20,0x65,0x6E,0x61, - 0x62,0x6C,0x65,0x64,0x2C,0x20,0x74,0x68,0x65,0x20,0x70,0x61, - 0x73,0x74,0x69,0x6E,0x67,0x20,0x64,0x6F,0x65,0x73,0x6E,0x27, - 0x74,0x20,0x6F,0x76,0x65,0x72,0x77,0x72,0x69,0x74,0x65,0x3D, - 0x64,0x61,0x74,0x61,0x20,0x77,0x69,0x74,0x68,0x20,0x6E,0x69, - 0x6C,0x2D,0x69,0x6E,0x66,0x6F,0x72,0x6D,0x61,0x74,0x69,0x6F, - 0x6E,0x2C,0x20,0x6F,0x6E,0x6C,0x79,0x20,0x77,0x69,0x74,0x68, - 0x20,0x61,0x20,0x6E,0x6F,0x74,0x65,0x20,0x6F,0x72,0x20,0x61, - 0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x20,0x3C,0x3E,0x20,0x30, - 0x2E,0x01,0x3E,0x40,0x3E,0x54,0x68,0x65,0x20,0x63,0x75,0x74, - 0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x73,0x20,0x77, - 0x6F,0x72,0x6B,0x73,0x20,0x6C,0x69,0x6B,0x65,0x20,0x70,0x61, - 0x73,0x74,0x69,0x6E,0x67,0x20,0x77,0x69,0x74,0x68,0x20,0x7A, - 0x65,0x72,0x6F,0x2D,0x64,0x61,0x74,0x61,0x2E,0x20,0x54,0x68, - 0x69,0x73,0x20,0x6D,0x65,0x61,0x6E,0x73,0x3B,0x74,0x68,0x61, - 0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x74,0x74,0x69,0x6E, - 0x67,0x20,0x69,0x73,0x20,0x63,0x6F,0x6E,0x74,0x72,0x6F,0x6C, - 0x6C,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x50,0x2D,0x63, - 0x6F,0x6C,0x75,0x6D,0x6E,0x20,0x28,0x6F,0x72,0x20,0x54,0x2D, - 0x63,0x6F,0x6C,0x75,0x6D,0x6E,0x29,0x2E,0x3C,0x3E,0x57,0x68, - 0x65,0x6E,0x20,0x79,0x6F,0x75,0x20,0x63,0x6F,0x70,0x79,0x20, - 0x64,0x61,0x74,0x61,0x20,0x77,0x69,0x74,0x68,0x20,0x6D,0x61, - 0x73,0x6B,0x69,0x6E,0x67,0x2C,0x20,0x74,0x68,0x65,0x20,0x64, - 0x69,0x73,0x61,0x62,0x6C,0x65,0x64,0x20,0x70,0x61,0x72,0x74, - 0x73,0x20,0x61,0x72,0x65,0x20,0x6E,0x6F,0x74,0x43,0x63,0x6C, - 0x65,0x61,0x72,0x65,0x64,0x20,0x69,0x6E,0x20,0x74,0x68,0x65, - 0x20,0x63,0x6F,0x70,0x79,0x62,0x75,0x66,0x66,0x65,0x72,0x2E, - 0x20,0x28,0x4D,0x61,0x6B,0x69,0x6E,0x67,0x20,0x69,0x74,0x20, - 0x70,0x6F,0x73,0x73,0x69,0x62,0x6C,0x65,0x20,0x74,0x6F,0x20, - 0x63,0x6F,0x6C,0x6C,0x65,0x63,0x74,0x20,0x64,0x61,0x74,0x61, - 0x20,0x66,0x72,0x6F,0x6D,0x27,0x73,0x65,0x76,0x65,0x72,0x61, - 0x6C,0x20,0x6C,0x6F,0x63,0x61,0x74,0x69,0x6F,0x6E,0x73,0x20, - 0x69,0x6E,0x74,0x6F,0x20,0x74,0x68,0x65,0x20,0x63,0x6F,0x70, - 0x79,0x62,0x75,0x66,0x66,0x65,0x72,0x2E,0x29,0x00,0x03,0x45, - 0x4E,0x44,0x4C,0x3B,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, - 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, - 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, - 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, - 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, - 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, - 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x4C,0x3B,0x2A,0x2A,0x2A, - 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, - 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, - 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, - 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, - 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, - 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, - 0x0E,0x40,0x4C,0x50,0x72,0x6F,0x62,0x6C,0x65,0x6D,0x73,0x2F, - 0x46,0x41,0x51,0x06,0x3E,0x40,0x58,0x30,0x32,0x30,0x2A,0x3E, - 0x40,0x43,0x30,0x30,0x31,0x51,0x3A,0x20,0x48,0x6F,0x77,0x20, - 0x63,0x61,0x6E,0x20,0x49,0x20,0x74,0x6F,0x67,0x67,0x6C,0x65, + 0x20,0x22,0x53,0x69,0x6E,0x63,0x22,0x20,0x69,0x73,0x20,0x74, + 0x68,0x65,0x20,0x72,0x65,0x63,0x6F,0x6D,0x6D,0x65,0x6E,0x64, + 0x65,0x64,0x50,0x73,0x65,0x74,0x74,0x69,0x6E,0x67,0x20,0x66, + 0x6F,0x72,0x20,0x74,0x68,0x65,0x20,0x62,0x65,0x73,0x74,0x20, + 0x61,0x75,0x64,0x69,0x6F,0x20,0x71,0x75,0x61,0x6C,0x69,0x74, + 0x79,0x2C,0x20,0x61,0x6C,0x74,0x68,0x6F,0x75,0x67,0x68,0x20, + 0x69,0x74,0x20,0x6D,0x61,0x79,0x20,0x73,0x6F,0x6D,0x65,0x74, + 0x69,0x6D,0x65,0x73,0x20,0x73,0x6F,0x75,0x6E,0x64,0x20,0x74, + 0x6F,0x6F,0x20,0x66,0x69,0x6C,0x74,0x65,0x72,0x65,0x64,0x2B, + 0x61,0x6E,0x64,0x20,0x74,0x69,0x6D,0x62,0x72,0x65,0x2D,0x63, + 0x68,0x61,0x6E,0x67,0x69,0x6E,0x67,0x20,0x6F,0x6E,0x20,0x6C, + 0x6F,0x77,0x2D,0x71,0x75,0x61,0x6C,0x69,0x74,0x79,0x20,0x73, + 0x61,0x6D,0x70,0x6C,0x65,0x73,0x2E,0x00,0x1A,0x3E,0x40,0x58, + 0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x56,0x6F,0x6C,0x75, + 0x6D,0x65,0x20,0x72,0x61,0x6D,0x70,0x69,0x6E,0x67,0x3A,0x0B, + 0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x3B, + 0x45,0x6E,0x61,0x62,0x6C,0x65,0x73,0x20,0x74,0x68,0x65,0x20, + 0x61,0x6E,0x74,0x69,0x2D,0x63,0x6C,0x69,0x63,0x6B,0x20,0x73, + 0x79,0x73,0x74,0x65,0x6D,0x20,0x69,0x6E,0x20,0x74,0x68,0x65, + 0x20,0x61,0x75,0x64,0x69,0x6F,0x20,0x6D,0x69,0x78,0x65,0x72, + 0x20,0x28,0x46,0x54,0x32,0x2E,0x30,0x38,0x2B,0x29,0x2E,0x3B, + 0x50,0x6C,0x65,0x61,0x73,0x65,0x20,0x6E,0x6F,0x74,0x65,0x20, + 0x74,0x68,0x61,0x74,0x20,0x6F,0x72,0x69,0x67,0x69,0x6E,0x61, + 0x6C,0x20,0x46,0x54,0x32,0x20,0x63,0x61,0x6E,0x27,0x74,0x20, + 0x6C,0x6F,0x61,0x64,0x20,0x74,0x68,0x69,0x73,0x20,0x63,0x6F, + 0x6E,0x66,0x69,0x67,0x20,0x65,0x6E,0x74,0x72,0x79,0x2C,0x0B, + 0x63,0x6C,0x6F,0x6E,0x65,0x20,0x6F,0x6E,0x6C,0x79,0x2E,0x00, + 0x19,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31, + 0x41,0x6D,0x70,0x6C,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6F, + 0x6E,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30, + 0x30,0x32,0x46,0x41,0x6D,0x70,0x6C,0x69,0x66,0x69,0x65,0x73, + 0x20,0x74,0x68,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20, + 0x77,0x68,0x65,0x6E,0x20,0x6D,0x69,0x78,0x69,0x6E,0x67,0x2E, + 0x20,0x49,0x66,0x20,0x79,0x6F,0x75,0x20,0x73,0x65,0x74,0x20, + 0x74,0x68,0x69,0x73,0x20,0x6F,0x6E,0x65,0x20,0x74,0x6F,0x6F, + 0x20,0x68,0x69,0x67,0x68,0x2C,0x20,0x79,0x6F,0x75,0x27,0x6C, + 0x6C,0x3A,0x67,0x65,0x74,0x20,0x64,0x69,0x73,0x74,0x6F,0x72, + 0x74,0x69,0x6F,0x6E,0x2E,0x20,0x33,0x32,0x58,0x20,0x65,0x71, + 0x75,0x61,0x6C,0x73,0x20,0x66,0x75,0x6C,0x6C,0x20,0x61,0x6D, + 0x70,0x6C,0x69,0x74,0x75,0x64,0x65,0x20,0x66,0x6F,0x72,0x20, + 0x6F,0x6E,0x65,0x20,0x63,0x68,0x61,0x6E,0x6E,0x65,0x6C,0x2E, + 0x00,0x1C,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30, + 0x31,0x46,0x72,0x65,0x71,0x75,0x65,0x6E,0x63,0x79,0x20,0x73, + 0x6C,0x69,0x64,0x65,0x73,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36, + 0x30,0x40,0x43,0x30,0x30,0x32,0x39,0x4C,0x69,0x6E,0x65,0x61, + 0x72,0x20,0x6D,0x6F,0x64,0x65,0x20,0x6D,0x61,0x6B,0x65,0x73, + 0x20,0x61,0x6C,0x6C,0x20,0x70,0x69,0x74,0x63,0x68,0x20,0x73, + 0x6C,0x69,0x64,0x65,0x73,0x20,0x72,0x75,0x6E,0x20,0x69,0x6E, + 0x20,0x63,0x6F,0x6E,0x73,0x74,0x61,0x6E,0x74,0x20,0x73,0x70, + 0x65,0x65,0x64,0x2C,0x38,0x69,0x6E,0x64,0x65,0x70,0x65,0x6E, + 0x64,0x65,0x6E,0x74,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20, + 0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x66,0x72,0x65,0x71, + 0x75,0x65,0x6E,0x63,0x79,0x2E,0x20,0x49,0x66,0x20,0x79,0x6F, + 0x75,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x74,0x68,0x69, + 0x73,0x40,0x6F,0x6E,0x65,0x2C,0x20,0x6F,0x6E,0x20,0x61,0x20, + 0x66,0x69,0x6E,0x69,0x73,0x68,0x65,0x64,0x20,0x73,0x6F,0x6E, + 0x67,0x2C,0x20,0x69,0x74,0x20,0x6D,0x69,0x67,0x68,0x74,0x20, + 0x73,0x6F,0x75,0x6E,0x64,0x20,0x73,0x74,0x72,0x61,0x6E,0x67, + 0x65,0x20,0x69,0x66,0x20,0x74,0x68,0x65,0x20,0x73,0x6F,0x6E, + 0x67,0x20,0x75,0x73,0x65,0x73,0x0D,0x70,0x6F,0x72,0x74,0x61, + 0x6D,0x65,0x6E,0x74,0x6F,0x65,0x73,0x2E,0x00,0x20,0x40,0x58, + 0x30,0x32,0x30,0x40,0x43,0x30,0x30,0x31,0x43,0x6F,0x6E,0x66, + 0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x2C,0x20,0x4C, + 0x61,0x79,0x6F,0x75,0x74,0x3A,0x01,0x3E,0x29,0x3E,0x40,0x58, + 0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x50,0x61,0x74,0x74, + 0x65,0x72,0x6E,0x20,0x6C,0x61,0x79,0x6F,0x75,0x74,0x2C,0x20, + 0x68,0x65,0x78,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x69,0x6E, + 0x67,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30, + 0x30,0x32,0x41,0x49,0x66,0x20,0x79,0x6F,0x75,0x20,0x75,0x73, + 0x65,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x73,0x20,0x74, + 0x68,0x61,0x74,0x20,0x61,0x72,0x65,0x20,0x6C,0x6F,0x6E,0x67, + 0x65,0x72,0x20,0x74,0x68,0x61,0x6E,0x20,0x39,0x39,0x20,0x6C, + 0x69,0x6E,0x65,0x73,0x2C,0x20,0x79,0x6F,0x75,0x20,0x73,0x68, + 0x6F,0x75,0x6C,0x64,0x20,0x75,0x73,0x65,0x45,0x68,0x65,0x78, + 0x20,0x63,0x6F,0x75,0x6E,0x74,0x69,0x6E,0x67,0x20,0x73,0x69, + 0x6E,0x63,0x65,0x20,0x74,0x68,0x65,0x72,0x65,0x20,0x61,0x72, + 0x65,0x20,0x6F,0x6E,0x6C,0x79,0x20,0x32,0x20,0x64,0x69,0x67, + 0x69,0x74,0x73,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x6C, + 0x69,0x6E,0x65,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x20,0x63, + 0x6F,0x6C,0x75,0x6D,0x6E,0x2E,0x00,0x12,0x3E,0x40,0x58,0x30, + 0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x63,0x6F,0x70,0x65, + 0x73,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30, + 0x30,0x32,0x43,0x22,0x53,0x74,0x64,0x2E,0x22,0x20,0x28,0x73, + 0x74,0x61,0x6E,0x64,0x61,0x72,0x64,0x29,0x20,0x77,0x69,0x6C, + 0x6C,0x20,0x73,0x68,0x6F,0x77,0x20,0x74,0x68,0x65,0x20,0x73, + 0x61,0x6D,0x70,0x6C,0x65,0x20,0x70,0x6F,0x69,0x6E,0x74,0x73, + 0x20,0x61,0x73,0x20,0x70,0x69,0x78,0x65,0x6C,0x73,0x20,0x28, + 0x6C,0x69,0x6B,0x65,0x20,0x46,0x54,0x32,0x29,0x2E,0x3D,0x22, + 0x4C,0x69,0x6E,0x65,0x64,0x22,0x20,0x77,0x69,0x6C,0x6C,0x20, + 0x64,0x72,0x61,0x77,0x20,0x69,0x6E,0x74,0x65,0x72,0x70,0x6F, + 0x6C,0x61,0x74,0x65,0x64,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65, + 0x73,0x20,0x28,0x6C,0x69,0x6E,0x65,0x61,0x72,0x20,0x69,0x6E, + 0x74,0x65,0x72,0x70,0x6F,0x6C,0x61,0x74,0x69,0x6F,0x6E,0x2E, + 0x00,0x27,0x40,0x58,0x30,0x32,0x30,0x40,0x43,0x30,0x30,0x31, + 0x43,0x6F,0x6E,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6F, + 0x6E,0x2C,0x20,0x4D,0x69,0x73,0x63,0x65,0x6C,0x6C,0x61,0x6E, + 0x65,0x6F,0x75,0x73,0x3A,0x01,0x3E,0x15,0x3E,0x40,0x58,0x30, + 0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x56,0x53,0x79,0x6E,0x63, + 0x20,0x6F,0x66,0x66,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30, + 0x40,0x43,0x30,0x30,0x32,0x3F,0x54,0x65,0x6C,0x6C,0x73,0x20, + 0x74,0x68,0x65,0x20,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x20, + 0x74,0x6F,0x20,0x6E,0x6F,0x74,0x20,0x75,0x73,0x65,0x20,0x56, + 0x53,0x79,0x6E,0x63,0x20,0x66,0x6F,0x72,0x20,0x76,0x69,0x64, + 0x65,0x6F,0x2E,0x20,0x49,0x66,0x20,0x79,0x6F,0x75,0x72,0x20, + 0x6D,0x6F,0x6E,0x69,0x74,0x6F,0x72,0x27,0x73,0x40,0x72,0x65, + 0x66,0x72,0x65,0x73,0x68,0x20,0x72,0x61,0x74,0x65,0x20,0x69, + 0x73,0x20,0x6E,0x6F,0x74,0x20,0x36,0x30,0x48,0x7A,0x20,0x28, + 0x6F,0x72,0x20,0x35,0x39,0x48,0x7A,0x29,0x2C,0x20,0x74,0x68, + 0x65,0x6E,0x20,0x56,0x53,0x79,0x6E,0x63,0x20,0x69,0x73,0x20, + 0x61,0x6C,0x77,0x61,0x79,0x73,0x20,0x6F,0x66,0x66,0x20,0x66, + 0x6F,0x72,0x45,0x74,0x68,0x69,0x73,0x20,0x70,0x72,0x6F,0x67, + 0x72,0x61,0x6D,0x2E,0x20,0x4E,0x6F,0x74,0x20,0x68,0x61,0x76, + 0x69,0x6E,0x67,0x20,0x56,0x53,0x79,0x6E,0x63,0x20,0x77,0x69, + 0x6C,0x6C,0x20,0x72,0x65,0x73,0x75,0x6C,0x74,0x20,0x69,0x6E, + 0x20,0x6C,0x65,0x73,0x73,0x20,0x69,0x6E,0x70,0x75,0x74,0x2F, + 0x76,0x69,0x64,0x65,0x6F,0x20,0x64,0x65,0x6C,0x61,0x79,0x2C, + 0x1E,0x62,0x75,0x74,0x20,0x61,0x6C,0x73,0x6F,0x20,0x70,0x6F, + 0x74,0x65,0x6E,0x74,0x69,0x61,0x6C,0x20,0x73,0x74,0x75,0x74, + 0x74,0x65,0x72,0x69,0x6E,0x67,0x2E,0x00,0x15,0x3E,0x40,0x58, + 0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x74,0x72,0x65, + 0x74,0x63,0x68,0x65,0x64,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36, + 0x30,0x40,0x43,0x30,0x30,0x32,0x4A,0x4D,0x61,0x6B,0x65,0x73, 0x20,0x66,0x75,0x6C,0x6C,0x73,0x63,0x72,0x65,0x65,0x6E,0x20, - 0x6D,0x6F,0x64,0x65,0x3F,0x37,0x3E,0x40,0x43,0x30,0x30,0x32, - 0x41,0x3A,0x20,0x50,0x72,0x65,0x73,0x73,0x20,0x41,0x6C,0x74, - 0x2B,0x45,0x6E,0x74,0x65,0x72,0x20,0x28,0x43,0x74,0x72,0x6C, - 0x2B,0x43,0x6D,0x64,0x2B,0x46,0x20,0x61,0x6C,0x73,0x6F,0x20, - 0x77,0x6F,0x72,0x6B,0x73,0x20,0x6F,0x6E,0x20,0x4D,0x61,0x63, - 0x29,0x06,0x3E,0x40,0x58,0x30,0x32,0x30,0x45,0x3E,0x40,0x43, - 0x30,0x30,0x31,0x51,0x3A,0x20,0x48,0x6F,0x77,0x20,0x63,0x61, - 0x6E,0x20,0x49,0x20,0x6D,0x61,0x6B,0x65,0x20,0x66,0x75,0x6C, - 0x6C,0x73,0x63,0x72,0x65,0x65,0x6E,0x20,0x6D,0x6F,0x64,0x65, - 0x20,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x20,0x6F,0x75,0x74, - 0x20,0x74,0x68,0x65,0x20,0x77,0x68,0x6F,0x6C,0x65,0x20,0x73, - 0x63,0x72,0x65,0x65,0x6E,0x3F,0x37,0x3E,0x40,0x43,0x30,0x30, - 0x32,0x41,0x3A,0x20,0x45,0x6E,0x61,0x62,0x6C,0x65,0x20,0x22, - 0x53,0x74,0x72,0x65,0x74,0x63,0x68,0x65,0x64,0x22,0x20,0x69, - 0x6E,0x20,0x43,0x6F,0x6E,0x66,0x69,0x67,0x20,0x2D,0x3E,0x20, - 0x4D,0x69,0x73,0x63,0x65,0x6C,0x6C,0x61,0x6E,0x65,0x6F,0x75, - 0x73,0x2E,0x4E,0x3E,0x40,0x58,0x30,0x33,0x35,0x54,0x68,0x69, - 0x73,0x20,0x77,0x69,0x6C,0x6C,0x20,0x72,0x65,0x73,0x75,0x6C, - 0x74,0x20,0x69,0x6E,0x20,0x75,0x6E,0x65,0x76,0x65,0x6E,0x20, - 0x70,0x69,0x78,0x65,0x6C,0x20,0x77,0x69,0x64,0x74,0x68,0x73, - 0x2E,0x20,0x49,0x66,0x20,0x79,0x6F,0x75,0x20,0x77,0x61,0x6E, - 0x74,0x20,0x74,0x6F,0x20,0x66,0x69,0x78,0x20,0x74,0x68,0x69, - 0x73,0x2C,0x20,0x65,0x6E,0x61,0x62,0x6C,0x65,0x3D,0x22,0x50, - 0x69,0x78,0x65,0x6C,0x20,0x66,0x69,0x6C,0x74,0x65,0x72,0x22, - 0x20,0x28,0x74,0x68,0x6F,0x75,0x67,0x68,0x20,0x74,0x68,0x69, - 0x73,0x20,0x77,0x69,0x6C,0x6C,0x20,0x6D,0x61,0x6B,0x65,0x20, - 0x74,0x68,0x65,0x20,0x69,0x6D,0x61,0x67,0x65,0x20,0x6C,0x6F, - 0x6F,0x6B,0x20,0x62,0x6C,0x75,0x72,0x72,0x79,0x29,0x2E,0x06, - 0x3E,0x40,0x58,0x30,0x32,0x30,0x27,0x3E,0x40,0x43,0x30,0x30, - 0x31,0x51,0x3A,0x20,0x49,0x20,0x63,0x61,0x6E,0x27,0x74,0x20, - 0x75,0x73,0x65,0x20,0x41,0x6C,0x74,0x2B,0x46,0x34,0x20,0x61, - 0x6E,0x64,0x20,0x41,0x6C,0x74,0x2B,0x46,0x35,0x21,0x4E,0x3E, - 0x40,0x43,0x30,0x30,0x32,0x41,0x3A,0x20,0x57,0x69,0x6E,0x64, - 0x6F,0x77,0x73,0x3A,0x20,0x49,0x66,0x20,0x79,0x6F,0x75,0x20, - 0x68,0x61,0x76,0x65,0x20,0x47,0x65,0x46,0x6F,0x72,0x63,0x65, - 0x20,0x45,0x78,0x70,0x65,0x72,0x69,0x65,0x6E,0x63,0x65,0x20, - 0x69,0x6E,0x73,0x74,0x61,0x6C,0x6C,0x65,0x64,0x2C,0x20,0x79, - 0x6F,0x75,0x20,0x6E,0x65,0x65,0x64,0x20,0x74,0x6F,0x20,0x63, - 0x68,0x61,0x6E,0x67,0x65,0x2B,0x3E,0x40,0x58,0x30,0x33,0x35, - 0x74,0x68,0x65,0x20,0x6B,0x65,0x79,0x62,0x69,0x6E,0x64,0x69, - 0x6E,0x67,0x73,0x20,0x69,0x6E,0x20,0x69,0x74,0x73,0x20,0x73, - 0x65,0x74,0x74,0x69,0x6E,0x67,0x73,0x20,0x70,0x61,0x67,0x65, - 0x2E,0x57,0x3E,0x6D,0x61,0x63,0x4F,0x53,0x2F,0x4F,0x53,0x20, - 0x58,0x3A,0x20,0x43,0x68,0x61,0x6E,0x67,0x65,0x20,0x41,0x6C, - 0x74,0x2B,0x46,0x34,0x2F,0x41,0x6C,0x74,0x2B,0x46,0x35,0x20, - 0x6B,0x65,0x79,0x73,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20, - 0x4F,0x53,0x20,0x74,0x6F,0x20,0x73,0x6F,0x6D,0x65,0x74,0x68, - 0x69,0x6E,0x67,0x20,0x65,0x6C,0x73,0x65,0x2E,0x20,0x41,0x6C, - 0x73,0x6F,0x20,0x66,0x6F,0x72,0x20,0x47,0x4E,0x55,0x2F,0x4C, - 0x69,0x6E,0x75,0x78,0x2E,0x06,0x3E,0x40,0x58,0x30,0x32,0x30, - 0x2B,0x3E,0x40,0x43,0x30,0x30,0x31,0x51,0x3A,0x20,0x54,0x68, - 0x65,0x20,0x6D,0x6F,0x75,0x73,0x65,0x20,0x63,0x75,0x72,0x73, - 0x6F,0x72,0x20,0x69,0x73,0x20,0x64,0x65,0x6C,0x61,0x79,0x65, - 0x64,0x2F,0x6C,0x61,0x67,0x67,0x79,0x21,0x44,0x3E,0x40,0x43, - 0x30,0x30,0x32,0x41,0x3A,0x20,0x4D,0x61,0x6B,0x65,0x20,0x73, - 0x75,0x72,0x65,0x20,0x22,0x53,0x6F,0x66,0x74,0x77,0x61,0x72, - 0x65,0x20,0x6D,0x6F,0x75,0x73,0x65,0x22,0x20,0x69,0x73,0x20, - 0x64,0x69,0x73,0x61,0x62,0x6C,0x65,0x64,0x20,0x69,0x6E,0x20, - 0x43,0x6F,0x6E,0x66,0x69,0x67,0x20,0x2D,0x3E,0x20,0x4C,0x61, - 0x79,0x6F,0x75,0x74,0x2E,0x4B,0x3E,0x40,0x58,0x30,0x33,0x35, - 0x41,0x6C,0x74,0x65,0x72,0x6E,0x61,0x74,0x69,0x76,0x65,0x6C, - 0x79,0x2C,0x20,0x79,0x6F,0x75,0x20,0x63,0x61,0x6E,0x20,0x65, - 0x6E,0x61,0x62,0x6C,0x65,0x20,0x22,0x56,0x53,0x79,0x6E,0x63, - 0x20,0x6F,0x66,0x66,0x22,0x20,0x69,0x6E,0x20,0x43,0x6F,0x6E, - 0x66,0x69,0x67,0x20,0x2D,0x3E,0x20,0x4D,0x69,0x73,0x63,0x65, - 0x6C,0x6C,0x61,0x6E,0x65,0x6F,0x75,0x73,0x2E,0x46,0x3E,0x54, - 0x68,0x69,0x73,0x20,0x68,0x6F,0x77,0x65,0x76,0x65,0x72,0x2C, - 0x20,0x77,0x69,0x6C,0x6C,0x20,0x69,0x6E,0x74,0x72,0x6F,0x64, - 0x75,0x63,0x65,0x20,0x73,0x74,0x75,0x74,0x74,0x65,0x72,0x69, - 0x6E,0x67,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x74, - 0x68,0x65,0x20,0x72,0x65,0x6E,0x64,0x65,0x72,0x69,0x6E,0x67, - 0x20,0x72,0x61,0x74,0x65,0x20,0x69,0x73,0x22,0x3E,0x6E,0x6F, - 0x74,0x20,0x65,0x78,0x61,0x63,0x74,0x20,0x74,0x6F,0x20,0x79, - 0x6F,0x75,0x72,0x20,0x6D,0x6F,0x6E,0x69,0x74,0x6F,0x72,0x27, - 0x73,0x20,0x72,0x61,0x74,0x65,0x2E,0x06,0x3E,0x40,0x58,0x30, - 0x32,0x30,0x33,0x3E,0x40,0x43,0x30,0x30,0x31,0x51,0x3A,0x20, - 0x57,0x69,0x6C,0x6C,0x20,0x79,0x6F,0x75,0x20,0x69,0x6D,0x70, - 0x6C,0x65,0x6D,0x65,0x6E,0x74,0x20,0x4D,0x49,0x44,0x49,0x20, - 0x6F,0x75,0x74,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E, - 0x61,0x6C,0x69,0x74,0x79,0x3F,0x4D,0x3E,0x40,0x43,0x30,0x30, - 0x32,0x41,0x3A,0x20,0x4E,0x6F,0x2C,0x20,0x73,0x6F,0x72,0x72, - 0x79,0x2E,0x20,0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x76, - 0x65,0x72,0x79,0x20,0x64,0x69,0x66,0x66,0x69,0x63,0x75,0x6C, - 0x74,0x20,0x74,0x6F,0x20,0x69,0x6D,0x70,0x6C,0x65,0x6D,0x65, - 0x6E,0x74,0x20,0x63,0x6F,0x72,0x72,0x65,0x63,0x74,0x6C,0x79, - 0x20,0x77,0x68,0x65,0x6E,0x20,0x68,0x61,0x76,0x69,0x6E,0x67, - 0x3C,0x3E,0x40,0x58,0x30,0x33,0x35,0x68,0x69,0x67,0x68,0x65, - 0x72,0x20,0x61,0x75,0x64,0x69,0x6F,0x20,0x62,0x75,0x66,0x66, - 0x65,0x72,0x20,0x73,0x69,0x7A,0x65,0x73,0x20,0x28,0x62,0x75, - 0x66,0x66,0x65,0x72,0x65,0x64,0x20,0x72,0x65,0x70,0x6C,0x61, - 0x79,0x65,0x72,0x20,0x74,0x69,0x63,0x6B,0x73,0x29,0x2E,0x2E, - 0x2E,0x06,0x3E,0x40,0x58,0x30,0x32,0x30,0x30,0x3E,0x40,0x43, - 0x30,0x30,0x31,0x51,0x3A,0x20,0x57,0x68,0x65,0x72,0x65,0x20, - 0x69,0x73,0x20,0x74,0x68,0x65,0x20,0x63,0x6F,0x6E,0x66,0x69, - 0x67,0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x20,0x66,0x69,0x6C, - 0x65,0x20,0x73,0x74,0x6F,0x72,0x65,0x64,0x3F,0x3F,0x3E,0x40, - 0x43,0x30,0x30,0x32,0x41,0x3A,0x20,0x57,0x69,0x6E,0x64,0x6F, - 0x77,0x73,0x3A,0x20,0x5C,0x55,0x73,0x65,0x72,0x73,0x5C,0x55, - 0x53,0x45,0x52,0x5C,0x41,0x70,0x70,0x44,0x61,0x74,0x61,0x5C, - 0x52,0x6F,0x61,0x6D,0x69,0x6E,0x67,0x5C,0x46,0x54,0x32,0x20, - 0x63,0x6C,0x6F,0x6E,0x65,0x5C,0x46,0x54,0x32,0x2E,0x43,0x46, - 0x47,0x45,0x3E,0x40,0x58,0x30,0x33,0x35,0x4F,0x53,0x20,0x58, - 0x3A,0x20,0x2F,0x55,0x73,0x65,0x72,0x73,0x2F,0x55,0x53,0x45, - 0x52,0x2F,0x4C,0x69,0x62,0x72,0x61,0x72,0x79,0x2F,0x41,0x70, - 0x70,0x6C,0x69,0x63,0x61,0x74,0x69,0x6F,0x6E,0x20,0x53,0x75, - 0x70,0x70,0x6F,0x72,0x74,0x2F,0x46,0x54,0x32,0x20,0x63,0x6C, - 0x6F,0x6E,0x65,0x2F,0x46,0x54,0x32,0x2E,0x43,0x46,0x47,0x2F, - 0x47,0x4E,0x55,0x2F,0x4C,0x69,0x6E,0x75,0x78,0x3A,0x20,0x2F, - 0x68,0x6F,0x6D,0x65,0x2F,0x55,0x53,0x45,0x52,0x2F,0x2E,0x63, - 0x6F,0x6E,0x66,0x69,0x67,0x2F,0x46,0x54,0x32,0x20,0x63,0x6C, - 0x6F,0x6E,0x65,0x2F,0x46,0x54,0x32,0x2E,0x43,0x46,0x47,0x01, - 0x3E,0x48,0x49,0x74,0x20,0x77,0x69,0x6C,0x6C,0x20,0x62,0x65, - 0x20,0x73,0x74,0x6F,0x72,0x65,0x64,0x20,0x69,0x6E,0x20,0x74, - 0x68,0x65,0x20,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x20,0x64, - 0x69,0x72,0x65,0x63,0x74,0x6F,0x72,0x79,0x20,0x69,0x66,0x20, - 0x74,0x68,0x65,0x20,0x70,0x61,0x74,0x68,0x20,0x63,0x6F,0x75, - 0x6C,0x64,0x6E,0x27,0x74,0x20,0x62,0x65,0x20,0x75,0x73,0x65, - 0x64,0x2E,0x4D,0x49,0x66,0x20,0x79,0x6F,0x75,0x20,0x70,0x75, - 0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x6F,0x6E,0x66,0x69,0x67, - 0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x20,0x66,0x69,0x6C,0x65, - 0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x70,0x72,0x6F,0x67, - 0x72,0x61,0x6D,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6F,0x72, - 0x79,0x2C,0x20,0x69,0x74,0x20,0x77,0x69,0x6C,0x6C,0x20,0x72, - 0x65,0x61,0x64,0x20,0x74,0x68,0x61,0x74,0x4A,0x6F,0x6E,0x65, - 0x20,0x61,0x6E,0x64,0x20,0x6E,0x6F,0x74,0x20,0x61,0x74,0x74, - 0x65,0x6D,0x70,0x74,0x20,0x74,0x6F,0x20,0x63,0x72,0x65,0x61, - 0x74,0x65,0x20,0x63,0x6F,0x6E,0x66,0x69,0x67,0x20,0x64,0x69, - 0x72,0x73,0x20,0x66,0x6F,0x72,0x20,0x74,0x68,0x65,0x20,0x4F, - 0x53,0x20,0x75,0x73,0x65,0x72,0x2E,0x20,0x28,0x70,0x6F,0x72, - 0x74,0x61,0x62,0x6C,0x65,0x20,0x6D,0x6F,0x64,0x65,0x29,0x06, - 0x3E,0x40,0x58,0x30,0x32,0x30,0x42,0x3E,0x40,0x43,0x30,0x30, - 0x31,0x51,0x3A,0x20,0x43,0x61,0x6E,0x20,0x74,0x68,0x65,0x20, - 0x63,0x6C,0x6F,0x6E,0x65,0x20,0x72,0x65,0x61,0x64,0x20,0x46, - 0x54,0x32,0x2E,0x43,0x46,0x47,0x20,0x66,0x72,0x6F,0x6D,0x20, - 0x72,0x65,0x61,0x6C,0x20,0x46,0x54,0x32,0x2C,0x20,0x61,0x6E, - 0x64,0x20,0x76,0x69,0x63,0x65,0x20,0x76,0x65,0x72,0x73,0x61, - 0x3F,0x4C,0x3E,0x40,0x43,0x30,0x30,0x32,0x41,0x3A,0x20,0x59, - 0x65,0x73,0x2C,0x20,0x69,0x74,0x20,0x73,0x68,0x6F,0x75,0x6C, - 0x64,0x20,0x77,0x6F,0x72,0x6B,0x20,0x6A,0x75,0x73,0x74,0x20, - 0x66,0x69,0x6E,0x65,0x2E,0x20,0x50,0x75,0x74,0x20,0x69,0x74, - 0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x64,0x69,0x72,0x65, - 0x63,0x74,0x6F,0x72,0x79,0x20,0x73,0x68,0x6F,0x77,0x6E,0x20, - 0x61,0x62,0x6F,0x76,0x65,0x2E,0x06,0x3E,0x40,0x58,0x30,0x32, - 0x30,0x51,0x3E,0x40,0x43,0x30,0x30,0x31,0x51,0x3A,0x20,0x53, - 0x6D,0x70,0x2E,0x20,0x45,0x64,0x2E,0x3A,0x20,0x57,0x68,0x69, - 0x6C,0x65,0x20,0x7A,0x6F,0x6F,0x6D,0x65,0x64,0x20,0x69,0x6E, - 0x2C,0x20,0x49,0x20,0x73,0x6F,0x6D,0x65,0x74,0x69,0x6D,0x65, - 0x73,0x20,0x63,0x61,0x6E,0x27,0x74,0x20,0x6D,0x61,0x72,0x6B, - 0x20,0x74,0x68,0x65,0x20,0x6C,0x61,0x73,0x74,0x20,0x73,0x61, - 0x6D,0x70,0x6C,0x65,0x20,0x70,0x6F,0x69,0x6E,0x74,0x21,0x47, - 0x3E,0x40,0x43,0x30,0x30,0x32,0x41,0x3A,0x20,0x54,0x68,0x69, - 0x73,0x20,0x69,0x73,0x20,0x6E,0x6F,0x72,0x6D,0x61,0x6C,0x2E, - 0x20,0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x61,0x20,0x6C, - 0x69,0x6D,0x69,0x74,0x61,0x74,0x69,0x6F,0x6E,0x20,0x69,0x6E, - 0x20,0x74,0x68,0x65,0x20,0x6E,0x61,0x74,0x75,0x72,0x65,0x20, - 0x6F,0x66,0x20,0x73,0x63,0x61,0x6C,0x69,0x6E,0x67,0x2E,0x06, - 0x3E,0x40,0x58,0x30,0x32,0x30,0x17,0x3E,0x40,0x43,0x30,0x30, - 0x31,0x51,0x3A,0x20,0x49,0x20,0x66,0x6F,0x75,0x6E,0x64,0x20, - 0x61,0x20,0x62,0x75,0x67,0x21,0x4C,0x3E,0x40,0x43,0x30,0x30, - 0x32,0x41,0x3A,0x20,0x50,0x6C,0x65,0x61,0x73,0x65,0x20,0x73, - 0x65,0x6E,0x64,0x20,0x6D,0x65,0x20,0x61,0x20,0x6D,0x61,0x69, - 0x6C,0x20,0x28,0x66,0x6F,0x75,0x6E,0x64,0x20,0x61,0x74,0x20, - 0x31,0x36,0x2D,0x62,0x69,0x74,0x73,0x2E,0x6F,0x72,0x67,0x29, - 0x20,0x61,0x6E,0x64,0x20,0x74,0x72,0x79,0x20,0x74,0x6F,0x20, - 0x65,0x78,0x70,0x6C,0x61,0x69,0x6E,0x20,0x69,0x74,0x2E,0x00, + 0x6D,0x6F,0x64,0x65,0x20,0x63,0x6F,0x6D,0x70,0x6C,0x65,0x74, + 0x65,0x6C,0x79,0x20,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x20, + 0x6F,0x75,0x74,0x20,0x74,0x68,0x65,0x20,0x69,0x6D,0x61,0x67, + 0x65,0x2E,0x20,0x54,0x68,0x69,0x73,0x20,0x63,0x61,0x6E,0x20, + 0x72,0x65,0x73,0x75,0x6C,0x74,0x20,0x69,0x6E,0x4E,0x61,0x6C, + 0x69,0x61,0x73,0x69,0x6E,0x67,0x20,0x28,0x75,0x6E,0x65,0x76, + 0x65,0x6E,0x20,0x70,0x69,0x78,0x65,0x6C,0x20,0x77,0x69,0x64, + 0x74,0x68,0x73,0x29,0x20,0x69,0x66,0x20,0x74,0x68,0x65,0x20, + 0x61,0x73,0x70,0x65,0x63,0x74,0x20,0x72,0x61,0x74,0x69,0x6F, + 0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,0x73,0x63,0x72,0x65, + 0x65,0x6E,0x20,0x69,0x73,0x20,0x6E,0x6F,0x74,0x20,0x31,0x36, + 0x3A,0x31,0x30,0x2E,0x52,0x54,0x68,0x65,0x20,0x22,0x50,0x69, + 0x78,0x65,0x6C,0x20,0x66,0x69,0x6C,0x74,0x65,0x72,0x22,0x20, + 0x73,0x65,0x74,0x74,0x69,0x6E,0x67,0x20,0x63,0x61,0x6E,0x20, + 0x68,0x65,0x6C,0x70,0x20,0x77,0x69,0x74,0x68,0x20,0x74,0x68, + 0x69,0x73,0x2C,0x20,0x62,0x75,0x74,0x20,0x69,0x74,0x20,0x6D, + 0x61,0x6B,0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x69,0x6D,0x61, + 0x67,0x65,0x20,0x6C,0x6F,0x6F,0x6B,0x20,0x62,0x6C,0x75,0x72, + 0x72,0x79,0x2E,0x01,0x20,0x18,0x3E,0x40,0x58,0x30,0x34,0x30, + 0x40,0x43,0x30,0x30,0x31,0x50,0x69,0x78,0x65,0x6C,0x20,0x66, + 0x69,0x6C,0x74,0x65,0x72,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36, + 0x30,0x40,0x43,0x30,0x30,0x32,0x52,0x41,0x70,0x70,0x6C,0x69, + 0x65,0x73,0x20,0x61,0x6E,0x20,0x61,0x6E,0x74,0x69,0x2D,0x61, + 0x6C,0x69,0x61,0x73,0x69,0x6E,0x67,0x20,0x73,0x75,0x62,0x70, + 0x69,0x78,0x65,0x6C,0x20,0x66,0x69,0x6C,0x74,0x65,0x72,0x20, + 0x74,0x68,0x61,0x74,0x20,0x69,0x73,0x20,0x75,0x73,0x65,0x64, + 0x20,0x77,0x68,0x65,0x6E,0x20,0x74,0x68,0x65,0x20,0x77,0x69, + 0x6E,0x64,0x6F,0x77,0x20,0x69,0x73,0x20,0x75,0x70,0x73,0x63, + 0x61,0x6C,0x65,0x64,0x2E,0x3B,0x50,0x6C,0x65,0x61,0x73,0x65, + 0x20,0x6B,0x65,0x65,0x70,0x20,0x69,0x6E,0x20,0x6D,0x69,0x6E, + 0x64,0x20,0x74,0x68,0x61,0x74,0x20,0x74,0x68,0x69,0x73,0x20, + 0x77,0x69,0x6C,0x6C,0x20,0x6D,0x61,0x6B,0x65,0x20,0x70,0x69, + 0x78,0x65,0x6C,0x73,0x20,0x6C,0x6F,0x6F,0x6B,0x20,0x62,0x6C, + 0x75,0x72,0x72,0x79,0x2E,0x00,0x23,0x40,0x58,0x30,0x32,0x30, + 0x40,0x43,0x30,0x30,0x31,0x41,0x64,0x76,0x61,0x6E,0x63,0x65, + 0x64,0x20,0x65,0x64,0x69,0x74,0x20,0x66,0x75,0x6E,0x63,0x74, + 0x69,0x6F,0x6E,0x73,0x3A,0x20,0x01,0x3E,0x1E,0x3E,0x40,0x58, + 0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x43,0x6F,0x70,0x79, + 0x2F,0x50,0x61,0x73,0x74,0x65,0x20,0x6D,0x61,0x73,0x6B,0x69, + 0x6E,0x67,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43, + 0x30,0x30,0x32,0x37,0x54,0x68,0x65,0x20,0x6D,0x61,0x73,0x6B, + 0x69,0x6E,0x67,0x20,0x69,0x73,0x20,0x75,0x73,0x65,0x64,0x20, + 0x66,0x6F,0x72,0x20,0x63,0x6F,0x70,0x79,0x69,0x6E,0x67,0x2F, + 0x70,0x61,0x73,0x74,0x69,0x6E,0x67,0x20,0x6F,0x6E,0x6C,0x79, + 0x20,0x70,0x61,0x72,0x74,0x73,0x20,0x6F,0x66,0x20,0x61,0x46, + 0x22,0x6E,0x6F,0x74,0x65,0x2D,0x63,0x65,0x6C,0x6C,0x22,0x2E, + 0x20,0x54,0x68,0x65,0x20,0x64,0x69,0x66,0x66,0x65,0x72,0x65, + 0x6E,0x74,0x20,0x70,0x61,0x72,0x74,0x73,0x20,0x6F,0x66,0x20, + 0x61,0x20,0x22,0x6E,0x6F,0x74,0x65,0x2D,0x63,0x65,0x6C,0x6C, + 0x22,0x20,0x69,0x73,0x20,0x4E,0x6F,0x74,0x65,0x2C,0x20,0x49, + 0x6E,0x73,0x74,0x72,0x2E,0x20,0x6E,0x72,0x2E,0x2C,0x20,0x56, + 0x6F,0x6C,0x75,0x6D,0x65,0x2C,0x20,0x45,0x66,0x66,0x65,0x63, + 0x74,0x20,0x6E,0x72,0x20,0x26,0x20,0x45,0x66,0x66,0x65,0x63, + 0x74,0x20,0x64,0x61,0x74,0x61,0x2E,0x34,0x3E,0x41,0x73,0x20, + 0x79,0x6F,0x75,0x20,0x63,0x61,0x6E,0x20,0x73,0x65,0x65,0x20, + 0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x77,0x69,0x6E,0x64,0x6F, + 0x77,0x20,0x74,0x68,0x65,0x72,0x65,0x20,0x61,0x72,0x65,0x20, + 0x33,0x20,0x63,0x6F,0x6C,0x75,0x6D,0x6E,0x73,0x20,0x6F,0x66, + 0x3D,0x22,0x65,0x6E,0x61,0x62,0x6C,0x65,0x2F,0x64,0x69,0x73, + 0x61,0x62,0x6C,0x65,0x20,0x62,0x75,0x74,0x74,0x6F,0x6E,0x73, + 0x22,0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x68,0x61,0x73,0x20, + 0x74,0x68,0x65,0x20,0x6C,0x65,0x74,0x74,0x65,0x72,0x73,0x20, + 0x43,0x2C,0x50,0x20,0x26,0x20,0x54,0x20,0x61,0x62,0x6F,0x76, + 0x65,0x2E,0x45,0x3E,0x43,0x20,0x6D,0x65,0x61,0x6E,0x73,0x20, + 0x63,0x6F,0x70,0x79,0x2C,0x20,0x69,0x74,0x20,0x63,0x6F,0x6E, + 0x74,0x72,0x6F,0x6C,0x73,0x20,0x77,0x68,0x69,0x63,0x68,0x20, + 0x70,0x61,0x72,0x74,0x73,0x20,0x74,0x68,0x61,0x74,0x20,0x67, + 0x6F,0x65,0x73,0x20,0x69,0x6E,0x74,0x6F,0x20,0x74,0x68,0x65, + 0x20,0x63,0x6F,0x70,0x79,0x62,0x75,0x66,0x66,0x65,0x72,0x2E, + 0x3E,0x3E,0x50,0x20,0x6D,0x65,0x61,0x6E,0x73,0x20,0x70,0x61, + 0x73,0x74,0x65,0x20,0x61,0x6E,0x64,0x20,0x63,0x6F,0x6E,0x74, + 0x72,0x6F,0x6C,0x73,0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x70, + 0x61,0x72,0x74,0x73,0x20,0x74,0x68,0x61,0x74,0x20,0x67,0x6F, + 0x65,0x73,0x20,0x6F,0x75,0x74,0x20,0x66,0x72,0x6F,0x6D,0x20, + 0x74,0x68,0x65,0x0B,0x63,0x6F,0x70,0x79,0x62,0x75,0x66,0x66, + 0x65,0x72,0x2E,0x45,0x3E,0x54,0x20,0x6D,0x65,0x61,0x6E,0x73, + 0x20,0x74,0x72,0x61,0x6E,0x73,0x70,0x61,0x72,0x65,0x6E,0x63, + 0x79,0x2E,0x20,0x49,0x66,0x20,0x69,0x74,0x27,0x73,0x20,0x65, + 0x6E,0x61,0x62,0x6C,0x65,0x64,0x2C,0x20,0x74,0x68,0x65,0x20, + 0x70,0x61,0x73,0x74,0x69,0x6E,0x67,0x20,0x64,0x6F,0x65,0x73, + 0x6E,0x27,0x74,0x20,0x6F,0x76,0x65,0x72,0x77,0x72,0x69,0x74, + 0x65,0x3D,0x64,0x61,0x74,0x61,0x20,0x77,0x69,0x74,0x68,0x20, + 0x6E,0x69,0x6C,0x2D,0x69,0x6E,0x66,0x6F,0x72,0x6D,0x61,0x74, + 0x69,0x6F,0x6E,0x2C,0x20,0x6F,0x6E,0x6C,0x79,0x20,0x77,0x69, + 0x74,0x68,0x20,0x61,0x20,0x6E,0x6F,0x74,0x65,0x20,0x6F,0x72, + 0x20,0x61,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x20,0x3C,0x3E, + 0x20,0x30,0x2E,0x01,0x3E,0x40,0x3E,0x54,0x68,0x65,0x20,0x63, + 0x75,0x74,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x73, + 0x20,0x77,0x6F,0x72,0x6B,0x73,0x20,0x6C,0x69,0x6B,0x65,0x20, + 0x70,0x61,0x73,0x74,0x69,0x6E,0x67,0x20,0x77,0x69,0x74,0x68, + 0x20,0x7A,0x65,0x72,0x6F,0x2D,0x64,0x61,0x74,0x61,0x2E,0x20, + 0x54,0x68,0x69,0x73,0x20,0x6D,0x65,0x61,0x6E,0x73,0x3B,0x74, + 0x68,0x61,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x74,0x74, + 0x69,0x6E,0x67,0x20,0x69,0x73,0x20,0x63,0x6F,0x6E,0x74,0x72, + 0x6F,0x6C,0x6C,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x50, + 0x2D,0x63,0x6F,0x6C,0x75,0x6D,0x6E,0x20,0x28,0x6F,0x72,0x20, + 0x54,0x2D,0x63,0x6F,0x6C,0x75,0x6D,0x6E,0x29,0x2E,0x3C,0x3E, + 0x57,0x68,0x65,0x6E,0x20,0x79,0x6F,0x75,0x20,0x63,0x6F,0x70, + 0x79,0x20,0x64,0x61,0x74,0x61,0x20,0x77,0x69,0x74,0x68,0x20, + 0x6D,0x61,0x73,0x6B,0x69,0x6E,0x67,0x2C,0x20,0x74,0x68,0x65, + 0x20,0x64,0x69,0x73,0x61,0x62,0x6C,0x65,0x64,0x20,0x70,0x61, + 0x72,0x74,0x73,0x20,0x61,0x72,0x65,0x20,0x6E,0x6F,0x74,0x43, + 0x63,0x6C,0x65,0x61,0x72,0x65,0x64,0x20,0x69,0x6E,0x20,0x74, + 0x68,0x65,0x20,0x63,0x6F,0x70,0x79,0x62,0x75,0x66,0x66,0x65, + 0x72,0x2E,0x20,0x28,0x4D,0x61,0x6B,0x69,0x6E,0x67,0x20,0x69, + 0x74,0x20,0x70,0x6F,0x73,0x73,0x69,0x62,0x6C,0x65,0x20,0x74, + 0x6F,0x20,0x63,0x6F,0x6C,0x6C,0x65,0x63,0x74,0x20,0x64,0x61, + 0x74,0x61,0x20,0x66,0x72,0x6F,0x6D,0x27,0x73,0x65,0x76,0x65, + 0x72,0x61,0x6C,0x20,0x6C,0x6F,0x63,0x61,0x74,0x69,0x6F,0x6E, + 0x73,0x20,0x69,0x6E,0x74,0x6F,0x20,0x74,0x68,0x65,0x20,0x63, + 0x6F,0x70,0x79,0x62,0x75,0x66,0x66,0x65,0x72,0x2E,0x29,0x00, 0x03,0x45,0x4E,0x44,0x4C,0x3B,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, @@ -2288,49 +2103,233 @@ const uint8_t helpData[27887] = 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, - 0x2A,0x2A,0x0C,0x40,0x4C,0x4B,0x6E,0x6F,0x77,0x6E,0x20,0x62, - 0x75,0x67,0x73,0x01,0x3E,0x31,0x3E,0x40,0x58,0x30,0x31,0x30, - 0x40,0x43,0x30,0x30,0x31,0x57,0x41,0x56,0x20,0x65,0x78,0x70, - 0x6F,0x72,0x74,0x69,0x6E,0x67,0x20,0x28,0x72,0x65,0x6E,0x64, - 0x65,0x72,0x69,0x6E,0x67,0x20,0x73,0x6F,0x6E,0x67,0x20,0x74, - 0x6F,0x20,0x57,0x41,0x56,0x29,0x3A,0x01,0x3E,0x55,0x3E,0x40, - 0x58,0x30,0x31,0x30,0x40,0x43,0x30,0x30,0x32,0x2D,0x20,0x53, - 0x6F,0x6E,0x67,0x73,0x20,0x74,0x68,0x61,0x74,0x20,0x6A,0x75, - 0x6D,0x70,0x20,0x62,0x61,0x63,0x6B,0x20,0x74,0x6F,0x20,0x61, - 0x20,0x70,0x72,0x65,0x76,0x69,0x6F,0x75,0x73,0x20,0x70,0x61, - 0x74,0x74,0x65,0x72,0x6E,0x20,0x77,0x69,0x6C,0x6C,0x20,0x72, - 0x65,0x6E,0x64,0x65,0x72,0x20,0x66,0x6F,0x72,0x65,0x76,0x65, - 0x72,0x20,0x61,0x6E,0x64,0x20,0x65,0x76,0x65,0x72,0x2C,0x4D, - 0x3E,0x40,0x58,0x30,0x32,0x31,0x61,0x6E,0x64,0x20,0x79,0x6F, - 0x75,0x20,0x6E,0x65,0x65,0x64,0x20,0x74,0x6F,0x20,0x70,0x72, - 0x65,0x73,0x73,0x20,0x61,0x20,0x6B,0x65,0x79,0x20,0x6F,0x72, - 0x20,0x63,0x6C,0x69,0x63,0x6B,0x20,0x74,0x68,0x65,0x20,0x6D, - 0x6F,0x75,0x73,0x65,0x20,0x74,0x6F,0x20,0x61,0x62,0x6F,0x72, - 0x74,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6E,0x64,0x65,0x72, - 0x20,0x77,0x68,0x65,0x6E,0x15,0x3E,0x40,0x58,0x30,0x32,0x31, - 0x79,0x6F,0x75,0x20,0x77,0x61,0x6E,0x74,0x20,0x69,0x74,0x20, - 0x74,0x6F,0x2E,0x01,0x3E,0x11,0x3E,0x40,0x58,0x30,0x31,0x30, - 0x40,0x43,0x30,0x30,0x31,0x56,0x69,0x64,0x65,0x6F,0x3A,0x06, - 0x3E,0x40,0x43,0x30,0x30,0x32,0x50,0x3E,0x40,0x58,0x30,0x31, - 0x30,0x2D,0x20,0x46,0x75,0x6C,0x6C,0x73,0x63,0x72,0x65,0x65, - 0x6E,0x20,0x6D,0x6F,0x64,0x65,0x20,0x63,0x61,0x6E,0x20,0x62, - 0x65,0x20,0x75,0x6E,0x62,0x65,0x61,0x72,0x61,0x62,0x6C,0x79, - 0x20,0x73,0x6C,0x6F,0x77,0x20,0x6F,0x6E,0x20,0x61,0x20,0x52, - 0x61,0x73,0x70,0x62,0x65,0x72,0x72,0x79,0x20,0x50,0x69,0x20, - 0x28,0x65,0x76,0x65,0x6E,0x20,0x6F,0x6E,0x20,0x52,0x50,0x69, - 0x20,0x34,0x29,0x4A,0x3E,0x40,0x58,0x30,0x31,0x30,0x2D,0x20, - 0x46,0x75,0x6C,0x6C,0x73,0x63,0x72,0x65,0x65,0x6E,0x20,0x6D, - 0x6F,0x64,0x65,0x20,0x63,0x61,0x6E,0x20,0x68,0x61,0x76,0x65, - 0x20,0x73,0x65,0x76,0x65,0x72,0x61,0x6C,0x20,0x70,0x72,0x6F, - 0x62,0x6C,0x65,0x6D,0x73,0x20,0x6F,0x6E,0x20,0x6D,0x75,0x6C, - 0x74,0x69,0x2D,0x6D,0x6F,0x6E,0x69,0x74,0x6F,0x72,0x20,0x73, - 0x79,0x73,0x74,0x65,0x6D,0x73,0x47,0x3E,0x40,0x58,0x30,0x31, - 0x30,0x2D,0x20,0x46,0x75,0x6C,0x6C,0x73,0x63,0x72,0x65,0x65, - 0x6E,0x20,0x6D,0x6F,0x64,0x65,0x20,0x63,0x61,0x6E,0x20,0x68, - 0x61,0x76,0x65,0x20,0x73,0x65,0x76,0x65,0x72,0x61,0x6C,0x20, - 0x70,0x72,0x6F,0x62,0x6C,0x65,0x6D,0x73,0x20,0x6F,0x6E,0x20, - 0x73,0x6F,0x6D,0x65,0x20,0x4C,0x69,0x6E,0x75,0x78,0x20,0x73, - 0x79,0x73,0x74,0x65,0x6D,0x73,0x00,0x03,0x45,0x4E,0x44 + 0x2A,0x2A,0x0E,0x40,0x4C,0x50,0x72,0x6F,0x62,0x6C,0x65,0x6D, + 0x73,0x2F,0x46,0x41,0x51,0x06,0x3E,0x40,0x58,0x30,0x32,0x30, + 0x2A,0x3E,0x40,0x43,0x30,0x30,0x31,0x51,0x3A,0x20,0x48,0x6F, + 0x77,0x20,0x63,0x61,0x6E,0x20,0x49,0x20,0x74,0x6F,0x67,0x67, + 0x6C,0x65,0x20,0x66,0x75,0x6C,0x6C,0x73,0x63,0x72,0x65,0x65, + 0x6E,0x20,0x6D,0x6F,0x64,0x65,0x3F,0x37,0x3E,0x40,0x43,0x30, + 0x30,0x32,0x41,0x3A,0x20,0x50,0x72,0x65,0x73,0x73,0x20,0x41, + 0x6C,0x74,0x2B,0x45,0x6E,0x74,0x65,0x72,0x20,0x28,0x43,0x74, + 0x72,0x6C,0x2B,0x43,0x6D,0x64,0x2B,0x46,0x20,0x61,0x6C,0x73, + 0x6F,0x20,0x77,0x6F,0x72,0x6B,0x73,0x20,0x6F,0x6E,0x20,0x4D, + 0x61,0x63,0x29,0x06,0x3E,0x40,0x58,0x30,0x32,0x30,0x45,0x3E, + 0x40,0x43,0x30,0x30,0x31,0x51,0x3A,0x20,0x48,0x6F,0x77,0x20, + 0x63,0x61,0x6E,0x20,0x49,0x20,0x6D,0x61,0x6B,0x65,0x20,0x66, + 0x75,0x6C,0x6C,0x73,0x63,0x72,0x65,0x65,0x6E,0x20,0x6D,0x6F, + 0x64,0x65,0x20,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x20,0x6F, + 0x75,0x74,0x20,0x74,0x68,0x65,0x20,0x77,0x68,0x6F,0x6C,0x65, + 0x20,0x73,0x63,0x72,0x65,0x65,0x6E,0x3F,0x37,0x3E,0x40,0x43, + 0x30,0x30,0x32,0x41,0x3A,0x20,0x45,0x6E,0x61,0x62,0x6C,0x65, + 0x20,0x22,0x53,0x74,0x72,0x65,0x74,0x63,0x68,0x65,0x64,0x22, + 0x20,0x69,0x6E,0x20,0x43,0x6F,0x6E,0x66,0x69,0x67,0x20,0x2D, + 0x3E,0x20,0x4D,0x69,0x73,0x63,0x65,0x6C,0x6C,0x61,0x6E,0x65, + 0x6F,0x75,0x73,0x2E,0x4E,0x3E,0x40,0x58,0x30,0x33,0x35,0x54, + 0x68,0x69,0x73,0x20,0x77,0x69,0x6C,0x6C,0x20,0x72,0x65,0x73, + 0x75,0x6C,0x74,0x20,0x69,0x6E,0x20,0x75,0x6E,0x65,0x76,0x65, + 0x6E,0x20,0x70,0x69,0x78,0x65,0x6C,0x20,0x77,0x69,0x64,0x74, + 0x68,0x73,0x2E,0x20,0x49,0x66,0x20,0x79,0x6F,0x75,0x20,0x77, + 0x61,0x6E,0x74,0x20,0x74,0x6F,0x20,0x66,0x69,0x78,0x20,0x74, + 0x68,0x69,0x73,0x2C,0x20,0x65,0x6E,0x61,0x62,0x6C,0x65,0x3D, + 0x22,0x50,0x69,0x78,0x65,0x6C,0x20,0x66,0x69,0x6C,0x74,0x65, + 0x72,0x22,0x20,0x28,0x74,0x68,0x6F,0x75,0x67,0x68,0x20,0x74, + 0x68,0x69,0x73,0x20,0x77,0x69,0x6C,0x6C,0x20,0x6D,0x61,0x6B, + 0x65,0x20,0x74,0x68,0x65,0x20,0x69,0x6D,0x61,0x67,0x65,0x20, + 0x6C,0x6F,0x6F,0x6B,0x20,0x62,0x6C,0x75,0x72,0x72,0x79,0x29, + 0x2E,0x06,0x3E,0x40,0x58,0x30,0x32,0x30,0x27,0x3E,0x40,0x43, + 0x30,0x30,0x31,0x51,0x3A,0x20,0x49,0x20,0x63,0x61,0x6E,0x27, + 0x74,0x20,0x75,0x73,0x65,0x20,0x41,0x6C,0x74,0x2B,0x46,0x34, + 0x20,0x61,0x6E,0x64,0x20,0x41,0x6C,0x74,0x2B,0x46,0x35,0x21, + 0x4E,0x3E,0x40,0x43,0x30,0x30,0x32,0x41,0x3A,0x20,0x57,0x69, + 0x6E,0x64,0x6F,0x77,0x73,0x3A,0x20,0x49,0x66,0x20,0x79,0x6F, + 0x75,0x20,0x68,0x61,0x76,0x65,0x20,0x47,0x65,0x46,0x6F,0x72, + 0x63,0x65,0x20,0x45,0x78,0x70,0x65,0x72,0x69,0x65,0x6E,0x63, + 0x65,0x20,0x69,0x6E,0x73,0x74,0x61,0x6C,0x6C,0x65,0x64,0x2C, + 0x20,0x79,0x6F,0x75,0x20,0x6E,0x65,0x65,0x64,0x20,0x74,0x6F, + 0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x2B,0x3E,0x40,0x58,0x30, + 0x33,0x35,0x74,0x68,0x65,0x20,0x6B,0x65,0x79,0x62,0x69,0x6E, + 0x64,0x69,0x6E,0x67,0x73,0x20,0x69,0x6E,0x20,0x69,0x74,0x73, + 0x20,0x73,0x65,0x74,0x74,0x69,0x6E,0x67,0x73,0x20,0x70,0x61, + 0x67,0x65,0x2E,0x57,0x3E,0x6D,0x61,0x63,0x4F,0x53,0x2F,0x4F, + 0x53,0x20,0x58,0x3A,0x20,0x43,0x68,0x61,0x6E,0x67,0x65,0x20, + 0x41,0x6C,0x74,0x2B,0x46,0x34,0x2F,0x41,0x6C,0x74,0x2B,0x46, + 0x35,0x20,0x6B,0x65,0x79,0x73,0x20,0x69,0x6E,0x20,0x74,0x68, + 0x65,0x20,0x4F,0x53,0x20,0x74,0x6F,0x20,0x73,0x6F,0x6D,0x65, + 0x74,0x68,0x69,0x6E,0x67,0x20,0x65,0x6C,0x73,0x65,0x2E,0x20, + 0x41,0x6C,0x73,0x6F,0x20,0x66,0x6F,0x72,0x20,0x47,0x4E,0x55, + 0x2F,0x4C,0x69,0x6E,0x75,0x78,0x2E,0x06,0x3E,0x40,0x58,0x30, + 0x32,0x30,0x2B,0x3E,0x40,0x43,0x30,0x30,0x31,0x51,0x3A,0x20, + 0x54,0x68,0x65,0x20,0x6D,0x6F,0x75,0x73,0x65,0x20,0x63,0x75, + 0x72,0x73,0x6F,0x72,0x20,0x69,0x73,0x20,0x64,0x65,0x6C,0x61, + 0x79,0x65,0x64,0x2F,0x6C,0x61,0x67,0x67,0x79,0x21,0x44,0x3E, + 0x40,0x43,0x30,0x30,0x32,0x41,0x3A,0x20,0x4D,0x61,0x6B,0x65, + 0x20,0x73,0x75,0x72,0x65,0x20,0x22,0x53,0x6F,0x66,0x74,0x77, + 0x61,0x72,0x65,0x20,0x6D,0x6F,0x75,0x73,0x65,0x22,0x20,0x69, + 0x73,0x20,0x64,0x69,0x73,0x61,0x62,0x6C,0x65,0x64,0x20,0x69, + 0x6E,0x20,0x43,0x6F,0x6E,0x66,0x69,0x67,0x20,0x2D,0x3E,0x20, + 0x4C,0x61,0x79,0x6F,0x75,0x74,0x2E,0x4B,0x3E,0x40,0x58,0x30, + 0x33,0x35,0x41,0x6C,0x74,0x65,0x72,0x6E,0x61,0x74,0x69,0x76, + 0x65,0x6C,0x79,0x2C,0x20,0x79,0x6F,0x75,0x20,0x63,0x61,0x6E, + 0x20,0x65,0x6E,0x61,0x62,0x6C,0x65,0x20,0x22,0x56,0x53,0x79, + 0x6E,0x63,0x20,0x6F,0x66,0x66,0x22,0x20,0x69,0x6E,0x20,0x43, + 0x6F,0x6E,0x66,0x69,0x67,0x20,0x2D,0x3E,0x20,0x4D,0x69,0x73, + 0x63,0x65,0x6C,0x6C,0x61,0x6E,0x65,0x6F,0x75,0x73,0x2E,0x46, + 0x3E,0x54,0x68,0x69,0x73,0x20,0x68,0x6F,0x77,0x65,0x76,0x65, + 0x72,0x2C,0x20,0x77,0x69,0x6C,0x6C,0x20,0x69,0x6E,0x74,0x72, + 0x6F,0x64,0x75,0x63,0x65,0x20,0x73,0x74,0x75,0x74,0x74,0x65, + 0x72,0x69,0x6E,0x67,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65, + 0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6E,0x64,0x65,0x72,0x69, + 0x6E,0x67,0x20,0x72,0x61,0x74,0x65,0x20,0x69,0x73,0x22,0x3E, + 0x6E,0x6F,0x74,0x20,0x65,0x78,0x61,0x63,0x74,0x20,0x74,0x6F, + 0x20,0x79,0x6F,0x75,0x72,0x20,0x6D,0x6F,0x6E,0x69,0x74,0x6F, + 0x72,0x27,0x73,0x20,0x72,0x61,0x74,0x65,0x2E,0x06,0x3E,0x40, + 0x58,0x30,0x32,0x30,0x33,0x3E,0x40,0x43,0x30,0x30,0x31,0x51, + 0x3A,0x20,0x57,0x69,0x6C,0x6C,0x20,0x79,0x6F,0x75,0x20,0x69, + 0x6D,0x70,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x20,0x4D,0x49,0x44, + 0x49,0x20,0x6F,0x75,0x74,0x20,0x66,0x75,0x6E,0x63,0x74,0x69, + 0x6F,0x6E,0x61,0x6C,0x69,0x74,0x79,0x3F,0x4D,0x3E,0x40,0x43, + 0x30,0x30,0x32,0x41,0x3A,0x20,0x4E,0x6F,0x2C,0x20,0x73,0x6F, + 0x72,0x72,0x79,0x2E,0x20,0x54,0x68,0x69,0x73,0x20,0x69,0x73, + 0x20,0x76,0x65,0x72,0x79,0x20,0x64,0x69,0x66,0x66,0x69,0x63, + 0x75,0x6C,0x74,0x20,0x74,0x6F,0x20,0x69,0x6D,0x70,0x6C,0x65, + 0x6D,0x65,0x6E,0x74,0x20,0x63,0x6F,0x72,0x72,0x65,0x63,0x74, + 0x6C,0x79,0x20,0x77,0x68,0x65,0x6E,0x20,0x68,0x61,0x76,0x69, + 0x6E,0x67,0x3C,0x3E,0x40,0x58,0x30,0x33,0x35,0x68,0x69,0x67, + 0x68,0x65,0x72,0x20,0x61,0x75,0x64,0x69,0x6F,0x20,0x62,0x75, + 0x66,0x66,0x65,0x72,0x20,0x73,0x69,0x7A,0x65,0x73,0x20,0x28, + 0x62,0x75,0x66,0x66,0x65,0x72,0x65,0x64,0x20,0x72,0x65,0x70, + 0x6C,0x61,0x79,0x65,0x72,0x20,0x74,0x69,0x63,0x6B,0x73,0x29, + 0x2E,0x2E,0x2E,0x06,0x3E,0x40,0x58,0x30,0x32,0x30,0x30,0x3E, + 0x40,0x43,0x30,0x30,0x31,0x51,0x3A,0x20,0x57,0x68,0x65,0x72, + 0x65,0x20,0x69,0x73,0x20,0x74,0x68,0x65,0x20,0x63,0x6F,0x6E, + 0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x20,0x66, + 0x69,0x6C,0x65,0x20,0x73,0x74,0x6F,0x72,0x65,0x64,0x3F,0x3F, + 0x3E,0x40,0x43,0x30,0x30,0x32,0x41,0x3A,0x20,0x57,0x69,0x6E, + 0x64,0x6F,0x77,0x73,0x3A,0x20,0x5C,0x55,0x73,0x65,0x72,0x73, + 0x5C,0x55,0x53,0x45,0x52,0x5C,0x41,0x70,0x70,0x44,0x61,0x74, + 0x61,0x5C,0x52,0x6F,0x61,0x6D,0x69,0x6E,0x67,0x5C,0x46,0x54, + 0x32,0x20,0x63,0x6C,0x6F,0x6E,0x65,0x5C,0x46,0x54,0x32,0x2E, + 0x43,0x46,0x47,0x45,0x3E,0x40,0x58,0x30,0x33,0x35,0x4F,0x53, + 0x20,0x58,0x3A,0x20,0x2F,0x55,0x73,0x65,0x72,0x73,0x2F,0x55, + 0x53,0x45,0x52,0x2F,0x4C,0x69,0x62,0x72,0x61,0x72,0x79,0x2F, + 0x41,0x70,0x70,0x6C,0x69,0x63,0x61,0x74,0x69,0x6F,0x6E,0x20, + 0x53,0x75,0x70,0x70,0x6F,0x72,0x74,0x2F,0x46,0x54,0x32,0x20, + 0x63,0x6C,0x6F,0x6E,0x65,0x2F,0x46,0x54,0x32,0x2E,0x43,0x46, + 0x47,0x2F,0x47,0x4E,0x55,0x2F,0x4C,0x69,0x6E,0x75,0x78,0x3A, + 0x20,0x2F,0x68,0x6F,0x6D,0x65,0x2F,0x55,0x53,0x45,0x52,0x2F, + 0x2E,0x63,0x6F,0x6E,0x66,0x69,0x67,0x2F,0x46,0x54,0x32,0x20, + 0x63,0x6C,0x6F,0x6E,0x65,0x2F,0x46,0x54,0x32,0x2E,0x43,0x46, + 0x47,0x01,0x3E,0x48,0x49,0x74,0x20,0x77,0x69,0x6C,0x6C,0x20, + 0x62,0x65,0x20,0x73,0x74,0x6F,0x72,0x65,0x64,0x20,0x69,0x6E, + 0x20,0x74,0x68,0x65,0x20,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D, + 0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6F,0x72,0x79,0x20,0x69, + 0x66,0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x74,0x68,0x20,0x63, + 0x6F,0x75,0x6C,0x64,0x6E,0x27,0x74,0x20,0x62,0x65,0x20,0x75, + 0x73,0x65,0x64,0x2E,0x4D,0x49,0x66,0x20,0x79,0x6F,0x75,0x20, + 0x70,0x75,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x6F,0x6E,0x66, + 0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x20,0x66,0x69, + 0x6C,0x65,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x70,0x72, + 0x6F,0x67,0x72,0x61,0x6D,0x20,0x64,0x69,0x72,0x65,0x63,0x74, + 0x6F,0x72,0x79,0x2C,0x20,0x69,0x74,0x20,0x77,0x69,0x6C,0x6C, + 0x20,0x72,0x65,0x61,0x64,0x20,0x74,0x68,0x61,0x74,0x4A,0x6F, + 0x6E,0x65,0x20,0x61,0x6E,0x64,0x20,0x6E,0x6F,0x74,0x20,0x61, + 0x74,0x74,0x65,0x6D,0x70,0x74,0x20,0x74,0x6F,0x20,0x63,0x72, + 0x65,0x61,0x74,0x65,0x20,0x63,0x6F,0x6E,0x66,0x69,0x67,0x20, + 0x64,0x69,0x72,0x73,0x20,0x66,0x6F,0x72,0x20,0x74,0x68,0x65, + 0x20,0x4F,0x53,0x20,0x75,0x73,0x65,0x72,0x2E,0x20,0x28,0x70, + 0x6F,0x72,0x74,0x61,0x62,0x6C,0x65,0x20,0x6D,0x6F,0x64,0x65, + 0x29,0x06,0x3E,0x40,0x58,0x30,0x32,0x30,0x42,0x3E,0x40,0x43, + 0x30,0x30,0x31,0x51,0x3A,0x20,0x43,0x61,0x6E,0x20,0x74,0x68, + 0x65,0x20,0x63,0x6C,0x6F,0x6E,0x65,0x20,0x72,0x65,0x61,0x64, + 0x20,0x46,0x54,0x32,0x2E,0x43,0x46,0x47,0x20,0x66,0x72,0x6F, + 0x6D,0x20,0x72,0x65,0x61,0x6C,0x20,0x46,0x54,0x32,0x2C,0x20, + 0x61,0x6E,0x64,0x20,0x76,0x69,0x63,0x65,0x20,0x76,0x65,0x72, + 0x73,0x61,0x3F,0x4C,0x3E,0x40,0x43,0x30,0x30,0x32,0x41,0x3A, + 0x20,0x59,0x65,0x73,0x2C,0x20,0x69,0x74,0x20,0x73,0x68,0x6F, + 0x75,0x6C,0x64,0x20,0x77,0x6F,0x72,0x6B,0x20,0x6A,0x75,0x73, + 0x74,0x20,0x66,0x69,0x6E,0x65,0x2E,0x20,0x50,0x75,0x74,0x20, + 0x69,0x74,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x64,0x69, + 0x72,0x65,0x63,0x74,0x6F,0x72,0x79,0x20,0x73,0x68,0x6F,0x77, + 0x6E,0x20,0x61,0x62,0x6F,0x76,0x65,0x2E,0x06,0x3E,0x40,0x58, + 0x30,0x32,0x30,0x51,0x3E,0x40,0x43,0x30,0x30,0x31,0x51,0x3A, + 0x20,0x53,0x6D,0x70,0x2E,0x20,0x45,0x64,0x2E,0x3A,0x20,0x57, + 0x68,0x69,0x6C,0x65,0x20,0x7A,0x6F,0x6F,0x6D,0x65,0x64,0x20, + 0x69,0x6E,0x2C,0x20,0x49,0x20,0x73,0x6F,0x6D,0x65,0x74,0x69, + 0x6D,0x65,0x73,0x20,0x63,0x61,0x6E,0x27,0x74,0x20,0x6D,0x61, + 0x72,0x6B,0x20,0x74,0x68,0x65,0x20,0x6C,0x61,0x73,0x74,0x20, + 0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x70,0x6F,0x69,0x6E,0x74, + 0x21,0x47,0x3E,0x40,0x43,0x30,0x30,0x32,0x41,0x3A,0x20,0x54, + 0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x6E,0x6F,0x72,0x6D,0x61, + 0x6C,0x2E,0x20,0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x61, + 0x20,0x6C,0x69,0x6D,0x69,0x74,0x61,0x74,0x69,0x6F,0x6E,0x20, + 0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x6E,0x61,0x74,0x75,0x72, + 0x65,0x20,0x6F,0x66,0x20,0x73,0x63,0x61,0x6C,0x69,0x6E,0x67, + 0x2E,0x06,0x3E,0x40,0x58,0x30,0x32,0x30,0x17,0x3E,0x40,0x43, + 0x30,0x30,0x31,0x51,0x3A,0x20,0x49,0x20,0x66,0x6F,0x75,0x6E, + 0x64,0x20,0x61,0x20,0x62,0x75,0x67,0x21,0x4C,0x3E,0x40,0x43, + 0x30,0x30,0x32,0x41,0x3A,0x20,0x50,0x6C,0x65,0x61,0x73,0x65, + 0x20,0x73,0x65,0x6E,0x64,0x20,0x6D,0x65,0x20,0x61,0x20,0x6D, + 0x61,0x69,0x6C,0x20,0x28,0x66,0x6F,0x75,0x6E,0x64,0x20,0x61, + 0x74,0x20,0x31,0x36,0x2D,0x62,0x69,0x74,0x73,0x2E,0x6F,0x72, + 0x67,0x29,0x20,0x61,0x6E,0x64,0x20,0x74,0x72,0x79,0x20,0x74, + 0x6F,0x20,0x65,0x78,0x70,0x6C,0x61,0x69,0x6E,0x20,0x69,0x74, + 0x2E,0x00,0x03,0x45,0x4E,0x44,0x4C,0x3B,0x2A,0x2A,0x2A,0x2A, + 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, + 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, + 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, + 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, + 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, + 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x4C, + 0x3B,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, + 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, + 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, + 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, + 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, + 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, + 0x2A,0x2A,0x2A,0x2A,0x0C,0x40,0x4C,0x4B,0x6E,0x6F,0x77,0x6E, + 0x20,0x62,0x75,0x67,0x73,0x01,0x3E,0x31,0x3E,0x40,0x58,0x30, + 0x31,0x30,0x40,0x43,0x30,0x30,0x31,0x57,0x41,0x56,0x20,0x65, + 0x78,0x70,0x6F,0x72,0x74,0x69,0x6E,0x67,0x20,0x28,0x72,0x65, + 0x6E,0x64,0x65,0x72,0x69,0x6E,0x67,0x20,0x73,0x6F,0x6E,0x67, + 0x20,0x74,0x6F,0x20,0x57,0x41,0x56,0x29,0x3A,0x01,0x3E,0x55, + 0x3E,0x40,0x58,0x30,0x31,0x30,0x40,0x43,0x30,0x30,0x32,0x2D, + 0x20,0x53,0x6F,0x6E,0x67,0x73,0x20,0x74,0x68,0x61,0x74,0x20, + 0x6A,0x75,0x6D,0x70,0x20,0x62,0x61,0x63,0x6B,0x20,0x74,0x6F, + 0x20,0x61,0x20,0x70,0x72,0x65,0x76,0x69,0x6F,0x75,0x73,0x20, + 0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x77,0x69,0x6C,0x6C, + 0x20,0x72,0x65,0x6E,0x64,0x65,0x72,0x20,0x66,0x6F,0x72,0x65, + 0x76,0x65,0x72,0x20,0x61,0x6E,0x64,0x20,0x65,0x76,0x65,0x72, + 0x2C,0x4D,0x3E,0x40,0x58,0x30,0x32,0x31,0x61,0x6E,0x64,0x20, + 0x79,0x6F,0x75,0x20,0x6E,0x65,0x65,0x64,0x20,0x74,0x6F,0x20, + 0x70,0x72,0x65,0x73,0x73,0x20,0x61,0x20,0x6B,0x65,0x79,0x20, + 0x6F,0x72,0x20,0x63,0x6C,0x69,0x63,0x6B,0x20,0x74,0x68,0x65, + 0x20,0x6D,0x6F,0x75,0x73,0x65,0x20,0x74,0x6F,0x20,0x61,0x62, + 0x6F,0x72,0x74,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6E,0x64, + 0x65,0x72,0x20,0x77,0x68,0x65,0x6E,0x15,0x3E,0x40,0x58,0x30, + 0x32,0x31,0x79,0x6F,0x75,0x20,0x77,0x61,0x6E,0x74,0x20,0x69, + 0x74,0x20,0x74,0x6F,0x2E,0x01,0x3E,0x11,0x3E,0x40,0x58,0x30, + 0x31,0x30,0x40,0x43,0x30,0x30,0x31,0x56,0x69,0x64,0x65,0x6F, + 0x3A,0x06,0x3E,0x40,0x43,0x30,0x30,0x32,0x50,0x3E,0x40,0x58, + 0x30,0x31,0x30,0x2D,0x20,0x46,0x75,0x6C,0x6C,0x73,0x63,0x72, + 0x65,0x65,0x6E,0x20,0x6D,0x6F,0x64,0x65,0x20,0x63,0x61,0x6E, + 0x20,0x62,0x65,0x20,0x75,0x6E,0x62,0x65,0x61,0x72,0x61,0x62, + 0x6C,0x79,0x20,0x73,0x6C,0x6F,0x77,0x20,0x6F,0x6E,0x20,0x61, + 0x20,0x52,0x61,0x73,0x70,0x62,0x65,0x72,0x72,0x79,0x20,0x50, + 0x69,0x20,0x28,0x65,0x76,0x65,0x6E,0x20,0x6F,0x6E,0x20,0x52, + 0x50,0x69,0x20,0x34,0x29,0x4A,0x3E,0x40,0x58,0x30,0x31,0x30, + 0x2D,0x20,0x46,0x75,0x6C,0x6C,0x73,0x63,0x72,0x65,0x65,0x6E, + 0x20,0x6D,0x6F,0x64,0x65,0x20,0x63,0x61,0x6E,0x20,0x68,0x61, + 0x76,0x65,0x20,0x73,0x65,0x76,0x65,0x72,0x61,0x6C,0x20,0x70, + 0x72,0x6F,0x62,0x6C,0x65,0x6D,0x73,0x20,0x6F,0x6E,0x20,0x6D, + 0x75,0x6C,0x74,0x69,0x2D,0x6D,0x6F,0x6E,0x69,0x74,0x6F,0x72, + 0x20,0x73,0x79,0x73,0x74,0x65,0x6D,0x73,0x47,0x3E,0x40,0x58, + 0x30,0x31,0x30,0x2D,0x20,0x46,0x75,0x6C,0x6C,0x73,0x63,0x72, + 0x65,0x65,0x6E,0x20,0x6D,0x6F,0x64,0x65,0x20,0x63,0x61,0x6E, + 0x20,0x68,0x61,0x76,0x65,0x20,0x73,0x65,0x76,0x65,0x72,0x61, + 0x6C,0x20,0x70,0x72,0x6F,0x62,0x6C,0x65,0x6D,0x73,0x20,0x6F, + 0x6E,0x20,0x73,0x6F,0x6D,0x65,0x20,0x4C,0x69,0x6E,0x75,0x78, + 0x20,0x73,0x79,0x73,0x74,0x65,0x6D,0x73,0x00,0x03,0x45,0x4E, + 0x44 }; #endif diff --git a/src/mixer/ft2_center_mix.c b/src/mixer/ft2_center_mix.c @@ -139,7 +139,7 @@ void centerMix8bBidiLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples) SET_BACK_MIXER_POS } -void centerMix8bNoLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +void centerMix8bNoLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { const int8_t *base, *smpPtr; float fSample, *fMixBufferL, *fMixBufferR; @@ -159,19 +159,19 @@ void centerMix8bNoLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_8BIT_SMP_MONO_SINTRP + RENDER_8BIT_SMP_MONO_S8INTRP INC_POS } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_8BIT_SMP_MONO_SINTRP + RENDER_8BIT_SMP_MONO_S8INTRP INC_POS - RENDER_8BIT_SMP_MONO_SINTRP + RENDER_8BIT_SMP_MONO_S8INTRP INC_POS - RENDER_8BIT_SMP_MONO_SINTRP + RENDER_8BIT_SMP_MONO_S8INTRP INC_POS - RENDER_8BIT_SMP_MONO_SINTRP + RENDER_8BIT_SMP_MONO_S8INTRP INC_POS } @@ -181,7 +181,7 @@ void centerMix8bNoLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples SET_BACK_MIXER_POS } -void centerMix8bLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +void centerMix8bLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { const int8_t *base, *smpPtr; int8_t *smpTapPtr; @@ -205,19 +205,19 @@ void centerMix8bLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_8BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_8BIT_SMP_MONO_S8INTRP_TAP_FIX INC_POS } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_8BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_8BIT_SMP_MONO_S8INTRP_TAP_FIX INC_POS - RENDER_8BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_8BIT_SMP_MONO_S8INTRP_TAP_FIX INC_POS - RENDER_8BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_8BIT_SMP_MONO_S8INTRP_TAP_FIX INC_POS - RENDER_8BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_8BIT_SMP_MONO_S8INTRP_TAP_FIX INC_POS } } @@ -225,19 +225,19 @@ void centerMix8bLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_8BIT_SMP_MONO_SINTRP + RENDER_8BIT_SMP_MONO_S8INTRP INC_POS } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_8BIT_SMP_MONO_SINTRP + RENDER_8BIT_SMP_MONO_S8INTRP INC_POS - RENDER_8BIT_SMP_MONO_SINTRP + RENDER_8BIT_SMP_MONO_S8INTRP INC_POS - RENDER_8BIT_SMP_MONO_SINTRP + RENDER_8BIT_SMP_MONO_S8INTRP INC_POS - RENDER_8BIT_SMP_MONO_SINTRP + RENDER_8BIT_SMP_MONO_S8INTRP INC_POS } } @@ -248,7 +248,7 @@ void centerMix8bLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) SET_BACK_MIXER_POS } -void centerMix8bBidiLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +void centerMix8bBidiLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { const int8_t *base, *revBase, *smpPtr; int8_t *smpTapPtr; @@ -273,19 +273,19 @@ void centerMix8bBidiLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSampl { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_8BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_8BIT_SMP_MONO_S8INTRP_TAP_FIX INC_POS_BIDI } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_8BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_8BIT_SMP_MONO_S8INTRP_TAP_FIX INC_POS_BIDI - RENDER_8BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_8BIT_SMP_MONO_S8INTRP_TAP_FIX INC_POS_BIDI - RENDER_8BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_8BIT_SMP_MONO_S8INTRP_TAP_FIX INC_POS_BIDI - RENDER_8BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_8BIT_SMP_MONO_S8INTRP_TAP_FIX INC_POS_BIDI } } @@ -293,19 +293,19 @@ void centerMix8bBidiLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSampl { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_8BIT_SMP_MONO_SINTRP + RENDER_8BIT_SMP_MONO_S8INTRP INC_POS_BIDI } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_8BIT_SMP_MONO_SINTRP + RENDER_8BIT_SMP_MONO_S8INTRP INC_POS_BIDI - RENDER_8BIT_SMP_MONO_SINTRP + RENDER_8BIT_SMP_MONO_S8INTRP INC_POS_BIDI - RENDER_8BIT_SMP_MONO_SINTRP + RENDER_8BIT_SMP_MONO_S8INTRP INC_POS_BIDI - RENDER_8BIT_SMP_MONO_SINTRP + RENDER_8BIT_SMP_MONO_S8INTRP INC_POS_BIDI } } @@ -446,6 +446,185 @@ void centerMix8bBidiLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSampl SET_BACK_MIXER_POS } +void centerMix8bNoLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +{ + const int8_t *base, *smpPtr; + float fSample, *fMixBufferL, *fMixBufferR; + int32_t position; + uint32_t i, samplesToMix, samplesLeft; + uintCPUWord_t positionFrac; + + GET_VOL_MONO + GET_MIXER_VARS + SET_BASE8 + + samplesLeft = numSamples; + while (samplesLeft > 0) + { + LIMIT_MIX_NUM + samplesLeft -= samplesToMix; + + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_8BIT_SMP_MONO_S16INTRP + INC_POS + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_8BIT_SMP_MONO_S16INTRP + INC_POS + RENDER_8BIT_SMP_MONO_S16INTRP + INC_POS + RENDER_8BIT_SMP_MONO_S16INTRP + INC_POS + RENDER_8BIT_SMP_MONO_S16INTRP + INC_POS + } + + HANDLE_SAMPLE_END + } + + SET_BACK_MIXER_POS +} + +void centerMix8bLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +{ + const int8_t *base, *smpPtr; + int8_t *smpTapPtr; + float fSample, *fMixBufferL, *fMixBufferR; + int32_t position; + uint32_t i, samplesToMix, samplesLeft; + uintCPUWord_t positionFrac; + + GET_VOL_MONO + GET_MIXER_VARS + SET_BASE8 + PREPARE_TAP_FIX8 + + samplesLeft = numSamples; + while (samplesLeft > 0) + { + LIMIT_MIX_NUM + samplesLeft -= samplesToMix; + + if (v->hasLooped) // the negative interpolation taps need a special case after the sample has looped once + { + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_8BIT_SMP_MONO_S16INTRP_TAP_FIX + INC_POS + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_8BIT_SMP_MONO_S16INTRP_TAP_FIX + INC_POS + RENDER_8BIT_SMP_MONO_S16INTRP_TAP_FIX + INC_POS + RENDER_8BIT_SMP_MONO_S16INTRP_TAP_FIX + INC_POS + RENDER_8BIT_SMP_MONO_S16INTRP_TAP_FIX + INC_POS + } + } + else + { + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_8BIT_SMP_MONO_S16INTRP + INC_POS + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_8BIT_SMP_MONO_S16INTRP + INC_POS + RENDER_8BIT_SMP_MONO_S16INTRP + INC_POS + RENDER_8BIT_SMP_MONO_S16INTRP + INC_POS + RENDER_8BIT_SMP_MONO_S16INTRP + INC_POS + } + } + + WRAP_LOOP + } + + SET_BACK_MIXER_POS +} + +void centerMix8bBidiLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +{ + const int8_t *base, *revBase, *smpPtr; + int8_t *smpTapPtr; + float fSample, *fMixBufferL, *fMixBufferR; + int32_t position; + uint32_t i, samplesToMix, samplesLeft; + uintCPUWord_t positionFrac, tmpDelta; + + GET_VOL_MONO + GET_MIXER_VARS + SET_BASE8_BIDI + PREPARE_TAP_FIX8 + + samplesLeft = numSamples; + while (samplesLeft > 0) + { + LIMIT_MIX_NUM + samplesLeft -= samplesToMix; + + START_BIDI + if (v->hasLooped) // the negative interpolation taps need a special case after the sample has looped once + { + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_8BIT_SMP_MONO_S16INTRP_TAP_FIX + INC_POS_BIDI + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_8BIT_SMP_MONO_S16INTRP_TAP_FIX + INC_POS_BIDI + RENDER_8BIT_SMP_MONO_S16INTRP_TAP_FIX + INC_POS_BIDI + RENDER_8BIT_SMP_MONO_S16INTRP_TAP_FIX + INC_POS_BIDI + RENDER_8BIT_SMP_MONO_S16INTRP_TAP_FIX + INC_POS_BIDI + } + } + else + { + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_8BIT_SMP_MONO_S16INTRP + INC_POS_BIDI + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_8BIT_SMP_MONO_S16INTRP + INC_POS_BIDI + RENDER_8BIT_SMP_MONO_S16INTRP + INC_POS_BIDI + RENDER_8BIT_SMP_MONO_S16INTRP + INC_POS_BIDI + RENDER_8BIT_SMP_MONO_S16INTRP + INC_POS_BIDI + } + } + + END_BIDI + + WRAP_BIDI_LOOP + } + + SET_BACK_MIXER_POS +} + void centerMix8bRampNoLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { const int8_t *base, *smpPtr; @@ -598,7 +777,7 @@ void centerMix8bRampBidiLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples SET_BACK_MIXER_POS } -void centerMix8bRampNoLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +void centerMix8bRampNoLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { const int8_t *base, *smpPtr; float fSample, *fMixBufferL, *fMixBufferR; @@ -620,23 +799,23 @@ void centerMix8bRampNoLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSam for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_8BIT_SMP_MONO_SINTRP + RENDER_8BIT_SMP_MONO_S8INTRP VOLUME_RAMPING_MONO INC_POS } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_8BIT_SMP_MONO_SINTRP + RENDER_8BIT_SMP_MONO_S8INTRP VOLUME_RAMPING_MONO INC_POS - RENDER_8BIT_SMP_MONO_SINTRP + RENDER_8BIT_SMP_MONO_S8INTRP VOLUME_RAMPING_MONO INC_POS - RENDER_8BIT_SMP_MONO_SINTRP + RENDER_8BIT_SMP_MONO_S8INTRP VOLUME_RAMPING_MONO INC_POS - RENDER_8BIT_SMP_MONO_SINTRP + RENDER_8BIT_SMP_MONO_S8INTRP VOLUME_RAMPING_MONO INC_POS } @@ -648,7 +827,7 @@ void centerMix8bRampNoLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSam SET_BACK_MIXER_POS } -void centerMix8bRampLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +void centerMix8bRampLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { const int8_t *base, *smpPtr; int8_t *smpTapPtr; @@ -674,23 +853,23 @@ void centerMix8bRampLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSampl { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_8BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_8BIT_SMP_MONO_S8INTRP_TAP_FIX VOLUME_RAMPING_MONO INC_POS } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_8BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_8BIT_SMP_MONO_S8INTRP_TAP_FIX VOLUME_RAMPING_MONO INC_POS - RENDER_8BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_8BIT_SMP_MONO_S8INTRP_TAP_FIX VOLUME_RAMPING_MONO INC_POS - RENDER_8BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_8BIT_SMP_MONO_S8INTRP_TAP_FIX VOLUME_RAMPING_MONO INC_POS - RENDER_8BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_8BIT_SMP_MONO_S8INTRP_TAP_FIX VOLUME_RAMPING_MONO INC_POS } @@ -699,23 +878,23 @@ void centerMix8bRampLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSampl { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_8BIT_SMP_MONO_SINTRP + RENDER_8BIT_SMP_MONO_S8INTRP VOLUME_RAMPING_MONO INC_POS } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_8BIT_SMP_MONO_SINTRP + RENDER_8BIT_SMP_MONO_S8INTRP VOLUME_RAMPING_MONO INC_POS - RENDER_8BIT_SMP_MONO_SINTRP + RENDER_8BIT_SMP_MONO_S8INTRP VOLUME_RAMPING_MONO INC_POS - RENDER_8BIT_SMP_MONO_SINTRP + RENDER_8BIT_SMP_MONO_S8INTRP VOLUME_RAMPING_MONO INC_POS - RENDER_8BIT_SMP_MONO_SINTRP + RENDER_8BIT_SMP_MONO_S8INTRP VOLUME_RAMPING_MONO INC_POS } @@ -728,7 +907,7 @@ void centerMix8bRampLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSampl SET_BACK_MIXER_POS } -void centerMix8bRampBidiLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +void centerMix8bRampBidiLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { const int8_t *base, *revBase, *smpPtr; int8_t *smpTapPtr; @@ -755,23 +934,23 @@ void centerMix8bRampBidiLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numS { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_8BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_8BIT_SMP_MONO_S8INTRP_TAP_FIX VOLUME_RAMPING_MONO INC_POS_BIDI } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_8BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_8BIT_SMP_MONO_S8INTRP_TAP_FIX VOLUME_RAMPING_MONO INC_POS_BIDI - RENDER_8BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_8BIT_SMP_MONO_S8INTRP_TAP_FIX VOLUME_RAMPING_MONO INC_POS_BIDI - RENDER_8BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_8BIT_SMP_MONO_S8INTRP_TAP_FIX VOLUME_RAMPING_MONO INC_POS_BIDI - RENDER_8BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_8BIT_SMP_MONO_S8INTRP_TAP_FIX VOLUME_RAMPING_MONO INC_POS_BIDI } @@ -780,23 +959,23 @@ void centerMix8bRampBidiLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numS { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_8BIT_SMP_MONO_SINTRP + RENDER_8BIT_SMP_MONO_S8INTRP VOLUME_RAMPING_MONO INC_POS_BIDI } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_8BIT_SMP_MONO_SINTRP + RENDER_8BIT_SMP_MONO_S8INTRP VOLUME_RAMPING_MONO INC_POS_BIDI - RENDER_8BIT_SMP_MONO_SINTRP + RENDER_8BIT_SMP_MONO_S8INTRP VOLUME_RAMPING_MONO INC_POS_BIDI - RENDER_8BIT_SMP_MONO_SINTRP + RENDER_8BIT_SMP_MONO_S8INTRP VOLUME_RAMPING_MONO INC_POS_BIDI - RENDER_8BIT_SMP_MONO_SINTRP + RENDER_8BIT_SMP_MONO_S8INTRP VOLUME_RAMPING_MONO INC_POS_BIDI } @@ -962,116 +1141,328 @@ void centerMix8bRampBidiLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t numS SET_BACK_MIXER_POS } -/* ----------------------------------------------------------------------- */ -/* 16-BIT CENTER MIXING ROUTINES */ -/* ----------------------------------------------------------------------- */ - -void centerMix16bNoLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +void centerMix8bRampNoLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { - const int16_t *base, *smpPtr; + const int8_t *base, *smpPtr; float fSample, *fMixBufferL, *fMixBufferR; int32_t position; + float fVolumeLDelta, fVolumeL; uint32_t i, samplesToMix, samplesLeft; uintCPUWord_t positionFrac; - GET_VOL_MONO - GET_MIXER_VARS - SET_BASE16 + GET_VOL_MONO_RAMP + GET_MIXER_VARS_MONO_RAMP + SET_BASE8 samplesLeft = numSamples; while (samplesLeft > 0) { LIMIT_MIX_NUM + LIMIT_MIX_NUM_MONO_RAMP samplesLeft -= samplesToMix; for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_16BIT_SMP_MONO + RENDER_8BIT_SMP_MONO_S16INTRP + VOLUME_RAMPING_MONO INC_POS } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_16BIT_SMP_MONO + RENDER_8BIT_SMP_MONO_S16INTRP + VOLUME_RAMPING_MONO INC_POS - RENDER_16BIT_SMP_MONO + RENDER_8BIT_SMP_MONO_S16INTRP + VOLUME_RAMPING_MONO INC_POS - RENDER_16BIT_SMP_MONO + RENDER_8BIT_SMP_MONO_S16INTRP + VOLUME_RAMPING_MONO INC_POS - RENDER_16BIT_SMP_MONO + RENDER_8BIT_SMP_MONO_S16INTRP + VOLUME_RAMPING_MONO INC_POS } HANDLE_SAMPLE_END } + SET_VOL_BACK_MONO SET_BACK_MIXER_POS } -void centerMix16bLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +void centerMix8bRampLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { - const int16_t *base, *smpPtr; + const int8_t *base, *smpPtr; + int8_t *smpTapPtr; float fSample, *fMixBufferL, *fMixBufferR; int32_t position; + float fVolumeLDelta, fVolumeL; uint32_t i, samplesToMix, samplesLeft; uintCPUWord_t positionFrac; - GET_VOL_MONO - GET_MIXER_VARS - SET_BASE16 + GET_VOL_MONO_RAMP + GET_MIXER_VARS_MONO_RAMP + SET_BASE8 + PREPARE_TAP_FIX8 samplesLeft = numSamples; while (samplesLeft > 0) { LIMIT_MIX_NUM + LIMIT_MIX_NUM_MONO_RAMP samplesLeft -= samplesToMix; - for (i = 0; i < (samplesToMix & 3); i++) + if (v->hasLooped) // the negative interpolation taps need a special case after the sample has looped once { - RENDER_16BIT_SMP_MONO - INC_POS + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_8BIT_SMP_MONO_S16INTRP_TAP_FIX + VOLUME_RAMPING_MONO + INC_POS + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_8BIT_SMP_MONO_S16INTRP_TAP_FIX + VOLUME_RAMPING_MONO + INC_POS + RENDER_8BIT_SMP_MONO_S16INTRP_TAP_FIX + VOLUME_RAMPING_MONO + INC_POS + RENDER_8BIT_SMP_MONO_S16INTRP_TAP_FIX + VOLUME_RAMPING_MONO + INC_POS + RENDER_8BIT_SMP_MONO_S16INTRP_TAP_FIX + VOLUME_RAMPING_MONO + INC_POS + } } - samplesToMix >>= 2; - for (i = 0; i < samplesToMix; i++) + else { - RENDER_16BIT_SMP_MONO - INC_POS - RENDER_16BIT_SMP_MONO - INC_POS - RENDER_16BIT_SMP_MONO - INC_POS - RENDER_16BIT_SMP_MONO - INC_POS + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_8BIT_SMP_MONO_S16INTRP + VOLUME_RAMPING_MONO + INC_POS + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_8BIT_SMP_MONO_S16INTRP + VOLUME_RAMPING_MONO + INC_POS + RENDER_8BIT_SMP_MONO_S16INTRP + VOLUME_RAMPING_MONO + INC_POS + RENDER_8BIT_SMP_MONO_S16INTRP + VOLUME_RAMPING_MONO + INC_POS + RENDER_8BIT_SMP_MONO_S16INTRP + VOLUME_RAMPING_MONO + INC_POS + } } WRAP_LOOP } + SET_VOL_BACK_MONO SET_BACK_MIXER_POS } -void centerMix16bBidiLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +void centerMix8bRampBidiLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { - const int16_t *base, *revBase, *smpPtr; + const int8_t *base, *revBase, *smpPtr; + int8_t *smpTapPtr; float fSample, *fMixBufferL, *fMixBufferR; int32_t position; + float fVolumeLDelta, fVolumeL; uint32_t i, samplesToMix, samplesLeft; uintCPUWord_t positionFrac, tmpDelta; - GET_VOL_MONO - GET_MIXER_VARS - SET_BASE16_BIDI + GET_VOL_MONO_RAMP + GET_MIXER_VARS_MONO_RAMP + SET_BASE8_BIDI + PREPARE_TAP_FIX8 samplesLeft = numSamples; while (samplesLeft > 0) { LIMIT_MIX_NUM + LIMIT_MIX_NUM_MONO_RAMP samplesLeft -= samplesToMix; START_BIDI - for (i = 0; i < (samplesToMix & 3); i++) + if (v->hasLooped) // the negative interpolation taps need a special case after the sample has looped once { - RENDER_16BIT_SMP_MONO + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_8BIT_SMP_MONO_S16INTRP_TAP_FIX + VOLUME_RAMPING_MONO + INC_POS_BIDI + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_8BIT_SMP_MONO_S16INTRP_TAP_FIX + VOLUME_RAMPING_MONO + INC_POS_BIDI + RENDER_8BIT_SMP_MONO_S16INTRP_TAP_FIX + VOLUME_RAMPING_MONO + INC_POS_BIDI + RENDER_8BIT_SMP_MONO_S16INTRP_TAP_FIX + VOLUME_RAMPING_MONO + INC_POS_BIDI + RENDER_8BIT_SMP_MONO_S16INTRP_TAP_FIX + VOLUME_RAMPING_MONO + INC_POS_BIDI + } + } + else + { + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_8BIT_SMP_MONO_S16INTRP + VOLUME_RAMPING_MONO + INC_POS_BIDI + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_8BIT_SMP_MONO_S16INTRP + VOLUME_RAMPING_MONO + INC_POS_BIDI + RENDER_8BIT_SMP_MONO_S16INTRP + VOLUME_RAMPING_MONO + INC_POS_BIDI + RENDER_8BIT_SMP_MONO_S16INTRP + VOLUME_RAMPING_MONO + INC_POS_BIDI + RENDER_8BIT_SMP_MONO_S16INTRP + VOLUME_RAMPING_MONO + INC_POS_BIDI + } + } + END_BIDI + + WRAP_BIDI_LOOP + } + + SET_VOL_BACK_MONO + SET_BACK_MIXER_POS +} + +/* ----------------------------------------------------------------------- */ +/* 16-BIT CENTER MIXING ROUTINES */ +/* ----------------------------------------------------------------------- */ + +void centerMix16bNoLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +{ + const int16_t *base, *smpPtr; + float fSample, *fMixBufferL, *fMixBufferR; + int32_t position; + uint32_t i, samplesToMix, samplesLeft; + uintCPUWord_t positionFrac; + + GET_VOL_MONO + GET_MIXER_VARS + SET_BASE16 + + samplesLeft = numSamples; + while (samplesLeft > 0) + { + LIMIT_MIX_NUM + samplesLeft -= samplesToMix; + + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_16BIT_SMP_MONO + INC_POS + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_16BIT_SMP_MONO + INC_POS + RENDER_16BIT_SMP_MONO + INC_POS + RENDER_16BIT_SMP_MONO + INC_POS + RENDER_16BIT_SMP_MONO + INC_POS + } + + HANDLE_SAMPLE_END + } + + SET_BACK_MIXER_POS +} + +void centerMix16bLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +{ + const int16_t *base, *smpPtr; + float fSample, *fMixBufferL, *fMixBufferR; + int32_t position; + uint32_t i, samplesToMix, samplesLeft; + uintCPUWord_t positionFrac; + + GET_VOL_MONO + GET_MIXER_VARS + SET_BASE16 + + samplesLeft = numSamples; + while (samplesLeft > 0) + { + LIMIT_MIX_NUM + samplesLeft -= samplesToMix; + + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_16BIT_SMP_MONO + INC_POS + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_16BIT_SMP_MONO + INC_POS + RENDER_16BIT_SMP_MONO + INC_POS + RENDER_16BIT_SMP_MONO + INC_POS + RENDER_16BIT_SMP_MONO + INC_POS + } + + WRAP_LOOP + } + + SET_BACK_MIXER_POS +} + +void centerMix16bBidiLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +{ + const int16_t *base, *revBase, *smpPtr; + float fSample, *fMixBufferL, *fMixBufferR; + int32_t position; + uint32_t i, samplesToMix, samplesLeft; + uintCPUWord_t positionFrac, tmpDelta; + + GET_VOL_MONO + GET_MIXER_VARS + SET_BASE16_BIDI + + samplesLeft = numSamples; + while (samplesLeft > 0) + { + LIMIT_MIX_NUM + samplesLeft -= samplesToMix; + + START_BIDI + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_16BIT_SMP_MONO INC_POS_BIDI } samplesToMix >>= 2; @@ -1094,7 +1485,7 @@ void centerMix16bBidiLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples) SET_BACK_MIXER_POS } -void centerMix16bNoLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +void centerMix16bNoLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { const int16_t *base, *smpPtr; float fSample, *fMixBufferL, *fMixBufferR; @@ -1114,19 +1505,19 @@ void centerMix16bNoLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSample for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_16BIT_SMP_MONO_SINTRP + RENDER_16BIT_SMP_MONO_S8INTRP INC_POS } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_16BIT_SMP_MONO_SINTRP + RENDER_16BIT_SMP_MONO_S8INTRP INC_POS - RENDER_16BIT_SMP_MONO_SINTRP + RENDER_16BIT_SMP_MONO_S8INTRP INC_POS - RENDER_16BIT_SMP_MONO_SINTRP + RENDER_16BIT_SMP_MONO_S8INTRP INC_POS - RENDER_16BIT_SMP_MONO_SINTRP + RENDER_16BIT_SMP_MONO_S8INTRP INC_POS } @@ -1136,7 +1527,7 @@ void centerMix16bNoLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSample SET_BACK_MIXER_POS } -void centerMix16bLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +void centerMix16bLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { const int16_t *base, *smpPtr; int16_t *smpTapPtr; @@ -1160,19 +1551,19 @@ void centerMix16bLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_16BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_16BIT_SMP_MONO_S8INTRP_TAP_FIX INC_POS } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_16BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_16BIT_SMP_MONO_S8INTRP_TAP_FIX INC_POS - RENDER_16BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_16BIT_SMP_MONO_S8INTRP_TAP_FIX INC_POS - RENDER_16BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_16BIT_SMP_MONO_S8INTRP_TAP_FIX INC_POS - RENDER_16BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_16BIT_SMP_MONO_S8INTRP_TAP_FIX INC_POS } } @@ -1180,19 +1571,19 @@ void centerMix16bLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_16BIT_SMP_MONO_SINTRP + RENDER_16BIT_SMP_MONO_S8INTRP INC_POS } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_16BIT_SMP_MONO_SINTRP + RENDER_16BIT_SMP_MONO_S8INTRP INC_POS - RENDER_16BIT_SMP_MONO_SINTRP + RENDER_16BIT_SMP_MONO_S8INTRP INC_POS - RENDER_16BIT_SMP_MONO_SINTRP + RENDER_16BIT_SMP_MONO_S8INTRP INC_POS - RENDER_16BIT_SMP_MONO_SINTRP + RENDER_16BIT_SMP_MONO_S8INTRP INC_POS } } @@ -1203,7 +1594,7 @@ void centerMix16bLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) SET_BACK_MIXER_POS } -void centerMix16bBidiLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +void centerMix16bBidiLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { const int16_t *base, *revBase, *smpPtr; int16_t *smpTapPtr; @@ -1228,19 +1619,19 @@ void centerMix16bBidiLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamp { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_16BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_16BIT_SMP_MONO_S8INTRP_TAP_FIX INC_POS_BIDI } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_16BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_16BIT_SMP_MONO_S8INTRP_TAP_FIX INC_POS_BIDI - RENDER_16BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_16BIT_SMP_MONO_S8INTRP_TAP_FIX INC_POS_BIDI - RENDER_16BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_16BIT_SMP_MONO_S8INTRP_TAP_FIX INC_POS_BIDI - RENDER_16BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_16BIT_SMP_MONO_S8INTRP_TAP_FIX INC_POS_BIDI } } @@ -1248,19 +1639,19 @@ void centerMix16bBidiLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamp { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_16BIT_SMP_MONO_SINTRP + RENDER_16BIT_SMP_MONO_S8INTRP INC_POS_BIDI } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_16BIT_SMP_MONO_SINTRP + RENDER_16BIT_SMP_MONO_S8INTRP INC_POS_BIDI - RENDER_16BIT_SMP_MONO_SINTRP + RENDER_16BIT_SMP_MONO_S8INTRP INC_POS_BIDI - RENDER_16BIT_SMP_MONO_SINTRP + RENDER_16BIT_SMP_MONO_S8INTRP INC_POS_BIDI - RENDER_16BIT_SMP_MONO_SINTRP + RENDER_16BIT_SMP_MONO_S8INTRP INC_POS_BIDI } } @@ -1400,6 +1791,183 @@ void centerMix16bBidiLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamp SET_BACK_MIXER_POS } +void centerMix16bNoLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +{ + const int16_t *base, *smpPtr; + float fSample, *fMixBufferL, *fMixBufferR; + int32_t position; + uint32_t i, samplesToMix, samplesLeft; + uintCPUWord_t positionFrac; + + GET_VOL_MONO + GET_MIXER_VARS + SET_BASE16 + + samplesLeft = numSamples; + while (samplesLeft > 0) + { + LIMIT_MIX_NUM + samplesLeft -= samplesToMix; + + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_16BIT_SMP_MONO_S16INTRP + INC_POS + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_16BIT_SMP_MONO_S16INTRP + INC_POS + RENDER_16BIT_SMP_MONO_S16INTRP + INC_POS + RENDER_16BIT_SMP_MONO_S16INTRP + INC_POS + RENDER_16BIT_SMP_MONO_S16INTRP + INC_POS + } + + HANDLE_SAMPLE_END + } + + SET_BACK_MIXER_POS +} + +void centerMix16bLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +{ + const int16_t *base, *smpPtr; + int16_t *smpTapPtr; + float fSample, *fMixBufferL, *fMixBufferR; + int32_t position; + uint32_t i, samplesToMix, samplesLeft; + uintCPUWord_t positionFrac; + + GET_VOL_MONO + GET_MIXER_VARS + SET_BASE16 + PREPARE_TAP_FIX16 + + samplesLeft = numSamples; + while (samplesLeft > 0) + { + LIMIT_MIX_NUM + samplesLeft -= samplesToMix; + + if (v->hasLooped) // the negative interpolation taps need a special case after the sample has looped once + { + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_16BIT_SMP_MONO_S16INTRP_TAP_FIX + INC_POS + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_16BIT_SMP_MONO_S16INTRP_TAP_FIX + INC_POS + RENDER_16BIT_SMP_MONO_S16INTRP_TAP_FIX + INC_POS + RENDER_16BIT_SMP_MONO_S16INTRP_TAP_FIX + INC_POS + RENDER_16BIT_SMP_MONO_S16INTRP_TAP_FIX + INC_POS + } + } + else + { + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_16BIT_SMP_MONO_S16INTRP + INC_POS + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_16BIT_SMP_MONO_S16INTRP + INC_POS + RENDER_16BIT_SMP_MONO_S16INTRP + INC_POS + RENDER_16BIT_SMP_MONO_S16INTRP + INC_POS + RENDER_16BIT_SMP_MONO_S16INTRP + INC_POS + } + } + + WRAP_LOOP + } + + SET_BACK_MIXER_POS +} + +void centerMix16bBidiLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +{ + const int16_t *base, *revBase, *smpPtr; + int16_t *smpTapPtr; + float fSample, *fMixBufferL, *fMixBufferR; + int32_t position; + uint32_t i, samplesToMix, samplesLeft; + uintCPUWord_t positionFrac, tmpDelta; + + GET_VOL_MONO + GET_MIXER_VARS + SET_BASE16_BIDI + PREPARE_TAP_FIX16 + + samplesLeft = numSamples; + while (samplesLeft > 0) + { + LIMIT_MIX_NUM + samplesLeft -= samplesToMix; + + START_BIDI + if (v->hasLooped) // the negative interpolation taps need a special case after the sample has looped once + { + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_16BIT_SMP_MONO_S16INTRP_TAP_FIX + INC_POS_BIDI + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_16BIT_SMP_MONO_S16INTRP_TAP_FIX + INC_POS_BIDI + RENDER_16BIT_SMP_MONO_S16INTRP_TAP_FIX + INC_POS_BIDI + RENDER_16BIT_SMP_MONO_S16INTRP_TAP_FIX + INC_POS_BIDI + RENDER_16BIT_SMP_MONO_S16INTRP_TAP_FIX + INC_POS_BIDI + } + } + else + { + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_16BIT_SMP_MONO_S16INTRP + INC_POS_BIDI + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_16BIT_SMP_MONO_S16INTRP + INC_POS_BIDI + RENDER_16BIT_SMP_MONO_S16INTRP + INC_POS_BIDI + RENDER_16BIT_SMP_MONO_S16INTRP + INC_POS_BIDI + RENDER_16BIT_SMP_MONO_S16INTRP + INC_POS_BIDI + } + } + END_BIDI + + WRAP_BIDI_LOOP + } + + SET_BACK_MIXER_POS +} void centerMix16bRampNoLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { @@ -1553,7 +2121,7 @@ void centerMix16bRampBidiLoop(voice_t *v, uint32_t bufferPos, uint32_t numSample SET_BACK_MIXER_POS } -void centerMix16bRampNoLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +void centerMix16bRampNoLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { const int16_t *base, *smpPtr; float fSample, *fMixBufferL, *fMixBufferR; @@ -1575,23 +2143,23 @@ void centerMix16bRampNoLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSa for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_16BIT_SMP_MONO_SINTRP + RENDER_16BIT_SMP_MONO_S8INTRP VOLUME_RAMPING_MONO INC_POS } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_16BIT_SMP_MONO_SINTRP + RENDER_16BIT_SMP_MONO_S8INTRP VOLUME_RAMPING_MONO INC_POS - RENDER_16BIT_SMP_MONO_SINTRP + RENDER_16BIT_SMP_MONO_S8INTRP VOLUME_RAMPING_MONO INC_POS - RENDER_16BIT_SMP_MONO_SINTRP + RENDER_16BIT_SMP_MONO_S8INTRP VOLUME_RAMPING_MONO INC_POS - RENDER_16BIT_SMP_MONO_SINTRP + RENDER_16BIT_SMP_MONO_S8INTRP VOLUME_RAMPING_MONO INC_POS } @@ -1603,7 +2171,7 @@ void centerMix16bRampNoLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSa SET_BACK_MIXER_POS } -void centerMix16bRampLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +void centerMix16bRampLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { const int16_t *base, *smpPtr; int16_t *smpTapPtr; @@ -1629,23 +2197,23 @@ void centerMix16bRampLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamp { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_16BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_16BIT_SMP_MONO_S8INTRP_TAP_FIX VOLUME_RAMPING_MONO INC_POS } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_16BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_16BIT_SMP_MONO_S8INTRP_TAP_FIX VOLUME_RAMPING_MONO INC_POS - RENDER_16BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_16BIT_SMP_MONO_S8INTRP_TAP_FIX VOLUME_RAMPING_MONO INC_POS - RENDER_16BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_16BIT_SMP_MONO_S8INTRP_TAP_FIX VOLUME_RAMPING_MONO INC_POS - RENDER_16BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_16BIT_SMP_MONO_S8INTRP_TAP_FIX VOLUME_RAMPING_MONO INC_POS } @@ -1654,23 +2222,23 @@ void centerMix16bRampLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamp { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_16BIT_SMP_MONO_SINTRP + RENDER_16BIT_SMP_MONO_S8INTRP VOLUME_RAMPING_MONO INC_POS } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_16BIT_SMP_MONO_SINTRP + RENDER_16BIT_SMP_MONO_S8INTRP VOLUME_RAMPING_MONO INC_POS - RENDER_16BIT_SMP_MONO_SINTRP + RENDER_16BIT_SMP_MONO_S8INTRP VOLUME_RAMPING_MONO INC_POS - RENDER_16BIT_SMP_MONO_SINTRP + RENDER_16BIT_SMP_MONO_S8INTRP VOLUME_RAMPING_MONO INC_POS - RENDER_16BIT_SMP_MONO_SINTRP + RENDER_16BIT_SMP_MONO_S8INTRP VOLUME_RAMPING_MONO INC_POS } @@ -1683,7 +2251,7 @@ void centerMix16bRampLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamp SET_BACK_MIXER_POS } -void centerMix16bRampBidiLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +void centerMix16bRampBidiLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { const int16_t *base, *revBase, *smpPtr; int16_t *smpTapPtr; @@ -1710,23 +2278,23 @@ void centerMix16bRampBidiLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t num { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_16BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_16BIT_SMP_MONO_S8INTRP_TAP_FIX VOLUME_RAMPING_MONO INC_POS_BIDI } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_16BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_16BIT_SMP_MONO_S8INTRP_TAP_FIX VOLUME_RAMPING_MONO INC_POS_BIDI - RENDER_16BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_16BIT_SMP_MONO_S8INTRP_TAP_FIX VOLUME_RAMPING_MONO INC_POS_BIDI - RENDER_16BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_16BIT_SMP_MONO_S8INTRP_TAP_FIX VOLUME_RAMPING_MONO INC_POS_BIDI - RENDER_16BIT_SMP_MONO_SINTRP_TAP_FIX + RENDER_16BIT_SMP_MONO_S8INTRP_TAP_FIX VOLUME_RAMPING_MONO INC_POS_BIDI } @@ -1735,23 +2303,23 @@ void centerMix16bRampBidiLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t num { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_16BIT_SMP_MONO_SINTRP + RENDER_16BIT_SMP_MONO_S8INTRP VOLUME_RAMPING_MONO INC_POS_BIDI } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_16BIT_SMP_MONO_SINTRP + RENDER_16BIT_SMP_MONO_S8INTRP VOLUME_RAMPING_MONO INC_POS_BIDI - RENDER_16BIT_SMP_MONO_SINTRP + RENDER_16BIT_SMP_MONO_S8INTRP VOLUME_RAMPING_MONO INC_POS_BIDI - RENDER_16BIT_SMP_MONO_SINTRP + RENDER_16BIT_SMP_MONO_S8INTRP VOLUME_RAMPING_MONO INC_POS_BIDI - RENDER_16BIT_SMP_MONO_SINTRP + RENDER_16BIT_SMP_MONO_S8INTRP VOLUME_RAMPING_MONO INC_POS_BIDI } @@ -1916,3 +2484,215 @@ void centerMix16bRampBidiLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t num SET_VOL_BACK_MONO SET_BACK_MIXER_POS } + +void centerMix16bRampNoLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +{ + const int16_t *base, *smpPtr; + float fSample, *fMixBufferL, *fMixBufferR; + int32_t position; + float fVolumeLDelta, fVolumeL; + uint32_t i, samplesToMix, samplesLeft; + uintCPUWord_t positionFrac; + + GET_VOL_MONO_RAMP + GET_MIXER_VARS_MONO_RAMP + SET_BASE16 + + samplesLeft = numSamples; + while (samplesLeft > 0) + { + LIMIT_MIX_NUM + LIMIT_MIX_NUM_MONO_RAMP + samplesLeft -= samplesToMix; + + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_16BIT_SMP_MONO_S16INTRP + VOLUME_RAMPING_MONO + INC_POS + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_16BIT_SMP_MONO_S16INTRP + VOLUME_RAMPING_MONO + INC_POS + RENDER_16BIT_SMP_MONO_S16INTRP + VOLUME_RAMPING_MONO + INC_POS + RENDER_16BIT_SMP_MONO_S16INTRP + VOLUME_RAMPING_MONO + INC_POS + RENDER_16BIT_SMP_MONO_S16INTRP + VOLUME_RAMPING_MONO + INC_POS + } + + HANDLE_SAMPLE_END + } + + SET_VOL_BACK_MONO + SET_BACK_MIXER_POS +} + +void centerMix16bRampLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +{ + const int16_t *base, *smpPtr; + int16_t *smpTapPtr; + float fSample, *fMixBufferL, *fMixBufferR; + int32_t position; + float fVolumeLDelta, fVolumeL; + uint32_t i, samplesToMix, samplesLeft; + uintCPUWord_t positionFrac; + + GET_VOL_MONO_RAMP + GET_MIXER_VARS_MONO_RAMP + SET_BASE16 + PREPARE_TAP_FIX16 + + samplesLeft = numSamples; + while (samplesLeft > 0) + { + LIMIT_MIX_NUM + LIMIT_MIX_NUM_MONO_RAMP + samplesLeft -= samplesToMix; + + if (v->hasLooped) // the negative interpolation taps need a special case after the sample has looped once + { + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_16BIT_SMP_MONO_S16INTRP_TAP_FIX + VOLUME_RAMPING_MONO + INC_POS + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_16BIT_SMP_MONO_S16INTRP_TAP_FIX + VOLUME_RAMPING_MONO + INC_POS + RENDER_16BIT_SMP_MONO_S16INTRP_TAP_FIX + VOLUME_RAMPING_MONO + INC_POS + RENDER_16BIT_SMP_MONO_S16INTRP_TAP_FIX + VOLUME_RAMPING_MONO + INC_POS + RENDER_16BIT_SMP_MONO_S16INTRP_TAP_FIX + VOLUME_RAMPING_MONO + INC_POS + } + } + else + { + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_16BIT_SMP_MONO_S16INTRP + VOLUME_RAMPING_MONO + INC_POS + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_16BIT_SMP_MONO_S16INTRP + VOLUME_RAMPING_MONO + INC_POS + RENDER_16BIT_SMP_MONO_S16INTRP + VOLUME_RAMPING_MONO + INC_POS + RENDER_16BIT_SMP_MONO_S16INTRP + VOLUME_RAMPING_MONO + INC_POS + RENDER_16BIT_SMP_MONO_S16INTRP + VOLUME_RAMPING_MONO + INC_POS + } + } + + WRAP_LOOP + } + + SET_VOL_BACK_MONO + SET_BACK_MIXER_POS +} + +void centerMix16bRampBidiLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +{ + const int16_t *base, *revBase, *smpPtr; + int16_t *smpTapPtr; + float fSample, *fMixBufferL, *fMixBufferR; + int32_t position; + float fVolumeLDelta, fVolumeL; + uint32_t i, samplesToMix, samplesLeft; + uintCPUWord_t positionFrac, tmpDelta; + + GET_VOL_MONO_RAMP + GET_MIXER_VARS_MONO_RAMP + SET_BASE16_BIDI + PREPARE_TAP_FIX16 + + samplesLeft = numSamples; + while (samplesLeft > 0) + { + LIMIT_MIX_NUM + LIMIT_MIX_NUM_MONO_RAMP + samplesLeft -= samplesToMix; + + START_BIDI + if (v->hasLooped) // the negative interpolation taps need a special case after the sample has looped once + { + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_16BIT_SMP_MONO_S16INTRP_TAP_FIX + VOLUME_RAMPING_MONO + INC_POS_BIDI + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_16BIT_SMP_MONO_S16INTRP_TAP_FIX + VOLUME_RAMPING_MONO + INC_POS_BIDI + RENDER_16BIT_SMP_MONO_S16INTRP_TAP_FIX + VOLUME_RAMPING_MONO + INC_POS_BIDI + RENDER_16BIT_SMP_MONO_S16INTRP_TAP_FIX + VOLUME_RAMPING_MONO + INC_POS_BIDI + RENDER_16BIT_SMP_MONO_S16INTRP_TAP_FIX + VOLUME_RAMPING_MONO + INC_POS_BIDI + } + } + else + { + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_16BIT_SMP_MONO_S16INTRP + VOLUME_RAMPING_MONO + INC_POS_BIDI + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_16BIT_SMP_MONO_S16INTRP + VOLUME_RAMPING_MONO + INC_POS_BIDI + RENDER_16BIT_SMP_MONO_S16INTRP + VOLUME_RAMPING_MONO + INC_POS_BIDI + RENDER_16BIT_SMP_MONO_S16INTRP + VOLUME_RAMPING_MONO + INC_POS_BIDI + RENDER_16BIT_SMP_MONO_S16INTRP + VOLUME_RAMPING_MONO + INC_POS_BIDI + } + } + END_BIDI + + WRAP_BIDI_LOOP + } + + SET_VOL_BACK_MONO + SET_BACK_MIXER_POS +} diff --git a/src/mixer/ft2_center_mix.h b/src/mixer/ft2_center_mix.h @@ -9,23 +9,29 @@ void centerMix8bNoLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples); void centerMix8bLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples); void centerMix8bBidiLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples); -void centerMix8bNoLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); -void centerMix8bLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); -void centerMix8bBidiLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); +void centerMix8bNoLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); +void centerMix8bLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); +void centerMix8bBidiLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); void centerMix8bNoLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); void centerMix8bLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); void centerMix8bBidiLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); +void centerMix8bNoLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); +void centerMix8bLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); +void centerMix8bBidiLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); // 16-bit void centerMix16bNoLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples); void centerMix16bLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples); void centerMix16bBidiLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples); -void centerMix16bNoLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); -void centerMix16bLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); -void centerMix16bBidiLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); +void centerMix16bNoLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); +void centerMix16bLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); +void centerMix16bBidiLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); void centerMix16bNoLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); void centerMix16bLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); void centerMix16bBidiLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); +void centerMix16bNoLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); +void centerMix16bLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); +void centerMix16bBidiLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); // volume ramping @@ -33,20 +39,26 @@ void centerMix16bBidiLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamp void centerMix8bRampNoLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples); void centerMix8bRampLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples); void centerMix8bRampBidiLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples); -void centerMix8bRampNoLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); -void centerMix8bRampLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); -void centerMix8bRampBidiLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); +void centerMix8bRampNoLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); +void centerMix8bRampLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); +void centerMix8bRampBidiLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); void centerMix8bRampNoLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); void centerMix8bRampLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); void centerMix8bRampBidiLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); +void centerMix8bRampNoLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); +void centerMix8bRampLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); +void centerMix8bRampBidiLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); // 16bit void centerMix16bRampNoLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples); void centerMix16bRampLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples); void centerMix16bRampBidiLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples); -void centerMix16bRampNoLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); -void centerMix16bRampLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); -void centerMix16bRampBidiLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); +void centerMix16bRampNoLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); +void centerMix16bRampLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); +void centerMix16bRampBidiLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); void centerMix16bRampNoLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); void centerMix16bRampLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); void centerMix16bRampBidiLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); +void centerMix16bRampNoLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); +void centerMix16bRampLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); +void centerMix16bRampBidiLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples); +\ No newline at end of file diff --git a/src/mixer/ft2_mix.c b/src/mixer/ft2_mix.c @@ -10,7 +10,7 @@ ** (Note: Mixing macros can be found in ft2_mix_macros.h) ** ** Specifications: -** - No interpolation, 2-tap linear interpolation (FT2) or 8-tap windowed-sinc interpolation +** - Interpolation: None, 2-tap linear, 8-tap windowed-sinc, 16-tap windowed-sinc ** - FT2-styled linear volume ramping (can be turned off) ** - 32.32 (16.16 if 32-bit CPU) fixed-point precision for resampling delta/position ** - 32-bit floating-point precision for mixing and interpolation @@ -159,7 +159,7 @@ static void mix8bBidiLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples) SET_BACK_MIXER_POS } -static void mix8bNoLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +static void mix8bNoLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { const int8_t *base, *smpPtr; float fSample, *fMixBufferL, *fMixBufferR; @@ -179,19 +179,19 @@ static void mix8bNoLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSample for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_8BIT_SMP_SINTRP + RENDER_8BIT_SMP_S8INTRP INC_POS } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_8BIT_SMP_SINTRP + RENDER_8BIT_SMP_S8INTRP INC_POS - RENDER_8BIT_SMP_SINTRP + RENDER_8BIT_SMP_S8INTRP INC_POS - RENDER_8BIT_SMP_SINTRP + RENDER_8BIT_SMP_S8INTRP INC_POS - RENDER_8BIT_SMP_SINTRP + RENDER_8BIT_SMP_S8INTRP INC_POS } @@ -201,7 +201,7 @@ static void mix8bNoLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSample SET_BACK_MIXER_POS } -static void mix8bLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +static void mix8bLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { const int8_t *base, *smpPtr; int8_t *smpTapPtr; @@ -225,19 +225,19 @@ static void mix8bLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_8BIT_SMP_SINTRP_TAP_FIX + RENDER_8BIT_SMP_S8INTRP_TAP_FIX INC_POS } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_8BIT_SMP_SINTRP_TAP_FIX + RENDER_8BIT_SMP_S8INTRP_TAP_FIX INC_POS - RENDER_8BIT_SMP_SINTRP_TAP_FIX + RENDER_8BIT_SMP_S8INTRP_TAP_FIX INC_POS - RENDER_8BIT_SMP_SINTRP_TAP_FIX + RENDER_8BIT_SMP_S8INTRP_TAP_FIX INC_POS - RENDER_8BIT_SMP_SINTRP_TAP_FIX + RENDER_8BIT_SMP_S8INTRP_TAP_FIX INC_POS } } @@ -245,19 +245,19 @@ static void mix8bLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_8BIT_SMP_SINTRP + RENDER_8BIT_SMP_S8INTRP INC_POS } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_8BIT_SMP_SINTRP + RENDER_8BIT_SMP_S8INTRP INC_POS - RENDER_8BIT_SMP_SINTRP + RENDER_8BIT_SMP_S8INTRP INC_POS - RENDER_8BIT_SMP_SINTRP + RENDER_8BIT_SMP_S8INTRP INC_POS - RENDER_8BIT_SMP_SINTRP + RENDER_8BIT_SMP_S8INTRP INC_POS } } @@ -268,7 +268,7 @@ static void mix8bLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) SET_BACK_MIXER_POS } -static void mix8bBidiLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +static void mix8bBidiLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { const int8_t *base, *revBase, *smpPtr; int8_t *smpTapPtr; @@ -293,19 +293,19 @@ static void mix8bBidiLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamp { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_8BIT_SMP_SINTRP_TAP_FIX + RENDER_8BIT_SMP_S8INTRP_TAP_FIX INC_POS_BIDI } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_8BIT_SMP_SINTRP_TAP_FIX + RENDER_8BIT_SMP_S8INTRP_TAP_FIX INC_POS_BIDI - RENDER_8BIT_SMP_SINTRP_TAP_FIX + RENDER_8BIT_SMP_S8INTRP_TAP_FIX INC_POS_BIDI - RENDER_8BIT_SMP_SINTRP_TAP_FIX + RENDER_8BIT_SMP_S8INTRP_TAP_FIX INC_POS_BIDI - RENDER_8BIT_SMP_SINTRP_TAP_FIX + RENDER_8BIT_SMP_S8INTRP_TAP_FIX INC_POS_BIDI } } @@ -313,19 +313,19 @@ static void mix8bBidiLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamp { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_8BIT_SMP_SINTRP + RENDER_8BIT_SMP_S8INTRP INC_POS_BIDI } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_8BIT_SMP_SINTRP + RENDER_8BIT_SMP_S8INTRP INC_POS_BIDI - RENDER_8BIT_SMP_SINTRP + RENDER_8BIT_SMP_S8INTRP INC_POS_BIDI - RENDER_8BIT_SMP_SINTRP + RENDER_8BIT_SMP_S8INTRP INC_POS_BIDI - RENDER_8BIT_SMP_SINTRP + RENDER_8BIT_SMP_S8INTRP INC_POS_BIDI } } @@ -465,6 +465,184 @@ static void mix8bBidiLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamp SET_BACK_MIXER_POS } +static void mix8bNoLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +{ + const int8_t *base, *smpPtr; + float fSample, *fMixBufferL, *fMixBufferR; + int32_t position; + uint32_t i, samplesToMix, samplesLeft; + uintCPUWord_t positionFrac; + + GET_VOL + GET_MIXER_VARS + SET_BASE8 + + samplesLeft = numSamples; + while (samplesLeft > 0) + { + LIMIT_MIX_NUM + samplesLeft -= samplesToMix; + + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_8BIT_SMP_S16INTRP + INC_POS + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_8BIT_SMP_S16INTRP + INC_POS + RENDER_8BIT_SMP_S16INTRP + INC_POS + RENDER_8BIT_SMP_S16INTRP + INC_POS + RENDER_8BIT_SMP_S16INTRP + INC_POS + } + + HANDLE_SAMPLE_END + } + + SET_BACK_MIXER_POS +} + +static void mix8bLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +{ + const int8_t *base, *smpPtr; + int8_t *smpTapPtr; + float fSample, *fMixBufferL, *fMixBufferR; + int32_t position; + uint32_t i, samplesToMix, samplesLeft; + uintCPUWord_t positionFrac; + + GET_VOL + GET_MIXER_VARS + SET_BASE8 + PREPARE_TAP_FIX8 + + samplesLeft = numSamples; + while (samplesLeft > 0) + { + LIMIT_MIX_NUM + samplesLeft -= samplesToMix; + + if (v->hasLooped) // the negative interpolation taps need a special case after the sample has looped once + { + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_8BIT_SMP_S16INTRP_TAP_FIX + INC_POS + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_8BIT_SMP_S16INTRP_TAP_FIX + INC_POS + RENDER_8BIT_SMP_S16INTRP_TAP_FIX + INC_POS + RENDER_8BIT_SMP_S16INTRP_TAP_FIX + INC_POS + RENDER_8BIT_SMP_S16INTRP_TAP_FIX + INC_POS + } + } + else + { + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_8BIT_SMP_S16INTRP + INC_POS + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_8BIT_SMP_S16INTRP + INC_POS + RENDER_8BIT_SMP_S16INTRP + INC_POS + RENDER_8BIT_SMP_S16INTRP + INC_POS + RENDER_8BIT_SMP_S16INTRP + INC_POS + } + } + + WRAP_LOOP + } + + SET_BACK_MIXER_POS +} + +static void mix8bBidiLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +{ + const int8_t *base, *revBase, *smpPtr; + int8_t *smpTapPtr; + float fSample, *fMixBufferL, *fMixBufferR; + int32_t position; + uint32_t i, samplesToMix, samplesLeft; + uintCPUWord_t positionFrac, tmpDelta; + + GET_VOL + GET_MIXER_VARS + SET_BASE8_BIDI + PREPARE_TAP_FIX8 + + samplesLeft = numSamples; + while (samplesLeft > 0) + { + LIMIT_MIX_NUM + samplesLeft -= samplesToMix; + + START_BIDI + if (v->hasLooped) // the negative interpolation taps need a special case after the sample has looped once + { + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_8BIT_SMP_S16INTRP_TAP_FIX + INC_POS_BIDI + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_8BIT_SMP_S16INTRP_TAP_FIX + INC_POS_BIDI + RENDER_8BIT_SMP_S16INTRP_TAP_FIX + INC_POS_BIDI + RENDER_8BIT_SMP_S16INTRP_TAP_FIX + INC_POS_BIDI + RENDER_8BIT_SMP_S16INTRP_TAP_FIX + INC_POS_BIDI + } + } + else + { + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_8BIT_SMP_S16INTRP + INC_POS_BIDI + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_8BIT_SMP_S16INTRP + INC_POS_BIDI + RENDER_8BIT_SMP_S16INTRP + INC_POS_BIDI + RENDER_8BIT_SMP_S16INTRP + INC_POS_BIDI + RENDER_8BIT_SMP_S16INTRP + INC_POS_BIDI + } + } + END_BIDI + + WRAP_BIDI_LOOP + } + + SET_BACK_MIXER_POS +} + static void mix8bRampNoLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { const int8_t *base, *smpPtr; @@ -617,7 +795,7 @@ static void mix8bRampBidiLoop(voice_t *v, uint32_t bufferPos, uint32_t numSample SET_BACK_MIXER_POS } -static void mix8bRampNoLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +static void mix8bRampNoLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { const int8_t *base, *smpPtr; float fSample, *fMixBufferL, *fMixBufferR; @@ -639,23 +817,23 @@ static void mix8bRampNoLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSa for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_8BIT_SMP_SINTRP + RENDER_8BIT_SMP_S8INTRP VOLUME_RAMPING INC_POS } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_8BIT_SMP_SINTRP + RENDER_8BIT_SMP_S8INTRP VOLUME_RAMPING INC_POS - RENDER_8BIT_SMP_SINTRP + RENDER_8BIT_SMP_S8INTRP VOLUME_RAMPING INC_POS - RENDER_8BIT_SMP_SINTRP + RENDER_8BIT_SMP_S8INTRP VOLUME_RAMPING INC_POS - RENDER_8BIT_SMP_SINTRP + RENDER_8BIT_SMP_S8INTRP VOLUME_RAMPING INC_POS } @@ -667,7 +845,7 @@ static void mix8bRampNoLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSa SET_BACK_MIXER_POS } -static void mix8bRampLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +static void mix8bRampLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { const int8_t *base, *smpPtr; int8_t *smpTapPtr; @@ -693,23 +871,23 @@ static void mix8bRampLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamp { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_8BIT_SMP_SINTRP_TAP_FIX + RENDER_8BIT_SMP_S8INTRP_TAP_FIX VOLUME_RAMPING INC_POS } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_8BIT_SMP_SINTRP_TAP_FIX + RENDER_8BIT_SMP_S8INTRP_TAP_FIX VOLUME_RAMPING INC_POS - RENDER_8BIT_SMP_SINTRP_TAP_FIX + RENDER_8BIT_SMP_S8INTRP_TAP_FIX VOLUME_RAMPING INC_POS - RENDER_8BIT_SMP_SINTRP_TAP_FIX + RENDER_8BIT_SMP_S8INTRP_TAP_FIX VOLUME_RAMPING INC_POS - RENDER_8BIT_SMP_SINTRP_TAP_FIX + RENDER_8BIT_SMP_S8INTRP_TAP_FIX VOLUME_RAMPING INC_POS } @@ -718,23 +896,23 @@ static void mix8bRampLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamp { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_8BIT_SMP_SINTRP + RENDER_8BIT_SMP_S8INTRP VOLUME_RAMPING INC_POS } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_8BIT_SMP_SINTRP + RENDER_8BIT_SMP_S8INTRP VOLUME_RAMPING INC_POS - RENDER_8BIT_SMP_SINTRP + RENDER_8BIT_SMP_S8INTRP VOLUME_RAMPING INC_POS - RENDER_8BIT_SMP_SINTRP + RENDER_8BIT_SMP_S8INTRP VOLUME_RAMPING INC_POS - RENDER_8BIT_SMP_SINTRP + RENDER_8BIT_SMP_S8INTRP VOLUME_RAMPING INC_POS } @@ -747,7 +925,7 @@ static void mix8bRampLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamp SET_BACK_MIXER_POS } -static void mix8bRampBidiLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +static void mix8bRampBidiLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { const int8_t *base, *revBase, *smpPtr; int8_t *smpTapPtr; @@ -774,23 +952,23 @@ static void mix8bRampBidiLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t num { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_8BIT_SMP_SINTRP_TAP_FIX + RENDER_8BIT_SMP_S8INTRP_TAP_FIX VOLUME_RAMPING INC_POS_BIDI } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_8BIT_SMP_SINTRP_TAP_FIX + RENDER_8BIT_SMP_S8INTRP_TAP_FIX VOLUME_RAMPING INC_POS_BIDI - RENDER_8BIT_SMP_SINTRP_TAP_FIX + RENDER_8BIT_SMP_S8INTRP_TAP_FIX VOLUME_RAMPING INC_POS_BIDI - RENDER_8BIT_SMP_SINTRP_TAP_FIX + RENDER_8BIT_SMP_S8INTRP_TAP_FIX VOLUME_RAMPING INC_POS_BIDI - RENDER_8BIT_SMP_SINTRP_TAP_FIX + RENDER_8BIT_SMP_S8INTRP_TAP_FIX VOLUME_RAMPING INC_POS_BIDI } @@ -799,23 +977,23 @@ static void mix8bRampBidiLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t num { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_8BIT_SMP_SINTRP + RENDER_8BIT_SMP_S8INTRP VOLUME_RAMPING INC_POS_BIDI } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_8BIT_SMP_SINTRP + RENDER_8BIT_SMP_S8INTRP VOLUME_RAMPING INC_POS_BIDI - RENDER_8BIT_SMP_SINTRP + RENDER_8BIT_SMP_S8INTRP VOLUME_RAMPING INC_POS_BIDI - RENDER_8BIT_SMP_SINTRP + RENDER_8BIT_SMP_S8INTRP VOLUME_RAMPING INC_POS_BIDI - RENDER_8BIT_SMP_SINTRP + RENDER_8BIT_SMP_S8INTRP VOLUME_RAMPING INC_POS_BIDI } @@ -981,117 +1159,329 @@ static void mix8bRampBidiLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t num SET_BACK_MIXER_POS } -/* ----------------------------------------------------------------------- */ -/* 16-BIT MIXING ROUTINES */ -/* ----------------------------------------------------------------------- */ - -static void mix16bNoLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +static void mix8bRampNoLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { - const int16_t *base, *smpPtr; + const int8_t *base, *smpPtr; float fSample, *fMixBufferL, *fMixBufferR; int32_t position; + float fVolumeLDelta, fVolumeRDelta, fVolumeL, fVolumeR; uint32_t i, samplesToMix, samplesLeft; uintCPUWord_t positionFrac; - GET_VOL - GET_MIXER_VARS - SET_BASE16 + GET_VOL_RAMP + GET_MIXER_VARS_RAMP + SET_BASE8 samplesLeft = numSamples; while (samplesLeft > 0) { LIMIT_MIX_NUM + LIMIT_MIX_NUM_RAMP samplesLeft -= samplesToMix; for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_16BIT_SMP + RENDER_8BIT_SMP_S16INTRP + VOLUME_RAMPING INC_POS } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_16BIT_SMP + RENDER_8BIT_SMP_S16INTRP + VOLUME_RAMPING INC_POS - RENDER_16BIT_SMP + RENDER_8BIT_SMP_S16INTRP + VOLUME_RAMPING INC_POS - RENDER_16BIT_SMP + RENDER_8BIT_SMP_S16INTRP + VOLUME_RAMPING INC_POS - RENDER_16BIT_SMP + RENDER_8BIT_SMP_S16INTRP + VOLUME_RAMPING INC_POS } HANDLE_SAMPLE_END } + SET_VOL_BACK SET_BACK_MIXER_POS } -static void mix16bLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +static void mix8bRampLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { - const int16_t *base, *smpPtr; + const int8_t *base, *smpPtr; + int8_t *smpTapPtr; float fSample, *fMixBufferL, *fMixBufferR; int32_t position; + float fVolumeLDelta, fVolumeRDelta, fVolumeL, fVolumeR; uint32_t i, samplesToMix, samplesLeft; uintCPUWord_t positionFrac; - GET_VOL - GET_MIXER_VARS - SET_BASE16 + GET_VOL_RAMP + GET_MIXER_VARS_RAMP + SET_BASE8 + PREPARE_TAP_FIX8 samplesLeft = numSamples; while (samplesLeft > 0) { LIMIT_MIX_NUM + LIMIT_MIX_NUM_RAMP samplesLeft -= samplesToMix; - for (i = 0; i < (samplesToMix & 3); i++) + if (v->hasLooped) // the negative interpolation taps need a special case after the sample has looped once { - RENDER_16BIT_SMP - INC_POS + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_8BIT_SMP_S16INTRP_TAP_FIX + VOLUME_RAMPING + INC_POS + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_8BIT_SMP_S16INTRP_TAP_FIX + VOLUME_RAMPING + INC_POS + RENDER_8BIT_SMP_S16INTRP_TAP_FIX + VOLUME_RAMPING + INC_POS + RENDER_8BIT_SMP_S16INTRP_TAP_FIX + VOLUME_RAMPING + INC_POS + RENDER_8BIT_SMP_S16INTRP_TAP_FIX + VOLUME_RAMPING + INC_POS + } } - samplesToMix >>= 2; - for (i = 0; i < samplesToMix; i++) + else { - RENDER_16BIT_SMP - INC_POS - RENDER_16BIT_SMP - INC_POS - RENDER_16BIT_SMP - INC_POS - RENDER_16BIT_SMP - INC_POS + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_8BIT_SMP_S16INTRP + VOLUME_RAMPING + INC_POS + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_8BIT_SMP_S16INTRP + VOLUME_RAMPING + INC_POS + RENDER_8BIT_SMP_S16INTRP + VOLUME_RAMPING + INC_POS + RENDER_8BIT_SMP_S16INTRP + VOLUME_RAMPING + INC_POS + RENDER_8BIT_SMP_S16INTRP + VOLUME_RAMPING + INC_POS + } } WRAP_LOOP } + SET_VOL_BACK SET_BACK_MIXER_POS } -static void mix16bBidiLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +static void mix8bRampBidiLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { - const int16_t *base, *revBase, *smpPtr; + const int8_t *base, *revBase, *smpPtr; + int8_t *smpTapPtr; float fSample, *fMixBufferL, *fMixBufferR; int32_t position; + float fVolumeLDelta, fVolumeRDelta, fVolumeL, fVolumeR; uint32_t i, samplesToMix, samplesLeft; uintCPUWord_t positionFrac, tmpDelta; - GET_VOL - GET_MIXER_VARS - SET_BASE16_BIDI + GET_VOL_RAMP + GET_MIXER_VARS_RAMP + SET_BASE8_BIDI + PREPARE_TAP_FIX8 samplesLeft = numSamples; while (samplesLeft > 0) { LIMIT_MIX_NUM + LIMIT_MIX_NUM_RAMP samplesLeft -= samplesToMix; START_BIDI - for (i = 0; i < (samplesToMix & 3); i++) + if (v->hasLooped) // the negative interpolation taps need a special case after the sample has looped once { - RENDER_16BIT_SMP - INC_POS_BIDI + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_8BIT_SMP_S16INTRP_TAP_FIX + VOLUME_RAMPING + INC_POS_BIDI + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_8BIT_SMP_S16INTRP_TAP_FIX + VOLUME_RAMPING + INC_POS_BIDI + RENDER_8BIT_SMP_S16INTRP_TAP_FIX + VOLUME_RAMPING + INC_POS_BIDI + RENDER_8BIT_SMP_S16INTRP_TAP_FIX + VOLUME_RAMPING + INC_POS_BIDI + RENDER_8BIT_SMP_S16INTRP_TAP_FIX + VOLUME_RAMPING + INC_POS_BIDI + } + } + else + { + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_8BIT_SMP_S16INTRP + VOLUME_RAMPING + INC_POS_BIDI + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_8BIT_SMP_S16INTRP + VOLUME_RAMPING + INC_POS_BIDI + RENDER_8BIT_SMP_S16INTRP + VOLUME_RAMPING + INC_POS_BIDI + RENDER_8BIT_SMP_S16INTRP + VOLUME_RAMPING + INC_POS_BIDI + RENDER_8BIT_SMP_S16INTRP + VOLUME_RAMPING + INC_POS_BIDI + } + } + END_BIDI + + WRAP_BIDI_LOOP + } + + SET_VOL_BACK + SET_BACK_MIXER_POS +} + +/* ----------------------------------------------------------------------- */ +/* 16-BIT MIXING ROUTINES */ +/* ----------------------------------------------------------------------- */ + +static void mix16bNoLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +{ + const int16_t *base, *smpPtr; + float fSample, *fMixBufferL, *fMixBufferR; + int32_t position; + uint32_t i, samplesToMix, samplesLeft; + uintCPUWord_t positionFrac; + + GET_VOL + GET_MIXER_VARS + SET_BASE16 + + samplesLeft = numSamples; + while (samplesLeft > 0) + { + LIMIT_MIX_NUM + samplesLeft -= samplesToMix; + + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_16BIT_SMP + INC_POS + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_16BIT_SMP + INC_POS + RENDER_16BIT_SMP + INC_POS + RENDER_16BIT_SMP + INC_POS + RENDER_16BIT_SMP + INC_POS + } + + HANDLE_SAMPLE_END + } + + SET_BACK_MIXER_POS +} + +static void mix16bLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +{ + const int16_t *base, *smpPtr; + float fSample, *fMixBufferL, *fMixBufferR; + int32_t position; + uint32_t i, samplesToMix, samplesLeft; + uintCPUWord_t positionFrac; + + GET_VOL + GET_MIXER_VARS + SET_BASE16 + + samplesLeft = numSamples; + while (samplesLeft > 0) + { + LIMIT_MIX_NUM + samplesLeft -= samplesToMix; + + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_16BIT_SMP + INC_POS + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_16BIT_SMP + INC_POS + RENDER_16BIT_SMP + INC_POS + RENDER_16BIT_SMP + INC_POS + RENDER_16BIT_SMP + INC_POS + } + + WRAP_LOOP + } + + SET_BACK_MIXER_POS +} + +static void mix16bBidiLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +{ + const int16_t *base, *revBase, *smpPtr; + float fSample, *fMixBufferL, *fMixBufferR; + int32_t position; + uint32_t i, samplesToMix, samplesLeft; + uintCPUWord_t positionFrac, tmpDelta; + + GET_VOL + GET_MIXER_VARS + SET_BASE16_BIDI + + samplesLeft = numSamples; + while (samplesLeft > 0) + { + LIMIT_MIX_NUM + samplesLeft -= samplesToMix; + + START_BIDI + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_16BIT_SMP + INC_POS_BIDI } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) @@ -1113,7 +1503,7 @@ static void mix16bBidiLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples) SET_BACK_MIXER_POS } -static void mix16bNoLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +static void mix16bNoLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { const int16_t *base, *smpPtr; float fSample, *fMixBufferL, *fMixBufferR; @@ -1133,19 +1523,19 @@ static void mix16bNoLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSampl for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_16BIT_SMP_SINTRP + RENDER_16BIT_SMP_S8INTRP INC_POS } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_16BIT_SMP_SINTRP + RENDER_16BIT_SMP_S8INTRP INC_POS - RENDER_16BIT_SMP_SINTRP + RENDER_16BIT_SMP_S8INTRP INC_POS - RENDER_16BIT_SMP_SINTRP + RENDER_16BIT_SMP_S8INTRP INC_POS - RENDER_16BIT_SMP_SINTRP + RENDER_16BIT_SMP_S8INTRP INC_POS } @@ -1155,7 +1545,7 @@ static void mix16bNoLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSampl SET_BACK_MIXER_POS } -static void mix16bLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +static void mix16bLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { const int16_t *base, *smpPtr; int16_t *smpTapPtr; @@ -1179,19 +1569,19 @@ static void mix16bLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_16BIT_SMP_SINTRP_TAP_FIX + RENDER_16BIT_SMP_S8INTRP_TAP_FIX INC_POS } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_16BIT_SMP_SINTRP_TAP_FIX + RENDER_16BIT_SMP_S8INTRP_TAP_FIX INC_POS - RENDER_16BIT_SMP_SINTRP_TAP_FIX + RENDER_16BIT_SMP_S8INTRP_TAP_FIX INC_POS - RENDER_16BIT_SMP_SINTRP_TAP_FIX + RENDER_16BIT_SMP_S8INTRP_TAP_FIX INC_POS - RENDER_16BIT_SMP_SINTRP_TAP_FIX + RENDER_16BIT_SMP_S8INTRP_TAP_FIX INC_POS } } @@ -1199,19 +1589,19 @@ static void mix16bLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_16BIT_SMP_SINTRP + RENDER_16BIT_SMP_S8INTRP INC_POS } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_16BIT_SMP_SINTRP + RENDER_16BIT_SMP_S8INTRP INC_POS - RENDER_16BIT_SMP_SINTRP + RENDER_16BIT_SMP_S8INTRP INC_POS - RENDER_16BIT_SMP_SINTRP + RENDER_16BIT_SMP_S8INTRP INC_POS - RENDER_16BIT_SMP_SINTRP + RENDER_16BIT_SMP_S8INTRP INC_POS } } @@ -1222,7 +1612,7 @@ static void mix16bLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples SET_BACK_MIXER_POS } -static void mix16bBidiLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +static void mix16bBidiLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { const int16_t *base, *revBase, *smpPtr; int16_t *smpTapPtr; @@ -1247,19 +1637,19 @@ static void mix16bBidiLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSam { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_16BIT_SMP_SINTRP_TAP_FIX + RENDER_16BIT_SMP_S8INTRP_TAP_FIX INC_POS_BIDI } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_16BIT_SMP_SINTRP_TAP_FIX + RENDER_16BIT_SMP_S8INTRP_TAP_FIX INC_POS_BIDI - RENDER_16BIT_SMP_SINTRP_TAP_FIX + RENDER_16BIT_SMP_S8INTRP_TAP_FIX INC_POS_BIDI - RENDER_16BIT_SMP_SINTRP_TAP_FIX + RENDER_16BIT_SMP_S8INTRP_TAP_FIX INC_POS_BIDI - RENDER_16BIT_SMP_SINTRP_TAP_FIX + RENDER_16BIT_SMP_S8INTRP_TAP_FIX INC_POS_BIDI } } @@ -1267,19 +1657,19 @@ static void mix16bBidiLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSam { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_16BIT_SMP_SINTRP + RENDER_16BIT_SMP_S8INTRP INC_POS_BIDI } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_16BIT_SMP_SINTRP + RENDER_16BIT_SMP_S8INTRP INC_POS_BIDI - RENDER_16BIT_SMP_SINTRP + RENDER_16BIT_SMP_S8INTRP INC_POS_BIDI - RENDER_16BIT_SMP_SINTRP + RENDER_16BIT_SMP_S8INTRP INC_POS_BIDI - RENDER_16BIT_SMP_SINTRP + RENDER_16BIT_SMP_S8INTRP INC_POS_BIDI } } @@ -1419,6 +1809,184 @@ static void mix16bBidiLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSam SET_BACK_MIXER_POS } +static void mix16bNoLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +{ + const int16_t *base, *smpPtr; + float fSample, *fMixBufferL, *fMixBufferR; + int32_t position; + uint32_t i, samplesToMix, samplesLeft; + uintCPUWord_t positionFrac; + + GET_VOL + GET_MIXER_VARS + SET_BASE16 + + samplesLeft = numSamples; + while (samplesLeft > 0) + { + LIMIT_MIX_NUM + samplesLeft -= samplesToMix; + + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_16BIT_SMP_S16INTRP + INC_POS + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_16BIT_SMP_S16INTRP + INC_POS + RENDER_16BIT_SMP_S16INTRP + INC_POS + RENDER_16BIT_SMP_S16INTRP + INC_POS + RENDER_16BIT_SMP_S16INTRP + INC_POS + } + + HANDLE_SAMPLE_END + } + + SET_BACK_MIXER_POS +} + +static void mix16bLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +{ + const int16_t *base, *smpPtr; + int16_t *smpTapPtr; + float fSample, *fMixBufferL, *fMixBufferR; + int32_t position; + uint32_t i, samplesToMix, samplesLeft; + uintCPUWord_t positionFrac; + + GET_VOL + GET_MIXER_VARS + SET_BASE16 + PREPARE_TAP_FIX16 + + samplesLeft = numSamples; + while (samplesLeft > 0) + { + LIMIT_MIX_NUM + samplesLeft -= samplesToMix; + + if (v->hasLooped) // the negative interpolation taps need a special case after the sample has looped once + { + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_16BIT_SMP_S16INTRP_TAP_FIX + INC_POS + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_16BIT_SMP_S16INTRP_TAP_FIX + INC_POS + RENDER_16BIT_SMP_S16INTRP_TAP_FIX + INC_POS + RENDER_16BIT_SMP_S16INTRP_TAP_FIX + INC_POS + RENDER_16BIT_SMP_S16INTRP_TAP_FIX + INC_POS + } + } + else + { + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_16BIT_SMP_S16INTRP + INC_POS + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_16BIT_SMP_S16INTRP + INC_POS + RENDER_16BIT_SMP_S16INTRP + INC_POS + RENDER_16BIT_SMP_S16INTRP + INC_POS + RENDER_16BIT_SMP_S16INTRP + INC_POS + } + } + + WRAP_LOOP + } + + SET_BACK_MIXER_POS +} + +static void mix16bBidiLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +{ + const int16_t *base, *revBase, *smpPtr; + int16_t *smpTapPtr; + float fSample, *fMixBufferL, *fMixBufferR; + int32_t position; + uint32_t i, samplesToMix, samplesLeft; + uintCPUWord_t positionFrac, tmpDelta; + + GET_VOL + GET_MIXER_VARS + SET_BASE16_BIDI + PREPARE_TAP_FIX16 + + samplesLeft = numSamples; + while (samplesLeft > 0) + { + LIMIT_MIX_NUM + samplesLeft -= samplesToMix; + + START_BIDI + if (v->hasLooped) // the negative interpolation taps need a special case after the sample has looped once + { + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_16BIT_SMP_S16INTRP_TAP_FIX + INC_POS_BIDI + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_16BIT_SMP_S16INTRP_TAP_FIX + INC_POS_BIDI + RENDER_16BIT_SMP_S16INTRP_TAP_FIX + INC_POS_BIDI + RENDER_16BIT_SMP_S16INTRP_TAP_FIX + INC_POS_BIDI + RENDER_16BIT_SMP_S16INTRP_TAP_FIX + INC_POS_BIDI + } + } + else + { + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_16BIT_SMP_S16INTRP + INC_POS_BIDI + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_16BIT_SMP_S16INTRP + INC_POS_BIDI + RENDER_16BIT_SMP_S16INTRP + INC_POS_BIDI + RENDER_16BIT_SMP_S16INTRP + INC_POS_BIDI + RENDER_16BIT_SMP_S16INTRP + INC_POS_BIDI + } + } + END_BIDI + + WRAP_BIDI_LOOP + } + + SET_BACK_MIXER_POS +} + static void mix16bRampNoLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { const int16_t *base, *smpPtr; @@ -1571,7 +2139,7 @@ static void mix16bRampBidiLoop(voice_t *v, uint32_t bufferPos, uint32_t numSampl SET_BACK_MIXER_POS } -static void mix16bRampNoLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +static void mix16bRampNoLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { const int16_t *base, *smpPtr; float fSample, *fMixBufferL, *fMixBufferR; @@ -1593,23 +2161,23 @@ static void mix16bRampNoLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numS for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_16BIT_SMP_SINTRP + RENDER_16BIT_SMP_S8INTRP VOLUME_RAMPING INC_POS } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_16BIT_SMP_SINTRP + RENDER_16BIT_SMP_S8INTRP VOLUME_RAMPING INC_POS - RENDER_16BIT_SMP_SINTRP + RENDER_16BIT_SMP_S8INTRP VOLUME_RAMPING INC_POS - RENDER_16BIT_SMP_SINTRP + RENDER_16BIT_SMP_S8INTRP VOLUME_RAMPING INC_POS - RENDER_16BIT_SMP_SINTRP + RENDER_16BIT_SMP_S8INTRP VOLUME_RAMPING INC_POS } @@ -1621,7 +2189,7 @@ static void mix16bRampNoLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numS SET_BACK_MIXER_POS } -static void mix16bRampLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +static void mix16bRampLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { const int16_t *base, *smpPtr; int16_t *smpTapPtr; @@ -1647,23 +2215,23 @@ static void mix16bRampLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSam { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_16BIT_SMP_SINTRP_TAP_FIX + RENDER_16BIT_SMP_S8INTRP_TAP_FIX VOLUME_RAMPING INC_POS } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_16BIT_SMP_SINTRP_TAP_FIX + RENDER_16BIT_SMP_S8INTRP_TAP_FIX VOLUME_RAMPING INC_POS - RENDER_16BIT_SMP_SINTRP_TAP_FIX + RENDER_16BIT_SMP_S8INTRP_TAP_FIX VOLUME_RAMPING INC_POS - RENDER_16BIT_SMP_SINTRP_TAP_FIX + RENDER_16BIT_SMP_S8INTRP_TAP_FIX VOLUME_RAMPING INC_POS - RENDER_16BIT_SMP_SINTRP_TAP_FIX + RENDER_16BIT_SMP_S8INTRP_TAP_FIX VOLUME_RAMPING INC_POS } @@ -1672,23 +2240,23 @@ static void mix16bRampLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSam { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_16BIT_SMP_SINTRP + RENDER_16BIT_SMP_S8INTRP VOLUME_RAMPING INC_POS } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_16BIT_SMP_SINTRP + RENDER_16BIT_SMP_S8INTRP VOLUME_RAMPING INC_POS - RENDER_16BIT_SMP_SINTRP + RENDER_16BIT_SMP_S8INTRP VOLUME_RAMPING INC_POS - RENDER_16BIT_SMP_SINTRP + RENDER_16BIT_SMP_S8INTRP VOLUME_RAMPING INC_POS - RENDER_16BIT_SMP_SINTRP + RENDER_16BIT_SMP_S8INTRP VOLUME_RAMPING INC_POS } @@ -1701,7 +2269,7 @@ static void mix16bRampLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSam SET_BACK_MIXER_POS } -static void mix16bRampBidiLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +static void mix16bRampBidiLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) { const int16_t *base, *revBase, *smpPtr; int16_t *smpTapPtr; @@ -1728,23 +2296,23 @@ static void mix16bRampBidiLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t nu { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_16BIT_SMP_SINTRP_TAP_FIX + RENDER_16BIT_SMP_S8INTRP_TAP_FIX VOLUME_RAMPING INC_POS_BIDI } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_16BIT_SMP_SINTRP_TAP_FIX + RENDER_16BIT_SMP_S8INTRP_TAP_FIX VOLUME_RAMPING INC_POS_BIDI - RENDER_16BIT_SMP_SINTRP_TAP_FIX + RENDER_16BIT_SMP_S8INTRP_TAP_FIX VOLUME_RAMPING INC_POS_BIDI - RENDER_16BIT_SMP_SINTRP_TAP_FIX + RENDER_16BIT_SMP_S8INTRP_TAP_FIX VOLUME_RAMPING INC_POS_BIDI - RENDER_16BIT_SMP_SINTRP_TAP_FIX + RENDER_16BIT_SMP_S8INTRP_TAP_FIX VOLUME_RAMPING INC_POS_BIDI } @@ -1753,23 +2321,23 @@ static void mix16bRampBidiLoopSIntrp(voice_t *v, uint32_t bufferPos, uint32_t nu { for (i = 0; i < (samplesToMix & 3); i++) { - RENDER_16BIT_SMP_SINTRP + RENDER_16BIT_SMP_S8INTRP VOLUME_RAMPING INC_POS_BIDI } samplesToMix >>= 2; for (i = 0; i < samplesToMix; i++) { - RENDER_16BIT_SMP_SINTRP + RENDER_16BIT_SMP_S8INTRP VOLUME_RAMPING INC_POS_BIDI - RENDER_16BIT_SMP_SINTRP + RENDER_16BIT_SMP_S8INTRP VOLUME_RAMPING INC_POS_BIDI - RENDER_16BIT_SMP_SINTRP + RENDER_16BIT_SMP_S8INTRP VOLUME_RAMPING INC_POS_BIDI - RENDER_16BIT_SMP_SINTRP + RENDER_16BIT_SMP_S8INTRP VOLUME_RAMPING INC_POS_BIDI } @@ -1935,9 +2503,221 @@ static void mix16bRampBidiLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t nu SET_BACK_MIXER_POS } +static void mix16bRampNoLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +{ + const int16_t *base, *smpPtr; + float fSample, *fMixBufferL, *fMixBufferR; + int32_t position; + float fVolumeLDelta, fVolumeRDelta, fVolumeL, fVolumeR; + uint32_t i, samplesToMix, samplesLeft; + uintCPUWord_t positionFrac; + + GET_VOL_RAMP + GET_MIXER_VARS_RAMP + SET_BASE16 + + samplesLeft = numSamples; + while (samplesLeft > 0) + { + LIMIT_MIX_NUM + LIMIT_MIX_NUM_RAMP + samplesLeft -= samplesToMix; + + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_16BIT_SMP_S16INTRP + VOLUME_RAMPING + INC_POS + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_16BIT_SMP_S16INTRP + VOLUME_RAMPING + INC_POS + RENDER_16BIT_SMP_S16INTRP + VOLUME_RAMPING + INC_POS + RENDER_16BIT_SMP_S16INTRP + VOLUME_RAMPING + INC_POS + RENDER_16BIT_SMP_S16INTRP + VOLUME_RAMPING + INC_POS + } + + HANDLE_SAMPLE_END + } + + SET_VOL_BACK + SET_BACK_MIXER_POS +} + +static void mix16bRampLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +{ + const int16_t *base, *smpPtr; + int16_t *smpTapPtr; + float fSample, *fMixBufferL, *fMixBufferR; + int32_t position; + float fVolumeLDelta, fVolumeRDelta, fVolumeL, fVolumeR; + uint32_t i, samplesToMix, samplesLeft; + uintCPUWord_t positionFrac; + + GET_VOL_RAMP + GET_MIXER_VARS_RAMP + SET_BASE16 + PREPARE_TAP_FIX16 + + samplesLeft = numSamples; + while (samplesLeft > 0) + { + LIMIT_MIX_NUM + LIMIT_MIX_NUM_RAMP + samplesLeft -= samplesToMix; + + if (v->hasLooped) // the negative interpolation taps need a special case after the sample has looped once + { + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_16BIT_SMP_S16INTRP_TAP_FIX + VOLUME_RAMPING + INC_POS + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_16BIT_SMP_S16INTRP_TAP_FIX + VOLUME_RAMPING + INC_POS + RENDER_16BIT_SMP_S16INTRP_TAP_FIX + VOLUME_RAMPING + INC_POS + RENDER_16BIT_SMP_S16INTRP_TAP_FIX + VOLUME_RAMPING + INC_POS + RENDER_16BIT_SMP_S16INTRP_TAP_FIX + VOLUME_RAMPING + INC_POS + } + } + else + { + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_16BIT_SMP_S16INTRP + VOLUME_RAMPING + INC_POS + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_16BIT_SMP_S16INTRP + VOLUME_RAMPING + INC_POS + RENDER_16BIT_SMP_S16INTRP + VOLUME_RAMPING + INC_POS + RENDER_16BIT_SMP_S16INTRP + VOLUME_RAMPING + INC_POS + RENDER_16BIT_SMP_S16INTRP + VOLUME_RAMPING + INC_POS + } + } + + WRAP_LOOP + } + + SET_VOL_BACK + SET_BACK_MIXER_POS +} + +static void mix16bRampBidiLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples) +{ + const int16_t *base, *revBase, *smpPtr; + int16_t *smpTapPtr; + float fSample, *fMixBufferL, *fMixBufferR; + int32_t position; + float fVolumeLDelta, fVolumeRDelta, fVolumeL, fVolumeR; + uint32_t i, samplesToMix, samplesLeft; + uintCPUWord_t positionFrac, tmpDelta; + + GET_VOL_RAMP + GET_MIXER_VARS_RAMP + SET_BASE16_BIDI + PREPARE_TAP_FIX16 + + samplesLeft = numSamples; + while (samplesLeft > 0) + { + LIMIT_MIX_NUM + LIMIT_MIX_NUM_RAMP + samplesLeft -= samplesToMix; + + START_BIDI + if (v->hasLooped) // the negative interpolation taps need a special case after the sample has looped once + { + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_16BIT_SMP_S16INTRP_TAP_FIX + VOLUME_RAMPING + INC_POS_BIDI + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_16BIT_SMP_S16INTRP_TAP_FIX + VOLUME_RAMPING + INC_POS_BIDI + RENDER_16BIT_SMP_S16INTRP_TAP_FIX + VOLUME_RAMPING + INC_POS_BIDI + RENDER_16BIT_SMP_S16INTRP_TAP_FIX + VOLUME_RAMPING + INC_POS_BIDI + RENDER_16BIT_SMP_S16INTRP_TAP_FIX + VOLUME_RAMPING + INC_POS_BIDI + } + } + else + { + for (i = 0; i < (samplesToMix & 3); i++) + { + RENDER_16BIT_SMP_S16INTRP + VOLUME_RAMPING + INC_POS_BIDI + } + samplesToMix >>= 2; + for (i = 0; i < samplesToMix; i++) + { + RENDER_16BIT_SMP_S16INTRP + VOLUME_RAMPING + INC_POS_BIDI + RENDER_16BIT_SMP_S16INTRP + VOLUME_RAMPING + INC_POS_BIDI + RENDER_16BIT_SMP_S16INTRP + VOLUME_RAMPING + INC_POS_BIDI + RENDER_16BIT_SMP_S16INTRP + VOLUME_RAMPING + INC_POS_BIDI + } + } + END_BIDI + + WRAP_BIDI_LOOP + } + + SET_VOL_BACK + SET_BACK_MIXER_POS +} + // ----------------------------------------------------------------------- -const mixFunc mixFuncTab[72] = +const mixFunc mixFuncTab[] = { /* ** --------------------------------- @@ -1951,23 +2731,29 @@ const mixFunc mixFuncTab[72] = (mixFunc)mix8bNoLoop, (mixFunc)mix8bLoop, (mixFunc)mix8bBidiLoop, - (mixFunc)mix8bNoLoopSIntrp, - (mixFunc)mix8bLoopSIntrp, - (mixFunc)mix8bBidiLoopSIntrp, + (mixFunc)mix8bNoLoopS8Intrp, + (mixFunc)mix8bLoopS8Intrp, + (mixFunc)mix8bBidiLoopS8Intrp, (mixFunc)mix8bNoLoopLIntrp, (mixFunc)mix8bLoopLIntrp, (mixFunc)mix8bBidiLoopLIntrp, + (mixFunc)mix8bNoLoopS16Intrp, + (mixFunc)mix8bLoopS16Intrp, + (mixFunc)mix8bBidiLoopS16Intrp, // 16-bit (mixFunc)mix16bNoLoop, (mixFunc)mix16bLoop, (mixFunc)mix16bBidiLoop, - (mixFunc)mix16bNoLoopSIntrp, - (mixFunc)mix16bLoopSIntrp, - (mixFunc)mix16bBidiLoopSIntrp, + (mixFunc)mix16bNoLoopS8Intrp, + (mixFunc)mix16bLoopS8Intrp, + (mixFunc)mix16bBidiLoopS8Intrp, (mixFunc)mix16bNoLoopLIntrp, (mixFunc)mix16bLoopLIntrp, (mixFunc)mix16bBidiLoopLIntrp, + (mixFunc)mix16bNoLoopS16Intrp, + (mixFunc)mix16bLoopS16Intrp, + (mixFunc)mix16bBidiLoopS16Intrp, // volume ramping @@ -1975,23 +2761,29 @@ const mixFunc mixFuncTab[72] = (mixFunc)mix8bRampNoLoop, (mixFunc)mix8bRampLoop, (mixFunc)mix8bRampBidiLoop, - (mixFunc)mix8bRampNoLoopSIntrp, - (mixFunc)mix8bRampLoopSIntrp, - (mixFunc)mix8bRampBidiLoopSIntrp, + (mixFunc)mix8bRampNoLoopS8Intrp, + (mixFunc)mix8bRampLoopS8Intrp, + (mixFunc)mix8bRampBidiLoopS8Intrp, (mixFunc)mix8bRampNoLoopLIntrp, (mixFunc)mix8bRampLoopLIntrp, (mixFunc)mix8bRampBidiLoopLIntrp, + (mixFunc)mix8bRampNoLoopS16Intrp, + (mixFunc)mix8bRampLoopS16Intrp, + (mixFunc)mix8bRampBidiLoopS16Intrp, // 16-bit (mixFunc)mix16bRampNoLoop, (mixFunc)mix16bRampLoop, (mixFunc)mix16bRampBidiLoop, - (mixFunc)mix16bRampNoLoopSIntrp, - (mixFunc)mix16bRampLoopSIntrp, - (mixFunc)mix16bRampBidiLoopSIntrp, + (mixFunc)mix16bRampNoLoopS8Intrp, + (mixFunc)mix16bRampLoopS8Intrp, + (mixFunc)mix16bRampBidiLoopS8Intrp, (mixFunc)mix16bRampNoLoopLIntrp, (mixFunc)mix16bRampLoopLIntrp, (mixFunc)mix16bRampBidiLoopLIntrp, + (mixFunc)mix16bRampNoLoopS16Intrp, + (mixFunc)mix16bRampLoopS16Intrp, + (mixFunc)mix16bRampBidiLoopS16Intrp, /* ** --------------------------------- @@ -2005,23 +2797,29 @@ const mixFunc mixFuncTab[72] = (mixFunc)centerMix8bNoLoop, (mixFunc)centerMix8bLoop, (mixFunc)centerMix8bBidiLoop, - (mixFunc)centerMix8bNoLoopSIntrp, - (mixFunc)centerMix8bLoopSIntrp, - (mixFunc)centerMix8bBidiLoopSIntrp, + (mixFunc)centerMix8bNoLoopS8Intrp, + (mixFunc)centerMix8bLoopS8Intrp, + (mixFunc)centerMix8bBidiLoopS8Intrp, (mixFunc)centerMix8bNoLoopLIntrp, (mixFunc)centerMix8bLoopLIntrp, (mixFunc)centerMix8bBidiLoopLIntrp, + (mixFunc)centerMix8bNoLoopS16Intrp, + (mixFunc)centerMix8bLoopS16Intrp, + (mixFunc)centerMix8bBidiLoopS16Intrp, // 16-bit (mixFunc)centerMix16bNoLoop, (mixFunc)centerMix16bLoop, (mixFunc)centerMix16bBidiLoop, - (mixFunc)centerMix16bNoLoopSIntrp, - (mixFunc)centerMix16bLoopSIntrp, - (mixFunc)centerMix16bBidiLoopSIntrp, + (mixFunc)centerMix16bNoLoopS8Intrp, + (mixFunc)centerMix16bLoopS8Intrp, + (mixFunc)centerMix16bBidiLoopS8Intrp, (mixFunc)centerMix16bNoLoopLIntrp, (mixFunc)centerMix16bLoopLIntrp, (mixFunc)centerMix16bBidiLoopLIntrp, + (mixFunc)centerMix16bNoLoopS16Intrp, + (mixFunc)centerMix16bLoopS16Intrp, + (mixFunc)centerMix16bBidiLoopS16Intrp, // volume ramping @@ -2029,21 +2827,27 @@ const mixFunc mixFuncTab[72] = (mixFunc)centerMix8bRampNoLoop, (mixFunc)centerMix8bRampLoop, (mixFunc)centerMix8bRampBidiLoop, - (mixFunc)centerMix8bRampNoLoopSIntrp, - (mixFunc)centerMix8bRampLoopSIntrp, - (mixFunc)centerMix8bRampBidiLoopSIntrp, + (mixFunc)centerMix8bRampNoLoopS8Intrp, + (mixFunc)centerMix8bRampLoopS8Intrp, + (mixFunc)centerMix8bRampBidiLoopS8Intrp, (mixFunc)centerMix8bRampNoLoopLIntrp, (mixFunc)centerMix8bRampLoopLIntrp, (mixFunc)centerMix8bRampBidiLoopLIntrp, + (mixFunc)centerMix8bRampNoLoopS16Intrp, + (mixFunc)centerMix8bRampLoopS16Intrp, + (mixFunc)centerMix8bRampBidiLoopS16Intrp, // 16-bit (mixFunc)centerMix16bRampNoLoop, (mixFunc)centerMix16bRampLoop, (mixFunc)centerMix16bRampBidiLoop, - (mixFunc)centerMix16bRampNoLoopSIntrp, - (mixFunc)centerMix16bRampLoopSIntrp, - (mixFunc)centerMix16bRampBidiLoopSIntrp, + (mixFunc)centerMix16bRampNoLoopS8Intrp, + (mixFunc)centerMix16bRampLoopS8Intrp, + (mixFunc)centerMix16bRampBidiLoopS8Intrp, (mixFunc)centerMix16bRampNoLoopLIntrp, (mixFunc)centerMix16bRampLoopLIntrp, - (mixFunc)centerMix16bRampBidiLoopLIntrp + (mixFunc)centerMix16bRampBidiLoopLIntrp, + (mixFunc)centerMix16bRampNoLoopS16Intrp, + (mixFunc)centerMix16bRampLoopS16Intrp, + (mixFunc)centerMix16bRampBidiLoopS16Intrp }; diff --git a/src/mixer/ft2_mix.h b/src/mixer/ft2_mix.h @@ -15,4 +15,4 @@ typedef void (*mixFunc)(void *, uint32_t, uint32_t); -extern const mixFunc mixFuncTab[72]; // ft2_mix.c +extern const mixFunc mixFuncTab[]; // ft2_mix.c diff --git a/src/mixer/ft2_mix_macros.h b/src/mixer/ft2_mix_macros.h @@ -8,26 +8,26 @@ /* ----------------------------------------------------------------------- */ #define GET_VOL \ - const float fVolumeL = v->fVolumeL; \ - const float fVolumeR = v->fVolumeR; + const float fVolumeL = v->fCurrVolumeL; \ + const float fVolumeR = v->fCurrVolumeR; #define GET_VOL_MONO \ - const float fVolumeL = v->fVolumeL; + const float fVolumeL = v->fCurrVolumeL; #define GET_VOL_RAMP \ - fVolumeL = v->fVolumeL; \ - fVolumeR = v->fVolumeR; + fVolumeL = v->fCurrVolumeL; \ + fVolumeR = v->fCurrVolumeR; #define GET_VOL_MONO_RAMP \ - fVolumeL = v->fVolumeL; + fVolumeL = v->fCurrVolumeL; #define SET_VOL_BACK \ - v->fVolumeL = fVolumeL; \ - v->fVolumeR = fVolumeR; + v->fCurrVolumeL = fVolumeL; \ + v->fCurrVolumeR = fVolumeR; #define SET_VOL_BACK_MONO \ - v->fVolumeL = fVolumeL; \ - v->fVolumeR = fVolumeL; + v->fCurrVolumeL = fVolumeL; \ + v->fCurrVolumeR = fVolumeL; #define GET_MIXER_VARS \ const uintCPUWord_t delta = v->delta; \ @@ -55,11 +55,11 @@ #define PREPARE_TAP_FIX8 \ const int8_t *loopStartPtr = &v->base8[v->loopStart]; \ - const int8_t *leftEdgePtr = loopStartPtr+SINC_LEFT_TAPS; + const int8_t *leftEdgePtr = loopStartPtr+SINC_MAX_LEFT_TAPS; #define PREPARE_TAP_FIX16 \ const int16_t *loopStartPtr = &v->base16[v->loopStart]; \ - const int16_t *leftEdgePtr = loopStartPtr+SINC_LEFT_TAPS; + const int16_t *leftEdgePtr = loopStartPtr+SINC_MAX_LEFT_TAPS; #define SET_BASE8 \ base = v->base8; \ @@ -158,7 +158,7 @@ *fMixBufferL++ += fSample; \ *fMixBufferR++ += fSample; -// 8-tap windowed-sinc interpolation (better quality, through LUT: mixer/ft2_windowed_sinc.c) +// windowed-sinc interpolation (better quality, through LUTs: mixer/ft2_windowed_sinc.c) /* It may look like we are potentially going out of bounds while looking up the sample points, ** but the sample data is actually padded on both the left (negative) and right side, where correct tap @@ -168,12 +168,10 @@ ** */ -#if SINC_TAPS==8 - -#if SINC_FSHIFT>=0 -#define WINDOWED_SINC_INTERPOLATION(s, f, scale) \ +#if SINC8_FSHIFT>=0 +#define WINDOWED_SINC8_INTERPOLATION(s, f, scale) \ { \ - const float *t = v->fSincLUT + (((uint32_t)(f) >> SINC_FSHIFT) & SINC_FMASK); \ + const float *t = v->fSincLUT + (((uint32_t)(f) >> SINC8_FSHIFT) & SINC8_FMASK); \ fSample = ((s[-3] * t[0]) + \ (s[-2] * t[1]) + \ (s[-1] * t[2]) + \ @@ -184,9 +182,9 @@ ( s[4] * t[7])) * (1.0f / scale); \ } #else -#define WINDOWED_SINC_INTERPOLATION(s, f, scale) \ +#define WINDOWED_SINC8_INTERPOLATION(s, f, scale) \ { \ - const float *t = v->fSincLUT + (((uint32_t)(f) << -SINC_FSHIFT) & SINC_FMASK); \ + const float *t = v->fSincLUT + (((uint32_t)(f) << -SINC8_FSHIFT) & SINC8_FMASK); \ fSample = ((s[-3] * t[0]) + \ (s[-2] * t[1]) + \ (s[-1] * t[2]) + \ @@ -198,12 +196,10 @@ } #endif -#elif SINC_TAPS==16 - -#if SINC_FSHIFT>=0 -#define WINDOWED_SINC_INTERPOLATION(s, f, scale) \ +#if SINC16_FSHIFT>=0 +#define WINDOWED_SINC16_INTERPOLATION(s, f, scale) \ { \ - const float *t = v->fSincLUT + (((uint32_t)(f) >> SINC_FSHIFT) & SINC_FMASK); \ + const float *t = v->fSincLUT + (((uint32_t)(f) >> SINC16_FSHIFT) & SINC16_FMASK); \ fSample = ((s[-7] * t[0]) + \ (s[-6] * t[1]) + \ (s[-5] * t[2]) + \ @@ -222,9 +218,9 @@ ( s[8] * t[15])) * (1.0f / scale); \ } #else -#define WINDOWED_SINC_INTERPOLATION(s, f, scale) \ +#define WINDOWED_SINC16_INTERPOLATION(s, f, scale) \ { \ - const float *t = v->fSincLUT + (((uint32_t)(f) << -SINC_FSHIFT) & SINC_FMASK); \ + const float *t = v->fSincLUT + (((uint32_t)(f) << -SINC16_FSHIFT) & SINC16_FMASK); \ fSample = ((s[-7] * t[0]) + \ (s[-6] * t[1]) + \ (s[-5] * t[2]) + \ @@ -244,30 +240,46 @@ } #endif -#else +#define RENDER_8BIT_SMP_S8INTRP \ + WINDOWED_SINC8_INTERPOLATION(smpPtr, positionFrac, 128) \ + *fMixBufferL++ += fSample * fVolumeL; \ + *fMixBufferR++ += fSample * fVolumeR; -#error mixer/ft2_mix_macros.h: The SINC_TAPS definition is invalid! Valid values: 8 or 16 +#define RENDER_8BIT_SMP_MONO_S8INTRP \ + WINDOWED_SINC8_INTERPOLATION(smpPtr, positionFrac, 128) \ + fSample *= fVolumeL; \ + *fMixBufferL++ += fSample; \ + *fMixBufferR++ += fSample; -#endif +#define RENDER_16BIT_SMP_S8INTRP \ + WINDOWED_SINC8_INTERPOLATION(smpPtr, positionFrac, 32768) \ + *fMixBufferL++ += fSample * fVolumeL; \ + *fMixBufferR++ += fSample * fVolumeR; + +#define RENDER_16BIT_SMP_MONO_S8INTRP \ + WINDOWED_SINC8_INTERPOLATION(smpPtr, positionFrac, 32768) \ + fSample *= fVolumeL; \ + *fMixBufferL++ += fSample; \ + *fMixBufferR++ += fSample; -#define RENDER_8BIT_SMP_SINTRP \ - WINDOWED_SINC_INTERPOLATION(smpPtr, positionFrac, 128) \ +#define RENDER_8BIT_SMP_S16INTRP \ + WINDOWED_SINC16_INTERPOLATION(smpPtr, positionFrac, 128) \ *fMixBufferL++ += fSample * fVolumeL; \ *fMixBufferR++ += fSample * fVolumeR; -#define RENDER_8BIT_SMP_MONO_SINTRP \ - WINDOWED_SINC_INTERPOLATION(smpPtr, positionFrac, 128) \ +#define RENDER_8BIT_SMP_MONO_S16INTRP \ + WINDOWED_SINC16_INTERPOLATION(smpPtr, positionFrac, 128) \ fSample *= fVolumeL; \ *fMixBufferL++ += fSample; \ *fMixBufferR++ += fSample; -#define RENDER_16BIT_SMP_SINTRP \ - WINDOWED_SINC_INTERPOLATION(smpPtr, positionFrac, 32768) \ +#define RENDER_16BIT_SMP_S16INTRP \ + WINDOWED_SINC16_INTERPOLATION(smpPtr, positionFrac, 32768) \ *fMixBufferL++ += fSample * fVolumeL; \ *fMixBufferR++ += fSample * fVolumeR; -#define RENDER_16BIT_SMP_MONO_SINTRP \ - WINDOWED_SINC_INTERPOLATION(smpPtr, positionFrac, 32768) \ +#define RENDER_16BIT_SMP_MONO_S16INTRP \ + WINDOWED_SINC16_INTERPOLATION(smpPtr, positionFrac, 32768) \ fSample *= fVolumeL; \ *fMixBufferL++ += fSample; \ *fMixBufferR++ += fSample; @@ -276,28 +288,54 @@ ** These are only used with sinc interpolation on looped samples. */ -#define RENDER_8BIT_SMP_SINTRP_TAP_FIX \ +#define RENDER_8BIT_SMP_S8INTRP_TAP_FIX \ + smpTapPtr = (smpPtr <= leftEdgePtr) ? (int8_t *)&v->leftEdgeTaps8[(int32_t)(smpPtr-loopStartPtr)] : (int8_t *)smpPtr; \ + WINDOWED_SINC8_INTERPOLATION(smpTapPtr, positionFrac, 128) \ + *fMixBufferL++ += fSample * fVolumeL; \ + *fMixBufferR++ += fSample * fVolumeR; + +#define RENDER_8BIT_SMP_MONO_S8INTRP_TAP_FIX \ + smpTapPtr = (smpPtr <= leftEdgePtr) ? (int8_t *)&v->leftEdgeTaps8[(int32_t)(smpPtr-loopStartPtr)] : (int8_t *)smpPtr; \ + WINDOWED_SINC8_INTERPOLATION(smpTapPtr, positionFrac, 128) \ + fSample *= fVolumeL; \ + *fMixBufferL++ += fSample; \ + *fMixBufferR++ += fSample; + +#define RENDER_16BIT_SMP_S8INTRP_TAP_FIX \ + smpTapPtr = (smpPtr <= leftEdgePtr) ? (int16_t *)&v->leftEdgeTaps16[(int32_t)(smpPtr-loopStartPtr)] : (int16_t *)smpPtr; \ + WINDOWED_SINC8_INTERPOLATION(smpTapPtr, positionFrac, 32768) \ + *fMixBufferL++ += fSample * fVolumeL; \ + *fMixBufferR++ += fSample * fVolumeR; + +#define RENDER_16BIT_SMP_MONO_S8INTRP_TAP_FIX \ + smpTapPtr = (smpPtr <= leftEdgePtr) ? (int16_t *)&v->leftEdgeTaps16[(int32_t)(smpPtr-loopStartPtr)] : (int16_t *)smpPtr; \ + WINDOWED_SINC8_INTERPOLATION(smpTapPtr, positionFrac, 32768) \ + fSample *= fVolumeL; \ + *fMixBufferL++ += fSample; \ + *fMixBufferR++ += fSample; + +#define RENDER_8BIT_SMP_S16INTRP_TAP_FIX \ smpTapPtr = (smpPtr <= leftEdgePtr) ? (int8_t *)&v->leftEdgeTaps8[(int32_t)(smpPtr-loopStartPtr)] : (int8_t *)smpPtr; \ - WINDOWED_SINC_INTERPOLATION(smpTapPtr, positionFrac, 128) \ + WINDOWED_SINC16_INTERPOLATION(smpTapPtr, positionFrac, 128) \ *fMixBufferL++ += fSample * fVolumeL; \ *fMixBufferR++ += fSample * fVolumeR; -#define RENDER_8BIT_SMP_MONO_SINTRP_TAP_FIX \ +#define RENDER_8BIT_SMP_MONO_S16INTRP_TAP_FIX \ smpTapPtr = (smpPtr <= leftEdgePtr) ? (int8_t *)&v->leftEdgeTaps8[(int32_t)(smpPtr-loopStartPtr)] : (int8_t *)smpPtr; \ - WINDOWED_SINC_INTERPOLATION(smpTapPtr, positionFrac, 128) \ + WINDOWED_SINC16_INTERPOLATION(smpTapPtr, positionFrac, 128) \ fSample *= fVolumeL; \ *fMixBufferL++ += fSample; \ *fMixBufferR++ += fSample; -#define RENDER_16BIT_SMP_SINTRP_TAP_FIX \ +#define RENDER_16BIT_SMP_S16INTRP_TAP_FIX \ smpTapPtr = (smpPtr <= leftEdgePtr) ? (int16_t *)&v->leftEdgeTaps16[(int32_t)(smpPtr-loopStartPtr)] : (int16_t *)smpPtr; \ - WINDOWED_SINC_INTERPOLATION(smpTapPtr, positionFrac, 32768) \ + WINDOWED_SINC16_INTERPOLATION(smpTapPtr, positionFrac, 32768) \ *fMixBufferL++ += fSample * fVolumeL; \ *fMixBufferR++ += fSample * fVolumeR; -#define RENDER_16BIT_SMP_MONO_SINTRP_TAP_FIX \ +#define RENDER_16BIT_SMP_MONO_S16INTRP_TAP_FIX \ smpTapPtr = (smpPtr <= leftEdgePtr) ? (int16_t *)&v->leftEdgeTaps16[(int32_t)(smpPtr-loopStartPtr)] : (int16_t *)smpPtr; \ - WINDOWED_SINC_INTERPOLATION(smpTapPtr, positionFrac, 32768) \ + WINDOWED_SINC16_INTERPOLATION(smpTapPtr, positionFrac, 32768) \ fSample *= fVolumeL; \ *fMixBufferL++ += fSample; \ *fMixBufferR++ += fSample; diff --git a/src/mixer/ft2_windowed_sinc.c b/src/mixer/ft2_windowed_sinc.c @@ -9,8 +9,16 @@ #include <stdlib.h> #include <math.h> #include "ft2_windowed_sinc.h" +#include "../ft2_video.h" // showErrorMsgBox() -float *fKaiserSinc = NULL, *fDownSample1 = NULL, *fDownSample2 = NULL; // globalized +#define MY_PI 3.14159265358979323846264338327950288 + +// globalized +float *fKaiserSinc_8 = NULL, *fDownSample1_8 = NULL, *fDownSample2_8 = NULL; +float *fKaiserSinc_16 = NULL, *fDownSample1_16 = NULL, *fDownSample2_16 = NULL; + +// set based on selected sinc interpolator (8 point or 16 point) +float *fKaiserSinc = NULL, *fDownSample1 = NULL, *fDownSample2 = NULL; static double Izero(double y) // Compute Bessel function Izero(y) using a series approximation { @@ -29,27 +37,30 @@ static double Izero(double y) // Compute Bessel function Izero(y) using a series return s; } -static void getSinc(float *fLUTPtr, const double beta, const double cutoff) +static void getSinc(uint32_t numTaps, float *fLUTPtr, const double beta, const double cutoff) { const double izeroBeta = Izero(beta); - const double kPi = (4.0 * atan(1.0)) * cutoff; // M_PI can't be trusted + const double kPi = MY_PI * cutoff; + + const uint32_t length = numTaps * SINC_PHASES; + const uint32_t tapBits = (int32_t)log2(numTaps); + const uint32_t tapsMinus1 = numTaps - 1; + const double xMul = 1.0 / ((numTaps / 2) * (numTaps / 2)); + const int32_t midTap = (numTaps / 2) * SINC_PHASES; - for (int32_t i = 0; i < SINC_LUT_LEN; i++) + for (uint32_t i = 0; i < length; i++) { - double dSinc; - int32_t ix = (SINC_TAPS-1) - (i & (SINC_TAPS-1)); + const int32_t ix = ((tapsMinus1 - (i & tapsMinus1)) * SINC_PHASES) + (i >> tapBits); - ix = (ix * SINC_PHASES) + (i >> SINC_TAPS_BITS); - if (ix == SINC_MID_TAP) + double dSinc; + if (ix == midTap) { dSinc = 1.0; } else { - const double x = (ix - SINC_MID_TAP) * (1.0 / SINC_PHASES); + const double x = (ix - midTap) * (1.0 / SINC_PHASES); const double xPi = x * kPi; - - const double xMul = 1.0 / ((SINC_TAPS/2) * (SINC_TAPS/2)); dSinc = sin(xPi) * Izero(beta * sqrt(1.0 - x * x * xMul)) / (izeroBeta * xPi); // Kaiser window } @@ -58,38 +69,68 @@ static void getSinc(float *fLUTPtr, const double beta, const double cutoff) } bool calcWindowedSincTables(void) -{ - fKaiserSinc = (float *)malloc(SINC_LUT_LEN * sizeof (float)); - fDownSample1 = (float *)malloc(SINC_LUT_LEN * sizeof (float)); - fDownSample2 = (float *)malloc(SINC_LUT_LEN * sizeof (float)); +{ + fKaiserSinc_8 = (float *)malloc(8*SINC_PHASES * sizeof (float)); + fDownSample1_8 = (float *)malloc(8*SINC_PHASES * sizeof (float)); + fDownSample2_8 = (float *)malloc(8*SINC_PHASES * sizeof (float)); + + fKaiserSinc_16 = (float *)malloc(16*SINC_PHASES * sizeof (float)); + fDownSample1_16 = (float *)malloc(16*SINC_PHASES * sizeof (float)); + fDownSample2_16 = (float *)malloc(16*SINC_PHASES * sizeof (float)); - if (fKaiserSinc == NULL || fDownSample1 == NULL || fDownSample2 == NULL) + if (fKaiserSinc_8 == NULL || fDownSample1_8 == NULL || fDownSample2_8 == NULL || + fKaiserSinc_16 == NULL || fDownSample1_16 == NULL || fDownSample2_16 == NULL) + { + showErrorMsgBox("Not enough memory!"); return false; + } - getSinc(fKaiserSinc, 9.6377, 0.97); - getSinc(fDownSample1, 8.5, 0.5); - getSinc(fDownSample2, 7.3, 0.425); // 8bitbubsy: tweaked the beta value (was aliasing quite a bit) + getSinc(8, fKaiserSinc_8, 9.6377, 1.0); + getSinc(8, fDownSample1_8, 8.5, 0.5); + getSinc(8, fDownSample2_8, 7.3, 0.425); + + getSinc(16, fKaiserSinc_16, 9.6377, 1.0); + getSinc(16, fDownSample1_16, 8.5, 0.5); + getSinc(16, fDownSample2_16, 7.3, 0.425); return true; } void freeWindowedSincTables(void) { - if (fKaiserSinc != NULL) + if (fKaiserSinc_8 != NULL) + { + free(fKaiserSinc_8); + fKaiserSinc_8 = NULL; + } + + if (fDownSample1_8 != NULL) + { + free(fDownSample1_8); + fDownSample1_8 = NULL; + } + + if (fDownSample2_8 != NULL) + { + free(fDownSample2_8); + fDownSample2_8 = NULL; + } + + if (fKaiserSinc_16 != NULL) { - free(fKaiserSinc); - fKaiserSinc = NULL; + free(fKaiserSinc_16); + fKaiserSinc_16 = NULL; } - if (fDownSample1 != NULL) + if (fDownSample1_16 != NULL) { - free(fDownSample1); - fDownSample1 = NULL; + free(fDownSample1_16); + fDownSample1_16 = NULL; } - if (fDownSample2 != NULL) + if (fDownSample2_16 != NULL) { - free(fDownSample2); - fDownSample2 = NULL; + free(fDownSample2_16); + fDownSample2_16 = NULL; } } diff --git a/src/mixer/ft2_windowed_sinc.h b/src/mixer/ft2_windowed_sinc.h @@ -2,29 +2,23 @@ #include <stdint.h> #include <stdbool.h> -#include "ft2_mix.h" - -// 8 or 16. 8 allows more unwanted frequencies, which may be preferred for lo-fi samples -#define SINC_TAPS 8 - -// log2(SINC_TAPS) -#define SINC_TAPS_BITS 3 +#include "ft2_mix.h" // MIXER_FRAC_BITS +// 8192 is a good compromise #define SINC_PHASES 8192 - -// log2(SINC_PHASES) -#define SINC_PHASES_BITS 13 - -#define SINC_LUT_LEN (SINC_TAPS * SINC_PHASES) -#define SINC_FSHIFT (MIXER_FRAC_BITS-(SINC_PHASES_BITS+SINC_TAPS_BITS)) -#define SINC_FMASK ((SINC_TAPS*SINC_PHASES)-SINC_TAPS) - -#define SINC_CENTER_TAP (SINC_TAPS/2) -#define SINC_LEFT_TAPS ((SINC_TAPS/2)-1) -#define SINC_RIGHT_TAPS (SINC_TAPS/2) - -// for LUT calculation -#define SINC_MID_TAP ((SINC_TAPS/2)*SINC_PHASES) +#define SINC_PHASES_BITS 13 // log2(SINC_PHASES) + +// do not change these! +#define SINC8_FSHIFT (MIXER_FRAC_BITS-(SINC_PHASES_BITS+3)) +#define SINC8_FMASK ((8*SINC_PHASES)-8) +#define SINC16_FSHIFT (MIXER_FRAC_BITS-(SINC_PHASES_BITS+4)) +#define SINC16_FMASK ((16*SINC_PHASES)-16) +#define SINC_MAX_TAPS 16 +#define SINC_MAX_LEFT_TAPS ((SINC_MAX_TAPS/2)-1) +#define SINC_MAX_RIGHT_TAPS (SINC_MAX_TAPS/2) + +extern float *fKaiserSinc_8, *fDownSample1_8, *fDownSample2_8; +extern float *fKaiserSinc_16, *fDownSample1_16, *fDownSample2_16; extern float *fKaiserSinc, *fDownSample1, *fDownSample2; diff --git a/src/smploaders/ft2_load_aiff.c b/src/smploaders/ft2_load_aiff.c @@ -14,7 +14,7 @@ #include "../ft2_sysreqs.h" #include "../ft2_sample_loader.h" -static int32_t getAIFFSampleRate(uint8_t *in); +static uint32_t getAIFFSampleRate(uint8_t *in); static bool aiffIsStereo(FILE *f); // only ran on files that are confirmed to be AIFFs bool loadAIFF(FILE *f, uint32_t filesize) @@ -582,22 +582,23 @@ bool loadAIFF(FILE *f, uint32_t filesize) return true; } -static int32_t getAIFFSampleRate(uint8_t *in) +static uint32_t getAIFFSampleRate(uint8_t *in) { - uint32_t mantissa = (in[2] << 24) | (in[3] << 16) | (in[4] << 8) | in[5]; - uint8_t exp = 30 - in[1]; + /* 80-bit IEEE-754 to unsigned 32-bit integer (rounded). + ** Sign bit is ignored. + */ - uint32_t lastMantissa = 0; - while (exp--) - { - lastMantissa = mantissa; - mantissa >>= 1; - } +#define EXP_BIAS 16383 + + const uint16_t exp15 = ((in[0] & 0x7F) << 8) | in[1]; + const uint64_t mantissaBits = *(uint64_t *)&in[2]; + const uint64_t mantissa63 = SWAP64(mantissaBits) & INT64_MAX; - if (lastMantissa & 1) - mantissa++; + double dExp = exp15 - EXP_BIAS; + double dMantissa = mantissa63 / (INT64_MAX+1.0); - return mantissa; + double dResult = (1.0 + dMantissa) * exp2(dExp); + return (uint32_t)round(dResult); } static bool aiffIsStereo(FILE *f) // only ran on files that are confirmed to be AIFFs