diff --git a/CHANGELOG.md b/CHANGELOG.md index f8bd4638b..ab7031184 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -75,6 +75,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - Introduced a ref-counted `ImageMetadata` object (`ImageMetadata::Ptr`) attached to `Image` and `ImageFormatReader::metadata`. DPI, text entries, and raw binary chunks are all accessed through the metadata object only when requested via `Options`. - Lossless roundtrip tests for all formats (BMP, PNG, WebP, TGA, TIFF, PPM, GIF) now verify pixel-perfect fidelity after write→read; animated roundtrip tests for GIF, WebP, and PNG verify per-frame pixel integrity. +### Audio GUI (`yup_audio_gui`) + +- `SpectrogramComponent` now keeps its waterfall history on the GPU: a precompiled `.ysl` shader bundle (embedded in `yup_SpectrogramComponentShader.inc`, built with the `yup_shader_bundler` host tool) drives a single fullscreen-triangle `GpuRenderPass` (see `GpuPipeline`) that scrolls the previous frame down by the pending rows and writes the new rows with the color map applied entirely on the GPU, uploading only the raw magnitudes as a uniform buffer - no per-paint CPU pixel upload, no GPU texture creation, and no 2D canvas flush (if the bundle cannot be compiled no waterfall is rendered). Pending FFT rows are always consumed (applied or dropped) so the update queue can never accumulate. The log-frequency → FFT-bin mapping is precomputed once per configuration instead of recomputed with pow/log per row, and the frequency grid (lines + labels) is cached in an offscreen canvas and only re-rendered when the frequency range or size changes. The component now requires a GPU render context (the CPU `Image` fallback was removed). The component's per-frame `refreshDisplay` hook processes pending FFT rows, and the history is presented at a fractional vertical offset that advances at the FFT row rate, so the waterfall scrolls smoothly between rows instead of jumping a row per update; the offset is clamped to a single row so bursts of FFT rows can never push the waterfall off-screen. The scroll speed is adjustable via the new `setScrollSpeed()` multiplier (1.0 = realtime, 0.0 = paused). ### Shading diff --git a/examples/graphics/source/examples/SpectrumAnalyzer.h b/examples/graphics/source/examples/SpectrumAnalyzer.h index 56932c585..b8d29ca98 100644 --- a/examples/graphics/source/examples/SpectrumAnalyzer.h +++ b/examples/graphics/source/examples/SpectrumAnalyzer.h @@ -26,6 +26,7 @@ #include #include +#include #include #include @@ -376,8 +377,7 @@ class SignalGenerator float generatePinkNoise() { - // Paul Kellett's refined method for pink noise - float white = yup::Random::getSystemRandom().nextFloat() * 2.0f - 1.0f; + float white = generateWhiteNoise(); pinkFilters[0] = 0.99886f * pinkFilters[0] + white * 0.0555179f; pinkFilters[1] = 0.99332f * pinkFilters[1] + white * 0.0750759f; @@ -394,10 +394,12 @@ class SignalGenerator float generateBrownNoise() { - float white = yup::Random::getSystemRandom().nextFloat() * 2.0f - 1.0f; - brownState = (brownState + (0.02f * white)) / 1.02f; - brownState *= 3.5f; // Scale up - return brownState; + float white = generateWhiteNoise(); + + brownState = (brownState + 0.02f * white) / 1.02f; + + float output = brownState * 3.5f; + return yup::jlimit (output, -1.0f, 1.0f); } void updatePhaseIncrement() @@ -445,6 +447,99 @@ class SignalGenerator int pendingReadPosition = 0; }; +//============================================================================== +// Plays a decoded audio file (e.g. the bundled mp3) through the demo, resampled +// to the device rate and looped. The whole file is decoded to mono floats on +// load so playback is a simple indexed read on the audio thread. +class AudioFilePlayer +{ +public: + bool load (yup::AudioFormatManager& formatManager, const yup::File& file) + { + auto newReader = formatManager.createReaderFor (file); + if (newReader == nullptr) + return false; + + const double newSampleRate = newReader->sampleRate > 0 ? newReader->sampleRate : 44100.0; + const int numChannels = yup::jmax (1, newReader->numChannels); + const auto numFrames = newReader->lengthInSamples; + if (numFrames <= 0) + return false; + + // Decode the whole file into an AudioBuffer, then downmix to mono + // floats so playback is an indexed read. + yup::AudioBuffer decoded (numChannels, static_cast (numFrames)); + if (! newReader->read (&decoded, 0, static_cast (numFrames), 0, true, numChannels > 1)) + return false; + + std::vector mono (static_cast (numFrames), 0.0f); + const float gain = 1.0f / static_cast (numChannels); + for (int ch = 0; ch < numChannels; ++ch) + { + const auto* channelData = decoded.getReadPointer (ch); + for (std::size_t i = 0; i < mono.size(); ++i) + mono[i] += channelData[i] * gain; + } + + reader = std::move (newReader); + samples = std::move (mono); + sourceSampleRate = newSampleRate; + position = 0.0; + return true; + } + + bool isLoaded() const noexcept { return ! samples.empty(); } + + void setAmplitude (float value) { gain = value; } + + void setTargetSampleRate (double newRate) noexcept + { + targetSampleRate = newRate > 0 ? newRate : 44100.0; + } + + void renderNextBlock (float* output, int numSamples) noexcept + { + if (output == nullptr || numSamples <= 0) + return; + + if (samples.empty()) + { + for (int i = 0; i < numSamples; ++i) + output[i] = 0.0f; + return; + } + + const std::size_t length = samples.size(); + const double ratio = sourceSampleRate / targetSampleRate; + + if (position >= static_cast (length)) + position = std::fmod (position, static_cast (length)); + + const float gainToApply = gain.load(); + for (int i = 0; i < numSamples; ++i) + { + // Linear interpolation between adjacent source samples, wrapping at + // the end of the file to loop playback. + const std::size_t i0 = static_cast (position) % length; + const std::size_t i1 = (i0 + 1) % length; + const float s0 = samples[i0]; + const float s1 = samples[i1]; + const float frac = static_cast (position - static_cast (static_cast (position))); + output[i] = (s0 + frac * (s1 - s0)) * gainToApply; + + position += ratio; + } + } + +private: + std::unique_ptr reader; + std::vector samples; + double sourceSampleRate = 44100.0; + double targetSampleRate = 44100.0; + double position = 0.0; + std::atomic gain = 1.0f; +}; + //============================================================================== class SpectrumAnalyzerDemo @@ -463,8 +558,9 @@ class SpectrumAnalyzerDemo SpectrumAnalyzerDemo() : Component ("SpectrumAnalyzerDemo") , analyzerComponent (analyzerState) - , spectrogramComponent (analyzerState) + , spectrogramComponent (spectrogramState) { + loadAudioFile(); // Pre-decode the bundled mp3 before the audio device starts setupUI(); setupAudio(); } @@ -560,7 +656,10 @@ class SpectrumAnalyzerDemo if (monoOutputBuffer.size() < static_cast (numSamples)) monoOutputBuffer.resize (static_cast (numSamples), 0.0f); - signalGenerator.renderNextBlock (monoOutputBuffer.data(), numSamples); + if (useAudioFile.load() && filePlayer.isLoaded()) + filePlayer.renderNextBlock (monoOutputBuffer.data(), numSamples); + else + signalGenerator.renderNextBlock (monoOutputBuffer.data(), numSamples); for (int sample = 0; sample < numSamples; ++sample) { @@ -570,8 +669,10 @@ class SpectrumAnalyzerDemo for (int channel = 0; channel < numOutputChannels; ++channel) outputChannelData[channel][sample] = audioSample; - // Feed to spectrum analyzer + // Feed to both spectrum displays (each owns its own analysis state + // so they do not compete for the same FIFO and starve each other) analyzerState.pushSample (audioSample); + spectrogramState.pushSample (audioSample); } } @@ -589,10 +690,14 @@ class SpectrumAnalyzerDemo signalGenerator.setAmplitude (currentAmplitude); signalGenerator.setSweepParameters (20.0, 22000.0, sweepDurationSeconds); monoOutputBuffer.assign (static_cast (maxBlockSize), 0.0f); + + // Match the file player's resampler to the device rate. + filePlayer.setTargetSampleRate (sampleRate); } - // Configure spectrum analyzer + // Configure spectrum displays analyzerComponent.setSampleRate (sampleRate); + spectrogramComponent.setSampleRate (sampleRate); } void audioDeviceStopped() override @@ -622,6 +727,7 @@ class SpectrumAnalyzerDemo signalTypeCombo->addItem ("White Noise", 7); signalTypeCombo->addItem ("Pink Noise", 8); signalTypeCombo->addItem ("Brown Noise", 9); + signalTypeCombo->addItem ("Audio File", 10); signalTypeCombo->setSelectedId (3); signalTypeCombo->onSelectedItemChanged = [this] { @@ -651,9 +757,10 @@ class SpectrumAnalyzerDemo amplitudeSlider->onValueChanged = [this] (double value) { currentAmplitude = (float) value; - updateSignalGenerator ([value] (SignalGenerator& generator) + updateSignalGenerator ([value, this] (SignalGenerator& generator) { generator.setAmplitude ((float) value); + filePlayer.setAmplitude ((float) value); }); }; addAndMakeVisible (*amplitudeSlider); @@ -745,6 +852,7 @@ class SpectrumAnalyzerDemo overlapSlider->onValueChanged = [this] (double value) { analyzerComponent.setOverlapFactor ((float) value); + spectrogramComponent.setOverlapFactor ((float) value); }; addAndMakeVisible (*overlapSlider); @@ -818,7 +926,6 @@ class SpectrumAnalyzerDemo spectrogramComponent.setWindowType (yup::WindowType::hann); spectrogramComponent.setFrequencyRange (20.0f, 22000.0f); spectrogramComponent.setDecibelRange (-100.0f, 10.0f); - spectrogramComponent.setUpdateRate (25); spectrogramComponent.setSampleRate (44100.0); spectrogramComponent.setOverlapFactor (0.75f); spectrogramComponent.setColorMap (yup::SpectrogramColorMap::Type::heatmap); @@ -933,6 +1040,23 @@ class SpectrumAnalyzerDemo fftInfoLabel->setBounds (fftStatus); } + // Decodes the bundled mp3 into the file player so it is ready (and + // immutable) before the audio device starts rendering. + void loadAudioFile() + { + formatManager.registerDefaultFormats(); + + auto dataDir = yup::File (__FILE__) + .getParentDirectory() + .getParentDirectory() + .getParentDirectory() + .getChildFile ("data"); + + auto audioFile = dataDir.getChildFile ("break_boomblastic_92bpm.mp3"); + if (audioFile.existsAsFile()) + filePlayer.load (formatManager, audioFile); + } + void updateSignalType() { SignalGenerator::SignalType signalType = SignalGenerator::SignalType::singleTone; @@ -974,6 +1098,11 @@ class SpectrumAnalyzerDemo break; } + // The "Audio File" source plays the pre-decoded mp3 through the file + // player instead of the signal generator (loaded in the constructor, so + // it is immutable while the audio callback reads it). + useAudioFile = (signalTypeCombo->getSelectedId() == 10); + updateSignalGenerator ([signalType, sweepPlaybackMode] (SignalGenerator& generator) { generator.setSignalType (signalType); @@ -990,8 +1119,9 @@ class SpectrumAnalyzerDemo int selectedId = fftSizeCombo->getSelectedId(); currentFFTSize = 64 << (selectedId - 1); // 64, 128, 256, ..., 16384 - // Update the analyzer component (which will update the state) + // Update both displays (each owns its own state) analyzerComponent.setFFTSize (currentFFTSize); + spectrogramComponent.setFFTSize (currentFFTSize); } void updateWindowType() @@ -1036,6 +1166,7 @@ class SpectrumAnalyzerDemo } analyzerComponent.setWindowType (windowType); + spectrogramComponent.setWindowType (windowType); } void updateDisplayType() @@ -1136,9 +1267,16 @@ class SpectrumAnalyzerDemo yup::AudioDeviceManager deviceManager; SignalGenerator signalGenerator; - // Spectrum analyzer + // Optional audio-file playback (the bundled mp3) + yup::AudioFormatManager formatManager; + AudioFilePlayer filePlayer; + std::atomic useAudioFile { false }; + + // Spectrum displays (each with its own analysis state - sharing one FIFO + // between two consumers would starve the spectrogram) yup::SpectrumAnalyzerState analyzerState; yup::SpectrumAnalyzerComponent analyzerComponent; + yup::SpectrumAnalyzerState spectrogramState; yup::SpectrogramComponent spectrogramComponent; // UI components diff --git a/modules/yup_audio_gui/displays/yup_SpectrogramComponent.cpp b/modules/yup_audio_gui/displays/yup_SpectrogramComponent.cpp index 48d249d2c..43fd41dce 100644 --- a/modules/yup_audio_gui/displays/yup_SpectrogramComponent.cpp +++ b/modules/yup_audio_gui/displays/yup_SpectrogramComponent.cpp @@ -22,6 +22,53 @@ namespace yup { +namespace +{ + +//============================================================================== +/* + +// The waterfall shader is precompiled into a .ysl bundle embedded in +// yup_SpectrogramComponentShader.inc (do not edit by hand). Regenerate it after +// changing yup_SpectrogramComponentShader.vert / .frag with: + + build/mac/_host_tools/shader_bundler/yup_shader_bundler \ + --vert modules/yup_audio_gui/displays/yup_SpectrogramComponentShader.vert \ + --frag modules/yup_audio_gui/displays/yup_SpectrogramComponentShader.frag \ + --output /tmp/yup_SpectrogramComponentShader.ysl \ + --target-langs glsl,essl,hlsl,msl,wgsl + +// then embed the bundle bytes into the .inc (keep the two-line comment header): + + xxd -i /tmp/yup_SpectrogramComponentShader.ysl \ + | sed -e '1d' -e '/^};/d' -e '/_len =/d' -e '/^[[:space:]]*$/d' \ + > /tmp/yup_SpectrogramComponentShader.inc.body + { echo '// Generated shader bundle (yup_SpectrogramComponentShader.ysl) - do not edit by hand.'; \ + echo '// Regenerate with the command at the top of yup_SpectrogramComponent.cpp.'; \ + cat /tmp/yup_SpectrogramComponentShader.inc.body; } \ + > modules/yup_audio_gui/displays/yup_SpectrogramComponentShader.inc + +*/ + +// Embedded precompiled shader bundle (.ysl), consumed by ShaderBundle::loadFromData(). +constexpr uint8_t kSpectrogramShaderBundle[] = { +#include "yup_SpectrogramComponentShader.inc" +}; + +// Uniforms for the waterfall shader (std140: eight floats). +struct WaterfallParams +{ + float numRows; + float width; // Waterfall texture width in texels + float height; + float bins; // Number of magnitude bins per row + float pad0; + float pad1; + float pad2; + float pad3; +}; +} // namespace + //============================================================================== // SpectrogramColorMap //============================================================================== @@ -158,13 +205,14 @@ SpectrogramComponent::SpectrogramComponent (SpectrumAnalyzerState& state) initializeFFTBuffers(); generateWindow(); + updateFrequencyMapping(); - startTimerHz (25); // 25 FPS updates + rowDataCache.resize (defaultSpectrogramMagnitudes, 0.0f); + lutDataCache.resize (defaultColorLutSize, 0u); } SpectrogramComponent::~SpectrogramComponent() { - stopTimer(); } //============================================================================== @@ -179,23 +227,111 @@ void SpectrogramComponent::initializeFFTBuffers() magnitudeBuffer.resize (static_cast (numBins), 0.0f); } -void SpectrogramComponent::ensureImageSize() +//============================================================================== +void SpectrogramComponent::applyPendingRows() { - const int currentWidth = spectrogramImage.isValid() ? spectrogramImage.getWidth() : 0; - const int currentHeight = spectrogramImage.isValid() ? spectrogramImage.getHeight() : 0; + if (pendingRows.empty()) + return; + + if (waterfallPipeline == nullptr || gpuTargets[0] == nullptr || gpuTargets[1] == nullptr) + { + pendingRows.clear(); + return; + } - if (currentWidth != spectrogramWidth || currentHeight != numHistoryFrames) + const int numRows = static_cast (pendingRows.size()); + const int maxShaderRows = jmax (1, static_cast (rowDataCache.size()) / spectrogramWidth); + const int appliedRows = jmin (numRows, maxShaderRows); + + auto& previous = gpuTargets[pingPongIndex]; + auto& current = gpuTargets[pingPongIndex ^ 1]; + + const WaterfallParams params { static_cast (appliedRows), + static_cast (spectrogramWidth * 2), // render width + static_cast (numHistoryFrames), + static_cast (spectrogramWidth), // bins + 0.0f, + 0.0f, + 0.0f, + 0.0f }; + + for (int row = 0; row < appliedRows; ++row) + { + const auto& magnitudes = pendingRows[static_cast (row)]; + std::copy (magnitudes.begin(), + magnitudes.begin() + spectrogramWidth, + rowDataCache.begin() + static_cast (row) * spectrogramWidth); + } + + if (lutNeedsRefresh) + { + const auto colorTable = colorMap.getColorTable(); + std::copy (colorTable.begin(), + colorTable.begin() + static_cast (jmin (colorTable.size(), lutDataCache.size())), + lutDataCache.begin()); + lutNeedsRefresh = false; + } + + auto frame = GpuFrame::begin (gpuDevice); + if (frame.isValid()) { - spectrogramImage = Image (spectrogramWidth, numHistoryFrames, PixelFormat::RGBA); - spectrogramImage.fill (0xFF0a0a0a); + auto pass = current->beginRenderPass (frame, { false, GpuColor::transparentBlack() }); + if (pass.isValid()) + { + pass.setPipeline (waterfallPipeline); + pass.setTexture (0, 0, previous->asTexture()); + pass.setUniformBuffer (0, 2, ¶ms, sizeof (params)); + pass.setUniformBuffer (0, 3, rowDataCache.data(), rowDataCache.size() * sizeof (float)); + pass.setUniformBuffer (0, 4, lutDataCache.data(), lutDataCache.size() * sizeof (uint32)); + + if (pass.draw (3) && pass.finish() && frame.submit()) + { + displayTexture = current->asTexture(); + + pingPongIndex ^= 1; + scrollOffset -= static_cast (appliedRows); + } + } } + + pendingRows.erase (pendingRows.begin(), pendingRows.begin() + appliedRows); } -//============================================================================== -void SpectrogramComponent::timerCallback() +void SpectrogramComponent::advanceScroll() +{ + const auto now = Time::getMillisecondCounter(); + const float elapsedSeconds = lastPaintTimeMs == 0 ? 0.0f : static_cast (now - lastPaintTimeMs) / 1000.0f; + lastPaintTimeMs = now; + + const float rowRate = getRowRate(); + const float advance = rowRate > 0.0f ? rowRate * scrollSpeedMultiplier * jlimit (0.0f, 0.25f, elapsedSeconds) : 0.0f; + scrollOffset = jlimit (-1.0f, 0.0f, scrollOffset + advance); +} + +void SpectrogramComponent::setScrollSpeed (float scrollSpeedMultiplier) +{ + this->scrollSpeedMultiplier = jmax (0.0f, scrollSpeedMultiplier); +} + +void SpectrogramComponent::refreshDisplay (double lastFrameTimeSeconds) { if (! isShowing()) + { + analyzerState.reset(); return; + } + + // If the analysis fell behind the audio (e.g. slow frames), skip the stale + // rows so the display keeps tracking the most recent audio instead of the + // latency accumulating over time. + const int numReady = analyzerState.getNumAvailableSamples(); + const int hopSize = analyzerState.getHopSize(); + if (hopSize > 0 && numReady > fftSize) + { + const int skipRows = (numReady - fftSize) / hopSize; + for (int i = 0; i < skipRows && analyzerState.isFFTDataReady(); ++i) + analyzerState.getFFTData (fftInputBuffer.data()); + } bool hasNewData = false; int fftCount = 0; @@ -205,14 +341,26 @@ void SpectrogramComponent::timerCallback() while (analyzerState.isFFTDataReady() && fftCount < maxFFTsPerFrame) { processFFT(); + + pendingRows.push_back (displayMagnitudes); + hasNewData = true; ++fftCount; } + // Defensive bound: never let the pending queue grow unboundedly if paint() + // is ever throttled - keep only the newest rows. + if (pendingRows.size() > 16) + pendingRows.erase (pendingRows.begin(), pendingRows.begin() + static_cast (pendingRows.size() - 16)); + if (hasNewData) - updateSpectrogramImage(); + repaint(); +} - repaint(); +float SpectrogramComponent::getRowRate() const noexcept +{ + const int hopSize = analyzerState.getHopSize(); + return hopSize > 0 ? static_cast (sampleRate) / static_cast (hopSize) : 0.0f; } void SpectrogramComponent::processFFT() @@ -227,8 +375,7 @@ void SpectrogramComponent::processFFT() } // Apply window function - for (int i = 0; i < fftSize; ++i) - fftInputBuffer[static_cast (i)] *= windowBuffer[static_cast (i)]; + FloatVectorOperations::multiply (fftInputBuffer.data(), windowBuffer.data(), fftInputBuffer.data(), fftSize); // Perform FFT fftProcessor->performRealFFTForward (fftInputBuffer.data(), fftOutputBuffer.data()); @@ -243,53 +390,19 @@ void SpectrogramComponent::processFFT() magnitudeBuffer[static_cast (binIndex)] = std::sqrt (real * real + imag * imag) * windowGain; } - // Map FFT bins to display bins using logarithmic frequency scaling - const int numDisplayBins = spectrogramWidth; - - for (int i = 0; i < numDisplayBins; ++i) + // Map FFT bins to display bins using the precomputed logarithmic mapping. + for (int i = 0; i < spectrogramWidth; ++i) { - const float proportion = static_cast (i) / static_cast (numDisplayBins - 1); - const float logFreq = logMinFrequency + proportion * (logMaxFrequency - logMinFrequency); - const float centerFreq = std::pow (10.0f, logFreq); - - float freqRangeStart, freqRangeEnd; - - if (i == 0) - { - freqRangeStart = minFrequency; - const float nextLogFreq = logMinFrequency + (static_cast (i + 1) / static_cast (numDisplayBins - 1)) * (logMaxFrequency - logMinFrequency); - const float nextFreq = std::pow (10.0f, nextLogFreq); - freqRangeEnd = (centerFreq + nextFreq) * 0.5f; - } - else if (i == numDisplayBins - 1) - { - const float prevLogFreq = logMinFrequency + (static_cast (i - 1) / static_cast (numDisplayBins - 1)) * (logMaxFrequency - logMinFrequency); - const float prevFreq = std::pow (10.0f, prevLogFreq); - freqRangeStart = (prevFreq + centerFreq) * 0.5f; - freqRangeEnd = maxFrequency; - } - else - { - const float prevLogFreq = logMinFrequency + (static_cast (i - 1) / static_cast (numDisplayBins - 1)) * (logMaxFrequency - logMinFrequency); - const float nextLogFreq = logMinFrequency + (static_cast (i + 1) / static_cast (numDisplayBins - 1)) * (logMaxFrequency - logMinFrequency); - const float prevFreq = std::pow (10.0f, prevLogFreq); - const float nextFreq = std::pow (10.0f, nextLogFreq); - freqRangeStart = (prevFreq + centerFreq) * 0.5f; - freqRangeEnd = (centerFreq + nextFreq) * 0.5f; - } - - const float startBin = (freqRangeStart * static_cast (fftSize)) / static_cast (sampleRate); - const float endBin = (freqRangeEnd * static_cast (fftSize)) / static_cast (sampleRate); - const float binSpan = endBin - startBin; + const auto& mapping = displayBinMapping[static_cast (i)]; + const float binSpan = mapping.endBin - mapping.startBin; float magnitude = 0.0f; if (binSpan <= 1.5f) { - const float exactBin = (centerFreq * static_cast (fftSize)) / static_cast (sampleRate); - const int bin1 = jlimit (0, numBins - 1, static_cast (exactBin)); + const int bin1 = jlimit (0, numBins - 1, static_cast (mapping.exactBin)); const int bin2 = jlimit (0, numBins - 1, bin1 + 1); - const float fraction = exactBin - static_cast (bin1); + const float fraction = mapping.exactBin - static_cast (bin1); const float mag1 = magnitudeBuffer[static_cast (bin1)]; const float mag2 = magnitudeBuffer[static_cast (bin2)]; @@ -297,8 +410,8 @@ void SpectrogramComponent::processFFT() } else { - const int binStart = jlimit (0, numBins - 1, static_cast (startBin)); - const int binEnd = jlimit (0, numBins - 1, static_cast (endBin + 0.5f)); + const int binStart = jlimit (0, numBins - 1, static_cast (mapping.startBin)); + const int binEnd = jlimit (0, numBins - 1, static_cast (mapping.endBin + 0.5f)); for (int binIndex = binStart; binIndex <= binEnd; ++binIndex) magnitude = jmax (magnitude, magnitudeBuffer[static_cast (binIndex)]); @@ -318,46 +431,124 @@ void SpectrogramComponent::processFFT() } } -void SpectrogramComponent::updateSpectrogramImage() +void SpectrogramComponent::updateFrequencyMapping() { - ensureImageSize(); + displayBinMapping.resize (static_cast (spectrogramWidth)); - scrollSpectrogram(); - writeMagnitudeRow(); + const int numDisplayBins = spectrogramWidth; + const float invLastBin = 1.0f / static_cast (numDisplayBins - 1); + + for (int i = 0; i < numDisplayBins; ++i) + { + const float proportion = static_cast (i) * invLastBin; + const float logFreq = logMinFrequency + proportion * (logMaxFrequency - logMinFrequency); + const float centerFreq = std::pow (10.0f, logFreq); + + const float prevProportion = static_cast (i - 1) * invLastBin; + const float nextProportion = static_cast (i + 1) * invLastBin; + + float freqRangeStart, freqRangeEnd; + + if (i == 0) + { + freqRangeStart = minFrequency; + freqRangeEnd = (centerFreq + std::pow (10.0f, logMinFrequency + nextProportion * (logMaxFrequency - logMinFrequency))) * 0.5f; + } + else if (i == numDisplayBins - 1) + { + freqRangeStart = (std::pow (10.0f, logMinFrequency + prevProportion * (logMaxFrequency - logMinFrequency)) + centerFreq) * 0.5f; + freqRangeEnd = maxFrequency; + } + else + { + freqRangeStart = (std::pow (10.0f, logMinFrequency + prevProportion * (logMaxFrequency - logMinFrequency)) + centerFreq) * 0.5f; + freqRangeEnd = (centerFreq + std::pow (10.0f, logMinFrequency + nextProportion * (logMaxFrequency - logMinFrequency))) * 0.5f; + } - // Invalidate so the GPU texture is recreated from updated pixel data - spectrogramImage.invalidateTexture(); + auto& mapping = displayBinMapping[static_cast (i)]; + mapping.startBin = (freqRangeStart * static_cast (fftSize)) / static_cast (sampleRate); + mapping.endBin = (freqRangeEnd * static_cast (fftSize)) / static_cast (sampleRate); + mapping.exactBin = (centerFreq * static_cast (fftSize)) / static_cast (sampleRate); + } } -void SpectrogramComponent::scrollSpectrogram() +bool SpectrogramComponent::ensureGpuTargets (GraphicsContext& context) { - auto raw = spectrogramImage.getRawData(); - const int width = spectrogramImage.getWidth(); - const int height = spectrogramImage.getHeight(); - const int stride = spectrogramImage.getPixelStride(); - const int rowBytes = width * stride; + if (gpuTargets[0] != nullptr && gpuTargets[1] != nullptr) + return true; + + if (! context.isGpuAvailable()) + return false; + + gpuDevice = context.getGpuDevice(); + if (gpuDevice == nullptr) + return false; + + // The waterfall texture is rendered at a higher horizontal resolution than + // the bin count and interpolated in the shader for a smooth (antialiased) + // frequency axis. + const int renderWidth = spectrogramWidth * 2; + + const auto backgroundColor = Color (0xFF0a0a0a); + + gpuTargets[0] = GpuTarget::create (gpuDevice, renderWidth, numHistoryFrames); + gpuTargets[1] = GpuTarget::create (gpuDevice, renderWidth, numHistoryFrames); - // Shift all rows down by one (row 0 stays at top, row height-1 falls off) - if (height > 1) + if (gpuTargets[0] == nullptr || gpuTargets[1] == nullptr) { - std::memmove ( - raw.data() + rowBytes, - raw.data(), - static_cast ((height - 1)) * static_cast (rowBytes)); + gpuTargets[0] = nullptr; + gpuTargets[1] = nullptr; + return false; } + + const GpuRenderOptions clearOptions { true, backgroundColor }; + for (auto& target : gpuTargets) + { + auto frame = GpuFrame::begin (gpuDevice); + if (frame.isValid()) + { + auto pass = target->beginRenderPass (frame, clearOptions); + pass.finish(); + frame.submit(); + } + } + + ensureWaterfallPipeline(); + + pingPongIndex = 0; + displayTexture = gpuTargets[0]->asTexture(); + + scrollOffset = 0.0f; + lastPaintTimeMs = 0; + + return true; } -void SpectrogramComponent::writeMagnitudeRow() +void SpectrogramComponent::ensureWaterfallPipeline() { - auto& bitmap = spectrogramImage.getPixelData(); - const int width = spectrogramImage.getWidth(); + if (waterfallPipeline != nullptr || gpuDevice == nullptr) + return; - for (int x = 0; x < width; ++x) + auto loaded = ShaderBundle::loadFromData (kSpectrogramShaderBundle, sizeof (kSpectrogramShaderBundle)); + if (loaded.failed()) { - const float magnitude = displayMagnitudes[static_cast (x)]; - const uint32 color = colorMap.map (magnitude); - bitmap.setPixel (x, 0, color); + YUP_DBG ("Failed to load precompiled waterfall shader bundle: " << loaded.getErrorMessage()); + + jassertfalse; // Waterfall shader bundle failed to load - no waterfall will be rendered. + return; } + + GpuPipelineOptions options; + options.colorTargetCount = 1; + options.colorTargets[0].format = GpuTextureFormat::rgba8unorm; + options.colorTargets[0].blendEnabled = false; + + auto result = GpuPipeline::compileFromBundle (gpuDevice, loaded.getReference(), options); + + if (result.wasOk()) + waterfallPipeline = result.getValue(); + else + jassertfalse; // Waterfall shader failed to compile - no waterfall will be rendered. } void SpectrogramComponent::generateWindow() @@ -374,18 +565,31 @@ void SpectrogramComponent::generateWindow() //============================================================================== void SpectrogramComponent::paint (Graphics& g) { + // Lazily move to the GPU path on the first paint that has a live context. + if (gpuTargets[0] == nullptr && g.getGraphicsContext().isGpuAvailable()) + ensureGpuTargets (g.getGraphicsContext()); + + // Apply any FFT rows queued since the last timer tick. + applyPendingRows(); + + // Advance the fractional scroll offset on the GPU path. + advanceScroll(); + const auto bounds = getLocalBounds(); // Background g.setFillColor (Color (0xFF0a0a0a)); g.fillAll(); - // Draw the spectrogram image (stretched to fill the component) - if (spectrogramImage.isValid()) - g.drawImage (spectrogramImage, bounds); + // Draw the spectrogram, stretched to fill the component. + if (displayTexture != nullptr) + { + const float scaleY = bounds.getHeight() / static_cast (displayTexture->getHeight()); + g.drawTexture (displayTexture, Rectangle (bounds.getX(), bounds.getY() + scrollOffset * scaleY, bounds.getWidth(), bounds.getHeight())); + } - // Draw grid overlays - drawFrequencyGrid (g, bounds); + // Draw grid overlays (cached offscreen, only re-rendered on changes) + drawFrequencyGridCached (g, bounds); } void SpectrogramComponent::resized() @@ -399,9 +603,9 @@ void SpectrogramComponent::drawFrequencyGrid (Graphics& g, const RectanglegetDefaultFont().withHeight (9.0f); const int multipliers[] = { 1, 2, 5 }; - const int powers[] = { 1, 10, 100, 1000, 10000 }; + const int powers[] = { 1, 10, 100, 200, 1000, 2000, 10000 }; - for (int brightness = 0; brightness < 3; ++brightness) + for (int brightness = 0; brightness < numElementsInArray (multipliers); ++brightness) { Color lineColor; float lineWidth; @@ -427,7 +631,7 @@ void SpectrogramComponent::drawFrequencyGrid (Graphics& g, const Rectangle (multipliers[brightness] * powers[power]); @@ -466,6 +670,34 @@ float SpectrogramComponent::frequencyToX (float frequency, float width) const no return jmap (std::log10 (frequency), logMinFrequency, logMaxFrequency, 0.0f, width); } +void SpectrogramComponent::drawFrequencyGridCached (Graphics& g, const Rectangle& bounds) +{ + const Rectangle cacheBounds (0.0f, 0.0f, static_cast (static_cast (bounds.getWidth())), static_cast (static_cast (bounds.getHeight()))); + + if (gridCanvas == nullptr || gridNeedsRedraw || gridCacheBounds != cacheBounds) + { + gridCanvas = GpuCanvas::create (g.getGraphicsContext(), + static_cast (cacheBounds.getWidth()), + static_cast (cacheBounds.getHeight()), + Colors::transparentBlack); + + if (gridCanvas != nullptr) + { + auto& gridGraphics = gridCanvas->beginDraw(); + drawFrequencyGrid (gridGraphics, cacheBounds); + gridCanvas->commit(); + + gridCacheBounds = cacheBounds; + gridNeedsRedraw = false; + } + } + + if (gridCanvas != nullptr) + g.drawTexture (gridCanvas->asTexture(), bounds); + else + drawFrequencyGrid (g, bounds); +} + //============================================================================== void SpectrogramComponent::setFFTSize (int size) { @@ -478,6 +710,7 @@ void SpectrogramComponent::setFFTSize (int size) initializeFFTBuffers(); generateWindow(); + updateFrequencyMapping(); clearHistory(); repaint(); @@ -493,18 +726,6 @@ void SpectrogramComponent::setWindowType (WindowType type) } } -void SpectrogramComponent::setUpdateRate (int hz) -{ - stopTimer(); - startTimerHz (jmax (1, jmin (60, hz))); -} - -int SpectrogramComponent::getUpdateRate() const noexcept -{ - const int intervalMs = getTimerInterval(); - return isTimerRunning() ? 1000 / intervalMs : 0; -} - void SpectrogramComponent::setFrequencyRange (float minFreq, float maxFreq) { const float newMinFrequency = jmax (1.0f, minFreq); @@ -521,6 +742,9 @@ void SpectrogramComponent::setFrequencyRange (float minFreq, float maxFreq) logMinFrequency = std::log10 (minFrequency); logMaxFrequency = std::log10 (maxFrequency); + updateFrequencyMapping(); + gridNeedsRedraw = true; + clearHistory(); } @@ -550,12 +774,14 @@ void SpectrogramComponent::setSampleRate (double rate) return; sampleRate = newSampleRate; + updateFrequencyMapping(); clearHistory(); } void SpectrogramComponent::setColorMap (SpectrogramColorMap::Type type) { colorMap = SpectrogramColorMap (type); + lutNeedsRefresh = true; // Re-fill the cached LUT on the next apply clearHistory(); } @@ -563,9 +789,13 @@ void SpectrogramComponent::setNumHistoryFrames (int numFrames) { numHistoryFrames = jmax (4, numFrames); - // Recreate the image with the new height - spectrogramImage = Image (spectrogramWidth, numHistoryFrames, PixelFormat::RGBA); - spectrogramImage.fill (Color (0xFF0a0a0a).getARGB()); + pendingRows.clear(); + scrollOffset = 0.0f; + lastPaintTimeMs = 0; + + gpuTargets[0] = nullptr; + gpuTargets[1] = nullptr; + displayTexture = nullptr; repaint(); } @@ -582,10 +812,23 @@ float SpectrogramComponent::getOverlapFactor() const noexcept void SpectrogramComponent::clearHistory() { - if (spectrogramImage.isValid()) - spectrogramImage.fill (Color (0xFF0a0a0a).getARGB()); + pendingRows.clear(); + scrollOffset = 0.0f; + lastPaintTimeMs = 0; + + gpuTargets[0] = nullptr; + gpuTargets[1] = nullptr; + displayTexture = nullptr; repaint(); } +Image SpectrogramComponent::getSpectrogramImage() +{ + if (gpuTargets[pingPongIndex] != nullptr) + return Image::fromTarget (*gpuTargets[pingPongIndex]); + + return {}; +} + } // namespace yup diff --git a/modules/yup_audio_gui/displays/yup_SpectrogramComponent.h b/modules/yup_audio_gui/displays/yup_SpectrogramComponent.h index a6e9dbdf2..1532e887a 100644 --- a/modules/yup_audio_gui/displays/yup_SpectrogramComponent.h +++ b/modules/yup_audio_gui/displays/yup_SpectrogramComponent.h @@ -28,7 +28,7 @@ namespace yup ARGB colors for spectrogram visualization. The default color map produces a professional heatmap gradient: - black → dark blue → blue → cyan → green → yellow → red → white. + black > dark blue > blue > cyan > green > yellow > red > white. @tags{Audio} */ @@ -39,11 +39,11 @@ class YUP_API SpectrogramColorMap /** Predefined color map types. */ enum class Type { - heatmap, ///< Black → blue → cyan → green → yellow → red → white - grayscale, ///< Black → gray → white - cool, ///< Black → blue → cyan → white - warm, ///< Black → red → orange → yellow → white - viridis ///< Perceptually uniform blue → green → yellow + heatmap, ///< Black > blue > cyan > green > yellow > red > white + grayscale, ///< Black > gray > white + cool, ///< Black > blue > cyan > white + warm, ///< Black > red > orange > yellow > white + viridis ///< Perceptually uniform blue > green > yellow }; //============================================================================== @@ -68,6 +68,16 @@ class YUP_API SpectrogramColorMap /** Returns the number of color stops in the lookup table. */ int getNumColorStops() const noexcept { return numColorStops; } + /** Returns the raw ARGB color lookup table (0xAARRGGBB per entry). + + The table holds exactly getNumColorStops() entries sampled from the + gradient, which is what map() interpolates between. Uploading this table + to the GPU lets a shader perform the same color mapping. + + @return a span over the color table. + */ + Span getColorTable() const noexcept { return colorTable; } + private: //============================================================================== void buildHeatmap(); @@ -91,10 +101,6 @@ class YUP_API SpectrogramColorMap scrolling waterfall display. Each new row of FFT data is rendered at the top of the display and previous rows scroll downward. - The spectrogram image is stored in a GPU texture which is updated each frame - by invalidating the existing texture and letting the renderer recreate it. - Frequency and decibel grid lines are drawn as vector overlays. - Example usage: @code @@ -105,7 +111,6 @@ class YUP_API SpectrogramColorMap spectrogram.setFrequencyRange (20.0f, 20000.0f); spectrogram.setDecibelRange (-100.0f, 0.0f); spectrogram.setColorMap (SpectrogramColorMap::Type::heatmap); - spectrogram.setUpdateRate (25); // In audio callback: analyzerState.pushSamples (audioData, numSamples); @@ -113,16 +118,16 @@ class YUP_API SpectrogramColorMap @see SpectrumAnalyzerState, SpectrumAnalyzerComponent, SpectrogramColorMap */ -class YUP_API SpectrogramComponent - : public Component - , public Timer +class YUP_API SpectrogramComponent : public Component { public: //============================================================================== /** Display constants. */ enum { - defaultSpectrogramWidth = 512 ///< Default number of horizontal frequency bins. + defaultSpectrogramWidth = 1024, ///< Default number of horizontal frequency bins. + defaultSpectrogramMagnitudes = 2048, ///< Default number of magnitudes per FFT (must be >= defaultSpectrogramWidth). + defaultColorLutSize = 256 ///< Default number of color stops in the color lookup table. }; //============================================================================== @@ -156,14 +161,20 @@ class YUP_API SpectrogramComponent WindowType getWindowType() const noexcept { return currentWindowType; } //============================================================================== - /** Sets the display update rate in Hz. + /** Sets the waterfall scroll speed, as a multiplier of the realtime FFT + row rate (sampleRate / hopSize). - @param hz update rate (typical values: 10-30 Hz) + A multiplier of 1.0 (the default) keeps the waterfall locked to the + audio: new rows slide in exactly as fast as the FFT produces them. + Values above 1.0 scroll faster than realtime (rows are dropped at the + bottom sooner), values below 1.0 scroll slower. 0.0 pauses the scroll. + + @param scrollSpeedMultiplier the scroll speed multiplier (clamped to >= 0) */ - void setUpdateRate (int hz); + void setScrollSpeed (float scrollSpeedMultiplier); - /** Returns the current update rate in Hz. */ - int getUpdateRate() const noexcept; + /** Returns the current scroll speed multiplier (1.0 = realtime). */ + float getScrollSpeed() const noexcept { return scrollSpeedMultiplier; } //============================================================================== /** Sets the frequency range for the display. @@ -217,7 +228,7 @@ class YUP_API SpectrogramComponent /** Sets the number of FFT frames kept in the scrolling history. This determines how many past FFT frames are visible in the display. - The spectrogram image height is resized to match this value. + The history canvases are resized to match this value. @param numFrames number of history frames (minimum: 4, default: matches component height) */ @@ -243,14 +254,16 @@ class YUP_API SpectrogramComponent //============================================================================== /** Returns the current spectrogram image. - The returned image contains the waterfall history used by paint() when - rendering the component. The image may be invalid until the spectrogram - has allocated its history buffer, for example after setNumHistoryFrames() - or after processing FFT data on a visible component. + The returned image contains the waterfall history held in the current + history canvas. This performs a GPU readback, which is slower than + rendering from the component's cached GPU texture (via paint()); prefer + painting the component directly when possible. The image is invalid + until the component has a live GPU render context and its history + canvases have been created (e.g. after the first paint). @returns the current spectrogram image. */ - Image getSpectrogramImage() const noexcept { return spectrogramImage; } + Image getSpectrogramImage(); //============================================================================== /** @internal */ @@ -258,36 +271,65 @@ class YUP_API SpectrogramComponent /** @internal */ void resized() override; /** @internal */ - void timerCallback() override; + void refreshDisplay (double lastFrameTimeSeconds) override; private: //============================================================================== void processFFT(); - void updateSpectrogramImage(); - void scrollSpectrogram(); - void writeMagnitudeRow(); + void updateFrequencyMapping(); + bool ensureGpuTargets (GraphicsContext& context); + void ensureWaterfallPipeline(); + void applyPendingRows(); + void advanceScroll(); + float getRowRate() const noexcept; void initializeFFTBuffers(); void generateWindow(); - void ensureImageSize(); float frequencyToX (float frequency, float width) const noexcept; void drawFrequencyGrid (Graphics& g, const Rectangle& bounds); + void drawFrequencyGridCached (Graphics& g, const Rectangle& bounds); //============================================================================== SpectrumAnalyzerState& analyzerState; - // FFT processing (performed on UI thread) std::unique_ptr fftProcessor; std::vector fftInputBuffer; std::vector fftOutputBuffer; std::vector windowBuffer; - std::vector magnitudeBuffer; // Per-bin magnitudes from FFT - std::vector displayMagnitudes; // Magnitudes mapped to display bins + std::vector magnitudeBuffer; + std::vector displayMagnitudes; - // Spectrogram image - Image spectrogramImage; + // Spectrogram color map SpectrogramColorMap colorMap; + // Precomputed log-frequency > FFT-bin mapping + struct DisplayBinMapping + { + float startBin = 0.0f; + float endBin = 0.0f; + float exactBin = 0.0f; + }; + + std::vector displayBinMapping; + + // GPU waterfall state + GpuDevice::Ptr gpuDevice; + GpuPipeline::Ptr waterfallPipeline; + GpuTarget::Ptr gpuTargets[2]; + GpuTexture::Ptr displayTexture; + std::vector> pendingRows; + std::vector rowDataCache; // Reused uniform buffer (shader mags[defaultSpectrogramMagnitudes]) + std::vector lutDataCache; // Reused color LUT (shader lut[defaultColorLutSize]) + bool lutNeedsRefresh = true; // Re-fill lutDataCache on the next apply + int pingPongIndex = 0; + float scrollOffset = 0.0f; + uint32 lastPaintTimeMs = 0; + + // Cached frequency grid (frequency lines + labels). + GpuCanvas::Ptr gridCanvas; + Rectangle gridCacheBounds; + bool gridNeedsRedraw = true; + // Configuration WindowType currentWindowType = WindowType::hann; int fftSize = 4096; @@ -300,6 +342,7 @@ class YUP_API SpectrogramComponent float minDecibels = -100.0f; float maxDecibels = 0.0f; double sampleRate = 44100.0; + float scrollSpeedMultiplier = 1.0f; // Window compensation float windowGain = 1.0f; diff --git a/modules/yup_audio_gui/displays/yup_SpectrogramComponentShader.frag b/modules/yup_audio_gui/displays/yup_SpectrogramComponentShader.frag new file mode 100644 index 000000000..391239fc8 --- /dev/null +++ b/modules/yup_audio_gui/displays/yup_SpectrogramComponentShader.frag @@ -0,0 +1,97 @@ +/* + ============================================================================== + + This file is part of the YUP library. + Copyright (c) 2026 - kunitoki@gmail.com + + YUP is an open source library subject to open-source licensing. + + The code included in this file is provided under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license. Permission + to use, copy, modify, and/or distribute this software for any purpose with or + without fee is hereby granted provided that the above copyright notice and + this permission notice appear in all copies. + + YUP IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER + EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE + DISCLAIMED. + + ============================================================================== +*/ + +#version 450 + +// Fullscreen waterfall shader. A single fullscreen triangle scrolls the +// previous history texture down by numRows rows and writes the numRows new rows +// at the top, mapping each bin's raw magnitude through the color lookup table +// (a lerp between adjacent entries, matching SpectrogramColorMap::map) entirely +// on the GPU. +// +// Bindings: +// set=0 binding=0 : previous history texture (UV.y = 0 is the top row) +// set=0 binding=1 : sampler (implicit default, like the matte pipeline) +// set=0 binding=2 : WaterfallParams UBO +// set=0 binding=3 : RowData UBO (W * numRows raw magnitudes, oldest row first) +// set=0 binding=4 : LutData UBO (256 ARGB color entries) + +layout(set = 0, binding = 0) uniform texture2D u_prev; +layout(set = 0, binding = 1) uniform sampler u_samp; +layout(set = 0, binding = 2) uniform WaterfallParams +{ + float numRows; + float width; + float height; + float bins; + float pad0; + float pad1; + float pad2; + float pad3; +} p; + +layout(set = 0, binding = 3) uniform RowData +{ + vec4 mags[512]; // 2048 raw magnitudes packed as vec4s (std140 tight when W is a multiple of 4) +} rows; + +layout(set = 0, binding = 4) uniform LutData +{ + uvec4 lut[64]; // 256 ARGB colors packed as uvec4s +} lut; + +layout(location = 0) out vec4 fragColor; + +float fetchMag(int idx) +{ + return rows.mags[idx >> 2][idx & 3]; +} + +void main() +{ + vec2 uv = gl_FragCoord.xy / vec2(p.width, p.height); + if (uv.y >= p.numRows / p.height) + { + fragColor = texture(sampler2D(u_prev, u_samp), vec2(uv.x, uv.y - p.numRows / p.height)); + } + else + { + int x = int(gl_FragCoord.x); + int y = int(gl_FragCoord.y); + int row = int(p.numRows) - 1 - y; + + float binPos = float(x) * (p.bins / p.width); + int bin0 = int(binPos); + int bin1 = min(bin0 + 1, int(p.bins) - 1); + float fracBin = binPos - float(bin0); + float mag = mix(fetchMag(row * int(p.bins) + bin0), fetchMag(row * int(p.bins) + bin1), fracBin); + + float t = clamp(mag, 0.0, 1.0) * 255.0; + int i0 = int(t); + int i1 = min(i0 + 1, 255); + float frac = t - float(i0); + uint c0 = lut.lut[i0 >> 2][i0 & 3]; + uint c1 = lut.lut[i1 >> 2][i1 & 3]; + vec4 col0 = vec4(float((c0 >> 16) & 255u), float((c0 >> 8) & 255u), float(c0 & 255u), float((c0 >> 24) & 255u)) / 255.0; + vec4 col1 = vec4(float((c1 >> 16) & 255u), float((c1 >> 8) & 255u), float(c1 & 255u), float((c1 >> 24) & 255u)) / 255.0; + fragColor = mix(col0, col1, frac); + } +} diff --git a/modules/yup_audio_gui/displays/yup_SpectrogramComponentShader.inc b/modules/yup_audio_gui/displays/yup_SpectrogramComponentShader.inc new file mode 100644 index 000000000..0946a23eb --- /dev/null +++ b/modules/yup_audio_gui/displays/yup_SpectrogramComponentShader.inc @@ -0,0 +1,4154 @@ +// Generated shader bundle (yup_SpectrogramComponentShader.ysl) - do not edit by hand. +// Regenerate with the command at the top of yup_SpectrogramComponent.cpp. + 0x52, 0x49, 0x46, 0x46, 0x8e, 0xc2, 0x00, 0x00, 0x59, 0x53, 0x4c, 0x42, + 0x56, 0x45, 0x52, 0x53, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x4c, 0x49, 0x53, 0x54, 0x76, 0xc2, 0x00, 0x00, 0x53, 0x48, 0x41, 0x44, + 0x53, 0x48, 0x44, 0x52, 0x8e, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x53, 0x50, 0x56, 0x42, 0x00, 0x00, 0x00, 0x00, + 0x4c, 0x49, 0x53, 0x54, 0x76, 0x2f, 0x00, 0x00, 0x56, 0x41, 0x52, 0x53, + 0x56, 0x41, 0x52, 0x54, 0xb5, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0xe1, 0x00, 0x00, 0x00, + 0x23, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x34, 0x35, 0x30, + 0x0a, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x28, + 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x20, 0x78, 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, + 0x28, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x67, 0x6c, 0x5f, 0x56, 0x65, 0x72, + 0x74, 0x65, 0x78, 0x49, 0x44, 0x29, 0x20, 0x26, 0x20, 0x31, 0x75, 0x29, + 0x20, 0x3c, 0x3c, 0x20, 0x32, 0x75, 0x29, 0x20, 0x2d, 0x20, 0x31, 0x2e, + 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x20, 0x79, 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, + 0x75, 0x69, 0x6e, 0x74, 0x28, 0x67, 0x6c, 0x5f, 0x56, 0x65, 0x72, 0x74, + 0x65, 0x78, 0x49, 0x44, 0x29, 0x20, 0x26, 0x20, 0x32, 0x75, 0x29, 0x20, + 0x3c, 0x3c, 0x20, 0x31, 0x75, 0x29, 0x20, 0x2d, 0x20, 0x31, 0x2e, 0x30, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, 0x34, + 0x28, 0x78, 0x2c, 0x20, 0x79, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, + 0x31, 0x2e, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x67, 0x6c, + 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x79, 0x20, + 0x3d, 0x20, 0x2d, 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x49, 0x53, 0x52, + 0x43, 0x17, 0x04, 0x00, 0x00, 0x2f, 0x2a, 0x0a, 0x20, 0x20, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x54, 0x68, 0x69, + 0x73, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x61, + 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x59, 0x55, + 0x50, 0x20, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x0a, 0x20, + 0x20, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, + 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x32, 0x36, 0x20, 0x2d, 0x20, 0x6b, + 0x75, 0x6e, 0x69, 0x74, 0x6f, 0x6b, 0x69, 0x40, 0x67, 0x6d, 0x61, 0x69, + 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x59, 0x55, + 0x50, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, + 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x6c, 0x69, 0x62, 0x72, + 0x61, 0x72, 0x79, 0x20, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, + 0x74, 0x6f, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x2d, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x20, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x69, 0x6e, 0x67, + 0x2e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, + 0x64, 0x65, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, + 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, + 0x65, 0x72, 0x6d, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x49, 0x53, 0x43, 0x20, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, + 0x77, 0x2e, 0x69, 0x73, 0x63, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x64, 0x6f, + 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x6f, 0x66, 0x74, + 0x77, 0x61, 0x72, 0x65, 0x2d, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, + 0x2d, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2f, 0x69, 0x73, 0x63, 0x2d, + 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2e, 0x20, 0x50, 0x65, 0x72, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x74, + 0x6f, 0x20, 0x75, 0x73, 0x65, 0x2c, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x2c, + 0x20, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x2c, 0x20, 0x61, 0x6e, 0x64, + 0x2f, 0x6f, 0x72, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, 0x6f, 0x66, 0x74, + 0x77, 0x61, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x79, + 0x20, 0x70, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x6f, 0x75, 0x74, 0x20, 0x66, 0x65, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, + 0x65, 0x72, 0x65, 0x62, 0x79, 0x20, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, + 0x64, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x62, 0x6f, 0x76, + 0x65, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, + 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x70, 0x65, 0x72, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, + 0x20, 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x20, 0x69, 0x6e, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x73, 0x2e, 0x0a, 0x0a, + 0x20, 0x20, 0x20, 0x59, 0x55, 0x50, 0x20, 0x49, 0x53, 0x20, 0x50, 0x52, + 0x4f, 0x56, 0x49, 0x44, 0x45, 0x44, 0x20, 0x22, 0x41, 0x53, 0x20, 0x49, + 0x53, 0x22, 0x20, 0x57, 0x49, 0x54, 0x48, 0x4f, 0x55, 0x54, 0x20, 0x41, + 0x4e, 0x59, 0x20, 0x57, 0x41, 0x52, 0x52, 0x41, 0x4e, 0x54, 0x59, 0x2c, + 0x20, 0x41, 0x4e, 0x44, 0x20, 0x41, 0x4c, 0x4c, 0x20, 0x57, 0x41, 0x52, + 0x52, 0x41, 0x4e, 0x54, 0x49, 0x45, 0x53, 0x2c, 0x20, 0x57, 0x48, 0x45, + 0x54, 0x48, 0x45, 0x52, 0x0a, 0x20, 0x20, 0x20, 0x45, 0x58, 0x50, 0x52, + 0x45, 0x53, 0x53, 0x45, 0x44, 0x20, 0x4f, 0x52, 0x20, 0x49, 0x4d, 0x50, + 0x4c, 0x49, 0x45, 0x44, 0x2c, 0x20, 0x49, 0x4e, 0x43, 0x4c, 0x55, 0x44, + 0x49, 0x4e, 0x47, 0x20, 0x4d, 0x45, 0x52, 0x43, 0x48, 0x41, 0x4e, 0x54, + 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x20, 0x41, 0x4e, 0x44, 0x20, + 0x46, 0x49, 0x54, 0x4e, 0x45, 0x53, 0x53, 0x20, 0x46, 0x4f, 0x52, 0x20, + 0x50, 0x55, 0x52, 0x50, 0x4f, 0x53, 0x45, 0x2c, 0x20, 0x41, 0x52, 0x45, + 0x0a, 0x20, 0x20, 0x20, 0x44, 0x49, 0x53, 0x43, 0x4c, 0x41, 0x49, 0x4d, + 0x45, 0x44, 0x2e, 0x0a, 0x0a, 0x20, 0x20, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x0a, 0x2a, 0x2f, 0x0a, 0x0a, 0x23, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x34, 0x35, 0x30, 0x0a, 0x0a, 0x76, 0x6f, 0x69, 0x64, + 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x78, 0x20, 0x3d, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x67, 0x6c, 0x5f, 0x56, 0x65, + 0x72, 0x74, 0x65, 0x78, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x26, 0x20, + 0x31, 0x75, 0x29, 0x20, 0x3c, 0x3c, 0x20, 0x32, 0x75, 0x29, 0x20, 0x2d, + 0x20, 0x31, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x20, 0x79, 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x28, 0x28, 0x67, 0x6c, 0x5f, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x26, 0x20, 0x32, 0x75, 0x29, 0x20, + 0x3c, 0x3c, 0x20, 0x31, 0x75, 0x29, 0x20, 0x2d, 0x20, 0x31, 0x2e, 0x30, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, 0x34, + 0x28, 0x78, 0x2c, 0x20, 0x79, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, + 0x31, 0x2e, 0x30, 0x29, 0x3b, 0x0a, 0x7d, 0x0a, 0x00, 0x52, 0x45, 0x46, + 0x4c, 0x9b, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 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, 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, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x29, 0x00, 0x00, 0x00, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, + 0x45, 0x44, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, + 0x52, 0x5f, 0x46, 0x49, 0x58, 0x55, 0x50, 0x5f, 0x67, 0x6c, 0x5f, 0x56, + 0x65, 0x72, 0x74, 0x65, 0x78, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 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, 0x0b, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x5f, 0x52, 0x45, + 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, + 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x58, 0x55, 0x50, 0x5f, + 0x67, 0x6c, 0x5f, 0x50, 0x65, 0x72, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 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, 0x21, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x02, 0x00, 0x00, 0x00, 0x0c, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x27, + 0x00, 0x00, 0x00, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, + 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, + 0x46, 0x49, 0x58, 0x55, 0x50, 0x5f, 0x67, 0x6c, 0x5f, 0x50, 0x65, 0x72, + 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 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, 0x21, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x03, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x5f, 0x52, 0x45, + 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, + 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x58, 0x55, 0x50, 0x5f, + 0x67, 0x6c, 0x5f, 0x50, 0x65, 0x72, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 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, 0x21, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, 0x0c, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x27, + 0x00, 0x00, 0x00, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, + 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, + 0x46, 0x49, 0x58, 0x55, 0x50, 0x5f, 0x67, 0x6c, 0x5f, 0x50, 0x65, 0x72, + 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 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, 0x21, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x43, + 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x28, 0x31, 0x29, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x41, 0x52, 0x54, 0xb8, 0x08, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, + 0x69, 0x6e, 0xe4, 0x00, 0x00, 0x00, 0x23, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x33, 0x30, 0x30, 0x20, 0x65, 0x73, 0x0a, 0x0a, 0x76, + 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x29, 0x0a, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x78, + 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x75, 0x69, + 0x6e, 0x74, 0x28, 0x67, 0x6c, 0x5f, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, + 0x49, 0x44, 0x29, 0x20, 0x26, 0x20, 0x31, 0x75, 0x29, 0x20, 0x3c, 0x3c, + 0x20, 0x32, 0x75, 0x29, 0x20, 0x2d, 0x20, 0x31, 0x2e, 0x30, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x79, 0x20, + 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x75, 0x69, 0x6e, + 0x74, 0x28, 0x67, 0x6c, 0x5f, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x49, + 0x44, 0x29, 0x20, 0x26, 0x20, 0x32, 0x75, 0x29, 0x20, 0x3c, 0x3c, 0x20, + 0x31, 0x75, 0x29, 0x20, 0x2d, 0x20, 0x31, 0x2e, 0x30, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, 0x34, 0x28, 0x78, 0x2c, + 0x20, 0x79, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, + 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x50, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x79, 0x20, 0x3d, 0x20, 0x2d, + 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x49, 0x53, 0x52, 0x43, 0x17, 0x04, + 0x00, 0x00, 0x2f, 0x2a, 0x0a, 0x20, 0x20, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x59, 0x55, 0x50, 0x20, 0x6c, + 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x43, + 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, 0x63, 0x29, + 0x20, 0x32, 0x30, 0x32, 0x36, 0x20, 0x2d, 0x20, 0x6b, 0x75, 0x6e, 0x69, + 0x74, 0x6f, 0x6b, 0x69, 0x40, 0x67, 0x6d, 0x61, 0x69, 0x6c, 0x2e, 0x63, + 0x6f, 0x6d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x59, 0x55, 0x50, 0x20, 0x69, + 0x73, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x20, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, + 0x20, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, + 0x6f, 0x70, 0x65, 0x6e, 0x2d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, + 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x69, 0x6e, 0x67, 0x2e, 0x0a, 0x0a, + 0x20, 0x20, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x64, 0x65, 0x20, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x69, 0x73, + 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, + 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x72, 0x6d, + 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x53, 0x43, + 0x20, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x69, + 0x73, 0x63, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, + 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, + 0x65, 0x2d, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x2d, 0x70, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x2f, 0x69, 0x73, 0x63, 0x2d, 0x6c, 0x69, 0x63, + 0x65, 0x6e, 0x73, 0x65, 0x2e, 0x20, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x74, 0x6f, 0x20, 0x75, + 0x73, 0x65, 0x2c, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x2c, 0x20, 0x6d, 0x6f, + 0x64, 0x69, 0x66, 0x79, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, + 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x70, 0x75, + 0x72, 0x70, 0x6f, 0x73, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6f, + 0x72, 0x0a, 0x20, 0x20, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, + 0x20, 0x66, 0x65, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x65, 0x72, 0x65, + 0x62, 0x79, 0x20, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x20, 0x63, + 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x6e, 0x6f, 0x74, + 0x69, 0x63, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x20, 0x61, 0x70, + 0x70, 0x65, 0x61, 0x72, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x63, 0x6f, 0x70, 0x69, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x20, 0x20, 0x20, + 0x59, 0x55, 0x50, 0x20, 0x49, 0x53, 0x20, 0x50, 0x52, 0x4f, 0x56, 0x49, + 0x44, 0x45, 0x44, 0x20, 0x22, 0x41, 0x53, 0x20, 0x49, 0x53, 0x22, 0x20, + 0x57, 0x49, 0x54, 0x48, 0x4f, 0x55, 0x54, 0x20, 0x41, 0x4e, 0x59, 0x20, + 0x57, 0x41, 0x52, 0x52, 0x41, 0x4e, 0x54, 0x59, 0x2c, 0x20, 0x41, 0x4e, + 0x44, 0x20, 0x41, 0x4c, 0x4c, 0x20, 0x57, 0x41, 0x52, 0x52, 0x41, 0x4e, + 0x54, 0x49, 0x45, 0x53, 0x2c, 0x20, 0x57, 0x48, 0x45, 0x54, 0x48, 0x45, + 0x52, 0x0a, 0x20, 0x20, 0x20, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, + 0x45, 0x44, 0x20, 0x4f, 0x52, 0x20, 0x49, 0x4d, 0x50, 0x4c, 0x49, 0x45, + 0x44, 0x2c, 0x20, 0x49, 0x4e, 0x43, 0x4c, 0x55, 0x44, 0x49, 0x4e, 0x47, + 0x20, 0x4d, 0x45, 0x52, 0x43, 0x48, 0x41, 0x4e, 0x54, 0x41, 0x42, 0x49, + 0x4c, 0x49, 0x54, 0x59, 0x20, 0x41, 0x4e, 0x44, 0x20, 0x46, 0x49, 0x54, + 0x4e, 0x45, 0x53, 0x53, 0x20, 0x46, 0x4f, 0x52, 0x20, 0x50, 0x55, 0x52, + 0x50, 0x4f, 0x53, 0x45, 0x2c, 0x20, 0x41, 0x52, 0x45, 0x0a, 0x20, 0x20, + 0x20, 0x44, 0x49, 0x53, 0x43, 0x4c, 0x41, 0x49, 0x4d, 0x45, 0x44, 0x2e, + 0x0a, 0x0a, 0x20, 0x20, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2a, + 0x2f, 0x0a, 0x0a, 0x23, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x34, 0x35, 0x30, 0x0a, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, + 0x69, 0x6e, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x78, 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x28, 0x28, 0x67, 0x6c, 0x5f, 0x56, 0x65, 0x72, 0x74, 0x65, + 0x78, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x26, 0x20, 0x31, 0x75, 0x29, + 0x20, 0x3c, 0x3c, 0x20, 0x32, 0x75, 0x29, 0x20, 0x2d, 0x20, 0x31, 0x2e, + 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x20, 0x79, 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, + 0x67, 0x6c, 0x5f, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x20, 0x26, 0x20, 0x32, 0x75, 0x29, 0x20, 0x3c, 0x3c, 0x20, + 0x31, 0x75, 0x29, 0x20, 0x2d, 0x20, 0x31, 0x2e, 0x30, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, 0x34, 0x28, 0x78, 0x2c, + 0x20, 0x79, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, + 0x29, 0x3b, 0x0a, 0x7d, 0x0a, 0x00, 0x52, 0x45, 0x46, 0x4c, 0x9b, 0x03, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, + 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 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, 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, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x29, 0x00, + 0x00, 0x00, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x5f, + 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, 0x46, + 0x49, 0x58, 0x55, 0x50, 0x5f, 0x67, 0x6c, 0x5f, 0x56, 0x65, 0x72, 0x74, + 0x65, 0x78, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x20, 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, 0x0b, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x52, + 0x56, 0x45, 0x44, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, + 0x45, 0x52, 0x5f, 0x46, 0x49, 0x58, 0x55, 0x50, 0x5f, 0x67, 0x6c, 0x5f, + 0x50, 0x65, 0x72, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 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, 0x21, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x02, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x5f, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x5f, 0x49, 0x44, + 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x58, + 0x55, 0x50, 0x5f, 0x67, 0x6c, 0x5f, 0x50, 0x65, 0x72, 0x56, 0x65, 0x72, + 0x74, 0x65, 0x78, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 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, 0x21, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x52, + 0x56, 0x45, 0x44, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, + 0x45, 0x52, 0x5f, 0x46, 0x49, 0x58, 0x55, 0x50, 0x5f, 0x67, 0x6c, 0x5f, + 0x50, 0x65, 0x72, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 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, 0x21, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x5f, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x5f, 0x49, 0x44, + 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x58, + 0x55, 0x50, 0x5f, 0x67, 0x6c, 0x5f, 0x50, 0x65, 0x72, 0x56, 0x65, 0x72, + 0x74, 0x65, 0x78, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 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, 0x21, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x43, 0x61, 0x70, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x28, 0x31, 0x29, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x56, 0x41, 0x52, 0x54, 0x42, 0x0a, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x6e, 0x02, + 0x00, 0x00, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x34, 0x20, 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x3b, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, + 0x69, 0x6e, 0x74, 0x20, 0x67, 0x6c, 0x5f, 0x56, 0x65, 0x72, 0x74, 0x65, + 0x78, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x3b, 0x0a, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x20, 0x53, 0x50, 0x49, 0x52, 0x56, 0x5f, 0x43, 0x72, 0x6f, + 0x73, 0x73, 0x5f, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x0a, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x20, 0x67, 0x6c, 0x5f, 0x56, + 0x65, 0x72, 0x74, 0x65, 0x78, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x3a, + 0x20, 0x53, 0x56, 0x5f, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x49, 0x44, + 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x20, 0x53, 0x50, 0x49, 0x52, 0x56, 0x5f, 0x43, 0x72, 0x6f, 0x73, 0x73, + 0x5f, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x67, 0x6c, 0x5f, + 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3a, 0x20, 0x53, + 0x56, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x0a, + 0x7d, 0x3b, 0x0a, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x76, 0x65, 0x72, + 0x74, 0x5f, 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x78, 0x20, 0x3d, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x75, 0x69, 0x6e, 0x74, + 0x28, 0x67, 0x6c, 0x5f, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x29, 0x20, 0x26, 0x20, 0x31, 0x75, 0x29, 0x20, 0x3c, + 0x3c, 0x20, 0x32, 0x75, 0x29, 0x20, 0x2d, 0x20, 0x31, 0x2e, 0x30, 0x66, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, + 0x79, 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x75, + 0x69, 0x6e, 0x74, 0x28, 0x67, 0x6c, 0x5f, 0x56, 0x65, 0x72, 0x74, 0x65, + 0x78, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x26, 0x20, 0x32, 0x75, + 0x29, 0x20, 0x3c, 0x3c, 0x20, 0x31, 0x75, 0x29, 0x20, 0x2d, 0x20, 0x31, + 0x2e, 0x30, 0x66, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x67, 0x6c, 0x5f, + 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, 0x78, 0x2c, 0x20, 0x79, 0x2c, 0x20, + 0x30, 0x2e, 0x30, 0x66, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x66, 0x29, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x50, 0x49, 0x52, 0x56, 0x5f, 0x43, 0x72, + 0x6f, 0x73, 0x73, 0x5f, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6d, + 0x61, 0x69, 0x6e, 0x28, 0x53, 0x50, 0x49, 0x52, 0x56, 0x5f, 0x43, 0x72, + 0x6f, 0x73, 0x73, 0x5f, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x73, 0x74, + 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x29, 0x0a, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x56, 0x65, 0x72, 0x74, + 0x65, 0x78, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x3d, 0x20, 0x69, 0x6e, + 0x74, 0x28, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x2e, 0x67, 0x6c, 0x5f, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, + 0x65, 0x72, 0x74, 0x5f, 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x50, 0x49, 0x52, 0x56, 0x5f, 0x43, 0x72, + 0x6f, 0x73, 0x73, 0x5f, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x73, + 0x74, 0x61, 0x67, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e, 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x67, 0x6c, 0x5f, 0x50, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x73, 0x74, 0x61, 0x67, + 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, + 0x49, 0x53, 0x52, 0x43, 0x17, 0x04, 0x00, 0x00, 0x2f, 0x2a, 0x0a, 0x20, + 0x20, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x0a, 0x20, 0x20, 0x20, + 0x54, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x69, 0x73, + 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x59, 0x55, 0x50, 0x20, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, + 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x20, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x32, 0x36, 0x20, + 0x2d, 0x20, 0x6b, 0x75, 0x6e, 0x69, 0x74, 0x6f, 0x6b, 0x69, 0x40, 0x67, + 0x6d, 0x61, 0x69, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x0a, 0x0a, 0x20, 0x20, + 0x20, 0x59, 0x55, 0x50, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x6f, + 0x70, 0x65, 0x6e, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x6c, + 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x20, 0x73, 0x75, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x2d, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, + 0x69, 0x6e, 0x67, 0x2e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x54, 0x68, 0x65, + 0x20, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x49, 0x53, 0x43, 0x20, 0x6c, 0x69, 0x63, 0x65, 0x6e, + 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, + 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x69, 0x73, 0x63, 0x2e, 0x6f, 0x72, 0x67, + 0x2f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, + 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x2d, 0x73, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x2d, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2f, 0x69, + 0x73, 0x63, 0x2d, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2e, 0x20, + 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20, + 0x20, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x2c, 0x20, 0x63, 0x6f, + 0x70, 0x79, 0x2c, 0x20, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x2c, 0x20, + 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, + 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x61, 0x6e, 0x79, 0x20, 0x70, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x66, 0x65, 0x65, 0x20, 0x69, + 0x73, 0x20, 0x68, 0x65, 0x72, 0x65, 0x62, 0x79, 0x20, 0x67, 0x72, 0x61, + 0x6e, 0x74, 0x65, 0x64, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, + 0x62, 0x6f, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x20, 0x61, 0x6e, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x70, 0x65, + 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x6f, 0x74, + 0x69, 0x63, 0x65, 0x20, 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x20, 0x69, + 0x6e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x73, + 0x2e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x59, 0x55, 0x50, 0x20, 0x49, 0x53, + 0x20, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x44, 0x20, 0x22, 0x41, + 0x53, 0x20, 0x49, 0x53, 0x22, 0x20, 0x57, 0x49, 0x54, 0x48, 0x4f, 0x55, + 0x54, 0x20, 0x41, 0x4e, 0x59, 0x20, 0x57, 0x41, 0x52, 0x52, 0x41, 0x4e, + 0x54, 0x59, 0x2c, 0x20, 0x41, 0x4e, 0x44, 0x20, 0x41, 0x4c, 0x4c, 0x20, + 0x57, 0x41, 0x52, 0x52, 0x41, 0x4e, 0x54, 0x49, 0x45, 0x53, 0x2c, 0x20, + 0x57, 0x48, 0x45, 0x54, 0x48, 0x45, 0x52, 0x0a, 0x20, 0x20, 0x20, 0x45, + 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x45, 0x44, 0x20, 0x4f, 0x52, 0x20, + 0x49, 0x4d, 0x50, 0x4c, 0x49, 0x45, 0x44, 0x2c, 0x20, 0x49, 0x4e, 0x43, + 0x4c, 0x55, 0x44, 0x49, 0x4e, 0x47, 0x20, 0x4d, 0x45, 0x52, 0x43, 0x48, + 0x41, 0x4e, 0x54, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x20, 0x41, + 0x4e, 0x44, 0x20, 0x46, 0x49, 0x54, 0x4e, 0x45, 0x53, 0x53, 0x20, 0x46, + 0x4f, 0x52, 0x20, 0x50, 0x55, 0x52, 0x50, 0x4f, 0x53, 0x45, 0x2c, 0x20, + 0x41, 0x52, 0x45, 0x0a, 0x20, 0x20, 0x20, 0x44, 0x49, 0x53, 0x43, 0x4c, + 0x41, 0x49, 0x4d, 0x45, 0x44, 0x2e, 0x0a, 0x0a, 0x20, 0x20, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2a, 0x2f, 0x0a, 0x0a, 0x23, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x34, 0x35, 0x30, 0x0a, 0x0a, 0x76, + 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x29, 0x0a, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x78, + 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x67, 0x6c, + 0x5f, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x20, 0x26, 0x20, 0x31, 0x75, 0x29, 0x20, 0x3c, 0x3c, 0x20, 0x32, 0x75, + 0x29, 0x20, 0x2d, 0x20, 0x31, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x79, 0x20, 0x3d, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x67, 0x6c, 0x5f, 0x56, 0x65, 0x72, + 0x74, 0x65, 0x78, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x26, 0x20, 0x32, + 0x75, 0x29, 0x20, 0x3c, 0x3c, 0x20, 0x31, 0x75, 0x29, 0x20, 0x2d, 0x20, + 0x31, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x67, 0x6c, 0x5f, + 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x76, + 0x65, 0x63, 0x34, 0x28, 0x78, 0x2c, 0x20, 0x79, 0x2c, 0x20, 0x30, 0x2e, + 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x3b, 0x0a, 0x7d, 0x0a, 0x00, + 0x52, 0x45, 0x46, 0x4c, 0x9b, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 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, 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, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x5f, 0x52, 0x45, 0x53, + 0x45, 0x52, 0x56, 0x45, 0x44, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, + 0x46, 0x49, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x58, 0x55, 0x50, 0x5f, 0x67, + 0x6c, 0x5f, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 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, 0x0b, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x5f, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x5f, 0x49, 0x44, + 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x58, + 0x55, 0x50, 0x5f, 0x67, 0x6c, 0x5f, 0x50, 0x65, 0x72, 0x56, 0x65, 0x72, + 0x74, 0x65, 0x78, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 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, 0x21, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x02, 0x00, + 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x52, + 0x56, 0x45, 0x44, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, + 0x45, 0x52, 0x5f, 0x46, 0x49, 0x58, 0x55, 0x50, 0x5f, 0x67, 0x6c, 0x5f, + 0x50, 0x65, 0x72, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 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, 0x21, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x5f, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x5f, 0x49, 0x44, + 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x58, + 0x55, 0x50, 0x5f, 0x67, 0x6c, 0x5f, 0x50, 0x65, 0x72, 0x56, 0x65, 0x72, + 0x74, 0x65, 0x78, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 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, 0x21, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x04, 0x00, + 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x52, + 0x56, 0x45, 0x44, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, + 0x45, 0x52, 0x5f, 0x46, 0x49, 0x58, 0x55, 0x50, 0x5f, 0x67, 0x6c, 0x5f, + 0x50, 0x65, 0x72, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 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, 0x21, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, + 0x00, 0x00, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x28, 0x31, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x41, 0x52, 0x54, + 0x73, 0x09, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x6d, 0x61, 0x69, 0x6e, 0x9f, 0x01, 0x00, 0x00, 0x23, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x5f, + 0x73, 0x74, 0x64, 0x6c, 0x69, 0x62, 0x3e, 0x0a, 0x23, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x73, 0x69, 0x6d, 0x64, 0x2f, 0x73, + 0x69, 0x6d, 0x64, 0x2e, 0x68, 0x3e, 0x0a, 0x0a, 0x75, 0x73, 0x69, 0x6e, + 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, + 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x30, 0x5f, 0x6f, 0x75, 0x74, + 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x34, 0x20, 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x5b, 0x5b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x5d, 0x5d, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x76, 0x65, 0x72, 0x74, + 0x65, 0x78, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x30, 0x5f, 0x6f, 0x75, 0x74, + 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x30, 0x28, 0x75, 0x69, 0x6e, 0x74, 0x20, + 0x67, 0x6c, 0x5f, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x20, 0x5b, 0x5b, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x5f, + 0x69, 0x64, 0x5d, 0x5d, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x61, 0x69, 0x6e, 0x30, 0x5f, 0x6f, 0x75, 0x74, 0x20, 0x6f, 0x75, + 0x74, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x78, 0x20, 0x3d, 0x20, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x28, 0x28, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x69, 0x6e, + 0x74, 0x28, 0x67, 0x6c, 0x5f, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x29, 0x29, 0x20, 0x26, 0x20, 0x31, 0x75, 0x29, + 0x20, 0x3c, 0x3c, 0x20, 0x32, 0x75, 0x29, 0x20, 0x2d, 0x20, 0x31, 0x2e, + 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x20, 0x79, 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, + 0x75, 0x69, 0x6e, 0x74, 0x28, 0x69, 0x6e, 0x74, 0x28, 0x67, 0x6c, 0x5f, + 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x29, + 0x29, 0x20, 0x26, 0x20, 0x32, 0x75, 0x29, 0x20, 0x3c, 0x3c, 0x20, 0x31, + 0x75, 0x29, 0x20, 0x2d, 0x20, 0x31, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x34, 0x28, 0x78, 0x2c, 0x20, 0x79, 0x2c, 0x20, 0x30, 0x2e, 0x30, + 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x49, 0x53, 0x52, 0x43, 0x17, 0x04, 0x00, 0x00, 0x2f, + 0x2a, 0x0a, 0x20, 0x20, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x0a, + 0x20, 0x20, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x20, 0x69, 0x73, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x59, 0x55, 0x50, 0x20, 0x6c, 0x69, 0x62, 0x72, + 0x61, 0x72, 0x79, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x70, 0x79, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, + 0x32, 0x36, 0x20, 0x2d, 0x20, 0x6b, 0x75, 0x6e, 0x69, 0x74, 0x6f, 0x6b, + 0x69, 0x40, 0x67, 0x6d, 0x61, 0x69, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x0a, + 0x0a, 0x20, 0x20, 0x20, 0x59, 0x55, 0x50, 0x20, 0x69, 0x73, 0x20, 0x61, + 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x20, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x20, 0x73, 0x75, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x70, 0x65, + 0x6e, 0x2d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x6c, 0x69, 0x63, + 0x65, 0x6e, 0x73, 0x69, 0x6e, 0x67, 0x2e, 0x0a, 0x0a, 0x20, 0x20, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x53, 0x43, 0x20, 0x6c, 0x69, + 0x63, 0x65, 0x6e, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x68, 0x74, 0x74, + 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x69, 0x73, 0x63, 0x2e, + 0x6f, 0x72, 0x67, 0x2f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, + 0x73, 0x2f, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x2d, 0x73, + 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x2d, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x2f, 0x69, 0x73, 0x63, 0x2d, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, + 0x65, 0x2e, 0x20, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x2c, + 0x20, 0x63, 0x6f, 0x70, 0x79, 0x2c, 0x20, 0x6d, 0x6f, 0x64, 0x69, 0x66, + 0x79, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x64, 0x69, + 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x70, 0x75, 0x72, 0x70, 0x6f, + 0x73, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6f, 0x72, 0x0a, 0x20, + 0x20, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x66, 0x65, + 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x65, 0x72, 0x65, 0x62, 0x79, 0x20, + 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x70, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x70, 0x79, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, + 0x20, 0x61, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x20, 0x61, 0x70, 0x70, 0x65, 0x61, + 0x72, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x70, + 0x69, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x59, 0x55, 0x50, + 0x20, 0x49, 0x53, 0x20, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x44, + 0x20, 0x22, 0x41, 0x53, 0x20, 0x49, 0x53, 0x22, 0x20, 0x57, 0x49, 0x54, + 0x48, 0x4f, 0x55, 0x54, 0x20, 0x41, 0x4e, 0x59, 0x20, 0x57, 0x41, 0x52, + 0x52, 0x41, 0x4e, 0x54, 0x59, 0x2c, 0x20, 0x41, 0x4e, 0x44, 0x20, 0x41, + 0x4c, 0x4c, 0x20, 0x57, 0x41, 0x52, 0x52, 0x41, 0x4e, 0x54, 0x49, 0x45, + 0x53, 0x2c, 0x20, 0x57, 0x48, 0x45, 0x54, 0x48, 0x45, 0x52, 0x0a, 0x20, + 0x20, 0x20, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x45, 0x44, 0x20, + 0x4f, 0x52, 0x20, 0x49, 0x4d, 0x50, 0x4c, 0x49, 0x45, 0x44, 0x2c, 0x20, + 0x49, 0x4e, 0x43, 0x4c, 0x55, 0x44, 0x49, 0x4e, 0x47, 0x20, 0x4d, 0x45, + 0x52, 0x43, 0x48, 0x41, 0x4e, 0x54, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, + 0x59, 0x20, 0x41, 0x4e, 0x44, 0x20, 0x46, 0x49, 0x54, 0x4e, 0x45, 0x53, + 0x53, 0x20, 0x46, 0x4f, 0x52, 0x20, 0x50, 0x55, 0x52, 0x50, 0x4f, 0x53, + 0x45, 0x2c, 0x20, 0x41, 0x52, 0x45, 0x0a, 0x20, 0x20, 0x20, 0x44, 0x49, + 0x53, 0x43, 0x4c, 0x41, 0x49, 0x4d, 0x45, 0x44, 0x2e, 0x0a, 0x0a, 0x20, + 0x20, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2a, 0x2f, 0x0a, 0x0a, + 0x23, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x34, 0x35, 0x30, + 0x0a, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x28, + 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x20, 0x78, 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, + 0x28, 0x67, 0x6c, 0x5f, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x20, 0x26, 0x20, 0x31, 0x75, 0x29, 0x20, 0x3c, 0x3c, + 0x20, 0x32, 0x75, 0x29, 0x20, 0x2d, 0x20, 0x31, 0x2e, 0x30, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x79, 0x20, + 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x67, 0x6c, 0x5f, + 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x20, + 0x26, 0x20, 0x32, 0x75, 0x29, 0x20, 0x3c, 0x3c, 0x20, 0x31, 0x75, 0x29, + 0x20, 0x2d, 0x20, 0x31, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x3d, 0x20, 0x76, 0x65, 0x63, 0x34, 0x28, 0x78, 0x2c, 0x20, 0x79, 0x2c, + 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x3b, 0x0a, + 0x7d, 0x0a, 0x00, 0x52, 0x45, 0x46, 0x4c, 0x9b, 0x03, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, + 0x61, 0x69, 0x6e, 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, 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, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x5f, + 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x5f, 0x49, 0x44, 0x45, + 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x58, 0x55, + 0x50, 0x5f, 0x67, 0x6c, 0x5f, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x20, 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, 0x0b, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0c, + 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x27, + 0x00, 0x00, 0x00, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, + 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, + 0x46, 0x49, 0x58, 0x55, 0x50, 0x5f, 0x67, 0x6c, 0x5f, 0x50, 0x65, 0x72, + 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 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, 0x21, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x02, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x5f, 0x52, 0x45, + 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, + 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x58, 0x55, 0x50, 0x5f, + 0x67, 0x6c, 0x5f, 0x50, 0x65, 0x72, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 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, 0x21, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x0c, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x27, + 0x00, 0x00, 0x00, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, + 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, + 0x46, 0x49, 0x58, 0x55, 0x50, 0x5f, 0x67, 0x6c, 0x5f, 0x50, 0x65, 0x72, + 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 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, 0x21, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x04, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x5f, 0x52, 0x45, + 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, + 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x58, 0x55, 0x50, 0x5f, + 0x67, 0x6c, 0x5f, 0x50, 0x65, 0x72, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 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, 0x21, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0d, 0x00, 0x00, 0x00, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x28, 0x31, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x56, 0x41, 0x52, 0x54, 0x26, 0x0a, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0xda, 0x02, 0x00, 0x00, + 0x76, 0x61, 0x72, 0x3c, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x3e, + 0x20, 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x3a, 0x20, 0x76, 0x65, 0x63, 0x34, 0x3c, 0x66, 0x33, 0x32, 0x3e, 0x3b, + 0x0a, 0x76, 0x61, 0x72, 0x3c, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, + 0x3e, 0x20, 0x67, 0x6c, 0x5f, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x3a, 0x20, 0x75, 0x33, 0x32, 0x3b, 0x0a, 0x76, + 0x61, 0x72, 0x3c, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x3e, 0x20, + 0x67, 0x6c, 0x5f, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x3a, 0x20, 0x75, 0x33, 0x32, 0x3b, 0x0a, 0x66, + 0x6e, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, + 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x61, 0x72, + 0x20, 0x78, 0x3a, 0x20, 0x66, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x28, 0x66, + 0x33, 0x32, 0x28, 0x28, 0x28, 0x28, 0x67, 0x6c, 0x5f, 0x56, 0x65, 0x72, + 0x74, 0x65, 0x78, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x26, 0x20, 0x31, + 0x75, 0x29, 0x29, 0x20, 0x3c, 0x3c, 0x20, 0x32, 0x75, 0x29, 0x29, 0x20, + 0x2d, 0x20, 0x31, 0x2e, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x61, 0x72, 0x20, 0x79, 0x3a, 0x20, + 0x66, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x28, 0x66, 0x33, 0x32, 0x28, 0x28, + 0x28, 0x28, 0x67, 0x6c, 0x5f, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x20, 0x26, 0x20, 0x32, 0x75, 0x29, 0x29, 0x20, + 0x3c, 0x3c, 0x20, 0x31, 0x75, 0x29, 0x29, 0x20, 0x2d, 0x20, 0x31, 0x2e, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, 0x34, 0x3c, 0x66, 0x33, 0x32, 0x3e, + 0x28, 0x78, 0x2c, 0x20, 0x79, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x29, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x20, 0x56, 0x53, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x40, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, + 0x28, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x29, 0x20, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x3a, 0x20, 0x75, 0x33, 0x32, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x40, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x28, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x29, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x3a, 0x20, 0x75, 0x33, 0x32, 0x2c, 0x0a, + 0x7d, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x56, 0x53, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x40, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x28, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x76, 0x65, 0x63, 0x34, 0x3c, 0x66, 0x33, + 0x32, 0x3e, 0x2c, 0x0a, 0x7d, 0x0a, 0x40, 0x76, 0x65, 0x72, 0x74, 0x65, + 0x78, 0x0a, 0x66, 0x6e, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x3a, 0x20, 0x56, 0x53, 0x49, 0x6e, 0x70, 0x75, 0x74, + 0x29, 0x20, 0x2d, 0x3e, 0x20, 0x56, 0x53, 0x4f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x56, + 0x65, 0x72, 0x74, 0x65, 0x78, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x3d, + 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x76, 0x65, 0x72, 0x74, 0x65, + 0x78, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x67, 0x6c, 0x5f, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x2e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, + 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x28, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x76, 0x61, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x3a, 0x20, 0x56, 0x53, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x2e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, + 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x49, 0x53, + 0x52, 0x43, 0x17, 0x04, 0x00, 0x00, 0x2f, 0x2a, 0x0a, 0x20, 0x20, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x54, 0x68, + 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, + 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x59, + 0x55, 0x50, 0x20, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x0a, + 0x20, 0x20, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x20, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x32, 0x36, 0x20, 0x2d, 0x20, + 0x6b, 0x75, 0x6e, 0x69, 0x74, 0x6f, 0x6b, 0x69, 0x40, 0x67, 0x6d, 0x61, + 0x69, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x59, + 0x55, 0x50, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x65, + 0x6e, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x6c, 0x69, 0x62, + 0x72, 0x61, 0x72, 0x79, 0x20, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x2d, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x20, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x69, 0x6e, + 0x67, 0x2e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, + 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x74, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x49, 0x53, 0x43, 0x20, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, + 0x77, 0x77, 0x2e, 0x69, 0x73, 0x63, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x64, + 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x6f, 0x66, + 0x74, 0x77, 0x61, 0x72, 0x65, 0x2d, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x2d, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2f, 0x69, 0x73, 0x63, + 0x2d, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2e, 0x20, 0x50, 0x65, + 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, + 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x2c, 0x20, 0x63, 0x6f, 0x70, 0x79, + 0x2c, 0x20, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x2c, 0x20, 0x61, 0x6e, + 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, 0x6f, 0x66, + 0x74, 0x77, 0x61, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, + 0x79, 0x20, 0x70, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x6f, 0x75, 0x74, 0x20, 0x66, 0x65, 0x65, 0x20, 0x69, 0x73, 0x20, + 0x68, 0x65, 0x72, 0x65, 0x62, 0x79, 0x20, 0x67, 0x72, 0x61, 0x6e, 0x74, + 0x65, 0x64, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x62, 0x6f, + 0x76, 0x65, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x70, 0x65, 0x72, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x63, + 0x65, 0x20, 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x20, 0x69, 0x6e, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x73, 0x2e, 0x0a, + 0x0a, 0x20, 0x20, 0x20, 0x59, 0x55, 0x50, 0x20, 0x49, 0x53, 0x20, 0x50, + 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x44, 0x20, 0x22, 0x41, 0x53, 0x20, + 0x49, 0x53, 0x22, 0x20, 0x57, 0x49, 0x54, 0x48, 0x4f, 0x55, 0x54, 0x20, + 0x41, 0x4e, 0x59, 0x20, 0x57, 0x41, 0x52, 0x52, 0x41, 0x4e, 0x54, 0x59, + 0x2c, 0x20, 0x41, 0x4e, 0x44, 0x20, 0x41, 0x4c, 0x4c, 0x20, 0x57, 0x41, + 0x52, 0x52, 0x41, 0x4e, 0x54, 0x49, 0x45, 0x53, 0x2c, 0x20, 0x57, 0x48, + 0x45, 0x54, 0x48, 0x45, 0x52, 0x0a, 0x20, 0x20, 0x20, 0x45, 0x58, 0x50, + 0x52, 0x45, 0x53, 0x53, 0x45, 0x44, 0x20, 0x4f, 0x52, 0x20, 0x49, 0x4d, + 0x50, 0x4c, 0x49, 0x45, 0x44, 0x2c, 0x20, 0x49, 0x4e, 0x43, 0x4c, 0x55, + 0x44, 0x49, 0x4e, 0x47, 0x20, 0x4d, 0x45, 0x52, 0x43, 0x48, 0x41, 0x4e, + 0x54, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x20, 0x41, 0x4e, 0x44, + 0x20, 0x46, 0x49, 0x54, 0x4e, 0x45, 0x53, 0x53, 0x20, 0x46, 0x4f, 0x52, + 0x20, 0x50, 0x55, 0x52, 0x50, 0x4f, 0x53, 0x45, 0x2c, 0x20, 0x41, 0x52, + 0x45, 0x0a, 0x20, 0x20, 0x20, 0x44, 0x49, 0x53, 0x43, 0x4c, 0x41, 0x49, + 0x4d, 0x45, 0x44, 0x2e, 0x0a, 0x0a, 0x20, 0x20, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x0a, 0x2a, 0x2f, 0x0a, 0x0a, 0x23, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x34, 0x35, 0x30, 0x0a, 0x0a, 0x76, 0x6f, 0x69, + 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x78, 0x20, 0x3d, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x67, 0x6c, 0x5f, 0x56, + 0x65, 0x72, 0x74, 0x65, 0x78, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x26, + 0x20, 0x31, 0x75, 0x29, 0x20, 0x3c, 0x3c, 0x20, 0x32, 0x75, 0x29, 0x20, + 0x2d, 0x20, 0x31, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x79, 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x28, 0x28, 0x67, 0x6c, 0x5f, 0x56, 0x65, 0x72, 0x74, 0x65, + 0x78, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x26, 0x20, 0x32, 0x75, 0x29, + 0x20, 0x3c, 0x3c, 0x20, 0x31, 0x75, 0x29, 0x20, 0x2d, 0x20, 0x31, 0x2e, + 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x50, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, + 0x34, 0x28, 0x78, 0x2c, 0x20, 0x79, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, + 0x20, 0x31, 0x2e, 0x30, 0x29, 0x3b, 0x0a, 0x7d, 0x0a, 0x00, 0x52, 0x45, + 0x46, 0x4c, 0x14, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 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, 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, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x56, 0x65, 0x72, + 0x74, 0x65, 0x78, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x20, 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, 0x0b, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x50, 0x65, + 0x72, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x04, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 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, 0x21, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x02, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x67, 0x6c, + 0x5f, 0x50, 0x65, 0x72, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 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, 0x21, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, + 0x00, 0x67, 0x6c, 0x5f, 0x50, 0x65, 0x72, 0x56, 0x65, 0x72, 0x74, 0x65, + 0x78, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 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, 0x21, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x50, 0x65, 0x72, 0x56, 0x65, + 0x72, 0x74, 0x65, 0x78, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 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, 0x21, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x43, 0x61, 0x70, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x28, 0x31, 0x29, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x53, 0x48, 0x44, 0x52, 0xd4, 0x92, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53, 0x50, 0x56, 0x42, 0x00, 0x00, + 0x00, 0x00, 0x4c, 0x49, 0x53, 0x54, 0xbc, 0x92, 0x00, 0x00, 0x56, 0x41, + 0x52, 0x53, 0x56, 0x41, 0x52, 0x54, 0x4a, 0x1c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x34, 0x07, + 0x00, 0x00, 0x23, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x34, + 0x35, 0x30, 0x0a, 0x0a, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x28, 0x62, + 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x3d, 0x20, 0x33, 0x2c, 0x20, + 0x73, 0x74, 0x64, 0x31, 0x34, 0x30, 0x29, 0x20, 0x75, 0x6e, 0x69, 0x66, + 0x6f, 0x72, 0x6d, 0x20, 0x52, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x0a, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x6d, + 0x61, 0x67, 0x73, 0x5b, 0x35, 0x31, 0x32, 0x5d, 0x3b, 0x0a, 0x7d, 0x20, + 0x72, 0x6f, 0x77, 0x73, 0x3b, 0x0a, 0x0a, 0x6c, 0x61, 0x79, 0x6f, 0x75, + 0x74, 0x28, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x3d, 0x20, + 0x32, 0x2c, 0x20, 0x73, 0x74, 0x64, 0x31, 0x34, 0x30, 0x29, 0x20, 0x75, + 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x57, 0x61, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x6c, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x0a, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x6e, + 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x70, 0x61, 0x64, + 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x20, 0x70, 0x61, 0x64, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x70, 0x61, 0x64, 0x32, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x70, 0x61, 0x64, + 0x33, 0x3b, 0x0a, 0x7d, 0x20, 0x70, 0x3b, 0x0a, 0x0a, 0x6c, 0x61, 0x79, + 0x6f, 0x75, 0x74, 0x28, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, + 0x3d, 0x20, 0x34, 0x2c, 0x20, 0x73, 0x74, 0x64, 0x31, 0x34, 0x30, 0x29, + 0x20, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x4c, 0x75, 0x74, + 0x44, 0x61, 0x74, 0x61, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x75, + 0x76, 0x65, 0x63, 0x34, 0x20, 0x6c, 0x75, 0x74, 0x5b, 0x36, 0x34, 0x5d, + 0x3b, 0x0a, 0x7d, 0x20, 0x6c, 0x75, 0x74, 0x3b, 0x0a, 0x0a, 0x6c, 0x61, + 0x79, 0x6f, 0x75, 0x74, 0x28, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x20, 0x3d, 0x20, 0x30, 0x29, 0x20, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, + 0x6d, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x32, 0x44, 0x20, + 0x79, 0x75, 0x70, 0x5f, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x64, + 0x5f, 0x75, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x75, 0x5f, 0x73, 0x61, + 0x6d, 0x70, 0x3b, 0x0a, 0x0a, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x28, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x30, + 0x29, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x66, + 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x0a, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x66, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x61, + 0x67, 0x28, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x64, 0x78, 0x29, 0x0a, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x72, 0x6f, 0x77, 0x73, 0x2e, 0x6d, 0x61, 0x67, 0x73, 0x5b, 0x69, 0x64, + 0x78, 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x5d, 0x5b, 0x69, 0x64, 0x78, 0x20, + 0x26, 0x20, 0x33, 0x5d, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x76, 0x6f, 0x69, + 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x32, 0x20, 0x75, 0x76, 0x20, 0x3d, + 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, + 0x64, 0x2e, 0x78, 0x79, 0x20, 0x2f, 0x20, 0x76, 0x65, 0x63, 0x32, 0x28, + 0x70, 0x2e, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2c, 0x20, 0x70, 0x2e, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x66, 0x20, 0x28, 0x75, 0x76, 0x2e, 0x79, 0x20, 0x3e, 0x3d, 0x20, + 0x28, 0x70, 0x2e, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x20, 0x2f, + 0x20, 0x70, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x29, 0x29, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x66, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, + 0x3d, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x28, 0x79, 0x75, + 0x70, 0x5f, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x75, + 0x5f, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x75, 0x5f, 0x73, 0x61, 0x6d, 0x70, + 0x2c, 0x20, 0x76, 0x65, 0x63, 0x32, 0x28, 0x75, 0x76, 0x2e, 0x78, 0x2c, + 0x20, 0x75, 0x76, 0x2e, 0x79, 0x20, 0x2d, 0x20, 0x28, 0x70, 0x2e, 0x6e, + 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x20, 0x2f, 0x20, 0x70, 0x2e, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x29, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x78, 0x20, 0x3d, 0x20, 0x69, + 0x6e, 0x74, 0x28, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, + 0x6f, 0x72, 0x64, 0x2e, 0x78, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x79, 0x20, 0x3d, 0x20, + 0x69, 0x6e, 0x74, 0x28, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, + 0x6f, 0x6f, 0x72, 0x64, 0x2e, 0x79, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x72, 0x6f, 0x77, + 0x20, 0x3d, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x28, 0x70, 0x2e, 0x6e, 0x75, + 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x29, 0x20, 0x2d, 0x20, 0x31, 0x29, 0x20, + 0x2d, 0x20, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x62, 0x69, 0x6e, 0x50, 0x6f, + 0x73, 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x78, 0x29, + 0x20, 0x2a, 0x20, 0x28, 0x70, 0x2e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x2f, + 0x20, 0x70, 0x2e, 0x77, 0x69, 0x64, 0x74, 0x68, 0x29, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x62, + 0x69, 0x6e, 0x30, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x62, 0x69, + 0x6e, 0x50, 0x6f, 0x73, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x62, 0x69, 0x6e, 0x31, 0x20, + 0x3d, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x28, 0x62, 0x69, 0x6e, 0x30, 0x20, + 0x2b, 0x20, 0x31, 0x29, 0x2c, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x28, 0x70, + 0x2e, 0x62, 0x69, 0x6e, 0x73, 0x29, 0x20, 0x2d, 0x20, 0x31, 0x29, 0x29, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x20, 0x66, 0x72, 0x61, 0x63, 0x42, 0x69, 0x6e, 0x20, + 0x3d, 0x20, 0x62, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x20, 0x2d, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x62, 0x69, 0x6e, 0x30, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x20, 0x3d, 0x20, 0x28, 0x72, 0x6f, 0x77, + 0x20, 0x2a, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x70, 0x2e, 0x62, 0x69, 0x6e, + 0x73, 0x29, 0x29, 0x20, 0x2b, 0x20, 0x62, 0x69, 0x6e, 0x30, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5f, 0x31, 0x20, 0x3d, 0x20, 0x28, 0x72, + 0x6f, 0x77, 0x20, 0x2a, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x70, 0x2e, 0x62, + 0x69, 0x6e, 0x73, 0x29, 0x29, 0x20, 0x2b, 0x20, 0x62, 0x69, 0x6e, 0x31, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x67, 0x20, 0x3d, 0x20, 0x6d, 0x69, + 0x78, 0x28, 0x66, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x67, 0x28, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x29, 0x2c, 0x20, 0x66, 0x65, 0x74, 0x63, 0x68, + 0x4d, 0x61, 0x67, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5f, 0x31, 0x29, + 0x2c, 0x20, 0x66, 0x72, 0x61, 0x63, 0x42, 0x69, 0x6e, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x20, 0x74, 0x20, 0x3d, 0x20, 0x63, 0x6c, 0x61, 0x6d, 0x70, 0x28, + 0x6d, 0x61, 0x67, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, + 0x30, 0x29, 0x20, 0x2a, 0x20, 0x32, 0x35, 0x35, 0x2e, 0x30, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, + 0x69, 0x30, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x74, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x20, 0x69, 0x31, 0x20, 0x3d, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x28, 0x69, + 0x30, 0x20, 0x2b, 0x20, 0x31, 0x29, 0x2c, 0x20, 0x32, 0x35, 0x35, 0x29, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x20, 0x66, 0x72, 0x61, 0x63, 0x20, 0x3d, 0x20, 0x74, + 0x20, 0x2d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x69, 0x30, 0x29, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x75, 0x69, + 0x6e, 0x74, 0x20, 0x63, 0x30, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x74, 0x2e, + 0x6c, 0x75, 0x74, 0x5b, 0x69, 0x30, 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x5d, + 0x5b, 0x69, 0x30, 0x20, 0x26, 0x20, 0x33, 0x5d, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x20, 0x63, + 0x31, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x74, 0x2e, 0x6c, 0x75, 0x74, 0x5b, + 0x69, 0x31, 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x5d, 0x5b, 0x69, 0x31, 0x20, + 0x26, 0x20, 0x33, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x63, 0x6f, 0x6c, 0x30, 0x20, + 0x3d, 0x20, 0x76, 0x65, 0x63, 0x34, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x28, 0x28, 0x63, 0x30, 0x20, 0x3e, 0x3e, 0x20, 0x75, 0x69, 0x6e, 0x74, + 0x28, 0x31, 0x36, 0x29, 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, + 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, 0x30, + 0x20, 0x3e, 0x3e, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x38, 0x29, 0x29, + 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x28, 0x63, 0x30, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, + 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, + 0x30, 0x20, 0x3e, 0x3e, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x32, 0x34, + 0x29, 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x29, 0x20, + 0x2f, 0x20, 0x76, 0x65, 0x63, 0x34, 0x28, 0x32, 0x35, 0x35, 0x2e, 0x30, + 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, + 0x65, 0x63, 0x34, 0x20, 0x63, 0x6f, 0x6c, 0x31, 0x20, 0x3d, 0x20, 0x76, + 0x65, 0x63, 0x34, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, + 0x31, 0x20, 0x3e, 0x3e, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x31, 0x36, + 0x29, 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, 0x31, 0x20, 0x3e, 0x3e, + 0x20, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x38, 0x29, 0x29, 0x20, 0x26, 0x20, + 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x28, 0x63, 0x31, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, 0x31, 0x20, 0x3e, + 0x3e, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x32, 0x34, 0x29, 0x29, 0x20, + 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x29, 0x20, 0x2f, 0x20, 0x76, + 0x65, 0x63, 0x34, 0x28, 0x32, 0x35, 0x35, 0x2e, 0x30, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x72, 0x61, 0x67, + 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x6d, 0x69, 0x78, 0x28, + 0x63, 0x6f, 0x6c, 0x30, 0x2c, 0x20, 0x63, 0x6f, 0x6c, 0x31, 0x2c, 0x20, + 0x76, 0x65, 0x63, 0x34, 0x28, 0x66, 0x72, 0x61, 0x63, 0x29, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x49, 0x53, + 0x52, 0x43, 0xe4, 0x0e, 0x00, 0x00, 0x2f, 0x2a, 0x0a, 0x20, 0x20, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x54, 0x68, + 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, + 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x59, + 0x55, 0x50, 0x20, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x0a, + 0x20, 0x20, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x20, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x32, 0x36, 0x20, 0x2d, 0x20, + 0x6b, 0x75, 0x6e, 0x69, 0x74, 0x6f, 0x6b, 0x69, 0x40, 0x67, 0x6d, 0x61, + 0x69, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x59, + 0x55, 0x50, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x65, + 0x6e, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x6c, 0x69, 0x62, + 0x72, 0x61, 0x72, 0x79, 0x20, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x2d, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x20, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x69, 0x6e, + 0x67, 0x2e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, + 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x74, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x49, 0x53, 0x43, 0x20, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, + 0x77, 0x77, 0x2e, 0x69, 0x73, 0x63, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x64, + 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x6f, 0x66, + 0x74, 0x77, 0x61, 0x72, 0x65, 0x2d, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x2d, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2f, 0x69, 0x73, 0x63, + 0x2d, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2e, 0x20, 0x50, 0x65, + 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, + 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x2c, 0x20, 0x63, 0x6f, 0x70, 0x79, + 0x2c, 0x20, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x2c, 0x20, 0x61, 0x6e, + 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, 0x6f, 0x66, + 0x74, 0x77, 0x61, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, + 0x79, 0x20, 0x70, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x6f, 0x75, 0x74, 0x20, 0x66, 0x65, 0x65, 0x20, 0x69, 0x73, 0x20, + 0x68, 0x65, 0x72, 0x65, 0x62, 0x79, 0x20, 0x67, 0x72, 0x61, 0x6e, 0x74, + 0x65, 0x64, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x62, 0x6f, + 0x76, 0x65, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x70, 0x65, 0x72, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x63, + 0x65, 0x20, 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x20, 0x69, 0x6e, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x73, 0x2e, 0x0a, + 0x0a, 0x20, 0x20, 0x20, 0x59, 0x55, 0x50, 0x20, 0x49, 0x53, 0x20, 0x50, + 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x44, 0x20, 0x22, 0x41, 0x53, 0x20, + 0x49, 0x53, 0x22, 0x20, 0x57, 0x49, 0x54, 0x48, 0x4f, 0x55, 0x54, 0x20, + 0x41, 0x4e, 0x59, 0x20, 0x57, 0x41, 0x52, 0x52, 0x41, 0x4e, 0x54, 0x59, + 0x2c, 0x20, 0x41, 0x4e, 0x44, 0x20, 0x41, 0x4c, 0x4c, 0x20, 0x57, 0x41, + 0x52, 0x52, 0x41, 0x4e, 0x54, 0x49, 0x45, 0x53, 0x2c, 0x20, 0x57, 0x48, + 0x45, 0x54, 0x48, 0x45, 0x52, 0x0a, 0x20, 0x20, 0x20, 0x45, 0x58, 0x50, + 0x52, 0x45, 0x53, 0x53, 0x45, 0x44, 0x20, 0x4f, 0x52, 0x20, 0x49, 0x4d, + 0x50, 0x4c, 0x49, 0x45, 0x44, 0x2c, 0x20, 0x49, 0x4e, 0x43, 0x4c, 0x55, + 0x44, 0x49, 0x4e, 0x47, 0x20, 0x4d, 0x45, 0x52, 0x43, 0x48, 0x41, 0x4e, + 0x54, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x20, 0x41, 0x4e, 0x44, + 0x20, 0x46, 0x49, 0x54, 0x4e, 0x45, 0x53, 0x53, 0x20, 0x46, 0x4f, 0x52, + 0x20, 0x50, 0x55, 0x52, 0x50, 0x4f, 0x53, 0x45, 0x2c, 0x20, 0x41, 0x52, + 0x45, 0x0a, 0x20, 0x20, 0x20, 0x44, 0x49, 0x53, 0x43, 0x4c, 0x41, 0x49, + 0x4d, 0x45, 0x44, 0x2e, 0x0a, 0x0a, 0x20, 0x20, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x0a, 0x2a, 0x2f, 0x0a, 0x0a, 0x23, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x34, 0x35, 0x30, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, + 0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x20, 0x77, + 0x61, 0x74, 0x65, 0x72, 0x66, 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x68, 0x61, + 0x64, 0x65, 0x72, 0x2e, 0x20, 0x41, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, + 0x20, 0x74, 0x72, 0x69, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x73, 0x63, + 0x72, 0x6f, 0x6c, 0x6c, 0x73, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x2f, 0x2f, + 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x68, 0x69, + 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, + 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x20, 0x62, 0x79, 0x20, 0x6e, 0x75, + 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, 0x73, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x20, 0x6e, 0x65, + 0x77, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x0a, 0x2f, 0x2f, 0x20, 0x61, 0x74, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x6f, 0x70, 0x2c, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x62, + 0x69, 0x6e, 0x27, 0x73, 0x20, 0x72, 0x61, 0x77, 0x20, 0x6d, 0x61, 0x67, + 0x6e, 0x69, 0x74, 0x75, 0x64, 0x65, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, + 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x20, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x20, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x0a, 0x2f, 0x2f, 0x20, 0x28, 0x61, 0x20, 0x6c, 0x65, 0x72, 0x70, + 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x61, 0x64, 0x6a, + 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, + 0x73, 0x2c, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, + 0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x43, + 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x3a, 0x3a, 0x6d, 0x61, 0x70, + 0x29, 0x20, 0x65, 0x6e, 0x74, 0x69, 0x72, 0x65, 0x6c, 0x79, 0x0a, 0x2f, + 0x2f, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x47, 0x50, 0x55, + 0x2e, 0x0a, 0x2f, 0x2f, 0x0a, 0x2f, 0x2f, 0x20, 0x42, 0x69, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x0a, 0x2f, 0x2f, 0x20, 0x20, 0x20, 0x73, + 0x65, 0x74, 0x3d, 0x30, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x3d, 0x30, 0x20, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, + 0x73, 0x20, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x65, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x20, 0x28, 0x55, 0x56, 0x2e, 0x79, 0x20, + 0x3d, 0x20, 0x30, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, + 0x6f, 0x70, 0x20, 0x72, 0x6f, 0x77, 0x29, 0x0a, 0x2f, 0x2f, 0x20, 0x20, + 0x20, 0x73, 0x65, 0x74, 0x3d, 0x30, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x3d, 0x31, 0x20, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, + 0x65, 0x72, 0x20, 0x28, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, + 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x2c, 0x20, 0x6c, 0x69, + 0x6b, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x74, 0x65, + 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x29, 0x0a, 0x2f, + 0x2f, 0x20, 0x20, 0x20, 0x73, 0x65, 0x74, 0x3d, 0x30, 0x20, 0x62, 0x69, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x32, 0x20, 0x3a, 0x20, 0x57, 0x61, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x6c, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x20, 0x55, 0x42, 0x4f, 0x0a, 0x2f, 0x2f, 0x20, 0x20, 0x20, 0x73, + 0x65, 0x74, 0x3d, 0x30, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x3d, 0x33, 0x20, 0x3a, 0x20, 0x52, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, + 0x20, 0x55, 0x42, 0x4f, 0x20, 0x28, 0x57, 0x20, 0x2a, 0x20, 0x6e, 0x75, + 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x20, 0x72, 0x61, 0x77, 0x20, 0x6d, 0x61, + 0x67, 0x6e, 0x69, 0x74, 0x75, 0x64, 0x65, 0x73, 0x2c, 0x20, 0x6f, 0x6c, + 0x64, 0x65, 0x73, 0x74, 0x20, 0x72, 0x6f, 0x77, 0x20, 0x66, 0x69, 0x72, + 0x73, 0x74, 0x29, 0x0a, 0x2f, 0x2f, 0x20, 0x20, 0x20, 0x73, 0x65, 0x74, + 0x3d, 0x30, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x34, + 0x20, 0x3a, 0x20, 0x4c, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x20, 0x55, + 0x42, 0x4f, 0x20, 0x28, 0x32, 0x35, 0x36, 0x20, 0x41, 0x52, 0x47, 0x42, + 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x65, 0x6e, 0x74, 0x72, 0x69, + 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x28, + 0x73, 0x65, 0x74, 0x20, 0x3d, 0x20, 0x30, 0x2c, 0x20, 0x62, 0x69, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x20, 0x3d, 0x20, 0x30, 0x29, 0x20, 0x75, 0x6e, + 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, + 0x65, 0x32, 0x44, 0x20, 0x75, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x3b, 0x0a, + 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x28, 0x73, 0x65, 0x74, 0x20, 0x3d, + 0x20, 0x30, 0x2c, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, + 0x3d, 0x20, 0x31, 0x29, 0x20, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, + 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x20, 0x20, 0x20, 0x75, + 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x3b, 0x0a, 0x6c, 0x61, 0x79, 0x6f, 0x75, + 0x74, 0x28, 0x73, 0x65, 0x74, 0x20, 0x3d, 0x20, 0x30, 0x2c, 0x20, 0x62, + 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x3d, 0x20, 0x32, 0x29, 0x20, + 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x57, 0x61, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x6c, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x0a, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, + 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3b, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x77, 0x61, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, + 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x65, + 0x78, 0x65, 0x6c, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x62, 0x69, 0x6e, + 0x73, 0x3b, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x67, 0x6e, 0x69, + 0x74, 0x75, 0x64, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x72, 0x6f, 0x77, 0x20, 0x28, 0x3c, 0x3d, 0x20, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x20, 0x70, 0x61, 0x64, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x70, 0x61, 0x64, 0x31, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x70, + 0x61, 0x64, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x20, 0x70, 0x61, 0x64, 0x33, 0x3b, 0x0a, 0x7d, 0x20, 0x70, + 0x3b, 0x0a, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x28, 0x73, 0x65, 0x74, + 0x20, 0x3d, 0x20, 0x30, 0x2c, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x20, 0x3d, 0x20, 0x33, 0x29, 0x20, 0x75, 0x6e, 0x69, 0x66, 0x6f, + 0x72, 0x6d, 0x20, 0x52, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x0a, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x6d, 0x61, + 0x67, 0x73, 0x5b, 0x35, 0x31, 0x32, 0x5d, 0x3b, 0x20, 0x2f, 0x2f, 0x20, + 0x32, 0x30, 0x34, 0x38, 0x20, 0x72, 0x61, 0x77, 0x20, 0x6d, 0x61, 0x67, + 0x6e, 0x69, 0x74, 0x75, 0x64, 0x65, 0x73, 0x20, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x76, 0x65, 0x63, 0x34, 0x73, 0x20, + 0x28, 0x73, 0x74, 0x64, 0x31, 0x34, 0x30, 0x20, 0x74, 0x69, 0x67, 0x68, + 0x74, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x57, 0x20, 0x69, 0x73, 0x20, + 0x61, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x34, 0x29, 0x0a, 0x7d, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x3b, + 0x0a, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x28, 0x73, 0x65, 0x74, 0x20, + 0x3d, 0x20, 0x30, 0x2c, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x20, 0x3d, 0x20, 0x34, 0x29, 0x20, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, + 0x6d, 0x20, 0x4c, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x0a, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x75, 0x76, 0x65, 0x63, 0x34, 0x20, 0x6c, 0x75, + 0x74, 0x5b, 0x36, 0x34, 0x5d, 0x3b, 0x20, 0x2f, 0x2f, 0x20, 0x32, 0x35, + 0x36, 0x20, 0x41, 0x52, 0x47, 0x42, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x73, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, + 0x75, 0x76, 0x65, 0x63, 0x34, 0x73, 0x0a, 0x7d, 0x20, 0x6c, 0x75, 0x74, + 0x3b, 0x0a, 0x0a, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x28, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x30, 0x29, 0x20, + 0x6f, 0x75, 0x74, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x66, 0x72, 0x61, + 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x20, 0x66, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x67, 0x28, + 0x69, 0x6e, 0x74, 0x20, 0x69, 0x64, 0x78, 0x29, 0x0a, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x6f, + 0x77, 0x73, 0x2e, 0x6d, 0x61, 0x67, 0x73, 0x5b, 0x69, 0x64, 0x78, 0x20, + 0x3e, 0x3e, 0x20, 0x32, 0x5d, 0x5b, 0x69, 0x64, 0x78, 0x20, 0x26, 0x20, + 0x33, 0x5d, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, + 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x76, 0x65, 0x63, 0x32, 0x20, 0x75, 0x76, 0x20, 0x3d, 0x20, 0x67, + 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x2e, + 0x78, 0x79, 0x20, 0x2f, 0x20, 0x76, 0x65, 0x63, 0x32, 0x28, 0x70, 0x2e, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x2c, 0x20, 0x70, 0x2e, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, + 0x20, 0x28, 0x75, 0x76, 0x2e, 0x79, 0x20, 0x3e, 0x3d, 0x20, 0x70, 0x2e, + 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x20, 0x2f, 0x20, 0x70, 0x2e, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x72, + 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x74, 0x65, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x28, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, + 0x72, 0x32, 0x44, 0x28, 0x75, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x2c, 0x20, + 0x75, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x29, 0x2c, 0x20, 0x76, 0x65, 0x63, + 0x32, 0x28, 0x75, 0x76, 0x2e, 0x78, 0x2c, 0x20, 0x75, 0x76, 0x2e, 0x79, + 0x20, 0x2d, 0x20, 0x70, 0x2e, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, + 0x20, 0x2f, 0x20, 0x70, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x29, + 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, + 0x78, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x67, 0x6c, 0x5f, 0x46, + 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x2e, 0x78, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x20, 0x79, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x67, 0x6c, 0x5f, + 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x2e, 0x79, 0x29, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, + 0x20, 0x52, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x70, + 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x20, 0x6f, 0x6c, 0x64, 0x65, 0x73, + 0x74, 0x2d, 0x66, 0x69, 0x72, 0x73, 0x74, 0x3b, 0x20, 0x63, 0x61, 0x6e, + 0x76, 0x61, 0x73, 0x20, 0x72, 0x6f, 0x77, 0x20, 0x79, 0x20, 0x28, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x6f, 0x70, 0x29, + 0x20, 0x73, 0x68, 0x6f, 0x77, 0x73, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x28, 0x6e, + 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x20, 0x2d, 0x20, 0x31, 0x20, 0x2d, + 0x20, 0x79, 0x29, 0x2d, 0x74, 0x68, 0x20, 0x70, 0x65, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x20, 0x72, 0x6f, 0x77, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x72, 0x6f, 0x77, 0x20, + 0x3d, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x70, 0x2e, 0x6e, 0x75, 0x6d, 0x52, + 0x6f, 0x77, 0x73, 0x29, 0x20, 0x2d, 0x20, 0x31, 0x20, 0x2d, 0x20, 0x79, + 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, + 0x2f, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, + 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x61, 0x64, + 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x67, 0x6e, 0x69, + 0x74, 0x75, 0x64, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x73, 0x6f, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x79, 0x20, 0x61, 0x78, 0x69, 0x73, 0x20, 0x69, 0x73, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x73, 0x6d, + 0x6f, 0x6f, 0x74, 0x68, 0x20, 0x28, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x6c, + 0x69, 0x61, 0x73, 0x65, 0x64, 0x29, 0x20, 0x65, 0x76, 0x65, 0x6e, 0x20, + 0x74, 0x68, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, + 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x77, 0x69, + 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x62, 0x69, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2f, 0x2f, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x20, 0x62, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x20, 0x3d, 0x20, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x28, 0x78, 0x29, 0x20, 0x2a, 0x20, 0x28, 0x70, 0x2e, + 0x62, 0x69, 0x6e, 0x73, 0x20, 0x2f, 0x20, 0x70, 0x2e, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x20, 0x62, 0x69, 0x6e, 0x30, 0x20, 0x3d, 0x20, + 0x69, 0x6e, 0x74, 0x28, 0x62, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x20, 0x62, 0x69, 0x6e, 0x31, 0x20, 0x3d, 0x20, 0x6d, 0x69, 0x6e, 0x28, + 0x62, 0x69, 0x6e, 0x30, 0x20, 0x2b, 0x20, 0x31, 0x2c, 0x20, 0x69, 0x6e, + 0x74, 0x28, 0x70, 0x2e, 0x62, 0x69, 0x6e, 0x73, 0x29, 0x20, 0x2d, 0x20, + 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x66, 0x72, 0x61, 0x63, 0x42, 0x69, + 0x6e, 0x20, 0x3d, 0x20, 0x62, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x20, 0x2d, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x62, 0x69, 0x6e, 0x30, 0x29, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x67, 0x20, 0x3d, 0x20, 0x6d, 0x69, + 0x78, 0x28, 0x66, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x67, 0x28, 0x72, + 0x6f, 0x77, 0x20, 0x2a, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x70, 0x2e, 0x62, + 0x69, 0x6e, 0x73, 0x29, 0x20, 0x2b, 0x20, 0x62, 0x69, 0x6e, 0x30, 0x29, + 0x2c, 0x20, 0x66, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x67, 0x28, 0x72, + 0x6f, 0x77, 0x20, 0x2a, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x70, 0x2e, 0x62, + 0x69, 0x6e, 0x73, 0x29, 0x20, 0x2b, 0x20, 0x62, 0x69, 0x6e, 0x31, 0x29, + 0x2c, 0x20, 0x66, 0x72, 0x61, 0x63, 0x42, 0x69, 0x6e, 0x29, 0x3b, 0x0a, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x20, 0x74, 0x20, 0x3d, 0x20, 0x63, 0x6c, 0x61, 0x6d, 0x70, + 0x28, 0x6d, 0x61, 0x67, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, + 0x2e, 0x30, 0x29, 0x20, 0x2a, 0x20, 0x32, 0x35, 0x35, 0x2e, 0x30, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x20, 0x69, 0x30, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x74, 0x29, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x20, 0x69, 0x31, 0x20, 0x3d, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x69, + 0x30, 0x20, 0x2b, 0x20, 0x31, 0x2c, 0x20, 0x32, 0x35, 0x35, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x20, 0x66, 0x72, 0x61, 0x63, 0x20, 0x3d, 0x20, 0x74, 0x20, + 0x2d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x69, 0x30, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x75, 0x69, 0x6e, + 0x74, 0x20, 0x63, 0x30, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x74, 0x2e, 0x6c, + 0x75, 0x74, 0x5b, 0x69, 0x30, 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x5d, 0x5b, + 0x69, 0x30, 0x20, 0x26, 0x20, 0x33, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x20, 0x63, 0x31, + 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x74, 0x2e, 0x6c, 0x75, 0x74, 0x5b, 0x69, + 0x31, 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x5d, 0x5b, 0x69, 0x31, 0x20, 0x26, + 0x20, 0x33, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x63, 0x6f, 0x6c, 0x30, 0x20, 0x3d, + 0x20, 0x76, 0x65, 0x63, 0x34, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, + 0x28, 0x63, 0x30, 0x20, 0x3e, 0x3e, 0x20, 0x31, 0x36, 0x29, 0x20, 0x26, + 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x28, 0x28, 0x63, 0x30, 0x20, 0x3e, 0x3e, 0x20, 0x38, 0x29, 0x20, + 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x28, 0x63, 0x30, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, + 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, 0x30, + 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x34, 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, + 0x35, 0x75, 0x29, 0x29, 0x20, 0x2f, 0x20, 0x32, 0x35, 0x35, 0x2e, 0x30, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, + 0x63, 0x34, 0x20, 0x63, 0x6f, 0x6c, 0x31, 0x20, 0x3d, 0x20, 0x76, 0x65, + 0x63, 0x34, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, 0x31, + 0x20, 0x3e, 0x3e, 0x20, 0x31, 0x36, 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, + 0x35, 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, + 0x63, 0x31, 0x20, 0x3e, 0x3e, 0x20, 0x38, 0x29, 0x20, 0x26, 0x20, 0x32, + 0x35, 0x35, 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, + 0x63, 0x31, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, 0x31, 0x20, 0x3e, 0x3e, + 0x20, 0x32, 0x34, 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, + 0x29, 0x20, 0x2f, 0x20, 0x32, 0x35, 0x35, 0x2e, 0x30, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x72, 0x61, 0x67, 0x43, + 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x6d, 0x69, 0x78, 0x28, 0x63, + 0x6f, 0x6c, 0x30, 0x2c, 0x20, 0x63, 0x6f, 0x6c, 0x31, 0x2c, 0x20, 0x66, + 0x72, 0x61, 0x63, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, + 0x7d, 0x0a, 0x52, 0x45, 0x46, 0x4c, 0x11, 0x06, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, + 0x69, 0x6e, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x52, 0x6f, 0x77, 0x44, 0x61, 0x74, + 0x61, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x67, + 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0x0f, 0x00, 0x00, 0x00, 0x57, 0x61, 0x74, 0x65, 0x72, 0x66, 0x61, 0x6c, + 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x00, 0x00, 0x00, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x77, 0x69, 0x64, 0x74, 0x68, 0x04, + 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x62, 0x69, 0x6e, + 0x73, 0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, + 0x30, 0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, + 0x31, 0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, + 0x32, 0x18, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, + 0x33, 0x1c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x4c, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x00, 0x00, 0x6c, 0x75, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, + 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x66, 0x72, 0x61, + 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x20, 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, 0x3f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1a, 0x00, 0x00, 0x00, 0x79, 0x75, 0x70, 0x5f, 0x63, 0x6f, 0x6d, + 0x62, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x5f, 0x70, 0x72, 0x65, 0x76, + 0x5f, 0x75, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xff, 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, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, + 0x00, 0x00, 0x75, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x0a, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, + 0x00, 0x00, 0x00, 0x75, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x0b, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 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, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x5f, 0x52, 0x45, 0x53, + 0x45, 0x52, 0x56, 0x45, 0x44, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, + 0x46, 0x49, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x58, 0x55, 0x50, 0x5f, 0x67, + 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x04, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 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, 0x24, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x28, 0x31, + 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x79, 0x75, 0x70, + 0x5f, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x5f, + 0x70, 0x72, 0x65, 0x76, 0x5f, 0x75, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x56, 0x41, 0x52, 0x54, 0xb8, 0x1c, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0xa2, 0x07, 0x00, 0x00, 0x23, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x33, 0x30, 0x30, 0x20, 0x65, 0x73, 0x0a, 0x70, 0x72, 0x65, 0x63, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, + 0x70, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3b, 0x0a, 0x70, 0x72, 0x65, + 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, + 0x20, 0x69, 0x6e, 0x74, 0x3b, 0x0a, 0x0a, 0x6c, 0x61, 0x79, 0x6f, 0x75, + 0x74, 0x28, 0x73, 0x74, 0x64, 0x31, 0x34, 0x30, 0x29, 0x20, 0x75, 0x6e, + 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x52, 0x6f, 0x77, 0x44, 0x61, 0x74, + 0x61, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x68, 0x69, 0x67, 0x68, + 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x6d, 0x61, 0x67, 0x73, 0x5b, + 0x35, 0x31, 0x32, 0x5d, 0x3b, 0x0a, 0x7d, 0x20, 0x72, 0x6f, 0x77, 0x73, + 0x3b, 0x0a, 0x0a, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x28, 0x73, 0x74, + 0x64, 0x31, 0x34, 0x30, 0x29, 0x20, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, + 0x6d, 0x20, 0x57, 0x61, 0x74, 0x65, 0x72, 0x66, 0x61, 0x6c, 0x6c, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, + 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, + 0x62, 0x69, 0x6e, 0x73, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x68, 0x69, + 0x67, 0x68, 0x70, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x70, 0x61, + 0x64, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x68, 0x69, 0x67, 0x68, + 0x70, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x70, 0x61, 0x64, 0x31, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x70, 0x61, 0x64, 0x32, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x20, 0x70, 0x61, 0x64, 0x33, 0x3b, 0x0a, 0x7d, 0x20, + 0x70, 0x3b, 0x0a, 0x0a, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x28, 0x73, + 0x74, 0x64, 0x31, 0x34, 0x30, 0x29, 0x20, 0x75, 0x6e, 0x69, 0x66, 0x6f, + 0x72, 0x6d, 0x20, 0x4c, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x0a, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x75, 0x76, 0x65, 0x63, 0x34, 0x20, 0x6c, + 0x75, 0x74, 0x5b, 0x36, 0x34, 0x5d, 0x3b, 0x0a, 0x7d, 0x20, 0x6c, 0x75, + 0x74, 0x3b, 0x0a, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, + 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, + 0x72, 0x32, 0x44, 0x20, 0x79, 0x75, 0x70, 0x5f, 0x63, 0x6f, 0x6d, 0x62, + 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x5f, + 0x75, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x3b, 0x0a, 0x0a, 0x6c, 0x61, 0x79, + 0x6f, 0x75, 0x74, 0x28, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x3d, 0x20, 0x30, 0x29, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x68, 0x69, + 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x66, 0x72, 0x61, + 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x0a, 0x68, 0x69, 0x67, + 0x68, 0x70, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x66, 0x65, 0x74, + 0x63, 0x68, 0x4d, 0x61, 0x67, 0x28, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x64, + 0x78, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x2e, 0x6d, 0x61, 0x67, + 0x73, 0x5b, 0x69, 0x64, 0x78, 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x5d, 0x5b, + 0x69, 0x64, 0x78, 0x20, 0x26, 0x20, 0x33, 0x5d, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x29, + 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, + 0x20, 0x76, 0x65, 0x63, 0x32, 0x20, 0x75, 0x76, 0x20, 0x3d, 0x20, 0x67, + 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x2e, + 0x78, 0x79, 0x20, 0x2f, 0x20, 0x76, 0x65, 0x63, 0x32, 0x28, 0x70, 0x2e, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x2c, 0x20, 0x70, 0x2e, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, + 0x20, 0x28, 0x75, 0x76, 0x2e, 0x79, 0x20, 0x3e, 0x3d, 0x20, 0x28, 0x70, + 0x2e, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x20, 0x2f, 0x20, 0x70, + 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x29, 0x29, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, + 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x28, 0x79, 0x75, 0x70, 0x5f, + 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x5f, 0x70, + 0x72, 0x65, 0x76, 0x5f, 0x75, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x2c, 0x20, + 0x76, 0x65, 0x63, 0x32, 0x28, 0x75, 0x76, 0x2e, 0x78, 0x2c, 0x20, 0x75, + 0x76, 0x2e, 0x79, 0x20, 0x2d, 0x20, 0x28, 0x70, 0x2e, 0x6e, 0x75, 0x6d, + 0x52, 0x6f, 0x77, 0x73, 0x20, 0x2f, 0x20, 0x70, 0x2e, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x29, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x20, 0x78, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x74, + 0x28, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, + 0x64, 0x2e, 0x78, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x79, 0x20, 0x3d, 0x20, 0x69, 0x6e, + 0x74, 0x28, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, + 0x72, 0x64, 0x2e, 0x79, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x72, 0x6f, 0x77, 0x20, 0x3d, + 0x20, 0x28, 0x69, 0x6e, 0x74, 0x28, 0x70, 0x2e, 0x6e, 0x75, 0x6d, 0x52, + 0x6f, 0x77, 0x73, 0x29, 0x20, 0x2d, 0x20, 0x31, 0x29, 0x20, 0x2d, 0x20, + 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, + 0x69, 0x67, 0x68, 0x70, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x62, + 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x28, 0x78, 0x29, 0x20, 0x2a, 0x20, 0x28, 0x70, 0x2e, 0x62, 0x69, + 0x6e, 0x73, 0x20, 0x2f, 0x20, 0x70, 0x2e, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x20, 0x62, 0x69, 0x6e, 0x30, 0x20, 0x3d, 0x20, 0x69, 0x6e, + 0x74, 0x28, 0x62, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x29, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x62, + 0x69, 0x6e, 0x31, 0x20, 0x3d, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x28, 0x62, + 0x69, 0x6e, 0x30, 0x20, 0x2b, 0x20, 0x31, 0x29, 0x2c, 0x20, 0x28, 0x69, + 0x6e, 0x74, 0x28, 0x70, 0x2e, 0x62, 0x69, 0x6e, 0x73, 0x29, 0x20, 0x2d, + 0x20, 0x31, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x20, 0x66, 0x72, 0x61, 0x63, 0x42, 0x69, 0x6e, 0x20, 0x3d, 0x20, + 0x62, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x20, 0x2d, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x28, 0x62, 0x69, 0x6e, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x20, 0x3d, 0x20, 0x28, 0x72, 0x6f, 0x77, 0x20, 0x2a, + 0x20, 0x69, 0x6e, 0x74, 0x28, 0x70, 0x2e, 0x62, 0x69, 0x6e, 0x73, 0x29, + 0x29, 0x20, 0x2b, 0x20, 0x62, 0x69, 0x6e, 0x30, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x5f, 0x31, 0x20, 0x3d, 0x20, 0x28, 0x72, 0x6f, 0x77, + 0x20, 0x2a, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x70, 0x2e, 0x62, 0x69, 0x6e, + 0x73, 0x29, 0x29, 0x20, 0x2b, 0x20, 0x62, 0x69, 0x6e, 0x31, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x69, 0x67, 0x68, + 0x70, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x67, 0x20, + 0x3d, 0x20, 0x6d, 0x69, 0x78, 0x28, 0x66, 0x65, 0x74, 0x63, 0x68, 0x4d, + 0x61, 0x67, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x2c, 0x20, 0x66, + 0x65, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x67, 0x28, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x5f, 0x31, 0x29, 0x2c, 0x20, 0x66, 0x72, 0x61, 0x63, 0x42, 0x69, + 0x6e, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, + 0x74, 0x20, 0x3d, 0x20, 0x63, 0x6c, 0x61, 0x6d, 0x70, 0x28, 0x6d, 0x61, + 0x67, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, + 0x20, 0x2a, 0x20, 0x32, 0x35, 0x35, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x30, + 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x74, 0x29, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x69, + 0x31, 0x20, 0x3d, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x28, 0x69, 0x30, 0x20, + 0x2b, 0x20, 0x31, 0x29, 0x2c, 0x20, 0x32, 0x35, 0x35, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x69, 0x67, 0x68, + 0x70, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x66, 0x72, 0x61, 0x63, + 0x20, 0x3d, 0x20, 0x74, 0x20, 0x2d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x28, 0x69, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x20, 0x63, 0x30, 0x20, 0x3d, 0x20, + 0x6c, 0x75, 0x74, 0x2e, 0x6c, 0x75, 0x74, 0x5b, 0x69, 0x30, 0x20, 0x3e, + 0x3e, 0x20, 0x32, 0x5d, 0x5b, 0x69, 0x30, 0x20, 0x26, 0x20, 0x33, 0x5d, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x75, 0x69, + 0x6e, 0x74, 0x20, 0x63, 0x31, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x74, 0x2e, + 0x6c, 0x75, 0x74, 0x5b, 0x69, 0x31, 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x5d, + 0x5b, 0x69, 0x31, 0x20, 0x26, 0x20, 0x33, 0x5d, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, + 0x76, 0x65, 0x63, 0x34, 0x20, 0x63, 0x6f, 0x6c, 0x30, 0x20, 0x3d, 0x20, + 0x76, 0x65, 0x63, 0x34, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, + 0x63, 0x30, 0x20, 0x3e, 0x3e, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x31, + 0x36, 0x29, 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, 0x30, 0x20, 0x3e, + 0x3e, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x38, 0x29, 0x29, 0x20, 0x26, + 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x28, 0x63, 0x30, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, + 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, 0x30, 0x20, + 0x3e, 0x3e, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x32, 0x34, 0x29, 0x29, + 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x29, 0x20, 0x2f, 0x20, + 0x76, 0x65, 0x63, 0x34, 0x28, 0x32, 0x35, 0x35, 0x2e, 0x30, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x69, 0x67, + 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x63, 0x6f, 0x6c, 0x31, + 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, 0x34, 0x28, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x28, 0x28, 0x63, 0x31, 0x20, 0x3e, 0x3e, 0x20, 0x75, 0x69, 0x6e, + 0x74, 0x28, 0x31, 0x36, 0x29, 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, + 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, + 0x31, 0x20, 0x3e, 0x3e, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x38, 0x29, + 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x63, 0x31, 0x20, 0x26, 0x20, 0x32, 0x35, + 0x35, 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, + 0x63, 0x31, 0x20, 0x3e, 0x3e, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x32, + 0x34, 0x29, 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x29, + 0x20, 0x2f, 0x20, 0x76, 0x65, 0x63, 0x34, 0x28, 0x32, 0x35, 0x35, 0x2e, + 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, + 0x6d, 0x69, 0x78, 0x28, 0x63, 0x6f, 0x6c, 0x30, 0x2c, 0x20, 0x63, 0x6f, + 0x6c, 0x31, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x34, 0x28, 0x66, 0x72, 0x61, + 0x63, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x7d, + 0x0a, 0x0a, 0x49, 0x53, 0x52, 0x43, 0xe4, 0x0e, 0x00, 0x00, 0x2f, 0x2a, + 0x0a, 0x20, 0x20, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x0a, 0x20, + 0x20, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, + 0x69, 0x73, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x59, 0x55, 0x50, 0x20, 0x6c, 0x69, 0x62, 0x72, 0x61, + 0x72, 0x79, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x32, + 0x36, 0x20, 0x2d, 0x20, 0x6b, 0x75, 0x6e, 0x69, 0x74, 0x6f, 0x6b, 0x69, + 0x40, 0x67, 0x6d, 0x61, 0x69, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x0a, 0x0a, + 0x20, 0x20, 0x20, 0x59, 0x55, 0x50, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6e, + 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x20, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x20, 0x73, 0x75, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x70, 0x65, 0x6e, + 0x2d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x6c, 0x69, 0x63, 0x65, + 0x6e, 0x73, 0x69, 0x6e, 0x67, 0x2e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x54, + 0x68, 0x65, 0x20, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x53, 0x43, 0x20, 0x6c, 0x69, 0x63, + 0x65, 0x6e, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x68, 0x74, 0x74, 0x70, + 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x69, 0x73, 0x63, 0x2e, 0x6f, + 0x72, 0x67, 0x2f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x73, + 0x2f, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x2d, 0x73, 0x75, + 0x70, 0x70, 0x6f, 0x72, 0x74, 0x2d, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x2f, 0x69, 0x73, 0x63, 0x2d, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, + 0x2e, 0x20, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x0a, 0x20, 0x20, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x2c, 0x20, + 0x63, 0x6f, 0x70, 0x79, 0x2c, 0x20, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, + 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x64, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x70, 0x75, 0x72, 0x70, 0x6f, 0x73, + 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6f, 0x72, 0x0a, 0x20, 0x20, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x66, 0x65, 0x65, + 0x20, 0x69, 0x73, 0x20, 0x68, 0x65, 0x72, 0x65, 0x62, 0x79, 0x20, 0x67, + 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x20, + 0x61, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6e, + 0x6f, 0x74, 0x69, 0x63, 0x65, 0x20, 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, + 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x70, 0x69, + 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x59, 0x55, 0x50, 0x20, + 0x49, 0x53, 0x20, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x44, 0x20, + 0x22, 0x41, 0x53, 0x20, 0x49, 0x53, 0x22, 0x20, 0x57, 0x49, 0x54, 0x48, + 0x4f, 0x55, 0x54, 0x20, 0x41, 0x4e, 0x59, 0x20, 0x57, 0x41, 0x52, 0x52, + 0x41, 0x4e, 0x54, 0x59, 0x2c, 0x20, 0x41, 0x4e, 0x44, 0x20, 0x41, 0x4c, + 0x4c, 0x20, 0x57, 0x41, 0x52, 0x52, 0x41, 0x4e, 0x54, 0x49, 0x45, 0x53, + 0x2c, 0x20, 0x57, 0x48, 0x45, 0x54, 0x48, 0x45, 0x52, 0x0a, 0x20, 0x20, + 0x20, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x45, 0x44, 0x20, 0x4f, + 0x52, 0x20, 0x49, 0x4d, 0x50, 0x4c, 0x49, 0x45, 0x44, 0x2c, 0x20, 0x49, + 0x4e, 0x43, 0x4c, 0x55, 0x44, 0x49, 0x4e, 0x47, 0x20, 0x4d, 0x45, 0x52, + 0x43, 0x48, 0x41, 0x4e, 0x54, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, + 0x20, 0x41, 0x4e, 0x44, 0x20, 0x46, 0x49, 0x54, 0x4e, 0x45, 0x53, 0x53, + 0x20, 0x46, 0x4f, 0x52, 0x20, 0x50, 0x55, 0x52, 0x50, 0x4f, 0x53, 0x45, + 0x2c, 0x20, 0x41, 0x52, 0x45, 0x0a, 0x20, 0x20, 0x20, 0x44, 0x49, 0x53, + 0x43, 0x4c, 0x41, 0x49, 0x4d, 0x45, 0x44, 0x2e, 0x0a, 0x0a, 0x20, 0x20, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2a, 0x2f, 0x0a, 0x0a, 0x23, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x34, 0x35, 0x30, 0x0a, + 0x0a, 0x2f, 0x2f, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, + 0x65, 0x6e, 0x20, 0x77, 0x61, 0x74, 0x65, 0x72, 0x66, 0x61, 0x6c, 0x6c, + 0x20, 0x73, 0x68, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x20, 0x41, 0x20, 0x73, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x73, 0x63, + 0x72, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x72, 0x69, 0x61, 0x6e, 0x67, 0x6c, + 0x65, 0x20, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x73, 0x20, 0x74, 0x68, + 0x65, 0x0a, 0x2f, 0x2f, 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, + 0x73, 0x20, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x65, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x20, 0x62, + 0x79, 0x20, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x20, 0x72, 0x6f, + 0x77, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, + 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, + 0x73, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x0a, 0x2f, + 0x2f, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x6f, 0x70, + 0x2c, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x65, 0x61, + 0x63, 0x68, 0x20, 0x62, 0x69, 0x6e, 0x27, 0x73, 0x20, 0x72, 0x61, 0x77, + 0x20, 0x6d, 0x61, 0x67, 0x6e, 0x69, 0x74, 0x75, 0x64, 0x65, 0x20, 0x74, + 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x20, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x0a, 0x2f, 0x2f, 0x20, 0x28, 0x61, 0x20, + 0x6c, 0x65, 0x72, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, + 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x65, 0x6e, + 0x74, 0x72, 0x69, 0x65, 0x73, 0x2c, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x20, 0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x67, + 0x72, 0x61, 0x6d, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x3a, + 0x3a, 0x6d, 0x61, 0x70, 0x29, 0x20, 0x65, 0x6e, 0x74, 0x69, 0x72, 0x65, + 0x6c, 0x79, 0x0a, 0x2f, 0x2f, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x47, 0x50, 0x55, 0x2e, 0x0a, 0x2f, 0x2f, 0x0a, 0x2f, 0x2f, 0x20, + 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x0a, 0x2f, 0x2f, + 0x20, 0x20, 0x20, 0x73, 0x65, 0x74, 0x3d, 0x30, 0x20, 0x62, 0x69, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x30, 0x20, 0x3a, 0x20, 0x70, 0x72, 0x65, + 0x76, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x20, 0x28, 0x55, + 0x56, 0x2e, 0x79, 0x20, 0x3d, 0x20, 0x30, 0x20, 0x69, 0x73, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x74, 0x6f, 0x70, 0x20, 0x72, 0x6f, 0x77, 0x29, 0x0a, + 0x2f, 0x2f, 0x20, 0x20, 0x20, 0x73, 0x65, 0x74, 0x3d, 0x30, 0x20, 0x62, + 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x31, 0x20, 0x3a, 0x20, 0x73, + 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6d, 0x70, 0x6c, + 0x69, 0x63, 0x69, 0x74, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x2c, 0x20, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, + 0x61, 0x74, 0x74, 0x65, 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, + 0x65, 0x29, 0x0a, 0x2f, 0x2f, 0x20, 0x20, 0x20, 0x73, 0x65, 0x74, 0x3d, + 0x30, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x32, 0x20, + 0x3a, 0x20, 0x57, 0x61, 0x74, 0x65, 0x72, 0x66, 0x61, 0x6c, 0x6c, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x20, 0x55, 0x42, 0x4f, 0x0a, 0x2f, 0x2f, + 0x20, 0x20, 0x20, 0x73, 0x65, 0x74, 0x3d, 0x30, 0x20, 0x62, 0x69, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x33, 0x20, 0x3a, 0x20, 0x52, 0x6f, 0x77, + 0x44, 0x61, 0x74, 0x61, 0x20, 0x55, 0x42, 0x4f, 0x20, 0x28, 0x57, 0x20, + 0x2a, 0x20, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x20, 0x72, 0x61, + 0x77, 0x20, 0x6d, 0x61, 0x67, 0x6e, 0x69, 0x74, 0x75, 0x64, 0x65, 0x73, + 0x2c, 0x20, 0x6f, 0x6c, 0x64, 0x65, 0x73, 0x74, 0x20, 0x72, 0x6f, 0x77, + 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x29, 0x0a, 0x2f, 0x2f, 0x20, 0x20, + 0x20, 0x73, 0x65, 0x74, 0x3d, 0x30, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x3d, 0x34, 0x20, 0x3a, 0x20, 0x4c, 0x75, 0x74, 0x44, 0x61, + 0x74, 0x61, 0x20, 0x55, 0x42, 0x4f, 0x20, 0x28, 0x32, 0x35, 0x36, 0x20, + 0x41, 0x52, 0x47, 0x42, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x65, + 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x6c, 0x61, 0x79, + 0x6f, 0x75, 0x74, 0x28, 0x73, 0x65, 0x74, 0x20, 0x3d, 0x20, 0x30, 0x2c, + 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x3d, 0x20, 0x30, + 0x29, 0x20, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x74, 0x65, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x32, 0x44, 0x20, 0x75, 0x5f, 0x70, 0x72, + 0x65, 0x76, 0x3b, 0x0a, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x28, 0x73, + 0x65, 0x74, 0x20, 0x3d, 0x20, 0x30, 0x2c, 0x20, 0x62, 0x69, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x20, 0x3d, 0x20, 0x31, 0x29, 0x20, 0x75, 0x6e, 0x69, + 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, + 0x20, 0x20, 0x20, 0x75, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x3b, 0x0a, 0x6c, + 0x61, 0x79, 0x6f, 0x75, 0x74, 0x28, 0x73, 0x65, 0x74, 0x20, 0x3d, 0x20, + 0x30, 0x2c, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x3d, + 0x20, 0x32, 0x29, 0x20, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, + 0x57, 0x61, 0x74, 0x65, 0x72, 0x66, 0x61, 0x6c, 0x6c, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x20, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3b, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x77, + 0x61, 0x74, 0x65, 0x72, 0x66, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x65, 0x78, + 0x74, 0x75, 0x72, 0x65, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x65, 0x78, 0x65, 0x6c, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x20, 0x62, 0x69, 0x6e, 0x73, 0x3b, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x61, 0x67, 0x6e, 0x69, 0x74, 0x75, 0x64, 0x65, 0x20, 0x62, 0x69, 0x6e, + 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x6f, 0x77, 0x20, 0x28, 0x3c, + 0x3d, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x29, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x70, 0x61, 0x64, 0x30, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x70, + 0x61, 0x64, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x20, 0x70, 0x61, 0x64, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x70, 0x61, 0x64, 0x33, 0x3b, + 0x0a, 0x7d, 0x20, 0x70, 0x3b, 0x0a, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, + 0x28, 0x73, 0x65, 0x74, 0x20, 0x3d, 0x20, 0x30, 0x2c, 0x20, 0x62, 0x69, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x3d, 0x20, 0x33, 0x29, 0x20, 0x75, + 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x52, 0x6f, 0x77, 0x44, 0x61, + 0x74, 0x61, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, + 0x34, 0x20, 0x6d, 0x61, 0x67, 0x73, 0x5b, 0x35, 0x31, 0x32, 0x5d, 0x3b, + 0x20, 0x2f, 0x2f, 0x20, 0x32, 0x30, 0x34, 0x38, 0x20, 0x72, 0x61, 0x77, + 0x20, 0x6d, 0x61, 0x67, 0x6e, 0x69, 0x74, 0x75, 0x64, 0x65, 0x73, 0x20, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x76, 0x65, + 0x63, 0x34, 0x73, 0x20, 0x28, 0x73, 0x74, 0x64, 0x31, 0x34, 0x30, 0x20, + 0x74, 0x69, 0x67, 0x68, 0x74, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x57, + 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, + 0x6c, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x34, 0x29, 0x0a, 0x7d, 0x20, 0x72, + 0x6f, 0x77, 0x73, 0x3b, 0x0a, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x28, + 0x73, 0x65, 0x74, 0x20, 0x3d, 0x20, 0x30, 0x2c, 0x20, 0x62, 0x69, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x20, 0x3d, 0x20, 0x34, 0x29, 0x20, 0x75, 0x6e, + 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x4c, 0x75, 0x74, 0x44, 0x61, 0x74, + 0x61, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x75, 0x76, 0x65, 0x63, + 0x34, 0x20, 0x6c, 0x75, 0x74, 0x5b, 0x36, 0x34, 0x5d, 0x3b, 0x20, 0x2f, + 0x2f, 0x20, 0x32, 0x35, 0x36, 0x20, 0x41, 0x52, 0x47, 0x42, 0x20, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, + 0x20, 0x61, 0x73, 0x20, 0x75, 0x76, 0x65, 0x63, 0x34, 0x73, 0x0a, 0x7d, + 0x20, 0x6c, 0x75, 0x74, 0x3b, 0x0a, 0x0a, 0x6c, 0x61, 0x79, 0x6f, 0x75, + 0x74, 0x28, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, + 0x20, 0x30, 0x29, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x76, 0x65, 0x63, 0x34, + 0x20, 0x66, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x0a, + 0x0a, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x66, 0x65, 0x74, 0x63, 0x68, + 0x4d, 0x61, 0x67, 0x28, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x64, 0x78, 0x29, + 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x2e, 0x6d, 0x61, 0x67, 0x73, 0x5b, + 0x69, 0x64, 0x78, 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x5d, 0x5b, 0x69, 0x64, + 0x78, 0x20, 0x26, 0x20, 0x33, 0x5d, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x76, + 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x29, 0x0a, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x32, 0x20, 0x75, 0x76, + 0x20, 0x3d, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, + 0x6f, 0x72, 0x64, 0x2e, 0x78, 0x79, 0x20, 0x2f, 0x20, 0x76, 0x65, 0x63, + 0x32, 0x28, 0x70, 0x2e, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2c, 0x20, 0x70, + 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x75, 0x76, 0x2e, 0x79, 0x20, 0x3e, + 0x3d, 0x20, 0x70, 0x2e, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x20, + 0x2f, 0x20, 0x70, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x29, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x66, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, + 0x3d, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x28, 0x73, 0x61, + 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x32, 0x44, 0x28, 0x75, 0x5f, 0x70, 0x72, + 0x65, 0x76, 0x2c, 0x20, 0x75, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x29, 0x2c, + 0x20, 0x76, 0x65, 0x63, 0x32, 0x28, 0x75, 0x76, 0x2e, 0x78, 0x2c, 0x20, + 0x75, 0x76, 0x2e, 0x79, 0x20, 0x2d, 0x20, 0x70, 0x2e, 0x6e, 0x75, 0x6d, + 0x52, 0x6f, 0x77, 0x73, 0x20, 0x2f, 0x20, 0x70, 0x2e, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x20, 0x78, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x74, 0x28, + 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, + 0x2e, 0x78, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x20, 0x79, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x74, + 0x28, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, + 0x64, 0x2e, 0x79, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x52, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x20, 0x6f, + 0x6c, 0x64, 0x65, 0x73, 0x74, 0x2d, 0x66, 0x69, 0x72, 0x73, 0x74, 0x3b, + 0x20, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x20, 0x72, 0x6f, 0x77, 0x20, + 0x79, 0x20, 0x28, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x74, 0x6f, 0x70, 0x29, 0x20, 0x73, 0x68, 0x6f, 0x77, 0x73, 0x20, 0x74, + 0x68, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, + 0x2f, 0x20, 0x28, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x20, 0x2d, + 0x20, 0x31, 0x20, 0x2d, 0x20, 0x79, 0x29, 0x2d, 0x74, 0x68, 0x20, 0x70, + 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x6f, 0x77, 0x2e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, + 0x72, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x70, 0x2e, + 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x29, 0x20, 0x2d, 0x20, 0x31, + 0x20, 0x2d, 0x20, 0x79, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x70, + 0x6f, 0x6c, 0x61, 0x74, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, + 0x6e, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x6d, + 0x61, 0x67, 0x6e, 0x69, 0x74, 0x75, 0x64, 0x65, 0x20, 0x62, 0x69, 0x6e, + 0x73, 0x20, 0x73, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x20, 0x61, 0x78, 0x69, 0x73, 0x20, + 0x69, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, + 0x2f, 0x20, 0x73, 0x6d, 0x6f, 0x6f, 0x74, 0x68, 0x20, 0x28, 0x61, 0x6e, + 0x74, 0x69, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x64, 0x29, 0x20, 0x65, + 0x76, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x20, 0x69, + 0x73, 0x20, 0x77, 0x69, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x62, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x20, + 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x78, 0x29, 0x20, 0x2a, + 0x20, 0x28, 0x70, 0x2e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x2f, 0x20, 0x70, + 0x2e, 0x77, 0x69, 0x64, 0x74, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x62, 0x69, 0x6e, + 0x30, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x62, 0x69, 0x6e, 0x50, + 0x6f, 0x73, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x20, 0x62, 0x69, 0x6e, 0x31, 0x20, 0x3d, 0x20, + 0x6d, 0x69, 0x6e, 0x28, 0x62, 0x69, 0x6e, 0x30, 0x20, 0x2b, 0x20, 0x31, + 0x2c, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x70, 0x2e, 0x62, 0x69, 0x6e, 0x73, + 0x29, 0x20, 0x2d, 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x66, 0x72, + 0x61, 0x63, 0x42, 0x69, 0x6e, 0x20, 0x3d, 0x20, 0x62, 0x69, 0x6e, 0x50, + 0x6f, 0x73, 0x20, 0x2d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x62, + 0x69, 0x6e, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x67, 0x20, + 0x3d, 0x20, 0x6d, 0x69, 0x78, 0x28, 0x66, 0x65, 0x74, 0x63, 0x68, 0x4d, + 0x61, 0x67, 0x28, 0x72, 0x6f, 0x77, 0x20, 0x2a, 0x20, 0x69, 0x6e, 0x74, + 0x28, 0x70, 0x2e, 0x62, 0x69, 0x6e, 0x73, 0x29, 0x20, 0x2b, 0x20, 0x62, + 0x69, 0x6e, 0x30, 0x29, 0x2c, 0x20, 0x66, 0x65, 0x74, 0x63, 0x68, 0x4d, + 0x61, 0x67, 0x28, 0x72, 0x6f, 0x77, 0x20, 0x2a, 0x20, 0x69, 0x6e, 0x74, + 0x28, 0x70, 0x2e, 0x62, 0x69, 0x6e, 0x73, 0x29, 0x20, 0x2b, 0x20, 0x62, + 0x69, 0x6e, 0x31, 0x29, 0x2c, 0x20, 0x66, 0x72, 0x61, 0x63, 0x42, 0x69, + 0x6e, 0x29, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x20, 0x3d, 0x20, 0x63, + 0x6c, 0x61, 0x6d, 0x70, 0x28, 0x6d, 0x61, 0x67, 0x2c, 0x20, 0x30, 0x2e, + 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x20, 0x2a, 0x20, 0x32, 0x35, + 0x35, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x30, 0x20, 0x3d, 0x20, 0x69, 0x6e, + 0x74, 0x28, 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x31, 0x20, 0x3d, 0x20, 0x6d, + 0x69, 0x6e, 0x28, 0x69, 0x30, 0x20, 0x2b, 0x20, 0x31, 0x2c, 0x20, 0x32, + 0x35, 0x35, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x66, 0x72, 0x61, 0x63, 0x20, + 0x3d, 0x20, 0x74, 0x20, 0x2d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, + 0x69, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x75, 0x69, 0x6e, 0x74, 0x20, 0x63, 0x30, 0x20, 0x3d, 0x20, 0x6c, + 0x75, 0x74, 0x2e, 0x6c, 0x75, 0x74, 0x5b, 0x69, 0x30, 0x20, 0x3e, 0x3e, + 0x20, 0x32, 0x5d, 0x5b, 0x69, 0x30, 0x20, 0x26, 0x20, 0x33, 0x5d, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x75, 0x69, 0x6e, + 0x74, 0x20, 0x63, 0x31, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x74, 0x2e, 0x6c, + 0x75, 0x74, 0x5b, 0x69, 0x31, 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x5d, 0x5b, + 0x69, 0x31, 0x20, 0x26, 0x20, 0x33, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x63, 0x6f, + 0x6c, 0x30, 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, 0x34, 0x28, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, 0x30, 0x20, 0x3e, 0x3e, 0x20, 0x31, + 0x36, 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, 0x30, 0x20, 0x3e, 0x3e, + 0x20, 0x38, 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x63, 0x30, 0x20, 0x26, 0x20, + 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x28, 0x28, 0x63, 0x30, 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x34, 0x29, 0x20, + 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x29, 0x20, 0x2f, 0x20, 0x32, + 0x35, 0x35, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x63, 0x6f, 0x6c, 0x31, 0x20, + 0x3d, 0x20, 0x76, 0x65, 0x63, 0x34, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x28, 0x28, 0x63, 0x31, 0x20, 0x3e, 0x3e, 0x20, 0x31, 0x36, 0x29, 0x20, + 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x28, 0x28, 0x63, 0x31, 0x20, 0x3e, 0x3e, 0x20, 0x38, 0x29, + 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x28, 0x63, 0x31, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, + 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, + 0x31, 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x34, 0x29, 0x20, 0x26, 0x20, 0x32, + 0x35, 0x35, 0x75, 0x29, 0x29, 0x20, 0x2f, 0x20, 0x32, 0x35, 0x35, 0x2e, + 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x6d, + 0x69, 0x78, 0x28, 0x63, 0x6f, 0x6c, 0x30, 0x2c, 0x20, 0x63, 0x6f, 0x6c, + 0x31, 0x2c, 0x20, 0x66, 0x72, 0x61, 0x63, 0x29, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x7d, 0x0a, 0x7d, 0x0a, 0x52, 0x45, 0x46, 0x4c, 0x11, 0x06, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, + 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x52, 0x6f, + 0x77, 0x44, 0x61, 0x74, 0x61, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, + 0x00, 0x6d, 0x61, 0x67, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x57, 0x61, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x6c, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x6e, 0x75, 0x6d, 0x52, 0x6f, + 0x77, 0x73, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, + 0x00, 0x62, 0x69, 0x6e, 0x73, 0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, + 0x00, 0x70, 0x61, 0x64, 0x30, 0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, + 0x00, 0x70, 0x61, 0x64, 0x31, 0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, + 0x00, 0x70, 0x61, 0x64, 0x32, 0x18, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, + 0x00, 0x70, 0x61, 0x64, 0x33, 0x1c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0x07, 0x00, 0x00, 0x00, 0x4c, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x6c, 0x75, 0x74, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xb1, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, + 0x00, 0x66, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 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, 0x3f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x79, 0x75, 0x70, + 0x5f, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x5f, + 0x70, 0x72, 0x65, 0x76, 0x5f, 0x75, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 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, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x70, 0x72, 0x65, 0x76, + 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x73, 0x61, 0x6d, + 0x70, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 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, 0x46, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x5f, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x5f, 0x49, 0x44, + 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x58, + 0x55, 0x50, 0x5f, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, + 0x6f, 0x72, 0x64, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0c, + 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, + 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, 0x24, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x28, 0x31, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, + 0x00, 0x79, 0x75, 0x70, 0x5f, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, + 0x64, 0x5f, 0x75, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x75, 0x5f, 0x73, + 0x61, 0x6d, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x41, 0x52, 0x54, + 0xfe, 0x1d, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x6d, 0x61, 0x69, 0x6e, 0x78, 0x09, 0x00, 0x00, 0x63, 0x62, 0x75, 0x66, + 0x66, 0x65, 0x72, 0x20, 0x52, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x20, + 0x3a, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x28, 0x62, + 0x33, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x34, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x6d, 0x61, 0x67, + 0x73, 0x5b, 0x35, 0x31, 0x32, 0x5d, 0x20, 0x3a, 0x20, 0x70, 0x61, 0x63, + 0x6b, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x28, 0x63, 0x30, 0x29, 0x3b, + 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x63, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, + 0x20, 0x57, 0x61, 0x74, 0x65, 0x72, 0x66, 0x61, 0x6c, 0x6c, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x20, 0x3a, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x65, 0x72, 0x28, 0x62, 0x32, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x70, 0x5f, 0x6e, 0x75, + 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x20, 0x3a, 0x20, 0x70, 0x61, 0x63, 0x6b, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x28, 0x63, 0x30, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x70, 0x5f, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x20, 0x3a, 0x20, 0x70, 0x61, 0x63, 0x6b, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x28, 0x63, 0x30, 0x2e, 0x79, 0x29, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, + 0x70, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x20, 0x3a, 0x20, 0x70, + 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x28, 0x63, 0x30, + 0x2e, 0x7a, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x20, 0x70, 0x5f, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x3a, 0x20, + 0x70, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x28, 0x63, + 0x30, 0x2e, 0x77, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x20, 0x70, 0x5f, 0x70, 0x61, 0x64, 0x30, 0x20, 0x3a, + 0x20, 0x70, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x28, + 0x63, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x20, 0x70, 0x5f, 0x70, 0x61, 0x64, 0x31, 0x20, 0x3a, 0x20, + 0x70, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x28, 0x63, + 0x31, 0x2e, 0x79, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x20, 0x70, 0x5f, 0x70, 0x61, 0x64, 0x32, 0x20, 0x3a, + 0x20, 0x70, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x28, + 0x63, 0x31, 0x2e, 0x7a, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x70, 0x5f, 0x70, 0x61, 0x64, 0x33, 0x20, + 0x3a, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x28, 0x63, 0x31, 0x2e, 0x77, 0x29, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, + 0x63, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x20, 0x4c, 0x75, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x20, 0x3a, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x65, 0x72, 0x28, 0x62, 0x34, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x75, 0x69, 0x6e, 0x74, 0x34, 0x20, 0x6c, 0x75, 0x74, 0x5f, 0x6c, + 0x75, 0x74, 0x5b, 0x36, 0x34, 0x5d, 0x20, 0x3a, 0x20, 0x70, 0x61, 0x63, + 0x6b, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x28, 0x63, 0x30, 0x29, 0x3b, + 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, + 0x32, 0x44, 0x3c, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x3e, 0x20, 0x75, + 0x5f, 0x70, 0x72, 0x65, 0x76, 0x20, 0x3a, 0x20, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x28, 0x74, 0x30, 0x29, 0x3b, 0x0a, 0x53, 0x61, + 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x20, 0x75, + 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x20, 0x3a, 0x20, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x28, 0x73, 0x31, 0x29, 0x3b, 0x0a, 0x0a, 0x73, + 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, + 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, + 0x64, 0x3b, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x34, 0x20, 0x66, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, + 0x6f, 0x72, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, + 0x53, 0x50, 0x49, 0x52, 0x56, 0x5f, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x5f, + 0x49, 0x6e, 0x70, 0x75, 0x74, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, + 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x20, 0x3a, 0x20, 0x53, 0x56, + 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x0a, 0x7d, + 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x53, 0x50, + 0x49, 0x52, 0x56, 0x5f, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x5f, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x66, 0x72, 0x61, 0x67, 0x43, 0x6f, + 0x6c, 0x6f, 0x72, 0x20, 0x3a, 0x20, 0x53, 0x56, 0x5f, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x30, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x20, 0x66, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x67, + 0x28, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x64, 0x78, 0x29, 0x0a, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, + 0x6f, 0x77, 0x73, 0x5f, 0x6d, 0x61, 0x67, 0x73, 0x5b, 0x69, 0x64, 0x78, + 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x5d, 0x5b, 0x69, 0x64, 0x78, 0x20, 0x26, + 0x20, 0x33, 0x5d, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x76, 0x6f, 0x69, 0x64, + 0x20, 0x66, 0x72, 0x61, 0x67, 0x5f, 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x29, + 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x32, 0x20, 0x75, 0x76, 0x20, 0x3d, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, + 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x2e, 0x78, 0x79, 0x20, 0x2f, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x32, 0x28, 0x70, 0x5f, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x2c, 0x20, 0x70, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, + 0x75, 0x76, 0x2e, 0x79, 0x20, 0x3e, 0x3d, 0x20, 0x28, 0x70, 0x5f, 0x6e, + 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x20, 0x2f, 0x20, 0x70, 0x5f, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x72, + 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x75, 0x5f, + 0x70, 0x72, 0x65, 0x76, 0x2e, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x28, + 0x75, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x32, 0x28, 0x75, 0x76, 0x2e, 0x78, 0x2c, 0x20, 0x75, 0x76, 0x2e, + 0x79, 0x20, 0x2d, 0x20, 0x28, 0x70, 0x5f, 0x6e, 0x75, 0x6d, 0x52, 0x6f, + 0x77, 0x73, 0x20, 0x2f, 0x20, 0x70, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x29, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x20, 0x78, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x67, + 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x2e, + 0x78, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x20, 0x79, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x74, 0x28, + 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, + 0x2e, 0x79, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x20, 0x72, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x28, + 0x69, 0x6e, 0x74, 0x28, 0x70, 0x5f, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, + 0x73, 0x29, 0x20, 0x2d, 0x20, 0x31, 0x29, 0x20, 0x2d, 0x20, 0x79, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x20, 0x62, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x20, 0x3d, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x78, 0x29, 0x20, 0x2a, 0x20, 0x28, + 0x70, 0x5f, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x2f, 0x20, 0x70, 0x5f, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x62, 0x69, 0x6e, 0x30, 0x20, + 0x3d, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x62, 0x69, 0x6e, 0x50, 0x6f, 0x73, + 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x20, 0x62, 0x69, 0x6e, 0x31, 0x20, 0x3d, 0x20, 0x6d, 0x69, + 0x6e, 0x28, 0x28, 0x62, 0x69, 0x6e, 0x30, 0x20, 0x2b, 0x20, 0x31, 0x29, + 0x2c, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x28, 0x70, 0x5f, 0x62, 0x69, 0x6e, + 0x73, 0x29, 0x20, 0x2d, 0x20, 0x31, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, + 0x66, 0x72, 0x61, 0x63, 0x42, 0x69, 0x6e, 0x20, 0x3d, 0x20, 0x62, 0x69, + 0x6e, 0x50, 0x6f, 0x73, 0x20, 0x2d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x28, 0x62, 0x69, 0x6e, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x20, 0x3d, 0x20, 0x28, 0x72, 0x6f, 0x77, 0x20, 0x2a, 0x20, 0x69, + 0x6e, 0x74, 0x28, 0x70, 0x5f, 0x62, 0x69, 0x6e, 0x73, 0x29, 0x29, 0x20, + 0x2b, 0x20, 0x62, 0x69, 0x6e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x5f, 0x31, 0x20, 0x3d, 0x20, 0x28, 0x72, 0x6f, 0x77, 0x20, 0x2a, + 0x20, 0x69, 0x6e, 0x74, 0x28, 0x70, 0x5f, 0x62, 0x69, 0x6e, 0x73, 0x29, + 0x29, 0x20, 0x2b, 0x20, 0x62, 0x69, 0x6e, 0x31, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, + 0x6d, 0x61, 0x67, 0x20, 0x3d, 0x20, 0x6c, 0x65, 0x72, 0x70, 0x28, 0x66, + 0x65, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x67, 0x28, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x29, 0x2c, 0x20, 0x66, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x67, + 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5f, 0x31, 0x29, 0x2c, 0x20, 0x66, + 0x72, 0x61, 0x63, 0x42, 0x69, 0x6e, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, + 0x20, 0x3d, 0x20, 0x63, 0x6c, 0x61, 0x6d, 0x70, 0x28, 0x6d, 0x61, 0x67, + 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x66, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x66, + 0x29, 0x20, 0x2a, 0x20, 0x32, 0x35, 0x35, 0x2e, 0x30, 0x66, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, + 0x69, 0x30, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x74, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x20, 0x69, 0x31, 0x20, 0x3d, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x28, 0x69, + 0x30, 0x20, 0x2b, 0x20, 0x31, 0x29, 0x2c, 0x20, 0x32, 0x35, 0x35, 0x29, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x20, 0x66, 0x72, 0x61, 0x63, 0x20, 0x3d, 0x20, 0x74, + 0x20, 0x2d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x69, 0x30, 0x29, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x75, 0x69, + 0x6e, 0x74, 0x20, 0x63, 0x30, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x74, 0x5f, + 0x6c, 0x75, 0x74, 0x5b, 0x69, 0x30, 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x5d, + 0x5b, 0x69, 0x30, 0x20, 0x26, 0x20, 0x33, 0x5d, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x20, 0x63, + 0x31, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x74, 0x5f, 0x6c, 0x75, 0x74, 0x5b, + 0x69, 0x31, 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x5d, 0x5b, 0x69, 0x31, 0x20, + 0x26, 0x20, 0x33, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x63, 0x6f, 0x6c, + 0x30, 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, 0x30, 0x20, 0x3e, 0x3e, 0x20, + 0x75, 0x69, 0x6e, 0x74, 0x28, 0x31, 0x36, 0x29, 0x29, 0x20, 0x26, 0x20, + 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x28, 0x28, 0x63, 0x30, 0x20, 0x3e, 0x3e, 0x20, 0x75, 0x69, 0x6e, 0x74, + 0x28, 0x38, 0x29, 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, + 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x63, 0x30, 0x20, 0x26, + 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x28, 0x28, 0x63, 0x30, 0x20, 0x3e, 0x3e, 0x20, 0x75, 0x69, 0x6e, + 0x74, 0x28, 0x32, 0x34, 0x29, 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, + 0x75, 0x29, 0x29, 0x20, 0x2f, 0x20, 0x32, 0x35, 0x35, 0x2e, 0x30, 0x66, + 0x2e, 0x78, 0x78, 0x78, 0x78, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x63, 0x6f, + 0x6c, 0x31, 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, 0x31, 0x20, 0x3e, 0x3e, + 0x20, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x31, 0x36, 0x29, 0x29, 0x20, 0x26, + 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x28, 0x28, 0x63, 0x31, 0x20, 0x3e, 0x3e, 0x20, 0x75, 0x69, 0x6e, + 0x74, 0x28, 0x38, 0x29, 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, + 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x63, 0x31, 0x20, + 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x28, 0x28, 0x63, 0x31, 0x20, 0x3e, 0x3e, 0x20, 0x75, 0x69, + 0x6e, 0x74, 0x28, 0x32, 0x34, 0x29, 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, + 0x35, 0x75, 0x29, 0x29, 0x20, 0x2f, 0x20, 0x32, 0x35, 0x35, 0x2e, 0x30, + 0x66, 0x2e, 0x78, 0x78, 0x78, 0x78, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x66, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, + 0x72, 0x20, 0x3d, 0x20, 0x6c, 0x65, 0x72, 0x70, 0x28, 0x63, 0x6f, 0x6c, + 0x30, 0x2c, 0x20, 0x63, 0x6f, 0x6c, 0x31, 0x2c, 0x20, 0x66, 0x72, 0x61, + 0x63, 0x2e, 0x78, 0x78, 0x78, 0x78, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x50, 0x49, 0x52, 0x56, 0x5f, + 0x43, 0x72, 0x6f, 0x73, 0x73, 0x5f, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x53, 0x50, 0x49, 0x52, 0x56, 0x5f, + 0x43, 0x72, 0x6f, 0x73, 0x73, 0x5f, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, + 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x29, + 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, + 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x20, 0x3d, 0x20, 0x73, 0x74, + 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x67, 0x6c, + 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, + 0x6f, 0x6f, 0x72, 0x64, 0x2e, 0x77, 0x20, 0x3d, 0x20, 0x31, 0x2e, 0x30, + 0x20, 0x2f, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, + 0x6f, 0x72, 0x64, 0x2e, 0x77, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x72, 0x61, 0x67, 0x5f, 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x50, 0x49, 0x52, 0x56, 0x5f, 0x43, 0x72, + 0x6f, 0x73, 0x73, 0x5f, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x73, + 0x74, 0x61, 0x67, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e, 0x66, 0x72, 0x61, 0x67, 0x43, 0x6f, + 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x66, 0x72, 0x61, 0x67, 0x43, 0x6f, + 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x49, 0x53, 0x52, 0x43, + 0xe4, 0x0e, 0x00, 0x00, 0x2f, 0x2a, 0x0a, 0x20, 0x20, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x54, 0x68, 0x69, 0x73, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x61, 0x72, + 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x59, 0x55, 0x50, + 0x20, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x0a, 0x20, 0x20, + 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, + 0x63, 0x29, 0x20, 0x32, 0x30, 0x32, 0x36, 0x20, 0x2d, 0x20, 0x6b, 0x75, + 0x6e, 0x69, 0x74, 0x6f, 0x6b, 0x69, 0x40, 0x67, 0x6d, 0x61, 0x69, 0x6c, + 0x2e, 0x63, 0x6f, 0x6d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x59, 0x55, 0x50, + 0x20, 0x69, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x6c, 0x69, 0x62, 0x72, 0x61, + 0x72, 0x79, 0x20, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x74, + 0x6f, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x2d, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x20, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x69, 0x6e, 0x67, 0x2e, + 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x64, + 0x65, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, + 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, + 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, + 0x72, 0x6d, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, + 0x53, 0x43, 0x20, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, + 0x2e, 0x69, 0x73, 0x63, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x64, 0x6f, 0x77, + 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x6f, 0x66, 0x74, 0x77, + 0x61, 0x72, 0x65, 0x2d, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x2d, + 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2f, 0x69, 0x73, 0x63, 0x2d, 0x6c, + 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2e, 0x20, 0x50, 0x65, 0x72, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x74, 0x6f, + 0x20, 0x75, 0x73, 0x65, 0x2c, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x2c, 0x20, + 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2f, + 0x6f, 0x72, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, + 0x61, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x79, 0x20, + 0x70, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, + 0x75, 0x74, 0x20, 0x66, 0x65, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x65, + 0x72, 0x65, 0x62, 0x79, 0x20, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, + 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x62, 0x6f, 0x76, 0x65, + 0x20, 0x63, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x6e, + 0x6f, 0x74, 0x69, 0x63, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x20, + 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x20, + 0x20, 0x20, 0x59, 0x55, 0x50, 0x20, 0x49, 0x53, 0x20, 0x50, 0x52, 0x4f, + 0x56, 0x49, 0x44, 0x45, 0x44, 0x20, 0x22, 0x41, 0x53, 0x20, 0x49, 0x53, + 0x22, 0x20, 0x57, 0x49, 0x54, 0x48, 0x4f, 0x55, 0x54, 0x20, 0x41, 0x4e, + 0x59, 0x20, 0x57, 0x41, 0x52, 0x52, 0x41, 0x4e, 0x54, 0x59, 0x2c, 0x20, + 0x41, 0x4e, 0x44, 0x20, 0x41, 0x4c, 0x4c, 0x20, 0x57, 0x41, 0x52, 0x52, + 0x41, 0x4e, 0x54, 0x49, 0x45, 0x53, 0x2c, 0x20, 0x57, 0x48, 0x45, 0x54, + 0x48, 0x45, 0x52, 0x0a, 0x20, 0x20, 0x20, 0x45, 0x58, 0x50, 0x52, 0x45, + 0x53, 0x53, 0x45, 0x44, 0x20, 0x4f, 0x52, 0x20, 0x49, 0x4d, 0x50, 0x4c, + 0x49, 0x45, 0x44, 0x2c, 0x20, 0x49, 0x4e, 0x43, 0x4c, 0x55, 0x44, 0x49, + 0x4e, 0x47, 0x20, 0x4d, 0x45, 0x52, 0x43, 0x48, 0x41, 0x4e, 0x54, 0x41, + 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x20, 0x41, 0x4e, 0x44, 0x20, 0x46, + 0x49, 0x54, 0x4e, 0x45, 0x53, 0x53, 0x20, 0x46, 0x4f, 0x52, 0x20, 0x50, + 0x55, 0x52, 0x50, 0x4f, 0x53, 0x45, 0x2c, 0x20, 0x41, 0x52, 0x45, 0x0a, + 0x20, 0x20, 0x20, 0x44, 0x49, 0x53, 0x43, 0x4c, 0x41, 0x49, 0x4d, 0x45, + 0x44, 0x2e, 0x0a, 0x0a, 0x20, 0x20, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x0a, 0x2a, 0x2f, 0x0a, 0x0a, 0x23, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x34, 0x35, 0x30, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x46, 0x75, + 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x20, 0x77, 0x61, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x68, 0x61, 0x64, 0x65, + 0x72, 0x2e, 0x20, 0x41, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, + 0x66, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x20, 0x74, + 0x72, 0x69, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x73, 0x63, 0x72, 0x6f, + 0x6c, 0x6c, 0x73, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x2f, 0x2f, 0x20, 0x70, + 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x68, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x20, + 0x64, 0x6f, 0x77, 0x6e, 0x20, 0x62, 0x79, 0x20, 0x6e, 0x75, 0x6d, 0x52, + 0x6f, 0x77, 0x73, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x20, 0x6e, 0x65, 0x77, 0x20, + 0x72, 0x6f, 0x77, 0x73, 0x0a, 0x2f, 0x2f, 0x20, 0x61, 0x74, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x74, 0x6f, 0x70, 0x2c, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x62, 0x69, 0x6e, + 0x27, 0x73, 0x20, 0x72, 0x61, 0x77, 0x20, 0x6d, 0x61, 0x67, 0x6e, 0x69, + 0x74, 0x75, 0x64, 0x65, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x6c, + 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x0a, + 0x2f, 0x2f, 0x20, 0x28, 0x61, 0x20, 0x6c, 0x65, 0x72, 0x70, 0x20, 0x62, + 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, + 0x65, 0x6e, 0x74, 0x20, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2c, + 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x53, 0x70, + 0x65, 0x63, 0x74, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x43, 0x6f, 0x6c, + 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x3a, 0x3a, 0x6d, 0x61, 0x70, 0x29, 0x20, + 0x65, 0x6e, 0x74, 0x69, 0x72, 0x65, 0x6c, 0x79, 0x0a, 0x2f, 0x2f, 0x20, + 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x47, 0x50, 0x55, 0x2e, 0x0a, + 0x2f, 0x2f, 0x0a, 0x2f, 0x2f, 0x20, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x73, 0x3a, 0x0a, 0x2f, 0x2f, 0x20, 0x20, 0x20, 0x73, 0x65, 0x74, + 0x3d, 0x30, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x30, + 0x20, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x20, + 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x65, 0x78, 0x74, + 0x75, 0x72, 0x65, 0x20, 0x28, 0x55, 0x56, 0x2e, 0x79, 0x20, 0x3d, 0x20, + 0x30, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x6f, 0x70, + 0x20, 0x72, 0x6f, 0x77, 0x29, 0x0a, 0x2f, 0x2f, 0x20, 0x20, 0x20, 0x73, + 0x65, 0x74, 0x3d, 0x30, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x3d, 0x31, 0x20, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, + 0x20, 0x28, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x20, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x2c, 0x20, 0x6c, 0x69, 0x6b, 0x65, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x20, 0x70, + 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x29, 0x0a, 0x2f, 0x2f, 0x20, + 0x20, 0x20, 0x73, 0x65, 0x74, 0x3d, 0x30, 0x20, 0x62, 0x69, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x3d, 0x32, 0x20, 0x3a, 0x20, 0x57, 0x61, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x6c, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x20, + 0x55, 0x42, 0x4f, 0x0a, 0x2f, 0x2f, 0x20, 0x20, 0x20, 0x73, 0x65, 0x74, + 0x3d, 0x30, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x33, + 0x20, 0x3a, 0x20, 0x52, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x20, 0x55, + 0x42, 0x4f, 0x20, 0x28, 0x57, 0x20, 0x2a, 0x20, 0x6e, 0x75, 0x6d, 0x52, + 0x6f, 0x77, 0x73, 0x20, 0x72, 0x61, 0x77, 0x20, 0x6d, 0x61, 0x67, 0x6e, + 0x69, 0x74, 0x75, 0x64, 0x65, 0x73, 0x2c, 0x20, 0x6f, 0x6c, 0x64, 0x65, + 0x73, 0x74, 0x20, 0x72, 0x6f, 0x77, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, + 0x29, 0x0a, 0x2f, 0x2f, 0x20, 0x20, 0x20, 0x73, 0x65, 0x74, 0x3d, 0x30, + 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x34, 0x20, 0x3a, + 0x20, 0x4c, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x20, 0x55, 0x42, 0x4f, + 0x20, 0x28, 0x32, 0x35, 0x36, 0x20, 0x41, 0x52, 0x47, 0x42, 0x20, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, + 0x29, 0x0a, 0x0a, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x28, 0x73, 0x65, + 0x74, 0x20, 0x3d, 0x20, 0x30, 0x2c, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x20, 0x3d, 0x20, 0x30, 0x29, 0x20, 0x75, 0x6e, 0x69, 0x66, + 0x6f, 0x72, 0x6d, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x32, + 0x44, 0x20, 0x75, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x3b, 0x0a, 0x6c, 0x61, + 0x79, 0x6f, 0x75, 0x74, 0x28, 0x73, 0x65, 0x74, 0x20, 0x3d, 0x20, 0x30, + 0x2c, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x3d, 0x20, + 0x31, 0x29, 0x20, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x73, + 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x20, 0x20, 0x20, 0x75, 0x5f, 0x73, + 0x61, 0x6d, 0x70, 0x3b, 0x0a, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x28, + 0x73, 0x65, 0x74, 0x20, 0x3d, 0x20, 0x30, 0x2c, 0x20, 0x62, 0x69, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x20, 0x3d, 0x20, 0x32, 0x29, 0x20, 0x75, 0x6e, + 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x57, 0x61, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x6c, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x0a, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x6e, 0x75, + 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x20, + 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x77, 0x61, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x6c, 0x6c, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x20, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x65, 0x78, 0x65, + 0x6c, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x3b, + 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x67, 0x6e, 0x69, 0x74, 0x75, + 0x64, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x72, 0x6f, 0x77, 0x20, 0x28, 0x3c, 0x3d, 0x20, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x20, 0x70, 0x61, 0x64, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x70, 0x61, 0x64, 0x31, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x70, 0x61, 0x64, + 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x20, 0x70, 0x61, 0x64, 0x33, 0x3b, 0x0a, 0x7d, 0x20, 0x70, 0x3b, 0x0a, + 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x28, 0x73, 0x65, 0x74, 0x20, 0x3d, + 0x20, 0x30, 0x2c, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, + 0x3d, 0x20, 0x33, 0x29, 0x20, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, + 0x20, 0x52, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x0a, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x6d, 0x61, 0x67, 0x73, + 0x5b, 0x35, 0x31, 0x32, 0x5d, 0x3b, 0x20, 0x2f, 0x2f, 0x20, 0x32, 0x30, + 0x34, 0x38, 0x20, 0x72, 0x61, 0x77, 0x20, 0x6d, 0x61, 0x67, 0x6e, 0x69, + 0x74, 0x75, 0x64, 0x65, 0x73, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, + 0x20, 0x61, 0x73, 0x20, 0x76, 0x65, 0x63, 0x34, 0x73, 0x20, 0x28, 0x73, + 0x74, 0x64, 0x31, 0x34, 0x30, 0x20, 0x74, 0x69, 0x67, 0x68, 0x74, 0x20, + 0x77, 0x68, 0x65, 0x6e, 0x20, 0x57, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x34, 0x29, 0x0a, 0x7d, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x3b, 0x0a, 0x6c, + 0x61, 0x79, 0x6f, 0x75, 0x74, 0x28, 0x73, 0x65, 0x74, 0x20, 0x3d, 0x20, + 0x30, 0x2c, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x3d, + 0x20, 0x34, 0x29, 0x20, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, + 0x4c, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x0a, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x75, 0x76, 0x65, 0x63, 0x34, 0x20, 0x6c, 0x75, 0x74, 0x5b, + 0x36, 0x34, 0x5d, 0x3b, 0x20, 0x2f, 0x2f, 0x20, 0x32, 0x35, 0x36, 0x20, + 0x41, 0x52, 0x47, 0x42, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x20, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x75, 0x76, + 0x65, 0x63, 0x34, 0x73, 0x0a, 0x7d, 0x20, 0x6c, 0x75, 0x74, 0x3b, 0x0a, + 0x0a, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x28, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x30, 0x29, 0x20, 0x6f, 0x75, + 0x74, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x66, 0x72, 0x61, 0x67, 0x43, + 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x20, 0x66, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x67, 0x28, 0x69, 0x6e, + 0x74, 0x20, 0x69, 0x64, 0x78, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x6f, 0x77, 0x73, + 0x2e, 0x6d, 0x61, 0x67, 0x73, 0x5b, 0x69, 0x64, 0x78, 0x20, 0x3e, 0x3e, + 0x20, 0x32, 0x5d, 0x5b, 0x69, 0x64, 0x78, 0x20, 0x26, 0x20, 0x33, 0x5d, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, + 0x69, 0x6e, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, + 0x65, 0x63, 0x32, 0x20, 0x75, 0x76, 0x20, 0x3d, 0x20, 0x67, 0x6c, 0x5f, + 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x2e, 0x78, 0x79, + 0x20, 0x2f, 0x20, 0x76, 0x65, 0x63, 0x32, 0x28, 0x70, 0x2e, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x2c, 0x20, 0x70, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, + 0x75, 0x76, 0x2e, 0x79, 0x20, 0x3e, 0x3d, 0x20, 0x70, 0x2e, 0x6e, 0x75, + 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x20, 0x2f, 0x20, 0x70, 0x2e, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x72, 0x61, 0x67, + 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x74, + 0x75, 0x72, 0x65, 0x28, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x32, + 0x44, 0x28, 0x75, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x2c, 0x20, 0x75, 0x5f, + 0x73, 0x61, 0x6d, 0x70, 0x29, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x32, 0x28, + 0x75, 0x76, 0x2e, 0x78, 0x2c, 0x20, 0x75, 0x76, 0x2e, 0x79, 0x20, 0x2d, + 0x20, 0x70, 0x2e, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x20, 0x2f, + 0x20, 0x70, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x29, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, + 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x78, 0x20, + 0x3d, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, + 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x2e, 0x78, 0x29, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x79, + 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x67, 0x6c, 0x5f, 0x46, 0x72, + 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x2e, 0x79, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x52, + 0x6f, 0x77, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x65, 0x64, 0x20, 0x6f, 0x6c, 0x64, 0x65, 0x73, 0x74, 0x2d, + 0x66, 0x69, 0x72, 0x73, 0x74, 0x3b, 0x20, 0x63, 0x61, 0x6e, 0x76, 0x61, + 0x73, 0x20, 0x72, 0x6f, 0x77, 0x20, 0x79, 0x20, 0x28, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x6f, 0x70, 0x29, 0x20, 0x73, + 0x68, 0x6f, 0x77, 0x73, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x28, 0x6e, 0x75, 0x6d, + 0x52, 0x6f, 0x77, 0x73, 0x20, 0x2d, 0x20, 0x31, 0x20, 0x2d, 0x20, 0x79, + 0x29, 0x2d, 0x74, 0x68, 0x20, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x20, 0x72, 0x6f, 0x77, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x72, 0x6f, 0x77, 0x20, 0x3d, 0x20, + 0x69, 0x6e, 0x74, 0x28, 0x70, 0x2e, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, + 0x73, 0x29, 0x20, 0x2d, 0x20, 0x31, 0x20, 0x2d, 0x20, 0x79, 0x3b, 0x0a, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x65, 0x20, + 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x61, 0x64, 0x6a, 0x61, + 0x63, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x67, 0x6e, 0x69, 0x74, 0x75, + 0x64, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x73, 0x6f, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, + 0x20, 0x61, 0x78, 0x69, 0x73, 0x20, 0x69, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x73, 0x6d, 0x6f, 0x6f, + 0x74, 0x68, 0x20, 0x28, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x61, + 0x73, 0x65, 0x64, 0x29, 0x20, 0x65, 0x76, 0x65, 0x6e, 0x20, 0x74, 0x68, + 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x78, + 0x74, 0x75, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x77, 0x69, 0x64, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, + 0x69, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, + 0x2f, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x62, + 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x28, 0x78, 0x29, 0x20, 0x2a, 0x20, 0x28, 0x70, 0x2e, 0x62, 0x69, + 0x6e, 0x73, 0x20, 0x2f, 0x20, 0x70, 0x2e, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x20, 0x62, 0x69, 0x6e, 0x30, 0x20, 0x3d, 0x20, 0x69, 0x6e, + 0x74, 0x28, 0x62, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x29, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x62, + 0x69, 0x6e, 0x31, 0x20, 0x3d, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x62, 0x69, + 0x6e, 0x30, 0x20, 0x2b, 0x20, 0x31, 0x2c, 0x20, 0x69, 0x6e, 0x74, 0x28, + 0x70, 0x2e, 0x62, 0x69, 0x6e, 0x73, 0x29, 0x20, 0x2d, 0x20, 0x31, 0x29, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x20, 0x66, 0x72, 0x61, 0x63, 0x42, 0x69, 0x6e, 0x20, + 0x3d, 0x20, 0x62, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x20, 0x2d, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x62, 0x69, 0x6e, 0x30, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x20, 0x6d, 0x61, 0x67, 0x20, 0x3d, 0x20, 0x6d, 0x69, 0x78, 0x28, + 0x66, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x67, 0x28, 0x72, 0x6f, 0x77, + 0x20, 0x2a, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x70, 0x2e, 0x62, 0x69, 0x6e, + 0x73, 0x29, 0x20, 0x2b, 0x20, 0x62, 0x69, 0x6e, 0x30, 0x29, 0x2c, 0x20, + 0x66, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x67, 0x28, 0x72, 0x6f, 0x77, + 0x20, 0x2a, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x70, 0x2e, 0x62, 0x69, 0x6e, + 0x73, 0x29, 0x20, 0x2b, 0x20, 0x62, 0x69, 0x6e, 0x31, 0x29, 0x2c, 0x20, + 0x66, 0x72, 0x61, 0x63, 0x42, 0x69, 0x6e, 0x29, 0x3b, 0x0a, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x20, 0x74, 0x20, 0x3d, 0x20, 0x63, 0x6c, 0x61, 0x6d, 0x70, 0x28, 0x6d, + 0x61, 0x67, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, + 0x29, 0x20, 0x2a, 0x20, 0x32, 0x35, 0x35, 0x2e, 0x30, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x69, + 0x30, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x74, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, + 0x69, 0x31, 0x20, 0x3d, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x69, 0x30, 0x20, + 0x2b, 0x20, 0x31, 0x2c, 0x20, 0x32, 0x35, 0x35, 0x29, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x20, 0x66, 0x72, 0x61, 0x63, 0x20, 0x3d, 0x20, 0x74, 0x20, 0x2d, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x69, 0x30, 0x29, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x20, + 0x63, 0x30, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x74, 0x2e, 0x6c, 0x75, 0x74, + 0x5b, 0x69, 0x30, 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x5d, 0x5b, 0x69, 0x30, + 0x20, 0x26, 0x20, 0x33, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x20, 0x63, 0x31, 0x20, 0x3d, + 0x20, 0x6c, 0x75, 0x74, 0x2e, 0x6c, 0x75, 0x74, 0x5b, 0x69, 0x31, 0x20, + 0x3e, 0x3e, 0x20, 0x32, 0x5d, 0x5b, 0x69, 0x31, 0x20, 0x26, 0x20, 0x33, + 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, + 0x65, 0x63, 0x34, 0x20, 0x63, 0x6f, 0x6c, 0x30, 0x20, 0x3d, 0x20, 0x76, + 0x65, 0x63, 0x34, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, + 0x30, 0x20, 0x3e, 0x3e, 0x20, 0x31, 0x36, 0x29, 0x20, 0x26, 0x20, 0x32, + 0x35, 0x35, 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, + 0x28, 0x63, 0x30, 0x20, 0x3e, 0x3e, 0x20, 0x38, 0x29, 0x20, 0x26, 0x20, + 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x28, 0x63, 0x30, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, 0x30, 0x20, 0x3e, + 0x3e, 0x20, 0x32, 0x34, 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, + 0x29, 0x29, 0x20, 0x2f, 0x20, 0x32, 0x35, 0x35, 0x2e, 0x30, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, + 0x20, 0x63, 0x6f, 0x6c, 0x31, 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, 0x34, + 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, 0x31, 0x20, 0x3e, + 0x3e, 0x20, 0x31, 0x36, 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, + 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, 0x31, + 0x20, 0x3e, 0x3e, 0x20, 0x38, 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, + 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x63, 0x31, + 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, 0x31, 0x20, 0x3e, 0x3e, 0x20, 0x32, + 0x34, 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x29, 0x20, + 0x2f, 0x20, 0x32, 0x35, 0x35, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, + 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x6d, 0x69, 0x78, 0x28, 0x63, 0x6f, 0x6c, + 0x30, 0x2c, 0x20, 0x63, 0x6f, 0x6c, 0x31, 0x2c, 0x20, 0x66, 0x72, 0x61, + 0x63, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x7d, 0x0a, + 0x52, 0x45, 0x46, 0x4c, 0x82, 0x05, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x52, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x67, 0x73, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x13, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x57, 0x61, 0x74, 0x65, 0x72, 0x66, 0x61, 0x6c, 0x6c, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x77, 0x69, 0x64, 0x74, 0x68, 0x04, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x06, 0x00, 0x00, 0x00, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x08, + 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x62, 0x69, 0x6e, 0x73, 0x0c, + 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x30, 0x10, + 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x31, 0x14, + 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x32, 0x18, + 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x33, 0x1c, + 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x4c, 0x75, + 0x74, 0x44, 0x61, 0x74, 0x61, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, + 0x00, 0x6c, 0x75, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x66, 0x72, 0x61, 0x67, 0x43, + 0x6f, 0x6c, 0x6f, 0x72, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x20, 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, 0x3f, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 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, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x75, + 0x5f, 0x70, 0x72, 0x65, 0x76, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x75, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 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, 0x46, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, + 0x00, 0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x27, 0x00, 0x00, 0x00, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, + 0x45, 0x44, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, + 0x52, 0x5f, 0x46, 0x49, 0x58, 0x55, 0x50, 0x5f, 0x67, 0x6c, 0x5f, 0x46, + 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x20, 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, 0x24, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x43, 0x61, 0x70, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x28, 0x31, 0x29, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x56, 0x41, 0x52, 0x54, 0x21, 0x1d, 0x00, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x9b, 0x08, + 0x00, 0x00, 0x23, 0x70, 0x72, 0x61, 0x67, 0x6d, 0x61, 0x20, 0x63, 0x6c, + 0x61, 0x6e, 0x67, 0x20, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, + 0x69, 0x63, 0x20, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x20, 0x22, + 0x2d, 0x57, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x2d, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x22, 0x0a, 0x0a, 0x23, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x6d, 0x65, 0x74, + 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x64, 0x6c, 0x69, 0x62, 0x3e, 0x0a, 0x23, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x73, 0x69, 0x6d, + 0x64, 0x2f, 0x73, 0x69, 0x6d, 0x64, 0x2e, 0x68, 0x3e, 0x0a, 0x0a, 0x75, + 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x0a, 0x73, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x52, 0x6f, 0x77, 0x44, 0x61, 0x74, + 0x61, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x34, 0x20, 0x6d, 0x61, 0x67, 0x73, 0x5b, 0x35, 0x31, 0x32, 0x5d, + 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x20, 0x57, 0x61, 0x74, 0x65, 0x72, 0x66, 0x61, 0x6c, 0x6c, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x62, + 0x69, 0x6e, 0x73, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x20, 0x70, 0x61, 0x64, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x70, 0x61, 0x64, 0x31, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x70, + 0x61, 0x64, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x20, 0x70, 0x61, 0x64, 0x33, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, + 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x4c, 0x75, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x75, 0x69, + 0x6e, 0x74, 0x34, 0x20, 0x6c, 0x75, 0x74, 0x5b, 0x36, 0x34, 0x5d, 0x3b, + 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, + 0x6d, 0x61, 0x69, 0x6e, 0x30, 0x5f, 0x6f, 0x75, 0x74, 0x0a, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x66, + 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x5b, 0x5b, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x7d, + 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x69, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x5f, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x5f, 0x5f, 0x28, 0x28, 0x61, 0x6c, 0x77, 0x61, + 0x79, 0x73, 0x5f, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x29, 0x29, 0x0a, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x66, 0x65, 0x74, 0x63, 0x68, 0x4d, + 0x61, 0x67, 0x28, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x26, 0x20, 0x69, 0x64, 0x78, + 0x2c, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x52, + 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x26, 0x20, 0x72, 0x6f, 0x77, 0x73, + 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x2e, 0x6d, 0x61, 0x67, 0x73, + 0x5b, 0x69, 0x64, 0x78, 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x5d, 0x5b, 0x69, + 0x64, 0x78, 0x20, 0x26, 0x20, 0x33, 0x5d, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x69, + 0x6e, 0x30, 0x5f, 0x6f, 0x75, 0x74, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x30, + 0x28, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x57, 0x61, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x6c, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x26, 0x20, 0x70, 0x20, 0x5b, 0x5b, 0x62, 0x75, 0x66, 0x66, 0x65, + 0x72, 0x28, 0x32, 0x29, 0x5d, 0x5d, 0x2c, 0x20, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x74, 0x20, 0x52, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, + 0x26, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x20, 0x5b, 0x5b, 0x62, 0x75, 0x66, + 0x66, 0x65, 0x72, 0x28, 0x33, 0x29, 0x5d, 0x5d, 0x2c, 0x20, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x4c, 0x75, 0x74, 0x44, 0x61, + 0x74, 0x61, 0x26, 0x20, 0x6c, 0x75, 0x74, 0x20, 0x5b, 0x5b, 0x62, 0x75, + 0x66, 0x66, 0x65, 0x72, 0x28, 0x34, 0x29, 0x5d, 0x5d, 0x2c, 0x20, 0x74, + 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x32, 0x64, 0x3c, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x3e, 0x20, 0x75, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x20, 0x5b, + 0x5b, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x28, 0x30, 0x29, 0x5d, + 0x5d, 0x2c, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x20, 0x75, + 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x20, 0x5b, 0x5b, 0x73, 0x61, 0x6d, 0x70, + 0x6c, 0x65, 0x72, 0x28, 0x31, 0x29, 0x5d, 0x5d, 0x2c, 0x20, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x34, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, + 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x20, 0x5b, 0x5b, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x5d, 0x5d, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x30, 0x5f, 0x6f, 0x75, 0x74, 0x20, + 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x32, 0x20, 0x75, 0x76, 0x20, + 0x3d, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, + 0x72, 0x64, 0x2e, 0x78, 0x79, 0x20, 0x2f, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x32, 0x28, 0x70, 0x2e, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2c, 0x20, + 0x70, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x29, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x75, 0x76, 0x2e, 0x79, 0x20, + 0x3e, 0x3d, 0x20, 0x28, 0x70, 0x2e, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, + 0x73, 0x20, 0x2f, 0x20, 0x70, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x66, 0x72, 0x61, + 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x75, 0x5f, 0x70, + 0x72, 0x65, 0x76, 0x2e, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x28, 0x75, + 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x32, 0x28, 0x75, 0x76, 0x2e, 0x78, 0x2c, 0x20, 0x75, 0x76, 0x2e, 0x79, + 0x20, 0x2d, 0x20, 0x28, 0x70, 0x2e, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, + 0x73, 0x20, 0x2f, 0x20, 0x70, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x29, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x20, 0x78, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x67, 0x6c, + 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x2e, 0x78, + 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x20, 0x79, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x67, + 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x2e, + 0x79, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x20, 0x72, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x28, 0x69, + 0x6e, 0x74, 0x28, 0x70, 0x2e, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, + 0x29, 0x20, 0x2d, 0x20, 0x31, 0x29, 0x20, 0x2d, 0x20, 0x79, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x20, 0x62, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x20, 0x3d, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x78, 0x29, 0x20, 0x2a, 0x20, 0x28, 0x70, + 0x2e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x2f, 0x20, 0x70, 0x2e, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x62, 0x69, 0x6e, 0x30, 0x20, 0x3d, + 0x20, 0x69, 0x6e, 0x74, 0x28, 0x62, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x29, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x20, 0x62, 0x69, 0x6e, 0x31, 0x20, 0x3d, 0x20, 0x6d, 0x69, 0x6e, + 0x28, 0x28, 0x62, 0x69, 0x6e, 0x30, 0x20, 0x2b, 0x20, 0x31, 0x29, 0x2c, + 0x20, 0x28, 0x69, 0x6e, 0x74, 0x28, 0x70, 0x2e, 0x62, 0x69, 0x6e, 0x73, + 0x29, 0x20, 0x2d, 0x20, 0x31, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x66, + 0x72, 0x61, 0x63, 0x42, 0x69, 0x6e, 0x20, 0x3d, 0x20, 0x62, 0x69, 0x6e, + 0x50, 0x6f, 0x73, 0x20, 0x2d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, + 0x62, 0x69, 0x6e, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x20, 0x3d, 0x20, 0x28, 0x72, 0x6f, 0x77, 0x20, 0x2a, 0x20, 0x69, 0x6e, + 0x74, 0x28, 0x70, 0x2e, 0x62, 0x69, 0x6e, 0x73, 0x29, 0x29, 0x20, 0x2b, + 0x20, 0x62, 0x69, 0x6e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x5f, 0x31, 0x20, 0x3d, 0x20, 0x28, 0x72, 0x6f, 0x77, 0x20, 0x2a, 0x20, + 0x69, 0x6e, 0x74, 0x28, 0x70, 0x2e, 0x62, 0x69, 0x6e, 0x73, 0x29, 0x29, + 0x20, 0x2b, 0x20, 0x62, 0x69, 0x6e, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x6d, + 0x61, 0x67, 0x20, 0x3d, 0x20, 0x6d, 0x69, 0x78, 0x28, 0x66, 0x65, 0x74, + 0x63, 0x68, 0x4d, 0x61, 0x67, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2c, + 0x20, 0x72, 0x6f, 0x77, 0x73, 0x29, 0x2c, 0x20, 0x66, 0x65, 0x74, 0x63, + 0x68, 0x4d, 0x61, 0x67, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5f, 0x31, + 0x2c, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x29, 0x2c, 0x20, 0x66, 0x72, 0x61, + 0x63, 0x42, 0x69, 0x6e, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x20, 0x3d, + 0x20, 0x66, 0x61, 0x73, 0x74, 0x3a, 0x3a, 0x63, 0x6c, 0x61, 0x6d, 0x70, + 0x28, 0x6d, 0x61, 0x67, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, + 0x2e, 0x30, 0x29, 0x20, 0x2a, 0x20, 0x32, 0x35, 0x35, 0x2e, 0x30, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x20, 0x69, 0x30, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x74, 0x29, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x20, 0x69, 0x31, 0x20, 0x3d, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x28, + 0x69, 0x30, 0x20, 0x2b, 0x20, 0x31, 0x29, 0x2c, 0x20, 0x32, 0x35, 0x35, + 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x66, 0x72, 0x61, 0x63, 0x20, 0x3d, 0x20, + 0x74, 0x20, 0x2d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x69, 0x30, + 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x75, + 0x69, 0x6e, 0x74, 0x20, 0x63, 0x30, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x74, + 0x2e, 0x6c, 0x75, 0x74, 0x5b, 0x69, 0x30, 0x20, 0x3e, 0x3e, 0x20, 0x32, + 0x5d, 0x5b, 0x69, 0x30, 0x20, 0x26, 0x20, 0x33, 0x5d, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x20, + 0x63, 0x31, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x74, 0x2e, 0x6c, 0x75, 0x74, + 0x5b, 0x69, 0x31, 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x5d, 0x5b, 0x69, 0x31, + 0x20, 0x26, 0x20, 0x33, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x63, 0x6f, + 0x6c, 0x30, 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, 0x30, 0x20, 0x3e, 0x3e, + 0x20, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x31, 0x36, 0x29, 0x29, 0x20, 0x26, + 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x28, 0x28, 0x63, 0x30, 0x20, 0x3e, 0x3e, 0x20, 0x75, 0x69, 0x6e, + 0x74, 0x28, 0x38, 0x29, 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, + 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x63, 0x30, 0x20, + 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x28, 0x28, 0x63, 0x30, 0x20, 0x3e, 0x3e, 0x20, 0x75, 0x69, + 0x6e, 0x74, 0x28, 0x32, 0x34, 0x29, 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, + 0x35, 0x75, 0x29, 0x29, 0x20, 0x2f, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x34, 0x28, 0x32, 0x35, 0x35, 0x2e, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, + 0x20, 0x63, 0x6f, 0x6c, 0x31, 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x34, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, 0x31, + 0x20, 0x3e, 0x3e, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x31, 0x36, 0x29, + 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, 0x31, 0x20, 0x3e, 0x3e, 0x20, + 0x75, 0x69, 0x6e, 0x74, 0x28, 0x38, 0x29, 0x29, 0x20, 0x26, 0x20, 0x32, + 0x35, 0x35, 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, + 0x63, 0x31, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, 0x31, 0x20, 0x3e, 0x3e, + 0x20, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x32, 0x34, 0x29, 0x29, 0x20, 0x26, + 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x29, 0x20, 0x2f, 0x20, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x34, 0x28, 0x32, 0x35, 0x35, 0x2e, 0x30, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, + 0x2e, 0x66, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, + 0x20, 0x6d, 0x69, 0x78, 0x28, 0x63, 0x6f, 0x6c, 0x30, 0x2c, 0x20, 0x63, + 0x6f, 0x6c, 0x31, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, + 0x66, 0x72, 0x61, 0x63, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x6f, 0x75, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x49, 0x53, 0x52, + 0x43, 0xe4, 0x0e, 0x00, 0x00, 0x2f, 0x2a, 0x0a, 0x20, 0x20, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x54, 0x68, 0x69, + 0x73, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x61, + 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x59, 0x55, + 0x50, 0x20, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x0a, 0x20, + 0x20, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, + 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x32, 0x36, 0x20, 0x2d, 0x20, 0x6b, + 0x75, 0x6e, 0x69, 0x74, 0x6f, 0x6b, 0x69, 0x40, 0x67, 0x6d, 0x61, 0x69, + 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x59, 0x55, + 0x50, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, + 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x6c, 0x69, 0x62, 0x72, + 0x61, 0x72, 0x79, 0x20, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, + 0x74, 0x6f, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x2d, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x20, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x69, 0x6e, 0x67, + 0x2e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, + 0x64, 0x65, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, + 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, + 0x65, 0x72, 0x6d, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x49, 0x53, 0x43, 0x20, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, + 0x77, 0x2e, 0x69, 0x73, 0x63, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x64, 0x6f, + 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x6f, 0x66, 0x74, + 0x77, 0x61, 0x72, 0x65, 0x2d, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, + 0x2d, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2f, 0x69, 0x73, 0x63, 0x2d, + 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2e, 0x20, 0x50, 0x65, 0x72, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x74, + 0x6f, 0x20, 0x75, 0x73, 0x65, 0x2c, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x2c, + 0x20, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x2c, 0x20, 0x61, 0x6e, 0x64, + 0x2f, 0x6f, 0x72, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, 0x6f, 0x66, 0x74, + 0x77, 0x61, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x79, + 0x20, 0x70, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x6f, 0x75, 0x74, 0x20, 0x66, 0x65, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, + 0x65, 0x72, 0x65, 0x62, 0x79, 0x20, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, + 0x64, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x62, 0x6f, 0x76, + 0x65, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, + 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x70, 0x65, 0x72, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, + 0x20, 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x20, 0x69, 0x6e, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x73, 0x2e, 0x0a, 0x0a, + 0x20, 0x20, 0x20, 0x59, 0x55, 0x50, 0x20, 0x49, 0x53, 0x20, 0x50, 0x52, + 0x4f, 0x56, 0x49, 0x44, 0x45, 0x44, 0x20, 0x22, 0x41, 0x53, 0x20, 0x49, + 0x53, 0x22, 0x20, 0x57, 0x49, 0x54, 0x48, 0x4f, 0x55, 0x54, 0x20, 0x41, + 0x4e, 0x59, 0x20, 0x57, 0x41, 0x52, 0x52, 0x41, 0x4e, 0x54, 0x59, 0x2c, + 0x20, 0x41, 0x4e, 0x44, 0x20, 0x41, 0x4c, 0x4c, 0x20, 0x57, 0x41, 0x52, + 0x52, 0x41, 0x4e, 0x54, 0x49, 0x45, 0x53, 0x2c, 0x20, 0x57, 0x48, 0x45, + 0x54, 0x48, 0x45, 0x52, 0x0a, 0x20, 0x20, 0x20, 0x45, 0x58, 0x50, 0x52, + 0x45, 0x53, 0x53, 0x45, 0x44, 0x20, 0x4f, 0x52, 0x20, 0x49, 0x4d, 0x50, + 0x4c, 0x49, 0x45, 0x44, 0x2c, 0x20, 0x49, 0x4e, 0x43, 0x4c, 0x55, 0x44, + 0x49, 0x4e, 0x47, 0x20, 0x4d, 0x45, 0x52, 0x43, 0x48, 0x41, 0x4e, 0x54, + 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x20, 0x41, 0x4e, 0x44, 0x20, + 0x46, 0x49, 0x54, 0x4e, 0x45, 0x53, 0x53, 0x20, 0x46, 0x4f, 0x52, 0x20, + 0x50, 0x55, 0x52, 0x50, 0x4f, 0x53, 0x45, 0x2c, 0x20, 0x41, 0x52, 0x45, + 0x0a, 0x20, 0x20, 0x20, 0x44, 0x49, 0x53, 0x43, 0x4c, 0x41, 0x49, 0x4d, + 0x45, 0x44, 0x2e, 0x0a, 0x0a, 0x20, 0x20, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x0a, 0x2a, 0x2f, 0x0a, 0x0a, 0x23, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x34, 0x35, 0x30, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x46, + 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x20, 0x77, 0x61, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x68, 0x61, 0x64, + 0x65, 0x72, 0x2e, 0x20, 0x41, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, + 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x20, + 0x74, 0x72, 0x69, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x73, 0x63, 0x72, + 0x6f, 0x6c, 0x6c, 0x73, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x2f, 0x2f, 0x20, + 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x68, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, + 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x20, 0x62, 0x79, 0x20, 0x6e, 0x75, 0x6d, + 0x52, 0x6f, 0x77, 0x73, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x20, 0x6e, 0x65, 0x77, + 0x20, 0x72, 0x6f, 0x77, 0x73, 0x0a, 0x2f, 0x2f, 0x20, 0x61, 0x74, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x74, 0x6f, 0x70, 0x2c, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x62, 0x69, + 0x6e, 0x27, 0x73, 0x20, 0x72, 0x61, 0x77, 0x20, 0x6d, 0x61, 0x67, 0x6e, + 0x69, 0x74, 0x75, 0x64, 0x65, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, + 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x20, + 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x0a, 0x2f, 0x2f, 0x20, 0x28, 0x61, 0x20, 0x6c, 0x65, 0x72, 0x70, 0x20, + 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x61, 0x64, 0x6a, 0x61, + 0x63, 0x65, 0x6e, 0x74, 0x20, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, + 0x2c, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x53, + 0x70, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x43, 0x6f, + 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x3a, 0x3a, 0x6d, 0x61, 0x70, 0x29, + 0x20, 0x65, 0x6e, 0x74, 0x69, 0x72, 0x65, 0x6c, 0x79, 0x0a, 0x2f, 0x2f, + 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x47, 0x50, 0x55, 0x2e, + 0x0a, 0x2f, 0x2f, 0x0a, 0x2f, 0x2f, 0x20, 0x42, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x73, 0x3a, 0x0a, 0x2f, 0x2f, 0x20, 0x20, 0x20, 0x73, 0x65, + 0x74, 0x3d, 0x30, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x3d, + 0x30, 0x20, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, + 0x20, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x65, 0x78, + 0x74, 0x75, 0x72, 0x65, 0x20, 0x28, 0x55, 0x56, 0x2e, 0x79, 0x20, 0x3d, + 0x20, 0x30, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x6f, + 0x70, 0x20, 0x72, 0x6f, 0x77, 0x29, 0x0a, 0x2f, 0x2f, 0x20, 0x20, 0x20, + 0x73, 0x65, 0x74, 0x3d, 0x30, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x3d, 0x31, 0x20, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, + 0x72, 0x20, 0x28, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x20, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x2c, 0x20, 0x6c, 0x69, 0x6b, + 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x20, + 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x29, 0x0a, 0x2f, 0x2f, + 0x20, 0x20, 0x20, 0x73, 0x65, 0x74, 0x3d, 0x30, 0x20, 0x62, 0x69, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x32, 0x20, 0x3a, 0x20, 0x57, 0x61, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x6c, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x20, 0x55, 0x42, 0x4f, 0x0a, 0x2f, 0x2f, 0x20, 0x20, 0x20, 0x73, 0x65, + 0x74, 0x3d, 0x30, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x3d, + 0x33, 0x20, 0x3a, 0x20, 0x52, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x20, + 0x55, 0x42, 0x4f, 0x20, 0x28, 0x57, 0x20, 0x2a, 0x20, 0x6e, 0x75, 0x6d, + 0x52, 0x6f, 0x77, 0x73, 0x20, 0x72, 0x61, 0x77, 0x20, 0x6d, 0x61, 0x67, + 0x6e, 0x69, 0x74, 0x75, 0x64, 0x65, 0x73, 0x2c, 0x20, 0x6f, 0x6c, 0x64, + 0x65, 0x73, 0x74, 0x20, 0x72, 0x6f, 0x77, 0x20, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x29, 0x0a, 0x2f, 0x2f, 0x20, 0x20, 0x20, 0x73, 0x65, 0x74, 0x3d, + 0x30, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x34, 0x20, + 0x3a, 0x20, 0x4c, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x20, 0x55, 0x42, + 0x4f, 0x20, 0x28, 0x32, 0x35, 0x36, 0x20, 0x41, 0x52, 0x47, 0x42, 0x20, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, + 0x73, 0x29, 0x0a, 0x0a, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x28, 0x73, + 0x65, 0x74, 0x20, 0x3d, 0x20, 0x30, 0x2c, 0x20, 0x62, 0x69, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x20, 0x3d, 0x20, 0x30, 0x29, 0x20, 0x75, 0x6e, 0x69, + 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, + 0x32, 0x44, 0x20, 0x75, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x3b, 0x0a, 0x6c, + 0x61, 0x79, 0x6f, 0x75, 0x74, 0x28, 0x73, 0x65, 0x74, 0x20, 0x3d, 0x20, + 0x30, 0x2c, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x3d, + 0x20, 0x31, 0x29, 0x20, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, + 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x20, 0x20, 0x20, 0x75, 0x5f, + 0x73, 0x61, 0x6d, 0x70, 0x3b, 0x0a, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, + 0x28, 0x73, 0x65, 0x74, 0x20, 0x3d, 0x20, 0x30, 0x2c, 0x20, 0x62, 0x69, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x3d, 0x20, 0x32, 0x29, 0x20, 0x75, + 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x57, 0x61, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x6c, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x0a, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x6e, + 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, + 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x77, 0x61, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x20, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x65, 0x78, + 0x65, 0x6c, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x62, 0x69, 0x6e, 0x73, + 0x3b, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x67, 0x6e, 0x69, 0x74, + 0x75, 0x64, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x72, 0x6f, 0x77, 0x20, 0x28, 0x3c, 0x3d, 0x20, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x20, 0x70, 0x61, 0x64, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x70, 0x61, 0x64, 0x31, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x70, 0x61, + 0x64, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x20, 0x70, 0x61, 0x64, 0x33, 0x3b, 0x0a, 0x7d, 0x20, 0x70, 0x3b, + 0x0a, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x28, 0x73, 0x65, 0x74, 0x20, + 0x3d, 0x20, 0x30, 0x2c, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x20, 0x3d, 0x20, 0x33, 0x29, 0x20, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, + 0x6d, 0x20, 0x52, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x0a, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x6d, 0x61, 0x67, + 0x73, 0x5b, 0x35, 0x31, 0x32, 0x5d, 0x3b, 0x20, 0x2f, 0x2f, 0x20, 0x32, + 0x30, 0x34, 0x38, 0x20, 0x72, 0x61, 0x77, 0x20, 0x6d, 0x61, 0x67, 0x6e, + 0x69, 0x74, 0x75, 0x64, 0x65, 0x73, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x64, 0x20, 0x61, 0x73, 0x20, 0x76, 0x65, 0x63, 0x34, 0x73, 0x20, 0x28, + 0x73, 0x74, 0x64, 0x31, 0x34, 0x30, 0x20, 0x74, 0x69, 0x67, 0x68, 0x74, + 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x57, 0x20, 0x69, 0x73, 0x20, 0x61, + 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x34, 0x29, 0x0a, 0x7d, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x3b, 0x0a, + 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x28, 0x73, 0x65, 0x74, 0x20, 0x3d, + 0x20, 0x30, 0x2c, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, + 0x3d, 0x20, 0x34, 0x29, 0x20, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, + 0x20, 0x4c, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x0a, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x75, 0x76, 0x65, 0x63, 0x34, 0x20, 0x6c, 0x75, 0x74, + 0x5b, 0x36, 0x34, 0x5d, 0x3b, 0x20, 0x2f, 0x2f, 0x20, 0x32, 0x35, 0x36, + 0x20, 0x41, 0x52, 0x47, 0x42, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, + 0x20, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x75, + 0x76, 0x65, 0x63, 0x34, 0x73, 0x0a, 0x7d, 0x20, 0x6c, 0x75, 0x74, 0x3b, + 0x0a, 0x0a, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x28, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x30, 0x29, 0x20, 0x6f, + 0x75, 0x74, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x66, 0x72, 0x61, 0x67, + 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x20, 0x66, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x67, 0x28, 0x69, + 0x6e, 0x74, 0x20, 0x69, 0x64, 0x78, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x6f, 0x77, + 0x73, 0x2e, 0x6d, 0x61, 0x67, 0x73, 0x5b, 0x69, 0x64, 0x78, 0x20, 0x3e, + 0x3e, 0x20, 0x32, 0x5d, 0x5b, 0x69, 0x64, 0x78, 0x20, 0x26, 0x20, 0x33, + 0x5d, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, + 0x61, 0x69, 0x6e, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x76, 0x65, 0x63, 0x32, 0x20, 0x75, 0x76, 0x20, 0x3d, 0x20, 0x67, 0x6c, + 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x2e, 0x78, + 0x79, 0x20, 0x2f, 0x20, 0x76, 0x65, 0x63, 0x32, 0x28, 0x70, 0x2e, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x2c, 0x20, 0x70, 0x2e, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, + 0x28, 0x75, 0x76, 0x2e, 0x79, 0x20, 0x3e, 0x3d, 0x20, 0x70, 0x2e, 0x6e, + 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x20, 0x2f, 0x20, 0x70, 0x2e, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x72, 0x61, + 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, + 0x74, 0x75, 0x72, 0x65, 0x28, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, + 0x32, 0x44, 0x28, 0x75, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x2c, 0x20, 0x75, + 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x29, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x32, + 0x28, 0x75, 0x76, 0x2e, 0x78, 0x2c, 0x20, 0x75, 0x76, 0x2e, 0x79, 0x20, + 0x2d, 0x20, 0x70, 0x2e, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x20, + 0x2f, 0x20, 0x70, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x29, 0x29, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x78, + 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x67, 0x6c, 0x5f, 0x46, 0x72, + 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x2e, 0x78, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, + 0x79, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x67, 0x6c, 0x5f, 0x46, + 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x2e, 0x79, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, + 0x52, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x70, 0x6c, + 0x6f, 0x61, 0x64, 0x65, 0x64, 0x20, 0x6f, 0x6c, 0x64, 0x65, 0x73, 0x74, + 0x2d, 0x66, 0x69, 0x72, 0x73, 0x74, 0x3b, 0x20, 0x63, 0x61, 0x6e, 0x76, + 0x61, 0x73, 0x20, 0x72, 0x6f, 0x77, 0x20, 0x79, 0x20, 0x28, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x6f, 0x70, 0x29, 0x20, + 0x73, 0x68, 0x6f, 0x77, 0x73, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x28, 0x6e, 0x75, + 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x20, 0x2d, 0x20, 0x31, 0x20, 0x2d, 0x20, + 0x79, 0x29, 0x2d, 0x74, 0x68, 0x20, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x20, 0x72, 0x6f, 0x77, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x72, 0x6f, 0x77, 0x20, 0x3d, + 0x20, 0x69, 0x6e, 0x74, 0x28, 0x70, 0x2e, 0x6e, 0x75, 0x6d, 0x52, 0x6f, + 0x77, 0x73, 0x29, 0x20, 0x2d, 0x20, 0x31, 0x20, 0x2d, 0x20, 0x79, 0x3b, + 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, + 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x65, + 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x61, 0x64, 0x6a, + 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x67, 0x6e, 0x69, 0x74, + 0x75, 0x64, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x73, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x79, 0x20, 0x61, 0x78, 0x69, 0x73, 0x20, 0x69, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x73, 0x6d, 0x6f, + 0x6f, 0x74, 0x68, 0x20, 0x28, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x69, + 0x61, 0x73, 0x65, 0x64, 0x29, 0x20, 0x65, 0x76, 0x65, 0x6e, 0x20, 0x74, + 0x68, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x77, 0x69, 0x64, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x62, 0x69, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2f, 0x2f, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, + 0x62, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x28, 0x78, 0x29, 0x20, 0x2a, 0x20, 0x28, 0x70, 0x2e, 0x62, + 0x69, 0x6e, 0x73, 0x20, 0x2f, 0x20, 0x70, 0x2e, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x20, 0x62, 0x69, 0x6e, 0x30, 0x20, 0x3d, 0x20, 0x69, + 0x6e, 0x74, 0x28, 0x62, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, + 0x62, 0x69, 0x6e, 0x31, 0x20, 0x3d, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x62, + 0x69, 0x6e, 0x30, 0x20, 0x2b, 0x20, 0x31, 0x2c, 0x20, 0x69, 0x6e, 0x74, + 0x28, 0x70, 0x2e, 0x62, 0x69, 0x6e, 0x73, 0x29, 0x20, 0x2d, 0x20, 0x31, + 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x66, 0x72, 0x61, 0x63, 0x42, 0x69, 0x6e, + 0x20, 0x3d, 0x20, 0x62, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x20, 0x2d, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x62, 0x69, 0x6e, 0x30, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x20, 0x6d, 0x61, 0x67, 0x20, 0x3d, 0x20, 0x6d, 0x69, 0x78, + 0x28, 0x66, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x67, 0x28, 0x72, 0x6f, + 0x77, 0x20, 0x2a, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x70, 0x2e, 0x62, 0x69, + 0x6e, 0x73, 0x29, 0x20, 0x2b, 0x20, 0x62, 0x69, 0x6e, 0x30, 0x29, 0x2c, + 0x20, 0x66, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x67, 0x28, 0x72, 0x6f, + 0x77, 0x20, 0x2a, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x70, 0x2e, 0x62, 0x69, + 0x6e, 0x73, 0x29, 0x20, 0x2b, 0x20, 0x62, 0x69, 0x6e, 0x31, 0x29, 0x2c, + 0x20, 0x66, 0x72, 0x61, 0x63, 0x42, 0x69, 0x6e, 0x29, 0x3b, 0x0a, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x20, 0x74, 0x20, 0x3d, 0x20, 0x63, 0x6c, 0x61, 0x6d, 0x70, 0x28, + 0x6d, 0x61, 0x67, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, + 0x30, 0x29, 0x20, 0x2a, 0x20, 0x32, 0x35, 0x35, 0x2e, 0x30, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, + 0x69, 0x30, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x74, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x20, 0x69, 0x31, 0x20, 0x3d, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x69, 0x30, + 0x20, 0x2b, 0x20, 0x31, 0x2c, 0x20, 0x32, 0x35, 0x35, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x20, 0x66, 0x72, 0x61, 0x63, 0x20, 0x3d, 0x20, 0x74, 0x20, 0x2d, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x69, 0x30, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x75, 0x69, 0x6e, 0x74, + 0x20, 0x63, 0x30, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x74, 0x2e, 0x6c, 0x75, + 0x74, 0x5b, 0x69, 0x30, 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x5d, 0x5b, 0x69, + 0x30, 0x20, 0x26, 0x20, 0x33, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x20, 0x63, 0x31, 0x20, + 0x3d, 0x20, 0x6c, 0x75, 0x74, 0x2e, 0x6c, 0x75, 0x74, 0x5b, 0x69, 0x31, + 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x5d, 0x5b, 0x69, 0x31, 0x20, 0x26, 0x20, + 0x33, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x76, 0x65, 0x63, 0x34, 0x20, 0x63, 0x6f, 0x6c, 0x30, 0x20, 0x3d, 0x20, + 0x76, 0x65, 0x63, 0x34, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, + 0x63, 0x30, 0x20, 0x3e, 0x3e, 0x20, 0x31, 0x36, 0x29, 0x20, 0x26, 0x20, + 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x28, 0x28, 0x63, 0x30, 0x20, 0x3e, 0x3e, 0x20, 0x38, 0x29, 0x20, 0x26, + 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x28, 0x63, 0x30, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, + 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, 0x30, 0x20, + 0x3e, 0x3e, 0x20, 0x32, 0x34, 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, + 0x75, 0x29, 0x29, 0x20, 0x2f, 0x20, 0x32, 0x35, 0x35, 0x2e, 0x30, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, + 0x34, 0x20, 0x63, 0x6f, 0x6c, 0x31, 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, + 0x34, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, 0x31, 0x20, + 0x3e, 0x3e, 0x20, 0x31, 0x36, 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, + 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, + 0x31, 0x20, 0x3e, 0x3e, 0x20, 0x38, 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, + 0x35, 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x63, + 0x31, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, 0x31, 0x20, 0x3e, 0x3e, 0x20, + 0x32, 0x34, 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x29, + 0x20, 0x2f, 0x20, 0x32, 0x35, 0x35, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x72, 0x61, 0x67, 0x43, 0x6f, + 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x6d, 0x69, 0x78, 0x28, 0x63, 0x6f, + 0x6c, 0x30, 0x2c, 0x20, 0x63, 0x6f, 0x6c, 0x31, 0x2c, 0x20, 0x66, 0x72, + 0x61, 0x63, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x7d, + 0x0a, 0x52, 0x45, 0x46, 0x4c, 0x82, 0x05, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, + 0x6e, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x00, 0x52, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x67, 0x73, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x13, + 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x0f, + 0x00, 0x00, 0x00, 0x57, 0x61, 0x74, 0x65, 0x72, 0x66, 0x61, 0x6c, 0x6c, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, + 0x00, 0x00, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x05, 0x00, 0x00, 0x00, 0x77, 0x69, 0x64, 0x74, 0x68, 0x04, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x62, 0x69, 0x6e, 0x73, + 0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x30, + 0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x31, + 0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x32, + 0x18, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x33, + 0x1c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x02, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x4c, + 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x6c, 0x75, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x66, 0x72, 0x61, 0x67, + 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x20, 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, + 0x3f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 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, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x75, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, + 0x00, 0x75, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x0b, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 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, 0x46, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, + 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x52, + 0x56, 0x45, 0x44, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, + 0x45, 0x52, 0x5f, 0x46, 0x49, 0x58, 0x55, 0x50, 0x5f, 0x67, 0x6c, 0x5f, + 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 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, 0x24, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x43, 0x61, + 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x28, 0x31, 0x29, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x56, 0x41, 0x52, 0x54, 0x6d, 0x1e, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x01, 0x0a, 0x00, 0x00, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x57, + 0x61, 0x74, 0x65, 0x72, 0x66, 0x61, 0x6c, 0x6c, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6e, 0x75, 0x6d, + 0x52, 0x6f, 0x77, 0x73, 0x3a, 0x20, 0x66, 0x33, 0x32, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x66, 0x33, + 0x32, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x3a, 0x20, 0x66, 0x33, 0x32, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x62, 0x69, 0x6e, 0x73, 0x3a, 0x20, 0x66, 0x33, 0x32, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x70, 0x61, 0x64, 0x30, 0x3a, 0x20, 0x66, 0x33, 0x32, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x64, 0x31, 0x3a, 0x20, + 0x66, 0x33, 0x32, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x64, + 0x32, 0x3a, 0x20, 0x66, 0x33, 0x32, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x70, 0x61, 0x64, 0x33, 0x3a, 0x20, 0x66, 0x33, 0x32, 0x2c, 0x0a, 0x7d, + 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x52, 0x6f, 0x77, + 0x44, 0x61, 0x74, 0x61, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, + 0x61, 0x67, 0x73, 0x3a, 0x20, 0x61, 0x72, 0x72, 0x61, 0x79, 0x3c, 0x76, + 0x65, 0x63, 0x34, 0x3c, 0x66, 0x33, 0x32, 0x3e, 0x2c, 0x20, 0x35, 0x31, + 0x32, 0x3e, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x20, 0x4c, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x74, 0x3a, 0x20, 0x61, 0x72, 0x72, + 0x61, 0x79, 0x3c, 0x76, 0x65, 0x63, 0x34, 0x3c, 0x75, 0x33, 0x32, 0x3e, + 0x2c, 0x20, 0x36, 0x34, 0x3e, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x40, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x28, 0x30, 0x29, 0x20, 0x40, 0x62, 0x69, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x28, 0x30, 0x29, 0x20, 0x76, 0x61, 0x72, 0x20, + 0x75, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x3a, 0x20, 0x74, 0x65, 0x78, 0x74, + 0x75, 0x72, 0x65, 0x5f, 0x32, 0x64, 0x3c, 0x66, 0x33, 0x32, 0x3e, 0x3b, + 0x0a, 0x40, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x28, 0x30, 0x29, 0x20, 0x40, + 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x28, 0x31, 0x29, 0x20, 0x76, + 0x61, 0x72, 0x20, 0x75, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x3a, 0x20, 0x73, + 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x3b, 0x0a, 0x40, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x28, 0x30, 0x29, 0x20, 0x40, 0x62, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x28, 0x32, 0x29, 0x20, 0x76, 0x61, 0x72, 0x3c, 0x75, 0x6e, + 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x3e, 0x20, 0x70, 0x3a, 0x20, 0x57, 0x61, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x6c, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x3b, 0x0a, 0x40, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x28, 0x30, 0x29, + 0x20, 0x40, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x28, 0x33, 0x29, + 0x20, 0x76, 0x61, 0x72, 0x3c, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, + 0x3e, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x3a, 0x20, 0x52, 0x6f, 0x77, 0x44, + 0x61, 0x74, 0x61, 0x3b, 0x0a, 0x40, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x28, + 0x30, 0x29, 0x20, 0x40, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x28, + 0x34, 0x29, 0x20, 0x76, 0x61, 0x72, 0x3c, 0x75, 0x6e, 0x69, 0x66, 0x6f, + 0x72, 0x6d, 0x3e, 0x20, 0x6c, 0x75, 0x74, 0x3a, 0x20, 0x4c, 0x75, 0x74, + 0x44, 0x61, 0x74, 0x61, 0x3b, 0x0a, 0x76, 0x61, 0x72, 0x3c, 0x70, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x65, 0x3e, 0x20, 0x66, 0x72, 0x61, 0x67, 0x43, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x76, 0x65, 0x63, 0x34, 0x3c, 0x66, + 0x33, 0x32, 0x3e, 0x3b, 0x0a, 0x76, 0x61, 0x72, 0x3c, 0x70, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x65, 0x3e, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, + 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x76, 0x65, 0x63, 0x34, + 0x3c, 0x66, 0x33, 0x32, 0x3e, 0x3b, 0x0a, 0x76, 0x61, 0x72, 0x3c, 0x70, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x3e, 0x20, 0x67, 0x6c, 0x5f, 0x46, + 0x72, 0x6f, 0x6e, 0x74, 0x46, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x62, 0x6f, 0x6f, 0x6c, 0x3b, 0x0a, 0x66, 0x6e, 0x20, 0x66, 0x65, 0x74, + 0x63, 0x68, 0x4d, 0x61, 0x67, 0x28, 0x69, 0x64, 0x78, 0x3a, 0x20, 0x69, + 0x33, 0x32, 0x29, 0x20, 0x2d, 0x3e, 0x20, 0x66, 0x33, 0x32, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x72, 0x6f, 0x77, 0x73, 0x2e, 0x6d, 0x61, 0x67, 0x73, 0x5b, 0x28, 0x69, + 0x64, 0x78, 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x29, 0x5d, 0x5b, 0x28, 0x69, + 0x64, 0x78, 0x20, 0x26, 0x20, 0x33, 0x29, 0x5d, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x66, 0x6e, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, + 0x61, 0x72, 0x20, 0x75, 0x76, 0x3a, 0x20, 0x76, 0x65, 0x63, 0x32, 0x3c, + 0x66, 0x33, 0x32, 0x3e, 0x20, 0x3d, 0x20, 0x28, 0x67, 0x6c, 0x5f, 0x46, + 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x2e, 0x78, 0x79, 0x20, + 0x2f, 0x20, 0x76, 0x65, 0x63, 0x32, 0x3c, 0x66, 0x33, 0x32, 0x3e, 0x28, + 0x70, 0x2e, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2c, 0x20, 0x70, 0x2e, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x75, 0x76, 0x2e, 0x79, 0x20, 0x3e, + 0x3d, 0x20, 0x28, 0x70, 0x2e, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, + 0x20, 0x2f, 0x20, 0x70, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x29, + 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x66, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, + 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x53, 0x61, + 0x6d, 0x70, 0x6c, 0x65, 0x28, 0x75, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x2c, + 0x20, 0x75, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x2c, 0x20, 0x76, 0x65, 0x63, + 0x32, 0x3c, 0x66, 0x33, 0x32, 0x3e, 0x28, 0x75, 0x76, 0x2e, 0x78, 0x2c, + 0x20, 0x28, 0x75, 0x76, 0x2e, 0x79, 0x20, 0x2d, 0x20, 0x28, 0x70, 0x2e, + 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x20, 0x2f, 0x20, 0x70, 0x2e, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x29, 0x29, 0x29, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x76, 0x61, 0x72, 0x20, 0x78, 0x3a, 0x20, 0x69, 0x33, 0x32, 0x20, + 0x3d, 0x20, 0x69, 0x33, 0x32, 0x28, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, + 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x2e, 0x78, 0x29, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, + 0x61, 0x72, 0x20, 0x79, 0x3a, 0x20, 0x69, 0x33, 0x32, 0x20, 0x3d, 0x20, + 0x69, 0x33, 0x32, 0x28, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, + 0x6f, 0x6f, 0x72, 0x64, 0x2e, 0x79, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x61, 0x72, + 0x20, 0x72, 0x6f, 0x77, 0x3a, 0x20, 0x69, 0x33, 0x32, 0x20, 0x3d, 0x20, + 0x28, 0x28, 0x69, 0x33, 0x32, 0x28, 0x70, 0x2e, 0x6e, 0x75, 0x6d, 0x52, + 0x6f, 0x77, 0x73, 0x29, 0x20, 0x2d, 0x20, 0x31, 0x29, 0x20, 0x2d, 0x20, + 0x79, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x76, 0x61, 0x72, 0x20, 0x62, 0x69, 0x6e, 0x50, + 0x6f, 0x73, 0x3a, 0x20, 0x66, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x28, 0x66, + 0x33, 0x32, 0x28, 0x78, 0x29, 0x20, 0x2a, 0x20, 0x28, 0x28, 0x70, 0x2e, + 0x62, 0x69, 0x6e, 0x73, 0x20, 0x2f, 0x20, 0x70, 0x2e, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x29, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x61, 0x72, 0x20, 0x62, + 0x69, 0x6e, 0x30, 0x3a, 0x20, 0x69, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x69, + 0x33, 0x32, 0x28, 0x62, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x76, 0x61, 0x72, 0x20, 0x62, 0x69, 0x6e, 0x31, 0x3a, 0x20, 0x69, 0x33, + 0x32, 0x20, 0x3d, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x28, 0x62, 0x69, 0x6e, + 0x30, 0x20, 0x2b, 0x20, 0x31, 0x29, 0x2c, 0x20, 0x28, 0x69, 0x33, 0x32, + 0x28, 0x70, 0x2e, 0x62, 0x69, 0x6e, 0x73, 0x29, 0x20, 0x2d, 0x20, 0x31, + 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x76, 0x61, 0x72, 0x20, 0x66, 0x72, 0x61, 0x63, + 0x42, 0x69, 0x6e, 0x3a, 0x20, 0x66, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x28, + 0x62, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x20, 0x2d, 0x20, 0x66, 0x33, 0x32, + 0x28, 0x62, 0x69, 0x6e, 0x30, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x61, 0x72, + 0x20, 0x6d, 0x61, 0x67, 0x3a, 0x20, 0x66, 0x33, 0x32, 0x20, 0x3d, 0x20, + 0x6d, 0x69, 0x78, 0x28, 0x66, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x67, + 0x28, 0x28, 0x28, 0x72, 0x6f, 0x77, 0x20, 0x2a, 0x20, 0x69, 0x33, 0x32, + 0x28, 0x70, 0x2e, 0x62, 0x69, 0x6e, 0x73, 0x29, 0x29, 0x20, 0x2b, 0x20, + 0x62, 0x69, 0x6e, 0x30, 0x29, 0x29, 0x2c, 0x20, 0x66, 0x65, 0x74, 0x63, + 0x68, 0x4d, 0x61, 0x67, 0x28, 0x28, 0x28, 0x72, 0x6f, 0x77, 0x20, 0x2a, + 0x20, 0x69, 0x33, 0x32, 0x28, 0x70, 0x2e, 0x62, 0x69, 0x6e, 0x73, 0x29, + 0x29, 0x20, 0x2b, 0x20, 0x62, 0x69, 0x6e, 0x31, 0x29, 0x29, 0x2c, 0x20, + 0x66, 0x72, 0x61, 0x63, 0x42, 0x69, 0x6e, 0x29, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x61, + 0x72, 0x20, 0x74, 0x3a, 0x20, 0x66, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x28, + 0x63, 0x6c, 0x61, 0x6d, 0x70, 0x28, 0x6d, 0x61, 0x67, 0x2c, 0x20, 0x30, + 0x2e, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x29, 0x20, 0x2a, 0x20, 0x32, 0x35, 0x35, + 0x2e, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x61, + 0x72, 0x20, 0x69, 0x30, 0x3a, 0x20, 0x69, 0x33, 0x32, 0x20, 0x3d, 0x20, + 0x69, 0x33, 0x32, 0x28, 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x61, 0x72, 0x20, + 0x69, 0x31, 0x3a, 0x20, 0x69, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x6d, 0x69, + 0x6e, 0x28, 0x28, 0x69, 0x30, 0x20, 0x2b, 0x20, 0x31, 0x29, 0x2c, 0x20, + 0x32, 0x35, 0x35, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x61, 0x72, 0x20, 0x66, 0x72, + 0x61, 0x63, 0x3a, 0x20, 0x66, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x28, 0x74, + 0x20, 0x2d, 0x20, 0x66, 0x33, 0x32, 0x28, 0x69, 0x30, 0x29, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x76, 0x61, 0x72, 0x20, 0x63, 0x30, 0x3a, 0x20, 0x75, 0x33, 0x32, + 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x74, 0x2e, 0x6c, 0x75, 0x74, 0x5b, 0x28, + 0x69, 0x30, 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x29, 0x5d, 0x5b, 0x28, 0x69, + 0x30, 0x20, 0x26, 0x20, 0x33, 0x29, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x61, 0x72, + 0x20, 0x63, 0x31, 0x3a, 0x20, 0x75, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x6c, + 0x75, 0x74, 0x2e, 0x6c, 0x75, 0x74, 0x5b, 0x28, 0x69, 0x31, 0x20, 0x3e, + 0x3e, 0x20, 0x32, 0x29, 0x5d, 0x5b, 0x28, 0x69, 0x31, 0x20, 0x26, 0x20, + 0x33, 0x29, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x61, 0x72, 0x20, 0x63, 0x6f, 0x6c, + 0x30, 0x3a, 0x20, 0x76, 0x65, 0x63, 0x34, 0x3c, 0x66, 0x33, 0x32, 0x3e, + 0x20, 0x3d, 0x20, 0x28, 0x76, 0x65, 0x63, 0x34, 0x3c, 0x66, 0x33, 0x32, + 0x3e, 0x28, 0x66, 0x33, 0x32, 0x28, 0x28, 0x28, 0x28, 0x63, 0x30, 0x20, + 0x3e, 0x3e, 0x20, 0x31, 0x36, 0x29, 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, + 0x35, 0x75, 0x29, 0x29, 0x2c, 0x20, 0x66, 0x33, 0x32, 0x28, 0x28, 0x28, + 0x28, 0x63, 0x30, 0x20, 0x3e, 0x3e, 0x20, 0x38, 0x29, 0x29, 0x20, 0x26, + 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x29, 0x2c, 0x20, 0x66, 0x33, 0x32, + 0x28, 0x28, 0x63, 0x30, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, + 0x29, 0x2c, 0x20, 0x66, 0x33, 0x32, 0x28, 0x28, 0x28, 0x28, 0x63, 0x30, + 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x34, 0x29, 0x29, 0x20, 0x26, 0x20, 0x32, + 0x35, 0x35, 0x75, 0x29, 0x29, 0x29, 0x20, 0x2f, 0x20, 0x32, 0x35, 0x35, + 0x2e, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x61, + 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x31, 0x3a, 0x20, 0x76, 0x65, 0x63, 0x34, + 0x3c, 0x66, 0x33, 0x32, 0x3e, 0x20, 0x3d, 0x20, 0x28, 0x76, 0x65, 0x63, + 0x34, 0x3c, 0x66, 0x33, 0x32, 0x3e, 0x28, 0x66, 0x33, 0x32, 0x28, 0x28, + 0x28, 0x28, 0x63, 0x31, 0x20, 0x3e, 0x3e, 0x20, 0x31, 0x36, 0x29, 0x29, + 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x29, 0x2c, 0x20, 0x66, + 0x33, 0x32, 0x28, 0x28, 0x28, 0x28, 0x63, 0x31, 0x20, 0x3e, 0x3e, 0x20, + 0x38, 0x29, 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x29, + 0x2c, 0x20, 0x66, 0x33, 0x32, 0x28, 0x28, 0x63, 0x31, 0x20, 0x26, 0x20, + 0x32, 0x35, 0x35, 0x75, 0x29, 0x29, 0x2c, 0x20, 0x66, 0x33, 0x32, 0x28, + 0x28, 0x28, 0x28, 0x63, 0x31, 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x34, 0x29, + 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x29, 0x29, 0x20, + 0x2f, 0x20, 0x32, 0x35, 0x35, 0x2e, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x66, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, + 0x20, 0x3d, 0x20, 0x6d, 0x69, 0x78, 0x28, 0x63, 0x6f, 0x6c, 0x30, 0x2c, + 0x20, 0x63, 0x6f, 0x6c, 0x31, 0x2c, 0x20, 0x66, 0x72, 0x61, 0x63, 0x29, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x73, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x20, 0x46, 0x53, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x40, 0x62, 0x75, 0x69, 0x6c, 0x74, + 0x69, 0x6e, 0x28, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x29, + 0x20, 0x66, 0x72, 0x61, 0x67, 0x5f, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x3a, + 0x20, 0x76, 0x65, 0x63, 0x34, 0x3c, 0x66, 0x33, 0x32, 0x3e, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x40, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, + 0x28, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x5f, 0x66, 0x61, 0x63, 0x69, 0x6e, + 0x67, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x5f, 0x66, 0x61, 0x63, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x62, 0x6f, 0x6f, 0x6c, 0x2c, 0x0a, 0x7d, + 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x46, 0x53, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x40, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x30, 0x29, 0x20, + 0x66, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x76, + 0x65, 0x63, 0x34, 0x3c, 0x66, 0x33, 0x32, 0x3e, 0x2c, 0x0a, 0x7d, 0x0a, + 0x40, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x66, 0x6e, + 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x3a, + 0x20, 0x46, 0x53, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x29, 0x20, 0x2d, 0x3e, + 0x20, 0x46, 0x53, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, + 0x6f, 0x6f, 0x72, 0x64, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x2e, 0x66, 0x72, 0x61, 0x67, 0x5f, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x6f, 0x6e, + 0x74, 0x46, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x20, 0x3d, 0x20, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x2e, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x5f, 0x66, 0x61, + 0x63, 0x69, 0x6e, 0x67, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, + 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x28, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x76, 0x61, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x3a, 0x20, 0x46, 0x53, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x2e, 0x66, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, + 0x20, 0x66, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x49, 0x53, 0x52, + 0x43, 0xe4, 0x0e, 0x00, 0x00, 0x2f, 0x2a, 0x0a, 0x20, 0x20, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x54, 0x68, 0x69, + 0x73, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x61, + 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x59, 0x55, + 0x50, 0x20, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x0a, 0x20, + 0x20, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, + 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x32, 0x36, 0x20, 0x2d, 0x20, 0x6b, + 0x75, 0x6e, 0x69, 0x74, 0x6f, 0x6b, 0x69, 0x40, 0x67, 0x6d, 0x61, 0x69, + 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x59, 0x55, + 0x50, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, + 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x6c, 0x69, 0x62, 0x72, + 0x61, 0x72, 0x79, 0x20, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, + 0x74, 0x6f, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x2d, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x20, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x69, 0x6e, 0x67, + 0x2e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, + 0x64, 0x65, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, + 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, + 0x65, 0x72, 0x6d, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x49, 0x53, 0x43, 0x20, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, + 0x77, 0x2e, 0x69, 0x73, 0x63, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x64, 0x6f, + 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x6f, 0x66, 0x74, + 0x77, 0x61, 0x72, 0x65, 0x2d, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, + 0x2d, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2f, 0x69, 0x73, 0x63, 0x2d, + 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2e, 0x20, 0x50, 0x65, 0x72, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x74, + 0x6f, 0x20, 0x75, 0x73, 0x65, 0x2c, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x2c, + 0x20, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x2c, 0x20, 0x61, 0x6e, 0x64, + 0x2f, 0x6f, 0x72, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, 0x6f, 0x66, 0x74, + 0x77, 0x61, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x79, + 0x20, 0x70, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x6f, 0x75, 0x74, 0x20, 0x66, 0x65, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, + 0x65, 0x72, 0x65, 0x62, 0x79, 0x20, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, + 0x64, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x62, 0x6f, 0x76, + 0x65, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, + 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x70, 0x65, 0x72, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, + 0x20, 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x20, 0x69, 0x6e, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x73, 0x2e, 0x0a, 0x0a, + 0x20, 0x20, 0x20, 0x59, 0x55, 0x50, 0x20, 0x49, 0x53, 0x20, 0x50, 0x52, + 0x4f, 0x56, 0x49, 0x44, 0x45, 0x44, 0x20, 0x22, 0x41, 0x53, 0x20, 0x49, + 0x53, 0x22, 0x20, 0x57, 0x49, 0x54, 0x48, 0x4f, 0x55, 0x54, 0x20, 0x41, + 0x4e, 0x59, 0x20, 0x57, 0x41, 0x52, 0x52, 0x41, 0x4e, 0x54, 0x59, 0x2c, + 0x20, 0x41, 0x4e, 0x44, 0x20, 0x41, 0x4c, 0x4c, 0x20, 0x57, 0x41, 0x52, + 0x52, 0x41, 0x4e, 0x54, 0x49, 0x45, 0x53, 0x2c, 0x20, 0x57, 0x48, 0x45, + 0x54, 0x48, 0x45, 0x52, 0x0a, 0x20, 0x20, 0x20, 0x45, 0x58, 0x50, 0x52, + 0x45, 0x53, 0x53, 0x45, 0x44, 0x20, 0x4f, 0x52, 0x20, 0x49, 0x4d, 0x50, + 0x4c, 0x49, 0x45, 0x44, 0x2c, 0x20, 0x49, 0x4e, 0x43, 0x4c, 0x55, 0x44, + 0x49, 0x4e, 0x47, 0x20, 0x4d, 0x45, 0x52, 0x43, 0x48, 0x41, 0x4e, 0x54, + 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x20, 0x41, 0x4e, 0x44, 0x20, + 0x46, 0x49, 0x54, 0x4e, 0x45, 0x53, 0x53, 0x20, 0x46, 0x4f, 0x52, 0x20, + 0x50, 0x55, 0x52, 0x50, 0x4f, 0x53, 0x45, 0x2c, 0x20, 0x41, 0x52, 0x45, + 0x0a, 0x20, 0x20, 0x20, 0x44, 0x49, 0x53, 0x43, 0x4c, 0x41, 0x49, 0x4d, + 0x45, 0x44, 0x2e, 0x0a, 0x0a, 0x20, 0x20, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x0a, 0x2a, 0x2f, 0x0a, 0x0a, 0x23, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x34, 0x35, 0x30, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x46, + 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x20, 0x77, 0x61, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x68, 0x61, 0x64, + 0x65, 0x72, 0x2e, 0x20, 0x41, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, + 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x20, + 0x74, 0x72, 0x69, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x73, 0x63, 0x72, + 0x6f, 0x6c, 0x6c, 0x73, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x2f, 0x2f, 0x20, + 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x68, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, + 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x20, 0x62, 0x79, 0x20, 0x6e, 0x75, 0x6d, + 0x52, 0x6f, 0x77, 0x73, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x20, 0x6e, 0x65, 0x77, + 0x20, 0x72, 0x6f, 0x77, 0x73, 0x0a, 0x2f, 0x2f, 0x20, 0x61, 0x74, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x74, 0x6f, 0x70, 0x2c, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x62, 0x69, + 0x6e, 0x27, 0x73, 0x20, 0x72, 0x61, 0x77, 0x20, 0x6d, 0x61, 0x67, 0x6e, + 0x69, 0x74, 0x75, 0x64, 0x65, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, + 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x20, + 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x0a, 0x2f, 0x2f, 0x20, 0x28, 0x61, 0x20, 0x6c, 0x65, 0x72, 0x70, 0x20, + 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x61, 0x64, 0x6a, 0x61, + 0x63, 0x65, 0x6e, 0x74, 0x20, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, + 0x2c, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x53, + 0x70, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x43, 0x6f, + 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x3a, 0x3a, 0x6d, 0x61, 0x70, 0x29, + 0x20, 0x65, 0x6e, 0x74, 0x69, 0x72, 0x65, 0x6c, 0x79, 0x0a, 0x2f, 0x2f, + 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x47, 0x50, 0x55, 0x2e, + 0x0a, 0x2f, 0x2f, 0x0a, 0x2f, 0x2f, 0x20, 0x42, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x73, 0x3a, 0x0a, 0x2f, 0x2f, 0x20, 0x20, 0x20, 0x73, 0x65, + 0x74, 0x3d, 0x30, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x3d, + 0x30, 0x20, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, + 0x20, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x65, 0x78, + 0x74, 0x75, 0x72, 0x65, 0x20, 0x28, 0x55, 0x56, 0x2e, 0x79, 0x20, 0x3d, + 0x20, 0x30, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x6f, + 0x70, 0x20, 0x72, 0x6f, 0x77, 0x29, 0x0a, 0x2f, 0x2f, 0x20, 0x20, 0x20, + 0x73, 0x65, 0x74, 0x3d, 0x30, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x3d, 0x31, 0x20, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, + 0x72, 0x20, 0x28, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x20, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x2c, 0x20, 0x6c, 0x69, 0x6b, + 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x20, + 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x29, 0x0a, 0x2f, 0x2f, + 0x20, 0x20, 0x20, 0x73, 0x65, 0x74, 0x3d, 0x30, 0x20, 0x62, 0x69, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x32, 0x20, 0x3a, 0x20, 0x57, 0x61, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x6c, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x20, 0x55, 0x42, 0x4f, 0x0a, 0x2f, 0x2f, 0x20, 0x20, 0x20, 0x73, 0x65, + 0x74, 0x3d, 0x30, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x3d, + 0x33, 0x20, 0x3a, 0x20, 0x52, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x20, + 0x55, 0x42, 0x4f, 0x20, 0x28, 0x57, 0x20, 0x2a, 0x20, 0x6e, 0x75, 0x6d, + 0x52, 0x6f, 0x77, 0x73, 0x20, 0x72, 0x61, 0x77, 0x20, 0x6d, 0x61, 0x67, + 0x6e, 0x69, 0x74, 0x75, 0x64, 0x65, 0x73, 0x2c, 0x20, 0x6f, 0x6c, 0x64, + 0x65, 0x73, 0x74, 0x20, 0x72, 0x6f, 0x77, 0x20, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x29, 0x0a, 0x2f, 0x2f, 0x20, 0x20, 0x20, 0x73, 0x65, 0x74, 0x3d, + 0x30, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x34, 0x20, + 0x3a, 0x20, 0x4c, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x20, 0x55, 0x42, + 0x4f, 0x20, 0x28, 0x32, 0x35, 0x36, 0x20, 0x41, 0x52, 0x47, 0x42, 0x20, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, + 0x73, 0x29, 0x0a, 0x0a, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x28, 0x73, + 0x65, 0x74, 0x20, 0x3d, 0x20, 0x30, 0x2c, 0x20, 0x62, 0x69, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x20, 0x3d, 0x20, 0x30, 0x29, 0x20, 0x75, 0x6e, 0x69, + 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, + 0x32, 0x44, 0x20, 0x75, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x3b, 0x0a, 0x6c, + 0x61, 0x79, 0x6f, 0x75, 0x74, 0x28, 0x73, 0x65, 0x74, 0x20, 0x3d, 0x20, + 0x30, 0x2c, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x3d, + 0x20, 0x31, 0x29, 0x20, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, + 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x20, 0x20, 0x20, 0x75, 0x5f, + 0x73, 0x61, 0x6d, 0x70, 0x3b, 0x0a, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, + 0x28, 0x73, 0x65, 0x74, 0x20, 0x3d, 0x20, 0x30, 0x2c, 0x20, 0x62, 0x69, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x3d, 0x20, 0x32, 0x29, 0x20, 0x75, + 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x57, 0x61, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x6c, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x0a, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x6e, + 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, + 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x77, 0x61, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x20, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x65, 0x78, + 0x65, 0x6c, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x62, 0x69, 0x6e, 0x73, + 0x3b, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x67, 0x6e, 0x69, 0x74, + 0x75, 0x64, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x72, 0x6f, 0x77, 0x20, 0x28, 0x3c, 0x3d, 0x20, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x20, 0x70, 0x61, 0x64, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x70, 0x61, 0x64, 0x31, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x70, 0x61, + 0x64, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x20, 0x70, 0x61, 0x64, 0x33, 0x3b, 0x0a, 0x7d, 0x20, 0x70, 0x3b, + 0x0a, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x28, 0x73, 0x65, 0x74, 0x20, + 0x3d, 0x20, 0x30, 0x2c, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x20, 0x3d, 0x20, 0x33, 0x29, 0x20, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, + 0x6d, 0x20, 0x52, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x0a, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x6d, 0x61, 0x67, + 0x73, 0x5b, 0x35, 0x31, 0x32, 0x5d, 0x3b, 0x20, 0x2f, 0x2f, 0x20, 0x32, + 0x30, 0x34, 0x38, 0x20, 0x72, 0x61, 0x77, 0x20, 0x6d, 0x61, 0x67, 0x6e, + 0x69, 0x74, 0x75, 0x64, 0x65, 0x73, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x64, 0x20, 0x61, 0x73, 0x20, 0x76, 0x65, 0x63, 0x34, 0x73, 0x20, 0x28, + 0x73, 0x74, 0x64, 0x31, 0x34, 0x30, 0x20, 0x74, 0x69, 0x67, 0x68, 0x74, + 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x57, 0x20, 0x69, 0x73, 0x20, 0x61, + 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x34, 0x29, 0x0a, 0x7d, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x3b, 0x0a, + 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x28, 0x73, 0x65, 0x74, 0x20, 0x3d, + 0x20, 0x30, 0x2c, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, + 0x3d, 0x20, 0x34, 0x29, 0x20, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, + 0x20, 0x4c, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x0a, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x75, 0x76, 0x65, 0x63, 0x34, 0x20, 0x6c, 0x75, 0x74, + 0x5b, 0x36, 0x34, 0x5d, 0x3b, 0x20, 0x2f, 0x2f, 0x20, 0x32, 0x35, 0x36, + 0x20, 0x41, 0x52, 0x47, 0x42, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, + 0x20, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x75, + 0x76, 0x65, 0x63, 0x34, 0x73, 0x0a, 0x7d, 0x20, 0x6c, 0x75, 0x74, 0x3b, + 0x0a, 0x0a, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x28, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x30, 0x29, 0x20, 0x6f, + 0x75, 0x74, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x66, 0x72, 0x61, 0x67, + 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x20, 0x66, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x67, 0x28, 0x69, + 0x6e, 0x74, 0x20, 0x69, 0x64, 0x78, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x6f, 0x77, + 0x73, 0x2e, 0x6d, 0x61, 0x67, 0x73, 0x5b, 0x69, 0x64, 0x78, 0x20, 0x3e, + 0x3e, 0x20, 0x32, 0x5d, 0x5b, 0x69, 0x64, 0x78, 0x20, 0x26, 0x20, 0x33, + 0x5d, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, + 0x61, 0x69, 0x6e, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x76, 0x65, 0x63, 0x32, 0x20, 0x75, 0x76, 0x20, 0x3d, 0x20, 0x67, 0x6c, + 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x2e, 0x78, + 0x79, 0x20, 0x2f, 0x20, 0x76, 0x65, 0x63, 0x32, 0x28, 0x70, 0x2e, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x2c, 0x20, 0x70, 0x2e, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, + 0x28, 0x75, 0x76, 0x2e, 0x79, 0x20, 0x3e, 0x3d, 0x20, 0x70, 0x2e, 0x6e, + 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x20, 0x2f, 0x20, 0x70, 0x2e, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x72, 0x61, + 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, + 0x74, 0x75, 0x72, 0x65, 0x28, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, + 0x32, 0x44, 0x28, 0x75, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x2c, 0x20, 0x75, + 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x29, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x32, + 0x28, 0x75, 0x76, 0x2e, 0x78, 0x2c, 0x20, 0x75, 0x76, 0x2e, 0x79, 0x20, + 0x2d, 0x20, 0x70, 0x2e, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x20, + 0x2f, 0x20, 0x70, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x29, 0x29, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x78, + 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x67, 0x6c, 0x5f, 0x46, 0x72, + 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x2e, 0x78, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, + 0x79, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x67, 0x6c, 0x5f, 0x46, + 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x2e, 0x79, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, + 0x52, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x70, 0x6c, + 0x6f, 0x61, 0x64, 0x65, 0x64, 0x20, 0x6f, 0x6c, 0x64, 0x65, 0x73, 0x74, + 0x2d, 0x66, 0x69, 0x72, 0x73, 0x74, 0x3b, 0x20, 0x63, 0x61, 0x6e, 0x76, + 0x61, 0x73, 0x20, 0x72, 0x6f, 0x77, 0x20, 0x79, 0x20, 0x28, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x6f, 0x70, 0x29, 0x20, + 0x73, 0x68, 0x6f, 0x77, 0x73, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x28, 0x6e, 0x75, + 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x20, 0x2d, 0x20, 0x31, 0x20, 0x2d, 0x20, + 0x79, 0x29, 0x2d, 0x74, 0x68, 0x20, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x20, 0x72, 0x6f, 0x77, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x72, 0x6f, 0x77, 0x20, 0x3d, + 0x20, 0x69, 0x6e, 0x74, 0x28, 0x70, 0x2e, 0x6e, 0x75, 0x6d, 0x52, 0x6f, + 0x77, 0x73, 0x29, 0x20, 0x2d, 0x20, 0x31, 0x20, 0x2d, 0x20, 0x79, 0x3b, + 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, + 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x65, + 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x61, 0x64, 0x6a, + 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x67, 0x6e, 0x69, 0x74, + 0x75, 0x64, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x73, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x79, 0x20, 0x61, 0x78, 0x69, 0x73, 0x20, 0x69, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x73, 0x6d, 0x6f, + 0x6f, 0x74, 0x68, 0x20, 0x28, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x69, + 0x61, 0x73, 0x65, 0x64, 0x29, 0x20, 0x65, 0x76, 0x65, 0x6e, 0x20, 0x74, + 0x68, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x77, 0x69, 0x64, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x62, 0x69, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2f, 0x2f, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, + 0x62, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x28, 0x78, 0x29, 0x20, 0x2a, 0x20, 0x28, 0x70, 0x2e, 0x62, + 0x69, 0x6e, 0x73, 0x20, 0x2f, 0x20, 0x70, 0x2e, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x20, 0x62, 0x69, 0x6e, 0x30, 0x20, 0x3d, 0x20, 0x69, + 0x6e, 0x74, 0x28, 0x62, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, + 0x62, 0x69, 0x6e, 0x31, 0x20, 0x3d, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x62, + 0x69, 0x6e, 0x30, 0x20, 0x2b, 0x20, 0x31, 0x2c, 0x20, 0x69, 0x6e, 0x74, + 0x28, 0x70, 0x2e, 0x62, 0x69, 0x6e, 0x73, 0x29, 0x20, 0x2d, 0x20, 0x31, + 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x66, 0x72, 0x61, 0x63, 0x42, 0x69, 0x6e, + 0x20, 0x3d, 0x20, 0x62, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x20, 0x2d, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x62, 0x69, 0x6e, 0x30, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x20, 0x6d, 0x61, 0x67, 0x20, 0x3d, 0x20, 0x6d, 0x69, 0x78, + 0x28, 0x66, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x67, 0x28, 0x72, 0x6f, + 0x77, 0x20, 0x2a, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x70, 0x2e, 0x62, 0x69, + 0x6e, 0x73, 0x29, 0x20, 0x2b, 0x20, 0x62, 0x69, 0x6e, 0x30, 0x29, 0x2c, + 0x20, 0x66, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x67, 0x28, 0x72, 0x6f, + 0x77, 0x20, 0x2a, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x70, 0x2e, 0x62, 0x69, + 0x6e, 0x73, 0x29, 0x20, 0x2b, 0x20, 0x62, 0x69, 0x6e, 0x31, 0x29, 0x2c, + 0x20, 0x66, 0x72, 0x61, 0x63, 0x42, 0x69, 0x6e, 0x29, 0x3b, 0x0a, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x20, 0x74, 0x20, 0x3d, 0x20, 0x63, 0x6c, 0x61, 0x6d, 0x70, 0x28, + 0x6d, 0x61, 0x67, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, + 0x30, 0x29, 0x20, 0x2a, 0x20, 0x32, 0x35, 0x35, 0x2e, 0x30, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, + 0x69, 0x30, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x74, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x20, 0x69, 0x31, 0x20, 0x3d, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x69, 0x30, + 0x20, 0x2b, 0x20, 0x31, 0x2c, 0x20, 0x32, 0x35, 0x35, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x20, 0x66, 0x72, 0x61, 0x63, 0x20, 0x3d, 0x20, 0x74, 0x20, 0x2d, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x69, 0x30, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x75, 0x69, 0x6e, 0x74, + 0x20, 0x63, 0x30, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x74, 0x2e, 0x6c, 0x75, + 0x74, 0x5b, 0x69, 0x30, 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x5d, 0x5b, 0x69, + 0x30, 0x20, 0x26, 0x20, 0x33, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x20, 0x63, 0x31, 0x20, + 0x3d, 0x20, 0x6c, 0x75, 0x74, 0x2e, 0x6c, 0x75, 0x74, 0x5b, 0x69, 0x31, + 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x5d, 0x5b, 0x69, 0x31, 0x20, 0x26, 0x20, + 0x33, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x76, 0x65, 0x63, 0x34, 0x20, 0x63, 0x6f, 0x6c, 0x30, 0x20, 0x3d, 0x20, + 0x76, 0x65, 0x63, 0x34, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, + 0x63, 0x30, 0x20, 0x3e, 0x3e, 0x20, 0x31, 0x36, 0x29, 0x20, 0x26, 0x20, + 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x28, 0x28, 0x63, 0x30, 0x20, 0x3e, 0x3e, 0x20, 0x38, 0x29, 0x20, 0x26, + 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x28, 0x63, 0x30, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, + 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, 0x30, 0x20, + 0x3e, 0x3e, 0x20, 0x32, 0x34, 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, + 0x75, 0x29, 0x29, 0x20, 0x2f, 0x20, 0x32, 0x35, 0x35, 0x2e, 0x30, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, + 0x34, 0x20, 0x63, 0x6f, 0x6c, 0x31, 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, + 0x34, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, 0x31, 0x20, + 0x3e, 0x3e, 0x20, 0x31, 0x36, 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, + 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, + 0x31, 0x20, 0x3e, 0x3e, 0x20, 0x38, 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, + 0x35, 0x75, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x63, + 0x31, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x2c, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x63, 0x31, 0x20, 0x3e, 0x3e, 0x20, + 0x32, 0x34, 0x29, 0x20, 0x26, 0x20, 0x32, 0x35, 0x35, 0x75, 0x29, 0x29, + 0x20, 0x2f, 0x20, 0x32, 0x35, 0x35, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x72, 0x61, 0x67, 0x43, 0x6f, + 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x6d, 0x69, 0x78, 0x28, 0x63, 0x6f, + 0x6c, 0x30, 0x2c, 0x20, 0x63, 0x6f, 0x6c, 0x31, 0x2c, 0x20, 0x66, 0x72, + 0x61, 0x63, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x7d, + 0x0a, 0x52, 0x45, 0x46, 0x4c, 0x67, 0x05, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, + 0x6e, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x00, 0x52, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x67, 0x73, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x13, + 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x0f, + 0x00, 0x00, 0x00, 0x57, 0x61, 0x74, 0x65, 0x72, 0x66, 0x61, 0x6c, 0x6c, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, + 0x00, 0x00, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x05, 0x00, 0x00, 0x00, 0x77, 0x69, 0x64, 0x74, 0x68, 0x04, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x62, 0x69, 0x6e, 0x73, + 0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x30, + 0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x31, + 0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x32, + 0x18, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x33, + 0x1c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x02, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x4c, + 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x6c, 0x75, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x66, 0x72, 0x61, 0x67, + 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x20, 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, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 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, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x75, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, + 0x00, 0x75, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x0b, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 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, 0x46, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, + 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, + 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x20, 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, 0x24, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x43, 0x61, 0x70, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x28, 0x31, 0x29, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00 diff --git a/modules/yup_audio_gui/displays/yup_SpectrogramComponentShader.vert b/modules/yup_audio_gui/displays/yup_SpectrogramComponentShader.vert new file mode 100644 index 000000000..ad60fe039 --- /dev/null +++ b/modules/yup_audio_gui/displays/yup_SpectrogramComponentShader.vert @@ -0,0 +1,29 @@ +/* + ============================================================================== + + This file is part of the YUP library. + Copyright (c) 2026 - kunitoki@gmail.com + + YUP is an open source library subject to open-source licensing. + + The code included in this file is provided under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license. Permission + to use, copy, modify, and/or distribute this software for any purpose with or + without fee is hereby granted provided that the above copyright notice and + this permission notice appear in all copies. + + YUP IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER + EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE + DISCLAIMED. + + ============================================================================== +*/ + +#version 450 + +void main() +{ + float x = float((gl_VertexIndex & 1u) << 2u) - 1.0; + float y = float((gl_VertexIndex & 2u) << 1u) - 1.0; + gl_Position = vec4(x, y, 0.0, 1.0); +} diff --git a/modules/yup_audio_gui/displays/yup_SpectrumAnalyzerComponent.cpp b/modules/yup_audio_gui/displays/yup_SpectrumAnalyzerComponent.cpp index abcfbdbaa..d06a7156b 100644 --- a/modules/yup_audio_gui/displays/yup_SpectrumAnalyzerComponent.cpp +++ b/modules/yup_audio_gui/displays/yup_SpectrumAnalyzerComponent.cpp @@ -95,8 +95,7 @@ void SpectrumAnalyzerComponent::processFFT() } // Apply window function - for (int i = 0; i < fftSize; ++i) - fftInputBuffer[static_cast (i)] *= windowBuffer[static_cast (i)]; + FloatVectorOperations::multiply (fftInputBuffer.data(), windowBuffer.data(), fftInputBuffer.data(), fftSize); // Perform FFT fftProcessor->performRealFFTForward (fftInputBuffer.data(), fftOutputBuffer.data()); diff --git a/tests/yup_audio_gui/yup_SpectrogramComponent.cpp b/tests/yup_audio_gui/yup_SpectrogramComponent.cpp index d882cca2a..9102afeea 100644 --- a/tests/yup_audio_gui/yup_SpectrogramComponent.cpp +++ b/tests/yup_audio_gui/yup_SpectrogramComponent.cpp @@ -24,6 +24,7 @@ #include #include +#include #include using namespace yup; @@ -51,6 +52,46 @@ std::vector createSineBuffer (int numSamples, float period) return buffer; } +// Returns true when every pixel of the given row equals the expected RGBA color +// (bytes are compared as R, G, B, A, matching the readback pixel layout). +bool spectrogramRowIsColor (const Image& image, int row, uint32 expectedColor) +{ + const auto raw = image.getRawData(); + const auto rowBytes = static_cast (image.getWidth()) * 4u; + const auto rowData = raw.data() + static_cast (row) * rowBytes; + + const uint8 expectedBytes[4] = { + static_cast ((expectedColor >> 16) & 0xff), // R + static_cast ((expectedColor >> 8) & 0xff), // G + static_cast (expectedColor & 0xff), // B + static_cast ((expectedColor >> 24) & 0xff), // A + }; + + for (int x = 0; x < image.getWidth(); ++x) + { + if (std::memcmp (rowData + static_cast (x) * 4u, expectedBytes, 4) != 0) + return false; + } + + return true; +} + +// Returns true when two rows of two images hold identical bytes. +bool spectrogramRowsEqual (const Image& a, int rowA, const Image& b, int rowB) +{ + if (a.getWidth() != b.getWidth()) + return false; + + const auto rawA = a.getRawData(); + const auto rawB = b.getRawData(); + const auto rowBytes = static_cast (a.getWidth()) * 4u; + + return std::memcmp (rawA.data() + static_cast (rowA) * rowBytes, + rawB.data() + static_cast (rowB) * rowBytes, + rowBytes) + == 0; +} + } // namespace class SpectrogramComponentTests : public ::testing::Test @@ -129,7 +170,6 @@ TEST_F (SpectrogramComponentTests, ConstructorInitializesDefaults) { EXPECT_EQ (2048, spectrogram->getFFTSize()); EXPECT_EQ (WindowType::hann, spectrogram->getWindowType()); - EXPECT_EQ (25, spectrogram->getUpdateRate()); EXPECT_FLOAT_EQ (20.0f, spectrogram->getMinFrequency()); EXPECT_FLOAT_EQ (20000.0f, spectrogram->getMaxFrequency()); EXPECT_FLOAT_EQ (-100.0f, spectrogram->getMinDecibels()); @@ -175,22 +215,6 @@ TEST_F (SpectrogramComponentTests, SetWindowTypeUpdatesCurrentWindow) EXPECT_EQ (WindowType::rectangular, spectrogram->getWindowType()); } -TEST_F (SpectrogramComponentTests, SetUpdateRateClampsToSupportedRange) -{ - spectrogram->setUpdateRate (30); - EXPECT_EQ (30, spectrogram->getUpdateRate()); - - spectrogram->setUpdateRate (0); - EXPECT_EQ (1, spectrogram->getUpdateRate()); - - spectrogram->setUpdateRate (-10); - EXPECT_EQ (1, spectrogram->getUpdateRate()); - - spectrogram->setUpdateRate (1000); - EXPECT_GE (spectrogram->getUpdateRate(), 60); - EXPECT_LE (spectrogram->getUpdateRate(), 63); -} - TEST_F (SpectrogramComponentTests, SetFrequencyRangeUpdatesAndClampsValues) { spectrogram->setFrequencyRange (100.0f, 5000.0f); @@ -244,28 +268,10 @@ TEST_F (SpectrogramComponentTests, SetNumHistoryFramesUpdatesAndClampsToMinimum) spectrogram->setNumHistoryFrames (64); EXPECT_EQ (64, spectrogram->getNumHistoryFrames()); - ASSERT_TRUE (spectrogram->getSpectrogramImage().isValid()); - EXPECT_EQ (SpectrogramComponent::defaultSpectrogramWidth, spectrogram->getSpectrogramImage().getWidth()); - EXPECT_EQ (64, spectrogram->getSpectrogramImage().getHeight()); spectrogram->setNumHistoryFrames (1); EXPECT_EQ (4, spectrogram->getNumHistoryFrames()); - ASSERT_TRUE (spectrogram->getSpectrogramImage().isValid()); - EXPECT_EQ (SpectrogramComponent::defaultSpectrogramWidth, spectrogram->getSpectrogramImage().getWidth()); - EXPECT_EQ (4, spectrogram->getSpectrogramImage().getHeight()); -} - -TEST_F (SpectrogramComponentTests, GetSpectrogramImageReturnsCurrentHistoryImage) -{ - spectrogram->setNumHistoryFrames (8); - - const auto& image = spectrogram->getSpectrogramImage(); - - ASSERT_TRUE (image.isValid()); - EXPECT_EQ (SpectrogramComponent::defaultSpectrogramWidth, image.getWidth()); - EXPECT_EQ (8, image.getHeight()); - EXPECT_EQ (PixelFormat::RGBA, image.getPixelFormat()); } TEST_F (SpectrogramComponentTests, SetOverlapFactorDelegatesToAnalyzerState) @@ -282,27 +288,63 @@ TEST_F (SpectrogramComponentTests, SetOverlapFactorDelegatesToAnalyzerState) EXPECT_EQ (spectrogram->getFFTSize(), state->getHopSize()); } +TEST_F (SpectrogramComponentTests, SetScrollSpeedClampsToNonNegative) +{ + EXPECT_FLOAT_EQ (1.0f, spectrogram->getScrollSpeed()); + + spectrogram->setScrollSpeed (2.0f); + EXPECT_FLOAT_EQ (2.0f, spectrogram->getScrollSpeed()); + + spectrogram->setScrollSpeed (0.0f); + EXPECT_FLOAT_EQ (0.0f, spectrogram->getScrollSpeed()); + + spectrogram->setScrollSpeed (-1.0f); + EXPECT_FLOAT_EQ (0.0f, spectrogram->getScrollSpeed()); +} + //============================================================================== // Runtime Tests //============================================================================== -TEST_F (SpectrogramComponentTests, TimerCallbackWithoutAudioDataDoesNotCrash) +TEST_F (SpectrogramComponentTests, RefreshDisplayWithoutAudioDataDoesNotCrash) { - spectrogram->timerCallback(); + spectrogram->refreshDisplay (1.0 / 60.0); EXPECT_TRUE (true); } -TEST_F (SpectrogramComponentTests, TimerCallbackWithAudioDataDoesNotCrash) +TEST_F (SpectrogramComponentTests, RefreshDisplayWithAudioDataDoesNotCrash) { const auto testData = createSineBuffer (2048, 100.0f); state->pushSamples (testData.data(), static_cast (testData.size())); - spectrogram->timerCallback(); + spectrogram->refreshDisplay (1.0 / 60.0); EXPECT_TRUE (true); } +TEST_F (SpectrogramComponentTests, RefreshDisplaySkipsStaleBacklog) +{ + // refreshDisplay() only processes FFTs while the component is showing. + auto parent = std::make_unique ("parent"); + parent->setVisible (true); + parent->addAndMakeVisible (*spectrogram); + + spectrogram->setFFTSize (512); + spectrogram->setOverlapFactor (0.75f); // hop = fftSize / 4 + + // Fill the FIFO with far more than one analysis window (a stale backlog). + const auto testData = createSineBuffer (spectrogram->getFFTSize() * 8, 100.0f); + state->pushSamples (testData.data(), static_cast (testData.size())); + + spectrogram->refreshDisplay (1.0 / 60.0); + + // The stale rows are skipped: after ingestion the FIFO holds less than a + // full window instead of accumulating the backlog (which would make the + // display lag progressively behind the audio). + EXPECT_LT (state->getNumAvailableSamples(), spectrogram->getFFTSize()); +} + TEST_F (SpectrogramComponentTests, ClearHistoryDoesNotChangeConfiguration) { spectrogram->setFrequencyRange (100.0f, 10000.0f); @@ -318,9 +360,6 @@ TEST_F (SpectrogramComponentTests, ClearHistoryDoesNotChangeConfiguration) EXPECT_FLOAT_EQ (-6.0f, spectrogram->getMaxDecibels()); EXPECT_DOUBLE_EQ (48000.0, spectrogram->getSampleRate()); EXPECT_EQ (32, spectrogram->getNumHistoryFrames()); - ASSERT_TRUE (spectrogram->getSpectrogramImage().isValid()); - EXPECT_EQ (SpectrogramComponent::defaultSpectrogramWidth, spectrogram->getSpectrogramImage().getWidth()); - EXPECT_EQ (32, spectrogram->getSpectrogramImage().getHeight()); } TEST_F (SpectrogramComponentTests, PaintWithoutAudioDataDoesNotCrash) @@ -334,11 +373,11 @@ TEST_F (SpectrogramComponentTests, PaintWithoutAudioDataDoesNotCrash) EXPECT_TRUE (true); } -TEST_F (SpectrogramComponentTests, PaintAfterTimerCallbackDoesNotCrash) +TEST_F (SpectrogramComponentTests, PaintAfterRefreshDisplayDoesNotCrash) { const auto testData = createSineBuffer (2048, 100.0f); state->pushSamples (testData.data(), static_cast (testData.size())); - spectrogram->timerCallback(); + spectrogram->refreshDisplay (1.0 / 60.0); auto context = yup_constructHeadlessGraphicsContext ({}, {}); auto renderer = context->makeRenderer (800, 400); @@ -368,7 +407,6 @@ TEST_F (SpectrogramComponentTests, CompleteWorkflow) { spectrogram->setFFTSize (4096); spectrogram->setWindowType (WindowType::hamming); - spectrogram->setUpdateRate (30); spectrogram->setFrequencyRange (20.0f, 20000.0f); spectrogram->setDecibelRange (-100.0f, 0.0f); spectrogram->setSampleRate (48000.0); @@ -378,7 +416,7 @@ TEST_F (SpectrogramComponentTests, CompleteWorkflow) const auto testData = createSineBuffer (4096, 100.0f); state->pushSamples (testData.data(), static_cast (testData.size())); - spectrogram->timerCallback(); + spectrogram->refreshDisplay (1.0 / 60.0); auto context = yup_constructHeadlessGraphicsContext ({}, {}); auto renderer = context->makeRenderer (800, 400); @@ -388,7 +426,152 @@ TEST_F (SpectrogramComponentTests, CompleteWorkflow) EXPECT_EQ (4096, spectrogram->getFFTSize()); EXPECT_EQ (WindowType::hamming, spectrogram->getWindowType()); - EXPECT_EQ (30, spectrogram->getUpdateRate()); EXPECT_EQ (128, spectrogram->getNumHistoryFrames()); EXPECT_FLOAT_EQ (0.5f, spectrogram->getOverlapFactor()); } + +//============================================================================== +// GPU Path Tests (skipped when no GPU backend is available) +//============================================================================== + +class SpectrogramComponentGpuTests : public ::testing::Test +{ +protected: + static void SetUpTestSuite() + { + gpuContext = GraphicsContext::createContext (GpuPlatform::Metal, {}); + if (gpuContext == nullptr) + return; + + auto probe = GpuCanvas::create (*gpuContext, 64, 64); + if (probe == nullptr) + gpuContext.reset(); + } + + static void TearDownTestSuite() + { + gpuContext.reset(); + } + + void SetUp() override + { + if (gpuContext == nullptr) + GTEST_SKIP() << "No Metal GPU context available"; + + paintCanvas = GpuCanvas::create (*gpuContext, 800, 400); + if (paintCanvas == nullptr) + GTEST_SKIP() << "Unable to create paint GpuCanvas"; + + mm = MessageManager::getInstance(); + state = std::make_unique (2048); + spectrogram = std::make_unique (*state); + spectrogram->setBounds (0.0f, 0.0f, 800.0f, 400.0f); + + // refreshDisplay() only processes FFTs while the component is showing. + parent = std::make_unique ("parent"); + parent->setVisible (true); + parent->addAndMakeVisible (*spectrogram); + } + + void TearDown() override + { + spectrogram.reset(); + state.reset(); + paintCanvas.reset(); + parent.reset(); + } + + void paintComponent() + { + auto& g = paintCanvas->beginDraw(); + spectrogram->paint (g); + paintCanvas->commit(); + } + + void pushOneFftRow() + { + const auto testData = createSineBuffer (spectrogram->getFFTSize(), 100.0f); + state->pushSamples (testData.data(), static_cast (testData.size())); + spectrogram->refreshDisplay (1.0 / 60.0); + paintComponent(); + } + + static std::unique_ptr gpuContext; + + MessageManager* mm = nullptr; + GpuCanvas::Ptr paintCanvas; + std::unique_ptr parent; + std::unique_ptr state; + std::unique_ptr spectrogram; +}; + +std::unique_ptr SpectrogramComponentGpuTests::gpuContext; + +TEST_F (SpectrogramComponentGpuTests, AppliesRowsAndScrollsHistoryOnGpu) +{ + spectrogram->setNumHistoryFrames (16); + spectrogram->setOverlapFactor (0.0f); // one FFT per fftSize samples + + paintComponent(); // first paint creates the internal ping-pong canvases + + // First row: only the top row is non-background. + pushOneFftRow(); + + auto snapshot1 = spectrogram->getSpectrogramImage(); + + ASSERT_TRUE (snapshot1.isValid()); + EXPECT_EQ (SpectrogramComponent::defaultSpectrogramWidth, snapshot1.getWidth()); + EXPECT_EQ (16, snapshot1.getHeight()); + EXPECT_FALSE (spectrogramRowIsColor (snapshot1, 0, 0xFF0a0a0a)); + + for (int row = 1; row < 16; ++row) + EXPECT_TRUE (spectrogramRowIsColor (snapshot1, row, 0xFF0a0a0a)); + + // Second row: the previous top row must have scrolled down by exactly one + // row, and the new top row must be non-background. + pushOneFftRow(); + + auto snapshot2 = spectrogram->getSpectrogramImage(); + + ASSERT_TRUE (snapshot2.isValid()); + EXPECT_TRUE (spectrogramRowsEqual (snapshot2, 1, snapshot1, 0)); + EXPECT_FALSE (spectrogramRowIsColor (snapshot2, 0, 0xFF0a0a0a)); + + for (int row = 2; row < 16; ++row) + EXPECT_TRUE (spectrogramRowIsColor (snapshot2, row, 0xFF0a0a0a)); +} + +TEST_F (SpectrogramComponentGpuTests, ClearHistoryResetsGpuHistoryToBackground) +{ + spectrogram->setNumHistoryFrames (8); + spectrogram->setOverlapFactor (0.0f); + + paintComponent(); + pushOneFftRow(); + + auto before = spectrogram->getSpectrogramImage(); + ASSERT_TRUE (before.isValid()); + EXPECT_FALSE (spectrogramRowIsColor (before, 0, 0xFF0a0a0a)); + + spectrogram->clearHistory(); + + auto after = spectrogram->getSpectrogramImage(); + ASSERT_TRUE (after.isValid()); + + for (int row = 0; row < 8; ++row) + EXPECT_TRUE (spectrogramRowIsColor (after, row, 0xFF0a0a0a)); +} + +TEST_F (SpectrogramComponentGpuTests, GetSpectrogramImageReturnsCurrentHistoryImage) +{ + spectrogram->setNumHistoryFrames (8); + + paintComponent(); // first paint creates the internal ping-pong canvases + + const auto image = spectrogram->getSpectrogramImage(); + + ASSERT_TRUE (image.isValid()); + EXPECT_EQ (SpectrogramComponent::defaultSpectrogramWidth, image.getWidth()); + EXPECT_EQ (8, image.getHeight()); + EXPECT_EQ (PixelFormat::RGBA, image.getPixelFormat()); +}