14b672db6ee89c9846451bbab23cf18e93c4260b2hding/*
24b672db6ee89c9846451bbab23cf18e93c4260b2hding * Copyright (c) 2007-2011 Intel Corporation. All Rights Reserved.
34b672db6ee89c9846451bbab23cf18e93c4260b2hding *
44b672db6ee89c9846451bbab23cf18e93c4260b2hding * Permission is hereby granted, free of charge, to any person obtaining a
54b672db6ee89c9846451bbab23cf18e93c4260b2hding * copy of this software and associated documentation files (the
64b672db6ee89c9846451bbab23cf18e93c4260b2hding * "Software"), to deal in the Software without restriction, including
74b672db6ee89c9846451bbab23cf18e93c4260b2hding * without limitation the rights to use, copy, modify, merge, publish,
84b672db6ee89c9846451bbab23cf18e93c4260b2hding * distribute, sub license, and/or sell copies of the Software, and to
94b672db6ee89c9846451bbab23cf18e93c4260b2hding * permit persons to whom the Software is furnished to do so, subject to
104b672db6ee89c9846451bbab23cf18e93c4260b2hding * the following conditions:
114b672db6ee89c9846451bbab23cf18e93c4260b2hding *
124b672db6ee89c9846451bbab23cf18e93c4260b2hding * The above copyright notice and this permission notice (including the
134b672db6ee89c9846451bbab23cf18e93c4260b2hding * next paragraph) shall be included in all copies or substantial portions
144b672db6ee89c9846451bbab23cf18e93c4260b2hding * of the Software.
154b672db6ee89c9846451bbab23cf18e93c4260b2hding *
164b672db6ee89c9846451bbab23cf18e93c4260b2hding * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
174b672db6ee89c9846451bbab23cf18e93c4260b2hding * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
184b672db6ee89c9846451bbab23cf18e93c4260b2hding * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
194b672db6ee89c9846451bbab23cf18e93c4260b2hding * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
204b672db6ee89c9846451bbab23cf18e93c4260b2hding * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
214b672db6ee89c9846451bbab23cf18e93c4260b2hding * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
224b672db6ee89c9846451bbab23cf18e93c4260b2hding * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
234b672db6ee89c9846451bbab23cf18e93c4260b2hding */
244b672db6ee89c9846451bbab23cf18e93c4260b2hding
254b672db6ee89c9846451bbab23cf18e93c4260b2hding/*
264b672db6ee89c9846451bbab23cf18e93c4260b2hding * it is a real program to show how VAAPI transcode work,
274b672db6ee89c9846451bbab23cf18e93c4260b2hding * It will decode a simple mpeg2 clip(320x240) and scale it to 1280x960,
284b672db6ee89c9846451bbab23cf18e93c4260b2hding * then it will encode it to a 264 file(test.264).
294b672db6ee89c9846451bbab23cf18e93c4260b2hding *
304b672db6ee89c9846451bbab23cf18e93c4260b2hding * ./mpeg2transcode  : only do decode
314b672db6ee89c9846451bbab23cf18e93c4260b2hding * ./mpeg2transcode <any parameter >: decode+vpp+encode
324b672db6ee89c9846451bbab23cf18e93c4260b2hding *
334b672db6ee89c9846451bbab23cf18e93c4260b2hding */
344b672db6ee89c9846451bbab23cf18e93c4260b2hding#include <stdio.h>
354b672db6ee89c9846451bbab23cf18e93c4260b2hding#include <string.h>
364b672db6ee89c9846451bbab23cf18e93c4260b2hding#include <stdlib.h>
374b672db6ee89c9846451bbab23cf18e93c4260b2hding#include <getopt.h>
384b672db6ee89c9846451bbab23cf18e93c4260b2hding#include <unistd.h>
394b672db6ee89c9846451bbab23cf18e93c4260b2hding#include <sys/types.h>
404b672db6ee89c9846451bbab23cf18e93c4260b2hding#include <sys/stat.h>
414b672db6ee89c9846451bbab23cf18e93c4260b2hding#include <fcntl.h>
424b672db6ee89c9846451bbab23cf18e93c4260b2hding#include <assert.h>
434b672db6ee89c9846451bbab23cf18e93c4260b2hding#include <va/va.h>
444b672db6ee89c9846451bbab23cf18e93c4260b2hding#include <va/va_enc_h264.h>
454b672db6ee89c9846451bbab23cf18e93c4260b2hding#include <va/va_vpp.h>
464b672db6ee89c9846451bbab23cf18e93c4260b2hding#include <va/va_compat.h>
474b672db6ee89c9846451bbab23cf18e93c4260b2hding#include <pthread.h>
484b672db6ee89c9846451bbab23cf18e93c4260b2hding#include <time.h>
494b672db6ee89c9846451bbab23cf18e93c4260b2hding#include <sys/time.h>
504b672db6ee89c9846451bbab23cf18e93c4260b2hding
514b672db6ee89c9846451bbab23cf18e93c4260b2hding#ifdef ANDROID
524b672db6ee89c9846451bbab23cf18e93c4260b2hding#include <va/va_android.h>
534b672db6ee89c9846451bbab23cf18e93c4260b2hding#include <binder/IPCThreadState.h>
544b672db6ee89c9846451bbab23cf18e93c4260b2hding#include <binder/ProcessState.h>
554b672db6ee89c9846451bbab23cf18e93c4260b2hding#include <binder/IServiceManager.h>
564b672db6ee89c9846451bbab23cf18e93c4260b2hding#include <utils/Log.h>
574b672db6ee89c9846451bbab23cf18e93c4260b2hding#include <surfaceflinger/ISurfaceComposer.h>
584b672db6ee89c9846451bbab23cf18e93c4260b2hding#include <surfaceflinger/Surface.h>
594b672db6ee89c9846451bbab23cf18e93c4260b2hding#include <surfaceflinger/ISurface.h>
604b672db6ee89c9846451bbab23cf18e93c4260b2hding#include <surfaceflinger/SurfaceComposerClient.h>
614b672db6ee89c9846451bbab23cf18e93c4260b2hding#include <binder/MemoryHeapBase.h>
624b672db6ee89c9846451bbab23cf18e93c4260b2hding#define Display unsigned int
634b672db6ee89c9846451bbab23cf18e93c4260b2hding
644b672db6ee89c9846451bbab23cf18e93c4260b2hdingusing namespace android;
654b672db6ee89c9846451bbab23cf18e93c4260b2hdingsp<SurfaceComposerClient> client;
664b672db6ee89c9846451bbab23cf18e93c4260b2hdingsp<Surface> android_surface;
674b672db6ee89c9846451bbab23cf18e93c4260b2hdingsp<ISurface> android_isurface;
684b672db6ee89c9846451bbab23cf18e93c4260b2hdingsp<SurfaceControl> surface_ctrl;
694b672db6ee89c9846451bbab23cf18e93c4260b2hding#include "../android_winsys.cpp"
704b672db6ee89c9846451bbab23cf18e93c4260b2hding#else
714b672db6ee89c9846451bbab23cf18e93c4260b2hding#include <va/va_x11.h>
724b672db6ee89c9846451bbab23cf18e93c4260b2hding#include <X11/Xlib.h>
734b672db6ee89c9846451bbab23cf18e93c4260b2hding#endif
744b672db6ee89c9846451bbab23cf18e93c4260b2hding
754b672db6ee89c9846451bbab23cf18e93c4260b2hding#define CHECK_VASTATUS(va_status,func)                                  \
764b672db6ee89c9846451bbab23cf18e93c4260b2hdingif (va_status != VA_STATUS_SUCCESS) {                                   \
774b672db6ee89c9846451bbab23cf18e93c4260b2hding    fprintf(stderr,"%s:%s (%d) failed,exit\n", __func__, func, __LINE__); \
784b672db6ee89c9846451bbab23cf18e93c4260b2hding    exit(1);                                                            \
794b672db6ee89c9846451bbab23cf18e93c4260b2hding}
804b672db6ee89c9846451bbab23cf18e93c4260b2hding
814b672db6ee89c9846451bbab23cf18e93c4260b2hding/* Data dump of a 320x240 MPEG-2 video clip (mpeg2.m2v), it has a single frame */
824b672db6ee89c9846451bbab23cf18e93c4260b2hding#define MPEG2_CLIP_DATA_SIZE 19311
834b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic unsigned char mpeg2_clip[MPEG2_CLIP_DATA_SIZE] = {
844b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0x00, 0x01, 0xb3, 0x14, 0x00, 0xf0, 0x12, 0x07, 0x53, 0x23, 0x80,
854b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0x00, 0x01, 0xb5, 0x14, 0x8a, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
864b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x01, 0xb5, 0x2b, 0x02, 0x02, 0x02, 0x05, 0x02, 0x07, 0x80, 0x00, 0x00,
874b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x01, 0xb8, 0x00, 0x08, 0x00, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0f,
884b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xff, 0xf8, 0x00, 0x00, 0x01, 0xb5, 0x8f, 0xff, 0xf7, 0x5d, 0x80, 0x00,
894b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0x01, 0x01, 0x43, 0xf8, 0x90, 0x03, 0xee, 0x36, 0xd4, 0x92, 0x85,
904b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x86, 0x37, 0x48, 0x01, 0xb3, 0xf7, 0x9a, 0x1d, 0x5c, 0x38, 0xb1, 0x95,
914b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb9, 0x42, 0x43, 0xb2, 0xc2, 0x51, 0x24, 0x31, 0xb2, 0xed, 0x20, 0x73,
924b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd9, 0x08, 0xcc, 0x5b, 0xe2, 0x39, 0xbc, 0xdb, 0x12, 0xb7, 0x8c, 0x31,
934b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbf, 0x6c, 0x00, 0xc3, 0xeb, 0xc3, 0xd0, 0x6c, 0x3e, 0x16, 0xde, 0xa8,
944b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x89, 0xf3, 0xc1, 0x17, 0xda, 0x5a, 0x4f, 0xca, 0xb0, 0x6b, 0x7c, 0x07,
954b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbb, 0x6c, 0x95, 0x8f, 0x74, 0x35, 0xaa, 0x45, 0x65, 0xb4, 0x35, 0xbf,
964b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd4, 0x22, 0xab, 0xfe, 0x80, 0x07, 0x7c, 0xed, 0x7a, 0x97, 0x2b, 0xaf,
974b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x2f, 0x72, 0x64, 0x81, 0x86, 0x0f, 0x6f, 0x9a, 0x7b, 0x02, 0x10, 0x07,
984b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x76, 0x2f, 0x01, 0x30, 0x01, 0x2d, 0x21, 0x37, 0x89, 0xbc, 0x74, 0x00,
994b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf4, 0xc3, 0x6b, 0xa4, 0x1f, 0x65, 0xa7, 0xb6, 0xff, 0x6d, 0x9f, 0x6f,
1004b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6f, 0x77, 0xa8, 0x5b, 0xa7, 0x95, 0x90, 0x2e, 0x2b, 0x71, 0xec, 0x35,
1014b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf4, 0x96, 0x92, 0x33, 0xa9, 0x92, 0x48, 0xdf, 0xcf, 0x50, 0x39, 0x13,
1024b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd1, 0xbd, 0x25, 0x4f, 0xbe, 0x5b, 0x10, 0x25, 0x6e, 0x14, 0xdc, 0x5e,
1034b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe0, 0x7b, 0x7a, 0x3d, 0x04, 0x2f, 0xf2, 0xb8, 0x84, 0x38, 0xdd, 0x16,
1044b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x94, 0xdb, 0x46, 0xfd, 0xdf, 0x3a, 0x00, 0x7a, 0xf9, 0x49, 0x45, 0xb7,
1054b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x52, 0xe9, 0x03, 0x9a, 0x4a, 0x40, 0xf8, 0x14, 0xdc, 0xa7, 0x4d, 0xf7,
1064b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbc, 0x25, 0x04, 0xa0, 0x04, 0x2a, 0x81, 0x6d, 0xda, 0x36, 0x67, 0x1b,
1074b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb8, 0x48, 0x96, 0xb7, 0x49, 0xea, 0xd9, 0x1c, 0x8d, 0xf8, 0xfb, 0x80,
1084b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x07, 0x50, 0x9c, 0x13, 0x43, 0xae, 0x94, 0x07, 0x36, 0xff, 0x8b, 0x00,
1094b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x1c, 0x8a, 0x35, 0x00, 0x20, 0x49, 0x40, 0xdb, 0x74, 0x05, 0x82, 0x10,
1104b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x03, 0xcd, 0x28, 0x29, 0x06, 0x56, 0xf1, 0x2f, 0xc0, 0x03, 0xd1, 0x22,
1114b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x26, 0xd0, 0x08, 0x0a, 0x03, 0x4d, 0x27, 0x37, 0x5d, 0x2f, 0x36, 0xb7,
1124b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe9, 0xef, 0x7a, 0x00, 0xd0, 0x83, 0xe5, 0x14, 0x65, 0x8a, 0x62, 0xd9,
1134b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe2, 0x31, 0xb8, 0x3e, 0xef, 0x15, 0xbd, 0xdc, 0xb8, 0xf4, 0xa3, 0x4a,
1144b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb9, 0x36, 0x1c, 0xde, 0xe7, 0x41, 0x08, 0x01, 0xb8, 0x79, 0xe0, 0x11,
1154b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4a, 0xbe, 0x07, 0xca, 0xdf, 0x2d, 0xea, 0x5d, 0x11, 0x99, 0xb0, 0x2c,
1164b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3a, 0x6e, 0x41, 0xaa, 0x5b, 0x23, 0xf2, 0xb5, 0x5a, 0x41, 0xcd, 0xd8,
1174b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x42, 0xad, 0xf7, 0x78, 0xc8, 0x2d, 0xdc, 0x51, 0x70, 0x72, 0xcc, 0xd8,
1184b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb4, 0x75, 0x85, 0x43, 0x94, 0x25, 0xbd, 0x5e, 0xf9, 0x3c, 0x49, 0xbc,
1194b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe5, 0xa3, 0x2b, 0xb8, 0x49, 0x0a, 0x26, 0xd2, 0xa7, 0xea, 0x8d, 0xfd,
1204b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb1, 0xf7, 0xdd, 0x22, 0x8b, 0xef, 0xce, 0x5a, 0x51, 0x66, 0x64, 0x33,
1214b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8a, 0x85, 0x53, 0xc0, 0x7b, 0x51, 0x22, 0x34, 0xe8, 0xd7, 0xd0, 0x09,
1224b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8f, 0x5a, 0x53, 0xb8, 0x54, 0x1b, 0x4b, 0x2c, 0xbb, 0xaa, 0x18, 0xd5,
1234b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x69, 0x6d, 0xd2, 0xfa, 0xba, 0x5b, 0x7c, 0x67, 0xc9, 0x37, 0x51, 0x02,
1244b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x37, 0x8a, 0x6a, 0xec, 0x2b, 0x03, 0x94, 0xe4, 0x1e, 0xad, 0xce, 0x96,
1254b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x95, 0x84, 0x34, 0x5a, 0x38, 0x63, 0x58, 0x90, 0x44, 0x0e, 0xa1, 0x35,
1264b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf4, 0xa0, 0xf3, 0xe1, 0x55, 0x0a, 0x46, 0x12, 0x5b, 0x93, 0x2c, 0x0c,
1274b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x95, 0x51, 0x62, 0x94, 0x34, 0x34, 0x2d, 0xaa, 0x36, 0x8d, 0xf3, 0xbb,
1284b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0e, 0xe3, 0x37, 0x54, 0x02, 0x32, 0x83, 0x29, 0xd0, 0xea, 0xce, 0x7e,
1294b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x95, 0x3c, 0x26, 0x9a, 0xd0, 0xcb, 0x9c, 0xba, 0xa8, 0x49, 0x8e, 0x2d,
1304b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x68, 0x4d, 0x65, 0xa9, 0xaa, 0x05, 0xb2, 0x8c, 0x37, 0xe9, 0x5e, 0xfc,
1314b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0x7a, 0xe7, 0x4e, 0x1e, 0xa3, 0xe5, 0x9b, 0xb9, 0x42, 0x52, 0xc3,
1324b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe3, 0x3f, 0x3f, 0x39, 0x86, 0x59, 0xb8, 0x80, 0x2a, 0xa9, 0x65, 0x3d,
1334b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa9, 0xd4, 0xfb, 0xf4, 0xf9, 0x65, 0x1e, 0xa9, 0x62, 0x6c, 0x18, 0x30,
1344b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf8, 0xdb, 0x5f, 0xb7, 0x8e, 0xde, 0xe7, 0x1b, 0xe2, 0x84, 0xc0, 0x86,
1354b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe3, 0x71, 0x37, 0x0a, 0x0b, 0x29, 0xbc, 0xe4, 0x33, 0x31, 0xbd, 0x1c,
1364b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf3, 0x40, 0x1e, 0xee, 0x3b, 0x4c, 0x5f, 0xd0, 0x21, 0x00, 0x36, 0x96,
1374b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3c, 0x7b, 0x76, 0xbd, 0xe9, 0xb5, 0xfd, 0x74, 0x81, 0xb6, 0xba, 0xdc,
1384b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x25, 0x14, 0xde, 0x6f, 0xda, 0x80, 0x1f, 0xa4, 0xf3, 0x08, 0x0b, 0x38,
1394b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x68, 0x6b, 0x75, 0x48, 0xdc, 0x52, 0x27, 0x1e, 0xf6, 0xa8, 0x0a, 0xaf,
1404b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x91, 0xb9, 0x68, 0x48, 0x67, 0x8b, 0x70, 0xf7, 0xc7, 0x96, 0x3a, 0x5f,
1414b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x59, 0x22, 0x59, 0xe2, 0xdc, 0xd7, 0x0c, 0xb9, 0x40, 0x07, 0xad, 0xf0,
1424b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7e, 0x82, 0x74, 0x8c, 0x01, 0x6a, 0xe9, 0x63, 0x75, 0xcf, 0x59, 0x43,
1434b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa1, 0x92, 0x04, 0x37, 0x86, 0xe2, 0xa5, 0x74, 0x50, 0x90, 0x1c, 0x43,
1444b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3c, 0x6d, 0xf0, 0x18, 0xdb, 0xf6, 0xce, 0x24, 0x28, 0x29, 0xb9, 0xb4,
1454b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xac, 0xc0, 0x29, 0xbd, 0x2d, 0xab, 0xb6, 0xa3, 0x6a, 0xdf, 0xa6, 0x8e,
1464b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x73, 0xc5, 0xbb, 0x99, 0x90, 0x04, 0x66, 0x17, 0xea, 0xa7, 0xb7, 0xa5,
1474b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe4, 0xa7, 0x6e, 0x69, 0x41, 0xbf, 0x9a, 0x60, 0xf3, 0xe0, 0xc6, 0x41,
1484b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x74, 0x02, 0xbe, 0x38, 0x7e, 0x50, 0x4a, 0xff, 0xd9, 0x2d, 0x0d, 0x29,
1494b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7c, 0x1b, 0xaa, 0x27, 0x5c, 0x00, 0xdb, 0xfa, 0x20, 0x5b, 0xe2, 0x52,
1504b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe5, 0x8f, 0x11, 0xa6, 0xd8, 0x58, 0x6a, 0x52, 0x15, 0x6d, 0x0b, 0xb5,
1514b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x40, 0xb6, 0x4d, 0xf0, 0x35, 0xb3, 0x76, 0xfa, 0xfe, 0x4b, 0xd0, 0x08,
1524b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x31, 0xb4, 0x40, 0x1a, 0xab, 0x62, 0x80, 0x84, 0x01, 0x35, 0xe0, 0x9b,
1534b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xff, 0xb2, 0x12, 0x19, 0x53, 0x94, 0x96, 0xd2, 0xdd, 0xbb, 0x0a, 0x66,
1544b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd0, 0x1a, 0x36, 0x21, 0x40, 0x85, 0xff, 0x1b, 0x8f, 0x9e, 0xa6, 0x2a,
1554b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb7, 0x75, 0xe3, 0x09, 0x0d, 0xb4, 0x18, 0xd4, 0xdd, 0xaf, 0x0e, 0x70,
1564b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xba, 0x4a, 0x56, 0xe5, 0x11, 0x4f, 0x95, 0x28, 0x0a, 0xa8, 0xc6, 0xf4,
1574b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x77, 0xf3, 0x79, 0x52, 0x4b, 0x4a, 0x5a, 0xb7, 0x3e, 0x7e, 0x6d, 0x24,
1584b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x23, 0x44, 0x2d, 0x5b, 0xc2, 0x2d, 0x76, 0x6d, 0xa4, 0x3a, 0xdd, 0x61,
1594b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x30, 0x00, 0xfe, 0x61, 0x26, 0x46, 0xfa, 0x10, 0x03, 0xf2, 0x2e, 0x00,
1604b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x16, 0xfd, 0xb1, 0xfe, 0xdb, 0x32, 0x95, 0xa5, 0x08, 0xaf, 0x9c, 0xc1,
1614b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc5, 0x28, 0x6b, 0x7a, 0x80, 0x02, 0xd1, 0x16, 0xfb, 0xbc, 0x56, 0xe0,
1624b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5e, 0x8f, 0x75, 0x0d, 0x81, 0xac, 0x13, 0x21, 0xa4, 0x8a, 0x48, 0x63,
1634b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x62, 0x42, 0xe3, 0x7e, 0xc1, 0xe0, 0x0f, 0xf9, 0x00, 0x72, 0x28, 0x4d,
1644b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x14, 0xfb, 0x92, 0x1d, 0x8e, 0xb6, 0xa6, 0x58, 0x5d, 0xf4, 0xac, 0x7e,
1654b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x40, 0x15, 0x80, 0x19, 0x7b, 0x3d, 0xf3, 0x65, 0xc2, 0xa7, 0x2e, 0xc3,
1664b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xee, 0xc5, 0x28, 0xe6, 0x4f, 0xf8, 0xbf, 0x6f, 0x97, 0x0b, 0xe3, 0xae,
1674b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf5, 0x4a, 0x2f, 0x69, 0x61, 0x63, 0x5b, 0xb6, 0x46, 0x00, 0x63, 0x74,
1684b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4a, 0xdc, 0xd7, 0xe5, 0x4c, 0x42, 0xdb, 0x1d, 0xe3, 0x7b, 0xa4, 0xd7,
1694b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8d, 0x28, 0x32, 0x35, 0x99, 0x75, 0x4b, 0x78, 0x64, 0x0c, 0x8d, 0xfc,
1704b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa0, 0x00, 0x9c, 0x59, 0x10, 0x89, 0x79, 0x77, 0xc8, 0xa7, 0x95, 0x0d,
1714b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc7, 0x96, 0x51, 0x87, 0xc5, 0xad, 0x84, 0x01, 0x1b, 0xaf, 0xdc, 0x40,
1724b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa1, 0x79, 0xce, 0x52, 0xe5, 0x93, 0x1e, 0x56, 0x55, 0x01, 0xec, 0xf5,
1734b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6f, 0xd0, 0xa4, 0x6f, 0xe8, 0x01, 0xef, 0xc4, 0xde, 0x49, 0xef, 0x5b,
1744b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x36, 0x6c, 0x3a, 0xa5, 0x2e, 0x56, 0xee, 0xdd, 0x98, 0x62, 0x5a, 0x15,
1754b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb4, 0xb4, 0x6e, 0xfd, 0x44, 0x21, 0x96, 0x31, 0xba, 0x1f, 0x62, 0x20,
1764b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0f, 0x98, 0x00, 0x00, 0x01, 0x02, 0x43, 0xf8, 0x37, 0x13, 0x05, 0xdd,
1774b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbe, 0xa9, 0x4b, 0x6c, 0xa2, 0xbc, 0xc5, 0x6e, 0x6c, 0x21, 0x12, 0x23,
1784b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x77, 0x3e, 0x68, 0x05, 0xa2, 0xdf, 0x8e, 0xcf, 0x02, 0xe1, 0x60, 0x73,
1794b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x79, 0x09, 0x08, 0x0e, 0x74, 0x25, 0x49, 0x1b, 0xcc, 0x42, 0xca, 0x21,
1804b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb7, 0x90, 0xdf, 0x40, 0x10, 0xff, 0xe7, 0x1d, 0x2e, 0x92, 0x59, 0x94,
1814b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x80, 0x94, 0xbf, 0x16, 0xe7, 0xdc, 0x34, 0xb6, 0xd7, 0xb0, 0xd9, 0x2d,
1824b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x50, 0x81, 0xc5, 0x35, 0x0f, 0x6a, 0x6f, 0xd4, 0xea, 0xfd, 0x5e, 0xa0,
1834b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x03, 0x0a, 0xad, 0xc9, 0xee, 0x5f, 0x8e, 0x78, 0xb2, 0xc0, 0xc0, 0xe2,
1844b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbd, 0x4a, 0x46, 0xd5, 0xed, 0x27, 0x2e, 0xe1, 0xea, 0x13, 0x76, 0xd1,
1854b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc1, 0x65, 0x90, 0x99, 0xb6, 0x00, 0x1a, 0x24, 0x9e, 0x12, 0x87, 0xc8,
1864b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x14, 0x96, 0x10, 0xda, 0x60, 0x74, 0xd0, 0x2d, 0x85, 0x30, 0xaa, 0xdf,
1874b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x15, 0xff, 0x9c, 0x02, 0xaa, 0x36, 0xdb, 0x2d, 0xdb, 0x9b, 0xa0, 0x10,
1884b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc4, 0x94, 0x87, 0x1b, 0x3e, 0x02, 0x17, 0xfc, 0x6b, 0x88, 0x70, 0xf4,
1894b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x21, 0x37, 0x7c, 0x5c, 0x9c, 0xba, 0xda, 0xac, 0x13, 0x59, 0x1f, 0x1b,
1904b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xca, 0x2b, 0x30, 0x5e, 0xe3, 0xa2, 0x78, 0xd0, 0xe2, 0x43, 0x7b, 0x87,
1914b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x53, 0x70, 0xbc, 0xa1, 0xb0, 0xf8, 0x12, 0xde, 0x44, 0x01, 0xf8, 0xaa,
1924b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x94, 0xf9, 0x43, 0x71, 0x51, 0xb4, 0x3f, 0x20, 0x9e, 0x6c, 0x49, 0x03,
1934b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x75, 0x76, 0x86, 0x42, 0x96, 0x95, 0x2b, 0x5a, 0x07, 0xb6, 0xfc, 0x97,
1944b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8d, 0xfa, 0x7f, 0xa3, 0xcd, 0x91, 0xe6, 0x78, 0xc2, 0xc2, 0x5b, 0x77,
1954b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7b, 0x48, 0xf6, 0x3d, 0x03, 0x21, 0xbd, 0x62, 0x58, 0x16, 0xb1, 0xbc,
1964b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xdc, 0xe7, 0xce, 0x77, 0x2b, 0xf4, 0x05, 0x7d, 0x29, 0x30, 0x69, 0xf2,
1974b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x37, 0x55, 0xd8, 0x00, 0x73, 0x3b, 0x89, 0x02, 0xad, 0x2c, 0x84, 0x3d,
1984b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb0, 0x43, 0x25, 0x6c, 0x2c, 0x4a, 0xab, 0xe8, 0xde, 0x7d, 0xe3, 0x40,
1994b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x1d, 0x3f, 0xb7, 0x89, 0x90, 0x35, 0x1d, 0x76, 0xa8, 0xd2, 0x6c, 0x2d,
2004b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x28, 0x5b, 0x78, 0xb7, 0xf3, 0x7e, 0x57, 0xcc, 0x22, 0x49, 0xdd, 0x2a,
2014b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa0, 0xd2, 0x83, 0x29, 0x6d, 0xf6, 0x3d, 0xbe, 0x73, 0x1c, 0x80, 0x10,
2024b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x45, 0x25, 0xa9, 0x5e, 0xad, 0xe0, 0xc5, 0xf2, 0x00, 0x70, 0x27, 0x84,
2034b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd8, 0xa7, 0xee, 0xee, 0x59, 0x9b, 0x83, 0x40, 0x79, 0x22, 0xb5, 0x38,
2044b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0c, 0xc5, 0x6e, 0x8c, 0xa0, 0x16, 0x87, 0x90, 0xa3, 0x6f, 0xed, 0x2f,
2054b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0f, 0xf3, 0x59, 0x20, 0x13, 0x0f, 0x2d, 0x4e, 0x0a, 0x30, 0x39, 0x84,
2064b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd3, 0x69, 0x8b, 0x92, 0x04, 0x17, 0x8e, 0x81, 0x1b, 0x15, 0x6e, 0x8e,
2074b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x29, 0xb8, 0x9c, 0x39, 0x53, 0x12, 0x5a, 0x51, 0x65, 0x42, 0xa4, 0x2b,
2084b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd2, 0x9c, 0xdb, 0x38, 0x9e, 0x7a, 0x8b, 0x42, 0x4b, 0x2c, 0x30, 0xe4,
2094b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6e, 0x88, 0x53, 0x7a, 0x27, 0xc6, 0xf0, 0xe8, 0x21, 0x00, 0x45, 0x28,
2104b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x92, 0xb5, 0x46, 0x1e, 0x7b, 0x64, 0x32, 0x6c, 0x9e, 0x31, 0x15, 0x15,
2114b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb7, 0xe1, 0x68, 0x52, 0x80, 0x8a, 0xd1, 0xcd, 0xa2, 0x6d, 0xe6, 0x3f,
2124b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x65, 0xaa, 0x33, 0x0a, 0xc9, 0x12, 0x05, 0xa8, 0xd0, 0x86, 0x6c, 0x37,
2134b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc6, 0xd8, 0x85, 0x94, 0x07, 0x36, 0x7e, 0xad, 0xeb, 0x92, 0x45, 0x2d,
2144b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb6, 0x69, 0x99, 0xb8, 0x50, 0x16, 0xdc, 0x30, 0x43, 0x00, 0x77, 0x3a,
2154b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x80, 0x0c, 0x59, 0x1c, 0xd9, 0xcf, 0xc6, 0xd6, 0xf4, 0x11, 0xb0, 0x00,
2164b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf4, 0x5e, 0x15, 0xe2, 0x91, 0x07, 0xb7, 0xad, 0xc9, 0x99, 0xed, 0x53,
2174b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x03, 0x22, 0xea, 0xcb, 0x40, 0x44, 0x3c, 0x73, 0x78, 0x31, 0x91, 0xbd,
2184b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x75, 0x04, 0x2f, 0xf7, 0xde, 0xc9, 0x20, 0x73, 0x61, 0x69, 0xcd, 0x82,
2194b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x90, 0x7c, 0x90, 0x86, 0xdd, 0x32, 0x25, 0x75, 0xd9, 0x03, 0x10, 0xec,
2204b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb7, 0xc0, 0x73, 0x74, 0x76, 0x65, 0xce, 0x6c, 0xd0, 0x83, 0x65, 0x90,
2214b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x34, 0x7b, 0x70, 0xdc, 0x1d, 0xe6, 0x70, 0x46, 0x4c, 0xe0, 0xaf, 0x1a,
2224b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xdd, 0xcd, 0x04, 0x20, 0x08, 0xda, 0x62, 0x04, 0xaa, 0xcf, 0x45, 0x52,
2234b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4b, 0x68, 0x37, 0x21, 0x21, 0xb6, 0xda, 0x01, 0x52, 0xe1, 0x0a, 0x96,
2244b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xdf, 0x21, 0x7c, 0x8f, 0xf5, 0x8d, 0x6f, 0x60, 0x85, 0xfe, 0x0e, 0x11,
2254b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x08, 0x66, 0xd2, 0x11, 0x4b, 0x58, 0x6c, 0xa9, 0x55, 0xbd, 0x08, 0xb9,
2264b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x48, 0xbd, 0xd3, 0x82, 0x90, 0xc8, 0x07, 0xb6, 0x81, 0xad, 0xe7, 0x37,
2274b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd0, 0xa5, 0x18, 0x07, 0x36, 0x5e, 0x4a, 0x76, 0x72, 0x42, 0xbe, 0x44,
2284b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb6, 0xd6, 0x8a, 0x8c, 0xbc, 0xda, 0xf7, 0x3a, 0xe6, 0x50, 0xbc, 0xa9,
2294b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe8, 0x74, 0xa4, 0xb6, 0x89, 0xf8, 0xad, 0x03, 0x5b, 0xa3, 0x98, 0x96,
2304b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x69, 0x25, 0x5a, 0xc2, 0x3a, 0x8a, 0xc3, 0x70, 0xa1, 0xf1, 0x1e, 0x9b,
2314b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x21, 0xc1, 0x95, 0xae, 0xae, 0x27, 0x79, 0x4b, 0x09, 0x11, 0xba, 0xe4,
2324b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6c, 0x00, 0xb3, 0xaf, 0x32, 0x6d, 0x1c, 0x41, 0xf3, 0x96, 0x58, 0x01,
2334b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xfb, 0x73, 0x3a, 0xc4, 0x90, 0x96, 0x48, 0x60, 0xf9, 0x63, 0x7e, 0x28,
2344b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8b, 0x28, 0x9e, 0xa6, 0x1b, 0x03, 0x15, 0x64, 0x41, 0xad, 0xec, 0xbe,
2354b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5d, 0xaf, 0x15, 0x9a, 0xfc, 0x81, 0xb7, 0x0e, 0xa9, 0xea, 0xd9, 0xba,
2364b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xcb, 0x61, 0xa5, 0xd0, 0xc5, 0x1c, 0xde, 0x87, 0xcf, 0x8f, 0xed, 0x11,
2374b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x98, 0x2f, 0x29, 0x69, 0x70, 0x02, 0xb7, 0xe4, 0x85, 0xcf, 0x05, 0xa3,
2384b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x1a, 0xf2, 0x17, 0x11, 0x93, 0x7d, 0xb0, 0x06, 0x7b, 0x99, 0xa4, 0x7e,
2394b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa9, 0x03, 0x99, 0x2a, 0x79, 0xc7, 0x3f, 0x52, 0xde, 0x29, 0x94, 0xa5,
2404b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8a, 0x4b, 0x8d, 0xe3, 0xdf, 0xf9, 0x6f, 0xba, 0x80, 0x3d, 0x15, 0xfe,
2414b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0x7d, 0x9e, 0xfc, 0x7b, 0x91, 0x93, 0x62, 0xe9, 0x3f, 0x9c, 0xcf,
2424b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x27, 0x07, 0xdb, 0x46, 0x16, 0x5a, 0xc6, 0xe2, 0x8b, 0xfb, 0xe8, 0x02,
2434b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x37, 0x88, 0x77, 0xc4, 0x1c, 0x95, 0x64, 0xaf, 0xde, 0x6c, 0xf2, 0x85,
2444b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x41, 0xc5, 0xb2, 0xb6, 0x57, 0xcb, 0x28, 0xf4, 0x89, 0x19, 0xd1, 0x96,
2454b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x50, 0xa6, 0xfc, 0xf7, 0xfc, 0x53, 0xfd, 0xc8, 0xf9, 0x9c, 0x3e, 0x06,
2464b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x27, 0x39, 0x78, 0xd4, 0x01, 0x5c, 0xa8, 0xa7, 0x0e, 0x6f, 0xd4, 0x42,
2474b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x01, 0x0b, 0xfc, 0xfe, 0x04, 0xb8, 0x84, 0xf9, 0x6c, 0xf0, 0x2c, 0xa6,
2484b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc9, 0xfd, 0xdb, 0xfe, 0xfa, 0x72, 0xb6, 0x84, 0x38, 0xd4, 0x7f, 0xa8,
2494b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xea, 0xda, 0x44, 0xe0, 0x01, 0x9f, 0xb8, 0xbd, 0x72, 0x86, 0x99, 0x52,
2504b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x42, 0x14, 0x6e, 0xbd, 0x86, 0xee, 0x12, 0xe4, 0x6e, 0xbd, 0x86, 0xee,
2514b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x12, 0xe4, 0x6e, 0x90, 0x07, 0xbe, 0xfd, 0xf3, 0xcc, 0x86, 0x3e, 0xd4,
2524b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x92, 0x01, 0x87, 0x64, 0x5f, 0x16, 0xe9, 0x09, 0xef, 0x9d, 0x7d, 0xb6,
2534b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbf, 0x68, 0xd5, 0x6d, 0x6d, 0xe0, 0x80, 0x14, 0x68, 0x20, 0x80, 0xaf,
2544b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xde, 0x73, 0xce, 0x50, 0xc9, 0xc4, 0x3b, 0x68, 0xcf, 0x46, 0xdd, 0x4b,
2554b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3d, 0xb5, 0x54, 0xdb, 0x1b, 0xe7, 0x00, 0x3d, 0xfa, 0x40, 0x07, 0x8f,
2564b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc7, 0x11, 0xf1, 0x5e, 0x55, 0x5a, 0xe7, 0x47, 0x47, 0xe4, 0x9e, 0x6a,
2574b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x88, 0x10, 0xdf, 0x17, 0x11, 0xf1, 0x84, 0x6b, 0xd0, 0x05, 0x84, 0xe9,
2584b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3f, 0x44, 0xe9, 0x62, 0x5c, 0x1a, 0xdf, 0x4e, 0x00, 0x78, 0x00, 0xbb,
2594b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb1, 0x3d, 0x63, 0x9f, 0xc6, 0x3e, 0x9a, 0xb2, 0xed, 0x19, 0xb1, 0xb1,
2604b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0x39, 0x00, 0x71, 0xf2, 0x00, 0xe0, 0x01, 0x97, 0x4e, 0xce, 0xf9,
2614b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xcd, 0xc8, 0x31, 0xf6, 0xea, 0x24, 0x31, 0xa0, 0xe8, 0xdc, 0xd4, 0xac,
2624b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x2e, 0xc6, 0x00, 0x00, 0x01, 0x03, 0x43, 0xf9, 0x6d, 0x84, 0xef, 0x3a,
2634b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x09, 0x80, 0x07, 0x34, 0x90, 0xde, 0x07, 0x7f, 0x39, 0x63, 0x7b, 0xb7,
2644b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x1b, 0xc6, 0xf3, 0x32, 0xc0, 0x8d, 0xe0, 0xbb, 0x14, 0x2a, 0x56, 0xf2,
2654b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x02, 0xdc, 0x4f, 0xe5, 0xf3, 0x3c, 0x7c, 0xdc, 0x5a, 0x1c, 0x7a, 0x37,
2664b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x04, 0xa6, 0x48, 0xad, 0xe3, 0xa1, 0x6d, 0xd7, 0x6d, 0x55, 0x38, 0x32,
2674b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x35, 0x87, 0xed, 0x02, 0x9b, 0x47, 0x21, 0xeb, 0x93, 0xd6, 0x56, 0xae,
2684b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x97, 0x24, 0x9b, 0xe2, 0x35, 0xb3, 0x83, 0x99, 0x46, 0xdd, 0xf0, 0x00,
2694b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xec, 0x80, 0x58, 0x51, 0xb0, 0x0a, 0x56, 0x5f, 0x6b, 0x05, 0x70, 0x2b,
2704b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x22, 0x00, 0x8f, 0x82, 0xc9, 0x76, 0xd2, 0x5b, 0x50, 0xe8, 0x64, 0x8b,
2714b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x42, 0x5b, 0x15, 0x0e, 0xad, 0x9c, 0x39, 0xae, 0x0d, 0x6d, 0xf1, 0x73,
2724b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x12, 0xdf, 0x4b, 0x0e, 0x09, 0x6f, 0x46, 0xec, 0x00, 0x3d, 0x8f, 0xe0,
2734b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa0, 0xb5, 0x59, 0xe0, 0xde, 0x6e, 0xfe, 0x4d, 0x00, 0x18, 0x37, 0xd0,
2744b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7b, 0x04, 0x2f, 0xf0, 0x7f, 0xb9, 0x94, 0x00, 0x68, 0x9e, 0xa9, 0x1b,
2754b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x40, 0x1c, 0xc0, 0x3d, 0x90, 0xd6, 0xec, 0x10, 0x9c, 0xe9, 0x44, 0x35,
2764b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6e, 0x57, 0xb3, 0xed, 0xe7, 0x5d, 0xb1, 0xc0, 0x3d, 0x0e, 0xbd, 0x59,
2774b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe8, 0x85, 0xaf, 0x83, 0x72, 0xb7, 0x1d, 0x9d, 0xbb, 0xcb, 0x8a, 0x1a,
2784b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6c, 0x3f, 0x10, 0xf1, 0x8a, 0xb5, 0xae, 0x15, 0x8f, 0x17, 0xcf, 0x2f,
2794b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x2c, 0x31, 0x66, 0x15, 0x1b, 0x48, 0x54, 0x29, 0xb7, 0x71, 0x75, 0xbe,
2804b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbb, 0x9f, 0xbd, 0x8a, 0x99, 0x29, 0xc3, 0x9f, 0x90, 0xaa, 0x36, 0x9d,
2814b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x47, 0xb7, 0xb2, 0xe7, 0x1d, 0xf3, 0x1d, 0x90, 0xf3, 0xcd, 0xe6, 0x5b,
2824b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x43, 0x46, 0x0d, 0x6f, 0x9a, 0x13, 0x76, 0x90, 0xed, 0xa1, 0xf6, 0xb7,
2834b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbe, 0x70, 0x21, 0x7f, 0xbb, 0xb9, 0x88, 0x01, 0x0b, 0x73, 0x6a, 0x24,
2844b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5a, 0xd3, 0x96, 0xe4, 0x02, 0x9b, 0xf4, 0xda, 0xe9, 0xb6, 0x94, 0x12,
2854b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x73, 0x57, 0xef, 0xaf, 0x77, 0x16, 0xf1, 0x14, 0x70, 0x6b, 0x71, 0x30,
2864b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x53, 0x88, 0x97, 0xb7, 0x76, 0x60, 0x23, 0xff, 0xea, 0xbe, 0x18, 0xea,
2874b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x12, 0x10, 0xda, 0x7d, 0xb8, 0xc7, 0xce, 0x73, 0xb4, 0x87, 0x16, 0x1d,
2884b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb2, 0xaa, 0x90, 0xda, 0x5e, 0xe5, 0xd1, 0xad, 0x8e, 0x8e, 0xb7, 0xd5,
2894b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbe, 0x60, 0x03, 0x39, 0x82, 0x34, 0xce, 0xe4, 0x83, 0x9f, 0x46, 0x0f,
2904b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6f, 0x35, 0x7f, 0x2f, 0x97, 0x21, 0x45, 0x5f, 0x35, 0x81, 0xd6, 0x40,
2914b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xea, 0x58, 0x69, 0x0d, 0xbd, 0xe0, 0x03, 0xae, 0x60, 0xb8, 0x6f, 0x0f,
2924b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd0, 0xdf, 0x2a, 0x5e, 0x6a, 0x87, 0x1a, 0x65, 0x3c, 0xe6, 0xe6, 0xff,
2934b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf2, 0x00, 0x38, 0xf6, 0xc1, 0x5d, 0x85, 0xd8, 0xfb, 0xa8, 0xe2, 0xd6,
2944b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x07, 0x84, 0x1e, 0x18, 0xdb, 0xe4, 0x34, 0xbc, 0x6e, 0xb7, 0x42, 0x7e,
2954b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xcb, 0x9e, 0x0d, 0xf8, 0xc9, 0x22, 0x65, 0x94, 0x2e, 0xd4, 0x58, 0xa7,
2964b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0d, 0x6b, 0xcd, 0x84, 0x67, 0xc7, 0xd9, 0x42, 0x0b, 0x2b, 0xd4, 0x63,
2974b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x67, 0x72, 0x48, 0x89, 0x28, 0xd4, 0x76, 0xbe, 0x2d, 0x94, 0xaa, 0x7a,
2984b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8c, 0x6c, 0xb5, 0x05, 0x5c, 0x84, 0xa2, 0x90, 0x29, 0xb7, 0x6f, 0x4e,
2994b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0d, 0x6c, 0x4a, 0x6c, 0xc0, 0x29, 0xb9, 0x20, 0x13, 0x69, 0x22, 0x48,
3004b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xdd, 0x42, 0x6e, 0xd8, 0x57, 0x8b, 0x74, 0x7f, 0xe6, 0x09, 0x23, 0x4e,
3014b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x1c, 0xfb, 0x03, 0x3b, 0xf3, 0xb1, 0xc8, 0x4d, 0x1a, 0xd9, 0x4b, 0xe5,
3024b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb6, 0x46, 0xe1, 0x80, 0x84, 0x00, 0xc0, 0x7b, 0x7e, 0x78, 0x5e, 0x51,
3034b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7c, 0x45, 0x8d, 0xec, 0x3d, 0xf0, 0xcd, 0x7d, 0x28, 0x02, 0x35, 0x88,
3044b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xdb, 0x3b, 0x7d, 0x13, 0x36, 0xf7, 0x02, 0x43, 0xf3, 0x35, 0x27, 0x85,
3054b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6f, 0x6e, 0x45, 0x80, 0x07, 0x0f, 0xe6, 0x96, 0x13, 0x82, 0x7c, 0xec,
3064b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x40, 0x82, 0xc0, 0xe6, 0xe4, 0xea, 0xf9, 0x73, 0x94, 0x00, 0x67, 0x00,
3074b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa6, 0xc9, 0xda, 0x41, 0x7f, 0x06, 0x7a, 0xeb, 0x7f, 0x34, 0xf7, 0x94,
3084b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5f, 0x1c, 0x3c, 0x13, 0x3f, 0xe8, 0xa8, 0xde, 0xaf, 0xeb, 0x97, 0xfd,
3094b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd6, 0xed, 0xb4, 0x21, 0x6c, 0x24, 0xb7, 0x43, 0xee, 0xe9, 0x7b, 0xcc,
3104b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb4, 0x26, 0x79, 0xcb, 0x65, 0xf4, 0x1c, 0xd4, 0x80, 0x3a, 0xde, 0x54,
3114b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0c, 0x20, 0xe7, 0xc3, 0xae, 0xe4, 0xa0, 0x53, 0x73, 0x3b, 0x0c, 0x74,
3124b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9c, 0xca, 0x17, 0x6b, 0x57, 0x09, 0xf0, 0xe9, 0xe7, 0x3c, 0x6d, 0x6f,
3134b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x88, 0x26, 0x82, 0x17, 0xfc, 0x6e, 0x4f, 0x04, 0xa5, 0x56, 0xe9, 0x1b,
3144b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x37, 0x6c, 0xc6, 0xbc, 0x88, 0xfe, 0xc4, 0x4d, 0x7a, 0xc9, 0x50, 0x3a,
3154b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc9, 0x29, 0x9b, 0x14, 0x28, 0x60, 0x4b, 0x75, 0x3f, 0xbd, 0x3f, 0x9f,
3164b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x39, 0xe6, 0x1b, 0x8a, 0xa7, 0x4b, 0x10, 0x65, 0x52, 0x82, 0xe0, 0xd6,
3174b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf4, 0x26, 0x51, 0x78, 0x1d, 0x5b, 0x95, 0x0d, 0x53, 0x2b, 0x7e, 0x2f,
3184b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe8, 0xf9, 0x9d, 0x47, 0xf6, 0x58, 0xe9, 0x30, 0xe2, 0xc3, 0xe1, 0x6d,
3194b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xdc, 0x50, 0x03, 0xdb, 0xcc, 0x94, 0x00, 0x5d, 0xe0, 0x07, 0xb6, 0x2f,
3204b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x97, 0xef, 0xc6, 0x3a, 0xc2, 0xc0, 0x99, 0xe7, 0x65, 0x89, 0x1b, 0x4e,
3214b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x59, 0x1f, 0xe7, 0xae, 0xc0, 0x1e, 0x61, 0x92, 0x5f, 0x55, 0xaa, 0x51,
3224b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xcc, 0xf6, 0x4e, 0x32, 0x56, 0x76, 0x99, 0x2b, 0x6e, 0xe8, 0x5c, 0xc9,
3234b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe2, 0xa8, 0x78, 0x4b, 0x76, 0x85, 0xf3, 0x34, 0x5c, 0x52, 0x8e, 0xa5,
3244b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xed, 0x4a, 0x87, 0x9e, 0x3e, 0x90, 0x9b, 0xcf, 0xec, 0x57, 0x4b, 0x60,
3254b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5a, 0xc9, 0x69, 0x0c, 0x63, 0x7a, 0x01, 0x26, 0x88, 0xb9, 0x32, 0x82,
3264b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x48, 0x02, 0x1b, 0x2c, 0xbe, 0x95, 0xb9, 0x2f, 0xe1, 0x4b, 0x6c, 0x4e,
3274b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x03, 0xdb, 0xc7, 0xce, 0xcf, 0x67, 0xf1, 0x1f, 0x83, 0xca, 0xb6, 0x20,
3284b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x06, 0xcd, 0xb8, 0xd9, 0xcb, 0x94, 0xb0, 0xa1, 0x88, 0xdc, 0xf9, 0x2c,
3294b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4a, 0xb6, 0x85, 0x14, 0x42, 0x6c, 0xbb, 0x0d, 0x48, 0xd6, 0x51, 0x8f,
3304b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x21, 0x4a, 0xd4, 0x74, 0x6f, 0xdf, 0x89, 0x76, 0xf2, 0xe7, 0xcd, 0x32,
3314b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc4, 0x4b, 0x52, 0xca, 0x5c, 0x08, 0x2c, 0x6b, 0x76, 0x88, 0xa4, 0x41,
3324b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x62, 0xed, 0x96, 0x71, 0xb0, 0xa4, 0x37, 0x2d, 0x91, 0x60, 0x69, 0x6d,
3334b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xee, 0x00, 0x18, 0x6f, 0x20, 0x0d, 0x48, 0xff, 0xd7, 0x2c, 0xb5, 0x4b,
3344b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x27, 0xf3, 0x91, 0xf3, 0x6a, 0x20, 0x04, 0xc5, 0x95, 0x10, 0x36, 0x0f,
3354b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6f, 0x4c, 0x00, 0xc0, 0x57, 0x3e, 0xc0, 0x16, 0xcd, 0xba, 0x30, 0xcc,
3364b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x28, 0xed, 0xa7, 0xcf, 0x35, 0x94, 0xe0, 0xb6, 0x39, 0xdc, 0xb1, 0x25,
3374b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x09, 0x42, 0xd1, 0x8d, 0x7c, 0x87, 0x20, 0x53, 0x7b, 0xc0, 0x1b, 0x5d,
3384b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0x7f, 0xc3, 0xdf, 0xc6, 0xa1, 0x68, 0x61, 0x3c, 0xdb, 0x65, 0xf1,
3394b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x2d, 0xbd, 0xc3, 0x7c, 0x6c, 0x01, 0xa0, 0x9e, 0xd3, 0x9d, 0xd9, 0xd8,
3404b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xeb, 0x73, 0x5f, 0x76, 0xdd, 0x41, 0xe1, 0x6d, 0xcf, 0x00, 0x64, 0x44,
3414b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xea, 0x6c, 0x36, 0xdb, 0x40, 0x95, 0x2e, 0x9b, 0x42, 0x5b, 0x32, 0x36,
3424b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xba, 0x8b, 0x9b, 0x8e, 0xb4, 0x78, 0x6d, 0x87, 0x1e, 0xda, 0x08, 0xb3,
3434b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x75, 0x64, 0x6f, 0xeb, 0x3f, 0xcf, 0x7e, 0x85, 0x77, 0x8f, 0xcd, 0x55,
3444b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x87, 0x48, 0x75, 0x4a, 0x48, 0x6e, 0x00, 0xb0, 0x06, 0xe0, 0x07, 0xdc,
3454b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd2, 0x33, 0xa7, 0x38, 0x54, 0x92, 0x1b, 0xa9, 0x5c, 0xa5, 0x64, 0x31,
3464b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x07, 0x37, 0x88, 0x00, 0x36, 0x20, 0x88, 0xa5, 0x8b, 0x90, 0xfc, 0xe2,
3474b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xcb, 0x24, 0x55, 0x01, 0xec, 0x6e, 0x37, 0xcf, 0xcf, 0xf0, 0x55, 0x99,
3484b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf1, 0xe7, 0x4f, 0x77, 0x7b, 0x22, 0xc1, 0xab, 0x4f, 0x83, 0x23, 0x3f,
3494b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8e, 0x37, 0x5c, 0x81, 0xf0, 0xea, 0x95, 0x0b, 0xad, 0x5c, 0x65, 0x41,
3504b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xad, 0xc0, 0x02, 0xe1, 0x53, 0xfc, 0x2a, 0x6b, 0xe8, 0x6d, 0xd7, 0x86,
3514b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa1, 0x4d, 0xdc, 0x23, 0x00, 0x3c, 0xe8, 0x01, 0xb8, 0x03, 0x8f, 0x3e,
3524b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xfd, 0xf9, 0xda, 0x51, 0xb3, 0x99, 0xce, 0xd8, 0x71, 0x43, 0x46, 0x64,
3534b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6f, 0x82, 0x11, 0x25, 0x11, 0xb9, 0x74, 0x0f, 0x1d, 0x46, 0x37, 0xb1,
3544b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0x68, 0x44, 0xa0, 0x0e, 0xc4, 0x60, 0x9f, 0x9e, 0xcc, 0x5b, 0x35,
3554b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xff, 0x9d, 0xd4, 0x37, 0x00, 0xc2, 0x7e, 0x14, 0x38, 0xa3, 0xe8, 0x5b,
3564b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6f, 0xe4, 0x41, 0xb2, 0x46, 0x84, 0x8f, 0x49, 0x11, 0x80, 0x00, 0x00,
3574b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x01, 0x04, 0x43, 0xf9, 0x8e, 0xd8, 0xe7, 0x69, 0x90, 0x2f, 0x79, 0x44,
3584b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6c, 0xf5, 0xf4, 0x47, 0x79, 0x4e, 0x1e, 0xb2, 0x59, 0x54, 0x21, 0x18,
3594b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3d, 0xd3, 0x49, 0x98, 0x1a, 0x07, 0x35, 0x22, 0x72, 0x71, 0xd1, 0x70,
3604b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe2, 0xd5, 0x75, 0x0a, 0x50, 0xd6, 0xf3, 0x52, 0xc6, 0xf1, 0xd1, 0xbc,
3614b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xba, 0xa0, 0x16, 0x17, 0xea, 0x39, 0xb4, 0x7c, 0xd3, 0x0d, 0x92, 0x8f,
3624b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x92, 0x27, 0x8b, 0x58, 0x28, 0x9f, 0xbc, 0xcd, 0xba, 0x52, 0x87, 0x5c,
3634b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x52, 0xdb, 0x41, 0x13, 0xb9, 0xcc, 0x42, 0x74, 0xa3, 0xeb, 0x86, 0x6d,
3644b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x55, 0x3a, 0xd6, 0x71, 0xf2, 0x2a, 0x33, 0xa3, 0x9b, 0xf2, 0xde, 0xee,
3654b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd7, 0x3e, 0x15, 0x95, 0x81, 0x1f, 0x8d, 0xe4, 0x44, 0xba, 0x14, 0x7c,
3664b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb2, 0xb7, 0xb1, 0x10, 0xab, 0x32, 0xdf, 0x09, 0x15, 0x5b, 0xb3, 0xda,
3674b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xfd, 0x79, 0x12, 0xb9, 0x28, 0x45, 0x92, 0x42, 0x13, 0x72, 0xcb, 0x16,
3684b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x12, 0x58, 0x54, 0x46, 0xfc, 0x88, 0x03, 0xf4, 0xb4, 0x9f, 0x54, 0x05,
3694b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x51, 0x7c, 0x9d, 0xe2, 0xa8, 0x58, 0x59, 0x6c, 0xa2, 0x93, 0xda, 0x1b,
3704b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa8, 0x13, 0xb2, 0xc5, 0x6f, 0x47, 0x25, 0x15, 0xce, 0x5c, 0xa0, 0x94,
3714b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x01, 0x19, 0x6d, 0x04, 0xbf, 0xfd, 0x56, 0xf1, 0xd0, 0x0c, 0x15, 0x6f,
3724b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa3, 0x77, 0x0f, 0x56, 0xd0, 0xe6, 0xe8, 0xb3, 0xcf, 0xac, 0xd4, 0xf5,
3734b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x29, 0xba, 0x1b, 0xf8, 0x39, 0xb0, 0xcc, 0x9f, 0x3a, 0xe9, 0xa4, 0x26,
3744b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xee, 0xbf, 0x3f, 0x09, 0x08, 0x6d, 0x34, 0xb9, 0x5a, 0x1b, 0xe4, 0xb7,
3754b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x53, 0xd8, 0x10, 0xbf, 0xdf, 0x98, 0x4b, 0xd8, 0xb3, 0xc5, 0xa8, 0xef,
3764b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3c, 0xae, 0xc5, 0x08, 0x59, 0x49, 0x32, 0x8c, 0x6e, 0x74, 0x2e, 0xd2,
3774b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4b, 0x21, 0xac, 0x37, 0xf5, 0x69, 0xf9, 0x52, 0x5c, 0x88, 0x4b, 0x6c,
3784b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4f, 0xa0, 0x16, 0xf3, 0xe7, 0x68, 0x04, 0x1b, 0x8b, 0xe2, 0x91, 0x09,
3794b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0c, 0xb9, 0x00, 0x0d, 0xf0, 0x5c, 0x04, 0xcf, 0xfd, 0x5a, 0x49, 0x67,
3804b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe1, 0x31, 0xfc, 0x19, 0xb4, 0x30, 0xd7, 0x1b, 0x3d, 0x14, 0xef, 0x14,
3814b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xac, 0xc6, 0x23, 0x41, 0xe0, 0x73, 0x7e, 0x53, 0x78, 0xdf, 0xb7, 0x3f,
3824b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x1c, 0x73, 0x20, 0x6a, 0xe6, 0x72, 0x60, 0xe2, 0x62, 0xa5, 0xf5, 0x6d,
3834b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbf, 0x6c, 0x84, 0x7f, 0xad, 0x4e, 0x2c, 0x80, 0x4e, 0xf3, 0x32, 0xe6,
3844b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc3, 0xe9, 0x49, 0x06, 0xb6, 0x69, 0xc6, 0x4f, 0x8e, 0x04, 0x3d, 0xf3,
3854b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x29, 0x36, 0x5e, 0x73, 0x7c, 0xcc, 0x96, 0x2a, 0x15, 0x51, 0x67, 0x85,
3864b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8d, 0x89, 0xfa, 0x7c, 0x84, 0x39, 0x80, 0x5b, 0x3b, 0x52, 0x54, 0x6f,
3874b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x57, 0x69, 0xb9, 0xb6, 0x37, 0xf4, 0x70, 0x07, 0x22, 0xe7, 0xc7, 0xdb,
3884b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x78, 0x7b, 0xc2, 0x73, 0x2c, 0xb1, 0x17, 0xf1, 0x1b, 0xe7, 0x3f, 0x7e,
3894b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb7, 0xfc, 0x47, 0x9e, 0x41, 0x17, 0x28, 0xed, 0x3a, 0xc6, 0xf7, 0xbf,
3904b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe7, 0x82, 0x0f, 0xf6, 0x4a, 0x2e, 0x00, 0x41, 0xba, 0xb7, 0x28, 0x5b,
3914b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7b, 0xad, 0xda, 0x4e, 0xb7, 0x25, 0x0c, 0xb5, 0x0a, 0x6e, 0x5c, 0x8b,
3924b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb2, 0xc6, 0xe1, 0xe3, 0x10, 0x5c, 0xb2, 0x04, 0x2b, 0x7f, 0x9e, 0x2d,
3934b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf3, 0xf3, 0x03, 0x87, 0x86, 0x96, 0xdd, 0x61, 0x38, 0xed, 0x77, 0xcc,
3944b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x35, 0x60, 0xfb, 0x64, 0xa6, 0x0d, 0x1f, 0x69, 0x6d, 0x39, 0xb4, 0x01,
3954b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb0, 0x9f, 0xf7, 0x2f, 0xd0, 0x9d, 0x7f, 0x0a, 0xeb, 0x69, 0xe0, 0x4c,
3964b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa8, 0xdd, 0x27, 0x15, 0x9d, 0xed, 0x0b, 0x57, 0xea, 0x96, 0x03, 0x26,
3974b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd2, 0x2b, 0xa2, 0x90, 0xf6, 0x36, 0xf0, 0x0c, 0x4b, 0x00, 0x06, 0x72,
3984b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb7, 0xa6, 0x02, 0x17, 0xf8, 0x91, 0x63, 0xa4, 0x80, 0x3d, 0x37, 0xdf,
3994b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x78, 0x33, 0x21, 0xe4, 0xd5, 0x2a, 0x20, 0x4b, 0x7d, 0x7b, 0xe6, 0x02,
4004b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0f, 0xf5, 0x80, 0x2c, 0xfe, 0x66, 0x89, 0xe2, 0x69, 0x59, 0x9b, 0xef,
4014b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xed, 0xe7, 0x27, 0x91, 0xf6, 0x93, 0xf6, 0x54, 0xa0, 0x11, 0x4b, 0x5b,
4024b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe5, 0x30, 0x10, 0xbf, 0xea, 0xbe, 0xd8, 0x37, 0xf5, 0x62, 0x6d, 0xbe,
4034b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0d, 0xd8, 0xfa, 0x7f, 0xb8, 0x00, 0x77, 0xef, 0x9e, 0x69, 0x47, 0xa3,
4044b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb8, 0xf3, 0xc8, 0x32, 0x87, 0xe9, 0x52, 0x2b, 0x73, 0xce, 0x6e, 0x26,
4054b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x45, 0x08, 0x2d, 0xb8, 0xf2, 0xa2, 0x23, 0x7e, 0xbf, 0x1f, 0x9b, 0x73,
4064b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x53, 0x60, 0x4c, 0x29, 0x46, 0x52, 0xdb, 0xa4, 0x00, 0xa4, 0x8b, 0x9f,
4074b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7e, 0x05, 0x88, 0x9a, 0xe9, 0x46, 0x51, 0x5f, 0x4f, 0x73, 0x37, 0xcc,
4084b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf9, 0xfa, 0x85, 0xa9, 0xe3, 0x9b, 0xe7, 0x22, 0xe0, 0x01, 0xf6, 0x8a,
4094b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8f, 0xd0, 0x9b, 0x78, 0xc4, 0x2c, 0x04, 0x68, 0x53, 0x7b, 0x5a, 0xa4,
4104b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x52, 0x0e, 0x4d, 0x30, 0x05, 0x7c, 0xae, 0x9e, 0x1d, 0x60, 0xd0, 0xb6,
4114b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf2, 0x72, 0x82, 0x17, 0xfd, 0x57, 0x5c, 0x81, 0xb7, 0x4c, 0x29, 0xb0,
4124b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x85, 0xec, 0x2b, 0xc6, 0x46, 0xf3, 0x80, 0x14, 0xf0, 0xf0, 0x07, 0x3f,
4134b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4e, 0x7d, 0xb1, 0xd0, 0x27, 0x7a, 0x7e, 0x2b, 0xa5, 0x2e, 0x15, 0x29,
4144b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd5, 0xb2, 0xfc, 0x3e, 0x00, 0x3a, 0xf7, 0xbb, 0x64, 0x41, 0xdd, 0x3a,
4154b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x2e, 0x21, 0xc7, 0x16, 0xaa, 0x17, 0x55, 0xbe, 0xac, 0x00, 0xab, 0xa7,
4164b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7c, 0x80, 0x57, 0xbd, 0xbf, 0x68, 0x11, 0xf9, 0xd0, 0xfc, 0x29, 0x00,
4174b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8a, 0x34, 0x92, 0xdf, 0x37, 0x00, 0x75, 0xed, 0xee, 0x00, 0xfb, 0xdb,
4184b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x33, 0xa8, 0x47, 0xed, 0xf6, 0x2e, 0x87, 0x1d, 0x31, 0xce, 0x88, 0x54,
4194b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x29, 0xbd, 0x47, 0x3e, 0x0b, 0x15, 0x33, 0x4c, 0x09, 0x2e, 0xa5, 0xbe,
4204b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x2d, 0xbe, 0x6a, 0xc2, 0xd0, 0x25, 0xbf, 0x9b, 0x57, 0x66, 0xf0, 0x63,
4214b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb2, 0x05, 0x0f, 0x0b, 0x6d, 0x2f, 0x2e, 0xd0, 0x29, 0xb6, 0x88, 0xdd,
4224b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xeb, 0x80, 0x09, 0xec, 0x2c, 0x07, 0xb6, 0x4f, 0x16, 0x8e, 0x12, 0x08,
4234b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3f, 0xd8, 0x00, 0xfb, 0x39, 0x4a, 0x3d, 0x60, 0x8e, 0x64, 0xd7, 0x14,
4244b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb0, 0xed, 0x2e, 0x5b, 0x43, 0x28, 0xe6, 0xdc, 0xc5, 0x80, 0x53, 0x4c,
4254b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x94, 0xb4, 0x6f, 0x29, 0x1b, 0x9b, 0x7e, 0xa4, 0xe3, 0x32, 0xd4, 0x8b,
4264b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x78, 0x8f, 0x4e, 0x4d, 0x01, 0xc2, 0x98, 0x6a, 0x0d, 0x2c, 0xf0, 0xc5,
4274b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6f, 0x68, 0x22, 0xf6, 0x23, 0xe9, 0x05, 0x5e, 0xf2, 0x8e, 0xab, 0xd6,
4284b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xba, 0x2c, 0x0f, 0x85, 0x4b, 0x0a, 0x94, 0x28, 0x7b, 0x69, 0x00, 0x5e,
4294b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4f, 0x00, 0x6a, 0x00, 0xe3, 0xdb, 0xb1, 0x79, 0xb4, 0x73, 0x85, 0x93,
4304b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd7, 0x8e, 0x7b, 0x3f, 0x2a, 0x6c, 0x40, 0x1c, 0x51, 0x8d, 0xfa, 0x34,
4314b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x01, 0x0f, 0xdf, 0x5f, 0x44, 0x89, 0xcc, 0x90, 0xbb, 0x43, 0xde, 0xf2,
4324b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc7, 0xdf, 0x5a, 0xd4, 0x2c, 0xae, 0x34, 0xbf, 0x06, 0xd9, 0xe5, 0xbb,
4334b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4b, 0x6f, 0xf2, 0x77, 0x29, 0xc4, 0x85, 0xb6, 0x7e, 0xe2, 0xd8, 0x8d,
4344b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xfa, 0xc8, 0x00, 0x9c, 0x01, 0xc8, 0xbd, 0xd8, 0x1d, 0x1d, 0x90, 0x98,
4354b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x12, 0xd9, 0x40, 0x08, 0x7f, 0xfa, 0x46, 0x11, 0x49, 0xe2, 0x64, 0x2a,
4364b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x79, 0x98, 0xb4, 0xab, 0x4a, 0x8d, 0x98, 0x9e, 0x25, 0xb4, 0xf6, 0x5d,
4374b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xba, 0x55, 0x3d, 0xbf, 0x9b, 0x80, 0x3b, 0xf8, 0x70, 0x02, 0xf2, 0x30,
4384b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x03, 0xbb, 0xde, 0xad, 0xa5, 0x66, 0x80, 0x1e, 0x4e, 0x26, 0xbb, 0x50,
4394b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xba, 0x7e, 0xd4, 0x48, 0x58, 0x4b, 0x79, 0xa2, 0x27, 0x0f, 0xf7, 0xeb,
4404b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x48, 0xfd, 0x5a, 0x32, 0xc4, 0xeb, 0x72, 0x2c, 0x38, 0xed, 0xb5, 0x61,
4414b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0a, 0x37, 0xe9, 0x7f, 0x9d, 0xbf, 0x5f, 0xef, 0xb8, 0xbd, 0xf5, 0xed,
4424b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf6, 0xc8, 0x15, 0x87, 0x48, 0x14, 0xdf, 0x9f, 0x80, 0x1e, 0xf5, 0xa0,
4434b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x05, 0x14, 0x8d, 0xec, 0x2c, 0xe2, 0xe3, 0xed, 0xc1, 0x0e, 0x79, 0x47,
4444b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x13, 0x0b, 0xa9, 0xe0, 0x5a, 0xb4, 0x8b, 0xa4, 0xe3, 0x4e, 0x0a, 0x4b,
4454b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x63, 0x3e, 0x7f, 0x0a, 0x4a, 0xa7, 0x37, 0xcd, 0xfb, 0xb9, 0xc2, 0xdd,
4464b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc6, 0xeb, 0xec, 0x1b, 0x92, 0x59, 0xfb, 0x39, 0xbe, 0x96, 0x00, 0xfc,
4474b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5e, 0x09, 0xf7, 0x13, 0x38, 0xe8, 0x6a, 0x68, 0x05, 0x44, 0xcc, 0x7d,
4484b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x01, 0x5e, 0xd2, 0x8e, 0x1a, 0xad, 0xf3, 0x5f, 0xee, 0x7b, 0x7d, 0x44,
4494b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5d, 0x15, 0x62, 0x25, 0x9b, 0xa1, 0x86, 0x14, 0x6f, 0x89, 0x41, 0x25,
4504b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x56, 0xfb, 0x57, 0xf0, 0x8b, 0x84, 0x5f, 0xbf, 0x7b, 0xc6, 0x8c, 0x47,
4514b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x64, 0x87, 0x3a, 0x21, 0x54, 0x7d, 0x3d, 0xb8, 0x7b, 0x78, 0x05, 0xa4,
4524b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc9, 0xa1, 0x91, 0x1a, 0x1f, 0xa4, 0xfa, 0x52, 0xb7, 0xe4, 0x88, 0x00,
4534b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x15, 0x0a, 0x16, 0x96, 0xac, 0x55, 0x7d, 0x7e, 0x99, 0x86, 0xd2, 0xce,
4544b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb0, 0x6d, 0x09, 0x6f, 0x19, 0xe7, 0x3d, 0xac, 0x8e, 0x7e, 0xd5, 0x36,
4554b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9f, 0x86, 0xd5, 0x0b, 0x6f, 0x60, 0x00, 0xe8, 0x8b, 0x08, 0xc8, 0xfd,
4564b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x99, 0xa5, 0x96, 0xeb, 0x26, 0x45, 0x0b, 0xaa, 0x73, 0x7c, 0x9f, 0xda,
4574b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd0, 0x06, 0xdf, 0x42, 0x27, 0x62, 0xc0, 0x45, 0xe6, 0xfb, 0x56, 0x0c,
4584b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x26, 0x4b, 0x0a, 0x2d, 0xa7, 0x93, 0x27, 0x42, 0x16, 0x0f, 0x53, 0x69,
4594b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd0, 0x69, 0xc5, 0xb7, 0x3d, 0xb2, 0x4c, 0x58, 0xdf, 0x24, 0x01, 0xf9,
4604b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3b, 0xa1, 0x04, 0x6e, 0xc4, 0xfc, 0x6a, 0x5b, 0x3c, 0xe3, 0xb7, 0x83,
4614b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x43, 0xe0, 0x65, 0xb0, 0xab, 0x65, 0x46, 0xfd, 0x38, 0x00, 0x8c, 0x8a,
4624b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x08, 0x3f, 0xcc, 0x00, 0xfc, 0x8e, 0xf0, 0x0b, 0x34, 0x11, 0xc0, 0x13,
4634b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8f, 0x20, 0x31, 0x0a, 0x53, 0xb4, 0x7e, 0x9f, 0xe8, 0xde, 0x0f, 0xfb,
4644b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xcd, 0x00, 0x4a, 0x47, 0xd7, 0x79, 0x41, 0xf8, 0x01, 0x66, 0x49, 0x6e,
4654b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd3, 0xc0, 0x72, 0x19, 0x09, 0x2d, 0xef, 0xdd, 0x1d, 0x04, 0xbe, 0x19,
4664b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x80, 0x2b, 0xc7, 0x07, 0x6a, 0x0e, 0x45, 0x43, 0x9b, 0xd6, 0xe3, 0x6f,
4674b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x39, 0x15, 0x60, 0xca, 0x6c, 0xab, 0x47, 0x37, 0x6c, 0xa6, 0xd6, 0x00,
4684b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0x01, 0x05, 0x43, 0xf9, 0x7d, 0x74, 0xbc, 0x58, 0xed, 0x01, 0x5e,
4694b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd0, 0x82, 0x99, 0x05, 0xde, 0x29, 0x32, 0x84, 0xea, 0x9f, 0x46, 0x37,
4704b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4e, 0x3e, 0x5b, 0x4c, 0xb6, 0x0e, 0x68, 0x2b, 0xdd, 0xc6, 0x95, 0x92,
4714b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc5, 0x4d, 0xf0, 0x6e, 0x02, 0x9b, 0xc7, 0xc5, 0xd3, 0xa3, 0x7c, 0xf1,
4724b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6e, 0xbb, 0x25, 0x90, 0x22, 0x69, 0xb2, 0x21, 0x46, 0xb3, 0x0b, 0xe7,
4734b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9a, 0xfd, 0x76, 0x5a, 0xa6, 0xcf, 0x38, 0x8e, 0x9b, 0xa7, 0x19, 0x50,
4744b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc8, 0xdd, 0x93, 0x43, 0x9e, 0x1e, 0xed, 0xb1, 0x66, 0x07, 0x2a, 0xa5,
4754b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6d, 0xbb, 0x45, 0xba, 0x7d, 0x44, 0xce, 0x3b, 0xd2, 0xe5, 0x9d, 0x47,
4764b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd7, 0x75, 0x77, 0x89, 0x15, 0x0f, 0x02, 0x75, 0xb9, 0x4d, 0x27, 0x45,
4774b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3d, 0xb7, 0x2e, 0xa8, 0x1c, 0xdf, 0x96, 0xda, 0x6d, 0x88, 0xde, 0xcd,
4784b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xdc, 0x80, 0x1f, 0xf2, 0xfc, 0x92, 0x41, 0xf5, 0xf1, 0x02, 0xe0, 0xda,
4794b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x84, 0x36, 0xf2, 0xdc, 0x97, 0xc7, 0x04, 0x8b, 0x1b, 0x03, 0x9d, 0x05,
4804b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7b, 0xf4, 0x6d, 0x9e, 0x18, 0x85, 0xb4, 0x5a, 0x38, 0x86, 0xdc, 0xd4,
4814b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa9, 0x1b, 0xeb, 0x67, 0x37, 0xfd, 0xd6, 0x3b, 0xb7, 0xe4, 0x2c, 0xcc,
4824b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd7, 0x98, 0x8f, 0xb2, 0x15, 0x0b, 0x44, 0x54, 0x6f, 0x1a, 0x08, 0x60,
4834b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0d, 0x55, 0xbb, 0x02, 0x2a, 0xe5, 0xf2, 0xf4, 0x36, 0xd4, 0x6e, 0x56,
4844b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc3, 0x1d, 0x29, 0x2f, 0x25, 0x6f, 0x42, 0x50, 0xea, 0xa4, 0x36, 0xd8,
4854b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7b, 0x7b, 0xc4, 0x82, 0x17, 0xfa, 0xd7, 0xe4, 0x40, 0xb4, 0x46, 0xb4,
4864b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8d, 0xd6, 0xf5, 0xa6, 0xbe, 0xd1, 0x85, 0x41, 0xed, 0xe8, 0x2a, 0xe5,
4874b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe7, 0x49, 0x76, 0xda, 0xde, 0x66, 0x54, 0x73, 0xac, 0xbe, 0x3a, 0x89,
4884b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe2, 0x39, 0xae, 0x87, 0x69, 0xed, 0x27, 0x37, 0xb4, 0x45, 0x00, 0x3e,
4894b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x84, 0x5e, 0x57, 0x01, 0x20, 0x00, 0xf9, 0x99, 0x38, 0x9e, 0x0a, 0x5c,
4904b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x21, 0x37, 0x9b, 0x81, 0xcd, 0xdb, 0xe9, 0xf3, 0xfd, 0xc7, 0x1e, 0x72,
4914b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x51, 0xb2, 0x58, 0xdc, 0x22, 0x63, 0x72, 0x8d, 0xac, 0xce, 0x6f, 0xd2,
4924b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x11, 0xb8, 0x04, 0x1f, 0xed, 0xc1, 0x1d, 0xca, 0x13, 0xe7, 0xbb, 0x56,
4934b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0c, 0x19, 0x31, 0xaf, 0xc5, 0x00, 0x74, 0xf2, 0x31, 0x88, 0x1b, 0x37,
4944b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbf, 0x3b, 0x76, 0x1e, 0x03, 0x88, 0x52, 0xa3, 0x72, 0xf9, 0x40, 0x07,
4954b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3b, 0xf1, 0x99, 0x60, 0x4c, 0x32, 0xdb, 0x28, 0x4a, 0xa9, 0x2e, 0x35,
4964b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9c, 0x60, 0x20, 0x80, 0x9f, 0x5e, 0xd2, 0xcf, 0x1e, 0x05, 0xc5, 0xf0,
4974b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbc, 0x92, 0x1b, 0x53, 0xdb, 0xaa, 0xad, 0x45, 0x21, 0xab, 0x7b, 0xf7,
4984b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x99, 0xcf, 0x1b, 0x0c, 0xca, 0x39, 0x3d, 0xb5, 0xd3, 0x28, 0xca, 0x76,
4994b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd2, 0xe9, 0x66, 0x36, 0x57, 0x99, 0xf1, 0xcd, 0xbe, 0x55, 0x3f, 0x69,
5004b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x66, 0xc1, 0xaa, 0x3e, 0x01, 0xcd, 0xe8, 0xfa, 0x7e, 0x80, 0x33, 0xc2,
5014b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7c, 0xf3, 0x0a, 0xe1, 0xd6, 0x63, 0xa8, 0x0a, 0xe4, 0xb6, 0x94, 0x10,
5024b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x18, 0xd9, 0x79, 0xdb, 0xf4, 0xa2, 0x75, 0xf4, 0x2a, 0x7c, 0x9b, 0x84,
5034b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x38, 0x8a, 0xda, 0x35, 0xe7, 0xe4, 0xca, 0x4a, 0x6f, 0x85, 0xd0, 0x21,
5044b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7f, 0xd3, 0xd7, 0x77, 0xc2, 0x18, 0xb7, 0xc2, 0xd6, 0xfa, 0xef, 0xd2,
5054b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xcf, 0xf8, 0x8d, 0x45, 0x01, 0x14, 0xb2, 0xc8, 0x34, 0x63, 0x7c, 0x75,
5064b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x17, 0x72, 0x12, 0xa2, 0x92, 0x0e, 0x6e, 0x8d, 0x90, 0x5f, 0x3a, 0xed,
5074b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x30, 0x2a, 0x3e, 0x36, 0x1a, 0x1d, 0x1b, 0x7e, 0x40, 0xc7, 0x56, 0xfa,
5084b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x46, 0xee, 0xd8, 0x08, 0x20, 0x27, 0x40, 0x1c, 0x79, 0x4a, 0x17, 0xd6,
5094b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3e, 0xda, 0x17, 0x36, 0x55, 0xa1, 0x4d, 0xec, 0x85, 0xcd, 0xf7, 0x17,
5104b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbc, 0x10, 0x2d, 0x2f, 0x6d, 0x0f, 0xc7, 0x9a, 0xf1, 0x87, 0x06, 0x50,
5114b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x96, 0xf0, 0xfd, 0x02, 0x10, 0x06, 0x8a, 0xe8, 0x41, 0x0b, 0x63, 0xf7,
5124b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3c, 0x26, 0xd6, 0xf7, 0x3f, 0xcd, 0x84, 0x7d, 0x12, 0x84, 0x3b, 0x57,
5134b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc4, 0x7f, 0xab, 0x71, 0x4c, 0x00, 0xab, 0x76, 0x5f, 0x57, 0xa5, 0xcf,
5144b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x16, 0xe4, 0xb8, 0x40, 0xd7, 0x80, 0x0c, 0x6a, 0xb7, 0xe7, 0xb5, 0xd5,
5154b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd7, 0x8e, 0x28, 0xc4, 0x57, 0xc9, 0x4e, 0xb4, 0xba, 0x5d, 0x6f, 0xa0,
5164b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe6, 0x0b, 0xff, 0x8a, 0x17, 0x79, 0xf2, 0x59, 0x2c, 0x37, 0x3a, 0xe6,
5174b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xba, 0x18, 0x7c, 0x2e, 0x01, 0xed, 0xe5, 0xba, 0xe4, 0x00, 0xe3, 0xa1,
5184b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7d, 0x3e, 0xd8, 0x3c, 0xed, 0xb2, 0x85, 0x18, 0x5b, 0x7a, 0x3c, 0x73,
5194b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc1, 0x03, 0xf3, 0x39, 0xe2, 0xd9, 0x88, 0x71, 0x3b, 0xbe, 0x3c, 0xe9,
5204b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x67, 0xc0, 0xe2, 0xe0, 0x14, 0xd9, 0x77, 0x41, 0x08, 0x01, 0xab, 0xe2,
5214b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x10, 0x9b, 0x91, 0xe0, 0x67, 0x89, 0x72, 0xb7, 0xe4, 0x7e, 0x3a, 0x00,
5224b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb3, 0x5d, 0x85, 0xd9, 0x6c, 0x52, 0x8b, 0xbe, 0xb0, 0x08, 0x6e, 0x98,
5234b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x03, 0xed, 0x78, 0x03, 0xf1, 0x66, 0x3b, 0x8c, 0x83, 0x97, 0x30, 0x9a,
5244b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5a, 0x40, 0xe9, 0x6c, 0x3e, 0x86, 0xb7, 0xe9, 0x10, 0x40, 0xfd, 0x40,
5254b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x07, 0x3d, 0xf0, 0x00, 0xf3, 0x8f, 0x61, 0x5a, 0xec, 0x85, 0xf2, 0xff,
5264b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x24, 0x29, 0xc6, 0x87, 0x7e, 0x83, 0x24, 0x6d, 0x60, 0x04, 0xa0, 0x0e,
5274b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7d, 0xfa, 0x17, 0xb8, 0xf9, 0xe5, 0x92, 0x4c, 0x97, 0xcd, 0xf9, 0x13,
5284b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6d, 0x32, 0x1c, 0xdd, 0x9f, 0x27, 0xad, 0x50, 0xb6, 0xea, 0x16, 0x7c,
5294b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb5, 0x5b, 0xfc, 0xda, 0x00, 0xf3, 0xe3, 0xbe, 0x39, 0xf2, 0xe1, 0xef,
5304b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe4, 0xb5, 0xcc, 0x78, 0x01, 0xf3, 0x88, 0x3b, 0xe5, 0x09, 0xf2, 0x42,
5314b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xac, 0x4b, 0x54, 0x7d, 0xad, 0xd4, 0xe2, 0xec, 0x15, 0xb8, 0x64, 0x08,
5324b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb9, 0xb4, 0xf1, 0x9e, 0x10, 0x2d, 0xbe, 0xb6, 0x00, 0x8f, 0xa8, 0x00,
5334b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc0, 0x01, 0x16, 0xef, 0x3c, 0xf2, 0x85, 0xf9, 0x63, 0xc4, 0x8b, 0x72,
5344b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x53, 0x43, 0xcb, 0x5c, 0x52, 0x4b, 0x6e, 0x04, 0x0f, 0xd3, 0x00, 0xb3,
5354b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x28, 0xbe, 0xdf, 0x75, 0xf2, 0x1d, 0x15, 0x6c, 0x8d, 0xbb, 0xe5, 0xba,
5364b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb7, 0xd6, 0x42, 0x98, 0xee, 0x79, 0x6c, 0xb6, 0x37, 0xf8, 0xdd, 0xd8,
5374b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0x26, 0x5a, 0x09, 0x80, 0x06, 0xe9, 0x67, 0xab, 0x7d, 0x14, 0x10,
5384b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3f, 0x38, 0x8c, 0x08, 0x3f, 0xae, 0x00, 0xf3, 0x04, 0x08, 0x23, 0xf0,
5394b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x84, 0xd3, 0x3e, 0x5f, 0xb2, 0x10, 0x38, 0x42, 0x7d, 0x85, 0x86, 0xb8,
5404b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6b, 0x7e, 0xaa, 0x00, 0x27, 0x00, 0x7e, 0x2c, 0x01, 0xc8, 0x03, 0xb7,
5414b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x82, 0x10, 0x03, 0x3f, 0x6a, 0x4c, 0xeb, 0xae, 0xa9, 0x50, 0xcb, 0x4d,
5424b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xda, 0x81, 0x2d, 0xed, 0xb0, 0x3a, 0xd5, 0x6e, 0x9d, 0x2e, 0xb6, 0xda,
5434b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5d, 0xa8, 0xde, 0x62, 0x28, 0x9e, 0x48, 0xbf, 0x71, 0x62, 0xc4, 0xf7,
5444b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa0, 0x3d, 0xde, 0x5e, 0xfb, 0x74, 0x74, 0x85, 0x0e, 0x92, 0x23, 0x74,
5454b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xdb, 0x2e, 0x16, 0xc7, 0x22, 0x36, 0xcd, 0xab, 0x61, 0xd3, 0xcb, 0x69,
5464b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x21, 0xa7, 0x54, 0x83, 0xd5, 0x95, 0xb1, 0xe0, 0x21, 0x00, 0x35, 0xd6,
5474b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc0, 0xe8, 0x00, 0x6f, 0x65, 0x9e, 0xb9, 0x24, 0x66, 0xc3, 0x70, 0x53,
5484b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa8, 0x03, 0x0f, 0x7f, 0xaf, 0x5b, 0x1c, 0x5c, 0x57, 0xd2, 0x03, 0xec,
5494b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x93, 0x24, 0x2e, 0xa8, 0xe3, 0x83, 0x1b, 0xe6, 0xe6, 0x91, 0x1e, 0x44,
5504b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xfb, 0x80, 0x5a, 0xf1, 0x24, 0xd7, 0x16, 0xfa, 0xf9, 0x03, 0x89, 0x96,
5514b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x19, 0xb3, 0x03, 0x0a, 0x19, 0x1b, 0xed, 0x0a, 0x1d, 0x69, 0x21, 0xbf,
5524b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x18, 0xbd, 0xc0, 0x06, 0x8f, 0xf8, 0x7c, 0xa1, 0xab, 0x3e, 0x28, 0xa4,
5534b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x04, 0xb0, 0x03, 0x31, 0x47, 0x8e, 0x6f, 0x2e, 0x50, 0x03, 0xea, 0x92,
5544b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x78, 0xd2, 0xc9, 0x4d, 0xc9, 0x00, 0xc6, 0xa3, 0x7e, 0x9b, 0xfe, 0x2b,
5554b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3b, 0xeb, 0x8b, 0xbd, 0xc1, 0xd7, 0x31, 0xcf, 0xd8, 0x62, 0x15, 0x2a,
5564b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x1c, 0x7b, 0x75, 0xb2, 0x76, 0x45, 0x17, 0xed, 0xbf, 0xee, 0x2e, 0x96,
5574b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x99, 0x8f, 0xd2, 0xe2, 0x42, 0xc7, 0x0d, 0x6e, 0x01, 0x13, 0x1c, 0x00,
5584b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa4, 0x4f, 0xb7, 0x6e, 0xd8, 0x38, 0x02, 0x9d, 0xe1, 0x66, 0xd3, 0xd5,
5594b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x20, 0xd6, 0xfa, 0x8c, 0x17, 0x80, 0x0f, 0x38, 0x9f, 0x8c, 0xa9, 0x15,
5604b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4d, 0xc9, 0x25, 0x1a, 0x31, 0x54, 0xa6, 0xf3, 0x9e, 0x9c, 0xcd, 0x58,
5614b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa3, 0x91, 0x51, 0x28, 0x5b, 0x72, 0xd2, 0xe5, 0x95, 0xbc, 0x00, 0x0e,
5624b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7e, 0xef, 0x23, 0x47, 0xe3, 0xf5, 0xce, 0x2a, 0x13, 0xc3, 0xd5, 0x14,
5634b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x04, 0x45, 0x29, 0x29, 0xbe, 0x72, 0x00, 0xf7, 0x0d, 0x17, 0xed, 0xc7,
5644b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7c, 0x00, 0xaa, 0x4e, 0x35, 0xea, 0xf2, 0xc7, 0x42, 0xa9, 0x47, 0x9e,
5654b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xde, 0xf3, 0x3a, 0x7f, 0x3b, 0xcb, 0xd3, 0x06, 0x5c, 0x26, 0x96, 0xa3,
5664b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0b, 0x43, 0xda, 0xae, 0xa7, 0xbf, 0x31, 0x34, 0xc4, 0x1b, 0x38, 0xbc,
5674b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x42, 0xae, 0xd0, 0xc5, 0x6e, 0xbd, 0xbb, 0xb2, 0xe1, 0xb4, 0x34, 0xc4,
5684b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x56, 0xa5, 0xa8, 0x8a, 0xdf, 0x40, 0x8d, 0x39, 0xfe, 0xf1, 0xcc, 0x94,
5694b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x68, 0x79, 0x99, 0xdd, 0x8e, 0x8a, 0x5a, 0xab, 0xa8, 0xd5, 0x29, 0xb9,
5704b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc0, 0x0e, 0x05, 0x80, 0x19, 0x73, 0x3a, 0x31, 0x00, 0x25, 0x8f, 0xda,
5714b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4c, 0x94, 0x38, 0xed, 0xf5, 0x6e, 0x48, 0x8e, 0x9f, 0xf1, 0xcb, 0xb7,
5724b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xad, 0xb4, 0x05, 0x7c, 0xc2, 0x60, 0xdf, 0x06, 0xf9, 0x71, 0xa0, 0x02,
5734b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6d, 0x15, 0xaf, 0xb2, 0x0c, 0x86, 0xf1, 0xb2, 0xdf, 0x46, 0xc7, 0xb7,
5744b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9a, 0x2c, 0xcb, 0xe9, 0x30, 0xa8, 0xa0, 0x53, 0x25, 0x31, 0xf5, 0x51,
5754b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x80, 0x00, 0x00, 0x01, 0x06, 0x43, 0xf8, 0xce, 0x95, 0xb6, 0x28, 0x43,
5764b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6a, 0xca, 0xf1, 0x3b, 0x30, 0xc4, 0x1c, 0x79, 0x7e, 0x81, 0x8d, 0x9b,
5774b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x67, 0x9f, 0x09, 0x81, 0x4d, 0xd8, 0x13, 0x08, 0x2e, 0x3f, 0xc5, 0x5b,
5784b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc6, 0x45, 0x6f, 0x08, 0x73, 0x68, 0x2b, 0x2b, 0xa4, 0xcc, 0xf1, 0xa3,
5794b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x47, 0x35, 0x3d, 0x3a, 0x3b, 0xad, 0x4b, 0x24, 0x1b, 0x55, 0xb6, 0x5d,
5804b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0xb2, 0xda, 0xb0, 0x31, 0x25, 0x2d, 0xb9, 0xe4, 0xdc, 0x6c, 0x49,
5814b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x92, 0x44, 0x65, 0x92, 0x45, 0xad, 0xf7, 0xb4, 0x10, 0xbf, 0xc8, 0x67,
5824b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa3, 0x07, 0xf6, 0x40, 0x10, 0x23, 0x97, 0x58, 0x1b, 0x23, 0xbc, 0xd6,
5834b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc0, 0x08, 0xd1, 0xba, 0xcf, 0x04, 0x2f, 0xf1, 0x36, 0x12, 0x9b, 0xc0,
5844b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7b, 0x60, 0x21, 0x80, 0x53, 0xa0, 0x5a, 0x3b, 0x32, 0x97, 0xe1, 0x4b,
5854b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6e, 0x95, 0x58, 0x50, 0x00, 0xd5, 0xac, 0xf6, 0xf6, 0x91, 0x64, 0x23,
5864b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x76, 0x9b, 0x9e, 0x2a, 0x8a, 0xd5, 0xa8, 0x01, 0xee, 0x3b, 0x24, 0xf5,
5874b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa7, 0x85, 0x37, 0xab, 0xea, 0xdc, 0x76, 0xba, 0xa8, 0x4c, 0xaa, 0x93,
5884b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc4, 0x63, 0x78, 0xc4, 0xbb, 0xce, 0x52, 0x87, 0x52, 0xa4, 0x54, 0x09,
5894b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6d, 0x00, 0x4a, 0xe5, 0xf5, 0x46, 0xb1, 0xad, 0xfa, 0xd8, 0x1c, 0x68,
5904b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x16, 0xde, 0x33, 0x01, 0x08, 0x02, 0xbb, 0x76, 0x6a, 0xf8, 0xe4, 0x01,
5914b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf3, 0x7a, 0x23, 0x29, 0x3b, 0x81, 0x66, 0xba, 0x86, 0xce, 0x5c, 0x74,
5924b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3c, 0xf0, 0xc6, 0xf9, 0xe7, 0x40, 0x84, 0x00, 0xce, 0x10, 0x58, 0x5e,
5934b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xcd, 0xc5, 0xa3, 0x8b, 0x4a, 0x31, 0x87, 0x01, 0x8c, 0x9b, 0x48, 0x4d,
5944b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x67, 0xc6, 0xfa, 0xc7, 0x48, 0xd5, 0xd2, 0xa4, 0x6d, 0x52, 0x99, 0x24,
5954b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbe, 0xa8, 0x8d, 0xd7, 0x12, 0xe7, 0xff, 0x5c, 0xee, 0x2e, 0x69, 0xf7,
5964b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc9, 0x7c, 0xff, 0x63, 0x0a, 0x1e, 0xc9, 0x93, 0x75, 0x22, 0x7c, 0xd7,
5974b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x1e, 0x80, 0x12, 0x4b, 0xbc, 0xdd, 0xa7, 0x7e, 0x8e, 0x28, 0xf3, 0xca,
5984b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6c, 0xef, 0xbe, 0x77, 0x99, 0x28, 0x51, 0x93, 0x64, 0x90, 0x05, 0x45,
5994b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x97, 0x02, 0x9b, 0xb0, 0x4e, 0x00, 0x34, 0x73, 0xfc, 0x94, 0xe5, 0xa8,
6004b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe0, 0x17, 0xb5, 0x0e, 0x5b, 0x2b, 0xec, 0xa7, 0x9d, 0x31, 0xdd, 0x87,
6014b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc3, 0xc7, 0xea, 0x7a, 0xb6, 0xa7, 0xab, 0x7a, 0x64, 0xd3, 0x63, 0x79,
6024b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x72, 0x80, 0x1b, 0xde, 0x72, 0xcc, 0x87, 0xad, 0xcd, 0xe5, 0x66, 0x05,
6034b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xdc, 0x90, 0x86, 0xde, 0x9d, 0xdb, 0x7d, 0x85, 0x09, 0x36, 0x4a, 0x04,
6044b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xdc, 0xe7, 0x79, 0x76, 0xda, 0x79, 0xfa, 0xf2, 0xe7, 0xa2, 0xb7, 0x0b,
6054b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8b, 0x7e, 0xbb, 0x5d, 0xda, 0x2c, 0xa6, 0xe4, 0x20, 0x3d, 0xe5, 0x24,
6064b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x2e, 0xaa, 0x01, 0x07, 0x8c, 0x69, 0xa8, 0x2f, 0x45, 0x53, 0x29, 0xd4,
6074b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3a, 0x8a, 0x7b, 0xc8, 0x45, 0x07, 0xd0, 0xa2, 0x9b, 0x43, 0x9a, 0x69,
6084b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x73, 0x1b, 0xaa, 0x55, 0x8a, 0x80, 0x11, 0x28, 0x0b, 0x9b, 0x4c, 0x03,
6094b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x2f, 0x88, 0x9e, 0x38, 0x57, 0x83, 0x63, 0xdf, 0xca, 0xc2, 0x5d, 0x95,
6104b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xba, 0xbc, 0x82, 0x10, 0x05, 0x3e, 0x44, 0x00, 0x87, 0x2e, 0x7a, 0x29,
6114b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x71, 0xa1, 0xbb, 0x9b, 0xc9, 0xd8, 0x7d, 0xc7, 0xe5, 0x08, 0xbe, 0x52,
6124b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xca, 0xdc, 0xc8, 0xbf, 0x4b, 0xef, 0x89, 0x06, 0xd2, 0xa7, 0x2b, 0x14,
6134b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x24, 0xa8, 0xde, 0xc7, 0x6c, 0x8e, 0x15, 0x24, 0x2c, 0x27, 0x05, 0x80,
6144b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0c, 0x4e, 0x6c, 0x1d, 0xed, 0xe7, 0x8f, 0x3c, 0x81, 0x0b, 0xc4, 0xb4,
6154b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0a, 0x56, 0x4d, 0x34, 0x3a, 0x56, 0xfc, 0x87, 0xe3, 0xdd, 0x4c, 0xe6,
6164b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc3, 0xf3, 0x0d, 0xb8, 0x90, 0xb2, 0x91, 0x5b, 0xef, 0x8e, 0x78, 0xa0,
6174b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x40, 0xfd, 0x31, 0x60, 0x0f, 0x3b, 0xd7, 0x28, 0x0f, 0x77, 0x97, 0x72,
6184b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x36, 0x96, 0x57, 0x92, 0xb7, 0xc6, 0x5d, 0xef, 0x99, 0xaf, 0x7f, 0x0f,
6194b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x2c, 0xbc, 0xfc, 0x29, 0xdb, 0x49, 0xa5, 0xb5, 0x5e, 0xd9, 0x9f, 0xf2,
6204b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x38, 0x8e, 0x39, 0xb2, 0x06, 0x3b, 0x9e, 0x66, 0x68, 0xe0, 0xd1, 0xa1,
6214b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x2c, 0x17, 0xb5, 0xbc, 0xb1, 0xb2, 0x37, 0xfd, 0x08, 0xfb, 0x71, 0xdb,
6224b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf7, 0xe0, 0x5c, 0xb1, 0x01, 0x14, 0x01, 0x39, 0x2e, 0x59, 0x65, 0xf1,
6234b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x66, 0xff, 0x60, 0xb7, 0x67, 0xc7, 0xbd, 0xcc, 0x4a, 0x08, 0x80, 0x09,
6244b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb6, 0x24, 0xb5, 0x42, 0x46, 0xb7, 0xce, 0x00, 0x09, 0xb6, 0x80, 0x2d,
6254b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0x75, 0xef, 0xaf, 0xa1, 0x86, 0x88, 0x73, 0xec, 0x4a, 0x14, 0x3a,
6264b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x84, 0x37, 0xd0, 0xfd, 0xb2, 0xf6, 0xee, 0x6c, 0x4a, 0x02, 0xad, 0x2b,
6274b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x14, 0x20, 0x73, 0x74, 0x94, 0x03, 0x46, 0xec, 0x0c, 0x6f, 0xd4, 0xdd,
6284b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x27, 0xda, 0x6b, 0x3e, 0x53, 0x35, 0xb0, 0xe0, 0x05, 0x36, 0xb5, 0xd2,
6294b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x93, 0xa5, 0x24, 0xb5, 0xc6, 0x51, 0xbb, 0x9d, 0x5b, 0x0e, 0x01, 0x89,
6304b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x09, 0x2d, 0x44, 0x86, 0x56, 0xa7, 0x0a, 0x67, 0x19, 0x37, 0xbc, 0x9a,
6314b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd7, 0x4a, 0x5b, 0x62, 0x9f, 0x9c, 0x6d, 0x54, 0x3a, 0x56, 0x6c, 0xdb,
6324b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe2, 0xf0, 0x08, 0x40, 0x13, 0x15, 0xab, 0x00, 0x9f, 0x61, 0x25, 0xb3,
6334b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0xe0, 0x9c, 0x84, 0xb6, 0xdc, 0xab, 0x76, 0x40, 0xa5, 0xcb, 0xb2,
6344b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x10, 0x9a, 0x20, 0x75, 0xb0, 0x94, 0xc1, 0xd6, 0xb7, 0xdb, 0x77, 0xe6,
6354b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x21, 0x2d, 0xbe, 0x20, 0x00, 0xaf, 0x8a, 0x00, 0x4d, 0x04, 0x7d, 0x39,
6364b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9b, 0x0e, 0xaa, 0xf7, 0x3a, 0xf9, 0x58, 0x30, 0x3a, 0x6d, 0x54, 0x29,
6374b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbe, 0x99, 0xf0, 0xf7, 0x7b, 0xb8, 0xde, 0x70, 0xa2, 0x8b, 0x2e, 0x85,
6384b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x37, 0x75, 0xcf, 0xa4, 0x0d, 0xd7, 0x4a, 0x19, 0x6c, 0x8b, 0x15, 0xb8,
6394b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xee, 0xa7, 0xb7, 0x20, 0x03, 0xe6, 0xc2, 0xd4, 0xe2, 0xd6, 0xff, 0x23,
6404b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x73, 0x2a, 0x9f, 0xe0, 0xb1, 0xbe, 0x90, 0x2b, 0x8d, 0xe7, 0xad, 0xdd,
6414b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xcd, 0xa0, 0x2a, 0xda, 0xb1, 0x02, 0x0a, 0xa7, 0x04, 0x2d, 0x6f, 0xa4,
6424b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x80, 0x21, 0xfb, 0x80, 0x58, 0x29, 0xce, 0xaf, 0xc8, 0x54, 0x36, 0xad,
6434b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x1a, 0xdb, 0x88, 0xbf, 0x5d, 0x12, 0x00, 0xf7, 0x67, 0x31, 0x3f, 0x59,
6444b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x32, 0x01, 0x03, 0x6b, 0x72, 0x89, 0x70, 0x05, 0xbc, 0xc4, 0xf5, 0x87,
6454b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb6, 0x3c, 0xcf, 0x3d, 0x84, 0xb8, 0xdf, 0x24, 0x01, 0xcf, 0x1b, 0xf5,
6464b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xeb, 0x70, 0x8d, 0xe7, 0x40, 0x05, 0x35, 0x2c, 0xaf, 0x74, 0x3a, 0x24,
6474b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb4, 0x7b, 0x79, 0x72, 0x2f, 0x00, 0x06, 0x9f, 0x51, 0x46, 0xe3, 0xa5,
6484b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x28, 0x39, 0x1d, 0x6b, 0xed, 0x52, 0xcf, 0x48, 0x5c, 0x6f, 0x42, 0x00,
6494b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xfa, 0x8a, 0xfe, 0x77, 0x66, 0x73, 0x65, 0x96, 0x13, 0x24, 0xab, 0x4b,
6504b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x1f, 0x03, 0x0f, 0x6f, 0x2a, 0x08, 0x00, 0x5b, 0xf5, 0xe3, 0x91, 0x35,
6514b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xfd, 0x7b, 0x29, 0xd2, 0xe5, 0xda, 0x04, 0x15, 0x9b, 0x2c, 0x0c, 0x28,
6524b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x63, 0x77, 0x5a, 0x95, 0x6b, 0x69, 0xb4, 0x38, 0xda, 0x4b, 0x6f, 0x18,
6534b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x03, 0x97, 0x67, 0xc8, 0x97, 0x71, 0xc7, 0xb2, 0x1c, 0x5c, 0x73, 0x89,
6544b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa8, 0x34, 0xb6, 0xf9, 0x29, 0x1f, 0x8e, 0x40, 0x1d, 0x5f, 0xa3, 0xed,
6554b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc3, 0xae, 0x5d, 0x9c, 0x3b, 0x26, 0xc8, 0x7c, 0x3c, 0xc2, 0xdb, 0xe8,
6564b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x40, 0x05, 0x9e, 0xfd, 0x88, 0xfe, 0x40, 0x0a, 0xf3, 0xe2, 0x55, 0xe2,
6574b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x93, 0xb8, 0xe2, 0x07, 0xbd, 0xf3, 0x4c, 0x45, 0xa1, 0x0d, 0xe7, 0x6f,
6584b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x45, 0x4e, 0x84, 0x6c, 0x15, 0xaf, 0x7e, 0x57, 0x64, 0x44, 0xd8, 0xf9,
6594b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa5, 0x6e, 0x5f, 0x52, 0xdb, 0x93, 0x97, 0x5f, 0x28, 0x96, 0xc1, 0x95,
6604b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x62, 0x2b, 0x48, 0xb8, 0x1c, 0x55, 0x60, 0x00, 0x00, 0x01, 0x07, 0x43,
6614b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf9, 0xef, 0xbc, 0xbd, 0xf1, 0x2e, 0xf8, 0x28, 0xda, 0x7b, 0x6b, 0xe9,
6624b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf8, 0x44, 0xed, 0xfc, 0xf3, 0xe1, 0x2d, 0x92, 0x40, 0xa6, 0xf6, 0xa0,
6634b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0f, 0xc5, 0x69, 0x17, 0xdb, 0x08, 0xe2, 0x62, 0x0d, 0x41, 0x5b, 0xd5,
6644b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x93, 0x9b, 0x03, 0xaf, 0xe7, 0x16, 0x20, 0x4b, 0x5c, 0x08, 0x1f, 0x9e,
6654b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x44, 0xe0, 0x01, 0x87, 0xff, 0xdf, 0xe2, 0x0a, 0xdb, 0x0a, 0xf3, 0xdb,
6664b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc6, 0xba, 0xcd, 0x87, 0x00, 0x4f, 0xc0, 0x49, 0x54, 0xa0, 0xc6, 0xf2,
6674b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xec, 0xb9, 0x6b, 0x78, 0xef, 0x94, 0x3e, 0x56, 0xfe, 0x39, 0x92, 0x3b,
6684b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x12, 0x4f, 0x09, 0x1b, 0x66, 0x82, 0x17, 0xfc, 0xcd, 0x6c, 0xfc, 0xca,
6694b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x55, 0xb0, 0x25, 0xbd, 0x28, 0x98, 0x4f, 0x17, 0xb4, 0xb0, 0xa7, 0xbb,
6704b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x10, 0x30, 0xf5, 0xb2, 0xdf, 0x4a, 0xdc, 0x96, 0x1b, 0x91, 0xb0, 0xd8,
6714b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb1, 0xbb, 0xc4, 0x69, 0x3f, 0xe7, 0x93, 0x00, 0x06, 0x90, 0xb4, 0x08,
6724b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6f, 0x99, 0x4f, 0xd4, 0x21, 0x15, 0x00, 0xa8, 0xdf, 0x53, 0x13, 0x6b,
6734b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf2, 0xcc, 0x50, 0x11, 0x66, 0x2a, 0x8d, 0x3e, 0xc0, 0x29, 0xbe, 0x64,
6744b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf2, 0xab, 0xa9, 0x2a, 0xc6, 0xde, 0xc2, 0xca, 0x21, 0xab, 0x69, 0x43,
6754b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xeb, 0x7e, 0xc0, 0x52, 0x91, 0xf6, 0xe9, 0x9a, 0x03, 0xca, 0x61, 0x55,
6764b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbd, 0x30, 0x9d, 0x04, 0x1f, 0xeb, 0x22, 0x0a, 0xa0, 0x15, 0x8e, 0x88,
6774b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x64, 0x35, 0x40, 0x21, 0x30, 0xb0, 0xb2, 0x9b, 0xc2, 0xcf, 0xc9, 0xab,
6784b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe1, 0x36, 0xb7, 0xd3, 0xa3, 0x9e, 0x00, 0xff, 0xb7, 0xc3, 0xc3, 0x2c,
6794b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x77, 0x2e, 0x31, 0x22, 0x9c, 0x66, 0x9f, 0xe2, 0xb2, 0x36, 0xce, 0x2b,
6804b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6c, 0x80, 0x03, 0x36, 0xb3, 0x9b, 0xbc, 0x8e, 0x47, 0xe9, 0xc0, 0x0f,
6814b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x40, 0x1a, 0x64, 0xf6, 0x75, 0xa1, 0xe7, 0xf0, 0x2e, 0x5e, 0xf3, 0x4e,
6824b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x54, 0xb1, 0x56, 0xa1, 0x47, 0x14, 0xad, 0xf1, 0xaf, 0xfb, 0xf8, 0x14,
6834b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x67, 0x13, 0x75, 0x28, 0x09, 0x40, 0x0f, 0xbc, 0xaf, 0x39, 0x07, 0x15,
6844b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x12, 0x4d, 0xa3, 0xcb, 0x18, 0xde, 0xfb, 0xe0, 0xc1, 0x5e, 0xd9, 0xd3,
6854b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf6, 0x86, 0x43, 0x70, 0xf1, 0x84, 0xc2, 0x9b, 0xca, 0xce, 0x5e, 0x00,
6864b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe8, 0x50, 0x8e, 0x44, 0xbf, 0x27, 0xea, 0x4a, 0x2f, 0xcf, 0xbc, 0x83,
6874b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x40, 0x71, 0xc6, 0xc8, 0x64, 0xa0, 0x2a, 0x88, 0x5b, 0x72, 0x24, 0xb8,
6884b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe5, 0xf5, 0x91, 0xaa, 0x07, 0xc8, 0xdf, 0x8e, 0xe3, 0x2b, 0x85, 0xbe,
6894b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xdc, 0x1e, 0x92, 0x6c, 0x83, 0x42, 0x80, 0xb6, 0xe8, 0x80, 0x34, 0xf8,
6904b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9d, 0xf2, 0xf5, 0xf3, 0x79, 0x6a, 0x6d, 0x2e, 0xad, 0x03, 0x9b, 0x97,
6914b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x92, 0x7b, 0x3b, 0xaf, 0x30, 0x08, 0x67, 0x7e, 0x7b, 0x02, 0xe1, 0xb2,
6924b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd9, 0xe1, 0x1b, 0x36, 0x6c, 0xc9, 0x69, 0x41, 0x76, 0x92, 0x9b, 0xbe,
6934b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd6, 0xde, 0xd4, 0x8d, 0xfb, 0x2e, 0x1c, 0x00, 0x6e, 0x2b, 0xcb, 0xac,
6944b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x41, 0xa9, 0xb1, 0xd6, 0xca, 0x36, 0xd2, 0xcf, 0x2d, 0x91, 0x2c, 0xd7,
6954b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa9, 0x61, 0x13, 0x99, 0x7d, 0x43, 0x1b, 0x86, 0x46, 0x80, 0x16, 0xf7,
6964b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x75, 0x02, 0x2b, 0xf6, 0x44, 0x1f, 0x5b, 0xd4, 0x13, 0x45, 0x3e, 0xdc,
6974b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x09, 0xb8, 0xaa, 0x10, 0x74, 0x89, 0x59, 0xb7, 0x58, 0x04, 0xea, 0xda,
6984b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x77, 0x63, 0xf3, 0x26, 0xe8, 0x64, 0x27, 0xb9, 0xda, 0x50, 0xd3, 0xb6,
6994b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc3, 0xe0, 0x50, 0xd6, 0xeb, 0x79, 0x80, 0x1d, 0x80, 0x59, 0x2d, 0x1a,
7004b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x51, 0x3e, 0x7c, 0x73, 0x74, 0x34, 0x3a, 0xba, 0xd4, 0xb0, 0x21, 0xb9,
7014b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x50, 0xcf, 0x7b, 0xb5, 0x7c, 0x33, 0x6e, 0x6c, 0x01, 0x10, 0xdb, 0x60,
7024b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x51, 0x8c, 0xee, 0xd2, 0x7c, 0xfb, 0x97, 0x00, 0x45, 0xe6, 0xe5, 0x38,
7034b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x08, 0x54, 0x0e, 0x2c, 0x09, 0x6b, 0x6d, 0x87, 0x36, 0xd4, 0xbb, 0x57,
7044b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd6, 0x52, 0x9b, 0xaa, 0xe5, 0xe1, 0xc2, 0xf7, 0x02, 0xcc, 0xdd, 0x4b,
7054b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x02, 0xcc, 0x1a, 0xdc, 0xf1, 0x33, 0x78, 0xdc, 0xcc, 0x41, 0xcf, 0x8f,
7064b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf2, 0xb0, 0xbf, 0x16, 0x5e, 0x26, 0x10, 0x66, 0x3f, 0x03, 0x0f, 0xb5,
7074b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4b, 0x2a, 0x9e, 0x31, 0xa5, 0xba, 0x1b, 0x7e, 0xb1, 0x61, 0x9a, 0x16,
7084b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x08, 0x5f, 0xf0, 0xbb, 0x84, 0x34, 0x29, 0xb5, 0xd9, 0x05, 0xd7, 0x62,
7094b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x06, 0xa1, 0x3a, 0xe4, 0x21, 0x2e, 0x36, 0x7e, 0xd1, 0xdc, 0x73, 0xc7,
7104b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3a, 0x80, 0x4d, 0xc5, 0x26, 0x69, 0xf4, 0xf3, 0xa5, 0x95, 0xb7, 0xe5,
7114b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbb, 0xc5, 0x72, 0x51, 0xa5, 0xc4, 0xee, 0xb8, 0x02, 0x23, 0x1e, 0x70,
7124b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5c, 0x66, 0xd0, 0xdf, 0x89, 0x16, 0x68, 0xaa, 0x21, 0x22, 0x84, 0x8a,
7134b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb8, 0x6a, 0x8f, 0x0c, 0x6a, 0xce, 0xd3, 0x0f, 0x1a, 0xb2, 0x2d, 0x6f,
7144b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4e, 0x2b, 0x34, 0x01, 0xe0, 0xb8, 0xe7, 0xb8, 0x22, 0xed, 0x76, 0xc2,
7154b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd4, 0x72, 0xcb, 0x03, 0x1b, 0xc5, 0x7c, 0x75, 0xce, 0xf4, 0x7e, 0xd0,
7164b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa2, 0xca, 0xa5, 0xc2, 0xa8, 0xe8, 0xca, 0xb7, 0x9b, 0x43, 0xae, 0x12,
7174b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x1b, 0xfa, 0xe7, 0xfb, 0xb0, 0x41, 0xfc, 0xf2, 0x38, 0x03, 0xec, 0xe3,
7184b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6c, 0x1d, 0x2b, 0xf8, 0xaf, 0x2d, 0x42, 0x30, 0x94, 0xdf, 0xb3, 0x9d,
7194b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xaa, 0xaa, 0xdf, 0xcf, 0x3d, 0x9b, 0xdb, 0xec, 0x8a, 0x02, 0x2d, 0x38,
7204b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7b, 0x7e, 0xb4, 0x00, 0x6d, 0x01, 0x07, 0xf6, 0x3f, 0x84, 0x77, 0xe0,
7214b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x25, 0x00, 0x25, 0xec, 0xd9, 0x00, 0x47, 0x06, 0xb5, 0x40, 0xf6, 0xa8,
7224b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x1e, 0xdf, 0xd9, 0x78, 0x03, 0x2d, 0xa1, 0xc5, 0x56, 0xe4, 0xe0, 0x19,
7234b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc4, 0x66, 0xe0, 0x0c, 0x5a, 0xdb, 0xb6, 0xed, 0xea, 0xe2, 0x99, 0x1b,
7244b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x99, 0xc7, 0xe1, 0xb9, 0x62, 0x2c, 0x96, 0x49, 0xb6, 0x0d, 0x8b, 0x1b,
7254b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8f, 0xf6, 0xd0, 0x03, 0xcf, 0x77, 0xe4, 0x99, 0x4f, 0x9b, 0x2c, 0x59,
7264b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb2, 0xc0, 0xa6, 0x50, 0xaa, 0xd1, 0x2a, 0x37, 0xeb, 0x05, 0x02, 0x17,
7274b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xfb, 0xa6, 0xcf, 0x41, 0xad, 0xea, 0x25, 0x36, 0x54, 0x6f, 0xce, 0xdf,
7284b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xcf, 0x69, 0xae, 0x14, 0xe5, 0xc5, 0x39, 0xe2, 0xe0, 0xb7, 0x38, 0xd2,
7294b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbf, 0x15, 0x2c, 0xda, 0x75, 0xb0, 0x69, 0x71, 0xbe, 0xde, 0x20, 0x10,
7304b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x80, 0x2f, 0xdd, 0xf3, 0xd6, 0x22, 0xb6, 0x3c, 0x5f, 0x37, 0x16, 0x42,
7314b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x65, 0x29, 0xb8, 0x5b, 0x78, 0x09, 0x97, 0xa0, 0x4d, 0x00, 0x34, 0x6d,
7324b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbd, 0xc4, 0x14, 0x2f, 0x41, 0x30, 0x01, 0x26, 0x94, 0xde, 0x2c, 0x8d,
7334b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd0, 0x05, 0x62, 0x3d, 0x95, 0xda, 0x1b, 0x39, 0xe3, 0x69, 0x70, 0xe3,
7344b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8b, 0x29, 0xbd, 0x58, 0x80, 0x0a, 0x75, 0xcf, 0x2c, 0x26, 0x6b, 0x96,
7354b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x90, 0x95, 0xa7, 0x8d, 0x97, 0x87, 0xca, 0x00, 0x34, 0x2f, 0xd1, 0x2b,
7364b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x10, 0x99, 0x54, 0x84, 0xdf, 0x3c, 0x01, 0xb8, 0x9c, 0xf2, 0xae, 0x97,
7374b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x1d, 0x16, 0xd7, 0xcc, 0x40, 0x1c, 0xc5, 0xba, 0x70, 0xf6, 0xf3, 0x7c,
7384b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7f, 0x2d, 0xf9, 0xf8, 0x13, 0x7d, 0xa5, 0x01, 0xe3, 0xf1, 0xe8, 0x56,
7394b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x54, 0x45, 0x5c, 0x2d, 0x1a, 0xcf, 0x8d, 0x22, 0x00, 0x3a, 0xfb, 0xe5,
7404b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x15, 0xd8, 0xbc, 0x2a, 0xcb, 0xaf, 0x4b, 0x32, 0xf0, 0xf8, 0x6c, 0x83,
7414b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4e, 0x1a, 0xde, 0x4c, 0x10, 0x00, 0xb0, 0x48, 0x01, 0xb0, 0x05, 0xb7,
7424b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xdf, 0x38, 0xd8, 0xb5, 0x09, 0xd8, 0x4d, 0xba, 0x93, 0x15, 0x5b, 0xe7,
7434b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf3, 0xd9, 0xfc, 0x98, 0x6d, 0x90, 0x71, 0xc3, 0x4e, 0x18, 0x1a, 0x48,
7444b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6c, 0x77, 0x2d, 0x8a, 0xad, 0xfb, 0x80, 0x07, 0x4b, 0xc7, 0x66, 0xf0,
7454b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xfc, 0x0c, 0xb3, 0x1e, 0x51, 0x44, 0x8a, 0xde, 0x64, 0x00, 0xb3, 0xdf,
7464b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8f, 0x61, 0x78, 0x6f, 0x1d, 0xe4, 0x2d, 0x2c, 0xd8, 0x53, 0xcc, 0x0e,
7474b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb5, 0xbe, 0x32, 0xff, 0x69, 0x40, 0x1e, 0x57, 0x3b, 0x1d, 0x4a, 0xbb,
7484b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x26, 0xe3, 0xcf, 0xee, 0x87, 0xe2, 0x4a, 0x74, 0x30, 0xe4, 0x6e, 0x50,
7494b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0x9f, 0x8c, 0x7a, 0x0a, 0xe9, 0xc3, 0x00, 0x2d, 0x7c, 0xc9, 0x6d,
7504b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xfc, 0x5b, 0x2d, 0x92, 0x51, 0xaa, 0x53, 0x7d, 0x01, 0x93, 0x55, 0x20,
7514b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x1b, 0x6e, 0xae, 0x64, 0xa4, 0xc8, 0xdf, 0xa6, 0xe0, 0x8b, 0xf6, 0x23,
7524b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7d, 0x3d, 0xba, 0xf6, 0x78, 0xbf, 0x25, 0xf2, 0xdd, 0xa8, 0xbb, 0xa3,
7534b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x64, 0x5a, 0x52, 0xa4, 0x29, 0xa8, 0xfb, 0x00, 0x3b, 0x7e, 0x76, 0x41,
7544b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xef, 0xd9, 0xcf, 0x92, 0xcf, 0x37, 0x87, 0x2f, 0x94, 0x87, 0x59, 0x14,
7554b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x62, 0xb7, 0x91, 0x82, 0x7e, 0xae, 0xc3, 0x7e, 0x66, 0x4c, 0x2f, 0x05,
7564b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3a, 0x19, 0x34, 0xad, 0xa6, 0x94, 0x70, 0xc6, 0xf5, 0x60, 0x09, 0x67,
7574b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x42, 0xdf, 0xb1, 0xdf, 0x3a, 0xa1, 0xd4, 0x6d, 0x44, 0x90, 0xba, 0x3c,
7584b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x73, 0x59, 0x6d, 0xd0, 0x13, 0x5b, 0xec, 0xfb, 0x08, 0xe9, 0xd9, 0xdd,
7594b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x10, 0x00, 0xf4, 0x5e, 0x5b, 0x2e, 0x3f, 0x45, 0xc0, 0x45, 0x00, 0x6d,
7604b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb4, 0xd2, 0x6a, 0x9e, 0x50, 0xf6, 0xf2, 0x1f, 0x40, 0x07, 0xe2, 0xfa,
7614b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4c, 0x00, 0x3e, 0x14, 0xe9, 0x25, 0x9e, 0xce, 0xc2, 0x91, 0xd0, 0x37,
7624b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd6, 0x8f, 0x6e, 0x6f, 0xf5, 0xf9, 0xcf, 0x0e, 0xf3, 0x88, 0x04, 0x3b,
7634b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9c, 0xd2, 0x61, 0xb1, 0x52, 0x98, 0xa5, 0x29, 0xfe, 0x8d, 0xb8, 0x00,
7644b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4e, 0xe7, 0x0b, 0xda, 0x65, 0x45, 0xb8, 0x1d, 0x0d, 0x54, 0x55, 0x21,
7654b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x2b, 0x38, 0xc3, 0x00, 0x00, 0x00, 0x01, 0x08, 0x43, 0xf3, 0xc0, 0x0f,
7664b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbd, 0x85, 0x00, 0x3b, 0xfb, 0x8a, 0xeb, 0x9e, 0x5c, 0x74, 0x97, 0xca,
7674b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4d, 0xd3, 0x21, 0x32, 0x45, 0x52, 0xbd, 0x20, 0xe6, 0xfb, 0x10, 0x20,
7684b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x01, 0x6b, 0xaf, 0xd7, 0xa9, 0xcf, 0xd1, 0xd7, 0x6f, 0xee, 0x72, 0x65,
7694b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xdc, 0x86, 0x87, 0x4a, 0xa5, 0x15, 0xe2, 0xdf, 0x0a, 0x7d, 0xf3, 0xb2,
7704b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x44, 0x1c, 0x51, 0x48, 0xde, 0x82, 0x6d, 0x7c, 0x6e, 0x51, 0xf5, 0xbc,
7714b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa2, 0xa5, 0x2d, 0xbe, 0x71, 0x1e, 0xdf, 0x61, 0x7d, 0x2a, 0xc3, 0xe6,
7724b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xaf, 0x56, 0x13, 0xd6, 0x1d, 0xf9, 0x88, 0x77, 0x8c, 0x6d, 0x54, 0x0c,
7734b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x20, 0x26, 0xff, 0xdd, 0x80, 0x02, 0xd2, 0x43, 0x6a, 0xd5, 0x73, 0xb5,
7744b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xef, 0x50, 0xa9, 0x13, 0x50, 0x23, 0x56, 0x95, 0x42, 0x47, 0x35, 0xdf,
7754b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x34, 0x50, 0x03, 0x7f, 0xb7, 0xd8, 0x4b, 0x9e, 0xa3, 0x2a, 0x89, 0xc0,
7764b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xba, 0x55, 0xbb, 0x4a, 0x0b, 0x2d, 0xb9, 0x6d, 0x5b, 0x2b, 0x03, 0x29,
7774b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x24, 0x0e, 0x6f, 0xd2, 0x80, 0x3b, 0x50, 0x05, 0x7f, 0xcf, 0x8d, 0xc3,
7784b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x87, 0x76, 0xfd, 0x93, 0x89, 0x60, 0x23, 0xff, 0xed, 0xfd, 0x46, 0xf8,
7794b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x80, 0xb3, 0x40, 0x1e, 0x09, 0xf8, 0xb4, 0x2e, 0x68, 0x8d, 0x14, 0xfb,
7804b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x01, 0x28, 0x01, 0x75, 0xc4, 0x86, 0xfd, 0xa9, 0xbd, 0xf9, 0x80, 0x3b,
7814b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xef, 0x9b, 0x68, 0xeb, 0x7b, 0x73, 0xf7, 0x38, 0x48, 0x5a, 0x07, 0x5b,
7824b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0e, 0x38, 0x75, 0x6f, 0xca, 0x42, 0xaf, 0x3f, 0xce, 0xbf, 0xef, 0xb6,
7834b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x86, 0x71, 0x2d, 0x11, 0xed, 0x31, 0xc3, 0x49, 0xae, 0xe1, 0x57, 0x42,
7844b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x54, 0x63, 0x68, 0x4c, 0x90, 0x0b, 0x62, 0xd2, 0xdb, 0xf1, 0x6e, 0xa4,
7854b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xfb, 0x25, 0x8d, 0xf7, 0xd7, 0x72, 0xf7, 0x38, 0x01, 0xef, 0x74, 0x5b,
7864b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb0, 0x65, 0xe0, 0x57, 0xcf, 0x7d, 0xee, 0x45, 0x3c, 0x08, 0x40, 0x08,
7874b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x13, 0x1b, 0xe4, 0xc0, 0x0f, 0xd4, 0x01, 0x18, 0x03, 0xef, 0xa7, 0x28,
7884b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x17, 0x5f, 0x6f, 0x19, 0x07, 0x1f, 0x29, 0x70, 0x2a, 0xa3, 0x7e, 0x94,
7894b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0x5b, 0x98, 0x23, 0x9e, 0x70, 0x50, 0x9e, 0x60, 0xc0, 0xfe, 0x37,
7904b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x62, 0x43, 0xec, 0x2c, 0x30, 0x2d, 0xbc, 0x1e, 0x85, 0x51, 0x06, 0x3f,
7914b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x98, 0xa1, 0x97, 0xf4, 0xad, 0x89, 0x86, 0x1f, 0xea, 0x31, 0xbf, 0xcf,
7924b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x40, 0x0f, 0xe6, 0x70, 0xfd, 0xb2, 0x51, 0xf4, 0xdb, 0x64, 0x8d, 0xc9,
7934b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf7, 0xec, 0x00, 0xf1, 0xd6, 0xed, 0x81, 0xb1, 0x68, 0xc8, 0xdd, 0xe1,
7944b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x58, 0x00, 0x65, 0xe6, 0xf2, 0xf2, 0x9e, 0x4c, 0x96, 0xac, 0xf0, 0x6f,
7954b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9f, 0x09, 0x9d, 0x09, 0xf8, 0x5a, 0x90, 0x25, 0xda, 0x1d, 0x29, 0xf0,
7964b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6b, 0x75, 0x82, 0x1f, 0xfd, 0x4d, 0x84, 0x2a, 0xc2, 0x1a, 0xad, 0xe1,
7974b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf9, 0x2f, 0xb8, 0xf4, 0x0a, 0xd7, 0x64, 0x56, 0x5e, 0x6d, 0xcc, 0x7f,
7984b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x25, 0x86, 0xcb, 0x76, 0x44, 0x90, 0x2a, 0x01, 0xed, 0xde, 0x7e, 0xa0,
7994b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb7, 0xdf, 0x4a, 0x38, 0x29, 0x98, 0x4d, 0x37, 0xad, 0x76, 0xcf, 0x16,
8004b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xeb, 0x90, 0xb2, 0x9b, 0x5c, 0x1a, 0xdf, 0x8e, 0xe5, 0x5c, 0x6d, 0xa8,
8014b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x14, 0xb2, 0x7a, 0xd2, 0xdb, 0xd6, 0xc7, 0xcf, 0x9a, 0x92, 0xd0, 0xbd,
8024b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x76, 0xec, 0xd0, 0xa8, 0xb5, 0x4a, 0x0c, 0xaa, 0xd8, 0xbb, 0x80, 0x16,
8034b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x53, 0x37, 0x65, 0x0b, 0xa3, 0x42, 0xda, 0x02, 0x1f, 0xfd, 0x66, 0x3e,
8044b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x50, 0xab, 0x72, 0x12, 0x49, 0x05, 0xb6, 0xf9, 0xf9, 0x8d, 0xd7, 0x00,
8054b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x29, 0x6f, 0x4c, 0xd2, 0x78, 0xb1, 0x49, 0x02, 0x56, 0xbf, 0x0a, 0xb0,
8064b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x24, 0x63, 0x59, 0xde, 0xcf, 0x2b, 0x2b, 0xd4, 0x00, 0x53, 0x04, 0x41,
8074b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4e, 0xb6, 0x82, 0x3f, 0xfe, 0x64, 0xa0, 0x51, 0xed, 0x97, 0x6d, 0xcd,
8084b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xdd, 0x93, 0x46, 0x95, 0x9c, 0x19, 0x36, 0x8d, 0xa5, 0x9a, 0x51, 0x61,
8094b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x2d, 0xd8, 0xee, 0x00, 0x1e, 0xbb, 0xaa, 0xf7, 0x0f, 0xae, 0x97, 0x33,
8104b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5e, 0xf0, 0xc3, 0xd6, 0x15, 0x09, 0x2d, 0xd0, 0xdd, 0xc3, 0x9b, 0xaf,
8114b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xac, 0xa4, 0x5c, 0xba, 0x96, 0x45, 0x59, 0xba, 0x31, 0xba, 0x1c, 0xbe,
8124b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6f, 0x9e, 0xdc, 0x00, 0x85, 0xdb, 0x0d, 0x42, 0x8e, 0x09, 0x6a, 0x74,
8134b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9f, 0xf2, 0xfc, 0xe5, 0xd6, 0x86, 0xa7, 0x46, 0x50, 0xf0, 0x11, 0x9e,
8144b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5b, 0x0a, 0xaf, 0xfb, 0xf5, 0x24, 0x09, 0x8f, 0xb2, 0x10, 0xe8, 0xca,
8154b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd0, 0xda, 0x9e, 0xd8, 0xc4, 0xf9, 0xef, 0xa4, 0x08, 0x5d, 0x29, 0x14,
8164b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x2a, 0x36, 0xfb, 0x40, 0x2b, 0x17, 0xc7, 0x21, 0xe1, 0x16, 0x64, 0x73,
8174b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe0, 0x5e, 0xfe, 0xa0, 0x59, 0x4d, 0x57, 0x69, 0xf6, 0x13, 0x9c, 0x72,
8184b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x81, 0x69, 0x13, 0x40, 0xea, 0xd4, 0x67, 0x37, 0xdb, 0x1e, 0xed, 0xd0,
8194b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4a, 0xff, 0x9c, 0xca, 0x58, 0x40, 0xef, 0x05, 0x6b, 0x64, 0xde, 0x8a,
8204b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbc, 0xc7, 0xd9, 0x14, 0x08, 0xdb, 0x9e, 0xf2, 0x4a, 0x30, 0x07, 0x33,
8214b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x88, 0x96, 0x85, 0x37, 0x87, 0xc8, 0x68, 0x8f, 0x6c, 0x7e, 0x84, 0xdb,
8224b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x68, 0x7a, 0x04, 0x23, 0x7d, 0x02, 0x82, 0x10, 0x03, 0x89, 0xf6, 0xc9,
8234b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x94, 0x12, 0x3f, 0xf7, 0x1d, 0x39, 0x77, 0x8e, 0x19, 0xb2, 0x90, 0xdb,
8244b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe6, 0x8f, 0x90, 0x57, 0xd7, 0xae, 0x65, 0x0a, 0xc1, 0x56, 0x1a, 0xa7,
8254b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9f, 0x06, 0xc0, 0xb6, 0x88, 0x53, 0x71, 0xd0, 0x30, 0x53, 0x7e, 0xe9,
8264b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe9, 0xd1, 0x1c, 0x5e, 0x3b, 0xc7, 0x83, 0x16, 0xdf, 0x46, 0xf7, 0x9f,
8274b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc8, 0x08, 0x3f, 0x95, 0xcf, 0xf8, 0x4a, 0x50, 0x49, 0xff, 0xde, 0x2c,
8284b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x80, 0x96, 0x00, 0x65, 0x12, 0x5b, 0xe0, 0x62, 0xac, 0x77, 0x9e, 0xdc,
8294b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x83, 0x12, 0x4a, 0x54, 0xf0, 0x6f, 0xb7, 0x7b, 0xc0, 0x41, 0xfc, 0x40,
8304b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x01, 0x16, 0x20, 0x04, 0x37, 0x99, 0x28, 0x59, 0x8b, 0x69, 0x29, 0xad,
8314b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4e, 0x24, 0xb6, 0x14, 0xba, 0xdf, 0xec, 0x25, 0x41, 0xbe, 0x8a, 0xde,
8324b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x30, 0x01, 0xf3, 0xc1, 0x04, 0x06, 0x40, 0x1f, 0xfc, 0x8a, 0x77, 0x8d,
8334b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe1, 0xf5, 0x60, 0x08, 0xaa, 0x07, 0xc0, 0xa6, 0xf5, 0x90, 0xaa, 0x00,
8344b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x2e, 0x6f, 0xcb, 0xe0, 0x0f, 0x90, 0x10, 0x00, 0xeb, 0x8e, 0x3e, 0xba,
8354b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x09, 0x7f, 0xf7, 0x49, 0xce, 0xa3, 0x0e, 0xb4, 0x9b, 0xe3, 0x0e, 0x6d,
8364b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4e, 0xad, 0xbc, 0x29, 0x5b, 0xf0, 0x00, 0x0c, 0x3d, 0xba, 0x7f, 0xdb,
8374b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8c, 0xf8, 0xce, 0x20, 0xfd, 0xe7, 0x7c, 0xa6, 0x2d, 0x0d, 0x39, 0xac,
8384b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xff, 0x0a, 0xe1, 0xfd, 0x57, 0xd7, 0xe4, 0x91, 0x77, 0x5f, 0xb9, 0x61,
8394b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb6, 0xda, 0x87, 0xa0, 0xe0, 0x96, 0xe0, 0x89, 0xf2, 0xe4, 0xd8, 0xb5,
8404b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0x95, 0x1c, 0xad, 0xab, 0xce, 0x80, 0x3b, 0x00, 0x32, 0xc1, 0x5b,
8414b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x2c, 0x04, 0x6f, 0xfa, 0x7f, 0x91, 0x98, 0x34, 0x9a, 0x6d, 0x89, 0x02,
8424b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xdb, 0xcf, 0x44, 0x76, 0xda, 0x42, 0x46, 0xe5, 0xb0, 0x39, 0x5b, 0xfd,
8434b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x1f, 0xf7, 0xea, 0x82, 0x07, 0xe7, 0xf1, 0x08, 0x9e, 0xd7, 0x06, 0x79,
8444b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x79, 0xce, 0x57, 0xbc, 0x1c, 0x1d, 0x83, 0x2d, 0x6e, 0xf8, 0x03, 0x2e,
8454b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x78, 0x00, 0x4d, 0xce, 0x6f, 0x9d, 0x0c, 0x80, 0x3d, 0x0b, 0x0c, 0x87,
8464b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb7, 0x8d, 0x04, 0x00, 0x2a, 0x73, 0xc0, 0x1b, 0x39, 0xef, 0xf9, 0x17,
8474b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x69, 0x6b, 0x99, 0xca, 0xd3, 0x62, 0xd3, 0x6c, 0x50, 0x96, 0xf9, 0xd8,
8484b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xae, 0x35, 0xdf, 0x13, 0x20, 0x8b, 0x85, 0xa6, 0x4c, 0x45, 0x8b, 0x36,
8494b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xae, 0x97, 0x7c, 0x5b, 0x67, 0xd8, 0x6b, 0xf7, 0x69, 0x08, 0xa6, 0xea,
8504b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe4, 0xbb, 0xb6, 0xd0, 0x29, 0xbf, 0xa5, 0x80, 0x17, 0x7d, 0x4d, 0xf7,
8514b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbb, 0xf3, 0xc3, 0xb9, 0x8a, 0x86, 0xa0, 0xc9, 0x85, 0x17, 0x10, 0xf3,
8524b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc3, 0x15, 0xbc, 0x68, 0x03, 0x22, 0x37, 0x5d, 0x7b, 0x0a, 0x70, 0x05,
8534b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbe, 0xd6, 0x93, 0x79, 0x78, 0xdd, 0x32, 0x40, 0xf1, 0xc5, 0x2b, 0x64,
8544b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0x71, 0xf6, 0xe6, 0x7b, 0xc5, 0x78, 0x9d, 0xb0, 0x9b, 0x77, 0x6a,
8554b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xdd, 0x58, 0x92, 0x14, 0x10, 0x34, 0xb6, 0xe6, 0x00, 0x36, 0x23, 0x70,
8564b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x66, 0x2d, 0xef, 0x6f, 0xed, 0xdc, 0x21, 0xd9, 0x0f, 0xa5, 0x86, 0xb2,
8574b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7e, 0xd7, 0xf3, 0xbb, 0xb7, 0xc5, 0xb7, 0x7d, 0x37, 0x6d, 0xad, 0xf5,
8584b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xba, 0x00, 0x39, 0xde, 0x65, 0xdd, 0xe7, 0x30, 0x10, 0xc0, 0x18, 0x50,
8594b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa7, 0x18, 0x92, 0xe6, 0xed, 0x1a, 0xef, 0xd5, 0x8d, 0x90, 0x01, 0xe7,
8604b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x64, 0x77, 0x89, 0xc5, 0xf6, 0x32, 0xd0, 0xff, 0x67, 0x47, 0x48, 0x90,
8614b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x83, 0x4d, 0xd8, 0x4b, 0xad, 0xe6, 0xc5, 0x3a, 0x74, 0x22, 0x4e, 0x84,
8624b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x70, 0x34, 0xd9, 0xc6, 0x7e, 0xf6, 0xd3, 0x82, 0x9a, 0xe7, 0xed, 0x79,
8634b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8f, 0x5e, 0x72, 0xa2, 0xb8, 0xcd, 0x28, 0x98, 0x1c, 0x3a, 0x94, 0x06,
8644b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xdb, 0x48, 0xda, 0xd6, 0xfb, 0xa4, 0x4e, 0x05, 0x70, 0x46, 0xda, 0xef,
8654b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7a, 0xfc, 0x53, 0x04, 0xf2, 0xf9, 0x0e, 0x98, 0x52, 0x87, 0xc8, 0x3e,
8664b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd6, 0x6f, 0x60, 0x07, 0xa4, 0x71, 0x3d, 0xe6, 0xbf, 0x8c, 0x53, 0x03,
8674b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xac, 0xb1, 0x46, 0x14, 0x54, 0x1d, 0x06, 0xb7, 0x20, 0x00, 0xf7, 0xa7,
8684b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x77, 0xb1, 0xd3, 0x99, 0x8a, 0x82, 0xf4, 0x80, 0xbe, 0x72, 0xca, 0x38,
8694b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa3, 0xe1, 0xde, 0xad, 0x97, 0xd9, 0xe2, 0xfd, 0xf9, 0x90, 0xc9, 0x46,
8704b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa9, 0xb5, 0x10, 0xc8, 0x04, 0x1e, 0xa3, 0x98, 0xf1, 0x66, 0xdf, 0xa3,
8714b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0x58, 0xef, 0x97, 0x59, 0xcf, 0xd7, 0xdd, 0xfb, 0x4e, 0x99, 0x6a,
8724b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x80, 0xe3, 0x0f, 0x38, 0x61, 0x4d, 0xc0, 0xae, 0xeb, 0x32, 0xb8, 0x43,
8734b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa1, 0x45, 0x16, 0x91, 0x0b, 0x0a, 0x6c, 0xde, 0xcb, 0x4c, 0x20, 0x4c,
8744b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x39, 0x74, 0xa8, 0x56, 0x8e, 0xf0, 0x02, 0xdb, 0xa7, 0xf1, 0x9c, 0xc7,
8754b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x50, 0x0b, 0x7b, 0xda, 0x74, 0x2e, 0xa2, 0xc7, 0x43, 0xd9, 0xc6, 0x6d,
8764b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf9, 0xf3, 0x74, 0xcc, 0x36, 0x62, 0x8d, 0xa6, 0x1e, 0x8a, 0x58, 0x6b,
8774b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x27, 0x79, 0x5f, 0x83, 0x69, 0xe1, 0x65, 0x56, 0xee, 0x7c, 0xba, 0x8b,
8784b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd9, 0x72, 0x00, 0x45, 0x98, 0x61, 0x67, 0x31, 0x7d, 0xe0, 0x57, 0xbd,
8794b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x58, 0x13, 0xb0, 0xeb, 0x3d, 0x51, 0x15, 0x86, 0x55, 0x80, 0x00, 0x00,
8804b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x01, 0x09, 0x43, 0xf1, 0xf9, 0x49, 0xf9, 0x85, 0x04, 0xad, 0x6e, 0xaf,
8814b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x32, 0x6e, 0x16, 0xdf, 0x2a, 0x77, 0x52, 0x11, 0xf8, 0xb7, 0x60, 0xe5,
8824b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x32, 0xc8, 0x58, 0xc2, 0xca, 0x4a, 0xa1, 0x2d, 0xf6, 0xba, 0x47, 0x22,
8834b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0x2d, 0x00, 0x7d, 0xbb, 0xbc, 0xdd, 0x4b, 0x49, 0xdd, 0x88, 0xe6,
8844b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x07, 0x2e, 0x07, 0xc3, 0xa5, 0x1a, 0x8d, 0xe5, 0xb8, 0xa6, 0xf3, 0x55,
8854b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5b, 0xc0, 0xf7, 0x49, 0xde, 0xf0, 0x42, 0x36, 0x4b, 0xe0, 0xb6, 0x2b,
8864b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6f, 0x73, 0xf4, 0x51, 0x1c, 0x01, 0xe7, 0xdb, 0x9a, 0x13, 0x7b, 0xf9,
8874b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x15, 0x1c, 0x4f, 0x04, 0x80, 0x03, 0xdd, 0x2f, 0x8a, 0x15, 0x0e, 0xa7,
8884b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb7, 0xa8, 0x16, 0x45, 0xf6, 0xfa, 0x11, 0x4d, 0xf8, 0x82, 0xcc, 0x36,
8894b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe6, 0xbf, 0x2f, 0x95, 0x55, 0x86, 0x7e, 0xad, 0x3d, 0x4b, 0x90, 0x21,
8904b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xba, 0x22, 0x7b, 0xa0, 0x0f, 0xbe, 0x9f, 0x77, 0x73, 0xc5, 0x8f, 0x7f,
8914b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x2f, 0x7d, 0x9b, 0x1f, 0xb1, 0xfa, 0xfd, 0x44, 0x43, 0xca, 0x8e, 0x0b,
8924b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x56, 0xe7, 0x75, 0xf2, 0xa3, 0x02, 0xab, 0x2d, 0x44, 0x6f, 0xd8, 0x73,
8934b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xae, 0x23, 0x7f, 0x04, 0xee, 0x3e, 0x00, 0x0a, 0x5d, 0xcf, 0x4b, 0x38,
8944b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc9, 0x03, 0xc0, 0x4b, 0x0a, 0x43, 0x0a, 0xad, 0xf0, 0x40, 0x03, 0xb8,
8954b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe7, 0xf9, 0xfb, 0x58, 0x7a, 0x6d, 0xd9, 0x9b, 0x57, 0x07, 0x15, 0x8a,
8964b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6d, 0x0a, 0x46, 0xfd, 0x0f, 0xf4, 0x16, 0x00, 0x6b, 0xc7, 0xff, 0xb1,
8974b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x51, 0xf2, 0x9f, 0x78, 0xcd, 0x00, 0xb7, 0x6e, 0x53, 0xa9, 0x34, 0x3e,
8984b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9b, 0x0e, 0x1b, 0x1b, 0xf2, 0x63, 0xe4, 0x11, 0x82, 0xa4, 0x80, 0x94,
8994b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0x66, 0x52, 0x51, 0x25, 0x9e, 0x16, 0xab, 0x3d, 0x23, 0x48, 0x0e,
9004b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x35, 0xbf, 0xae, 0x08, 0xfa, 0xb8, 0x10, 0x3f, 0x2c, 0x4e, 0x8b, 0xe3,
9014b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbb, 0x40, 0x8e, 0x3e, 0x38, 0xeb, 0x88, 0xf9, 0xb0, 0xf0, 0xf7, 0xed,
9024b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xab, 0x14, 0x32, 0x14, 0xdf, 0x50, 0xf9, 0xf8, 0xc0, 0x02, 0x8e, 0x1c,
9034b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe8, 0xb0, 0x11, 0xff, 0xee, 0xdb, 0x69, 0x60, 0x3c, 0x58, 0x52, 0x12,
9044b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5b, 0xf2, 0xfe, 0x80, 0x53, 0x5b, 0xf4, 0x38, 0x03, 0xc7, 0xc0, 0x04,
9054b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xff, 0xe1, 0x7f, 0xdf, 0xb4, 0xc8, 0x08, 0xc0, 0x0a, 0xb4, 0x0c, 0xa6,
9064b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x07, 0x50, 0x1c, 0xd1, 0x88, 0x58, 0xd1, 0xb5, 0xb9, 0x75, 0x1d, 0xd3,
9074b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf5, 0x7c, 0x21, 0x49, 0x4e, 0x1f, 0x5b, 0x38, 0x5b, 0xae, 0xcf, 0x04,
9084b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3d, 0xbf, 0xce, 0x9f, 0x71, 0x0f, 0x00, 0x2e, 0xfb, 0xbb, 0x1d, 0x65,
9094b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x01, 0xe6, 0xbc, 0x46, 0xbb, 0x60, 0xca, 0x58, 0x45, 0x25, 0xb7, 0xce,
9104b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3a, 0xe8, 0x02, 0xbe, 0xdc, 0x4f, 0x2c, 0x62, 0xc3, 0x15, 0xbf, 0x5c,
9114b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0x30, 0x17, 0xa0, 0x80, 0x05, 0x59, 0xef, 0xff, 0x16, 0x22, 0x4f,
9124b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd7, 0x5c, 0x3d, 0xc8, 0x66, 0xd4, 0x27, 0x9d, 0x4d, 0x8b, 0x50, 0x68,
9134b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd6, 0xfc, 0xd0, 0xfa, 0xf1, 0x7f, 0x24, 0x67, 0x71, 0x21, 0xd9, 0x5e,
9144b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4f, 0xec, 0xc9, 0x93, 0x21, 0x74, 0x3c, 0x74, 0x6e, 0x82, 0x6f, 0x3b,
9154b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa8, 0x43, 0xad, 0xa2, 0x96, 0xb5, 0xbc, 0x8f, 0xeb, 0x1c, 0x22, 0x47,
9164b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x64, 0xf5, 0x3e, 0xda, 0xa3, 0x4b, 0x6b, 0x08, 0xce, 0x00, 0x33, 0xf7,
9174b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9b, 0x25, 0x0c, 0xaf, 0x32, 0x19, 0x46, 0xb7, 0xa7, 0x42, 0x01, 0xaf,
9184b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7c, 0xb8, 0x03, 0xde, 0x79, 0x93, 0x80, 0xa2, 0xb2, 0x0c, 0x81, 0xa5,
9194b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd6, 0xc1, 0xf7, 0x37, 0x0a, 0x44, 0x3d, 0x4a, 0x87, 0x86, 0x00, 0xd5,
9204b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x96, 0x4b, 0xae, 0x46, 0x4a, 0x52, 0xb7, 0xd0, 0xec, 0x5e, 0x11, 0xb8,
9214b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7e, 0xbf, 0xac, 0x2c, 0xad, 0xe7, 0x1f, 0x93, 0x8b, 0x76, 0xa3, 0x8f,
9224b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8a, 0x51, 0x94, 0xb4, 0x2b, 0x0f, 0x8d, 0xc0, 0xe6, 0x68, 0x19, 0xca,
9234b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9e, 0x25, 0x29, 0x29, 0xb0, 0xf1, 0x28, 0xa1, 0x6e, 0xb7, 0x72, 0x06,
9244b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x45, 0x58, 0x9e, 0x10, 0x68, 0x4b, 0x52, 0x46, 0xcc, 0x7b, 0xb6, 0xe2,
9254b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x50, 0xab, 0x0a, 0x02, 0xeb, 0x5d, 0x87, 0x2d, 0xf5, 0x6d, 0xcf, 0xa0,
9264b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5b, 0x7d, 0x61, 0x6b, 0xcd, 0xe2, 0xd9, 0x2f, 0x83, 0xf0, 0xaa, 0x10,
9274b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x31, 0xb7, 0xe4, 0xc8, 0x47, 0x94, 0xde, 0x02, 0xb5, 0xfb, 0x2e, 0x5b,
9284b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x16, 0x9d, 0xa0, 0x5b, 0x69, 0x23, 0x7e, 0x7b, 0x23, 0x75, 0xbb, 0x29,
9294b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd0, 0xbf, 0x7f, 0x3b, 0x4b, 0x0c, 0x30, 0xda, 0x7b, 0x61, 0xd9, 0x39,
9304b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x14, 0x23, 0x70, 0xc8, 0x55, 0x31, 0xd4, 0xc7, 0x1c, 0x4c, 0x51, 0x81,
9314b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x67, 0xb7, 0xa0, 0x32, 0xb7, 0xa2, 0x8a, 0x8d, 0xea, 0xf6, 0xcb, 0xe5,
9324b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x78, 0xd8, 0xa7, 0xd2, 0xd5, 0xd2, 0x1c, 0x58, 0xe1, 0xed, 0xb7, 0x87,
9334b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf9, 0x11, 0x95, 0x50, 0x72, 0x6e, 0x17, 0xa3, 0x09, 0x88, 0x31, 0xb9,
9344b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x76, 0x1b, 0xf3, 0x9b, 0x54, 0x05, 0x77, 0x8d, 0xc2, 0xe1, 0x30, 0x71,
9354b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xfe, 0xad, 0xd2, 0x17, 0x40, 0x0e, 0x05, 0xbe, 0x97, 0x46, 0x9a, 0x6b,
9364b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb3, 0x32, 0x94, 0x04, 0x50, 0xf2, 0xef, 0x8c, 0x29, 0x93, 0x6e, 0xde,
9374b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5c, 0xc2, 0x7f, 0x34, 0x9d, 0x81, 0x92, 0x72, 0xfc, 0x9b, 0x47, 0x0d,
9384b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x28, 0xf0, 0x98, 0xce, 0x45, 0x7c, 0xe8, 0x00, 0xfe, 0x1a, 0x19, 0x49,
9394b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xce, 0xe4, 0xc4, 0xd8, 0x1b, 0x64, 0xcb, 0x4a, 0x0d, 0x62, 0xe7, 0xef,
9404b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x59, 0xef, 0xbb, 0x25, 0x1c, 0x82, 0xf4, 0xc9, 0x29, 0xe3, 0x92, 0x92,
9414b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x1b, 0x1c, 0x33, 0xe1, 0xfd, 0xdb, 0x40, 0x47, 0xe6, 0xe5, 0x51, 0x83,
9424b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0d, 0x18, 0x10, 0xd4, 0xd2, 0x73, 0x74, 0x08, 0x96, 0x71, 0x45, 0xe4,
9434b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd4, 0x1c, 0x4f, 0x3f, 0x21, 0xd7, 0xc5, 0xb1, 0xdd, 0xa0, 0x0e, 0xbe,
9444b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9d, 0x63, 0xed, 0x0d, 0xb3, 0xcf, 0x75, 0x29, 0xe3, 0xf7, 0x6c, 0xf4,
9454b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb5, 0x97, 0x94, 0xb9, 0x66, 0x1b, 0xe2, 0x05, 0x1c, 0xdd, 0x5e, 0x45,
9464b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc7, 0x6f, 0xe6, 0x4a, 0x59, 0x53, 0x75, 0x4c, 0x1e, 0x70, 0x4d, 0x61,
9474b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa6, 0x95, 0x1b, 0xf1, 0x9e, 0xf2, 0x89, 0x99, 0x32, 0xca, 0x39, 0x43,
9484b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4e, 0x6f, 0xd3, 0x1f, 0xde, 0xb4, 0x10, 0x3f, 0x2f, 0xee, 0xe2, 0x37,
9494b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb7, 0xbc, 0xa5, 0xe6, 0xf5, 0x9d, 0xfb, 0x6b, 0xf5, 0xf9, 0x4f, 0x85,
9504b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe5, 0x92, 0x2d, 0x09, 0x2d, 0xbe, 0x46, 0x6c, 0x9b, 0x23, 0xcb, 0x19,
9514b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x85, 0x86, 0x96, 0x88, 0xa5, 0x37, 0xbf, 0xff, 0x3b, 0x8c, 0x00, 0x79,
9524b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x77, 0xe3, 0xa1, 0x14, 0xf0, 0x0b, 0x45, 0xba, 0xd5, 0x79, 0xa6, 0xc9,
9534b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x61, 0x45, 0xda, 0x07, 0xb6, 0x67, 0xa4, 0x6c, 0x39, 0x45, 0x8d, 0xfd,
9544b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc4, 0x00, 0xb0, 0x01, 0xf8, 0x8f, 0x6b, 0xcf, 0x9b, 0xaa, 0x5b, 0x16,
9554b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x21, 0x52, 0x7e, 0xc6, 0xc1, 0x90, 0xf1, 0xad, 0xf9, 0x59, 0x1d, 0xf1,
9564b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf6, 0xf8, 0xf8, 0xf6, 0x99, 0x49, 0x86, 0xee, 0x75, 0xc6, 0x61, 0xb7,
9574b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x2d, 0x5a, 0xbb, 0x0f, 0xda, 0x79, 0xf5, 0xbb, 0xc2, 0xa0, 0x92, 0x7e,
9584b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbf, 0x90, 0x0b, 0x61, 0x44, 0xed, 0x26, 0xe5, 0x91, 0xd9, 0x52, 0x69,
9594b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x95, 0x0b, 0x2e, 0x84, 0x56, 0xc9, 0xd8, 0xae, 0x45, 0x2e, 0x0a, 0x7c,
9604b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb4, 0x9b, 0x15, 0x20, 0xfa, 0x6d, 0x2c, 0x28, 0xe6, 0xd2, 0x15, 0x1b,
9614b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4d, 0xa5, 0x14, 0xdf, 0x3f, 0x9f, 0x3d, 0x89, 0xba, 0x87, 0x41, 0xaa,
9624b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x56, 0x0d, 0x56, 0xdf, 0x95, 0xf3, 0xdf, 0x2b, 0xf3, 0x68, 0xc7, 0x60,
9634b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc9, 0x4b, 0x38, 0xaa, 0x71, 0x4d, 0x9f, 0xa9, 0x39, 0xdc, 0x5c, 0x29,
9644b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7f, 0x57, 0x52, 0xdd, 0x42, 0x9b, 0xa5, 0x9d, 0x3f, 0x7e, 0x2c, 0xb7,
9654b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x61, 0x41, 0xd0, 0xa8, 0x54, 0x54, 0x0d, 0x38, 0x29, 0xa1, 0xb5, 0xab,
9664b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4f, 0x6f, 0x3f, 0xd3, 0x89, 0xd7, 0x55, 0xe4, 0xed, 0xe7, 0x69, 0x35,
9674b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x06, 0x59, 0x22, 0x97, 0x4b, 0xfd, 0xb2, 0x74, 0x21, 0xf2, 0x45, 0x7d,
9684b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x50, 0xa3, 0xea, 0xa0, 0xf6, 0xe8, 0xfd, 0x44, 0x65, 0xe8, 0x07, 0x2f,
9694b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x55, 0xa6, 0xae, 0x52, 0xb1, 0x0a, 0x46, 0xe1, 0x3d, 0xdc, 0x60, 0xbf,
9704b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x38, 0x6c, 0x28, 0xf3, 0x0a, 0x85, 0x94, 0x3e, 0x56, 0x43, 0x19, 0xb7,
9714b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xaa, 0xf3, 0x79, 0xcc, 0x9c, 0x61, 0x94, 0xab, 0x62, 0x0c, 0x0a, 0x6d,
9724b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x80, 0x64, 0x59, 0x1b, 0x88, 0xe7, 0xec, 0x3c, 0x9d, 0x9c, 0xd7, 0xda,
9734b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xba, 0x8a, 0x34, 0x6b, 0x73, 0x5d, 0xd9, 0x07, 0xbd, 0xbc, 0xb8, 0xa2,
9744b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xee, 0x63, 0xae, 0x07, 0x5a, 0x85, 0x1e, 0x87, 0xd1, 0x8c, 0x80, 0x07,
9754b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd1, 0xde, 0xd3, 0x9c, 0x2c, 0xb5, 0x58, 0x34, 0xb2, 0xe4, 0x0a, 0x8c,
9764b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xda, 0x63, 0x7d, 0xd1, 0x22, 0xc8, 0x9a, 0xec, 0xd3, 0x0d, 0x01, 0xc7,
9774b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x2f, 0xe4, 0xe8, 0x1f, 0x28, 0xcd, 0x81, 0x03, 0x55, 0xba, 0x93, 0xfe,
9784b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xff, 0x6b, 0xce, 0xcd, 0xef, 0x64, 0xd9, 0x8f, 0x9b, 0x2e, 0xdb, 0x38,
9794b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc3, 0xe2, 0x0e, 0x29, 0xb8, 0x3f, 0x7e, 0x48, 0xc2, 0x3b, 0xd9, 0xb2,
9804b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd3, 0xea, 0xef, 0x26, 0xe4, 0xae, 0x42, 0x8a, 0xa7, 0xdf, 0x02, 0x9b,
9814b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3f, 0x26, 0x7c, 0xf4, 0x23, 0x5e, 0x3a, 0x4e, 0x21, 0xa9, 0x6c, 0xb4,
9824b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x62, 0x4a, 0x1a, 0xc0, 0xd6, 0x8c, 0x4b, 0x95, 0xbc, 0x4f, 0xde, 0x5c,
9834b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xec, 0x82, 0xde, 0xe2, 0xe9, 0x8e, 0x9c, 0xad, 0xa9, 0x87, 0xd2, 0x1b,
9844b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5b, 0xee, 0x88, 0x92, 0xc8, 0x78, 0xd3, 0x88, 0x4d, 0xdf, 0x13, 0x3a,
9854b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xff, 0x7c, 0xe5, 0x76, 0x65, 0x4a, 0x1e, 0x9e, 0x56, 0x22, 0xd0, 0x21,
9864b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x07, 0x8f, 0x6f, 0x3b, 0xb6, 0x39, 0xef, 0xf2, 0x33, 0xc7, 0x24, 0xd4,
9874b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x38, 0x2d, 0x93, 0x69, 0x2a, 0xca, 0xda, 0x71, 0x6c, 0x7b, 0xf5, 0x42,
9884b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x92, 0x0f, 0x85, 0x46, 0xd9, 0xfc, 0xe7, 0x9f, 0x7e, 0x46, 0x0e, 0x48,
9894b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5d, 0x64, 0x7e, 0xdf, 0x9c, 0x97, 0x8d, 0x94, 0x62, 0x1b, 0x84, 0xb4,
9904b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa7, 0x05, 0x36, 0x98, 0xfb, 0xa2, 0x5d, 0x73, 0x85, 0xa3, 0x69, 0xea,
9914b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x50, 0x71, 0xd5, 0x88, 0xcd, 0xb4, 0x23, 0x3a, 0xf1, 0x96, 0x1b, 0xb2,
9924b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x04, 0x0e, 0x87, 0xfa, 0xb6, 0x67, 0xe4, 0xd7, 0x3a, 0x79, 0x50, 0xc3,
9934b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x12, 0x97, 0xbe, 0x07, 0x33, 0xba, 0x51, 0x1d, 0x24, 0x7d, 0x1d, 0xaf,
9944b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd4, 0x2c, 0xe6, 0xe6, 0xcc, 0x9e, 0x7a, 0xb4, 0x26, 0xca, 0x7a, 0x50,
9954b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x1e, 0xb3, 0x8d, 0x6c, 0x00, 0x00, 0x01, 0x0a, 0x43, 0xf9, 0x00, 0x03,
9964b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbf, 0xe0, 0xb1, 0x5c, 0x93, 0xba, 0x30, 0x72, 0x79, 0xf1, 0x4d, 0x53,
9974b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xac, 0x3e, 0x58, 0x53, 0x6f, 0xf9, 0x99, 0xc9, 0x1e, 0xf5, 0x2c, 0x80,
9984b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4f, 0x96, 0xd8, 0xba, 0x81, 0x8a, 0x39, 0xbd, 0x28, 0x03, 0x87, 0xb8,
9994b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8c, 0x29, 0xd6, 0xe4, 0x09, 0xdf, 0x3b, 0xaf, 0xa5, 0xa1, 0xf1, 0x55,
10004b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x21, 0xc3, 0x1b, 0xce, 0x08, 0xcf, 0x21, 0x4b, 0x2f, 0x8c, 0x6f, 0x1b,
10014b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x70, 0x9e, 0x4f, 0x8e, 0x50, 0x9c, 0xb1, 0x15, 0xbc, 0x74, 0x1c, 0xde,
10024b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd0, 0xee, 0xf1, 0xd3, 0x20, 0x66, 0x61, 0x44, 0xda, 0x15, 0x21, 0x55,
10034b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbd, 0x68, 0x03, 0xc7, 0xf1, 0xd7, 0x98, 0xbd, 0x4a, 0x7d, 0x97, 0x97,
10044b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbe, 0xee, 0x97, 0x22, 0x42, 0xa8, 0xc8, 0x14, 0xde, 0x14, 0x9b, 0xce,
10054b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xad, 0x6b, 0x76, 0x51, 0x69, 0x90, 0x28, 0xa3, 0xda, 0x21, 0x52, 0x52,
10064b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5b, 0x46, 0x1f, 0x15, 0xbf, 0xa0, 0x7b, 0x25, 0x11, 0xdf, 0x61, 0x20,
10074b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x13, 0xfe, 0x22, 0x14, 0x58, 0x70, 0xd2, 0xdb, 0xca, 0xda, 0x01, 0x53,
10084b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xdd, 0xb6, 0x20, 0xc2, 0xe7, 0x8b, 0x71, 0x04, 0x3a, 0x0a, 0xe6, 0x6e,
10094b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xec, 0x0d, 0x59, 0x12, 0x4f, 0x14, 0xad, 0xba, 0x02, 0x17, 0xfd, 0x3b,
10104b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x69, 0x2e, 0x92, 0x58, 0x2a, 0xd8, 0xa4, 0x26, 0xac, 0x2b, 0x15, 0xbf,
10114b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb6, 0x80, 0x3b, 0x00, 0x5f, 0xec, 0x00, 0x5f, 0xfc, 0x8f, 0xe2, 0x74,
10124b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa8, 0x4f, 0xc1, 0x62, 0x35, 0x61, 0x97, 0x13, 0x72, 0x9e, 0x10, 0xdf,
10134b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6e, 0x11, 0xff, 0xe7, 0xa0, 0x06, 0x6f, 0xe5, 0xeb, 0xa3, 0x39, 0x79,
10144b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x97, 0x64, 0xa8, 0x9c, 0x5c, 0x59, 0x07, 0xb7, 0xe4, 0xfe, 0xf9, 0x00,
10154b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x35, 0xf6, 0x9c, 0xf9, 0xa4, 0x2e, 0x90, 0x3a, 0x49, 0x3b, 0xe4, 0x71,
10164b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x46, 0xd2, 0xa4, 0x3d, 0xbd, 0x0f, 0xfb, 0xed, 0x9f, 0x04, 0x70, 0x0a,
10174b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xfe, 0x05, 0x6d, 0x2f, 0xf2, 0x41, 0x5f, 0xc6, 0x61, 0x84, 0x0c, 0xcf,
10184b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc2, 0x55, 0xb8, 0x78, 0x63, 0x67, 0xd3, 0xcc, 0xdf, 0x3b, 0x6a, 0x0f,
10194b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x74, 0x58, 0x81, 0x6d, 0xae, 0x5b, 0xa5, 0xd5, 0x0a, 0x6f, 0x9e, 0x2b,
10204b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9a, 0x00, 0xf8, 0x8d, 0x9c, 0x65, 0x5b, 0x57, 0x79, 0x47, 0x48, 0x5d,
10214b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x55, 0x1a, 0x4a, 0x6f, 0x00, 0x2d, 0x61, 0x91, 0x47, 0x42, 0xc7, 0x48,
10224b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x51, 0xed, 0xea, 0xf5, 0xdc, 0x00, 0x3a, 0xec, 0x8a, 0x44, 0xec, 0x9f,
10234b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0x05, 0x3d, 0x90, 0x33, 0xbe, 0x6e, 0x69, 0xf0, 0x38, 0xb3, 0x2a,
10244b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x78, 0x94, 0xde, 0x0b, 0xfd, 0x40, 0x2d, 0xd7, 0xeb, 0x90, 0x35, 0x2e,
10254b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd5, 0x83, 0x08, 0x4d, 0x35, 0x76, 0x54, 0xb0, 0x30, 0x29, 0xb0, 0xb0,
10264b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb6, 0xfa, 0x36, 0xd7, 0xc8, 0xf9, 0x7d, 0x0a, 0xa0, 0x6d, 0xae, 0x27,
10274b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x10, 0x04, 0xdc, 0x40, 0x85, 0xb1, 0x5b, 0x81, 0xd6, 0x00, 0x19, 0x59,
10284b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9a, 0xf0, 0x9b, 0x04, 0xcb, 0x81, 0x87, 0x05, 0xb6, 0x5f, 0xa7, 0x40,
10294b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x16, 0x08, 0x13, 0xcc, 0x81, 0x31, 0x0c, 0x84, 0xba, 0xdb, 0x4b, 0xe6,
10304b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb2, 0x90, 0xd9, 0xd8, 0x39, 0xba, 0x78, 0x80, 0x07, 0xc2, 0x1d, 0x32,
10314b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbe, 0x06, 0xcd, 0x47, 0x86, 0x0c, 0x94, 0x69, 0xe1, 0x8d, 0xbb, 0xdc,
10324b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd0, 0x03, 0x9a, 0x40, 0x2a, 0xa5, 0x86, 0xe2, 0x26, 0xcf, 0x0d, 0x96,
10334b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x51, 0xc1, 0x8d, 0x92, 0xd7, 0xfd, 0x76, 0x0a, 0xc7, 0x28, 0xcc, 0x0f,
10344b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe7, 0x22, 0x3e, 0x87, 0x43, 0xf4, 0x60, 0x62, 0x16, 0x5b, 0x6b, 0x22,
10354b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6d, 0xf6, 0x23, 0x47, 0x62, 0x5a, 0xb6, 0xd8, 0x2b, 0xa8, 0xe9, 0xb7,
10364b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x76, 0x97, 0x4d, 0xd5, 0xb6, 0x90, 0xdb, 0x3f, 0xd4, 0x25, 0xb6, 0xd4,
10374b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb6, 0xef, 0x32, 0x47, 0x45, 0x2c, 0xa3, 0xb3, 0xbd, 0x2b, 0x68, 0x1f,
10384b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0a, 0x66, 0xe3, 0x00, 0x0f, 0xa1, 0x39, 0xf4, 0x6a, 0x20, 0x7e, 0x4a,
10394b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa8, 0x70, 0xd5, 0x0d, 0x6b, 0x26, 0x5f, 0xbb, 0xf3, 0x64, 0xa1, 0x8b,
10404b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5d, 0xbb, 0x2c, 0x08, 0x92, 0x17, 0xe0, 0xd4, 0xb9, 0xcb, 0xce, 0xf7,
10414b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x14, 0x24, 0x81, 0x66, 0x42, 0x13, 0x77, 0x40, 0x32, 0xa0, 0x5b, 0x7a,
10424b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x50, 0x0c, 0xcd, 0x24, 0xd6, 0xcb, 0xb5, 0x63, 0x9d, 0x28, 0x61, 0xb9,
10434b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xdb, 0xb0, 0xc8, 0x83, 0x07, 0x1e, 0x16, 0xdd, 0xb7, 0xe0, 0x00, 0x92,
10444b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbd, 0xd2, 0x3a, 0xcf, 0xd0, 0x09, 0x2d, 0xa8, 0x7c, 0x58, 0x89, 0x14,
10454b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x22, 0xa3, 0x73, 0xfb, 0xb7, 0xdc, 0x40, 0x99, 0x2d, 0x01, 0x54, 0x9a,
10464b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x85, 0x1c, 0x37, 0x29, 0xc3, 0x4e, 0x6f, 0x57, 0xd7, 0x90, 0x8f, 0x81,
10474b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x62, 0x5d, 0xcb, 0xac, 0x01, 0x27, 0x90, 0xbc, 0xa9, 0x03, 0xd6, 0x02,
10484b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x27, 0xfe, 0x5b, 0x22, 0xf8, 0x28, 0xf6, 0xdd, 0xba, 0x23, 0x7c, 0xad,
10494b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xef, 0x7d, 0x9e, 0x27, 0x8c, 0xb9, 0x07, 0xee, 0xd7, 0x73, 0xbc, 0xef,
10504b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe8, 0xe8, 0xa5, 0x7a, 0x37, 0x93, 0xd3, 0x45, 0x66, 0x27, 0x28, 0x19,
10514b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6e, 0x6f, 0x9c, 0x18, 0x32, 0xd6, 0xd9, 0x78, 0x82, 0x81, 0x0b, 0xfe,
10524b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xab, 0xa0, 0xc2, 0xe5, 0x2a, 0xd2, 0x11, 0x5e, 0x25, 0xb6, 0x9c, 0xe5,
10534b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xef, 0x15, 0xaa, 0xe7, 0x02, 0x40, 0x01, 0x9b, 0xbb, 0x5f, 0xa1, 0x45,
10544b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x1c, 0x16, 0xc3, 0x4a, 0x23, 0x71, 0xdb, 0xbd, 0xbd, 0x79, 0x96, 0xd2,
10554b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x63, 0xb2, 0x3e, 0x2c, 0xb2, 0xd3, 0x51, 0x26, 0xf8, 0xb7, 0x4c, 0x49,
10564b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x31, 0xca, 0x65, 0x29, 0x10, 0xe4, 0xb1, 0x47, 0x35, 0x3f, 0x5e, 0x9f,
10574b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc9, 0x75, 0x21, 0x72, 0xfe, 0xa2, 0xae, 0x12, 0xa8, 0xc6, 0xeb, 0xba,
10584b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xce, 0xc5, 0xde, 0x7a, 0xb4, 0x11, 0xbf, 0xf3, 0x75, 0xcf, 0x92, 0xcc,
10594b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc0, 0xe8, 0x54, 0xab, 0x0b, 0x69, 0x67, 0x0f, 0xad, 0xd1, 0x9d, 0xed,
10604b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x17, 0x97, 0xbe, 0x86, 0xdc, 0x29, 0x4a, 0xbf, 0xaa, 0x36, 0x1c, 0x53,
10614b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x59, 0xed, 0xf1, 0x1c, 0xf7, 0xef, 0x1d, 0xc9, 0x40, 0x73, 0xb7, 0x56,
10624b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3a, 0x64, 0x18, 0x16, 0x59, 0x61, 0x8d, 0x9c, 0x51, 0x05, 0xdd, 0x4a,
10634b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x27, 0x98, 0x34, 0x3a, 0xf2, 0xa9, 0x91, 0x0a, 0x2b, 0x00, 0xb6, 0x5d,
10644b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xef, 0x51, 0x5d, 0x62, 0x14, 0x4e, 0x92, 0xd2, 0xb1, 0xc7, 0xda, 0x58,
10654b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe5, 0x0c, 0x66, 0xca, 0x16, 0x73, 0x7d, 0x22, 0x27, 0x09, 0x9a, 0x27,
10664b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xdf, 0x4d, 0x28, 0xb9, 0xba, 0xa8, 0x64, 0x2c, 0xe2, 0x8a, 0x88, 0x53,
10674b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5b, 0xf5, 0xe2, 0x68, 0x18, 0x15, 0x24, 0xfd, 0x43, 0x6e, 0xd4, 0x43,
10684b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb7, 0x16, 0x0e, 0x29, 0x5b, 0x17, 0x5b, 0x78, 0x78, 0x19, 0xe5, 0x3f,
10694b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x75, 0xcb, 0xbb, 0x46, 0x28, 0xd8, 0x73, 0x65, 0x8e, 0x77, 0x22, 0xb7,
10704b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4d, 0x86, 0x0d, 0xbb, 0x6a, 0x98, 0x30, 0x60, 0x4b, 0x26, 0x1b, 0xb3,
10714b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe1, 0xfa, 0x2b, 0xf2, 0x26, 0xa9, 0x52, 0xec, 0xda, 0x76, 0x49, 0x10,
10724b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x86, 0x31, 0xb4, 0xdf, 0x67, 0xfb, 0xbd, 0xf3, 0x5f, 0xaa, 0x52, 0x47,
10734b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd9, 0x09, 0x67, 0x34, 0xde, 0x54, 0x4c, 0xb7, 0x28, 0x4e, 0x43, 0xc0,
10744b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7c, 0xd6, 0x71, 0xa4, 0xe9, 0x76, 0xc8, 0xa7, 0x93, 0x6c, 0x98, 0xb4,
10754b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb1, 0xb0, 0x74, 0x69, 0x6d, 0x02, 0x5b, 0xbb, 0xd8, 0x52, 0x71, 0xaf,
10764b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbc, 0xc5, 0x50, 0xec, 0x94, 0xa8, 0x8a, 0x94, 0xb9, 0x3c, 0x5b, 0x95,
10774b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc8, 0xb7, 0x0a, 0x7d, 0x97, 0x31, 0x0e, 0xb2, 0x3a, 0xa9, 0x91, 0x4b,
10784b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x29, 0x61, 0x5e, 0xac, 0xc4, 0xfa, 0x2a, 0x41, 0x83, 0x2e, 0x9a, 0x92,
10794b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0e, 0x1e, 0x48, 0x6d, 0xdf, 0x63, 0x5f, 0x7b, 0xe6, 0xeb, 0xf7, 0x4f,
10804b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9f, 0x89, 0x46, 0x42, 0x8b, 0x96, 0x8c, 0x60, 0xf6, 0x84, 0xb2, 0x9c,
10814b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xde, 0x5d, 0xdd, 0xf9, 0x85, 0xad, 0x9f, 0xa8, 0xa7, 0x59, 0xfa, 0x0c,
10824b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x1a, 0x16, 0xd7, 0xf3, 0xf3, 0xc7, 0x1c, 0xc9, 0x3a, 0xe0, 0x6d, 0xb5,
10834b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd8, 0xb0, 0xe0, 0xc4, 0x6a, 0xba, 0x92, 0x45, 0x3e, 0x9e, 0x62, 0x42,
10844b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xfc, 0x4f, 0x6c, 0x1c, 0x3e, 0xf2, 0x65, 0x48, 0x75, 0x42, 0xe8, 0xd8,
10854b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x54, 0x61, 0x8d, 0x39, 0xbf, 0x5b, 0xf3, 0xce, 0x77, 0xf0, 0x27, 0x20,
10864b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x91, 0x68, 0x4c, 0xfc, 0xde, 0x52, 0x4e, 0x20, 0x66, 0x6c, 0x1b, 0x4a,
10874b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa7, 0xc1, 0x8d, 0xcf, 0x13, 0xa2, 0x80, 0x0f, 0xdd, 0x82, 0xe6, 0x17,
10884b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x16, 0xe4, 0x18, 0x71, 0xa7, 0x28, 0x63, 0x73, 0x1d, 0x2b, 0x8a, 0x2c,
10894b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa3, 0xcd, 0x7c, 0x85, 0x2c, 0x6e, 0x87, 0xb3, 0x8d, 0xcd, 0xba, 0xa3,
10904b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe4, 0xa6, 0xe2, 0x50, 0xa6, 0x50, 0xa6, 0xdb, 0x75, 0x6d, 0x6e, 0xbf,
10914b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc7, 0x96, 0x3b, 0x83, 0x90, 0xa7, 0x22, 0x19, 0x31, 0x14, 0x6a, 0x35,
10924b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4e, 0xf3, 0x10, 0x29, 0xce, 0xb7, 0x6d, 0x3c, 0x3e, 0xf6, 0xb6, 0x0c,
10934b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x19, 0x69, 0xed, 0x5e, 0xdc, 0x11, 0xc6, 0x24, 0x09, 0x99, 0x6a, 0x16,
10944b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x16, 0x18, 0xda, 0x66, 0xaf, 0x9d, 0x36, 0x8d, 0x43, 0xc9, 0x8a, 0xc4,
10954b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x65, 0x68, 0x68, 0x16, 0xdf, 0x2b, 0xa7, 0x4e, 0xaf, 0x4f, 0xb2, 0x53,
10964b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8a, 0xb6, 0xa5, 0xa4, 0x82, 0xe1, 0x2d, 0xac, 0xe3, 0xbc, 0xe3, 0x92,
10974b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe6, 0x28, 0x0f, 0x10, 0xe1, 0x9e, 0x8d, 0x83, 0xab, 0xae, 0x32, 0x49,
10984b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x11, 0x20, 0xd0, 0x82, 0x9a, 0xcf, 0x8d, 0x7c, 0x73, 0x8d, 0xb6, 0xa8,
10994b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x10, 0x7d, 0x01, 0xab, 0x07, 0x30, 0x7d, 0x6d, 0xe6, 0x6b, 0x9d, 0xb6,
11004b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbe, 0x8c, 0x08, 0x6a, 0x16, 0x72, 0xb2, 0x94, 0x04, 0x64, 0x85, 0xc0,
11014b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x92, 0xda, 0xae, 0x5d, 0xc6, 0x62, 0x71, 0xa1, 0x36, 0x86, 0x36, 0x0c,
11024b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xdd, 0xc9, 0x2b, 0xc2, 0xa0, 0x67, 0x84, 0x64, 0xc3, 0x00, 0x00, 0x00,
11034b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x01, 0x0b, 0x43, 0xf9, 0x16, 0xdf, 0x37, 0xad, 0x9e, 0xa7, 0x46, 0xde,
11044b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf0, 0xfc, 0xc2, 0xef, 0x8b, 0x71, 0xd3, 0xcf, 0x16, 0x92, 0x8a, 0x6f,
11054b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x57, 0xc8, 0x21, 0x7f, 0xc8, 0x16, 0xb5, 0xbc, 0xb8, 0x52, 0xda, 0x43,
11064b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6f, 0x16, 0x37, 0x5b, 0xd7, 0x0f, 0x0a, 0x1e, 0x1a, 0xd2, 0x53, 0x39,
11074b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa0, 0x5b, 0x6c, 0x9f, 0x8b, 0x72, 0x7a, 0xca, 0xdc, 0xa9, 0x25, 0xc9,
11084b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0x20, 0x43, 0xa8, 0x09, 0x69, 0xed, 0x3a, 0x1f, 0x23, 0x4d, 0x2d,
11094b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbe, 0x59, 0x84, 0x04, 0x99, 0x40, 0x47, 0x0c, 0x85, 0x85, 0x97, 0x49,
11104b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x2d, 0xda, 0x04, 0x3f, 0xfa, 0xb4, 0x92, 0xdc, 0x48, 0x08, 0x40, 0x0e,
11114b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4e, 0x2b, 0xd7, 0x6d, 0x25, 0x95, 0x09, 0x4d, 0xe9, 0x39, 0xcb, 0xc9,
11124b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb8, 0x43, 0xb1, 0xb1, 0xa3, 0x09, 0x0c, 0x8e, 0x46, 0xfa, 0x72, 0x10,
11134b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x76, 0x66, 0xdf, 0x0d, 0xb2, 0x2b, 0x68, 0x00, 0x6c, 0x28, 0x00, 0xf9,
11144b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe4, 0x45, 0x35, 0x6a, 0x62, 0xd2, 0x21, 0x19, 0xe0, 0x66, 0x80, 0x47,
11154b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x69, 0xc1, 0x2a, 0x8c, 0x45, 0xc8, 0x2f, 0x2e, 0x2d, 0x38, 0xa5, 0x1b,
11164b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x83, 0x61, 0x55, 0xbd, 0x29, 0x17, 0xef, 0x84, 0x4f, 0x9b, 0xc3, 0xa0,
11174b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf8, 0x6b, 0x84, 0xf5, 0x5f, 0xd1, 0x6e, 0xf3, 0xa1, 0xf9, 0x64, 0x9b,
11184b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x32, 0x14, 0x75, 0x52, 0xeb, 0x79, 0xf1, 0xe4, 0xe3, 0x0a, 0xa1, 0x54,
11194b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb2, 0x89, 0x5e, 0x8d, 0x56, 0x1a, 0xdf, 0x82, 0xed, 0xfb, 0xc7, 0x41,
11204b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe6, 0x58, 0x96, 0x1a, 0xae, 0x0b, 0x1c, 0x35, 0x0a, 0x18, 0xde, 0x64,
11214b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5f, 0x39, 0xc7, 0xbe, 0x47, 0x66, 0xc3, 0xe6, 0xd5, 0x88, 0x51, 0xd4,
11224b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf0, 0xca, 0xde, 0x88, 0x01, 0x87, 0xc7, 0x3d, 0x7f, 0x5d, 0xf3, 0xcf,
11234b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x2f, 0xe4, 0x99, 0x4c, 0x78, 0xa7, 0x65, 0x80, 0x16, 0x66, 0x2d, 0x57,
11244b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa0, 0xca, 0x12, 0xdc, 0x3a, 0x2f, 0xa1, 0x1e, 0x5b, 0xcf, 0x57, 0x4e,
11254b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xdd, 0x4d, 0x89, 0x2d, 0x91, 0x70, 0xfa, 0xb2, 0x54, 0xa7, 0x96, 0xdd,
11264b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb7, 0x12, 0x6c, 0x84, 0x30, 0x2d, 0xb7, 0xa5, 0x37, 0x9d, 0xf9, 0x78,
11274b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xeb, 0x64, 0xa1, 0x1b, 0x29, 0x5a, 0x80, 0x2b, 0x6c, 0x93, 0xf3, 0xce,
11284b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x61, 0x61, 0x85, 0xd9, 0x09, 0x2d, 0x8c, 0x57, 0x19, 0xf0, 0x29, 0xd3,
11294b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x24, 0x1b, 0x4f, 0xda, 0xfd, 0xa3, 0x49, 0xb6, 0xd5, 0xad, 0xa3, 0x87,
11304b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe8, 0x9c, 0xe7, 0x78, 0x88, 0x00, 0x28, 0xce, 0x24, 0xbb, 0x54, 0xe1,
11314b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb4, 0xe2, 0x13, 0x2b, 0x16, 0xd6, 0x8a, 0xdd, 0xc4, 0x6e, 0x35, 0xd8,
11324b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9e, 0x7b, 0x46, 0xe9, 0xb8, 0xec, 0xc9, 0x2a, 0xad, 0xa8, 0x83, 0x6b,
11334b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x74, 0xfe, 0x6b, 0x80, 0x1c, 0xfc, 0x58, 0xee, 0xdf, 0x06, 0xe6, 0x3f,
11344b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x87, 0xf3, 0xc6, 0x44, 0x89, 0x29, 0x32, 0xa2, 0x4a, 0x59, 0xd5, 0x0f,
11354b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6f, 0x31, 0x27, 0x96, 0xee, 0xa0, 0x52, 0x17, 0x5b, 0x50, 0x73, 0xf7,
11364b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6e, 0x14, 0x03, 0xdd, 0x96, 0x14, 0x30, 0xea, 0xa3, 0x5b, 0x7d, 0xaa,
11374b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x95, 0xb7, 0xa3, 0x5b, 0xe9, 0x7f, 0x8d, 0x14, 0x26, 0x9a, 0xbe, 0x30,
11384b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb9, 0x06, 0x96, 0xdb, 0xb6, 0x93, 0xba, 0xe9, 0xda, 0x09, 0x7f, 0xf5,
11394b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xed, 0xa8, 0xa7, 0x0e, 0x56, 0xf2, 0x7b, 0x60, 0x81, 0x0e, 0x96, 0xd0,
11404b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd5, 0xbe, 0x28, 0xde, 0xfb, 0xea, 0xe7, 0x39, 0xe2, 0x78, 0x7e, 0x50,
11414b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd9, 0xbf, 0x33, 0x49, 0xf6, 0x1c, 0x7b, 0xd6, 0x5c, 0xb9, 0x4a, 0x0a,
11424b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x66, 0xb7, 0x9d, 0x80, 0x53, 0x6d, 0x00, 0x29, 0xb2, 0xb6, 0xa2, 0xb9,
11434b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x04, 0x1f, 0xec, 0x7e, 0xf6, 0xed, 0x51, 0xc8, 0xe2, 0xa2, 0x8d, 0x2e,
11444b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc5, 0x18, 0x59, 0xc9, 0x5b, 0xa5, 0x2c, 0xfb, 0x65, 0x9a, 0x19, 0x71,
11454b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x08, 0xe9, 0x6d, 0x90, 0x27, 0x92, 0xe2, 0xb5, 0x1f, 0xde, 0x60, 0x91,
11464b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x1d, 0x3d, 0xf7, 0x02, 0xc5, 0x74, 0x24, 0x53, 0xec, 0x38, 0xed, 0xa5,
11474b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xfa, 0x36, 0xc9, 0xba, 0x47, 0xc7, 0xde, 0x94, 0x32, 0xf1, 0x82, 0x77,
11484b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9b, 0x14, 0x36, 0x06, 0x00, 0x8e, 0x37, 0x63, 0x7a, 0x0d, 0xf9, 0xde,
11494b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x67, 0x1d, 0x5f, 0x82, 0xb6, 0x9c, 0x98, 0x4e, 0x7c, 0xd4, 0x2d, 0x50,
11504b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa3, 0x88, 0x6a, 0xdb, 0x78, 0xea, 0x77, 0xbf, 0x97, 0xbe, 0x81, 0x10,
11514b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3b, 0x6c, 0xbf, 0xb1, 0xdb, 0x06, 0x78, 0x04, 0xb4, 0x12, 0x08, 0x40,
11524b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0d, 0xb4, 0xd9, 0x60, 0x62, 0x3a, 0xd2, 0xd5, 0x61, 0xd4, 0xa2, 0x86,
11534b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9e, 0xdc, 0xec, 0xa0, 0x06, 0x9d, 0xf3, 0xa9, 0x06, 0xa8, 0x04, 0xb5,
11544b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7c, 0x07, 0xd3, 0xa0, 0x53, 0x03, 0x1a, 0x46, 0xb6, 0x08, 0xd3, 0x87,
11554b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x88, 0xdb, 0x82, 0xf9, 0x90, 0xac, 0xfc, 0xae, 0x19, 0x9c, 0x13, 0x57,
11564b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc5, 0xba, 0x3b, 0x08, 0x3d, 0x42, 0x7c, 0x01, 0x56, 0x6c, 0x42, 0x9b,
11574b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe7, 0x46, 0x87, 0xd8, 0x90, 0x30, 0xca, 0x02, 0xe6, 0xfa, 0xc1, 0x16,
11584b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc0, 0x06, 0x64, 0x4e, 0xcd, 0x72, 0x14, 0xbb, 0xca, 0xae, 0x4d, 0x92,
11594b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa1, 0xe8, 0x96, 0xc0, 0xa6, 0x74, 0xa6, 0x9c, 0xab, 0x4a, 0x6f, 0x33,
11604b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9d, 0x39, 0xef, 0xa0, 0xeb, 0x42, 0xf6, 0x45, 0x1c, 0x77, 0xab, 0x76,
11614b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x1d, 0xef, 0xe4, 0x56, 0x2a, 0x16, 0x93, 0x12, 0x48, 0x65, 0x2d, 0x46,
11624b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x36, 0x5f, 0x90, 0x43, 0xff, 0x87, 0x59, 0xab, 0x12, 0xe4, 0x2a, 0x4d,
11634b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x2e, 0x55, 0x85, 0x21, 0xda, 0x16, 0xd8, 0x1f, 0xbc, 0x13, 0x9d, 0x92,
11644b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xec, 0x1b, 0x99, 0x72, 0x9d, 0x9a, 0x35, 0x4b, 0x3a, 0x05, 0x36, 0x67,
11654b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x36, 0x97, 0x4a, 0x46, 0xfd, 0x07, 0x3e, 0xe0, 0x16, 0x3e, 0xf1, 0x26,
11664b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x01, 0x2e, 0xf3, 0xa1, 0xd5, 0xd2, 0xc2, 0xce, 0xa3, 0x06, 0xfa, 0xb7,
11674b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0e, 0x0b, 0xe0, 0x4f, 0x59, 0x93, 0x62, 0x17, 0x67, 0x73, 0x26, 0x62,
11684b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6a, 0x06, 0x8d, 0xbe, 0x0c, 0x3b, 0xb8, 0x2f, 0x87, 0x64, 0xa3, 0x91,
11694b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xdc, 0xcd, 0x54, 0x28, 0x79, 0x0d, 0x83, 0xde, 0x62, 0x47, 0xa5, 0x38,
11704b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9b, 0x2a, 0x98, 0x32, 0x9c, 0x8d, 0x11, 0xab, 0x46, 0xb6, 0xcf, 0xb2,
11714b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x72, 0x86, 0x6c, 0xa5, 0xfe, 0xd1, 0x12, 0xc2, 0xa3, 0x40, 0x0b, 0x6e,
11724b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x99, 0x71, 0x03, 0x26, 0x86, 0xa2, 0x56, 0x77, 0xdf, 0x37, 0xec, 0x5d,
11734b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x1d, 0x24, 0x51, 0x8d, 0x8b, 0xaf, 0xc1, 0x69, 0x07, 0xaa, 0x0c, 0x18,
11744b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc4, 0x6a, 0xad, 0xd5, 0xe7, 0xc3, 0x8c, 0x7c, 0xcd, 0x2d, 0x69, 0x86,
11754b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0f, 0x3e, 0x14, 0xa8, 0x4b, 0x6d, 0xa2, 0x77, 0xce, 0xd8, 0xeb, 0xd8,
11764b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0f, 0x16, 0xd9, 0x2c, 0x88, 0x51, 0xed, 0xc2, 0x8f, 0x36, 0xc3, 0x10,
11774b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x75, 0x56, 0xec, 0xe7, 0x2f, 0x17, 0x7c, 0xaa, 0x4a, 0x02, 0x22, 0xd1,
11784b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0f, 0x62, 0x14, 0xc5, 0x2e, 0x37, 0x7e, 0xc9, 0xc4, 0xb8, 0x90, 0x2f,
11794b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd4, 0x05, 0xed, 0x9c, 0xc3, 0x76, 0xd5, 0x08, 0x4b, 0x1b, 0xaa, 0xe9,
11804b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe5, 0x8b, 0x54, 0xa4, 0x6e, 0x7e, 0xd7, 0x64, 0x0e, 0x94, 0xe2, 0xcb,
11814b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa5, 0x14, 0x35, 0xa0, 0x61, 0x4d, 0xaa, 0x96, 0x5b, 0x6a, 0xb9, 0xb7,
11824b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf6, 0x19, 0x30, 0xb2, 0xea, 0xad, 0x6c, 0x5b, 0xcb, 0x8c, 0xcf, 0x2b,
11834b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x14, 0xea, 0xa8, 0x5c, 0x52, 0xce, 0x6e, 0x98, 0xae, 0xd0, 0xdb, 0x2d,
11844b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x19, 0x25, 0x42, 0xc8, 0x6d, 0xcc, 0xfc, 0xf5, 0x96, 0xee, 0xd1, 0xe3,
11854b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x68, 0x53, 0x38, 0xd9, 0x9c, 0xde, 0xff, 0xc4, 0xe6, 0xc3, 0x68, 0x59,
11864b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xed, 0x88, 0x57, 0x3b, 0x95, 0x77, 0x3c, 0x06, 0x23, 0x54, 0x25, 0xdc,
11874b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf2, 0xe5, 0xe7, 0x8e, 0x1f, 0x94, 0x39, 0xf2, 0x53, 0x9b, 0xe8, 0x00,
11884b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x81, 0xfa, 0xa0, 0x0f, 0xbe, 0x40, 0x1e, 0xfd, 0xb8, 0x8e, 0x16, 0xe3,
11894b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4d, 0x97, 0xae, 0x05, 0xee, 0x43, 0x2c, 0x7e, 0x5b, 0x03, 0xe5, 0x38,
11904b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7b, 0x54, 0x65, 0x1b, 0xf9, 0xe9, 0x13, 0x1e, 0x91, 0x47, 0x14, 0x79,
11914b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x74, 0xa6, 0x4b, 0xd5, 0xc1, 0x56, 0xaa, 0x84, 0x54, 0x59, 0x11, 0x61,
11924b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x45, 0x0c, 0x6f, 0xba, 0x02, 0x07, 0xe7, 0x80, 0x59, 0x9f, 0xda, 0xe1,
11934b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x19, 0x34, 0x38, 0xde, 0x5f, 0x61, 0x97, 0x65, 0xc8, 0x62, 0xda, 0x3c,
11944b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb4, 0x8d, 0xec, 0x7e, 0x08, 0xa4, 0x70, 0x06, 0xbf, 0xf8, 0xfa, 0xfe,
11954b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe8, 0x76, 0x4b, 0x86, 0xc8, 0x4c, 0xcc, 0x83, 0x1b, 0xcd, 0x22, 0x73,
11964b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x1d, 0xcb, 0x9f, 0x96, 0x51, 0xd2, 0x37, 0x08, 0x87, 0x99, 0xb9, 0xb3,
11974b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd1, 0xbf, 0x92, 0x02, 0x07, 0xe6, 0x7d, 0xa0, 0x03, 0x3f, 0xe3, 0xf8,
11984b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf8, 0xf9, 0xca, 0x95, 0x1d, 0xe6, 0x85, 0xe3, 0x9f, 0x0b, 0x85, 0x50,
11994b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc5, 0x6f, 0xd0, 0x00, 0x05, 0x20, 0x0e, 0x44, 0xfd, 0x40, 0x1f, 0xf7,
12004b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xaf, 0xeb, 0x40, 0x8e, 0xb8, 0xc2, 0xec, 0x31, 0x57, 0x74, 0x29, 0xbb,
12014b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe0, 0x0c, 0x39, 0xdf, 0x8e, 0xe5, 0xde, 0x10, 0x22, 0xc0, 0x2e, 0x36,
12024b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x92, 0x25, 0xd1, 0x3f, 0x05, 0x50, 0x92, 0x88, 0x48, 0xd6, 0x20, 0x5f,
12034b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x06, 0x39, 0xf7, 0x28, 0x4e, 0x36, 0x5c, 0x24, 0xc9, 0x6b, 0x00, 0x00,
12044b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0x01, 0x0c, 0x43, 0xd4, 0x08, 0x1f, 0xa2, 0x01, 0x61, 0x14, 0x5e,
12054b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x67, 0xf0, 0x4e, 0xcf, 0xd6, 0xf2, 0xfe, 0x71, 0x0c, 0xe2, 0x54, 0xda,
12064b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb6, 0x8c, 0x0a, 0xad, 0xd1, 0x00, 0x63, 0x8f, 0x22, 0x88, 0x22, 0xbb,
12074b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbb, 0x4e, 0x04, 0x50, 0x0f, 0xb9, 0x5f, 0x25, 0x0f, 0xfd, 0xf9, 0xe4,
12084b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x28, 0x25, 0xbe, 0xad, 0xa2, 0xdc, 0x00, 0xd0, 0x00, 0x45, 0x9c, 0x50,
12094b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc0, 0xe8, 0x6e, 0xbe, 0xad, 0x32, 0xfe, 0xe5, 0x26, 0xc2, 0x86, 0x54,
12104b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x63, 0xc8, 0x82, 0x7f, 0xc8, 0x03, 0xd0, 0xfb, 0x6f, 0xec, 0x10, 0x80,
12114b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x2a, 0xbf, 0xcc, 0x02, 0x27, 0x75, 0x2c, 0x0d, 0x3d, 0xbc, 0x2a, 0x93,
12124b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x65, 0x28, 0x02, 0x23, 0xdb, 0x8b, 0x74, 0xc2, 0xe9, 0x09, 0xbf, 0xc9,
12134b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x70, 0x10, 0x80, 0x1e, 0x47, 0xa4, 0x0d, 0xab, 0x52, 0x0e, 0x3a, 0x8d,
12144b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa1, 0x6c, 0x2e, 0x2c, 0x59, 0xb4, 0x36, 0xda, 0x53, 0x0c, 0xfc, 0x57,
12154b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0x0c, 0x24, 0x39, 0x9c, 0xb7, 0x8d, 0xf4, 0x2d, 0xb7, 0x85, 0xda,
12164b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xdc, 0x0d, 0xf2, 0xb9, 0x03, 0x12, 0x42, 0x44, 0x6f, 0x75, 0xb2, 0xf6,
12174b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xfe, 0xcd, 0x0a, 0x0f, 0x35, 0xbc, 0xe6, 0x97, 0x8a, 0x42, 0xa6, 0x52,
12184b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5a, 0x37, 0xd3, 0x04, 0xbf, 0xf3, 0x6b, 0xac, 0x0d, 0xf3, 0xdd, 0xd9,
12194b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x26, 0x1e, 0x36, 0x5a, 0x54, 0x3c, 0x6b, 0x4c, 0x2e, 0xa1, 0x29, 0x59,
12204b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x46, 0xf7, 0x7d, 0xbe, 0x35, 0xcf, 0xfe, 0xbb, 0x45, 0xe9, 0xd2, 0xeb,
12214b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x89, 0xfc, 0xef, 0x7c, 0xbe, 0x58, 0x6c, 0xa9, 0xe7, 0x13, 0x33, 0x32,
12224b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x18, 0x7c, 0x0b, 0x6f, 0x9d, 0x4e, 0x32, 0xe7, 0x19, 0x96, 0x0f, 0xb9,
12234b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0e, 0xa6, 0x42, 0xce, 0x5a, 0x5d, 0x6a, 0x28, 0x88, 0xe7, 0x4f, 0x2b,
12244b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x90, 0x73, 0xed, 0x98, 0xaf, 0x53, 0xcb, 0x44, 0x08, 0x6b, 0x30, 0x38,
12254b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5e, 0x6c, 0x88, 0x02, 0xb9, 0x57, 0xd6, 0x37, 0x9c, 0x98, 0x61, 0x49,
12264b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x46, 0xa6, 0x52, 0x99, 0x99, 0x23, 0x7d, 0x90, 0x05, 0x84, 0x52, 0x38,
12274b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xaf, 0xa8, 0x94, 0xf6, 0x2c, 0x11, 0x00, 0x17, 0x08, 0x98, 0xe3, 0x66,
12284b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf2, 0x62, 0xc5, 0xf2, 0x0c, 0xa1, 0x4d, 0xf2, 0x27, 0x49, 0x38, 0x73,
12294b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8b, 0x1e, 0x54, 0x87, 0x81, 0x4d, 0xd1, 0xca, 0x00, 0x64, 0xe7, 0x29,
12304b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0a, 0x94, 0xdc, 0xc5, 0x9e, 0x51, 0xf5, 0x42, 0x0d, 0x75, 0x84, 0x30,
12314b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc6, 0xf4, 0xf2, 0x2e, 0x54, 0xf4, 0x56, 0xe9, 0x90, 0xaa, 0x49, 0x6c,
12324b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9e, 0xe0, 0x2d, 0xb3, 0xd4, 0x14, 0xf8, 0x00, 0x31, 0x88, 0xdd, 0xf2,
12334b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3b, 0xaf, 0x3a, 0x59, 0x0d, 0xb2, 0x55, 0xfa, 0x1b, 0x62, 0xd0, 0xb2,
12344b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x43, 0x22, 0x64, 0x64, 0x39, 0xbe, 0x54, 0x4e, 0xf3, 0x11, 0x43, 0x0f,
12354b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x48, 0xbe, 0xad, 0xa3, 0xad, 0xd1, 0x53, 0xf2, 0xa0, 0x53, 0x71, 0xac,
12364b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3a, 0xa8, 0x4a, 0x94, 0xdd, 0x17, 0xec, 0x58, 0x6a, 0x06, 0x29, 0x4a,
12374b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x39, 0xa1, 0x4e, 0x8c, 0xe3, 0x68, 0xa0, 0x16, 0xf1, 0xc6, 0xcd, 0x09,
12384b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x2e, 0x4a, 0xbe, 0xad, 0xfa, 0x64, 0x01, 0xb8, 0x9a, 0x00, 0xeb, 0xee,
12394b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0xe7, 0x7d, 0xfc, 0xa4, 0x28, 0xcc, 0x00, 0x3d, 0x17, 0xc3, 0x9d,
12404b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x07, 0x95, 0x84, 0xed, 0xb8, 0xb4, 0x07, 0x8b, 0x6b, 0x7e, 0x71, 0xdf,
12414b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xcb, 0xf2, 0x10, 0x8a, 0x6f, 0xd3, 0x20, 0x0a, 0x14, 0x10, 0x40, 0x4c,
12424b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8f, 0xdd, 0xf3, 0xa0, 0x11, 0x73, 0xb9, 0xb0, 0x05, 0x4a, 0xb4, 0x34,
12434b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x62, 0xb7, 0x36, 0x6c, 0xe3, 0x7c, 0xb2, 0xe0, 0x6a, 0xee, 0xc0, 0x86,
12444b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x98, 0x5e, 0xe4, 0x25, 0xb7, 0xf2, 0x89, 0x08, 0x3e, 0xf4, 0x55, 0x40,
12454b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x47, 0xff, 0xd8, 0x27, 0x5d, 0xce, 0x48, 0x08, 0xff, 0xfb, 0xf8, 0x99,
12464b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa5, 0x04, 0x94, 0x5b, 0x74, 0x2e, 0x80, 0x1f, 0x00, 0x1b, 0x23, 0xe5,
12474b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x02, 0x64, 0x76, 0x76, 0xa5, 0x94, 0x4c, 0xcd, 0x2e, 0x12, 0x9b, 0x37,
12484b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x34, 0x0c, 0x11, 0x4e, 0x0c, 0xbd, 0x0a, 0x17, 0x2e, 0x20, 0xdf, 0xd6,
12494b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe6, 0x6d, 0x01, 0x1d, 0x48, 0xdd, 0x4b, 0x00, 0x0f, 0x05, 0x0a, 0xe1,
12504b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x36, 0x06, 0x42, 0x2c, 0x7c, 0xc0, 0xc1, 0x9e, 0x72, 0x16, 0x18, 0xde,
12514b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb0, 0xc6, 0xf6, 0xcf, 0x6f, 0xce, 0x7b, 0x26, 0x4d, 0x4d, 0x7d, 0x18,
12524b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x55, 0x33, 0x65, 0xbb, 0x14, 0x08, 0x7d, 0xb5, 0xb8, 0xcb, 0x5d, 0xc7,
12534b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x1b, 0x60, 0xec, 0x99, 0x2c, 0x0e, 0x1e, 0x03, 0x36, 0xeb, 0x48, 0xff,
12544b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x62, 0x05, 0xb8, 0x58, 0xd4, 0x15, 0x3c, 0xb6, 0xd3, 0xa0, 0xd9, 0xa9,
12554b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe2, 0xad, 0x97, 0x90, 0x42, 0xff, 0x5d, 0xbc, 0x20, 0x5e, 0x24, 0x2e,
12564b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xfa, 0x12, 0x98, 0x87, 0xb5, 0x53, 0x9b, 0x41, 0x22, 0xf4, 0x5f, 0x7c,
12574b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xef, 0x96, 0xd8, 0x32, 0x4e, 0x9c, 0x62, 0x8d, 0xfd, 0xac, 0x29, 0xbd,
12584b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x29, 0x19, 0xd3, 0xeb, 0xfd, 0xee, 0xd1, 0x7b, 0x75, 0x64, 0x7c, 0x5c,
12594b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd9, 0x92, 0x4a, 0xba, 0x9e, 0x70, 0x9a, 0x90, 0x39, 0xb8, 0x2b, 0x09,
12604b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf9, 0x64, 0x09, 0xb1, 0x70, 0xe1, 0xa7, 0x44, 0x3c, 0x21, 0xae, 0x74,
12614b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd7, 0x08, 0xce, 0x67, 0x36, 0xd4, 0x3b, 0x69, 0x91, 0xd2, 0x58, 0x7a,
12624b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc2, 0x83, 0x94, 0xb6, 0x89, 0x1b, 0x3a, 0x54, 0x56, 0xf4, 0xdc, 0xf6,
12634b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x15, 0xaf, 0xa2, 0xb2, 0x40, 0x09, 0x6c, 0x31, 0x16, 0xa1, 0xc3, 0xce,
12644b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x39, 0xb0, 0xe5, 0x79, 0x3d, 0xf5, 0xf2, 0x2f, 0xe9, 0x23, 0xa2, 0xa5,
12654b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3c, 0x29, 0xbb, 0x3c, 0xdd, 0x14, 0x2f, 0x71, 0x0b, 0x3b, 0x3c, 0xae,
12664b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x38, 0xfa, 0x12, 0x35, 0x02, 0x5b, 0x3a, 0xce, 0xd3, 0x8e, 0x8b, 0x02,
12674b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x43, 0xb0, 0x3e, 0x0f, 0x2a, 0xfa, 0xb4, 0xc8, 0x53, 0x6d, 0xb5, 0x6b,
12684b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6d, 0xce, 0xae, 0x5d, 0x18, 0x7c, 0x2d, 0x42, 0x9a, 0xfd, 0xd8, 0xfb,
12694b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x37, 0x28, 0x4d, 0xa5, 0x9c, 0x15, 0xea, 0xdc, 0x8e, 0xb2, 0xe7, 0x50,
12704b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe8, 0x3e, 0x86, 0x8c, 0x21, 0x04, 0xb5, 0xb7, 0x11, 0xf0, 0xb1, 0xc7,
12714b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0f, 0x30, 0xf2, 0xda, 0x6b, 0x68, 0xde, 0xcc, 0xf3, 0x72, 0xee, 0xbe,
12724b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8e, 0xc2, 0xce, 0x90, 0x90, 0xdc, 0xd1, 0x40, 0x61, 0xd6, 0xdb, 0xb4,
12734b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe0, 0xc1, 0xc8, 0xcc, 0x08, 0x60, 0x0b, 0x99, 0xa3, 0x4e, 0xab, 0xa3,
12744b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x1b, 0x1b, 0xdf, 0xe7, 0x61, 0xc0, 0x3c, 0x33, 0x2c, 0x09, 0x0d, 0x62,
12754b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x56, 0x2b, 0x76, 0x75, 0x72, 0xda, 0x99, 0x96, 0x8d, 0xb6, 0x16, 0xd8,
12764b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf2, 0x9b, 0xce, 0x92, 0x0f, 0x6d, 0x8e, 0x7d, 0xc7, 0x9b, 0x32, 0x0d,
12774b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x2f, 0x10, 0xb8, 0xa5, 0x9c, 0xce, 0x26, 0x00, 0x1f, 0xfb, 0x48, 0x81,
12784b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa6, 0xdc, 0xb9, 0xb3, 0xd4, 0xe6, 0x89, 0x52, 0x94, 0xd9, 0x66, 0xcc,
12794b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x79, 0x4d, 0xd3, 0x99, 0x67, 0x05, 0xa4, 0x0b, 0x53, 0xdb, 0xd4, 0x80,
12804b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x37, 0x14, 0xef, 0xaf, 0x5b, 0xc3, 0xbd, 0xf9, 0xca, 0x96, 0xbb, 0x1f,
12814b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbc, 0x2d, 0x93, 0x5d, 0x77, 0x28, 0x6a, 0x96, 0xde, 0x9f, 0xe4, 0x47,
12824b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbf, 0xfc, 0x01, 0x8f, 0x5f, 0x0e, 0x76, 0xaa, 0x19, 0x86, 0xbd, 0xff,
12834b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb1, 0xbe, 0x90, 0xb6, 0xc1, 0x05, 0xf1, 0xbf, 0x1f, 0x1c, 0x00, 0x56,
12844b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf9, 0x2e, 0x69, 0x3a, 0xf3, 0xd1, 0x99, 0xa5, 0x87, 0xa8, 0x79, 0x92,
12854b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x16, 0x10, 0xdc, 0xbd, 0x07, 0x00, 0xe4, 0x84, 0xde, 0x68, 0x89, 0xe5,
12864b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x57, 0x42, 0x9b, 0xe9, 0x80, 0x14, 0xfc, 0x8a, 0x77, 0x28, 0x2a, 0x3a,
12874b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x87, 0x4f, 0x37, 0x17, 0x71, 0x12, 0x1b, 0x0e, 0xf5, 0x6e, 0xc8, 0x01,
12884b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3f, 0xce, 0x7c, 0x90, 0x26, 0xfb, 0x75, 0xfb, 0xf2, 0x79, 0x92, 0x9b,
12894b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x13, 0xf0, 0xb6, 0x0f, 0x5b, 0x5b, 0xd9, 0x80, 0x3c, 0xff, 0xe7, 0xc9,
12904b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x07, 0x7a, 0x9d, 0xc9, 0x40, 0x27, 0x2e, 0x66, 0xdb, 0x51, 0x74, 0xe1,
12914b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd5, 0x50, 0xe8, 0xad, 0xee, 0xfe, 0x3f, 0xa2, 0x9e, 0x2c, 0x5e, 0x76,
12924b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf7, 0xc0, 0x1e, 0x73, 0x39, 0xc7, 0xc8, 0x90, 0x38, 0x3a, 0xad, 0x44,
12934b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x38, 0x31, 0xbc, 0xde, 0xc4, 0x0a, 0xb8, 0x55, 0x2c, 0x34, 0xe8, 0x8d,
12944b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xca, 0xe7, 0x70, 0x88, 0x58, 0x5b, 0x7f, 0x34, 0x00, 0x78, 0x23, 0x90,
12954b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x03, 0x5e, 0xfd, 0xe7, 0xce, 0x5a, 0x4d, 0xe6, 0xbf, 0x76, 0xed, 0xa6,
12964b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x17, 0x87, 0x7a, 0x1c, 0xdd, 0xd0, 0x04, 0xd8, 0x29, 0xfb, 0x5f, 0xc6,
12974b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xec, 0x85, 0x2f, 0x96, 0xd5, 0xf2, 0x0b, 0xc0, 0xc6, 0xbb, 0xe8, 0x47,
12984b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x70, 0x03, 0xa2, 0x27, 0xba, 0xc1, 0x38, 0xaa, 0x66, 0x13, 0x95, 0x64,
12994b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb1, 0x69, 0x41, 0x10, 0xb6, 0xf8, 0xb7, 0xb8, 0x8a, 0x46, 0xaf, 0x93,
13004b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe3, 0x61, 0xf3, 0x97, 0x73, 0x1e, 0x67, 0x9c, 0x3a, 0xc5, 0x68, 0x7b,
13014b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb8, 0xe9, 0x54, 0xa1, 0xb4, 0x04, 0x4d, 0xcd, 0x33, 0x31, 0x16, 0x46,
13024b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xfe, 0xd4, 0x00, 0xe9, 0xdc, 0x7c, 0x08, 0x7e, 0xe4, 0xbb, 0x52, 0x07,
13034b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xea, 0x54, 0x92, 0x0d, 0x6f, 0x0f, 0x7b, 0xc7, 0x6f, 0x4e, 0xeb, 0x50,
13044b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x11, 0xff, 0xef, 0x74, 0xcc, 0x43, 0xce, 0xaa, 0xdc, 0x91, 0x41, 0xc2,
13054b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc8, 0xb3, 0x71, 0x00, 0x8c, 0x9d, 0xed, 0xc9, 0x10, 0xea, 0x6a, 0xe4,
13064b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5a, 0x18, 0xdc, 0x20, 0x0a, 0x3a, 0xf6, 0x7f, 0x0e, 0xa2, 0x5c, 0x3b,
13074b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x76, 0xcc, 0xab, 0x2c, 0x4a, 0x50, 0x6f, 0x83, 0x79, 0xfc, 0x8a, 0x9e,
13084b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4e, 0x8e, 0x74, 0xa1, 0x35, 0x5b, 0x33, 0x11, 0x12, 0x37, 0xd7, 0x00,
13094b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x40, 0xff, 0x79, 0xa2, 0x1d, 0x5d, 0x5d, 0x2a, 0xd9, 0x5e, 0xe3, 0x0d,
13104b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa1, 0x6d, 0xf6, 0x00, 0x05, 0xdf, 0x34, 0x01, 0xb8, 0x03, 0xce, 0x6f,
13114b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7d, 0x82, 0x47, 0xfe, 0x38, 0xda, 0x62, 0x1f, 0x0b, 0x81, 0xad, 0xf0,
13124b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbe, 0xbe, 0xff, 0x22, 0x44, 0xed, 0xdf, 0x83, 0x16, 0xd8, 0xe7, 0x66,
13134b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa1, 0x86, 0xdf, 0xca, 0x25, 0x28, 0xf8, 0xdf, 0x5c, 0x9f, 0x5e, 0xff,
13144b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe2, 0xb7, 0xae, 0xf9, 0xe6, 0x8d, 0x2a, 0xd5, 0x36, 0x40, 0xc6, 0xf6,
13154b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x36, 0xbf, 0x97, 0xc3, 0x6e, 0x96, 0x4a, 0x6d, 0xa0, 0x7d, 0x8a, 0x4a,
13164b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x60, 0x00, 0x00, 0x01, 0x0d, 0x43, 0xf7, 0xdd, 0x8a, 0x78, 0x80, 0x06,
13174b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc0, 0x0d, 0x05, 0x73, 0x52, 0x25, 0x20, 0x02, 0x10, 0x03, 0xf7, 0x2b,
13184b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8d, 0x50, 0xea, 0x6d, 0xa5, 0x95, 0x43, 0x65, 0x6f, 0x4c, 0x00, 0xf8,
13194b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5b, 0x80, 0x1b, 0x77, 0xcf, 0xcd, 0xdc, 0xa3, 0xe7, 0x9f, 0x0b, 0x24,
13204b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3a, 0xfe, 0xa5, 0x29, 0x43, 0x1a, 0x10, 0x34, 0x89, 0xcd, 0xde, 0x5f,
13214b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc5, 0xa7, 0x77, 0x37, 0xc9, 0x21, 0x8a, 0x61, 0xc1, 0x2d, 0xf3, 0xe0,
13224b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x07, 0xc0, 0x0d, 0x78, 0xe7, 0xe4, 0x88, 0xff, 0x6f, 0x68, 0x85, 0xf9,
13234b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3e, 0x6d, 0x96, 0x6e, 0x2a, 0x40, 0xe9, 0x21, 0x77, 0xc1, 0xbc, 0x34,
13244b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xfc, 0x56, 0xe7, 0x96, 0x64, 0xb2, 0xac, 0xa5, 0x8e, 0x52, 0x82, 0x02,
13254b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5b, 0xf8, 0x7d, 0xcb, 0xe7, 0x95, 0x60, 0x62, 0x4b, 0x2c, 0x21, 0x56,
13264b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd9, 0x06, 0xd6, 0xfa, 0xb0, 0x02, 0x1c, 0x80, 0x09, 0x1c, 0x28, 0x89,
13274b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf5, 0x10, 0xf8, 0x1d, 0x67, 0x7c, 0xf6, 0xee, 0xa4, 0x35, 0xda, 0x5e,
13284b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x54, 0x1c, 0xa3, 0x61, 0x4d, 0x98, 0x10, 0x3f, 0x4b, 0xf9, 0xa0, 0x0f,
13294b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xfe, 0x33, 0x3d, 0x88, 0xf9, 0x46, 0x49, 0xdb, 0xf2, 0x24, 0xe3, 0x4b,
13304b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb8, 0xaa, 0xd9, 0xc2, 0xe2, 0x94, 0xde, 0x7b, 0xe1, 0xcd, 0xf1, 0x80,
13314b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x1c, 0x8a, 0xec, 0x01, 0x0f, 0xf0, 0x43, 0xb5, 0xd8, 0x1b, 0x39, 0x9d,
13324b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x87, 0x28, 0x0a, 0xa8, 0xdf, 0x46, 0xfb, 0x7f, 0x7e, 0x77, 0xfe, 0x40,
13334b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x31, 0xf4, 0x63, 0xae, 0x3b, 0xf3, 0x77, 0xc1, 0x0a, 0x40, 0xb6, 0xfa,
13344b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x37, 0xf7, 0xe7, 0xbf, 0xa8, 0x03, 0x71, 0x62, 0x44, 0xe8, 0x62, 0x6b,
13354b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd4, 0x39, 0x3f, 0x08, 0x98, 0x32, 0x48, 0xdf, 0x3f, 0xfe, 0x0b, 0x00,
13364b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x10, 0x67, 0x57, 0x66, 0x0c, 0xa5, 0xe1, 0x65, 0x9e, 0xd3, 0x23, 0xba,
13374b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe5, 0xf6, 0xda, 0x02, 0x29, 0x0b, 0x6b, 0xdb, 0x31, 0xf4, 0xbf, 0x06,
13384b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xfe, 0x5f, 0xdf, 0xbe, 0xfd, 0xb2, 0x75, 0xd6, 0xd4, 0x2d, 0x65, 0x88,
13394b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x89, 0xe8, 0xde, 0x08, 0x00, 0xf5, 0xe2, 0x3d, 0x9c, 0xfe, 0x79, 0xc9,
13404b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x13, 0xf0, 0xee, 0xe0, 0xea, 0x03, 0x56, 0xfa, 0x3f, 0xd5, 0xc0, 0x82,
13414b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x02, 0x7e, 0xdc, 0x9a, 0x5c, 0x39, 0x49, 0xf9, 0x21, 0xdb, 0x25, 0x2e,
13424b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0d, 0x6f, 0x8d, 0x75, 0x67, 0x44, 0x0e, 0x6a, 0x84, 0x3d, 0x72, 0x98,
13434b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x38, 0xe1, 0xc3, 0x5b, 0x93, 0x78, 0x82, 0x66, 0xbb, 0x89, 0x83, 0xe2,
13444b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5c, 0x6c, 0x2c, 0x34, 0xa8, 0xda, 0x11, 0x45, 0xe0, 0x87, 0x53, 0x2b,
13454b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8e, 0x53, 0x35, 0x15, 0x2a, 0x1c, 0x1a, 0x90, 0xe6, 0xa3, 0xfb, 0xb6,
13464b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xed, 0xb6, 0x00, 0x46, 0x5d, 0x28, 0x28, 0x31, 0xbd, 0x8e, 0x77, 0x78,
13474b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa2, 0xf5, 0xd8, 0x17, 0x69, 0xcd, 0xe0, 0x3e, 0xd2, 0xfd, 0x51, 0x20,
13484b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5e, 0xcd, 0xca, 0xa8, 0x71, 0x68, 0xde, 0x97, 0xee, 0xb6, 0x92, 0x14,
13494b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5b, 0x76, 0xce, 0x9d, 0xc0, 0x9d, 0x57, 0x00, 0xaa, 0xa0, 0xd8, 0x31,
13504b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbc, 0xe0, 0xa9, 0x38, 0xe1, 0xda, 0x50, 0x48, 0xc8, 0xad, 0xf4, 0x0e,
13514b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x45, 0xe6, 0xfd, 0x26, 0xc7, 0xe1, 0x55, 0x1e, 0xb5, 0xd9, 0xa1, 0xd4,
13524b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3c, 0x7c, 0x94, 0xa3, 0xda, 0x00, 0x27, 0xf9, 0xf6, 0xfa, 0x8a, 0x23,
13534b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x77, 0x5f, 0x14, 0x11, 0x00, 0x13, 0xae, 0xc8, 0x84, 0x7e, 0xf8, 0x8e,
13544b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x81, 0x1b, 0xc6, 0xae, 0xc8, 0x34, 0xa2, 0x8b, 0x6a, 0x44, 0x18, 0xda,
13554b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x13, 0x65, 0x6f, 0xe6, 0xe0, 0x38, 0xdb, 0x23, 0x6d, 0xd2, 0xe0, 0x16,
13564b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd9, 0x3d, 0xdd, 0x08, 0x12, 0x3b, 0x68, 0x69, 0xb6, 0x8f, 0x2d, 0xb7,
13574b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xda, 0xaf, 0xb4, 0xc0, 0x82, 0xc6, 0x34, 0x51, 0xa4, 0xa6, 0x34, 0xaa,
13584b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xde, 0xde, 0xcc, 0x32, 0xcb, 0x35, 0x06, 0xd8, 0x55, 0x42, 0xd4, 0x7b,
13594b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x75, 0xbe, 0x94, 0x02, 0xdf, 0x99, 0x5e, 0xfc, 0x0c, 0x8e, 0xda, 0x52,
13604b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd0, 0xc5, 0xb1, 0xb9, 0xe4, 0x68, 0xff, 0x97, 0xdd, 0x2c, 0xe5, 0x5d,
13614b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xdf, 0x27, 0x2c, 0xc2, 0xce, 0x3e, 0xb6, 0xbe, 0xb9, 0xbe, 0xde, 0xd8,
13624b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xee, 0x02, 0x6c, 0xc9, 0x0a, 0x83, 0x21, 0x50, 0x73, 0x73, 0xd3, 0x64,
13634b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x96, 0x46, 0x76, 0xa5, 0x6f, 0xde, 0xdb, 0xa4, 0x7f, 0x8f, 0x67, 0x6d,
13644b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa3, 0xd2, 0xb8, 0x47, 0x75, 0xca, 0x02, 0x27, 0x48, 0x88, 0xdc, 0xdc,
13654b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc9, 0x74, 0x5a, 0x84, 0x7e, 0x04, 0xf6, 0x28, 0x5d, 0xc1, 0xb0, 0xe9,
13664b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x69, 0x96, 0x84, 0x94, 0xc9, 0xec, 0x08, 0x5f, 0xe3, 0xc7, 0x3d, 0x6e,
13674b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd3, 0xca, 0xd0, 0x33, 0x1f, 0x80, 0x03, 0x57, 0x4d, 0x8a, 0x13, 0x2b,
13684b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x55, 0x2c, 0xe3, 0x9e, 0xa9, 0x0f, 0x8d, 0xf6, 0xd5, 0x5a, 0xb4, 0xb9,
13694b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc3, 0xa9, 0xc1, 0x0d, 0xea, 0x48, 0x6a, 0x92, 0x5b, 0xd5, 0x81, 0xf3,
13704b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x49, 0x2d, 0xd1, 0x51, 0xe0, 0x07, 0x06, 0xe2, 0x01, 0x08, 0x40, 0x17,
13714b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x28, 0xf3, 0xb6, 0xad, 0x24, 0xb2, 0xc3, 0x48, 0xfe, 0x7a, 0x58, 0x0a,
13724b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xdd, 0xd7, 0x25, 0x78, 0xe2, 0xab, 0x68, 0x11, 0xcb, 0xc5, 0x73, 0x56,
13734b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3c, 0xc5, 0x49, 0x1d, 0xdf, 0x6f, 0xdb, 0x03, 0x52, 0xdd, 0x90, 0xa9,
13744b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x47, 0x4b, 0x5a, 0xb7, 0x61, 0x02, 0xfd, 0x1d, 0xde, 0x84, 0x95, 0x9b,
13754b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd6, 0x5b, 0x4a, 0x42, 0xd1, 0x17, 0xc5, 0xae, 0x94, 0xda, 0xc6, 0xeb,
13764b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9c, 0xc1, 0x74, 0x54, 0xcc, 0x2c, 0x62, 0xef, 0x12, 0xc2, 0xcf, 0x19,
13774b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x46, 0x9e, 0x1a, 0xcb, 0x0d, 0xe3, 0xe4, 0x46, 0x98, 0x78, 0xe1, 0x4e,
13784b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb3, 0x74, 0x69, 0x34, 0xaa, 0xa8, 0xc7, 0x9e, 0x70, 0x89, 0x9e, 0xd3,
13794b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9b, 0x46, 0xd5, 0x82, 0x7a, 0xb9, 0xe6, 0x30, 0xe0, 0xca, 0xd8, 0xdc,
13804b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x67, 0x0e, 0xce, 0x27, 0x8e, 0x45, 0x7f, 0xa2, 0xd2, 0x9a, 0x0e, 0x6a,
13814b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3e, 0x37, 0xae, 0x13, 0xb6, 0xdf, 0x2c, 0xc8, 0x33, 0xf1, 0x9b, 0x4b,
13824b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa1, 0x6c, 0x65, 0x33, 0x87, 0xc4, 0x81, 0x17, 0xb7, 0xe9, 0xe7, 0x0d,
13834b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x90, 0x61, 0x25, 0xab, 0x7d, 0xcd, 0x49, 0x29, 0x43, 0x25, 0x3b, 0x0b,
13844b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x83, 0x8f, 0x24, 0x35, 0x7c, 0x4d, 0xd7, 0xee, 0x94, 0x36, 0xc9, 0xae,
13854b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x86, 0x95, 0x4b, 0xa5, 0x9e, 0x30, 0x35, 0x6b, 0x45, 0x6b, 0x6e, 0xe7,
13864b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5d, 0xd8, 0x03, 0x9b, 0x4e, 0x5b, 0xb2, 0xd3, 0x90, 0x86, 0xd5, 0xed,
13874b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x91, 0x40, 0xea, 0xa3, 0x9b, 0x35, 0x48, 0x92, 0xc0, 0x82, 0xda, 0xf9,
13884b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf9, 0xd3, 0xc0, 0x22, 0xf5, 0x3d, 0x86, 0xb6, 0xe5, 0xc5, 0xb8, 0x68,
13894b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x52, 0x1a, 0x74, 0x39, 0x97, 0x9e, 0x88, 0x3e, 0xd9, 0xbc, 0xc5, 0x29,
13904b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x2e, 0x49, 0x4c, 0xcb, 0x42, 0x62, 0x95, 0x68, 0x53, 0x73, 0xfa, 0x97,
13914b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8e, 0xe4, 0xdf, 0x49, 0x14, 0x34, 0x31, 0xba, 0x3f, 0x4e, 0xb0, 0x01,
13924b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc8, 0x9c, 0x27, 0xe9, 0x65, 0x07, 0xf4, 0x56, 0x13, 0xa8, 0x0a, 0xdf,
13934b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x43, 0x4e, 0x0b, 0x68, 0x1a, 0x53, 0x73, 0xf0, 0x06, 0x35, 0x6f, 0xa3,
13944b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7f, 0x47, 0x00, 0x5a, 0x01, 0x67, 0xdc, 0x8a, 0xef, 0x8d, 0x10, 0xf3,
13954b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa4, 0xb8, 0x41, 0x73, 0xe7, 0x98, 0xd3, 0xa6, 0x15, 0x61, 0x43, 0xea,
13964b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb7, 0x98, 0x12, 0xe0, 0x01, 0x0f, 0xb0, 0x8e, 0x5f, 0xe1, 0x38, 0x93,
13974b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x09, 0x46, 0x36, 0x0f, 0x6c, 0x98, 0x47, 0xd8, 0xfd, 0xc1, 0xf6, 0xbb,
13984b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0c, 0x33, 0x4a, 0x1e, 0x32, 0x8e, 0x39, 0xbb, 0x80, 0x0f, 0x28, 0xb0,
13994b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x06, 0x20, 0x0f, 0xf8, 0xe2, 0x71, 0xb0, 0x75, 0xd2, 0x75, 0xd7, 0x24,
14004b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0f, 0xa5, 0xc2, 0xa1, 0x51, 0xb9, 0xf2, 0xf9, 0x49, 0x29, 0x29, 0xbc,
14014b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5c, 0x86, 0x61, 0x4d, 0xfb, 0x01, 0x5c, 0x00, 0x19, 0x77, 0xdf, 0x29,
14024b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x81, 0xa6, 0xb9, 0xf2, 0x4c, 0x5f, 0x16, 0xf9, 0x5c, 0x81, 0xdd, 0x6d,
14034b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf1, 0x5c, 0xca, 0x43, 0xb2, 0x29, 0x29, 0xbe, 0x9e, 0x00, 0xd8, 0x58,
14044b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x20, 0x80, 0xb7, 0x06, 0x91, 0xc9, 0xd0, 0x67, 0x13, 0x6f, 0x16, 0x3a,
14054b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc2, 0x6d, 0x01, 0xc8, 0xf4, 0x28, 0x6b, 0x7c, 0xaf, 0x8b, 0x75, 0xdf,
14064b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x17, 0x9c, 0x09, 0xb9, 0xcf, 0x95, 0x40, 0x11, 0x5d, 0xb0, 0xa8, 0xd8,
14074b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xec, 0x3f, 0x00, 0x06, 0x4a, 0xd9, 0x50, 0xd6, 0xfd, 0x57, 0xbc, 0xde,
14084b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb9, 0xc7, 0xae, 0x06, 0x6c, 0x55, 0xcb, 0x02, 0x2c, 0x2d, 0xbe, 0x82,
14094b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0xec, 0x50, 0x01, 0xd3, 0xbb, 0x27, 0x9a, 0x3e, 0xf6, 0xf1, 0x3b,
14104b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa1, 0xf9, 0x4a, 0xc3, 0xa2, 0xc9, 0x32, 0x14, 0x3d, 0xbc, 0xe7, 0xc6,
14114b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf3, 0xfe, 0x82, 0x9d, 0xcb, 0xdc, 0x59, 0x30, 0xcd, 0xdb, 0xae, 0x1e,
14124b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9e, 0x45, 0xc0, 0xf8, 0x30, 0x9a, 0xdd, 0xbf, 0xf6, 0x75, 0xf5, 0xbc,
14134b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0a, 0xe3, 0x32, 0x1d, 0x26, 0xdb, 0x15, 0xc8, 0x7a, 0xac, 0x1b, 0x42,
14144b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9b, 0xcc, 0xb8, 0xa7, 0x27, 0x80, 0x1e, 0xd9, 0x86, 0xc6, 0xf8, 0x7f,
14154b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5f, 0x8e, 0x5f, 0xc0, 0xa1, 0x3b, 0x47, 0x57, 0x6b, 0xb2, 0xec, 0x83,
14164b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8f, 0x80, 0x72, 0x36, 0xe0, 0x05, 0xe0, 0x0f, 0x2e, 0x91, 0xfc, 0x9e,
14174b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xeb, 0x95, 0x51, 0xfb, 0x62, 0xdc, 0xcb, 0x69, 0x90, 0xbd, 0x18, 0xad,
14184b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8b, 0x8d, 0x70, 0x02, 0x69, 0xc7, 0x02, 0xdd, 0x40, 0x7b, 0x16, 0x2a,
14194b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc4, 0x32, 0x1e, 0x50, 0xc0, 0xa8, 0xde, 0xa8, 0x00, 0xab, 0x6f, 0xf7,
14204b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb1, 0x7d, 0x8a, 0x96, 0x8f, 0x86, 0xf3, 0xce, 0xe9, 0x65, 0x5a, 0x85,
14214b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd5, 0x28, 0x96, 0xda, 0xda, 0x9b, 0x61, 0x4c, 0xee, 0x96, 0xdf, 0x9d,
14224b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe8, 0xd0, 0x02, 0x87, 0x6a, 0xf7, 0x46, 0xae, 0xe8, 0xbd, 0xde, 0x70,
14234b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb1, 0x9e, 0x5f, 0xa8, 0xbe, 0x2d, 0xe3, 0xdf, 0x79, 0xfe, 0xce, 0x11,
14244b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc1, 0x92, 0xd7, 0xa2, 0x78, 0xa9, 0xde, 0x2d, 0xf4, 0x37, 0x89, 0x80,
14254b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x82, 0x02, 0xbb, 0xce, 0xc7, 0x58, 0x4c, 0xb2, 0x3d, 0x33, 0x24, 0xa1,
14264b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x11, 0x0a, 0x81, 0x4c, 0xbf, 0xdd, 0x84, 0x4f, 0x7e, 0xf4, 0x5b, 0xe2,
14274b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x2c, 0xb8, 0x66, 0x6d, 0x86, 0x60, 0xf0, 0x89, 0x1b, 0x1e, 0x83, 0xae,
14284b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x69, 0x0a, 0xb3, 0x85, 0x40, 0x2d, 0xbe, 0x98, 0xbe, 0xef, 0xc7, 0x2f,
14294b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9f, 0x3d, 0xdd, 0xd3, 0xb8, 0xd9, 0x29, 0x86, 0x5b, 0xb4, 0x7e, 0x53,
14304b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x92, 0x28, 0xe6, 0xf2, 0xdf, 0x4e, 0x34, 0x01, 0xac, 0xf8, 0x9f, 0x99,
14314b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xfb, 0xdd, 0xd4, 0x95, 0x6e, 0xd2, 0xc9, 0xa7, 0xa0, 0xd6, 0xe7, 0x11,
14324b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x26, 0xfd, 0xc8, 0xc2, 0x05, 0xfb, 0x60, 0x6e, 0x65, 0x7e, 0x5b, 0xbb,
14334b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x20, 0x61, 0x69, 0x5b, 0x38, 0x03, 0x17, 0x71, 0xf4, 0xf7, 0xdc, 0x0f,
14344b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x87, 0xad, 0xce, 0x7a, 0x90, 0xd4, 0x0d, 0xc9, 0x62, 0xf8, 0xb7, 0x4f,
14354b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x12, 0xb9, 0xd9, 0xb2, 0x84, 0xa4, 0x58, 0x42, 0x69, 0x18, 0x05, 0x30,
14364b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0x00, 0x01, 0x0e, 0x43, 0xfa, 0xd0, 0x87, 0x4c, 0x11, 0xbc, 0xe4,
14374b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x90, 0xb2, 0xea, 0x14, 0x60, 0x5b, 0x78, 0x70, 0x02, 0x7e, 0x7a, 0x00,
14384b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x75, 0xd1, 0x02, 0xef, 0x35, 0x60, 0x22, 0x00, 0x26, 0x5b, 0x8f, 0xbb,
14394b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x80, 0x60, 0xc3, 0x14, 0xc3, 0xe1, 0x61, 0x81, 0x8d, 0xed, 0x7e, 0xa0,
14404b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x16, 0x00, 0x2d, 0x23, 0x5d, 0xe9, 0x2d, 0x2a, 0xae, 0x75, 0xa0, 0x66,
14414b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xcb, 0x2a, 0x16, 0x59, 0x29, 0xbb, 0x82, 0x78, 0xe7, 0x3d, 0xf8, 0x00,
14424b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb2, 0x55, 0xab, 0x86, 0x3e, 0x1f, 0x1f, 0x4a, 0x91, 0x14, 0x69, 0x6d,
14434b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf3, 0x59, 0x24, 0xd3, 0x2d, 0x21, 0x9c, 0xde, 0x45, 0x95, 0xf5, 0x27,
14444b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x82, 0xc6, 0xf5, 0x72, 0xed, 0x00, 0x2f, 0x79, 0x16, 0x41, 0x7c, 0xdf,
14454b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xdd, 0xef, 0x34, 0xcb, 0x84, 0x13, 0x09, 0xee, 0x8b, 0x92, 0xcb, 0x5d,
14464b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe4, 0xa8, 0x72, 0xb7, 0xbf, 0xb5, 0xdb, 0xc4, 0x55, 0x83, 0x2e, 0xab,
14474b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd6, 0x50, 0x11, 0x01, 0xed, 0xc5, 0xb6, 0x80, 0x5b, 0x65, 0xb4, 0xb4,
14484b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x59, 0x9b, 0x91, 0x14, 0x9b, 0x4b, 0xb4, 0xf2, 0xdb, 0xad, 0x9b, 0xb5,
14494b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf2, 0x05, 0x98, 0x52, 0x4b, 0xfa, 0x18, 0x59, 0xde, 0xad, 0xb3, 0xa7,
14504b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9a, 0x18, 0xa4, 0x86, 0xf4, 0x23, 0x7d, 0x0c, 0x5c, 0x2d, 0x03, 0x29,
14514b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x71, 0x65, 0x18, 0x43, 0x6f, 0x2c, 0x00, 0xb7, 0xe7, 0xcb, 0x24, 0xcc,
14524b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x71, 0x63, 0x4a, 0x1a, 0xde, 0x96, 0x48, 0xbb, 0x2e, 0x51, 0xb5, 0x21,
14534b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x85, 0xca, 0x49, 0x6c, 0x79, 0x2e, 0xba, 0x47, 0x5b, 0x07, 0x87, 0xd8,
14544b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x50, 0x61, 0x43, 0xeb, 0x68, 0xfe, 0x77, 0x87, 0x67, 0x94, 0xf0, 0xa7,
14554b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd4, 0xac, 0xae, 0xdc, 0x85, 0x4f, 0x56, 0xfc, 0x08, 0x03, 0x59, 0x00,
14564b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x1e, 0x6f, 0xff, 0x79, 0xe2, 0x04, 0x08, 0x22, 0x67, 0x2b, 0x40, 0x4b,
14574b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x69, 0xbc, 0xac, 0x41, 0xd0, 0x3e, 0xb7, 0xe3, 0x8f, 0xaf, 0x0f, 0x22,
14584b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x66, 0x9a, 0x65, 0x83, 0x53, 0x2a, 0x12, 0x4a, 0x6f, 0xe8, 0x24, 0xc7,
14594b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x67, 0x7e, 0x56, 0xed, 0x43, 0xab, 0xdc, 0x1c, 0xa4, 0x30, 0xe8, 0xdf,
14604b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9c, 0xc0, 0x14, 0x13, 0xc0, 0x16, 0x0a, 0xb7, 0x9e, 0xf6, 0xd1, 0xaa,
14614b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x23, 0x2d, 0xd3, 0x0e, 0xb4, 0x38, 0x64, 0x81, 0x2d, 0xc8, 0xe8, 0x01,
14624b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x66, 0xc9, 0x7c, 0x57, 0xc4, 0xf6, 0xe6, 0x52, 0x75, 0x02, 0xdb, 0xfc,
14634b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xdb, 0xf0, 0x23, 0x05, 0xab, 0xd0, 0x32, 0x1c, 0x69, 0xde, 0x0c, 0x04,
14644b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd0, 0x0b, 0x5f, 0x35, 0x60, 0x0a, 0x83, 0xa1, 0x94, 0x2c, 0xb3, 0xa3,
14654b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7b, 0x5f, 0xae, 0xe8, 0x94, 0xe3, 0x16, 0x0d, 0x2e, 0x42, 0xd2, 0x86,
14664b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x41, 0x8d, 0xc7, 0x71, 0x3f, 0xe3, 0xbe, 0x0d, 0xa5, 0x8c, 0x2a, 0xc9,
14674b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x43, 0x1b, 0x47, 0x2d, 0xe3, 0x2d, 0x94, 0x30, 0x2d, 0xb3, 0x95, 0x4f,
14684b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6f, 0x73, 0xf3, 0x5f, 0xf7, 0x22, 0x0a, 0xee, 0x65, 0x3b, 0x03, 0xf9,
14694b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x17, 0x7a, 0xd4, 0xa3, 0x13, 0x39, 0xb1, 0x55, 0x47, 0x16, 0xdc, 0xc1,
14704b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x55, 0xff, 0x41, 0x1d, 0x70, 0x4f, 0x09, 0xd8, 0x28, 0x53, 0x9c, 0x48,
14714b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x89, 0x14, 0x32, 0x37, 0xbb, 0x11, 0x1c, 0x00, 0xe5, 0xff, 0xfe, 0x32,
14724b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4a, 0x52, 0x9b, 0xc7, 0xdb, 0xda, 0x89, 0x36, 0xe0, 0xd3, 0x62, 0x55,
14734b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb3, 0x46, 0xa0, 0xda, 0x31, 0xbe, 0x6e, 0x47, 0xf6, 0x76, 0xe6, 0x6e,
14744b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x65, 0xc3, 0x91, 0x75, 0x0d, 0x44, 0x08, 0x6d, 0x31, 0x34, 0xc2, 0xe0,
14754b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x04, 0x55, 0xad, 0x47, 0x90, 0x9b, 0xed, 0x09, 0x15, 0x08, 0xdc, 0xfc,
14764b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd9, 0x9c, 0xf9, 0x97, 0x2c, 0xe7, 0xbc, 0x97, 0x75, 0xd1, 0xc9, 0x61,
14774b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6a, 0x85, 0xd6, 0xf2, 0xd5, 0x04, 0x0b, 0xa6, 0x37, 0xa5, 0x76, 0x52,
14784b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x2f, 0x6e, 0x16, 0xe9, 0xe9, 0x4b, 0x40, 0xb6, 0xcc, 0x2d, 0x7e, 0xc4,
14794b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x61, 0x4f, 0x7d, 0xa0, 0x93, 0xff, 0x85, 0x81, 0xca, 0x16, 0xd9, 0x3a,
14804b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x1b, 0xb9, 0x64, 0x0a, 0xab, 0x63, 0x67, 0x90, 0xe6, 0xfc, 0xc3, 0xa5,
14814b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x17, 0x12, 0x10, 0xd0, 0x90, 0xde, 0x84, 0xd3, 0x79, 0x0e, 0xc0, 0xb9,
14824b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x46, 0x8c, 0x64, 0x00, 0x7f, 0x27, 0x5f, 0x3a, 0x57, 0x86, 0x8f, 0x6a,
14834b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x37, 0x2e, 0xf5, 0x29, 0x41, 0x11, 0x10, 0xe2, 0x9b, 0x59, 0x67, 0x92,
14844b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x56, 0xb3, 0xa2, 0x5f, 0x56, 0xfd, 0x4c, 0xda, 0x47, 0xf3, 0x87, 0x82,
14854b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x38, 0x01, 0xc5, 0xcb, 0x76, 0x80, 0x8a, 0xc3, 0x7c, 0x22, 0xb6, 0xaf,
14864b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x70, 0x42, 0x00, 0x8d, 0x7b, 0xac, 0x0a, 0x00, 0xa8, 0xce, 0xaa, 0x84,
14874b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa9, 0x97, 0xd0, 0xb8, 0xd9, 0xf4, 0x10, 0xbf, 0xc4, 0x02, 0xaa, 0x58,
14884b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x24, 0xff, 0xde, 0x79, 0x96, 0x12, 0x92, 0xd2, 0x53, 0x77, 0x72, 0xd7,
14894b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x60, 0x9b, 0x3d, 0x3d, 0xb7, 0x5e, 0x9e, 0x0f, 0xb8, 0x00, 0x30, 0x56,
14904b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe8, 0x80, 0x85, 0xff, 0x53, 0x40, 0xe6, 0xef, 0x80, 0x85, 0xff, 0x53,
14914b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x40, 0xe2, 0x43, 0x7e, 0x50, 0xa0, 0x07, 0xd7, 0x39, 0xa8, 0x13, 0xa2,
14924b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6e, 0x3a, 0xf8, 0x99, 0x97, 0x03, 0x06, 0xd6, 0xeb, 0x60, 0x7e, 0xe3,
14934b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xad, 0xa1, 0x92, 0x81, 0x9b, 0x20, 0x5d, 0xc5, 0x02, 0x9b, 0x9e, 0x5f,
14944b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x1b, 0xd4, 0xce, 0x22, 0x17, 0x65, 0x00, 0x3d, 0xef, 0xe6, 0x49, 0x60,
14954b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x65, 0xb2, 0x2f, 0x8a, 0x63, 0x5f, 0x96, 0xd0, 0xfb, 0x43, 0x0b, 0xee,
14964b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa6, 0x6a, 0x9c, 0x58, 0xd0, 0xd3, 0x9b, 0x73, 0x9b, 0xb0, 0xf0, 0x39,
14974b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbc, 0xe2, 0x4c, 0xfb, 0x91, 0x84, 0x57, 0x48, 0x11, 0x6d, 0xba, 0x1b,
14984b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x43, 0xc3, 0xda, 0x77, 0x60, 0x89, 0xed, 0x74, 0xf0, 0x1e, 0xf5, 0xce,
14994b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x07, 0x00, 0x89, 0x06, 0xd3, 0xbc, 0x1b, 0xa2, 0x21, 0x3f, 0xe2, 0x7a,
15004b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x2b, 0xc3, 0x21, 0x72, 0x9c, 0xd5, 0xbf, 0x00, 0x2a, 0x13, 0xc6, 0xad,
15014b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x18, 0xaa, 0x61, 0x84, 0x34, 0x28, 0x94, 0xd0, 0xda, 0xd2, 0xdb, 0xc7,
15024b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xcc, 0x59, 0x72, 0x18, 0x30, 0x68, 0xca, 0x12, 0x8d, 0x5b, 0x83, 0xe6,
15034b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe8, 0xc0, 0xca, 0x64, 0x08, 0x2d, 0x15, 0xb6, 0xee, 0xe3, 0xb8, 0x20,
15044b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xcd, 0xa1, 0x98, 0xb5, 0x03, 0x69, 0x34, 0x35, 0xb1, 0x3f, 0x26, 0xe4,
15054b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa5, 0x85, 0x5b, 0x28, 0x0d, 0x58, 0x60, 0x73, 0x76, 0x6a, 0x9b, 0x69,
15064b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x09, 0xb9, 0x12, 0x63, 0x9d, 0x10, 0x87, 0x4e, 0xf5, 0x6d, 0x99, 0x27,
15074b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb3, 0xf2, 0xa3, 0x73, 0xe2, 0xe4, 0xcd, 0x84, 0x35, 0x91, 0x91, 0xf1,
15084b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x83, 0x9b, 0xba, 0x47, 0xce, 0x31, 0xfe, 0x74, 0x74, 0x4b, 0xb2, 0x25,
15094b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x38, 0x71, 0xea, 0xdc, 0xc5, 0xb3, 0xdc, 0x0c, 0x41, 0xf4, 0x3a, 0x48,
15104b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x54, 0x3e, 0x9e, 0x36, 0xd6, 0xe9, 0x5a, 0x6c, 0x75, 0x50, 0x95, 0x83,
15114b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7d, 0x5b, 0x6f, 0xde, 0x9b, 0x1c, 0x20, 0x56, 0x40, 0x1e, 0x3d, 0xf8,
15124b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xff, 0xcb, 0xa1, 0xde, 0x2a, 0xd9, 0xe4, 0x36, 0x65, 0x2f, 0xc2, 0xb7,
15134b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x87, 0x03, 0x8c, 0x00, 0x18, 0x37, 0x85, 0xe2, 0xbc, 0xfa, 0xe9, 0xcf,
15144b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe3, 0x81, 0x98, 0x6d, 0x43, 0x31, 0x10, 0x79, 0x0d, 0xbe, 0x89, 0xf7,
15154b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf9, 0x23, 0x7b, 0x91, 0xb1, 0xef, 0xe6, 0x3e, 0x17, 0x45, 0x73, 0x9b,
15164b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x09, 0xb2, 0x51, 0xd4, 0x61, 0x2d, 0xbc, 0x3f, 0xc7, 0x52, 0x2e, 0xee,
15174b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8f, 0xba, 0x56, 0x64, 0x91, 0x0a, 0x38, 0x07, 0xb6, 0xd5, 0x6d, 0xcf,
15184b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x33, 0xe7, 0xdb, 0xdb, 0x65, 0x43, 0xae, 0x65, 0x0e, 0xdb, 0x6c, 0xa9,
15194b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4e, 0xd3, 0x8a, 0x28, 0x63, 0x73, 0x5a, 0x4e, 0x29, 0x42, 0x56, 0x36,
15204b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4d, 0xfb, 0xa0, 0x06, 0x3e, 0xd0, 0x8d, 0xf5, 0x76, 0xa7, 0x32, 0x95,
15214b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x09, 0xd5, 0xee, 0xdc, 0x57, 0x80, 0xac, 0x34, 0x63, 0x0f, 0xf8, 0x03,
15224b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x51, 0x1f, 0x3d, 0x3b, 0x9e, 0x74, 0x53, 0xec, 0x0f, 0x9c, 0x08, 0xde,
15234b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x03, 0xc9, 0xf6, 0x16, 0xb1, 0x54, 0xa4, 0x3c, 0x39, 0x8e, 0x7c, 0x8a,
15244b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0x45, 0xef, 0x1e, 0x47, 0xe2, 0xf1, 0x88, 0xee, 0x2e, 0x51, 0x77,
15254b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9f, 0x2c, 0x7e, 0x97, 0xb5, 0x35, 0x24, 0xb4, 0x60, 0xc5, 0x6f, 0x25,
15264b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9c, 0x5f, 0x62, 0x2f, 0xdf, 0xab, 0xe7, 0x64, 0x01, 0x26, 0x3c, 0x8d,
15274b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x97, 0x5e, 0xe9, 0x56, 0xd3, 0x4c, 0xe4, 0xac, 0xa8, 0x3a, 0xdc, 0x56,
15284b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x29, 0x65, 0x94, 0x34, 0x6c, 0x3d, 0xaa, 0x94, 0xdf, 0xb3, 0x13, 0xf0,
15294b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x23, 0x3e, 0xb7, 0x9e, 0x33, 0xb7, 0x6a, 0x21, 0xaf, 0x14, 0xf7, 0x6f,
15304b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x96, 0x18, 0xa7, 0x4b, 0x12, 0x01, 0x03, 0xaa, 0x36, 0x7f, 0xe8, 0x91,
15314b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0e, 0x11, 0x5c, 0x25, 0xfc, 0xb8, 0xeb, 0xc3, 0xf8, 0xce, 0xde, 0xee,
15324b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0a, 0xfc, 0xc3, 0xe5, 0x19, 0xad, 0xf1, 0x8e, 0x30, 0x02, 0xde, 0x05,
15334b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x23, 0x8c, 0x81, 0x9b, 0x20, 0xc2, 0xbf, 0x43, 0xfc, 0x1b, 0xe9, 0x7f,
15344b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x04, 0x57, 0x80, 0x3d, 0xeb, 0x81, 0x73, 0x45, 0x67, 0xea, 0x3a, 0x75,
15354b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbd, 0xcd, 0xcc, 0x85, 0x50, 0x31, 0xe5, 0x4b, 0x95, 0x8e, 0xec, 0xc4,
15364b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x92, 0x40, 0x9b, 0x16, 0xb6, 0x74, 0x07, 0xed, 0xf4, 0x72, 0x3c, 0x50,
15374b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa5, 0xdb, 0x69, 0x5f, 0x9d, 0x97, 0x23, 0xf5, 0xcb, 0x16, 0x7e, 0xcb,
15384b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa8, 0x71, 0xcc, 0xa0, 0x0b, 0x7e, 0x1f, 0x2f, 0x4f, 0x8f, 0x83, 0xf2,
15394b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe3, 0xdd, 0xae, 0xcd, 0x94, 0xaa, 0x36, 0x0c, 0xb0, 0x7a, 0x37, 0x50,
15404b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8b, 0x9d, 0x00, 0x31, 0xea, 0x91, 0xb4, 0x5c, 0x95, 0x30, 0x3b, 0x3e,
15414b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9f, 0x57, 0xbb, 0x98, 0x5a, 0x2f, 0x95, 0x87, 0xa8, 0x4a, 0x58, 0x8d,
15424b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe5, 0x00, 0x1a, 0x11, 0xbd, 0xb0, 0x57, 0x5c, 0x4c, 0xeb, 0x21, 0x77,
15434b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xcb, 0x80, 0xc8, 0x34, 0xb4, 0x1b, 0x5b, 0x91, 0xf5, 0x65, 0x52, 0x15,
15444b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x29, 0x9d, 0xa5, 0xd6, 0xfe, 0xac, 0x47, 0x12, 0x08, 0x5f, 0xdc, 0xf3,
15454b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7c, 0x8a, 0xa9, 0xbc, 0x75, 0xb6, 0xa5, 0x8b, 0x68, 0xd0, 0xd4, 0x6e,
15464b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x37, 0xb7, 0x02, 0x38, 0xe8, 0xcd, 0x74, 0x44, 0x9e, 0x5b, 0x14, 0xf8,
15474b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xad, 0xe8, 0xc0, 0x15, 0x09, 0xe4, 0x00, 0xac, 0x56, 0x11, 0xc8, 0x95,
15484b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe7, 0x4a, 0x01, 0x63, 0x89, 0xcf, 0x7e, 0xb8, 0x11, 0x00, 0x10, 0x6c,
15494b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3c, 0xcc, 0x2f, 0xd5, 0xbd, 0x00, 0x01, 0x8f, 0xb7, 0x5e, 0xe2, 0xdd,
15504b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd0, 0x93, 0x76, 0xc0, 0x09, 0x97, 0x9e, 0x39, 0xf2, 0x7a, 0x96, 0xe0,
15514b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x20, 0x30, 0x31, 0xb9, 0xc5, 0x87, 0x49, 0x2c, 0x09, 0x09, 0x8d, 0x3c,
15524b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x93, 0x12, 0x84, 0xb7, 0xf2, 0x0f, 0x79, 0x3e, 0xb7, 0xe3, 0x1d, 0x64,
15534b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0d, 0xd5, 0x32, 0xf8, 0x58, 0xde, 0x97, 0xb1, 0x64, 0x07, 0x5a, 0xe9,
15544b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x98, 0x12, 0x61, 0xb6, 0xd3, 0xdb, 0xea, 0xa0, 0x05, 0xe2, 0x63, 0xb3,
15554b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbb, 0xe7, 0x12, 0x19, 0x9a, 0xec, 0xc7, 0xe8, 0x18, 0x94, 0xfb, 0xe4,
15564b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe9, 0x4e, 0xba, 0x91, 0x42, 0x1b, 0xe0, 0xc2, 0x83, 0xa6, 0x6a, 0xe0,
15574b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xfc, 0x0e, 0xdf, 0xd5, 0x3d, 0xbb, 0x37, 0xf2, 0x5e, 0x2b, 0x1b, 0x92,
15584b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6b, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x43, 0xfd, 0x0a, 0x00, 0xf4, 0x58,
15594b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xaf, 0xbf, 0xbf, 0x02, 0x2d, 0x72, 0xa2, 0x9b, 0x98, 0xeb, 0x6b, 0xe4,
15604b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc3, 0x96, 0xc9, 0x0b, 0x46, 0xf4, 0x06, 0xf1, 0xd7, 0x0b, 0xa5, 0x14,
15614b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5c, 0xcb, 0xb2, 0x19, 0x4e, 0xa7, 0x97, 0x5b, 0x9b, 0xc3, 0x80, 0x0f,
15624b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9f, 0xab, 0x9a, 0xa3, 0x1d, 0xa9, 0x53, 0x2d, 0xc4, 0x52, 0xea, 0x14,
15634b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa3, 0x56, 0x37, 0x20, 0x52, 0xe7, 0x31, 0xcf, 0xd3, 0x51, 0x03, 0xf7,
15644b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbe, 0x13, 0x2e, 0xd0, 0xc2, 0xc7, 0x51, 0xed, 0xf2, 0x99, 0x52, 0xac,
15654b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf0, 0x2d, 0xb8, 0x60, 0xfb, 0x5b, 0xf5, 0x02, 0xaa, 0x6f, 0x36, 0x65,
15664b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x88, 0x50, 0x74, 0x42, 0x86, 0x9c, 0x1a, 0x81, 0xad, 0xe4, 0x00, 0x1e,
15674b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4e, 0xfe, 0x3e, 0xf9, 0x32, 0x45, 0x29, 0x03, 0xae, 0xf9, 0x5d, 0x96,
15684b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x18, 0x58, 0xf8, 0xbe, 0x0d, 0xe1, 0xc0, 0x17, 0x6f, 0x04, 0x6e, 0x78,
15694b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x32, 0xe5, 0x5b, 0x53, 0x74, 0x53, 0xcb, 0xc9, 0xa1, 0xf4, 0x39, 0xf2,
15704b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x17, 0x6c, 0x6d, 0x9f, 0x02, 0xbb, 0xcf, 0xa7, 0xd6, 0xc1, 0x7c, 0x82,
15714b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x30, 0x02, 0x55, 0x0f, 0x0e, 0x85, 0x00, 0x90, 0xe5, 0xb6, 0x2f, 0x83,
15724b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x67, 0x31, 0x66, 0x92, 0x55, 0xb9, 0xb0, 0x3a, 0x2b, 0x7f, 0x41, 0xff,
15734b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x40, 0x03, 0xfe, 0x85, 0xf0, 0xf3, 0x28, 0x23, 0xff, 0xef, 0x0f, 0x0f,
15744b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd3, 0x62, 0x8f, 0xa1, 0xa5, 0xb0, 0x14, 0xb8, 0x2a, 0x71, 0xc8, 0x98,
15754b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x01, 0x2e, 0x6c, 0xd5, 0x74, 0xe3, 0x30, 0xaf, 0x5b, 0x4e, 0x0d, 0x46,
15764b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe3, 0xf1, 0x7b, 0xff, 0xd2, 0x29, 0xb5, 0xd0, 0xb3, 0x37, 0xc9, 0xdb,
15774b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xbc, 0xee, 0x39, 0xe5, 0xee, 0x01, 0x8b, 0x61, 0x34, 0x29, 0xbd, 0x0f,
15784b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xdf, 0xbd, 0xd8, 0xb8, 0xea, 0x1d, 0x9f, 0x8c, 0xf3, 0xde, 0x7c, 0xa9,
15794b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa7, 0x87, 0x45, 0x2c, 0xc3, 0x94, 0x63, 0x6a, 0x64, 0xd5, 0xa8, 0xda,
15804b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa4, 0xdc, 0x02, 0xdb, 0xe3, 0xf5, 0xf0, 0xe0, 0x04, 0x80, 0x06, 0xaf,
15814b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xaf, 0x50, 0x26, 0xf1, 0xbc, 0x4a, 0xe5, 0x85, 0x93, 0x6d, 0x54, 0x50,
15824b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb6, 0xfc, 0xff, 0xf5, 0xcc, 0xcb, 0x0c, 0x37, 0xc6, 0x4a, 0xdf, 0xa5,
15834b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x48, 0xb9, 0xc5, 0x22, 0x7c, 0xf7, 0x95, 0x16, 0xc9, 0xb3, 0x31, 0x0d,
15844b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb4, 0xf3, 0xec, 0xb1, 0x56, 0x24, 0x29, 0x5b, 0xe4, 0x80, 0x0d, 0xfe,
15854b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x01, 0x04, 0x06, 0x7f, 0xb3, 0x39, 0x15, 0xc8, 0xc0, 0xe2, 0x0b, 0x97,
15864b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xcc, 0xb0, 0x20, 0x29, 0xb0, 0x32, 0x66, 0x3b, 0x25, 0x0a, 0x7b, 0x64,
15874b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf9, 0xe5, 0x24, 0x4f, 0x16, 0xfc, 0x30, 0xbd, 0xc0, 0x07, 0x9f, 0xfd,
15884b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe7, 0x3c, 0xd4, 0x6a, 0x49, 0x64, 0x32, 0x37, 0x91, 0x22, 0xf7, 0xc1,
15894b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x17, 0x34, 0x40, 0x8e, 0xea, 0x17, 0x25, 0xe7, 0x16, 0xf3, 0xd6, 0x6c,
15904b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x35, 0x3c, 0xae, 0x1e, 0xb0, 0xa3, 0x9b, 0xe9, 0xc0, 0x05, 0x70, 0x57,
15914b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0f, 0xdf, 0x8f, 0xe4, 0x01, 0xe6, 0x87, 0x1a, 0x5d, 0x94, 0xc9, 0xbe,
15924b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5b, 0x96, 0x5b, 0x2c, 0x6f, 0x94, 0x49, 0xf8, 0xf8, 0x9a, 0xa1, 0x73,
15934b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9c, 0x36, 0xda, 0x1a, 0x5c, 0x25, 0x37, 0x6e, 0x5a, 0x9f, 0x9a, 0x15,
15944b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x56, 0x94, 0xcc, 0xfb, 0x1b, 0x0e, 0x96, 0x00, 0x5b, 0x4d, 0xc0, 0x15,
15954b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xaa, 0x43, 0xc3, 0x21, 0xed, 0x88, 0xae, 0x05, 0x77, 0x00, 0x06, 0x7a,
15964b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xaa, 0x48, 0x46, 0xfa, 0xaf, 0xbd, 0xd9, 0xfc, 0x12, 0x46, 0xd3, 0x34,
15974b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x30, 0x0c, 0xf9, 0xfb, 0x66, 0xc0, 0xf3, 0xa6, 0x48, 0x6c, 0x94, 0xa3,
15984b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xea, 0x37, 0xcd, 0x36, 0xf9, 0xbf, 0x05, 0xe5, 0x08, 0x84, 0x02, 0xb5,
15994b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb4, 0x96, 0xdc, 0xc8, 0xbe, 0x87, 0x10, 0xd9, 0xc3, 0x9b, 0xfa, 0x6f,
16004b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc0, 0xbf, 0x70, 0x02, 0x3f, 0x69, 0xbd, 0x08, 0xed, 0x41, 0x10, 0x01,
16014b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x30, 0x51, 0xaa, 0x80, 0x91, 0xff, 0x92, 0xfe, 0xe0, 0xe5, 0xaa, 0xdb,
16024b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3f, 0xff, 0x34, 0x01, 0xf6, 0x91, 0x08, 0xc2, 0x62, 0x9f, 0x69, 0xbc,
16034b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x71, 0xbf, 0x9d, 0x26, 0xd2, 0xad, 0x85, 0x41, 0xad, 0xe4, 0x3b, 0xf8,
16044b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x04, 0x1f, 0xd9, 0x00, 0x12, 0x00, 0x5b, 0x68, 0x64, 0x36, 0x3c, 0xca,
16054b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x38, 0x3f, 0xc8, 0xe4, 0xa5, 0xf8, 0x37, 0xe8, 0x2f, 0x91, 0x3b, 0xcf,
16064b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xb8, 0xb8, 0x06, 0x60, 0xc7, 0x5e, 0xdd, 0xa8, 0x93, 0x53, 0x15, 0x23,
16074b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xee, 0x20, 0xc2, 0x1b, 0x79, 0xef, 0x90, 0x52, 0x5d, 0xa0, 0x03, 0x46,
16084b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xca, 0x95, 0x16, 0x7a, 0xb7, 0xf1, 0x30, 0x07, 0x74, 0x10, 0x40, 0x5c,
16094b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4f, 0xf7, 0xda, 0x20, 0xf5, 0xcf, 0x7e, 0x9c, 0x1f, 0x6c, 0x2a, 0x9b,
16104b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x62, 0xac, 0x92, 0xa0, 0xc1, 0xed, 0xf2, 0x8e, 0x13, 0x8b, 0xb7, 0x6f,
16114b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x81, 0x8b, 0x3c, 0x5b, 0xf4, 0xf9, 0x10, 0x48, 0x20, 0x80, 0xe7, 0xd3,
16124b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3e, 0x5d, 0x9c, 0xe9, 0x76, 0xde, 0x36, 0xbf, 0x4d, 0xab, 0x7c, 0xe9,
16134b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4b, 0x9a, 0x7a, 0xa5, 0x3d, 0x5b, 0xf3, 0x5f, 0xcc, 0x20, 0x76, 0xf7,
16144b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x49, 0x7c, 0x26, 0x6d, 0x1f, 0x06, 0x6b, 0x75, 0x17, 0xde, 0x9b, 0xe8,
16154b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3e, 0x05, 0xb6, 0xaa, 0xa7, 0xb7, 0xc4, 0xe3, 0x83, 0x76, 0x65, 0x40,
16164b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x08, 0xee, 0x2b, 0x7b, 0xf8, 0x08, 0x40, 0x15, 0xa2, 0xce, 0x90, 0xf0,
16174b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x43, 0x00, 0x68, 0x14, 0x79, 0x3e, 0x58, 0x49, 0x6f, 0x17, 0x26, 0xf9,
16184b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe1, 0x6a, 0x3b, 0xf3, 0x6b, 0xac, 0xf0, 0xa0, 0x6d, 0xbd, 0xc6, 0x4b,
16194b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd0, 0x81, 0x32, 0x5a, 0x11, 0x1d, 0xc6, 0x85, 0x02, 0x27, 0xfd, 0x6a,
16204b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xfa, 0x48, 0xde, 0xb5, 0x0f, 0x6f, 0x41, 0x49, 0xe0, 0x73, 0x74, 0x71,
16214b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9c, 0xce, 0xdd, 0xf8, 0xa1, 0x7e, 0xdb, 0xef, 0xc8, 0x4d, 0x59, 0xb3,
16224b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x56, 0xc1, 0xc9, 0x2c, 0xad, 0x81, 0xe6, 0x68, 0xbf, 0x7f, 0x6d, 0x81,
16234b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x59, 0xf3, 0x5d, 0xbc, 0x51, 0xc1, 0xc6, 0x58, 0x78, 0x49, 0x4c, 0xfd,
16244b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3a, 0xd1, 0x5c, 0x77, 0x65, 0x83, 0x03, 0xbf, 0x92, 0xcd, 0xb0, 0xf3,
16254b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf7, 0x39, 0x59, 0x00, 0x46, 0x5a, 0xb6, 0xbd, 0xc7, 0x89, 0xeb, 0xef,
16264b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xca, 0xe5, 0x5a, 0x56, 0xe0, 0x87, 0x88, 0xc7, 0xe4, 0x3c, 0x02, 0x57,
16274b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6e, 0xfa, 0x16, 0xda, 0xb7, 0x54, 0x6f, 0x9b, 0x43, 0xde, 0x2a, 0xf8,
16284b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xc3, 0x62, 0x14, 0x12, 0x91, 0xbd, 0x35, 0xda, 0x44, 0x30, 0xcd, 0xf4,
16294b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd7, 0xd2, 0xbd, 0x2a, 0x92, 0xdb, 0x83, 0xdc, 0xb9, 0x5d, 0x73, 0x9a,
16304b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3e, 0x58, 0xf7, 0xdd, 0x88, 0x4c, 0x38, 0xb1, 0x81, 0x55, 0xba, 0x76,
16314b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0x1b, 0x07, 0x27, 0x8e, 0xf9, 0xd4, 0x1a, 0x73, 0x65, 0x5b, 0xa0,
16324b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf5, 0x6f, 0x90, 0x58, 0xa3, 0x0b, 0xf5, 0x83, 0x82, 0xd4, 0x84, 0xc7,
16334b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7f, 0x39, 0x0b, 0xf5, 0x80, 0x7c, 0x6b, 0xea, 0x67, 0x56, 0xcb, 0x68,
16344b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x61, 0xb8, 0x97, 0x4a, 0x1c, 0xa3, 0xce, 0x68, 0xf7, 0x57, 0xd8, 0xf8,
16354b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x81, 0xa9, 0x9a, 0x51, 0x0d, 0x19, 0x1c, 0xc1, 0xe8, 0xde, 0x19, 0x08,
16364b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x19, 0x14, 0xb0, 0x98, 0x9b, 0xe8, 0x39, 0xb9, 0xcf, 0x2b, 0x70, 0x95,
16374b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x28, 0xc0, 0xa0, 0xd6, 0xed, 0x2b, 0xde, 0xf9, 0x66, 0x21, 0xe0, 0x88,
16384b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0x95, 0x54, 0x2a, 0x61, 0xed, 0xc0, 0x2b, 0x08, 0x13, 0x3d, 0x75,
16394b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x2c, 0x24, 0xc6, 0x9a, 0xca, 0x14, 0x07, 0x37, 0xf6, 0x90, 0x02, 0x5f,
16404b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x20, 0x02, 0xd0, 0x06, 0xd3, 0xd9, 0xdb, 0x68, 0x0f, 0x7b, 0x27, 0xf0,
16414b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xfc, 0xe2, 0x4a, 0xb7, 0xf7, 0x76, 0x67, 0x85, 0xb1, 0xbd, 0x4f, 0x6f,
16424b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd0, 0x40, 0x03, 0x9e, 0x78, 0x9b, 0xba, 0xa3, 0x41, 0x0b, 0xfd, 0x67,
16434b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3a, 0x78, 0x4e, 0x6c, 0x5b, 0x7c, 0x63, 0x7d, 0x7b, 0xeb, 0x01, 0x07,
16444b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf9, 0x7f, 0xff, 0x57, 0xeb, 0xac, 0x02, 0x7c, 0xec, 0xde, 0x1f, 0x83,
16454b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x0e, 0x5c, 0xd9, 0x24, 0x81, 0x8d, 0xf3, 0x90, 0x02, 0x3f, 0xf0, 0x81,
16464b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0x0d, 0xb3, 0xe3, 0xec, 0xfe, 0x51, 0x4c, 0x7f, 0x3d, 0x75, 0x90,
16474b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x9f, 0xce, 0xca, 0x86, 0x9b, 0x69, 0x85, 0xaa, 0x54, 0x34, 0x73, 0x46,
16484b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xda, 0xba, 0x57, 0x81, 0x88, 0xde, 0x5e, 0xae, 0x2a, 0x92, 0x9b, 0xf8,
16494b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x90, 0x02, 0x12, 0x33, 0xc0, 0x1d, 0x80, 0x36, 0x7c, 0x17, 0x2c, 0x1b,
16504b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x25, 0xeb, 0x9b, 0x24, 0xfd, 0xc2, 0xb4, 0x6c, 0xc1, 0xcd, 0xc9, 0xfa,
16514b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf5, 0xbf, 0x04, 0x5e, 0x05, 0xf5, 0xcc, 0x3a, 0xa6, 0xe4, 0x78, 0x75,
16524b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x18, 0x3e, 0x58, 0xdf, 0xba, 0x3e, 0x5f, 0x48, 0xbf, 0x7f, 0x71, 0x7d,
16534b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xdd, 0x1b, 0x4b, 0xe7, 0x9b, 0xa6, 0x0c, 0xfd, 0x69, 0xd2, 0x05, 0x37,
16544b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe6, 0xbf, 0xee, 0x02, 0x08, 0x16, 0x0b, 0xff, 0x74, 0x81, 0x5b, 0xc0,
16554b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa3, 0x2f, 0x86, 0xdb, 0x6c, 0x21, 0xd6, 0xe7, 0xa8, 0xed, 0xb0, 0x96,
16564b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3d, 0xb0, 0xdf, 0xc5, 0xad, 0xfc, 0x61, 0xe0, 0x63, 0x32, 0x90, 0xed,
16574b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x6d, 0x7e, 0xdb, 0xa0, 0x0c, 0x1d, 0xf7, 0x16, 0xb2, 0x06, 0x4f, 0xe8,
16584b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x92, 0xb2, 0xd0, 0xc2, 0x07, 0x19, 0x8b, 0xeb, 0x5b, 0xec, 0x80, 0x0b,
16594b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x5d, 0xef, 0xcf, 0xd8, 0x01, 0xcd, 0x17, 0x2a, 0x93, 0x60, 0x87, 0x11,
16604b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xcc, 0xe9, 0xd6, 0xa7, 0xe2, 0xcd, 0x7f, 0x12, 0x52, 0x86, 0x8c, 0xd6,
16614b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xf1, 0x20, 0x05, 0xa2, 0x27, 0xb8, 0x02, 0xa1, 0x64, 0x1d, 0xd3, 0x83,
16624b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x93, 0xe0, 0x5e, 0xe5, 0xca, 0x34, 0x3b, 0x69, 0x25, 0x2b, 0x67, 0x3f,
16634b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x25, 0x4f, 0x11, 0xed, 0x16, 0x0d, 0x24, 0x37, 0xf1, 0x28, 0x08, 0x5f,
16644b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xef, 0x38, 0x8b, 0xe3, 0x2d, 0xa4, 0xa8, 0xdd, 0xdf, 0x28, 0x00, 0xee,
16654b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x8a, 0xc0, 0x4c, 0x00, 0x3a, 0xa9, 0xea, 0xdc, 0xfe, 0xf1, 0xf4, 0x5e,
16664b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x72, 0xe7, 0xca, 0x36, 0x57, 0x2e, 0x6c, 0xb0, 0x22, 0x95, 0x5b, 0xed,
16674b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x40, 0x04, 0xa2, 0xa8, 0x01, 0x79, 0x1b, 0x31, 0xcf, 0x01, 0x13, 0xec,
16684b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x48, 0xa3, 0x29, 0x6a, 0x32, 0xb6, 0x8e, 0xa4, 0x0d, 0x7d, 0x21, 0x58,
16694b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xca, 0x94, 0x5b, 0x7b, 0xf9, 0x76, 0xfb, 0xc0, 0x06, 0x25, 0x06, 0x5b,
16704b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x3e, 0x84, 0xe9, 0xc4, 0x18, 0x4d, 0x59, 0xab, 0x42, 0x92, 0x37, 0x80,
16714b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0x77, 0xf0, 0x2f, 0x3d, 0xc5, 0xf5, 0xc3, 0xf8, 0xd8, 0xb2, 0xe4,
16724b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x7b, 0xf2, 0x6a, 0x51, 0x95, 0x06, 0x5f, 0x16, 0xfa, 0xc7, 0xd3, 0xbd,
16734b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xe0, 0x8b, 0xec, 0x27, 0xe6, 0x0e, 0x0e, 0xb9, 0xde, 0x57, 0x39, 0x69,
16744b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x51, 0x2d, 0xa5, 0x14, 0xd8, 0xa5, 0xc0, 0x06, 0x40, 0x0f, 0x1f, 0xf1,
16754b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x40, 0x2c, 0xc2, 0xd3, 0x2b, 0xb8, 0x7a, 0xe7, 0x9d, 0xbe, 0x7a, 0x36,
16764b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x16, 0x43, 0xad, 0xe3, 0xf5, 0x7c, 0xf5, 0x66, 0xc0, 0xca, 0xb9, 0x02,
16774b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xdb, 0x29, 0x4e, 0x46, 0xfe, 0x72, 0xe7, 0x4d, 0x00, 0xb3, 0x2c, 0xf0,
16784b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xef, 0x61, 0xa0, 0x97, 0xff, 0xb6, 0x2a, 0x05, 0xb7, 0xea, 0x88, 0x21,
16794b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd8, 0x2b, 0xdb, 0x9e, 0x08, 0x0a, 0x02, 0x5d, 0xe6, 0xb8, 0xf9, 0x0a,
16804b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xa5, 0x0c, 0x2c, 0x7b, 0x7e, 0x5a, 0x9a, 0x01, 0x5c, 0xe2, 0x60, 0x04,
16814b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x22, 0xf7, 0x24, 0x21, 0xa4, 0x6f, 0xd3, 0xe0, 0x0f, 0x81, 0x0b, 0xfd,
16824b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x33, 0x9b, 0x6b, 0xc6, 0xc4, 0x90, 0x99, 0x92, 0x87, 0x86, 0x5b, 0xb5,
16834b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x59, 0x65, 0x20, 0x13, 0xac, 0xb0, 0x34, 0x3c, 0xf9, 0x5a, 0xf2, 0xcd,
16844b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x4a, 0xad, 0xf4, 0x12, 0x7c, 0x11, 0x7b, 0xcb, 0x8e, 0xb2, 0x9a, 0xeb,
16854b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x21, 0xa9, 0x12, 0x87, 0xe2, 0xee, 0xcb, 0x55, 0x15, 0x46, 0xb7, 0xe6,
16864b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x71, 0x1e, 0xcf, 0xf8, 0x00, 0x71, 0xd7, 0xb6, 0x3d, 0x60, 0xd0, 0x42,
16874b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0x69, 0x69, 0x48, 0x51, 0x61, 0xf6, 0xac, 0x85, 0x1e, 0x5b, 0x7d,
16884b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xcf, 0xe4, 0x89, 0xc0, 0x03, 0x0e, 0xe3, 0x9f, 0xb2, 0x29, 0xab, 0xc0,
16894b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x01, 0xec, 0x27, 0xe6, 0xeb, 0xcf, 0x44, 0xb0, 0xb8, 0x91, 0x1b, 0xd7,
16904b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xfd, 0xfd, 0xde, 0x00, 0xdf, 0xe6, 0x13, 0xd7, 0xf5, 0x09, 0xde, 0x46,
16914b672db6ee89c9846451bbab23cf18e93c4260b2hding    0xd3, 0x2d, 0x2f, 0x7f, 0x6a, 0x64, 0x50, 0xe3, 0x8b, 0x6e, 0x9b, 0x2f,
16924b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x2f, 0xc3, 0x28, 0x00, 0xd0, 0xf5, 0x6e, 0x8a, 0x54, 0x95, 0x58, 0x00,
16934b672db6ee89c9846451bbab23cf18e93c4260b2hding    0x00, 0x01, 0xb7
16944b672db6ee89c9846451bbab23cf18e93c4260b2hding};
16954b672db6ee89c9846451bbab23cf18e93c4260b2hding
16964b672db6ee89c9846451bbab23cf18e93c4260b2hding/* hardcoded here without a bitstream parser helper
16974b672db6ee89c9846451bbab23cf18e93c4260b2hding * please see picture mpeg2-I.jpg for bitstream details
16984b672db6ee89c9846451bbab23cf18e93c4260b2hding */
16994b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic VAPictureParameterBufferMPEG2 pic_param={
17004b672db6ee89c9846451bbab23cf18e93c4260b2hding  horizontal_size:320,
17014b672db6ee89c9846451bbab23cf18e93c4260b2hding  vertical_size:240,
17024b672db6ee89c9846451bbab23cf18e93c4260b2hding  forward_reference_picture:0xffffffff,
17034b672db6ee89c9846451bbab23cf18e93c4260b2hding  backward_reference_picture:0xffffffff,
17044b672db6ee89c9846451bbab23cf18e93c4260b2hding  picture_coding_type:1,
17054b672db6ee89c9846451bbab23cf18e93c4260b2hding  f_code:0xffff,
17064b672db6ee89c9846451bbab23cf18e93c4260b2hding  {
17074b672db6ee89c9846451bbab23cf18e93c4260b2hding      {
17084b672db6ee89c9846451bbab23cf18e93c4260b2hding        intra_dc_precision:1,
17094b672db6ee89c9846451bbab23cf18e93c4260b2hding        picture_structure:3,
17104b672db6ee89c9846451bbab23cf18e93c4260b2hding        top_field_first:0,
17114b672db6ee89c9846451bbab23cf18e93c4260b2hding        frame_pred_frame_dct:1,
17124b672db6ee89c9846451bbab23cf18e93c4260b2hding        concealment_motion_vectors:0,
17134b672db6ee89c9846451bbab23cf18e93c4260b2hding        q_scale_type:1,
17144b672db6ee89c9846451bbab23cf18e93c4260b2hding        intra_vlc_format:1,
17154b672db6ee89c9846451bbab23cf18e93c4260b2hding        alternate_scan:1,
17164b672db6ee89c9846451bbab23cf18e93c4260b2hding        repeat_first_field:0,
17174b672db6ee89c9846451bbab23cf18e93c4260b2hding        progressive_frame:1 ,
17184b672db6ee89c9846451bbab23cf18e93c4260b2hding        is_first_field:1
17194b672db6ee89c9846451bbab23cf18e93c4260b2hding      },
17204b672db6ee89c9846451bbab23cf18e93c4260b2hding  }
17214b672db6ee89c9846451bbab23cf18e93c4260b2hding};
17224b672db6ee89c9846451bbab23cf18e93c4260b2hding
17234b672db6ee89c9846451bbab23cf18e93c4260b2hding/* see MPEG2 spec65 for the defines of matrix */
17244b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic VAIQMatrixBufferMPEG2 iq_matrix = {
17254b672db6ee89c9846451bbab23cf18e93c4260b2hding  load_intra_quantiser_matrix:1,
17264b672db6ee89c9846451bbab23cf18e93c4260b2hding  load_non_intra_quantiser_matrix:1,
17274b672db6ee89c9846451bbab23cf18e93c4260b2hding  load_chroma_intra_quantiser_matrix:0,
17284b672db6ee89c9846451bbab23cf18e93c4260b2hding  load_chroma_non_intra_quantiser_matrix:0,
17294b672db6ee89c9846451bbab23cf18e93c4260b2hding  intra_quantiser_matrix:{
17304b672db6ee89c9846451bbab23cf18e93c4260b2hding         8, 16, 16, 19, 16, 19, 22, 22,
17314b672db6ee89c9846451bbab23cf18e93c4260b2hding        22, 22, 22, 22, 26, 24, 26, 27,
17324b672db6ee89c9846451bbab23cf18e93c4260b2hding        27, 27, 26, 26, 26, 26, 27, 27,
17334b672db6ee89c9846451bbab23cf18e93c4260b2hding        27, 29, 29, 29, 34, 34, 34, 29,
17344b672db6ee89c9846451bbab23cf18e93c4260b2hding        29, 29, 27, 27, 29, 29, 32, 32,
17354b672db6ee89c9846451bbab23cf18e93c4260b2hding        34, 34, 37, 38, 37, 35, 35, 34,
17364b672db6ee89c9846451bbab23cf18e93c4260b2hding        35, 38, 38, 40, 40, 40, 48, 48,
17374b672db6ee89c9846451bbab23cf18e93c4260b2hding        46, 46, 56, 56, 58, 69, 69, 83
17384b672db6ee89c9846451bbab23cf18e93c4260b2hding    },
17394b672db6ee89c9846451bbab23cf18e93c4260b2hding  non_intra_quantiser_matrix:{16},
17404b672db6ee89c9846451bbab23cf18e93c4260b2hding  chroma_intra_quantiser_matrix:{0},
17414b672db6ee89c9846451bbab23cf18e93c4260b2hding  chroma_non_intra_quantiser_matrix:{0}
17424b672db6ee89c9846451bbab23cf18e93c4260b2hding};
17434b672db6ee89c9846451bbab23cf18e93c4260b2hding
17444b672db6ee89c9846451bbab23cf18e93c4260b2hding#if 1
17454b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic VASliceParameterBufferMPEG2 slice_param[15]={
17464b672db6ee89c9846451bbab23cf18e93c4260b2hding{
17474b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_size:1047,
17484b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_offset:0,
17494b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_flag:0,
17504b672db6ee89c9846451bbab23cf18e93c4260b2hding  macroblock_offset:38, /* 4byte + 6bits=38bits */
17514b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_horizontal_position:0,
17524b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_vertical_position:0,
17534b672db6ee89c9846451bbab23cf18e93c4260b2hding  quantiser_scale_code:8,
17544b672db6ee89c9846451bbab23cf18e93c4260b2hding  intra_slice_flag:0
17554b672db6ee89c9846451bbab23cf18e93c4260b2hding},
17564b672db6ee89c9846451bbab23cf18e93c4260b2hding{
17574b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_size:1032,
17584b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_offset:1047,
17594b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_flag:0,
17604b672db6ee89c9846451bbab23cf18e93c4260b2hding  macroblock_offset:38, /* 4byte + 6bits=38bits */
17614b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_horizontal_position:0,
17624b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_vertical_position:1,
17634b672db6ee89c9846451bbab23cf18e93c4260b2hding  quantiser_scale_code:8,
17644b672db6ee89c9846451bbab23cf18e93c4260b2hding  intra_slice_flag:0
17654b672db6ee89c9846451bbab23cf18e93c4260b2hding},
17664b672db6ee89c9846451bbab23cf18e93c4260b2hding{
17674b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_size:1136,
17684b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_offset:2079,
17694b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_flag:0,
17704b672db6ee89c9846451bbab23cf18e93c4260b2hding  macroblock_offset:38, /* 4byte + 6bits=38bits */
17714b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_horizontal_position:0,
17724b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_vertical_position:2,
17734b672db6ee89c9846451bbab23cf18e93c4260b2hding  quantiser_scale_code:8,
17744b672db6ee89c9846451bbab23cf18e93c4260b2hding  intra_slice_flag:0
17754b672db6ee89c9846451bbab23cf18e93c4260b2hding},
17764b672db6ee89c9846451bbab23cf18e93c4260b2hding{
17774b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_size:1333,
17784b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_offset:3215,
17794b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_flag:0,
17804b672db6ee89c9846451bbab23cf18e93c4260b2hding  macroblock_offset:38, /* 4byte + 6bits=38bits */
17814b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_horizontal_position:0,
17824b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_vertical_position:3,
17834b672db6ee89c9846451bbab23cf18e93c4260b2hding  quantiser_scale_code:8,
17844b672db6ee89c9846451bbab23cf18e93c4260b2hding  intra_slice_flag:0
17854b672db6ee89c9846451bbab23cf18e93c4260b2hding},
17864b672db6ee89c9846451bbab23cf18e93c4260b2hding{
17874b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_size:1286,
17884b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_offset:4548,
17894b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_flag:0,
17904b672db6ee89c9846451bbab23cf18e93c4260b2hding  macroblock_offset:38, /* 4byte + 6bits=38bits */
17914b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_horizontal_position:0,
17924b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_vertical_position:4,
17934b672db6ee89c9846451bbab23cf18e93c4260b2hding  quantiser_scale_code:8,
17944b672db6ee89c9846451bbab23cf18e93c4260b2hding  intra_slice_flag:0
17954b672db6ee89c9846451bbab23cf18e93c4260b2hding},
17964b672db6ee89c9846451bbab23cf18e93c4260b2hding{
17974b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_size:1026,
17984b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_offset:5834,
17994b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_flag:0,
18004b672db6ee89c9846451bbab23cf18e93c4260b2hding  macroblock_offset:38, /* 4byte + 6bits=38bits */
18014b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_horizontal_position:0,
18024b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_vertical_position:5,
18034b672db6ee89c9846451bbab23cf18e93c4260b2hding  quantiser_scale_code:8,
18044b672db6ee89c9846451bbab23cf18e93c4260b2hding  intra_slice_flag:0
18054b672db6ee89c9846451bbab23cf18e93c4260b2hding},
18064b672db6ee89c9846451bbab23cf18e93c4260b2hding{
18074b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_size:1257,
18084b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_offset:6860,
18094b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_flag:0,
18104b672db6ee89c9846451bbab23cf18e93c4260b2hding  macroblock_offset:38, /* 4byte + 6bits=38bits */
18114b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_horizontal_position:0,
18124b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_vertical_position:6,
18134b672db6ee89c9846451bbab23cf18e93c4260b2hding  quantiser_scale_code:8,
18144b672db6ee89c9846451bbab23cf18e93c4260b2hding  intra_slice_flag:0
18154b672db6ee89c9846451bbab23cf18e93c4260b2hding},
18164b672db6ee89c9846451bbab23cf18e93c4260b2hding{
18174b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_size:1374,
18184b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_offset:8117,
18194b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_flag:0,
18204b672db6ee89c9846451bbab23cf18e93c4260b2hding  macroblock_offset:38, /* 4byte + 6bits=38bits */
18214b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_horizontal_position:0,
18224b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_vertical_position:7,
18234b672db6ee89c9846451bbab23cf18e93c4260b2hding  quantiser_scale_code:8,
18244b672db6ee89c9846451bbab23cf18e93c4260b2hding  intra_slice_flag:0
18254b672db6ee89c9846451bbab23cf18e93c4260b2hding},
18264b672db6ee89c9846451bbab23cf18e93c4260b2hding{
18274b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_size:1386,
18284b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_offset:9491,
18294b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_flag:0,
18304b672db6ee89c9846451bbab23cf18e93c4260b2hding  macroblock_offset:38, /* 4byte + 6bits=38bits */
18314b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_horizontal_position:0,
18324b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_vertical_position:8,
18334b672db6ee89c9846451bbab23cf18e93c4260b2hding  quantiser_scale_code:8,
18344b672db6ee89c9846451bbab23cf18e93c4260b2hding  intra_slice_flag:0
18354b672db6ee89c9846451bbab23cf18e93c4260b2hding},
18364b672db6ee89c9846451bbab23cf18e93c4260b2hding{
18374b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_size:1290,
18384b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_offset:10877,
18394b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_flag:0,
18404b672db6ee89c9846451bbab23cf18e93c4260b2hding  macroblock_offset:38, /* 4byte + 6bits=38bits */
18414b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_horizontal_position:0,
18424b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_vertical_position:9,
18434b672db6ee89c9846451bbab23cf18e93c4260b2hding  quantiser_scale_code:8,
18444b672db6ee89c9846451bbab23cf18e93c4260b2hding  intra_slice_flag:0
18454b672db6ee89c9846451bbab23cf18e93c4260b2hding},
18464b672db6ee89c9846451bbab23cf18e93c4260b2hding{
18474b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_size:1213,
18484b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_offset:12167,
18494b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_flag:0,
18504b672db6ee89c9846451bbab23cf18e93c4260b2hding  macroblock_offset:38, /* 4byte + 6bits=38bits */
18514b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_horizontal_position:0,
18524b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_vertical_position:10,
18534b672db6ee89c9846451bbab23cf18e93c4260b2hding  quantiser_scale_code:8,
18544b672db6ee89c9846451bbab23cf18e93c4260b2hding  intra_slice_flag:0
18554b672db6ee89c9846451bbab23cf18e93c4260b2hding},
18564b672db6ee89c9846451bbab23cf18e93c4260b2hding{
18574b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_size:1346,
18584b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_offset:13380,
18594b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_flag:0,
18604b672db6ee89c9846451bbab23cf18e93c4260b2hding  macroblock_offset:38, /* 4byte + 6bits=38bits */
18614b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_horizontal_position:0,
18624b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_vertical_position:11,
18634b672db6ee89c9846451bbab23cf18e93c4260b2hding  quantiser_scale_code:8,
18644b672db6ee89c9846451bbab23cf18e93c4260b2hding  intra_slice_flag:0
18654b672db6ee89c9846451bbab23cf18e93c4260b2hding},
18664b672db6ee89c9846451bbab23cf18e93c4260b2hding{
18674b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_size:1439,
18684b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_offset:14726,
18694b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_flag:0,
18704b672db6ee89c9846451bbab23cf18e93c4260b2hding  macroblock_offset:38, /* 4byte + 6bits=38bits */
18714b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_horizontal_position:0,
18724b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_vertical_position:12,
18734b672db6ee89c9846451bbab23cf18e93c4260b2hding  quantiser_scale_code:8,
18744b672db6ee89c9846451bbab23cf18e93c4260b2hding  intra_slice_flag:0
18754b672db6ee89c9846451bbab23cf18e93c4260b2hding},
18764b672db6ee89c9846451bbab23cf18e93c4260b2hding{
18774b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_size:1466,
18784b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_offset:16165,
18794b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_flag:0,
18804b672db6ee89c9846451bbab23cf18e93c4260b2hding  macroblock_offset:38, /* 4byte + 6bits=38bits */
18814b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_horizontal_position:0,
18824b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_vertical_position:13,
18834b672db6ee89c9846451bbab23cf18e93c4260b2hding  quantiser_scale_code:8,
18844b672db6ee89c9846451bbab23cf18e93c4260b2hding  intra_slice_flag:0
18854b672db6ee89c9846451bbab23cf18e93c4260b2hding},
18864b672db6ee89c9846451bbab23cf18e93c4260b2hding{
18874b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_size:1621,
18884b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_offset:17631,
18894b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_data_flag:0,
18904b672db6ee89c9846451bbab23cf18e93c4260b2hding  macroblock_offset:38, /* 4byte + 6bits=38bits */
18914b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_horizontal_position:0,
18924b672db6ee89c9846451bbab23cf18e93c4260b2hding  slice_vertical_position:14,
18934b672db6ee89c9846451bbab23cf18e93c4260b2hding  quantiser_scale_code:8,
18944b672db6ee89c9846451bbab23cf18e93c4260b2hding  intra_slice_flag:0
18954b672db6ee89c9846451bbab23cf18e93c4260b2hding}
18964b672db6ee89c9846451bbab23cf18e93c4260b2hding};
18974b672db6ee89c9846451bbab23cf18e93c4260b2hding#endif
18984b672db6ee89c9846451bbab23cf18e93c4260b2hding
18994b672db6ee89c9846451bbab23cf18e93c4260b2hding#define CLIP_WIDTH  320
19004b672db6ee89c9846451bbab23cf18e93c4260b2hding#define CLIP_HEIGHT 240
19014b672db6ee89c9846451bbab23cf18e93c4260b2hding
19024b672db6ee89c9846451bbab23cf18e93c4260b2hding#define WIN_WIDTH  (CLIP_WIDTH * 4)
19034b672db6ee89c9846451bbab23cf18e93c4260b2hding#define WIN_HEIGHT (CLIP_HEIGHT * 4)
19044b672db6ee89c9846451bbab23cf18e93c4260b2hding
19054b672db6ee89c9846451bbab23cf18e93c4260b2hding#define NAL_REF_IDC_NONE        0
19064b672db6ee89c9846451bbab23cf18e93c4260b2hding#define NAL_REF_IDC_LOW         1
19074b672db6ee89c9846451bbab23cf18e93c4260b2hding#define NAL_REF_IDC_MEDIUM      2
19084b672db6ee89c9846451bbab23cf18e93c4260b2hding#define NAL_REF_IDC_HIGH        3
19094b672db6ee89c9846451bbab23cf18e93c4260b2hding
19104b672db6ee89c9846451bbab23cf18e93c4260b2hding#define NAL_NON_IDR             1
19114b672db6ee89c9846451bbab23cf18e93c4260b2hding#define NAL_IDR                 5
19124b672db6ee89c9846451bbab23cf18e93c4260b2hding#define NAL_SPS                 7
19134b672db6ee89c9846451bbab23cf18e93c4260b2hding#define NAL_PPS                 8
19144b672db6ee89c9846451bbab23cf18e93c4260b2hding
19154b672db6ee89c9846451bbab23cf18e93c4260b2hding#define SLICE_TYPE_P            0
19164b672db6ee89c9846451bbab23cf18e93c4260b2hding#define SLICE_TYPE_B            1
19174b672db6ee89c9846451bbab23cf18e93c4260b2hding#define SLICE_TYPE_I            2
19184b672db6ee89c9846451bbab23cf18e93c4260b2hding
19194b672db6ee89c9846451bbab23cf18e93c4260b2hding#define ENTROPY_MODE_CAVLC      0
19204b672db6ee89c9846451bbab23cf18e93c4260b2hding#define ENTROPY_MODE_CABAC      1
19214b672db6ee89c9846451bbab23cf18e93c4260b2hding
19224b672db6ee89c9846451bbab23cf18e93c4260b2hding#define PROFILE_IDC_BASELINE    66
19234b672db6ee89c9846451bbab23cf18e93c4260b2hding#define PROFILE_IDC_MAIN        77
19244b672db6ee89c9846451bbab23cf18e93c4260b2hding#define PROFILE_IDC_HIGH        100
19254b672db6ee89c9846451bbab23cf18e93c4260b2hding
19264b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic  void *drawable_thread0, *drawable_thread1;
19274b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic  int surface_width = CLIP_WIDTH, surface_height = CLIP_HEIGHT;
19284b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic  int win_width=WIN_WIDTH, win_height=WIN_HEIGHT;
19294b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic  unsigned long long frame_num_total = ~0;
19304b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic  int check_event = 1;
19314b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic  int put_pixmap = 0;
19324b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic  int test_clip = 0;
19334b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic  int display_field = VA_FRAME_PICTURE;
19344b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic  pthread_mutex_t gmutex;
19354b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic  int box_width = 32;
19364b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic  int multi_thread = 0;
19374b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic  int verbose = 0;
19384b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic  int zoom_out = 4;
19394b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic VASurfaceID zoom_surface_id = VA_INVALID_SURFACE;
19404b672db6ee89c9846451bbab23cf18e93c4260b2hding
19414b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic Display *x11_display;
19424b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic VADisplay va_dpy;
19434b672db6ee89c9846451bbab23cf18e93c4260b2hding
19444b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic int picture_width = 1280, picture_width_in_mbs = 80;
19454b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic int picture_height = 960, picture_height_in_mbs = 60;
19464b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic int frame_size = picture_width * picture_height +  ((picture_width * picture_height) >> 1) ;
19474b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic unsigned char *newImageBuffer = 0;
19484b672db6ee89c9846451bbab23cf18e93c4260b2hding
19494b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic int qp_value = 26;
19504b672db6ee89c9846451bbab23cf18e93c4260b2hding
19514b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic int intra_period = 30;
19524b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic int pb_period = 5;
19534b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic int frame_bit_rate = -1;
19544b672db6ee89c9846451bbab23cf18e93c4260b2hding
19554b672db6ee89c9846451bbab23cf18e93c4260b2hding#define BR_CBR          0
19564b672db6ee89c9846451bbab23cf18e93c4260b2hding#define BR_VBR          1
19574b672db6ee89c9846451bbab23cf18e93c4260b2hding#define BR_CQP          2
19584b672db6ee89c9846451bbab23cf18e93c4260b2hding
19594b672db6ee89c9846451bbab23cf18e93c4260b2hding#define MAX_SLICES      32
19604b672db6ee89c9846451bbab23cf18e93c4260b2hding
19614b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic int
19624b672db6ee89c9846451bbab23cf18e93c4260b2hdingbuild_packed_pic_buffer(unsigned char **header_buffer);
19634b672db6ee89c9846451bbab23cf18e93c4260b2hding
19644b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic int
19654b672db6ee89c9846451bbab23cf18e93c4260b2hdingbuild_packed_seq_buffer(unsigned char **header_buffer);
19664b672db6ee89c9846451bbab23cf18e93c4260b2hding
19674b672db6ee89c9846451bbab23cf18e93c4260b2hdingstruct upload_thread_param
19684b672db6ee89c9846451bbab23cf18e93c4260b2hding{
19694b672db6ee89c9846451bbab23cf18e93c4260b2hding    FILE *yuv_fp;
19704b672db6ee89c9846451bbab23cf18e93c4260b2hding    VASurfaceID surface_id;
19714b672db6ee89c9846451bbab23cf18e93c4260b2hding};
19724b672db6ee89c9846451bbab23cf18e93c4260b2hding
19734b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void
19744b672db6ee89c9846451bbab23cf18e93c4260b2hdingupload_yuv_to_surface(FILE *yuv_fp, VASurfaceID surface_id);
19754b672db6ee89c9846451bbab23cf18e93c4260b2hding
19764b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic struct {
19774b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAProfile profile;
19784b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAEncSequenceParameterBufferH264 seq_param;
19794b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAEncPictureParameterBufferH264 pic_param;
19804b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAEncSliceParameterBufferH264 slice_param[MAX_SLICES];
19814b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAContextID context_id;
19824b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAConfigID config_id;
19834b672db6ee89c9846451bbab23cf18e93c4260b2hding    VABufferID seq_param_buf_id;                /* Sequence level parameter */
19844b672db6ee89c9846451bbab23cf18e93c4260b2hding    VABufferID pic_param_buf_id;                /* Picture level parameter */
19854b672db6ee89c9846451bbab23cf18e93c4260b2hding    VABufferID slice_param_buf_id[MAX_SLICES];  /* Slice level parameter, multil slices */
19864b672db6ee89c9846451bbab23cf18e93c4260b2hding    VABufferID codedbuf_buf_id;                 /* Output buffer, compressed data */
19874b672db6ee89c9846451bbab23cf18e93c4260b2hding    VABufferID packed_seq_header_param_buf_id;
19884b672db6ee89c9846451bbab23cf18e93c4260b2hding    VABufferID packed_seq_buf_id;
19894b672db6ee89c9846451bbab23cf18e93c4260b2hding    VABufferID packed_pic_header_param_buf_id;
19904b672db6ee89c9846451bbab23cf18e93c4260b2hding    VABufferID packed_pic_buf_id;
19914b672db6ee89c9846451bbab23cf18e93c4260b2hding    int num_slices;
19924b672db6ee89c9846451bbab23cf18e93c4260b2hding    int codedbuf_i_size;
19934b672db6ee89c9846451bbab23cf18e93c4260b2hding    int codedbuf_pb_size;
19944b672db6ee89c9846451bbab23cf18e93c4260b2hding    int current_input_surface;
19954b672db6ee89c9846451bbab23cf18e93c4260b2hding    struct upload_thread_param upload_thread_param;
19964b672db6ee89c9846451bbab23cf18e93c4260b2hding    pthread_t upload_thread_id;
19974b672db6ee89c9846451bbab23cf18e93c4260b2hding    int upload_thread_value;
19984b672db6ee89c9846451bbab23cf18e93c4260b2hding} avcenc_context;
19994b672db6ee89c9846451bbab23cf18e93c4260b2hding
20004b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void create_encode_pipe()
20014b672db6ee89c9846451bbab23cf18e93c4260b2hding{
20024b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAEntrypoint entrypoints[5];
20034b672db6ee89c9846451bbab23cf18e93c4260b2hding    int num_entrypoints,slice_entrypoint;
20044b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAConfigAttrib attrib[2];
20054b672db6ee89c9846451bbab23cf18e93c4260b2hding    int major_ver, minor_ver;
20064b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAStatus va_status;
20074b672db6ee89c9846451bbab23cf18e93c4260b2hding#if 0
20084b672db6ee89c9846451bbab23cf18e93c4260b2hding    x11_display = XOpenDisplay(":0.0");
20094b672db6ee89c9846451bbab23cf18e93c4260b2hding    assert(x11_display);
20104b672db6ee89c9846451bbab23cf18e93c4260b2hding
20114b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_dpy = vaGetDisplay(x11_display);
20124b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaInitialize(va_dpy, &major_ver, &minor_ver);
20134b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status, "vaInitialize");
20144b672db6ee89c9846451bbab23cf18e93c4260b2hding#endif
20154b672db6ee89c9846451bbab23cf18e93c4260b2hding    vaQueryConfigEntrypoints(va_dpy, avcenc_context.profile, entrypoints,
20164b672db6ee89c9846451bbab23cf18e93c4260b2hding                             &num_entrypoints);
20174b672db6ee89c9846451bbab23cf18e93c4260b2hding
20184b672db6ee89c9846451bbab23cf18e93c4260b2hding    for	(slice_entrypoint = 0; slice_entrypoint < num_entrypoints; slice_entrypoint++) {
20194b672db6ee89c9846451bbab23cf18e93c4260b2hding        if (entrypoints[slice_entrypoint] == VAEntrypointEncSlice)
20204b672db6ee89c9846451bbab23cf18e93c4260b2hding            break;
20214b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
20224b672db6ee89c9846451bbab23cf18e93c4260b2hding
20234b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (slice_entrypoint == num_entrypoints) {
20244b672db6ee89c9846451bbab23cf18e93c4260b2hding        /* not find Slice entry point */
20254b672db6ee89c9846451bbab23cf18e93c4260b2hding        assert(0);
20264b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
20274b672db6ee89c9846451bbab23cf18e93c4260b2hding
20284b672db6ee89c9846451bbab23cf18e93c4260b2hding    /* find out the format for the render target, and rate control mode */
20294b672db6ee89c9846451bbab23cf18e93c4260b2hding    attrib[0].type = VAConfigAttribRTFormat;
20304b672db6ee89c9846451bbab23cf18e93c4260b2hding    attrib[1].type = VAConfigAttribRateControl;
20314b672db6ee89c9846451bbab23cf18e93c4260b2hding    vaGetConfigAttributes(va_dpy, avcenc_context.profile, VAEntrypointEncSlice,
20324b672db6ee89c9846451bbab23cf18e93c4260b2hding                          &attrib[0], 2);
20334b672db6ee89c9846451bbab23cf18e93c4260b2hding
20344b672db6ee89c9846451bbab23cf18e93c4260b2hding    if ((attrib[0].value & VA_RT_FORMAT_YUV420) == 0) {
20354b672db6ee89c9846451bbab23cf18e93c4260b2hding        /* not find desired YUV420 RT format */
20364b672db6ee89c9846451bbab23cf18e93c4260b2hding        assert(0);
20374b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
20384b672db6ee89c9846451bbab23cf18e93c4260b2hding
20394b672db6ee89c9846451bbab23cf18e93c4260b2hding    if ((attrib[1].value & VA_RC_CQP) == 0) {
20404b672db6ee89c9846451bbab23cf18e93c4260b2hding        /* Can't find matched RC mode */
20414b672db6ee89c9846451bbab23cf18e93c4260b2hding        printf("Can't find the desired RC mode, exit\n");
20424b672db6ee89c9846451bbab23cf18e93c4260b2hding        assert(0);
20434b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
20444b672db6ee89c9846451bbab23cf18e93c4260b2hding
20454b672db6ee89c9846451bbab23cf18e93c4260b2hding    attrib[0].value = VA_RT_FORMAT_YUV420; /* set to desired RT format */
20464b672db6ee89c9846451bbab23cf18e93c4260b2hding    attrib[1].value = VA_RC_CQP; /* set to desired RC mode */
20474b672db6ee89c9846451bbab23cf18e93c4260b2hding
20484b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaCreateConfig(va_dpy, avcenc_context.profile, VAEntrypointEncSlice,
20494b672db6ee89c9846451bbab23cf18e93c4260b2hding                               &attrib[0], 2,&avcenc_context.config_id);
20504b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status, "vaCreateConfig");
20514b672db6ee89c9846451bbab23cf18e93c4260b2hding
20524b672db6ee89c9846451bbab23cf18e93c4260b2hding    /* Create a context for this decode pipe */
20534b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaCreateContext(va_dpy, avcenc_context.config_id,
20544b672db6ee89c9846451bbab23cf18e93c4260b2hding                                picture_width, picture_height,
20554b672db6ee89c9846451bbab23cf18e93c4260b2hding                                VA_PROGRESSIVE,
20564b672db6ee89c9846451bbab23cf18e93c4260b2hding                                0, 0,
20574b672db6ee89c9846451bbab23cf18e93c4260b2hding                                &avcenc_context.context_id);
20584b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status, "vaCreateContext");
20594b672db6ee89c9846451bbab23cf18e93c4260b2hding}
20604b672db6ee89c9846451bbab23cf18e93c4260b2hding
20614b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void destory_encode_pipe()
20624b672db6ee89c9846451bbab23cf18e93c4260b2hding{
20634b672db6ee89c9846451bbab23cf18e93c4260b2hding    vaDestroyContext(va_dpy,avcenc_context.context_id);
20644b672db6ee89c9846451bbab23cf18e93c4260b2hding    vaDestroyConfig(va_dpy,avcenc_context.config_id);
20654b672db6ee89c9846451bbab23cf18e93c4260b2hding    vaTerminate(va_dpy);
20664b672db6ee89c9846451bbab23cf18e93c4260b2hding    XCloseDisplay(x11_display);
20674b672db6ee89c9846451bbab23cf18e93c4260b2hding}
20684b672db6ee89c9846451bbab23cf18e93c4260b2hding
20694b672db6ee89c9846451bbab23cf18e93c4260b2hding/***************************************************
20704b672db6ee89c9846451bbab23cf18e93c4260b2hding *
20714b672db6ee89c9846451bbab23cf18e93c4260b2hding *  The encode pipe resource define
20724b672db6ee89c9846451bbab23cf18e93c4260b2hding *
20734b672db6ee89c9846451bbab23cf18e93c4260b2hding ***************************************************/
20744b672db6ee89c9846451bbab23cf18e93c4260b2hding#define SID_INPUT_PICTURE_0                     0
20754b672db6ee89c9846451bbab23cf18e93c4260b2hding#define SID_INPUT_PICTURE_1                     1
20764b672db6ee89c9846451bbab23cf18e93c4260b2hding#define SID_REFERENCE_PICTURE_L0                2
20774b672db6ee89c9846451bbab23cf18e93c4260b2hding#define SID_REFERENCE_PICTURE_L1                3
20784b672db6ee89c9846451bbab23cf18e93c4260b2hding#define SID_RECON_PICTURE                       4
20794b672db6ee89c9846451bbab23cf18e93c4260b2hding#define SID_NUMBER                              SID_RECON_PICTURE + 1
20804b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic  VASurfaceID surface_ids[SID_NUMBER];
20814b672db6ee89c9846451bbab23cf18e93c4260b2hding
20824b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic int frame_number;
20834b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic int enc_frame_number;
20844b672db6ee89c9846451bbab23cf18e93c4260b2hding
20854b672db6ee89c9846451bbab23cf18e93c4260b2hding/***************************************************/
20864b672db6ee89c9846451bbab23cf18e93c4260b2hding
20874b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void *
20884b672db6ee89c9846451bbab23cf18e93c4260b2hdingupload_thread_function(void *data)
20894b672db6ee89c9846451bbab23cf18e93c4260b2hding{
20904b672db6ee89c9846451bbab23cf18e93c4260b2hding    struct upload_thread_param *param = (upload_thread_param*)data;
20914b672db6ee89c9846451bbab23cf18e93c4260b2hding
20924b672db6ee89c9846451bbab23cf18e93c4260b2hding    upload_yuv_to_surface(param->yuv_fp, param->surface_id);
20934b672db6ee89c9846451bbab23cf18e93c4260b2hding
20944b672db6ee89c9846451bbab23cf18e93c4260b2hding    return NULL;
20954b672db6ee89c9846451bbab23cf18e93c4260b2hding}
20964b672db6ee89c9846451bbab23cf18e93c4260b2hding
20974b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void alloc_encode_resource(FILE *yuv_fp)
20984b672db6ee89c9846451bbab23cf18e93c4260b2hding{
20994b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAStatus va_status;
21004b672db6ee89c9846451bbab23cf18e93c4260b2hding
21014b672db6ee89c9846451bbab23cf18e93c4260b2hding    // Create surface
21024b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaCreateSurfaces(va_dpy,
21034b672db6ee89c9846451bbab23cf18e93c4260b2hding                                 picture_width, picture_height,
21044b672db6ee89c9846451bbab23cf18e93c4260b2hding                                 VA_RT_FORMAT_YUV420, SID_NUMBER,
21054b672db6ee89c9846451bbab23cf18e93c4260b2hding                                 &surface_ids[0]);
21064b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status, "vaCreateSurfaces");
21074b672db6ee89c9846451bbab23cf18e93c4260b2hding
21084b672db6ee89c9846451bbab23cf18e93c4260b2hding    newImageBuffer = (unsigned char *)malloc(frame_size);
21094b672db6ee89c9846451bbab23cf18e93c4260b2hding
21104b672db6ee89c9846451bbab23cf18e93c4260b2hding    /* firstly upload YUV data to SID_INPUT_PICTURE_1 */
21114b672db6ee89c9846451bbab23cf18e93c4260b2hding    avcenc_context.upload_thread_param.yuv_fp = yuv_fp;
21124b672db6ee89c9846451bbab23cf18e93c4260b2hding    avcenc_context.upload_thread_param.surface_id = surface_ids[SID_INPUT_PICTURE_1];
21134b672db6ee89c9846451bbab23cf18e93c4260b2hding#if 0
21144b672db6ee89c9846451bbab23cf18e93c4260b2hding    avcenc_context.upload_thread_value = pthread_create(&avcenc_context.upload_thread_id,
21154b672db6ee89c9846451bbab23cf18e93c4260b2hding                                                        NULL,
21164b672db6ee89c9846451bbab23cf18e93c4260b2hding                                                        upload_thread_function,
21174b672db6ee89c9846451bbab23cf18e93c4260b2hding                                                        (void*)&avcenc_context.upload_thread_param);
21184b672db6ee89c9846451bbab23cf18e93c4260b2hding#endif
21194b672db6ee89c9846451bbab23cf18e93c4260b2hdingupload_yuv_to_surface(yuv_fp, surface_ids[SID_INPUT_PICTURE_1]);
21204b672db6ee89c9846451bbab23cf18e93c4260b2hding}
21214b672db6ee89c9846451bbab23cf18e93c4260b2hding
21224b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void release_encode_resource()
21234b672db6ee89c9846451bbab23cf18e93c4260b2hding{
21244b672db6ee89c9846451bbab23cf18e93c4260b2hding    //pthread_join(avcenc_context.upload_thread_id, NULL);
21254b672db6ee89c9846451bbab23cf18e93c4260b2hding    free(newImageBuffer);
21264b672db6ee89c9846451bbab23cf18e93c4260b2hding
21274b672db6ee89c9846451bbab23cf18e93c4260b2hding    // Release all the surfaces resource
21284b672db6ee89c9846451bbab23cf18e93c4260b2hding    vaDestroySurfaces(va_dpy, &surface_ids[0], SID_NUMBER);
21294b672db6ee89c9846451bbab23cf18e93c4260b2hding}
21304b672db6ee89c9846451bbab23cf18e93c4260b2hding
21314b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void avcenc_update_picture_parameter(int slice_type, int frame_num, int display_num, int is_idr)
21324b672db6ee89c9846451bbab23cf18e93c4260b2hding{
21334b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAEncPictureParameterBufferH264 *pic_param;
21344b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAStatus va_status;
21354b672db6ee89c9846451bbab23cf18e93c4260b2hding
21364b672db6ee89c9846451bbab23cf18e93c4260b2hding    // Picture level
21374b672db6ee89c9846451bbab23cf18e93c4260b2hding    pic_param = &avcenc_context.pic_param;
21384b672db6ee89c9846451bbab23cf18e93c4260b2hding    pic_param->CurrPic.picture_id = surface_ids[SID_RECON_PICTURE];
21394b672db6ee89c9846451bbab23cf18e93c4260b2hding    pic_param->CurrPic.TopFieldOrderCnt = display_num * 2;
21404b672db6ee89c9846451bbab23cf18e93c4260b2hding    pic_param->ReferenceFrames[0].picture_id = surface_ids[SID_REFERENCE_PICTURE_L0];
21414b672db6ee89c9846451bbab23cf18e93c4260b2hding    pic_param->ReferenceFrames[1].picture_id = surface_ids[SID_REFERENCE_PICTURE_L1];
21424b672db6ee89c9846451bbab23cf18e93c4260b2hding    pic_param->ReferenceFrames[2].picture_id = VA_INVALID_ID;
21434b672db6ee89c9846451bbab23cf18e93c4260b2hding    assert(avcenc_context.codedbuf_buf_id != VA_INVALID_ID);
21444b672db6ee89c9846451bbab23cf18e93c4260b2hding    pic_param->coded_buf = avcenc_context.codedbuf_buf_id;
21454b672db6ee89c9846451bbab23cf18e93c4260b2hding    pic_param->frame_num = frame_num;
21464b672db6ee89c9846451bbab23cf18e93c4260b2hding    pic_param->pic_fields.bits.idr_pic_flag = !!is_idr;
21474b672db6ee89c9846451bbab23cf18e93c4260b2hding    pic_param->pic_fields.bits.reference_pic_flag = (slice_type != SLICE_TYPE_B);
21484b672db6ee89c9846451bbab23cf18e93c4260b2hding
21494b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaCreateBuffer(va_dpy,
21504b672db6ee89c9846451bbab23cf18e93c4260b2hding                               avcenc_context.context_id,
21514b672db6ee89c9846451bbab23cf18e93c4260b2hding                               VAEncPictureParameterBufferType,
21524b672db6ee89c9846451bbab23cf18e93c4260b2hding                               sizeof(*pic_param), 1, pic_param,
21534b672db6ee89c9846451bbab23cf18e93c4260b2hding                               &avcenc_context.pic_param_buf_id);
21544b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status,"vaCreateBuffer");
21554b672db6ee89c9846451bbab23cf18e93c4260b2hding}
21564b672db6ee89c9846451bbab23cf18e93c4260b2hding
21574b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void upload_yuv_to_surface(FILE *yuv_fp, VASurfaceID surface_id)
21584b672db6ee89c9846451bbab23cf18e93c4260b2hding{
21594b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAImage surface_image;
21604b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAStatus va_status;
21614b672db6ee89c9846451bbab23cf18e93c4260b2hding    void *surface_p = NULL;
21624b672db6ee89c9846451bbab23cf18e93c4260b2hding    unsigned char *y_src, *u_src, *v_src;
21634b672db6ee89c9846451bbab23cf18e93c4260b2hding    unsigned char *y_dst, *u_dst, *v_dst;
21644b672db6ee89c9846451bbab23cf18e93c4260b2hding    int y_size = picture_width * picture_height;
21654b672db6ee89c9846451bbab23cf18e93c4260b2hding    int u_size = (picture_width >> 1) * (picture_height >> 1);
21664b672db6ee89c9846451bbab23cf18e93c4260b2hding    int row, col;
21674b672db6ee89c9846451bbab23cf18e93c4260b2hding    size_t n_items;
21684b672db6ee89c9846451bbab23cf18e93c4260b2hding	static int flag=1;
21694b672db6ee89c9846451bbab23cf18e93c4260b2hding    do {
21704b672db6ee89c9846451bbab23cf18e93c4260b2hding		if(flag == 0) break;
21714b672db6ee89c9846451bbab23cf18e93c4260b2hding        n_items = fread(newImageBuffer, frame_size, 1, yuv_fp);
21724b672db6ee89c9846451bbab23cf18e93c4260b2hding		flag = 0;
21734b672db6ee89c9846451bbab23cf18e93c4260b2hding    } while (n_items != 1);
21744b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaDeriveImage(va_dpy, surface_id, &surface_image);
21754b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status,"vaDeriveImage");
21764b672db6ee89c9846451bbab23cf18e93c4260b2hding
21774b672db6ee89c9846451bbab23cf18e93c4260b2hding    vaMapBuffer(va_dpy, surface_image.buf, &surface_p);
21784b672db6ee89c9846451bbab23cf18e93c4260b2hding    assert(VA_STATUS_SUCCESS == va_status);
21794b672db6ee89c9846451bbab23cf18e93c4260b2hding
21804b672db6ee89c9846451bbab23cf18e93c4260b2hding    y_src = newImageBuffer;
21814b672db6ee89c9846451bbab23cf18e93c4260b2hding    u_src = newImageBuffer + y_size; /* UV offset for NV12 */
21824b672db6ee89c9846451bbab23cf18e93c4260b2hding    v_src = newImageBuffer + y_size + u_size;
21834b672db6ee89c9846451bbab23cf18e93c4260b2hding
21844b672db6ee89c9846451bbab23cf18e93c4260b2hding    y_dst = (unsigned char *)(surface_p + surface_image.offsets[0]);
21854b672db6ee89c9846451bbab23cf18e93c4260b2hding    u_dst = (unsigned char *)(surface_p + surface_image.offsets[1]); /* UV offset for NV12 */
21864b672db6ee89c9846451bbab23cf18e93c4260b2hding    v_dst = (unsigned char *)(surface_p + surface_image.offsets[2]);
21874b672db6ee89c9846451bbab23cf18e93c4260b2hding
21884b672db6ee89c9846451bbab23cf18e93c4260b2hding    /* Y plane */
21894b672db6ee89c9846451bbab23cf18e93c4260b2hding    for (row = 0; row < surface_image.height; row++) {
21904b672db6ee89c9846451bbab23cf18e93c4260b2hding        memcpy(y_dst, y_src, surface_image.width);
21914b672db6ee89c9846451bbab23cf18e93c4260b2hding        y_dst += surface_image.pitches[0];
21924b672db6ee89c9846451bbab23cf18e93c4260b2hding        y_src += picture_width;
21934b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
21944b672db6ee89c9846451bbab23cf18e93c4260b2hding
21954b672db6ee89c9846451bbab23cf18e93c4260b2hding    /* UV plane */
21964b672db6ee89c9846451bbab23cf18e93c4260b2hding    memcpy(u_dst, u_src, picture_width*picture_height/2);
21974b672db6ee89c9846451bbab23cf18e93c4260b2hding
21984b672db6ee89c9846451bbab23cf18e93c4260b2hding#if 0
21994b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (surface_image.format.fourcc == VA_FOURCC_NV12) { /* UV plane */
22004b672db6ee89c9846451bbab23cf18e93c4260b2hding        for (row = 0; row < surface_image.height / 2; row++) {
22014b672db6ee89c9846451bbab23cf18e93c4260b2hding            for (col = 0; col < surface_image.width / 2; col++) {
22024b672db6ee89c9846451bbab23cf18e93c4260b2hding                u_dst[col * 2] = u_src[col];
22034b672db6ee89c9846451bbab23cf18e93c4260b2hding                u_dst[col * 2 + 1] = v_src[col];
22044b672db6ee89c9846451bbab23cf18e93c4260b2hding            }
22054b672db6ee89c9846451bbab23cf18e93c4260b2hding
22064b672db6ee89c9846451bbab23cf18e93c4260b2hding            u_dst += surface_image.pitches[1];
22074b672db6ee89c9846451bbab23cf18e93c4260b2hding            u_src += (picture_width / 2);
22084b672db6ee89c9846451bbab23cf18e93c4260b2hding            v_src += (picture_width / 2);
22094b672db6ee89c9846451bbab23cf18e93c4260b2hding        }
22104b672db6ee89c9846451bbab23cf18e93c4260b2hding    } else {
22114b672db6ee89c9846451bbab23cf18e93c4260b2hding        /* FIXME: fix this later */
22124b672db6ee89c9846451bbab23cf18e93c4260b2hding        assert(0);
22134b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
22144b672db6ee89c9846451bbab23cf18e93c4260b2hding#endif
22154b672db6ee89c9846451bbab23cf18e93c4260b2hding    vaUnmapBuffer(va_dpy, surface_image.buf);
22164b672db6ee89c9846451bbab23cf18e93c4260b2hding    vaDestroyImage(va_dpy, surface_image.image_id);
22174b672db6ee89c9846451bbab23cf18e93c4260b2hding}
22184b672db6ee89c9846451bbab23cf18e93c4260b2hding
22194b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void avcenc_update_slice_parameter(int slice_type)
22204b672db6ee89c9846451bbab23cf18e93c4260b2hding{
22214b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAEncSliceParameterBufferH264 *slice_param;
22224b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAStatus va_status;
22234b672db6ee89c9846451bbab23cf18e93c4260b2hding    int i;
22244b672db6ee89c9846451bbab23cf18e93c4260b2hding
22254b672db6ee89c9846451bbab23cf18e93c4260b2hding    // Slice level
22264b672db6ee89c9846451bbab23cf18e93c4260b2hding    i = 0;
22274b672db6ee89c9846451bbab23cf18e93c4260b2hding    slice_param = &avcenc_context.slice_param[i];
22284b672db6ee89c9846451bbab23cf18e93c4260b2hding    slice_param->macroblock_address = 0;
22294b672db6ee89c9846451bbab23cf18e93c4260b2hding    slice_param->num_macroblocks = picture_height_in_mbs * picture_width_in_mbs;
22304b672db6ee89c9846451bbab23cf18e93c4260b2hding    slice_param->pic_parameter_set_id = 0;
22314b672db6ee89c9846451bbab23cf18e93c4260b2hding    slice_param->slice_type = slice_type;
22324b672db6ee89c9846451bbab23cf18e93c4260b2hding    slice_param->direct_spatial_mv_pred_flag = 0;
22334b672db6ee89c9846451bbab23cf18e93c4260b2hding    slice_param->num_ref_idx_l0_active_minus1 = 0;      /* FIXME: ??? */
22344b672db6ee89c9846451bbab23cf18e93c4260b2hding    slice_param->num_ref_idx_l1_active_minus1 = 0;
22354b672db6ee89c9846451bbab23cf18e93c4260b2hding    slice_param->cabac_init_idc = 0;
22364b672db6ee89c9846451bbab23cf18e93c4260b2hding    slice_param->slice_qp_delta = 0;
22374b672db6ee89c9846451bbab23cf18e93c4260b2hding    slice_param->disable_deblocking_filter_idc = 0;
22384b672db6ee89c9846451bbab23cf18e93c4260b2hding    slice_param->slice_alpha_c0_offset_div2 = 2;
22394b672db6ee89c9846451bbab23cf18e93c4260b2hding    slice_param->slice_beta_offset_div2 = 2;
22404b672db6ee89c9846451bbab23cf18e93c4260b2hding    slice_param->idr_pic_id = 0;
22414b672db6ee89c9846451bbab23cf18e93c4260b2hding
22424b672db6ee89c9846451bbab23cf18e93c4260b2hding    /* FIXME: fill other fields */
22434b672db6ee89c9846451bbab23cf18e93c4260b2hding
22444b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaCreateBuffer(va_dpy,
22454b672db6ee89c9846451bbab23cf18e93c4260b2hding                               avcenc_context.context_id,
22464b672db6ee89c9846451bbab23cf18e93c4260b2hding                               VAEncSliceParameterBufferType,
22474b672db6ee89c9846451bbab23cf18e93c4260b2hding                               sizeof(*slice_param), 1, slice_param,
22484b672db6ee89c9846451bbab23cf18e93c4260b2hding                               &avcenc_context.slice_param_buf_id[i]);
22494b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status,"vaCreateBuffer");;
22504b672db6ee89c9846451bbab23cf18e93c4260b2hding
22514b672db6ee89c9846451bbab23cf18e93c4260b2hding    i++;
22524b672db6ee89c9846451bbab23cf18e93c4260b2hding
22534b672db6ee89c9846451bbab23cf18e93c4260b2hding    avcenc_context.num_slices = i;
22544b672db6ee89c9846451bbab23cf18e93c4260b2hding}
22554b672db6ee89c9846451bbab23cf18e93c4260b2hding
22564b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic int begin_picture(FILE *yuv_fp, int frame_num, int display_num, int slice_type, int is_idr)
22574b672db6ee89c9846451bbab23cf18e93c4260b2hding{
22584b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAStatus va_status;
22594b672db6ee89c9846451bbab23cf18e93c4260b2hding#if 0
22604b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (avcenc_context.upload_thread_value != 0) {
22614b672db6ee89c9846451bbab23cf18e93c4260b2hding        fprintf(stderr, "FATAL error!!!\n");
22624b672db6ee89c9846451bbab23cf18e93c4260b2hding        exit(1);
22634b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
22644b672db6ee89c9846451bbab23cf18e93c4260b2hding#endif
22654b672db6ee89c9846451bbab23cf18e93c4260b2hding    //pthread_join(avcenc_context.upload_thread_id, NULL);
22664b672db6ee89c9846451bbab23cf18e93c4260b2hding
22674b672db6ee89c9846451bbab23cf18e93c4260b2hding    avcenc_context.upload_thread_value = -1;
22684b672db6ee89c9846451bbab23cf18e93c4260b2hding
22694b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (avcenc_context.current_input_surface == SID_INPUT_PICTURE_0)
22704b672db6ee89c9846451bbab23cf18e93c4260b2hding        avcenc_context.current_input_surface = SID_INPUT_PICTURE_1;
22714b672db6ee89c9846451bbab23cf18e93c4260b2hding    else
22724b672db6ee89c9846451bbab23cf18e93c4260b2hding        avcenc_context.current_input_surface = SID_INPUT_PICTURE_0;
22734b672db6ee89c9846451bbab23cf18e93c4260b2hding
22744b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (frame_num == 0) {
22754b672db6ee89c9846451bbab23cf18e93c4260b2hding        VAEncPackedHeaderParameterBuffer packed_header_param_buffer;
22764b672db6ee89c9846451bbab23cf18e93c4260b2hding        unsigned int length_in_bits, offset_in_bytes;
22774b672db6ee89c9846451bbab23cf18e93c4260b2hding        unsigned char *packed_seq_buffer = NULL, *packed_pic_buffer = NULL;
22784b672db6ee89c9846451bbab23cf18e93c4260b2hding
22794b672db6ee89c9846451bbab23cf18e93c4260b2hding        assert(slice_type == SLICE_TYPE_I);
22804b672db6ee89c9846451bbab23cf18e93c4260b2hding        length_in_bits = build_packed_seq_buffer(&packed_seq_buffer);
22814b672db6ee89c9846451bbab23cf18e93c4260b2hding        offset_in_bytes = 0;
22824b672db6ee89c9846451bbab23cf18e93c4260b2hding        packed_header_param_buffer.type = VAEncPackedHeaderSequence;
22834b672db6ee89c9846451bbab23cf18e93c4260b2hding        packed_header_param_buffer.has_emulation_bytes = 0;
22844b672db6ee89c9846451bbab23cf18e93c4260b2hding        packed_header_param_buffer.bit_length = length_in_bits;
22854b672db6ee89c9846451bbab23cf18e93c4260b2hding        va_status = vaCreateBuffer(va_dpy,
22864b672db6ee89c9846451bbab23cf18e93c4260b2hding                                   avcenc_context.context_id,
22874b672db6ee89c9846451bbab23cf18e93c4260b2hding                                   VAEncPackedHeaderParameterBufferType,
22884b672db6ee89c9846451bbab23cf18e93c4260b2hding                                   sizeof(packed_header_param_buffer), 1, &packed_header_param_buffer,
22894b672db6ee89c9846451bbab23cf18e93c4260b2hding                                   &avcenc_context.packed_seq_header_param_buf_id);
22904b672db6ee89c9846451bbab23cf18e93c4260b2hding        CHECK_VASTATUS(va_status,"vaCreateBuffer");
22914b672db6ee89c9846451bbab23cf18e93c4260b2hding
22924b672db6ee89c9846451bbab23cf18e93c4260b2hding        va_status = vaCreateBuffer(va_dpy,
22934b672db6ee89c9846451bbab23cf18e93c4260b2hding                                   avcenc_context.context_id,
22944b672db6ee89c9846451bbab23cf18e93c4260b2hding                                   VAEncPackedHeaderDataBufferType,
22954b672db6ee89c9846451bbab23cf18e93c4260b2hding                                   (length_in_bits + 7) / 8, 1, packed_seq_buffer,
22964b672db6ee89c9846451bbab23cf18e93c4260b2hding                                   &avcenc_context.packed_seq_buf_id);
22974b672db6ee89c9846451bbab23cf18e93c4260b2hding        CHECK_VASTATUS(va_status,"vaCreateBuffer");
22984b672db6ee89c9846451bbab23cf18e93c4260b2hding
22994b672db6ee89c9846451bbab23cf18e93c4260b2hding        length_in_bits = build_packed_pic_buffer(&packed_pic_buffer);
23004b672db6ee89c9846451bbab23cf18e93c4260b2hding        offset_in_bytes = 0;
23014b672db6ee89c9846451bbab23cf18e93c4260b2hding        packed_header_param_buffer.type = VAEncPackedHeaderPicture;
23024b672db6ee89c9846451bbab23cf18e93c4260b2hding        packed_header_param_buffer.has_emulation_bytes = 0;
23034b672db6ee89c9846451bbab23cf18e93c4260b2hding        packed_header_param_buffer.bit_length = length_in_bits;
23044b672db6ee89c9846451bbab23cf18e93c4260b2hding
23054b672db6ee89c9846451bbab23cf18e93c4260b2hding        va_status = vaCreateBuffer(va_dpy,
23064b672db6ee89c9846451bbab23cf18e93c4260b2hding                                   avcenc_context.context_id,
23074b672db6ee89c9846451bbab23cf18e93c4260b2hding                                   VAEncPackedHeaderParameterBufferType,
23084b672db6ee89c9846451bbab23cf18e93c4260b2hding                                   sizeof(packed_header_param_buffer), 1, &packed_header_param_buffer,
23094b672db6ee89c9846451bbab23cf18e93c4260b2hding                                   &avcenc_context.packed_pic_header_param_buf_id);
23104b672db6ee89c9846451bbab23cf18e93c4260b2hding        CHECK_VASTATUS(va_status,"vaCreateBuffer");
23114b672db6ee89c9846451bbab23cf18e93c4260b2hding
23124b672db6ee89c9846451bbab23cf18e93c4260b2hding        va_status = vaCreateBuffer(va_dpy,
23134b672db6ee89c9846451bbab23cf18e93c4260b2hding                                   avcenc_context.context_id,
23144b672db6ee89c9846451bbab23cf18e93c4260b2hding                                   VAEncPackedHeaderDataBufferType,
23154b672db6ee89c9846451bbab23cf18e93c4260b2hding                                   (length_in_bits + 7) / 8, 1, packed_pic_buffer,
23164b672db6ee89c9846451bbab23cf18e93c4260b2hding                                   &avcenc_context.packed_pic_buf_id);
23174b672db6ee89c9846451bbab23cf18e93c4260b2hding        CHECK_VASTATUS(va_status,"vaCreateBuffer");
23184b672db6ee89c9846451bbab23cf18e93c4260b2hding
23194b672db6ee89c9846451bbab23cf18e93c4260b2hding        free(packed_seq_buffer);
23204b672db6ee89c9846451bbab23cf18e93c4260b2hding        free(packed_pic_buffer);
23214b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
23224b672db6ee89c9846451bbab23cf18e93c4260b2hding
23234b672db6ee89c9846451bbab23cf18e93c4260b2hding    /* sequence parameter set */
23244b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAEncSequenceParameterBufferH264 *seq_param = &avcenc_context.seq_param;
23254b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaCreateBuffer(va_dpy,
23264b672db6ee89c9846451bbab23cf18e93c4260b2hding                               avcenc_context.context_id,
23274b672db6ee89c9846451bbab23cf18e93c4260b2hding                               VAEncSequenceParameterBufferType,
23284b672db6ee89c9846451bbab23cf18e93c4260b2hding                               sizeof(*seq_param), 1, seq_param,
23294b672db6ee89c9846451bbab23cf18e93c4260b2hding                               &avcenc_context.seq_param_buf_id);
23304b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status,"vaCreateBuffer");;
23314b672db6ee89c9846451bbab23cf18e93c4260b2hding
23324b672db6ee89c9846451bbab23cf18e93c4260b2hding    /* slice parameter */
23334b672db6ee89c9846451bbab23cf18e93c4260b2hding    avcenc_update_slice_parameter(slice_type);
23344b672db6ee89c9846451bbab23cf18e93c4260b2hding
23354b672db6ee89c9846451bbab23cf18e93c4260b2hding    return 0;
23364b672db6ee89c9846451bbab23cf18e93c4260b2hding}
23374b672db6ee89c9846451bbab23cf18e93c4260b2hding
23384b672db6ee89c9846451bbab23cf18e93c4260b2hdingint avcenc_render_picture()
23394b672db6ee89c9846451bbab23cf18e93c4260b2hding{
23404b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAStatus va_status;
23414b672db6ee89c9846451bbab23cf18e93c4260b2hding    VABufferID va_buffers[8];
23424b672db6ee89c9846451bbab23cf18e93c4260b2hding    unsigned int num_va_buffers = 0;
23434b672db6ee89c9846451bbab23cf18e93c4260b2hding
23444b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_buffers[num_va_buffers++] = avcenc_context.seq_param_buf_id;
23454b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_buffers[num_va_buffers++] = avcenc_context.pic_param_buf_id;
23464b672db6ee89c9846451bbab23cf18e93c4260b2hding
23474b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (avcenc_context.packed_seq_header_param_buf_id != VA_INVALID_ID)
23484b672db6ee89c9846451bbab23cf18e93c4260b2hding        va_buffers[num_va_buffers++] = avcenc_context.packed_seq_header_param_buf_id;
23494b672db6ee89c9846451bbab23cf18e93c4260b2hding
23504b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (avcenc_context.packed_seq_buf_id != VA_INVALID_ID)
23514b672db6ee89c9846451bbab23cf18e93c4260b2hding        va_buffers[num_va_buffers++] = avcenc_context.packed_seq_buf_id;
23524b672db6ee89c9846451bbab23cf18e93c4260b2hding
23534b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (avcenc_context.packed_pic_header_param_buf_id != VA_INVALID_ID)
23544b672db6ee89c9846451bbab23cf18e93c4260b2hding        va_buffers[num_va_buffers++] = avcenc_context.packed_pic_header_param_buf_id;
23554b672db6ee89c9846451bbab23cf18e93c4260b2hding
23564b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (avcenc_context.packed_pic_buf_id != VA_INVALID_ID)
23574b672db6ee89c9846451bbab23cf18e93c4260b2hding        va_buffers[num_va_buffers++] = avcenc_context.packed_pic_buf_id;
23584b672db6ee89c9846451bbab23cf18e93c4260b2hding
23594b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaBeginPicture(va_dpy,
23604b672db6ee89c9846451bbab23cf18e93c4260b2hding                               avcenc_context.context_id,
23614b672db6ee89c9846451bbab23cf18e93c4260b2hding                               surface_ids[avcenc_context.current_input_surface]);
23624b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status,"vaBeginPicture");
23634b672db6ee89c9846451bbab23cf18e93c4260b2hding
23644b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaRenderPicture(va_dpy,
23654b672db6ee89c9846451bbab23cf18e93c4260b2hding                                avcenc_context.context_id,
23664b672db6ee89c9846451bbab23cf18e93c4260b2hding                                va_buffers,
23674b672db6ee89c9846451bbab23cf18e93c4260b2hding                                num_va_buffers);
23684b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status,"vaRenderPicture");
23694b672db6ee89c9846451bbab23cf18e93c4260b2hding
23704b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaRenderPicture(va_dpy,
23714b672db6ee89c9846451bbab23cf18e93c4260b2hding                                avcenc_context.context_id,
23724b672db6ee89c9846451bbab23cf18e93c4260b2hding                                &avcenc_context.slice_param_buf_id[0],
23734b672db6ee89c9846451bbab23cf18e93c4260b2hding                                avcenc_context.num_slices);
23744b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status,"vaRenderPicture");
23754b672db6ee89c9846451bbab23cf18e93c4260b2hding
23764b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaEndPicture(va_dpy, avcenc_context.context_id);
23774b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status,"vaEndPicture");
23784b672db6ee89c9846451bbab23cf18e93c4260b2hding
23794b672db6ee89c9846451bbab23cf18e93c4260b2hding    return 0;
23804b672db6ee89c9846451bbab23cf18e93c4260b2hding}
23814b672db6ee89c9846451bbab23cf18e93c4260b2hding
23824b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic int avcenc_destroy_buffers(VABufferID *va_buffers, unsigned int num_va_buffers)
23834b672db6ee89c9846451bbab23cf18e93c4260b2hding{
23844b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAStatus va_status;
23854b672db6ee89c9846451bbab23cf18e93c4260b2hding    unsigned int i;
23864b672db6ee89c9846451bbab23cf18e93c4260b2hding
23874b672db6ee89c9846451bbab23cf18e93c4260b2hding    for (i = 0; i < num_va_buffers; i++) {
23884b672db6ee89c9846451bbab23cf18e93c4260b2hding        if (va_buffers[i] != VA_INVALID_ID) {
23894b672db6ee89c9846451bbab23cf18e93c4260b2hding            va_status = vaDestroyBuffer(va_dpy, va_buffers[i]);
23904b672db6ee89c9846451bbab23cf18e93c4260b2hding            CHECK_VASTATUS(va_status,"vaDestroyBuffer");
23914b672db6ee89c9846451bbab23cf18e93c4260b2hding            va_buffers[i] = VA_INVALID_ID;
23924b672db6ee89c9846451bbab23cf18e93c4260b2hding        }
23934b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
23944b672db6ee89c9846451bbab23cf18e93c4260b2hding
23954b672db6ee89c9846451bbab23cf18e93c4260b2hding    return 0;
23964b672db6ee89c9846451bbab23cf18e93c4260b2hding}
23974b672db6ee89c9846451bbab23cf18e93c4260b2hding
23984b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void end_picture(int slice_type, int next_is_bpic)
23994b672db6ee89c9846451bbab23cf18e93c4260b2hding{
24004b672db6ee89c9846451bbab23cf18e93c4260b2hding    VABufferID tempID;
24014b672db6ee89c9846451bbab23cf18e93c4260b2hding
24024b672db6ee89c9846451bbab23cf18e93c4260b2hding    /* Prepare for next picture */
24034b672db6ee89c9846451bbab23cf18e93c4260b2hding    tempID = surface_ids[SID_RECON_PICTURE];
24044b672db6ee89c9846451bbab23cf18e93c4260b2hding
24054b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (slice_type != SLICE_TYPE_B) {
24064b672db6ee89c9846451bbab23cf18e93c4260b2hding        if (next_is_bpic) {
24074b672db6ee89c9846451bbab23cf18e93c4260b2hding            surface_ids[SID_RECON_PICTURE] = surface_ids[SID_REFERENCE_PICTURE_L1];
24084b672db6ee89c9846451bbab23cf18e93c4260b2hding            surface_ids[SID_REFERENCE_PICTURE_L1] = tempID;
24094b672db6ee89c9846451bbab23cf18e93c4260b2hding        } else {
24104b672db6ee89c9846451bbab23cf18e93c4260b2hding            surface_ids[SID_RECON_PICTURE] = surface_ids[SID_REFERENCE_PICTURE_L0];
24114b672db6ee89c9846451bbab23cf18e93c4260b2hding            surface_ids[SID_REFERENCE_PICTURE_L0] = tempID;
24124b672db6ee89c9846451bbab23cf18e93c4260b2hding        }
24134b672db6ee89c9846451bbab23cf18e93c4260b2hding    } else {
24144b672db6ee89c9846451bbab23cf18e93c4260b2hding        if (!next_is_bpic) {
24154b672db6ee89c9846451bbab23cf18e93c4260b2hding            surface_ids[SID_RECON_PICTURE] = surface_ids[SID_REFERENCE_PICTURE_L0];
24164b672db6ee89c9846451bbab23cf18e93c4260b2hding            surface_ids[SID_REFERENCE_PICTURE_L0] = surface_ids[SID_REFERENCE_PICTURE_L1];
24174b672db6ee89c9846451bbab23cf18e93c4260b2hding            surface_ids[SID_REFERENCE_PICTURE_L1] = tempID;
24184b672db6ee89c9846451bbab23cf18e93c4260b2hding        }
24194b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
24204b672db6ee89c9846451bbab23cf18e93c4260b2hding
24214b672db6ee89c9846451bbab23cf18e93c4260b2hding    avcenc_destroy_buffers(&avcenc_context.seq_param_buf_id, 1);
24224b672db6ee89c9846451bbab23cf18e93c4260b2hding    avcenc_destroy_buffers(&avcenc_context.pic_param_buf_id, 1);
24234b672db6ee89c9846451bbab23cf18e93c4260b2hding    avcenc_destroy_buffers(&avcenc_context.packed_seq_header_param_buf_id, 1);
24244b672db6ee89c9846451bbab23cf18e93c4260b2hding    avcenc_destroy_buffers(&avcenc_context.packed_seq_buf_id, 1);
24254b672db6ee89c9846451bbab23cf18e93c4260b2hding    avcenc_destroy_buffers(&avcenc_context.packed_pic_header_param_buf_id, 1);
24264b672db6ee89c9846451bbab23cf18e93c4260b2hding    avcenc_destroy_buffers(&avcenc_context.packed_pic_buf_id, 1);
24274b672db6ee89c9846451bbab23cf18e93c4260b2hding    avcenc_destroy_buffers(&avcenc_context.slice_param_buf_id[0], avcenc_context.num_slices);
24284b672db6ee89c9846451bbab23cf18e93c4260b2hding    avcenc_destroy_buffers(&avcenc_context.codedbuf_buf_id, 1);
24294b672db6ee89c9846451bbab23cf18e93c4260b2hding    memset(avcenc_context.slice_param, 0, sizeof(avcenc_context.slice_param));
24304b672db6ee89c9846451bbab23cf18e93c4260b2hding    avcenc_context.num_slices = 0;
24314b672db6ee89c9846451bbab23cf18e93c4260b2hding}
24324b672db6ee89c9846451bbab23cf18e93c4260b2hding
24334b672db6ee89c9846451bbab23cf18e93c4260b2hding#define BITSTREAM_ALLOCATE_STEPPING     4096
24344b672db6ee89c9846451bbab23cf18e93c4260b2hding
24354b672db6ee89c9846451bbab23cf18e93c4260b2hdingstruct __bitstream {
24364b672db6ee89c9846451bbab23cf18e93c4260b2hding    unsigned int *buffer;
24374b672db6ee89c9846451bbab23cf18e93c4260b2hding    int bit_offset;
24384b672db6ee89c9846451bbab23cf18e93c4260b2hding    int max_size_in_dword;
24394b672db6ee89c9846451bbab23cf18e93c4260b2hding};
24404b672db6ee89c9846451bbab23cf18e93c4260b2hding
24414b672db6ee89c9846451bbab23cf18e93c4260b2hdingtypedef struct __bitstream bitstream;
24424b672db6ee89c9846451bbab23cf18e93c4260b2hding
24434b672db6ee89c9846451bbab23cf18e93c4260b2hding#if 0
24444b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic int
24454b672db6ee89c9846451bbab23cf18e93c4260b2hdingget_coded_bitsteam_length(unsigned char *buffer, int buffer_length)
24464b672db6ee89c9846451bbab23cf18e93c4260b2hding{
24474b672db6ee89c9846451bbab23cf18e93c4260b2hding    int i;
24484b672db6ee89c9846451bbab23cf18e93c4260b2hding
24494b672db6ee89c9846451bbab23cf18e93c4260b2hding    for (i = 0; i < buffer_length - 3; i++) {
24504b672db6ee89c9846451bbab23cf18e93c4260b2hding        if (!buffer[i] &&
24514b672db6ee89c9846451bbab23cf18e93c4260b2hding            !buffer[i + 1] &&
24524b672db6ee89c9846451bbab23cf18e93c4260b2hding            !buffer[i + 2] &&
24534b672db6ee89c9846451bbab23cf18e93c4260b2hding            !buffer[i + 3])
24544b672db6ee89c9846451bbab23cf18e93c4260b2hding            break;
24554b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
24564b672db6ee89c9846451bbab23cf18e93c4260b2hding
24574b672db6ee89c9846451bbab23cf18e93c4260b2hding    return i;
24584b672db6ee89c9846451bbab23cf18e93c4260b2hding}
24594b672db6ee89c9846451bbab23cf18e93c4260b2hding#endif
24604b672db6ee89c9846451bbab23cf18e93c4260b2hding
24614b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic unsigned int
24624b672db6ee89c9846451bbab23cf18e93c4260b2hdingswap32(unsigned int val)
24634b672db6ee89c9846451bbab23cf18e93c4260b2hding{
24644b672db6ee89c9846451bbab23cf18e93c4260b2hding    unsigned char *pval = (unsigned char *)&val;
24654b672db6ee89c9846451bbab23cf18e93c4260b2hding
24664b672db6ee89c9846451bbab23cf18e93c4260b2hding    return ((pval[0] << 24)     |
24674b672db6ee89c9846451bbab23cf18e93c4260b2hding            (pval[1] << 16)     |
24684b672db6ee89c9846451bbab23cf18e93c4260b2hding            (pval[2] << 8)      |
24694b672db6ee89c9846451bbab23cf18e93c4260b2hding            (pval[3] << 0));
24704b672db6ee89c9846451bbab23cf18e93c4260b2hding}
24714b672db6ee89c9846451bbab23cf18e93c4260b2hding
24724b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void
24734b672db6ee89c9846451bbab23cf18e93c4260b2hdingbitstream_start(bitstream *bs)
24744b672db6ee89c9846451bbab23cf18e93c4260b2hding{
24754b672db6ee89c9846451bbab23cf18e93c4260b2hding    bs->max_size_in_dword = BITSTREAM_ALLOCATE_STEPPING;
24764b672db6ee89c9846451bbab23cf18e93c4260b2hding    bs->buffer = (unsigned int *)calloc(bs->max_size_in_dword * sizeof(int), 1);
24774b672db6ee89c9846451bbab23cf18e93c4260b2hding    bs->bit_offset = 0;
24784b672db6ee89c9846451bbab23cf18e93c4260b2hding}
24794b672db6ee89c9846451bbab23cf18e93c4260b2hding
24804b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void
24814b672db6ee89c9846451bbab23cf18e93c4260b2hdingbitstream_end(bitstream *bs)
24824b672db6ee89c9846451bbab23cf18e93c4260b2hding{
24834b672db6ee89c9846451bbab23cf18e93c4260b2hding    int pos = (bs->bit_offset >> 5);
24844b672db6ee89c9846451bbab23cf18e93c4260b2hding    int bit_offset = (bs->bit_offset & 0x1f);
24854b672db6ee89c9846451bbab23cf18e93c4260b2hding    int bit_left = 32 - bit_offset;
24864b672db6ee89c9846451bbab23cf18e93c4260b2hding
24874b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (bit_offset) {
24884b672db6ee89c9846451bbab23cf18e93c4260b2hding        bs->buffer[pos] = swap32((bs->buffer[pos] << bit_left));
24894b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
24904b672db6ee89c9846451bbab23cf18e93c4260b2hding}
24914b672db6ee89c9846451bbab23cf18e93c4260b2hding
24924b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void
24934b672db6ee89c9846451bbab23cf18e93c4260b2hdingbitstream_put_ui(bitstream *bs, unsigned int val, int size_in_bits)
24944b672db6ee89c9846451bbab23cf18e93c4260b2hding{
24954b672db6ee89c9846451bbab23cf18e93c4260b2hding    int pos = (bs->bit_offset >> 5);
24964b672db6ee89c9846451bbab23cf18e93c4260b2hding    int bit_offset = (bs->bit_offset & 0x1f);
24974b672db6ee89c9846451bbab23cf18e93c4260b2hding    int bit_left = 32 - bit_offset;
24984b672db6ee89c9846451bbab23cf18e93c4260b2hding
24994b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (!size_in_bits)
25004b672db6ee89c9846451bbab23cf18e93c4260b2hding        return;
25014b672db6ee89c9846451bbab23cf18e93c4260b2hding
25024b672db6ee89c9846451bbab23cf18e93c4260b2hding    bs->bit_offset += size_in_bits;
25034b672db6ee89c9846451bbab23cf18e93c4260b2hding
25044b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (bit_left > size_in_bits) {
25054b672db6ee89c9846451bbab23cf18e93c4260b2hding        bs->buffer[pos] = (bs->buffer[pos] << size_in_bits | val);
25064b672db6ee89c9846451bbab23cf18e93c4260b2hding    } else {
25074b672db6ee89c9846451bbab23cf18e93c4260b2hding        size_in_bits -= bit_left;
25084b672db6ee89c9846451bbab23cf18e93c4260b2hding        bs->buffer[pos] = (bs->buffer[pos] << bit_left) | (val >> size_in_bits);
25094b672db6ee89c9846451bbab23cf18e93c4260b2hding        bs->buffer[pos] = swap32(bs->buffer[pos]);
25104b672db6ee89c9846451bbab23cf18e93c4260b2hding
25114b672db6ee89c9846451bbab23cf18e93c4260b2hding        if (pos + 1 == bs->max_size_in_dword) {
25124b672db6ee89c9846451bbab23cf18e93c4260b2hding            bs->max_size_in_dword += BITSTREAM_ALLOCATE_STEPPING;
25134b672db6ee89c9846451bbab23cf18e93c4260b2hding            bs->buffer = (unsigned int *)realloc(bs->buffer, bs->max_size_in_dword * sizeof(unsigned int));
25144b672db6ee89c9846451bbab23cf18e93c4260b2hding        }
25154b672db6ee89c9846451bbab23cf18e93c4260b2hding
25164b672db6ee89c9846451bbab23cf18e93c4260b2hding        bs->buffer[pos + 1] = val;
25174b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
25184b672db6ee89c9846451bbab23cf18e93c4260b2hding}
25194b672db6ee89c9846451bbab23cf18e93c4260b2hding
25204b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void
25214b672db6ee89c9846451bbab23cf18e93c4260b2hdingbitstream_put_ue(bitstream *bs, unsigned int val)
25224b672db6ee89c9846451bbab23cf18e93c4260b2hding{
25234b672db6ee89c9846451bbab23cf18e93c4260b2hding    int size_in_bits = 0;
25244b672db6ee89c9846451bbab23cf18e93c4260b2hding    int tmp_val = ++val;
25254b672db6ee89c9846451bbab23cf18e93c4260b2hding
25264b672db6ee89c9846451bbab23cf18e93c4260b2hding    while (tmp_val) {
25274b672db6ee89c9846451bbab23cf18e93c4260b2hding        tmp_val >>= 1;
25284b672db6ee89c9846451bbab23cf18e93c4260b2hding        size_in_bits++;
25294b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
25304b672db6ee89c9846451bbab23cf18e93c4260b2hding
25314b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ui(bs, 0, size_in_bits - 1); // leading zero
25324b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ui(bs, val, size_in_bits);
25334b672db6ee89c9846451bbab23cf18e93c4260b2hding}
25344b672db6ee89c9846451bbab23cf18e93c4260b2hding
25354b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void
25364b672db6ee89c9846451bbab23cf18e93c4260b2hdingbitstream_put_se(bitstream *bs, int val)
25374b672db6ee89c9846451bbab23cf18e93c4260b2hding{
25384b672db6ee89c9846451bbab23cf18e93c4260b2hding    unsigned int new_val;
25394b672db6ee89c9846451bbab23cf18e93c4260b2hding
25404b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (val <= 0)
25414b672db6ee89c9846451bbab23cf18e93c4260b2hding        new_val = -2 * val;
25424b672db6ee89c9846451bbab23cf18e93c4260b2hding    else
25434b672db6ee89c9846451bbab23cf18e93c4260b2hding        new_val = 2 * val - 1;
25444b672db6ee89c9846451bbab23cf18e93c4260b2hding
25454b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ue(bs, new_val);
25464b672db6ee89c9846451bbab23cf18e93c4260b2hding}
25474b672db6ee89c9846451bbab23cf18e93c4260b2hding
25484b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void
25494b672db6ee89c9846451bbab23cf18e93c4260b2hdingbitstream_byte_aligning(bitstream *bs, int bit)
25504b672db6ee89c9846451bbab23cf18e93c4260b2hding{
25514b672db6ee89c9846451bbab23cf18e93c4260b2hding    int bit_offset = (bs->bit_offset & 0x7);
25524b672db6ee89c9846451bbab23cf18e93c4260b2hding    int bit_left = 8 - bit_offset;
25534b672db6ee89c9846451bbab23cf18e93c4260b2hding    int new_val;
25544b672db6ee89c9846451bbab23cf18e93c4260b2hding
25554b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (!bit_offset)
25564b672db6ee89c9846451bbab23cf18e93c4260b2hding        return;
25574b672db6ee89c9846451bbab23cf18e93c4260b2hding
25584b672db6ee89c9846451bbab23cf18e93c4260b2hding    assert(bit == 0 || bit == 1);
25594b672db6ee89c9846451bbab23cf18e93c4260b2hding
25604b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (bit)
25614b672db6ee89c9846451bbab23cf18e93c4260b2hding        new_val = (1 << bit_left) - 1;
25624b672db6ee89c9846451bbab23cf18e93c4260b2hding    else
25634b672db6ee89c9846451bbab23cf18e93c4260b2hding        new_val = 0;
25644b672db6ee89c9846451bbab23cf18e93c4260b2hding
25654b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ui(bs, new_val, bit_left);
25664b672db6ee89c9846451bbab23cf18e93c4260b2hding}
25674b672db6ee89c9846451bbab23cf18e93c4260b2hding
25684b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void
25694b672db6ee89c9846451bbab23cf18e93c4260b2hdingrbsp_trailing_bits(bitstream *bs)
25704b672db6ee89c9846451bbab23cf18e93c4260b2hding{
25714b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ui(bs, 1, 1);
25724b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_byte_aligning(bs, 0);
25734b672db6ee89c9846451bbab23cf18e93c4260b2hding}
25744b672db6ee89c9846451bbab23cf18e93c4260b2hding
25754b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void nal_start_code_prefix(bitstream *bs)
25764b672db6ee89c9846451bbab23cf18e93c4260b2hding{
25774b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ui(bs, 0x00000001, 32);
25784b672db6ee89c9846451bbab23cf18e93c4260b2hding}
25794b672db6ee89c9846451bbab23cf18e93c4260b2hding
25804b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void nal_header(bitstream *bs, int nal_ref_idc, int nal_unit_type)
25814b672db6ee89c9846451bbab23cf18e93c4260b2hding{
25824b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ui(bs, 0, 1);                /* forbidden_zero_bit: 0 */
25834b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ui(bs, nal_ref_idc, 2);
25844b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ui(bs, nal_unit_type, 5);
25854b672db6ee89c9846451bbab23cf18e93c4260b2hding}
25864b672db6ee89c9846451bbab23cf18e93c4260b2hding
25874b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void sps_rbsp(bitstream *bs)
25884b672db6ee89c9846451bbab23cf18e93c4260b2hding{
25894b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAEncSequenceParameterBufferH264 *seq_param = &avcenc_context.seq_param;
25904b672db6ee89c9846451bbab23cf18e93c4260b2hding    int profile_idc = PROFILE_IDC_BASELINE;
25914b672db6ee89c9846451bbab23cf18e93c4260b2hding
25924b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (avcenc_context.profile == VAProfileH264High)
25934b672db6ee89c9846451bbab23cf18e93c4260b2hding        profile_idc = PROFILE_IDC_HIGH;
25944b672db6ee89c9846451bbab23cf18e93c4260b2hding    else if (avcenc_context.profile == VAProfileH264Main)
25954b672db6ee89c9846451bbab23cf18e93c4260b2hding        profile_idc = PROFILE_IDC_MAIN;
25964b672db6ee89c9846451bbab23cf18e93c4260b2hding
25974b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ui(bs, profile_idc, 8);               /* profile_idc */
25984b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ui(bs, 0, 1);                         /* constraint_set0_flag */
25994b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ui(bs, 1, 1);                         /* constraint_set1_flag */
26004b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ui(bs, 0, 1);                         /* constraint_set2_flag */
26014b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ui(bs, 0, 1);                         /* constraint_set3_flag */
26024b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ui(bs, 0, 4);                         /* reserved_zero_4bits */
26034b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ui(bs, seq_param->level_idc, 8);      /* level_idc */
26044b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ue(bs, seq_param->seq_parameter_set_id);      /* seq_parameter_set_id */
26054b672db6ee89c9846451bbab23cf18e93c4260b2hding
26064b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ue(bs, seq_param->seq_fields.bits.log2_max_frame_num_minus4); /* log2_max_frame_num_minus4 */
26074b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ue(bs, seq_param->seq_fields.bits.pic_order_cnt_type);        /* pic_order_cnt_type */
26084b672db6ee89c9846451bbab23cf18e93c4260b2hding
26094b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (seq_param->seq_fields.bits.pic_order_cnt_type == 0)
26104b672db6ee89c9846451bbab23cf18e93c4260b2hding        bitstream_put_ue(bs, seq_param->seq_fields.bits.log2_max_pic_order_cnt_lsb_minus4);     /* log2_max_pic_order_cnt_lsb_minus4 */
26114b672db6ee89c9846451bbab23cf18e93c4260b2hding    else {
26124b672db6ee89c9846451bbab23cf18e93c4260b2hding        assert(0);
26134b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
26144b672db6ee89c9846451bbab23cf18e93c4260b2hding
26154b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ue(bs, seq_param->max_num_ref_frames);        /* num_ref_frames */
26164b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ui(bs, 0, 1);                                 /* gaps_in_frame_num_value_allowed_flag */
26174b672db6ee89c9846451bbab23cf18e93c4260b2hding
26184b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ue(bs, seq_param->picture_width_in_mbs - 1);  /* pic_width_in_mbs_minus1 */
26194b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ue(bs, seq_param->picture_height_in_mbs - 1); /* pic_height_in_map_units_minus1 */
26204b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ui(bs, seq_param->seq_fields.bits.frame_mbs_only_flag, 1);    /* frame_mbs_only_flag */
26214b672db6ee89c9846451bbab23cf18e93c4260b2hding
26224b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (!seq_param->seq_fields.bits.frame_mbs_only_flag) {
26234b672db6ee89c9846451bbab23cf18e93c4260b2hding        assert(0);
26244b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
26254b672db6ee89c9846451bbab23cf18e93c4260b2hding
26264b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ui(bs, seq_param->seq_fields.bits.direct_8x8_inference_flag, 1);      /* direct_8x8_inference_flag */
26274b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ui(bs, seq_param->frame_cropping_flag, 1);            /* frame_cropping_flag */
26284b672db6ee89c9846451bbab23cf18e93c4260b2hding
26294b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (seq_param->frame_cropping_flag) {
26304b672db6ee89c9846451bbab23cf18e93c4260b2hding        bitstream_put_ue(bs, seq_param->frame_crop_left_offset);        /* frame_crop_left_offset */
26314b672db6ee89c9846451bbab23cf18e93c4260b2hding        bitstream_put_ue(bs, seq_param->frame_crop_right_offset);       /* frame_crop_right_offset */
26324b672db6ee89c9846451bbab23cf18e93c4260b2hding        bitstream_put_ue(bs, seq_param->frame_crop_top_offset);         /* frame_crop_top_offset */
26334b672db6ee89c9846451bbab23cf18e93c4260b2hding        bitstream_put_ue(bs, seq_param->frame_crop_bottom_offset);      /* frame_crop_bottom_offset */
26344b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
26354b672db6ee89c9846451bbab23cf18e93c4260b2hding
26364b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ui(bs, 0, 1); /* vui_parameters_present_flag */
26374b672db6ee89c9846451bbab23cf18e93c4260b2hding    rbsp_trailing_bits(bs);     /* rbsp_trailing_bits */
26384b672db6ee89c9846451bbab23cf18e93c4260b2hding}
26394b672db6ee89c9846451bbab23cf18e93c4260b2hding
26404b672db6ee89c9846451bbab23cf18e93c4260b2hding#if 0
26414b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void build_nal_sps(FILE *avc_fp)
26424b672db6ee89c9846451bbab23cf18e93c4260b2hding{
26434b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream bs;
26444b672db6ee89c9846451bbab23cf18e93c4260b2hding
26454b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_start(&bs);
26464b672db6ee89c9846451bbab23cf18e93c4260b2hding    nal_start_code_prefix(&bs);
26474b672db6ee89c9846451bbab23cf18e93c4260b2hding    nal_header(&bs, NAL_REF_IDC_HIGH, NAL_SPS);
26484b672db6ee89c9846451bbab23cf18e93c4260b2hding    sps_rbsp(&bs);
26494b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_end(&bs, avc_fp);
26504b672db6ee89c9846451bbab23cf18e93c4260b2hding}
26514b672db6ee89c9846451bbab23cf18e93c4260b2hding#endif
26524b672db6ee89c9846451bbab23cf18e93c4260b2hding
26534b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void pps_rbsp(bitstream *bs)
26544b672db6ee89c9846451bbab23cf18e93c4260b2hding{
26554b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAEncPictureParameterBufferH264 *pic_param = &avcenc_context.pic_param;
26564b672db6ee89c9846451bbab23cf18e93c4260b2hding
26574b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ue(bs, pic_param->pic_parameter_set_id);      /* pic_parameter_set_id */
26584b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ue(bs, pic_param->seq_parameter_set_id);      /* seq_parameter_set_id */
26594b672db6ee89c9846451bbab23cf18e93c4260b2hding
26604b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ui(bs, pic_param->pic_fields.bits.entropy_coding_mode_flag, 1);  /* entropy_coding_mode_flag */
26614b672db6ee89c9846451bbab23cf18e93c4260b2hding
26624b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ui(bs, 0, 1);                         /* pic_order_present_flag: 0 */
26634b672db6ee89c9846451bbab23cf18e93c4260b2hding
26644b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ue(bs, 0);                            /* num_slice_groups_minus1 */
26654b672db6ee89c9846451bbab23cf18e93c4260b2hding
26664b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ue(bs, pic_param->num_ref_idx_l0_active_minus1);      /* num_ref_idx_l0_active_minus1 */
26674b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ue(bs, pic_param->num_ref_idx_l1_active_minus1);      /* num_ref_idx_l1_active_minus1 1 */
26684b672db6ee89c9846451bbab23cf18e93c4260b2hding
26694b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ui(bs, pic_param->pic_fields.bits.weighted_pred_flag, 1);     /* weighted_pred_flag: 0 */
26704b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ui(bs, pic_param->pic_fields.bits.weighted_bipred_idc, 2);	/* weighted_bipred_idc: 0 */
26714b672db6ee89c9846451bbab23cf18e93c4260b2hding
26724b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_se(bs, pic_param->pic_init_qp - 26);  /* pic_init_qp_minus26 */
26734b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_se(bs, 0);                            /* pic_init_qs_minus26 */
26744b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_se(bs, 0);                            /* chroma_qp_index_offset */
26754b672db6ee89c9846451bbab23cf18e93c4260b2hding
26764b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ui(bs, pic_param->pic_fields.bits.deblocking_filter_control_present_flag, 1); /* deblocking_filter_control_present_flag */
26774b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ui(bs, 0, 1);                         /* constrained_intra_pred_flag */
26784b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ui(bs, 0, 1);                         /* redundant_pic_cnt_present_flag */
26794b672db6ee89c9846451bbab23cf18e93c4260b2hding
26804b672db6ee89c9846451bbab23cf18e93c4260b2hding    rbsp_trailing_bits(bs);
26814b672db6ee89c9846451bbab23cf18e93c4260b2hding}
26824b672db6ee89c9846451bbab23cf18e93c4260b2hding
26834b672db6ee89c9846451bbab23cf18e93c4260b2hding#if 0
26844b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void build_nal_pps(FILE *avc_fp)
26854b672db6ee89c9846451bbab23cf18e93c4260b2hding{
26864b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream bs;
26874b672db6ee89c9846451bbab23cf18e93c4260b2hding
26884b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_start(&bs);
26894b672db6ee89c9846451bbab23cf18e93c4260b2hding    nal_start_code_prefix(&bs);
26904b672db6ee89c9846451bbab23cf18e93c4260b2hding    nal_header(&bs, NAL_REF_IDC_HIGH, NAL_PPS);
26914b672db6ee89c9846451bbab23cf18e93c4260b2hding    pps_rbsp(&bs);
26924b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_end(&bs, avc_fp);
26934b672db6ee89c9846451bbab23cf18e93c4260b2hding}
26944b672db6ee89c9846451bbab23cf18e93c4260b2hding
26954b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void
26964b672db6ee89c9846451bbab23cf18e93c4260b2hdingbuild_header(FILE *avc_fp)
26974b672db6ee89c9846451bbab23cf18e93c4260b2hding{
26984b672db6ee89c9846451bbab23cf18e93c4260b2hding    build_nal_sps(avc_fp);
26994b672db6ee89c9846451bbab23cf18e93c4260b2hding    build_nal_pps(avc_fp);
27004b672db6ee89c9846451bbab23cf18e93c4260b2hding}
27014b672db6ee89c9846451bbab23cf18e93c4260b2hding#endif
27024b672db6ee89c9846451bbab23cf18e93c4260b2hding
27034b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic int
27044b672db6ee89c9846451bbab23cf18e93c4260b2hdingbuild_packed_pic_buffer(unsigned char **header_buffer)
27054b672db6ee89c9846451bbab23cf18e93c4260b2hding{
27064b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream bs;
27074b672db6ee89c9846451bbab23cf18e93c4260b2hding
27084b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_start(&bs);
27094b672db6ee89c9846451bbab23cf18e93c4260b2hding    nal_start_code_prefix(&bs);
27104b672db6ee89c9846451bbab23cf18e93c4260b2hding    nal_header(&bs, NAL_REF_IDC_HIGH, NAL_PPS);
27114b672db6ee89c9846451bbab23cf18e93c4260b2hding    pps_rbsp(&bs);
27124b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_end(&bs);
27134b672db6ee89c9846451bbab23cf18e93c4260b2hding
27144b672db6ee89c9846451bbab23cf18e93c4260b2hding    *header_buffer = (unsigned char *)bs.buffer;
27154b672db6ee89c9846451bbab23cf18e93c4260b2hding    return bs.bit_offset;
27164b672db6ee89c9846451bbab23cf18e93c4260b2hding}
27174b672db6ee89c9846451bbab23cf18e93c4260b2hding
27184b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic int
27194b672db6ee89c9846451bbab23cf18e93c4260b2hdingbuild_packed_seq_buffer(unsigned char **header_buffer)
27204b672db6ee89c9846451bbab23cf18e93c4260b2hding{
27214b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream bs;
27224b672db6ee89c9846451bbab23cf18e93c4260b2hding
27234b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_start(&bs);
27244b672db6ee89c9846451bbab23cf18e93c4260b2hding    nal_start_code_prefix(&bs);
27254b672db6ee89c9846451bbab23cf18e93c4260b2hding    nal_header(&bs, NAL_REF_IDC_HIGH, NAL_SPS);
27264b672db6ee89c9846451bbab23cf18e93c4260b2hding    sps_rbsp(&bs);
27274b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_end(&bs);
27284b672db6ee89c9846451bbab23cf18e93c4260b2hding
27294b672db6ee89c9846451bbab23cf18e93c4260b2hding    *header_buffer = (unsigned char *)bs.buffer;
27304b672db6ee89c9846451bbab23cf18e93c4260b2hding    return bs.bit_offset;
27314b672db6ee89c9846451bbab23cf18e93c4260b2hding}
27324b672db6ee89c9846451bbab23cf18e93c4260b2hding
27334b672db6ee89c9846451bbab23cf18e93c4260b2hding
27344b672db6ee89c9846451bbab23cf18e93c4260b2hding#if 0
27354b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void
27364b672db6ee89c9846451bbab23cf18e93c4260b2hdingslice_header(bitstream *bs, int frame_num, int display_frame, int slice_type, int nal_ref_idc, int is_idr)
27374b672db6ee89c9846451bbab23cf18e93c4260b2hding{
27384b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAEncSequenceParameterBufferH264 *seq_param = &avcenc_context.seq_param;
27394b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAEncPictureParameterBufferH264 *pic_param = &avcenc_context.pic_param;
27404b672db6ee89c9846451bbab23cf18e93c4260b2hding    int is_cabac = (pic_param->pic_fields.bits.entropy_coding_mode_flag == ENTROPY_MODE_CABAC);
27414b672db6ee89c9846451bbab23cf18e93c4260b2hding
27424b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ue(bs, 0);                   /* first_mb_in_slice: 0 */
27434b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ue(bs, slice_type);          /* slice_type */
27444b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ue(bs, 0);                   /* pic_parameter_set_id: 0 */
27454b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_ui(bs, frame_num & 0x0F, seq_param->seq_fields.bits.log2_max_frame_num_minus4 + 4);    /* frame_num */
27464b672db6ee89c9846451bbab23cf18e93c4260b2hding
27474b672db6ee89c9846451bbab23cf18e93c4260b2hding    /* frame_mbs_only_flag == 1 */
27484b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (!seq_param->seq_fields.bits.frame_mbs_only_flag) {
27494b672db6ee89c9846451bbab23cf18e93c4260b2hding        /* FIXME: */
27504b672db6ee89c9846451bbab23cf18e93c4260b2hding        assert(0);
27514b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
27524b672db6ee89c9846451bbab23cf18e93c4260b2hding
27534b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (is_idr)
27544b672db6ee89c9846451bbab23cf18e93c4260b2hding        bitstream_put_ue(bs, 0);		/* idr_pic_id: 0 */
27554b672db6ee89c9846451bbab23cf18e93c4260b2hding
27564b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (seq_param->seq_fields.bits.pic_order_cnt_type == 0) {
27574b672db6ee89c9846451bbab23cf18e93c4260b2hding        bitstream_put_ui(bs, (display_frame*2) & 0x3F, seq_param->seq_fields.bits.log2_max_pic_order_cnt_lsb_minus4 + 4);
27584b672db6ee89c9846451bbab23cf18e93c4260b2hding        /* only support frame */
27594b672db6ee89c9846451bbab23cf18e93c4260b2hding    } else {
27604b672db6ee89c9846451bbab23cf18e93c4260b2hding        /* FIXME: */
27614b672db6ee89c9846451bbab23cf18e93c4260b2hding        assert(0);
27624b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
27634b672db6ee89c9846451bbab23cf18e93c4260b2hding
27644b672db6ee89c9846451bbab23cf18e93c4260b2hding    /* redundant_pic_cnt_present_flag == 0 */
27654b672db6ee89c9846451bbab23cf18e93c4260b2hding
27664b672db6ee89c9846451bbab23cf18e93c4260b2hding    /* slice type */
27674b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (slice_type == SLICE_TYPE_P) {
27684b672db6ee89c9846451bbab23cf18e93c4260b2hding        bitstream_put_ui(bs, 0, 1);            /* num_ref_idx_active_override_flag: 0 */
27694b672db6ee89c9846451bbab23cf18e93c4260b2hding        /* ref_pic_list_reordering */
27704b672db6ee89c9846451bbab23cf18e93c4260b2hding        bitstream_put_ui(bs, 0, 1);            /* ref_pic_list_reordering_flag_l0: 0 */
27714b672db6ee89c9846451bbab23cf18e93c4260b2hding    } else if (slice_type == SLICE_TYPE_B) {
27724b672db6ee89c9846451bbab23cf18e93c4260b2hding        bitstream_put_ui(bs, 1, 1);            /* direct_spatial_mv_pred: 1 */
27734b672db6ee89c9846451bbab23cf18e93c4260b2hding        bitstream_put_ui(bs, 0, 1);            /* num_ref_idx_active_override_flag: 0 */
27744b672db6ee89c9846451bbab23cf18e93c4260b2hding        /* ref_pic_list_reordering */
27754b672db6ee89c9846451bbab23cf18e93c4260b2hding        bitstream_put_ui(bs, 0, 1);            /* ref_pic_list_reordering_flag_l0: 0 */
27764b672db6ee89c9846451bbab23cf18e93c4260b2hding        bitstream_put_ui(bs, 0, 1);            /* ref_pic_list_reordering_flag_l1: 0 */
27774b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
27784b672db6ee89c9846451bbab23cf18e93c4260b2hding
27794b672db6ee89c9846451bbab23cf18e93c4260b2hding    /* weighted_pred_flag == 0 */
27804b672db6ee89c9846451bbab23cf18e93c4260b2hding
27814b672db6ee89c9846451bbab23cf18e93c4260b2hding    /* dec_ref_pic_marking */
27824b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (nal_ref_idc != 0) {
27834b672db6ee89c9846451bbab23cf18e93c4260b2hding        if ( is_idr) {
27844b672db6ee89c9846451bbab23cf18e93c4260b2hding            bitstream_put_ui(bs, 0, 1);            /* no_output_of_prior_pics_flag: 0 */
27854b672db6ee89c9846451bbab23cf18e93c4260b2hding            bitstream_put_ui(bs, 0, 1);            /* long_term_reference_flag: 0 */
27864b672db6ee89c9846451bbab23cf18e93c4260b2hding        } else {
27874b672db6ee89c9846451bbab23cf18e93c4260b2hding            bitstream_put_ui(bs, 0, 1);            /* adaptive_ref_pic_marking_mode_flag: 0 */
27884b672db6ee89c9846451bbab23cf18e93c4260b2hding        }
27894b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
27904b672db6ee89c9846451bbab23cf18e93c4260b2hding
27914b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (is_cabac && (slice_type != SLICE_TYPE_I))
27924b672db6ee89c9846451bbab23cf18e93c4260b2hding        bitstream_put_ue(bs, 0);               /* cabac_init_idc: 0 */
27934b672db6ee89c9846451bbab23cf18e93c4260b2hding
27944b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_put_se(bs, 0);                   /* slice_qp_delta: 0 */
27954b672db6ee89c9846451bbab23cf18e93c4260b2hding
27964b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (pic_param->pic_fields.bits.deblocking_filter_control_present_flag == 1) {
27974b672db6ee89c9846451bbab23cf18e93c4260b2hding        bitstream_put_ue(bs, 0);               /* disable_deblocking_filter_idc: 0 */
27984b672db6ee89c9846451bbab23cf18e93c4260b2hding        bitstream_put_se(bs, 2);               /* slice_alpha_c0_offset_div2: 2 */
27994b672db6ee89c9846451bbab23cf18e93c4260b2hding        bitstream_put_se(bs, 2);               /* slice_beta_offset_div2: 2 */
28004b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
28014b672db6ee89c9846451bbab23cf18e93c4260b2hding}
28024b672db6ee89c9846451bbab23cf18e93c4260b2hding
28034b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void
28044b672db6ee89c9846451bbab23cf18e93c4260b2hdingslice_data(bitstream *bs)
28054b672db6ee89c9846451bbab23cf18e93c4260b2hding{
28064b672db6ee89c9846451bbab23cf18e93c4260b2hding    VACodedBufferSegment *coded_buffer_segment;
28074b672db6ee89c9846451bbab23cf18e93c4260b2hding    unsigned char *coded_mem;
28084b672db6ee89c9846451bbab23cf18e93c4260b2hding    int i, slice_data_length;
28094b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAStatus va_status;
28104b672db6ee89c9846451bbab23cf18e93c4260b2hding    VASurfaceStatus surface_status;
28114b672db6ee89c9846451bbab23cf18e93c4260b2hding
28124b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaSyncSurface(va_dpy, surface_ids[avcenc_context.current_input_surface]);
28134b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status,"vaSyncSurface");
28144b672db6ee89c9846451bbab23cf18e93c4260b2hding
28154b672db6ee89c9846451bbab23cf18e93c4260b2hding    surface_status = 0;
28164b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaQuerySurfaceStatus(va_dpy, surface_ids[avcenc_context.current_input_surface], &surface_status);
28174b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status,"vaQuerySurfaceStatus");
28184b672db6ee89c9846451bbab23cf18e93c4260b2hding
28194b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaMapBuffer(va_dpy, avcenc_context.codedbuf_buf_id, (void **)(&coded_buffer_segment));
28204b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status,"vaMapBuffer");
28214b672db6ee89c9846451bbab23cf18e93c4260b2hding    coded_mem = coded_buffer_segment->buf;
28224b672db6ee89c9846451bbab23cf18e93c4260b2hding
28234b672db6ee89c9846451bbab23cf18e93c4260b2hding    slice_data_length = get_coded_bitsteam_length(coded_mem, codedbuf_size);
28244b672db6ee89c9846451bbab23cf18e93c4260b2hding
28254b672db6ee89c9846451bbab23cf18e93c4260b2hding    for (i = 0; i < slice_data_length; i++) {
28264b672db6ee89c9846451bbab23cf18e93c4260b2hding        bitstream_put_ui(bs, *coded_mem, 8);
28274b672db6ee89c9846451bbab23cf18e93c4260b2hding        coded_mem++;
28284b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
28294b672db6ee89c9846451bbab23cf18e93c4260b2hding
28304b672db6ee89c9846451bbab23cf18e93c4260b2hding    vaUnmapBuffer(va_dpy, avcenc_context.codedbuf_buf_id);
28314b672db6ee89c9846451bbab23cf18e93c4260b2hding}
28324b672db6ee89c9846451bbab23cf18e93c4260b2hding
28334b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void
28344b672db6ee89c9846451bbab23cf18e93c4260b2hdingbuild_nal_slice(FILE *avc_fp, int frame_num, int display_frame, int slice_type, int is_idr)
28354b672db6ee89c9846451bbab23cf18e93c4260b2hding{
28364b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream bs;
28374b672db6ee89c9846451bbab23cf18e93c4260b2hding
28384b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_start(&bs);
28394b672db6ee89c9846451bbab23cf18e93c4260b2hding    slice_data(&bs);
28404b672db6ee89c9846451bbab23cf18e93c4260b2hding    bitstream_end(&bs, avc_fp);
28414b672db6ee89c9846451bbab23cf18e93c4260b2hding}
28424b672db6ee89c9846451bbab23cf18e93c4260b2hding
28434b672db6ee89c9846451bbab23cf18e93c4260b2hding#endif
28444b672db6ee89c9846451bbab23cf18e93c4260b2hding
28454b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic int
28464b672db6ee89c9846451bbab23cf18e93c4260b2hdingstore_coded_buffer(FILE *avc_fp, int slice_type)
28474b672db6ee89c9846451bbab23cf18e93c4260b2hding{
28484b672db6ee89c9846451bbab23cf18e93c4260b2hding    VACodedBufferSegment *coded_buffer_segment;
28494b672db6ee89c9846451bbab23cf18e93c4260b2hding    unsigned char *coded_mem;
28504b672db6ee89c9846451bbab23cf18e93c4260b2hding    int slice_data_length;
28514b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAStatus va_status;
28524b672db6ee89c9846451bbab23cf18e93c4260b2hding    VASurfaceStatus surface_status;
28534b672db6ee89c9846451bbab23cf18e93c4260b2hding    size_t w_items;
28544b672db6ee89c9846451bbab23cf18e93c4260b2hding
28554b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaSyncSurface(va_dpy, surface_ids[avcenc_context.current_input_surface]);
28564b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status,"vaSyncSurface");
28574b672db6ee89c9846451bbab23cf18e93c4260b2hding
28584b672db6ee89c9846451bbab23cf18e93c4260b2hding    surface_status = (VASurfaceStatus)0;
28594b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaQuerySurfaceStatus(va_dpy, surface_ids[avcenc_context.current_input_surface], &surface_status);
28604b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status,"vaQuerySurfaceStatus");
28614b672db6ee89c9846451bbab23cf18e93c4260b2hding
28624b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaMapBuffer(va_dpy, avcenc_context.codedbuf_buf_id, (void **)(&coded_buffer_segment));
28634b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status,"vaMapBuffer");
28644b672db6ee89c9846451bbab23cf18e93c4260b2hding    coded_mem = (unsigned char *)coded_buffer_segment->buf;
28654b672db6ee89c9846451bbab23cf18e93c4260b2hding
28664b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (coded_buffer_segment->status & VA_CODED_BUF_STATUS_SLICE_OVERFLOW_MASK) {
28674b672db6ee89c9846451bbab23cf18e93c4260b2hding        if (slice_type == SLICE_TYPE_I)
28684b672db6ee89c9846451bbab23cf18e93c4260b2hding            avcenc_context.codedbuf_i_size *= 2;
28694b672db6ee89c9846451bbab23cf18e93c4260b2hding        else
28704b672db6ee89c9846451bbab23cf18e93c4260b2hding            avcenc_context.codedbuf_pb_size *= 2;
28714b672db6ee89c9846451bbab23cf18e93c4260b2hding
28724b672db6ee89c9846451bbab23cf18e93c4260b2hding        vaUnmapBuffer(va_dpy, avcenc_context.codedbuf_buf_id);
28734b672db6ee89c9846451bbab23cf18e93c4260b2hding        return -1;
28744b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
28754b672db6ee89c9846451bbab23cf18e93c4260b2hding
28764b672db6ee89c9846451bbab23cf18e93c4260b2hding    slice_data_length = coded_buffer_segment->size;
28774b672db6ee89c9846451bbab23cf18e93c4260b2hding    do {
28784b672db6ee89c9846451bbab23cf18e93c4260b2hding        w_items = fwrite(coded_mem, slice_data_length, 1, avc_fp);
28794b672db6ee89c9846451bbab23cf18e93c4260b2hding    } while (w_items != 1);
28804b672db6ee89c9846451bbab23cf18e93c4260b2hding
28814b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (slice_type == SLICE_TYPE_I) {
28824b672db6ee89c9846451bbab23cf18e93c4260b2hding        if (avcenc_context.codedbuf_i_size > slice_data_length * 3 / 2) {
28834b672db6ee89c9846451bbab23cf18e93c4260b2hding            avcenc_context.codedbuf_i_size = slice_data_length * 3 / 2;
28844b672db6ee89c9846451bbab23cf18e93c4260b2hding        }
28854b672db6ee89c9846451bbab23cf18e93c4260b2hding
28864b672db6ee89c9846451bbab23cf18e93c4260b2hding        if (avcenc_context.codedbuf_pb_size < slice_data_length) {
28874b672db6ee89c9846451bbab23cf18e93c4260b2hding            avcenc_context.codedbuf_pb_size = slice_data_length;
28884b672db6ee89c9846451bbab23cf18e93c4260b2hding        }
28894b672db6ee89c9846451bbab23cf18e93c4260b2hding    } else {
28904b672db6ee89c9846451bbab23cf18e93c4260b2hding        if (avcenc_context.codedbuf_pb_size > slice_data_length * 3 / 2) {
28914b672db6ee89c9846451bbab23cf18e93c4260b2hding            avcenc_context.codedbuf_pb_size = slice_data_length * 3 / 2;
28924b672db6ee89c9846451bbab23cf18e93c4260b2hding        }
28934b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
28944b672db6ee89c9846451bbab23cf18e93c4260b2hding
28954b672db6ee89c9846451bbab23cf18e93c4260b2hding    vaUnmapBuffer(va_dpy, avcenc_context.codedbuf_buf_id);
28964b672db6ee89c9846451bbab23cf18e93c4260b2hding
28974b672db6ee89c9846451bbab23cf18e93c4260b2hding    return 0;
28984b672db6ee89c9846451bbab23cf18e93c4260b2hding}
28994b672db6ee89c9846451bbab23cf18e93c4260b2hding
29004b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void
29014b672db6ee89c9846451bbab23cf18e93c4260b2hdingencode_picture(FILE *yuv_fp, FILE *avc_fp,
29024b672db6ee89c9846451bbab23cf18e93c4260b2hding               int frame_num, int display_num,
29034b672db6ee89c9846451bbab23cf18e93c4260b2hding               int is_idr,
29044b672db6ee89c9846451bbab23cf18e93c4260b2hding               int slice_type, int next_is_bpic,
29054b672db6ee89c9846451bbab23cf18e93c4260b2hding               int next_display_num)
29064b672db6ee89c9846451bbab23cf18e93c4260b2hding{
29074b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAStatus va_status;
29084b672db6ee89c9846451bbab23cf18e93c4260b2hding    int ret = 0, codedbuf_size;
29094b672db6ee89c9846451bbab23cf18e93c4260b2hding
29104b672db6ee89c9846451bbab23cf18e93c4260b2hding    begin_picture(yuv_fp, frame_num, display_num, slice_type, is_idr);
29114b672db6ee89c9846451bbab23cf18e93c4260b2hding
29124b672db6ee89c9846451bbab23cf18e93c4260b2hding    //if (next_display_num < frame_number) {
29134b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (1) {
29144b672db6ee89c9846451bbab23cf18e93c4260b2hding        int index;
29154b672db6ee89c9846451bbab23cf18e93c4260b2hding
29164b672db6ee89c9846451bbab23cf18e93c4260b2hding        /* prepare for next frame */
29174b672db6ee89c9846451bbab23cf18e93c4260b2hding        if (avcenc_context.current_input_surface == SID_INPUT_PICTURE_0)
29184b672db6ee89c9846451bbab23cf18e93c4260b2hding            index = SID_INPUT_PICTURE_1;
29194b672db6ee89c9846451bbab23cf18e93c4260b2hding        else
29204b672db6ee89c9846451bbab23cf18e93c4260b2hding            index = SID_INPUT_PICTURE_0;
29214b672db6ee89c9846451bbab23cf18e93c4260b2hding        if ( next_display_num >= frame_number )
29224b672db6ee89c9846451bbab23cf18e93c4260b2hding            next_display_num = frame_number - 1;
29234b672db6ee89c9846451bbab23cf18e93c4260b2hding        fseek(yuv_fp, frame_size * next_display_num, SEEK_SET);
29244b672db6ee89c9846451bbab23cf18e93c4260b2hding        avcenc_context.upload_thread_param.yuv_fp = yuv_fp;
29254b672db6ee89c9846451bbab23cf18e93c4260b2hding        avcenc_context.upload_thread_param.surface_id = surface_ids[index];
29264b672db6ee89c9846451bbab23cf18e93c4260b2hding#if 0
29274b672db6ee89c9846451bbab23cf18e93c4260b2hding        avcenc_context.upload_thread_value = pthread_create(&avcenc_context.upload_thread_id,
29284b672db6ee89c9846451bbab23cf18e93c4260b2hding                                                            NULL,
29294b672db6ee89c9846451bbab23cf18e93c4260b2hding                                                            upload_thread_function,
29304b672db6ee89c9846451bbab23cf18e93c4260b2hding                                                            (void*)&avcenc_context.upload_thread_param);
29314b672db6ee89c9846451bbab23cf18e93c4260b2hding#endif
29324b672db6ee89c9846451bbab23cf18e93c4260b2hding//upload_thread_function();
29334b672db6ee89c9846451bbab23cf18e93c4260b2hdingupload_yuv_to_surface(yuv_fp, surface_ids[index]);
29344b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
29354b672db6ee89c9846451bbab23cf18e93c4260b2hding
29364b672db6ee89c9846451bbab23cf18e93c4260b2hding    do {
29374b672db6ee89c9846451bbab23cf18e93c4260b2hding        avcenc_destroy_buffers(&avcenc_context.codedbuf_buf_id, 1);
29384b672db6ee89c9846451bbab23cf18e93c4260b2hding        avcenc_destroy_buffers(&avcenc_context.pic_param_buf_id, 1);
29394b672db6ee89c9846451bbab23cf18e93c4260b2hding
29404b672db6ee89c9846451bbab23cf18e93c4260b2hding
29414b672db6ee89c9846451bbab23cf18e93c4260b2hding        if (SLICE_TYPE_I == slice_type) {
29424b672db6ee89c9846451bbab23cf18e93c4260b2hding            codedbuf_size = avcenc_context.codedbuf_i_size;
29434b672db6ee89c9846451bbab23cf18e93c4260b2hding        } else {
29444b672db6ee89c9846451bbab23cf18e93c4260b2hding            codedbuf_size = avcenc_context.codedbuf_pb_size;
29454b672db6ee89c9846451bbab23cf18e93c4260b2hding        }
29464b672db6ee89c9846451bbab23cf18e93c4260b2hding
29474b672db6ee89c9846451bbab23cf18e93c4260b2hding        /* coded buffer */
29484b672db6ee89c9846451bbab23cf18e93c4260b2hding        va_status = vaCreateBuffer(va_dpy,
29494b672db6ee89c9846451bbab23cf18e93c4260b2hding                                   avcenc_context.context_id,
29504b672db6ee89c9846451bbab23cf18e93c4260b2hding                                   VAEncCodedBufferType,
29514b672db6ee89c9846451bbab23cf18e93c4260b2hding                                   codedbuf_size, 1, NULL,
29524b672db6ee89c9846451bbab23cf18e93c4260b2hding                                   &avcenc_context.codedbuf_buf_id);
29534b672db6ee89c9846451bbab23cf18e93c4260b2hding        CHECK_VASTATUS(va_status,"vaCreateBuffer");
29544b672db6ee89c9846451bbab23cf18e93c4260b2hding
29554b672db6ee89c9846451bbab23cf18e93c4260b2hding        /* picture parameter set */
29564b672db6ee89c9846451bbab23cf18e93c4260b2hding        avcenc_update_picture_parameter(slice_type, frame_num, display_num, is_idr);
29574b672db6ee89c9846451bbab23cf18e93c4260b2hding
29584b672db6ee89c9846451bbab23cf18e93c4260b2hding        avcenc_render_picture();
29594b672db6ee89c9846451bbab23cf18e93c4260b2hding
29604b672db6ee89c9846451bbab23cf18e93c4260b2hding        ret = store_coded_buffer(avc_fp, slice_type);
29614b672db6ee89c9846451bbab23cf18e93c4260b2hding    } while (ret);
29624b672db6ee89c9846451bbab23cf18e93c4260b2hding
29634b672db6ee89c9846451bbab23cf18e93c4260b2hding    end_picture(slice_type, next_is_bpic);
29644b672db6ee89c9846451bbab23cf18e93c4260b2hding}
29654b672db6ee89c9846451bbab23cf18e93c4260b2hding
29664b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void encode_pb_pictures(FILE *yuv_fp, FILE *avc_fp, int f, int nbframes, int next_f)
29674b672db6ee89c9846451bbab23cf18e93c4260b2hding{
29684b672db6ee89c9846451bbab23cf18e93c4260b2hding    int i;
29694b672db6ee89c9846451bbab23cf18e93c4260b2hding    encode_picture(yuv_fp, avc_fp,
29704b672db6ee89c9846451bbab23cf18e93c4260b2hding                   enc_frame_number, f + nbframes,
29714b672db6ee89c9846451bbab23cf18e93c4260b2hding                   0,
29724b672db6ee89c9846451bbab23cf18e93c4260b2hding                   SLICE_TYPE_P, 1, f);
29734b672db6ee89c9846451bbab23cf18e93c4260b2hding
29744b672db6ee89c9846451bbab23cf18e93c4260b2hding    for( i = 0; i < nbframes - 1; i++) {
29754b672db6ee89c9846451bbab23cf18e93c4260b2hding        encode_picture(yuv_fp, avc_fp,
29764b672db6ee89c9846451bbab23cf18e93c4260b2hding                       enc_frame_number + 1, f + i,
29774b672db6ee89c9846451bbab23cf18e93c4260b2hding                       0,
29784b672db6ee89c9846451bbab23cf18e93c4260b2hding                       SLICE_TYPE_B, 1, f + i + 1);
29794b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
29804b672db6ee89c9846451bbab23cf18e93c4260b2hding
29814b672db6ee89c9846451bbab23cf18e93c4260b2hding    encode_picture(yuv_fp, avc_fp,
29824b672db6ee89c9846451bbab23cf18e93c4260b2hding                   enc_frame_number + 1, f + nbframes - 1,
29834b672db6ee89c9846451bbab23cf18e93c4260b2hding                   0,
29844b672db6ee89c9846451bbab23cf18e93c4260b2hding                   SLICE_TYPE_B, 0, next_f);
29854b672db6ee89c9846451bbab23cf18e93c4260b2hding}
29864b672db6ee89c9846451bbab23cf18e93c4260b2hding
29874b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void show_help()
29884b672db6ee89c9846451bbab23cf18e93c4260b2hding{
29894b672db6ee89c9846451bbab23cf18e93c4260b2hding    printf("Usage: avnenc <width> <height> <input_yuvfile> <output_avcfile> [qp=qpvalue|fb=framebitrate] [mode=0(I frames only)/1(I and P frames)/2(I, P and B frames)\n");
29904b672db6ee89c9846451bbab23cf18e93c4260b2hding}
29914b672db6ee89c9846451bbab23cf18e93c4260b2hding
29924b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void avcenc_context_seq_param_init(VAEncSequenceParameterBufferH264 *seq_param,
29934b672db6ee89c9846451bbab23cf18e93c4260b2hding                                          int width, int height)
29944b672db6ee89c9846451bbab23cf18e93c4260b2hding
29954b672db6ee89c9846451bbab23cf18e93c4260b2hding{
29964b672db6ee89c9846451bbab23cf18e93c4260b2hding    int width_in_mbs = (width + 15) / 16;
29974b672db6ee89c9846451bbab23cf18e93c4260b2hding    int height_in_mbs = (height + 15) / 16;
29984b672db6ee89c9846451bbab23cf18e93c4260b2hding    int frame_cropping_flag = 0;
29994b672db6ee89c9846451bbab23cf18e93c4260b2hding    int frame_crop_bottom_offset = 0;
30004b672db6ee89c9846451bbab23cf18e93c4260b2hding
30014b672db6ee89c9846451bbab23cf18e93c4260b2hding    seq_param->seq_parameter_set_id = 0;
30024b672db6ee89c9846451bbab23cf18e93c4260b2hding    seq_param->level_idc = 41;
30034b672db6ee89c9846451bbab23cf18e93c4260b2hding    seq_param->intra_period = intra_period;
30044b672db6ee89c9846451bbab23cf18e93c4260b2hding    seq_param->ip_period = 0;   /* FIXME: ??? */
30054b672db6ee89c9846451bbab23cf18e93c4260b2hding    seq_param->max_num_ref_frames = 4;
30064b672db6ee89c9846451bbab23cf18e93c4260b2hding    seq_param->picture_width_in_mbs = width_in_mbs;
30074b672db6ee89c9846451bbab23cf18e93c4260b2hding    seq_param->picture_height_in_mbs = height_in_mbs;
30084b672db6ee89c9846451bbab23cf18e93c4260b2hding    seq_param->seq_fields.bits.frame_mbs_only_flag = 1;
30094b672db6ee89c9846451bbab23cf18e93c4260b2hding    seq_param->time_scale = 900;
30104b672db6ee89c9846451bbab23cf18e93c4260b2hding    seq_param->num_units_in_tick = 15;
30114b672db6ee89c9846451bbab23cf18e93c4260b2hding
30124b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (height_in_mbs * 16 - height) {
30134b672db6ee89c9846451bbab23cf18e93c4260b2hding        frame_cropping_flag = 1;
30144b672db6ee89c9846451bbab23cf18e93c4260b2hding        frame_crop_bottom_offset =
30154b672db6ee89c9846451bbab23cf18e93c4260b2hding            (height_in_mbs * 16 - height) / (2 * (!seq_param->seq_fields.bits.frame_mbs_only_flag + 1));
30164b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
30174b672db6ee89c9846451bbab23cf18e93c4260b2hding
30184b672db6ee89c9846451bbab23cf18e93c4260b2hding    seq_param->frame_cropping_flag = frame_cropping_flag;
30194b672db6ee89c9846451bbab23cf18e93c4260b2hding    seq_param->frame_crop_left_offset = 0;
30204b672db6ee89c9846451bbab23cf18e93c4260b2hding    seq_param->frame_crop_right_offset = 0;
30214b672db6ee89c9846451bbab23cf18e93c4260b2hding    seq_param->frame_crop_top_offset = 0;
30224b672db6ee89c9846451bbab23cf18e93c4260b2hding    seq_param->frame_crop_bottom_offset = frame_crop_bottom_offset;
30234b672db6ee89c9846451bbab23cf18e93c4260b2hding
30244b672db6ee89c9846451bbab23cf18e93c4260b2hding    seq_param->seq_fields.bits.pic_order_cnt_type = 0;
30254b672db6ee89c9846451bbab23cf18e93c4260b2hding    seq_param->seq_fields.bits.direct_8x8_inference_flag = 0;
30264b672db6ee89c9846451bbab23cf18e93c4260b2hding
30274b672db6ee89c9846451bbab23cf18e93c4260b2hding    seq_param->seq_fields.bits.log2_max_frame_num_minus4 = 0;
30284b672db6ee89c9846451bbab23cf18e93c4260b2hding    seq_param->seq_fields.bits.log2_max_pic_order_cnt_lsb_minus4 = 2;
30294b672db6ee89c9846451bbab23cf18e93c4260b2hding
30304b672db6ee89c9846451bbab23cf18e93c4260b2hding    seq_param->vui_parameters_present_flag = 0;
30314b672db6ee89c9846451bbab23cf18e93c4260b2hding}
30324b672db6ee89c9846451bbab23cf18e93c4260b2hding
30334b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void avcenc_context_pic_param_init(VAEncPictureParameterBufferH264 *pic_param)
30344b672db6ee89c9846451bbab23cf18e93c4260b2hding{
30354b672db6ee89c9846451bbab23cf18e93c4260b2hding    pic_param->seq_parameter_set_id = 0;
30364b672db6ee89c9846451bbab23cf18e93c4260b2hding    pic_param->pic_parameter_set_id = 0;
30374b672db6ee89c9846451bbab23cf18e93c4260b2hding
30384b672db6ee89c9846451bbab23cf18e93c4260b2hding    pic_param->last_picture = 0;
30394b672db6ee89c9846451bbab23cf18e93c4260b2hding    pic_param->frame_num = 0;
30404b672db6ee89c9846451bbab23cf18e93c4260b2hding
30414b672db6ee89c9846451bbab23cf18e93c4260b2hding    pic_param->pic_init_qp = (qp_value >= 0 ?  qp_value : 26);
30424b672db6ee89c9846451bbab23cf18e93c4260b2hding    pic_param->num_ref_idx_l0_active_minus1 = 0;
30434b672db6ee89c9846451bbab23cf18e93c4260b2hding    pic_param->num_ref_idx_l1_active_minus1 = 0;
30444b672db6ee89c9846451bbab23cf18e93c4260b2hding
30454b672db6ee89c9846451bbab23cf18e93c4260b2hding    pic_param->pic_fields.bits.idr_pic_flag = 0;
30464b672db6ee89c9846451bbab23cf18e93c4260b2hding    pic_param->pic_fields.bits.reference_pic_flag = 0;
30474b672db6ee89c9846451bbab23cf18e93c4260b2hding    pic_param->pic_fields.bits.entropy_coding_mode_flag = ENTROPY_MODE_CABAC;
30484b672db6ee89c9846451bbab23cf18e93c4260b2hding    pic_param->pic_fields.bits.weighted_pred_flag = 0;
30494b672db6ee89c9846451bbab23cf18e93c4260b2hding    pic_param->pic_fields.bits.weighted_bipred_idc = 0;
30504b672db6ee89c9846451bbab23cf18e93c4260b2hding    pic_param->pic_fields.bits.transform_8x8_mode_flag = 0;
30514b672db6ee89c9846451bbab23cf18e93c4260b2hding    pic_param->pic_fields.bits.deblocking_filter_control_present_flag = 1;
30524b672db6ee89c9846451bbab23cf18e93c4260b2hding}
30534b672db6ee89c9846451bbab23cf18e93c4260b2hding
30544b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void avcenc_context_init(int width, int height)
30554b672db6ee89c9846451bbab23cf18e93c4260b2hding{
30564b672db6ee89c9846451bbab23cf18e93c4260b2hding    int i;
30574b672db6ee89c9846451bbab23cf18e93c4260b2hding    memset(&avcenc_context, 0, sizeof(avcenc_context));
30584b672db6ee89c9846451bbab23cf18e93c4260b2hding    avcenc_context.profile = VAProfileH264Main;
30594b672db6ee89c9846451bbab23cf18e93c4260b2hding    avcenc_context.seq_param_buf_id = VA_INVALID_ID;
30604b672db6ee89c9846451bbab23cf18e93c4260b2hding    avcenc_context.pic_param_buf_id = VA_INVALID_ID;
30614b672db6ee89c9846451bbab23cf18e93c4260b2hding    avcenc_context.packed_seq_header_param_buf_id = VA_INVALID_ID;
30624b672db6ee89c9846451bbab23cf18e93c4260b2hding    avcenc_context.packed_seq_buf_id = VA_INVALID_ID;
30634b672db6ee89c9846451bbab23cf18e93c4260b2hding    avcenc_context.packed_pic_header_param_buf_id = VA_INVALID_ID;
30644b672db6ee89c9846451bbab23cf18e93c4260b2hding    avcenc_context.packed_pic_buf_id = VA_INVALID_ID;
30654b672db6ee89c9846451bbab23cf18e93c4260b2hding    avcenc_context.codedbuf_buf_id = VA_INVALID_ID;
30664b672db6ee89c9846451bbab23cf18e93c4260b2hding    avcenc_context.codedbuf_i_size = width * height;
30674b672db6ee89c9846451bbab23cf18e93c4260b2hding    avcenc_context.codedbuf_pb_size = 0;
30684b672db6ee89c9846451bbab23cf18e93c4260b2hding    avcenc_context.current_input_surface = SID_INPUT_PICTURE_0;
30694b672db6ee89c9846451bbab23cf18e93c4260b2hding    avcenc_context.upload_thread_value = -1;
30704b672db6ee89c9846451bbab23cf18e93c4260b2hding
30714b672db6ee89c9846451bbab23cf18e93c4260b2hding    for (i = 0; i < MAX_SLICES; i++) {
30724b672db6ee89c9846451bbab23cf18e93c4260b2hding        avcenc_context.slice_param_buf_id[i] = VA_INVALID_ID;
30734b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
30744b672db6ee89c9846451bbab23cf18e93c4260b2hding
30754b672db6ee89c9846451bbab23cf18e93c4260b2hding    avcenc_context_seq_param_init(&avcenc_context.seq_param, width, height);
30764b672db6ee89c9846451bbab23cf18e93c4260b2hding    avcenc_context_pic_param_init(&avcenc_context.pic_param);
30774b672db6ee89c9846451bbab23cf18e93c4260b2hding}
30784b672db6ee89c9846451bbab23cf18e93c4260b2hding
30794b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic int
30804b672db6ee89c9846451bbab23cf18e93c4260b2hdingzoom_out_surface(VADisplay va_dpy,
30814b672db6ee89c9846451bbab23cf18e93c4260b2hding                 VASurfaceID in_surface_id,
30824b672db6ee89c9846451bbab23cf18e93c4260b2hding                 VASurfaceID *out_surface_id)
30834b672db6ee89c9846451bbab23cf18e93c4260b2hding{
30844b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAStatus va_status;
30854b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAEntrypoint entrypoints[5];
30864b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAConfigAttrib attrib;
30874b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAConfigID config_id;
30884b672db6ee89c9846451bbab23cf18e93c4260b2hding    VASurfaceID vpp_surface_id = VA_INVALID_SURFACE;
30894b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAContextID context_id;
30904b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAProcPipelineCaps vpp_cap;
30914b672db6ee89c9846451bbab23cf18e93c4260b2hding    VABufferID pipeline_param_buf_id = VA_INVALID_ID;
30924b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAProcPipelineParameterBuffer pipeline_param;
30934b672db6ee89c9846451bbab23cf18e93c4260b2hding    int num_entrypoints, proc_entrypoint;
30944b672db6ee89c9846451bbab23cf18e93c4260b2hding    VARectangle surface_region, output_region;
30954b672db6ee89c9846451bbab23cf18e93c4260b2hding    VABufferID filter_bufs[VAProcFilterCount];
30964b672db6ee89c9846451bbab23cf18e93c4260b2hding    unsigned int num_filter_bufs = 0;
30974b672db6ee89c9846451bbab23cf18e93c4260b2hding
30984b672db6ee89c9846451bbab23cf18e93c4260b2hding
30994b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaQueryConfigEntrypoints(va_dpy,
31004b672db6ee89c9846451bbab23cf18e93c4260b2hding                                         VAProfileNone,
31014b672db6ee89c9846451bbab23cf18e93c4260b2hding                                         entrypoints,
31024b672db6ee89c9846451bbab23cf18e93c4260b2hding                                         &num_entrypoints);
31034b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status, "vaQueryConfigEntrypoints");
31044b672db6ee89c9846451bbab23cf18e93c4260b2hding
31054b672db6ee89c9846451bbab23cf18e93c4260b2hding    for	(proc_entrypoint = 0; proc_entrypoint < num_entrypoints; proc_entrypoint++) {
31064b672db6ee89c9846451bbab23cf18e93c4260b2hding        if (entrypoints[proc_entrypoint] == VAEntrypointVideoProc)
31074b672db6ee89c9846451bbab23cf18e93c4260b2hding            break;
31084b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
31094b672db6ee89c9846451bbab23cf18e93c4260b2hding
31104b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (proc_entrypoint == num_entrypoints) {
31114b672db6ee89c9846451bbab23cf18e93c4260b2hding        /* not find Video Proc entry point */
31124b672db6ee89c9846451bbab23cf18e93c4260b2hding        assert(0);
31134b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
31144b672db6ee89c9846451bbab23cf18e93c4260b2hding
31154b672db6ee89c9846451bbab23cf18e93c4260b2hding    attrib.type = VAConfigAttribRTFormat;
31164b672db6ee89c9846451bbab23cf18e93c4260b2hding    vaGetConfigAttributes(va_dpy,
31174b672db6ee89c9846451bbab23cf18e93c4260b2hding                          VAProfileNone,
31184b672db6ee89c9846451bbab23cf18e93c4260b2hding                          VAEntrypointVideoProc,
31194b672db6ee89c9846451bbab23cf18e93c4260b2hding                          &attrib,
31204b672db6ee89c9846451bbab23cf18e93c4260b2hding                          1);
31214b672db6ee89c9846451bbab23cf18e93c4260b2hding
31224b672db6ee89c9846451bbab23cf18e93c4260b2hding    if ((attrib.value & VA_RT_FORMAT_YUV420) == 0) {
31234b672db6ee89c9846451bbab23cf18e93c4260b2hding        assert(0);
31244b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
31254b672db6ee89c9846451bbab23cf18e93c4260b2hding
31264b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaCreateConfig(va_dpy,
31274b672db6ee89c9846451bbab23cf18e93c4260b2hding                               VAProfileNone,
31284b672db6ee89c9846451bbab23cf18e93c4260b2hding                               VAEntrypointVideoProc,
31294b672db6ee89c9846451bbab23cf18e93c4260b2hding                               &attrib,
31304b672db6ee89c9846451bbab23cf18e93c4260b2hding                               1,
31314b672db6ee89c9846451bbab23cf18e93c4260b2hding                               &config_id);
31324b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status, "vaQueryConfigEntrypoints");
31334b672db6ee89c9846451bbab23cf18e93c4260b2hding
31344b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaCreateSurfaces(va_dpy,
31354b672db6ee89c9846451bbab23cf18e93c4260b2hding                                 surface_width * zoom_out,
31364b672db6ee89c9846451bbab23cf18e93c4260b2hding                                 surface_height * zoom_out,
31374b672db6ee89c9846451bbab23cf18e93c4260b2hding                                 VA_RT_FORMAT_YUV420,
31384b672db6ee89c9846451bbab23cf18e93c4260b2hding                                 1,
31394b672db6ee89c9846451bbab23cf18e93c4260b2hding                                 &vpp_surface_id);
31404b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status, "vaCreateSurfaces");
31414b672db6ee89c9846451bbab23cf18e93c4260b2hding
31424b672db6ee89c9846451bbab23cf18e93c4260b2hding    /* Create a context for VPP pipe */
31434b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaCreateContext(va_dpy,
31444b672db6ee89c9846451bbab23cf18e93c4260b2hding                                config_id,
31454b672db6ee89c9846451bbab23cf18e93c4260b2hding                                surface_width,
31464b672db6ee89c9846451bbab23cf18e93c4260b2hding                                surface_height,
31474b672db6ee89c9846451bbab23cf18e93c4260b2hding                                VA_PROGRESSIVE,
31484b672db6ee89c9846451bbab23cf18e93c4260b2hding                                &vpp_surface_id,
31494b672db6ee89c9846451bbab23cf18e93c4260b2hding                                1,
31504b672db6ee89c9846451bbab23cf18e93c4260b2hding                                &context_id);
31514b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status, "vaCreateContext");
31524b672db6ee89c9846451bbab23cf18e93c4260b2hding
31534b672db6ee89c9846451bbab23cf18e93c4260b2hding    vaQueryVideoProcPipelineCaps(va_dpy,
31544b672db6ee89c9846451bbab23cf18e93c4260b2hding                                 context_id,
31554b672db6ee89c9846451bbab23cf18e93c4260b2hding                                 filter_bufs, num_filter_bufs,
31564b672db6ee89c9846451bbab23cf18e93c4260b2hding                                 &vpp_cap);
31574b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status, "vaQueryVideoProcPipelineCaps");
31584b672db6ee89c9846451bbab23cf18e93c4260b2hding
31594b672db6ee89c9846451bbab23cf18e93c4260b2hding    surface_region.x = 0;
31604b672db6ee89c9846451bbab23cf18e93c4260b2hding    surface_region.y = 0;
31614b672db6ee89c9846451bbab23cf18e93c4260b2hding    surface_region.width = surface_width;
31624b672db6ee89c9846451bbab23cf18e93c4260b2hding    surface_region.height = surface_height;
31634b672db6ee89c9846451bbab23cf18e93c4260b2hding
31644b672db6ee89c9846451bbab23cf18e93c4260b2hding    output_region.x = 0;
31654b672db6ee89c9846451bbab23cf18e93c4260b2hding    output_region.y = 0;
31664b672db6ee89c9846451bbab23cf18e93c4260b2hding    output_region.width = surface_width * zoom_out;
31674b672db6ee89c9846451bbab23cf18e93c4260b2hding    output_region.height = surface_height * zoom_out;
31684b672db6ee89c9846451bbab23cf18e93c4260b2hding
31694b672db6ee89c9846451bbab23cf18e93c4260b2hding    memset(&pipeline_param, 0, sizeof(pipeline_param));
31704b672db6ee89c9846451bbab23cf18e93c4260b2hding    pipeline_param.surface = in_surface_id;
31714b672db6ee89c9846451bbab23cf18e93c4260b2hding    pipeline_param.surface_region = &surface_region;
31724b672db6ee89c9846451bbab23cf18e93c4260b2hding    pipeline_param.output_region = &output_region;
31734b672db6ee89c9846451bbab23cf18e93c4260b2hding
31744b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaCreateBuffer(va_dpy,
31754b672db6ee89c9846451bbab23cf18e93c4260b2hding                               context_id,
31764b672db6ee89c9846451bbab23cf18e93c4260b2hding                               VAProcPipelineParameterBufferType,
31774b672db6ee89c9846451bbab23cf18e93c4260b2hding                               sizeof(pipeline_param),
31784b672db6ee89c9846451bbab23cf18e93c4260b2hding                               1,
31794b672db6ee89c9846451bbab23cf18e93c4260b2hding                               &pipeline_param,
31804b672db6ee89c9846451bbab23cf18e93c4260b2hding                               &pipeline_param_buf_id);
31814b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status, "vaCreateBuffer");
31824b672db6ee89c9846451bbab23cf18e93c4260b2hding
31834b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaBeginPicture(va_dpy,
31844b672db6ee89c9846451bbab23cf18e93c4260b2hding                               context_id,
31854b672db6ee89c9846451bbab23cf18e93c4260b2hding                               vpp_surface_id);
31864b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status, "vaBeginPicture");
31874b672db6ee89c9846451bbab23cf18e93c4260b2hding
31884b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaRenderPicture(va_dpy,
31894b672db6ee89c9846451bbab23cf18e93c4260b2hding                                context_id,
31904b672db6ee89c9846451bbab23cf18e93c4260b2hding                                &pipeline_param_buf_id,
31914b672db6ee89c9846451bbab23cf18e93c4260b2hding                                1);
31924b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status, "vaRenderPicture");
31934b672db6ee89c9846451bbab23cf18e93c4260b2hding
31944b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaEndPicture(va_dpy, context_id);
31954b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status, "vaEndPicture");
31964b672db6ee89c9846451bbab23cf18e93c4260b2hding
31974b672db6ee89c9846451bbab23cf18e93c4260b2hding    vaDestroyContext(va_dpy, context_id);
31984b672db6ee89c9846451bbab23cf18e93c4260b2hding    vaDestroyConfig(va_dpy, config_id);
31994b672db6ee89c9846451bbab23cf18e93c4260b2hding
32004b672db6ee89c9846451bbab23cf18e93c4260b2hding    *out_surface_id = vpp_surface_id;
32014b672db6ee89c9846451bbab23cf18e93c4260b2hding    return 0;
32024b672db6ee89c9846451bbab23cf18e93c4260b2hding}
32034b672db6ee89c9846451bbab23cf18e93c4260b2hding
32044b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic int encode_file()
32054b672db6ee89c9846451bbab23cf18e93c4260b2hding{
32064b672db6ee89c9846451bbab23cf18e93c4260b2hding    int f;
32074b672db6ee89c9846451bbab23cf18e93c4260b2hding    FILE *yuv_fp;
32084b672db6ee89c9846451bbab23cf18e93c4260b2hding    FILE *avc_fp;
32094b672db6ee89c9846451bbab23cf18e93c4260b2hding    long file_size;
32104b672db6ee89c9846451bbab23cf18e93c4260b2hding    int i_frame_only=1,i_p_frame_only=0;
32114b672db6ee89c9846451bbab23cf18e93c4260b2hding    int mode_value;
32124b672db6ee89c9846451bbab23cf18e93c4260b2hding    struct timeval tpstart,tpend;
32134b672db6ee89c9846451bbab23cf18e93c4260b2hding    float  timeuse;
32144b672db6ee89c9846451bbab23cf18e93c4260b2hding	int frame_number = 1;
32154b672db6ee89c9846451bbab23cf18e93c4260b2hding	yuv_fp = fopen("dump.yuv","rb");
32164b672db6ee89c9846451bbab23cf18e93c4260b2hding
32174b672db6ee89c9846451bbab23cf18e93c4260b2hding    fseek(yuv_fp, 0l, SEEK_SET);
32184b672db6ee89c9846451bbab23cf18e93c4260b2hding
32194b672db6ee89c9846451bbab23cf18e93c4260b2hding    avc_fp = fopen("test.264", "wb");
32204b672db6ee89c9846451bbab23cf18e93c4260b2hding    if ( avc_fp == NULL) {
32214b672db6ee89c9846451bbab23cf18e93c4260b2hding        fclose(yuv_fp);
32224b672db6ee89c9846451bbab23cf18e93c4260b2hding        printf("Can't open output avc file\n");
32234b672db6ee89c9846451bbab23cf18e93c4260b2hding        return -1;
32244b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
32254b672db6ee89c9846451bbab23cf18e93c4260b2hding    gettimeofday(&tpstart,NULL);
32264b672db6ee89c9846451bbab23cf18e93c4260b2hding    avcenc_context_init(picture_width, picture_height);
32274b672db6ee89c9846451bbab23cf18e93c4260b2hding    create_encode_pipe();
32284b672db6ee89c9846451bbab23cf18e93c4260b2hding    alloc_encode_resource(yuv_fp);
32294b672db6ee89c9846451bbab23cf18e93c4260b2hding
32304b672db6ee89c9846451bbab23cf18e93c4260b2hding    enc_frame_number = 0;
32314b672db6ee89c9846451bbab23cf18e93c4260b2hding    for ( int f = 0; f < frame_number; ) {		//picture level loop
32324b672db6ee89c9846451bbab23cf18e93c4260b2hding        static int const frame_type_pattern[][2] = { {SLICE_TYPE_I,1},
32334b672db6ee89c9846451bbab23cf18e93c4260b2hding                                                     {SLICE_TYPE_P,3}, {SLICE_TYPE_P,3},{SLICE_TYPE_P,3},
32344b672db6ee89c9846451bbab23cf18e93c4260b2hding                                                     {SLICE_TYPE_P,3}, {SLICE_TYPE_P,3},{SLICE_TYPE_P,3},
32354b672db6ee89c9846451bbab23cf18e93c4260b2hding                                                     {SLICE_TYPE_P,3}, {SLICE_TYPE_P,3},{SLICE_TYPE_P,3},
32364b672db6ee89c9846451bbab23cf18e93c4260b2hding                                                     {SLICE_TYPE_P,2} };
32374b672db6ee89c9846451bbab23cf18e93c4260b2hding
32384b672db6ee89c9846451bbab23cf18e93c4260b2hding        if ( i_frame_only ) {
32394b672db6ee89c9846451bbab23cf18e93c4260b2hding            encode_picture(yuv_fp, avc_fp,enc_frame_number, f, f==0, SLICE_TYPE_I, 0, f+1);
32404b672db6ee89c9846451bbab23cf18e93c4260b2hding            f++;
32414b672db6ee89c9846451bbab23cf18e93c4260b2hding            enc_frame_number++;
32424b672db6ee89c9846451bbab23cf18e93c4260b2hding        } else if ( i_p_frame_only ) {
32434b672db6ee89c9846451bbab23cf18e93c4260b2hding            if ( (f % intra_period) == 0 ) {
32444b672db6ee89c9846451bbab23cf18e93c4260b2hding                encode_picture(yuv_fp, avc_fp,enc_frame_number, f, f==0, SLICE_TYPE_I, 0, f+1);
32454b672db6ee89c9846451bbab23cf18e93c4260b2hding                f++;
32464b672db6ee89c9846451bbab23cf18e93c4260b2hding                enc_frame_number++;
32474b672db6ee89c9846451bbab23cf18e93c4260b2hding            } else {
32484b672db6ee89c9846451bbab23cf18e93c4260b2hding                encode_picture(yuv_fp, avc_fp,enc_frame_number, f, f==0, SLICE_TYPE_P, 0, f+1);
32494b672db6ee89c9846451bbab23cf18e93c4260b2hding                f++;
32504b672db6ee89c9846451bbab23cf18e93c4260b2hding                enc_frame_number++;
32514b672db6ee89c9846451bbab23cf18e93c4260b2hding            }
32524b672db6ee89c9846451bbab23cf18e93c4260b2hding        } else { // follow the i,p,b pattern
32534b672db6ee89c9846451bbab23cf18e93c4260b2hding            static int fcurrent = 0;
32544b672db6ee89c9846451bbab23cf18e93c4260b2hding            int fnext;
32554b672db6ee89c9846451bbab23cf18e93c4260b2hding
32564b672db6ee89c9846451bbab23cf18e93c4260b2hding            fcurrent = fcurrent % (sizeof(frame_type_pattern)/sizeof(int[2]));
32574b672db6ee89c9846451bbab23cf18e93c4260b2hding            fnext = (fcurrent+1) % (sizeof(frame_type_pattern)/sizeof(int[2]));
32584b672db6ee89c9846451bbab23cf18e93c4260b2hding
32594b672db6ee89c9846451bbab23cf18e93c4260b2hding            if ( frame_type_pattern[fcurrent][0] == SLICE_TYPE_I ) {
32604b672db6ee89c9846451bbab23cf18e93c4260b2hding                encode_picture(yuv_fp, avc_fp,enc_frame_number, f, f==0, SLICE_TYPE_I, 0,
32614b672db6ee89c9846451bbab23cf18e93c4260b2hding                        f+frame_type_pattern[fnext][1]);
32624b672db6ee89c9846451bbab23cf18e93c4260b2hding                f++;
32634b672db6ee89c9846451bbab23cf18e93c4260b2hding                enc_frame_number++;
32644b672db6ee89c9846451bbab23cf18e93c4260b2hding            } else {
32654b672db6ee89c9846451bbab23cf18e93c4260b2hding                encode_pb_pictures(yuv_fp, avc_fp, f, frame_type_pattern[fcurrent][1]-1,
32664b672db6ee89c9846451bbab23cf18e93c4260b2hding                        f + frame_type_pattern[fcurrent][1] + frame_type_pattern[fnext][1] -1 );
32674b672db6ee89c9846451bbab23cf18e93c4260b2hding                f += frame_type_pattern[fcurrent][1];
32684b672db6ee89c9846451bbab23cf18e93c4260b2hding                enc_frame_number++;
32694b672db6ee89c9846451bbab23cf18e93c4260b2hding            }
32704b672db6ee89c9846451bbab23cf18e93c4260b2hding
32714b672db6ee89c9846451bbab23cf18e93c4260b2hding            fcurrent++;
32724b672db6ee89c9846451bbab23cf18e93c4260b2hding        }
32734b672db6ee89c9846451bbab23cf18e93c4260b2hding        printf("\r %d/%d ...", f+1, frame_number);
32744b672db6ee89c9846451bbab23cf18e93c4260b2hding        fflush(stdout);
32754b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
32764b672db6ee89c9846451bbab23cf18e93c4260b2hding
32774b672db6ee89c9846451bbab23cf18e93c4260b2hding    gettimeofday(&tpend,NULL);
32784b672db6ee89c9846451bbab23cf18e93c4260b2hding    timeuse=1000000*(tpend.tv_sec-tpstart.tv_sec)+ tpend.tv_usec-tpstart.tv_usec;
32794b672db6ee89c9846451bbab23cf18e93c4260b2hding    timeuse/=1000000;
32804b672db6ee89c9846451bbab23cf18e93c4260b2hding    printf("\ndone!\n");
32814b672db6ee89c9846451bbab23cf18e93c4260b2hding    printf("encode %d frames in %f secondes, FPS is %.1f\n",frame_number, timeuse, frame_number/timeuse);
32824b672db6ee89c9846451bbab23cf18e93c4260b2hding    release_encode_resource();
32834b672db6ee89c9846451bbab23cf18e93c4260b2hding    destory_encode_pipe();
32844b672db6ee89c9846451bbab23cf18e93c4260b2hding
32854b672db6ee89c9846451bbab23cf18e93c4260b2hding    fclose(yuv_fp);
32864b672db6ee89c9846451bbab23cf18e93c4260b2hding    fclose(avc_fp);
32874b672db6ee89c9846451bbab23cf18e93c4260b2hding
32884b672db6ee89c9846451bbab23cf18e93c4260b2hding
32894b672db6ee89c9846451bbab23cf18e93c4260b2hding}
32904b672db6ee89c9846451bbab23cf18e93c4260b2hdingint main(int argc,char **argv)
32914b672db6ee89c9846451bbab23cf18e93c4260b2hding{
32924b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAEntrypoint entrypoints[5];
32934b672db6ee89c9846451bbab23cf18e93c4260b2hding    int num_entrypoints,vld_entrypoint;
32944b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAConfigAttrib attrib;
32954b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAConfigID config_id;
32964b672db6ee89c9846451bbab23cf18e93c4260b2hding    VASurfaceID surface_id;
32974b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAContextID context_id;
32984b672db6ee89c9846451bbab23cf18e93c4260b2hding    VABufferID pic_param_buf,iqmatrix_buf,slice_param_buf,slice_data_buf;
32994b672db6ee89c9846451bbab23cf18e93c4260b2hding    int major_ver, minor_ver;
33004b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAStatus va_status;
33014b672db6ee89c9846451bbab23cf18e93c4260b2hding    int putsurface=0;
33024b672db6ee89c9846451bbab23cf18e93c4260b2hding	VAImageFormat image_format;
33034b672db6ee89c9846451bbab23cf18e93c4260b2hding	VAImage yuv_image;
33044b672db6ee89c9846451bbab23cf18e93c4260b2hding
33054b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (argc > 1)
33064b672db6ee89c9846451bbab23cf18e93c4260b2hding        putsurface=1;
33074b672db6ee89c9846451bbab23cf18e93c4260b2hding#ifdef ANDROID
33084b672db6ee89c9846451bbab23cf18e93c4260b2hding    x11_display = (Display*)malloc(sizeof(Display));
33094b672db6ee89c9846451bbab23cf18e93c4260b2hding    *(x11_display ) = 0x18c34078;
33104b672db6ee89c9846451bbab23cf18e93c4260b2hding#else
33114b672db6ee89c9846451bbab23cf18e93c4260b2hding    x11_display = XOpenDisplay(":0.0");
33124b672db6ee89c9846451bbab23cf18e93c4260b2hding#endif
33134b672db6ee89c9846451bbab23cf18e93c4260b2hding
33144b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (x11_display == NULL) {
33154b672db6ee89c9846451bbab23cf18e93c4260b2hding      fprintf(stderr, "Can't connect X server!\n");
33164b672db6ee89c9846451bbab23cf18e93c4260b2hding      exit(-1);
33174b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
33184b672db6ee89c9846451bbab23cf18e93c4260b2hding
33194b672db6ee89c9846451bbab23cf18e93c4260b2hding    assert(x11_display);
33204b672db6ee89c9846451bbab23cf18e93c4260b2hding
33214b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_dpy = vaGetDisplay(x11_display);
33224b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaInitialize(va_dpy, &major_ver, &minor_ver);
33234b672db6ee89c9846451bbab23cf18e93c4260b2hding    assert(va_status == VA_STATUS_SUCCESS);
33244b672db6ee89c9846451bbab23cf18e93c4260b2hding
33254b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaQueryConfigEntrypoints(va_dpy, VAProfileMPEG2Simple, entrypoints,
33264b672db6ee89c9846451bbab23cf18e93c4260b2hding                             &num_entrypoints);
33274b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status, "vaQueryConfigEntrypoints");
33284b672db6ee89c9846451bbab23cf18e93c4260b2hding
33294b672db6ee89c9846451bbab23cf18e93c4260b2hding    for	(vld_entrypoint = 0; vld_entrypoint < num_entrypoints; vld_entrypoint++) {
33304b672db6ee89c9846451bbab23cf18e93c4260b2hding        if (entrypoints[vld_entrypoint] == VAEntrypointVLD)
33314b672db6ee89c9846451bbab23cf18e93c4260b2hding            break;
33324b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
33334b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (vld_entrypoint == num_entrypoints) {
33344b672db6ee89c9846451bbab23cf18e93c4260b2hding        /* not find VLD entry point */
33354b672db6ee89c9846451bbab23cf18e93c4260b2hding        assert(0);
33364b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
33374b672db6ee89c9846451bbab23cf18e93c4260b2hding
33384b672db6ee89c9846451bbab23cf18e93c4260b2hding    /* Assuming finding VLD, find out the format for the render target */
33394b672db6ee89c9846451bbab23cf18e93c4260b2hding    attrib.type = VAConfigAttribRTFormat;
33404b672db6ee89c9846451bbab23cf18e93c4260b2hding    vaGetConfigAttributes(va_dpy, VAProfileMPEG2Simple, VAEntrypointVLD,
33414b672db6ee89c9846451bbab23cf18e93c4260b2hding                          &attrib, 1);
33424b672db6ee89c9846451bbab23cf18e93c4260b2hding    if ((attrib.value & VA_RT_FORMAT_YUV420) == 0) {
33434b672db6ee89c9846451bbab23cf18e93c4260b2hding        /* not find desired YUV420 RT format */
33444b672db6ee89c9846451bbab23cf18e93c4260b2hding        assert(0);
33454b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
33464b672db6ee89c9846451bbab23cf18e93c4260b2hding
33474b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaCreateConfig(va_dpy, VAProfileMPEG2Simple, VAEntrypointVLD,
33484b672db6ee89c9846451bbab23cf18e93c4260b2hding                              &attrib, 1,&config_id);
33494b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status, "vaQueryConfigEntrypoints");
33504b672db6ee89c9846451bbab23cf18e93c4260b2hding
33514b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaCreateSurfaces(va_dpy,CLIP_WIDTH,CLIP_HEIGHT,
33524b672db6ee89c9846451bbab23cf18e93c4260b2hding                                VA_RT_FORMAT_YUV420, 1, &surface_id);
33534b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status, "vaCreateSurfaces");
33544b672db6ee89c9846451bbab23cf18e93c4260b2hding
33554b672db6ee89c9846451bbab23cf18e93c4260b2hding    /* Create a context for this decode pipe */
33564b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaCreateContext(va_dpy, config_id,
33574b672db6ee89c9846451bbab23cf18e93c4260b2hding                               CLIP_WIDTH,
33584b672db6ee89c9846451bbab23cf18e93c4260b2hding                               ((CLIP_HEIGHT+15)/16)*16,
33594b672db6ee89c9846451bbab23cf18e93c4260b2hding                               VA_PROGRESSIVE,
33604b672db6ee89c9846451bbab23cf18e93c4260b2hding                               &surface_id,
33614b672db6ee89c9846451bbab23cf18e93c4260b2hding                               1,
33624b672db6ee89c9846451bbab23cf18e93c4260b2hding                               &context_id);
33634b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status, "vaCreateContext");
33644b672db6ee89c9846451bbab23cf18e93c4260b2hding
33654b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaCreateBuffer(va_dpy, context_id,
33664b672db6ee89c9846451bbab23cf18e93c4260b2hding                              VAPictureParameterBufferType,
33674b672db6ee89c9846451bbab23cf18e93c4260b2hding                              sizeof(VAPictureParameterBufferMPEG2),
33684b672db6ee89c9846451bbab23cf18e93c4260b2hding                              1, &pic_param,
33694b672db6ee89c9846451bbab23cf18e93c4260b2hding                              &pic_param_buf);
33704b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status, "vaCreateBuffer");
33714b672db6ee89c9846451bbab23cf18e93c4260b2hding
33724b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaCreateBuffer(va_dpy, context_id,
33734b672db6ee89c9846451bbab23cf18e93c4260b2hding                              VAIQMatrixBufferType,
33744b672db6ee89c9846451bbab23cf18e93c4260b2hding                              sizeof(VAIQMatrixBufferMPEG2),
33754b672db6ee89c9846451bbab23cf18e93c4260b2hding                              1, &iq_matrix,
33764b672db6ee89c9846451bbab23cf18e93c4260b2hding                              &iqmatrix_buf );
33774b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status, "vaCreateBuffer");
33784b672db6ee89c9846451bbab23cf18e93c4260b2hding
33794b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaCreateBuffer(va_dpy, context_id,
33804b672db6ee89c9846451bbab23cf18e93c4260b2hding                              VASliceParameterBufferType,
33814b672db6ee89c9846451bbab23cf18e93c4260b2hding                              sizeof(VASliceParameterBufferMPEG2),
33824b672db6ee89c9846451bbab23cf18e93c4260b2hding                              15,
33834b672db6ee89c9846451bbab23cf18e93c4260b2hding                              &slice_param, &slice_param_buf);
33844b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status, "vaCreateBuffer");
33854b672db6ee89c9846451bbab23cf18e93c4260b2hding
33864b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaCreateBuffer(va_dpy, context_id,
33874b672db6ee89c9846451bbab23cf18e93c4260b2hding                              VASliceDataBufferType,
33884b672db6ee89c9846451bbab23cf18e93c4260b2hding                              //0xc4-0x2f+1,
33894b672db6ee89c9846451bbab23cf18e93c4260b2hding                              //19310-0x2f+1,
33904b672db6ee89c9846451bbab23cf18e93c4260b2hding                              19252,
33914b672db6ee89c9846451bbab23cf18e93c4260b2hding                              1,
33924b672db6ee89c9846451bbab23cf18e93c4260b2hding                              //mpeg2_clip+0x2f,
33934b672db6ee89c9846451bbab23cf18e93c4260b2hding                              mpeg2_clip+0x3b,
33944b672db6ee89c9846451bbab23cf18e93c4260b2hding                              &slice_data_buf);
33954b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status, "vaCreateBuffer");
33964b672db6ee89c9846451bbab23cf18e93c4260b2hding
33974b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaBeginPicture(va_dpy, context_id, surface_id);
33984b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status, "vaBeginPicture");
33994b672db6ee89c9846451bbab23cf18e93c4260b2hding
34004b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaRenderPicture(va_dpy,context_id, &pic_param_buf, 1);
34014b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status, "vaRenderPicture");
34024b672db6ee89c9846451bbab23cf18e93c4260b2hding
34034b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaRenderPicture(va_dpy,context_id, &iqmatrix_buf, 1);
34044b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status, "vaRenderPicture");
34054b672db6ee89c9846451bbab23cf18e93c4260b2hding
34064b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaRenderPicture(va_dpy,context_id, &slice_param_buf, 1);
34074b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status, "vaRenderPicture");
34084b672db6ee89c9846451bbab23cf18e93c4260b2hding
34094b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaRenderPicture(va_dpy,context_id, &slice_data_buf, 1);
34104b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status, "vaRenderPicture");
34114b672db6ee89c9846451bbab23cf18e93c4260b2hding
34124b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaEndPicture(va_dpy,context_id);
34134b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status, "vaEndPicture");
34144b672db6ee89c9846451bbab23cf18e93c4260b2hding
34154b672db6ee89c9846451bbab23cf18e93c4260b2hding    va_status = vaSyncSurface(va_dpy, surface_id);
34164b672db6ee89c9846451bbab23cf18e93c4260b2hding    CHECK_VASTATUS(va_status, "vaSyncSurface");
34174b672db6ee89c9846451bbab23cf18e93c4260b2hding
34184b672db6ee89c9846451bbab23cf18e93c4260b2hding    if (putsurface) {
34194b672db6ee89c9846451bbab23cf18e93c4260b2hding#ifdef ANDROID
34204b672db6ee89c9846451bbab23cf18e93c4260b2hding        sp<ProcessState> proc(ProcessState::self());
34214b672db6ee89c9846451bbab23cf18e93c4260b2hding        ProcessState::self()->startThreadPool();
34224b672db6ee89c9846451bbab23cf18e93c4260b2hding
34234b672db6ee89c9846451bbab23cf18e93c4260b2hding        printf("Create window0 for thread0\n");
34244b672db6ee89c9846451bbab23cf18e93c4260b2hding        SURFACE_CREATE(client,surface_ctrl,android_surface, android_isurface, WIN_WIDTH, WIN_HEIGHT);
34254b672db6ee89c9846451bbab23cf18e93c4260b2hding
34264b672db6ee89c9846451bbab23cf18e93c4260b2hding        va_status = vaPutSurface(va_dpy, surface_id, android_isurface,
34274b672db6ee89c9846451bbab23cf18e93c4260b2hding                0,0,CLIP_WIDTH,CLIP_HEIGHT,
34284b672db6ee89c9846451bbab23cf18e93c4260b2hding                0,0,WIN_WIDTH,WIN_HEIGHT,
34294b672db6ee89c9846451bbab23cf18e93c4260b2hding                NULL,0,0);
34304b672db6ee89c9846451bbab23cf18e93c4260b2hding#else
34314b672db6ee89c9846451bbab23cf18e93c4260b2hding        Window  win;
34324b672db6ee89c9846451bbab23cf18e93c4260b2hding        win = XCreateSimpleWindow(x11_display, RootWindow(x11_display, 0), 0, 0,
34334b672db6ee89c9846451bbab23cf18e93c4260b2hding                WIN_WIDTH,WIN_HEIGHT, 0, 0, WhitePixel(x11_display, 0));
34344b672db6ee89c9846451bbab23cf18e93c4260b2hding        XMapWindow(x11_display, win);
34354b672db6ee89c9846451bbab23cf18e93c4260b2hding        XSync(x11_display, False);
34364b672db6ee89c9846451bbab23cf18e93c4260b2hding#if 0
34374b672db6ee89c9846451bbab23cf18e93c4260b2hding        va_status = vaPutSurface(va_dpy, surface_id, win,
34384b672db6ee89c9846451bbab23cf18e93c4260b2hding                                0,0,CLIP_WIDTH,CLIP_HEIGHT,
34394b672db6ee89c9846451bbab23cf18e93c4260b2hding                                0,0,WIN_WIDTH,WIN_HEIGHT,
34404b672db6ee89c9846451bbab23cf18e93c4260b2hding                                NULL,0,0);
34414b672db6ee89c9846451bbab23cf18e93c4260b2hding#endif
34424b672db6ee89c9846451bbab23cf18e93c4260b2hding		image_format.fourcc = VA_FOURCC_NV12;
34434b672db6ee89c9846451bbab23cf18e93c4260b2hding		image_format.byte_order = VA_LSB_FIRST;
34444b672db6ee89c9846451bbab23cf18e93c4260b2hding		image_format.bits_per_pixel = 12;
34454b672db6ee89c9846451bbab23cf18e93c4260b2hding
34464b672db6ee89c9846451bbab23cf18e93c4260b2hding		if( vaCreateImage(va_dpy, &image_format,
34474b672db6ee89c9846451bbab23cf18e93c4260b2hding							surface_width * zoom_out,surface_height * zoom_out,
34484b672db6ee89c9846451bbab23cf18e93c4260b2hding							&yuv_image) != VA_STATUS_SUCCESS )
34494b672db6ee89c9846451bbab23cf18e93c4260b2hding			printf("vaCreateImage error\n");
34504b672db6ee89c9846451bbab23cf18e93c4260b2hding
34514b672db6ee89c9846451bbab23cf18e93c4260b2hding		zoom_out_surface(va_dpy, surface_id, &zoom_surface_id);
34524b672db6ee89c9846451bbab23cf18e93c4260b2hding
34534b672db6ee89c9846451bbab23cf18e93c4260b2hding		if (vaGetImage(va_dpy,zoom_surface_id,0,0,
34544b672db6ee89c9846451bbab23cf18e93c4260b2hding						surface_width * zoom_out,surface_height * zoom_out,
34554b672db6ee89c9846451bbab23cf18e93c4260b2hding						yuv_image.image_id) != VA_STATUS_SUCCESS)
34564b672db6ee89c9846451bbab23cf18e93c4260b2hding			printf("vaGetImage error\n");
34574b672db6ee89c9846451bbab23cf18e93c4260b2hding		unsigned char *image_data = NULL;
34584b672db6ee89c9846451bbab23cf18e93c4260b2hding		va_status = vaMapBuffer(va_dpy,yuv_image.buf,(void **)&image_data);
34594b672db6ee89c9846451bbab23cf18e93c4260b2hding		CHECK_VASTATUS(va_status, "vaMapBuffer()");
34604b672db6ee89c9846451bbab23cf18e93c4260b2hding
34614b672db6ee89c9846451bbab23cf18e93c4260b2hding		FILE * image_fp = fopen("dump.yuv", "wb");
34624b672db6ee89c9846451bbab23cf18e93c4260b2hding		fwrite(image_data, surface_width * zoom_out * surface_height * zoom_out *3/2, 1, image_fp);
34634b672db6ee89c9846451bbab23cf18e93c4260b2hding		fclose(image_fp);
34644b672db6ee89c9846451bbab23cf18e93c4260b2hding
34654b672db6ee89c9846451bbab23cf18e93c4260b2hding		/*va_status = vaPutSurface(va_dpy, zoom_out>1?zoom_surface_id:surface_id,Drawable(win),
34664b672db6ee89c9846451bbab23cf18e93c4260b2hding                                0,0,surface_width * zoom_out,surface_height * zoom_out,
34674b672db6ee89c9846451bbab23cf18e93c4260b2hding                                0,0,WIN_WIDTH,WIN_HEIGHT,
34684b672db6ee89c9846451bbab23cf18e93c4260b2hding                                NULL,0,0);*/
34694b672db6ee89c9846451bbab23cf18e93c4260b2hding#endif
34704b672db6ee89c9846451bbab23cf18e93c4260b2hding       CHECK_VASTATUS(va_status, "vaPutSurface");
34714b672db6ee89c9846451bbab23cf18e93c4260b2hding		encode_file();
34724b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
34734b672db6ee89c9846451bbab23cf18e93c4260b2hding    printf("press any key to exit\n");
34744b672db6ee89c9846451bbab23cf18e93c4260b2hding    getchar();
34754b672db6ee89c9846451bbab23cf18e93c4260b2hding
34764b672db6ee89c9846451bbab23cf18e93c4260b2hding    vaDestroySurfaces(va_dpy,&surface_id,1);
34774b672db6ee89c9846451bbab23cf18e93c4260b2hding    vaDestroyConfig(va_dpy,config_id);
34784b672db6ee89c9846451bbab23cf18e93c4260b2hding    vaDestroyContext(va_dpy,context_id);
34794b672db6ee89c9846451bbab23cf18e93c4260b2hding
34804b672db6ee89c9846451bbab23cf18e93c4260b2hding    vaTerminate(va_dpy);
34814b672db6ee89c9846451bbab23cf18e93c4260b2hding#ifdef ANDROID
34824b672db6ee89c9846451bbab23cf18e93c4260b2hding    free(x11_display);
34834b672db6ee89c9846451bbab23cf18e93c4260b2hding#else
34844b672db6ee89c9846451bbab23cf18e93c4260b2hding    //XCloseDisplay(x11_display);
34854b672db6ee89c9846451bbab23cf18e93c4260b2hding#endif
34864b672db6ee89c9846451bbab23cf18e93c4260b2hding
34874b672db6ee89c9846451bbab23cf18e93c4260b2hding    return 0;
34884b672db6ee89c9846451bbab23cf18e93c4260b2hding}
3489