diff options
68 files changed, 9264 insertions, 238 deletions
diff --git a/cmds/screenrecord/Android.mk b/cmds/screenrecord/Android.mk index b4a5947..d77fdb6 100644 --- a/cmds/screenrecord/Android.mk +++ b/cmds/screenrecord/Android.mk @@ -18,10 +18,14 @@ include $(CLEAR_VARS) LOCAL_SRC_FILES := \ screenrecord.cpp \ + EglWindow.cpp \ + TextRenderer.cpp \ + Overlay.cpp \ + Program.cpp LOCAL_SHARED_LIBRARIES := \ libstagefright libmedia libutils libbinder libstagefright_foundation \ - libjpeg libgui libcutils liblog + libjpeg libgui libcutils liblog libEGL libGLESv2 LOCAL_C_INCLUDES := \ frameworks/av/media/libstagefright \ @@ -30,6 +34,7 @@ LOCAL_C_INCLUDES := \ external/jpeg LOCAL_CFLAGS += -Wno-multichar +#LOCAL_CFLAGS += -UNDEBUG LOCAL_MODULE_TAGS := optional diff --git a/cmds/screenrecord/EglWindow.cpp b/cmds/screenrecord/EglWindow.cpp new file mode 100644 index 0000000..aa0517f --- /dev/null +++ b/cmds/screenrecord/EglWindow.cpp @@ -0,0 +1,146 @@ +/* + * Copyright 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define LOG_TAG "ScreenRecord" +//#define LOG_NDEBUG 0 +#include <utils/Log.h> + +#define EGL_EGLEXT_PROTOTYPES + +#include <gui/BufferQueue.h> +#include <gui/GraphicBufferAlloc.h> +#include <gui/Surface.h> + +#include "EglWindow.h" + +#include <EGL/egl.h> +#include <EGL/eglext.h> + +#include <assert.h> + +using namespace android; + + +status_t EglWindow::createWindow(const sp<IGraphicBufferProducer>& surface) { + status_t err = eglSetupContext(); + if (err != NO_ERROR) { + return err; + } + + surface->query(NATIVE_WINDOW_WIDTH, &mWidth); + surface->query(NATIVE_WINDOW_HEIGHT, &mHeight); + + // Output side (EGL surface to draw on). + sp<ANativeWindow> anw = new Surface(surface); + mEglSurface = eglCreateWindowSurface(mEglDisplay, mEglConfig, anw.get(), + NULL); + if (mEglSurface == EGL_NO_SURFACE) { + ALOGE("eglCreateWindowSurface error: %#x", eglGetError()); + eglRelease(); + return UNKNOWN_ERROR; + } + + return NO_ERROR; +} + +status_t EglWindow::makeCurrent() const { + if (!eglMakeCurrent(mEglDisplay, mEglSurface, mEglSurface, mEglContext)) { + ALOGE("eglMakeCurrent failed: %#x", eglGetError()); + return UNKNOWN_ERROR; + } + return NO_ERROR; +} + +status_t EglWindow::eglSetupContext() { + EGLBoolean result; + + mEglDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY); + if (mEglDisplay == EGL_NO_DISPLAY) { + ALOGE("eglGetDisplay failed: %#x", eglGetError()); + return UNKNOWN_ERROR; + } + + EGLint majorVersion, minorVersion; + result = eglInitialize(mEglDisplay, &majorVersion, &minorVersion); + if (result != EGL_TRUE) { + ALOGE("eglInitialize failed: %#x", eglGetError()); + return UNKNOWN_ERROR; + } + ALOGV("Initialized EGL v%d.%d", majorVersion, minorVersion); + + EGLint numConfigs = 0; + EGLint configAttribs[] = { + EGL_SURFACE_TYPE, EGL_WINDOW_BIT, + EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, + EGL_RECORDABLE_ANDROID, 1, + EGL_RED_SIZE, 8, + EGL_GREEN_SIZE, 8, + EGL_BLUE_SIZE, 8, + EGL_NONE + }; + result = eglChooseConfig(mEglDisplay, configAttribs, &mEglConfig, 1, + &numConfigs); + if (result != EGL_TRUE) { + ALOGE("eglChooseConfig error: %#x", eglGetError()); + return UNKNOWN_ERROR; + } + + EGLint contextAttribs[] = { + EGL_CONTEXT_CLIENT_VERSION, 2, + EGL_NONE + }; + mEglContext = eglCreateContext(mEglDisplay, mEglConfig, EGL_NO_CONTEXT, + contextAttribs); + if (mEglContext == EGL_NO_CONTEXT) { + ALOGE("eglCreateContext error: %#x", eglGetError()); + return UNKNOWN_ERROR; + } + + return NO_ERROR; +} + +void EglWindow::eglRelease() { + ALOGV("EglWindow::eglRelease"); + if (mEglDisplay != EGL_NO_DISPLAY) { + eglMakeCurrent(mEglDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, + EGL_NO_CONTEXT); + + if (mEglContext != EGL_NO_CONTEXT) { + eglDestroyContext(mEglDisplay, mEglContext); + } + + if (mEglSurface != EGL_NO_SURFACE) { + eglDestroySurface(mEglDisplay, mEglSurface); + } + } + + mEglDisplay = EGL_NO_DISPLAY; + mEglContext = EGL_NO_CONTEXT; + mEglSurface = EGL_NO_SURFACE; + mEglConfig = NULL; + + eglReleaseThread(); +} + +// Sets the presentation time on the current EGL buffer. +void EglWindow::presentationTime(nsecs_t whenNsec) const { + eglPresentationTimeANDROID(mEglDisplay, mEglSurface, whenNsec); +} + +// Swaps the EGL buffer. +void EglWindow::swapBuffers() const { + eglSwapBuffers(mEglDisplay, mEglSurface); +} diff --git a/cmds/screenrecord/EglWindow.h b/cmds/screenrecord/EglWindow.h new file mode 100644 index 0000000..02a2efc --- /dev/null +++ b/cmds/screenrecord/EglWindow.h @@ -0,0 +1,84 @@ +/* + * Copyright 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef SCREENRECORD_EGL_WINDOW_H +#define SCREENRECORD_EGL_WINDOW_H + +#include <gui/BufferQueue.h> +#include <utils/Errors.h> + +#include <EGL/egl.h> + +namespace android { + +/* + * Wraps EGL display, context, surface, config for a window surface. + * + * Not thread safe. + */ +class EglWindow { +public: + EglWindow() : + mEglDisplay(EGL_NO_DISPLAY), + mEglContext(EGL_NO_CONTEXT), + mEglSurface(EGL_NO_SURFACE), + mEglConfig(NULL), + mWidth(0), + mHeight(0) + {} + ~EglWindow() { eglRelease(); } + + // Creates an EGL window for the supplied surface. + status_t createWindow(const sp<IGraphicBufferProducer>& surface); + + // Return width and height values (obtained from IGBP). + int getWidth() const { return mWidth; } + int getHeight() const { return mHeight; } + + // Release anything we created. + void release() { eglRelease(); } + + // Make this context current. + status_t makeCurrent() const; + + // Sets the presentation time on the current EGL buffer. + void presentationTime(nsecs_t whenNsec) const; + + // Swaps the EGL buffer. + void swapBuffers() const; + +private: + EglWindow(const EglWindow&); + EglWindow& operator=(const EglWindow&); + + // Init display, create config and context. + status_t eglSetupContext(); + void eglRelease(); + + // Basic EGL goodies. + EGLDisplay mEglDisplay; + EGLContext mEglContext; + EGLSurface mEglSurface; + EGLConfig mEglConfig; + + // Surface dimensions. + int mWidth; + int mHeight; +}; + +}; // namespace android + +#endif /*SCREENRECORD_EGL_WINDOW_H*/ diff --git a/cmds/screenrecord/FontBitmap.h b/cmds/screenrecord/FontBitmap.h new file mode 100644 index 0000000..2b94f35 --- /dev/null +++ b/cmds/screenrecord/FontBitmap.h @@ -0,0 +1,6571 @@ +// auto-generated from Android default system font at 24pts +class FontBitmap { +public: + static const uint32_t width = 256; + static const uint32_t height = 204; + static const uint32_t numGlyphs = 95; + static const uint32_t firstGlyphChar = 32; + static const uint32_t maxGlyphHeight = 34; + static const uint32_t outlineWidth = 1; + static const uint8_t pixels[]; + static const uint16_t yoffset[]; + static const uint16_t glyphWidth[]; +}; +const uint8_t FontBitmap::pixels[] = { + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x64, 0xca, 0xd2, + 0xb4, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xe, 0x40, 0x68, 0x62, 0x4a, + 0x4a, 0x6a, 0x5c, 0x30, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xb4, 0x9b, 0xd7, + 0x4b, 0x48, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xe, 0x40, 0x68, 0x66, 0x3e, 0xa, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x2, 0x66, 0x9a, 0x98, + 0x56, 0x0, 0x1c, 0xa0, 0xa8, 0x9c, 0x16, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x4, 0xe, 0x1a, 0x20, 0x16, 0xc, + 0x0, 0x0, 0x0, 0x3e, 0x27, 0x67, 0x67, 0x13, + 0x39, 0x67, 0x61, 0xde, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x6, 0x12, 0x16, 0x10, 0x6, + 0xc, 0x16, 0x14, 0xa, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x14, 0xe4, 0xbb, 0xff, + 0x5b, 0x78, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x10, 0x3e, 0x5a, 0x54, 0x2c, + 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x1a, 0x4a, 0x6c, 0x62, 0x38, 0xa, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x3e, 0x27, 0x67, 0x67, 0x21, 0x32, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x6, 0x9c, 0xd, 0x9d, 0x8d, + 0xcc, 0x0, 0x74, 0x43, 0xc7, 0x39, 0xdc, 0x24, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x8, 0x14, 0x18, 0x10, 0x4, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xa, 0x14, 0x1a, 0x12, 0x6, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x1c, 0x4a, 0x6c, 0x68, 0x40, + 0x14, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x4, 0x2a, 0x58, 0x76, + 0x68, 0x3e, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x54, 0x11, 0x23, 0x23, 0x23, 0xfe, + 0x0, 0x0, 0x0, 0x64, 0x63, 0xff, 0xff, 0x35, + 0x8d, 0xff, 0xf1, 0xf8, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x9c, 0x19, 0x23, 0x15, 0x7e, + 0xb, 0x23, 0x21, 0xb8, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x2e, 0xba, 0xfe, 0x35, 0xcb, 0xff, + 0x77, 0x5, 0xd8, 0x4a, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x2, 0x78, 0xfc, 0x2f, 0x5f, 0x51, 0x19, + 0xe0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x20, 0xba, 0xfe, 0x41, 0x67, 0x5f, 0x21, 0xf2, + 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x64, 0x63, 0xff, 0xff, 0x57, 0x4e, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x88, 0x15, 0xcb, 0xff, 0xdb, + 0xd4, 0x0, 0x7a, 0x9b, 0xff, 0xef, 0x4f, 0xd8, + 0x14, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x9c, 0x1d, 0x23, 0x13, 0x56, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x12, + 0xfa, 0x21, 0x23, 0x17, 0x5a, 0x0, 0x0, 0x0, + 0x0, 0x3e, 0xd0, 0xfe, 0x43, 0x67, 0x61, 0x33, + 0xfe, 0xae, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x16, 0x4e, 0x98, 0xd4, 0xf8, + 0x5, 0xde, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x6, 0x70, 0xf0, 0x11, 0x53, 0x69, + 0x5f, 0x2f, 0xfe, 0xb2, 0x26, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x8c, 0x89, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x0, 0x0, 0x7a, 0x63, 0xff, 0xff, 0x27, + 0x8d, 0xff, 0xeb, 0xfc, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xec, 0xcb, 0xff, 0x89, 0xbe, + 0x71, 0xff, 0xdf, 0xdc, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x38, 0xf6, 0x5d, 0xd9, 0xff, 0xff, 0xff, + 0xff, 0xe9, 0x7f, 0xfe, 0x5e, 0x0, 0x0, 0x0, + 0x0, 0x58, 0xb, 0xaf, 0xff, 0xff, 0xff, 0xf1, + 0x71, 0xec, 0x16, 0x4, 0x38, 0x38, 0x36, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x12, + 0xde, 0x49, 0xdb, 0xff, 0xff, 0xff, 0xf9, 0x97, + 0xfe, 0x52, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x7a, 0x63, 0xff, 0xff, 0x4d, 0x4c, 0x0, 0x0, + 0x0, 0x0, 0x42, 0xfe, 0xbb, 0xff, 0xfb, 0x5f, + 0xc0, 0x0, 0x6a, 0x25, 0xdf, 0xff, 0xed, 0x33, + 0x9e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xd2, 0xcb, 0xff, 0x89, 0x84, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x62, + 0x31, 0xff, 0xff, 0x8d, 0x66, 0x0, 0x0, 0x0, + 0x4e, 0xfe, 0x71, 0xe5, 0xff, 0xff, 0xff, 0xff, + 0xd1, 0x4b, 0xe8, 0x24, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x78, 0xe8, 0xfe, 0x37, 0x73, 0xa3, 0xcf, + 0xf5, 0x15, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x4, 0xa6, 0x15, 0xa5, 0xf7, 0xff, 0xff, + 0xff, 0xff, 0xd3, 0x53, 0xf2, 0x2e, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xb0, 0x89, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x0, 0x0, 0x7a, 0x63, 0xff, 0xf5, 0xfe, + 0x8d, 0xff, 0xd1, 0xf6, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xe, 0xfe, 0xef, 0xff, 0x5b, 0xe2, + 0x9b, 0xff, 0xbb, 0xe8, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xd4, 0x6b, 0xfd, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x95, 0xf6, 0x16, 0x0, 0x0, + 0x0, 0xc4, 0x8f, 0xff, 0xff, 0xbf, 0xdb, 0xff, + 0xf9, 0x39, 0x5e, 0x68, 0x13, 0x67, 0xfe, 0x6c, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x72, + 0x31, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x89, 0xda, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x7a, 0x63, 0xff, 0xff, 0x19, 0x2a, 0x0, 0x0, + 0x0, 0x4, 0xda, 0x77, 0xff, 0xff, 0x89, 0xf4, + 0x30, 0x0, 0xc, 0xc0, 0x41, 0xf9, 0xff, 0xc9, + 0xfe, 0x3c, 0x0, 0x0, 0x0, 0x6, 0x2e, 0x2e, + 0x2a, 0xe8, 0xbf, 0xff, 0x7b, 0x9e, 0x1a, 0x1a, + 0x1a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, + 0x1a, 0x32, 0x46, 0x34, 0x1c, 0x4, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc8, + 0x8d, 0xff, 0xff, 0x31, 0x62, 0x0, 0x0, 0x12, + 0xf0, 0x83, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xf7, 0x4f, 0xbc, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xd6, 0xaf, 0xef, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x15, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x64, 0x11, 0xd1, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xfb, 0x5d, 0xc8, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xb0, 0x89, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x0, 0x0, 0x7a, 0x63, 0xff, 0xdb, 0xfe, + 0x8d, 0xff, 0xb5, 0xe2, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x3c, 0x29, 0xff, 0xff, 0x23, 0xf2, + 0xc3, 0xff, 0x93, 0xc2, 0x0, 0x0, 0x0, 0x0, + 0x22, 0x9, 0xe9, 0xff, 0xff, 0xef, 0x93, 0x89, + 0xe5, 0xff, 0xff, 0xfd, 0x39, 0x68, 0x0, 0x0, + 0x0, 0xf2, 0xd5, 0xff, 0xa7, 0xfe, 0xf, 0xeb, + 0xff, 0x87, 0xac, 0xf4, 0x9b, 0xff, 0xa3, 0x7a, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc8, + 0x9f, 0xff, 0xff, 0xed, 0x85, 0x9d, 0xfd, 0xff, + 0xeb, 0xfe, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x7a, 0x63, 0xff, 0xe7, 0xfe, 0x6, 0x0, 0x0, + 0x0, 0x4c, 0x11, 0xed, 0xff, 0xdf, 0x9, 0x52, + 0x0, 0x0, 0x0, 0x1a, 0xf4, 0xa3, 0xff, 0xff, + 0x6f, 0xc0, 0x0, 0x0, 0x0, 0x42, 0x17, 0x57, + 0xfe, 0xf8, 0xb5, 0xff, 0x6d, 0xec, 0x5, 0x41, + 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x12, + 0xb, 0x3f, 0x3f, 0x3f, 0xf, 0x1c, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x16, 0xfe, + 0xd5, 0xff, 0xd1, 0xfc, 0x12, 0x0, 0x0, 0x68, + 0x31, 0xf9, 0xff, 0xff, 0xdf, 0x89, 0x95, 0xf3, + 0xff, 0xff, 0xdd, 0xfe, 0x2a, 0x0, 0x0, 0x0, + 0x0, 0xe4, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x15, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xe0, 0x9b, 0xff, 0xff, 0xff, 0xbd, 0x7f, + 0x9f, 0xf9, 0xff, 0xff, 0xe3, 0xfe, 0x20, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xb0, 0x89, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x0, 0x0, 0x7a, 0x63, 0xff, 0xbf, 0xf8, + 0x8d, 0xff, 0x95, 0xc2, 0x0, 0x0, 0x0, 0x14, + 0x34, 0x50, 0xaa, 0x5f, 0xff, 0xeb, 0xfe, 0xfe, + 0xe5, 0xff, 0x69, 0xb0, 0x36, 0x16, 0x0, 0x0, + 0x4e, 0x4d, 0xff, 0xff, 0xff, 0x73, 0xf2, 0xe6, + 0x3b, 0xfd, 0xff, 0xff, 0x93, 0xb4, 0x0, 0x0, + 0x0, 0xfa, 0xeb, 0xff, 0x83, 0xbe, 0xf8, 0xcd, + 0xff, 0xa1, 0xea, 0x43, 0xfb, 0xf9, 0x3d, 0x7a, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe8, + 0xcd, 0xff, 0xff, 0x83, 0xf4, 0xfe, 0xc1, 0xff, + 0xff, 0x15, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x7a, 0x63, 0xff, 0xc7, 0xf0, 0x0, 0x0, 0x0, + 0x0, 0xbc, 0x7f, 0xff, 0xff, 0x7f, 0xcc, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x74, 0x2d, 0xfd, 0xff, + 0xd9, 0xfe, 0x22, 0x0, 0x0, 0x82, 0x71, 0xff, + 0xdb, 0x85, 0xb1, 0xff, 0x71, 0x8f, 0xe5, 0xeb, + 0x5, 0x1c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, + 0x2f, 0xff, 0xff, 0xff, 0x3f, 0x34, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x66, 0x37, + 0xff, 0xff, 0x89, 0xc4, 0x0, 0x0, 0x0, 0xbe, + 0x93, 0xff, 0xff, 0xf5, 0x27, 0xe0, 0xf2, 0x61, + 0xff, 0xff, 0xff, 0x57, 0x76, 0x0, 0x0, 0x0, + 0x0, 0xcc, 0x8f, 0xa7, 0xa7, 0xc9, 0xff, 0xff, + 0xff, 0x15, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x14, 0xfe, 0xed, 0xff, 0xff, 0xbf, 0xfe, 0xcc, + 0xfa, 0x89, 0xff, 0xff, 0xff, 0x47, 0x4e, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xb0, 0x89, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x0, 0x0, 0x60, 0x63, 0xff, 0xa1, 0xe4, + 0x8d, 0xff, 0x75, 0x8a, 0x0, 0x0, 0x0, 0x7e, + 0x33, 0x4d, 0x4d, 0xa1, 0xff, 0xd5, 0x4d, 0x55, + 0xff, 0xff, 0x6b, 0x4d, 0x37, 0x8e, 0x0, 0x0, + 0x64, 0x63, 0xff, 0xff, 0xff, 0x49, 0x8a, 0x18, + 0xfc, 0xe1, 0xff, 0xff, 0xb7, 0xb6, 0x0, 0x0, + 0x0, 0xf8, 0xdf, 0xff, 0x91, 0xf4, 0xfe, 0xdb, + 0xff, 0x93, 0xfe, 0xcf, 0xff, 0x97, 0xf2, 0x1a, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xea, + 0xcf, 0xff, 0xff, 0x7d, 0xe0, 0xfe, 0xd3, 0xff, + 0xf5, 0xfe, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x60, 0x63, 0xff, 0xa3, 0xc4, 0x0, 0x0, 0x0, + 0x8, 0xfa, 0xcf, 0xff, 0xfb, 0x21, 0x50, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x10, 0xfc, 0xcb, 0xff, + 0xff, 0x4d, 0x78, 0x0, 0x0, 0x80, 0x8f, 0xf9, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, + 0x43, 0x1c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2e, + 0x2f, 0xff, 0xff, 0xff, 0x3f, 0x46, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xcc, 0x91, + 0xff, 0xff, 0x2f, 0x5e, 0x0, 0x0, 0x0, 0xec, + 0xc7, 0xff, 0xff, 0xc3, 0xf8, 0xc, 0x30, 0xfe, + 0xef, 0xff, 0xff, 0x93, 0xb6, 0x0, 0x0, 0x0, + 0x0, 0x58, 0xa0, 0xc8, 0xee, 0x7f, 0xff, 0xff, + 0xff, 0x15, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1a, 0x33, 0xff, 0xff, 0xff, 0x77, 0xac, 0x0, + 0x80, 0x43, 0xff, 0xff, 0xff, 0x67, 0x68, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xb0, 0x89, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x0, 0x0, 0x3a, 0x1f, 0x51, 0x2d, 0xa8, + 0x2d, 0x51, 0x1d, 0x46, 0x0, 0x0, 0x0, 0xac, + 0xa9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xbb, 0xbc, 0x0, 0x0, + 0x4c, 0x49, 0xff, 0xff, 0xff, 0x85, 0xf6, 0x60, + 0xc2, 0x47, 0x57, 0x57, 0x41, 0x8e, 0x0, 0x0, + 0x0, 0xdc, 0xb1, 0xff, 0xeb, 0x7b, 0x99, 0xff, + 0xff, 0x5d, 0x7d, 0xff, 0xdf, 0xf, 0x60, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xce, + 0xa7, 0xff, 0xff, 0xcb, 0xb, 0x9b, 0xff, 0xff, + 0xaf, 0xee, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x3a, 0x1d, 0x4d, 0x29, 0x74, 0x0, 0x0, 0x0, + 0x32, 0x1f, 0xfb, 0xff, 0xd5, 0xfc, 0xa, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xcc, 0x95, 0xff, + 0xff, 0x9b, 0xc6, 0x0, 0x0, 0x58, 0xee, 0x13, + 0x67, 0xbd, 0xff, 0xff, 0xf7, 0xaf, 0x6b, 0x19, + 0xee, 0x1c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2e, + 0x2f, 0xff, 0xff, 0xff, 0x3f, 0x46, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x18, 0xfe, 0xd9, + 0xff, 0xcf, 0xfc, 0x10, 0x0, 0x0, 0x0, 0xf8, + 0xdf, 0xff, 0xff, 0xa9, 0xda, 0x0, 0x0, 0xfa, + 0xd7, 0xff, 0xff, 0xaf, 0xd6, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xa2, 0x7f, 0xff, 0xff, + 0xff, 0x15, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1a, 0x1b, 0x63, 0x63, 0x63, 0x27, 0x4a, 0x0, + 0xa2, 0x5b, 0xff, 0xff, 0xff, 0x51, 0x58, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xb0, 0x89, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x0, 0x0, 0x8, 0x2e, 0x3a, 0x34, 0x1e, + 0x34, 0x3a, 0x2e, 0x8, 0x0, 0x0, 0x0, 0xa4, + 0x93, 0xdd, 0xdd, 0xfb, 0xff, 0xe7, 0xdd, 0xed, + 0xff, 0xf5, 0xdd, 0xdd, 0xa1, 0xb6, 0x0, 0x0, + 0x20, 0x9, 0xe9, 0xff, 0xff, 0xf9, 0x93, 0x1b, + 0xee, 0x9a, 0x6c, 0x5e, 0x40, 0x1a, 0x0, 0x0, + 0x0, 0x82, 0x2d, 0xe7, 0xff, 0xff, 0xff, 0xff, + 0xb5, 0x27, 0xf1, 0xff, 0x59, 0xc4, 0x4, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, + 0x3d, 0xfb, 0xff, 0xff, 0xe9, 0xff, 0xff, 0xdf, + 0x21, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x8, 0x2a, 0x36, 0x30, 0xe, 0x0, 0x0, 0x0, + 0x6e, 0x59, 0xff, 0xff, 0xaf, 0xe2, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x65, 0xff, + 0xff, 0xc9, 0xf0, 0x0, 0x0, 0x0, 0x4, 0x8e, + 0xd, 0xd1, 0xff, 0xfb, 0xfd, 0x5b, 0xee, 0x48, + 0x6, 0x0, 0x0, 0x20, 0x7a, 0xb0, 0xc8, 0xd4, + 0x2f, 0xff, 0xff, 0xff, 0x3f, 0xd8, 0xc8, 0xb0, + 0x7c, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x6c, 0x3b, 0xff, + 0xff, 0x87, 0xc2, 0x0, 0x0, 0x0, 0x0, 0xfc, + 0xe9, 0xff, 0xff, 0xa3, 0xd0, 0x0, 0x0, 0xf4, + 0xd1, 0xff, 0xff, 0xbb, 0xe0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xa2, 0x7f, 0xff, 0xff, + 0xff, 0x15, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x8, 0x38, 0x60, 0x7a, 0x62, 0x3c, 0xc, 0x30, + 0xfc, 0xb7, 0xff, 0xff, 0xf3, 0x17, 0x2c, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xb0, 0x89, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5a, + 0xce, 0xf0, 0x5, 0xf9, 0xff, 0x4f, 0xfe, 0xa9, + 0xff, 0xb1, 0xfe, 0xf2, 0xd2, 0x68, 0x0, 0x0, + 0x0, 0xd2, 0x67, 0xfb, 0xff, 0xff, 0xff, 0xf3, + 0xa5, 0x2f, 0xf0, 0x5a, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x10, 0xc8, 0x19, 0x85, 0xab, 0xa1, 0x69, + 0xfe, 0xb7, 0xff, 0xb1, 0xfc, 0x2c, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2e, + 0xfc, 0x9b, 0xff, 0xff, 0xff, 0xff, 0xc5, 0x23, + 0xbc, 0x46, 0x6a, 0x7a, 0x52, 0x1c, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xa0, 0x81, 0xff, 0xff, 0x95, 0xc2, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x54, 0x43, 0xff, + 0xff, 0xe9, 0xfe, 0x0, 0x0, 0x0, 0x38, 0xfe, + 0xa7, 0xff, 0xd9, 0x7d, 0xff, 0xeb, 0x29, 0x9e, + 0x0, 0x0, 0x0, 0x5a, 0x49, 0x9f, 0x9f, 0x9f, + 0xa9, 0xff, 0xff, 0xff, 0xad, 0x9f, 0x9f, 0x9f, + 0x4d, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0xa6, 0xd0, + 0xdc, 0xdc, 0xdc, 0xda, 0xb8, 0x74, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xd0, 0x93, 0xff, + 0xfd, 0x2d, 0x5a, 0x0, 0x0, 0x0, 0x0, 0xfc, + 0xeb, 0xff, 0xff, 0xa3, 0xce, 0x0, 0x0, 0xf2, + 0xd1, 0xff, 0xff, 0xbd, 0xe4, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xa2, 0x7f, 0xff, 0xff, + 0xff, 0x15, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x16, 0xe0, + 0x5f, 0xff, 0xff, 0xff, 0x99, 0xe8, 0x6, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xb0, 0x89, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x4e, 0x3d, 0xff, 0xfd, 0x15, 0xf8, 0xcf, + 0xff, 0x89, 0xb4, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x36, 0xf2, 0x53, 0xdb, 0xff, 0xff, 0xff, + 0xff, 0xf9, 0x93, 0x5, 0x84, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x6, 0x52, 0xa0, 0xc6, 0xc0, 0xe6, + 0x5d, 0xff, 0xef, 0x25, 0xd6, 0xd4, 0xd4, 0xaa, + 0x54, 0x4, 0x0, 0x0, 0x0, 0x0, 0x1c, 0xda, + 0x3b, 0xdb, 0xff, 0xff, 0xff, 0xfb, 0x47, 0xec, + 0x36, 0xf, 0x6f, 0x6f, 0x43, 0x6e, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xbc, 0x95, 0xff, 0xff, 0x83, 0xac, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x2c, 0x27, 0xff, + 0xff, 0xfb, 0xfe, 0x6, 0x0, 0x0, 0x40, 0x6b, + 0xff, 0xff, 0x51, 0xfe, 0xd1, 0xff, 0xcb, 0xb4, + 0x0, 0x0, 0x0, 0x86, 0x77, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x7b, 0x8a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xb0, 0x87, 0xb3, + 0xb3, 0xb3, 0xb3, 0xb3, 0xab, 0xec, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x1a, 0xfe, 0xdb, 0xff, + 0xcd, 0xfc, 0x10, 0x0, 0x0, 0x0, 0x0, 0xfc, + 0xeb, 0xff, 0xff, 0xa3, 0xce, 0x0, 0x0, 0xf2, + 0xd1, 0xff, 0xff, 0xbd, 0xe4, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xa2, 0x7f, 0xff, 0xff, + 0xff, 0x15, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xe, 0xc6, 0x37, + 0xf1, 0xff, 0xff, 0xd5, 0xf, 0x64, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xb0, 0x89, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x42, 0xc0, + 0xea, 0xfa, 0x6f, 0xff, 0xe3, 0xfe, 0xfe, 0xf1, + 0xff, 0x5b, 0xf6, 0xd2, 0x78, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x26, 0xbc, 0x5, 0x6d, 0xc9, 0xff, + 0xff, 0xff, 0xff, 0xb9, 0xfe, 0x34, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x64, 0x11, + 0xe3, 0xff, 0x79, 0x13, 0x8b, 0xb7, 0xb7, 0x89, + 0x11, 0xb0, 0x4, 0x0, 0x0, 0x0, 0xb6, 0x41, + 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe9, 0x2d, + 0xca, 0x43, 0xff, 0xff, 0x93, 0x96, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xc8, 0xa1, 0xff, 0xff, 0x7b, 0xa0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x16, 0x17, 0xff, + 0xff, 0xff, 0x15, 0xe, 0x0, 0x0, 0x40, 0x21, + 0xb7, 0xad, 0xfa, 0xbc, 0x4b, 0xf1, 0x71, 0xb0, + 0x0, 0x0, 0x0, 0x82, 0x77, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x7b, 0x88, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xdc, 0xc1, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xf5, 0xfc, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x6e, 0x3f, 0xff, 0xff, + 0x85, 0xbe, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfc, + 0xeb, 0xff, 0xff, 0xa3, 0xce, 0x0, 0x0, 0xf2, + 0xd1, 0xff, 0xff, 0xbd, 0xe4, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xa2, 0x7f, 0xff, 0xff, + 0xff, 0x15, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xa, 0xb6, 0x2b, 0xe3, + 0xff, 0xff, 0xeb, 0x31, 0xb0, 0x4, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x8e, 0x89, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x82, 0x77, + 0xd7, 0xd7, 0xe9, 0xff, 0xf5, 0xd7, 0xd7, 0xff, + 0xff, 0xdb, 0xd7, 0xaf, 0xce, 0x0, 0x0, 0x0, + 0x3a, 0x6a, 0x90, 0x80, 0x7c, 0xb8, 0xfc, 0x47, + 0xd3, 0xff, 0xff, 0xff, 0x65, 0x8e, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x1a, 0xf4, 0x9b, + 0xff, 0xcb, 0x17, 0xdd, 0xff, 0xff, 0xff, 0xff, + 0xd9, 0x11, 0x56, 0x0, 0x0, 0x1c, 0xfe, 0xd9, + 0xff, 0xff, 0xd3, 0x4f, 0xf3, 0xff, 0xff, 0xd7, + 0x15, 0x77, 0xff, 0xff, 0x7b, 0x96, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xca, 0xa3, 0xff, 0xff, 0x79, 0x9e, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x12, 0xf, 0xff, + 0xff, 0xff, 0x1d, 0xe, 0x0, 0x0, 0xa, 0x86, + 0xbe, 0xd, 0x76, 0x22, 0xda, 0x1f, 0xe0, 0x3e, + 0x0, 0x0, 0x0, 0x56, 0x41, 0x8d, 0x8d, 0x8d, + 0x99, 0xff, 0xff, 0xff, 0x9f, 0x8d, 0x8d, 0x8d, + 0x43, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xcc, 0xc1, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xf5, 0xfa, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xd4, 0x97, 0xff, 0xfd, + 0x29, 0x58, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfc, + 0xe9, 0xff, 0xff, 0xa3, 0xd0, 0x0, 0x0, 0xf4, + 0xd1, 0xff, 0xff, 0xbb, 0xe0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xa2, 0x7f, 0xff, 0xff, + 0xff, 0x15, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x6, 0xa8, 0x21, 0xdb, 0xff, + 0xff, 0xf3, 0x49, 0xd4, 0x12, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x58, 0x1b, 0x35, 0x35, 0x35, 0xfe, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0x8d, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xd1, 0xd2, 0x0, 0x0, 0x0, + 0xd4, 0x6d, 0x73, 0x73, 0x47, 0x88, 0x1e, 0xb2, + 0x21, 0xf3, 0xff, 0xff, 0xa7, 0xc8, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xa8, 0x41, 0xfb, + 0xf9, 0x3d, 0x93, 0xff, 0xf3, 0x73, 0x79, 0xf7, + 0xff, 0x8b, 0xae, 0x0, 0x0, 0x48, 0x43, 0xff, + 0xff, 0xff, 0x67, 0xf8, 0x61, 0xfb, 0xff, 0xff, + 0xbf, 0xcf, 0xff, 0xff, 0x41, 0x5a, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xc2, 0x9b, 0xff, 0xff, 0x7f, 0xa6, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x21, 0xff, + 0xff, 0xff, 0x5, 0x8, 0x0, 0x0, 0x0, 0x0, + 0x2, 0x2, 0x2, 0x0, 0x8, 0x8, 0x8, 0x0, + 0x0, 0x0, 0x0, 0x1c, 0x68, 0x9c, 0xb6, 0xc2, + 0x2f, 0xff, 0xff, 0xff, 0x3f, 0xc8, 0xb6, 0x9c, + 0x6a, 0x1c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x9, 0xd, + 0xd, 0xd, 0xd, 0xd, 0xb, 0xde, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x1c, 0xfe, 0xdd, 0xff, 0xcb, + 0xfc, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, + 0xdf, 0xff, 0xff, 0xa9, 0xdc, 0x0, 0x0, 0xfa, + 0xd7, 0xff, 0xff, 0xaf, 0xd4, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xa2, 0x7f, 0xff, 0xff, + 0xff, 0x15, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x4, 0x9a, 0x17, 0xd1, 0xff, 0xff, + 0xf9, 0x5b, 0xe4, 0x20, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x8, 0x1a, 0x2c, 0x36, 0x26, 0x14, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x60, 0x2b, + 0x4d, 0x4d, 0xe9, 0xff, 0x8b, 0x4d, 0xa7, 0xff, + 0xd3, 0x4d, 0x4d, 0x3f, 0xaa, 0x0, 0x0, 0x0, + 0xee, 0xe9, 0xff, 0xff, 0xaf, 0xe6, 0x6, 0x14, + 0xfe, 0xd9, 0xff, 0xff, 0xb9, 0xd8, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x48, 0xfe, 0xcf, 0xff, + 0x97, 0xfe, 0xc1, 0xff, 0xb1, 0xfa, 0xfa, 0xb9, + 0xff, 0xbb, 0xdc, 0x0, 0x0, 0x5c, 0x5f, 0xff, + 0xff, 0xff, 0x4f, 0xa8, 0xf6, 0x7f, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xd9, 0xfe, 0x1c, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xac, 0x8b, 0xff, 0xff, 0x8b, 0xb8, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x35, 0xff, + 0xff, 0xf3, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2e, + 0x2f, 0xff, 0xff, 0xff, 0x3f, 0x46, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x4, + 0x6, 0x6, 0x6, 0x6, 0x4, 0x2, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x74, 0x43, 0xff, 0xff, 0x81, + 0xba, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xea, + 0xc5, 0xff, 0xff, 0xc5, 0xf8, 0x10, 0x32, 0xfe, + 0xf1, 0xff, 0xff, 0x91, 0xb4, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xa2, 0x7f, 0xff, 0xff, + 0xff, 0x15, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x88, 0xf, 0xc7, 0xff, 0xff, 0xfd, + 0x6b, 0xf0, 0x2c, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x52, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe, 0x30, + 0x68, 0x13, 0xfd, 0xff, 0x3f, 0xf2, 0xb3, 0xff, + 0xa7, 0xe4, 0x54, 0x3a, 0x1a, 0x0, 0x0, 0x0, + 0xee, 0xc9, 0xff, 0xff, 0xeb, 0x19, 0xe2, 0xe0, + 0x21, 0xf3, 0xff, 0xff, 0xa7, 0xc6, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x8, 0xe0, 0x7d, 0xff, 0xdf, + 0xf, 0xf0, 0xcb, 0xff, 0xa7, 0xe4, 0xe6, 0xad, + 0xff, 0xc5, 0xe2, 0x0, 0x0, 0x48, 0x43, 0xff, + 0xff, 0xff, 0x99, 0xfc, 0xd8, 0xfe, 0x9f, 0xff, + 0xff, 0xff, 0xff, 0x63, 0xca, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x84, 0x69, 0xff, 0xff, 0xa5, 0xd4, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x72, 0x57, 0xff, + 0xff, 0xd5, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2e, + 0x2f, 0xff, 0xff, 0xff, 0x3f, 0x46, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x3c, 0xcc, 0xf2, 0xf6, + 0xdc, 0x78, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x3c, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x14, + 0x0, 0x0, 0x0, 0xd8, 0x9b, 0xff, 0xfb, 0x27, + 0x54, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xba, + 0x8f, 0xff, 0xff, 0xf7, 0x2d, 0xe8, 0xf4, 0x63, + 0xff, 0xff, 0xff, 0x53, 0x72, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xa2, 0x7f, 0xff, 0xff, + 0xff, 0x15, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x74, 0x9, 0xbd, 0xff, 0xff, 0xff, 0x7d, + 0xfe, 0xe6, 0xe0, 0xe0, 0xda, 0xb4, 0x66, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x8a, 0x89, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x64, 0x4d, 0xff, 0xf9, 0x9, 0xfa, 0xd7, 0xff, + 0x7d, 0xa6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xb2, 0x77, 0xff, 0xff, 0xff, 0xe1, 0x95, 0x91, + 0xdd, 0xff, 0xff, 0xff, 0x5f, 0x8a, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x8, 0x1f, 0xf1, 0xff, 0x59, + 0xc4, 0xd4, 0xb1, 0xff, 0xd1, 0x5, 0xfe, 0xcd, + 0xff, 0xab, 0xce, 0x0, 0x0, 0x1c, 0xfe, 0xdf, + 0xff, 0xff, 0xff, 0xb1, 0x87, 0x9f, 0xe3, 0xff, + 0xff, 0xff, 0xfd, 0x63, 0xea, 0x1e, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x48, 0x39, 0xff, 0xff, 0xc5, 0xf4, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xb0, 0x7f, 0xff, + 0xff, 0xb1, 0xdc, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, + 0x2f, 0xff, 0xff, 0xff, 0x3f, 0x36, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x74, 0x71, 0xe3, 0xe3, + 0xaf, 0xc4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x68, 0x6f, 0xff, 0xff, 0xff, 0x35, 0x26, + 0x0, 0x0, 0x20, 0xfe, 0xe1, 0xff, 0xc9, 0xfa, + 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x60, + 0x2b, 0xf7, 0xff, 0xff, 0xe5, 0x93, 0x9d, 0xf5, + 0xff, 0xff, 0xd9, 0xfe, 0x26, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xa2, 0x7f, 0xff, 0xff, + 0xff, 0x15, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xda, 0xab, 0xff, 0xff, 0xff, 0xed, 0xb7, + 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0x9d, 0xd0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xb0, 0x89, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xa4, 0x7b, 0xff, 0xd9, 0xfc, 0x5, 0xf7, 0xff, + 0x4f, 0x66, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x42, 0x5, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xb5, 0xfe, 0x30, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x8, 0xdc, 0x55, 0x8d, 0xfc, + 0x2c, 0x94, 0x5f, 0xff, 0xff, 0xdb, 0xd5, 0xff, + 0xff, 0x59, 0x8a, 0x0, 0x0, 0x0, 0xc2, 0x55, + 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xf5, 0x45, 0xce, 0x10, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x16, 0xfe, 0xe5, 0xff, 0xef, 0x5, 0x2a, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x2, 0xee, 0xb3, 0xff, + 0xff, 0x6d, 0x9a, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x14, + 0x11, 0x67, 0x67, 0x67, 0x19, 0x20, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x9c, 0x7f, 0xff, 0xff, + 0xc5, 0xe4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x8c, 0x6f, 0xff, 0xff, 0xff, 0x35, 0x36, + 0x0, 0x0, 0x78, 0x47, 0xff, 0xff, 0x7f, 0xb8, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe, + 0xea, 0x79, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xf3, 0x47, 0xb6, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xa2, 0x7f, 0xff, 0xff, + 0xff, 0x15, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xf6, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xdd, 0xf0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x8a, 0x89, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x94, 0xa5, 0xff, 0xb5, 0xda, 0x3d, 0xff, 0xff, + 0x15, 0x2a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x84, 0xfe, 0x7f, 0xe1, 0xff, 0xff, 0xff, + 0xff, 0xdf, 0x7b, 0xfe, 0x80, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x28, 0x72, 0x72, 0x56, + 0x0, 0x30, 0xfe, 0x83, 0xf5, 0xff, 0xff, 0xf5, + 0x81, 0xfc, 0x2a, 0x0, 0x0, 0x0, 0x28, 0xec, + 0x47, 0xc9, 0xfd, 0xff, 0xff, 0xff, 0xf3, 0xa7, + 0x41, 0xe3, 0xff, 0xff, 0xe9, 0x35, 0x10, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xde, 0xa5, 0xff, 0xff, 0x59, 0x98, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x44, 0xb, 0xef, 0xff, + 0xf3, 0x17, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, + 0x38, 0x62, 0x80, 0x64, 0x3a, 0x6, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xa6, 0x7f, 0xff, 0xff, + 0xc1, 0xe4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x68, 0x6f, 0xff, 0xff, 0xff, 0x35, 0x26, + 0x0, 0x0, 0xdc, 0x9d, 0xff, 0xfb, 0x23, 0x50, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x44, 0xf8, 0x63, 0xd9, 0xff, 0xff, 0xff, 0xfd, + 0xc7, 0x41, 0xe2, 0x20, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x7c, 0x7f, 0xff, 0xff, + 0xff, 0x15, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xee, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xdd, 0xe8, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x52, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x6c, 0xfe, 0xfe, 0xfe, 0x8c, 0xfe, 0xfe, 0xfe, + 0xf6, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x4a, 0xcc, 0xfe, 0x2f, 0xed, 0xff, + 0x27, 0xfe, 0xca, 0x46, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x4c, 0xe8, 0xf, 0x43, 0x43, 0xf, + 0xe8, 0x4c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, + 0xa4, 0xfa, 0x1f, 0x4f, 0x59, 0x41, 0x9, 0xec, + 0xde, 0xfe, 0xfe, 0xfe, 0xfe, 0xc8, 0x10, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x7a, 0x39, 0xfd, 0xff, 0xbb, 0xfa, 0x24, + 0x0, 0x0, 0x0, 0x4, 0xce, 0x77, 0xff, 0xff, + 0x9f, 0xea, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xbe, 0x89, 0xff, 0xff, + 0xa7, 0xca, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x3c, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x14, + 0x0, 0x8, 0xe6, 0xe3, 0xff, 0xc7, 0xf8, 0xc, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x32, 0xbe, 0xfe, 0x31, 0x55, 0x51, 0x23, + 0xfc, 0xa0, 0x1c, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x48, 0xfe, 0xfe, 0xfe, + 0xfe, 0xfe, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xbc, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, + 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xb2, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x10, 0xf8, 0xe9, 0xff, + 0xfe, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x4, 0x20, 0x38, 0x38, 0x20, + 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x8, 0x2c, 0x50, 0x5e, 0x42, 0x1c, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x16, 0xf8, 0xad, 0xff, 0xfd, 0x4d, 0xc2, + 0x8, 0x0, 0x0, 0x74, 0x11, 0xe3, 0xff, 0xef, + 0x25, 0x6e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x6, 0xf0, 0xaf, 0xff, 0xff, + 0x5d, 0x88, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x8, 0x21, 0x95, 0x95, 0x55, 0xa4, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x12, 0x38, 0x54, 0x52, 0x30, + 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xda, 0x91, 0x9f, + 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x7c, 0x21, 0xe9, 0xff, 0xdf, 0x1d, + 0x9e, 0x0, 0x52, 0xfe, 0xa9, 0xff, 0xff, 0x71, + 0xde, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x18, 0x17, 0xf1, 0xff, 0xd1, + 0xfe, 0x2e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x8, 0x62, 0x9c, 0xa8, 0x76, 0x28, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x58, 0x9c, 0x9c, + 0x68, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xa, 0xd0, 0x4b, 0xf5, 0xff, 0xcb, + 0xce, 0x0, 0x78, 0x89, 0xff, 0xff, 0x9b, 0xfe, + 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x18, 0x37, 0xd9, 0xf1, 0x41, + 0xae, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x22, 0xe6, 0x4b, 0xe7, 0xb5, + 0xd0, 0x0, 0x78, 0x6b, 0xfb, 0x8d, 0xfe, 0x64, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x14, 0xb4, 0x5, 0x31, 0xde, + 0x1c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x22, 0xcc, 0x17, 0x39, + 0x88, 0x0, 0x3a, 0xb, 0x3b, 0xf2, 0x56, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x10, 0x10, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x18, 0x18, + 0x14, 0x0, 0x2, 0x18, 0x18, 0x16, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x8, 0x30, 0x5c, 0x76, + 0x66, 0x3c, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x2, 0xe, 0x18, 0x20, 0x18, 0xc, 0x2, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x4, 0xe, 0x1a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x16, 0xc, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x1c, 0x48, 0x6c, 0x6a, 0x46, 0x1c, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x2, 0xe, 0x18, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x1e, 0x14, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x2, 0x22, 0x52, 0x74, 0x6e, 0x46, 0x18, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x22, 0x50, 0x70, 0x60, 0x36, + 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x28, 0x56, + 0x76, 0x6e, 0x46, 0x18, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, + 0x16, 0x20, 0x1c, 0x10, 0x6, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xe, 0x86, 0xf6, 0x1b, 0x57, 0x6b, + 0x5f, 0x2f, 0xfe, 0xba, 0x30, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x7e, 0xd, 0x23, 0x23, 0x23, 0xb, 0x24, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x62, 0x11, 0x23, 0x23, + 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x5, + 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x52, + 0xda, 0xfe, 0x41, 0x63, 0x61, 0x41, 0x5, 0xd4, + 0x2c, 0x0, 0x0, 0x0, 0x3a, 0xd, 0x23, 0x23, + 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, + 0x23, 0x1d, 0xa8, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x5a, 0xe4, 0xb, 0x4b, 0x69, 0x63, 0x3d, 0xfe, + 0xc8, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x44, 0xd8, 0x5, 0x4b, 0x69, 0x5b, 0x21, + 0xf8, 0x8c, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x6, 0x70, 0xec, 0x11, 0x51, + 0x69, 0x63, 0x3d, 0xfe, 0xcc, 0x3e, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xa, 0x46, 0x8c, 0xbe, 0xd2, 0xd2, 0xc4, 0x9a, + 0x56, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x24, 0xfe, + 0x23, 0x23, 0x23, 0x15, 0x94, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x12, 0xca, 0x29, 0xb5, 0xfb, 0xff, 0xff, + 0xff, 0xff, 0xd7, 0x5f, 0xfa, 0x40, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2c, + 0xfc, 0xb3, 0xff, 0xff, 0xff, 0x4d, 0x42, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xac, 0x97, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2f, + 0x20, 0x0, 0x0, 0x0, 0x0, 0x4, 0x98, 0x9, + 0x89, 0xe9, 0xff, 0xff, 0xff, 0xff, 0xeb, 0x5b, + 0x44, 0x0, 0x0, 0x0, 0x66, 0x6b, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xd3, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x78, + 0x9, 0x93, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xe1, + 0x6b, 0xfc, 0x44, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x5c, 0xfe, 0x79, 0xeb, 0xff, 0xff, 0xff, 0xfd, + 0xbb, 0x2b, 0xc8, 0xe, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xa4, 0x19, 0xa5, 0xf5, 0xff, + 0xff, 0xff, 0xff, 0xe3, 0x71, 0xfe, 0x4c, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x18, 0x92, + 0xf8, 0x21, 0x73, 0x99, 0xab, 0xaf, 0x9d, 0x7f, + 0x35, 0xfe, 0xac, 0x26, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x82, 0x4f, + 0xff, 0xff, 0xff, 0xc5, 0xf8, 0xa, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x8a, 0x31, 0xe7, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x75, 0xe0, 0x4, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xc6, + 0x5b, 0xff, 0xff, 0xff, 0xff, 0x4d, 0x5c, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xda, 0xaf, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2f, + 0x2a, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x13, 0xc7, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x43, + 0x44, 0x0, 0x0, 0x0, 0x76, 0x6b, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xd3, 0xf2, 0x0, 0x0, 0x0, 0x20, 0xfe, + 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x79, 0xe0, 0x4, 0x0, 0x0, 0x0, 0x26, + 0xfa, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xe5, 0x2b, 0x8e, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x42, 0x9, 0xd1, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x81, 0xe8, 0x8, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x42, 0xf2, 0x3d, + 0xbb, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xcf, 0x51, 0xf8, 0x48, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe2, 0xa5, + 0xff, 0xff, 0xff, 0xfb, 0x21, 0x50, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xf0, 0xb7, 0xff, 0xff, 0xff, 0xb7, 0x7d, + 0x99, 0xf3, 0xff, 0xff, 0xf1, 0x13, 0x32, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x62, 0xf, + 0xe1, 0xff, 0xff, 0xff, 0xff, 0x4d, 0x5c, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xec, 0xc3, 0xff, 0xff, + 0xd7, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0x23, + 0x1c, 0x0, 0x0, 0x0, 0x1e, 0xfc, 0xb1, 0xff, + 0xff, 0xff, 0xd1, 0x8d, 0x89, 0xa7, 0xcf, 0xfe, + 0x1c, 0x0, 0x0, 0x0, 0x50, 0x47, 0xad, 0xad, + 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xe9, 0xff, + 0xff, 0xc5, 0xdc, 0x0, 0x0, 0x0, 0x6c, 0x49, + 0xff, 0xff, 0xff, 0xe1, 0x85, 0x93, 0xf3, 0xff, + 0xff, 0xf1, 0xf, 0x2a, 0x0, 0x0, 0x0, 0x9a, + 0x53, 0xff, 0xff, 0xff, 0xdb, 0x85, 0xa5, 0xfd, + 0xff, 0xff, 0xbd, 0xfa, 0x14, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xa0, 0x77, 0xff, 0xff, 0xff, 0xd7, + 0x8b, 0x9b, 0xf3, 0xff, 0xff, 0xf5, 0x1f, 0x3e, + 0x0, 0x0, 0x0, 0x0, 0x4a, 0xfc, 0x77, 0xfb, + 0xff, 0xf3, 0xb5, 0x7b, 0x5f, 0x5b, 0x73, 0xa3, + 0xe5, 0xff, 0xfd, 0x7f, 0xfc, 0x3c, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x2a, 0x5, 0xe9, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0xba, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xf4, 0xf7, 0xff, 0xff, 0xb5, 0xfe, 0xc8, + 0xf4, 0x73, 0xff, 0xff, 0xff, 0x5d, 0x64, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x1a, 0xf2, 0x97, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x4d, 0x5c, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xf8, 0xd9, 0xff, 0xff, + 0x65, 0xf2, 0xe8, 0xe8, 0xe8, 0xe8, 0xce, 0x92, + 0xc, 0x0, 0x0, 0x0, 0x78, 0x45, 0xff, 0xff, + 0xff, 0xaf, 0xfe, 0xd6, 0xbe, 0xda, 0xc8, 0x9e, + 0x0, 0x0, 0x0, 0x0, 0x20, 0x86, 0xbe, 0xd6, + 0xd6, 0xd6, 0xd6, 0xda, 0xfa, 0x67, 0xff, 0xff, + 0xef, 0x35, 0x9a, 0x0, 0x0, 0x0, 0xa4, 0x8d, + 0xff, 0xff, 0xff, 0x39, 0xe2, 0xf4, 0x7b, 0xff, + 0xff, 0xff, 0x55, 0x56, 0x0, 0x0, 0x0, 0xec, + 0xbd, 0xff, 0xff, 0xef, 0x21, 0xe0, 0xfa, 0x8d, + 0xff, 0xff, 0xfd, 0x33, 0x52, 0x0, 0x0, 0x0, + 0x3c, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x14, 0x0, + 0x0, 0x0, 0x3c, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, + 0x14, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x6, 0x52, 0x9e, 0x9c, 0x72, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x60, 0x98, 0x9c, 0x62, + 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xb2, 0xb3, 0xff, 0xff, 0xef, 0x19, + 0xdc, 0xf2, 0x67, 0xff, 0xff, 0xff, 0x6b, 0x78, + 0x0, 0x0, 0x0, 0x20, 0xf2, 0x7f, 0xff, 0xff, + 0xb7, 0x27, 0xf2, 0xb2, 0x82, 0x7e, 0xa4, 0xe4, + 0xd, 0x91, 0xff, 0xff, 0x6f, 0xdc, 0xa, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x59, 0xff, + 0xff, 0xf9, 0xff, 0xff, 0xcb, 0xfa, 0xe, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x9, 0x7b, 0x7b, 0x7b, 0x41, 0x8c, 0x0, + 0x6a, 0x31, 0xff, 0xff, 0xff, 0x73, 0x78, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xa6, 0x3d, 0xf9, + 0xff, 0xeb, 0xff, 0xff, 0xff, 0x4d, 0x5c, 0x0, + 0x0, 0x0, 0x0, 0x2, 0xfe, 0xed, 0xff, 0xff, + 0x43, 0x6a, 0x3a, 0x34, 0x16, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xc8, 0x9d, 0xff, 0xff, + 0xf5, 0x19, 0xb0, 0x98, 0x9c, 0x74, 0x34, 0x2, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x92, 0x2d, 0xf1, 0xff, 0xff, + 0x63, 0xde, 0x14, 0x0, 0x0, 0x0, 0xb6, 0x9d, + 0xff, 0xff, 0xf1, 0xfe, 0x1e, 0x78, 0x41, 0xff, + 0xff, 0xff, 0x67, 0x68, 0x0, 0x0, 0x2, 0xfe, + 0xef, 0xff, 0xff, 0xa7, 0xee, 0xa, 0x5c, 0x21, + 0xff, 0xff, 0xff, 0x79, 0x94, 0x0, 0x0, 0x0, + 0x68, 0x6f, 0xff, 0xff, 0xff, 0x35, 0x26, 0x0, + 0x0, 0x0, 0x68, 0x6f, 0xff, 0xff, 0xff, 0x35, + 0x26, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x18, 0x7a, 0xec, 0x19, 0x83, 0xa9, 0xc8, + 0x0, 0x0, 0x0, 0x26, 0x7e, 0xb2, 0xc8, 0xc8, + 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xa8, 0x6c, + 0x8, 0x0, 0x0, 0x0, 0xae, 0x97, 0x91, 0x27, + 0xf6, 0x90, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x98, 0x67, 0x87, 0x87, 0x6f, 0xde, + 0x6, 0x4e, 0x19, 0xff, 0xff, 0xff, 0x83, 0x92, + 0x0, 0x0, 0x0, 0xac, 0x49, 0xf9, 0xff, 0xa5, + 0xfe, 0x88, 0x2c, 0x64, 0x92, 0x9c, 0x74, 0x38, + 0x5e, 0xfc, 0x89, 0xff, 0xef, 0x21, 0x5a, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xea, 0xad, 0xff, + 0xff, 0x9d, 0xf9, 0xff, 0xfd, 0x2b, 0x5a, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x46, 0x78, 0x9c, 0x86, 0x58, 0x1a, 0x1c, + 0xc2, 0x57, 0xff, 0xff, 0xff, 0x4d, 0x5a, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x46, 0xfe, 0xcd, 0xff, + 0xf9, 0x79, 0xff, 0xff, 0xff, 0x4d, 0x5c, 0x0, + 0x0, 0x0, 0x0, 0x14, 0xb, 0xfd, 0xff, 0xff, + 0x19, 0x1b, 0x49, 0x39, 0xfe, 0xde, 0x52, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xec, 0xcb, 0xff, 0xff, + 0xc7, 0xfe, 0x53, 0x85, 0x89, 0x63, 0xd, 0xc4, + 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x2e, 0xfe, 0xbf, 0xff, 0xff, 0xab, + 0xfc, 0x32, 0x0, 0x0, 0x0, 0x0, 0x94, 0x7f, + 0xff, 0xff, 0xfd, 0x1f, 0xa4, 0xd0, 0x63, 0xff, + 0xff, 0xff, 0x41, 0x4c, 0x0, 0x0, 0x2, 0xb, + 0xff, 0xff, 0xff, 0x87, 0xbe, 0x0, 0xa, 0xfe, + 0xf1, 0xff, 0xff, 0x9b, 0xbe, 0x0, 0x0, 0x0, + 0x8c, 0x6f, 0xff, 0xff, 0xff, 0x35, 0x36, 0x0, + 0x0, 0x0, 0x8c, 0x6f, 0xff, 0xff, 0xff, 0x35, + 0x36, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x32, + 0xa6, 0xfc, 0x3b, 0xa5, 0xf3, 0xff, 0xcd, 0xea, + 0x0, 0x0, 0x0, 0x6a, 0x53, 0x9f, 0x9f, 0x9f, + 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x1d, + 0x18, 0x0, 0x0, 0x0, 0xd6, 0xb3, 0xff, 0xf9, + 0xb5, 0x4f, 0xfe, 0xbe, 0x46, 0x4, 0x0, 0x0, + 0x0, 0x0, 0x34, 0x74, 0xa0, 0xa2, 0x78, 0x3c, + 0x0, 0x88, 0x3d, 0xff, 0xff, 0xff, 0x69, 0x7a, + 0x0, 0x0, 0x28, 0xfe, 0xcf, 0xff, 0xd3, 0x9, + 0x70, 0x86, 0xfe, 0x49, 0x83, 0x83, 0x63, 0x13, + 0xe0, 0x84, 0x5, 0xd5, 0xff, 0x8b, 0xca, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x32, 0x9, 0xef, 0xff, + 0xff, 0x45, 0xc3, 0xff, 0xff, 0x87, 0xc2, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x48, 0xf8, 0xfe, 0x9, + 0x43, 0xd5, 0xff, 0xff, 0xcd, 0xfe, 0x24, 0x0, + 0x0, 0x0, 0x0, 0xc, 0xe0, 0x7b, 0xff, 0xff, + 0x95, 0x57, 0xff, 0xff, 0xff, 0x4d, 0x5c, 0x0, + 0x0, 0x0, 0x0, 0x38, 0x31, 0xff, 0xff, 0xf9, + 0xc3, 0xff, 0xff, 0xff, 0xed, 0x89, 0xfe, 0x64, + 0x0, 0x0, 0x0, 0x0, 0xf6, 0xdb, 0xff, 0xff, + 0xcb, 0xd5, 0xff, 0xff, 0xff, 0xff, 0xe3, 0x47, + 0xd4, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xb2, 0x5d, 0xff, 0xff, 0xef, 0x21, + 0x78, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4e, 0x1f, + 0xf1, 0xff, 0xff, 0xbb, 0x3d, 0x4d, 0xd9, 0xff, + 0xff, 0xcd, 0xfe, 0x1c, 0x0, 0x0, 0x2, 0xfe, + 0xfd, 0xff, 0xff, 0x8f, 0xc8, 0x0, 0x0, 0xfc, + 0xe5, 0xff, 0xff, 0xa7, 0xce, 0x0, 0x0, 0x0, + 0x68, 0x6f, 0xff, 0xff, 0xff, 0x35, 0x26, 0x0, + 0x0, 0x0, 0x68, 0x6f, 0xff, 0xff, 0xff, 0x35, + 0x26, 0x0, 0x0, 0x0, 0x8, 0x58, 0xd0, 0xfe, + 0x63, 0xc5, 0xff, 0xff, 0xff, 0xff, 0xcd, 0xe0, + 0x0, 0x0, 0x0, 0x98, 0x87, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2f, + 0x26, 0x0, 0x0, 0x0, 0xc6, 0xb3, 0xff, 0xff, + 0xff, 0xff, 0xd5, 0x79, 0x11, 0xe6, 0x72, 0x14, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x52, 0xfe, 0xaf, 0xff, 0xff, 0xf5, 0x21, 0x40, + 0x0, 0x0, 0x86, 0x55, 0xff, 0xff, 0x53, 0xb2, + 0x82, 0x11, 0xbb, 0xff, 0xff, 0xff, 0xff, 0xef, + 0x81, 0xc8, 0xc4, 0x7d, 0xff, 0xd9, 0xfa, 0x4, + 0x0, 0x0, 0x0, 0x0, 0x96, 0x63, 0xff, 0xff, + 0xe5, 0xfe, 0x7d, 0xff, 0xff, 0xd1, 0xfc, 0x12, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x7c, 0x7d, 0xfd, 0xff, + 0xff, 0xff, 0xff, 0xd1, 0x25, 0xa0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x84, 0x25, 0xef, 0xff, 0xdf, + 0xd, 0x57, 0xff, 0xff, 0xff, 0x4d, 0x5c, 0x0, + 0x0, 0x0, 0x0, 0x64, 0x53, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9d, 0xf8, + 0x16, 0x0, 0x0, 0x0, 0xfa, 0xe3, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, + 0x21, 0x68, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x22, 0xfe, 0xd1, 0xff, 0xff, 0x8f, 0xe4, + 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0xdc, + 0x53, 0xeb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xd7, 0x2b, 0xa2, 0x0, 0x0, 0x0, 0x0, 0xfe, + 0xe7, 0xff, 0xff, 0xbb, 0xfa, 0x32, 0x5e, 0xfe, + 0xe5, 0xff, 0xff, 0xa9, 0xd4, 0x0, 0x0, 0x0, + 0x3c, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x14, 0x0, + 0x0, 0x0, 0x3c, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, + 0x14, 0x0, 0x0, 0x30, 0xe6, 0x1d, 0x89, 0xe1, + 0xff, 0xff, 0xff, 0xff, 0xfd, 0xc7, 0x69, 0xb2, + 0x0, 0x0, 0x0, 0x8c, 0x87, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2f, + 0x22, 0x0, 0x0, 0x0, 0x90, 0x53, 0xb7, 0xf5, + 0xff, 0xff, 0xff, 0xff, 0xef, 0x9d, 0x33, 0xf6, + 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6c, + 0xfe, 0x89, 0xff, 0xff, 0xff, 0x8f, 0xea, 0xa, + 0x0, 0x0, 0xdc, 0xa7, 0xff, 0xd7, 0xfe, 0x4c, + 0xfe, 0xb7, 0xff, 0xff, 0xcd, 0xb1, 0xe9, 0xff, + 0xdd, 0xea, 0x52, 0x29, 0xff, 0xfb, 0x11, 0x24, + 0x0, 0x0, 0x0, 0x4, 0xee, 0xb3, 0xff, 0xff, + 0xa5, 0xea, 0x27, 0xfd, 0xff, 0xff, 0x31, 0x62, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x90, 0x7f, 0xff, 0xff, + 0xff, 0xff, 0xf7, 0x79, 0xfe, 0x7c, 0x0, 0x0, + 0x0, 0x0, 0x2e, 0xfc, 0xb3, 0xff, 0xff, 0x55, + 0xda, 0x57, 0xff, 0xff, 0xff, 0x4d, 0x5c, 0x0, + 0x0, 0x0, 0x0, 0x6e, 0x6f, 0xff, 0xff, 0xff, + 0xb5, 0x75, 0x8b, 0xed, 0xff, 0xff, 0xfd, 0x39, + 0x66, 0x0, 0x0, 0x0, 0xfa, 0xe3, 0xff, 0xff, + 0xfd, 0xa1, 0x55, 0x53, 0xb5, 0xff, 0xff, 0xff, + 0x9b, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x7c, 0x4d, 0xff, 0xff, 0xf9, 0x21, 0x5e, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0xb0, + 0x11, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, + 0x77, 0xfe, 0x74, 0x0, 0x0, 0x0, 0x0, 0xe2, + 0xb1, 0xff, 0xff, 0xf9, 0x5f, 0xfe, 0xd, 0x95, + 0xff, 0xff, 0xff, 0xa9, 0xd4, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x68, 0x5f, 0xf5, 0xff, 0xff, + 0xff, 0xff, 0xd7, 0x8b, 0x2b, 0xfa, 0xac, 0x38, + 0x0, 0x0, 0x0, 0x58, 0x25, 0x49, 0x49, 0x49, + 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0xd, + 0x12, 0x0, 0x0, 0x0, 0x26, 0x94, 0xf2, 0x15, + 0x75, 0xc3, 0xfb, 0xff, 0xff, 0xff, 0xfd, 0x93, + 0xac, 0x0, 0x0, 0x0, 0x0, 0x0, 0x68, 0x5, + 0xa5, 0xff, 0xff, 0xff, 0xad, 0xfe, 0x58, 0x0, + 0x0, 0x4, 0xfe, 0xdf, 0xff, 0x9d, 0xd6, 0x9c, + 0x5b, 0xff, 0xff, 0x97, 0xfe, 0xfc, 0xbf, 0xff, + 0xcb, 0xf0, 0xe, 0xfe, 0xf1, 0xff, 0x4b, 0x4a, + 0x0, 0x0, 0x0, 0x3a, 0xf, 0xf3, 0xff, 0xff, + 0x59, 0x8a, 0xfc, 0xcf, 0xff, 0xff, 0x8d, 0xca, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x66, 0x55, 0xad, 0xaf, + 0xcb, 0xff, 0xff, 0xff, 0xad, 0xfe, 0x2c, 0x0, + 0x0, 0x4, 0xc6, 0x5b, 0xff, 0xff, 0xad, 0xfe, + 0xce, 0x57, 0xff, 0xff, 0xff, 0x4d, 0xaa, 0x4a, + 0x8, 0x0, 0x0, 0x54, 0x49, 0x9b, 0xab, 0x99, + 0xfe, 0xbe, 0xea, 0x4f, 0xff, 0xff, 0xff, 0x8f, + 0xb2, 0x0, 0x0, 0x0, 0xfa, 0xe3, 0xff, 0xff, + 0xb5, 0xfe, 0x94, 0xa4, 0xfe, 0xdb, 0xff, 0xff, + 0xdb, 0xfa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xdc, 0xa1, 0xff, 0xff, 0xc3, 0xf8, 0xa, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x64, 0x17, + 0xcf, 0xff, 0xff, 0xf1, 0xb7, 0xc1, 0xfb, 0xff, + 0xff, 0xa3, 0xfe, 0x2c, 0x0, 0x0, 0x0, 0x8a, + 0x43, 0xfb, 0xff, 0xff, 0xff, 0xeb, 0xf7, 0xff, + 0xff, 0xff, 0xff, 0xa9, 0xd4, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x90, 0x7b, 0xff, 0xff, 0xff, + 0xaf, 0x41, 0xfe, 0xd8, 0x62, 0xe, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x2c, 0x88, 0xba, 0xce, 0xce, + 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xae, 0x72, + 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x46, + 0xbe, 0xfc, 0x23, 0x8d, 0xf7, 0xff, 0xff, 0xb3, + 0xd4, 0x0, 0x0, 0x0, 0x0, 0x6, 0xf0, 0x9f, + 0xff, 0xff, 0xfd, 0x89, 0xfe, 0x76, 0x0, 0x0, + 0x0, 0x1a, 0xf, 0xff, 0xff, 0x67, 0x94, 0xf0, + 0xbb, 0xff, 0xf3, 0x13, 0x62, 0xf4, 0xd1, 0xff, + 0xb9, 0xe2, 0x0, 0xfc, 0xe3, 0xff, 0x5b, 0x6c, + 0x0, 0x0, 0x0, 0xa0, 0x6b, 0xff, 0xff, 0xef, + 0x9, 0xac, 0xea, 0x8d, 0xff, 0xff, 0xd7, 0xfe, + 0x16, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x28, 0x8c, 0xc2, 0xe2, + 0xfe, 0x6d, 0xff, 0xff, 0xff, 0x5b, 0x84, 0x0, + 0x0, 0x3a, 0x11, 0xe1, 0xff, 0xfd, 0x89, 0x7b, + 0x7b, 0x9b, 0xff, 0xff, 0xff, 0x97, 0x7b, 0x1b, + 0x1e, 0x0, 0x0, 0x20, 0x78, 0xb4, 0xca, 0xa8, + 0x60, 0x0, 0x24, 0xfe, 0xe5, 0xff, 0xff, 0xb5, + 0xd8, 0x0, 0x0, 0x0, 0xf8, 0xdf, 0xff, 0xff, + 0xb1, 0xe2, 0x0, 0x0, 0xe0, 0x9d, 0xff, 0xff, + 0xf9, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1c, 0xfe, 0xe3, 0xff, 0xff, 0x85, 0xba, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd2, 0x99, + 0xff, 0xff, 0xf1, 0x2f, 0xf6, 0xfc, 0x5f, 0xff, + 0xff, 0xff, 0x5b, 0x8e, 0x0, 0x0, 0x0, 0x1c, + 0xf2, 0x73, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xd5, + 0xed, 0xff, 0xff, 0xa7, 0xce, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x7c, 0x7b, 0xff, 0xff, 0xff, + 0xfd, 0xc9, 0x7b, 0x1b, 0xf6, 0xa2, 0x3a, 0x4, + 0x0, 0x0, 0x0, 0x68, 0x4d, 0x91, 0x91, 0x91, + 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x19, + 0x16, 0x0, 0x0, 0x0, 0x0, 0x2a, 0x8c, 0xec, + 0xd, 0x6b, 0xbb, 0xf9, 0xff, 0xff, 0xff, 0xb3, + 0xc2, 0x0, 0x0, 0x0, 0x0, 0x22, 0x17, 0xf9, + 0xff, 0xff, 0x9f, 0xfc, 0x52, 0x0, 0x0, 0x0, + 0x0, 0x3c, 0x39, 0xff, 0xff, 0x47, 0x66, 0x5, + 0xf3, 0xff, 0xc3, 0xf6, 0x4, 0xfa, 0xe3, 0xff, + 0xa7, 0xd2, 0x0, 0xfc, 0xe1, 0xff, 0x63, 0x72, + 0x0, 0x0, 0x6, 0xf4, 0xb9, 0xff, 0xff, 0xd7, + 0x7b, 0x7b, 0x7b, 0x95, 0xff, 0xff, 0xff, 0x39, + 0x6c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1c, 0x92, 0xca, 0xe2, 0xca, 0x90, 0x1a, 0x0, + 0x3a, 0xfe, 0xed, 0xff, 0xff, 0xa1, 0xbe, 0x0, + 0x0, 0x5c, 0x69, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x39, + 0x30, 0x0, 0x0, 0x60, 0xba, 0xe4, 0xe6, 0xc6, + 0x6a, 0x0, 0x0, 0xfa, 0xd3, 0xff, 0xff, 0xbf, + 0xe0, 0x0, 0x0, 0x0, 0xf2, 0xd3, 0xff, 0xff, + 0xc3, 0xf0, 0x0, 0x0, 0xc8, 0x8f, 0xff, 0xff, + 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x5a, 0x43, 0xff, 0xff, 0xff, 0x47, 0x64, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf6, 0xdd, + 0xff, 0xff, 0xaf, 0xf4, 0x10, 0x30, 0xfe, 0xdd, + 0xff, 0xff, 0xad, 0xcc, 0x0, 0x0, 0x0, 0x0, + 0x40, 0xec, 0x31, 0x93, 0xb7, 0xb7, 0x83, 0xf, + 0xf7, 0xff, 0xff, 0x99, 0xbe, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x4a, 0x19, 0x85, 0xdf, 0xff, + 0xff, 0xff, 0xff, 0xf9, 0xbb, 0x6b, 0xf, 0x96, + 0x0, 0x0, 0x0, 0x96, 0x87, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2f, + 0x26, 0x0, 0x0, 0x0, 0x74, 0xfe, 0x57, 0xad, + 0xf1, 0xff, 0xff, 0xff, 0xff, 0xed, 0x9b, 0x2f, + 0x86, 0x0, 0x0, 0x0, 0x0, 0x26, 0x41, 0xff, + 0xff, 0xff, 0x5d, 0x84, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x54, 0x51, 0xff, 0xff, 0x2d, 0x66, 0x35, + 0xff, 0xff, 0x9f, 0xd2, 0x4, 0xfe, 0xf3, 0xff, + 0x93, 0xbc, 0xa, 0xfe, 0xef, 0xff, 0x57, 0x5e, + 0x0, 0x0, 0x44, 0x17, 0xf7, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x95, + 0xd2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x30, 0x41, 0xbb, 0xbb, 0xbb, 0x3d, 0x74, 0x0, + 0x20, 0xfe, 0xe5, 0xff, 0xff, 0xaf, 0xcc, 0x0, + 0x0, 0x5e, 0x5b, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x39, + 0x30, 0x0, 0x0, 0xb4, 0x99, 0xc3, 0xcf, 0xa1, + 0xe2, 0x8, 0x24, 0xfe, 0xe3, 0xff, 0xff, 0xb1, + 0xd6, 0x0, 0x0, 0x0, 0xdc, 0xb1, 0xff, 0xff, + 0xe7, 0x5, 0x3c, 0xc, 0xf0, 0xad, 0xff, 0xff, + 0xed, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xa0, 0x7b, 0xff, 0xff, 0xf9, 0xb, 0x20, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfa, 0xef, + 0xff, 0xff, 0xa9, 0xec, 0x4, 0x16, 0xfc, 0xd7, + 0xff, 0xff, 0xc1, 0xde, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x12, 0x66, 0xb4, 0xd6, 0xd4, 0xdc, 0x41, + 0xff, 0xff, 0xff, 0x75, 0x90, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x6, 0x52, 0xcc, 0xfe, 0x5f, + 0xc1, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xd6, + 0x0, 0x0, 0x0, 0x8e, 0x87, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2f, + 0x22, 0x0, 0x0, 0x0, 0xb8, 0xab, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xd3, 0x77, 0xf, 0xe4, 0x6e, + 0x10, 0x0, 0x0, 0x0, 0x0, 0x20, 0x13, 0x3f, + 0x3f, 0x3f, 0x13, 0x32, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x5a, 0x4f, 0xff, 0xff, 0x2f, 0x7c, 0x57, + 0xff, 0xff, 0x8d, 0xc0, 0x1a, 0xf, 0xff, 0xff, + 0x7d, 0xa4, 0x54, 0x21, 0xff, 0xff, 0x29, 0x36, + 0x0, 0x0, 0xaa, 0x73, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdd, + 0xfe, 0x1c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x30, 0x3b, 0xff, 0xff, 0xff, 0x9d, 0xfe, 0xce, + 0xf0, 0x49, 0xff, 0xff, 0xff, 0x91, 0xae, 0x0, + 0x0, 0x34, 0x1f, 0x6b, 0x6b, 0x6b, 0x6b, 0x6b, + 0x6b, 0x91, 0xff, 0xff, 0xff, 0x8b, 0x6b, 0x17, + 0x1c, 0x0, 0x0, 0xc4, 0xbb, 0xff, 0xff, 0xed, + 0x1b, 0xe0, 0xee, 0x4f, 0xff, 0xff, 0xff, 0x83, + 0xa6, 0x0, 0x0, 0x0, 0x9a, 0x71, 0xff, 0xff, + 0xff, 0x6f, 0xf8, 0xe4, 0x25, 0xf1, 0xff, 0xff, + 0xbf, 0xec, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xd2, 0xa3, 0xff, 0xff, 0xdb, 0xfc, 0x2, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf6, 0xdb, + 0xff, 0xff, 0xe3, 0xf, 0xdc, 0xec, 0x39, 0xf9, + 0xff, 0xff, 0xab, 0xcc, 0x0, 0x0, 0x0, 0x0, + 0x1c, 0xb0, 0xd0, 0xdc, 0xbc, 0xd8, 0x9, 0xbf, + 0xff, 0xff, 0xf9, 0x27, 0x4a, 0x0, 0x0, 0x0, + 0x3c, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x14, 0x0, + 0x0, 0x0, 0x3c, 0xcc, 0xf2, 0xf6, 0xdc, 0x78, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0xa2, + 0xfa, 0x35, 0xa1, 0xf1, 0xff, 0xff, 0xcd, 0xee, + 0x0, 0x0, 0x0, 0x5a, 0x2d, 0x57, 0x57, 0x57, + 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0xf, + 0x14, 0x0, 0x0, 0x0, 0xda, 0xb3, 0xff, 0xff, + 0xf9, 0xb1, 0x4b, 0xfe, 0xbc, 0x44, 0x4, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x2a, 0xe4, 0xfa, + 0xfe, 0xfc, 0xe6, 0x2e, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x42, 0x45, 0xff, 0xff, 0x3f, 0x90, 0x59, + 0xff, 0xff, 0x95, 0xda, 0x9e, 0x39, 0xff, 0xff, + 0x6b, 0x96, 0xd8, 0x85, 0xff, 0xd9, 0xfe, 0xe, + 0x0, 0x8, 0xf6, 0xc1, 0xff, 0xff, 0xcd, 0x63, + 0x63, 0x63, 0x63, 0x63, 0x7f, 0xff, 0xff, 0xff, + 0x43, 0x76, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x18, 0xfe, 0xd9, 0xff, 0xff, 0xff, 0xbb, 0x89, + 0x9f, 0xf1, 0xff, 0xff, 0xf9, 0x39, 0x68, 0x0, + 0x0, 0x8, 0x3e, 0x6a, 0x86, 0x86, 0x86, 0x86, + 0xb8, 0x57, 0xff, 0xff, 0xff, 0x4d, 0x9e, 0x3e, + 0x6, 0x0, 0x0, 0xa0, 0x6d, 0xff, 0xff, 0xff, + 0xdd, 0x8f, 0x99, 0xef, 0xff, 0xff, 0xf3, 0x21, + 0x54, 0x0, 0x0, 0x0, 0x3e, 0xb, 0xdf, 0xff, + 0xff, 0xf9, 0xa1, 0x8f, 0xdf, 0xff, 0xff, 0xff, + 0x57, 0x9c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xf0, 0xc9, 0xff, 0xff, 0xc1, 0xec, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd0, 0x99, + 0xff, 0xff, 0xff, 0xd9, 0x8f, 0x97, 0xeb, 0xff, + 0xff, 0xff, 0x5f, 0x8e, 0x0, 0x0, 0x0, 0x0, + 0x52, 0x43, 0xd5, 0xa1, 0x89, 0x91, 0xd5, 0xff, + 0xff, 0xff, 0xa1, 0xf2, 0xe, 0x0, 0x0, 0x0, + 0x68, 0x6f, 0xff, 0xff, 0xff, 0x35, 0x26, 0x0, + 0x0, 0x0, 0x74, 0x71, 0xe3, 0xe3, 0xaf, 0xc4, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x14, 0x76, 0xe8, 0x15, 0x7f, 0xdb, 0xcd, 0xdc, + 0x0, 0x0, 0x0, 0x10, 0x36, 0x58, 0x6a, 0x6a, + 0x6a, 0x6a, 0x6a, 0x6a, 0x6a, 0x6a, 0x4e, 0x2c, + 0x4, 0x0, 0x0, 0x0, 0xc2, 0xb3, 0xe5, 0x8f, + 0x23, 0xf4, 0x8c, 0x22, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x4a, 0x51, 0xf5, + 0xf5, 0xf5, 0x57, 0x4e, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x24, 0x1b, 0xff, 0xff, 0x6b, 0xac, 0x2d, + 0xff, 0xff, 0xd5, 0xb, 0x1b, 0xc3, 0xff, 0xff, + 0x6d, 0xfa, 0x27, 0xe7, 0xff, 0x7b, 0xc4, 0x0, + 0x0, 0x4c, 0x1f, 0xf9, 0xff, 0xff, 0x7b, 0xd2, + 0x7a, 0x7a, 0x7a, 0x8a, 0xfe, 0xe9, 0xff, 0xff, + 0x9b, 0xda, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xb6, 0x49, 0xf1, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0xf0, 0x16, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x6a, 0x57, 0xff, 0xff, 0xff, 0x4d, 0x5c, 0x0, + 0x0, 0x0, 0x0, 0x3a, 0xfe, 0xb3, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x71, 0xe4, + 0xa, 0x0, 0x0, 0x0, 0x2, 0xc0, 0x47, 0xef, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x97, + 0xfc, 0x2a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xfc, 0xe5, 0xff, 0xff, 0xa7, 0xd6, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x64, 0x19, + 0xd7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xb1, 0xfe, 0x30, 0x0, 0x0, 0x0, 0x0, + 0x76, 0x71, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xc5, 0xd, 0x6c, 0x0, 0x0, 0x0, 0x0, + 0x8c, 0x6f, 0xff, 0xff, 0xff, 0x35, 0x36, 0x0, + 0x0, 0x0, 0x9c, 0x7f, 0xff, 0xff, 0xc5, 0xe4, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x6, 0x4e, 0xc8, 0xec, 0x3f, 0xa4, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x88, 0x3f, 0x5, 0xd6, + 0x5e, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x68, 0x57, 0xff, + 0xff, 0xff, 0x5b, 0x6e, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x8, 0xfe, 0xe3, 0xff, 0xa1, 0xe6, 0xfe, + 0xcf, 0xff, 0xff, 0xf3, 0xf9, 0xe9, 0xe1, 0xff, + 0xdb, 0xa7, 0xeb, 0xff, 0xc3, 0xfe, 0x44, 0x0, + 0x0, 0xb4, 0x7b, 0xff, 0xff, 0xfd, 0x27, 0x50, + 0x0, 0x0, 0x0, 0x0, 0xe6, 0xad, 0xff, 0xff, + 0xe3, 0xfe, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x20, 0xdc, 0x31, 0xb3, 0xf7, 0xff, 0xff, + 0xff, 0xfd, 0xcb, 0x57, 0xfa, 0x4a, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x4c, 0x57, 0xff, 0xff, 0xff, 0x4d, 0x42, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x7c, 0xfe, 0x7f, 0xe1, + 0xff, 0xff, 0xff, 0xff, 0xd9, 0x61, 0xf8, 0x3e, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x1e, 0xda, 0x37, + 0xbb, 0xfb, 0xff, 0xff, 0xff, 0xe3, 0x75, 0xfe, + 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xf8, 0xf7, 0xff, 0xff, 0x93, 0xa4, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0xae, + 0x17, 0x9d, 0xef, 0xff, 0xff, 0xff, 0xff, 0xe3, + 0x83, 0x5, 0x7a, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x64, 0x65, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xe5, + 0x87, 0x5, 0x92, 0x2, 0x0, 0x0, 0x0, 0x0, + 0x68, 0x6f, 0xff, 0xff, 0xff, 0x35, 0x26, 0x0, + 0x0, 0x0, 0xa6, 0x7f, 0xff, 0xff, 0xc1, 0xe4, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x16, 0x16, 0x16, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x16, 0x16, 0x16, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x4c, 0x57, 0xff, + 0xff, 0xff, 0x5b, 0x52, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xde, 0xa7, 0xff, 0xe9, 0xd, 0xc6, + 0x39, 0xdf, 0xff, 0xff, 0xe5, 0x4b, 0x5b, 0xf3, + 0xff, 0xff, 0xf5, 0xa3, 0x13, 0x92, 0x0, 0x0, + 0x0, 0xb2, 0xc7, 0xff, 0xff, 0xcf, 0xfc, 0xc, + 0x0, 0x0, 0x0, 0x0, 0x90, 0x63, 0xff, 0xff, + 0xff, 0x4d, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x12, 0x86, 0xf2, 0xd, 0x47, 0x59, + 0x4d, 0x1b, 0xfc, 0xaa, 0x2a, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x2a, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x24, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x48, 0xcc, 0xfe, + 0x31, 0x57, 0x55, 0x2d, 0xfe, 0xbc, 0x30, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x16, 0x90, + 0xf6, 0x19, 0x4d, 0x57, 0x39, 0xfe, 0xce, 0x40, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xe4, 0xfe, 0xfe, 0xfe, 0xfe, 0x5c, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, + 0x68, 0xe4, 0xfe, 0x3d, 0x57, 0x55, 0x31, 0xfe, + 0xd0, 0x4c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x34, 0xca, 0xfe, 0x2f, 0x4f, 0x55, 0x35, 0xfe, + 0xd4, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x3c, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x14, 0x0, + 0x0, 0x0, 0xbe, 0x89, 0xff, 0xff, 0xa7, 0xca, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x2a, 0xfe, 0xfe, + 0xfe, 0xfe, 0xfe, 0x2c, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x82, 0x47, 0xff, 0xff, 0x91, 0xf4, + 0xca, 0x5, 0x45, 0x43, 0x9, 0xd2, 0xe6, 0x1f, + 0x55, 0x49, 0xf, 0xec, 0x6e, 0x4, 0x0, 0x0, + 0x0, 0x94, 0xfe, 0xfe, 0xfe, 0xfe, 0xa0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x32, 0xfe, 0xfe, 0xfe, + 0xfe, 0xfe, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x2, 0x22, 0x48, 0x5e, + 0x4e, 0x2a, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x12, + 0x38, 0x58, 0x56, 0x34, 0x10, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x6, 0x2a, 0x4c, 0x58, 0x3c, 0x16, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x18, 0x3e, 0x5c, 0x58, 0x38, 0x12, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x10, 0x32, 0x54, 0x54, 0x38, 0x14, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x6, 0xf0, 0xaf, 0xff, 0xff, 0x5d, 0x88, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x1e, 0xfe, 0xaf, 0xff, 0xfb, 0x6b, + 0xfa, 0x8c, 0x46, 0x36, 0x1c, 0x0, 0x2c, 0x58, + 0x6e, 0x52, 0x22, 0x4, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x18, 0x17, 0xf1, 0xff, 0xd1, 0xfe, 0x2e, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x7c, 0x1b, 0xd9, 0xff, 0xfd, + 0xab, 0x35, 0xfe, 0xf2, 0xee, 0xf8, 0xfe, 0x4f, + 0x2f, 0x5c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x18, 0x37, 0xd9, 0xf1, 0x41, 0xae, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x8, 0xb4, 0x1f, 0xc7, 0xff, + 0xff, 0xff, 0xdf, 0xc7, 0xbf, 0xd3, 0xef, 0xff, + 0x87, 0x78, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x14, 0xb4, 0x5, 0x31, 0xde, 0x1c, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x8, 0x98, 0xfe, 0x67, + 0xc7, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd3, + 0x5d, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x10, 0x10, 0x10, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x36, 0xac, + 0xf6, 0x13, 0x49, 0x5f, 0x6b, 0x57, 0x23, 0xfc, + 0xb6, 0x2e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x4, 0x24, 0x4c, 0x72, 0x78, 0x60, 0x34, 0xc, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x4, 0xe, 0x1a, 0x20, 0x20, 0x20, 0x1e, + 0x14, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x20, 0x4e, 0x72, 0x72, 0x4e, 0x20, 0x2, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xe, 0x1a, + 0x20, 0x20, 0x20, 0x1c, 0x10, 0x6, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x4, 0xe, 0x1a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x18, 0xe, 0x2, 0x0, + 0x0, 0x4, 0xe, 0x1a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0xe, 0x2, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1e, + 0x4a, 0x70, 0x74, 0x54, 0x28, 0x4, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xe, 0x1a, + 0x20, 0x16, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xc, 0x16, 0x20, 0x1a, 0xe, 0x4, 0x0, 0x0, + 0x0, 0x2, 0xc, 0x18, 0x20, 0x18, 0xc, 0x2, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x2, 0xe, 0x18, 0x20, 0x16, 0xc, + 0x0, 0x0, 0x0, 0x0, 0x4, 0xe, 0x1a, 0x20, + 0x16, 0xc, 0x0, 0x0, 0x0, 0x0, 0xa, 0x16, + 0x20, 0x20, 0x18, 0xc, 0x2, 0x0, 0x0, 0x4, + 0xe, 0x1a, 0x20, 0x16, 0xc, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, + 0xe, 0x1a, 0x20, 0x20, 0x16, 0xc, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x16, 0x20, + 0x20, 0x1a, 0xe, 0x4, 0x0, 0x0, 0x0, 0x4, + 0xe, 0x1a, 0x20, 0x16, 0xc, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xc, 0x16, 0x20, 0x1a, 0xe, 0x4, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x14, 0x3e, 0x66, 0x72, 0x56, 0x28, 0x4, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x52, 0x11, 0x23, 0x23, 0x23, 0x23, 0x23, + 0x1f, 0x9, 0xfe, 0xea, 0x9e, 0x30, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x60, 0xe2, + 0x5, 0x49, 0x65, 0x65, 0x49, 0xb, 0xec, 0x76, + 0x8, 0x0, 0x0, 0x0, 0x0, 0x52, 0x11, 0x23, + 0x23, 0x23, 0x23, 0x23, 0x15, 0xfe, 0xf8, 0xc2, + 0x5c, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x52, 0x11, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, + 0x23, 0x23, 0x23, 0x23, 0x23, 0xd, 0x32, 0x0, + 0x0, 0x52, 0x11, 0x23, 0x23, 0x23, 0x23, 0x23, + 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0xd, 0x34, + 0x0, 0x0, 0x0, 0x0, 0x4, 0x5c, 0xe0, 0x5, + 0x45, 0x65, 0x67, 0x4f, 0x13, 0xf6, 0x8e, 0x14, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x52, 0x11, 0x23, + 0x23, 0x23, 0xfe, 0x2, 0x0, 0x0, 0x0, 0x2, + 0xfe, 0x23, 0x23, 0x23, 0x11, 0x4e, 0x0, 0x0, + 0x0, 0x24, 0xb, 0x23, 0x23, 0x23, 0xb, 0x2e, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x32, 0xd, 0x23, 0x23, 0x23, 0x9, + 0x1c, 0x0, 0x0, 0x0, 0x52, 0x11, 0x23, 0x23, + 0x23, 0xfe, 0x2, 0x0, 0x0, 0x40, 0xfe, 0x21, + 0x23, 0x23, 0x23, 0xf, 0x4, 0x0, 0x0, 0x52, + 0x11, 0x23, 0x23, 0x23, 0xfe, 0x2, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x52, + 0x11, 0x23, 0x23, 0x23, 0x23, 0x5, 0x30, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x40, 0x9, 0x23, 0x23, + 0x23, 0x23, 0xf, 0x44, 0x0, 0x0, 0x0, 0x52, + 0x11, 0x23, 0x23, 0x23, 0xfe, 0x42, 0x0, 0x0, + 0x0, 0x2, 0xfe, 0x23, 0x23, 0x23, 0x11, 0x4e, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xc8, + 0xfe, 0x35, 0x5d, 0x67, 0x51, 0x11, 0xf2, 0x8a, + 0x14, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x88, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xeb, 0xbd, 0x5f, 0xfe, 0x70, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x8, 0xa6, 0x11, 0x97, + 0xef, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xa7, 0x1f, + 0xc2, 0xe, 0x0, 0x0, 0x0, 0x88, 0x87, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xd1, 0x8d, + 0x1b, 0xd6, 0x2c, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x88, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0x58, 0x0, + 0x0, 0x88, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x63, 0x5c, + 0x0, 0x0, 0x0, 0x6, 0xa4, 0xf, 0x91, 0xed, + 0xff, 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x35, 0xdc, + 0x1c, 0x0, 0x0, 0x0, 0x0, 0x88, 0x87, 0xff, + 0xff, 0xff, 0xd, 0x4, 0x0, 0x0, 0x0, 0x4, + 0xd, 0xff, 0xff, 0xff, 0x83, 0x82, 0x0, 0x0, + 0x0, 0x42, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x52, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x58, 0x5f, 0xff, 0xff, 0xff, 0x43, + 0x36, 0x0, 0x0, 0x0, 0x88, 0x87, 0xff, 0xff, + 0xff, 0xd, 0x4, 0x0, 0xe, 0xe0, 0x75, 0xff, + 0xff, 0xff, 0xd9, 0x15, 0x4, 0x0, 0x0, 0x88, + 0x87, 0xff, 0xff, 0xff, 0xd, 0x4, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, + 0x87, 0xff, 0xff, 0xff, 0xff, 0x5f, 0x94, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xac, 0x75, 0xff, 0xff, + 0xff, 0xff, 0x77, 0x76, 0x0, 0x0, 0x0, 0x88, + 0x87, 0xff, 0xff, 0xff, 0x77, 0xda, 0x8, 0x0, + 0x0, 0x4, 0xd, 0xff, 0xff, 0xff, 0x83, 0x82, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x7a, 0xfe, 0x75, + 0xdf, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xb5, 0x35, + 0xde, 0x2a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xa7, 0xfe, 0x36, + 0x0, 0x0, 0x0, 0x0, 0x86, 0x1b, 0xd1, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, + 0x29, 0x94, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xed, 0x59, 0xee, 0x26, 0x0, 0x0, 0x0, 0x0, + 0xac, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0x68, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x63, 0x6e, + 0x0, 0x0, 0x0, 0x86, 0x19, 0xcf, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0x43, + 0xb8, 0x0, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, + 0xff, 0xff, 0xd, 0x6, 0x0, 0x0, 0x0, 0x6, + 0xd, 0xff, 0xff, 0xff, 0x83, 0xa6, 0x0, 0x0, + 0x0, 0x5c, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x76, 0x5f, 0xff, 0xff, 0xff, 0x43, + 0x4c, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, 0xff, + 0xff, 0xd, 0x6, 0x0, 0x8a, 0x27, 0xef, 0xff, + 0xff, 0xf9, 0x43, 0xb8, 0x4, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xff, 0xb1, 0xee, 0x4, + 0x0, 0x0, 0x0, 0xa, 0xf8, 0xc3, 0xff, 0xff, + 0xff, 0xff, 0x77, 0x98, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xeb, 0x1b, 0x6e, 0x0, + 0x0, 0x6, 0xd, 0xff, 0xff, 0xff, 0x83, 0xa6, + 0x0, 0x0, 0x0, 0x0, 0x60, 0x5, 0xb1, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, + 0x57, 0xde, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xad, 0xad, + 0xb1, 0xc7, 0xfb, 0xff, 0xff, 0xff, 0x67, 0x9a, + 0x0, 0x0, 0x0, 0x20, 0xfe, 0xb7, 0xff, 0xff, + 0xff, 0xbf, 0x7d, 0x89, 0xbd, 0xff, 0xff, 0xff, + 0xc3, 0xfe, 0x1c, 0x0, 0x0, 0xac, 0x87, 0xff, + 0xff, 0xff, 0xad, 0xad, 0xb7, 0xd7, 0xff, 0xff, + 0xff, 0xf9, 0x51, 0xc6, 0x2, 0x0, 0x0, 0x0, + 0xac, 0x87, 0xff, 0xff, 0xff, 0xad, 0xad, 0xad, + 0xad, 0xad, 0xad, 0xad, 0xad, 0x41, 0x44, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xad, 0xad, + 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0x43, 0x4a, + 0x0, 0x0, 0x24, 0xfe, 0xb9, 0xff, 0xff, 0xff, + 0xcd, 0x85, 0x81, 0xb1, 0xfd, 0xff, 0xff, 0xdb, + 0x9, 0x32, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, + 0xff, 0xff, 0xd, 0x6, 0x0, 0x0, 0x0, 0x6, + 0xd, 0xff, 0xff, 0xff, 0x83, 0xa6, 0x0, 0x0, + 0x0, 0x5c, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x76, 0x5f, 0xff, 0xff, 0xff, 0x43, + 0x4c, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, 0xff, + 0xff, 0xd, 0x6, 0x36, 0xfe, 0xb9, 0xff, 0xff, + 0xff, 0x87, 0xf0, 0x1c, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xf, 0x3a, + 0x0, 0x0, 0x0, 0x50, 0x21, 0xfb, 0xff, 0xff, + 0xff, 0xff, 0x77, 0x98, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xff, 0xa1, 0xf6, 0x1a, + 0x0, 0x6, 0xd, 0xff, 0xff, 0xff, 0x83, 0xa6, + 0x0, 0x0, 0x0, 0x12, 0xf4, 0x97, 0xff, 0xff, + 0xff, 0xd9, 0x91, 0x83, 0xad, 0xf9, 0xff, 0xff, + 0xf1, 0x35, 0x8e, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0xd8, + 0xe0, 0xfa, 0x43, 0xf7, 0xff, 0xff, 0xb5, 0xd6, + 0x0, 0x0, 0x0, 0x7c, 0x49, 0xff, 0xff, 0xff, + 0xa3, 0xfe, 0xc6, 0xc6, 0xfe, 0x95, 0xff, 0xff, + 0xff, 0x43, 0x6a, 0x0, 0x0, 0xac, 0x87, 0xff, + 0xff, 0xff, 0xd, 0xda, 0xe8, 0xfe, 0x53, 0xed, + 0xff, 0xff, 0xe3, 0xb, 0x40, 0x0, 0x0, 0x0, + 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0xd8, 0xd6, + 0xd6, 0xd6, 0xd6, 0xd6, 0xbc, 0x84, 0x1a, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0xd8, + 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xbc, 0x84, 0x1c, + 0x0, 0x0, 0x80, 0x4f, 0xff, 0xff, 0xff, 0xb1, + 0xfe, 0xce, 0xbe, 0xfa, 0x77, 0xff, 0xff, 0xff, + 0x63, 0x8c, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, + 0xff, 0xff, 0xd, 0x6, 0x0, 0x0, 0x0, 0x6, + 0xd, 0xff, 0xff, 0xff, 0x83, 0xa6, 0x0, 0x0, + 0x0, 0x5c, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x76, 0x5f, 0xff, 0xff, 0xff, 0x43, + 0x4c, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, 0xff, + 0xff, 0xd, 0xe, 0xd6, 0x69, 0xff, 0xff, 0xff, + 0xc7, 0xfe, 0x50, 0x0, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6b, 0xa0, + 0x0, 0x0, 0x0, 0xba, 0x7f, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x77, 0x98, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x41, 0xa2, + 0x0, 0x6, 0xd, 0xff, 0xff, 0xff, 0x83, 0xa6, + 0x0, 0x0, 0x0, 0x68, 0x31, 0xfb, 0xff, 0xff, + 0xc1, 0x9, 0xda, 0xc0, 0xf8, 0x51, 0xf9, 0xff, + 0xff, 0xb9, 0xf8, 0x8, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, + 0x0, 0x1c, 0xfc, 0xcf, 0xff, 0xff, 0xcb, 0xe6, + 0x0, 0x0, 0x0, 0xca, 0xa1, 0xff, 0xff, 0xf7, + 0x21, 0x72, 0x0, 0x0, 0x60, 0x13, 0xfb, 0xff, + 0xff, 0x91, 0x98, 0x0, 0x0, 0xac, 0x87, 0xff, + 0xff, 0xff, 0xd, 0x6, 0x0, 0x26, 0xde, 0x67, + 0xff, 0xff, 0xff, 0x73, 0x9c, 0x0, 0x0, 0x0, + 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xce, 0xa3, 0xff, 0xff, 0xf7, 0x27, + 0x80, 0x0, 0x0, 0x42, 0xfe, 0xe3, 0xff, 0xff, + 0xa7, 0x9a, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, + 0xff, 0xff, 0xd, 0x6, 0x0, 0x0, 0x0, 0x6, + 0xd, 0xff, 0xff, 0xff, 0x83, 0xa6, 0x0, 0x0, + 0x0, 0x5c, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x76, 0x5f, 0xff, 0xff, 0xff, 0x43, + 0x4c, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, 0xff, + 0xff, 0xd, 0x7e, 0x1f, 0xeb, 0xff, 0xff, 0xef, + 0x2d, 0x9a, 0x0, 0x0, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xeb, 0xff, 0xff, 0xbb, 0xf4, + 0x6, 0x0, 0x10, 0xfc, 0xcb, 0xff, 0xff, 0xeb, + 0xff, 0xff, 0x77, 0x98, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc9, 0xfe, + 0x3a, 0x6, 0xd, 0xff, 0xff, 0xff, 0x83, 0xa6, + 0x0, 0x0, 0x0, 0xbe, 0x93, 0xff, 0xff, 0xfb, + 0x37, 0x96, 0x0, 0x0, 0x26, 0xf6, 0xa9, 0xff, + 0xff, 0xfd, 0x1f, 0x3a, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, + 0x6, 0x5e, 0xfe, 0xd9, 0xff, 0xff, 0xb5, 0xd4, + 0x0, 0x0, 0x0, 0xec, 0xcb, 0xff, 0xff, 0xcb, + 0xf8, 0xa, 0x0, 0x0, 0x4, 0xf4, 0xa3, 0xbd, + 0xbd, 0x83, 0x8a, 0x0, 0x0, 0xac, 0x87, 0xff, + 0xff, 0xff, 0xd, 0x6, 0x0, 0x0, 0x34, 0xfe, + 0xe7, 0xff, 0xff, 0xb1, 0xd8, 0x0, 0x0, 0x0, + 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0x4c, 0x46, + 0x46, 0x46, 0x46, 0x30, 0x1a, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xee, 0xcd, 0xff, 0xff, 0xcd, 0xfa, + 0xc, 0x0, 0x0, 0x0, 0xc4, 0x49, 0x63, 0x63, + 0x49, 0x82, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, + 0xff, 0xff, 0xd, 0x6, 0x0, 0x0, 0x0, 0x6, + 0xd, 0xff, 0xff, 0xff, 0x83, 0xa6, 0x0, 0x0, + 0x0, 0x5c, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x76, 0x5f, 0xff, 0xff, 0xff, 0x43, + 0x4c, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, 0xff, + 0xff, 0xd, 0xfc, 0xaf, 0xff, 0xff, 0xff, 0x6b, + 0xde, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xcb, 0xe3, 0xff, 0xf7, 0x17, + 0x44, 0x0, 0x5e, 0x2d, 0xfd, 0xff, 0xd3, 0xdb, + 0xff, 0xff, 0x77, 0x98, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0x6d, + 0xd0, 0xa, 0xd, 0xff, 0xff, 0xff, 0x83, 0xa6, + 0x0, 0x0, 0x0, 0xe8, 0xc5, 0xff, 0xff, 0xd3, + 0xfc, 0x16, 0x0, 0x0, 0x0, 0x8e, 0x53, 0xff, + 0xff, 0xff, 0x65, 0x72, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0xfe, + 0xfe, 0x17, 0x91, 0xff, 0xff, 0xff, 0x5b, 0x96, + 0x0, 0x0, 0x0, 0xf6, 0xdb, 0xff, 0xff, 0xb3, + 0xe2, 0x0, 0x0, 0x0, 0x0, 0x6c, 0xba, 0xde, + 0xd8, 0xac, 0x4c, 0x0, 0x0, 0xac, 0x87, 0xff, + 0xff, 0xff, 0xd, 0x6, 0x0, 0x0, 0x0, 0xf2, + 0xc3, 0xff, 0xff, 0xcf, 0xf0, 0x0, 0x0, 0x0, + 0xac, 0x87, 0xff, 0xff, 0xff, 0x43, 0x3f, 0x3f, + 0x3f, 0x3f, 0x3f, 0x3f, 0x9, 0xe, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0xf0, + 0xf0, 0xf0, 0xf0, 0xf0, 0xda, 0xa0, 0xa, 0x0, + 0x0, 0x0, 0xf6, 0xdb, 0xff, 0xff, 0xb3, 0xe4, + 0x0, 0x0, 0x0, 0x0, 0x20, 0x4c, 0x70, 0x70, + 0x4c, 0x20, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, + 0xff, 0xff, 0xd, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 0xd, 0xff, 0xff, 0xff, 0x83, 0xa6, 0x0, 0x0, + 0x0, 0x5c, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x76, 0x5f, 0xff, 0xff, 0xff, 0x43, + 0x4c, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, 0xff, + 0xff, 0x33, 0x69, 0xff, 0xff, 0xff, 0xb1, 0xfe, + 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xd5, 0x99, 0xff, 0xff, 0x75, + 0xac, 0x0, 0xc6, 0x89, 0xff, 0xff, 0x85, 0xe3, + 0xff, 0xff, 0x77, 0x98, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0x5f, 0xff, 0xff, 0xe5, + 0x13, 0x66, 0xd, 0xff, 0xff, 0xff, 0x83, 0xa6, + 0x0, 0x0, 0x0, 0xf4, 0xd9, 0xff, 0xff, 0xb7, + 0xe6, 0x0, 0x0, 0x0, 0x0, 0x32, 0x27, 0xff, + 0xff, 0xff, 0x7d, 0x9a, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xf1, 0xf1, + 0xf3, 0xff, 0xff, 0xff, 0xf5, 0x81, 0xfc, 0x2c, + 0x0, 0x0, 0x0, 0xf8, 0xdf, 0xff, 0xff, 0xad, + 0xd8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, + 0xff, 0xff, 0xd, 0x6, 0x0, 0x0, 0x0, 0xe4, + 0xb7, 0xff, 0xff, 0xdb, 0xf6, 0x0, 0x0, 0x0, + 0xac, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x29, 0x1c, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xcf, 0xcd, + 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0x21, 0x18, 0x0, + 0x0, 0x0, 0xf8, 0xdf, 0xff, 0xff, 0xad, 0xd8, + 0x0, 0x68, 0xc0, 0xe4, 0xec, 0xec, 0xec, 0xe4, + 0xbe, 0x62, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, + 0xff, 0xff, 0xcf, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, + 0xcf, 0xff, 0xff, 0xff, 0x83, 0xa6, 0x0, 0x0, + 0x0, 0x5c, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x76, 0x5f, 0xff, 0xff, 0xff, 0x43, + 0x4c, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x19, 0x82, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xdd, 0x3b, 0xff, 0xff, 0xc3, + 0xf8, 0x20, 0xfe, 0xd5, 0xff, 0xfb, 0x25, 0xeb, + 0xff, 0xff, 0x77, 0x98, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xd, 0xbb, 0xff, 0xff, + 0x99, 0xf0, 0xd, 0xff, 0xff, 0xff, 0x83, 0xa6, + 0x0, 0x0, 0x0, 0xf8, 0xdf, 0xff, 0xff, 0xad, + 0xda, 0x0, 0x0, 0x0, 0x0, 0x10, 0xd, 0xff, + 0xff, 0xff, 0x87, 0xa8, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xe3, 0x81, 0xfe, 0x6a, + 0x0, 0x0, 0x0, 0xfa, 0xdf, 0xff, 0xff, 0xad, + 0xd6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, + 0xff, 0xff, 0xd, 0x6, 0x0, 0x0, 0x0, 0xe0, + 0xb7, 0xff, 0xff, 0xdd, 0xf8, 0x0, 0x0, 0x0, + 0xac, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x29, 0x22, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x29, 0x22, 0x0, + 0x0, 0x0, 0xfa, 0xdf, 0xff, 0xff, 0xad, 0xd6, + 0x0, 0xc4, 0x9f, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, + 0x9b, 0xbe, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x83, 0xa6, 0x0, 0x0, + 0x0, 0x5c, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x76, 0x5f, 0xff, 0xff, 0xff, 0x43, + 0x4c, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x27, 0x90, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xe5, 0xfe, 0xd3, 0xff, 0xfb, + 0x21, 0x98, 0x39, 0xff, 0xff, 0xc3, 0xfe, 0xf3, + 0xff, 0xff, 0x77, 0x98, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xd, 0x31, 0xf7, 0xff, + 0xf9, 0x37, 0xd, 0xff, 0xff, 0xff, 0x83, 0xa6, + 0x0, 0x0, 0x0, 0xfa, 0xdf, 0xff, 0xff, 0xad, + 0xd6, 0x0, 0x0, 0x0, 0x0, 0x6, 0xd, 0xff, + 0xff, 0xff, 0x87, 0xac, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0x93, 0x91, + 0x91, 0x95, 0xbb, 0xff, 0xff, 0xff, 0xa1, 0xf6, + 0x12, 0x0, 0x0, 0xf8, 0xdf, 0xff, 0xff, 0xad, + 0xda, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, + 0xff, 0xff, 0xd, 0x6, 0x0, 0x0, 0x0, 0xe4, + 0xb7, 0xff, 0xff, 0xdb, 0xf6, 0x0, 0x0, 0x0, + 0xac, 0x87, 0xff, 0xff, 0xff, 0x9d, 0x9b, 0x9b, + 0x9b, 0x9b, 0x9b, 0x9b, 0x19, 0x14, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xef, 0xef, + 0xef, 0xef, 0xef, 0xef, 0xef, 0x27, 0x1a, 0x0, + 0x0, 0x0, 0xf8, 0xdf, 0xff, 0xff, 0xad, 0xda, + 0x0, 0xda, 0xcd, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xc7, 0xe4, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, + 0xff, 0xff, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, + 0xef, 0xff, 0xff, 0xff, 0x83, 0xa6, 0x0, 0x0, + 0x0, 0x5c, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x76, 0x5f, 0xff, 0xff, 0xff, 0x43, + 0x4c, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, 0xff, + 0xff, 0xe9, 0xe9, 0xff, 0xff, 0xff, 0xbb, 0xfe, + 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xef, 0xfe, 0x85, 0xff, 0xff, + 0x7d, 0xf2, 0x93, 0xff, 0xff, 0x71, 0xfe, 0xfb, + 0xff, 0xff, 0x77, 0x98, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xd, 0xec, 0x93, 0xff, + 0xff, 0xbf, 0xd, 0xff, 0xff, 0xff, 0x83, 0xa6, + 0x0, 0x0, 0x0, 0xf8, 0xdf, 0xff, 0xff, 0xad, + 0xda, 0x0, 0x0, 0x0, 0x0, 0x12, 0xd, 0xff, + 0xff, 0xff, 0x87, 0xa8, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0xba, + 0xba, 0xcc, 0xfe, 0x8b, 0xff, 0xff, 0xfb, 0x31, + 0x46, 0x0, 0x0, 0xf6, 0xdb, 0xff, 0xff, 0xb5, + 0xe4, 0x0, 0x0, 0x0, 0x0, 0x6c, 0xb8, 0xdc, + 0xd6, 0xa8, 0x4c, 0x0, 0x0, 0xac, 0x87, 0xff, + 0xff, 0xff, 0xd, 0x6, 0x0, 0x0, 0x0, 0xf4, + 0xc5, 0xff, 0xff, 0xcd, 0xee, 0x0, 0x0, 0x0, + 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0xc8, 0xc6, + 0xc6, 0xc6, 0xc6, 0xa4, 0x68, 0x6, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0xfe, + 0xfe, 0xfe, 0xfe, 0xfe, 0xf8, 0xd4, 0xc, 0x0, + 0x0, 0x0, 0xf6, 0xdb, 0xff, 0xff, 0xb5, 0xe6, + 0x0, 0xc2, 0x9b, 0xc1, 0xc1, 0xef, 0xff, 0xff, + 0xc7, 0xec, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, + 0xff, 0xff, 0xd, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, + 0xd, 0xff, 0xff, 0xff, 0x83, 0xa6, 0x0, 0x0, + 0x0, 0x5c, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x76, 0x5f, 0xff, 0xff, 0xff, 0x43, + 0x4c, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, 0xff, + 0xff, 0xd, 0xfe, 0xc1, 0xff, 0xff, 0xff, 0x71, + 0xde, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xf7, 0xfe, 0x25, 0xfb, 0xff, + 0xcb, 0xfe, 0xdd, 0xff, 0xf3, 0x11, 0xf, 0xff, + 0xff, 0xff, 0x77, 0x98, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xd, 0x60, 0xf, 0xe3, + 0xff, 0xff, 0x67, 0xff, 0xff, 0xff, 0x83, 0xa6, + 0x0, 0x0, 0x0, 0xf4, 0xd9, 0xff, 0xff, 0xbb, + 0xe8, 0x0, 0x0, 0x0, 0x0, 0x36, 0x2b, 0xff, + 0xff, 0xff, 0x7b, 0x98, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, + 0x0, 0x0, 0x70, 0x35, 0xff, 0xff, 0xff, 0x6b, + 0x74, 0x0, 0x0, 0xec, 0xcb, 0xff, 0xff, 0xcd, + 0xfa, 0xc, 0x0, 0x0, 0x6, 0xf6, 0xa3, 0xbb, + 0xbb, 0x81, 0x8e, 0x0, 0x0, 0xac, 0x87, 0xff, + 0xff, 0xff, 0xd, 0x6, 0x0, 0x0, 0x3c, 0x5, + 0xeb, 0xff, 0xff, 0xaf, 0xd6, 0x0, 0x0, 0x0, + 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xec, 0xcb, 0xff, 0xff, 0xcf, 0xfa, + 0x12, 0x62, 0xb8, 0xe0, 0xfe, 0xcb, 0xff, 0xff, + 0xc7, 0xec, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, + 0xff, 0xff, 0xd, 0x6, 0x0, 0x0, 0x0, 0x6, + 0xd, 0xff, 0xff, 0xff, 0x83, 0xa6, 0x0, 0x0, + 0x0, 0x5c, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, + 0x0, 0x0, 0x34, 0xe8, 0xfc, 0xfe, 0xfc, 0xe6, + 0x1a, 0x0, 0x80, 0x5f, 0xff, 0xff, 0xff, 0x43, + 0x44, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, 0xff, + 0xff, 0xd, 0x98, 0x31, 0xf3, 0xff, 0xff, 0xef, + 0x27, 0x8e, 0x0, 0x0, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0x5, 0xfa, 0xc1, 0xff, + 0xfd, 0x5d, 0xff, 0xff, 0xb1, 0xf0, 0x21, 0xff, + 0xff, 0xff, 0x77, 0x98, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xd, 0xa, 0xca, 0x65, + 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0x83, 0xa6, + 0x0, 0x0, 0x0, 0xe8, 0xc3, 0xff, 0xff, 0xd5, + 0xfe, 0x1a, 0x0, 0x0, 0x0, 0x92, 0x55, 0xff, + 0xff, 0xff, 0x61, 0x6e, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, + 0x0, 0x0, 0x8c, 0x3b, 0xff, 0xff, 0xff, 0x75, + 0x7e, 0x0, 0x0, 0xca, 0xa1, 0xff, 0xff, 0xf7, + 0x23, 0x72, 0x0, 0x0, 0x6a, 0x17, 0xfb, 0xff, + 0xff, 0x95, 0x9c, 0x0, 0x0, 0xac, 0x87, 0xff, + 0xff, 0xff, 0xd, 0x6, 0x0, 0x32, 0xe6, 0x71, + 0xff, 0xff, 0xff, 0x6d, 0x98, 0x0, 0x0, 0x0, + 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xc8, 0x9d, 0xff, 0xff, 0xf9, 0x31, + 0x92, 0x0, 0x0, 0x0, 0xf0, 0xcb, 0xff, 0xff, + 0xc7, 0xec, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, + 0xff, 0xff, 0xd, 0x6, 0x0, 0x0, 0x0, 0x6, + 0xd, 0xff, 0xff, 0xff, 0x83, 0xa6, 0x0, 0x0, + 0x0, 0x5c, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, + 0x0, 0x0, 0x4c, 0x67, 0xf7, 0xf7, 0xf7, 0x3f, + 0x5e, 0x0, 0xb2, 0x75, 0xff, 0xff, 0xff, 0x31, + 0x2c, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, 0xff, + 0xff, 0xd, 0x18, 0xe8, 0x83, 0xff, 0xff, 0xff, + 0xbd, 0xfe, 0x3e, 0x0, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xd, 0xac, 0x71, 0xff, + 0xff, 0xe9, 0xff, 0xff, 0x5b, 0xa0, 0x29, 0xff, + 0xff, 0xff, 0x77, 0x98, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, 0x34, 0xfe, + 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0x83, 0xa6, + 0x0, 0x0, 0x0, 0xba, 0x8f, 0xff, 0xff, 0xfd, + 0x3f, 0xa2, 0x4, 0x0, 0x2a, 0xf8, 0xad, 0xff, + 0xff, 0xfb, 0x1b, 0x36, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0xe0, + 0xe2, 0xf0, 0x9, 0xad, 0xff, 0xff, 0xff, 0x4d, + 0x5a, 0x0, 0x0, 0x7c, 0x49, 0xff, 0xff, 0xff, + 0xa5, 0xfe, 0xd0, 0xd0, 0xfe, 0x9f, 0xff, 0xff, + 0xff, 0x4b, 0x72, 0x0, 0x0, 0xac, 0x87, 0xff, + 0xff, 0xff, 0xd, 0xe4, 0xf0, 0xfe, 0x63, 0xf1, + 0xff, 0xff, 0xdf, 0x9, 0x3a, 0x0, 0x0, 0x0, + 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0xe0, 0xe0, + 0xe0, 0xe0, 0xe0, 0xe0, 0xc8, 0x92, 0x20, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x74, 0x41, 0xfd, 0xff, 0xff, 0xbf, + 0x9, 0xdc, 0xb6, 0xd6, 0xfe, 0xd1, 0xff, 0xff, + 0xc7, 0xec, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, + 0xff, 0xff, 0xd, 0x6, 0x0, 0x0, 0x0, 0x6, + 0xd, 0xff, 0xff, 0xff, 0x83, 0xa6, 0x0, 0x0, + 0x0, 0x5c, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, + 0x0, 0x0, 0x4c, 0x47, 0xff, 0xff, 0xff, 0x81, + 0xf6, 0xd0, 0xfe, 0xb7, 0xff, 0xff, 0xf1, 0x9, + 0x12, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, 0xff, + 0xff, 0xd, 0x6, 0x4c, 0x5, 0xcf, 0xff, 0xff, + 0xff, 0x73, 0xe0, 0xe, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xd, 0xe0, 0xe0, 0xe0, + 0xe0, 0xe0, 0xd2, 0xa6, 0x4a, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xd, 0x44, 0x11, 0xf3, + 0xff, 0xff, 0xff, 0xe7, 0x5, 0x4e, 0x29, 0xff, + 0xff, 0xff, 0x77, 0x98, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, 0x0, 0x98, + 0x39, 0xf9, 0xff, 0xff, 0xff, 0xff, 0x83, 0xa6, + 0x0, 0x0, 0x0, 0x62, 0x2d, 0xf9, 0xff, 0xff, + 0xc9, 0x11, 0xe6, 0xce, 0xfa, 0x57, 0xfb, 0xff, + 0xff, 0xb5, 0xf6, 0x8, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xb7, 0xb7, + 0xb7, 0xbf, 0xe3, 0xff, 0xff, 0xff, 0xdb, 0xfe, + 0x22, 0x0, 0x0, 0x20, 0xfe, 0xb9, 0xff, 0xff, + 0xff, 0xc7, 0x89, 0x93, 0xc9, 0xff, 0xff, 0xff, + 0xc5, 0xfe, 0x22, 0x0, 0x0, 0xac, 0x87, 0xff, + 0xff, 0xff, 0xb7, 0xb7, 0xbf, 0xe1, 0xff, 0xff, + 0xff, 0xf7, 0x49, 0xc0, 0x0, 0x0, 0x0, 0x0, + 0xac, 0x87, 0xff, 0xff, 0xff, 0xb7, 0xb7, 0xb7, + 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0x49, 0x50, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x1c, 0xfa, 0xa7, 0xff, 0xff, 0xff, + 0xdb, 0x93, 0x83, 0x95, 0xd1, 0xff, 0xff, 0xff, + 0xc3, 0xd4, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, + 0xff, 0xff, 0xd, 0x6, 0x0, 0x0, 0x0, 0x6, + 0xd, 0xff, 0xff, 0xff, 0x83, 0xa6, 0x0, 0x0, + 0x0, 0x5c, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, + 0x0, 0x0, 0x1e, 0xfe, 0xe3, 0xff, 0xff, 0xf7, + 0xa5, 0x89, 0xbb, 0xff, 0xff, 0xff, 0xa7, 0xea, + 0x0, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, 0xff, + 0xff, 0xd, 0x6, 0x0, 0xaa, 0x3f, 0xf9, 0xff, + 0xff, 0xef, 0x29, 0x90, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xb7, 0xb7, 0xb7, 0xb7, + 0xb7, 0xb7, 0xb7, 0x7f, 0xa2, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xd, 0xa, 0xee, 0xb1, + 0xff, 0xff, 0xff, 0x9f, 0xde, 0x2a, 0x29, 0xff, + 0xff, 0xff, 0x77, 0x98, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, 0x0, 0x16, + 0xf2, 0x9b, 0xff, 0xff, 0xff, 0xff, 0x83, 0xa6, + 0x0, 0x0, 0x0, 0x10, 0xee, 0x8f, 0xff, 0xff, + 0xff, 0xe3, 0x9f, 0x91, 0xb7, 0xfb, 0xff, 0xff, + 0xef, 0x31, 0x88, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0x45, 0xba, + 0x0, 0x0, 0x0, 0x0, 0x88, 0x1d, 0xcf, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, + 0x27, 0x98, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xe5, 0x4d, 0xe8, 0x20, 0x0, 0x0, 0x0, 0x0, + 0xac, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x67, 0x74, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x70, 0xb, 0xb7, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, + 0x37, 0x98, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, + 0xff, 0xff, 0xd, 0x6, 0x0, 0x0, 0x0, 0x6, + 0xd, 0xff, 0xff, 0xff, 0x83, 0xa6, 0x0, 0x0, + 0x0, 0x5c, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, + 0x0, 0x0, 0x0, 0xc8, 0x5d, 0xfb, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xd9, 0x1d, 0x74, + 0x0, 0x0, 0x0, 0x0, 0xac, 0x87, 0xff, 0xff, + 0xff, 0xd, 0x6, 0x0, 0x1a, 0xf2, 0x93, 0xff, + 0xff, 0xff, 0xbf, 0xfe, 0x40, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xb3, 0xd0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, 0x90, 0x59, + 0xff, 0xff, 0xff, 0x41, 0x76, 0x2a, 0x29, 0xff, + 0xff, 0xff, 0x77, 0x98, 0x0, 0x0, 0x0, 0xac, + 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, 0x0, 0x0, + 0x66, 0x15, 0xe9, 0xff, 0xff, 0xff, 0x83, 0xa6, + 0x0, 0x0, 0x0, 0x0, 0x58, 0xfe, 0xa7, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, + 0x51, 0xda, 0x12, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x86, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xfd, 0xf3, 0xd3, 0x95, 0x21, 0xd4, 0x1e, + 0x0, 0x0, 0x0, 0x0, 0x8, 0xa4, 0x11, 0x91, + 0xe9, 0xff, 0xff, 0xff, 0xff, 0xeb, 0x9b, 0x17, + 0xba, 0xe, 0x0, 0x0, 0x0, 0x86, 0x87, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xf9, 0xeb, 0xc3, 0x7f, + 0xf, 0xca, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x86, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x67, 0x60, 0x0, + 0x0, 0x86, 0x87, 0xff, 0xff, 0xff, 0xd, 0x4, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x2, 0x82, 0xfe, 0x73, 0xd7, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xd5, 0x89, 0xd, + 0xbc, 0x16, 0x0, 0x0, 0x0, 0x86, 0x87, 0xff, + 0xff, 0xff, 0xd, 0x4, 0x0, 0x0, 0x0, 0x4, + 0xd, 0xff, 0xff, 0xff, 0x83, 0x82, 0x0, 0x0, + 0x0, 0x42, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x52, + 0x0, 0x0, 0x0, 0x2e, 0xf0, 0x4d, 0xc9, 0xfd, + 0xff, 0xff, 0xff, 0xf3, 0xa5, 0x19, 0xb2, 0x8, + 0x0, 0x0, 0x0, 0x0, 0x86, 0x87, 0xff, 0xff, + 0xff, 0xd, 0x4, 0x0, 0x0, 0x5e, 0xd, 0xdb, + 0xff, 0xff, 0xff, 0x75, 0x40, 0x0, 0x0, 0x86, + 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xb3, 0xbc, 0x0, 0x0, 0x86, + 0x87, 0xff, 0xff, 0xff, 0xd, 0x4, 0x2c, 0xfe, + 0xe7, 0xff, 0xd9, 0xfe, 0x1c, 0x1c, 0x29, 0xff, + 0xff, 0xff, 0x77, 0x74, 0x0, 0x0, 0x0, 0x86, + 0x87, 0xff, 0xff, 0xff, 0xd, 0x4, 0x0, 0x0, + 0x6, 0xd4, 0x6f, 0xff, 0xff, 0xff, 0x83, 0x82, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x6e, 0xfe, 0x69, + 0xd3, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xab, 0x2d, + 0xd8, 0x26, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x50, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, + 0xfe, 0xfe, 0xfe, 0xf6, 0xc8, 0x64, 0xa, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x5a, 0xda, + 0xfe, 0x39, 0x55, 0x55, 0x35, 0xfe, 0xe0, 0x68, + 0x6, 0x0, 0x0, 0x0, 0x0, 0x50, 0xfe, 0xfe, + 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xee, 0xb0, + 0x4a, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x50, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, + 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x36, 0x0, + 0x0, 0x50, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x2, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xbe, 0xfe, + 0x25, 0x4f, 0x57, 0x43, 0x21, 0xfc, 0xc4, 0x54, + 0x2, 0x0, 0x0, 0x0, 0x0, 0x50, 0xfe, 0xfe, + 0xfe, 0xfe, 0xfe, 0x2, 0x0, 0x0, 0x0, 0x2, + 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x4c, 0x0, 0x0, + 0x0, 0x24, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x2c, + 0x0, 0x0, 0x0, 0x0, 0x24, 0xa6, 0xfa, 0x1b, + 0x4d, 0x59, 0x47, 0xb, 0xea, 0x70, 0x6, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x50, 0xfe, 0xfe, 0xfe, + 0xfe, 0xfe, 0x2, 0x0, 0x0, 0x2, 0xb0, 0xfe, + 0xfe, 0xfe, 0xfe, 0xfe, 0x40, 0x0, 0x0, 0x50, + 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, + 0xfe, 0xfe, 0xfe, 0xfe, 0x7e, 0x0, 0x0, 0x50, + 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x2, 0x0, 0xc2, + 0xfe, 0xfe, 0xfe, 0xac, 0x0, 0xe, 0xfe, 0xfe, + 0xfe, 0xfe, 0xfe, 0x42, 0x0, 0x0, 0x0, 0x50, + 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x2, 0x0, 0x0, + 0x0, 0x3c, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x4c, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x36, 0xb8, + 0xfc, 0x23, 0x4d, 0x57, 0x41, 0x9, 0xea, 0x7e, + 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x16, 0x3c, 0x5a, 0x58, 0x38, 0x14, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, + 0x2e, 0x50, 0x5c, 0x48, 0x24, 0xa, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x2a, + 0x4e, 0x5e, 0x46, 0x20, 0x2, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xc, 0x2e, 0x50, 0x5a, 0x40, 0x1a, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x62, 0xd0, 0xf0, 0xf8, 0xf8, 0xee, 0xca, + 0x4c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x90, + 0xde, 0xf4, 0xf8, 0xf8, 0xea, 0xbc, 0x24, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xb0, 0x9b, 0xdd, 0xdd, 0xdd, 0xdd, 0x83, + 0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe2, + 0xc3, 0xdd, 0xdd, 0xdd, 0xdd, 0x4d, 0x4a, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x4, 0xe, 0x1a, 0x20, 0x20, 0x20, 0x20, + 0x1e, 0x14, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x14, 0x3e, 0x66, 0x72, 0x56, 0x28, 0x4, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x4, 0xe, 0x1a, 0x20, 0x20, 0x20, 0x20, 0x1e, + 0x14, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, + 0x32, 0x5e, 0x78, 0x6c, 0x44, 0x18, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x4, 0x10, 0x1a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x1e, 0x12, 0x8, 0x0, 0x0, 0x6, + 0x12, 0x1c, 0x1e, 0x14, 0x8, 0x0, 0x0, 0x0, + 0x0, 0x4, 0xe, 0x1a, 0x20, 0x16, 0xc, 0x0, + 0x0, 0x8, 0x14, 0x1e, 0x1e, 0x14, 0x8, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x4, 0xe, 0x1a, 0x20, + 0x18, 0xc, 0x2, 0x2, 0xe, 0x18, 0x20, 0x16, + 0xc, 0x0, 0x0, 0x0, 0x8, 0x14, 0x1a, 0x12, + 0x8, 0x0, 0x0, 0x0, 0xc, 0x16, 0x20, 0x18, + 0xc, 0x2, 0x0, 0x6, 0x12, 0x1c, 0x20, 0x1a, + 0xe, 0x4, 0x0, 0x0, 0x0, 0x2, 0xe, 0x18, + 0x20, 0x1c, 0x12, 0x6, 0x0, 0xa, 0x14, 0x20, + 0x1e, 0x14, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x6, 0x12, 0x1c, 0x20, 0x16, 0xc, 0x0, 0x0, + 0xc, 0x16, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x18, 0xc, 0x2, 0x0, + 0x0, 0xd6, 0xb3, 0xff, 0xff, 0xff, 0xff, 0x99, + 0xae, 0x0, 0xa, 0x16, 0x20, 0x1a, 0xe, 0x4, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, + 0xe3, 0xff, 0xff, 0xff, 0xff, 0x5b, 0x6a, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x16, 0x1a, + 0x10, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x52, 0x11, 0x23, 0x23, 0x23, 0x23, 0x23, + 0x23, 0x1d, 0xfe, 0xfc, 0xd2, 0x6a, 0xc, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, + 0xc8, 0xfe, 0x35, 0x5d, 0x67, 0x51, 0x11, 0xf2, + 0x8a, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x52, 0x11, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, + 0x1d, 0xfe, 0xfc, 0xd4, 0x6a, 0xa, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x28, 0xa8, 0xfc, + 0x21, 0x57, 0x69, 0x61, 0x3b, 0xfe, 0xd4, 0x4e, + 0x0, 0x0, 0x0, 0x0, 0x60, 0x13, 0x23, 0x23, + 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, + 0x23, 0x23, 0x23, 0x1b, 0x98, 0x0, 0x0, 0x7c, + 0x17, 0x23, 0x23, 0x1f, 0xbe, 0x0, 0x0, 0x0, + 0x0, 0x44, 0xf, 0x23, 0x23, 0x23, 0x5, 0x10, + 0x0, 0x92, 0x1f, 0x23, 0x23, 0x1d, 0xd2, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x6c, 0xf, 0x23, 0x23, + 0x23, 0xb, 0xe, 0x1c, 0xd, 0x23, 0x23, 0x23, + 0xfe, 0x1c, 0x0, 0x0, 0xd6, 0x1d, 0x23, 0x1b, + 0xbe, 0x0, 0x0, 0x26, 0x5, 0x23, 0x23, 0x23, + 0xb, 0x10, 0x0, 0x36, 0x17, 0x23, 0x23, 0x23, + 0x11, 0x8c, 0x0, 0x0, 0x0, 0x76, 0xd, 0x23, + 0x23, 0x23, 0x19, 0x4c, 0x0, 0x86, 0x21, 0x23, + 0x23, 0x1f, 0xf0, 0x14, 0x0, 0x0, 0x0, 0x4, + 0xcc, 0x19, 0x23, 0x23, 0x23, 0x7, 0x0, 0xe, + 0x5, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, + 0x23, 0x23, 0x23, 0x23, 0x23, 0xb, 0x24, 0x0, + 0x0, 0xdc, 0xb3, 0xff, 0xff, 0xf7, 0xcb, 0x79, + 0x8a, 0x0, 0xa6, 0x21, 0x23, 0x23, 0x11, 0x82, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xdc, + 0xb3, 0xd5, 0xff, 0xff, 0xff, 0x5b, 0x70, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x28, 0xfe, 0x21, 0x23, + 0x15, 0x9e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x88, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xfd, 0xdd, 0x9b, 0x25, 0xd4, 0x20, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7a, 0xfe, + 0x75, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xb5, + 0x35, 0xde, 0x2a, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x88, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xfd, 0xdd, 0x9b, 0x21, 0xce, 0x16, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x4a, 0xfa, 0x55, 0xcb, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x85, 0x5, + 0x8c, 0x2, 0x0, 0x0, 0x9a, 0x95, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xc7, 0xd4, 0x0, 0x0, 0xba, + 0xb1, 0xff, 0xff, 0xe3, 0xee, 0x0, 0x0, 0x0, + 0x0, 0x76, 0x77, 0xff, 0xff, 0xff, 0x2f, 0x20, + 0x0, 0xae, 0xc3, 0xff, 0xff, 0xef, 0x5, 0x26, + 0x0, 0x0, 0x0, 0x0, 0xd4, 0xa1, 0xff, 0xff, + 0xfd, 0x29, 0xe, 0x1c, 0x41, 0xff, 0xff, 0xff, + 0x41, 0x54, 0x0, 0x20, 0x5, 0xf1, 0xff, 0xe3, + 0xfe, 0x12, 0x0, 0x66, 0x51, 0xff, 0xff, 0xff, + 0x2b, 0x10, 0x0, 0x36, 0x63, 0xff, 0xff, 0xff, + 0xbf, 0xfc, 0x24, 0x0, 0x18, 0xf8, 0xad, 0xff, + 0xff, 0xff, 0x7b, 0x4c, 0x0, 0x90, 0xb7, 0xff, + 0xff, 0xfb, 0x35, 0x7e, 0x0, 0x0, 0x0, 0x4c, + 0xf, 0xeb, 0xff, 0xff, 0xdb, 0x7, 0x0, 0x1c, + 0x29, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x4d, 0x3c, 0x0, + 0x0, 0xdc, 0xb3, 0xff, 0xff, 0xdf, 0xfe, 0xb4, + 0x44, 0x0, 0xbe, 0xd1, 0xff, 0xff, 0xb7, 0xf2, + 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, + 0xdc, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x96, 0x55, 0xff, 0xff, + 0xcd, 0xfc, 0x1a, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0x49, 0xce, + 0x6, 0x0, 0x0, 0x0, 0x0, 0x60, 0x5, 0xb1, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xf1, 0x57, 0xde, 0x14, 0x0, 0x0, 0x0, 0x0, + 0xac, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xe9, 0x37, 0x9e, 0x0, + 0x0, 0x0, 0x0, 0x1a, 0xf4, 0x7f, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, + 0xd, 0x5e, 0x0, 0x0, 0xac, 0x95, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xc7, 0xe0, 0x0, 0x0, 0xda, + 0xb1, 0xff, 0xff, 0xe3, 0xfa, 0x0, 0x0, 0x0, + 0x0, 0x98, 0x77, 0xff, 0xff, 0xff, 0x2f, 0x2e, + 0x0, 0xae, 0x77, 0xff, 0xff, 0xff, 0x53, 0x7c, + 0x0, 0x0, 0x0, 0x16, 0xfe, 0xdf, 0xff, 0xff, + 0xc9, 0xfc, 0xe, 0x1a, 0xfe, 0xf3, 0xff, 0xff, + 0x75, 0x9a, 0x0, 0x6a, 0x49, 0xff, 0xff, 0xff, + 0x31, 0x52, 0x0, 0xac, 0x81, 0xff, 0xff, 0xe7, + 0xfe, 0xe, 0x0, 0x32, 0xfe, 0xbf, 0xff, 0xff, + 0xff, 0x4f, 0xa4, 0x0, 0x8e, 0x3b, 0xfb, 0xff, + 0xff, 0xd3, 0xfe, 0x46, 0x0, 0x8c, 0x39, 0xfb, + 0xff, 0xff, 0xab, 0xf2, 0xe, 0x0, 0x0, 0xd0, + 0x81, 0xff, 0xff, 0xff, 0x67, 0xc0, 0x0, 0x22, + 0x29, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x41, 0x3a, 0x0, + 0x0, 0xdc, 0xb3, 0xff, 0xff, 0xdf, 0xfa, 0x0, + 0x0, 0x0, 0xbe, 0x7d, 0xff, 0xff, 0xf7, 0x1f, + 0x52, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x5c, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, 0x0, + 0x0, 0x0, 0x0, 0xc, 0xf6, 0xb7, 0xff, 0xff, + 0xff, 0x41, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xad, 0xad, + 0xad, 0xb3, 0xd5, 0xff, 0xff, 0xff, 0xe9, 0x17, + 0x50, 0x0, 0x0, 0x0, 0x12, 0xf4, 0x97, 0xff, + 0xff, 0xff, 0xd9, 0x91, 0x83, 0xad, 0xf9, 0xff, + 0xff, 0xf1, 0x35, 0x8e, 0x0, 0x0, 0x0, 0x0, + 0xac, 0x87, 0xff, 0xff, 0xff, 0xad, 0xad, 0xad, + 0xb9, 0xe5, 0xff, 0xff, 0xff, 0xc7, 0xfc, 0xc, + 0x0, 0x0, 0x0, 0x70, 0x3f, 0xfb, 0xff, 0xff, + 0xef, 0x99, 0x75, 0x87, 0xd5, 0xff, 0xff, 0xff, + 0x95, 0xde, 0x0, 0x0, 0x7e, 0x65, 0xad, 0xad, + 0xad, 0xad, 0xb7, 0xff, 0xff, 0xff, 0xc7, 0xad, + 0xad, 0xad, 0xad, 0x87, 0xb6, 0x0, 0x0, 0xda, + 0xb1, 0xff, 0xff, 0xe3, 0xfa, 0x0, 0x0, 0x0, + 0x0, 0x98, 0x77, 0xff, 0xff, 0xff, 0x2f, 0x2e, + 0x0, 0x48, 0x1b, 0xf9, 0xff, 0xff, 0x9b, 0xd4, + 0x0, 0x0, 0x0, 0x62, 0x39, 0xff, 0xff, 0xff, + 0x7f, 0xb8, 0x0, 0x0, 0xf6, 0xc9, 0xff, 0xff, + 0xa1, 0xd0, 0x0, 0xbe, 0x8b, 0xff, 0xff, 0xff, + 0x79, 0xa6, 0x0, 0xdc, 0xad, 0xff, 0xff, 0xbd, + 0xec, 0x0, 0x0, 0x0, 0x92, 0x33, 0xf7, 0xff, + 0xff, 0xc9, 0xfe, 0x46, 0xfc, 0xb9, 0xff, 0xff, + 0xfd, 0x4b, 0xb0, 0x0, 0x0, 0x16, 0xf6, 0xab, + 0xff, 0xff, 0xf9, 0x29, 0x70, 0x0, 0x40, 0x9, + 0xe3, 0xff, 0xff, 0xd1, 0xfe, 0x36, 0x0, 0x16, + 0x1b, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, + 0xb7, 0xff, 0xff, 0xff, 0xb9, 0xfe, 0x1a, 0x0, + 0x0, 0xdc, 0xb3, 0xff, 0xff, 0xdf, 0xfa, 0x0, + 0x0, 0x0, 0x4c, 0x19, 0xf5, 0xff, 0xff, 0x83, + 0xc4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x5c, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, 0x0, + 0x0, 0x0, 0x0, 0x60, 0x27, 0xf9, 0xff, 0xff, + 0xff, 0xa7, 0xec, 0x6, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0xd8, + 0xd8, 0xe6, 0xfe, 0x87, 0xff, 0xff, 0xff, 0x81, + 0xa8, 0x0, 0x0, 0x0, 0x68, 0x31, 0xfb, 0xff, + 0xff, 0xc1, 0x9, 0xda, 0xc0, 0xf8, 0x51, 0xf9, + 0xff, 0xff, 0xb9, 0xf8, 0x8, 0x0, 0x0, 0x0, + 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0xd8, 0xda, + 0xee, 0xd, 0xc3, 0xff, 0xff, 0xff, 0x25, 0x2e, + 0x0, 0x0, 0x0, 0xb2, 0x97, 0xff, 0xff, 0xfb, + 0x3d, 0xea, 0xae, 0xd0, 0x5, 0xcf, 0xff, 0xff, + 0xeb, 0x5, 0xc, 0x0, 0x34, 0x92, 0xc4, 0xd6, + 0xd6, 0xe0, 0x35, 0xff, 0xff, 0xff, 0x6f, 0xec, + 0xd6, 0xd6, 0xcc, 0xa0, 0x50, 0x0, 0x0, 0xda, + 0xb1, 0xff, 0xff, 0xe3, 0xfa, 0x0, 0x0, 0x0, + 0x0, 0x98, 0x77, 0xff, 0xff, 0xff, 0x2f, 0x2e, + 0x0, 0x8, 0xf6, 0xbf, 0xff, 0xff, 0xd9, 0xfe, + 0x10, 0x0, 0x0, 0xbe, 0x89, 0xff, 0xff, 0xfb, + 0x23, 0x50, 0x0, 0x0, 0xce, 0x9d, 0xff, 0xff, + 0xc7, 0xf2, 0x0, 0xf2, 0xc3, 0xff, 0xff, 0xff, + 0xb3, 0xe8, 0x0, 0xf8, 0xd3, 0xff, 0xff, 0x8d, + 0xbc, 0x0, 0x0, 0x0, 0x14, 0xee, 0x93, 0xff, + 0xff, 0xff, 0x59, 0xe2, 0x47, 0xff, 0xff, 0xff, + 0xab, 0xfa, 0x22, 0x0, 0x0, 0x0, 0x7c, 0x2d, + 0xf7, 0xff, 0xff, 0x9f, 0xec, 0x8, 0xc4, 0x75, + 0xff, 0xff, 0xff, 0x59, 0xb2, 0x0, 0x0, 0x8, + 0x7a, 0xb6, 0xd6, 0xd6, 0xd6, 0xd6, 0xde, 0xfe, + 0xad, 0xff, 0xff, 0xf1, 0x29, 0x8a, 0x0, 0x0, + 0x0, 0xdc, 0xb3, 0xff, 0xff, 0xdf, 0xfa, 0x0, + 0x0, 0x0, 0x6, 0xf0, 0xb1, 0xff, 0xff, 0xd5, + 0xfe, 0x1c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x5c, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, 0x0, + 0x0, 0x0, 0x0, 0xd8, 0x91, 0xff, 0xff, 0xd5, + 0xff, 0xf3, 0x17, 0x4e, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, + 0x0, 0x0, 0x50, 0xfe, 0xe5, 0xff, 0xff, 0xb5, + 0xd6, 0x0, 0x0, 0x0, 0xbe, 0x93, 0xff, 0xff, + 0xfb, 0x37, 0x96, 0x0, 0x0, 0x26, 0xf6, 0xa9, + 0xff, 0xff, 0xfd, 0x1f, 0x3a, 0x0, 0x0, 0x0, + 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, 0x0, + 0x2, 0xb6, 0x63, 0xff, 0xff, 0xff, 0x4f, 0x44, + 0x0, 0x0, 0x0, 0xc8, 0xad, 0xff, 0xff, 0xe7, + 0xfe, 0x46, 0x0, 0x0, 0xb8, 0x7b, 0xf5, 0xf5, + 0xf5, 0x27, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x36, 0x35, 0xff, 0xff, 0xff, 0x6f, 0x8c, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xda, + 0xb1, 0xff, 0xff, 0xe3, 0xfa, 0x0, 0x0, 0x0, + 0x0, 0x98, 0x77, 0xff, 0xff, 0xff, 0x2f, 0x2e, + 0x0, 0x0, 0xa8, 0x71, 0xff, 0xff, 0xff, 0x2f, + 0x56, 0x0, 0x6, 0xf8, 0xc9, 0xff, 0xff, 0xc5, + 0xfa, 0xc, 0x0, 0x0, 0x8c, 0x69, 0xff, 0xff, + 0xeb, 0xfe, 0x30, 0x5, 0xf3, 0xff, 0xff, 0xff, + 0xe7, 0xfe, 0x2c, 0x5, 0xf5, 0xff, 0xff, 0x57, + 0x76, 0x0, 0x0, 0x0, 0x0, 0x5e, 0xf, 0xe3, + 0xff, 0xff, 0xd1, 0xfe, 0xc3, 0xff, 0xff, 0xef, + 0x21, 0x7a, 0x0, 0x0, 0x0, 0x0, 0x10, 0xf0, + 0x9d, 0xff, 0xff, 0xf3, 0x1f, 0x82, 0xfe, 0xdb, + 0xff, 0xff, 0xc5, 0xfe, 0x2a, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xc4, 0x57, + 0xff, 0xff, 0xff, 0x7b, 0xe2, 0xe, 0x0, 0x0, + 0x0, 0xdc, 0xb3, 0xff, 0xff, 0xdf, 0xfa, 0x0, + 0x0, 0x0, 0x0, 0x90, 0x55, 0xff, 0xff, 0xff, + 0x43, 0x7e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x5c, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, 0x0, + 0x0, 0x0, 0x34, 0x5, 0xe5, 0xff, 0xd5, 0x65, + 0xff, 0xff, 0x81, 0xc6, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, + 0x0, 0x0, 0x4, 0xfa, 0xcf, 0xff, 0xff, 0xc1, + 0xe0, 0x0, 0x0, 0x0, 0xe8, 0xc5, 0xff, 0xff, + 0xd3, 0xfc, 0x16, 0x0, 0x0, 0x0, 0x8e, 0x53, + 0xff, 0xff, 0xff, 0x65, 0x72, 0x0, 0x0, 0x0, + 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, 0x0, + 0x0, 0xa2, 0x5b, 0xff, 0xff, 0xff, 0x41, 0x3e, + 0x0, 0x0, 0x0, 0xb2, 0x97, 0xff, 0xff, 0xff, + 0x63, 0xfc, 0x9a, 0x2e, 0x44, 0xe6, 0xfc, 0xfe, + 0xfa, 0xde, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x36, 0x35, 0xff, 0xff, 0xff, 0x6f, 0x8c, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xda, + 0xb1, 0xff, 0xff, 0xe3, 0xfa, 0x0, 0x0, 0x0, + 0x0, 0x98, 0x77, 0xff, 0xff, 0xff, 0x2f, 0x2e, + 0x0, 0x0, 0x42, 0x15, 0xf7, 0xff, 0xff, 0x81, + 0xb4, 0x0, 0x40, 0x19, 0xf9, 0xff, 0xff, 0x7b, + 0xb2, 0x0, 0x0, 0x0, 0x42, 0x29, 0xff, 0xff, + 0xff, 0x29, 0x90, 0x4d, 0xff, 0xff, 0xfb, 0xff, + 0xff, 0x37, 0x8c, 0x3d, 0xff, 0xff, 0xfb, 0x15, + 0x2e, 0x0, 0x0, 0x0, 0x0, 0x4, 0xca, 0x63, + 0xff, 0xff, 0xff, 0x9b, 0xff, 0xff, 0xff, 0x7d, + 0xe0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6c, + 0x21, 0xf1, 0xff, 0xff, 0x93, 0xf6, 0x67, 0xff, + 0xff, 0xff, 0x49, 0xa0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x66, 0x11, 0xe1, + 0xff, 0xff, 0xc9, 0xfe, 0x44, 0x0, 0x0, 0x0, + 0x0, 0xdc, 0xb3, 0xff, 0xff, 0xdf, 0xfa, 0x0, + 0x0, 0x0, 0x0, 0x28, 0xfe, 0xdf, 0xff, 0xff, + 0xa5, 0xe8, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x5c, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, 0x0, + 0x0, 0x0, 0xa6, 0x65, 0xff, 0xff, 0x7f, 0x5, + 0xe7, 0xff, 0xd9, 0xfe, 0x26, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, + 0x0, 0x6, 0x82, 0x11, 0xef, 0xff, 0xff, 0xad, + 0xd0, 0x0, 0x0, 0x0, 0xf4, 0xd9, 0xff, 0xff, + 0xb7, 0xe6, 0x0, 0x0, 0x0, 0x0, 0x32, 0x27, + 0xff, 0xff, 0xff, 0x7d, 0x9a, 0x0, 0x0, 0x0, + 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0xba, 0xbe, + 0xda, 0xfe, 0xab, 0xff, 0xff, 0xe7, 0xd, 0x1e, + 0x0, 0x0, 0x0, 0x6e, 0x3d, 0xfb, 0xff, 0xff, + 0xfd, 0xbb, 0x5d, 0x5, 0xe8, 0x88, 0x22, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x36, 0x35, 0xff, 0xff, 0xff, 0x6f, 0x8c, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xda, + 0xb1, 0xff, 0xff, 0xe3, 0xfa, 0x0, 0x0, 0x0, + 0x0, 0x98, 0x77, 0xff, 0xff, 0xff, 0x2f, 0x2e, + 0x0, 0x0, 0x6, 0xf4, 0xbb, 0xff, 0xff, 0xc3, + 0xf6, 0x4, 0x9c, 0x6d, 0xff, 0xff, 0xf9, 0x1f, + 0x4a, 0x0, 0x0, 0x0, 0xe, 0xfe, 0xe5, 0xff, + 0xff, 0x63, 0xde, 0x8f, 0xff, 0xff, 0xad, 0xff, + 0xff, 0x7f, 0xdc, 0x71, 0xff, 0xff, 0xd9, 0xfc, + 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x32, 0xfe, + 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x5, + 0x48, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, + 0xe6, 0x91, 0xff, 0xff, 0xef, 0x15, 0xd1, 0xff, + 0xff, 0xbb, 0xfc, 0x20, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x1e, 0xf6, 0x9b, 0xff, + 0xff, 0xf7, 0x39, 0xa0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xdc, 0xb3, 0xff, 0xff, 0xdf, 0xfa, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xd2, 0x8f, 0xff, 0xff, + 0xef, 0xd, 0x3e, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x5c, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, 0x0, + 0x0, 0x14, 0xfc, 0xc3, 0xff, 0xf5, 0x1b, 0xe6, + 0x97, 0xff, 0xff, 0x53, 0x94, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0xfa, + 0xfa, 0xfe, 0x19, 0xb3, 0xff, 0xff, 0xff, 0x6d, + 0x96, 0x0, 0x0, 0x0, 0xf8, 0xdf, 0xff, 0xff, + 0xad, 0xda, 0x0, 0x0, 0x0, 0x0, 0x10, 0xd, + 0xff, 0xff, 0xff, 0x87, 0xa8, 0x0, 0x0, 0x0, + 0xac, 0x87, 0xff, 0xff, 0xff, 0x93, 0x91, 0x91, + 0x9f, 0xcf, 0xff, 0xff, 0xf7, 0x5f, 0xce, 0x2, + 0x0, 0x0, 0x0, 0x1a, 0xf4, 0x7b, 0xfb, 0xff, + 0xff, 0xff, 0xff, 0xed, 0xad, 0x4b, 0xfe, 0x96, + 0x12, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x36, 0x35, 0xff, 0xff, 0xff, 0x6f, 0x8c, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xda, + 0xb1, 0xff, 0xff, 0xe3, 0xfa, 0x0, 0x0, 0x0, + 0x0, 0x98, 0x77, 0xff, 0xff, 0xff, 0x2f, 0x2e, + 0x0, 0x0, 0x0, 0xa2, 0x6d, 0xff, 0xff, 0xf7, + 0x11, 0x36, 0xea, 0xb1, 0xff, 0xff, 0xc1, 0xf8, + 0x8, 0x0, 0x0, 0x0, 0x0, 0xec, 0xbb, 0xff, + 0xff, 0x91, 0xfc, 0xc5, 0xff, 0xf9, 0x31, 0xff, + 0xff, 0xb7, 0xfa, 0x9d, 0xff, 0xff, 0xad, 0xde, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x94, + 0x35, 0xf7, 0xff, 0xff, 0xff, 0xfd, 0x4d, 0xb2, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x5c, 0x15, 0xeb, 0xff, 0xff, 0xb9, 0xff, 0xff, + 0xfb, 0x3d, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xb2, 0x47, 0xfb, 0xff, + 0xff, 0x8d, 0xee, 0x16, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xdc, 0xb3, 0xff, 0xff, 0xdf, 0xfa, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x60, 0x2b, 0xfb, 0xff, + 0xff, 0x6f, 0xac, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x5c, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, 0x0, + 0x0, 0x32, 0x35, 0xfd, 0xff, 0xaf, 0xf0, 0x6e, + 0x31, 0xfd, 0xff, 0xb7, 0xb6, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xdf, 0xdf, + 0xdf, 0xe5, 0xfb, 0xff, 0xff, 0xff, 0xd1, 0x5, + 0x3a, 0x0, 0x0, 0x0, 0xfa, 0xdf, 0xff, 0xff, + 0xad, 0xd6, 0x0, 0x0, 0x0, 0x0, 0x6, 0xd, + 0xff, 0xff, 0xff, 0x87, 0xac, 0x0, 0x0, 0x0, + 0xac, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xd1, 0x3d, 0xf4, 0x32, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x46, 0xf4, 0x49, 0xc7, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x31, + 0xd4, 0x16, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x36, 0x35, 0xff, 0xff, 0xff, 0x6f, 0x8c, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xda, + 0xb1, 0xff, 0xff, 0xe3, 0xfa, 0x0, 0x0, 0x0, + 0x0, 0x98, 0x77, 0xff, 0xff, 0xff, 0x2f, 0x2e, + 0x0, 0x0, 0x0, 0x3c, 0x11, 0xf3, 0xff, 0xff, + 0x63, 0xa0, 0xfe, 0xed, 0xff, 0xff, 0x75, 0xac, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xba, 0x8b, 0xff, + 0xff, 0xb9, 0x9, 0xf3, 0xff, 0xcb, 0xfe, 0xdb, + 0xff, 0xeb, 0xfe, 0xc5, 0xff, 0xff, 0x7b, 0xa6, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x36, + 0xfe, 0xc3, 0xff, 0xff, 0xff, 0xd9, 0xfe, 0x58, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x6, 0xda, 0x83, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xad, 0xf8, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x54, 0x9, 0xd5, 0xff, 0xff, + 0xd9, 0x9, 0x56, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xdc, 0xb3, 0xff, 0xff, 0xdf, 0xfa, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xe, 0xfa, 0xc1, 0xff, + 0xff, 0xc5, 0xfa, 0x10, 0x0, 0x0, 0x0, 0x0, + 0x5c, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, 0x0, + 0x0, 0x32, 0x4b, 0x91, 0x91, 0x3d, 0x86, 0x12, + 0xf6, 0x7b, 0x91, 0x89, 0xa8, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xcb, 0x25, 0xa6, + 0x0, 0x0, 0x0, 0x0, 0xf8, 0xdf, 0xff, 0xff, + 0xad, 0xda, 0x0, 0x0, 0x0, 0x0, 0x12, 0xd, + 0xff, 0xff, 0xff, 0x87, 0xa6, 0x0, 0x0, 0x0, + 0xac, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xb9, 0xf, 0x6e, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0xa2, 0xfc, + 0x41, 0x9d, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xed, + 0x39, 0x9a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x36, 0x35, 0xff, 0xff, 0xff, 0x6f, 0x8c, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xda, + 0xb1, 0xff, 0xff, 0xe3, 0xfa, 0x0, 0x0, 0x0, + 0x0, 0x98, 0x77, 0xff, 0xff, 0xff, 0x2f, 0x2e, + 0x0, 0x0, 0x0, 0x4, 0xf0, 0xb5, 0xff, 0xff, + 0xa9, 0xf0, 0x4f, 0xff, 0xff, 0xf7, 0x19, 0x46, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x72, 0x55, 0xff, + 0xff, 0xdf, 0x51, 0xff, 0xff, 0x95, 0xf8, 0xa7, + 0xff, 0xff, 0x3d, 0xeb, 0xff, 0xff, 0x43, 0x5a, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xba, + 0x53, 0xff, 0xff, 0xff, 0xff, 0xff, 0x73, 0xda, + 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x4e, 0xb, 0xe3, 0xff, 0xff, 0xff, 0xf9, + 0x2f, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x16, 0xee, 0x8b, 0xff, 0xff, 0xfb, + 0x4b, 0xb8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xdc, 0xb3, 0xff, 0xff, 0xdf, 0xfa, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xa6, 0x6b, 0xff, + 0xff, 0xfd, 0x2f, 0x66, 0x0, 0x0, 0x0, 0x0, + 0x5c, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, 0x0, + 0x0, 0x20, 0x6e, 0xa0, 0x9e, 0x6a, 0x1a, 0x0, + 0x46, 0x86, 0xac, 0x8e, 0x52, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xdd, 0xdd, + 0xdd, 0xdb, 0xcf, 0xab, 0x5f, 0xfe, 0x9e, 0xc, + 0x0, 0x0, 0x0, 0x0, 0xf4, 0xd9, 0xff, 0xff, + 0xbb, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x36, 0x2b, + 0xff, 0xff, 0xff, 0x7b, 0x96, 0x0, 0x0, 0x0, + 0xac, 0x87, 0xff, 0xff, 0xff, 0x4d, 0x49, 0x49, + 0x5b, 0xa5, 0xff, 0xff, 0xff, 0xa3, 0xe4, 0x0, + 0x0, 0x0, 0x6, 0x3a, 0x62, 0x80, 0x6a, 0x56, + 0x7e, 0xd8, 0xfe, 0x47, 0xb7, 0xff, 0xff, 0xff, + 0xc3, 0xf8, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x36, 0x35, 0xff, 0xff, 0xff, 0x6f, 0x8c, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd8, + 0xb1, 0xff, 0xff, 0xe3, 0xfc, 0x0, 0x0, 0x0, + 0x0, 0x9c, 0x77, 0xff, 0xff, 0xff, 0x2f, 0x2a, + 0x0, 0x0, 0x0, 0x0, 0x9a, 0x67, 0xff, 0xff, + 0xe5, 0xfe, 0x9b, 0xff, 0xff, 0xbd, 0xf6, 0x6, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x2c, 0x13, 0xfb, + 0xff, 0xfb, 0x97, 0xff, 0xff, 0x55, 0xc4, 0x6b, + 0xff, 0xff, 0x93, 0xff, 0xff, 0xf3, 0x5, 0x1c, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x9, + 0xd9, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xeb, 0x1f, + 0x78, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x2, 0xd2, 0x75, 0xff, 0xff, 0xff, 0xa1, + 0xf4, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x9e, 0x37, 0xf7, 0xff, 0xff, 0xa1, + 0xf8, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xdc, 0xb3, 0xff, 0xff, 0xdf, 0xfa, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x38, 0xb, 0xed, + 0xff, 0xff, 0x93, 0xd6, 0x0, 0x0, 0x0, 0x0, + 0x5c, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0xf8, + 0xf8, 0xf6, 0xee, 0xd4, 0x8e, 0x30, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xe8, 0xc3, 0xff, 0xff, + 0xd5, 0xfe, 0x1a, 0x0, 0x0, 0x0, 0x92, 0x55, + 0xff, 0xff, 0xff, 0x5f, 0x6a, 0x0, 0x0, 0x0, + 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0x58, 0x5e, + 0x94, 0xfe, 0xb7, 0xff, 0xff, 0xef, 0xfe, 0x6, + 0x0, 0x0, 0xe, 0x15, 0x67, 0x67, 0x67, 0x2d, + 0x5e, 0x0, 0x1e, 0x90, 0xfe, 0xb3, 0xff, 0xff, + 0xfb, 0x13, 0x16, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x36, 0x35, 0xff, 0xff, 0xff, 0x6f, 0x8c, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd0, + 0xab, 0xff, 0xff, 0xeb, 0xfe, 0x8, 0x0, 0x0, + 0x0, 0xb2, 0x81, 0xff, 0xff, 0xff, 0x25, 0x1c, + 0x0, 0x0, 0x0, 0x0, 0x36, 0xd, 0xf1, 0xff, + 0xff, 0x41, 0xd9, 0xff, 0xff, 0x71, 0xa6, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xfc, 0xd9, + 0xff, 0xff, 0xeb, 0xff, 0xf5, 0xb, 0x5c, 0x1f, + 0xfd, 0xff, 0xeb, 0xff, 0xff, 0xcb, 0xf6, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xe, 0xe6, 0x87, + 0xff, 0xff, 0xff, 0x75, 0xf9, 0xff, 0xff, 0xab, + 0xfa, 0x26, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x68, 0x43, 0xff, 0xff, 0xff, 0x63, + 0x9e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x44, 0xfe, 0xc7, 0xff, 0xff, 0xe3, 0x15, + 0x6c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xdc, 0xb3, 0xff, 0xff, 0xdf, 0xfa, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xe4, 0xa1, + 0xff, 0xff, 0xe3, 0xfe, 0x2c, 0x0, 0x0, 0x0, + 0x5c, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xba, 0x8f, 0xff, 0xff, + 0xfd, 0x3f, 0xa2, 0x4, 0x0, 0x2a, 0xf8, 0xad, + 0xff, 0xff, 0xf7, 0x15, 0x34, 0x0, 0x0, 0x0, + 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, 0x0, + 0x0, 0xbc, 0x81, 0xff, 0xff, 0xff, 0x19, 0x14, + 0x0, 0x0, 0xe, 0x1d, 0xff, 0xff, 0xff, 0x8b, + 0xd0, 0x6, 0x0, 0x0, 0xcc, 0x77, 0xff, 0xff, + 0xff, 0x31, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x36, 0x35, 0xff, 0xff, 0xff, 0x6f, 0x8c, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb6, + 0x97, 0xff, 0xff, 0xff, 0x1d, 0x74, 0x0, 0x0, + 0x16, 0xf2, 0xa5, 0xff, 0xff, 0xf9, 0x5, 0xc, + 0x0, 0x0, 0x0, 0x0, 0x2, 0xee, 0xb1, 0xff, + 0xff, 0x9f, 0xff, 0xff, 0xf7, 0x15, 0x40, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xde, 0xad, + 0xff, 0xff, 0xff, 0xff, 0xc5, 0xf6, 0xa, 0xfc, + 0xd5, 0xff, 0xff, 0xff, 0xff, 0x9d, 0xce, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x84, 0x29, 0xf3, + 0xff, 0xff, 0xc3, 0xfe, 0xa5, 0xff, 0xff, 0xfd, + 0x51, 0xba, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x4c, 0x43, 0xff, 0xff, 0xff, 0x63, + 0x7a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xe, 0xe2, 0x79, 0xff, 0xff, 0xff, 0x5d, 0xca, + 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xdc, 0xb3, 0xff, 0xff, 0xdf, 0xfa, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x41, + 0xff, 0xff, 0xff, 0x5b, 0x96, 0x0, 0x0, 0x0, + 0x5c, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x62, 0x2d, 0xf9, 0xff, + 0xff, 0xc9, 0x11, 0xe6, 0xce, 0xfa, 0x57, 0xfb, + 0xff, 0xff, 0xad, 0xf2, 0x6, 0x0, 0x0, 0x0, + 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, 0x0, + 0x0, 0x94, 0x73, 0xff, 0xff, 0xff, 0x29, 0x2a, + 0x0, 0x0, 0x8, 0xfe, 0xdf, 0xff, 0xff, 0xdd, + 0x15, 0xe8, 0xb4, 0xc8, 0xfe, 0xb1, 0xff, 0xff, + 0xfb, 0x11, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x36, 0x35, 0xff, 0xff, 0xff, 0x6f, 0x8c, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7a, + 0x59, 0xff, 0xff, 0xff, 0xa7, 0xfe, 0xd8, 0xc4, + 0xf4, 0x37, 0xf5, 0xff, 0xff, 0xcb, 0xf8, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x94, 0x5f, 0xff, + 0xff, 0xf3, 0xff, 0xff, 0xb9, 0xf4, 0x6, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa4, 0x7b, + 0xff, 0xff, 0xff, 0xff, 0x8d, 0xbe, 0x0, 0xd4, + 0x9f, 0xff, 0xff, 0xff, 0xff, 0x6b, 0x8e, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x2a, 0xfc, 0xb3, 0xff, + 0xff, 0xfd, 0x47, 0xca, 0x27, 0xf5, 0xff, 0xff, + 0xd9, 0x9, 0x54, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x4c, 0x43, 0xff, 0xff, 0xff, 0x63, + 0x7a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x8a, 0x27, 0xf1, 0xff, 0xff, 0xb3, 0xfe, 0xe4, + 0xe0, 0xe0, 0xe0, 0xe0, 0xcc, 0x98, 0x2e, 0x0, + 0x0, 0xdc, 0xb3, 0xff, 0xff, 0xdf, 0xfa, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1a, 0xfe, + 0xd1, 0xff, 0xff, 0xb5, 0xf4, 0x8, 0x0, 0x0, + 0x5c, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x10, 0xee, 0x8f, 0xff, + 0xff, 0xff, 0xe3, 0x9f, 0x91, 0xb7, 0xfb, 0xff, + 0xff, 0xeb, 0x27, 0x7e, 0x0, 0x0, 0x0, 0x0, + 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, 0x0, + 0x0, 0x7e, 0x69, 0xff, 0xff, 0xff, 0x39, 0x52, + 0x0, 0x0, 0x0, 0xc8, 0x75, 0xff, 0xff, 0xff, + 0xe9, 0x9f, 0x81, 0x89, 0xc3, 0xff, 0xff, 0xff, + 0xbf, 0xf8, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x36, 0x35, 0xff, 0xff, 0xff, 0x6f, 0x8c, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2a, + 0xfe, 0xd1, 0xff, 0xff, 0xff, 0xd1, 0x97, 0x89, + 0xab, 0xf7, 0xff, 0xff, 0xff, 0x5f, 0xac, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x9, 0xef, + 0xff, 0xff, 0xff, 0xff, 0x6b, 0xa0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x58, 0x41, + 0xff, 0xff, 0xff, 0xff, 0x49, 0x6a, 0x0, 0x86, + 0x61, 0xff, 0xff, 0xff, 0xff, 0x2b, 0x42, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xbc, 0x57, 0xff, 0xff, + 0xff, 0xb5, 0xfa, 0x2a, 0xec, 0x95, 0xff, 0xff, + 0xff, 0x8b, 0xec, 0x14, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x4c, 0x43, 0xff, 0xff, 0xff, 0x63, + 0x7a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe, + 0xfe, 0xb9, 0xff, 0xff, 0xff, 0xc3, 0xb7, 0xb7, + 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0x5d, 0x6c, 0x0, + 0x0, 0xdc, 0xb3, 0xff, 0xff, 0xdf, 0xfa, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbe, + 0x7d, 0xff, 0xff, 0xf7, 0x1d, 0x52, 0x0, 0x0, + 0x5c, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x58, 0xfe, 0xa7, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x4f, 0xf2, 0x20, 0x0, 0x0, 0x0, 0x0, + 0xac, 0x87, 0xff, 0xff, 0xff, 0xd, 0x6, 0x0, + 0x0, 0x58, 0x51, 0xff, 0xff, 0xff, 0x67, 0xba, + 0x0, 0x0, 0x0, 0x40, 0xfe, 0x91, 0xfd, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, + 0x31, 0x92, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x36, 0x35, 0xff, 0xff, 0xff, 0x6f, 0x8c, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xaa, 0x31, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xfd, 0x8b, 0xfe, 0x30, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xea, 0xad, + 0xff, 0xff, 0xff, 0xf3, 0x11, 0x3c, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1a, 0xfe, + 0xf3, 0xff, 0xff, 0xef, 0x5, 0x20, 0x0, 0x34, + 0x15, 0xf9, 0xff, 0xff, 0xe7, 0xfe, 0xe, 0x0, + 0x0, 0x0, 0x0, 0x52, 0x9, 0xdb, 0xff, 0xff, + 0xfb, 0x35, 0x8a, 0x0, 0x62, 0x19, 0xed, 0xff, + 0xff, 0xf7, 0x33, 0x94, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x4c, 0x43, 0xff, 0xff, 0xff, 0x63, + 0x7a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1e, + 0x29, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x83, 0x98, 0x0, + 0x0, 0xdc, 0xb3, 0xff, 0xff, 0xdf, 0xfa, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4e, + 0x19, 0xf5, 0xff, 0xff, 0x81, 0xc4, 0x0, 0x0, + 0x5c, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x86, 0x87, 0xff, 0xff, 0xff, 0xd, 0x4, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6e, 0xfe, + 0x69, 0xd3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xdb, 0x33, 0xd6, 0x22, 0x0, 0x0, 0x0, + 0x86, 0x87, 0xff, 0xff, 0xff, 0xd, 0x4, 0x0, + 0x0, 0x28, 0xf, 0xe9, 0xff, 0xff, 0xcf, 0xb4, + 0x0, 0x0, 0x0, 0x0, 0x5a, 0xf8, 0x49, 0xbb, + 0xf7, 0xff, 0xff, 0xff, 0xff, 0xed, 0xa1, 0x21, + 0xc6, 0x12, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x26, 0x35, 0xff, 0xff, 0xff, 0x6f, 0x68, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x12, 0xc0, 0x17, 0x97, 0xe7, 0xff, 0xff, 0xff, + 0xff, 0xf9, 0xc3, 0x55, 0xf8, 0x54, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8e, 0x5b, + 0xff, 0xff, 0xff, 0xb7, 0xee, 0x4, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, + 0xc9, 0xff, 0xff, 0xbf, 0xea, 0x0, 0x0, 0x6, + 0xf6, 0xcf, 0xff, 0xff, 0xbd, 0xe2, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x52, 0x89, 0xff, 0xff, 0xff, + 0xa7, 0xf4, 0x14, 0x0, 0x6, 0xde, 0x87, 0xff, + 0xff, 0xff, 0xc1, 0x94, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x36, 0x43, 0xff, 0xff, 0xff, 0x63, + 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1e, + 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x83, 0x82, 0x0, + 0x0, 0xdc, 0xb3, 0xff, 0xff, 0xdf, 0xfa, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, + 0xf2, 0xb1, 0xff, 0xff, 0xd5, 0xfe, 0x1c, 0x0, + 0x5c, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x50, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x2, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x36, + 0xb8, 0xfc, 0x23, 0x4d, 0x59, 0x3d, 0x63, 0xf5, + 0xff, 0xff, 0xeb, 0x4d, 0x50, 0x0, 0x0, 0x0, + 0x50, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x2, 0x0, + 0x0, 0x4, 0xc8, 0xfe, 0xfe, 0xfe, 0xfe, 0xa0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x94, 0xf2, + 0x9, 0x43, 0x59, 0x55, 0x35, 0xfe, 0xe4, 0x70, + 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x14, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x3c, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x6, 0x64, 0xda, 0xfe, 0x31, 0x53, 0x59, + 0x47, 0xf, 0xf6, 0xa0, 0x28, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2c, 0xfe, + 0xfe, 0xfe, 0xfe, 0xfe, 0x80, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x98, + 0xfe, 0xfe, 0xfe, 0xfe, 0x8a, 0x0, 0x0, 0x0, + 0x9e, 0xfe, 0xfe, 0xfe, 0xfe, 0x88, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x52, 0xfe, 0xfe, 0xfe, 0xfe, + 0xfe, 0x6e, 0x0, 0x0, 0x0, 0x50, 0xfe, 0xfe, + 0xfe, 0xfe, 0xfe, 0x8c, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x1c, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, + 0x32, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, + 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, + 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x4c, 0x0, + 0x0, 0xdc, 0xb3, 0xff, 0xff, 0xdf, 0xfe, 0x96, + 0x36, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x90, 0x57, 0xff, 0xff, 0xff, 0x43, 0x3e, 0x64, + 0xca, 0x4d, 0xff, 0xff, 0xff, 0x5b, 0x70, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xc, 0x2e, 0x50, 0x5a, 0x66, 0xea, 0x4b, + 0xed, 0xff, 0xf5, 0x67, 0x50, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1c, 0x42, 0x60, 0x5a, 0x3a, 0x14, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x12, 0x36, 0x58, 0x60, + 0x48, 0x22, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xdc, 0xb3, 0xff, 0xff, 0xf3, 0xb1, 0x69, + 0x82, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x2a, 0xfe, 0x8d, 0x95, 0x95, 0x51, 0x3e, 0xd6, + 0x9b, 0xbf, 0xff, 0xff, 0xff, 0x5b, 0x70, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0xd8, + 0x35, 0xc9, 0x49, 0xe8, 0x34, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xda, 0xb3, 0xff, 0xff, 0xff, 0xff, 0x99, + 0xae, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x56, 0x94, 0xbc, 0xa8, 0x76, 0x26, 0xf2, + 0xe3, 0xff, 0xff, 0xff, 0xff, 0x5b, 0x6e, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x14, + 0xa0, 0xac, 0xa4, 0x20, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xb8, 0xab, 0xf5, 0xf5, 0xf5, 0xf5, 0x91, + 0x98, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xea, + 0xd9, 0xf5, 0xf5, 0xf5, 0xf5, 0x57, 0x4e, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x74, 0xec, 0xfc, 0xfe, 0xfe, 0xfc, 0xe8, + 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xac, + 0xf4, 0xfe, 0xfe, 0xfe, 0xfc, 0xe2, 0x2a, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x24, 0x52, 0x76, 0x76, 0x52, 0x26, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xa, 0x3e, 0x66, 0x80, 0x66, 0x3e, 0xa, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x54, + 0x98, 0xba, 0xb2, 0x80, 0x34, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x28, 0x56, 0x78, 0x74, 0x50, 0x22, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x1a, 0x4a, 0x70, 0x7e, 0x5c, 0x30, 0x0, + 0x0, 0x0, 0x1a, 0x4a, 0x70, 0x7e, 0x5c, 0x32, + 0x0, 0x0, 0x0, 0x24, 0x52, 0x76, 0x78, 0x54, + 0x26, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x1a, 0x4a, 0x70, 0x7e, 0x5c, + 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x3c, + 0x6e, 0x90, 0x86, 0x5e, 0x2a, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xa0, 0x4f, 0x67, 0x67, 0x51, 0xa8, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x32, 0x21, 0x67, 0x67, 0x67, 0x21, 0x32, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x4e, 0xf2, 0x2d, + 0x7f, 0x9b, 0x99, 0x67, 0xaa, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xb4, 0x55, 0x67, 0x67, 0x4d, 0x98, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x78, 0x41, 0x67, 0x67, 0x5f, 0xda, 0x0, + 0x0, 0x0, 0x74, 0x3f, 0x67, 0x67, 0x63, 0xe4, + 0x0, 0x0, 0x0, 0xa0, 0x4f, 0x67, 0x67, 0x51, + 0xac, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x78, 0x41, 0x67, 0x67, 0x5f, + 0xda, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x17, + 0x71, 0x73, 0x73, 0x57, 0xf0, 0x22, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xd4, 0xc3, 0xff, 0xff, 0xcb, 0xdc, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x54, 0x57, 0xff, 0xff, 0xff, 0x57, 0x54, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x28, 0xfc, 0x85, 0xfb, + 0xff, 0xff, 0xff, 0xc7, 0xd2, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xe4, 0xd3, 0xff, 0xff, 0xbd, 0xce, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xae, 0x9f, 0xff, 0xff, 0xef, 0xf8, 0x0, + 0x0, 0x0, 0xaa, 0x9b, 0xff, 0xff, 0xf5, 0xfa, + 0x0, 0x0, 0x0, 0xd4, 0xc3, 0xff, 0xff, 0xcd, + 0xde, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xae, 0x9f, 0xff, 0xff, 0xef, + 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x6c, + 0x77, 0xfb, 0xff, 0xfb, 0x4d, 0xc8, 0x8, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcb, 0xee, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x6a, 0x57, 0xff, 0xff, 0xff, 0x57, 0x6a, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x8e, 0x55, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xb1, 0xcc, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xf4, 0xd3, 0xff, 0xff, 0xbd, 0xe4, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xae, 0x9f, 0xff, 0xff, 0xef, 0xf8, 0x0, + 0x0, 0x0, 0xaa, 0x9b, 0xff, 0xff, 0xf5, 0xfc, + 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcd, + 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xc8, 0x9f, 0xff, 0xff, 0xef, + 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, + 0xf6, 0x6d, 0xfb, 0xff, 0xe3, 0x1d, 0x5e, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcb, 0xee, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x6a, 0x57, 0xff, 0xff, 0xff, 0x57, 0x6a, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xd2, 0xaf, 0xff, 0xff, + 0xfb, 0x7b, 0x45, 0x37, 0x86, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xf4, 0xd3, 0xff, 0xff, 0xbd, 0xe4, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x78, 0x41, 0x67, 0x67, 0x5f, 0xda, 0x0, + 0x0, 0x0, 0x74, 0x3d, 0x63, 0x63, 0x5d, 0xe4, + 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcd, + 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xc8, 0x9f, 0xff, 0xff, 0xef, + 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x3a, 0xf2, 0x65, 0xd9, 0xd9, 0x95, 0x5e, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcb, 0xee, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x6a, 0x57, 0xff, 0xff, 0xff, 0x57, 0x6a, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xec, 0xcd, 0xff, 0xff, + 0xc9, 0xfe, 0x6a, 0x30, 0x16, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xf4, 0xd3, 0xff, 0xff, 0xbd, 0xe4, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x1a, 0x4a, 0x70, 0x7e, 0x5c, 0x30, 0x0, + 0x0, 0x0, 0x18, 0x46, 0x6a, 0x78, 0x58, 0x2e, + 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcd, + 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xc8, 0x9f, 0xff, 0xff, 0xef, + 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x34, 0xbe, 0xea, 0xee, 0xca, 0x58, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x3c, 0xa6, 0xe8, 0xfa, + 0xfc, 0xf8, 0xe4, 0x98, 0x2a, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcb, 0xf8, + 0xea, 0xf8, 0xf8, 0xe2, 0x8e, 0x1c, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x8e, 0xde, + 0xf8, 0xfc, 0xf8, 0xe4, 0x98, 0x2a, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x48, 0xbc, 0xf0, 0xfa, + 0xf4, 0xe2, 0x57, 0xff, 0xff, 0xff, 0x57, 0x6a, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x74, 0xd4, + 0xf6, 0xfa, 0xf8, 0xe6, 0x9e, 0x2e, 0x0, 0x0, + 0x0, 0x0, 0x56, 0xb6, 0xfe, 0xd3, 0xff, 0xff, + 0xbd, 0xfc, 0xd4, 0x9a, 0x18, 0x0, 0x0, 0x0, + 0x0, 0x46, 0xba, 0xf0, 0xfa, 0xf6, 0xd2, 0xa4, + 0xc0, 0xe2, 0xd4, 0x9e, 0x1e, 0x0, 0x0, 0x0, + 0xf4, 0xd3, 0xff, 0xff, 0xbd, 0xf2, 0xe0, 0xf8, + 0xf8, 0xea, 0xa2, 0x28, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x44, 0xae, 0xdc, 0xe6, 0xc8, 0x80, 0x0, + 0x0, 0x0, 0x38, 0xa8, 0xd8, 0xea, 0xce, 0x90, + 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcd, + 0xf0, 0x0, 0x5c, 0xb8, 0xe0, 0xea, 0xd4, 0x9e, + 0x20, 0x0, 0x0, 0xc8, 0x9f, 0xff, 0xff, 0xef, + 0xfe, 0x0, 0x0, 0x0, 0x5e, 0xb8, 0xe0, 0xdc, + 0xb2, 0x9c, 0xda, 0xf6, 0xf8, 0xee, 0xae, 0x34, + 0x60, 0xce, 0xf4, 0xfa, 0xf2, 0xc0, 0x48, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x68, 0xbe, 0xe2, 0xda, + 0xae, 0x92, 0xd6, 0xf6, 0xfa, 0xf0, 0xb6, 0x3c, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x14, + 0x78, 0xd4, 0xf6, 0xfa, 0xfa, 0xec, 0xb0, 0x44, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x4, 0x8e, 0xfe, 0x6f, 0xbf, 0xe3, + 0xef, 0xe3, 0xb9, 0x57, 0xfc, 0x5c, 0x0, 0x0, + 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcb, 0x49, + 0xc3, 0xeb, 0xe5, 0xb7, 0x41, 0xea, 0x26, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x52, 0xfa, 0x4d, 0xb3, + 0xdf, 0xed, 0xe3, 0xb9, 0x57, 0xfc, 0x5c, 0x0, + 0x0, 0x0, 0x0, 0x7a, 0xfe, 0x7d, 0xd1, 0xeb, + 0xdd, 0x8f, 0x59, 0xff, 0xff, 0xff, 0x57, 0x6a, + 0x0, 0x0, 0x0, 0x0, 0x2a, 0xe2, 0x2f, 0xa3, + 0xdb, 0xed, 0xe3, 0xbd, 0x5d, 0xfe, 0x60, 0x0, + 0x0, 0x0, 0xae, 0x8d, 0xc3, 0xf3, 0xff, 0xff, + 0xeb, 0xc3, 0xc3, 0x3b, 0x38, 0x0, 0x0, 0x0, + 0x76, 0xfe, 0x7b, 0xcf, 0xeb, 0xdf, 0x97, 0xd, + 0xa5, 0xc3, 0xc3, 0x45, 0x44, 0x0, 0x0, 0x0, + 0xf4, 0xd3, 0xff, 0xff, 0xbd, 0x2d, 0xb1, 0xe5, + 0xe9, 0xc3, 0x55, 0xf2, 0x2e, 0x0, 0x0, 0x0, + 0x0, 0x90, 0x79, 0xc3, 0xc3, 0xb7, 0xe8, 0x0, + 0x0, 0x0, 0x78, 0x69, 0xc3, 0xc3, 0xc3, 0xfe, + 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcd, + 0xf0, 0x24, 0xfa, 0x93, 0xc3, 0xc3, 0xc3, 0x53, + 0x20, 0x0, 0x0, 0xc8, 0x9f, 0xff, 0xff, 0xef, + 0xfe, 0x0, 0x0, 0x0, 0xb8, 0x95, 0xc3, 0xc3, + 0x79, 0x27, 0xa9, 0xe1, 0xeb, 0xcb, 0x61, 0xfc, + 0x11, 0x95, 0xdb, 0xed, 0xd5, 0x7d, 0xfe, 0x5c, + 0x0, 0x0, 0x0, 0x0, 0xc8, 0x9f, 0xc3, 0xc3, + 0x71, 0x1d, 0xa1, 0xdf, 0xeb, 0xcf, 0x71, 0xfe, + 0x4c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38, 0xec, + 0x35, 0xa5, 0xd9, 0xeb, 0xe5, 0xc5, 0x79, 0x5, + 0x9e, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x62, 0x11, 0xc1, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x93, 0xfa, 0x22, 0x0, + 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xe5, 0xf5, + 0xff, 0xff, 0xff, 0xff, 0xf7, 0x53, 0xc4, 0x2, + 0x0, 0x0, 0x0, 0x2c, 0xfa, 0x89, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x93, 0xfe, 0x2e, + 0x0, 0x0, 0x38, 0xfe, 0xb1, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xd9, 0xff, 0xff, 0xff, 0x57, 0x6a, + 0x0, 0x0, 0x0, 0xe, 0xdc, 0x57, 0xf3, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x97, 0xfc, 0x2e, + 0x0, 0x0, 0xca, 0xbb, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x4d, 0x4a, 0x0, 0x0, 0x36, + 0xfe, 0xad, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc1, + 0xf1, 0xff, 0xff, 0x5b, 0x66, 0x0, 0x0, 0x0, + 0xf4, 0xd3, 0xff, 0xff, 0xd1, 0xeb, 0xff, 0xff, + 0xff, 0xff, 0xfb, 0x5d, 0xbc, 0x0, 0x0, 0x0, + 0x0, 0xbc, 0x9f, 0xff, 0xff, 0xef, 0xfa, 0x0, + 0x0, 0x0, 0xa4, 0x89, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcd, + 0xf0, 0xb4, 0x4f, 0xff, 0xff, 0xff, 0xbf, 0xd4, + 0x20, 0x0, 0x0, 0xc8, 0x9f, 0xff, 0xff, 0xef, + 0xfe, 0x0, 0x0, 0x0, 0xe0, 0xc3, 0xff, 0xff, + 0xbf, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x61, + 0xcb, 0xff, 0xff, 0xff, 0xff, 0xff, 0x93, 0xee, + 0x8, 0x0, 0x0, 0x0, 0xea, 0xd1, 0xff, 0xff, + 0xb1, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0x83, + 0xe0, 0x2, 0x0, 0x0, 0x0, 0x1c, 0xec, 0x6b, + 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcd, + 0x1d, 0x88, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xd2, 0x99, 0xff, 0xff, 0xff, 0xcb, + 0xb7, 0xed, 0xff, 0xff, 0xff, 0x4b, 0x76, 0x0, + 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xff, 0xff, + 0xdb, 0xe1, 0xff, 0xff, 0xff, 0xe1, 0xb, 0x34, + 0x0, 0x0, 0x0, 0xac, 0x59, 0xff, 0xff, 0xff, + 0xef, 0xd1, 0xf3, 0xff, 0xff, 0xff, 0x5d, 0x9c, + 0x0, 0x0, 0xb0, 0x6b, 0xff, 0xff, 0xff, 0xf9, + 0xd5, 0xef, 0xff, 0xff, 0xff, 0xff, 0x57, 0x6a, + 0x0, 0x0, 0x0, 0x70, 0x29, 0xef, 0xff, 0xff, + 0xf9, 0xd5, 0xed, 0xff, 0xff, 0xff, 0x5d, 0xa2, + 0x0, 0x0, 0xb0, 0x93, 0xcb, 0xf3, 0xff, 0xff, + 0xef, 0xcb, 0xcb, 0x3d, 0x38, 0x0, 0x0, 0xae, + 0x67, 0xff, 0xff, 0xff, 0xf9, 0xd5, 0xed, 0xff, + 0xff, 0xff, 0xff, 0x5b, 0x70, 0x0, 0x0, 0x0, + 0xf4, 0xd3, 0xff, 0xff, 0xff, 0xf9, 0xd7, 0xeb, + 0xff, 0xff, 0xff, 0xd9, 0xfe, 0x10, 0x0, 0x0, + 0x0, 0xc8, 0x9f, 0xff, 0xff, 0xef, 0xfe, 0x0, + 0x0, 0x0, 0xb0, 0x89, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcd, + 0xf4, 0x5, 0xd5, 0xff, 0xff, 0xed, 0x27, 0x8e, + 0x0, 0x0, 0x0, 0xc8, 0x9f, 0xff, 0xff, 0xef, + 0xfe, 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, + 0xff, 0xfb, 0xd7, 0xeb, 0xff, 0xff, 0xff, 0xf9, + 0xff, 0xe5, 0xdb, 0xff, 0xff, 0xff, 0xf9, 0x1f, + 0x3c, 0x0, 0x0, 0x0, 0xf2, 0xd1, 0xff, 0xff, + 0xff, 0xfb, 0xd9, 0xe7, 0xff, 0xff, 0xff, 0xef, + 0xb, 0x22, 0x0, 0x0, 0x0, 0x92, 0x41, 0xf9, + 0xff, 0xff, 0xf9, 0xd1, 0xe3, 0xff, 0xff, 0xff, + 0xb9, 0xfe, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xd4, 0xdf, 0xff, 0xff, 0xbd, 0xfe, + 0xf6, 0x31, 0xf9, 0xff, 0xff, 0x9b, 0xb8, 0x0, + 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xf7, 0x4f, + 0xfe, 0xfe, 0x8f, 0xff, 0xff, 0xff, 0x63, 0x88, + 0x0, 0x0, 0x8, 0xfa, 0xcb, 0xff, 0xff, 0xdb, + 0x19, 0xfc, 0x23, 0xdf, 0xff, 0xff, 0xbb, 0xe2, + 0x0, 0x4, 0xf8, 0xcb, 0xff, 0xff, 0xf1, 0x39, + 0xfe, 0x11, 0xbb, 0xff, 0xff, 0xff, 0x57, 0x6a, + 0x0, 0x0, 0x0, 0xda, 0xa1, 0xff, 0xff, 0xf9, + 0x49, 0xfe, 0x15, 0xd5, 0xff, 0xff, 0xc3, 0xf0, + 0x0, 0x0, 0x5a, 0xbc, 0xfe, 0xd3, 0xff, 0xff, + 0xbd, 0xfe, 0xda, 0xa2, 0x18, 0x0, 0x2, 0xf8, + 0xcb, 0xff, 0xff, 0xf1, 0x39, 0xfe, 0xb, 0xad, + 0xff, 0xff, 0xff, 0x5b, 0x70, 0x0, 0x0, 0x0, + 0xf4, 0xd3, 0xff, 0xff, 0xe3, 0x35, 0xfe, 0x9, + 0xbb, 0xff, 0xff, 0xff, 0x2d, 0x36, 0x0, 0x0, + 0x0, 0xc8, 0x9f, 0xff, 0xff, 0xef, 0xfe, 0x0, + 0x0, 0x0, 0xb0, 0x89, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcd, + 0xfe, 0x81, 0xff, 0xff, 0xff, 0x67, 0xda, 0xc, + 0x0, 0x0, 0x0, 0xc8, 0x9f, 0xff, 0xff, 0xef, + 0xfe, 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, + 0xed, 0x43, 0xfe, 0xd, 0xcf, 0xff, 0xff, 0xff, + 0x8f, 0xfe, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0x67, + 0x78, 0x0, 0x0, 0x0, 0xf2, 0xd1, 0xff, 0xff, + 0xeb, 0x43, 0xfe, 0xfe, 0xa7, 0xff, 0xff, 0xff, + 0x49, 0x50, 0x0, 0x0, 0x2, 0xf2, 0xbb, 0xff, + 0xff, 0xf1, 0x39, 0xfc, 0xfe, 0xa1, 0xff, 0xff, + 0xff, 0x49, 0x76, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xbc, 0x2b, 0x2f, 0x2f, 0x1d, 0xda, + 0xc0, 0xfe, 0xdf, 0xff, 0xff, 0xb1, 0xd4, 0x0, + 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcb, 0xfa, + 0x24, 0x5a, 0x11, 0xf7, 0xff, 0xff, 0xa1, 0xca, + 0x0, 0x0, 0x2a, 0x1b, 0xfd, 0xff, 0xff, 0x87, + 0xd4, 0x12, 0xd0, 0x89, 0xff, 0xff, 0xdd, 0xdc, + 0x0, 0x1e, 0xf, 0xfb, 0xff, 0xff, 0xa7, 0xee, + 0x1a, 0xaa, 0x57, 0xff, 0xff, 0xff, 0x57, 0x6a, + 0x0, 0x0, 0x4, 0xfe, 0xe3, 0xff, 0xff, 0xb5, + 0xfe, 0xdc, 0xf8, 0x87, 0xff, 0xff, 0xf1, 0xfe, + 0x2, 0x0, 0x0, 0x0, 0xf4, 0xd3, 0xff, 0xff, + 0xbd, 0xe4, 0x0, 0x0, 0x0, 0x0, 0x1c, 0xd, + 0xfb, 0xff, 0xff, 0xa7, 0xee, 0x18, 0x9c, 0x51, + 0xff, 0xff, 0xff, 0x5b, 0x70, 0x0, 0x0, 0x0, + 0xf4, 0xd3, 0xff, 0xff, 0xbd, 0xf2, 0x14, 0xa4, + 0x5d, 0xff, 0xff, 0xff, 0x57, 0x60, 0x0, 0x0, + 0x0, 0xc8, 0x9f, 0xff, 0xff, 0xef, 0xfe, 0x0, + 0x0, 0x0, 0xb0, 0x89, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcd, + 0x25, 0xf1, 0xff, 0xff, 0xaf, 0xfe, 0x36, 0x0, + 0x0, 0x0, 0x0, 0xc8, 0x9f, 0xff, 0xff, 0xef, + 0xfe, 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, + 0xcb, 0xf8, 0x1e, 0xce, 0x87, 0xff, 0xff, 0xff, + 0x25, 0x68, 0x4e, 0x1b, 0xff, 0xff, 0xff, 0x87, + 0xa4, 0x0, 0x0, 0x0, 0xf2, 0xd1, 0xff, 0xff, + 0xc1, 0xf6, 0x1c, 0x8e, 0x4f, 0xff, 0xff, 0xff, + 0x67, 0x78, 0x0, 0x0, 0x1a, 0xb, 0xf7, 0xff, + 0xff, 0xa3, 0xee, 0x16, 0x6e, 0x1d, 0xf7, 0xff, + 0xff, 0x9b, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x14, 0x90, 0xfa, 0x2d, 0x6f, 0x8d, + 0x97, 0x99, 0xef, 0xff, 0xff, 0xb3, 0xdc, 0x0, + 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcb, 0xee, + 0x0, 0x4, 0xfa, 0xd1, 0xff, 0xff, 0xc1, 0xe4, + 0x0, 0x0, 0x52, 0x4f, 0xff, 0xff, 0xff, 0x59, + 0x80, 0x0, 0x52, 0xfe, 0xfe, 0xfe, 0xfe, 0xb4, + 0x0, 0x40, 0x41, 0xff, 0xff, 0xff, 0x6f, 0xa2, + 0x0, 0x6a, 0x57, 0xff, 0xff, 0xff, 0x57, 0x6a, + 0x0, 0x0, 0x12, 0x11, 0xff, 0xff, 0xff, 0xd3, + 0xad, 0xad, 0xad, 0xc9, 0xff, 0xff, 0xff, 0xb, + 0x6, 0x0, 0x0, 0x0, 0xf4, 0xd3, 0xff, 0xff, + 0xbd, 0xe4, 0x0, 0x0, 0x0, 0x0, 0x3e, 0x41, + 0xff, 0xff, 0xff, 0x6f, 0xa2, 0x0, 0x64, 0x51, + 0xff, 0xff, 0xff, 0x5b, 0x70, 0x0, 0x0, 0x0, + 0xf4, 0xd3, 0xff, 0xff, 0xbd, 0xe4, 0x0, 0x56, + 0x41, 0xff, 0xff, 0xff, 0x65, 0x78, 0x0, 0x0, + 0x0, 0xc8, 0x9f, 0xff, 0xff, 0xef, 0xfe, 0x0, + 0x0, 0x0, 0xb0, 0x89, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xfb, + 0xf3, 0xff, 0xff, 0xe5, 0x19, 0x7a, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xc8, 0x9f, 0xff, 0xff, 0xef, + 0xfe, 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, + 0xcb, 0xee, 0x0, 0x9c, 0x75, 0xff, 0xff, 0xff, + 0x29, 0x26, 0x8, 0xfe, 0xfb, 0xff, 0xff, 0x91, + 0xb4, 0x0, 0x0, 0x0, 0xf2, 0xd1, 0xff, 0xff, + 0xc1, 0xe8, 0x0, 0x48, 0x39, 0xff, 0xff, 0xff, + 0x6f, 0x88, 0x0, 0x0, 0x3e, 0x3f, 0xff, 0xff, + 0xff, 0x6d, 0xa0, 0x0, 0x8, 0xfa, 0xd5, 0xff, + 0xff, 0xc1, 0xe4, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x8c, 0x19, 0xb5, 0xfd, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xb3, 0xdc, 0x0, + 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcb, 0xee, + 0x0, 0x0, 0xee, 0xc3, 0xff, 0xff, 0xcd, 0xec, + 0x0, 0x0, 0x6a, 0x5f, 0xff, 0xff, 0xff, 0x47, + 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x58, 0x51, 0xff, 0xff, 0xff, 0x59, 0x7a, + 0x0, 0x6a, 0x57, 0xff, 0xff, 0xff, 0x57, 0x6a, + 0x0, 0x0, 0x1c, 0x2b, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x15, + 0xa, 0x0, 0x0, 0x0, 0xf4, 0xd3, 0xff, 0xff, + 0xbd, 0xe4, 0x0, 0x0, 0x0, 0x0, 0x58, 0x51, + 0xff, 0xff, 0xff, 0x59, 0x7a, 0x0, 0x64, 0x51, + 0xff, 0xff, 0xff, 0x5b, 0x70, 0x0, 0x0, 0x0, + 0xf4, 0xd3, 0xff, 0xff, 0xbd, 0xe4, 0x0, 0x46, + 0x3f, 0xff, 0xff, 0xff, 0x67, 0x80, 0x0, 0x0, + 0x0, 0xc8, 0x9f, 0xff, 0xff, 0xef, 0xfe, 0x0, + 0x0, 0x0, 0xb0, 0x89, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xd3, 0x5, 0x54, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xc8, 0x9f, 0xff, 0xff, 0xef, + 0xfe, 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, + 0xcb, 0xee, 0x0, 0x94, 0x73, 0xff, 0xff, 0xff, + 0x29, 0x2a, 0x0, 0xfe, 0xfb, 0xff, 0xff, 0x91, + 0xb8, 0x0, 0x0, 0x0, 0xf2, 0xd1, 0xff, 0xff, + 0xc1, 0xe8, 0x0, 0x3e, 0x39, 0xff, 0xff, 0xff, + 0x6f, 0x8c, 0x0, 0x0, 0x54, 0x53, 0xff, 0xff, + 0xff, 0x57, 0x7a, 0x0, 0x0, 0xf0, 0xc3, 0xff, + 0xff, 0xcd, 0xec, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xc, 0xfc, 0xbd, 0xff, 0xff, 0xfb, 0xb5, + 0x91, 0x8d, 0xed, 0xff, 0xff, 0xb3, 0xdc, 0x0, + 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcb, 0xee, + 0x0, 0x0, 0xf0, 0xc5, 0xff, 0xff, 0xcb, 0xec, + 0x0, 0x0, 0x5e, 0x57, 0xff, 0xff, 0xff, 0x51, + 0x6e, 0x0, 0x18, 0x54, 0x80, 0x92, 0x6c, 0x38, + 0x0, 0x52, 0x4f, 0xff, 0xff, 0xff, 0x5d, 0x82, + 0x0, 0x6a, 0x57, 0xff, 0xff, 0xff, 0x57, 0x6a, + 0x0, 0x0, 0x18, 0x21, 0xff, 0xff, 0xff, 0xdb, + 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xf, + 0x8, 0x0, 0x0, 0x0, 0xf4, 0xd3, 0xff, 0xff, + 0xbd, 0xe4, 0x0, 0x0, 0x0, 0x0, 0x52, 0x4f, + 0xff, 0xff, 0xff, 0x5d, 0x82, 0x0, 0x64, 0x51, + 0xff, 0xff, 0xff, 0x5b, 0x70, 0x0, 0x0, 0x0, + 0xf4, 0xd3, 0xff, 0xff, 0xbd, 0xe4, 0x0, 0x46, + 0x3f, 0xff, 0xff, 0xff, 0x67, 0x80, 0x0, 0x0, + 0x0, 0xc8, 0x9f, 0xff, 0xff, 0xef, 0xfe, 0x0, + 0x0, 0x0, 0xb0, 0x89, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xf1, + 0xcd, 0xff, 0xff, 0xff, 0x87, 0xea, 0x12, 0x0, + 0x0, 0x0, 0x0, 0xc8, 0x9f, 0xff, 0xff, 0xef, + 0xfe, 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, + 0xcb, 0xee, 0x0, 0x94, 0x73, 0xff, 0xff, 0xff, + 0x29, 0x2a, 0x0, 0xfe, 0xfb, 0xff, 0xff, 0x91, + 0xb8, 0x0, 0x0, 0x0, 0xf2, 0xd1, 0xff, 0xff, + 0xc1, 0xe8, 0x0, 0x3e, 0x39, 0xff, 0xff, 0xff, + 0x6f, 0x8c, 0x0, 0x0, 0x48, 0x49, 0xff, 0xff, + 0xff, 0x65, 0x8a, 0x0, 0x0, 0xf6, 0xcf, 0xff, + 0xff, 0xc7, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x2a, 0x27, 0xff, 0xff, 0xff, 0x91, 0xfc, + 0xc8, 0xfe, 0xdd, 0xff, 0xff, 0xb3, 0xdc, 0x0, + 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcb, 0xf4, + 0x4, 0x1c, 0xfe, 0xdb, 0xff, 0xff, 0xb9, 0xde, + 0x0, 0x0, 0x3a, 0x33, 0xff, 0xff, 0xff, 0x71, + 0xb2, 0x0, 0x82, 0x3b, 0x77, 0x77, 0x69, 0xb6, + 0x0, 0x34, 0x33, 0xff, 0xff, 0xff, 0x7d, 0xc4, + 0x0, 0x7c, 0x57, 0xff, 0xff, 0xff, 0x57, 0x6a, + 0x0, 0x0, 0xa, 0xfe, 0xf5, 0xff, 0xff, 0xab, + 0xfe, 0xea, 0xe8, 0xe8, 0xea, 0xea, 0xd0, 0x8e, + 0x4, 0x0, 0x0, 0x0, 0xf4, 0xd3, 0xff, 0xff, + 0xbd, 0xe4, 0x0, 0x0, 0x0, 0x0, 0x34, 0x33, + 0xff, 0xff, 0xff, 0x7d, 0xc4, 0x0, 0x74, 0x51, + 0xff, 0xff, 0xff, 0x5b, 0x70, 0x0, 0x0, 0x0, + 0xf4, 0xd3, 0xff, 0xff, 0xbd, 0xe4, 0x0, 0x46, + 0x3f, 0xff, 0xff, 0xff, 0x67, 0x80, 0x0, 0x0, + 0x0, 0xc8, 0x9f, 0xff, 0xff, 0xef, 0xfe, 0x0, + 0x0, 0x0, 0xb0, 0x89, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcd, + 0xfe, 0xd1, 0xff, 0xff, 0xf5, 0x31, 0x96, 0x0, + 0x0, 0x0, 0x0, 0xc8, 0x9f, 0xff, 0xff, 0xef, + 0xfe, 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, + 0xcb, 0xee, 0x0, 0x94, 0x73, 0xff, 0xff, 0xff, + 0x29, 0x2a, 0x0, 0xfe, 0xfb, 0xff, 0xff, 0x91, + 0xb8, 0x0, 0x0, 0x0, 0xf2, 0xd1, 0xff, 0xff, + 0xc1, 0xe8, 0x0, 0x3e, 0x39, 0xff, 0xff, 0xff, + 0x6f, 0x8c, 0x0, 0x0, 0x26, 0x1f, 0xff, 0xff, + 0xff, 0x89, 0xd0, 0x0, 0x36, 0x5, 0xeb, 0xff, + 0xff, 0xab, 0xd2, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x32, 0x47, 0xff, 0xff, 0xff, 0x65, 0xe8, + 0xd4, 0x13, 0xe9, 0xff, 0xff, 0xb3, 0xe2, 0x0, + 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xe1, 0xf, + 0xe2, 0xee, 0x43, 0xff, 0xff, 0xff, 0x8f, 0xb4, + 0x0, 0x0, 0x14, 0xfe, 0xe5, 0xff, 0xff, 0xbd, + 0xfe, 0xd8, 0xfe, 0xad, 0xff, 0xff, 0xd1, 0xce, + 0x0, 0x14, 0xfe, 0xef, 0xff, 0xff, 0xcd, 0x5, + 0xde, 0xfa, 0x7b, 0xff, 0xff, 0xff, 0x57, 0x6a, + 0x0, 0x0, 0x0, 0xf2, 0xc1, 0xff, 0xff, 0xf5, + 0x39, 0xf0, 0xbe, 0xd4, 0xfc, 0x3b, 0xf4, 0x10, + 0x0, 0x0, 0x0, 0x0, 0xf4, 0xd3, 0xff, 0xff, + 0xbd, 0xe4, 0x0, 0x0, 0x0, 0x0, 0x14, 0xfe, + 0xed, 0xff, 0xff, 0xcd, 0x5, 0xdc, 0xf8, 0x71, + 0xff, 0xff, 0xff, 0x5b, 0x70, 0x0, 0x0, 0x0, + 0xf4, 0xd3, 0xff, 0xff, 0xbd, 0xe4, 0x0, 0x46, + 0x3f, 0xff, 0xff, 0xff, 0x67, 0x80, 0x0, 0x0, + 0x0, 0xc8, 0x9f, 0xff, 0xff, 0xef, 0xfe, 0x0, + 0x0, 0x0, 0xb0, 0x89, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcd, + 0xfa, 0x47, 0xfb, 0xff, 0xff, 0xc3, 0xfe, 0x3e, + 0x0, 0x0, 0x0, 0xc8, 0x9f, 0xff, 0xff, 0xef, + 0xfe, 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, + 0xcb, 0xee, 0x0, 0x94, 0x73, 0xff, 0xff, 0xff, + 0x29, 0x2a, 0x0, 0xfe, 0xfb, 0xff, 0xff, 0x91, + 0xb8, 0x0, 0x0, 0x0, 0xf2, 0xd1, 0xff, 0xff, + 0xc1, 0xe8, 0x0, 0x3e, 0x39, 0xff, 0xff, 0xff, + 0x6f, 0x8c, 0x0, 0x0, 0x8, 0xfc, 0xd5, 0xff, + 0xff, 0xd7, 0x5, 0xd6, 0xf2, 0x69, 0xff, 0xff, + 0xff, 0x6d, 0x94, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x28, 0x21, 0xff, 0xff, 0xff, 0xd9, 0x73, + 0x81, 0xd9, 0xff, 0xff, 0xff, 0xbf, 0xec, 0x0, + 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xff, 0xd9, + 0x95, 0xa1, 0xed, 0xff, 0xff, 0xfb, 0x35, 0x64, + 0x0, 0x0, 0x0, 0xd4, 0x8b, 0xff, 0xff, 0xff, + 0xbf, 0x8d, 0xb5, 0xff, 0xff, 0xff, 0x8d, 0xc2, + 0x0, 0x0, 0xe6, 0xa7, 0xff, 0xff, 0xff, 0xcd, + 0x93, 0xaf, 0xfb, 0xff, 0xff, 0xff, 0x57, 0x6a, + 0x0, 0x0, 0x0, 0x9e, 0x55, 0xff, 0xff, 0xff, + 0xf1, 0xa1, 0x87, 0x97, 0xcd, 0xfd, 0x2f, 0x5c, + 0x0, 0x0, 0x0, 0x0, 0xf4, 0xd3, 0xff, 0xff, + 0xbd, 0xe4, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe4, + 0xa5, 0xff, 0xff, 0xff, 0xcd, 0x93, 0xab, 0xf9, + 0xff, 0xff, 0xff, 0x5b, 0x70, 0x0, 0x0, 0x0, + 0xf4, 0xd3, 0xff, 0xff, 0xbd, 0xe4, 0x0, 0x46, + 0x3f, 0xff, 0xff, 0xff, 0x67, 0x80, 0x0, 0x0, + 0x0, 0xc8, 0x9f, 0xff, 0xff, 0xef, 0xfe, 0x0, + 0x0, 0x0, 0xb0, 0x89, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcd, + 0xf2, 0xf8, 0xa3, 0xff, 0xff, 0xff, 0x71, 0xdc, + 0xa, 0x0, 0x0, 0xc8, 0x9f, 0xff, 0xff, 0xef, + 0xfe, 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, + 0xcb, 0xee, 0x0, 0x94, 0x73, 0xff, 0xff, 0xff, + 0x29, 0x2a, 0x0, 0xfe, 0xfb, 0xff, 0xff, 0x91, + 0xb8, 0x0, 0x0, 0x0, 0xf2, 0xd1, 0xff, 0xff, + 0xc1, 0xe8, 0x0, 0x3e, 0x39, 0xff, 0xff, 0xff, + 0x6f, 0x8c, 0x0, 0x0, 0x0, 0xba, 0x6f, 0xff, + 0xff, 0xff, 0xcd, 0x89, 0x9d, 0xf3, 0xff, 0xff, + 0xe1, 0x9, 0x3a, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xa, 0xfc, 0xbb, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xfb, 0xe5, 0xff, 0xff, 0xd7, 0xfc, 0x8, + 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xe3, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xf6, 0x14, + 0x0, 0x0, 0x0, 0x54, 0xb, 0xcb, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xf, 0x58, + 0x0, 0x0, 0x76, 0x27, 0xeb, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xe9, 0xfd, 0xff, 0xff, 0x57, 0x6a, + 0x0, 0x0, 0x0, 0x28, 0xfa, 0x91, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x87, 0x64, + 0x0, 0x0, 0x0, 0x0, 0xf4, 0xd3, 0xff, 0xff, + 0xbd, 0xe4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x72, + 0x23, 0xe9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, + 0xff, 0xff, 0xff, 0x5b, 0x6e, 0x0, 0x0, 0x0, + 0xf4, 0xd3, 0xff, 0xff, 0xbd, 0xe4, 0x0, 0x46, + 0x3f, 0xff, 0xff, 0xff, 0x67, 0x80, 0x0, 0x0, + 0x0, 0xc8, 0x9f, 0xff, 0xff, 0xef, 0xfe, 0x0, + 0x0, 0x0, 0xb0, 0x89, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcd, + 0xf0, 0x70, 0x19, 0xe9, 0xff, 0xff, 0xed, 0x21, + 0x80, 0x0, 0x0, 0xc8, 0x9f, 0xff, 0xff, 0xef, + 0xfe, 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, + 0xcb, 0xee, 0x0, 0x94, 0x73, 0xff, 0xff, 0xff, + 0x29, 0x2a, 0x0, 0xfe, 0xfb, 0xff, 0xff, 0x91, + 0xb8, 0x0, 0x0, 0x0, 0xf2, 0xd1, 0xff, 0xff, + 0xc1, 0xe8, 0x0, 0x3e, 0x39, 0xff, 0xff, 0xff, + 0x6f, 0x8c, 0x0, 0x0, 0x0, 0x3c, 0xfe, 0xad, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, + 0x4b, 0xc2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xf4, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, + 0xfe, 0xfe, 0xfe, 0xfe, 0x8c, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x8a, 0x1d, 0xb9, 0xff, 0xff, 0xff, + 0xe9, 0x67, 0x8b, 0xff, 0xff, 0xfd, 0x1f, 0x8, + 0x0, 0x0, 0xce, 0xc3, 0xff, 0xff, 0x77, 0x97, + 0xf9, 0xff, 0xff, 0xf5, 0x99, 0x5, 0x66, 0x0, + 0x0, 0x0, 0x0, 0x2, 0x9a, 0x11, 0x9d, 0xf1, + 0xff, 0xff, 0xff, 0xf3, 0x9d, 0x13, 0xa2, 0x4, + 0x0, 0x0, 0xc, 0xd0, 0x3d, 0xcd, 0xff, 0xff, + 0xff, 0xd9, 0x3f, 0xe3, 0xff, 0xff, 0x57, 0x4c, + 0x0, 0x0, 0x0, 0x0, 0x58, 0xfe, 0x6d, 0xdb, + 0xff, 0xff, 0xff, 0xff, 0xeb, 0xa1, 0x23, 0x58, + 0x0, 0x0, 0x0, 0x0, 0xe0, 0xd3, 0xff, 0xff, + 0xbd, 0xc8, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, + 0xce, 0x39, 0xcb, 0xff, 0xff, 0xff, 0xdf, 0x81, + 0xff, 0xff, 0xff, 0x59, 0x64, 0x0, 0x0, 0x0, + 0xe0, 0xd3, 0xff, 0xff, 0xbd, 0xc8, 0x0, 0x30, + 0x3f, 0xff, 0xff, 0xff, 0x67, 0x60, 0x0, 0x0, + 0x0, 0xa4, 0x9f, 0xff, 0xff, 0xef, 0xf6, 0x0, + 0x0, 0x0, 0xb2, 0x89, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x0, 0x0, 0xce, 0xc3, 0xff, 0xff, 0xcd, + 0xd8, 0x6, 0xd4, 0x6d, 0xff, 0xff, 0xff, 0xb1, + 0x80, 0x0, 0x0, 0xa4, 0x9f, 0xff, 0xff, 0xef, + 0xf6, 0x0, 0x0, 0x0, 0xce, 0xc3, 0xff, 0xff, + 0xcb, 0xd6, 0x0, 0x70, 0x73, 0xff, 0xff, 0xff, + 0x29, 0x1c, 0x0, 0xfe, 0xfb, 0xff, 0xff, 0x91, + 0x94, 0x0, 0x0, 0x0, 0xdc, 0xd1, 0xff, 0xff, + 0xc1, 0xcc, 0x0, 0x2a, 0x39, 0xff, 0xff, 0xff, + 0x6f, 0x68, 0x0, 0x0, 0x0, 0x0, 0x76, 0xfe, + 0x83, 0xe5, 0xff, 0xff, 0xff, 0xfb, 0xc1, 0x3f, + 0xe0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xfe, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xc1, 0xcc, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x8, 0x88, 0xfa, 0x25, 0x53, 0x45, + 0x9, 0xe0, 0xfe, 0xfe, 0xfe, 0xfe, 0xf2, 0x8, + 0x0, 0x0, 0x90, 0xfe, 0xfe, 0xfe, 0xfe, 0xf4, + 0x1d, 0x4f, 0x49, 0x11, 0xea, 0x60, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x4, 0x66, 0xe4, 0x5, + 0x3f, 0x55, 0x45, 0xb, 0xe8, 0x68, 0x4, 0x0, + 0x0, 0x0, 0x0, 0x18, 0xa4, 0xfc, 0x2d, 0x53, + 0x3d, 0xfe, 0xec, 0xfe, 0xfe, 0xfe, 0xfe, 0x2a, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x3a, 0xc2, 0xfe, + 0x2d, 0x51, 0x51, 0x31, 0xfe, 0xe2, 0x70, 0xc, + 0x0, 0x0, 0x0, 0x0, 0xa6, 0xfe, 0xfe, 0xfe, + 0xfe, 0x88, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1e, 0xa6, 0xfc, 0x2d, 0x53, 0x41, 0xfe, 0x73, + 0xff, 0xff, 0xff, 0x43, 0x42, 0x0, 0x0, 0x0, + 0xa6, 0xfe, 0xfe, 0xfe, 0xfe, 0x88, 0x0, 0x1a, + 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x36, 0x0, 0x0, + 0x0, 0x68, 0xfe, 0xfe, 0xfe, 0xfe, 0xd2, 0x0, + 0x0, 0x0, 0xc2, 0x8d, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x0, 0x0, 0x90, 0xfe, 0xfe, 0xfe, 0xfe, + 0x9c, 0x0, 0x3a, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, + 0x7c, 0x0, 0x0, 0x68, 0xfe, 0xfe, 0xfe, 0xfe, + 0xd2, 0x0, 0x0, 0x0, 0x90, 0xfe, 0xfe, 0xfe, + 0xfe, 0x98, 0x0, 0x40, 0xfe, 0xfe, 0xfe, 0xfe, + 0xfe, 0xe, 0x0, 0xec, 0xfe, 0xfe, 0xfe, 0xfe, + 0x5a, 0x0, 0x0, 0x0, 0xa2, 0xfe, 0xfe, 0xfe, + 0xfe, 0x8c, 0x0, 0x16, 0xfe, 0xfe, 0xfe, 0xfe, + 0xfe, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4c, + 0xd4, 0xfe, 0x35, 0x53, 0x49, 0x1b, 0xf8, 0x98, + 0x1a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xfe, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xc1, 0xda, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xc, 0x30, 0x48, 0x40, + 0x1e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, + 0x2c, 0x46, 0x42, 0x24, 0x4, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1a, + 0x3e, 0x54, 0x42, 0x1e, 0x2, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x34, 0x48, + 0x3c, 0x1a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, + 0x32, 0x50, 0x52, 0x36, 0x12, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x5a, 0x21, 0x15, 0xf6, 0xde, 0xe8, 0xb, 0xcf, + 0xff, 0xff, 0xf3, 0xb, 0x1e, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x7a, 0xbe, 0xfe, 0xb1, 0xff, 0xff, 0xef, 0xfe, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x14, 0x38, 0x50, 0x48, 0x26, 0x8, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xf8, 0xa7, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, + 0xa9, 0xa9, 0xa9, 0x7f, 0xac, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xba, 0x8d, 0xf3, 0xb9, 0x9b, 0x9d, 0xdb, 0xff, + 0xff, 0xff, 0xa1, 0xea, 0x2, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, + 0x5, 0xb1, 0xb9, 0xfd, 0xff, 0xff, 0xbf, 0xee, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x70, 0xb0, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, + 0xd4, 0xd4, 0xc8, 0x9a, 0x48, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xc2, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xcd, 0x13, 0x6c, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, + 0x23, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x4d, 0x9a, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xa4, 0x55, 0xb1, 0xef, 0xff, 0xff, 0xfd, 0xdb, + 0x89, 0xb, 0x9e, 0x4, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, + 0x37, 0xff, 0xff, 0xff, 0xd5, 0x57, 0xf0, 0x22, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x28, 0x90, 0xea, 0xfe, 0x21, 0x2d, 0x11, 0xfc, + 0xc8, 0x52, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x16, + 0xfa, 0x1b, 0x35, 0x1b, 0xfc, 0xb4, 0x2a, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xa, 0x1a, 0x1c, 0x14, 0x4, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x8, 0x1a, 0x22, 0x1a, 0x8, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x26, + 0x86, 0x86, 0x72, 0x2, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x76, + 0x84, 0x80, 0x1e, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x7a, 0xfe, + 0x51, 0xa9, 0xd, 0x3a, 0x0, 0x0, 0x0, 0xa, + 0x16, 0x16, 0xc, 0x0, 0x0, 0x0, 0x4e, 0x1f, + 0xa7, 0x45, 0xfa, 0x68, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x62, 0xb, 0xb1, + 0xff, 0xff, 0x69, 0x4e, 0x0, 0x0, 0x0, 0xec, + 0x21, 0x23, 0x5, 0x10, 0x0, 0x0, 0x64, 0x7d, + 0xff, 0xff, 0x9f, 0xfe, 0x4c, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xaa, + 0xe2, 0xf6, 0xe8, 0xbc, 0x3a, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x6, 0xe6, 0x99, 0xff, + 0xff, 0xd9, 0x3f, 0x4c, 0x0, 0x0, 0x0, 0xfe, + 0xfb, 0xff, 0x2f, 0x20, 0x0, 0x0, 0x60, 0x49, + 0xe1, 0xff, 0xff, 0x83, 0xd4, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xb, + 0xd7, 0xd7, 0xd7, 0x6d, 0x76, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x2c, 0x17, 0xf1, 0xff, + 0xff, 0x37, 0xba, 0x1a, 0x0, 0x0, 0x0, 0xfe, + 0xfb, 0xff, 0x2f, 0x2e, 0x0, 0x0, 0x20, 0xca, + 0x4f, 0xff, 0xff, 0xe7, 0x9, 0x16, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0xd, + 0xff, 0xff, 0xff, 0x83, 0x9e, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x60, 0x53, 0xff, 0xff, + 0xdd, 0xfe, 0x16, 0x0, 0x0, 0x0, 0x0, 0xfe, + 0xfb, 0xff, 0x2f, 0x2e, 0x0, 0x0, 0x0, 0x24, + 0xfe, 0xed, 0xff, 0xff, 0x39, 0x40, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x5e, 0xb8, 0xe0, 0xdc, 0xb6, 0xb6, 0xea, + 0xf8, 0xf8, 0xe0, 0x88, 0x16, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x48, 0xbc, 0xf0, 0xfa, + 0xf6, 0xd0, 0xa6, 0xc4, 0xe4, 0xd2, 0x9a, 0x16, + 0x0, 0x0, 0x0, 0x5e, 0xb8, 0xe0, 0xdc, 0xb8, + 0xbc, 0xec, 0xf0, 0xda, 0x46, 0x0, 0x0, 0x0, + 0x4, 0x54, 0xbe, 0xf0, 0xfa, 0xfc, 0xf6, 0xd6, + 0x80, 0x1a, 0x0, 0x0, 0x0, 0x64, 0xbc, 0xd, + 0xff, 0xff, 0xff, 0x83, 0xf4, 0xb2, 0x4e, 0x0, + 0x0, 0x6a, 0xbe, 0xe2, 0xde, 0xb6, 0x56, 0x0, + 0x10, 0x98, 0xd2, 0xea, 0xd6, 0xa0, 0x24, 0x0, + 0x0, 0x5e, 0xba, 0xe0, 0xe6, 0xc4, 0x78, 0x0, + 0x0, 0x4e, 0xb2, 0xdc, 0xe8, 0xca, 0x86, 0x0, + 0x4c, 0xb2, 0xdc, 0xde, 0xb4, 0x52, 0x0, 0x38, + 0xa8, 0xd8, 0xd0, 0x92, 0x6, 0x2, 0x8e, 0xce, + 0xea, 0xd4, 0x9a, 0x18, 0x0, 0x3a, 0xaa, 0xda, + 0xea, 0xd8, 0xa4, 0x2e, 0xa, 0x92, 0xd0, 0xea, + 0xe2, 0xbe, 0x68, 0x0, 0x72, 0xc2, 0xe4, 0xe4, + 0xc2, 0x74, 0x0, 0x0, 0x4e, 0xb2, 0xde, 0xea, + 0xd0, 0x94, 0xa, 0x0, 0x86, 0xca, 0xe8, 0xea, + 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xd4, 0x9c, + 0x1c, 0x0, 0x0, 0x0, 0x88, 0x73, 0xff, 0xff, + 0xcb, 0xf2, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, + 0xfb, 0xff, 0x2f, 0x2e, 0x0, 0x0, 0x0, 0x0, + 0xfa, 0xdb, 0xff, 0xff, 0x5d, 0x68, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xb8, 0x95, 0xc3, 0xc3, 0x75, 0x49, 0xc3, + 0xeb, 0xe3, 0xb3, 0x39, 0xe2, 0x20, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x7a, 0xfe, 0x7d, 0xd1, 0xeb, + 0xdf, 0x93, 0xb, 0xad, 0xc3, 0xc3, 0x37, 0x32, + 0x0, 0x0, 0x0, 0xb8, 0x95, 0xc3, 0xc3, 0x79, + 0x43, 0xc9, 0xeb, 0x7b, 0x74, 0x0, 0x0, 0xc, + 0xb2, 0x11, 0x89, 0xcf, 0xe9, 0xed, 0xd9, 0xa9, + 0x3f, 0xf2, 0x40, 0x0, 0x0, 0xc4, 0x9d, 0xc5, + 0xff, 0xff, 0xff, 0xdb, 0xc3, 0x83, 0xa0, 0x0, + 0x0, 0xca, 0xa1, 0xc3, 0xc3, 0x8d, 0xae, 0x0, + 0x28, 0x2f, 0xc3, 0xc3, 0xc3, 0x4f, 0x52, 0x0, + 0x0, 0x90, 0x97, 0xc3, 0xc3, 0xaf, 0xfc, 0xe, + 0x0, 0xc6, 0x83, 0xc3, 0xc3, 0xbb, 0xb, 0x0, + 0x7c, 0x83, 0xc3, 0xc3, 0x89, 0xc6, 0x0, 0xa6, + 0x6b, 0xc3, 0xc3, 0x17, 0x3c, 0x22, 0xb, 0xc1, + 0xc3, 0xc3, 0x3f, 0x1c, 0x0, 0x40, 0x73, 0xc3, + 0xc3, 0xc3, 0x5b, 0xb0, 0x64, 0x21, 0xc1, 0xc3, + 0xc3, 0xa1, 0x84, 0x0, 0xaa, 0xa9, 0xc3, 0xc3, + 0xab, 0xfc, 0x10, 0x0, 0xd0, 0x85, 0xc3, 0xc3, + 0xc3, 0x27, 0xa, 0x0, 0xee, 0xbb, 0xc3, 0xc3, + 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0x41, + 0x40, 0x0, 0x0, 0x0, 0x98, 0x7b, 0xff, 0xff, + 0xc7, 0xee, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, + 0xfb, 0xff, 0x2f, 0x2e, 0x0, 0x0, 0x0, 0x0, + 0xf6, 0xd7, 0xff, 0xff, 0x67, 0x7c, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xe0, 0xc3, 0xff, 0xff, 0xcf, 0xf7, 0xff, + 0xff, 0xff, 0xff, 0xf3, 0x49, 0xba, 0x0, 0x0, + 0x0, 0x0, 0x38, 0xfe, 0xb1, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xbb, 0xfb, 0xff, 0xff, 0x49, 0x4c, + 0x0, 0x0, 0x0, 0xe0, 0xc3, 0xff, 0xff, 0xb9, + 0xeb, 0xff, 0xff, 0x75, 0x8c, 0x0, 0x0, 0x7c, + 0x23, 0xd9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xfb, 0x73, 0xec, 0x10, 0x0, 0xdc, 0xcd, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xad, 0xbe, 0x0, + 0x0, 0xec, 0xd3, 0xff, 0xff, 0xbb, 0xd8, 0x0, + 0x3e, 0x3f, 0xff, 0xff, 0xff, 0x67, 0x76, 0x0, + 0x0, 0x98, 0x87, 0xff, 0xff, 0xff, 0x2b, 0x4e, + 0xc, 0xfc, 0xd9, 0xff, 0xff, 0xc1, 0xd6, 0x0, + 0x86, 0x7b, 0xff, 0xff, 0xd7, 0xfa, 0x6, 0xf4, + 0xc1, 0xff, 0xff, 0x69, 0x96, 0x64, 0x4b, 0xff, + 0xff, 0xf7, 0xf, 0x1c, 0x0, 0x40, 0x1d, 0xeb, + 0xff, 0xff, 0xcf, 0xfe, 0xe8, 0x97, 0xff, 0xff, + 0xff, 0x5d, 0x84, 0x0, 0xb4, 0x9f, 0xff, 0xff, + 0xff, 0x2d, 0x54, 0x1a, 0xfe, 0xe3, 0xff, 0xff, + 0xd7, 0xe6, 0xa, 0x0, 0xfc, 0xf5, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x57, + 0x4c, 0x0, 0x0, 0x0, 0xa2, 0x7b, 0xff, 0xff, + 0xc7, 0xea, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, + 0xfb, 0xff, 0x2f, 0x2e, 0x0, 0x0, 0x0, 0x0, + 0xf4, 0xd7, 0xff, 0xff, 0x67, 0x86, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xea, 0xc3, 0xff, 0xff, 0xff, 0xfd, 0xd9, + 0xe5, 0xff, 0xff, 0xff, 0xdb, 0x5, 0x2e, 0x0, + 0x0, 0x0, 0xb0, 0x6b, 0xff, 0xff, 0xff, 0xf7, + 0xcf, 0xe9, 0xff, 0xff, 0xff, 0xff, 0x49, 0x54, + 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x57, 0x64, 0x0, 0x0, 0xe2, + 0xad, 0xff, 0xff, 0xf7, 0xa7, 0x9b, 0xe5, 0xff, + 0xff, 0xf7, 0x2f, 0x54, 0x0, 0xc6, 0xa1, 0xcb, + 0xff, 0xff, 0xff, 0xdf, 0xcb, 0x89, 0xa2, 0x0, + 0x0, 0xf4, 0xd3, 0xff, 0xff, 0xbb, 0xe2, 0x0, + 0x46, 0x3f, 0xff, 0xff, 0xff, 0x67, 0x80, 0x0, + 0x0, 0x5a, 0x2d, 0xfd, 0xff, 0xff, 0x79, 0xa6, + 0x48, 0x25, 0xff, 0xff, 0xff, 0x75, 0xaa, 0x0, + 0x52, 0x31, 0xff, 0xff, 0xf9, 0xf, 0x50, 0xd, + 0xf5, 0xff, 0xff, 0xad, 0xe6, 0xaa, 0x81, 0xff, + 0xff, 0xcb, 0xf8, 0x4, 0x0, 0x8, 0xd8, 0x73, + 0xff, 0xff, 0xff, 0x55, 0x19, 0xf1, 0xff, 0xff, + 0xb9, 0xfe, 0x2e, 0x0, 0x78, 0x45, 0xff, 0xff, + 0xff, 0x7d, 0xb0, 0x68, 0x3f, 0xff, 0xff, 0xff, + 0x8b, 0xca, 0x0, 0x0, 0xf8, 0xef, 0xfb, 0xfb, + 0xfb, 0xfb, 0xfb, 0xff, 0xff, 0xff, 0xf3, 0x2d, + 0x38, 0x0, 0x0, 0x0, 0xc2, 0x87, 0xff, 0xff, + 0xbd, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, + 0xfb, 0xff, 0x2f, 0x2e, 0x0, 0x0, 0x0, 0x0, + 0xec, 0xcd, 0xff, 0xff, 0x73, 0xaa, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x48, 0xa6, 0xd0, 0xd0, + 0x9e, 0x42, 0x2, 0x0, 0x2, 0x18, 0x1a, 0x18, + 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xea, 0xc3, 0xff, 0xff, 0xf3, 0x49, 0xfe, + 0xfe, 0xa5, 0xff, 0xff, 0xff, 0x5d, 0x82, 0x0, + 0x0, 0x4, 0xf8, 0xcb, 0xff, 0xff, 0xef, 0x33, + 0xfc, 0x9, 0xaf, 0xff, 0xff, 0xff, 0x49, 0x54, + 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xff, + 0xbb, 0x77, 0x75, 0x1d, 0x30, 0x0, 0x0, 0xf8, + 0xe9, 0xff, 0xff, 0x8f, 0xfc, 0xea, 0x39, 0xff, + 0xff, 0xff, 0x7d, 0x5c, 0x0, 0x6a, 0xc4, 0xd, + 0xff, 0xff, 0xff, 0x83, 0xf4, 0xb8, 0x52, 0x0, + 0x0, 0xf4, 0xd3, 0xff, 0xff, 0xbb, 0xe2, 0x0, + 0x46, 0x3f, 0xff, 0xff, 0xff, 0x67, 0x80, 0x0, + 0x0, 0x10, 0xfc, 0xcd, 0xff, 0xff, 0xb5, 0xea, + 0x9c, 0x73, 0xff, 0xff, 0xf7, 0x19, 0x44, 0x0, + 0x12, 0xfe, 0xe3, 0xff, 0xff, 0x4d, 0xb8, 0x5f, + 0xff, 0xff, 0xff, 0xe7, 0xfe, 0xe2, 0xad, 0xff, + 0xff, 0x93, 0xc8, 0x0, 0x0, 0x0, 0x3e, 0xfe, + 0xc9, 0xff, 0xff, 0xc3, 0x8d, 0xff, 0xff, 0xf3, + 0x2d, 0x8a, 0x0, 0x0, 0x1e, 0xfe, 0xdb, 0xff, + 0xff, 0xbf, 0xf4, 0xc6, 0x8f, 0xff, 0xff, 0xfd, + 0x2d, 0x60, 0x0, 0x0, 0xd2, 0xfc, 0xfe, 0xfe, + 0xfe, 0xfe, 0x97, 0xff, 0xff, 0xff, 0x6d, 0xe4, + 0x10, 0x0, 0x26, 0x98, 0xfe, 0xbb, 0xff, 0xff, + 0x95, 0xb8, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, + 0xfb, 0xff, 0x2f, 0x2e, 0x0, 0x0, 0x0, 0x0, + 0xce, 0xa7, 0xff, 0xff, 0xa9, 0xfc, 0x8c, 0x1e, + 0x0, 0x0, 0x0, 0x86, 0x9, 0x7d, 0xb7, 0xb1, + 0x77, 0xb, 0xbc, 0x1c, 0x26, 0xd, 0x39, 0xb, + 0xf2, 0x2e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcb, 0xfa, 0x20, + 0x74, 0x23, 0xfb, 0xff, 0xff, 0x9f, 0xc6, 0x0, + 0x0, 0x1e, 0xf, 0xfb, 0xff, 0xff, 0xa5, 0xec, + 0x14, 0xa6, 0x5f, 0xff, 0xff, 0xff, 0x49, 0x54, + 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xd9, + 0xfe, 0xba, 0x74, 0x46, 0x8, 0x0, 0x0, 0xf8, + 0xeb, 0xff, 0xff, 0xb3, 0x5, 0xea, 0xfe, 0x41, + 0x43, 0x43, 0x25, 0x50, 0x0, 0x0, 0x6, 0xd, + 0xff, 0xff, 0xff, 0x83, 0xa6, 0x0, 0x0, 0x0, + 0x0, 0xf4, 0xd3, 0xff, 0xff, 0xbb, 0xe2, 0x0, + 0x46, 0x3f, 0xff, 0xff, 0xff, 0x67, 0x80, 0x0, + 0x0, 0x0, 0xbc, 0x83, 0xff, 0xff, 0xe9, 0xfe, + 0xe6, 0xaf, 0xff, 0xff, 0xbd, 0xf6, 0x6, 0x0, + 0x0, 0xe6, 0xb1, 0xff, 0xff, 0x83, 0xf4, 0xa5, + 0xff, 0xff, 0xff, 0xff, 0x41, 0xfc, 0xd7, 0xff, + 0xff, 0x55, 0x76, 0x0, 0x0, 0x0, 0x0, 0xa2, + 0x3d, 0xf9, 0xff, 0xff, 0xf1, 0xff, 0xff, 0x89, + 0xe8, 0x10, 0x0, 0x0, 0x0, 0xd0, 0x91, 0xff, + 0xff, 0xf5, 0xd, 0xfc, 0xcf, 0xff, 0xff, 0xcb, + 0xfc, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, + 0xda, 0x5d, 0xfd, 0xff, 0xff, 0xa7, 0xfe, 0x3a, + 0x0, 0x0, 0x70, 0x51, 0xbb, 0xff, 0xff, 0xef, + 0x2d, 0x68, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, + 0xfb, 0xff, 0x2f, 0x2e, 0x0, 0x0, 0x0, 0x0, + 0x7e, 0x3d, 0xf5, 0xff, 0xff, 0xb3, 0x45, 0x5a, + 0x0, 0x0, 0x30, 0xfe, 0xbb, 0xff, 0xff, 0xff, + 0xff, 0xdd, 0x43, 0xee, 0xca, 0x4f, 0xff, 0xfb, + 0x5b, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcb, 0xee, 0x0, + 0xc, 0xfc, 0xd7, 0xff, 0xff, 0xbf, 0xe4, 0x0, + 0x0, 0x40, 0x41, 0xff, 0xff, 0xff, 0x6f, 0xa2, + 0x0, 0x76, 0x5f, 0xff, 0xff, 0xff, 0x49, 0x54, + 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcb, + 0xf2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe2, + 0xad, 0xff, 0xff, 0xff, 0xe7, 0xb1, 0x7b, 0x2d, + 0xfc, 0xac, 0x38, 0xc, 0x0, 0x0, 0x6, 0xd, + 0xff, 0xff, 0xff, 0x83, 0xa6, 0x0, 0x0, 0x0, + 0x0, 0xf4, 0xd3, 0xff, 0xff, 0xbb, 0xe2, 0x0, + 0x46, 0x3f, 0xff, 0xff, 0xff, 0x67, 0x80, 0x0, + 0x0, 0x0, 0x56, 0x27, 0xfb, 0xff, 0xff, 0x41, + 0xfe, 0xe3, 0xff, 0xff, 0x6f, 0xa4, 0x0, 0x0, + 0x0, 0xa2, 0x77, 0xff, 0xff, 0xb1, 0xfe, 0xdf, + 0xff, 0xd1, 0xff, 0xff, 0x8d, 0xf, 0xf9, 0xff, + 0xf5, 0xb, 0x28, 0x0, 0x0, 0x0, 0x0, 0x1a, + 0xf4, 0x9b, 0xff, 0xff, 0xff, 0xff, 0xd9, 0x9, + 0x52, 0x0, 0x0, 0x0, 0x0, 0x64, 0x31, 0xff, + 0xff, 0xff, 0x5f, 0x21, 0xfb, 0xff, 0xff, 0x7f, + 0xba, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa2, + 0x2d, 0xed, 0xff, 0xff, 0xd5, 0xf, 0x72, 0x0, + 0x0, 0x0, 0x9e, 0x8d, 0xff, 0xff, 0xeb, 0x43, + 0xea, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, + 0xfb, 0xff, 0x2f, 0x2e, 0x0, 0x0, 0x0, 0x0, + 0x1a, 0xf2, 0x4d, 0xed, 0xff, 0xff, 0x7b, 0x84, + 0x0, 0x0, 0x92, 0x5f, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xf5, 0x85, 0x4d, 0xcb, 0xff, 0xff, + 0x39, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcb, 0xee, 0x0, + 0x0, 0xf0, 0xc5, 0xff, 0xff, 0xcd, 0xec, 0x0, + 0x0, 0x58, 0x51, 0xff, 0xff, 0xff, 0x59, 0x7a, + 0x0, 0x76, 0x5f, 0xff, 0xff, 0xff, 0x49, 0x54, + 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcb, + 0xee, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78, + 0x19, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, + 0xbf, 0x33, 0xcc, 0x8, 0x0, 0x0, 0x6, 0xd, + 0xff, 0xff, 0xff, 0x83, 0xa6, 0x0, 0x0, 0x0, + 0x0, 0xf4, 0xd3, 0xff, 0xff, 0xbb, 0xe2, 0x0, + 0x46, 0x3f, 0xff, 0xff, 0xff, 0x67, 0x80, 0x0, + 0x0, 0x0, 0xc, 0xfa, 0xc9, 0xff, 0xff, 0x89, + 0x35, 0xff, 0xff, 0xf5, 0x13, 0x3e, 0x0, 0x0, + 0x0, 0x4e, 0x2d, 0xff, 0xff, 0xd9, 0x35, 0xff, + 0xff, 0x7d, 0xd5, 0xff, 0xcb, 0x4f, 0xff, 0xff, + 0xc7, 0xf6, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x94, 0x17, 0xf7, 0xff, 0xff, 0xff, 0x6b, 0xe4, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x12, 0xfc, 0xcf, + 0xff, 0xff, 0xa5, 0x75, 0xff, 0xff, 0xf9, 0x21, + 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x64, 0x9, + 0xcd, 0xff, 0xff, 0xf3, 0x37, 0xb0, 0x4, 0x0, + 0x0, 0x0, 0x8c, 0x89, 0xff, 0xff, 0xff, 0xa7, + 0xfe, 0x34, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, + 0xfb, 0xff, 0x2f, 0x2e, 0x0, 0x0, 0x0, 0x0, + 0x46, 0x5, 0xb5, 0xff, 0xff, 0xff, 0x77, 0x74, + 0x0, 0x0, 0xc4, 0xaf, 0xff, 0xf9, 0x5d, 0x41, + 0xb3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd3, + 0xfe, 0x16, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcb, 0xee, 0x0, + 0x0, 0xf4, 0xcb, 0xff, 0xff, 0xcb, 0xec, 0x0, + 0x0, 0x52, 0x4f, 0xff, 0xff, 0xff, 0x5d, 0x82, + 0x0, 0x76, 0x5f, 0xff, 0xff, 0xff, 0x49, 0x54, + 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcb, + 0xee, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, + 0x92, 0xfe, 0x4d, 0xa3, 0xd9, 0xff, 0xff, 0xff, + 0xff, 0xe9, 0x1f, 0x4c, 0x0, 0x0, 0x6, 0xd, + 0xff, 0xff, 0xff, 0x83, 0xa6, 0x0, 0x0, 0x0, + 0x0, 0xf2, 0xd3, 0xff, 0xff, 0xbb, 0xe6, 0x0, + 0x46, 0x3f, 0xff, 0xff, 0xff, 0x67, 0x80, 0x0, + 0x0, 0x0, 0x0, 0xb6, 0x7d, 0xff, 0xff, 0xc3, + 0x7f, 0xff, 0xff, 0xb9, 0xf2, 0x4, 0x0, 0x0, + 0x0, 0x10, 0xfe, 0xe1, 0xff, 0xfb, 0x8b, 0xff, + 0xff, 0x29, 0x95, 0xff, 0xfb, 0x8d, 0xff, 0xff, + 0x8f, 0xc2, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe, + 0xe6, 0x83, 0xff, 0xff, 0xff, 0xff, 0xc5, 0xfe, + 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbe, 0x81, + 0xff, 0xff, 0xe1, 0xb9, 0xff, 0xff, 0xbf, 0xf8, + 0xa, 0x0, 0x0, 0x0, 0x0, 0x30, 0xfa, 0x9b, + 0xff, 0xff, 0xff, 0x6d, 0xe4, 0x16, 0x0, 0x0, + 0x0, 0x0, 0x52, 0xfe, 0x43, 0xeb, 0xff, 0xff, + 0x67, 0x94, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, + 0xfb, 0xff, 0x2f, 0x2e, 0x0, 0x0, 0x0, 0x0, + 0xac, 0x7b, 0xff, 0xff, 0xdf, 0x37, 0xfe, 0x42, + 0x0, 0x0, 0xb6, 0xab, 0xef, 0xc1, 0xf8, 0x9e, + 0xfe, 0x7d, 0xf7, 0xff, 0xff, 0xff, 0xef, 0x43, + 0xae, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcb, 0xf2, 0x0, + 0x2a, 0xfe, 0xe3, 0xff, 0xff, 0xb7, 0xde, 0x0, + 0x0, 0x34, 0x33, 0xff, 0xff, 0xff, 0x7d, 0xc4, + 0x0, 0x82, 0x5f, 0xff, 0xff, 0xff, 0x49, 0x54, + 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcb, + 0xee, 0x0, 0x0, 0x0, 0x0, 0x0, 0x32, 0x9, + 0x15, 0x15, 0x13, 0xfc, 0xfe, 0x27, 0x9f, 0xff, + 0xff, 0xff, 0x7b, 0x8c, 0x0, 0x0, 0x4, 0xd, + 0xff, 0xff, 0xff, 0x83, 0xac, 0x0, 0x0, 0x0, + 0x0, 0xee, 0xcf, 0xff, 0xff, 0xc3, 0xf2, 0x0, + 0x56, 0x3f, 0xff, 0xff, 0xff, 0x67, 0x80, 0x0, + 0x0, 0x0, 0x0, 0x50, 0x21, 0xfb, 0xff, 0xf3, + 0xb7, 0xff, 0xff, 0x6b, 0xa0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xe2, 0xad, 0xff, 0xff, 0xe9, 0xff, + 0xd3, 0xfe, 0x47, 0xff, 0xff, 0xe9, 0xff, 0xff, + 0x4f, 0x6e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, + 0x29, 0xf3, 0xff, 0xff, 0xfb, 0xff, 0xff, 0x71, + 0xd8, 0x8, 0x0, 0x0, 0x0, 0x0, 0x54, 0x23, + 0xfb, 0xff, 0xff, 0xf3, 0xff, 0xff, 0x71, 0xa8, + 0x0, 0x0, 0x0, 0x0, 0x10, 0xdc, 0x61, 0xff, + 0xff, 0xff, 0xa7, 0xfc, 0x3a, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x1c, 0xea, 0x99, 0xff, 0xff, + 0xb1, 0xd2, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, + 0xfb, 0xff, 0x2f, 0x2e, 0x0, 0x0, 0x0, 0x0, + 0xe2, 0xc1, 0xff, 0xff, 0x85, 0xdc, 0x16, 0x0, + 0x0, 0x0, 0x74, 0xe6, 0xf4, 0x9, 0x8c, 0x0, + 0x48, 0xea, 0x2b, 0x87, 0xa3, 0x8d, 0x29, 0xda, + 0x1c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xea, 0xc3, 0xff, 0xff, 0xdb, 0x5, 0xd8, + 0xf2, 0x59, 0xff, 0xff, 0xff, 0x8b, 0xb0, 0x0, + 0x0, 0x14, 0xfe, 0xef, 0xff, 0xff, 0xcb, 0x5, + 0xd6, 0xf8, 0x77, 0xff, 0xff, 0xff, 0x49, 0x54, + 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcb, + 0xee, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38, 0x63, + 0xff, 0xff, 0xfb, 0x17, 0xae, 0xb4, 0xfe, 0xeb, + 0xff, 0xff, 0x91, 0xa0, 0x0, 0x0, 0x2, 0x5, + 0xff, 0xff, 0xff, 0x8d, 0xf2, 0x80, 0x30, 0x0, + 0x0, 0xe0, 0xbb, 0xff, 0xff, 0xe9, 0x9, 0xda, + 0xf6, 0x5b, 0xff, 0xff, 0xff, 0x67, 0x80, 0x0, + 0x0, 0x0, 0x0, 0xa, 0xfa, 0xc5, 0xff, 0xff, + 0xf3, 0xff, 0xf3, 0xf, 0x3a, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x9c, 0x73, 0xff, 0xff, 0xff, 0xff, + 0x93, 0xd2, 0xfe, 0xe7, 0xff, 0xff, 0xff, 0xf3, + 0x9, 0x24, 0x0, 0x0, 0x0, 0x0, 0x2e, 0xfe, + 0xb7, 0xff, 0xff, 0xdd, 0x99, 0xff, 0xff, 0xeb, + 0x1d, 0x74, 0x0, 0x0, 0x0, 0x0, 0xc, 0xf8, + 0xc1, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x13, 0x40, + 0x0, 0x0, 0x0, 0x2, 0xa6, 0x2f, 0xef, 0xff, + 0xff, 0xd5, 0xf, 0xee, 0xe0, 0xe0, 0xcc, 0x9a, + 0x32, 0x0, 0x0, 0x0, 0xac, 0x7d, 0xff, 0xff, + 0xc5, 0xe6, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, + 0xfb, 0xff, 0x2f, 0x2e, 0x0, 0x0, 0x0, 0x0, + 0xf2, 0xd5, 0xff, 0xff, 0x69, 0x92, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xe, 0x5a, 0x9e, 0xba, 0xa2, 0x5e, 0xe, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xea, 0xc3, 0xff, 0xff, 0xff, 0xcf, 0x8b, + 0x9f, 0xf1, 0xff, 0xff, 0xfb, 0x2f, 0x5e, 0x0, + 0x0, 0x0, 0xe6, 0xa7, 0xff, 0xff, 0xff, 0xc7, + 0x8d, 0xa5, 0xf7, 0xff, 0xff, 0xff, 0x49, 0x54, + 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcb, + 0xee, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38, 0x19, + 0xf3, 0xff, 0xff, 0xc1, 0x51, 0x3f, 0x8b, 0xff, + 0xff, 0xff, 0x67, 0x7c, 0x0, 0x0, 0x0, 0xfe, + 0xeb, 0xff, 0xff, 0xe9, 0x99, 0x5f, 0x8c, 0x0, + 0x0, 0xb2, 0x89, 0xff, 0xff, 0xff, 0xcb, 0x91, + 0xa9, 0xf5, 0xff, 0xff, 0xff, 0x67, 0x80, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xb2, 0x79, 0xff, 0xff, + 0xff, 0xff, 0xb5, 0xf0, 0x4, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x4a, 0x29, 0xff, 0xff, 0xff, 0xff, + 0x45, 0x70, 0xe4, 0xab, 0xff, 0xff, 0xff, 0xc3, + 0xf4, 0x0, 0x0, 0x0, 0x0, 0x4, 0xc6, 0x5d, + 0xff, 0xff, 0xff, 0x73, 0x21, 0xf3, 0xff, 0xff, + 0xa7, 0xf8, 0x22, 0x0, 0x0, 0x0, 0x0, 0xaa, + 0x71, 0xff, 0xff, 0xff, 0xff, 0xb5, 0xf0, 0x4, + 0x0, 0x0, 0x0, 0x18, 0xb, 0xcf, 0xff, 0xff, + 0xff, 0xcd, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0x63, + 0x74, 0x0, 0x0, 0x0, 0x9e, 0x7b, 0xff, 0xff, + 0xc7, 0xec, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, + 0xfb, 0xff, 0x2f, 0x2e, 0x0, 0x0, 0x0, 0x0, + 0xf6, 0xd7, 0xff, 0xff, 0x67, 0x82, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xea, 0xc3, 0xff, 0xff, 0xfb, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x95, 0xf4, 0x10, 0x0, + 0x0, 0x0, 0x76, 0x27, 0xeb, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0x49, 0x54, + 0x0, 0x0, 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcb, + 0xee, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0xe4, + 0x73, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xc7, 0x5, 0x34, 0x0, 0x0, 0x0, 0xe4, + 0xad, 0xff, 0xff, 0xff, 0xff, 0xa9, 0xc8, 0x0, + 0x0, 0x5a, 0x25, 0xef, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xe7, 0xf7, 0xff, 0xff, 0x67, 0x80, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x4a, 0x1d, 0xf9, 0xff, + 0xff, 0xff, 0x65, 0x9a, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xe, 0xfe, 0xdd, 0xff, 0xff, 0xe5, + 0xfe, 0x1e, 0x90, 0x63, 0xff, 0xff, 0xff, 0x8b, + 0xbc, 0x0, 0x0, 0x0, 0x0, 0x60, 0xf, 0xe1, + 0xff, 0xff, 0xdf, 0x5, 0xf0, 0x9d, 0xff, 0xff, + 0xfd, 0x4b, 0xb2, 0x0, 0x0, 0x0, 0x0, 0x40, + 0x13, 0xf5, 0xff, 0xff, 0xff, 0x63, 0x98, 0x0, + 0x0, 0x0, 0x0, 0x2c, 0x39, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x89, + 0xa0, 0x0, 0x0, 0x0, 0x92, 0x7b, 0xff, 0xff, + 0xc7, 0xee, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, + 0xfb, 0xff, 0x2f, 0x2e, 0x0, 0x0, 0x0, 0x0, + 0xf8, 0xd7, 0xff, 0xff, 0x65, 0x74, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcb, 0x9f, 0xfb, + 0xff, 0xff, 0xf3, 0x8f, 0xfe, 0x5e, 0x0, 0x0, + 0x0, 0x0, 0xc, 0xd0, 0x3d, 0xcd, 0xff, 0xff, + 0xff, 0xdd, 0x87, 0xff, 0xff, 0xff, 0x49, 0x54, + 0x0, 0x0, 0x0, 0xce, 0xc3, 0xff, 0xff, 0xcb, + 0xd6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, + 0xfa, 0x5d, 0xd5, 0xff, 0xff, 0xff, 0xff, 0xed, + 0x99, 0x11, 0x96, 0x0, 0x0, 0x0, 0x0, 0x7a, + 0x21, 0xbd, 0xff, 0xff, 0xff, 0xb9, 0xba, 0x0, + 0x0, 0xc, 0xd8, 0x4b, 0xdb, 0xff, 0xff, 0xff, + 0xcf, 0x39, 0xdb, 0xff, 0xff, 0x67, 0x60, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x8, 0xf4, 0xc1, 0xff, + 0xff, 0xf1, 0xd, 0x36, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xd6, 0xa9, 0xff, 0xff, 0xa7, + 0xdc, 0x0, 0x36, 0xf, 0xf5, 0xff, 0xff, 0x49, + 0x68, 0x0, 0x0, 0x0, 0x0, 0x60, 0x95, 0xff, + 0xff, 0xff, 0x77, 0xc8, 0x6c, 0x25, 0xf5, 0xff, + 0xff, 0xd5, 0x7, 0x0, 0x0, 0x0, 0x0, 0x4, + 0xf6, 0xb3, 0xff, 0xff, 0xed, 0x9, 0x32, 0x0, + 0x0, 0x0, 0x0, 0x2a, 0x39, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x89, + 0x8a, 0x0, 0x0, 0x0, 0x78, 0x65, 0xff, 0xff, + 0xd1, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, + 0xfb, 0xff, 0x2f, 0x2e, 0x0, 0x0, 0x0, 0x8, + 0xfc, 0xe3, 0xff, 0xff, 0x4d, 0x56, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcb, 0xfe, 0x21, + 0x51, 0x49, 0xf, 0xe8, 0x58, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x18, 0xa4, 0xfc, 0x2d, 0x53, + 0x3f, 0xfe, 0x5f, 0xff, 0xff, 0xff, 0x49, 0x54, + 0x0, 0x0, 0x0, 0x90, 0xfe, 0xfe, 0xfe, 0xfe, + 0x98, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x2e, 0xb6, 0xfe, 0x25, 0x4f, 0x55, 0x39, 0xfe, + 0xe2, 0x64, 0x4, 0x0, 0x0, 0x0, 0x0, 0xa, + 0x8e, 0xfe, 0x25, 0x51, 0x43, 0x5, 0x84, 0x0, + 0x0, 0x0, 0x22, 0xbc, 0xfe, 0x39, 0x55, 0x33, + 0xfe, 0xe4, 0xfe, 0xfe, 0xfe, 0xfe, 0x36, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0xfe, 0xfe, + 0xfe, 0xfe, 0xd6, 0x2, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x72, 0xfe, 0xfe, 0xfe, 0xfe, + 0x70, 0x0, 0x4, 0xde, 0xfe, 0xfe, 0xfe, 0xfe, + 0x20, 0x0, 0x0, 0x0, 0x0, 0x5e, 0xfe, 0xfe, + 0xfe, 0xfe, 0xfe, 0x42, 0xc, 0xe0, 0xfe, 0xfe, + 0xfe, 0xfe, 0xa8, 0x0, 0x0, 0x0, 0x0, 0x1a, + 0xfc, 0xbb, 0xff, 0xff, 0xa7, 0xe8, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x16, 0xfe, 0xfe, 0xfe, 0xfe, + 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, + 0x52, 0x0, 0x0, 0x0, 0x46, 0x39, 0xff, 0xff, + 0xf1, 0x9, 0x4e, 0x0, 0x0, 0x0, 0x0, 0xfe, + 0xfb, 0xff, 0x2f, 0x2e, 0x0, 0x0, 0x0, 0x66, + 0x1b, 0xfb, 0xff, 0xfd, 0x1f, 0x2a, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcb, 0xee, 0x2e, + 0x48, 0x44, 0x22, 0x4, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x34, 0x48, + 0x3c, 0x84, 0x5f, 0xff, 0xff, 0xff, 0x49, 0x54, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xc, 0x2e, 0x4e, 0x56, 0x3a, 0x16, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xc, 0x30, 0x46, 0x3e, 0x1c, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x16, 0x3a, 0x48, 0x38, + 0x14, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xa0, 0xee, + 0x3d, 0xfb, 0xff, 0xff, 0x51, 0x86, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x16, 0xfe, 0xcd, 0xff, + 0xff, 0x83, 0xfc, 0x40, 0x0, 0x0, 0x0, 0xfe, + 0xfb, 0xff, 0x2f, 0x2e, 0x0, 0x0, 0x50, 0xfe, + 0x99, 0xff, 0xff, 0xbb, 0xfa, 0x8, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xea, 0xc3, 0xff, 0xff, 0xcb, 0xee, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x76, 0x5f, 0xff, 0xff, 0xff, 0x49, 0x54, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xa8, 0x73, 0xb5, + 0xef, 0xff, 0xff, 0xd5, 0xfe, 0x26, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xaa, 0x4d, 0xf7, + 0xff, 0xff, 0x73, 0x50, 0x0, 0x0, 0x0, 0xfe, + 0xfb, 0xff, 0x2f, 0x22, 0x0, 0x0, 0x68, 0x87, + 0xff, 0xff, 0xef, 0x3b, 0x90, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xe6, 0xc3, 0xff, 0xff, 0xcb, 0xea, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x72, 0x5f, 0xff, 0xff, 0xff, 0x49, 0x50, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xe2, 0xc1, 0xff, + 0xff, 0xff, 0xfb, 0x55, 0xb6, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x24, 0xe8, 0x41, + 0xc7, 0xfd, 0x37, 0x50, 0x0, 0x0, 0x0, 0xee, + 0x47, 0x49, 0xd, 0x12, 0x0, 0x0, 0x68, 0x4f, + 0xfd, 0xbd, 0x35, 0xda, 0x18, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xc6, 0xb1, 0xe9, 0xe9, 0xb7, 0xcc, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x52, 0x57, 0xe9, 0xe9, 0xe9, 0x41, 0x38, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xd8, 0xd7, 0xff, + 0xff, 0xdf, 0x63, 0xf2, 0x28, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1c, 0x9e, + 0xfa, 0x29, 0xf6, 0x16, 0x0, 0x0, 0x0, 0x1e, + 0x3a, 0x3c, 0x22, 0x2, 0x0, 0x0, 0x24, 0xf4, + 0x29, 0xfa, 0x92, 0x14, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x7c, 0xe2, 0xf8, 0xf8, 0xe4, 0x82, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x2a, 0xd0, 0xf4, 0xfc, 0xf4, 0xcc, 0x1c, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xaa, 0x9, 0x2f, + 0x17, 0xfe, 0xc6, 0x32, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xe, 0xe, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe, + 0xe, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x16, + 0x16, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +}; +const uint16_t FontBitmap::glyphWidth[] = { + 8, 9, 10, 16, 16, 20, 18, 6, + 10, 10, 13, 15, 8, 11, 9, 11, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 9, 9, 14, 16, 14, 14, + 23, 17, 17, 17, 18, 16, 16, 18, + 19, 9, 16, 18, 15, 23, 19, 19, + 18, 19, 18, 17, 17, 18, 17, 23, + 17, 17, 16, 9, 12, 9, 13, 13, + 10, 15, 16, 14, 16, 15, 11, 16, + 16, 8, 8, 15, 8, 23, 16, 16, + 16, 16, 11, 14, 10, 16, 14, 20, + 14, 14, 14, 10, 8, 10, 18, +}; +const uint16_t FontBitmap::yoffset[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, + 102, 102, 102, 102, 102, 102, 102, 102, + 102, 102, 102, 102, 102, 102, 102, 136, + 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, + 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, +}; diff --git a/cmds/screenrecord/Overlay.cpp b/cmds/screenrecord/Overlay.cpp new file mode 100644 index 0000000..96e25b8 --- /dev/null +++ b/cmds/screenrecord/Overlay.cpp @@ -0,0 +1,401 @@ +/* + * Copyright 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define LOG_TAG "ScreenRecord" +//#define LOG_NDEBUG 0 +#include <utils/Log.h> + +#include <gui/BufferQueue.h> +#include <gui/GraphicBufferAlloc.h> +#include <gui/Surface.h> +#include <cutils/properties.h> +#include <utils/misc.h> + +#include <GLES2/gl2.h> +#include <GLES2/gl2ext.h> + +#include <stdlib.h> +#include <assert.h> + +#include "screenrecord.h" +#include "Overlay.h" +#include "TextRenderer.h" + +using namespace android; + +// System properties to look up and display on the info screen. +const char* Overlay::kPropertyNames[] = { + "ro.build.description", + // includes ro.build.id, ro.build.product, ro.build.tags, ro.build.type, + // and ro.build.version.release + "ro.product.manufacturer", + "ro.product.model", + "ro.board.platform", + "ro.revision", + "dalvik.vm.heapgrowthlimit", + "dalvik.vm.heapsize", + "persist.sys.dalvik.vm.lib", + //"ro.product.cpu.abi", + //"ro.bootloader", + //"this-never-appears!", +}; + + +status_t Overlay::start(const sp<IGraphicBufferProducer>& outputSurface, + sp<IGraphicBufferProducer>* pBufferProducer) { + ALOGV("Overlay::start"); + mOutputSurface = outputSurface; + + // Grab the current monotonic time and the current wall-clock time so we + // can map one to the other. This allows the overlay counter to advance + // by the exact delay between frames, but if the wall clock gets adjusted + // we won't track it, which means we'll gradually go out of sync with the + // times in logcat. + mStartMonotonicNsecs = systemTime(CLOCK_MONOTONIC); + mStartRealtimeNsecs = systemTime(CLOCK_REALTIME); + + Mutex::Autolock _l(mMutex); + + // Start the thread. Traffic begins immediately. + run("overlay"); + + mState = INIT; + while (mState == INIT) { + mStartCond.wait(mMutex); + } + + if (mThreadResult != NO_ERROR) { + ALOGE("Failed to start overlay thread: err=%d", mThreadResult); + return mThreadResult; + } + assert(mState == RUNNING); + + ALOGV("Overlay::start successful"); + *pBufferProducer = mBufferQueue; + return NO_ERROR; +} + +status_t Overlay::stop() { + ALOGV("Overlay::stop"); + Mutex::Autolock _l(mMutex); + mState = STOPPING; + mEventCond.signal(); + return NO_ERROR; +} + +bool Overlay::threadLoop() { + Mutex::Autolock _l(mMutex); + + mThreadResult = setup_l(); + + if (mThreadResult != NO_ERROR) { + ALOGW("Aborting overlay thread"); + mState = STOPPED; + release_l(); + mStartCond.broadcast(); + return false; + } + + ALOGV("Overlay thread running"); + mState = RUNNING; + mStartCond.broadcast(); + + while (mState == RUNNING) { + mEventCond.wait(mMutex); + if (mFrameAvailable) { + ALOGV("Awake, frame available"); + processFrame_l(); + mFrameAvailable = false; + } else { + ALOGV("Awake, frame not available"); + } + } + + ALOGV("Overlay thread stopping"); + release_l(); + mState = STOPPED; + return false; // stop +} + +status_t Overlay::setup_l() { + status_t err; + + err = mEglWindow.createWindow(mOutputSurface); + if (err != NO_ERROR) { + return err; + } + mEglWindow.makeCurrent(); + + int width = mEglWindow.getWidth(); + int height = mEglWindow.getHeight(); + + glViewport(0, 0, width, height); + glDisable(GL_DEPTH_TEST); + glDisable(GL_CULL_FACE); + + // Shaders for rendering from different types of textures. + err = mTexProgram.setup(Program::PROGRAM_TEXTURE_2D); + if (err != NO_ERROR) { + return err; + } + err = mExtTexProgram.setup(Program::PROGRAM_EXTERNAL_TEXTURE); + if (err != NO_ERROR) { + return err; + } + + err = mTextRenderer.loadIntoTexture(); + if (err != NO_ERROR) { + return err; + } + mTextRenderer.setScreenSize(width, height); + + // Input side (buffers from virtual display). + glGenTextures(1, &mExtTextureName); + if (mExtTextureName == 0) { + ALOGE("glGenTextures failed: %#x", glGetError()); + return UNKNOWN_ERROR; + } + + mBufferQueue = new BufferQueue(/*new GraphicBufferAlloc()*/); + mGlConsumer = new GLConsumer(mBufferQueue, mExtTextureName, + GL_TEXTURE_EXTERNAL_OES); + mGlConsumer->setName(String8("virtual display")); + mGlConsumer->setDefaultBufferSize(width, height); + mGlConsumer->setDefaultMaxBufferCount(5); + mGlConsumer->setConsumerUsageBits(GRALLOC_USAGE_HW_TEXTURE); + + mGlConsumer->setFrameAvailableListener(this); + + return NO_ERROR; +} + + +void Overlay::release_l() { + ALOGV("Overlay::release_l"); + mOutputSurface.clear(); + mGlConsumer.clear(); + mBufferQueue.clear(); + + mTexProgram.release(); + mExtTexProgram.release(); + mEglWindow.release(); +} + +void Overlay::processFrame_l() { + float texMatrix[16]; + + mGlConsumer->updateTexImage(); + mGlConsumer->getTransformMatrix(texMatrix); + nsecs_t monotonicNsec = mGlConsumer->getTimestamp(); + nsecs_t frameNumber = mGlConsumer->getFrameNumber(); + int64_t droppedFrames = 0; + + if (mLastFrameNumber > 0) { + mTotalDroppedFrames += size_t(frameNumber - mLastFrameNumber) - 1; + } + mLastFrameNumber = frameNumber; + + mTextRenderer.setProportionalScale(35); + + if (false) { // DEBUG - full blue background + glClearColor(0.0f, 0.0f, 1.0f, 1.0f); + glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); + } + + int width = mEglWindow.getWidth(); + int height = mEglWindow.getHeight(); + if (false) { // DEBUG - draw inset + mExtTexProgram.blit(mExtTextureName, texMatrix, + 100, 100, width-200, height-200); + } else { + mExtTexProgram.blit(mExtTextureName, texMatrix, + 0, 0, width, height); + } + + glEnable(GL_BLEND); + glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); + if (false) { // DEBUG - show entire font bitmap + mTexProgram.blit(mTextRenderer.getTextureName(), Program::kIdentity, + 100, 100, width-200, height-200); + } + + char textBuf[64]; + getTimeString_l(monotonicNsec, textBuf, sizeof(textBuf)); + String8 timeStr(String8::format("%s f=%lld (%zd)", + textBuf, frameNumber, mTotalDroppedFrames)); + mTextRenderer.drawString(mTexProgram, Program::kIdentity, 0, 0, timeStr); + + glDisable(GL_BLEND); + + if (false) { // DEBUG - add red rectangle in lower-left corner + glEnable(GL_SCISSOR_TEST); + glScissor(0, 0, 200, 200); + glClearColor(1.0f, 0.0f, 0.0f, 1.0f); + glClear(GL_COLOR_BUFFER_BIT); + glDisable(GL_SCISSOR_TEST); + } + + mEglWindow.presentationTime(monotonicNsec); + mEglWindow.swapBuffers(); +} + +void Overlay::getTimeString_l(nsecs_t monotonicNsec, char* buf, size_t bufLen) { + //const char* format = "%m-%d %T"; // matches log output + const char* format = "%T"; + struct tm tm; + + // localtime/strftime is not the fastest way to do this, but a trivial + // benchmark suggests that the cost is negligible. + int64_t realTime = mStartRealtimeNsecs + + (monotonicNsec - mStartMonotonicNsecs); + time_t secs = (time_t) (realTime / 1000000000); + localtime_r(&secs, &tm); + strftime(buf, bufLen, format, &tm); + + int32_t msec = (int32_t) ((realTime % 1000000000) / 1000000); + char tmpBuf[5]; + snprintf(tmpBuf, sizeof(tmpBuf), ".%03d", msec); + strlcat(buf, tmpBuf, bufLen); +} + +// Callback; executes on arbitrary thread. +void Overlay::onFrameAvailable() { + ALOGV("Overlay::onFrameAvailable"); + Mutex::Autolock _l(mMutex); + mFrameAvailable = true; + mEventCond.signal(); +} + + +/*static*/ status_t Overlay::drawInfoPage( + const sp<IGraphicBufferProducer>& outputSurface) { + status_t err; + + EglWindow window; + err = window.createWindow(outputSurface); + if (err != NO_ERROR) { + return err; + } + window.makeCurrent(); + + int width = window.getWidth(); + int height = window.getHeight(); + glViewport(0, 0, width, height); + glDisable(GL_DEPTH_TEST); + glDisable(GL_CULL_FACE); + + // Shaders for rendering. + Program texProgram; + err = texProgram.setup(Program::PROGRAM_TEXTURE_2D); + if (err != NO_ERROR) { + return err; + } + TextRenderer textRenderer; + err = textRenderer.loadIntoTexture(); + if (err != NO_ERROR) { + return err; + } + textRenderer.setScreenSize(width, height); + + doDrawInfoPage(window, texProgram, textRenderer); + + // Destroy the surface. This causes a disconnect. + texProgram.release(); + window.release(); + + return NO_ERROR; +} + +/*static*/ void Overlay::doDrawInfoPage(const EglWindow& window, + const Program& texProgram, TextRenderer& textRenderer) { + const nsecs_t holdTime = 250000000LL; + + glClearColor(0.0f, 0.0f, 0.0f, 1.0f); + glClear(GL_COLOR_BUFFER_BIT); + + int width = window.getWidth(); + int height = window.getHeight(); + + // Draw a thin border around the screen. Some players, e.g. browser + // plugins, make it hard to see where the edges are when the device + // is using a black background, so this gives the viewer a frame of + // reference. + // + // This is a clumsy way to do it, but we're only doing it for one frame, + // and it's easier than actually drawing lines. + const int lineWidth = 4; + glEnable(GL_SCISSOR_TEST); + glClearColor(0.5f, 0.5f, 0.5f, 1.0f); + glScissor(0, 0, width, lineWidth); + glClear(GL_COLOR_BUFFER_BIT); + glScissor(0, height - lineWidth, width, lineWidth); + glClear(GL_COLOR_BUFFER_BIT); + glScissor(0, 0, lineWidth, height); + glClear(GL_COLOR_BUFFER_BIT); + glScissor(width - lineWidth, 0, lineWidth, height); + glClear(GL_COLOR_BUFFER_BIT); + glDisable(GL_SCISSOR_TEST); + + //glEnable(GL_BLEND); + //glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); + textRenderer.setProportionalScale(30); + + float xpos = 0; + float ypos = 0; + ypos = textRenderer.drawWrappedString(texProgram, xpos, ypos, + String8::format("Android screenrecord v%d.%d", + kVersionMajor, kVersionMinor)); + + // Show date/time + time_t now = time(0); + struct tm tm; + localtime_r(&now, &tm); + char timeBuf[64]; + strftime(timeBuf, sizeof(timeBuf), "%a, %d %b %Y %T %z", &tm); + String8 header("Started "); + header += timeBuf; + ypos = textRenderer.drawWrappedString(texProgram, xpos, ypos, header); + ypos += 8 * textRenderer.getScale(); // slight padding + + // Show selected system property values + for (int i = 0; i < NELEM(kPropertyNames); i++) { + char valueBuf[PROPERTY_VALUE_MAX]; + + property_get(kPropertyNames[i], valueBuf, ""); + if (valueBuf[0] == '\0') { + continue; + } + String8 str(String8::format("%s: [%s]", kPropertyNames[i], valueBuf)); + ypos = textRenderer.drawWrappedString(texProgram, xpos, ypos, str); + } + ypos += 8 * textRenderer.getScale(); // slight padding + + // Show GL info + String8 glStr("OpenGL: "); + glStr += (char*) glGetString(GL_VENDOR); + glStr += " / "; + glStr += (char*) glGetString(GL_RENDERER); + glStr += ", "; + glStr += (char*) glGetString(GL_VERSION); + ypos = textRenderer.drawWrappedString(texProgram, xpos, ypos, glStr); + + //glDisable(GL_BLEND); + + // Set a presentation time slightly in the past. This will cause the + // player to hold the frame on screen. + window.presentationTime(systemTime(CLOCK_MONOTONIC) - holdTime); + window.swapBuffers(); +} diff --git a/cmds/screenrecord/Overlay.h b/cmds/screenrecord/Overlay.h new file mode 100644 index 0000000..b8473b4 --- /dev/null +++ b/cmds/screenrecord/Overlay.h @@ -0,0 +1,157 @@ +/* + * Copyright 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef SCREENRECORD_OVERLAY_H +#define SCREENRECORD_OVERLAY_H + +#include "Program.h" +#include "TextRenderer.h" +#include "EglWindow.h" + +#include <gui/BufferQueue.h> +#include <gui/GLConsumer.h> +#include <utils/Thread.h> + +#include <EGL/egl.h> + +namespace android { + +/* + * Overlay "filter". This sits between the virtual display and the video + * encoder. + * + * Most functions run on a thread created by start(). + */ +class Overlay : public GLConsumer::FrameAvailableListener, Thread { +public: + Overlay() : Thread(false), + mThreadResult(UNKNOWN_ERROR), + mState(UNINITIALIZED), + mFrameAvailable(false), + mExtTextureName(0), + mStartMonotonicNsecs(0), + mStartRealtimeNsecs(0), + mLastFrameNumber(-1), + mTotalDroppedFrames(0) + {} + virtual ~Overlay() { assert(mState == UNINITIALIZED || mState == STOPPED); } + + // Creates a thread that performs the overlay. Pass in the surface that + // output will be sent to. + // + // This creates a dedicated thread for processing frames. + // + // Returns a reference to the producer side of a new BufferQueue that will + // be used by the virtual display. + status_t start(const sp<IGraphicBufferProducer>& outputSurface, + sp<IGraphicBufferProducer>* pBufferProducer); + + // Stops the thread and releases resources. It's okay to call this even + // if start() was never called. + status_t stop(); + + // This creates an EGL context and window surface, draws some informative + // text on it, swaps the buffer, and then tears the whole thing down. + static status_t drawInfoPage(const sp<IGraphicBufferProducer>& outputSurface); + +private: + Overlay(const Overlay&); + Overlay& operator=(const Overlay&); + + // Draw the initial info screen. + static void doDrawInfoPage(const EglWindow& window, + const Program& texRender, TextRenderer& textRenderer); + + // (overrides GLConsumer::FrameAvailableListener method) + virtual void onFrameAvailable(); + + // (overrides Thread method) + virtual bool threadLoop(); + + // One-time setup (essentially object construction on the overlay thread). + status_t setup_l(); + + // Release all resources held. + void release_l(); + + // Release EGL display, context, surface. + void eglRelease_l(); + + // Process a frame received from the virtual display. + void processFrame_l(); + + // Convert a monotonic time stamp into a string with the current time. + void getTimeString_l(nsecs_t monotonicNsec, char* buf, size_t bufLen); + + // Guards all fields below. + Mutex mMutex; + + // Initialization gate. + Condition mStartCond; + + // Thread status, mostly useful during startup. + status_t mThreadResult; + + // Overlay thread state. States advance from left to right; object may + // not be restarted. + enum { UNINITIALIZED, INIT, RUNNING, STOPPING, STOPPED } mState; + + // Event notification. Overlay thread sleeps on this until a frame + // arrives or it's time to shut down. + Condition mEventCond; + + // Set by the FrameAvailableListener callback. + bool mFrameAvailable; + + // The surface we send our output to, i.e. the video encoder's input + // surface. + sp<IGraphicBufferProducer> mOutputSurface; + + // Our queue. The producer side is passed to the virtual display, the + // consumer side feeds into our GLConsumer. + sp<BufferQueue> mBufferQueue; + + // This receives frames from the virtual display and makes them available + // as an external texture. + sp<GLConsumer> mGlConsumer; + + // EGL display / context / surface. + EglWindow mEglWindow; + + // GL rendering support. + Program mExtTexProgram; + Program mTexProgram; + + // Text rendering. + TextRenderer mTextRenderer; + + // External texture, updated by GLConsumer. + GLuint mExtTextureName; + + // Start time, used to map monotonic to wall-clock time. + nsecs_t mStartMonotonicNsecs; + nsecs_t mStartRealtimeNsecs; + + // Used for tracking dropped frames. + nsecs_t mLastFrameNumber; + size_t mTotalDroppedFrames; + + static const char* kPropertyNames[]; +}; + +}; // namespace android + +#endif /*SCREENRECORD_OVERLAY_H*/ diff --git a/cmds/screenrecord/Program.cpp b/cmds/screenrecord/Program.cpp new file mode 100644 index 0000000..a198204 --- /dev/null +++ b/cmds/screenrecord/Program.cpp @@ -0,0 +1,303 @@ +/* + * Copyright 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define LOG_TAG "ScreenRecord" +//#define LOG_NDEBUG 0 +#include <utils/Log.h> + +#include "Program.h" + +#include <GLES2/gl2.h> +#include <GLES2/gl2ext.h> + +#include <assert.h> + +using namespace android; + +// 4x4 identity matrix +const float Program::kIdentity[] = { + 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f +}; + +// Simple vertex shader. Texture coord calc includes matrix for GLConsumer +// transform. +static const char* kVertexShader = + "uniform mat4 uMVPMatrix;\n" + "uniform mat4 uGLCMatrix;\n" + "attribute vec4 aPosition;\n" + "attribute vec4 aTextureCoord;\n" + "varying vec2 vTextureCoord;\n" + "void main() {\n" + " gl_Position = uMVPMatrix * aPosition;\n" + " vTextureCoord = (uGLCMatrix * aTextureCoord).xy;\n" + "}\n"; + +// Trivial fragment shader for external texture. +static const char* kExtFragmentShader = + "#extension GL_OES_EGL_image_external : require\n" + "precision mediump float;\n" + "varying vec2 vTextureCoord;\n" + "uniform samplerExternalOES uTexture;\n" + "void main() {\n" + " gl_FragColor = texture2D(uTexture, vTextureCoord);\n" + "}\n"; + +// Trivial fragment shader for mundane texture. +static const char* kFragmentShader = + "precision mediump float;\n" + "varying vec2 vTextureCoord;\n" + "uniform sampler2D uTexture;\n" + "void main() {\n" + " gl_FragColor = texture2D(uTexture, vTextureCoord);\n" + //" gl_FragColor = vec4(0.2, 1.0, 0.2, 1.0);\n" + "}\n"; + +status_t Program::setup(ProgramType type) { + ALOGV("Program::setup type=%d", type); + status_t err; + + mProgramType = type; + + GLuint program; + if (type == PROGRAM_TEXTURE_2D) { + err = createProgram(&program, kVertexShader, kFragmentShader); + } else { + err = createProgram(&program, kVertexShader, kExtFragmentShader); + } + if (err != NO_ERROR) { + return err; + } + assert(program != 0); + + maPositionLoc = glGetAttribLocation(program, "aPosition"); + maTextureCoordLoc = glGetAttribLocation(program, "aTextureCoord"); + muMVPMatrixLoc = glGetUniformLocation(program, "uMVPMatrix"); + muGLCMatrixLoc = glGetUniformLocation(program, "uGLCMatrix"); + muTextureLoc = glGetUniformLocation(program, "uTexture"); + if ((maPositionLoc | maTextureCoordLoc | muMVPMatrixLoc | + muGLCMatrixLoc | muTextureLoc) == -1) { + ALOGE("Attrib/uniform lookup failed: %#x", glGetError()); + glDeleteProgram(program); + return UNKNOWN_ERROR; + } + + mProgram = program; + return NO_ERROR; +} + +void Program::release() { + ALOGV("Program::release"); + if (mProgram != 0) { + glDeleteProgram(mProgram); + mProgram = 0; + } +} + +status_t Program::createProgram(GLuint* outPgm, const char* vertexShader, + const char* fragmentShader) { + GLuint vs, fs; + status_t err; + + err = compileShader(GL_VERTEX_SHADER, vertexShader, &vs); + if (err != NO_ERROR) { + return err; + } + err = compileShader(GL_FRAGMENT_SHADER, fragmentShader, &fs); + if (err != NO_ERROR) { + glDeleteShader(vs); + return err; + } + + GLuint program; + err = linkShaderProgram(vs, fs, &program); + glDeleteShader(vs); + glDeleteShader(fs); + if (err == NO_ERROR) { + *outPgm = program; + } + return err; +} + +status_t Program::compileShader(GLenum shaderType, const char* src, + GLuint* outShader) { + GLuint shader = glCreateShader(shaderType); + if (shader == 0) { + ALOGE("glCreateShader error: %#x", glGetError()); + return UNKNOWN_ERROR; + } + + glShaderSource(shader, 1, &src, NULL); + glCompileShader(shader); + + GLint compiled = 0; + glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled); + if (!compiled) { + ALOGE("Compile of shader type %d failed", shaderType); + GLint infoLen = 0; + glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLen); + if (infoLen) { + char* buf = new char[infoLen]; + if (buf) { + glGetShaderInfoLog(shader, infoLen, NULL, buf); + ALOGE("Compile log: %s", buf); + delete[] buf; + } + } + glDeleteShader(shader); + return UNKNOWN_ERROR; + } + *outShader = shader; + return NO_ERROR; +} + +status_t Program::linkShaderProgram(GLuint vs, GLuint fs, GLuint* outPgm) { + GLuint program = glCreateProgram(); + if (program == 0) { + ALOGE("glCreateProgram error: %#x", glGetError()); + return UNKNOWN_ERROR; + } + + glAttachShader(program, vs); + glAttachShader(program, fs); + glLinkProgram(program); + GLint linkStatus = GL_FALSE; + glGetProgramiv(program, GL_LINK_STATUS, &linkStatus); + if (linkStatus != GL_TRUE) { + ALOGE("glLinkProgram failed"); + GLint bufLength = 0; + glGetProgramiv(program, GL_INFO_LOG_LENGTH, &bufLength); + if (bufLength) { + char* buf = new char[bufLength]; + if (buf) { + glGetProgramInfoLog(program, bufLength, NULL, buf); + ALOGE("Link log: %s", buf); + delete[] buf; + } + } + glDeleteProgram(program); + return UNKNOWN_ERROR; + } + + *outPgm = program; + return NO_ERROR; +} + + + +status_t Program::blit(GLuint texName, const float* texMatrix, + int32_t x, int32_t y, int32_t w, int32_t h) const { + ALOGV("Program::blit %d xy=%d,%d wh=%d,%d", texName, x, y, w, h); + + const float pos[] = { + float(x), float(y+h), + float(x+w), float(y+h), + float(x), float(y), + float(x+w), float(y), + }; + const float uv[] = { + 0.0f, 0.0f, + 1.0f, 0.0f, + 0.0f, 1.0f, + 1.0f, 1.0f, + }; + status_t err; + + err = beforeDraw(texName, texMatrix, pos, uv); + if (err == NO_ERROR) { + glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); + err = afterDraw(); + } + return err; +} + +status_t Program::drawTriangles(GLuint texName, const float* texMatrix, + const float* vertices, const float* texes, size_t count) const { + ALOGV("Program::drawTriangles texName=%d", texName); + + status_t err; + + err = beforeDraw(texName, texMatrix, vertices, texes); + if (err == NO_ERROR) { + glDrawArrays(GL_TRIANGLES, 0, count); + err = afterDraw(); + } + return err; +} + +status_t Program::beforeDraw(GLuint texName, const float* texMatrix, + const float* vertices, const float* texes) const { + // Create an orthographic projection matrix based on viewport size. + GLint vp[4]; + glGetIntegerv(GL_VIEWPORT, vp); + float screenToNdc[16] = { + 2.0f/float(vp[2]), 0.0f, 0.0f, 0.0f, + 0.0f, -2.0f/float(vp[3]), 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + -1.0f, 1.0f, 0.0f, 1.0f, + }; + + glUseProgram(mProgram); + + glVertexAttribPointer(maPositionLoc, 2, GL_FLOAT, GL_FALSE, 0, vertices); + glVertexAttribPointer(maTextureCoordLoc, 2, GL_FLOAT, GL_FALSE, 0, texes); + glEnableVertexAttribArray(maPositionLoc); + glEnableVertexAttribArray(maTextureCoordLoc); + + glUniformMatrix4fv(muMVPMatrixLoc, 1, GL_FALSE, screenToNdc); + glUniformMatrix4fv(muGLCMatrixLoc, 1, GL_FALSE, texMatrix); + + glActiveTexture(GL_TEXTURE0); + + switch (mProgramType) { + case PROGRAM_EXTERNAL_TEXTURE: + glBindTexture(GL_TEXTURE_EXTERNAL_OES, texName); + break; + case PROGRAM_TEXTURE_2D: + glBindTexture(GL_TEXTURE_2D, texName); + break; + default: + ALOGE("unexpected program type %d", mProgramType); + return UNKNOWN_ERROR; + } + + glUniform1i(muTextureLoc, 0); + + GLenum glErr; + if ((glErr = glGetError()) != GL_NO_ERROR) { + ALOGE("GL error before draw: %#x", glErr); + glDisableVertexAttribArray(maPositionLoc); + glDisableVertexAttribArray(maTextureCoordLoc); + return UNKNOWN_ERROR; + } + + return NO_ERROR; +} + +status_t Program::afterDraw() const { + glDisableVertexAttribArray(maPositionLoc); + glDisableVertexAttribArray(maTextureCoordLoc); + + GLenum glErr; + if ((glErr = glGetError()) != GL_NO_ERROR) { + ALOGE("GL error after draw: %#x", glErr); + return UNKNOWN_ERROR; + } + + return NO_ERROR; +} diff --git a/cmds/screenrecord/Program.h b/cmds/screenrecord/Program.h new file mode 100644 index 0000000..e47bc0d --- /dev/null +++ b/cmds/screenrecord/Program.h @@ -0,0 +1,92 @@ +/* + * Copyright 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef SCREENRECORD_PROGRAM_H +#define SCREENRECORD_PROGRAM_H + +#include <utils/Errors.h> + +#include <EGL/egl.h> +#include <GLES2/gl2.h> + +namespace android { + +/* + * Utility class for GLES rendering. + * + * Not thread-safe. + */ +class Program { +public: + enum ProgramType { PROGRAM_UNKNOWN=0, PROGRAM_EXTERNAL_TEXTURE, + PROGRAM_TEXTURE_2D }; + + Program() : + mProgramType(PROGRAM_UNKNOWN), + mProgram(0), + maPositionLoc(0), + maTextureCoordLoc(0), + muMVPMatrixLoc(0), + muGLCMatrixLoc(0), + muTextureLoc(0) + {} + ~Program() { release(); } + + // Initialize the program for use with the specified texture type. + status_t setup(ProgramType type); + + // Release the program and associated resources. + void release(); + + // Blit the specified texture to { x, y, x+w, y+h }. + status_t blit(GLuint texName, const float* texMatrix, + int32_t x, int32_t y, int32_t w, int32_t h) const; + + // Draw a number of triangles. + status_t drawTriangles(GLuint texName, const float* texMatrix, + const float* vertices, const float* texes, size_t count) const; + + static const float kIdentity[]; + +private: + Program(const Program&); + Program& operator=(const Program&); + + // Common code for draw functions. + status_t beforeDraw(GLuint texName, const float* texMatrix, + const float* vertices, const float* texes) const; + status_t afterDraw() const; + + // GLES 2 shader utilities. + status_t createProgram(GLuint* outPgm, const char* vertexShader, + const char* fragmentShader); + static status_t compileShader(GLenum shaderType, const char* src, + GLuint* outShader); + static status_t linkShaderProgram(GLuint vs, GLuint fs, GLuint* outPgm); + + ProgramType mProgramType; + GLuint mProgram; + + GLint maPositionLoc; + GLint maTextureCoordLoc; + GLint muMVPMatrixLoc; + GLint muGLCMatrixLoc; + GLint muTextureLoc; +}; + +}; // namespace android + +#endif /*SCREENRECORD_PROGRAM_H*/ diff --git a/cmds/screenrecord/TextRenderer.cpp b/cmds/screenrecord/TextRenderer.cpp new file mode 100644 index 0000000..784055c --- /dev/null +++ b/cmds/screenrecord/TextRenderer.cpp @@ -0,0 +1,358 @@ +/* + * Copyright 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define LOG_TAG "ScreenRecord" +//#define LOG_NDEBUG 0 +#include <utils/Log.h> + +#include "TextRenderer.h" + +#include <assert.h> + +namespace android { +#include "FontBitmap.h" +}; + +using namespace android; + +const char TextRenderer::kWhitespace[] = " \t\n\r"; + +bool TextRenderer::mInitialized = false; +uint32_t TextRenderer::mXOffset[FontBitmap::numGlyphs]; + +void TextRenderer::initOnce() { + if (!mInitialized) { + initXOffset(); + mInitialized = true; + } +} + +void TextRenderer::initXOffset() { + // Generate a table of X offsets. They start at zero and reset whenever + // we move down a line (i.e. the Y offset changes). The offset increases + // by one pixel more than the width because the generator left a gap to + // avoid reading pixels from adjacent glyphs in the texture filter. + uint16_t offset = 0; + uint16_t prevYOffset = (int16_t) -1; + for (unsigned int i = 0; i < FontBitmap::numGlyphs; i++) { + if (prevYOffset != FontBitmap::yoffset[i]) { + prevYOffset = FontBitmap::yoffset[i]; + offset = 0; + } + mXOffset[i] = offset; + offset += FontBitmap::glyphWidth[i] + 1; + } +} + +static bool isPowerOfTwo(uint32_t val) { + // a/k/a "is exactly one bit set"; note returns true for 0 + return (val & (val -1)) == 0; +} + +static uint32_t powerOfTwoCeil(uint32_t val) { + // drop it, smear the bits across, pop it + val--; + val |= val >> 1; + val |= val >> 2; + val |= val >> 4; + val |= val >> 8; + val |= val >> 16; + val++; + + return val; +} + +float TextRenderer::getGlyphHeight() const { + return FontBitmap::maxGlyphHeight; +} + +status_t TextRenderer::loadIntoTexture() { + ALOGV("Font::loadIntoTexture"); + + glGenTextures(1, &mTextureName); + if (mTextureName == 0) { + ALOGE("glGenTextures failed: %#x", glGetError()); + return UNKNOWN_ERROR; + } + glBindTexture(GL_TEXTURE_2D, mTextureName); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + + // The pixel data is stored as combined color+alpha, 8 bits per pixel. + // It's guaranteed to be a power-of-two wide, but we cut off the height + // where the data ends. We want to expand it to a power-of-two bitmap + // with ARGB data and hand that to glTexImage2D. + + if (!isPowerOfTwo(FontBitmap::width)) { + ALOGE("npot glyph bitmap width %u", FontBitmap::width); + return UNKNOWN_ERROR; + } + + uint32_t potHeight = powerOfTwoCeil(FontBitmap::height); + uint8_t* rgbaPixels = new uint8_t[FontBitmap::width * potHeight * 4]; + memset(rgbaPixels, 0, FontBitmap::width * potHeight * 4); + uint8_t* pix = rgbaPixels; + + for (unsigned int i = 0; i < FontBitmap::width * FontBitmap::height; i++) { + uint8_t alpha, color; + if ((FontBitmap::pixels[i] & 1) == 0) { + // black pixel with varying alpha + color = 0x00; + alpha = FontBitmap::pixels[i] & ~1; + } else { + // opaque grey pixel + color = FontBitmap::pixels[i] & ~1; + alpha = 0xff; + } + *pix++ = color; + *pix++ = color; + *pix++ = color; + *pix++ = alpha; + } + + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, FontBitmap::width, potHeight, 0, + GL_RGBA, GL_UNSIGNED_BYTE, rgbaPixels); + delete[] rgbaPixels; + GLint glErr = glGetError(); + if (glErr != 0) { + ALOGE("glTexImage2D failed: %#x", glErr); + return UNKNOWN_ERROR; + } + return NO_ERROR; +} + +void TextRenderer::setProportionalScale(float linesPerScreen) { + if (mScreenWidth == 0 || mScreenHeight == 0) { + ALOGW("setFontScale: can't set scale for width=%d height=%d", + mScreenWidth, mScreenHeight); + return; + } + float tallest = mScreenWidth > mScreenHeight ? mScreenWidth : mScreenHeight; + setScale(tallest / (linesPerScreen * getGlyphHeight())); +} + +float TextRenderer::computeScaledStringWidth(const String8& str8) const { + // String8.length() isn't documented, but I'm assuming it will return + // the number of characters rather than the number of bytes. Since + // we can only display ASCII we want to ignore anything else, so we + // just convert to char* -- but String8 doesn't document what it does + // with values outside 0-255. So just convert to char* and use strlen() + // to see what we get. + const char* str = str8.string(); + return computeScaledStringWidth(str, strlen(str)); +} + +size_t TextRenderer::glyphIndex(char ch) const { + size_t chi = ch - FontBitmap::firstGlyphChar; + if (chi >= FontBitmap::numGlyphs) { + chi = '?' - FontBitmap::firstGlyphChar; + } + assert(chi < FontBitmap::numGlyphs); + return chi; +} + +float TextRenderer::computeScaledStringWidth(const char* str, + size_t len) const { + float width = 0.0f; + for (size_t i = 0; i < len; i++) { + size_t chi = glyphIndex(str[i]); + float glyphWidth = FontBitmap::glyphWidth[chi]; + width += (glyphWidth - 1 - FontBitmap::outlineWidth) * mScale; + } + + return width; +} + +void TextRenderer::drawString(const Program& program, const float* texMatrix, + float x, float y, const String8& str8) const { + ALOGV("drawString %.3f,%.3f '%s' (scale=%.3f)", x, y, str8.string(),mScale); + initOnce(); + + // We want to draw the entire string with a single GLES call. We + // generate two arrays, one with screen coordinates, one with texture + // coordinates. Need two triangles per character. + const char* str = str8.string(); + size_t len = strlen(str); // again, unsure about String8 handling + + const size_t quadCoords = + 2 /*triangles*/ * 3 /*vertex/tri*/ * 2 /*coord/vertex*/; + float vertices[len * quadCoords]; + float texes[len * quadCoords]; + + float fullTexWidth = FontBitmap::width; + float fullTexHeight = powerOfTwoCeil(FontBitmap::height); + for (size_t i = 0; i < len; i++) { + size_t chi = glyphIndex(str[i]); + float glyphWidth = FontBitmap::glyphWidth[chi]; + float glyphHeight = FontBitmap::maxGlyphHeight; + + float vertLeft = x; + float vertRight = x + glyphWidth * mScale; + float vertTop = y; + float vertBottom = y + glyphHeight * mScale; + + // Lowest-numbered glyph is in top-left of bitmap, which puts it at + // the bottom-left in texture coordinates. + float texLeft = mXOffset[chi] / fullTexWidth; + float texRight = (mXOffset[chi] + glyphWidth) / fullTexWidth; + float texTop = FontBitmap::yoffset[chi] / fullTexHeight; + float texBottom = (FontBitmap::yoffset[chi] + glyphHeight) / + fullTexHeight; + + size_t off = i * quadCoords; + vertices[off + 0] = vertLeft; + vertices[off + 1] = vertBottom; + vertices[off + 2] = vertRight; + vertices[off + 3] = vertBottom; + vertices[off + 4] = vertLeft; + vertices[off + 5] = vertTop; + vertices[off + 6] = vertLeft; + vertices[off + 7] = vertTop; + vertices[off + 8] = vertRight; + vertices[off + 9] = vertBottom; + vertices[off + 10] = vertRight; + vertices[off + 11] = vertTop; + texes[off + 0] = texLeft; + texes[off + 1] = texBottom; + texes[off + 2] = texRight; + texes[off + 3] = texBottom; + texes[off + 4] = texLeft; + texes[off + 5] = texTop; + texes[off + 6] = texLeft; + texes[off + 7] = texTop; + texes[off + 8] = texRight; + texes[off + 9] = texBottom; + texes[off + 10] = texRight; + texes[off + 11] = texTop; + + // We added 1-pixel padding in the texture, so we want to advance by + // one less. Also, each glyph is surrounded by a black outline, which + // we want to merge. + x += (glyphWidth - 1 - FontBitmap::outlineWidth) * mScale; + } + + program.drawTriangles(mTextureName, texMatrix, vertices, texes, + len * quadCoords / 2); +} + +float TextRenderer::drawWrappedString(const Program& texRender, + float xpos, float ypos, const String8& str) { + ALOGV("drawWrappedString %.3f,%.3f '%s'", xpos, ypos, str.string()); + initOnce(); + + if (mScreenWidth == 0 || mScreenHeight == 0) { + ALOGW("drawWrappedString: can't wrap with width=%d height=%d", + mScreenWidth, mScreenHeight); + return ypos; + } + + const float indentWidth = mIndentMult * getScale(); + if (xpos < mBorderWidth) { + xpos = mBorderWidth; + } + if (ypos < mBorderWidth) { + ypos = mBorderWidth; + } + + const size_t maxWidth = (mScreenWidth - mBorderWidth) - xpos; + if (maxWidth < 1) { + ALOGE("Unable to render text: xpos=%.3f border=%.3f width=%u", + xpos, mBorderWidth, mScreenWidth); + return ypos; + } + float stringWidth = computeScaledStringWidth(str); + if (stringWidth <= maxWidth) { + // Trivial case. + drawString(texRender, Program::kIdentity, xpos, ypos, str); + ypos += getScaledGlyphHeight(); + } else { + // We need to break the string into pieces, ideally at whitespace + // boundaries. + char* mangle = strdup(str.string()); + char* start = mangle; + while (start != NULL) { + float xposAdj = (start == mangle) ? xpos : xpos + indentWidth; + char* brk = breakString(start, + (float) (mScreenWidth - mBorderWidth - xposAdj)); + if (brk == NULL) { + // draw full string + drawString(texRender, Program::kIdentity, xposAdj, ypos, + String8(start)); + start = NULL; + } else { + // draw partial string + char ch = *brk; + *brk = '\0'; + drawString(texRender, Program::kIdentity, xposAdj, ypos, + String8(start)); + *brk = ch; + start = brk; + if (strchr(kWhitespace, ch) != NULL) { + // if we broke on whitespace, skip past it + start++; + } + } + ypos += getScaledGlyphHeight(); + } + free(mangle); + } + + return ypos; +} + +char* TextRenderer::breakString(const char* str, float maxWidth) const { + // Ideally we'd do clever things like binary search. Not bothering. + ALOGV("breakString '%s' %.3f", str, maxWidth); + + size_t len = strlen(str); + if (len == 0) { + // Caller should detect this and not advance ypos. + return NULL; + } + + float stringWidth = computeScaledStringWidth(str, len); + if (stringWidth <= maxWidth) { + return NULL; // trivial -- use full string + } + + // Find the longest string that will fit. + size_t goodPos = 0; + for (size_t i = 0; i < len; i++) { + stringWidth = computeScaledStringWidth(str, i); + if (stringWidth < maxWidth) { + goodPos = i; + } else { + break; // too big + } + } + if (goodPos == 0) { + // space is too small to hold any glyph; output a single char + ALOGW("Couldn't find a nonzero prefix that fit from '%s'", str); + goodPos = 1; + } + + // Scan back for whitespace. If we can't find any we'll just have + // an ugly mid-word break. + for (size_t i = goodPos; i > 0; i--) { + if (strchr(kWhitespace, str[i]) != NULL) { + goodPos = i; + break; + } + } + + ALOGV("goodPos=%d for str='%s'", goodPos, str); + return const_cast<char*>(str + goodPos); +} diff --git a/cmds/screenrecord/TextRenderer.h b/cmds/screenrecord/TextRenderer.h new file mode 100644 index 0000000..03dd2fb --- /dev/null +++ b/cmds/screenrecord/TextRenderer.h @@ -0,0 +1,140 @@ +/* + * Copyright 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef SCREENRECORD_TEXT_RENDER_H +#define SCREENRECORD_TEXT_RENDER_H + +#include "Program.h" + +#include <utils/String8.h> +#include <utils/Errors.h> + +#include <GLES2/gl2.h> + + +namespace android { + +/* + * Simple font representation. + * + * Not thread-safe. + */ +class TextRenderer { +public: + TextRenderer() : + mTextureName(0), + mScale(1.0f), + mBorderWidth(10.0f), + mIndentMult(30.0f), + mScreenWidth(0), + mScreenHeight(0) + {} + ~TextRenderer() {} + + // Load the glyph bitmap into a 2D texture in the current context. + status_t loadIntoTexture(); + + // Set the screen dimensions, used for scaling and line wrap. + void setScreenSize(uint32_t width, uint32_t height) { + mScreenWidth = width; + mScreenHeight = height; + } + + // Get/set the font scaling. + float getScale() const { return mScale; } + void setScale(float scale) { mScale = scale; } + + // Set the font scaling based on the desired number of lines per screen. + // The display's tallest axis is used, so if the device is in landscape + // the screen will fit fewer lines. + void setProportionalScale(float linesPerScreen); + + // Render the text string at the specified coordinates. Pass in the + // upper-left corner in non-GL-flipped coordinates, i.e. to print text + // at the top left of the screen use (0,0). + // + // Set blend func (1, 1-srcAlpha) before calling if drawing onto + // something other than black. + void drawString(const Program& program, const float* texMatrix, + float x, float y, const String8& str) const; + + // Draw a string, possibly wrapping it at the screen boundary. Top-left + // is at (0,0). + // + // Returns the updated Y position. + float drawWrappedString(const Program& texRender, float xpos, float ypos, + const String8& str); + + // Returns the name of the texture the font was loaded into. + GLuint getTextureName() const { return mTextureName; } + +private: + TextRenderer(const TextRenderer&); + TextRenderer& operator=(const TextRenderer&); + + // Perform one-time initialization. + static void initOnce(); + + // Populate the mXOffset array. + static void initXOffset(); + + // Find a good place to break the string. Returns NULL if the entire + // string will fit. + char* breakString(const char* str, float maxWidth) const; + + // Computes the width of the string, in pixels. + float computeScaledStringWidth(const String8& str8) const; + + // Computes the width of first N characters in the string. + float computeScaledStringWidth(const char* str, size_t len) const; + + // Returns the font's glyph height. This is the full pixel height of the + // tallest glyph, both above and below the baseline, NOT adjusted by the + // current scale factor. + float getGlyphHeight() const; + + // Like getGlyphHeight(), but result is scaled. + float getScaledGlyphHeight() const { return getGlyphHeight() * mScale; } + + // Convert an ASCII character to a glyph index. Returns the glyph for + // '?' if we have no glyph for the specified character. + size_t glyphIndex(char ch) const; + + GLuint mTextureName; + float mScale; + + // Number of pixels preserved at the left/right edges of the screen by + // drawWrappedString(). Not scaled. + float mBorderWidth; + + // Distance to indent a broken line. Used by drawWrappedString(). + // Value will be adjusted by the current scale factor. + float mIndentMult; + + // Screen dimensions. + uint32_t mScreenWidth; + uint32_t mScreenHeight; + + // Static font info. + static bool mInitialized; + static uint32_t mXOffset[]; + + static const char kWhitespace[]; +}; + +}; // namespace android + +#endif /*SCREENRECORD_TEXT_RENDER_H*/ diff --git a/cmds/screenrecord/screenrecord.cpp b/cmds/screenrecord/screenrecord.cpp index 49999b5..61f83e3 100644 --- a/cmds/screenrecord/screenrecord.cpp +++ b/cmds/screenrecord/screenrecord.cpp @@ -15,13 +15,14 @@ */ #define LOG_TAG "ScreenRecord" +#define ATRACE_TAG ATRACE_TAG_GRAPHICS //#define LOG_NDEBUG 0 #include <utils/Log.h> #include <binder/IPCThreadState.h> #include <utils/Errors.h> -#include <utils/Thread.h> #include <utils/Timers.h> +#include <utils/Trace.h> #include <gui/Surface.h> #include <gui/SurfaceComposerClient.h> @@ -29,7 +30,6 @@ #include <ui/DisplayInfo.h> #include <media/openmax/OMX_IVCommon.h> #include <media/stagefright/foundation/ABuffer.h> -#include <media/stagefright/foundation/ADebug.h> #include <media/stagefright/foundation/AMessage.h> #include <media/stagefright/MediaCodec.h> #include <media/stagefright/MediaErrors.h> @@ -40,30 +40,37 @@ #include <unistd.h> #include <string.h> #include <stdio.h> +#include <ctype.h> #include <fcntl.h> #include <signal.h> #include <getopt.h> #include <sys/wait.h> +#include <assert.h> + +#include "screenrecord.h" +#include "Overlay.h" using namespace android; static const uint32_t kMinBitRate = 100000; // 0.1Mbps -static const uint32_t kMaxBitRate = 100 * 1000000; // 100Mbps +static const uint32_t kMaxBitRate = 200 * 1000000; // 200Mbps static const uint32_t kMaxTimeLimitSec = 180; // 3 minutes static const uint32_t kFallbackWidth = 1280; // 720p static const uint32_t kFallbackHeight = 720; // Command-line parameters. -static bool gVerbose = false; // chatty on stdout -static bool gRotate = false; // rotate 90 degrees -static bool gSizeSpecified = false; // was size explicitly requested? -static uint32_t gVideoWidth = 0; // default width+height +static bool gVerbose = false; // chatty on stdout +static bool gRotate = false; // rotate 90 degrees +static bool gSizeSpecified = false; // was size explicitly requested? +static bool gWantInfoScreen = false; // do we want initial info screen? +static bool gWantFrameTime = false; // do we want times on each frame? +static uint32_t gVideoWidth = 0; // default width+height static uint32_t gVideoHeight = 0; -static uint32_t gBitRate = 4000000; // 4Mbps +static uint32_t gBitRate = 4000000; // 4Mbps static uint32_t gTimeLimitSec = kMaxTimeLimitSec; // Set by signal handler to stop recording. -static bool gStopRequested; +static volatile bool gStopRequested; // Previous signal handler state, restored after first hit. static struct sigaction gOrigSigactionINT; @@ -97,8 +104,7 @@ static void signalCatcher(int signum) * when Ctrl-C is hit. If we're run from the host, the local adb process * gets the signal, and we get a SIGHUP when the terminal disconnects. */ -static status_t configureSignals() -{ +static status_t configureSignals() { struct sigaction act; memset(&act, 0, sizeof(act)); act.sa_handler = signalCatcher; @@ -156,35 +162,30 @@ static status_t prepareEncoder(float displayFps, sp<MediaCodec>* pCodec, fprintf(stderr, "ERROR: unable to create video/avc codec instance\n"); return UNKNOWN_ERROR; } + err = codec->configure(format, NULL, NULL, MediaCodec::CONFIGURE_FLAG_ENCODE); if (err != NO_ERROR) { - codec->release(); - codec.clear(); - fprintf(stderr, "ERROR: unable to configure codec (err=%d)\n", err); + codec->release(); return err; } - ALOGV("Creating buffer producer"); + ALOGV("Creating encoder input surface"); sp<IGraphicBufferProducer> bufferProducer; err = codec->createInputSurface(&bufferProducer); if (err != NO_ERROR) { - codec->release(); - codec.clear(); - fprintf(stderr, "ERROR: unable to create encoder input surface (err=%d)\n", err); + codec->release(); return err; } ALOGV("Starting codec"); err = codec->start(); if (err != NO_ERROR) { - codec->release(); - codec.clear(); - fprintf(stderr, "ERROR: unable to start codec (err=%d)\n", err); + codec->release(); return err; } @@ -195,12 +196,11 @@ static status_t prepareEncoder(float displayFps, sp<MediaCodec>* pCodec, } /* - * Configures the virtual display. When this completes, virtual display - * frames will start being sent to the encoder's surface. + * Sets the display projection, based on the display dimensions, video size, + * and device orientation. */ -static status_t prepareVirtualDisplay(const DisplayInfo& mainDpyInfo, - const sp<IGraphicBufferProducer>& bufferProducer, - sp<IBinder>* pDisplayHandle) { +static status_t setDisplayProjection(const sp<IBinder>& dpy, + const DisplayInfo& mainDpyInfo) { status_t err; // Set the region of the layer stack we're interested in, which in our @@ -266,15 +266,25 @@ static status_t prepareVirtualDisplay(const DisplayInfo& mainDpyInfo, } } + SurfaceComposerClient::setDisplayProjection(dpy, + gRotate ? DISPLAY_ORIENTATION_90 : DISPLAY_ORIENTATION_0, + layerStackRect, displayRect); + return NO_ERROR; +} +/* + * Configures the virtual display. When this completes, virtual display + * frames will start arriving from the buffer producer. + */ +static status_t prepareVirtualDisplay(const DisplayInfo& mainDpyInfo, + const sp<IGraphicBufferProducer>& bufferProducer, + sp<IBinder>* pDisplayHandle) { sp<IBinder> dpy = SurfaceComposerClient::createDisplay( - String8("ScreenRecorder"), false /* secure */); + String8("ScreenRecorder"), false /*secure*/); SurfaceComposerClient::openGlobalTransaction(); SurfaceComposerClient::setDisplaySurface(dpy, bufferProducer); - SurfaceComposerClient::setDisplayProjection(dpy, - gRotate ? DISPLAY_ORIENTATION_90 : DISPLAY_ORIENTATION_0, - layerStackRect, displayRect); + setDisplayProjection(dpy, mainDpyInfo); SurfaceComposerClient::setDisplayLayerStack(dpy, 0); // default stack SurfaceComposerClient::closeGlobalTransaction(); @@ -291,13 +301,15 @@ static status_t prepareVirtualDisplay(const DisplayInfo& mainDpyInfo, * The muxer must *not* have been started before calling. */ static status_t runEncoder(const sp<MediaCodec>& encoder, - const sp<MediaMuxer>& muxer) { + const sp<MediaMuxer>& muxer, const sp<IBinder>& mainDpy, + const sp<IBinder>& virtualDpy, uint8_t orientation) { static int kTimeout = 250000; // be responsive on signal status_t err; ssize_t trackIdx = -1; uint32_t debugNumFrames = 0; int64_t startWhenNsec = systemTime(CLOCK_MONOTONIC); int64_t endWhenNsec = startWhenNsec + seconds_to_nanoseconds(gTimeLimitSec); + DisplayInfo mainDpyInfo; Vector<sp<ABuffer> > buffers; err = encoder->getOutputBuffers(&buffers); @@ -338,10 +350,31 @@ static status_t runEncoder(const sp<MediaCodec>& encoder, if (size != 0) { ALOGV("Got data in buffer %d, size=%d, pts=%lld", bufIndex, size, ptsUsec); - CHECK(trackIdx != -1); + assert(trackIdx != -1); + + { // scope + ATRACE_NAME("orientation"); + // Check orientation, update if it has changed. + // + // Polling for changes is inefficient and wrong, but the + // useful stuff is hard to get at without a Dalvik VM. + err = SurfaceComposerClient::getDisplayInfo(mainDpy, + &mainDpyInfo); + if (err != NO_ERROR) { + ALOGW("getDisplayInfo(main) failed: %d", err); + } else if (orientation != mainDpyInfo.orientation) { + ALOGD("orientation changed, now %d", mainDpyInfo.orientation); + SurfaceComposerClient::openGlobalTransaction(); + setDisplayProjection(virtualDpy, mainDpyInfo); + SurfaceComposerClient::closeGlobalTransaction(); + orientation = mainDpyInfo.orientation; + } + } // If the virtual display isn't providing us with timestamps, - // use the current time. + // use the current time. This isn't great -- we could get + // decoded data in clusters -- but we're not expecting + // to hit this anyway. if (ptsUsec == 0) { ptsUsec = systemTime(SYSTEM_TIME_MONOTONIC) / 1000; } @@ -349,12 +382,18 @@ static status_t runEncoder(const sp<MediaCodec>& encoder, // The MediaMuxer docs are unclear, but it appears that we // need to pass either the full set of BufferInfo flags, or // (flags & BUFFER_FLAG_SYNCFRAME). - err = muxer->writeSampleData(buffers[bufIndex], trackIdx, - ptsUsec, flags); - if (err != NO_ERROR) { - fprintf(stderr, "Failed writing data to muxer (err=%d)\n", - err); - return err; + // + // If this blocks for too long we could drop frames. We may + // want to queue these up and do them on a different thread. + { // scope + ATRACE_NAME("write sample"); + err = muxer->writeSampleData(buffers[bufIndex], trackIdx, + ptsUsec, flags); + if (err != NO_ERROR) { + fprintf(stderr, + "Failed writing data to muxer (err=%d)\n", err); + return err; + } } debugNumFrames++; } @@ -366,8 +405,8 @@ static status_t runEncoder(const sp<MediaCodec>& encoder, } if ((flags & MediaCodec::BUFFER_FLAG_EOS) != 0) { // Not expecting EOS from SurfaceFlinger. Go with it. - ALOGD("Received end-of-stream"); - gStopRequested = false; + ALOGI("Received end-of-stream"); + gStopRequested = true; } break; case -EAGAIN: // INFO_TRY_AGAIN_LATER @@ -375,7 +414,7 @@ static status_t runEncoder(const sp<MediaCodec>& encoder, break; case INFO_FORMAT_CHANGED: // INFO_OUTPUT_FORMAT_CHANGED { - // format includes CSD, which we must provide to muxer + // Format includes CSD, which we must provide to muxer. ALOGV("Encoder format changed"); sp<AMessage> newFormat; encoder->getOutputFormat(&newFormat); @@ -389,7 +428,7 @@ static status_t runEncoder(const sp<MediaCodec>& encoder, } break; case INFO_OUTPUT_BUFFERS_CHANGED: // INFO_OUTPUT_BUFFERS_CHANGED - // not expected for an encoder; handle it anyway + // Not expected for an encoder; handle it anyway. ALOGV("Encoder buffers changed"); err = encoder->getOutputBuffers(&buffers); if (err != NO_ERROR) { @@ -399,7 +438,7 @@ static status_t runEncoder(const sp<MediaCodec>& encoder, } break; case INVALID_OPERATION: - fprintf(stderr, "Request for encoder buffer failed\n"); + ALOGW("dequeueOutputBuffer returned INVALID_OPERATION"); return err; default: fprintf(stderr, @@ -411,8 +450,8 @@ static status_t runEncoder(const sp<MediaCodec>& encoder, ALOGV("Encoder stopping (req=%d)", gStopRequested); if (gVerbose) { printf("Encoder stopping; recorded %u frames in %lld seconds\n", - debugNumFrames, - nanoseconds_to_seconds(systemTime(CLOCK_MONOTONIC) - startWhenNsec)); + debugNumFrames, nanoseconds_to_seconds( + systemTime(CLOCK_MONOTONIC) - startWhenNsec)); } return NO_ERROR; } @@ -460,8 +499,8 @@ static status_t recordScreen(const char* fileName) { // Configure and start the encoder. sp<MediaCodec> encoder; - sp<IGraphicBufferProducer> bufferProducer; - err = prepareEncoder(mainDpyInfo.fps, &encoder, &bufferProducer); + sp<IGraphicBufferProducer> encoderInputSurface; + err = prepareEncoder(mainDpyInfo.fps, &encoder, &encoderInputSurface); if (err != NO_ERROR && !gSizeSpecified) { // fallback is defined for landscape; swap if we're in portrait @@ -474,11 +513,41 @@ static status_t recordScreen(const char* fileName) { gVideoWidth, gVideoHeight, newWidth, newHeight); gVideoWidth = newWidth; gVideoHeight = newHeight; - err = prepareEncoder(mainDpyInfo.fps, &encoder, &bufferProducer); + err = prepareEncoder(mainDpyInfo.fps, &encoder, + &encoderInputSurface); } } - if (err != NO_ERROR) { - return err; + if (err != NO_ERROR) return err; + + // From here on, we must explicitly release() the encoder before it goes + // out of scope, or we will get an assertion failure from stagefright + // later on in a different thread. + + + // Draw the "info" page by rendering a frame with GLES and sending + // it directly to the encoder. + // TODO: consider displaying this as a regular layer to avoid b/11697754 + if (gWantInfoScreen) { + Overlay::drawInfoPage(encoderInputSurface); + } + + // Configure optional overlay. + sp<IGraphicBufferProducer> bufferProducer; + sp<Overlay> overlay; + if (gWantFrameTime) { + // Send virtual display frames to an external texture. + overlay = new Overlay(); + err = overlay->start(encoderInputSurface, &bufferProducer); + if (err != NO_ERROR) { + encoder->release(); + return err; + } + if (gVerbose) { + printf("Bugreport overlay created\n"); + } + } else { + // Use the encoder's input surface as the virtual display surface. + bufferProducer = encoderInputSurface; } // Configure virtual display. @@ -486,25 +555,22 @@ static status_t recordScreen(const char* fileName) { err = prepareVirtualDisplay(mainDpyInfo, bufferProducer, &dpy); if (err != NO_ERROR) { encoder->release(); - encoder.clear(); - return err; } - // Configure, but do not start, muxer. + // Configure muxer. We have to wait for the CSD blob from the encoder + // before we can start it. sp<MediaMuxer> muxer = new MediaMuxer(fileName, MediaMuxer::OUTPUT_FORMAT_MPEG_4); if (gRotate) { - muxer->setOrientationHint(90); + muxer->setOrientationHint(90); // TODO: does this do anything? } // Main encoder loop. - err = runEncoder(encoder, muxer); + err = runEncoder(encoder, muxer, mainDpy, dpy, mainDpyInfo.orientation); if (err != NO_ERROR) { - encoder->release(); - encoder.clear(); - - return err; + fprintf(stderr, "Encoder failed (err=%d)\n", err); + // fall through to cleanup } if (gVerbose) { @@ -512,14 +578,18 @@ static status_t recordScreen(const char* fileName) { } // Shut everything down, starting with the producer side. - bufferProducer = NULL; + encoderInputSurface = NULL; SurfaceComposerClient::destroyDisplay(dpy); - + if (overlay != NULL) { + overlay->stop(); + } encoder->stop(); + // If we don't stop muxer explicitly, i.e. let the destructor run, + // it may hang (b/11050628). muxer->stop(); encoder->release(); - return 0; + return err; } /* @@ -528,6 +598,28 @@ static status_t recordScreen(const char* fileName) { * This is optional, but nice to have. */ static status_t notifyMediaScanner(const char* fileName) { + // need to do allocations before the fork() + String8 fileUrl("file://"); + fileUrl.append(fileName); + + const char* kCommand = "/system/bin/am"; + const char* const argv[] = { + kCommand, + "broadcast", + "-a", + "android.intent.action.MEDIA_SCANNER_SCAN_FILE", + "-d", + fileUrl.string(), + NULL + }; + if (gVerbose) { + printf("Executing:"); + for (int i = 0; argv[i] != NULL; i++) { + printf(" %s", argv[i]); + } + putchar('\n'); + } + pid_t pid = fork(); if (pid < 0) { int err = errno; @@ -539,34 +631,14 @@ static status_t notifyMediaScanner(const char* fileName) { int status; pid_t actualPid = TEMP_FAILURE_RETRY(waitpid(pid, &status, 0)); if (actualPid != pid) { - ALOGW("waitpid() returned %d (errno=%d)", actualPid, errno); + ALOGW("waitpid(%d) returned %d (errno=%d)", pid, actualPid, errno); } else if (status != 0) { ALOGW("'am broadcast' exited with status=%d", status); } else { ALOGV("'am broadcast' exited successfully"); } } else { - const char* kCommand = "/system/bin/am"; - - // child; we're single-threaded, so okay to alloc - String8 fileUrl("file://"); - fileUrl.append(fileName); - const char* const argv[] = { - kCommand, - "broadcast", - "-a", - "android.intent.action.MEDIA_SCANNER_SCAN_FILE", - "-d", - fileUrl.string(), - NULL - }; - if (gVerbose) { - printf("Executing:"); - for (int i = 0; argv[i] != NULL; i++) { - printf(" %s", argv[i]); - } - putchar('\n'); - } else { + if (!gVerbose) { // non-verbose, suppress 'am' output ALOGV("closing stdout/stderr in child"); int fd = open("/dev/null", O_WRONLY); @@ -611,13 +683,37 @@ static bool parseWidthHeight(const char* widthHeight, uint32_t* pWidth, } /* + * Accepts a string with a bare number ("4000000") or with a single-character + * unit ("4m"). + * + * Returns an error if parsing fails. + */ +static status_t parseValueWithUnit(const char* str, uint32_t* pValue) { + long value; + char* endptr; + + value = strtol(str, &endptr, 10); + if (*endptr == '\0') { + // bare number + *pValue = value; + return NO_ERROR; + } else if (toupper(*endptr) == 'M' && *(endptr+1) == '\0') { + *pValue = value * 1000000; // check for overflow? + return NO_ERROR; + } else { + fprintf(stderr, "Unrecognized value: %s\n", str); + return UNKNOWN_ERROR; + } +} + +/* * Dumps usage on stderr. */ static void usage() { fprintf(stderr, "Usage: screenrecord [options] <filename>\n" "\n" - "Records the device's display to a .mp4 file.\n" + "Android screenrecord v%d.%d. Records the device's display to a .mp4 file.\n" "\n" "Options:\n" "--size WIDTHxHEIGHT\n" @@ -625,11 +721,13 @@ static void usage() { " display resolution (if supported), 1280x720 if not. For best results,\n" " use a size supported by the AVC encoder.\n" "--bit-rate RATE\n" - " Set the video bit rate, in megabits per second. Default %dMbps.\n" + " Set the video bit rate, in bits per second. Value may be specified as\n" + " bits or megabits, e.g. '4000000' is equivalent to '4M'. Default %dMbps.\n" + "--bugreport\n" + " Add additional information, such as a timestamp overlay, that is helpful\n" + " in videos captured to illustrate bugs.\n" "--time-limit TIME\n" " Set the maximum recording time, in seconds. Default / maximum is %d.\n" - "--rotate\n" - " Rotate the output 90 degrees.\n" "--verbose\n" " Display interesting information on stdout.\n" "--help\n" @@ -637,7 +735,7 @@ static void usage() { "\n" "Recording continues until Ctrl-C is hit or the time limit is reached.\n" "\n", - gBitRate / 1000000, gTimeLimitSec + kVersionMajor, kVersionMinor, gBitRate / 1000000, gTimeLimitSec ); } @@ -646,13 +744,16 @@ static void usage() { */ int main(int argc, char* const argv[]) { static const struct option longOptions[] = { - { "help", no_argument, NULL, 'h' }, - { "verbose", no_argument, NULL, 'v' }, - { "size", required_argument, NULL, 's' }, - { "bit-rate", required_argument, NULL, 'b' }, - { "time-limit", required_argument, NULL, 't' }, - { "rotate", no_argument, NULL, 'r' }, - { NULL, 0, NULL, 0 } + { "help", no_argument, NULL, 'h' }, + { "verbose", no_argument, NULL, 'v' }, + { "size", required_argument, NULL, 's' }, + { "bit-rate", required_argument, NULL, 'b' }, + { "time-limit", required_argument, NULL, 't' }, + { "show-device-info", no_argument, NULL, 'i' }, + { "show-frame-time", no_argument, NULL, 'f' }, + { "bugreport", no_argument, NULL, 'u' }, + { "rotate", no_argument, NULL, 'r' }, + { NULL, 0, NULL, 0 } }; while (true) { @@ -684,7 +785,9 @@ int main(int argc, char* const argv[]) { gSizeSpecified = true; break; case 'b': - gBitRate = atoi(optarg); + if (parseValueWithUnit(optarg, &gBitRate) != NO_ERROR) { + return 2; + } if (gBitRate < kMinBitRate || gBitRate > kMaxBitRate) { fprintf(stderr, "Bit rate %dbps outside acceptable range [%d,%d]\n", @@ -701,7 +804,18 @@ int main(int argc, char* const argv[]) { return 2; } break; + case 'i': + gWantInfoScreen = true; + break; + case 'f': + gWantFrameTime = true; + break; + case 'u': + gWantInfoScreen = true; + gWantFrameTime = true; + break; case 'r': + // experimental feature gRotate = true; break; default: diff --git a/cmds/screenrecord/screenrecord.h b/cmds/screenrecord/screenrecord.h new file mode 100644 index 0000000..95e8a68 --- /dev/null +++ b/cmds/screenrecord/screenrecord.h @@ -0,0 +1,23 @@ +/* + * Copyright 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef SCREENRECORD_SCREENRECORD_H +#define SCREENRECORD_SCREENRECORD_H + +#define kVersionMajor 1 +#define kVersionMinor 1 + +#endif /*SCREENRECORD_SCREENRECORD_H*/ diff --git a/drm/libdrmframework/plugins/forward-lock/FwdLockEngine/Android.mk b/drm/libdrmframework/plugins/forward-lock/FwdLockEngine/Android.mk index e251f82..48b0afe 100644 --- a/drm/libdrmframework/plugins/forward-lock/FwdLockEngine/Android.mk +++ b/drm/libdrmframework/plugins/forward-lock/FwdLockEngine/Android.mk @@ -61,7 +61,7 @@ LOCAL_C_INCLUDES += \ $(LOCAL_PATH)/include \ external/openssl/include -LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/drm +LOCAL_MODULE_RELATIVE_PATH := drm LOCAL_MODULE_TAGS := optional diff --git a/include/media/stagefright/ACodec.h b/include/media/stagefright/ACodec.h index 46c62dc..c4f8c36 100644 --- a/include/media/stagefright/ACodec.h +++ b/include/media/stagefright/ACodec.h @@ -254,6 +254,8 @@ private: int32_t numChannels, int32_t sampleRate, int32_t bitRate, int32_t aacProfile, bool isADTS); + status_t setupAC3Codec(bool encoder, int32_t numChannels, int32_t sampleRate); + status_t selectAudioPortFormat( OMX_U32 portIndex, OMX_AUDIO_CODINGTYPE desiredFormat); diff --git a/include/media/stagefright/MediaDefs.h b/include/media/stagefright/MediaDefs.h index 85693d4..cf5beda 100644 --- a/include/media/stagefright/MediaDefs.h +++ b/include/media/stagefright/MediaDefs.h @@ -44,6 +44,7 @@ extern const char *MEDIA_MIMETYPE_AUDIO_RAW; extern const char *MEDIA_MIMETYPE_AUDIO_FLAC; extern const char *MEDIA_MIMETYPE_AUDIO_AAC_ADTS; extern const char *MEDIA_MIMETYPE_AUDIO_MSGSM; +extern const char *MEDIA_MIMETYPE_AUDIO_AC3; extern const char *MEDIA_MIMETYPE_CONTAINER_MPEG4; extern const char *MEDIA_MIMETYPE_CONTAINER_WAV; diff --git a/include/media/stagefright/MetaData.h b/include/media/stagefright/MetaData.h index 3a87474..db8216b 100644 --- a/include/media/stagefright/MetaData.h +++ b/include/media/stagefright/MetaData.h @@ -215,6 +215,8 @@ public: bool findData(uint32_t key, uint32_t *type, const void **data, size_t *size) const; + bool hasData(uint32_t key) const; + void dumpToLog() const; protected: diff --git a/include/media/stagefright/OMXCodec.h b/include/media/stagefright/OMXCodec.h index daaf20f..5121c17 100644 --- a/include/media/stagefright/OMXCodec.h +++ b/include/media/stagefright/OMXCodec.h @@ -248,6 +248,8 @@ private: int32_t numChannels, int32_t sampleRate, int32_t bitRate, int32_t aacProfile, bool isADTS); + status_t setAC3Format(int32_t numChannels, int32_t sampleRate); + void setG711Format(int32_t numChannels); status_t setVideoPortFormatType( diff --git a/libvideoeditor/lvpp/VideoEditorPreviewController.cpp b/libvideoeditor/lvpp/VideoEditorPreviewController.cpp index 149c4ea..c3cd3d0 100755 --- a/libvideoeditor/lvpp/VideoEditorPreviewController.cpp +++ b/libvideoeditor/lvpp/VideoEditorPreviewController.cpp @@ -1248,7 +1248,7 @@ void VideoEditorPreviewController::notify( case MEDIA_SET_VIDEO_SIZE: ALOGV("MEDIA_SET_VIDEO_SIZE; New video size %d x %d", ext1, ext2); break; - case 0xAAAAAAAA: + case static_cast<int>(0xAAAAAAAA): ALOGV("VIDEO PLAYBACK ALMOST over, prepare next player"); // Select next player and prepare it // If there is a clip after this one @@ -1268,7 +1268,7 @@ void VideoEditorPreviewController::notify( } } break; - case 0xBBBBBBBB: + case static_cast<int>(0xBBBBBBBB): { ALOGV("VIDEO PLAYBACK, Update Overlay"); int overlayIndex = ext2; diff --git a/libvideoeditor/osal/inc/M4OSA_Clock.h b/libvideoeditor/osal/inc/M4OSA_Clock.h index db753a5..52ea696 100755 --- a/libvideoeditor/osal/inc/M4OSA_Clock.h +++ b/libvideoeditor/osal/inc/M4OSA_Clock.h @@ -21,7 +21,7 @@ ************************************************************************ */ -#ifndef M4OSA_CLOCH_H +#ifndef M4OSA_CLOCK_H #define M4OSA_CLOCK_H #include "M4OSA_Types.h" diff --git a/libvideoeditor/osal/inc/M4OSA_Error.h b/libvideoeditor/osal/inc/M4OSA_Error.h index 4d59529..75c3177 100755 --- a/libvideoeditor/osal/inc/M4OSA_Error.h +++ b/libvideoeditor/osal/inc/M4OSA_Error.h @@ -57,7 +57,7 @@ typedef M4OSA_UInt32 M4OSA_ERR; * @arg coreID: (IN) [M4OSA_UInt32] CoreID to put in the error code * @arg errorID: (IN) [M4OSA_UInt32] ErrorID to put in the error code*/ #define M4OSA_ERR_CREATE(severity, coreID, errorID)\ - (M4OSA_Int32)((((M4OSA_UInt32)severity)<<30)+((((M4OSA_UInt32)coreID)&0x003FFF)<<16)+(((M4OSA_UInt32)errorID)&0x00FFFF)) + (M4OSA_UInt32)((((M4OSA_UInt32)severity)<<30)+((((M4OSA_UInt32)coreID)&0x003FFF)<<16)+(((M4OSA_UInt32)errorID)&0x00FFFF)) /** This macro extracts the 3 fields from the error: * @arg error: (IN) [M4OSA_ERR] Error code diff --git a/libvideoeditor/vss/stagefrightshells/src/VideoEditor3gpReader.cpp b/libvideoeditor/vss/stagefrightshells/src/VideoEditor3gpReader.cpp index 3c8915a..99cf9ec 100755 --- a/libvideoeditor/vss/stagefrightshells/src/VideoEditor3gpReader.cpp +++ b/libvideoeditor/vss/stagefrightshells/src/VideoEditor3gpReader.cpp @@ -776,16 +776,16 @@ M4OSA_ERR VideoEditor3gpReader_setOption(M4OSA_Context context, case M4READER_kOptionID_SetOsaFileReaderFctsPtr: break; - case M4READER_3GP_kOptionID_AudioOnly: + case static_cast<M4OSA_OptionID>(M4READER_3GP_kOptionID_AudioOnly): break; - case M4READER_3GP_kOptionID_VideoOnly: + case static_cast<M4OSA_OptionID>(M4READER_3GP_kOptionID_VideoOnly): break; - case M4READER_3GP_kOptionID_FastOpenMode: + case static_cast<M4OSA_OptionID>(M4READER_3GP_kOptionID_FastOpenMode): break; - case M4READER_kOptionID_MaxMetadataSize: + case static_cast<M4OSA_OptionID>(M4READER_kOptionID_MaxMetadataSize): break; default: diff --git a/libvideoeditor/vss/stagefrightshells/src/VideoEditorAudioDecoder.cpp b/libvideoeditor/vss/stagefrightshells/src/VideoEditorAudioDecoder.cpp index 9b35d07..e4c7ea1 100755 --- a/libvideoeditor/vss/stagefrightshells/src/VideoEditorAudioDecoder.cpp +++ b/libvideoeditor/vss/stagefrightshells/src/VideoEditorAudioDecoder.cpp @@ -809,7 +809,7 @@ M4OSA_ERR VideoEditorAudioDecoder_setOption(M4AD_Context pContext, pDecoderContext = (VideoEditorAudioDecoder_Context*)pContext; switch( optionID ) { - case M4AD_kOptionID_UserParam: + case static_cast<M4OSA_UInt32>(M4AD_kOptionID_UserParam): ALOGV("VideoEditorAudioDecodersetOption UserParam is not supported"); err = M4ERR_NOT_IMPLEMENTED; break; diff --git a/media/libeffects/downmix/Android.mk b/media/libeffects/downmix/Android.mk index 5d0a87c..2bb6dbe 100644 --- a/media/libeffects/downmix/Android.mk +++ b/media/libeffects/downmix/Android.mk @@ -13,7 +13,7 @@ LOCAL_MODULE:= libdownmix LOCAL_MODULE_TAGS := optional -LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/soundfx +LOCAL_MODULE_RELATIVE_PATH := soundfx ifeq ($(TARGET_OS)-$(TARGET_SIMULATOR),linux-true) LOCAL_LDLIBS += -ldl diff --git a/media/libeffects/downmix/EffectDownmix.c b/media/libeffects/downmix/EffectDownmix.c index f17a6e8..f779876 100644 --- a/media/libeffects/downmix/EffectDownmix.c +++ b/media/libeffects/downmix/EffectDownmix.c @@ -61,13 +61,13 @@ const struct effect_interface_s gDownmixInterface = { // This is the only symbol that needs to be exported __attribute__ ((visibility ("default"))) audio_effect_library_t AUDIO_EFFECT_LIBRARY_INFO_SYM = { - tag : AUDIO_EFFECT_LIBRARY_TAG, - version : EFFECT_LIBRARY_API_VERSION, - name : "Downmix Library", - implementor : "The Android Open Source Project", - create_effect : DownmixLib_Create, - release_effect : DownmixLib_Release, - get_descriptor : DownmixLib_GetDescriptor, + .tag = AUDIO_EFFECT_LIBRARY_TAG, + .version = EFFECT_LIBRARY_API_VERSION, + .name = "Downmix Library", + .implementor = "The Android Open Source Project", + .create_effect = DownmixLib_Create, + .release_effect = DownmixLib_Release, + .get_descriptor = DownmixLib_GetDescriptor, }; diff --git a/media/libeffects/loudness/Android.mk b/media/libeffects/loudness/Android.mk index dcb7b27..edf964e 100644 --- a/media/libeffects/loudness/Android.mk +++ b/media/libeffects/loudness/Android.mk @@ -14,7 +14,7 @@ LOCAL_SHARED_LIBRARIES := \ liblog \ libstlport -LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/soundfx +LOCAL_MODULE_RELATIVE_PATH := soundfx LOCAL_MODULE:= libldnhncr LOCAL_C_INCLUDES := \ diff --git a/media/libeffects/loudness/EffectLoudnessEnhancer.cpp b/media/libeffects/loudness/EffectLoudnessEnhancer.cpp index 91ed677..3c2b320 100644 --- a/media/libeffects/loudness/EffectLoudnessEnhancer.cpp +++ b/media/libeffects/loudness/EffectLoudnessEnhancer.cpp @@ -453,13 +453,13 @@ const struct effect_interface_s gLEInterface = { // This is the only symbol that needs to be exported __attribute__ ((visibility ("default"))) audio_effect_library_t AUDIO_EFFECT_LIBRARY_INFO_SYM = { - tag : AUDIO_EFFECT_LIBRARY_TAG, - version : EFFECT_LIBRARY_API_VERSION, - name : "Loudness Enhancer Library", - implementor : "The Android Open Source Project", - create_effect : LELib_Create, - release_effect : LELib_Release, - get_descriptor : LELib_GetDescriptor, + .tag = AUDIO_EFFECT_LIBRARY_TAG, + .version = EFFECT_LIBRARY_API_VERSION, + .name = "Loudness Enhancer Library", + .implementor = "The Android Open Source Project", + .create_effect = LELib_Create, + .release_effect = LELib_Release, + .get_descriptor = LELib_GetDescriptor, }; }; // extern "C" diff --git a/media/libeffects/lvm/wrapper/Android.mk b/media/libeffects/lvm/wrapper/Android.mk index f1af389..68ba34c 100644 --- a/media/libeffects/lvm/wrapper/Android.mk +++ b/media/libeffects/lvm/wrapper/Android.mk @@ -13,7 +13,7 @@ LOCAL_CFLAGS += -fvisibility=hidden LOCAL_MODULE:= libbundlewrapper -LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/soundfx +LOCAL_MODULE_RELATIVE_PATH := soundfx LOCAL_STATIC_LIBRARIES += libmusicbundle @@ -42,7 +42,7 @@ LOCAL_CFLAGS += -fvisibility=hidden LOCAL_MODULE:= libreverbwrapper -LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/soundfx +LOCAL_MODULE_RELATIVE_PATH := soundfx LOCAL_STATIC_LIBRARIES += libreverb diff --git a/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp b/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp index 85232e7..28d239a 100644 --- a/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp +++ b/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp @@ -3267,13 +3267,13 @@ const struct effect_interface_s gLvmEffectInterface = { // This is the only symbol that needs to be exported __attribute__ ((visibility ("default"))) audio_effect_library_t AUDIO_EFFECT_LIBRARY_INFO_SYM = { - tag : AUDIO_EFFECT_LIBRARY_TAG, - version : EFFECT_LIBRARY_API_VERSION, - name : "Effect Bundle Library", - implementor : "NXP Software Ltd.", - create_effect : android::EffectCreate, - release_effect : android::EffectRelease, - get_descriptor : android::EffectGetDescriptor, + .tag = AUDIO_EFFECT_LIBRARY_TAG, + .version = EFFECT_LIBRARY_API_VERSION, + .name = "Effect Bundle Library", + .implementor = "NXP Software Ltd.", + .create_effect = android::EffectCreate, + .release_effect = android::EffectRelease, + .get_descriptor = android::EffectGetDescriptor, }; } diff --git a/media/libeffects/lvm/wrapper/Reverb/EffectReverb.cpp b/media/libeffects/lvm/wrapper/Reverb/EffectReverb.cpp index 8a96212..0367302 100644 --- a/media/libeffects/lvm/wrapper/Reverb/EffectReverb.cpp +++ b/media/libeffects/lvm/wrapper/Reverb/EffectReverb.cpp @@ -2149,13 +2149,13 @@ const struct effect_interface_s gReverbInterface = { // This is the only symbol that needs to be exported __attribute__ ((visibility ("default"))) audio_effect_library_t AUDIO_EFFECT_LIBRARY_INFO_SYM = { - tag : AUDIO_EFFECT_LIBRARY_TAG, - version : EFFECT_LIBRARY_API_VERSION, - name : "Reverb Library", - implementor : "NXP Software Ltd.", - create_effect : android::EffectCreate, - release_effect : android::EffectRelease, - get_descriptor : android::EffectGetDescriptor, + .tag = AUDIO_EFFECT_LIBRARY_TAG, + .version = EFFECT_LIBRARY_API_VERSION, + .name = "Reverb Library", + .implementor = "NXP Software Ltd.", + .create_effect = android::EffectCreate, + .release_effect = android::EffectRelease, + .get_descriptor = android::EffectGetDescriptor, }; } diff --git a/media/libeffects/preprocessing/Android.mk b/media/libeffects/preprocessing/Android.mk index c344352..9e8cb83 100644 --- a/media/libeffects/preprocessing/Android.mk +++ b/media/libeffects/preprocessing/Android.mk @@ -5,7 +5,7 @@ include $(CLEAR_VARS) LOCAL_MODULE:= libaudiopreprocessing LOCAL_MODULE_TAGS := optional -LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/soundfx +LOCAL_MODULE_RELATIVE_PATH := soundfx LOCAL_SRC_FILES:= \ PreProcessing.cpp diff --git a/media/libeffects/preprocessing/PreProcessing.cpp b/media/libeffects/preprocessing/PreProcessing.cpp index 25586e8..d72eaf5 100644 --- a/media/libeffects/preprocessing/PreProcessing.cpp +++ b/media/libeffects/preprocessing/PreProcessing.cpp @@ -1892,13 +1892,13 @@ int PreProcessingLib_GetDescriptor(const effect_uuid_t *uuid, // This is the only symbol that needs to be exported __attribute__ ((visibility ("default"))) audio_effect_library_t AUDIO_EFFECT_LIBRARY_INFO_SYM = { - tag : AUDIO_EFFECT_LIBRARY_TAG, - version : EFFECT_LIBRARY_API_VERSION, - name : "Audio Preprocessing Library", - implementor : "The Android Open Source Project", - create_effect : PreProcessingLib_Create, - release_effect : PreProcessingLib_Release, - get_descriptor : PreProcessingLib_GetDescriptor + .tag = AUDIO_EFFECT_LIBRARY_TAG, + .version = EFFECT_LIBRARY_API_VERSION, + .name = "Audio Preprocessing Library", + .implementor = "The Android Open Source Project", + .create_effect = PreProcessingLib_Create, + .release_effect = PreProcessingLib_Release, + .get_descriptor = PreProcessingLib_GetDescriptor }; }; // extern "C" diff --git a/media/libeffects/proxy/Android.mk b/media/libeffects/proxy/Android.mk index a1894b7..b438796 100644 --- a/media/libeffects/proxy/Android.mk +++ b/media/libeffects/proxy/Android.mk @@ -15,7 +15,7 @@ LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE:= libeffectproxy -LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/soundfx +LOCAL_MODULE_RELATIVE_PATH := soundfx LOCAL_MODULE_TAGS := optional diff --git a/media/libeffects/proxy/EffectProxy.cpp b/media/libeffects/proxy/EffectProxy.cpp index f93a143..62d3fd3 100644 --- a/media/libeffects/proxy/EffectProxy.cpp +++ b/media/libeffects/proxy/EffectProxy.cpp @@ -363,11 +363,11 @@ int Effect_getDescriptor(effect_handle_t self, __attribute__ ((visibility ("default"))) audio_effect_library_t AUDIO_EFFECT_LIBRARY_INFO_SYM = { - tag : AUDIO_EFFECT_LIBRARY_TAG, - version : EFFECT_LIBRARY_API_VERSION, - name : "Effect Proxy", - implementor : "AOSP", - create_effect : android::EffectProxyCreate, - release_effect : android::EffectProxyRelease, - get_descriptor : android::EffectProxyGetDescriptor, + .tag = AUDIO_EFFECT_LIBRARY_TAG, + .version = EFFECT_LIBRARY_API_VERSION, + .name = "Effect Proxy", + .implementor = "AOSP", + .create_effect = android::EffectProxyCreate, + .release_effect = android::EffectProxyRelease, + .get_descriptor = android::EffectProxyGetDescriptor, }; diff --git a/media/libeffects/testlibs/Android.mk_ b/media/libeffects/testlibs/Android.mk_ index 2954908..672ebba 100644 --- a/media/libeffects/testlibs/Android.mk_ +++ b/media/libeffects/testlibs/Android.mk_ @@ -11,7 +11,7 @@ LOCAL_CFLAGS+= -O2 LOCAL_SHARED_LIBRARIES := \ libcutils -LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/soundfx +LOCAL_MODULE_RELATIVE_PATH := soundfx LOCAL_MODULE:= libreverbtest ifeq ($(TARGET_OS)-$(TARGET_SIMULATOR),linux-true) @@ -47,7 +47,7 @@ LOCAL_CFLAGS+= -O2 LOCAL_SHARED_LIBRARIES := \ libcutils -LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/soundfx +LOCAL_MODULE_RELATIVE_PATH := soundfx LOCAL_MODULE:= libequalizertest ifeq ($(TARGET_OS)-$(TARGET_SIMULATOR),linux-true) diff --git a/media/libeffects/visualizer/Android.mk b/media/libeffects/visualizer/Android.mk index e196eb2..dd2d306 100644 --- a/media/libeffects/visualizer/Android.mk +++ b/media/libeffects/visualizer/Android.mk @@ -13,7 +13,7 @@ LOCAL_SHARED_LIBRARIES := \ liblog \ libdl -LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/soundfx +LOCAL_MODULE_RELATIVE_PATH := soundfx LOCAL_MODULE:= libvisualizer LOCAL_C_INCLUDES := \ diff --git a/media/libeffects/visualizer/EffectVisualizer.cpp b/media/libeffects/visualizer/EffectVisualizer.cpp index dc403ab..2d66eef 100644 --- a/media/libeffects/visualizer/EffectVisualizer.cpp +++ b/media/libeffects/visualizer/EffectVisualizer.cpp @@ -678,13 +678,13 @@ const struct effect_interface_s gVisualizerInterface = { // This is the only symbol that needs to be exported __attribute__ ((visibility ("default"))) audio_effect_library_t AUDIO_EFFECT_LIBRARY_INFO_SYM = { - tag : AUDIO_EFFECT_LIBRARY_TAG, - version : EFFECT_LIBRARY_API_VERSION, - name : "Visualizer Library", - implementor : "The Android Open Source Project", - create_effect : VisualizerLib_Create, - release_effect : VisualizerLib_Release, - get_descriptor : VisualizerLib_GetDescriptor, + .tag = AUDIO_EFFECT_LIBRARY_TAG, + .version = EFFECT_LIBRARY_API_VERSION, + .name = "Visualizer Library", + .implementor = "The Android Open Source Project", + .create_effect = VisualizerLib_Create, + .release_effect = VisualizerLib_Release, + .get_descriptor = VisualizerLib_GetDescriptor, }; }; // extern "C" diff --git a/media/libmedia/AudioParameter.cpp b/media/libmedia/AudioParameter.cpp index e3fea77..33dbf0b 100644 --- a/media/libmedia/AudioParameter.cpp +++ b/media/libmedia/AudioParameter.cpp @@ -37,9 +37,10 @@ AudioParameter::AudioParameter(const String8& keyValuePairs) { char *str = new char[keyValuePairs.length()+1]; mKeyValuePairs = keyValuePairs; + char *last; strcpy(str, keyValuePairs.string()); - char *pair = strtok(str, ";"); + char *pair = strtok_r(str, ";", &last); while (pair != NULL) { if (strlen(pair) != 0) { size_t eqIdx = strcspn(pair, "="); @@ -58,7 +59,7 @@ AudioParameter::AudioParameter(const String8& keyValuePairs) } else { ALOGV("AudioParameter() cstor empty key value pair"); } - pair = strtok(NULL, ";"); + pair = strtok_r(NULL, ";", &last); } delete[] str; diff --git a/media/libmedia/MemoryLeakTrackUtil.cpp b/media/libmedia/MemoryLeakTrackUtil.cpp index 6a108ae..f004ca4 100644 --- a/media/libmedia/MemoryLeakTrackUtil.cpp +++ b/media/libmedia/MemoryLeakTrackUtil.cpp @@ -49,7 +49,7 @@ struct MyString8 { } void append(const char *s) { - strcat(mPtr, s); + strncat(mPtr, s, MAX_SIZE - size() - 1); } const char *string() const { @@ -60,6 +60,10 @@ struct MyString8 { return strlen(mPtr); } + void clear() { + *mPtr = '\0'; + } + private: char *mPtr; @@ -139,6 +143,9 @@ void dumpMemoryAddresses(int fd) } } while (moved); + write(fd, result.string(), result.size()); + result.clear(); + for (size_t i = 0; i < count; i++) { AllocEntry *e = &entries[i]; @@ -152,13 +159,14 @@ void dumpMemoryAddresses(int fd) result.append(buffer); } result.append("\n"); + + write(fd, result.string(), result.size()); + result.clear(); } delete[] entries; free_malloc_leak_info(info); } - - write(fd, result.string(), result.size()); } #else diff --git a/media/libmediaplayerservice/nuplayer/NuPlayer.cpp b/media/libmediaplayerservice/nuplayer/NuPlayer.cpp index f710b55..25d55a3 100644 --- a/media/libmediaplayerservice/nuplayer/NuPlayer.cpp +++ b/media/libmediaplayerservice/nuplayer/NuPlayer.cpp @@ -32,6 +32,8 @@ #include "ATSParser.h" +#include "SoftwareRenderer.h" + #include <cutils/properties.h> // for property_get #include <media/stagefright/foundation/hexdump.h> #include <media/stagefright/foundation/ABuffer.h> @@ -146,6 +148,7 @@ NuPlayer::NuPlayer() : mUIDValid(false), mSourceFlags(0), mVideoIsAVC(false), + mNeedsSwRenderer(false), mAudioEOS(false), mVideoEOS(false), mScanSourcesPending(false), @@ -444,6 +447,7 @@ void NuPlayer::onMessageReceived(const sp<AMessage> &msg) { ALOGV("kWhatStart"); mVideoIsAVC = false; + mNeedsSwRenderer = false; mAudioEOS = false; mVideoEOS = false; mSkipRenderingAudioUntilMediaTimeUs = -1; @@ -680,6 +684,20 @@ void NuPlayer::onMessageReceived(const sp<AMessage> &msg) { notifyListener( MEDIA_SET_VIDEO_SIZE, displayWidth, displayHeight); + + if (mNeedsSwRenderer && mNativeWindow != NULL) { + int32_t colorFormat; + CHECK(codecRequest->findInt32("color-format", &colorFormat)); + + sp<MetaData> meta = new MetaData; + meta->setInt32(kKeyWidth, width); + meta->setInt32(kKeyHeight, height); + meta->setRect(kKeyCropRect, cropLeft, cropTop, cropRight, cropBottom); + meta->setInt32(kKeyColorFormat, colorFormat); + + mRenderer->setSoftRenderer( + new SoftwareRenderer(mNativeWindow->getNativeWindow(), meta)); + } } } else if (what == ACodec::kWhatShutdownCompleted) { ALOGV("%s shutdown completed", audio ? "audio" : "video"); @@ -703,8 +721,13 @@ void NuPlayer::onMessageReceived(const sp<AMessage> &msg) { mRenderer->queueEOS(audio, UNKNOWN_ERROR); } else if (what == ACodec::kWhatDrainThisBuffer) { renderBuffer(audio, codecRequest); - } else if (what != ACodec::kWhatComponentAllocated - && what != ACodec::kWhatComponentConfigured + } else if (what == ACodec::kWhatComponentAllocated) { + if (!audio) { + AString name; + CHECK(codecRequest->findString("componentName", &name)); + mNeedsSwRenderer = name.startsWith("OMX.google."); + } + } else if (what != ACodec::kWhatComponentConfigured && what != ACodec::kWhatBuffersAllocated) { ALOGV("Unhandled codec notification %d '%c%c%c%c'.", what, diff --git a/media/libmediaplayerservice/nuplayer/NuPlayer.h b/media/libmediaplayerservice/nuplayer/NuPlayer.h index 13350f3..590e1f2 100644 --- a/media/libmediaplayerservice/nuplayer/NuPlayer.h +++ b/media/libmediaplayerservice/nuplayer/NuPlayer.h @@ -116,6 +116,7 @@ private: sp<MediaPlayerBase::AudioSink> mAudioSink; sp<Decoder> mVideoDecoder; bool mVideoIsAVC; + bool mNeedsSwRenderer; sp<Decoder> mAudioDecoder; sp<Renderer> mRenderer; diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp index 3b2784b..bf5271e 100644 --- a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp +++ b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp @@ -20,6 +20,8 @@ #include "NuPlayerRenderer.h" +#include "SoftwareRenderer.h" + #include <media/stagefright/foundation/ABuffer.h> #include <media/stagefright/foundation/ADebug.h> #include <media/stagefright/foundation/AMessage.h> @@ -34,6 +36,7 @@ NuPlayer::Renderer::Renderer( const sp<AMessage> ¬ify, uint32_t flags) : mAudioSink(sink), + mSoftRenderer(NULL), mNotify(notify), mFlags(flags), mNumFramesWritten(0), @@ -57,6 +60,12 @@ NuPlayer::Renderer::Renderer( } NuPlayer::Renderer::~Renderer() { + delete mSoftRenderer; +} + +void NuPlayer::Renderer::setSoftRenderer(SoftwareRenderer *softRenderer) { + delete mSoftRenderer; + mSoftRenderer = softRenderer; } void NuPlayer::Renderer::queueBuffer( @@ -413,7 +422,12 @@ void NuPlayer::Renderer::onDrainVideoQueue() { ALOGV("video late by %lld us (%.2f secs)", mVideoLateByUs, mVideoLateByUs / 1E6); } else { - ALOGV("rendering video at media time %.2f secs", mediaTimeUs / 1E6); + ALOGV("rendering video at media time %.2f secs", + (mFlags & FLAG_REAL_TIME ? realTimeUs : + (realTimeUs + mAnchorTimeMediaUs - mAnchorTimeRealUs)) / 1E6); + if (mSoftRenderer != NULL) { + mSoftRenderer->render(entry->mBuffer->data(), entry->mBuffer->size(), NULL); + } } entry->mNotifyConsumed->setInt32("render", !tooLate); diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h index 94a05ea..9124e03 100644 --- a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h +++ b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h @@ -23,6 +23,7 @@ namespace android { struct ABuffer; +class SoftwareRenderer; struct NuPlayer::Renderer : public AHandler { enum Flags { @@ -56,6 +57,8 @@ struct NuPlayer::Renderer : public AHandler { kWhatMediaRenderingStart = 'mdrd', }; + void setSoftRenderer(SoftwareRenderer *softRenderer); + protected: virtual ~Renderer(); @@ -83,6 +86,7 @@ private: static const int64_t kMinPositionUpdateDelayUs; sp<MediaPlayerBase::AudioSink> mAudioSink; + SoftwareRenderer *mSoftRenderer; sp<AMessage> mNotify; uint32_t mFlags; List<QueueEntry> mAudioQueue; diff --git a/media/libnbaio/MonoPipe.cpp b/media/libnbaio/MonoPipe.cpp index de0ad28..3c61b60 100644 --- a/media/libnbaio/MonoPipe.cpp +++ b/media/libnbaio/MonoPipe.cpp @@ -183,7 +183,7 @@ ssize_t MonoPipe::write(const void *buffer, size_t count) } } if (ns > 0) { - const struct timespec req = {0, ns}; + const struct timespec req = {0, static_cast<long>(ns)}; nanosleep(&req, NULL); } // record the time that this write() completed diff --git a/media/libstagefright/ACodec.cpp b/media/libstagefright/ACodec.cpp index 3ad3ca7..d737b2b 100644 --- a/media/libstagefright/ACodec.cpp +++ b/media/libstagefright/ACodec.cpp @@ -35,7 +35,9 @@ #include <media/hardware/HardwareAPI.h> +#include <OMX_AudioExt.h> #include <OMX_Component.h> +#include <OMX_IndexExt.h> #include "include/avc_utils.h" @@ -997,6 +999,10 @@ status_t ACodec::setComponentRole( "audio_decoder.flac", "audio_encoder.flac" }, { MEDIA_MIMETYPE_AUDIO_MSGSM, "audio_decoder.gsm", "audio_encoder.gsm" }, + { MEDIA_MIMETYPE_VIDEO_MPEG2, + "video_decoder.mpeg2", "video_encoder.mpeg2" }, + { MEDIA_MIMETYPE_AUDIO_AC3, + "audio_decoder.ac3", "audio_encoder.ac3" }, }; static const size_t kNumMimeToRole = @@ -1295,6 +1301,15 @@ status_t ACodec::configureCodec( } else { err = setupRawAudioFormat(kPortIndexInput, sampleRate, numChannels); } + } else if (!strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_AC3)) { + int32_t numChannels; + int32_t sampleRate; + if (!msg->findInt32("channel-count", &numChannels) + || !msg->findInt32("sample-rate", &sampleRate)) { + err = INVALID_OPERATION; + } else { + err = setupAC3Codec(encoder, numChannels, sampleRate); + } } if (err != OK) { @@ -1491,6 +1506,44 @@ status_t ACodec::setupAACCodec( mNode, OMX_IndexParamAudioAac, &profile, sizeof(profile)); } +status_t ACodec::setupAC3Codec( + bool encoder, int32_t numChannels, int32_t sampleRate) { + status_t err = setupRawAudioFormat( + encoder ? kPortIndexInput : kPortIndexOutput, sampleRate, numChannels); + + if (err != OK) { + return err; + } + + if (encoder) { + ALOGW("AC3 encoding is not supported."); + return INVALID_OPERATION; + } + + OMX_AUDIO_PARAM_ANDROID_AC3TYPE def; + InitOMXParams(&def); + def.nPortIndex = kPortIndexInput; + + err = mOMX->getParameter( + mNode, + (OMX_INDEXTYPE)OMX_IndexParamAudioAndroidAc3, + &def, + sizeof(def)); + + if (err != OK) { + return err; + } + + def.nChannels = numChannels; + def.nSampleRate = sampleRate; + + return mOMX->setParameter( + mNode, + (OMX_INDEXTYPE)OMX_IndexParamAudioAndroidAc3, + &def, + sizeof(def)); +} + static OMX_AUDIO_AMRBANDMODETYPE pickModeFromBitRate( bool isAMRWB, int32_t bps) { if (isAMRWB) { @@ -2573,7 +2626,7 @@ void ACodec::sendFormatChange(const sp<AMessage> &reply) { { OMX_AUDIO_PORTDEFINITIONTYPE *audioDef = &def.format.audio; - switch (audioDef->eEncoding) { + switch ((int)audioDef->eEncoding) { case OMX_AUDIO_CodingPCM: { OMX_AUDIO_PARAM_PCMMODETYPE params; @@ -2679,6 +2732,24 @@ void ACodec::sendFormatChange(const sp<AMessage> &reply) { break; } + case OMX_AUDIO_CodingAndroidAC3: + { + OMX_AUDIO_PARAM_ANDROID_AC3TYPE params; + InitOMXParams(¶ms); + params.nPortIndex = kPortIndexOutput; + + CHECK_EQ((status_t)OK, mOMX->getParameter( + mNode, + (OMX_INDEXTYPE)OMX_IndexParamAudioAndroidAc3, + ¶ms, + sizeof(params))); + + notify->setString("mime", MEDIA_MIMETYPE_AUDIO_AC3); + notify->setInt32("channel-count", params.nChannels); + notify->setInt32("sample-rate", params.nSampleRate); + break; + } + default: TRESPASS(); } diff --git a/media/libstagefright/AwesomePlayer.cpp b/media/libstagefright/AwesomePlayer.cpp index 130207d..aae6800 100644 --- a/media/libstagefright/AwesomePlayer.cpp +++ b/media/libstagefright/AwesomePlayer.cpp @@ -2096,7 +2096,10 @@ void AwesomePlayer::onCheckAudioStatus() { mSeekNotificationSent = true; } - mSeeking = NO_SEEK; + if (mVideoSource == NULL) { + // For video the mSeeking flag is always reset in finishSeekIfNecessary + mSeeking = NO_SEEK; + } notifyIfMediaStarted_l(); } diff --git a/media/libstagefright/MPEG4Extractor.cpp b/media/libstagefright/MPEG4Extractor.cpp index 4926c1d..4f1c5b3 100644 --- a/media/libstagefright/MPEG4Extractor.cpp +++ b/media/libstagefright/MPEG4Extractor.cpp @@ -38,6 +38,9 @@ #include <media/stagefright/MetaData.h> #include <utils/String8.h> +#include <byteswap.h> +#include "include/ID3.h" + namespace android { class MPEG4Source : public MediaSource { @@ -680,8 +683,9 @@ status_t MPEG4Extractor::parseDrmSINF(off64_t *offset, off64_t data_offset) { } sinf->len = dataLen - 3; sinf->IPMPData = new char[sinf->len]; + data_offset += 2; - if (mDataSource->readAt(data_offset + 2, sinf->IPMPData, sinf->len) < sinf->len) { + if (mDataSource->readAt(data_offset, sinf->IPMPData, sinf->len) < sinf->len) { return ERROR_IO; } data_offset += sinf->len; @@ -1635,7 +1639,7 @@ status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth) { case FOURCC('d', 'a', 't', 'a'): { if (mPath.size() == 6 && underMetaDataPath(mPath)) { - status_t err = parseMetaData(data_offset, chunk_data_size); + status_t err = parseITunesMetaData(data_offset, chunk_data_size); if (err != OK) { return err; @@ -1767,6 +1771,35 @@ status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth) { break; } + case FOURCC('t', 'i', 't', 'l'): + case FOURCC('p', 'e', 'r', 'f'): + case FOURCC('a', 'u', 't', 'h'): + case FOURCC('g', 'n', 'r', 'e'): + case FOURCC('a', 'l', 'b', 'm'): + case FOURCC('y', 'r', 'r', 'c'): + { + status_t err = parse3GPPMetaData(data_offset, chunk_data_size, depth); + + if (err != OK) { + return err; + } + + *offset += chunk_size; + break; + } + + case FOURCC('I', 'D', '3', '2'): + { + if (chunk_data_size < 6) { + return ERROR_MALFORMED; + } + + parseID3v2MetaData(data_offset + 6); + + *offset += chunk_size; + break; + } + case FOURCC('-', '-', '-', '-'): { mLastCommentMean.clear(); @@ -2001,7 +2034,7 @@ status_t MPEG4Extractor::parseTrackHeader( return OK; } -status_t MPEG4Extractor::parseMetaData(off64_t offset, size_t size) { +status_t MPEG4Extractor::parseITunesMetaData(off64_t offset, size_t size) { if (size < 4) { return ERROR_MALFORMED; } @@ -2147,7 +2180,7 @@ status_t MPEG4Extractor::parseMetaData(off64_t offset, size_t size) { break; } - if (size >= 8 && metadataKey) { + if (size >= 8 && metadataKey && !mFileMetaData->hasData(metadataKey)) { if (metadataKey == kKeyAlbumArt) { mFileMetaData->setData( kKeyAlbumArt, MetaData::TYPE_NONE, @@ -2188,6 +2221,170 @@ status_t MPEG4Extractor::parseMetaData(off64_t offset, size_t size) { return OK; } +status_t MPEG4Extractor::parse3GPPMetaData(off64_t offset, size_t size, int depth) { + if (size < 4) { + return ERROR_MALFORMED; + } + + uint8_t *buffer = new uint8_t[size]; + if (mDataSource->readAt( + offset, buffer, size) != (ssize_t)size) { + delete[] buffer; + buffer = NULL; + + return ERROR_IO; + } + + uint32_t metadataKey = 0; + switch (mPath[depth]) { + case FOURCC('t', 'i', 't', 'l'): + { + metadataKey = kKeyTitle; + break; + } + case FOURCC('p', 'e', 'r', 'f'): + { + metadataKey = kKeyArtist; + break; + } + case FOURCC('a', 'u', 't', 'h'): + { + metadataKey = kKeyWriter; + break; + } + case FOURCC('g', 'n', 'r', 'e'): + { + metadataKey = kKeyGenre; + break; + } + case FOURCC('a', 'l', 'b', 'm'): + { + if (buffer[size - 1] != '\0') { + char tmp[4]; + sprintf(tmp, "%u", buffer[size - 1]); + + mFileMetaData->setCString(kKeyCDTrackNumber, tmp); + } + + metadataKey = kKeyAlbum; + break; + } + case FOURCC('y', 'r', 'r', 'c'): + { + char tmp[5]; + uint16_t year = U16_AT(&buffer[4]); + + if (year < 10000) { + sprintf(tmp, "%u", year); + + mFileMetaData->setCString(kKeyYear, tmp); + } + break; + } + + default: + break; + } + + if (metadataKey > 0) { + bool isUTF8 = true; // Common case + char16_t *framedata = NULL; + int len16 = 0; // Number of UTF-16 characters + + // smallest possible valid UTF-16 string w BOM: 0xfe 0xff 0x00 0x00 + if (size - 6 >= 4) { + len16 = ((size - 6) / 2) - 1; // don't include 0x0000 terminator + framedata = (char16_t *)(buffer + 6); + if (0xfffe == *framedata) { + // endianness marker (BOM) doesn't match host endianness + for (int i = 0; i < len16; i++) { + framedata[i] = bswap_16(framedata[i]); + } + // BOM is now swapped to 0xfeff, we will execute next block too + } + + if (0xfeff == *framedata) { + // Remove the BOM + framedata++; + len16--; + isUTF8 = false; + } + // else normal non-zero-length UTF-8 string + // we can't handle UTF-16 without BOM as there is no other + // indication of encoding. + } + + if (isUTF8) { + mFileMetaData->setCString(metadataKey, (const char *)buffer + 6); + } else { + // Convert from UTF-16 string to UTF-8 string. + String8 tmpUTF8str(framedata, len16); + mFileMetaData->setCString(metadataKey, tmpUTF8str.string()); + } + } + + delete[] buffer; + buffer = NULL; + + return OK; +} + +void MPEG4Extractor::parseID3v2MetaData(off64_t offset) { + ID3 id3(mDataSource, true /* ignorev1 */, offset); + + if (id3.isValid()) { + struct Map { + int key; + const char *tag1; + const char *tag2; + }; + static const Map kMap[] = { + { kKeyAlbum, "TALB", "TAL" }, + { kKeyArtist, "TPE1", "TP1" }, + { kKeyAlbumArtist, "TPE2", "TP2" }, + { kKeyComposer, "TCOM", "TCM" }, + { kKeyGenre, "TCON", "TCO" }, + { kKeyTitle, "TIT2", "TT2" }, + { kKeyYear, "TYE", "TYER" }, + { kKeyAuthor, "TXT", "TEXT" }, + { kKeyCDTrackNumber, "TRK", "TRCK" }, + { kKeyDiscNumber, "TPA", "TPOS" }, + { kKeyCompilation, "TCP", "TCMP" }, + }; + static const size_t kNumMapEntries = sizeof(kMap) / sizeof(kMap[0]); + + for (size_t i = 0; i < kNumMapEntries; ++i) { + if (!mFileMetaData->hasData(kMap[i].key)) { + ID3::Iterator *it = new ID3::Iterator(id3, kMap[i].tag1); + if (it->done()) { + delete it; + it = new ID3::Iterator(id3, kMap[i].tag2); + } + + if (it->done()) { + delete it; + continue; + } + + String8 s; + it->getString(&s); + delete it; + + mFileMetaData->setCString(kMap[i].key, s); + } + } + + size_t dataSize; + String8 mime; + const void *data = id3.getAlbumArt(&dataSize, &mime); + + if (data) { + mFileMetaData->setData(kKeyAlbumArt, MetaData::TYPE_NONE, data, dataSize); + mFileMetaData->setCString(kKeyAlbumArtMIME, mime.string()); + } + } +} + sp<MediaSource> MPEG4Extractor::getTrack(size_t index) { status_t err; if ((err = readMetaData()) != OK) { diff --git a/media/libstagefright/MediaCodec.cpp b/media/libstagefright/MediaCodec.cpp index c36dd7c..8af1aaf 100644 --- a/media/libstagefright/MediaCodec.cpp +++ b/media/libstagefright/MediaCodec.cpp @@ -746,6 +746,10 @@ void MediaCodec::onMessageReceived(const sp<AMessage> &msg) { CHECK(msg->findInt32("width", &width)); CHECK(msg->findInt32("height", &height)); + int32_t cropLeft, cropTop, cropRight, cropBottom; + CHECK(msg->findRect("crop", + &cropLeft, &cropTop, &cropRight, &cropBottom)); + int32_t colorFormat; CHECK(msg->findInt32( "color-format", &colorFormat)); @@ -753,6 +757,8 @@ void MediaCodec::onMessageReceived(const sp<AMessage> &msg) { sp<MetaData> meta = new MetaData; meta->setInt32(kKeyWidth, width); meta->setInt32(kKeyHeight, height); + meta->setRect(kKeyCropRect, + cropLeft, cropTop, cropRight, cropBottom); meta->setInt32(kKeyColorFormat, colorFormat); mSoftRenderer = diff --git a/media/libstagefright/MediaDefs.cpp b/media/libstagefright/MediaDefs.cpp index b5d4e44..340cba7 100644 --- a/media/libstagefright/MediaDefs.cpp +++ b/media/libstagefright/MediaDefs.cpp @@ -42,6 +42,7 @@ const char *MEDIA_MIMETYPE_AUDIO_RAW = "audio/raw"; const char *MEDIA_MIMETYPE_AUDIO_FLAC = "audio/flac"; const char *MEDIA_MIMETYPE_AUDIO_AAC_ADTS = "audio/aac-adts"; const char *MEDIA_MIMETYPE_AUDIO_MSGSM = "audio/gsm"; +const char *MEDIA_MIMETYPE_AUDIO_AC3 = "audio/ac3"; const char *MEDIA_MIMETYPE_CONTAINER_MPEG4 = "video/mp4"; const char *MEDIA_MIMETYPE_CONTAINER_WAV = "audio/x-wav"; diff --git a/media/libstagefright/MetaData.cpp b/media/libstagefright/MetaData.cpp index 7b60afc..1daead7 100644 --- a/media/libstagefright/MetaData.cpp +++ b/media/libstagefright/MetaData.cpp @@ -221,6 +221,16 @@ bool MetaData::findData(uint32_t key, uint32_t *type, return true; } +bool MetaData::hasData(uint32_t key) const { + ssize_t i = mItems.indexOfKey(key); + + if (i < 0) { + return false; + } + + return true; +} + MetaData::typed_data::typed_data() : mType(0), mSize(0) { diff --git a/media/libstagefright/OMXCodec.cpp b/media/libstagefright/OMXCodec.cpp index 070e438..a5671a0 100644 --- a/media/libstagefright/OMXCodec.cpp +++ b/media/libstagefright/OMXCodec.cpp @@ -40,7 +40,9 @@ #include <utils/Vector.h> #include <OMX_Audio.h> +#include <OMX_AudioExt.h> #include <OMX_Component.h> +#include <OMX_IndexExt.h> #include "include/avc_utils.h" @@ -529,6 +531,17 @@ status_t OMXCodec::configureCodec(const sp<MetaData> &meta) { sampleRate, numChannels); } + } else if (!strcasecmp(MEDIA_MIMETYPE_AUDIO_AC3, mMIME)) { + int32_t numChannels; + int32_t sampleRate; + CHECK(meta->findInt32(kKeyChannelCount, &numChannels)); + CHECK(meta->findInt32(kKeySampleRate, &sampleRate)); + + status_t err = setAC3Format(numChannels, sampleRate); + if (err != OK) { + CODEC_LOGE("setAC3Format() failed (err = %d)", err); + return err; + } } else if (!strcasecmp(MEDIA_MIMETYPE_AUDIO_G711_ALAW, mMIME) || !strcasecmp(MEDIA_MIMETYPE_AUDIO_G711_MLAW, mMIME)) { // These are PCM-like formats with a fixed sample rate but @@ -1395,6 +1408,10 @@ void OMXCodec::setComponentRole( "audio_decoder.flac", "audio_encoder.flac" }, { MEDIA_MIMETYPE_AUDIO_MSGSM, "audio_decoder.gsm", "audio_encoder.gsm" }, + { MEDIA_MIMETYPE_VIDEO_MPEG2, + "video_decoder.mpeg2", "video_encoder.mpeg2" }, + { MEDIA_MIMETYPE_AUDIO_AC3, + "audio_decoder.ac3", "audio_encoder.ac3" }, }; static const size_t kNumMimeToRole = @@ -3511,6 +3528,31 @@ status_t OMXCodec::setAACFormat( return OK; } +status_t OMXCodec::setAC3Format(int32_t numChannels, int32_t sampleRate) { + OMX_AUDIO_PARAM_ANDROID_AC3TYPE def; + InitOMXParams(&def); + def.nPortIndex = kPortIndexInput; + + status_t err = mOMX->getParameter( + mNode, + (OMX_INDEXTYPE)OMX_IndexParamAudioAndroidAc3, + &def, + sizeof(def)); + + if (err != OK) { + return err; + } + + def.nChannels = numChannels; + def.nSampleRate = sampleRate; + + return mOMX->setParameter( + mNode, + (OMX_INDEXTYPE)OMX_IndexParamAudioAndroidAc3, + &def, + sizeof(def)); +} + void OMXCodec::setG711Format(int32_t numChannels) { CHECK(!mIsEncoder); setRawAudioFormat(kPortIndexInput, 8000, numChannels); @@ -4444,6 +4486,17 @@ void OMXCodec::initOutputFormat(const sp<MetaData> &inputFormat) { mOutputFormat->setInt32(kKeyChannelCount, numChannels); mOutputFormat->setInt32(kKeySampleRate, sampleRate); mOutputFormat->setInt32(kKeyBitRate, bitRate); + } else if (audio_def->eEncoding == + (OMX_AUDIO_CODINGTYPE)OMX_AUDIO_CodingAndroidAC3) { + mOutputFormat->setCString( + kKeyMIMEType, MEDIA_MIMETYPE_AUDIO_AC3); + int32_t numChannels, sampleRate, bitRate; + inputFormat->findInt32(kKeyChannelCount, &numChannels); + inputFormat->findInt32(kKeySampleRate, &sampleRate); + inputFormat->findInt32(kKeyBitRate, &bitRate); + mOutputFormat->setInt32(kKeyChannelCount, numChannels); + mOutputFormat->setInt32(kKeySampleRate, sampleRate); + mOutputFormat->setInt32(kKeyBitRate, bitRate); } else { CHECK(!"Should not be here. Unknown audio encoding."); } diff --git a/media/libstagefright/TimedEventQueue.cpp b/media/libstagefright/TimedEventQueue.cpp index dedd186..0afac69 100644 --- a/media/libstagefright/TimedEventQueue.cpp +++ b/media/libstagefright/TimedEventQueue.cpp @@ -318,7 +318,7 @@ sp<TimedEventQueue::Event> TimedEventQueue::removeEventFromQueue_l( void TimedEventQueue::acquireWakeLock_l() { - if (mWakeLockCount++ == 0) { + if (mWakeLockCount == 0) { CHECK(mWakeLockToken == 0); if (mPowerManager == 0) { // use checkService() to avoid blocking if power service is not up yet @@ -341,21 +341,23 @@ void TimedEventQueue::acquireWakeLock_l() IPCThreadState::self()->restoreCallingIdentity(token); if (status == NO_ERROR) { mWakeLockToken = binder; + mWakeLockCount++; } } + } else { + mWakeLockCount++; } } void TimedEventQueue::releaseWakeLock_l(bool force) { + if (mWakeLockCount == 0) { + return; + } if (force) { - if (mWakeLockCount == 0) { - return; - } // Force wakelock release below by setting reference count to 1. mWakeLockCount = 1; } - CHECK(mWakeLockCount != 0); if (--mWakeLockCount == 0) { CHECK(mWakeLockToken != 0); if (mPowerManager != 0) { diff --git a/media/libstagefright/WVMExtractor.cpp b/media/libstagefright/WVMExtractor.cpp index 5ae80cc..bc48272 100644 --- a/media/libstagefright/WVMExtractor.cpp +++ b/media/libstagefright/WVMExtractor.cpp @@ -76,7 +76,7 @@ static void init_routine() { gVendorLibHandle = dlopen("libwvm.so", RTLD_NOW); if (gVendorLibHandle == NULL) { - ALOGE("Failed to open libwvm.so"); + ALOGE("Failed to open libwvm.so: %s", dlerror()); } } diff --git a/media/libstagefright/codecs/avc/enc/SoftAVCEncoder.cpp b/media/libstagefright/codecs/avc/enc/SoftAVCEncoder.cpp index 1d66120..4a21a3e 100644 --- a/media/libstagefright/codecs/avc/enc/SoftAVCEncoder.cpp +++ b/media/libstagefright/codecs/avc/enc/SoftAVCEncoder.cpp @@ -871,7 +871,13 @@ void SoftAVCEncoder::onQueueFilled(OMX_U32 portIndex) { CHECK(encoderStatus == AVCENC_SUCCESS || encoderStatus == AVCENC_NEW_IDR); dataLength = outHeader->nAllocLen; // Reset the output buffer length if (inHeader->nFilledLen > 0) { + if (outHeader->nAllocLen >= 4) { + memcpy(outPtr, "\x00\x00\x00\x01", 4); + outPtr += 4; + dataLength -= 4; + } encoderStatus = PVAVCEncodeNAL(mHandle, outPtr, &dataLength, &type); + dataLength = outPtr + dataLength - outHeader->pBuffer; if (encoderStatus == AVCENC_SUCCESS) { CHECK(NULL == PVAVCEncGetOverrunBuffer(mHandle)); } else if (encoderStatus == AVCENC_PICTURE_READY) { diff --git a/media/libstagefright/httplive/M3UParser.cpp b/media/libstagefright/httplive/M3UParser.cpp index f211bc8..e31ad40 100644 --- a/media/libstagefright/httplive/M3UParser.cpp +++ b/media/libstagefright/httplive/M3UParser.cpp @@ -626,7 +626,7 @@ status_t M3UParser::parseMetaDataDuration( if (meta->get() == NULL) { *meta = new AMessage; } - (*meta)->setInt64(key, (int64_t)x * 1E6); + (*meta)->setInt64(key, (int64_t)(x * 1E6)); return OK; } diff --git a/media/libstagefright/id3/ID3.cpp b/media/libstagefright/id3/ID3.cpp index 34d671a..1ec4a40 100644 --- a/media/libstagefright/id3/ID3.cpp +++ b/media/libstagefright/id3/ID3.cpp @@ -56,14 +56,14 @@ private: DISALLOW_EVIL_CONSTRUCTORS(MemorySource); }; -ID3::ID3(const sp<DataSource> &source, bool ignoreV1) +ID3::ID3(const sp<DataSource> &source, bool ignoreV1, off64_t offset) : mIsValid(false), mData(NULL), mSize(0), mFirstFrameOffset(0), mVersion(ID3_UNKNOWN), mRawSize(0) { - mIsValid = parseV2(source); + mIsValid = parseV2(source, offset); if (!mIsValid && !ignoreV1) { mIsValid = parseV1(source); @@ -79,7 +79,7 @@ ID3::ID3(const uint8_t *data, size_t size, bool ignoreV1) mRawSize(0) { sp<MemorySource> source = new MemorySource(data, size); - mIsValid = parseV2(source); + mIsValid = parseV2(source, 0); if (!mIsValid && !ignoreV1) { mIsValid = parseV1(source); @@ -115,7 +115,7 @@ bool ID3::ParseSyncsafeInteger(const uint8_t encoded[4], size_t *x) { return true; } -bool ID3::parseV2(const sp<DataSource> &source) { +bool ID3::parseV2(const sp<DataSource> &source, off64_t offset) { struct id3_header { char id[3]; uint8_t version_major; @@ -126,7 +126,7 @@ struct id3_header { id3_header header; if (source->readAt( - 0, &header, sizeof(header)) != (ssize_t)sizeof(header)) { + offset, &header, sizeof(header)) != (ssize_t)sizeof(header)) { return false; } @@ -185,7 +185,7 @@ struct id3_header { mSize = size; mRawSize = mSize + sizeof(header); - if (source->readAt(sizeof(header), mData, mSize) != (ssize_t)mSize) { + if (source->readAt(offset + sizeof(header), mData, mSize) != (ssize_t)mSize) { free(mData); mData = NULL; diff --git a/media/libstagefright/include/ID3.h b/media/libstagefright/include/ID3.h index cca83ab..e83f3ef 100644 --- a/media/libstagefright/include/ID3.h +++ b/media/libstagefright/include/ID3.h @@ -35,7 +35,7 @@ struct ID3 { ID3_V2_4, }; - ID3(const sp<DataSource> &source, bool ignoreV1 = false); + ID3(const sp<DataSource> &source, bool ignoreV1 = false, off64_t offset = 0); ID3(const uint8_t *data, size_t size, bool ignoreV1 = false); ~ID3(); @@ -86,7 +86,7 @@ private: size_t mRawSize; bool parseV1(const sp<DataSource> &source); - bool parseV2(const sp<DataSource> &source); + bool parseV2(const sp<DataSource> &source, off64_t offset); void removeUnsynchronization(); bool removeUnsynchronizationV2_4(bool iTunesHack); diff --git a/media/libstagefright/include/MPEG4Extractor.h b/media/libstagefright/include/MPEG4Extractor.h index bbec1c4..7b4bc6d 100644 --- a/media/libstagefright/include/MPEG4Extractor.h +++ b/media/libstagefright/include/MPEG4Extractor.h @@ -95,7 +95,9 @@ private: status_t readMetaData(); status_t parseChunk(off64_t *offset, int depth); - status_t parseMetaData(off64_t offset, size_t size); + status_t parseITunesMetaData(off64_t offset, size_t size); + status_t parse3GPPMetaData(off64_t offset, size_t size, int depth); + void parseID3v2MetaData(off64_t offset); status_t updateAudioTrackInfoFromESDS_MPEG4Audio( const void *esds_data, size_t esds_size); diff --git a/media/libstagefright/mpeg2ts/ATSParser.cpp b/media/libstagefright/mpeg2ts/ATSParser.cpp index 175a263..cb57a2f 100644 --- a/media/libstagefright/mpeg2ts/ATSParser.cpp +++ b/media/libstagefright/mpeg2ts/ATSParser.cpp @@ -506,6 +506,11 @@ ATSParser::Stream::Stream( ElementaryStreamQueue::PCM_AUDIO); break; + case STREAMTYPE_AC3: + mQueue = new ElementaryStreamQueue( + ElementaryStreamQueue::AC3); + break; + default: break; } @@ -614,6 +619,7 @@ bool ATSParser::Stream::isAudio() const { case STREAMTYPE_MPEG2_AUDIO: case STREAMTYPE_MPEG2_AUDIO_ADTS: case STREAMTYPE_PCM_AUDIO: + case STREAMTYPE_AC3: return true; default: diff --git a/media/libstagefright/mpeg2ts/ATSParser.h b/media/libstagefright/mpeg2ts/ATSParser.h index 8a80069..86b025f 100644 --- a/media/libstagefright/mpeg2ts/ATSParser.h +++ b/media/libstagefright/mpeg2ts/ATSParser.h @@ -89,6 +89,10 @@ struct ATSParser : public RefBase { STREAMTYPE_MPEG2_AUDIO_ADTS = 0x0f, STREAMTYPE_MPEG4_VIDEO = 0x10, STREAMTYPE_H264 = 0x1b, + + // From ATSC A/53 Part 3:2009, 6.7.1 + STREAMTYPE_AC3 = 0x81, + STREAMTYPE_PCM_AUDIO = 0x83, }; diff --git a/media/libstagefright/mpeg2ts/ESQueue.cpp b/media/libstagefright/mpeg2ts/ESQueue.cpp index 8f9c9c8..2b0711b 100644 --- a/media/libstagefright/mpeg2ts/ESQueue.cpp +++ b/media/libstagefright/mpeg2ts/ESQueue.cpp @@ -56,6 +56,122 @@ void ElementaryStreamQueue::clear(bool clearFormat) { } } +// Parse AC3 header assuming the current ptr is start position of syncframe, +// update metadata only applicable, and return the payload size +static unsigned parseAC3SyncFrame( + const uint8_t *ptr, size_t size, sp<MetaData> *metaData) { + static const unsigned channelCountTable[] = {2, 1, 2, 3, 3, 4, 4, 5}; + static const unsigned samplingRateTable[] = {48000, 44100, 32000}; + static const unsigned rates[] = {32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, + 320, 384, 448, 512, 576, 640}; + + static const unsigned frameSizeTable[19][3] = { + { 64, 69, 96 }, + { 80, 87, 120 }, + { 96, 104, 144 }, + { 112, 121, 168 }, + { 128, 139, 192 }, + { 160, 174, 240 }, + { 192, 208, 288 }, + { 224, 243, 336 }, + { 256, 278, 384 }, + { 320, 348, 480 }, + { 384, 417, 576 }, + { 448, 487, 672 }, + { 512, 557, 768 }, + { 640, 696, 960 }, + { 768, 835, 1152 }, + { 896, 975, 1344 }, + { 1024, 1114, 1536 }, + { 1152, 1253, 1728 }, + { 1280, 1393, 1920 }, + }; + + ABitReader bits(ptr, size); + unsigned syncStartPos = 0; // in bytes + if (bits.numBitsLeft() < 16) { + return 0; + } + if (bits.getBits(16) != 0x0B77) { + return 0; + } + + if (bits.numBitsLeft() < 16 + 2 + 6 + 5 + 3 + 3) { + ALOGV("Not enough bits left for further parsing"); + return 0; + } + bits.skipBits(16); // crc1 + + unsigned fscod = bits.getBits(2); + if (fscod == 3) { + ALOGW("Incorrect fscod in AC3 header"); + return 0; + } + + unsigned frmsizecod = bits.getBits(6); + if (frmsizecod > 37) { + ALOGW("Incorrect frmsizecod in AC3 header"); + return 0; + } + + unsigned bsid = bits.getBits(5); + if (bsid > 8) { + ALOGW("Incorrect bsid in AC3 header. Possibly E-AC-3?"); + return 0; + } + + unsigned bsmod = bits.getBits(3); + unsigned acmod = bits.getBits(3); + unsigned cmixlev = 0; + unsigned surmixlev = 0; + unsigned dsurmod = 0; + + if ((acmod & 1) > 0 && acmod != 1) { + if (bits.numBitsLeft() < 2) { + return 0; + } + cmixlev = bits.getBits(2); + } + if ((acmod & 4) > 0) { + if (bits.numBitsLeft() < 2) { + return 0; + } + surmixlev = bits.getBits(2); + } + if (acmod == 2) { + if (bits.numBitsLeft() < 2) { + return 0; + } + dsurmod = bits.getBits(2); + } + + if (bits.numBitsLeft() < 1) { + return 0; + } + unsigned lfeon = bits.getBits(1); + + unsigned samplingRate = samplingRateTable[fscod]; + unsigned payloadSize = frameSizeTable[frmsizecod >> 1][fscod]; + if (fscod == 1) { + payloadSize += frmsizecod & 1; + } + payloadSize <<= 1; // convert from 16-bit words to bytes + + unsigned channelCount = channelCountTable[acmod] + lfeon; + + if (metaData != NULL) { + (*metaData)->setCString(kKeyMIMEType, MEDIA_MIMETYPE_AUDIO_AC3); + (*metaData)->setInt32(kKeyChannelCount, channelCount); + (*metaData)->setInt32(kKeySampleRate, samplingRate); + } + + return payloadSize; +} + +static bool IsSeeminglyValidAC3Header(const uint8_t *ptr, size_t size) { + return parseAC3SyncFrame(ptr, size, NULL) > 0; +} + static bool IsSeeminglyValidADTSHeader(const uint8_t *ptr, size_t size) { if (size < 3) { // Not enough data to verify header. @@ -224,6 +340,33 @@ status_t ElementaryStreamQueue::appendData( break; } + case AC3: + { + uint8_t *ptr = (uint8_t *)data; + + ssize_t startOffset = -1; + for (size_t i = 0; i < size; ++i) { + if (IsSeeminglyValidAC3Header(&ptr[i], size - i)) { + startOffset = i; + break; + } + } + + if (startOffset < 0) { + return ERROR_MALFORMED; + } + + if (startOffset > 0) { + ALOGI("found something resembling an AC3 syncword at " + "offset %d", + startOffset); + } + + data = &ptr[startOffset]; + size -= startOffset; + break; + } + case MPEG_AUDIO: { uint8_t *ptr = (uint8_t *)data; @@ -328,6 +471,8 @@ sp<ABuffer> ElementaryStreamQueue::dequeueAccessUnit() { return dequeueAccessUnitH264(); case AAC: return dequeueAccessUnitAAC(); + case AC3: + return dequeueAccessUnitAC3(); case MPEG_VIDEO: return dequeueAccessUnitMPEGVideo(); case MPEG4_VIDEO: @@ -340,6 +485,51 @@ sp<ABuffer> ElementaryStreamQueue::dequeueAccessUnit() { } } +sp<ABuffer> ElementaryStreamQueue::dequeueAccessUnitAC3() { + unsigned syncStartPos = 0; // in bytes + unsigned payloadSize = 0; + sp<MetaData> format = new MetaData; + while (true) { + if (syncStartPos + 2 >= mBuffer->size()) { + return NULL; + } + + payloadSize = parseAC3SyncFrame( + mBuffer->data() + syncStartPos, + mBuffer->size() - syncStartPos, + &format); + if (payloadSize > 0) { + break; + } + ++syncStartPos; + } + + if (mBuffer->size() < syncStartPos + payloadSize) { + ALOGV("Not enough buffer size for AC3"); + return NULL; + } + + if (mFormat == NULL) { + mFormat = format; + } + + sp<ABuffer> accessUnit = new ABuffer(syncStartPos + payloadSize); + memcpy(accessUnit->data(), mBuffer->data(), syncStartPos + payloadSize); + + int64_t timeUs = fetchTimestamp(syncStartPos + payloadSize); + CHECK_GE(timeUs, 0ll); + accessUnit->meta()->setInt64("timeUs", timeUs); + + memmove( + mBuffer->data(), + mBuffer->data() + syncStartPos + payloadSize, + mBuffer->size() - syncStartPos - payloadSize); + + mBuffer->setRange(0, mBuffer->size() - syncStartPos - payloadSize); + + return accessUnit; +} + sp<ABuffer> ElementaryStreamQueue::dequeueAccessUnitPCMAudio() { if (mBuffer->size() < 4) { return NULL; diff --git a/media/libstagefright/mpeg2ts/ESQueue.h b/media/libstagefright/mpeg2ts/ESQueue.h index 66a8087..a2cca77 100644 --- a/media/libstagefright/mpeg2ts/ESQueue.h +++ b/media/libstagefright/mpeg2ts/ESQueue.h @@ -32,6 +32,7 @@ struct ElementaryStreamQueue { enum Mode { H264, AAC, + AC3, MPEG_AUDIO, MPEG_VIDEO, MPEG4_VIDEO, @@ -67,6 +68,7 @@ private: sp<ABuffer> dequeueAccessUnitH264(); sp<ABuffer> dequeueAccessUnitAAC(); + sp<ABuffer> dequeueAccessUnitAC3(); sp<ABuffer> dequeueAccessUnitMPEGAudio(); sp<ABuffer> dequeueAccessUnitMPEGVideo(); sp<ABuffer> dequeueAccessUnitMPEG4Video(); diff --git a/media/libstagefright/rtsp/ARTSPConnection.cpp b/media/libstagefright/rtsp/ARTSPConnection.cpp index 5116550..efde7a9 100644 --- a/media/libstagefright/rtsp/ARTSPConnection.cpp +++ b/media/libstagefright/rtsp/ARTSPConnection.cpp @@ -489,7 +489,6 @@ void ARTSPConnection::onReceiveResponse() { FD_SET(mSocket, &rs); int res = select(mSocket + 1, &rs, NULL, NULL, &tv); - CHECK_GE(res, 0); if (res == 1) { MakeSocketBlocking(mSocket, true); diff --git a/media/libstagefright/rtsp/MyHandler.h b/media/libstagefright/rtsp/MyHandler.h index f4b5846..cd77aa0 100644 --- a/media/libstagefright/rtsp/MyHandler.h +++ b/media/libstagefright/rtsp/MyHandler.h @@ -686,23 +686,27 @@ struct MyHandler : public AHandler { i = response->mHeaders.indexOfKey("transport"); CHECK_GE(i, 0); - if (!track->mUsingInterleavedTCP) { - AString transport = response->mHeaders.valueAt(i); - - // We are going to continue even if we were - // unable to poke a hole into the firewall... - pokeAHole( - track->mRTPSocket, - track->mRTCPSocket, - transport); - } + if (track->mRTPSocket != -1 && track->mRTCPSocket != -1) { + if (!track->mUsingInterleavedTCP) { + AString transport = response->mHeaders.valueAt(i); + + // We are going to continue even if we were + // unable to poke a hole into the firewall... + pokeAHole( + track->mRTPSocket, + track->mRTCPSocket, + transport); + } - mRTPConn->addStream( - track->mRTPSocket, track->mRTCPSocket, - mSessionDesc, index, - notify, track->mUsingInterleavedTCP); + mRTPConn->addStream( + track->mRTPSocket, track->mRTCPSocket, + mSessionDesc, index, + notify, track->mUsingInterleavedTCP); - mSetupTracksSuccessful = true; + mSetupTracksSuccessful = true; + } else { + result = BAD_VALUE; + } } } @@ -726,7 +730,7 @@ struct MyHandler : public AHandler { } ++index; - if (index < mSessionDesc->countTracks()) { + if (result == OK && index < mSessionDesc->countTracks()) { setupTrack(index); } else if (mSetupTracksSuccessful) { ++mKeepAliveGeneration; @@ -1559,6 +1563,8 @@ private: info->mUsingInterleavedTCP = false; info->mFirstSeqNumInSegment = 0; info->mNewSegment = true; + info->mRTPSocket = -1; + info->mRTCPSocket = -1; info->mRTPAnchor = 0; info->mNTPAnchorUs = -1; info->mNormalPlayTimeRTP = 0; diff --git a/media/mtp/MtpDataPacket.cpp b/media/mtp/MtpDataPacket.cpp index 930f0b0..c4f87a0 100644 --- a/media/mtp/MtpDataPacket.cpp +++ b/media/mtp/MtpDataPacket.cpp @@ -331,7 +331,7 @@ void MtpDataPacket::putString(const char* s) { void MtpDataPacket::putString(const uint16_t* string) { int count = 0; - for (int i = 0; i < 256; i++) { + for (int i = 0; i <= MTP_STRING_MAX_CHARACTER_NUMBER; i++) { if (string[i]) count++; else diff --git a/media/mtp/MtpStringBuffer.cpp b/media/mtp/MtpStringBuffer.cpp index fe8cf04..f3420a4 100644 --- a/media/mtp/MtpStringBuffer.cpp +++ b/media/mtp/MtpStringBuffer.cpp @@ -56,42 +56,47 @@ MtpStringBuffer::~MtpStringBuffer() { } void MtpStringBuffer::set(const char* src) { - int length = strlen(src); - if (length >= sizeof(mBuffer)) - length = sizeof(mBuffer) - 1; - memcpy(mBuffer, src, length); - // count the characters int count = 0; char ch; - while ((ch = *src++) != 0) { + char* dest = (char*)mBuffer; + + while ((ch = *src++) != 0 && count < MTP_STRING_MAX_CHARACTER_NUMBER) { if ((ch & 0x80) == 0) { // single byte character + *dest++ = ch; } else if ((ch & 0xE0) == 0xC0) { // two byte character - if (! *src++) { + char ch1 = *src++; + if (! ch1) { // last character was truncated, so ignore last byte - length--; break; } + + *dest++ = ch; + *dest++ = ch1; } else if ((ch & 0xF0) == 0xE0) { // 3 byte char - if (! *src++) { + char ch1 = *src++; + if (! ch1) { // last character was truncated, so ignore last byte - length--; break; } - if (! *src++) { - // last character was truncated, so ignore last two bytes - length -= 2; + char ch2 = *src++; + if (! ch2) { + // last character was truncated, so ignore last byte break; } + + *dest++ = ch; + *dest++ = ch1; + *dest++ = ch2; } count++; } - mByteCount = length + 1; - mBuffer[length] = 0; + *dest++ = 0; + mByteCount = dest - (char*)mBuffer; mCharCount = count; } @@ -100,7 +105,7 @@ void MtpStringBuffer::set(const uint16_t* src) { uint16_t ch; uint8_t* dest = mBuffer; - while ((ch = *src++) != 0 && count < 255) { + while ((ch = *src++) != 0 && count < MTP_STRING_MAX_CHARACTER_NUMBER) { if (ch >= 0x0800) { *dest++ = (uint8_t)(0xE0 | (ch >> 12)); *dest++ = (uint8_t)(0x80 | ((ch >> 6) & 0x3F)); diff --git a/media/mtp/MtpStringBuffer.h b/media/mtp/MtpStringBuffer.h index cbc8307..e5150df 100644 --- a/media/mtp/MtpStringBuffer.h +++ b/media/mtp/MtpStringBuffer.h @@ -19,6 +19,9 @@ #include <stdint.h> +// Max Character number of a MTP String +#define MTP_STRING_MAX_CHARACTER_NUMBER 255 + namespace android { class MtpDataPacket; @@ -29,7 +32,7 @@ class MtpStringBuffer { private: // mBuffer contains string in UTF8 format // maximum 3 bytes/character, with 1 extra for zero termination - uint8_t mBuffer[255 * 3 + 1]; + uint8_t mBuffer[MTP_STRING_MAX_CHARACTER_NUMBER * 3 + 1]; int mCharCount; int mByteCount; diff --git a/services/audioflinger/AudioPolicyService.cpp b/services/audioflinger/AudioPolicyService.cpp index 35e816b..646a317 100644 --- a/services/audioflinger/AudioPolicyService.cpp +++ b/services/audioflinger/AudioPolicyService.cpp @@ -1433,6 +1433,14 @@ status_t AudioPolicyService::loadPreProcessorConfig(const char *path) loadEffects(root, effects); loadInputSources(root, effects); + // delete effects to fix memory leak. + // as effects is local var and valgrind would treat this as memory leak + // and although it only did in mediaserver init, but free it in case mediaserver reboot + size_t i; + for (i = 0; i < effects.size(); i++) { + delete effects[i]; + } + config_free(root); free(root); free(data); diff --git a/services/camera/libcameraservice/gui/RingBufferConsumer.cpp b/services/camera/libcameraservice/gui/RingBufferConsumer.cpp index ebc7ea7..9a6dc28 100644 --- a/services/camera/libcameraservice/gui/RingBufferConsumer.cpp +++ b/services/camera/libcameraservice/gui/RingBufferConsumer.cpp @@ -21,11 +21,11 @@ #include <gui/RingBufferConsumer.h> -#define BI_LOGV(x, ...) ALOGV("[%s] "x, mName.string(), ##__VA_ARGS__) -#define BI_LOGD(x, ...) ALOGD("[%s] "x, mName.string(), ##__VA_ARGS__) -#define BI_LOGI(x, ...) ALOGI("[%s] "x, mName.string(), ##__VA_ARGS__) -#define BI_LOGW(x, ...) ALOGW("[%s] "x, mName.string(), ##__VA_ARGS__) -#define BI_LOGE(x, ...) ALOGE("[%s] "x, mName.string(), ##__VA_ARGS__) +#define BI_LOGV(x, ...) ALOGV("[%s] " x, mName.string(), ##__VA_ARGS__) +#define BI_LOGD(x, ...) ALOGD("[%s] " x, mName.string(), ##__VA_ARGS__) +#define BI_LOGI(x, ...) ALOGI("[%s] " x, mName.string(), ##__VA_ARGS__) +#define BI_LOGW(x, ...) ALOGW("[%s] " x, mName.string(), ##__VA_ARGS__) +#define BI_LOGE(x, ...) ALOGE("[%s] " x, mName.string(), ##__VA_ARGS__) #undef assert #define assert(x) ALOG_ASSERT((x), #x) |