add code

Signed-off-by: laamymy <2953384995@qq.com>
This commit is contained in:
laamymy
2024-01-25 15:53:44 +08:00
parent 4baaa90189
commit 756f404ff9
86 changed files with 9004 additions and 3621 deletions
+4 -4
View File
@@ -36,8 +36,8 @@ STATIC_LDFLAGS=-lstdc++
STRIP ?= strip
USE_STACK_PROTECTOR = Yes
SHAREDLIB_MAJORVERSION=6
FULL_VERSION := 2.2.0
SHAREDLIB_MAJORVERSION=7
FULL_VERSION := 2.3.1
ifeq (,$(wildcard $(SRC_PATH)gmp-api))
HAVE_GMP_API=No
@@ -104,7 +104,7 @@ ifneq ($(V),Yes)
endif
INCLUDES += -I$(SRC_PATH)codec/api/svc -I$(SRC_PATH)codec/common/inc -Icodec/common/inc
INCLUDES += -I$(SRC_PATH)codec/api/wels -I$(SRC_PATH)codec/common/inc -Icodec/common/inc
DECODER_INCLUDES += \
-I$(SRC_PATH)codec/decoder/core/inc \
@@ -293,7 +293,7 @@ $(PROJECT_NAME)-static.pc: $(PROJECT_NAME).pc.in
install-headers:
mkdir -p $(DESTDIR)$(PREFIX)/include/wels
install -m 644 $(SRC_PATH)/codec/api/svc/codec*.h $(DESTDIR)$(PREFIX)/include/wels
install -m 644 $(SRC_PATH)/codec/api/wels/codec*.h $(DESTDIR)$(PREFIX)/include/wels
install-static-lib: $(LIBPREFIX)$(PROJECT_NAME).$(LIBSUFFIX) install-headers
mkdir -p $(DESTDIR)$(PREFIX)/$(LIBDIR_NAME)
+2 -2
View File
@@ -4,8 +4,8 @@
"License": "BSD-2-Clause License",
"License File": "LICENSE",
"Owner": "lixin113@huawei.com",
"Version Number": "2.2.0",
"Version Number": "2.3.1",
"Upstream URL": "https://github.com/cisco/openh264",
"Description": "OpenH264 is a codec library which support H.264 encoding and decoding. It is suitable for use in real time applications such as WebRTC."
}
]
]
+55
View File
@@ -1,6 +1,18 @@
Releases
-----------
v2.3.1
------
- update SHAREDLIB_MAJORVERSION value in Makefile
v2.3.0
------
- Decoder bug fix to correct the B-frame order in some case
- Fixes to avoid hanging for multi-thread decoding
- Some Enhancements and fixes for rate control
- Assembly optimization for loongson platform
- Some minor bug fixes
v2.2.0
------
- Add support for B-slice error concealment
@@ -213,6 +225,49 @@ Binaries
These binary releases are distributed under this license:
http://www.openh264.org/BINARY_LICENSE.txt
v2.3.1
http://ciscobinary.openh264.org/libopenh264-2.3.1-android-arm.7.so.bz2
http://ciscobinary.openh264.org/libopenh264-2.3.1-android-arm.7.so.signed.md5.txt
http://ciscobinary.openh264.org/libopenh264-2.3.1-android-arm64.7.so.bz2
http://ciscobinary.openh264.org/libopenh264-2.3.1-android-arm64.7.so.signed.md5.txt
http://ciscobinary.openh264.org/libopenh264-2.3.1-android-x64.7.so.bz2
http://ciscobinary.openh264.org/libopenh264-2.3.1-android-x64.7.so.signed.md5.txt
http://ciscobinary.openh264.org/libopenh264-2.3.1-android-x86.7.so.bz2
http://ciscobinary.openh264.org/libopenh264-2.3.1-android-x86.7.so.signed.md5.txt
http://ciscobinary.openh264.org/libopenh264-2.3.1-ios.a.bz2
http://ciscobinary.openh264.org/libopenh264-2.3.1-ios.a.signed.md5.txt
http://ciscobinary.openh264.org/libopenh264-2.3.1-linux32.7.so.bz2
http://ciscobinary.openh264.org/libopenh264-2.3.1-linux32.7.so.signed.md5.txt
http://ciscobinary.openh264.org/libopenh264-2.3.1-linux64.7.so.bz2
http://ciscobinary.openh264.org/libopenh264-2.3.1-linux64.7.so.signed.md5.txt
http://ciscobinary.openh264.org/libopenh264-2.3.1-linux-arm.7.so.bz2
http://ciscobinary.openh264.org/libopenh264-2.3.1-linux-arm.7.so.signed.md5.txt
http://ciscobinary.openh264.org/libopenh264-2.3.1-linux-arm64.7.so.bz2
http://ciscobinary.openh264.org/libopenh264-2.3.1-linux-arm64.7.so.signed.md5.txt
http://ciscobinary.openh264.org/libopenh264-2.3.1-mac-arm64.dylib.bz2
http://ciscobinary.openh264.org/libopenh264-2.3.1-mac-arm64.dylib.signed.md5.txt
http://ciscobinary.openh264.org/libopenh264-2.3.1-mac-x64.dylib.bz2
http://ciscobinary.openh264.org/libopenh264-2.3.1-mac-x64.dylib.signed.md5.txt
http://ciscobinary.openh264.org/openh264-2.3.1-win32.dll.signed.md5.txt
http://ciscobinary.openh264.org/openh264-2.3.1-win32.dll.bz2
http://ciscobinary.openh264.org/openh264-2.3.1-win64.dll.bz2
http://ciscobinary.openh264.org/openh264-2.3.1-win64.dll.signed.md5.txt
v2.3.0
http://ciscobinary.openh264.org/libopenh264-2.3.0-android-arm.6.so.bz2
http://ciscobinary.openh264.org/libopenh264-2.3.0-android-arm64.6.so.bz2
http://ciscobinary.openh264.org/libopenh264-2.3.0-android-x86.6.so.bz2
http://ciscobinary.openh264.org/libopenh264-2.3.0-android-x64.6.so.bz2
http://ciscobinary.openh264.org/libopenh264-2.3.0-ios.a.bz2
http://ciscobinary.openh264.org/libopenh264-2.3.0-linux32.6.so.bz2
http://ciscobinary.openh264.org/libopenh264-2.3.0-linux64.6.so.bz2
http://ciscobinary.openh264.org/libopenh264-2.3.0-linux-arm.6.so.bz2
http://ciscobinary.openh264.org/libopenh264-2.3.0-linux-arm64.6.so.bz2
http://ciscobinary.openh264.org/libopenh264-2.3.0-osx-arm64.6.dylib.bz2
http://ciscobinary.openh264.org/libopenh264-2.3.0-osx-x64.6.dylib.bz2
http://ciscobinary.openh264.org/openh264-2.3.0-win32.dll.bz2
http://ciscobinary.openh264.org/openh264-2.3.0-win64.dll.bz2
v2.2.0
http://ciscobinary.openh264.org/libopenh264-2.2.0-android-arm.6.so.bz2
http://ciscobinary.openh264.org/libopenh264-2.2.0-android-arm64.6.so.bz2
+4 -3
View File
@@ -3,14 +3,15 @@ SHAREDLIB_DIR = $(PREFIX)/lib
SHAREDLIBSUFFIX = dylib
SHAREDLIBSUFFIXFULLVER=$(FULL_VERSION).$(SHAREDLIBSUFFIX)
SHAREDLIBSUFFIXMAJORVER=$(SHAREDLIB_MAJORVERSION).$(SHAREDLIBSUFFIX)
CURRENT_VERSION := 2.2.0
COMPATIBILITY_VERSION := 2.2.0
CURRENT_VERSION := 2.3.1
COMPATIBILITY_VERSION := 2.3.1
SHLDFLAGS = -dynamiclib -twolevel_namespace -undefined dynamic_lookup \
-fno-common -headerpad_max_install_names -install_name \
$(SHAREDLIB_DIR)/$(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIXMAJORVER)
SHARED = -dynamiclib
SHARED += -current_version $(CURRENT_VERSION) -compatibility_version $(COMPATIBILITY_VERSION)
CFLAGS += -Wall -fPIC -MMD -MP
CFLAGS += -Wall -fPIC -MMD -MP -stdlib=libc++
LDFLAGS += -stdlib=libc++
ifeq ($(ARCH), arm64)
CFLAGS += -arch arm64
LDFLAGS += -arch arm64
+6
View File
@@ -30,3 +30,9 @@ ifeq ($(CXX), clang++)
CXXFLAGS += -Wc++11-compat-reserved-user-defined-literal
endif
ifeq ($(patsubst %g++,,$(CXX)),)
GCCVER_GTEQ8 = $(shell echo $$(($$($(CXX) -dumpversion | awk -F "." '{print $$1}') >= 8)))
ifeq ($(GCCVER_GTEQ8), 1)
CXXFLAGS += -Wno-class-memaccess
endif
endif
-3
View File
@@ -11,9 +11,6 @@ ifeq ($(ASM_ARCH), x86)
ifeq ($(ARCH), x86_64)
ASMFLAGS += -f win64
ASMFLAGS_PLATFORM = -DWIN64
CC = x86_64-w64-mingw32-gcc
CXX = x86_64-w64-mingw32-g++
AR = x86_64-w64-mingw32-ar
else
ASMFLAGS += -f win32 -DPREFIX
endif
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "@ohos/openh264",
"description": "Library which supports H.264 encoding and decoding",
"version": "3.1",
"version": "2.3.1",
"license": "BSD 2-clause 'Simplified' License",
"publishAs": "code-segment",
"segment": {
@@ -34,4 +34,4 @@
"test": []
}
}
}
}
+1 -1
View File
@@ -1 +1 @@
subdir ('svc')
subdir ('wels')
+1 -1
View File
@@ -5,7 +5,7 @@
#include "codec_app_def.h"
static const OpenH264Version g_stCodecVersion = {2, 2, 0, 2201};
static const char* const g_strCodecVer = "OpenH264 version:2.2.0.2201";
static const char* const g_strCodecVer = "OpenH264 version:2.3.1.2209";
#define OPENH264_MAJOR (2)
#define OPENH264_MINOR (2)
+592
View File
@@ -0,0 +1,592 @@
/*!
*@page License
*
* \copy
* Copyright (c) 2013, Cisco Systems
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifndef WELS_VIDEO_CODEC_SVC_API_H__
#define WELS_VIDEO_CODEC_SVC_API_H__
#ifndef __cplusplus
#if defined(_MSC_VER) && (_MSC_VER < 1800)
typedef unsigned char bool;
#else
#include <stdbool.h>
#endif
#endif
#include "codec_app_def.h"
#include "codec_def.h"
#if defined(_WIN32) || defined(__cdecl)
#define EXTAPI __cdecl
#else
#define EXTAPI
#endif
/**
* @file codec_api.h
*/
/**
* @page Overview
* * This page is for openh264 codec API usage.
* * For how to use the encoder,please refer to page UsageExampleForEncoder
* * For how to use the decoder,please refer to page UsageExampleForDecoder
* * For more detail about ISVEncoder,please refer to page ISVCEncoder
* * For more detail about ISVDecoder,please refer to page ISVCDecoder
*/
/**
* @page DecoderUsageExample
*
* @brief
* * An example for using the decoder for Decoding only or Parsing only
*
* Step 1:decoder declaration
* @code
*
* //decoder declaration
* ISVCDecoder *pSvcDecoder;
* //input: encoded bitstream start position; should include start code prefix
* unsigned char *pBuf =...;
* //input: encoded bit stream length; should include the size of start code prefix
* int iSize =...;
* //output: [0~2] for Y,U,V buffer for Decoding only
* unsigned char *pData[3] =...;
* //in-out: for Decoding only: declare and initialize the output buffer info, this should never co-exist with Parsing only
* SBufferInfo sDstBufInfo;
* memset(&sDstBufInfo, 0, sizeof(SBufferInfo));
* //in-out: for Parsing only: declare and initialize the output bitstream buffer info for parse only, this should never co-exist with Decoding only
* SParserBsInfo sDstParseInfo;
* memset(&sDstParseInfo, 0, sizeof(SParserBsInfo));
* sDstParseInfo.pDstBuff = new unsigned char[PARSE_SIZE]; //In Parsing only, allocate enough buffer to save transcoded bitstream for a frame
*
* @endcode
*
* Step 2:decoder creation
* @code
* WelsCreateDecoder(&pSvcDecoder);
* @endcode
*
* Step 3:declare required parameter, used to differentiate Decoding only and Parsing only
* @code
* SDecodingParam sDecParam = {0};
* sDecParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_AVC;
* //for Parsing only, the assignment is mandatory
* sDecParam.bParseOnly = true;
* @endcode
*
* Step 4:initialize the parameter and decoder context, allocate memory
* @code
* pSvcDecoder->Initialize(&sDecParam);
* @endcode
*
* Step 5:do actual decoding process in slice level;
* this can be done in a loop until data ends
* @code
* //for Decoding only
* iRet = pSvcDecoder->DecodeFrameNoDelay(pBuf, iSize, pData, &sDstBufInfo);
* //or
* iRet = pSvcDecoder->DecodeFrame2(pBuf, iSize, pData, &sDstBufInfo);
* //for Parsing only
* iRet = pSvcDecoder->DecodeParser(pBuf, iSize, &sDstParseInfo);
* //decode failed
* If (iRet != 0){
* //error handling (RequestIDR or something like that)
* }
* //for Decoding only, pData can be used for render.
* if (sDstBufInfo.iBufferStatus==1){
* //output handling (pData[0], pData[1], pData[2])
* }
* //for Parsing only, sDstParseInfo can be used for, e.g., HW decoding
* if (sDstBufInfo.iNalNum > 0){
* //Hardware decoding sDstParseInfo;
* }
* //no-delay decoding can be realized by directly calling DecodeFrameNoDelay(), which is the recommended usage.
* //no-delay decoding can also be realized by directly calling DecodeFrame2() again with NULL input, as in the following. In this case, decoder would immediately reconstruct the input data. This can also be used similarly for Parsing only. Consequent decoding error and output indication should also be considered as above.
* iRet = pSvcDecoder->DecodeFrame2(NULL, 0, pData, &sDstBufInfo);
* //judge iRet, sDstBufInfo.iBufferStatus ...
* @endcode
*
* Step 6:uninitialize the decoder and memory free
* @code
* pSvcDecoder->Uninitialize();
* @endcode
*
* Step 7:destroy the decoder
* @code
* DestroyDecoder(pSvcDecoder);
* @endcode
*
*/
/**
* @page EncoderUsageExample1
*
* @brief
* * An example for using encoder with basic parameter
*
* Step1:setup encoder
* @code
* ISVCEncoder* encoder_;
* int rv = WelsCreateSVCEncoder (&encoder_);
* assert (rv == 0);
* assert (encoder_ != NULL);
* @endcode
*
* Step2:initilize with basic parameter
* @code
* SEncParamBase param;
* memset (&param, 0, sizeof (SEncParamBase));
* param.iUsageType = usageType; //from EUsageType enum
* param.fMaxFrameRate = frameRate;
* param.iPicWidth = width;
* param.iPicHeight = height;
* param.iTargetBitrate = 5000000;
* encoder_->Initialize (&param);
* @endcode
*
* Step3:set option, set option during encoding process
* @code
* encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &g_LevelSetting);
* int videoFormat = videoFormatI420;
* encoder_->SetOption (ENCODER_OPTION_DATAFORMAT, &videoFormat);
* @endcode
*
* Step4: encode and store ouput bistream
* @code
* int frameSize = width * height * 3 / 2;
* BufferedData buf;
* buf.SetLength (frameSize);
* assert (buf.Length() == (size_t)frameSize);
* SFrameBSInfo info;
* memset (&info, 0, sizeof (SFrameBSInfo));
* SSourcePicture pic;
* memset (&pic, 0, sizeof (SsourcePicture));
* pic.iPicWidth = width;
* pic.iPicHeight = height;
* pic.iColorFormat = videoFormatI420;
* pic.iStride[0] = pic.iPicWidth;
* pic.iStride[1] = pic.iStride[2] = pic.iPicWidth >> 1;
* pic.pData[0] = buf.data();
* pic.pData[1] = pic.pData[0] + width * height;
* pic.pData[2] = pic.pData[1] + (width * height >> 2);
* for(int num = 0;num<total_num;num++) {
* //prepare input data
* rv = encoder_->EncodeFrame (&pic, &info);
* assert (rv == cmResultSuccess);
* if (info.eFrameType != videoFrameTypeSkip) {
* //output bitstream handling
* }
* }
* @endcode
*
* Step5:teardown encoder
* @code
* if (encoder_) {
* encoder_->Uninitialize();
* WelsDestroySVCEncoder (encoder_);
* }
* @endcode
*
*/
/**
* @page EncoderUsageExample2
*
* @brief
* * An example for using the encoder with extension parameter.
* * The same operation on Step 1,3,4,5 with Example-1
*
* Step 2:initialize with extension parameter
* @code
* SEncParamExt param;
* encoder_->GetDefaultParams (&param);
* param.iUsageType = usageType;
* param.fMaxFrameRate = frameRate;
* param.iPicWidth = width;
* param.iPicHeight = height;
* param.iTargetBitrate = 5000000;
* param.bEnableDenoise = denoise;
* param.iSpatialLayerNum = layers;
* //SM_DYN_SLICE don't support multi-thread now
* if (sliceMode != SM_SINGLE_SLICE && sliceMode != SM_DYN_SLICE)
* param.iMultipleThreadIdc = 2;
*
* for (int i = 0; i < param.iSpatialLayerNum; i++) {
* param.sSpatialLayers[i].iVideoWidth = width >> (param.iSpatialLayerNum - 1 - i);
* param.sSpatialLayers[i].iVideoHeight = height >> (param.iSpatialLayerNum - 1 - i);
* param.sSpatialLayers[i].fFrameRate = frameRate;
* param.sSpatialLayers[i].iSpatialBitrate = param.iTargetBitrate;
*
* param.sSpatialLayers[i].sSliceCfg.uiSliceMode = sliceMode;
* if (sliceMode == SM_DYN_SLICE) {
* param.sSpatialLayers[i].sSliceCfg.sSliceArgument.uiSliceSizeConstraint = 600;
* param.uiMaxNalSize = 1500;
* }
* }
* param.iTargetBitrate *= param.iSpatialLayerNum;
* encoder_->InitializeExt (&param);
* int videoFormat = videoFormatI420;
* encoder_->SetOption (ENCODER_OPTION_DATAFORMAT, &videoFormat);
*
* @endcode
*/
#ifdef __cplusplus
/**
* @brief Endocder definition
*/
class ISVCEncoder {
public:
/**
* @brief Initialize the encoder
* @param pParam basic encoder parameter
* @return CM_RETURN: 0 - success; otherwise - failed;
*/
virtual int EXTAPI Initialize (const SEncParamBase* pParam) = 0;
/**
* @brief Initilaize encoder by using extension parameters.
* @param pParam extension parameter for encoder
* @return CM_RETURN: 0 - success; otherwise - failed;
*/
virtual int EXTAPI InitializeExt (const SEncParamExt* pParam) = 0;
/**
* @brief Get the default extension parameters.
* If you want to change some parameters of encoder, firstly you need to get the default encoding parameters,
* after that you can change part of parameters you want to.
* @param pParam extension parameter for encoder
* @return CM_RETURN: 0 - success; otherwise - failed;
* */
virtual int EXTAPI GetDefaultParams (SEncParamExt* pParam) = 0;
/// uninitialize the encoder
virtual int EXTAPI Uninitialize() = 0;
/**
* @brief Encode one frame
* @param kpSrcPic the pointer to the source luminance plane
* chrominance data:
* CbData = kpSrc + m_iMaxPicWidth * m_iMaxPicHeight;
* CrData = CbData + (m_iMaxPicWidth * m_iMaxPicHeight)/4;
* the application calling this interface needs to ensure the data validation between the location
* @param pBsInfo output bit stream
* @return 0 - success; otherwise -failed;
*/
virtual int EXTAPI EncodeFrame (const SSourcePicture* kpSrcPic, SFrameBSInfo* pBsInfo) = 0;
/**
* @brief Encode the parameters from output bit stream
* @param pBsInfo output bit stream
* @return 0 - success; otherwise - failed;
*/
virtual int EXTAPI EncodeParameterSets (SFrameBSInfo* pBsInfo) = 0;
/**
* @brief Force encoder to encoder frame as IDR if bIDR set as true
* @param bIDR true: force encoder to encode frame as IDR frame;false, return 1 and nothing to do
* @return 0 - success; otherwise - failed;
*/
virtual int EXTAPI ForceIntraFrame (bool bIDR, int iLayerId = -1) = 0;
/**
* @brief Set option for encoder, detail option type, please refer to enumurate ENCODER_OPTION.
* @param pOption option for encoder such as InDataFormat, IDRInterval, SVC Encode Param, Frame Rate, Bitrate,...
* @return CM_RETURN: 0 - success; otherwise - failed;
*/
virtual int EXTAPI SetOption (ENCODER_OPTION eOptionId, void* pOption) = 0;
/**
* @brief Get option for encoder, detail option type, please refer to enumurate ENCODER_OPTION.
* @param pOption option for encoder such as InDataFormat, IDRInterval, SVC Encode Param, Frame Rate, Bitrate,...
* @return CM_RETURN: 0 - success; otherwise - failed;
*/
virtual int EXTAPI GetOption (ENCODER_OPTION eOptionId, void* pOption) = 0;
virtual ~ISVCEncoder() {}
};
/**
* @brief Decoder definition
*/
class ISVCDecoder {
public:
/**
* @brief Initilaize decoder
* @param pParam parameter for decoder
* @return 0 - success; otherwise - failed;
*/
virtual long EXTAPI Initialize (const SDecodingParam* pParam) = 0;
/// Uninitialize the decoder
virtual long EXTAPI Uninitialize() = 0;
/**
* @brief Decode one frame
* @param pSrc the h264 stream to be decoded
* @param iSrcLen the length of h264 stream
* @param ppDst buffer pointer of decoded data (YUV)
* @param pStride output stride
* @param iWidth output width
* @param iHeight output height
* @return 0 - success; otherwise -failed;
*/
virtual DECODING_STATE EXTAPI DecodeFrame (const unsigned char* pSrc,
const int iSrcLen,
unsigned char** ppDst,
int* pStride,
int& iWidth,
int& iHeight) = 0;
/**
* @brief For slice level DecodeFrameNoDelay() (4 parameters input),
* whatever the function return value is, the output data
* of I420 format will only be available when pDstInfo->iBufferStatus == 1,.
* This function will parse and reconstruct the input frame immediately if it is complete
* It is recommended as the main decoding function for H.264/AVC format input
* @param pSrc the h264 stream to be decoded
* @param iSrcLen the length of h264 stream
* @param ppDst buffer pointer of decoded data (YUV)
* @param pDstInfo information provided to API(width, height, etc.)
* @return 0 - success; otherwise -failed;
*/
virtual DECODING_STATE EXTAPI DecodeFrameNoDelay (const unsigned char* pSrc,
const int iSrcLen,
unsigned char** ppDst,
SBufferInfo* pDstInfo) = 0;
/**
* @brief For slice level DecodeFrame2() (4 parameters input),
* whatever the function return value is, the output data
* of I420 format will only be available when pDstInfo->iBufferStatus == 1,.
* (e.g., in multi-slice cases, only when the whole picture
* is completely reconstructed, this variable would be set equal to 1.)
* @param pSrc the h264 stream to be decoded
* @param iSrcLen the length of h264 stream
* @param ppDst buffer pointer of decoded data (YUV)
* @param pDstInfo information provided to API(width, height, etc.)
* @return 0 - success; otherwise -failed;
*/
virtual DECODING_STATE EXTAPI DecodeFrame2 (const unsigned char* pSrc,
const int iSrcLen,
unsigned char** ppDst,
SBufferInfo* pDstInfo) = 0;
/**
* @brief This function gets a decoded ready frame remaining in buffers after the last frame has been decoded.
* Use GetOption with option DECODER_OPTION_NUM_OF_FRAMES_REMAINING_IN_BUFFER to get the number of frames remaining in buffers.
* Note that it is only applicable for profile_idc != 66
* @param ppDst buffer pointer of decoded data (YUV)
* @param pDstInfo information provided to API(width, height, etc.)
* @return 0 - success; otherwise -failed;
*/
virtual DECODING_STATE EXTAPI FlushFrame (unsigned char** ppDst,
SBufferInfo* pDstInfo) = 0;
/**
* @brief This function parse input bitstream only, and rewrite possible SVC syntax to AVC syntax
* @param pSrc the h264 stream to be decoded
* @param iSrcLen the length of h264 stream
* @param pDstInfo bit stream info
* @return 0 - success; otherwise -failed;
*/
virtual DECODING_STATE EXTAPI DecodeParser (const unsigned char* pSrc,
const int iSrcLen,
SParserBsInfo* pDstInfo) = 0;
/**
* @brief This API does not work for now!! This is for future use to support non-I420 color format output.
* @param pSrc the h264 stream to be decoded
* @param iSrcLen the length of h264 stream
* @param pDst buffer pointer of decoded data (YUV)
* @param iDstStride output stride
* @param iDstLen bit stream info
* @param iWidth output width
* @param iHeight output height
* @param iColorFormat output color format
* @return to do ...
*/
virtual DECODING_STATE EXTAPI DecodeFrameEx (const unsigned char* pSrc,
const int iSrcLen,
unsigned char* pDst,
int iDstStride,
int& iDstLen,
int& iWidth,
int& iHeight,
int& iColorFormat) = 0;
/**
* @brief Set option for decoder, detail option type, please refer to enumurate DECODER_OPTION.
* @param pOption option for decoder such as OutDataFormat, Eos Flag, EC method, ...
* @return CM_RETURN: 0 - success; otherwise - failed;
*/
virtual long EXTAPI SetOption (DECODER_OPTION eOptionId, void* pOption) = 0;
/**
* @brief Get option for decoder, detail option type, please refer to enumurate DECODER_OPTION.
* @param pOption option for decoder such as OutDataFormat, Eos Flag, EC method, ...
* @return CM_RETURN: 0 - success; otherwise - failed;
*/
virtual long EXTAPI GetOption (DECODER_OPTION eOptionId, void* pOption) = 0;
virtual ~ISVCDecoder() {}
};
extern "C"
{
#else
typedef struct ISVCEncoderVtbl ISVCEncoderVtbl;
typedef const ISVCEncoderVtbl* ISVCEncoder;
struct ISVCEncoderVtbl {
int (*Initialize) (ISVCEncoder*, const SEncParamBase* pParam);
int (*InitializeExt) (ISVCEncoder*, const SEncParamExt* pParam);
int (*GetDefaultParams) (ISVCEncoder*, SEncParamExt* pParam);
int (*Uninitialize) (ISVCEncoder*);
int (*EncodeFrame) (ISVCEncoder*, const SSourcePicture* kpSrcPic, SFrameBSInfo* pBsInfo);
int (*EncodeParameterSets) (ISVCEncoder*, SFrameBSInfo* pBsInfo);
int (*ForceIntraFrame) (ISVCEncoder*, bool bIDR);
int (*SetOption) (ISVCEncoder*, ENCODER_OPTION eOptionId, void* pOption);
int (*GetOption) (ISVCEncoder*, ENCODER_OPTION eOptionId, void* pOption);
};
typedef struct ISVCDecoderVtbl ISVCDecoderVtbl;
typedef const ISVCDecoderVtbl* ISVCDecoder;
struct ISVCDecoderVtbl {
long (*Initialize) (ISVCDecoder*, const SDecodingParam* pParam);
long (*Uninitialize) (ISVCDecoder*);
DECODING_STATE (*DecodeFrame) (ISVCDecoder*, const unsigned char* pSrc,
const int iSrcLen,
unsigned char** ppDst,
int* pStride,
int* iWidth,
int* iHeight);
DECODING_STATE (*DecodeFrameNoDelay) (ISVCDecoder*, const unsigned char* pSrc,
const int iSrcLen,
unsigned char** ppDst,
SBufferInfo* pDstInfo);
DECODING_STATE (*DecodeFrame2) (ISVCDecoder*, const unsigned char* pSrc,
const int iSrcLen,
unsigned char** ppDst,
SBufferInfo* pDstInfo);
DECODING_STATE (*FlushFrame) (ISVCDecoder*, unsigned char** ppDst,
SBufferInfo* pDstInfo);
DECODING_STATE (*DecodeParser) (ISVCDecoder*, const unsigned char* pSrc,
const int iSrcLen,
SParserBsInfo* pDstInfo);
DECODING_STATE (*DecodeFrameEx) (ISVCDecoder*, const unsigned char* pSrc,
const int iSrcLen,
unsigned char* pDst,
int iDstStride,
int* iDstLen,
int* iWidth,
int* iHeight,
int* iColorFormat);
long (*SetOption) (ISVCDecoder*, DECODER_OPTION eOptionId, void* pOption);
long (*GetOption) (ISVCDecoder*, DECODER_OPTION eOptionId, void* pOption);
};
#endif
typedef void (*WelsTraceCallback) (void* ctx, int level, const char* string);
/** @brief Create encoder
* @param ppEncoder encoder
* @return 0 - success; otherwise - failed;
*/
int WelsCreateSVCEncoder (ISVCEncoder** ppEncoder);
/** @brief Destroy encoder
* @param pEncoder encoder
* @return void
*/
void WelsDestroySVCEncoder (ISVCEncoder* pEncoder);
/** @brief Get the capability of decoder
* @param pDecCapability decoder capability
* @return 0 - success; otherwise - failed;
*/
int WelsGetDecoderCapability (SDecoderCapability* pDecCapability);
/** @brief Create decoder
* @param ppDecoder decoder
* @return 0 - success; otherwise - failed;
*/
long WelsCreateDecoder (ISVCDecoder** ppDecoder);
/** @brief Destroy decoder
* @param pDecoder decoder
* @return void
*/
void WelsDestroyDecoder (ISVCDecoder* pDecoder);
/** @brief Get codec version
* Note, old versions of Mingw (GCC < 4.7) are buggy and use an
* incorrect/different ABI for calling this function, making it
* incompatible with MSVC builds.
* @return The linked codec version
*/
OpenH264Version WelsGetCodecVersion (void);
/** @brief Get codec version
* @param pVersion struct to fill in with the version
*/
void WelsGetCodecVersionEx (OpenH264Version* pVersion);
#ifdef __cplusplus
}
#endif
#endif//WELS_VIDEO_CODEC_SVC_API_H__
+812
View File
@@ -0,0 +1,812 @@
/*!
* \copy
* Copyright (c) 2013, Cisco Systems
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifndef WELS_VIDEO_CODEC_APPLICATION_DEFINITION_H__
#define WELS_VIDEO_CODEC_APPLICATION_DEFINITION_H__
/**
* @file codec_app_def.h
* @brief Data and /or structures introduced in Cisco OpenH264 application
*/
#include "codec_def.h"
/* Constants */
#define MAX_TEMPORAL_LAYER_NUM 4
#define MAX_SPATIAL_LAYER_NUM 4
#define MAX_QUALITY_LAYER_NUM 4
#define MAX_LAYER_NUM_OF_FRAME 128
#define MAX_NAL_UNITS_IN_LAYER 128 ///< predetermined here, adjust it later if need
#define MAX_RTP_PAYLOAD_LEN 1000
#define AVERAGE_RTP_PAYLOAD_LEN 800
#define SAVED_NALUNIT_NUM_TMP ( (MAX_SPATIAL_LAYER_NUM*MAX_QUALITY_LAYER_NUM) + 1 + MAX_SPATIAL_LAYER_NUM ) ///< SPS/PPS + SEI/SSEI + PADDING_NAL
#define MAX_SLICES_NUM_TMP ( ( MAX_NAL_UNITS_IN_LAYER - SAVED_NALUNIT_NUM_TMP ) / 3 )
#define AUTO_REF_PIC_COUNT -1 ///< encoder selects the number of reference frame automatically
#define UNSPECIFIED_BIT_RATE 0 ///< to do: add detail comment
/**
* @brief Struct of OpenH264 version
*/
///
/// E.g. SDK version is 1.2.0.0, major version number is 1, minor version number is 2, and revision number is 0.
typedef struct _tagVersion {
unsigned int uMajor; ///< The major version number
unsigned int uMinor; ///< The minor version number
unsigned int uRevision; ///< The revision number
unsigned int uReserved; ///< The reserved number, it should be 0.
} OpenH264Version;
/**
* @brief Decoding status
*/
typedef enum {
/**
* Errors derived from bitstream parsing
*/
dsErrorFree = 0x00, ///< bit stream error-free
dsFramePending = 0x01, ///< need more throughput to generate a frame output,
dsRefLost = 0x02, ///< layer lost at reference frame with temporal id 0
dsBitstreamError = 0x04, ///< error bitstreams(maybe broken internal frame) the decoder cared
dsDepLayerLost = 0x08, ///< dependented layer is ever lost
dsNoParamSets = 0x10, ///< no parameter set NALs involved
dsDataErrorConcealed = 0x20, ///< current data error concealed specified
dsRefListNullPtrs = 0x40, ///<ref picure list contains null ptrs within uiRefCount range
/**
* Errors derived from logic level
*/
dsInvalidArgument = 0x1000, ///< invalid argument specified
dsInitialOptExpected = 0x2000, ///< initializing operation is expected
dsOutOfMemory = 0x4000, ///< out of memory due to new request
/**
* ANY OTHERS?
*/
dsDstBufNeedExpan = 0x8000 ///< actual picture size exceeds size of dst pBuffer feed in decoder, so need expand its size
} DECODING_STATE;
/**
* @brief Option types introduced in SVC encoder application
*/
typedef enum {
ENCODER_OPTION_DATAFORMAT = 0,
ENCODER_OPTION_IDR_INTERVAL, ///< IDR period,0/-1 means no Intra period (only the first frame); lager than 0 means the desired IDR period, must be multiple of (2^temporal_layer)
ENCODER_OPTION_SVC_ENCODE_PARAM_BASE, ///< structure of Base Param
ENCODER_OPTION_SVC_ENCODE_PARAM_EXT, ///< structure of Extension Param
ENCODER_OPTION_FRAME_RATE, ///< maximal input frame rate, current supported range: MAX_FRAME_RATE = 30,MIN_FRAME_RATE = 1
ENCODER_OPTION_BITRATE,
ENCODER_OPTION_MAX_BITRATE,
ENCODER_OPTION_INTER_SPATIAL_PRED,
ENCODER_OPTION_RC_MODE,
ENCODER_OPTION_RC_FRAME_SKIP,
ENCODER_PADDING_PADDING, ///< 0:disable padding;1:padding
ENCODER_OPTION_PROFILE, ///< assgin the profile for each layer
ENCODER_OPTION_LEVEL, ///< assgin the level for each layer
ENCODER_OPTION_NUMBER_REF, ///< the number of refererence frame
ENCODER_OPTION_DELIVERY_STATUS, ///< the delivery info which is a feedback from app level
ENCODER_LTR_RECOVERY_REQUEST,
ENCODER_LTR_MARKING_FEEDBACK,
ENCODER_LTR_MARKING_PERIOD,
ENCODER_OPTION_LTR, ///< 0:disable LTR;larger than 0 enable LTR; LTR number is fixed to be 2 in current encoder
ENCODER_OPTION_COMPLEXITY,
ENCODER_OPTION_ENABLE_SSEI, ///< enable SSEI: true--enable ssei; false--disable ssei
ENCODER_OPTION_ENABLE_PREFIX_NAL_ADDING, ///< enable prefix: true--enable prefix; false--disable prefix
ENCODER_OPTION_SPS_PPS_ID_STRATEGY, ///< different stategy in adjust ID in SPS/PPS: 0- constant ID, 1-additional ID, 6-mapping and additional
ENCODER_OPTION_CURRENT_PATH,
ENCODER_OPTION_DUMP_FILE, ///< dump layer reconstruct frame to a specified file
ENCODER_OPTION_TRACE_LEVEL, ///< trace info based on the trace level
ENCODER_OPTION_TRACE_CALLBACK, ///< a void (*)(void* context, int level, const char* message) function which receives log messages
ENCODER_OPTION_TRACE_CALLBACK_CONTEXT, ///< context info of trace callback
ENCODER_OPTION_GET_STATISTICS, ///< read only
ENCODER_OPTION_STATISTICS_LOG_INTERVAL, ///< log interval in millisecond
ENCODER_OPTION_IS_LOSSLESS_LINK, ///< advanced algorithmetic settings
ENCODER_OPTION_BITS_VARY_PERCENTAGE ///< bit vary percentage
} ENCODER_OPTION;
/**
* @brief Option types introduced in decoder application
*/
typedef enum {
DECODER_OPTION_END_OF_STREAM = 1, ///< end of stream flag
DECODER_OPTION_VCL_NAL, ///< feedback whether or not have VCL NAL in current AU for application layer
DECODER_OPTION_TEMPORAL_ID, ///< feedback temporal id for application layer
DECODER_OPTION_FRAME_NUM, ///< feedback current decoded frame number
DECODER_OPTION_IDR_PIC_ID, ///< feedback current frame belong to which IDR period
DECODER_OPTION_LTR_MARKING_FLAG, ///< feedback wether current frame mark a LTR
DECODER_OPTION_LTR_MARKED_FRAME_NUM, ///< feedback frame num marked by current Frame
DECODER_OPTION_ERROR_CON_IDC, ///< indicate decoder error concealment method
DECODER_OPTION_TRACE_LEVEL,
DECODER_OPTION_TRACE_CALLBACK, ///< a void (*)(void* context, int level, const char* message) function which receives log messages
DECODER_OPTION_TRACE_CALLBACK_CONTEXT,///< context info of trace callbac
DECODER_OPTION_GET_STATISTICS, ///< feedback decoder statistics
DECODER_OPTION_GET_SAR_INFO, ///< feedback decoder Sample Aspect Ratio info in Vui
DECODER_OPTION_PROFILE, ///< get current AU profile info, only is used in GetOption
DECODER_OPTION_LEVEL, ///< get current AU level info,only is used in GetOption
DECODER_OPTION_STATISTICS_LOG_INTERVAL,///< set log output interval
DECODER_OPTION_IS_REF_PIC, ///< feedback current frame is ref pic or not
DECODER_OPTION_NUM_OF_FRAMES_REMAINING_IN_BUFFER, ///< number of frames remaining in decoder buffer when pictures are required to re-ordered into display-order.
DECODER_OPTION_NUM_OF_THREADS, ///< number of decoding threads. The maximum thread count is equal or less than lesser of (cpu core counts and 16).
} DECODER_OPTION;
/**
* @brief Enumerate the type of error concealment methods
*/
typedef enum {
ERROR_CON_DISABLE = 0,
ERROR_CON_FRAME_COPY,
ERROR_CON_SLICE_COPY,
ERROR_CON_FRAME_COPY_CROSS_IDR,
ERROR_CON_SLICE_COPY_CROSS_IDR,
ERROR_CON_SLICE_COPY_CROSS_IDR_FREEZE_RES_CHANGE,
ERROR_CON_SLICE_MV_COPY_CROSS_IDR,
ERROR_CON_SLICE_MV_COPY_CROSS_IDR_FREEZE_RES_CHANGE
} ERROR_CON_IDC;
/**
* @brief Feedback that whether or not have VCL NAL in current AU
*/
typedef enum {
FEEDBACK_NON_VCL_NAL = 0,
FEEDBACK_VCL_NAL,
FEEDBACK_UNKNOWN_NAL
} FEEDBACK_VCL_NAL_IN_AU;
/**
* @brief Type of layer being encoded
*/
typedef enum {
NON_VIDEO_CODING_LAYER = 0,
VIDEO_CODING_LAYER = 1
} LAYER_TYPE;
/**
* @brief Spatial layer num
*/
typedef enum {
SPATIAL_LAYER_0 = 0,
SPATIAL_LAYER_1 = 1,
SPATIAL_LAYER_2 = 2,
SPATIAL_LAYER_3 = 3,
SPATIAL_LAYER_ALL = 4
} LAYER_NUM;
/**
* @brief Enumerate the type of video bitstream which is provided to decoder
*/
typedef enum {
VIDEO_BITSTREAM_AVC = 0,
VIDEO_BITSTREAM_SVC = 1,
VIDEO_BITSTREAM_DEFAULT = VIDEO_BITSTREAM_SVC
} VIDEO_BITSTREAM_TYPE;
/**
* @brief Enumerate the type of key frame request
*/
typedef enum {
NO_RECOVERY_REQUSET = 0,
LTR_RECOVERY_REQUEST = 1,
IDR_RECOVERY_REQUEST = 2,
NO_LTR_MARKING_FEEDBACK = 3,
LTR_MARKING_SUCCESS = 4,
LTR_MARKING_FAILED = 5
} KEY_FRAME_REQUEST_TYPE;
/**
* @brief Structure for LTR recover request
*/
typedef struct {
unsigned int uiFeedbackType; ///< IDR request or LTR recovery request
unsigned int uiIDRPicId; ///< distinguish request from different IDR
int iLastCorrectFrameNum;
int iCurrentFrameNum; ///< specify current decoder frame_num.
int iLayerId; //specify the layer for recovery request
} SLTRRecoverRequest;
/**
* @brief Structure for LTR marking feedback
*/
typedef struct {
unsigned int uiFeedbackType; ///< mark failed or successful
unsigned int uiIDRPicId; ///< distinguish request from different IDR
int iLTRFrameNum; ///< specify current decoder frame_num
int iLayerId; //specify the layer for LTR marking feedback
} SLTRMarkingFeedback;
/**
* @brief Structure for LTR configuration
*/
typedef struct {
bool bEnableLongTermReference; ///< 1: on, 0: off
int iLTRRefNum; ///< TODO: not supported to set it arbitrary yet
} SLTRConfig;
/**
* @brief Enumerate the type of rate control mode
*/
typedef enum {
RC_QUALITY_MODE = 0, ///< quality mode
RC_BITRATE_MODE = 1, ///< bitrate mode
RC_BUFFERBASED_MODE = 2, ///< no bitrate control,only using buffer status,adjust the video quality
RC_TIMESTAMP_MODE = 3, //rate control based timestamp
RC_BITRATE_MODE_POST_SKIP = 4, ///< this is in-building RC MODE, WILL BE DELETED after algorithm tuning!
RC_OFF_MODE = -1, ///< rate control off mode
} RC_MODES;
/**
* @brief Enumerate the type of profile id
*/
typedef enum {
PRO_UNKNOWN = 0,
PRO_BASELINE = 66,
PRO_MAIN = 77,
PRO_EXTENDED = 88,
PRO_HIGH = 100,
PRO_HIGH10 = 110,
PRO_HIGH422 = 122,
PRO_HIGH444 = 144,
PRO_CAVLC444 = 244,
PRO_SCALABLE_BASELINE = 83,
PRO_SCALABLE_HIGH = 86
} EProfileIdc;
/**
* @brief Enumerate the type of level id
*/
typedef enum {
LEVEL_UNKNOWN = 0,
LEVEL_1_0 = 10,
LEVEL_1_B = 9,
LEVEL_1_1 = 11,
LEVEL_1_2 = 12,
LEVEL_1_3 = 13,
LEVEL_2_0 = 20,
LEVEL_2_1 = 21,
LEVEL_2_2 = 22,
LEVEL_3_0 = 30,
LEVEL_3_1 = 31,
LEVEL_3_2 = 32,
LEVEL_4_0 = 40,
LEVEL_4_1 = 41,
LEVEL_4_2 = 42,
LEVEL_5_0 = 50,
LEVEL_5_1 = 51,
LEVEL_5_2 = 52
} ELevelIdc;
/**
* @brief Enumerate the type of wels log
*/
enum {
WELS_LOG_QUIET = 0x00, ///< quiet mode
WELS_LOG_ERROR = 1 << 0, ///< error log iLevel
WELS_LOG_WARNING = 1 << 1, ///< Warning log iLevel
WELS_LOG_INFO = 1 << 2, ///< information log iLevel
WELS_LOG_DEBUG = 1 << 3, ///< debug log, critical algo log
WELS_LOG_DETAIL = 1 << 4, ///< per packet/frame log
WELS_LOG_RESV = 1 << 5, ///< resversed log iLevel
WELS_LOG_LEVEL_COUNT = 6,
WELS_LOG_DEFAULT = WELS_LOG_WARNING ///< default log iLevel in Wels codec
};
/**
* @brief Enumerate the type of slice mode
*/
typedef enum {
SM_SINGLE_SLICE = 0, ///< | SliceNum==1
SM_FIXEDSLCNUM_SLICE = 1, ///< | according to SliceNum | enabled dynamic slicing for multi-thread
SM_RASTER_SLICE = 2, ///< | according to SlicesAssign | need input of MB numbers each slice. In addition, if other constraint in SSliceArgument is presented, need to follow the constraints. Typically if MB num and slice size are both constrained, re-encoding may be involved.
SM_SIZELIMITED_SLICE = 3, ///< | according to SliceSize | slicing according to size, the slicing will be dynamic(have no idea about slice_nums until encoding current frame)
SM_RESERVED = 4
} SliceModeEnum;
/**
* @brief Structure for slice argument
*/
typedef struct {
SliceModeEnum uiSliceMode; ///< by default, uiSliceMode will be SM_SINGLE_SLICE
unsigned int
uiSliceNum; ///< only used when uiSliceMode=1, when uiSliceNum=0 means auto design it with cpu core number
unsigned int
uiSliceMbNum[MAX_SLICES_NUM_TMP]; ///< only used when uiSliceMode=2; when =0 means setting one MB row a slice
unsigned int uiSliceSizeConstraint; ///< now only used when uiSliceMode=4
} SSliceArgument;
/**
* @brief Enumerate the type of video format
*/
typedef enum {
VF_COMPONENT,
VF_PAL,
VF_NTSC,
VF_SECAM,
VF_MAC,
VF_UNDEF,
VF_NUM_ENUM
} EVideoFormatSPS; // EVideoFormat is already defined/used elsewhere!
/**
* @brief Enumerate the type of color primaries
*/
typedef enum {
CP_RESERVED0,
CP_BT709,
CP_UNDEF,
CP_RESERVED3,
CP_BT470M,
CP_BT470BG,
CP_SMPTE170M,
CP_SMPTE240M,
CP_FILM,
CP_BT2020,
CP_NUM_ENUM
} EColorPrimaries;
/**
* @brief Enumerate the type of transfer characteristics
*/
typedef enum {
TRC_RESERVED0,
TRC_BT709,
TRC_UNDEF,
TRC_RESERVED3,
TRC_BT470M,
TRC_BT470BG,
TRC_SMPTE170M,
TRC_SMPTE240M,
TRC_LINEAR,
TRC_LOG100,
TRC_LOG316,
TRC_IEC61966_2_4,
TRC_BT1361E,
TRC_IEC61966_2_1,
TRC_BT2020_10,
TRC_BT2020_12,
TRC_NUM_ENUM
} ETransferCharacteristics;
/**
* @brief Enumerate the type of color matrix
*/
typedef enum {
CM_GBR,
CM_BT709,
CM_UNDEF,
CM_RESERVED3,
CM_FCC,
CM_BT470BG,
CM_SMPTE170M,
CM_SMPTE240M,
CM_YCGCO,
CM_BT2020NC,
CM_BT2020C,
CM_NUM_ENUM
} EColorMatrix;
/**
* @brief Enumerate the type of sample aspect ratio
*/
typedef enum {
ASP_UNSPECIFIED = 0,
ASP_1x1 = 1,
ASP_12x11 = 2,
ASP_10x11 = 3,
ASP_16x11 = 4,
ASP_40x33 = 5,
ASP_24x11 = 6,
ASP_20x11 = 7,
ASP_32x11 = 8,
ASP_80x33 = 9,
ASP_18x11 = 10,
ASP_15x11 = 11,
ASP_64x33 = 12,
ASP_160x99 = 13,
ASP_EXT_SAR = 255
} ESampleAspectRatio;
/**
* @brief Structure for spatial layer configuration
*/
typedef struct {
int iVideoWidth; ///< width of picture in luminance samples of a layer
int iVideoHeight; ///< height of picture in luminance samples of a layer
float fFrameRate; ///< frame rate specified for a layer
int iSpatialBitrate; ///< target bitrate for a spatial layer, in unit of bps
int iMaxSpatialBitrate; ///< maximum bitrate for a spatial layer, in unit of bps
EProfileIdc uiProfileIdc; ///< value of profile IDC (PRO_UNKNOWN for auto-detection)
ELevelIdc uiLevelIdc; ///< value of profile IDC (0 for auto-detection)
int iDLayerQp; ///< value of level IDC (0 for auto-detection)
SSliceArgument sSliceArgument;
// Note: members bVideoSignalTypePresent through uiColorMatrix below are also defined in SWelsSPS in parameter_sets.h.
bool bVideoSignalTypePresent; // false => do not write any of the following information to the header
unsigned char
uiVideoFormat; // EVideoFormatSPS; 3 bits in header; 0-5 => component, kpal, ntsc, secam, mac, undef
bool bFullRange; // false => analog video data range [16, 235]; true => full data range [0,255]
bool bColorDescriptionPresent; // false => do not write any of the following three items to the header
unsigned char
uiColorPrimaries; // EColorPrimaries; 8 bits in header; 0 - 9 => ???, bt709, undef, ???, bt470m, bt470bg,
// smpte170m, smpte240m, film, bt2020
unsigned char
uiTransferCharacteristics; // ETransferCharacteristics; 8 bits in header; 0 - 15 => ???, bt709, undef, ???, bt470m, bt470bg, smpte170m,
// smpte240m, linear, log100, log316, iec61966-2-4, bt1361e, iec61966-2-1, bt2020-10, bt2020-12
unsigned char
uiColorMatrix; // EColorMatrix; 8 bits in header (corresponds to FFmpeg "colorspace"); 0 - 10 => GBR, bt709,
// undef, ???, fcc, bt470bg, smpte170m, smpte240m, YCgCo, bt2020nc, bt2020c
bool bAspectRatioPresent; ///< aspect ratio present in VUI
ESampleAspectRatio eAspectRatio; ///< aspect ratio idc
unsigned short sAspectRatioExtWidth; ///< use if aspect ratio idc == 255
unsigned short sAspectRatioExtHeight; ///< use if aspect ratio idc == 255
} SSpatialLayerConfig;
/**
* @brief Encoder usage type
*/
typedef enum {
CAMERA_VIDEO_REAL_TIME, ///< camera video for real-time communication
SCREEN_CONTENT_REAL_TIME, ///< screen content signal
CAMERA_VIDEO_NON_REAL_TIME,
SCREEN_CONTENT_NON_REAL_TIME,
INPUT_CONTENT_TYPE_ALL,
} EUsageType;
/**
* @brief Enumulate the complexity mode
*/
typedef enum {
LOW_COMPLEXITY = 0, ///< the lowest compleixty,the fastest speed,
MEDIUM_COMPLEXITY, ///< medium complexity, medium speed,medium quality
HIGH_COMPLEXITY ///< high complexity, lowest speed, high quality
} ECOMPLEXITY_MODE;
/**
* @brief Enumulate for the stategy of SPS/PPS strategy
*/
typedef enum {
CONSTANT_ID = 0, ///< constant id in SPS/PPS
INCREASING_ID = 0x01, ///< SPS/PPS id increases at each IDR
SPS_LISTING = 0x02, ///< using SPS in the existing list if possible
SPS_LISTING_AND_PPS_INCREASING = 0x03,
SPS_PPS_LISTING = 0x06,
} EParameterSetStrategy;
// TODO: Refine the parameters definition.
/**
* @brief SVC Encoding Parameters
*/
typedef struct TagEncParamBase {
EUsageType
iUsageType; ///< application type; please refer to the definition of EUsageType
int iPicWidth; ///< width of picture in luminance samples (the maximum of all layers if multiple spatial layers presents)
int iPicHeight; ///< height of picture in luminance samples((the maximum of all layers if multiple spatial layers presents)
int iTargetBitrate; ///< target bitrate desired, in unit of bps
RC_MODES iRCMode; ///< rate control mode
float fMaxFrameRate; ///< maximal input frame rate
} SEncParamBase, *PEncParamBase;
/**
* @brief SVC Encoding Parameters extention
*/
typedef struct TagEncParamExt {
EUsageType
iUsageType; ///< same as in TagEncParamBase
int iPicWidth; ///< same as in TagEncParamBase
int iPicHeight; ///< same as in TagEncParamBase
int iTargetBitrate; ///< same as in TagEncParamBase
RC_MODES iRCMode; ///< same as in TagEncParamBase
float fMaxFrameRate; ///< same as in TagEncParamBase
int iTemporalLayerNum; ///< temporal layer number, max temporal layer = 4
int iSpatialLayerNum; ///< spatial layer number,1<= iSpatialLayerNum <= MAX_SPATIAL_LAYER_NUM, MAX_SPATIAL_LAYER_NUM = 4
SSpatialLayerConfig sSpatialLayers[MAX_SPATIAL_LAYER_NUM];
ECOMPLEXITY_MODE iComplexityMode;
unsigned int uiIntraPeriod; ///< period of Intra frame
int iNumRefFrame; ///< number of reference frame used
EParameterSetStrategy
eSpsPpsIdStrategy; ///< different stategy in adjust ID in SPS/PPS: 0- constant ID, 1-additional ID, 6-mapping and additional
bool bPrefixNalAddingCtrl; ///< false:not use Prefix NAL; true: use Prefix NAL
bool bEnableSSEI; ///< false:not use SSEI; true: use SSEI -- TODO: planning to remove the interface of SSEI
bool bSimulcastAVC; ///< (when encoding more than 1 spatial layer) false: use SVC syntax for higher layers; true: use Simulcast AVC
int iPaddingFlag; ///< 0:disable padding;1:padding
int iEntropyCodingModeFlag; ///< 0:CAVLC 1:CABAC.
/* rc control */
bool bEnableFrameSkip; ///< False: don't skip frame even if VBV buffer overflow.True: allow skipping frames to keep the bitrate within limits
int iMaxBitrate; ///< the maximum bitrate, in unit of bps, set it to UNSPECIFIED_BIT_RATE if not needed
int iMaxQp; ///< the maximum QP encoder supports
int iMinQp; ///< the minmum QP encoder supports
unsigned int uiMaxNalSize; ///< the maximum NAL size. This value should be not 0 for dynamic slice mode
/*LTR settings*/
bool bEnableLongTermReference; ///< 1: on, 0: off
int iLTRRefNum; ///< the number of LTR(long term reference),TODO: not supported to set it arbitrary yet
unsigned int iLtrMarkPeriod; ///< the LTR marked period that is used in feedback.
/* multi-thread settings*/
unsigned short
iMultipleThreadIdc; ///< 1 # 0: auto(dynamic imp. internal encoder); 1: multiple threads imp. disabled; lager than 1: count number of threads;
bool bUseLoadBalancing; ///< only used when uiSliceMode=1 or 3, will change slicing of a picture during the run-time of multi-thread encoding, so the result of each run may be different
/* Deblocking loop filter */
int iLoopFilterDisableIdc; ///< 0: on, 1: off, 2: on except for slice boundaries
int iLoopFilterAlphaC0Offset; ///< AlphaOffset: valid range [-6, 6], default 0
int iLoopFilterBetaOffset; ///< BetaOffset: valid range [-6, 6], default 0
/*pre-processing feature*/
bool bEnableDenoise; ///< denoise control
bool bEnableBackgroundDetection; ///< background detection control //VAA_BACKGROUND_DETECTION //BGD cmd
bool bEnableAdaptiveQuant; ///< adaptive quantization control
bool bEnableFrameCroppingFlag; ///< enable frame cropping flag: TRUE always in application
bool bEnableSceneChangeDetect;
bool bIsLosslessLink; ///< LTR advanced setting
bool bFixRCOverShoot; ///< fix rate control overshooting
int iIdrBitrateRatio; ///< the target bits of IDR is (idr_bitrate_ratio/100) * average target bit per frame.
} SEncParamExt;
/**
* @brief Define a new struct to show the property of video bitstream.
*/
typedef struct {
unsigned int size; ///< size of the struct
VIDEO_BITSTREAM_TYPE eVideoBsType; ///< video stream type (AVC/SVC)
} SVideoProperty;
/**
* @brief SVC Decoding Parameters, reserved here and potential applicable in the future
*/
typedef struct TagSVCDecodingParam {
char* pFileNameRestructed; ///< file name of reconstructed frame used for PSNR calculation based debug
unsigned int uiCpuLoad; ///< CPU load
unsigned char uiTargetDqLayer; ///< setting target dq layer id
ERROR_CON_IDC eEcActiveIdc; ///< whether active error concealment feature in decoder
bool bParseOnly; ///< decoder for parse only, no reconstruction. When it is true, SPS/PPS size should not exceed SPS_PPS_BS_SIZE (128). Otherwise, it will return error info
SVideoProperty sVideoProperty; ///< video stream property
} SDecodingParam, *PDecodingParam;
/**
* @brief Bitstream inforamtion of a layer being encoded
*/
typedef struct {
unsigned char uiTemporalId;
unsigned char uiSpatialId;
unsigned char uiQualityId;
EVideoFrameType eFrameType;
unsigned char uiLayerType;
/**
* The sub sequence layers are ordered hierarchically based on their dependency on each other so that any picture in a layer shall not be
* predicted from any picture on any higher layer.
*/
int iSubSeqId; ///< refer to D.2.11 Sub-sequence information SEI message semantics
int iNalCount; ///< count number of NAL coded already
int* pNalLengthInByte; ///< length of NAL size in byte from 0 to iNalCount-1
unsigned char* pBsBuf; ///< buffer of bitstream contained
} SLayerBSInfo, *PLayerBSInfo;
/**
* @brief Frame bit stream info
*/
typedef struct {
int iLayerNum;
SLayerBSInfo sLayerInfo[MAX_LAYER_NUM_OF_FRAME];
EVideoFrameType eFrameType;
int iFrameSizeInBytes;
long long uiTimeStamp;
} SFrameBSInfo, *PFrameBSInfo;
/**
* @brief Structure for source picture
*/
typedef struct Source_Picture_s {
int iColorFormat; ///< color space type
int iStride[4]; ///< stride for each plane pData
unsigned char* pData[4]; ///< plane pData
int iPicWidth; ///< luma picture width in x coordinate
int iPicHeight; ///< luma picture height in y coordinate
long long uiTimeStamp; ///< timestamp of the source picture, unit: millisecond
} SSourcePicture;
/**
* @brief Structure for bit rate info
*/
typedef struct TagBitrateInfo {
LAYER_NUM iLayer;
int iBitrate; ///< the maximum bitrate
} SBitrateInfo;
/**
* @brief Structure for dump layer info
*/
typedef struct TagDumpLayer {
int iLayer;
char* pFileName;
} SDumpLayer;
/**
* @brief Structure for profile info in layer
*
*/
typedef struct TagProfileInfo {
int iLayer;
EProfileIdc uiProfileIdc; ///< the profile info
} SProfileInfo;
/**
* @brief Structure for level info in layer
*
*/
typedef struct TagLevelInfo {
int iLayer;
ELevelIdc uiLevelIdc; ///< the level info
} SLevelInfo;
/**
* @brief Structure for dilivery status
*
*/
typedef struct TagDeliveryStatus {
bool bDeliveryFlag; ///< 0: the previous frame isn't delivered,1: the previous frame is delivered
int iDropFrameType; ///< the frame type that is dropped; reserved
int iDropFrameSize; ///< the frame size that is dropped; reserved
} SDeliveryStatus;
/**
* @brief The capability of decoder, for SDP negotiation
*/
typedef struct TagDecoderCapability {
int iProfileIdc; ///< profile_idc
int iProfileIop; ///< profile-iop
int iLevelIdc; ///< level_idc
int iMaxMbps; ///< max-mbps
int iMaxFs; ///< max-fs
int iMaxCpb; ///< max-cpb
int iMaxDpb; ///< max-dpb
int iMaxBr; ///< max-br
bool bRedPicCap; ///< redundant-pic-cap
} SDecoderCapability;
/**
* @brief Structure for parse only output
*/
typedef struct TagParserBsInfo {
int iNalNum; ///< total NAL number in current AU
int* pNalLenInByte; ///< each nal length
unsigned char* pDstBuff; ///< outputted dst buffer for parsed bitstream
int iSpsWidthInPixel; ///< required SPS width info
int iSpsHeightInPixel; ///< required SPS height info
unsigned long long uiInBsTimeStamp; ///< input BS timestamp
unsigned long long uiOutBsTimeStamp; ///< output BS timestamp
} SParserBsInfo, *PParserBsInfo;
/**
* @brief Structure for encoder statistics
*/
typedef struct TagVideoEncoderStatistics {
unsigned int uiWidth; ///< the width of encoded frame
unsigned int uiHeight; ///< the height of encoded frame
//following standard, will be 16x aligned, if there are multiple spatial, this is of the highest
float fAverageFrameSpeedInMs; ///< average_Encoding_Time
// rate control related
float fAverageFrameRate; ///< the average frame rate in, calculate since encoding starts, supposed that the input timestamp is in unit of ms
float fLatestFrameRate; ///< the frame rate in, in the last second, supposed that the input timestamp is in unit of ms (? useful for checking BR, but is it easy to calculate?
unsigned int uiBitRate; ///< sendrate in Bits per second, calculated within the set time-window
unsigned int uiAverageFrameQP; ///< the average QP of last encoded frame
unsigned int uiInputFrameCount; ///< number of frames
unsigned int uiSkippedFrameCount; ///< number of frames
unsigned int uiResolutionChangeTimes; ///< uiResolutionChangeTimes
unsigned int uiIDRReqNum; ///< number of IDR requests
unsigned int uiIDRSentNum; ///< number of actual IDRs sent
unsigned int uiLTRSentNum; ///< number of LTR sent/marked
long long iStatisticsTs; ///< Timestamp of updating the statistics
unsigned long iTotalEncodedBytes;
unsigned long iLastStatisticsBytes;
unsigned long iLastStatisticsFrameCount;
} SEncoderStatistics;
/**
* @brief Structure for decoder statistics
*/
typedef struct TagVideoDecoderStatistics {
unsigned int uiWidth; ///< the width of encode/decode frame
unsigned int uiHeight; ///< the height of encode/decode frame
float fAverageFrameSpeedInMs; ///< average_Decoding_Time
float fActualAverageFrameSpeedInMs; ///< actual average_Decoding_Time, including freezing pictures
unsigned int uiDecodedFrameCount; ///< number of frames
unsigned int uiResolutionChangeTimes; ///< uiResolutionChangeTimes
unsigned int uiIDRCorrectNum; ///< number of correct IDR received
//EC on related
unsigned int
uiAvgEcRatio; ///< when EC is on, the average ratio of total EC areas, can be an indicator of reconstruction quality
unsigned int
uiAvgEcPropRatio; ///< when EC is on, the rough average ratio of propogate EC areas, can be an indicator of reconstruction quality
unsigned int uiEcIDRNum; ///< number of actual unintegrity IDR or not received but eced
unsigned int uiEcFrameNum; ///<
unsigned int uiIDRLostNum; ///< number of whole lost IDR
unsigned int
uiFreezingIDRNum; ///< number of freezing IDR with error (partly received), under resolution change
unsigned int uiFreezingNonIDRNum; ///< number of freezing non-IDR with error
int iAvgLumaQp; ///< average luma QP. default: -1, no correct frame outputted
int iSpsReportErrorNum; ///< number of Sps Invalid report
int iSubSpsReportErrorNum; ///< number of SubSps Invalid report
int iPpsReportErrorNum; ///< number of Pps Invalid report
int iSpsNoExistNalNum; ///< number of Sps NoExist Nal
int iSubSpsNoExistNalNum; ///< number of SubSps NoExist Nal
int iPpsNoExistNalNum; ///< number of Pps NoExist Nal
unsigned int uiProfile; ///< Profile idc in syntax
unsigned int uiLevel; ///< level idc according to Annex A-1
int iCurrentActiveSpsId; ///< current active SPS id
int iCurrentActivePpsId; ///< current active PPS id
unsigned int iStatisticsLogInterval; ///< frame interval of statistics log
} SDecoderStatistics; // in building, coming soon
/**
* @brief Structure for sample aspect ratio (SAR) info in VUI
*/
typedef struct TagVuiSarInfo {
unsigned int uiSarWidth; ///< SAR width
unsigned int uiSarHeight; ///< SAR height
bool bOverscanAppropriateFlag; ///< SAR overscan flag
} SVuiSarInfo, *PVuiSarInfo;
#endif//WELS_VIDEO_CODEC_APPLICATION_DEFINITION_H__
+216
View File
@@ -0,0 +1,216 @@
/*!
* \copy
* Copyright (c) 2013, Cisco Systems
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifndef WELS_VIDEO_CODEC_DEFINITION_H__
#define WELS_VIDEO_CODEC_DEFINITION_H__
/**
* @file codec_def.h
*/
/**
* @brief Enumerate the type of video format
*/
typedef enum {
videoFormatRGB = 1, ///< rgb color formats
videoFormatRGBA = 2,
videoFormatRGB555 = 3,
videoFormatRGB565 = 4,
videoFormatBGR = 5,
videoFormatBGRA = 6,
videoFormatABGR = 7,
videoFormatARGB = 8,
videoFormatYUY2 = 20, ///< yuv color formats
videoFormatYVYU = 21,
videoFormatUYVY = 22,
videoFormatI420 = 23, ///< the same as IYUV
videoFormatYV12 = 24,
videoFormatInternal = 25, ///< only used in SVC decoder testbed
videoFormatNV12 = 26, ///< new format for output by DXVA decoding
videoFormatVFlip = 0x80000000
} EVideoFormatType;
/**
* @brief Enumerate video frame type
*/
typedef enum {
videoFrameTypeInvalid, ///< encoder not ready or parameters are invalidate
videoFrameTypeIDR, ///< IDR frame in H.264
videoFrameTypeI, ///< I frame type
videoFrameTypeP, ///< P frame type
videoFrameTypeSkip, ///< skip the frame based encoder kernel
videoFrameTypeIPMixed ///< a frame where I and P slices are mixing, not supported yet
} EVideoFrameType;
/**
* @brief Enumerate return type
*/
typedef enum {
cmResultSuccess, ///< successful
cmInitParaError, ///< parameters are invalid
cmUnknownReason,
cmMallocMemeError, ///< malloc a memory error
cmInitExpected, ///< initial action is expected
cmUnsupportedData
} CM_RETURN;
/**
* @brief Enumulate the nal unit type
*/
enum ENalUnitType {
NAL_UNKNOWN = 0,
NAL_SLICE = 1,
NAL_SLICE_DPA = 2,
NAL_SLICE_DPB = 3,
NAL_SLICE_DPC = 4,
NAL_SLICE_IDR = 5, ///< ref_idc != 0
NAL_SEI = 6, ///< ref_idc == 0
NAL_SPS = 7,
NAL_PPS = 8
///< ref_idc == 0 for 6,9,10,11,12
};
/**
* @brief NRI: eNalRefIdc
*/
enum ENalPriority {
NAL_PRIORITY_DISPOSABLE = 0,
NAL_PRIORITY_LOW = 1,
NAL_PRIORITY_HIGH = 2,
NAL_PRIORITY_HIGHEST = 3
};
#define IS_PARAMETER_SET_NAL(eNalRefIdc, eNalType) \
( (eNalRefIdc == NAL_PRIORITY_HIGHEST) && (eNalType == (NAL_SPS|NAL_PPS) || eNalType == NAL_SPS) )
#define IS_IDR_NAL(eNalRefIdc, eNalType) \
( (eNalRefIdc == NAL_PRIORITY_HIGHEST) && (eNalType == NAL_SLICE_IDR) )
#define FRAME_NUM_PARAM_SET (-1)
#define FRAME_NUM_IDR 0
/**
* @brief eDeblockingIdc
*/
enum {
DEBLOCKING_IDC_0 = 0,
DEBLOCKING_IDC_1 = 1,
DEBLOCKING_IDC_2 = 2
};
#define DEBLOCKING_OFFSET (6)
#define DEBLOCKING_OFFSET_MINUS (-6)
/* Error Tools definition */
typedef unsigned short ERR_TOOL;
/**
@brief to do
*/
enum {
ET_NONE = 0x00, ///< NONE Error Tools
ET_IP_SCALE = 0x01, ///< IP Scalable
ET_FMO = 0x02, ///< Flexible Macroblock Ordering
ET_IR_R1 = 0x04, ///< Intra Refresh in predifined 2% MB
ET_IR_R2 = 0x08, ///< Intra Refresh in predifined 5% MB
ET_IR_R3 = 0x10, ///< Intra Refresh in predifined 10% MB
ET_FEC_HALF = 0x20, ///< Forward Error Correction in 50% redundency mode
ET_FEC_FULL = 0x40, ///< Forward Error Correction in 100% redundency mode
ET_RFS = 0x80 ///< Reference Frame Selection
};
/**
* @brief Information of coded Slice(=NAL)(s)
*/
typedef struct SliceInformation {
unsigned char* pBufferOfSlices; ///< base buffer of coded slice(s)
int iCodedSliceCount; ///< number of coded slices
unsigned int* pLengthOfSlices; ///< array of slices length accordingly by number of slice
int iFecType; ///< FEC type[0, 50%FEC, 100%FEC]
unsigned char uiSliceIdx; ///< index of slice in frame [FMO: 0,..,uiSliceCount-1; No FMO: 0]
unsigned char uiSliceCount; ///< count number of slice in frame [FMO: 2-8; No FMO: 1]
char iFrameIndex; ///< index of frame[-1, .., idr_interval-1]
unsigned char uiNalRefIdc; ///< NRI, priority level of slice(NAL)
unsigned char uiNalType; ///< NAL type
unsigned char
uiContainingFinalNal; ///< whether final NAL is involved in buffer of coded slices, flag used in Pause feature in T27
} SliceInfo, *PSliceInfo;
/**
* @brief thresholds of the initial, maximal and minimal rate
*/
typedef struct {
int iWidth; ///< frame width
int iHeight; ///< frame height
int iThresholdOfInitRate; ///< threshold of initial rate
int iThresholdOfMaxRate; ///< threshold of maximal rate
int iThresholdOfMinRate; ///< threshold of minimal rate
int iMinThresholdFrameRate; ///< min frame rate min
int iSkipFrameRate; ///< skip to frame rate min
int iSkipFrameStep; ///< how many frames to skip
} SRateThresholds, *PRateThresholds;
/**
* @brief Structure for decoder memery
*/
typedef struct TagSysMemBuffer {
int iWidth; ///< width of decoded pic for display
int iHeight; ///< height of decoded pic for display
int iFormat; ///< type is "EVideoFormatType"
int iStride[2]; ///< stride of 2 component
} SSysMEMBuffer;
/**
* @brief Buffer info
*/
typedef struct TagBufferInfo {
int iBufferStatus; ///< 0: one frame data is not ready; 1: one frame data is ready
unsigned long long uiInBsTimeStamp; ///< input BS timestamp
unsigned long long uiOutYuvTimeStamp; ///< output YUV timestamp, when bufferstatus is 1
union {
SSysMEMBuffer sSystemBuffer; ///< memory info for one picture
} UsrData; ///< output buffer info
unsigned char* pDst[3]; //point to picture YUV data
} SBufferInfo;
/**
* @brief In a GOP, multiple of the key frame number, derived from
* the number of layers(index or array below)
*/
static const char kiKeyNumMultiple[] = {
1, 1, 2, 4, 8, 16,
};
#endif//WELS_VIDEO_CODEC_DEFINITION_H__
+15
View File
@@ -0,0 +1,15 @@
//The current file is auto-generated by script: generate_codec_ver.sh
#ifndef CODEC_VER_H
#define CODEC_VER_H
#include "codec_app_def.h"
static const OpenH264Version g_stCodecVersion = {2, 3, 1, 2209};
static const char* const g_strCodecVer = "OpenH264 version:2.3.1.2209";
#define OPENH264_MAJOR (2)
#define OPENH264_MINOR (3)
#define OPENH264_REVISION (1)
#define OPENH264_RESERVED (2209)
#endif // CODEC_VER_H
+9
View File
@@ -0,0 +1,9 @@
headers = [
'codec_api.h',
'codec_app_def.h',
'codec_def.h',
'codec_ver.h',
]
install_headers(headers,
subdir: 'wels')
+1 -1
View File
@@ -32,7 +32,7 @@ LOCAL_SRC_FILES := \
# Header Includes
#
LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/../../../../api/svc \
$(LOCAL_PATH)/../../../../api/wels \
$(LOCAL_PATH)/../../../../console/dec/inc \
$(LOCAL_PATH)/../../../../console/common/inc \
$(LOCAL_PATH)/../../../../common/inc
+1 -1
View File
@@ -32,7 +32,7 @@ LOCAL_SRC_FILES := \
# Header Includes
#
LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/../../../../api/svc \
$(LOCAL_PATH)/../../../../api/wels \
$(LOCAL_PATH)/../../../../console/enc/inc \
$(LOCAL_PATH)/../../../../console/common/inc \
$(LOCAL_PATH)/../../../../encoder/core/inc \
+1 -1
View File
@@ -54,7 +54,7 @@ echo "" >>codec_ver.h
echo "#endif // CODEC_VER_H" >>codec_ver.h
mv -f codec_ver.h ../api/svc/codec_ver.h
mv -f codec_ver.h ../api/wels/codec_ver.h
# Ignore non-utf8 chars in the input
export LC_ALL=C
@@ -407,7 +407,7 @@
HEADER_SEARCH_PATHS = (
"$(inherited)",
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
"$(SRCROOT)/../../../api/svc",
"$(SRCROOT)/../../../api/wels",
);
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -439,7 +439,7 @@
HEADER_SEARCH_PATHS = (
"$(inherited)",
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
"$(SRCROOT)/../../../api/svc",
"$(SRCROOT)/../../../api/wels",
);
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -428,7 +428,7 @@
);
HEADER_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/../../../../api/svc\"",
"\"$(SRCROOT)/../../../../api/wels\"",
"\"$(SRCROOT)/../../../../common/inc\"",
);
INFOPLIST_FILE = "demo/demo-Info.plist";
@@ -448,7 +448,7 @@
GCC_PREPROCESSOR_DEFINITIONS = APPLE_IOS;
HEADER_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/../../../../api/svc\"",
"\"$(SRCROOT)/../../../../api/wels\"",
"\"$(SRCROOT)/../../../../common/inc\"",
);
INFOPLIST_FILE = "demo/demo-Info.plist";
@@ -464,7 +464,7 @@
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../../../../common/inc",
"$(SRCROOT)/../../../../api/svc",
"$(SRCROOT)/../../../../api/wels",
"$(SRCROOT)/../../../../common/arm",
"$(SRCROOT)/../../../../common/arm64",
);
@@ -498,7 +498,7 @@
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../../../../common/inc",
"$(SRCROOT)/../../../../api/svc",
"$(SRCROOT)/../../../../api/wels",
"$(SRCROOT)/../../../../common/arm",
"$(SRCROOT)/../../../../common/arm64",
);
@@ -474,7 +474,7 @@
GCC_PREPROCESSOR_DEFINITIONS = APPLE_IOS;
HEADER_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/../../../../api/svc\"",
"\"$(SRCROOT)/../../../../api/wels\"",
"\"$(SRCROOT)/../../../../common/inc\"",
"\"$(SRCROOT)/../../../../processing/interface\"",
"\"$(SRCROOT)/../../../../encoder/core/inc\"",
@@ -493,7 +493,7 @@
GCC_PREPROCESSOR_DEFINITIONS = APPLE_IOS;
HEADER_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/../../../../api/svc\"",
"\"$(SRCROOT)/../../../../api/wels\"",
"\"$(SRCROOT)/../../../../common/inc\"",
"\"$(SRCROOT)/../../../../processing/interface\"",
"\"$(SRCROOT)/../../../../encoder/core/inc\"",
@@ -582,7 +582,7 @@
"$(inherited)",
"$(SRCROOT)/../../../../common/inc",
"$(SRCROOT)/../../../../processing/interface",
"$(SRCROOT)/../../../../api/svc",
"$(SRCROOT)/../../../../api/wels",
"$(SRCROOT)/../../../../common/arm",
"$(SRCROOT)/../../../../common/arm64",
);
@@ -619,7 +619,7 @@
"$(inherited)",
"$(SRCROOT)/../../../../common/inc",
"$(SRCROOT)/../../../../processing/interface",
"$(SRCROOT)/../../../../api/svc",
"$(SRCROOT)/../../../../api/wels",
"$(SRCROOT)/../../../../common/arm",
"$(SRCROOT)/../../../../common/arm64",
);
+4 -4
View File
@@ -54,7 +54,7 @@
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\decoder\core\inc;..\..\..\common\inc;..\..\..\api\svc"
AdditionalIncludeDirectories="..\..\..\decoder\core\inc;..\..\..\common\inc;..\..\..\api\wels"
PreprocessorDefinitions="NDEBUG;_LIB;X86_ASM"
StringPooling="true"
RuntimeLibrary="0"
@@ -127,7 +127,7 @@
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\decoder\core\inc;..\..\..\common\inc;..\..\..\api\svc"
AdditionalIncludeDirectories="..\..\..\decoder\core\inc;..\..\..\common\inc;..\..\..\api\wels"
PreprocessorDefinitions="NDEBUG;_LIB;X86_ASM"
StringPooling="true"
RuntimeLibrary="0"
@@ -197,7 +197,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\decoder\core\inc;..\..\..\common\inc;..\..\..\api\svc"
AdditionalIncludeDirectories="..\..\..\decoder\core\inc;..\..\..\common\inc;..\..\..\api\wels"
PreprocessorDefinitions="_DEBUG;_LIB;X86_ASM"
MinimalRebuild="true"
BasicRuntimeChecks="3"
@@ -268,7 +268,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\decoder\core\inc;..\..\..\common\inc;..\..\..\api\svc"
AdditionalIncludeDirectories="..\..\..\decoder\core\inc;..\..\..\common\inc;..\..\..\api\wels"
PreprocessorDefinitions="_DEBUG;_LIB;X86_ASM"
MinimalRebuild="true"
BasicRuntimeChecks="3"
+4 -4
View File
@@ -48,7 +48,7 @@
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\decoder\plus\inc;..\..\..\decoder\core\inc;..\..\..\api\svc;..\..\..\common\inc"
AdditionalIncludeDirectories="..\..\..\decoder\plus\inc;..\..\..\decoder\core\inc;..\..\..\api\wels;..\..\..\common\inc"
PreprocessorDefinitions="NDEBUG;_USRDLL;X86_ASM"
StringPooling="true"
RuntimeLibrary="0"
@@ -131,7 +131,7 @@
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\decoder\plus\inc;..\..\..\decoder\core\inc;..\..\..\api\svc;..\..\..\common\inc"
AdditionalIncludeDirectories="..\..\..\decoder\plus\inc;..\..\..\decoder\core\inc;..\..\..\api\wels;..\..\..\common\inc"
PreprocessorDefinitions="NDEBUG;_USRDLL;X86_ASM"
StringPooling="true"
RuntimeLibrary="0"
@@ -212,7 +212,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\decoder\plus\inc;..\..\..\decoder\core\inc;..\..\..\api\svc;..\..\..\common\inc"
AdditionalIncludeDirectories="..\..\..\decoder\plus\inc;..\..\..\decoder\core\inc;..\..\..\api\wels;..\..\..\common\inc"
PreprocessorDefinitions="_DEBUG;_USRDLL;X86_ASM"
MinimalRebuild="true"
BasicRuntimeChecks="3"
@@ -293,7 +293,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\decoder\plus\inc;..\..\..\decoder\core\inc;..\..\..\api\svc;..\..\..\common\inc"
AdditionalIncludeDirectories="..\..\..\decoder\plus\inc;..\..\..\decoder\core\inc;..\..\..\api\wels;..\..\..\common\inc"
PreprocessorDefinitions="_DEBUG;_USRDLL;X86_ASM"
MinimalRebuild="true"
BasicRuntimeChecks="3"
+4 -4
View File
@@ -47,7 +47,7 @@
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\console\dec\inc,..\..\..\console\common\inc,..\..\..\api\svc,..\..\..\common\inc"
AdditionalIncludeDirectories="..\..\..\console\dec\inc,..\..\..\console\common\inc,..\..\..\api\wels,..\..\..\common\inc"
PreprocessorDefinitions="NDEBUG;_CONSOLE"
StringPooling="true"
RuntimeLibrary="0"
@@ -129,7 +129,7 @@
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\console\dec\inc,..\..\..\console\common\inc,..\..\..\api\svc,..\..\..\common\inc"
AdditionalIncludeDirectories="..\..\..\console\dec\inc,..\..\..\console\common\inc,..\..\..\api\wels,..\..\..\common\inc"
PreprocessorDefinitions="NDEBUG;_CONSOLE"
StringPooling="true"
RuntimeLibrary="0"
@@ -210,7 +210,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\console\dec\inc,..\..\..\console\common\inc,..\..\..\api\svc,..\..\..\common\inc"
AdditionalIncludeDirectories="..\..\..\console\dec\inc,..\..\..\console\common\inc,..\..\..\api\wels,..\..\..\common\inc"
PreprocessorDefinitions="_DEBUG;_CONSOLE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
@@ -291,7 +291,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\console\dec\inc,..\..\..\console\common\inc,..\..\..\api\svc,..\..\..\common\inc"
AdditionalIncludeDirectories="..\..\..\console\dec\inc,..\..\..\console\common\inc,..\..\..\api\wels,..\..\..\common\inc"
PreprocessorDefinitions="_DEBUG;_CONSOLE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
+4 -4
View File
@@ -52,7 +52,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\common\inc;..\..\..\encoder\core\inc,..\..\..\api\svc;..\..\..\processing\interface"
AdditionalIncludeDirectories="..\..\..\common\inc;..\..\..\encoder\core\inc,..\..\..\api\wels;..\..\..\processing\interface"
PreprocessorDefinitions="_DEBUG;_LIB;X86_ASM"
MinimalRebuild="true"
BasicRuntimeChecks="3"
@@ -125,7 +125,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\common\inc;..\..\..\encoder\core\inc,..\..\..\api\svc;..\..\..\processing\interface"
AdditionalIncludeDirectories="..\..\..\common\inc;..\..\..\encoder\core\inc,..\..\..\api\wels;..\..\..\processing\interface"
PreprocessorDefinitions="_DEBUG;_LIB;X86_ASM"
MinimalRebuild="true"
BasicRuntimeChecks="3"
@@ -200,7 +200,7 @@
Optimization="3"
InlineFunctionExpansion="2"
FavorSizeOrSpeed="1"
AdditionalIncludeDirectories="..\..\..\common\inc;..\..\..\encoder\core\inc,..\..\..\api\svc;..\..\..\processing\interface"
AdditionalIncludeDirectories="..\..\..\common\inc;..\..\..\encoder\core\inc,..\..\..\api\wels;..\..\..\processing\interface"
PreprocessorDefinitions="NDEBUG;_LIB;X86_ASM"
StringPooling="true"
RuntimeLibrary="0"
@@ -276,7 +276,7 @@
Optimization="3"
InlineFunctionExpansion="2"
FavorSizeOrSpeed="1"
AdditionalIncludeDirectories="..\..\..\common\inc;..\..\..\encoder\core\inc,..\..\..\api\svc;..\..\..\processing\interface"
AdditionalIncludeDirectories="..\..\..\common\inc;..\..\..\encoder\core\inc,..\..\..\api\wels;..\..\..\processing\interface"
PreprocessorDefinitions="NDEBUG;_LIB;X86_ASM"
StringPooling="true"
RuntimeLibrary="0"
+4 -4
View File
@@ -46,7 +46,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\encoder\plus\inc;..\..\..\encoder\core\inc;..\..\..\api\svc;..\..\..\common\inc;..\..\..\processing\interface"
AdditionalIncludeDirectories="..\..\..\encoder\plus\inc;..\..\..\encoder\core\inc;..\..\..\api\wels;..\..\..\common\inc;..\..\..\processing\interface"
PreprocessorDefinitions="_DEBUG;_USRDLL;X86_ASM"
MinimalRebuild="true"
BasicRuntimeChecks="3"
@@ -128,7 +128,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\encoder\plus\inc;..\..\..\encoder\core\inc;..\..\..\api\svc;..\..\..\common\inc;..\..\..\processing\interface"
AdditionalIncludeDirectories="..\..\..\encoder\plus\inc;..\..\..\encoder\core\inc;..\..\..\api\wels;..\..\..\common\inc;..\..\..\processing\interface"
PreprocessorDefinitions="_DEBUG;_USRDLL;X86_ASM"
MinimalRebuild="true"
BasicRuntimeChecks="3"
@@ -213,7 +213,7 @@
Optimization="3"
InlineFunctionExpansion="2"
FavorSizeOrSpeed="1"
AdditionalIncludeDirectories="..\..\..\encoder\plus\inc;..\..\..\encoder\core\inc;..\..\..\api\svc;..\..\..\common\inc;..\..\..\processing\interface"
AdditionalIncludeDirectories="..\..\..\encoder\plus\inc;..\..\..\encoder\core\inc;..\..\..\api\wels;..\..\..\common\inc;..\..\..\processing\interface"
PreprocessorDefinitions="NDEBUG;_USRDLL;X86_ASM"
StringPooling="true"
RuntimeLibrary="0"
@@ -298,7 +298,7 @@
Optimization="3"
InlineFunctionExpansion="2"
FavorSizeOrSpeed="1"
AdditionalIncludeDirectories="..\..\..\encoder\plus\inc;..\..\..\encoder\core\inc;..\..\..\api\svc;..\..\..\common\inc;..\..\..\processing\interface"
AdditionalIncludeDirectories="..\..\..\encoder\plus\inc;..\..\..\encoder\core\inc;..\..\..\api\wels;..\..\..\common\inc;..\..\..\processing\interface"
PreprocessorDefinitions="NDEBUG;_USRDLL;X86_ASM"
StringPooling="true"
RuntimeLibrary="0"
+4 -4
View File
@@ -46,7 +46,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\console\enc\inc,..\..\..\console\common\inc,..\..\..\api\svc,..\..\..\encoder\core\inc,..\..\..\common\inc,..\..\..\processing\interface"
AdditionalIncludeDirectories="..\..\..\console\enc\inc,..\..\..\console\common\inc,..\..\..\api\wels,..\..\..\encoder\core\inc,..\..\..\common\inc,..\..\..\processing\interface"
PreprocessorDefinitions="_DEBUG;_CONSOLE;"
MinimalRebuild="true"
BasicRuntimeChecks="3"
@@ -127,7 +127,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\console\enc\inc,..\..\..\console\common\inc,..\..\..\api\svc,..\..\..\encoder\core\inc,..\..\..\common\inc,..\..\..\processing\interface"
AdditionalIncludeDirectories="..\..\..\console\enc\inc,..\..\..\console\common\inc,..\..\..\api\wels,..\..\..\encoder\core\inc,..\..\..\common\inc,..\..\..\processing\interface"
PreprocessorDefinitions="_DEBUG;_CONSOLE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
@@ -209,7 +209,7 @@
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\console\enc\inc,..\..\..\console\common\inc,..\..\..\api\svc,..\..\..\encoder\core\inc,..\..\..\common\inc,..\..\..\processing\interface"
AdditionalIncludeDirectories="..\..\..\console\enc\inc,..\..\..\console\common\inc,..\..\..\api\wels,..\..\..\encoder\core\inc,..\..\..\common\inc,..\..\..\processing\interface"
PreprocessorDefinitions="NDEBUG;_CONSOLE;X86_ASM;"
StringPooling="true"
RuntimeLibrary="0"
@@ -291,7 +291,7 @@
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\console\enc\inc,..\..\..\console\common\inc,..\..\..\api\svc,..\..\..\encoder\core\inc,..\..\..\common\inc,..\..\..\processing\interface"
AdditionalIncludeDirectories="..\..\..\console\enc\inc,..\..\..\console\common\inc,..\..\..\api\wels,..\..\..\encoder\core\inc,..\..\..\common\inc,..\..\..\processing\interface"
PreprocessorDefinitions="NDEBUG;_CONSOLE"
StringPooling="true"
RuntimeLibrary="0"
@@ -101,7 +101,7 @@
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<AdditionalUsingDirectories>$(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
<CompileAsWinRT>true</CompileAsWinRT>
<AdditionalIncludeDirectories>..\..\..\console\dec\inc;..\..\..\console\common\inc;..\..\..\api\svc;..\..\..\common\inc;..\..\..\console\enc\inc;..\..\..\encoder\core\inc;..\..\..\processing\interface</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\..\..\console\dec\inc;..\..\..\console\common\inc;..\..\..\api\wels;..\..\..\common\inc;..\..\..\console\enc\inc;..\..\..\encoder\core\inc;..\..\..\processing\interface</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
@@ -119,7 +119,7 @@
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<AdditionalUsingDirectories>$(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
<CompileAsWinRT>true</CompileAsWinRT>
<AdditionalIncludeDirectories>..\..\..\console\dec\inc;..\..\..\console\common\inc;..\..\..\api\svc;..\..\..\common\inc;..\..\..\console\enc\inc;..\..\..\encoder\core\inc;..\..\..\processing\interface</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\..\..\console\dec\inc;..\..\..\console\common\inc;..\..\..\api\wels;..\..\..\common\inc;..\..\..\console\enc\inc;..\..\..\encoder\core\inc;..\..\..\processing\interface</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
+12
View File
@@ -105,6 +105,18 @@ void DeblockChromaLt4H_msa (uint8_t* pPixCb, uint8_t* pPixCr, int32_t iStride, i
int8_t* pTC);
void WelsNonZeroCount_msa (int8_t* pNonZeroCount);
#endif//HAVE_MSA
#if defined(HAVE_LSX)
void DeblockLumaLt4V_lsx (uint8_t* pPixY, int32_t iStride, int32_t iAlpha, int32_t iBeta, int8_t* pTc);
void DeblockLumaLt4H_lsx (uint8_t* pPixY, int32_t iStride, int32_t iAlpha, int32_t iBeta, int8_t* pTc);
void DeblockLumaEq4V_lsx (uint8_t* pPixY, int32_t iStride, int32_t iAlpha, int32_t iBeta);
void DeblockLumaEq4H_lsx (uint8_t* pPixY, int32_t iStride, int32_t iAlpha, int32_t iBeta);
void DeblockChromaEq4H_lsx (uint8_t* pPixCb, uint8_t* pPixCr, int32_t iStride, int32_t iAlpha, int32_t iBeta);
void DeblockChromaLt4V_lsx (uint8_t* pPixCb, uint8_t* pPixCr, int32_t iStride, int32_t iAlpha, int32_t iBeta,
int8_t* pTC);
void DeblockChromaLt4H_lsx (uint8_t* pPixCb, uint8_t* pPixCr, int32_t iStride, int32_t iAlpha, int32_t iBeta,
int8_t* pTC);
#endif//HAVE_LSX
#if defined(__cplusplus)
}
#endif//__cplusplus
+5
View File
@@ -72,6 +72,11 @@ void WelsI16x16LumaPredH_AArch64_neon (uint8_t* pPred, uint8_t* pRef, const int3
void WelsI16x16LumaPredV_mmi (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
void WelsI16x16LumaPredH_mmi (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
#endif//HAVE_MMI
#if defined(HAVE_LSX)
void WelsI16x16LumaPredV_lsx (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
void WelsI16x16LumaPredH_lsx (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
#endif//HAVE_LSX
#if defined(__cplusplus)
}
#endif//__cplusplus
File diff suppressed because it is too large Load Diff
+30
View File
@@ -368,6 +368,36 @@ void McChromaWidthEq4_lsx (const uint8_t *pSrc, int32_t iSrcStride, uint8_t *pDs
const uint8_t *pABCD, int32_t iHeight);
void McChromaWidthEq8_lsx (const uint8_t *pSrc, int32_t iSrcStride, uint8_t *pDst, int32_t iDstStride,
const uint8_t *pABCD, int32_t iHeight);
void PixelAvgWidthEq4_lsx (uint8_t* pDst, int32_t iDstStride, const uint8_t* pSrcA, int32_t iSrcAStride,
const uint8_t* pSrcB, int32_t iSrcBStride, int32_t iHeight);
void PixelAvgWidthEq8_lsx (uint8_t* pDst, int32_t iDstStride, const uint8_t* pSrcA, int32_t iSrcAStride,
const uint8_t* pSrcB, int32_t iSrcBStride, int32_t iHeight);
void PixelAvgWidthEq16_lsx (uint8_t* pDst, int32_t iDstStride, const uint8_t* pSrcA, int32_t iSrcAStride,
const uint8_t* pSrcB, int32_t iSrcBStride, int32_t iHeight);
void McHorVer02WidthEq8_lsx (const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst, int32_t iDstStride,
int32_t iHeight);
void McHorVer02WidthEq16_lsx (const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst, int32_t iDstStride,
int32_t iHeight);
void McHorVer20WidthEq4_lsx (const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst, int32_t iDstStride,
int32_t iHeight);
void McHorVer20WidthEq5_lsx (const uint8_t *pSrc, int32_t iSrcStride, uint8_t *pDst, int32_t iDstStride,
int32_t iHeight);
void McHorVer20WidthEq8_lsx (const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst, int32_t iDstStride,
int32_t iHeight);
void McHorVer20WidthEq9_lsx (const uint8_t *pSrc, int32_t iSrcStride, uint8_t *pDst, int32_t iDstStride,
int32_t iHeight);
void McHorVer20WidthEq17_lsx (const uint8_t *pSrc, int32_t iSrcStride, uint8_t *pDst, int32_t iDstStride,
int iHeight);
void McHorVer20WidthEq16_lsx (const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst, int32_t iDstStride,
int32_t iHeight);
void McHorVer22WidthEq5_lsx(const uint8_t *pSrc, int32_t iSrcStride, uint8_t *pDst, int32_t iDstStride,
int32_t iHeight);
void McHorVer22WidthEq8_lsx (const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst, int32_t iDstStride,
int32_t iHeight);
void McHorVer22WidthEq9_lsx (const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst, int32_t iDstStride,
int32_t iHeight);
void McHorVer22WidthEq17_lsx (const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst, int32_t iDstStride,
int32_t iHeight);
#endif//HAVE_LSX
#if defined(__cplusplus)
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,91 @@
/*!
**********************************************************************************
* Copyright (c) 2022 Loongson Technology Corporation Limited
* Contributed by Lu Wang <wanglu@loongson.cn>
*
* \copy
* Copyright (c) 2009-2013, Cisco Systems
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*
* \file intra_pred_com_lsx.c
*
* \brief Loongson optimization
*
* \date 03/03/2022 Created
*
*************************************************************************************
*/
#include <stdint.h>
#include "loongson_intrinsics.h"
void WelsI16x16LumaPredV_lsx (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride) {
const int8_t* kpSrc = (int8_t*)&pRef[-kiStride];
const uint64_t kuiT1 = *(uint64_t*)kpSrc;
const uint64_t kuiT2 = *(uint64_t*)(kpSrc + 8);
uint8_t* pDst = pPred;
__m128i kuiT_vec, kuiT1_vec, kuiT2_vec;
kuiT1_vec = __lsx_vreplgr2vr_d(kuiT1);
kuiT2_vec = __lsx_vreplgr2vr_d(kuiT2);
kuiT_vec = __lsx_vpackev_d(kuiT2_vec, kuiT1_vec);
__lsx_vst(kuiT_vec, pDst, 0);
__lsx_vstx(kuiT_vec, pDst, 16);
__lsx_vstx(kuiT_vec, pDst, 32);
__lsx_vstx(kuiT_vec, pDst, 48);
__lsx_vstx(kuiT_vec, pDst, 64);
__lsx_vstx(kuiT_vec, pDst, 80);
__lsx_vstx(kuiT_vec, pDst, 96);
__lsx_vstx(kuiT_vec, pDst, 112);
__lsx_vstx(kuiT_vec, pDst, 128);
__lsx_vstx(kuiT_vec, pDst, 144);
__lsx_vstx(kuiT_vec, pDst, 160);
__lsx_vstx(kuiT_vec, pDst, 176);
__lsx_vstx(kuiT_vec, pDst, 192);
__lsx_vstx(kuiT_vec, pDst, 208);
__lsx_vstx(kuiT_vec, pDst, 224);
__lsx_vstx(kuiT_vec, pDst, 240);
}
void WelsI16x16LumaPredH_lsx (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride) {
int32_t iStridex15 = (kiStride << 4) - kiStride;
int32_t iPredStride = 16;
int32_t iPredStridex15 = 240; //(iPredStride<<4)-iPredStride;
uint8_t i = 15;
__m128i kuiV64_vec;
do {
const uint8_t kuiSrc8 = pRef[iStridex15 - 1];
kuiV64_vec = __lsx_vreplgr2vr_b(kuiSrc8);
__lsx_vstx(kuiV64_vec, pPred, iPredStridex15);
iStridex15 -= kiStride;
iPredStridex15 -= iPredStride;
} while (i-- > 0);
}
+654
View File
@@ -0,0 +1,654 @@
/*!
*************************************************************************************
* Copyright (c) 2022 Loongson Technology Corporation Limited
* Contributed by Jin Bo <jinbo@loongson.cn>
*
* \copy
* Copyright (c) 2022, Cisco Systems
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*
* \file mc_horver_lsx.c
*
* \brief Loongson optimization
*
* \date 3/3/2022 Created
*
*************************************************************************************
*/
#include <stdint.h>
#include "loongson_intrinsics.h"
#define FILTER_INPUT_8BIT(_in0, _in1, _in2, _in3, \
_in4, _in5, _out0) \
do { \
__m128i _tmp; \
_in0 = __lsx_vadd_h(_in0, _in5); \
_in1 = __lsx_vadd_h(_in1, _in4); \
_in2 = __lsx_vadd_h(_in2, _in3); \
_tmp = __lsx_vslli_h(_in1, 2); \
_in1 = __lsx_vadd_h(_tmp, _in1); \
_in0 = __lsx_vsub_h(_in0, _in1); \
_tmp = __lsx_vslli_h(_in2, 4); \
_in0 = __lsx_vadd_h(_in0, _tmp); \
_tmp = __lsx_vslli_h(_in2, 2); \
_out0 = __lsx_vadd_h(_in0, _tmp); \
}while(0)
#define HOR_FILTER_INPUT_16BIT(_in0, _in1, _in2, _in3, \
_in4, _in5, _out0) \
do { \
__m128i _pi05, _pi14, _pi23, _temp; \
_pi05 = __lsx_vadd_w(_in0, _in5); \
_pi14 = __lsx_vadd_w(_in1, _in4); \
_pi23 = __lsx_vadd_w(_in2, _in3); \
_temp = __lsx_vslli_w(_pi14, 2); \
_pi14 = __lsx_vadd_w(_temp, _pi14); \
_pi05 = __lsx_vsub_w(_pi05, _pi14); \
_temp = __lsx_vslli_w(_pi23, 4); \
_pi05 = __lsx_vadd_w(_pi05, _temp); \
_temp = __lsx_vslli_w(_pi23, 2); \
_out0 = __lsx_vadd_w(_pi05, _temp); \
}while(0)
void PixelAvgWidthEq4_lsx(uint8_t *pDst, int32_t iDstStride, const uint8_t *pSrcA,
int32_t iSrcAStride, const uint8_t *pSrcB, int32_t iSrcBStride,
int32_t iHeight ) {
int32_t i;
__m128i src0, src1;
for (i = 0; i < iHeight; i++) {
src0 = __lsx_vldrepl_w(pSrcA, 0);
src1 = __lsx_vldrepl_w(pSrcB, 0);
pSrcA += iSrcAStride;
pSrcB += iSrcBStride;
src0 = __lsx_vavgr_bu(src0, src1);
__lsx_vstelm_w(src0, pDst, 0, 0);
pDst += iDstStride;
}
}
void PixelAvgWidthEq8_lsx(uint8_t *pDst, int32_t iDstStride, const uint8_t *pSrcA,
int32_t iSrcAStride, const uint8_t *pSrcB, int32_t iSrcBStride,
int32_t iHeight ) {
int32_t i;
__m128i src0, src1, src2, src3;
for (i = 0; i < iHeight; i += 2) {
src0 = __lsx_vldrepl_d(pSrcA, 0);
src1 = __lsx_vldrepl_d(pSrcB, 0);
pSrcA += iSrcAStride;
pSrcB += iSrcBStride;
src0 = __lsx_vavgr_bu(src0, src1);
src2 = __lsx_vldrepl_d(pSrcA, 0);
src3 = __lsx_vldrepl_d(pSrcB, 0);
pSrcA += iSrcAStride;
pSrcB += iSrcBStride;
src2 = __lsx_vavgr_bu(src2, src3);
__lsx_vstelm_d(src0, pDst, 0, 0);
pDst += iDstStride;
__lsx_vstelm_d(src2, pDst, 0, 0);
pDst += iDstStride;
}
}
void PixelAvgWidthEq16_lsx(uint8_t *pDst, int32_t iDstStride, const uint8_t *pSrcA,
int32_t iSrcAStride, const uint8_t *pSrcB, int32_t iSrcBStride,
int32_t iHeight ) {
int32_t i;
__m128i src0, src1, src2, src3;
__m128i src4, src5, src6, src7;
for (i = 0; i < iHeight; i += 4) {
src0 = __lsx_vld(pSrcA, 0);
src1 = __lsx_vld(pSrcB, 0);
pSrcA += iSrcAStride;
pSrcB += iSrcBStride;
src0 = __lsx_vavgr_bu(src0, src1);
src2 = __lsx_vld(pSrcA, 0);
src3 = __lsx_vld(pSrcB, 0);
pSrcA += iSrcAStride;
pSrcB += iSrcBStride;
src2 = __lsx_vavgr_bu(src2, src3);
src4 = __lsx_vld(pSrcA, 0);
src5 = __lsx_vld(pSrcB, 0);
pSrcA += iSrcAStride;
pSrcB += iSrcBStride;
src4 = __lsx_vavgr_bu(src4, src5);
src6 = __lsx_vld(pSrcA, 0);
src7 = __lsx_vld(pSrcB, 0);
pSrcA += iSrcAStride;
pSrcB += iSrcBStride;
src6 = __lsx_vavgr_bu(src6, src7);
__lsx_vst(src0, pDst, 0);
pDst += iDstStride;
__lsx_vst(src2, pDst, 0);
pDst += iDstStride;
__lsx_vst(src4, pDst, 0);
pDst += iDstStride;
__lsx_vst(src6, pDst, 0);
pDst += iDstStride;
}
}
void McHorVer02WidthEq8_lsx(const uint8_t *pSrc, int32_t iSrcStride, uint8_t *pDst,
int32_t iDstStride, int32_t iHeight) {
int32_t iStride1 = iSrcStride;
int32_t iStride2 = iSrcStride << 1;
int32_t iStride3 = iStride1 + iStride2;
uint8_t *psrc = (uint8_t*)pSrc;
__m128i src0, src1, src2, src3, src4, src5;
for (int i = 0; i < iHeight; i++) {
DUP4_ARG2(__lsx_vldx,
psrc, -iStride2,
psrc, -iStride1,
psrc, iStride1,
psrc, iStride2,
src0, src1, src3, src4);
src2 = __lsx_vld(psrc, 0);
src5 = __lsx_vldx(psrc, iStride3);
DUP4_ARG2(__lsx_vsllwil_hu_bu,
src0, 0,
src1, 0,
src2, 0,
src3, 0,
src0, src1, src2, src3);
src4 = __lsx_vsllwil_hu_bu(src4, 0);
src5 = __lsx_vsllwil_hu_bu(src5, 0);
FILTER_INPUT_8BIT(src0, src1, src2, src3 ,src4, src5 ,src0);
src0 = __lsx_vsrari_h(src0, 5);
src0 = __lsx_vclip255_h(src0);
src0 = __lsx_vpickev_b(src0, src0);
__lsx_vstelm_d(src0, pDst, 0, 0);
pDst += iDstStride;
psrc += iSrcStride;
}
}
void McHorVer02WidthEq16_lsx(const uint8_t *pSrc, int32_t iSrcStride, uint8_t *pDst,
int32_t iDstStride, int32_t iHeight) {
int32_t iStride1 = iSrcStride;
int32_t iStride2 = iSrcStride << 1;
int32_t iStride3 = iStride1 + iStride2;
uint8_t *psrc = (uint8_t*)pSrc;
__m128i src0, src1, src2, src3, src4, src5;
__m128i tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, out0_l, out0_h;
for (int i = 0; i < iHeight; i++) {
DUP4_ARG2(__lsx_vldx,
psrc, -iStride2,
psrc, -iStride1,
psrc, iStride1,
psrc, iStride2,
src0, src1, src3, src4);
src2 = __lsx_vld(psrc, 0);
src5 = __lsx_vldx(psrc, iStride3);
//l part
DUP4_ARG2(__lsx_vsllwil_hu_bu,
src0, 0,
src1, 0,
src2, 0,
src3, 0,
tmp0, tmp1, tmp2, tmp3);
tmp4 = __lsx_vsllwil_hu_bu(src4, 0);
tmp5 = __lsx_vsllwil_hu_bu(src5, 0);
FILTER_INPUT_8BIT(tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, out0_l);
out0_l = __lsx_vsrari_h(out0_l, 5);
out0_l = __lsx_vclip255_h(out0_l);
//h part
DUP4_ARG1(__lsx_vexth_hu_bu,
src0,
src1,
src2,
src3,
tmp0, tmp1, tmp2, tmp3);
tmp4 = __lsx_vexth_hu_bu(src4);
tmp5 = __lsx_vexth_hu_bu(src5);
FILTER_INPUT_8BIT(tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, out0_h);
out0_h = __lsx_vsrari_h(out0_h, 5);
out0_h = __lsx_vclip255_h(out0_h);
out0_l = __lsx_vpickev_b(out0_h, out0_l);
__lsx_vst(out0_l, pDst, 0);
pDst += iDstStride;
psrc += iSrcStride;
}
}
void McHorVer20WidthEq4_lsx(const uint8_t *pSrc, int32_t iSrcStride, uint8_t *pDst,
int32_t iDstStride, int32_t iHeight) {
uint8_t *psrc = (uint8_t*)pSrc -2;
__m128i src0, src1, src2, src3, src4, src5;
for (int i = 0; i < iHeight; i++) {
src0 = __lsx_vld(psrc, 0);
DUP4_ARG2(__lsx_vbsrl_v,
src0, 1,
src0, 2,
src0, 3,
src0, 4,
src1, src2, src3, src4);
src5 = __lsx_vbsrl_v(src0, 5);
DUP4_ARG2(__lsx_vsllwil_hu_bu,
src0, 0,
src1, 0,
src2, 0,
src3, 0,
src0, src1, src2, src3);
src4 = __lsx_vsllwil_hu_bu(src4, 0);
src5 = __lsx_vsllwil_hu_bu(src5, 0);
FILTER_INPUT_8BIT(src0, src1, src2, src3 ,src4, src5 ,src0);
src0 = __lsx_vsrari_h(src0, 5);
src0 = __lsx_vclip255_h(src0);
src0 = __lsx_vpickev_b(src0, src0);
__lsx_vstelm_w(src0, pDst, 0, 0);
pDst += iDstStride;
psrc += iSrcStride;
}
}
void McHorVer20WidthEq5_lsx(const uint8_t *pSrc, int32_t iSrcStride, uint8_t *pDst,
int32_t iDstStride, int32_t iHeight) {
uint8_t *psrc = (uint8_t*)pSrc -2;
__m128i src0, src1, src2, src3, src4, src5;
for (int i = 0; i < iHeight; i++) {
src0 = __lsx_vld(psrc, 0);
DUP4_ARG2(__lsx_vbsrl_v,
src0, 1,
src0, 2,
src0, 3,
src0, 4,
src1, src2, src3, src4);
src5 = __lsx_vbsrl_v(src0, 5);
DUP4_ARG2(__lsx_vsllwil_hu_bu,
src0, 0,
src1, 0,
src2, 0,
src3, 0,
src0, src1, src2, src3);
src4 = __lsx_vsllwil_hu_bu(src4, 0);
src5 = __lsx_vsllwil_hu_bu(src5, 0);
FILTER_INPUT_8BIT(src0, src1, src2, src3 ,src4, src5 ,src0);
src0 = __lsx_vsrari_h(src0, 5);
src0 = __lsx_vclip255_h(src0);
src0 = __lsx_vpickev_b(src0, src0);
__lsx_vstelm_w(src0, pDst, 0, 0);
__lsx_vstelm_b(src0, pDst, 4, 4);
pDst += iDstStride;
psrc += iSrcStride;
}
}
void McHorVer20WidthEq8_lsx(const uint8_t *pSrc, int32_t iSrcStride, uint8_t *pDst,
int32_t iDstStride, int32_t iHeight) {
uint8_t *psrc = (uint8_t*)pSrc -2;
__m128i src0, src1, src2, src3, src4, src5;
for (int i = 0; i < iHeight; i++) {
src0 = __lsx_vld(psrc, 0);
DUP4_ARG2(__lsx_vbsrl_v,
src0, 1,
src0, 2,
src0, 3,
src0, 4,
src1, src2, src3, src4);
src5 = __lsx_vbsrl_v(src0, 5);
DUP4_ARG2(__lsx_vsllwil_hu_bu,
src0, 0,
src1, 0,
src2, 0,
src3, 0,
src0, src1, src2, src3);
src4 = __lsx_vsllwil_hu_bu(src4, 0);
src5 = __lsx_vsllwil_hu_bu(src5, 0);
FILTER_INPUT_8BIT(src0, src1, src2, src3 ,src4, src5 ,src0);
src0 = __lsx_vsrari_h(src0, 5);
src0 = __lsx_vclip255_h(src0);
src0 = __lsx_vpickev_b(src0, src0);
__lsx_vstelm_d(src0, pDst, 0, 0);
pDst += iDstStride;
psrc += iSrcStride;
}
}
void McHorVer20WidthEq9_lsx(const uint8_t *pSrc, int32_t iSrcStride, uint8_t *pDst,
int32_t iDstStride, int32_t iHeight) {
McHorVer20WidthEq4_lsx(pSrc, iSrcStride, pDst, iDstStride, iHeight);
McHorVer20WidthEq5_lsx(&pSrc[4], iSrcStride, &pDst[4], iDstStride, iHeight);
}
void McHorVer20WidthEq16_lsx(const uint8_t *pSrc, int32_t iSrcStride, uint8_t *pDst,
int32_t iDstStride, int32_t iHeight) {
uint8_t *psrc = (uint8_t*)pSrc - 2;
__m128i src0, src1, src2, src3, src4, src5;
__m128i tmp0, tmp1, tmp2 ,tmp3 ,tmp4, tmp5, out0_l, out0_h;
for (int i = 0; i < iHeight; i++) {
DUP4_ARG2(__lsx_vld,
psrc, 0,
psrc + 1, 0,
psrc + 2, 0,
psrc + 3, 0,
src0, src1, src2, src3);
src4 = __lsx_vld(psrc + 4, 0);
src5 = __lsx_vld(psrc + 5, 0);
//l part
DUP4_ARG2(__lsx_vsllwil_hu_bu,
src0, 0,
src1, 0,
src2, 0,
src3, 0,
tmp0, tmp1, tmp2, tmp3);
tmp4 = __lsx_vsllwil_hu_bu(src4, 0);
tmp5 = __lsx_vsllwil_hu_bu(src5, 0);
FILTER_INPUT_8BIT(tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, out0_l);
out0_l = __lsx_vsrari_h(out0_l, 5);
out0_l = __lsx_vclip255_h(out0_l);
//h part
DUP4_ARG1(__lsx_vexth_hu_bu,
src0,
src1,
src2,
src3,
tmp0, tmp1, tmp2, tmp3);
tmp4 = __lsx_vexth_hu_bu(src4);
tmp5 = __lsx_vexth_hu_bu(src5);
FILTER_INPUT_8BIT(tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, out0_h);
out0_h = __lsx_vsrari_h(out0_h, 5);
out0_h = __lsx_vclip255_h(out0_h);
out0_l = __lsx_vpickev_b(out0_h, out0_l);
__lsx_vst(out0_l, pDst, 0);
pDst += iDstStride;
psrc += iSrcStride;
}
}
void McHorVer20WidthEq17_lsx(const uint8_t *pSrc, int32_t iSrcStride, uint8_t *pDst,
int32_t iDstStride, int32_t iHeight) {
McHorVer20WidthEq8_lsx(pSrc, iSrcStride, pDst, iDstStride, iHeight);
McHorVer20WidthEq9_lsx(&pSrc[8], iSrcStride, &pDst[8], iDstStride, iHeight);
}
void McHorVer22WidthEq8_lsx(const uint8_t *pSrc, int32_t iSrcStride, uint8_t *pDst,
int32_t iDstStride, int32_t iHeight) {
int32_t iStride1 = iSrcStride;
int32_t iStride2 = iSrcStride << 1;
int32_t iStride3 = iStride1 + iStride2;
uint8_t *psrc = (uint8_t*)pSrc - 2;
__m128i src0, src1, src2, src3, src4, src5;
__m128i tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, out0_l, out0_h;
__m128i dst0, dst1, dst2, dst3, dst4, dst5, dst6, dst7;
v8i16 mask1 = {3, 4, 5, 6, 7, 8, 9, 10};
v8i16 mask2 = {6, 7, 8, 9, 10, 11, 12 ,13};
for (int i = 0; i < iHeight; i++) {
DUP4_ARG2(__lsx_vldx,
psrc, -iStride2,
psrc, -iStride1,
psrc, iStride1,
psrc, iStride2,
src0, src1, src3, src4);
src2 = __lsx_vld(psrc, 0);
src5 = __lsx_vldx(psrc, iStride3);
//l part
DUP4_ARG2(__lsx_vsllwil_hu_bu,
src0, 0,
src1, 0,
src2, 0,
src3, 0,
tmp0, tmp1, tmp2, tmp3);
tmp4 = __lsx_vsllwil_hu_bu(src4, 0);
tmp5 = __lsx_vsllwil_hu_bu(src5, 0);
FILTER_INPUT_8BIT(tmp0, tmp1 ,tmp2, tmp3, tmp4, tmp5, out0_l);
//h part
DUP4_ARG1(__lsx_vexth_hu_bu,
src0,
src1,
src2,
src3,
tmp0, tmp1, tmp2, tmp3);
tmp4 = __lsx_vexth_hu_bu(src4);
tmp5 = __lsx_vexth_hu_bu(src5);
FILTER_INPUT_8BIT(tmp0, tmp1 ,tmp2, tmp3, tmp4, tmp5, out0_h);
dst0 = out0_l;
dst1 = __lsx_vbsrl_v(out0_l, 2);
dst2 = __lsx_vbsrl_v(out0_l, 4);
dst3 = __lsx_vshuf_h((__m128i)mask1, out0_h, out0_l);
dst4 = __lsx_vbsrl_v(dst3, 2);
dst5 = __lsx_vbsrl_v(dst3, 4);
dst6 = __lsx_vshuf_h((__m128i)mask2, out0_h, out0_l);
dst7 = __lsx_vbsrl_v(dst6, 2);
LSX_TRANSPOSE8x8_H(dst0, dst1, dst2, dst3, dst4, dst5, dst6, dst7,
dst0, dst1, dst2, dst3, dst4, dst5, dst6, dst7);
//l part
DUP4_ARG2(__lsx_vsllwil_w_h,
dst0, 0,
dst1, 0,
dst2, 0,
dst3, 0,
tmp0, tmp1, tmp2, tmp3);
DUP2_ARG2(__lsx_vsllwil_w_h,
dst4, 0,
dst5, 0,
tmp4, tmp5);
HOR_FILTER_INPUT_16BIT(tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, out0_l);
//h part
DUP4_ARG1(__lsx_vexth_w_h,
dst0,
dst1,
dst2,
dst3,
tmp0, tmp1, tmp2, tmp3);
DUP2_ARG1(__lsx_vexth_w_h,
dst4,
dst5,
tmp4, tmp5);
HOR_FILTER_INPUT_16BIT(tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, out0_h);
out0_l = __lsx_vsrari_w(out0_l, 10);
out0_h = __lsx_vsrari_w(out0_h, 10);
DUP2_ARG1(__lsx_vclip255_w,
out0_l, out0_h,
out0_l, out0_h);
out0_l = __lsx_vpickev_h(out0_h, out0_l);
out0_l = __lsx_vpickev_b(out0_l, out0_l);
__lsx_vstelm_d(out0_l, pDst, 0, 0);
psrc += iSrcStride;
pDst += iDstStride;
}
}
static
void McHorVer22WidthEq4_lsx(const uint8_t *pSrc, int32_t iSrcStride, uint8_t *pDst,
int32_t iDstStride, int32_t iHeight) {
int32_t iStride1 = iSrcStride;
int32_t iStride2 = iSrcStride << 1;
int32_t iStride3 = iStride1 + iStride2;
uint8_t *psrc = (uint8_t*)pSrc - 2;
__m128i src0, src1, src2, src3, src4, src5;
__m128i tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, out0_l, out0_h;
__m128i dst0, dst1, dst2, dst3, dst4, dst5, dst6, dst7;
v8i16 mask1 = {3, 4, 5, 6, 7, 8, 9, 10};
for (int i = 0; i < iHeight; i++) {
DUP4_ARG2(__lsx_vldx,
psrc, -iStride2,
psrc, -iStride1,
psrc, iStride1,
psrc, iStride2,
src0, src1, src3, src4);
src2 = __lsx_vld(psrc, 0);
src5 = __lsx_vldx(psrc, iStride3);
//l part
DUP4_ARG2(__lsx_vsllwil_hu_bu,
src0, 0,
src1, 0,
src2, 0,
src3, 0,
tmp0, tmp1, tmp2, tmp3);
tmp4 = __lsx_vsllwil_hu_bu(src4, 0);
tmp5 = __lsx_vsllwil_hu_bu(src5, 0);
FILTER_INPUT_8BIT(tmp0, tmp1 ,tmp2, tmp3, tmp4, tmp5, out0_l);
//h part
DUP4_ARG1(__lsx_vexth_hu_bu,
src0,
src1,
src2,
src3,
tmp0, tmp1, tmp2, tmp3);
tmp4 = __lsx_vexth_hu_bu(src4);
tmp5 = __lsx_vexth_hu_bu(src5);
FILTER_INPUT_8BIT(tmp0, tmp1 ,tmp2, tmp3, tmp4, tmp5, out0_h);
dst0 = out0_l;
dst1 = __lsx_vbsrl_v(out0_l, 2);
dst2 = __lsx_vbsrl_v(out0_l, 4);
dst3 = __lsx_vshuf_h((__m128i)mask1, out0_h, out0_l);
LSX_TRANSPOSE8x8_H(dst0, dst1, dst2, dst3, dst4, dst5, dst6, dst7,
dst0, dst1, dst2, dst3, dst4, dst5, dst6, dst7);
//l part
DUP4_ARG2(__lsx_vsllwil_w_h,
dst0, 0,
dst1, 0,
dst2, 0,
dst3, 0,
tmp0, tmp1, tmp2, tmp3);
DUP2_ARG2(__lsx_vsllwil_w_h,
dst4, 0,
dst5, 0,
tmp4, tmp5);
HOR_FILTER_INPUT_16BIT(tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, out0_l);
//h part
DUP4_ARG1(__lsx_vexth_w_h,
dst0,
dst1,
dst2,
dst3,
tmp0, tmp1, tmp2, tmp3);
DUP2_ARG1(__lsx_vexth_w_h,
dst4,
dst5,
tmp4, tmp5);
HOR_FILTER_INPUT_16BIT(tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, out0_h);
out0_l = __lsx_vsrari_w(out0_l, 10);
out0_h = __lsx_vsrari_w(out0_h, 10);
DUP2_ARG1(__lsx_vclip255_w,
out0_l, out0_h,
out0_l, out0_h);
out0_l = __lsx_vpickev_h(out0_h, out0_l);
out0_l = __lsx_vpickev_b(out0_l, out0_l);
__lsx_vstelm_w(out0_l, pDst, 0, 0);
psrc += iSrcStride;
pDst += iDstStride;
}
}
void McHorVer22WidthEq5_lsx(const uint8_t *pSrc, int32_t iSrcStride, uint8_t *pDst,
int32_t iDstStride, int32_t iHeight) {
int32_t iStride1 = iSrcStride;
int32_t iStride2 = iSrcStride << 1;
int32_t iStride3 = iStride1 + iStride2;
uint8_t *psrc = (uint8_t*)pSrc - 2;
__m128i src0, src1, src2, src3, src4, src5;
__m128i tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, out0_l, out0_h;
__m128i dst0, dst1, dst2, dst3, dst4, dst5, dst6, dst7;
v8i16 mask1 = {3, 4, 5, 6, 7, 8, 9, 10};
for (int i = 0; i < iHeight; i++) {
DUP4_ARG2(__lsx_vldx,
psrc, -iStride2,
psrc, -iStride1,
psrc, iStride1,
psrc, iStride2,
src0, src1, src3, src4);
src2 = __lsx_vld(psrc, 0);
src5 = __lsx_vldx(psrc, iStride3);
//l part
DUP4_ARG2(__lsx_vsllwil_hu_bu,
src0, 0,
src1, 0,
src2, 0,
src3, 0,
tmp0, tmp1, tmp2, tmp3);
tmp4 = __lsx_vsllwil_hu_bu(src4, 0);
tmp5 = __lsx_vsllwil_hu_bu(src5, 0);
FILTER_INPUT_8BIT(tmp0, tmp1 ,tmp2, tmp3, tmp4, tmp5, out0_l);
//h part
DUP4_ARG1(__lsx_vexth_hu_bu,
src0,
src1,
src2,
src3,
tmp0, tmp1, tmp2, tmp3);
tmp4 = __lsx_vexth_hu_bu(src4);
tmp5 = __lsx_vexth_hu_bu(src5);
FILTER_INPUT_8BIT(tmp0, tmp1 ,tmp2, tmp3, tmp4, tmp5, out0_h);
dst0 = out0_l;
dst1 = __lsx_vbsrl_v(out0_l, 2);
dst2 = __lsx_vbsrl_v(out0_l, 4);
dst3 = __lsx_vshuf_h((__m128i)mask1, out0_h, out0_l);
dst4 = __lsx_vbsrl_v(dst3, 2);
LSX_TRANSPOSE8x8_H(dst0, dst1, dst2, dst3, dst4, dst5, dst6, dst7,
dst0, dst1, dst2, dst3, dst4, dst5, dst6, dst7);
//l part
DUP4_ARG2(__lsx_vsllwil_w_h,
dst0, 0,
dst1, 0,
dst2, 0,
dst3, 0,
tmp0, tmp1, tmp2, tmp3);
DUP2_ARG2(__lsx_vsllwil_w_h,
dst4, 0,
dst5, 0,
tmp4, tmp5);
HOR_FILTER_INPUT_16BIT(tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, out0_l);
//h part
DUP4_ARG1(__lsx_vexth_w_h,
dst0,
dst1,
dst2,
dst3,
tmp0, tmp1, tmp2, tmp3);
DUP2_ARG1(__lsx_vexth_w_h,
dst4,
dst5,
tmp4, tmp5);
HOR_FILTER_INPUT_16BIT(tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, out0_h);
out0_l = __lsx_vsrari_w(out0_l, 10);
out0_h = __lsx_vsrari_w(out0_h, 10);
DUP2_ARG1(__lsx_vclip255_w,
out0_l, out0_h,
out0_l, out0_h);
out0_l = __lsx_vpickev_h(out0_h, out0_l);
out0_l = __lsx_vpickev_b(out0_l, out0_l);
__lsx_vstelm_w(out0_l, pDst, 0, 0);
__lsx_vstelm_b(out0_l, pDst, 4, 4);
psrc += iSrcStride;
pDst += iDstStride;
}
}
void McHorVer22WidthEq9_lsx(const uint8_t *pSrc, int32_t iSrcStride, uint8_t *pDst,
int32_t iDstStride, int32_t iHeight) {
McHorVer22WidthEq4_lsx(pSrc, iSrcStride, pDst, iDstStride, iHeight);
McHorVer22WidthEq5_lsx(&pSrc[4], iSrcStride, &pDst[4], iDstStride, iHeight);
}
void McHorVer22WidthEq17_lsx(const uint8_t *pSrc, int32_t iSrcStride, uint8_t *pDst,
int32_t iDstStride, int32_t iHeight) {
McHorVer22WidthEq8_lsx(pSrc, iSrcStride, pDst, iDstStride, iHeight);
McHorVer22WidthEq9_lsx(&pSrc[8], iSrcStride, &pDst[8], iDstStride, iHeight);
}
+10
View File
@@ -58,6 +58,16 @@ elif cpu_family == 'aarch64'
else
cpp_sources += asm_sources
endif
elif cpu_family in ['loongarch32', 'loongarch64']
asm_sources = [
'loongarch/copy_mb_lsx.c',
'loongarch/deblock_lsx.c',
'loongarch/intra_pred_com_lsx.c',
'loongarch/mc_chroma_lsx.c',
'loongarch/mc_horver_lsx.c',
'loongarch/satd_sad_lasx.c',
]
cpp_sources += asm_sources
else
error('Unsupported cpu_family @0@'.format(cpu_family))
endif
+297
View File
@@ -4229,6 +4229,298 @@ void McChroma_lsx(const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst,
McChromaWithFragMv_c (pSrc, iSrcStride, pDst, iDstStride, iMvX, iMvY,
iWidth, iHeight);
}
void PixelAvg_lsx(uint8_t* pDst, int32_t iDstStride, const uint8_t* pSrcA,
int32_t iSrcAStride, const uint8_t* pSrcB, int32_t iSrcBStride,
int32_t iWidth, int32_t iHeight) {
static const PWelsSampleWidthAveragingFunc kpfFuncs[2] = {
PixelAvgWidthEq8_lsx,
PixelAvgWidthEq16_lsx
};
kpfFuncs[iWidth >> 4] (pDst, iDstStride, pSrcA, iSrcAStride, pSrcB, iSrcBStride, iHeight);
}
static inline void McHorVer01_lsx (const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst,
int32_t iDstStride, int32_t iWidth, int32_t iHeight) {
ENFORCE_STACK_ALIGN_1D (uint8_t, pTmp, 256, 16);
if (iWidth == 16) {
McHorVer02WidthEq16_lsx (pSrc, iSrcStride, pTmp, 16, iHeight);
PixelAvgWidthEq16_lsx (pDst, iDstStride, pSrc, iSrcStride, pTmp, 16, iHeight);
} else if (iWidth == 8) {
McHorVer02WidthEq8_lsx (pSrc, iSrcStride, pTmp, 16, iHeight);
PixelAvgWidthEq8_lsx (pDst, iDstStride, pSrc, iSrcStride, pTmp, 16, iHeight);
} else {
McHorVer02_c (pSrc, iSrcStride, pTmp, 16, 4, iHeight);
PixelAvgWidthEq4_lsx (pDst, iDstStride, pSrc, iSrcStride, pTmp, 16, iHeight);
}
}
static inline void McHorVer02_lsx(const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst,
int32_t iDstStride, int32_t iWidth, int32_t iHeight) {
if (iWidth == 16)
McHorVer02WidthEq16_lsx (pSrc, iSrcStride, pDst, iDstStride, iHeight);
else if (iWidth == 8)
McHorVer02WidthEq8_lsx (pSrc, iSrcStride, pDst, iDstStride, iHeight);
else
McHorVer02_c (pSrc, iSrcStride, pDst, iDstStride, 4, iHeight);
}
static inline void McHorVer03_lsx (const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst,
int32_t iDstStride, int32_t iWidth, int32_t iHeight) {
ENFORCE_STACK_ALIGN_1D (uint8_t, pTmp, 256, 16);
if (iWidth == 16) {
McHorVer02WidthEq16_lsx (pSrc, iSrcStride, pTmp, 16, iHeight);
PixelAvgWidthEq16_lsx (pDst, iDstStride, pSrc + iSrcStride, iSrcStride, pTmp, 16, iHeight);
} else if (iWidth == 8) {
McHorVer02WidthEq8_lsx (pSrc, iSrcStride, pTmp, 16, iHeight);
PixelAvgWidthEq8_lsx (pDst, iDstStride, pSrc + iSrcStride, iSrcStride, pTmp, 16, iHeight);
} else {
McHorVer02_c (pSrc, iSrcStride, pTmp, 16, 4, iHeight);
PixelAvgWidthEq4_lsx (pDst, iDstStride, pSrc + iSrcStride, iSrcStride, pTmp, 16, iHeight);
}
}
static inline void McHorVer10_lsx(const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst,
int32_t iDstStride, int32_t iWidth, int32_t iHeight) {
ENFORCE_STACK_ALIGN_1D (uint8_t, pTmp, 256, 16);
if (iWidth == 16) {
McHorVer20WidthEq16_lsx (pSrc, iSrcStride, pTmp, 16, iHeight);
PixelAvgWidthEq16_lsx (pDst, iDstStride, pSrc, iSrcStride, pTmp, 16, iHeight);
} else if (iWidth == 8) {
McHorVer20WidthEq8_lsx (pSrc, iSrcStride, pTmp, 16, iHeight);
PixelAvgWidthEq8_lsx (pDst, iDstStride, pSrc, iSrcStride, pTmp, 16, iHeight);
} else {
McHorVer20WidthEq4_lsx (pSrc, iSrcStride, pTmp, 16, iHeight);
PixelAvgWidthEq4_lsx (pDst, iDstStride, pSrc, iSrcStride, pTmp, 16, iHeight);
}
}
static inline void McHorVer11_lsx(const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst,
int32_t iDstStride, int32_t iWidth, int32_t iHeight) {
ENFORCE_STACK_ALIGN_1D (uint8_t, pHorTmp, 256, 16);
ENFORCE_STACK_ALIGN_1D (uint8_t, pVerTmp, 256, 16);
if (iWidth == 16) {
McHorVer20WidthEq16_lsx (pSrc, iSrcStride, pHorTmp, 16, iHeight);
McHorVer02WidthEq16_lsx (pSrc, iSrcStride, pVerTmp, 16, iHeight);
PixelAvgWidthEq16_lsx (pDst, iDstStride, pHorTmp, 16, pVerTmp, 16, iHeight);
} else if (iWidth == 8) {
McHorVer20WidthEq8_lsx (pSrc, iSrcStride, pHorTmp, 16, iHeight);
McHorVer02WidthEq8_lsx (pSrc, iSrcStride, pVerTmp, 16, iHeight);
PixelAvgWidthEq8_lsx (pDst, iDstStride, pHorTmp, 16, pVerTmp, 16, iHeight);
} else {
McHorVer20WidthEq4_lsx (pSrc, iSrcStride, pHorTmp, 16, iHeight);
McHorVer02_c (pSrc, iSrcStride, pVerTmp, 16, 4, iHeight);
PixelAvgWidthEq4_lsx (pDst, iDstStride, pHorTmp, 16, pVerTmp, 16, iHeight);
}
}
static inline void McHorVer22WidthEq16_lsx(const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst,
int32_t iDstStride, int32_t iHeight) {
McHorVer22WidthEq8_lsx (pSrc, iSrcStride, pDst, iDstStride, iHeight);
McHorVer22WidthEq8_lsx (&pSrc[8], iSrcStride, &pDst[8], iDstStride, iHeight);
}
static inline void McHorVer12_lsx(const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst,
int32_t iDstStride, int32_t iWidth, int32_t iHeight) {
ENFORCE_STACK_ALIGN_1D (uint8_t, pVerTmp, 256, 16);
ENFORCE_STACK_ALIGN_1D (uint8_t, pCtrTmp, 256, 16);
if (iWidth == 16) {
McHorVer02WidthEq16_lsx (pSrc, iSrcStride, pVerTmp, 16, iHeight);
McHorVer22WidthEq16_lsx (pSrc, iSrcStride, pCtrTmp, 16, iHeight);
PixelAvgWidthEq16_lsx (pDst, iDstStride, pVerTmp, 16, pCtrTmp, 16, iHeight);
} else if (iWidth == 8) {
McHorVer02WidthEq8_lsx (pSrc, iSrcStride, pVerTmp, 16, iHeight);
McHorVer22WidthEq8_lsx (pSrc, iSrcStride, pCtrTmp, 16, iHeight);
PixelAvgWidthEq8_lsx (pDst, iDstStride, pVerTmp, 16, pCtrTmp, 16, iHeight);
} else {
McHorVer02_c (pSrc, iSrcStride, pVerTmp, 16, 4, iHeight);
McHorVer22_c (pSrc, iSrcStride, pCtrTmp, 16, 4, iHeight);
PixelAvgWidthEq4_lsx (pDst, iDstStride, pVerTmp, 16, pCtrTmp, 16, iHeight);
}
}
static inline void McHorVer13_lsx(const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst,
int32_t iDstStride, int32_t iWidth, int32_t iHeight) {
ENFORCE_STACK_ALIGN_1D (uint8_t, pHorTmp, 256, 16);
ENFORCE_STACK_ALIGN_1D (uint8_t, pVerTmp, 256, 16);
if (iWidth == 16) {
McHorVer20WidthEq16_lsx (pSrc + iSrcStride, iSrcStride, pHorTmp, 16, iHeight);
McHorVer02WidthEq16_lsx (pSrc, iSrcStride, pVerTmp, 16, iHeight);
PixelAvgWidthEq16_lsx (pDst, iDstStride, pHorTmp, 16, pVerTmp, 16, iHeight);
} else if (iWidth == 8) {
McHorVer20WidthEq8_lsx (pSrc + iSrcStride, iSrcStride, pHorTmp, 16, iHeight);
McHorVer02WidthEq8_lsx (pSrc, iSrcStride, pVerTmp, 16, iHeight);
PixelAvgWidthEq8_lsx (pDst, iDstStride, pHorTmp, 16, pVerTmp, 16, iHeight);
} else {
McHorVer20WidthEq4_lsx (pSrc + iSrcStride, iSrcStride, pHorTmp, 16, iHeight);
McHorVer02_c (pSrc, iSrcStride, pVerTmp, 16, 4, iHeight);
PixelAvgWidthEq4_lsx (pDst, iDstStride, pHorTmp, 16, pVerTmp, 16, iHeight);
}
}
static inline void McHorVer20_lsx(const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst,
int32_t iDstStride, int32_t iWidth, int32_t iHeight) {
if (iWidth == 16)
McHorVer20WidthEq16_lsx (pSrc, iSrcStride, pDst, iDstStride, iHeight);
else if (iWidth == 8)
McHorVer20WidthEq8_lsx (pSrc, iSrcStride, pDst, iDstStride, iHeight);
else
McHorVer20WidthEq4_lsx (pSrc, iSrcStride, pDst, iDstStride, iHeight);
}
static inline void McHorVer21_lsx(const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst,
int32_t iDstStride, int32_t iWidth, int32_t iHeight) {
ENFORCE_STACK_ALIGN_1D (uint8_t, pHorTmp, 256, 16);
ENFORCE_STACK_ALIGN_1D (uint8_t, pCtrTmp, 256, 16);
if (iWidth == 16) {
McHorVer20WidthEq16_lsx (pSrc, iSrcStride, pHorTmp, 16, iHeight);
McHorVer22WidthEq16_lsx (pSrc, iSrcStride, pCtrTmp, 16, iHeight);
PixelAvgWidthEq16_lsx (pDst, iDstStride, pHorTmp, 16, pCtrTmp, 16, iHeight);
} else if (iWidth == 8) {
McHorVer20WidthEq8_lsx (pSrc, iSrcStride, pHorTmp, 16, iHeight);
McHorVer22WidthEq8_lsx (pSrc, iSrcStride, pCtrTmp, 16, iHeight);
PixelAvgWidthEq8_lsx (pDst, iDstStride, pHorTmp, 16, pCtrTmp, 16, iHeight);
} else {
McHorVer20WidthEq4_lsx (pSrc, iSrcStride, pHorTmp, 16, iHeight);
McHorVer22_c (pSrc, iSrcStride, pCtrTmp, 16, 4, iHeight);
PixelAvgWidthEq4_lsx (pDst, iDstStride, pHorTmp, 16, pCtrTmp, 16, iHeight);
}
}
static inline void McHorVer22_lsx(const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst,
int32_t iDstStride, int32_t iWidth, int32_t iHeight) {
if (iWidth == 16)
McHorVer22WidthEq16_lsx (pSrc, iSrcStride, pDst, iDstStride, iHeight);
else if (iWidth == 8)
McHorVer22WidthEq8_lsx (pSrc, iSrcStride, pDst, iDstStride, iHeight);
else
McHorVer22_c (pSrc, iSrcStride, pDst, iDstStride, 4, iHeight);
}
static inline void McHorVer23_lsx(const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst,
int32_t iDstStride, int32_t iWidth, int32_t iHeight) {
ENFORCE_STACK_ALIGN_1D (uint8_t, pHorTmp, 256, 16);
ENFORCE_STACK_ALIGN_1D (uint8_t, pCtrTmp, 256, 16);
if (iWidth == 16) {
McHorVer20WidthEq16_lsx (pSrc + iSrcStride, iSrcStride, pHorTmp, 16, iHeight);
McHorVer22WidthEq16_lsx (pSrc, iSrcStride, pCtrTmp, 16, iHeight);
PixelAvgWidthEq16_lsx (pDst, iDstStride, pHorTmp, 16, pCtrTmp, 16, iHeight);
} else if (iWidth == 8) {
McHorVer20WidthEq8_lsx (pSrc + iSrcStride, iSrcStride, pHorTmp, 16, iHeight);
McHorVer22WidthEq8_lsx (pSrc, iSrcStride, pCtrTmp, 16, iHeight);
PixelAvgWidthEq8_lsx (pDst, iDstStride, pHorTmp, 16, pCtrTmp, 16, iHeight);
} else {
McHorVer20WidthEq4_lsx (pSrc + iSrcStride, iSrcStride, pHorTmp, 16, iHeight);
McHorVer22_c (pSrc, iSrcStride, pCtrTmp, 16, 4, iHeight);
PixelAvgWidthEq4_lsx (pDst, iDstStride, pHorTmp, 16, pCtrTmp, 16, iHeight);
}
}
static inline void McHorVer30_lsx(const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst,
int32_t iDstStride, int32_t iWidth, int32_t iHeight) {
ENFORCE_STACK_ALIGN_1D (uint8_t, pHorTmp, 256, 16);
if (iWidth == 16) {
McHorVer20WidthEq16_lsx (pSrc, iSrcStride, pHorTmp, 16, iHeight);
PixelAvgWidthEq16_lsx (pDst, iDstStride, pSrc + 1, iSrcStride, pHorTmp, 16, iHeight);
} else if (iWidth == 8) {
McHorVer20WidthEq8_lsx (pSrc, iSrcStride, pHorTmp, 16, iHeight);
PixelAvgWidthEq8_lsx (pDst, iDstStride, pSrc + 1, iSrcStride, pHorTmp, 16, iHeight);
} else {
McHorVer20WidthEq4_lsx (pSrc, iSrcStride, pHorTmp, 16, iHeight);
PixelAvgWidthEq4_lsx (pDst, iDstStride, pSrc + 1, iSrcStride, pHorTmp, 16, iHeight);
}
}
static inline void McHorVer31_lsx(const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst,
int32_t iDstStride, int32_t iWidth, int32_t iHeight) {
ENFORCE_STACK_ALIGN_1D (uint8_t, pHorTmp, 256, 16);
ENFORCE_STACK_ALIGN_1D (uint8_t, pVerTmp, 256, 16);
if (iWidth == 16) {
McHorVer20WidthEq16_lsx (pSrc, iSrcStride, pHorTmp, 16, iHeight);
McHorVer02WidthEq16_lsx (pSrc + 1, iSrcStride, pVerTmp, 16, iHeight);
PixelAvgWidthEq16_lsx (pDst, iDstStride, pHorTmp, 16, pVerTmp, 16, iHeight);
} else if (iWidth == 8) {
McHorVer20WidthEq8_lsx (pSrc, iSrcStride, pHorTmp, 16, iHeight);
McHorVer02WidthEq8_lsx (pSrc + 1, iSrcStride, pVerTmp, 16, iHeight);
PixelAvgWidthEq8_lsx (pDst, iDstStride, pHorTmp, 16, pVerTmp, 16, iHeight);
} else {
McHorVer20WidthEq4_lsx (pSrc, iSrcStride, pHorTmp, 16, iHeight);
McHorVer02_c (pSrc + 1, iSrcStride, pVerTmp, 16, 4, iHeight);
PixelAvgWidthEq4_lsx (pDst, iDstStride, pHorTmp, 16, pVerTmp, 16, iHeight);
}
}
static inline void McHorVer32_lsx(const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst,
int32_t iDstStride, int32_t iWidth, int32_t iHeight) {
ENFORCE_STACK_ALIGN_1D (uint8_t, pVerTmp, 256, 16);
ENFORCE_STACK_ALIGN_1D (uint8_t, pCtrTmp, 256, 16);
if (iWidth == 16) {
McHorVer02WidthEq16_lsx (pSrc + 1, iSrcStride, pVerTmp, 16, iHeight);
McHorVer22WidthEq16_lsx (pSrc, iSrcStride, pCtrTmp, 16, iHeight);
PixelAvgWidthEq16_lsx (pDst, iDstStride, pVerTmp, 16, pCtrTmp, 16, iHeight);
} else if (iWidth == 8) {
McHorVer02WidthEq8_lsx (pSrc + 1, iSrcStride, pVerTmp, 16, iHeight);
McHorVer22WidthEq8_lsx (pSrc, iSrcStride, pCtrTmp, 16, iHeight);
PixelAvgWidthEq8_lsx (pDst, iDstStride, pVerTmp, 16, pCtrTmp, 16, iHeight);
} else {
McHorVer02_c (pSrc + 1, iSrcStride, pVerTmp, 16, 4, iHeight);
McHorVer22_c (pSrc, iSrcStride, pCtrTmp, 16, 4, iHeight);
PixelAvgWidthEq4_lsx (pDst, iDstStride, pVerTmp, 16, pCtrTmp, 16, iHeight);
}
}
static inline void McHorVer33_lsx(const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst,
int32_t iDstStride, int32_t iWidth, int32_t iHeight) {
ENFORCE_STACK_ALIGN_1D (uint8_t, pHorTmp, 256, 16);
ENFORCE_STACK_ALIGN_1D (uint8_t, pVerTmp, 256, 16);
if (iWidth == 16) {
McHorVer20WidthEq16_lsx (pSrc + iSrcStride, iSrcStride, pHorTmp, 16, iHeight);
McHorVer02WidthEq16_lsx (pSrc + 1, iSrcStride, pVerTmp, 16, iHeight);
PixelAvgWidthEq16_lsx (pDst, iDstStride, pHorTmp, 16, pVerTmp, 16, iHeight);
} else if (iWidth == 8) {
McHorVer20WidthEq8_lsx (pSrc + iSrcStride, iSrcStride, pHorTmp, 16, iHeight);
McHorVer02WidthEq8_lsx (pSrc + 1, iSrcStride, pVerTmp, 16, iHeight);
PixelAvgWidthEq8_lsx (pDst, iDstStride, pHorTmp, 16, pVerTmp, 16, iHeight);
} else {
McHorVer20WidthEq4_lsx (pSrc + iSrcStride, iSrcStride, pHorTmp, 16, iHeight);
McHorVer02_c (pSrc + 1, iSrcStride, pVerTmp, 16, 4, iHeight);
PixelAvgWidthEq4_lsx (pDst, iDstStride, pHorTmp, 16, pVerTmp, 16, iHeight);
}
}
void McLuma_lsx(const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst,
int32_t iDstStride, int16_t iMvX, int16_t iMvY,
int32_t iWidth, int32_t iHeight) {
static const PWelsMcWidthHeightFunc pWelsMcFunc[4][4] = { //[x][y]
{McCopy_lsx, McHorVer01_lsx, McHorVer02_lsx, McHorVer03_lsx},
{McHorVer10_lsx, McHorVer11_lsx, McHorVer12_lsx, McHorVer13_lsx},
{McHorVer20_lsx, McHorVer21_lsx, McHorVer22_lsx, McHorVer23_lsx},
{McHorVer30_lsx, McHorVer31_lsx, McHorVer32_lsx, McHorVer33_lsx},
};
pWelsMcFunc[iMvX & 0x03][iMvY & 0x03] (pSrc, iSrcStride, pDst, iDstStride, iWidth, iHeight);
}
static inline void McHorVer20Width5Or9Or17_lsx(const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst,
int32_t iDstStride, int32_t iWidth, int32_t iHeight) {
if (iWidth == 17) {
McHorVer20WidthEq17_lsx(pSrc, iSrcStride, pDst, iDstStride, iHeight);
} else if (iWidth == 9) {
McHorVer20WidthEq9_lsx(pSrc, iSrcStride, pDst, iDstStride, iHeight);
} else {//if (iWidth == 5)
McHorVer20WidthEq5_lsx(pSrc, iSrcStride, pDst, iDstStride, iHeight);
}
}
void McHorVer22Width5Or9Or17_lsx (const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst,
int32_t iDstStride, int32_t iWidth, int32_t iHeight) {
if (iWidth == 17) {
McHorVer22WidthEq17_lsx(pSrc, iSrcStride, pDst, iDstStride, iHeight);
} else if (iWidth == 9) {
McHorVer22WidthEq9_lsx(pSrc, iSrcStride, pDst, iDstStride, iHeight);
} else {
McHorVer22WidthEq5_lsx(pSrc, iSrcStride, pDst, iDstStride, iHeight);
}
}
#endif//HAVE_LSX
} // anon ns.
@@ -4303,6 +4595,11 @@ void WelsCommon::InitMcFunc (SMcFunc* pMcFuncs, uint32_t uiCpuFlag) {
#if defined(HAVE_LSX)
if (uiCpuFlag & WELS_CPU_LSX) {
pMcFuncs->pMcChromaFunc = McChroma_lsx;
pMcFuncs->pfSampleAveraging = PixelAvg_lsx;
pMcFuncs->pMcLumaFunc = McLuma_lsx;
pMcFuncs->pfLumaHalfpelVer = McHorVer02_lsx;
pMcFuncs->pfLumaHalfpelHor = McHorVer20Width5Or9Or17_lsx;
pMcFuncs->pfLumaHalfpelCen = McHorVer22Width5Or9Or17_lsx;
}
#endif//HAVE_LSX
}
+4 -1
View File
@@ -92,8 +92,11 @@ OBJS += $(COMMON_OBJSMIPS_MMI)
OBJS += $(COMMON_OBJSMIPS_MSA)
COMMON_ASM_LOONGARCH_LSX_SRCS=\
$(COMMON_SRCDIR)/loongarch/mc_chroma_lsx.c\
$(COMMON_SRCDIR)/loongarch/mc_chroma_lsx.c\
$(COMMON_SRCDIR)/loongarch/copy_mb_lsx.c\
$(COMMON_SRCDIR)/loongarch/deblock_lsx.c\
$(COMMON_SRCDIR)/loongarch/intra_pred_com_lsx.c\
$(COMMON_SRCDIR)/loongarch/mc_horver_lsx.c\
COMMON_OBJSLOONGARCH_LSX += $(COMMON_ASM_LOONGARCH_LSX_SRCS:.c=.$(OBJ))
+9
View File
@@ -441,6 +441,7 @@ void PrintHelp() {
printf (" -lmaxb (Layer) (spatial layer max bitrate)\n");
printf (" -slcmd (Layer) (spatial layer slice mode): pls refer to layerX.cfg for details ( -slcnum: set target slice num; -slcsize: set target slice size constraint ; -slcmbnum: set the first slice mb num under some slice modes) \n");
printf (" -trace (Level)\n");
printf (" -fixrc Enable fix RC overshoot(default: 1)\n");
printf ("\n");
}
@@ -531,6 +532,12 @@ int ParseCommandLine (int argc, char** argv, SSourcePicture* pSrcPic, SEncParamE
else if (!strcmp (pCommand, "-fs") && (n < argc))
pSvcParam.bEnableFrameSkip = atoi (argv[n++]) ? true : false;
else if (!strcmp (pCommand, "-fixrc") && (n < argc))
pSvcParam.bFixRCOverShoot = atoi (argv[n++]) ? true : false;
else if (!strcmp (pCommand, "-idrBitrateRatio") && (n < argc))
pSvcParam.iIdrBitrateRatio = atoi (argv[n++]);
else if (!strcmp (pCommand, "-ltr") && (n < argc))
pSvcParam.bEnableLongTermReference = atoi (argv[n++]) ? true : false;
@@ -694,6 +701,8 @@ int FillSpecificParameters (SEncParamExt& sParam) {
sParam.bPrefixNalAddingCtrl = 0;
sParam.iComplexityMode = LOW_COMPLEXITY;
sParam.bSimulcastAVC = false;
sParam.bFixRCOverShoot = true;
sParam.iIdrBitrateRatio = IDR_BITRATE_RATIO * 100;
int iIndexLayer = 0;
sParam.sSpatialLayers[iIndexLayer].uiProfileIdc = PRO_BASELINE;
sParam.sSpatialLayers[iIndexLayer].iVideoWidth = 160;
+5
View File
@@ -67,6 +67,11 @@ void IdctResAddPred_AArch64_neon (uint8_t* pred, const int32_t stride, int16_t*
void IdctResAddPred_mmi (uint8_t* pPred, const int32_t kiStride, int16_t* pRs);
#endif//HAVE_MMI
#if defined(HAVE_LSX)
void IdctResAddPred_lsx (uint8_t* pPred, const int32_t kiStride, int16_t* pRs);
void IdctResAddPred8x8_lsx (uint8_t* pPred, const int32_t kiStride, int16_t* pRs);
#endif
#if defined(__cplusplus)
}
#endif//__cplusplus
+1 -1
View File
@@ -50,7 +50,7 @@ typedef struct TagRefPicListReorderSyntax {
uint32_t uiAbsDiffPicNumMinus1;
uint16_t uiLongTermPicNum;
uint16_t uiReorderingOfPicNumsIdc;
} sReorderingSyn[LIST_A][MAX_REF_PIC_COUNT];
} sReorderingSyn[LIST_A][MAX_REF_PIC_COUNT + 1];
bool bRefPicListReorderingFlag[LIST_A];
} SRefPicListReorderSyn, *PRefPicListReorderSyn;
+296
View File
@@ -0,0 +1,296 @@
/*!
*************************************************************************************
* Copyright (c) 2022 Loongson Technology Corporation Limited
* Contributed by Jin Bo <jinbo@loongson.cn>
*
* \copy
* Copyright (c) 2022, Cisco Systems
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*
* \file mb_aux_lsx.c
*
* \brief Loongson optimization
*
* \date 7/3/2022 Created
*
*************************************************************************************
*/
#include <stdint.h>
#include "loongson_intrinsics.h"
#define DO(in0, in1, in2, in3, in4, in5, in6, in7, \
ou0, ou1, ou2, ou3, ou4, ou5, ou6, ou7) \
do { \
__m128i t0, t1, t2, t3, a0, a1, a2, a3; \
__m128i b0, b1, b2, b3, b4, b5, b6, b7; \
t0 = __lsx_vsrai_h(in2, 1); \
t1 = __lsx_vsrai_h(in6, 1); \
a0 = __lsx_vadd_h(in0, in4); \
a1 = __lsx_vsub_h(in0, in4); \
a2 = __lsx_vsub_h(in6, t0); \
a3 = __lsx_vadd_h(in2, t1); \
b0 = __lsx_vadd_h(a0, a3); \
b2 = __lsx_vsub_h(a1, a2); \
b4 = __lsx_vadd_h(a1, a2); \
b6 = __lsx_vsub_h(a0, a3); \
DUP4_ARG2(__lsx_vsrai_h, \
in7, 1, \
in3, 1, \
in5, 1, \
in1, 1, \
t0, t1, t2 ,t3); \
a0 = __lsx_vsub_h(in5, in3); \
a0 = __lsx_vsub_h(a0, in7); \
a0 = __lsx_vsub_h(a0, t0); \
a1 = __lsx_vadd_h(in1, in7); \
a1 = __lsx_vsub_h(a1, in3); \
a1 = __lsx_vsub_h(a1, t1); \
a2 = __lsx_vsub_h(in7, in1); \
a2 = __lsx_vadd_h(a2, in5); \
a2 = __lsx_vadd_h(a2, t2); \
a3 = __lsx_vadd_h(in3, in5); \
a3 = __lsx_vadd_h(a3, in1); \
a3 = __lsx_vadd_h(a3, t3); \
DUP4_ARG2(__lsx_vsrai_h, \
a0, 2, \
a1, 2, \
a2, 2, \
a3, 2, \
t0, t1, t2, t3); \
b1 = __lsx_vadd_h(a0, t3); \
b7 = __lsx_vsub_h(a3, t0); \
b3 = __lsx_vadd_h(a1, t2); \
b5 = __lsx_vsub_h(a2, t1); \
ou0 = __lsx_vadd_h(b0, b7); \
ou1 = __lsx_vsub_h(b2, b5); \
ou2 = __lsx_vadd_h(b4, b3); \
ou3 = __lsx_vadd_h(b6, b1); \
ou4 = __lsx_vsub_h(b6, b1); \
ou5 = __lsx_vsub_h(b4, b3); \
ou6 = __lsx_vadd_h(b2, b5); \
ou7 = __lsx_vsub_h(b0, b7); \
}while(0)
void IdctResAddPred_lsx (uint8_t* pPred, const int32_t kiStride,
int16_t* pRs) {
int32_t iStride0 = 0;
int32_t iStride_x2 = kiStride << 1;
int32_t iStride_x3 = kiStride + iStride_x2;
__m128i src0, src1, src2, src3, dst0, dst1, dst2, dst3;
__m128i pre0, pre1, pre2, pre3, tmp0, tmp1, tmp2, tmp3;
__m128i t0, t1, t2, t3;
DUP2_ARG2(__lsx_vld,
pRs, 0,
pRs, 16,
src0, src2);
DUP4_ARG2(__lsx_vldx,
pPred, iStride0,
pPred, kiStride,
pPred, iStride_x2,
pPred, iStride_x3,
pre0, pre1, pre2, pre3);
src1 = __lsx_vbsrl_v(src0, 8);
src3 = __lsx_vbsrl_v(src2, 8);
tmp1 = __lsx_vilvl_h(src1, src0);
tmp3 = __lsx_vilvl_h(src3, src2);
src0 = __lsx_vilvl_w(tmp3, tmp1);
src1 = __lsx_vilvh_d(src0, src0);
src2 = __lsx_vilvh_w(tmp3, tmp1);
src3 = __lsx_vilvh_d(src2, src2);
t0 = __lsx_vadd_h(src0, src2);
t1 = __lsx_vsub_h(src0, src2);
t2 = __lsx_vsrai_h(src1, 1);
t2 = __lsx_vsub_h(t2, src3);
t3 = __lsx_vsrai_h(src3, 1);
t3 = __lsx_vadd_h(src1, t3);
src0 = __lsx_vadd_h(t0, t3); //0 4 8 12
src1 = __lsx_vadd_h(t1, t2); //1 5 9 13
src2 = __lsx_vsub_h(t1, t2); //2 6 10 14
src3 = __lsx_vsub_h(t0, t3); //3 7 11 15
tmp1 = __lsx_vilvl_h(src1, src0);
tmp3 = __lsx_vilvl_h(src3, src2);
src0 = __lsx_vilvl_w(tmp3, tmp1);
src1 = __lsx_vilvh_d(src0, src0);
src2 = __lsx_vilvh_w(tmp3, tmp1);
src3 = __lsx_vilvh_d(src2, src2);
t1 = __lsx_vadd_h(src0, src2);
t2 = __lsx_vsrai_h(src3, 1);
t2 = __lsx_vadd_h(src1, t2);
dst0 = __lsx_vadd_h(t1, t2);
dst3 = __lsx_vsub_h(t1, t2);
t1 = __lsx_vsub_h(src0, src2);
t2 = __lsx_vsrai_h(src1, 1);
t2 = __lsx_vsub_h(t2, src3);
dst1 = __lsx_vadd_h(t1, t2);
dst2 = __lsx_vsub_h(t1, t2);
DUP2_ARG2(__lsx_vpackev_d,
dst1, dst0,
dst3, dst2,
dst0, dst2);
DUP2_ARG2(__lsx_vpackev_w,
pre1, pre0,
pre3, pre2,
pre0, pre2);
DUP2_ARG2(__lsx_vsllwil_hu_bu,
pre0, 0,
pre2, 0,
tmp0, tmp2);
DUP2_ARG2(__lsx_vsrari_h,
dst0, 6,
dst2, 6,
dst0, dst2);
DUP2_ARG2(__lsx_vadd_h,
tmp0, dst0,
tmp2, dst2,
dst0, dst2);
DUP2_ARG1(__lsx_vclip255_h,
dst0, dst2,
dst0, dst2);
dst0 = __lsx_vpickev_b(dst2, dst0);
__lsx_vstelm_w(dst0, pPred, 0, 0);
__lsx_vstelm_w(dst0, pPred + kiStride, 0, 1);
__lsx_vstelm_w(dst0, pPred + iStride_x2, 0, 2);
__lsx_vstelm_w(dst0, pPred + iStride_x3, 0, 3);
}
void IdctResAddPred8x8_lsx (uint8_t* pPred, const int32_t kiStride,
int16_t* pRs) {
int32_t iStride0 = 0;
int32_t iStride_x2 = kiStride << 1;
int32_t iStride_x3 = kiStride + iStride_x2;
int32_t iStride_x4 = kiStride << 2;
int32_t iStride_x5 = kiStride + iStride_x4;
int32_t iStride_x6 = kiStride + iStride_x5;
int32_t iStride_x7 = kiStride + iStride_x6;
__m128i src0, src1, src2, src3, src4, src5, src6, src7;
__m128i pre0, pre1, pre2, pre3, pre4, pre5, pre6, pre7;
__m128i tmp0, tmp1, tmp2 ,tmp3, tmp4, tmp5, tmp6, tmp7;
DUP4_ARG2(__lsx_vld,
pRs, 0,
pRs, 16,
pRs, 32,
pRs, 48,
src0, src1, src2, src3);
DUP4_ARG2(__lsx_vld,
pRs, 64,
pRs, 80,
pRs, 96,
pRs, 112,
src4, src5, src6, src7);
DUP4_ARG2(__lsx_vldx,
pPred, iStride0,
pPred, kiStride,
pPred, iStride_x2,
pPred, iStride_x3,
pre0, pre1, pre2, pre3);
DUP4_ARG2(__lsx_vldx,
pPred, iStride_x4,
pPred, iStride_x5,
pPred, iStride_x6,
pPred, iStride_x7,
pre4, pre5, pre6, pre7);
//Horizontal
LSX_TRANSPOSE8x8_H(src0, src1, src2, src3, src4, src5, src6, src7,
src0, src1, src2, src3, src4, src5, src6, src7);
DO(src0, src1, src2, src3, src4, src5, src6, src7,
src0, src1, src2, src3, src4, src5, src6, src7);
//Vertical
LSX_TRANSPOSE8x8_H(src0, src1, src2, src3, src4, src5, src6, src7,
src0, src1, src2, src3, src4, src5, src6, src7);
DO(src0, src1, src2, src3, src4, src5, src6, src7,
src0, src1, src2, src3, src4, src5, src6, src7);
DUP4_ARG2(__lsx_vsllwil_hu_bu,
pre0, 0,
pre1, 0,
pre2, 0,
pre3, 0,
tmp0, tmp1, tmp2, tmp3);
DUP4_ARG2(__lsx_vsllwil_hu_bu,
pre4, 0,
pre5, 0,
pre6, 0,
pre7, 0,
tmp4, tmp5, tmp6, tmp7);
DUP4_ARG2(__lsx_vsrari_h,
src0, 6,
src1, 6,
src2, 6,
src3, 6,
src0, src1, src2, src3);
DUP4_ARG2(__lsx_vsrari_h,
src4, 6,
src5, 6,
src6, 6,
src7, 6,
src4, src5, src6, src7);
DUP4_ARG2(__lsx_vadd_h,
src0, tmp0,
src1, tmp1,
src2, tmp2,
src3, tmp3,
src0, src1, src2, src3);
DUP4_ARG2(__lsx_vadd_h,
src4, tmp4,
src5, tmp5,
src6, tmp6,
src7, tmp7,
src4, src5, src6, src7);
DUP4_ARG1(__lsx_vclip255_h,
src0,
src1,
src2,
src3,
src0, src1, src2, src3);
DUP4_ARG1(__lsx_vclip255_h,
src4,
src5,
src6,
src7,
src4, src5, src6, src7);
DUP4_ARG2(__lsx_vpickev_b,
src4, src0,
src5, src1,
src6, src2,
src7, src3,
src0, src1, src2, src3);
__lsx_vstelm_d(src0, pPred, 0, 0);
__lsx_vstelm_d(src1, pPred + kiStride, 0, 0);
__lsx_vstelm_d(src2, pPred + iStride_x2, 0, 0);
__lsx_vstelm_d(src3, pPred + iStride_x3, 0, 0);
__lsx_vstelm_d(src0, pPred + iStride_x4, 0, 1);
__lsx_vstelm_d(src1, pPred + iStride_x5, 0, 1);
__lsx_vstelm_d(src2, pPred + iStride_x6, 0, 1);
__lsx_vstelm_d(src3, pPred + iStride_x7, 0, 1);
}
+12
View File
@@ -1417,6 +1417,18 @@ void DeblockingInit (SDeblockingFunc* pFunc, int32_t iCpu) {
pFunc->pfChromaDeblockingEQ4Hor = DeblockChromaEq4H_msa;
}
#endif//HAVE_MSA
#if defined(HAVE_LSX)
if (iCpu & WELS_CPU_LSX) {
pFunc->pfLumaDeblockingLT4Ver = DeblockLumaLt4V_lsx;
pFunc->pfLumaDeblockingLT4Hor = DeblockLumaLt4H_lsx;
pFunc->pfLumaDeblockingEQ4Ver = DeblockLumaEq4V_lsx;
pFunc->pfLumaDeblockingEQ4Hor = DeblockLumaEq4H_lsx;
pFunc->pfChromaDeblockingLT4Ver = DeblockChromaLt4V_lsx;
pFunc->pfChromaDeblockingLT4Hor = DeblockChromaLt4H_lsx;
pFunc->pfChromaDeblockingEQ4Hor = DeblockChromaEq4H_lsx;
}
#endif//HAVE_LSX
}
} // namespace WelsDec
+10 -1
View File
@@ -442,7 +442,8 @@ static inline int32_t GetTargetRefListSize (PWelsDecoderContext pCtx) {
iNumRefFrames = pCtx->pSps->iNumRefFrames + 2;
int32_t iThreadCount = GetThreadCount (pCtx);
if (iThreadCount > 1) {
iNumRefFrames = MAX_REF_PIC_COUNT;
//due to thread and reordering buffering, it needs more dpb space
iNumRefFrames = MAX_DPB_COUNT + iThreadCount;
}
}
@@ -1168,6 +1169,14 @@ void InitPredFunc (PWelsDecoderContext pCtx, uint32_t uiCpuFlag) {
pCtx->pGetI4x4LumaPredFunc[I4_PRED_H] = WelsDecoderI4x4LumaPredH_mmi;
}
#endif//HAVE_MMI
#if defined(HAVE_LSX)
if (uiCpuFlag & WELS_CPU_LSX) {
pCtx->pIdctResAddPredFunc = IdctResAddPred_lsx;
pCtx->pIdctFourResAddPredFunc = IdctFourResAddPred_<IdctResAddPred_lsx>;
pCtx->pIdctResAddPredFunc8x8 = IdctResAddPred8x8_lsx;
}
#endif
}
//reset decoder number related statistics info
+1 -1
View File
@@ -465,7 +465,7 @@ int32_t ParseRefPicListReordering (PBitStringAux pBs, PSliceHeader pSh) {
const uint32_t kuiIdc = uiCode;
//Fixed the referrence list reordering crash issue.(fault kIdc value > 3 case)---
if ((iIdx >= MAX_REF_PIC_COUNT) || (kuiIdc > 3)) {
if (((iIdx >= MAX_REF_PIC_COUNT) && (kuiIdc != 3)) || (kuiIdc > 3)) {
return GENERATE_ERROR_NO (ERR_LEVEL_SLICE_HEADER, ERR_INFO_INVALID_REF_REORDERING);
}
pRefPicListReordering->sReorderingSyn[iList][iIdx].uiReorderingOfPicNumsIdc = kuiIdc;
+7 -5
View File
@@ -395,8 +395,8 @@ int32_t WelsReorderRefList (PWelsDecoderContext pCtx) {
PPicture pPic = NULL;
PPicture* ppRefList = pCtx->sRefPic.pRefList[listIdx];
int32_t iMaxRefIdx = pCtx->iPicQueueNumber;
if (iMaxRefIdx >= MAX_REF_PIC_COUNT) {
iMaxRefIdx = MAX_REF_PIC_COUNT - 1;
if (iMaxRefIdx > MAX_REF_PIC_COUNT) {
iMaxRefIdx = MAX_REF_PIC_COUNT;
}
int32_t iRefCount = pSliceHeader->uiRefCount[listIdx];
int32_t iPredFrameNum = pSliceHeader->iFrameNum;
@@ -411,7 +411,7 @@ int32_t WelsReorderRefList (PWelsDecoderContext pCtx) {
}
if (pRefPicListReorderSyn->bRefPicListReorderingFlag[listIdx]) {
while ((iReorderingIndex < iMaxRefIdx)
while ((iReorderingIndex <= iMaxRefIdx)
&& (pRefPicListReorderSyn->sReorderingSyn[listIdx][iReorderingIndex].uiReorderingOfPicNumsIdc != 3)) {
uint16_t uiReorderingOfPicNumsIdc =
pRefPicListReorderSyn->sReorderingSyn[listIdx][iReorderingIndex].uiReorderingOfPicNumsIdc;
@@ -873,7 +873,7 @@ static int32_t AddLongTermToList (PRefPic pRefPic, PPicture pPic, int32_t iLongT
if (pRefPic->uiLongRefCount[LIST_0] == 0) {
pRefPic->pLongRefList[LIST_0][pRefPic->uiLongRefCount[LIST_0]] = pPic;
} else {
for (i = 0; i < pRefPic->uiLongRefCount[LIST_0]; i++) {
for (i = 0; i < WELS_MIN(pRefPic->uiLongRefCount[LIST_0], MAX_REF_PIC_COUNT); i++) {
if (!pRefPic->pLongRefList[LIST_0][i]) {
return ERR_INFO_INVALID_PTR;
}
@@ -886,7 +886,9 @@ static int32_t AddLongTermToList (PRefPic pRefPic, PPicture pPic, int32_t iLongT
pRefPic->pLongRefList[LIST_0][i] = pPic;
}
pRefPic->uiLongRefCount[LIST_0]++;
if (pRefPic->uiLongRefCount[LIST_0] < MAX_REF_PIC_COUNT) {
pRefPic->uiLongRefCount[LIST_0]++;
}
return ERR_NONE;
}
+5
View File
@@ -49,6 +49,11 @@ elif cpu_family == 'aarch64'
else
cpp_sources += asm_sources
endif
elif cpu_family in ['loongarch32', 'loongarch64']
asm_sources = [
'core/loongarch/mb_aux_lsx.c',
]
cpp_sources += asm_sources
else
error('Unsupported cpu family @0@'.format(cpu_family))
endif
+14
View File
@@ -1198,6 +1198,20 @@ DECODING_STATE CWelsDecoder::ReorderPicturesInDisplay(PWelsDecoderContext pDecCo
m_bIsBaseline = pDecContext->pSps->uiProfileIdc == 66 || pDecContext->pSps->uiProfileIdc == 83;
if (!m_bIsBaseline) {
if (pDstInfo->iBufferStatus == 1) {
if (m_sReoderingStatus.iLastGOPRemainPicts == 0 && pDecContext->pSliceHeader->eSliceType == B_SLICE &&
pDecContext->pSliceHeader->iPicOrderCntLsb <= m_sReoderingStatus.iLastWrittenPOC + 2) {
//issue #3478, use b-slice type to determine correct picture order as the first priority as POC order is not as reliable as based on b-slice
ppDst[0] = pDstInfo->pDst[0];
ppDst[1] = pDstInfo->pDst[1];
ppDst[2] = pDstInfo->pDst[2];
#if defined (_DEBUG)
#ifdef _MOTION_VECTOR_DUMP_
fprintf (stderr, "Output POC: #%d uiDecodingTimeStamp=%d\n", pDecContext->pSliceHeader->iPicOrderCntLsb,
pDecContext->uiDecodingTimeStamp);
#endif
#endif
return iRet;
}
BufferingReadyPicture(pDecContext, ppDst, pDstInfo);
if (!m_sReoderingStatus.bHasBSlice && m_sReoderingStatus.iNumOfPicts > 1) {
ReleaseBufferedReadyPictureNoReorder (pDecContext, ppDst, pDstInfo);
+1
View File
@@ -77,6 +77,7 @@ OBJS += $(DECODER_OBJSMIPS_MMI)
OBJS += $(DECODER_OBJSMIPS_MSA)
DECODER_ASM_LOONGARCH_LSX_SRCS=\
$(DECODER_SRCDIR)/core/loongarch/mb_aux_lsx.c\
DECODER_OBJSLOONGARCH_LSX += $(DECODER_ASM_LOONGARCH_LSX_SRCS:.c=.$(OBJ))
+5
View File
@@ -100,6 +100,11 @@ void WelsIDctT4Rec_mmi (uint8_t* pRec, int32_t iStride, uint8_t* pPrediction, in
void WelsIDctFourT4Rec_mmi (uint8_t* pRec, int32_t iStride, uint8_t* pPrediction, int32_t iPredStride, int16_t* pDct);
void WelsIDctRecI16x16Dc_mmi (uint8_t* pRec, int32_t iStride, uint8_t* pPrediction, int32_t iPredStride, int16_t* pDctDc);
#endif//HAVE_MMI
#if defined(HAVE_LASX)
void WelsIDctT4Rec_lasx (uint8_t* pRec, int32_t iStride, uint8_t* pPrediction, int32_t iPredStride, int16_t* pDct);
void WelsIDctFourT4Rec_lasx (uint8_t* pRec, int32_t iStride, uint8_t* pPrediction, int32_t iPredStride, int16_t* pDct);
#endif
#if defined(__cplusplus)
}
#endif//__cplusplus
+9
View File
@@ -176,9 +176,18 @@ void WelsQuantFour4x4Max_mmi (int16_t* pDct, const int16_t* pFF, const int16_t*
#endif//HAVE_MMI
#ifdef HAVE_LSX
void WelsQuantFour4x4_lsx (int16_t* pDct, const int16_t* pFF, const int16_t* pMF);
void WelsQuantFour4x4Max_lsx (int16_t* pDct, const int16_t* pFF, const int16_t* pMF, int16_t* pMax);
#endif//HAVE_LSX
#ifdef HAVE_LASX
/****************************************************************************
* * DCT functions
* ****************************************************************************/
void WelsDctT4_lasx (int16_t* pDct, uint8_t* pPixel1, int32_t iStride1, uint8_t* pPixel2, int32_t iStride2);
void WelsDctFourT4_lasx (int16_t* pDct, uint8_t* pPixel1, int32_t iStride1, uint8_t* pPixel2, int32_t iStride2);
#endif
#if defined(__cplusplus)
}
#endif//__cplusplus
@@ -163,6 +163,10 @@ void WelsIChromaPredV_mmi (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride
void WelsIChromaPredDc_mmi (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
void WelsIChromaPredPlane_mmi (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
#endif//HAVE_MMI
#if defined(HAVE_LSX)
void WelsI16x16LumaPredPlane_lsx (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
#endif//HAVE_LSX
#if defined(__cplusplus)
}
#endif//__cplusplus
+4 -1
View File
@@ -178,6 +178,8 @@ typedef struct TagWelsSvcCodingParam: SEncParamExt {
param.iUsageType = CAMERA_VIDEO_REAL_TIME;
param.uiMaxNalSize = 0;
param.bIsLosslessLink = false;
param.bFixRCOverShoot = true;
param.iIdrBitrateRatio = IDR_BITRATE_RATIO * 100;
for (int32_t iLayer = 0; iLayer < MAX_SPATIAL_LAYER_NUM; iLayer++) {
param.sSpatialLayers[iLayer].uiProfileIdc = PRO_UNKNOWN;
param.sSpatialLayers[iLayer].uiLevelIdc = LEVEL_UNKNOWN;
@@ -288,7 +290,6 @@ typedef struct TagWelsSvcCodingParam: SEncParamExt {
}
int32_t ParamTranscode (const SEncParamExt& pCodingParam) {
float fParamMaxFrameRate = WELS_CLIP3 (pCodingParam.fMaxFrameRate, MIN_FRAME_RATE, MAX_FRAME_RATE);
iUsageType = pCodingParam.iUsageType;
iPicWidth = pCodingParam.iPicWidth;
iPicHeight = pCodingParam.iPicHeight;
@@ -342,6 +343,8 @@ typedef struct TagWelsSvcCodingParam: SEncParamExt {
bEnableLongTermReference = pCodingParam.bEnableLongTermReference ? true : false;
iLtrMarkPeriod = pCodingParam.iLtrMarkPeriod;
bIsLosslessLink = pCodingParam.bIsLosslessLink;
bFixRCOverShoot = pCodingParam.bFixRCOverShoot;
iIdrBitrateRatio = pCodingParam.iIdrBitrateRatio;
if (iUsageType == SCREEN_CONTENT_REAL_TIME && !bIsLosslessLink && bEnableLongTermReference) {
bEnableLongTermReference = false;
}
+1
View File
@@ -169,6 +169,7 @@ int32_t iMaxBitsPerFrame;
double dPreviousFps;
// bits allocation and status
int32_t iLastAllocatedBits;
int32_t iRemainingBits;
int32_t iBitsPerMb;
int32_t iTargetBits;
+330
View File
@@ -0,0 +1,330 @@
/*!
* \copy
* Copyright (c) 2022, Cisco Systems
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*
* \file dct_lasx.c
*
* \brief Loongson optimization
*
* \date 15/02/2022 Created
*
*************************************************************************************
*/
#include <stdint.h>
#include "loongson_intrinsics.h"
#define CALC_TEMPS_AND_PDCT(src0, src1, src2, src3, \
dst0, dst1, dst2, dst3) \
do { \
__m256i tms0, tms1, tms2, tms3; \
tms0 = __lasx_xvadd_h(src0, src3); \
tms1 = __lasx_xvadd_h(src1, src2); \
tms2 = __lasx_xvsub_h(src1, src2); \
tms3 = __lasx_xvsub_h(src0, src3); \
dst0 = __lasx_xvadd_h(tms0, tms1); \
dst1 = __lasx_xvslli_h(tms3, 1); \
dst1 = __lasx_xvadd_h(dst1, tms2); \
dst2 = __lasx_xvsub_h(tms0, tms1); \
dst3 = __lasx_xvslli_h(tms2, 1); \
dst3 = __lasx_xvsub_h(tms3, dst3); \
}while(0)
/****************************************************************************
* DCT functions
****************************************************************************/
void WelsDctT4_lasx (int16_t* pDct, uint8_t* pPixel1,
int32_t iStride1, uint8_t* pPixel2,
int32_t iStride2) {
int32_t iStride0 = 0;
int32_t iStride1_x2 = iStride1 << 1;
int32_t iStride1_x3 = iStride1_x2 + iStride1;
int32_t iStride2_x2 = iStride2 << 1;
int32_t iStride2_x3 = iStride2_x2 + iStride2;
__m256i src0, src1, src2, src3, src4, src5, src6, src7;
__m256i dst0, dst1, dst2, dst3;
DUP4_ARG2(__lasx_xvldx,
pPixel1, iStride0,
pPixel1, iStride1,
pPixel1, iStride1_x2,
pPixel1, iStride1_x3,
src0, src1, src2, src3);
DUP4_ARG2(__lasx_xvldx,
pPixel2, iStride0,
pPixel2, iStride2,
pPixel2, iStride2_x2,
pPixel2, iStride2_x3,
src4, src5, src6, src7);
DUP4_ARG2(__lasx_xvilvl_b,
src0, src4,
src1, src5,
src2, src6,
src3, src7,
src0, src1, src2, src3);
DUP4_ARG2(__lasx_xvhsubw_hu_bu,
src0, src0,
src1, src1,
src2, src2,
src3, src3,
src0, src1, src2, src3);
LASX_TRANSPOSE4x4_H(src0, src1, src2, src3,
src0, src1, src2, src3);
CALC_TEMPS_AND_PDCT(src0, src1, src2, src3,
dst0, dst1, dst2, dst3);
LASX_TRANSPOSE4x4_H(dst0, dst1, dst2, dst3,
src0, src1, src2, src3);
CALC_TEMPS_AND_PDCT(src0, src1, src2, src3,
dst0, dst1, dst2, dst3);
dst0 = __lasx_xvpackev_d(dst1, dst0);
dst2 = __lasx_xvpackev_d(dst3, dst2);
dst0 = __lasx_xvpermi_q(dst2, dst0, 0x20);
__lasx_xvst(dst0, pDct, 0);
}
void WelsDctFourT4_lasx (int16_t* pDct, uint8_t* pPixel1,
int32_t iStride1, uint8_t* pPixel2,
int32_t iStride2) {
int32_t stride_1 = iStride1 << 2;
int32_t stride_2 = iStride2 << 2;
int32_t iStride0 = 0;
int32_t iStride1_x2 = iStride1 << 1;
int32_t iStride1_x3 = iStride1_x2 + iStride1;
int32_t iStride2_x2 = iStride2 << 1;
int32_t iStride2_x3 = iStride2_x2 + iStride2;
uint8_t *psrc10 = pPixel1, *psrc11 = pPixel2;
uint8_t *psrc20 = pPixel1 + stride_1, *psrc21 = pPixel2 + stride_2;
__m256i src0, src1, src2, src3, src4, src5, src6, src7,
src8, src9, src10, src11, src12, src13, src14 ,src15;
__m256i tmp0, tmp1, tmp2, tmp3, dst0, dst1, dst2, dst3, dst4,
dst5, dst6, dst7;
DUP4_ARG2(__lasx_xvldx,
psrc10, iStride0,
psrc10, iStride1,
psrc10, iStride1_x2,
psrc10, iStride1_x3,
src0, src1, src2, src3);
DUP4_ARG2(__lasx_xvldx,
psrc11, iStride0,
psrc11, iStride2,
psrc11, iStride2_x2,
psrc11, iStride2_x3,
src4, src5, src6, src7);
DUP4_ARG2(__lasx_xvldx,
psrc20, iStride0,
psrc20, iStride1,
psrc20, iStride1_x2,
psrc20, iStride1_x3,
src8, src9, src10, src11);
DUP4_ARG2(__lasx_xvldx,
psrc21, iStride0,
psrc21, iStride2,
psrc21, iStride2_x2,
psrc21, iStride2_x3,
src12, src13, src14, src15);
DUP4_ARG2(__lasx_xvilvl_b,
src0, src4,
src1, src5,
src2, src6,
src3, src7,
src0, src1, src2, src3);
DUP4_ARG2(__lasx_xvilvl_b,
src8, src12,
src9, src13,
src10, src14,
src11, src15,
src8, src9, src10, src11);
DUP4_ARG2(__lasx_xvhsubw_hu_bu,
src0, src0,
src1, src1,
src2, src2,
src3, src3,
src0, src1, src2, src3);
DUP4_ARG2(__lasx_xvhsubw_hu_bu,
src8, src8,
src9, src9,
src10, src10,
src11, src11,
src8, src9, src10 ,src11);
LASX_TRANSPOSE8x8_H(src0, src1, src2, src3, src8, src9, src10, src11,
src0, src1, src2, src3, src8, src9, src10, src11);
DUP4_ARG3(__lasx_xvpermi_q,
src8, src0, 0x20,
src9, src1, 0x20,
src10,src2, 0x20,
src11,src3, 0x20,
src0, src1, src2, src3);
CALC_TEMPS_AND_PDCT(src0, src1, src2, src3,
dst0, dst1, dst2, dst3);
DUP4_ARG3(__lasx_xvpermi_q,
dst0, dst0, 0x31,
dst1, dst1, 0x31,
dst2, dst2, 0x31,
dst3, dst3, 0x31,
dst4, dst5, dst6, dst7);
LASX_TRANSPOSE8x8_H(dst0, dst1, dst2, dst3, dst4, dst5, dst6, dst7,
dst0, dst1, dst2, dst3, dst4, dst5, dst6, dst7);
DUP4_ARG3(__lasx_xvpermi_q,
dst4, dst0, 0x20,
dst5, dst1, 0x20,
dst6, dst2, 0x20,
dst7, dst3, 0x20,
dst0, dst1, dst2, dst3);
CALC_TEMPS_AND_PDCT(dst0, dst1, dst2, dst3,
dst0, dst1, dst2, dst3);
DUP2_ARG2(__lasx_xvpackev_d,
dst1, dst0,
dst3, dst2,
tmp0, tmp1);
DUP2_ARG2(__lasx_xvpackod_d,
dst1, dst0,
dst3, dst2,
tmp2, tmp3);
DUP2_ARG3(__lasx_xvpermi_q,
tmp1, tmp0, 0x20,
tmp3, tmp2, 0x20,
dst0, dst1);
DUP2_ARG3(__lasx_xvpermi_q,
tmp1, tmp0, 0x31,
tmp3, tmp2, 0x31,
dst2, dst3);
__lasx_xvst(dst0, pDct, 0);
__lasx_xvst(dst1, pDct, 32);
__lasx_xvst(dst2, pDct, 64);
__lasx_xvst(dst3, pDct, 96);
}
/****************************************************************************
* IDCT functions, final output = prediction(CS) + IDCT(scaled_coeff)
****************************************************************************/
void WelsIDctT4Rec_lasx (uint8_t* pRec, int32_t iStride,
uint8_t* pPred, int32_t iPredStride,
int16_t* pDct) {
int32_t iDstStride_x2 = iStride << 1;
int32_t iDstStride_x3 = iStride + iDstStride_x2;
int32_t iPredStride_x2 = iPredStride << 1;
int32_t iPredStride_x3 = iPredStride + iPredStride_x2;
__m256i src0, src1, src2, src3, src4, src5, src6, src7,
tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7,
dst0, dst1, dst2, dst3;
__m256i zero = __lasx_xvldi(0);
src0 = __lasx_xvld(pDct, 0);
src4 = __lasx_xvld(pPred, 0);
src5 = __lasx_xvldx(pPred, iPredStride);
src6 = __lasx_xvldx(pPred, iPredStride_x2);
src7 = __lasx_xvldx(pPred, iPredStride_x3);
src1 = __lasx_xvpickve_d(src0, 1);
src2 = __lasx_xvpickve_d(src0, 2);
src3 = __lasx_xvpickve_d(src0, 3);
LASX_TRANSPOSE4x4_H(src0, src1, src2, src3,
tmp0, tmp1, tmp2, tmp3);
DUP4_ARG1(__lasx_vext2xv_w_h,
tmp0, tmp1, tmp2, tmp3,
src0, src1, src2, src3);
//horizon
tmp0 = __lasx_xvadd_w(src0, src2); //0+2 sumu
tmp1 = __lasx_xvsrai_w(src3, 1);
tmp1 = __lasx_xvadd_w(src1, tmp1); //1+3 sumd
tmp2 = __lasx_xvsub_w(src0, src2); //0-2 delu
tmp3 = __lasx_xvsrai_w(src1, 1);
tmp3 = __lasx_xvsub_w(tmp3, src3); //1-3 deld
src0 = __lasx_xvadd_w(tmp0 ,tmp1); //0 4 8 12
src1 = __lasx_xvadd_w(tmp2, tmp3); //1 5 9 13
src2 = __lasx_xvsub_w(tmp2, tmp3); //2 6 10 14
src3 = __lasx_xvsub_w(tmp0, tmp1); //3 7 11 15
DUP4_ARG2(__lasx_xvpickev_h,
zero, src0,
zero, src1,
zero, src2,
zero, src3,
src0, src1, src2, src3);
//vertical
LASX_TRANSPOSE4x4_H(src0, src1, src2, src3,
tmp0, tmp1, tmp2, tmp3);
DUP4_ARG1(__lasx_vext2xv_w_h,
tmp0, tmp1, tmp2, tmp3,
src0, src1, src2, src3);
tmp0 = __lasx_xvadd_w(src0, src2); //suml
tmp1 = __lasx_xvsrai_w(src3, 1);
tmp1 = __lasx_xvadd_w(src1, tmp1); //sumr
tmp2 = __lasx_xvsub_w(src0, src2); //dell
tmp3 = __lasx_xvsrai_w(src1, 1);
tmp3 = __lasx_xvsub_w(tmp3, src3); //delr
dst0 = __lasx_xvadd_w(tmp0, tmp1);
dst1 = __lasx_xvadd_w(tmp2, tmp3);
dst2 = __lasx_xvsub_w(tmp2, tmp3);
dst3 = __lasx_xvsub_w(tmp0, tmp1);
DUP4_ARG2(__lasx_xvsrari_w,
dst0, 6,
dst1, 6,
dst2, 6,
dst3, 6,
dst0, dst1, dst2, dst3);
DUP4_ARG1(__lasx_vext2xv_wu_bu,
src4, src5, src6, src7,
tmp4, tmp5, tmp6, tmp7);
DUP4_ARG2(__lasx_xvadd_w,
tmp4, dst0,
tmp5, dst1,
tmp6, dst2,
tmp7, dst3,
dst0, dst1, dst2, dst3);
DUP4_ARG1(__lasx_xvclip255_w,
dst0, dst1, dst2, dst3,
dst0, dst1, dst2, dst3);
DUP2_ARG2(__lasx_xvpickev_h,
dst1, dst0,
dst3, dst2,
dst0, dst2);
dst0 = __lasx_xvpickev_b(dst2, dst0);
__lasx_xvstelm_w(dst0, pRec, 0, 0);
__lasx_xvstelm_w(dst0, pRec + iStride, 0, 1);
__lasx_xvstelm_w(dst0, pRec + iDstStride_x2, 0, 2);
__lasx_xvstelm_w(dst0, pRec + iDstStride_x3, 0, 3);
}
void WelsIDctFourT4Rec_lasx (uint8_t* pRec, int32_t iStride,
uint8_t* pPred, int32_t iPredStride,
int16_t* pDct) {
int32_t iDstStridex4 = iStride << 2;
int32_t iPredStridex4 = iPredStride << 2;
WelsIDctT4Rec_lasx (pRec, iStride, pPred, iPredStride, pDct);
WelsIDctT4Rec_lasx (&pRec[4], iStride, &pPred[4], iPredStride, pDct + 16);
WelsIDctT4Rec_lasx (&pRec[iDstStridex4 ], iStride, &pPred[iPredStridex4 ], iPredStride, pDct + 32);
WelsIDctT4Rec_lasx (&pRec[iDstStridex4 + 4], iStride, &pPred[iPredStridex4 + 4], iPredStride, pDct + 48);
}
@@ -0,0 +1,166 @@
/*!
**********************************************************************************
* Copyright (c) 2022 Loongson Technology Corporation Limited
* Contributed by Lu Wang <wanglu@loongson.cn>
*
* \copy
* Copyright (c) 2009-2013, Cisco Systems
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*
* \file get_intra_predictor_lsx.c
*
* \brief Loongson optimization
*
* \date 03/03/2022 Created
*
*************************************************************************************
*/
#include <stdint.h>
#include "loongson_intrinsics.h"
void WelsI16x16LumaPredPlane_lsx (uint8_t* pPred, uint8_t* pRef,
const int32_t kiStride) {
int32_t iLTshift = 0, iTopshift = 0;
int32_t iLeftshift = 0, iTopSum = 0, iLeftSum = 0;
int32_t i, j;
uint8_t* pTop = &pRef[-kiStride];
uint8_t* pLeft = &pRef[-1];
int32_t iPredStride = 16;
int32_t kiStride_x2 = kiStride << 1;
int32_t kiStride_x3 = kiStride_x2 + kiStride;
int32_t kiStride_x4 = kiStride << 2;
int32_t kiStride_x5 = kiStride_x4 + kiStride;
int32_t kiStride_x6 = kiStride_x4 + kiStride_x2;
int32_t kiStride_x7 = kiStride_x4 + kiStride_x3;
int32_t kiStride_x8 = kiStride << 3;
__m128i q0, q1, q2, q3, q4, q5, q6, q7, p0, p1, p2;
__m128i q0_l, q1_l, q2_l, q3_l, q4_l, q5_l, q6_l, q7_l, p0_l, p1_l;
__m128i TopSum, LeftSum, sum, sum0, sum1, uiTmp, uiTmp0, uiTmp1;
__m128i iLTshift_vec, iLeftshift_vec, iLeftshift_vec0;
__m128i iTopshift_vec, iTopshift_vec0, iTopshift_vec1;
__m128i tmp, flags, num;
__m128i zero = __lsx_vldi(0);
__m128i i_vec = {0x0004000300020001, 0x0008000700060005};
__m128i shuf = {0x0001020304050607, 0x0f0e0d0c0b0a0908};
__m128i not_255 = {0xff00ff00ff00ff00, 0xff00ff00ff00ff00};
__m128i sixteen = {0x10001000100010, 0x10001000100010};
__m128i t0 = {0xfffcfffbfffafff9, 0x0000fffffffefffd};
__m128i t1 = {0x0004000300020001, 0x0008000700060005};
DUP2_ARG2(__lsx_vldx, pTop, 8, pTop, -1, p0, p1);
p1 = __lsx_vshuf_b(p1, p1, shuf);
DUP2_ARG2(__lsx_vilvl_b, zero, p0, zero, p1, p0_l, p1_l);
p2 = __lsx_vsub_h(p0_l, p1_l);
TopSum = __lsx_vmul_h(i_vec, p2);
tmp = __lsx_vbsrl_v(TopSum, 8);
TopSum = __lsx_vadd_h(TopSum, tmp);
tmp = __lsx_vbsrl_v(TopSum, 4);
TopSum = __lsx_vadd_h(TopSum, tmp);
tmp = __lsx_vbsrl_v(TopSum, 2);
TopSum = __lsx_vadd_h(TopSum, tmp);
iTopSum = __lsx_vpickve2gr_h(TopSum, 0);
pLeft += kiStride_x7;
DUP4_ARG2(__lsx_vldx, pLeft, kiStride, pLeft, kiStride_x2, pLeft, kiStride_x3,
pLeft, kiStride_x4, q0, q1, q2, q3);
DUP4_ARG2(__lsx_vldx, pLeft, kiStride_x5, pLeft, kiStride_x6, pLeft, kiStride_x7,
pLeft, kiStride_x8, q4, q5, q6, q7);
DUP4_ARG2(__lsx_vilvl_b, zero, q0, zero, q1, zero, q2, zero, q3,
q0_l, q1_l, q2_l, q3_l);
DUP4_ARG2(__lsx_vilvl_b, zero, q4, zero, q5, zero, q6, zero, q7,
q4_l, q5_l, q6_l, q7_l);
LSX_TRANSPOSE8x8_H(q0_l, q1_l, q2_l, q3_l, q4_l, q5_l, q6_l, q7_l,
p0, q1, q2, q3, q4, q5, q6, q7);
DUP4_ARG2(__lsx_vldx, pLeft, -kiStride, pLeft, -kiStride_x2, pLeft, -kiStride_x3,
pLeft, -kiStride_x4, q0, q1, q2, q3);
DUP4_ARG2(__lsx_vldx, pLeft, -kiStride_x5, pLeft, -kiStride_x6, pLeft, -kiStride_x7,
pLeft, -kiStride_x8, q4, q5, q6, q7);
DUP4_ARG2(__lsx_vilvl_b, zero, q0, zero, q1, zero, q2, zero, q3,
q0_l, q1_l, q2_l, q3_l);
DUP4_ARG2(__lsx_vilvl_b, zero, q4, zero, q5, zero, q6, zero, q7,
q4_l, q5_l, q6_l, q7_l);
LSX_TRANSPOSE8x8_H(q0_l, q1_l, q2_l, q3_l, q4_l, q5_l, q6_l, q7_l,
q0, q1, q2, q3, q4, q5, q6, q7);
q1 = __lsx_vsub_h(p0, q0);
LeftSum = __lsx_vmul_h(i_vec, q1);
tmp = __lsx_vbsrl_v(LeftSum, 8);
LeftSum = __lsx_vadd_h(LeftSum, tmp);
tmp = __lsx_vbsrl_v(LeftSum, 4);
LeftSum = __lsx_vadd_h(LeftSum, tmp);
tmp = __lsx_vbsrl_v(LeftSum, 2);
LeftSum = __lsx_vadd_h(LeftSum, tmp);
iLeftSum = __lsx_vpickve2gr_h(LeftSum, 0);
iLTshift = (pLeft[kiStride_x8] + pTop[15]) << 4;
iTopshift = ((iTopSum << 2) + iTopSum + 32) >> 6;
iLeftshift = ((iLeftSum << 2) + iLeftSum + 32) >> 6;
DUP2_ARG1(__lsx_vreplgr2vr_h, iLTshift, iTopshift,
iLTshift_vec, iTopshift_vec);
iLeftshift_vec = __lsx_vreplgr2vr_h(iLeftshift);
DUP2_ARG2(__lsx_vmul_h, iTopshift_vec, t0, iTopshift_vec, t1,
iTopshift_vec0, iTopshift_vec1);
DUP2_ARG2(__lsx_vadd_h, iLTshift_vec, iTopshift_vec0, sum0, sixteen, sum0, sum0);
DUP2_ARG2(__lsx_vadd_h, iLTshift_vec, iTopshift_vec1, sum1, sixteen, sum1, sum1);
for (i = 0; i < 16; i++) {
j = i - 7;
num = __lsx_vreplgr2vr_h(j);
iLeftshift_vec0 = __lsx_vmul_h(iLeftshift_vec, num);
sum = __lsx_vadd_h(sum0, iLeftshift_vec0);
sum = __lsx_vsrai_h(sum, 5);
flags = __lsx_vand_v(sum, not_255);
flags = __lsx_vseq_h(flags, zero);
tmp = __lsx_vslt_h(zero, sum);
uiTmp = __lsx_vand_v(flags, sum);
flags = __lsx_vnor_v(flags, flags);
tmp = __lsx_vand_v(flags, tmp);
uiTmp0 = __lsx_vadd_h(uiTmp, tmp);
sum = __lsx_vadd_h(sum1, iLeftshift_vec0);
sum = __lsx_vsrai_h(sum, 5);
flags = __lsx_vand_v(sum, not_255);
flags = __lsx_vseq_h(flags, zero);
tmp = __lsx_vslt_h(zero, sum);
uiTmp = __lsx_vand_v(flags, sum);
flags = __lsx_vnor_v(flags, flags);
tmp = __lsx_vand_v(flags, tmp);
uiTmp1 = __lsx_vadd_h(uiTmp, tmp);
uiTmp = __lsx_vpickev_b(uiTmp1, uiTmp0);
__lsx_vst(uiTmp, pPred, 0);
pPred += iPredStride;
}
}
+44 -1
View File
@@ -41,9 +41,52 @@
**********************************************************************************
*/
#include "stdint.h"
#include <stdint.h>
#include "loongson_intrinsics.h"
void WelsQuantFour4x4_lsx (int16_t* pDct, const int16_t* pFF, const int16_t* pMF) {
int32_t i;
__m128i vec_pFF0, vec_pFF1, vec_pFF2, vec_pMF0, vec_pMF1, vec_pMF2;
__m128i vec_pDct, vec_pDct0, vec_pDct1, vec_pDct2, vec_pFF, vec_pMF;
__m128i vec_pDct10, vec_pDct11, vec_pDct12, vec_pDct20, vec_pDct21, vec_pDct22;
__m128i vec_iSign1, vec_iSign2;
DUP2_ARG2(__lsx_vld, pFF, 0, pMF, 0, vec_pFF, vec_pMF);
DUP2_ARG2(__lsx_vsrai_h, vec_pFF, 15, vec_pMF, 15, vec_pFF0, vec_pMF0);
DUP2_ARG2(__lsx_vilvl_h, vec_pFF0, vec_pFF, vec_pMF0, vec_pMF, vec_pFF1, vec_pMF1);
DUP2_ARG2(__lsx_vilvh_h, vec_pFF0, vec_pFF, vec_pMF0, vec_pMF, vec_pFF2, vec_pMF2);
for (i = 0; i < 8; i++) {
vec_pDct = __lsx_vld(pDct, 0);
vec_pDct0 = __lsx_vsrai_h(vec_pDct, 15);
vec_pDct1 = __lsx_vilvl_h(vec_pDct0, vec_pDct);
vec_pDct2 = __lsx_vilvh_h(vec_pDct0, vec_pDct);
vec_iSign1 = __lsx_vsrai_w(vec_pDct1, 31);
vec_iSign2 = __lsx_vsrai_w(vec_pDct2, 31);
vec_pDct10 = __lsx_vxor_v(vec_iSign1, vec_pDct1);
vec_pDct10 = __lsx_vsub_w(vec_pDct10, vec_iSign1);
vec_pDct11 = __lsx_vadd_w(vec_pFF1, vec_pDct10);
vec_pDct11 = __lsx_vmul_w(vec_pDct11, vec_pMF1);
vec_pDct11 = __lsx_vsrai_w(vec_pDct11, 16);
vec_pDct12 = __lsx_vxor_v(vec_iSign1, vec_pDct11);
vec_pDct12 = __lsx_vsub_w(vec_pDct12, vec_iSign1);
vec_pDct20 = __lsx_vxor_v(vec_iSign2, vec_pDct2);
vec_pDct20 = __lsx_vsub_w(vec_pDct20, vec_iSign2);
vec_pDct21 = __lsx_vadd_w(vec_pFF2, vec_pDct20);
vec_pDct21 = __lsx_vmul_w(vec_pDct21, vec_pMF2);
vec_pDct21 = __lsx_vsrai_w(vec_pDct21, 16);
vec_pDct22 = __lsx_vxor_v(vec_iSign2, vec_pDct21);
vec_pDct22 = __lsx_vsub_w(vec_pDct22, vec_iSign2);
vec_pDct = __lsx_vpickev_h(vec_pDct22, vec_pDct12);
__lsx_vst(vec_pDct, pDct, 0);
pDct += 8;
}
}
void WelsQuantFour4x4Max_lsx (int16_t* pDct, const int16_t* pFF, const int16_t* pMF, int16_t* pMax) {
int32_t k;
int16_t iMaxAbs;
+12
View File
@@ -878,6 +878,18 @@ void DeblockingInit (DeblockingFunc* pFunc, int32_t iCpu) {
pFunc->pfChromaDeblockingEQ4Hor = DeblockChromaEq4H_msa;
}
#endif//HAVE_MSA
#if defined(HAVE_LSX)
if (iCpu & WELS_CPU_LSX) {
pFunc->pfLumaDeblockingLT4Ver = DeblockLumaLt4V_lsx;
pFunc->pfLumaDeblockingLT4Hor = DeblockLumaLt4H_lsx;
pFunc->pfLumaDeblockingEQ4Ver = DeblockLumaEq4V_lsx;
pFunc->pfLumaDeblockingEQ4Hor = DeblockLumaEq4H_lsx;
pFunc->pfChromaDeblockingLT4Ver = DeblockChromaLt4V_lsx;
pFunc->pfChromaDeblockingLT4Hor = DeblockChromaLt4H_lsx;
pFunc->pfChromaDeblockingEQ4Hor = DeblockChromaEq4H_lsx;
}
#endif//HAVE_LSX
}
+7
View File
@@ -310,5 +310,12 @@ void WelsInitReconstructionFuncs (SWelsFuncPtrList* pFuncList, uint32_t uiCpuFl
pFuncList->pfIDctI16x16Dc = WelsIDctRecI16x16Dc_mmi;
}
#endif//HAVE_MMI
#if defined(HAVE_LASX)
if (uiCpuFlag & WELS_CPU_LASX) {
pFuncList->pfIDctT4 = WelsIDctT4Rec_lasx;
pFuncList->pfIDctFourT4 = WelsIDctFourT4Rec_lasx;
}
#endif
}
}
+7
View File
@@ -629,8 +629,15 @@ void WelsInitEncodingFuncs (SWelsFuncPtrList* pFuncList, uint32_t uiCpuFlag) {
pFuncList->pfCopy8x8Aligned = WelsCopy8x8_lsx;
pFuncList->pfCopy16x16Aligned = WelsCopy16x16_lsx;
pFuncList->pfCopy16x16NotAligned = WelsCopy16x16NotAligned_lsx;
pFuncList->pfQuantizationFour4x4 = WelsQuantFour4x4_lsx;
pFuncList->pfQuantizationFour4x4Max = WelsQuantFour4x4Max_lsx;
}
#endif
#if defined(HAVE_LASX)
if (uiCpuFlag & WELS_CPU_LASX) {
pFuncList->pfDctT4 = WelsDctT4_lasx;
pFuncList->pfDctFourT4 = WelsDctFourT4_lasx;
}
#endif
}
}
@@ -734,5 +734,13 @@ void WelsInitIntraPredFuncs (SWelsFuncPtrList* pFuncList, const uint32_t kuiCpuF
pFuncList->pfGetChromaPred[C_PRED_P] = WelsIChromaPredPlane_mmi;
}
#endif//HAVE_MMI
#if defined(HAVE_LSX)
if (kuiCpuFlag & WELS_CPU_LSX) {
pFuncList->pfGetLumaI16x16Pred[I16_PRED_V] = WelsI16x16LumaPredV_lsx;
pFuncList->pfGetLumaI16x16Pred[I16_PRED_H] = WelsI16x16LumaPredH_lsx;
pFuncList->pfGetLumaI16x16Pred[I16_PRED_P] = WelsI16x16LumaPredPlane_lsx;
}
#endif//HAVE_LSX
}
}
+51 -19
View File
@@ -257,8 +257,26 @@ void RcInitVGop (sWelsEncCtx* pEncCtx) {
SWelsSvcRc* pWelsSvcRc = &pEncCtx->pWelsSvcRc[kiDid];
SRCTemporal* pTOverRc = pWelsSvcRc->pTemporalOverRc;
const int32_t kiHighestTid = pEncCtx->pSvcParam->sDependencyLayers[kiDid].iHighestTemporalId;
const bool fix_rc_overshoot = pEncCtx->pSvcParam->bFixRCOverShoot;
pWelsSvcRc->iRemainingBits = VGOP_SIZE * pWelsSvcRc->iBitsPerFrame;
if (fix_rc_overshoot) {
// subtract unused bits if interrupted in a mid of VGOP
int32_t iLeftInVGop = pWelsSvcRc->iGopNumberInVGop - pWelsSvcRc->iGopIndexInVGop;
pWelsSvcRc->iRemainingBits -= iLeftInVGop * (pWelsSvcRc->iLastAllocatedBits / pWelsSvcRc->iGopNumberInVGop);
}
if (fix_rc_overshoot && pWelsSvcRc->iRemainingBits < 0) {
// carry over bitrate deficit, so we don't overshoot
pWelsSvcRc->iRemainingBits += VGOP_SIZE * pWelsSvcRc->iBitsPerFrame;
} else {
// but never more than target bitrate.
pWelsSvcRc->iRemainingBits = VGOP_SIZE * pWelsSvcRc->iBitsPerFrame;
}
if (fix_rc_overshoot) {
// store last allocated bits to correctly recalculate carry over
pWelsSvcRc->iLastAllocatedBits = pWelsSvcRc->iRemainingBits;
}
pWelsSvcRc->iRemainingWeights = pWelsSvcRc->iGopNumberInVGop * WEIGHT_MULTIPLY;
pWelsSvcRc->iFrameCodedInVGop = 0;
@@ -276,6 +294,7 @@ void RcInitRefreshParameter (sWelsEncCtx* pEncCtx) {
SSpatialLayerConfig* pDLayerParam = &pEncCtx->pSvcParam->sSpatialLayers[kiDid];
SSpatialLayerInternal* pDLayerParamInternal = &pEncCtx->pSvcParam->sDependencyLayers[kiDid];
const int32_t kiHighestTid = pDLayerParamInternal->iHighestTemporalId;
const bool fix_rc_overshoot = pEncCtx->pSvcParam->bFixRCOverShoot;
int32_t i;
//I frame R-Q Model
@@ -296,6 +315,9 @@ void RcInitRefreshParameter (sWelsEncCtx* pEncCtx) {
pWelsSvcRc->iBufferFullnessPadding = 0;
pWelsSvcRc->iGopIndexInVGop = 0;
if (fix_rc_overshoot) {
pWelsSvcRc->iLastAllocatedBits = 0;
}
pWelsSvcRc->iRemainingBits = 0;
pWelsSvcRc->iBitsPerFrame = 0;
@@ -386,11 +408,12 @@ void RcCalculateIdrQp (sWelsEncCtx* pEncCtx) {
//192k@12fps for 180p: bpp 0.28 QP:26
//512k@24fps for 360p: bpp 0.09 QP:30
//1500k@30fps for 720p: bpp 0.05 QP:32
double dBppArray[4][3] = {{0.5, 0.75, 1.0}, {0.2, 0.3, 0.4}, {0.05, 0.09, 0.13}, {0.03, 0.06, 0.1}};
int32_t dInitialQPArray[4][4] = {{28, 26, 24, 22}, {30, 28, 26, 24}, {32, 30, 28, 26}, {34, 32, 30, 28}};
double dBppArray[4][4] = {{0.25, 0.5, 0.75, 1.0}, {0.1, 0.2, 0.3, 0.4}, {0.03, 0.05, 0.09, 0.13}, {0.01, 0.03, 0.06, 0.1}};
int32_t dInitialQPArray[4][5] = {{34, 28, 26, 24, 22}, {36, 30, 28, 26, 24}, {36, 32, 30, 28, 26}, {36, 34, 32, 30, 28}};
int32_t iBppIndex = 0;
int32_t iQpRangeArray[4][2] = {{37, 25}, {36, 24}, {35, 23}, {34, 22}};
int32_t iQpRangeArray[5][2] = {{40,28}, {37, 25}, {36, 24}, {35, 23}, {34, 22}};
int64_t iFrameComplexity = pEncCtx->pVaa->sComplexityAnalysisParam.iFrameComplexity;
const bool fix_rc_overshoot = pEncCtx->pSvcParam->bFixRCOverShoot;
if (pEncCtx->pSvcParam->iUsageType == SCREEN_CONTENT_REAL_TIME) {
SVAAFrameInfoExt* pVaa = static_cast<SVAAFrameInfoExt*> (pEncCtx->pVaa);
iFrameComplexity = pVaa->sComplexityScreenParam.iFrameComplexity;
@@ -415,8 +438,8 @@ void RcCalculateIdrQp (sWelsEncCtx* pEncCtx) {
iBppIndex = 3;
//Search
for (i = 0; i < 3; i++) {
if (dBpp <= dBppArray[iBppIndex][i])
for (i = (fix_rc_overshoot ? 0 : 1); i < 4; i++) {
if (dBpp <= dBppArray[iBppIndex][i])
break;
}
int32_t iMaxQp = iQpRangeArray[i][0];
@@ -548,11 +571,17 @@ void RcDecideTargetBits (sWelsEncCtx* pEncCtx) {
SRCTemporal* pTOverRc = &pWelsSvcRc->pTemporalOverRc[pEncCtx->uiTemporalId];
pWelsSvcRc->iCurrentBitsLevel = BITS_NORMAL;
const bool fix_rc_overshoot = pEncCtx->pSvcParam->bFixRCOverShoot;
//allocate bits
if (pEncCtx->eSliceType == I_SLICE) {
pWelsSvcRc->iTargetBits = pWelsSvcRc->iBitsPerFrame * IDR_BITRATE_RATIO;
if( pWelsSvcRc->iIdrNum != 0 ){
pWelsSvcRc->iTargetBits = pWelsSvcRc->iBitsPerFrame * pEncCtx->pSvcParam->iIdrBitrateRatio / 100;
} else {
pWelsSvcRc->iTargetBits = pWelsSvcRc->iBitsPerFrame * IDR_BITRATE_RATIO;
}
} else {
if (pWelsSvcRc->iRemainingWeights > pTOverRc->iTlayerWeight)
if (pWelsSvcRc->iRemainingWeights > pTOverRc->iTlayerWeight ||
(fix_rc_overshoot && pWelsSvcRc->iRemainingWeights == pTOverRc->iTlayerWeight))
pWelsSvcRc->iTargetBits = WELS_DIV_ROUND (static_cast<int64_t> (pWelsSvcRc->iRemainingBits) * pTOverRc->iTlayerWeight,
pWelsSvcRc->iRemainingWeights);
else //this case should be not hit. needs to more test case to verify this
@@ -796,6 +825,7 @@ void CheckFrameSkipBasedMaxbr (sWelsEncCtx* pEncCtx, const long long uiTimeStamp
* kiMaxSpatialBitRate, 1000);
bool bJudgeMaxBRbSkip[TIME_WINDOW_TOTAL];//0: EVEN_TIME_WINDOW; 1: ODD_TIME_WINDOW
const bool fix_rc_overshoot = pEncCtx->pSvcParam->bFixRCOverShoot;
/* 4 cases for frame skipping
1:skipping when buffer size larger than target threshold and current continual skip frames is allowed
@@ -821,17 +851,19 @@ void CheckFrameSkipBasedMaxbr (sWelsEncCtx* pEncCtx, const long long uiTimeStamp
if (bJudgeBufferFullSkip || bJudgeMaxBRbufferFullSkip || bJudgeMaxBRbSkip[EVEN_TIME_WINDOW]
|| bJudgeMaxBRbSkip[ODD_TIME_WINDOW]) {
pWelsSvcRc->bSkipFlag = true;
pWelsSvcRc->iSkipFrameNum++;
pWelsSvcRc->iSkipFrameInVGop++;
pWelsSvcRc->iBufferFullnessSkip -= iSentBits;
pWelsSvcRc->iRemainingBits += iSentBits;
pWelsSvcRc->iBufferMaxBRFullness[EVEN_TIME_WINDOW] -= kiOutputMaxBits;
pWelsSvcRc->iBufferMaxBRFullness[ODD_TIME_WINDOW] -= kiOutputMaxBits;
WelsLog (& (pEncCtx->sLogCtx), WELS_LOG_DEBUG,
"[Rc] bits in buffer = %" PRId64 ", bits in Max bitrate buffer = %" PRId64 ", Predict skip frames = %d and %d",
pWelsSvcRc->iBufferFullnessSkip, pWelsSvcRc->iBufferMaxBRFullness[EVEN_TIME_WINDOW], iPredSkipFramesTarBr,
iPredSkipFramesMaxBr);
pWelsSvcRc->iBufferFullnessSkip = WELS_MAX (pWelsSvcRc->iBufferFullnessSkip, 0);
if (!fix_rc_overshoot) {
pWelsSvcRc->iSkipFrameNum++;
pWelsSvcRc->iSkipFrameInVGop++;
pWelsSvcRc->iBufferFullnessSkip -= iSentBits;
pWelsSvcRc->iRemainingBits += iSentBits;
pWelsSvcRc->iBufferMaxBRFullness[EVEN_TIME_WINDOW] -= kiOutputMaxBits;
pWelsSvcRc->iBufferMaxBRFullness[ODD_TIME_WINDOW] -= kiOutputMaxBits;
WelsLog (& (pEncCtx->sLogCtx), WELS_LOG_DEBUG,
"[Rc] bits in buffer = %" PRId64 ", bits in Max bitrate buffer = %" PRId64 ", Predict skip frames = %d and %d",
pWelsSvcRc->iBufferFullnessSkip, pWelsSvcRc->iBufferMaxBRFullness[EVEN_TIME_WINDOW], iPredSkipFramesTarBr,
iPredSkipFramesMaxBr);
pWelsSvcRc->iBufferFullnessSkip = WELS_MAX (pWelsSvcRc->iBufferFullnessSkip, 0);
}
}
}
+7
View File
@@ -74,6 +74,13 @@ elif cpu_family == 'aarch64'
else
cpp_sources += asm_sources
endif
elif cpu_family in ['loongarch32', 'loongarch64']
asm_sources = [
'core/loongarch/quant_lsx.c',
'core/loongarch/get_intra_predictor_lsx.c',
'core/loongarch/dct_lasx.c',
]
cpp_sources += asm_sources
else
error('Unsupported cpu family @0@'.format(cpu_family))
endif
+2
View File
@@ -105,10 +105,12 @@ OBJS += $(ENCODER_OBJSMIPS_MSA)
ENCODER_ASM_LOONGARCH_LSX_SRCS=\
$(ENCODER_SRCDIR)/core/loongarch/quant_lsx.c\
$(ENCODER_SRCDIR)/core/loongarch/get_intra_predictor_lsx.c\
ENCODER_OBJSLOONGARCH_LSX += $(ENCODER_ASM_LOONGARCH_LSX_SRCS:.c=.$(OBJ))
ENCODER_ASM_LOONGARCH_LASX_SRCS=\
$(ENCODER_SRCDIR)/core/loongarch/dct_lasx.c\
ENCODER_OBJSLOONGARCH_LASX += $(ENCODER_ASM_LOONGARCH_LASX_SRCS:.c=.$(OBJ))
ifeq ($(ASM_ARCH), loongarch)
+5
View File
@@ -50,6 +50,11 @@ elif cpu_family == 'aarch64'
else
cpp_sources += asm_sources
endif
elif cpu_family in ['loongarch32', 'loongarch64']
asm_sources = [
'src/loongarch/vaa_lsx.c',
]
cpp_sources += asm_sources
else
error('Unsupported cpu family @0@'.format(cpu_family))
endif
+1 -1
View File
@@ -679,7 +679,7 @@ WARN_LOGFILE =
# directories like "/usr/src/myproject". Separate the files or directories
# with spaces.
INPUT = ../../codec/api/svc/codec_api.h ../../codec/api/svc/codec_app_def.h ../../codec/api/svc/codec_def.h
INPUT = ../../codec/api/wels/codec_api.h ../../codec/api/wels/codec_app_def.h ../../codec/api/wels/codec_def.h
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
+1 -1
View File
@@ -1,4 +1,4 @@
Name: gmpopenh264
Description: GMP Plugin for OpenH264.
Version: 2.2.0
Version: 2.3.1
APIs: encode-video[h264], decode-video[h264]
+25 -46
View File
@@ -1,15 +1,15 @@
project('openh264', ['c', 'cpp'],
version : '2.2.0',
version : '2.3.1',
meson_version : '>= 0.52',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])
major_version = '6'
major_version = '7'
cpp = meson.get_compiler('cpp')
inc = include_directories([
join_paths('codec', 'api', 'svc'),
join_paths('codec', 'api', 'wels'),
join_paths('codec', 'common', 'inc'),
])
@@ -54,10 +54,7 @@ asm_inc = []
casm_inc = []
cpp_lib = '-lstdc++'
# TODO: should rely on dependency('threads') instead and change the pkg-config
# generator below
pthread_dep = cpp.find_library('pthread', required : false)
libm_dep = cpp.find_library('libm', required : false)
libm_dep = cpp.find_library('m', required : false)
deps += [libm_dep]
if ['linux', 'android', 'ios', 'darwin'].contains(system)
@@ -89,6 +86,16 @@ if ['linux', 'android', 'ios', 'darwin'].contains(system)
add_project_arguments('-DHAVE_NEON_ARM64', language: 'c')
add_project_arguments('-DHAVE_NEON_ARM64', language: 'cpp')
casm_inc = include_directories(join_paths('codec', 'common', 'arm64'))
elif cpu_family == 'loongarch32'
asm_format = asm_format32
add_project_arguments('-mlsx', '-mlasx', language: 'c')
add_project_arguments('-DHAVE_LSX', '-DHAVE_LASX', language: 'cpp')
casm_inc = include_directories(join_paths('codec', 'common', 'loongarch'))
elif cpu_family == 'loongarch64'
asm_format = asm_format64
add_project_arguments('-mlsx', '-mlasx', language: 'c')
add_project_arguments('-mlsx', '-DHAVE_LSX', '-mlasx', '-DHAVE_LASX', language: 'cpp')
casm_inc = include_directories(join_paths('codec', 'common', 'loongarch'))
else
error('FIXME: unhandled CPU family @0@ for @1@'.format(cpu_family, system))
endif
@@ -178,53 +185,25 @@ elif system == 'windows'
endif
endif
api_headers = []
api_header_deps = []
subdir ('codec')
subdir ('test')
libopenh264_shared = library('openh264',
link_with: [libcommon, libprocessing, libencoder, libdecoder],
libopenh264 = library('openh264',
link_whole: [libcommon, libprocessing, libencoder, libdecoder],
install: true,
soversion: major_version,
version: meson.project_version(),
vs_module_defs: 'openh264.def',
dependencies: deps)
pkg_install_dir = '@0@/pkgconfig'.format(get_option('libdir'))
foreach t : ['', '-static']
pkgconf = configuration_data()
pkgconf.set('prefix', join_paths(get_option('prefix')))
pkgconf.set('libdir', '${prefix}/@0@'.format(get_option('libdir')))
pkgconf.set('VERSION', meson.project_version())
pkglibs = cpp_lib
if libm_dep.found()
pkglibs += ' -lm'
endif
if pthread_dep.found()
pkglibs += ' -lpthread'
endif
if t == '-static'
pkgconf.set('LIBS', pkglibs)
pkgconf.set('LIBS_PRIVATE', '')
else
pkgconf.set('LIBS', '')
pkgconf.set('LIBS_PRIVATE', pkglibs)
endif
configure_file(
input: 'openh264.pc.in',
output: 'openh264@0@.pc'.format(t),
install: t == '-static' ? false : true,
install_dir: t == '-static' ? '' : pkg_install_dir,
configuration: pkgconf)
endforeach
openh264_dep = declare_dependency(
link_with: libopenh264_shared,
include_directories: include_directories('include'),
dependencies: deps + api_header_deps)
link_with: libopenh264,
include_directories: include_directories('codec/api'),
dependencies: deps)
subdir ('include')
pkg = import('pkgconfig')
pkg.generate(libopenh264,
description: 'OpenH264 is a codec library which supports H.264 encoding ' +
'and decoding. It is suitable for use in real time ' +
'applications such as WebRTC.',
)
+4 -4
View File
@@ -24,8 +24,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 2,2,0,2201
PRODUCTVERSION 2,2,0,2201
FILEVERSION 2,3,1,2209
PRODUCTVERSION 2,3,1,2209
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -43,12 +43,12 @@ BEGIN
VALUE "Comments", "Cisco OpenH264 codec"
VALUE "CompanyName", "Cisco Systems Inc."
VALUE "FileDescription", "Cisco OpenH264 codec"
VALUE "FileVersion", "2.2.0.2201"
VALUE "FileVersion", "2.3.1.2209"
VALUE "InternalName", "openh264.dll"
VALUE "LegalCopyright", "© 2011-2015 Cisco and/or its affiliates. All rights reserved."
VALUE "OriginalFilename", "openh264.dll"
VALUE "ProductName", "Cisco OpenH264 codec"
VALUE "ProductVersion", "2.2.0.2201"
VALUE "ProductVersion", "2.3.1.2209"
END
END
BLOCK "VarFileInfo"
+4 -7
View File
@@ -41,8 +41,8 @@ runUnitTest()
CFLAGS=-Werror make -B ENABLE64BIT=No BUILDTYPE=Debug all plugin test
return $?
}
#usage: runPrepareAndBinaryTest $TestBitStream
runPrepareAndBinaryTest()
#usage: runBinaryTest $TestBitStream
runBinaryTest()
{
if [ ! $# -eq 2 ]
then
@@ -53,14 +53,11 @@ runPrepareAndBinaryTest()
local TestType=$2
local WorkingDir=`pwd`
local BinaryTestDir="test/encoder_binary_comparison"
local TestSpacePrepareLog="AllTestSpacePrepare.log"
cd ${BinaryTestDir}
./run_PrepareAllTestData.sh 64 2>${TestSpacePrepareLog}
cd ${WorkingDir}
echo ""
echo " binary compare test, test bit stream is ${TestBitStream}"
echo ""
./test/encoder_binary_comparison/run_OneBitStream.sh ${TestBitStream} ${TestType}
${BinaryTestDir}/run_OneBitStream.sh ${TestBitStream} ${TestType}
return $?
}
#usage:runMain ${TestType} ${TestBitStream}
@@ -84,7 +81,7 @@ runMain()
if [ "${TestType}" = "BinaryCompare" ]
then
set -e
runPrepareAndBinaryTest ${TestBitStream} TravisTest
runBinaryTest ${TestBitStream} TravisTest
return $?
fi
}
+2
View File
@@ -0,0 +1,2 @@
/googletest-release-1.8.0/
/packagecache/
+4 -2
View File
@@ -192,8 +192,9 @@ TEST_P (EncodeDecodeTestAPI, SetOptionECIDC_GeneralSliceChange) {
if (!bVCLLoss) { //not loss
rv = decoder_->DecodeFrame2 (info.sLayerInfo[0].pBsBuf + iTotalSliceSize,
info.sLayerInfo[0].pNalLengthInByte[iPacketNum], pData, &dstBufInfo_);
if (uiEcIdc == ERROR_CON_DISABLE)
if (uiEcIdc == ERROR_CON_DISABLE) {
EXPECT_EQ (dstBufInfo_.iBufferStatus, 0);
}
}
//EC_IDC should not change till now
decoder_->GetOption (DECODER_OPTION_ERROR_CON_IDC, &uiGet);
@@ -206,8 +207,9 @@ TEST_P (EncodeDecodeTestAPI, SetOptionECIDC_GeneralSliceChange) {
rv = decoder_->DecodeFrame2 (NULL, 0, pData, &dstBufInfo_); //reconstruction
//EXPECT_EQ (dstBufInfo_.iBufferStatus, 0);
if (uiEcIdc == ERROR_CON_DISABLE && rv != 0)
if (uiEcIdc == ERROR_CON_DISABLE && rv != 0) {
EXPECT_EQ (dstBufInfo_.iBufferStatus, 0);
}
//deal with next slice
iTotalSliceSize += len;
+5 -4
View File
@@ -34,7 +34,7 @@ bool EncodeDecodeTestBase::prepareEncDecParam (const EncodeDecodeFileParamBase E
//for encoder
//I420: 1(Y) + 1/4(U) + 1/4(V)
int frameSize = EncDecFileParam.width * EncDecFileParam.height * 3 / 2;
if (-1 == buf_.SetLength(frameSize))
if (-1 == buf_.SetLength (frameSize))
return false;
if (buf_.Length() != (size_t)frameSize) {
printf ("buf_.Length() failed! frameSize = %d\n", frameSize);
@@ -85,7 +85,7 @@ void EncodeDecodeTestAPIBase::prepareParamDefault (int iLayers, int iSlices, int
SEncParamExt* pParam) {
memset (pParam, 0, sizeof (SEncParamExt));
encoder_->GetDefaultParams (pParam);
EncodeDecodeTestBase::prepareParam (iLayers, iSlices, VALID_SIZE(width), VALID_SIZE(height), framerate, pParam);
EncodeDecodeTestBase::prepareParam (iLayers, iSlices, VALID_SIZE (width), VALID_SIZE (height), framerate, pParam);
}
@@ -95,10 +95,11 @@ void EncodeDecodeTestAPIBase::EncodeOneFrame (int iCheckTypeIndex) {
memset (buf_.data(), iRandValue, lumaSize);
memset (buf_.data() + lumaSize, rand() % 256, (frameSize - lumaSize));
int rv = encoder_->EncodeFrame (&EncPic, &info);
if (0 == iCheckTypeIndex)
if (0 == iCheckTypeIndex) {
ASSERT_TRUE (rv == cmResultSuccess) << rv;
else if (1 == iCheckTypeIndex)
} else if (1 == iCheckTypeIndex) {
ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnknownReason);
}
}
bool EncodeDecodeTestAPIBase::EncDecOneFrame (const int iWidth, const int iHeight, const int iFrame, FILE* pfEnc) {
+5 -3
View File
@@ -1316,10 +1316,11 @@ class EncodeTestAPI : public ::testing::TestWithParam<EncodeOptionParam>, public
ptr[i] = bAllRandom ? (rand() % 256) : uiVal;
}
int rv = encoder_->EncodeFrame (&EncPic, &info);
if (0 == iCheckTypeIndex)
if (0 == iCheckTypeIndex) {
ASSERT_TRUE (rv == cmResultSuccess) << "rv=" << rv;
else if (1 == iCheckTypeIndex)
} else if (1 == iCheckTypeIndex) {
ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnknownReason) << "rv=" << rv;
}
}
};
@@ -2309,7 +2310,8 @@ TEST_F (EncodeDecodeTestAPI, TemporalLayerChangeDuringEncoding_Specific) {
if ((iStepIdx < 3) && (iFrameNum == ((iTotalFrame / 3) * (iStepIdx + 1)))) {
sParam.iTemporalLayerNum = originalTemporalLayerNum * iSteps[iStepIdx];
sParam.iTargetBitrate = sParam.sSpatialLayers[0].iSpatialBitrate = originalBR * iSteps[iStepIdx];
sParam.fMaxFrameRate = sParam.sSpatialLayers[0].fFrameRate = static_cast <float> (originalFR * pow (2.0f, iSteps[iStepIdx]));
sParam.fMaxFrameRate = sParam.sSpatialLayers[0].fFrameRate = static_cast <float> (originalFR * pow (2.0f,
iSteps[iStepIdx]));
encoder_->SetOption (ENCODER_OPTION_SVC_ENCODE_PARAM_EXT, &sParam);
bSetOption = true;
+32 -32
View File
@@ -44,7 +44,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\;..\..\..\..\codec\encoder\plus\inc;..\..\..\..\codec\encoder\core\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\codec\processing\src\common;..\..\..\..\codec\processing\interface"
AdditionalIncludeDirectories="..\..\..\;..\..\..\..\codec\encoder\plus\inc;..\..\..\..\codec\encoder\core\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\codec\processing\src\common;..\..\..\..\codec\processing\interface"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;X86_ASM;_CRT_SECURE_NO_WARNINGS"
MinimalRebuild="true"
BasicRuntimeChecks="3"
@@ -118,7 +118,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\;..\..\..\..\codec\encoder\plus\inc;..\..\..\..\codec\encoder\core\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\codec\processing\src\common;..\..\..\..\codec\processing\interface"
AdditionalIncludeDirectories="..\..\..\;..\..\..\..\codec\encoder\plus\inc;..\..\..\..\codec\encoder\core\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\codec\processing\src\common;..\..\..\..\codec\processing\interface"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS"
MinimalRebuild="true"
BasicRuntimeChecks="3"
@@ -193,7 +193,7 @@
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
AdditionalIncludeDirectories="..\..\..\;..\..\..\..\codec\encoder\plus\inc;..\..\..\..\codec\encoder\core\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\codec\processing\src\common;..\..\..\..\codec\processing\interface"
AdditionalIncludeDirectories="..\..\..\;..\..\..\..\codec\encoder\plus\inc;..\..\..\..\codec\encoder\core\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\codec\processing\src\common;..\..\..\..\codec\processing\interface"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;X86_ASM;_CRT_SECURE_NO_WARNINGS"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
@@ -269,7 +269,7 @@
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
AdditionalIncludeDirectories="..\..\..\;..\..\..\..\codec\encoder\plus\inc;..\..\..\..\codec\encoder\core\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\codec\processing\src\common;..\..\..\..\codec\processing\interface"
AdditionalIncludeDirectories="..\..\..\;..\..\..\..\codec\encoder\plus\inc;..\..\..\..\codec\encoder\core\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\codec\processing\src\common;..\..\..\..\codec\processing\interface"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
@@ -478,7 +478,7 @@
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
AdditionalIncludeDirectories="..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
/>
</FileConfiguration>
<FileConfiguration
@@ -486,7 +486,7 @@
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
AdditionalIncludeDirectories="..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
/>
</FileConfiguration>
<FileConfiguration
@@ -494,7 +494,7 @@
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
AdditionalIncludeDirectories="..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
/>
</FileConfiguration>
<FileConfiguration
@@ -502,7 +502,7 @@
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
AdditionalIncludeDirectories="..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
/>
</FileConfiguration>
</File>
@@ -518,7 +518,7 @@
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
AdditionalIncludeDirectories="..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
/>
</FileConfiguration>
<FileConfiguration
@@ -526,7 +526,7 @@
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
AdditionalIncludeDirectories="..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
/>
</FileConfiguration>
<FileConfiguration
@@ -534,7 +534,7 @@
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
AdditionalIncludeDirectories="..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
/>
</FileConfiguration>
<FileConfiguration
@@ -542,7 +542,7 @@
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
AdditionalIncludeDirectories="..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
/>
</FileConfiguration>
</File>
@@ -554,7 +554,7 @@
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
AdditionalIncludeDirectories="..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
/>
</FileConfiguration>
<FileConfiguration
@@ -562,7 +562,7 @@
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
AdditionalIncludeDirectories="..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
/>
</FileConfiguration>
<FileConfiguration
@@ -570,7 +570,7 @@
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
AdditionalIncludeDirectories="..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
/>
</FileConfiguration>
<FileConfiguration
@@ -578,7 +578,7 @@
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
AdditionalIncludeDirectories="..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
/>
</FileConfiguration>
</File>
@@ -590,7 +590,7 @@
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
AdditionalIncludeDirectories="..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
/>
</FileConfiguration>
<FileConfiguration
@@ -598,7 +598,7 @@
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
AdditionalIncludeDirectories="..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
/>
</FileConfiguration>
<FileConfiguration
@@ -606,7 +606,7 @@
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
AdditionalIncludeDirectories="..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
/>
</FileConfiguration>
<FileConfiguration
@@ -614,7 +614,7 @@
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
AdditionalIncludeDirectories="..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
/>
</FileConfiguration>
</File>
@@ -626,7 +626,7 @@
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
AdditionalIncludeDirectories="..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
/>
</FileConfiguration>
<FileConfiguration
@@ -634,7 +634,7 @@
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
AdditionalIncludeDirectories="..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
/>
</FileConfiguration>
<FileConfiguration
@@ -642,7 +642,7 @@
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
AdditionalIncludeDirectories="..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
/>
</FileConfiguration>
<FileConfiguration
@@ -650,7 +650,7 @@
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
AdditionalIncludeDirectories="..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
/>
</FileConfiguration>
</File>
@@ -662,7 +662,7 @@
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
AdditionalIncludeDirectories="..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
/>
</FileConfiguration>
<FileConfiguration
@@ -670,7 +670,7 @@
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
AdditionalIncludeDirectories="..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
/>
</FileConfiguration>
<FileConfiguration
@@ -678,7 +678,7 @@
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
AdditionalIncludeDirectories="..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
/>
</FileConfiguration>
<FileConfiguration
@@ -686,7 +686,7 @@
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
AdditionalIncludeDirectories="..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
/>
</FileConfiguration>
</File>
@@ -698,7 +698,7 @@
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
AdditionalIncludeDirectories="..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
/>
</FileConfiguration>
<FileConfiguration
@@ -706,7 +706,7 @@
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
AdditionalIncludeDirectories="..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
/>
</FileConfiguration>
<FileConfiguration
@@ -714,7 +714,7 @@
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
AdditionalIncludeDirectories="..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
/>
</FileConfiguration>
<FileConfiguration
@@ -722,7 +722,7 @@
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\..\codec\api\svc;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
AdditionalIncludeDirectories="..\..\..\..\codec\api\wels;..\..\..\..\gtest\include;..\..\..\;..\..\..\..\codec\decoder\plus\inc;..\..\..\..\codec\common\inc;..\..\..\..\codec\decoder\core\inc;$(NOINHERIT)"
/>
</FileConfiguration>
</File>
+14
View File
@@ -180,3 +180,17 @@ GENERATE_CHROMA_UT (ChromaLt4H_msa, DeblockChromaLt4H_msa, DeblockChromaLt4H_c,
GENERATE_CHROMA_UT (ChromaEq4V_msa, DeblockChromaEq4V_msa_wrap, DeblockChromaEq4V_c_wrap, WELS_CPU_MSA, 0)
GENERATE_CHROMA_UT (ChromaEq4H_msa, DeblockChromaEq4H_msa_wrap, DeblockChromaEq4H_c_wrap, WELS_CPU_MSA, 1)
#endif//HAVE_MSA
#if defined(HAVE_LSX)
WRAP_LUMA_FUNC (DeblockLumaEq4V_lsx)
WRAP_LUMA_FUNC (DeblockLumaEq4H_lsx)
WRAP_CHROMA_FUNC (DeblockChromaEq4H_lsx)
GENERATE_LUMA_UT (LumaLt4V_lsx, DeblockLumaLt4V_lsx, DeblockLumaLt4V_c, WELS_CPU_LSX, 0)
GENERATE_LUMA_UT (LumaLt4H_lsx, DeblockLumaLt4H_lsx, DeblockLumaLt4H_c, WELS_CPU_LSX, 1)
GENERATE_LUMA_UT (LumaEq4V_lsx, DeblockLumaEq4V_lsx_wrap, DeblockLumaEq4V_c_wrap, WELS_CPU_LSX, 0)
GENERATE_LUMA_UT (LumaEq4H_lsx, DeblockLumaEq4H_lsx_wrap, DeblockLumaEq4H_c_wrap, WELS_CPU_LSX, 1)
GENERATE_CHROMA_UT (ChromaLt4V_lsx, DeblockChromaLt4V_lsx, DeblockChromaLt4V_c, WELS_CPU_LSX, 0)
GENERATE_CHROMA_UT (ChromaLt4H_lsx, DeblockChromaLt4H_lsx, DeblockChromaLt4H_c, WELS_CPU_LSX, 1)
GENERATE_CHROMA_UT (ChromaEq4H_lsx, DeblockChromaEq4H_lsx_wrap, DeblockChromaEq4H_c_wrap, WELS_CPU_LSX, 1)
#endif//HAVE_LSX
+4
View File
@@ -158,6 +158,10 @@ GENERATE_IDCTRESADDPRED (IdctResAddPred_AArch64_neon, WELS_CPU_NEON)
GENERATE_IDCTRESADDPRED (IdctResAddPred_mmi, WELS_CPU_MMI)
#endif
#if defined(HAVE_LSX)
GENERATE_IDCTRESADDPRED (IdctResAddPred_lsx, WELS_CPU_LSX)
#endif
#define GENERATE_SETNONZEROCOUNT(method, flag) \
TEST(DecoderDecodeMbAux, method) \
{\
+50 -50
View File
@@ -378,33 +378,33 @@ GENERATE_4x4_UT (WelsI4x4LumaPredHD_c, WelsI4x4LumaPredHD_ref, 0, 0)
#define GENERATE_8x8_UT(pred, ref, ASM, CPUFLAGS) \
TEST(DecoderIntraPredictionTest, pred) {\
const int32_t kiStride = 32; \
int iRunTimes = 1000; \
ENFORCE_STACK_ALIGN_1D (uint8_t, pRefBuffer, 18 * kiStride, 16); \
ENFORCE_STACK_ALIGN_1D (uint8_t, pPredBuffer, 18 * kiStride, 16); \
if (ASM) { \
int32_t iTmp = 1; \
uint32_t uiCPUFlags = WelsCPUFeatureDetect(&iTmp); \
if ((uiCPUFlags & CPUFLAGS) == 0) {\
return; \
} \
} \
while(iRunTimes--) {\
for (int i = 0; i < 17; i ++) {\
pRefBuffer[kiStride + i] = pPredBuffer[kiStride + i] = rand() & 255; \
pRefBuffer[(i+1) * kiStride - 1] = pPredBuffer[(i+1) * kiStride - 1] = rand() & 255; \
}\
pred(&pPredBuffer[2*kiStride], kiStride); \
ref(&pRefBuffer[2*kiStride], kiStride); \
bool ok = true; \
for (int i = 0; i < 8; i ++)\
for(int j = 0; j < 8; j ++)\
if (pPredBuffer[(i+2) * kiStride + j] != pRefBuffer[(i+2) * kiStride + j]) {\
ok = false; \
break; \
const int32_t kiStride = 32; \
int iRunTimes = 1000; \
ENFORCE_STACK_ALIGN_1D (uint8_t, pRefBuffer, 18 * kiStride, 16); \
ENFORCE_STACK_ALIGN_1D (uint8_t, pPredBuffer, 18 * kiStride, 16); \
if (ASM) { \
int32_t iTmp = 1; \
uint32_t uiCPUFlags = WelsCPUFeatureDetect(&iTmp); \
if ((uiCPUFlags & CPUFLAGS) == 0) {\
return; \
} \
} \
while(iRunTimes--) {\
for (int i = 0; i < 17; i ++) {\
pRefBuffer[kiStride + i] = pPredBuffer[kiStride + i] = rand() & 255; \
pRefBuffer[(i+1) * kiStride - 1] = pPredBuffer[(i+1) * kiStride - 1] = rand() & 255; \
}\
pred(&pPredBuffer[2*kiStride], kiStride); \
ref(&pRefBuffer[2*kiStride], kiStride); \
bool ok = true; \
for (int i = 0; i < 8; i ++)\
for(int j = 0; j < 8; j ++)\
if (pPredBuffer[(i+2) * kiStride + j] != pRefBuffer[(i+2) * kiStride + j]) {\
ok = false; \
break; \
} \
EXPECT_EQ(ok, true); \
} \
} \
}
void WelsIChromaPredPlane_ref (uint8_t* pPred, const int32_t kiStride) {
@@ -514,33 +514,33 @@ GENERATE_8x8_UT (WelsIChromaPredH_c, LumaI8x8PredH, 0, 0)
GENERATE_8x8_UT (WelsIChromaPredV_c, LumaI8x8PredV, 0, 0)
#define GENERATE_16x16_UT(pred, ref, ASM, CPUFLAGS) \
TEST(DecoderIntraPredictionTest, pred) {\
const int32_t kiStride = 32; \
int32_t iRunTimes = 1000; \
ENFORCE_STACK_ALIGN_1D (uint8_t, pRefBuffer, 18 * kiStride, 16); \
ENFORCE_STACK_ALIGN_1D (uint8_t, pPredBuffer, 18 * kiStride, 16); \
if (ASM) { \
int32_t iTmp = 1; \
uint32_t uiCPUFlags = WelsCPUFeatureDetect( &iTmp); \
if ((uiCPUFlags & CPUFLAGS) == 0) {\
return ; \
} \
}\
while(iRunTimes--) {\
for (int i = 0; i < 17; i ++) {\
pRefBuffer[kiStride + i] = pPredBuffer[kiStride + i] = rand() & 255; \
pRefBuffer[(i+1) * kiStride - 1] = pPredBuffer[(i+1) * kiStride - 1] = rand() & 255; \
}\
pred(&pPredBuffer[2*kiStride], kiStride); \
ref(&pRefBuffer[2*kiStride], kiStride); \
bool ok = true; \
for (int i = 0; i < 16; i ++)\
for(int j = 0; j < 16; j ++)\
if (pPredBuffer[(i+2) * kiStride + j] != pRefBuffer[(i+2) * kiStride + j]) {\
ok = false; \
break; \
const int32_t kiStride = 32; \
int32_t iRunTimes = 1000; \
ENFORCE_STACK_ALIGN_1D (uint8_t, pRefBuffer, 18 * kiStride, 16); \
ENFORCE_STACK_ALIGN_1D (uint8_t, pPredBuffer, 18 * kiStride, 16); \
if (ASM) { \
int32_t iTmp = 1; \
uint32_t uiCPUFlags = WelsCPUFeatureDetect( &iTmp); \
if ((uiCPUFlags & CPUFLAGS) == 0) {\
return ; \
} \
}\
while(iRunTimes--) {\
for (int i = 0; i < 17; i ++) {\
pRefBuffer[kiStride + i] = pPredBuffer[kiStride + i] = rand() & 255; \
pRefBuffer[(i+1) * kiStride - 1] = pPredBuffer[(i+1) * kiStride - 1] = rand() & 255; \
}\
pred(&pPredBuffer[2*kiStride], kiStride); \
ref(&pRefBuffer[2*kiStride], kiStride); \
bool ok = true; \
for (int i = 0; i < 16; i ++)\
for(int j = 0; j < 16; j ++)\
if (pPredBuffer[(i+2) * kiStride + j] != pRefBuffer[(i+2) * kiStride + j]) {\
ok = false; \
break; \
} \
EXPECT_EQ(ok, true); \
} \
} \
}
void WelsI16x16LumaPredPlane_ref (uint8_t* pPred, const int32_t kiStride) {
int32_t a = 0, b = 0, c = 0, H = 0, V = 0;
+6 -5
View File
@@ -34,9 +34,9 @@ int32_t CavlcParamCal_ref (int16_t* pCoffLevel, uint8_t* pRun, int16_t* pLevel,
}
void TestCavlcParamCalWithEndIdx (PCavlcParamCalFunc func, int endIdx, bool allZero, bool allNonZero) {
ENFORCE_STACK_ALIGN_1D(int16_t, coeffLevel, 16, 16);
ENFORCE_STACK_ALIGN_1D(int16_t, level, 16, 16);
ENFORCE_STACK_ALIGN_1D(uint8_t, run, 16, 16);
ENFORCE_STACK_ALIGN_1D (int16_t, coeffLevel, 16, 16);
ENFORCE_STACK_ALIGN_1D (int16_t, level, 16, 16);
ENFORCE_STACK_ALIGN_1D (uint8_t, run, 16, 16);
uint8_t run_ref[16];
int16_t level_ref[16];
int32_t totalCoeffs = 0;
@@ -53,8 +53,9 @@ void TestCavlcParamCalWithEndIdx (PCavlcParamCalFunc func, int endIdx, bool allZ
const int32_t totalZeros_ref = CavlcParamCal_ref (coeffLevel, run_ref, level_ref, &totalCoeffs_ref, endIdx);
const int32_t totalZeros = func (coeffLevel, run, level, &totalCoeffs, endIdx);
ASSERT_EQ (totalCoeffs, totalCoeffs_ref);
if (totalCoeffs > 0)
if (totalCoeffs > 0) {
ASSERT_EQ (totalZeros, totalZeros_ref);
}
for (int i = 0; i < totalCoeffs_ref; i++)
ASSERT_EQ (level[i], level_ref[i]);
for (int i = 0; i < totalCoeffs_ref - 1; i++)
@@ -64,7 +65,7 @@ void TestCavlcParamCalWithEndIdx (PCavlcParamCalFunc func, int endIdx, bool allZ
void TestCavlcParamCal (PCavlcParamCalFunc func) {
const int endIdxes[] = { 3, 14, 15 };
const int num_test_repetitions = 10000;
for (std::size_t i = 0; i < sizeof endIdxes / sizeof *endIdxes; i++) {
for (std::size_t i = 0; i < sizeof endIdxes / sizeof * endIdxes; i++) {
for (int count = 0; count < num_test_repetitions; count++)
TestCavlcParamCalWithEndIdx (func, endIdxes[i], count == 0, count == 1);
}
+10
View File
@@ -251,6 +251,11 @@ TEST (DecodeMbAuxTest, WelsIDctT4Rec_mmi) {
TestIDctT4Rec<int16_t> (WelsIDctT4Rec_mmi);
}
#endif
#if defined(HAVE_LASX)
TEST (DecodeMbAuxTest, WelsIDctT4Rec_lasx) {
TestIDctT4Rec<int32_t> (WelsIDctT4Rec_lasx);
}
#endif
template<typename clip_t>
void WelsIDctT8Anchor (uint8_t* p_dst, int16_t dct[4][16]) {
WelsIDctT4Anchor<clip_t> (&p_dst[0], dct[0]);
@@ -421,3 +426,8 @@ TEST (DecodeMbAuxTest, WelsIDctRecI16x16Dc_mmi) {
}
}
#endif
#if defined(HAVE_LASX)
TEST (DecodeMbAuxTest, WelsIDctFourT4Rec_lasx) {
TestIDctFourT4Rec<int32_t> (WelsIDctFourT4Rec_lasx);
}
#endif
+13
View File
@@ -292,6 +292,15 @@ TEST (EncodeMbAuxTest, WelsCalculateSingleCtr4x4_mmi) {
FREE_MEMORY (iDctS);
}
#endif
#ifdef HAVE_LASX
TEST (EncodeMbAuxTest, WelsDctT4_lasx) {
TestDctT4 (WelsDctT4_lasx);
}
TEST (EncodeMbAuxTest, WelsDctFourT4_lasx) {
TestDctFourT4 (WelsDctFourT4_lasx);
}
#endif
void copy (uint8_t* pDst, int32_t iDStride, uint8_t* pSrc, int32_t iSStride, int32_t iWidth, int32_t iHeight) {
for (int i = 0; i < iHeight; i++)
@@ -571,6 +580,10 @@ TEST (EncodeMbAuxTest, WelsQuantFour4x4Max_mmi) {
#endif //HAVE_MMI
#ifdef HAVE_LSX
TEST (EncodeMbAuxTest, WelsQuantFour4x4_lsx) {
if (WelsCPUFeatureDetect (0) & WELS_CPU_LSX)
TestWelsQuantFour4x4 (WelsQuantFour4x4_lsx);
}
TEST (EncodeMbAuxTest, WelsQuantFour4x4Max_lsx) {
if (WelsCPUFeatureDetect (0) & WELS_CPU_LSX)
TestWelsQuantFour4x4Max (WelsQuantFour4x4Max_lsx);
@@ -143,150 +143,150 @@ BitSreamSHA1, InputYUVSHA1, -utype, -frms, -numl, -numtl, -sw, -sh, -dw 0, -dh 0
3af223c5fc54e69f923ad95749ea9640f5090fd0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 2400.00,2400.00,0,0,0,2400.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 1, 1, 0, 1, 0
3af223c5fc54e69f923ad95749ea9640f5090fd0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 2400.00,2400.00,0,0,0,2400.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 1, 1, 1, 0, 0
3af223c5fc54e69f923ad95749ea9640f5090fd0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 2400.00,2400.00,0,0,0,2400.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 1, 1, 1, 1, 0
f9846d033c85537a8eb035ff786ba8afc621f2fd, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0
f9846d033c85537a8eb035ff786ba8afc621f2fd, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0
f9846d033c85537a8eb035ff786ba8afc621f2fd, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0
f9846d033c85537a8eb035ff786ba8afc621f2fd, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0
f9846d033c85537a8eb035ff786ba8afc621f2fd, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0
f9846d033c85537a8eb035ff786ba8afc621f2fd, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0
f9846d033c85537a8eb035ff786ba8afc621f2fd, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0
f9846d033c85537a8eb035ff786ba8afc621f2fd, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0
f9846d033c85537a8eb035ff786ba8afc621f2fd, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0
f9846d033c85537a8eb035ff786ba8afc621f2fd, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0
f9846d033c85537a8eb035ff786ba8afc621f2fd, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0
f9846d033c85537a8eb035ff786ba8afc621f2fd, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0
f9846d033c85537a8eb035ff786ba8afc621f2fd, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0
f9846d033c85537a8eb035ff786ba8afc621f2fd, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0
f9846d033c85537a8eb035ff786ba8afc621f2fd, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0
f9846d033c85537a8eb035ff786ba8afc621f2fd, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0
aa90a8e0ff20686fdde0f743f9582786e712c065, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0
bef4d33e8f549abc27e972afcbae24089a27548f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0
7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 0, 1, 0, 0, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 0, 1, 0, 1, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 0, 1, 1, 0, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 0, 1, 1, 1, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 1, 1, 0, 0, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 1, 1, 0, 1, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 1, 1, 1, 0, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 1, 1, 1, 1, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 0, 1, 0, 0, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 0, 1, 0, 1, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 0, 1, 1, 0, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 0, 1, 1, 1, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 1, 1, 0, 0, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 1, 1, 0, 1, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 1, 1, 1, 0, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 1, 1, 1, 1, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 0, 1, 0, 0, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 0, 1, 0, 1, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 0, 1, 1, 0, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 0, 1, 1, 1, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 1, 1, 0, 0, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 1, 1, 0, 1, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 1, 1, 1, 0, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 1, 1, 1, 1, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 0, 1, 0, 0, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 0, 1, 0, 1, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 0, 1, 1, 0, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 0, 1, 1, 1, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 1, 1, 0, 0, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 1, 1, 0, 1, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 1, 1, 1, 0, 0
f6c42f2fddb1574d177864f0b38941f2717b42d5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 1, 1, 1, 1, 0
7dfbea1ac87ed8276647212575764da288c832cb, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0
7dfbea1ac87ed8276647212575764da288c832cb, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0
7dfbea1ac87ed8276647212575764da288c832cb, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0
7dfbea1ac87ed8276647212575764da288c832cb, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0
7dfbea1ac87ed8276647212575764da288c832cb, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0
7dfbea1ac87ed8276647212575764da288c832cb, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0
7dfbea1ac87ed8276647212575764da288c832cb, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0
7dfbea1ac87ed8276647212575764da288c832cb, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0
7dfbea1ac87ed8276647212575764da288c832cb, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0
7dfbea1ac87ed8276647212575764da288c832cb, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0
7dfbea1ac87ed8276647212575764da288c832cb, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0
7dfbea1ac87ed8276647212575764da288c832cb, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0
7dfbea1ac87ed8276647212575764da288c832cb, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0
7dfbea1ac87ed8276647212575764da288c832cb, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0
7dfbea1ac87ed8276647212575764da288c832cb, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0
7dfbea1ac87ed8276647212575764da288c832cb, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0
ba96da5597ea244d7564ad92354092b3f38e5f2f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0
e6aac8a8c6e13fbe48f247f5137f3cf102cab57b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0
38b6accce999f6605bcbf52565ef912d6701b612, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 0, 1, 0, 0, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 0, 1, 0, 1, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 0, 1, 1, 0, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 0, 1, 1, 1, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 1, 1, 0, 0, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 1, 1, 0, 1, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 1, 1, 1, 0, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 1, 1, 1, 1, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 0, 1, 0, 0, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 0, 1, 0, 1, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 0, 1, 1, 0, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 0, 1, 1, 1, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 1, 1, 0, 0, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 1, 1, 0, 1, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 1, 1, 1, 0, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 1, 1, 1, 1, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 0, 1, 0, 0, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 0, 1, 0, 1, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 0, 1, 1, 0, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 0, 1, 1, 1, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 1, 1, 0, 0, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 1, 1, 0, 1, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 1, 1, 1, 0, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 1, 1, 1, 1, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 0, 1, 0, 0, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 0, 1, 0, 1, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 0, 1, 1, 0, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 0, 1, 1, 1, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 1, 1, 0, 0, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 1, 1, 0, 1, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 1, 1, 1, 0, 0
6ece926a0af2f069ecded6ab036ce2418af50d81, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 1, 1, 1, 1, 0
99c4f3e97a9351ad6ce09205c56c74e7877dd339, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 2400.00,2400.00,0,0,0,2400.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0
99c4f3e97a9351ad6ce09205c56c74e7877dd339, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 2400.00,2400.00,0,0,0,2400.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0
99c4f3e97a9351ad6ce09205c56c74e7877dd339, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 2400.00,2400.00,0,0,0,2400.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0
@@ -719,150 +719,150 @@ f5bad0efa4d64f463c8bcf2a606af00b9b9d464b, 9aa9a4d9598eb3e1093311826844f37c43e4c5
27c71e2922b1cbbc574cf5e31b5f450954bb36d8, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 2400.00,2400.00,0,0,0,2400.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 1, 1, 0, 1, 0
27c71e2922b1cbbc574cf5e31b5f450954bb36d8, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 2400.00,2400.00,0,0,0,2400.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 1, 1, 1, 0, 0
27c71e2922b1cbbc574cf5e31b5f450954bb36d8, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 2400.00,2400.00,0,0,0,2400.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 1, 1, 1, 1, 0
0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0
0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0
0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0
0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0
0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0
0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0
0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0
0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0
0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0
0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0
0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0
0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0
0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0
0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0
0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0
0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0
708ae0bf10dbd24e94ba270a37c0f883727a16a0, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0
22773fb6d95e5f94d63f955e10a8123347067da2, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0
4ff257ab8ce80953c166def8fdb1c5a4fec283a6, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 0, 1, 0, 0, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 0, 1, 0, 1, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 0, 1, 1, 0, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 0, 1, 1, 1, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 1, 1, 0, 0, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 1, 1, 0, 1, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 1, 1, 1, 0, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 1, 1, 1, 1, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 0, 1, 0, 0, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 0, 1, 0, 1, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 0, 1, 1, 0, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 0, 1, 1, 1, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 1, 1, 0, 0, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 1, 1, 0, 1, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 1, 1, 1, 0, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 1, 1, 1, 1, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 0, 1, 0, 0, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 0, 1, 0, 1, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 0, 1, 1, 0, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 0, 1, 1, 1, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 1, 1, 0, 0, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 1, 1, 0, 1, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 1, 1, 1, 0, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 1, 1, 1, 1, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 0, 1, 0, 0, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 0, 1, 0, 1, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 0, 1, 1, 0, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 0, 1, 1, 1, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 1, 1, 0, 0, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 1, 1, 0, 1, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 1, 1, 1, 0, 0
351a19408eb7a74e746090c57515e30591c83d03, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 1, 1, 1, 1, 0
a884a52cc9a2ee9635b5a687b1412033c473b594, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0
a884a52cc9a2ee9635b5a687b1412033c473b594, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0
a884a52cc9a2ee9635b5a687b1412033c473b594, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0
a884a52cc9a2ee9635b5a687b1412033c473b594, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0
a884a52cc9a2ee9635b5a687b1412033c473b594, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0
a884a52cc9a2ee9635b5a687b1412033c473b594, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0
a884a52cc9a2ee9635b5a687b1412033c473b594, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0
a884a52cc9a2ee9635b5a687b1412033c473b594, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0
a884a52cc9a2ee9635b5a687b1412033c473b594, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0
a884a52cc9a2ee9635b5a687b1412033c473b594, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0
a884a52cc9a2ee9635b5a687b1412033c473b594, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0
a884a52cc9a2ee9635b5a687b1412033c473b594, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0
a884a52cc9a2ee9635b5a687b1412033c473b594, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0
a884a52cc9a2ee9635b5a687b1412033c473b594, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0
a884a52cc9a2ee9635b5a687b1412033c473b594, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0
a884a52cc9a2ee9635b5a687b1412033c473b594, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0
6e20714cc9e9dc5cefd30f24dc6907faaa976a63, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0
4c985fe22f1e603ffc81276292aad6fecfaea65e, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0
4e1972874ec999555b5b3fc53f9fcf87434547ac, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 0, 1, 0, 0, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 0, 1, 0, 1, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 0, 1, 1, 0, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 0, 1, 1, 1, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 1, 1, 0, 0, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 1, 1, 0, 1, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 1, 1, 1, 0, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 0, 1, 1, 1, 1, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 0, 1, 0, 0, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 0, 1, 0, 1, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 0, 1, 1, 0, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 0, 1, 1, 1, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 1, 1, 0, 0, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 1, 1, 0, 1, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 1, 1, 1, 0, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 0, 0, 1, 1, 1, 1, 1, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 0, 1, 0, 0, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 0, 1, 0, 1, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 0, 1, 1, 0, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 0, 1, 1, 1, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 1, 1, 0, 0, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 1, 1, 0, 1, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 1, 1, 1, 0, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 0, 1, 1, 1, 1, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 0, 1, 0, 0, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 0, 1, 0, 1, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 0, 1, 1, 0, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 0, 1, 1, 1, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 1, 1, 0, 0, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 1, 1, 0, 1, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 1, 1, 1, 0, 0
f0a5c4fe9f021768836c037fffb580430cfe9c84, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 1, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 1, 1, 1, 1, 0
fbf2173c22529ff027aad7318646ef61a5e380dd, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 2400.00,2400.00,0,0,0,2400.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0
fbf2173c22529ff027aad7318646ef61a5e380dd, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 2400.00,2400.00,0,0,0,2400.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0
fbf2173c22529ff027aad7318646ef61a5e380dd, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 2400.00,2400.00,0,0,0,2400.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0
1 BitSreamSHA1 InputYUVSHA1 -utype -frms -numl -numtl -sw -sh -dw 0 -dh 0 -dw 1 -dh 1 -dw 2 -dh 2 -dw 3 -dh 3 -frout 0 -frout 1 -frout 2 -frout 3 -lqp 0 -lqp 1 -lqp 2 -lqp 3 -rc -fs -tarb -ltarb 0 -ltarb 1 -ltarb 2 -ltarb 3 -lmaxb 0 -lmaxb 1 -lmaxb 2 -lmaxb 3 -slcmd 0 -slcnum 0 -slcmd 1 -slcnum 1 -slcmd 2 -slcnum 2 -slcmd 3 -slcnum 3 -nalsize -iper -thread -loadbalancing -ltr -db -denois -scene bgd -aq
143 3af223c5fc54e69f923ad95749ea9640f5090fd0 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 2400.00 2400.00 0 0 0 2400.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 1 1 1 0 1 0
144 3af223c5fc54e69f923ad95749ea9640f5090fd0 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 2400.00 2400.00 0 0 0 2400.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 1 1 1 1 0 0
145 3af223c5fc54e69f923ad95749ea9640f5090fd0 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 2400.00 2400.00 0 0 0 2400.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 1 1 1 1 1 0
146 f9846d033c85537a8eb035ff786ba8afc621f2fd 7dfbea1ac87ed8276647212575764da288c832cb 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0
147 f9846d033c85537a8eb035ff786ba8afc621f2fd 7dfbea1ac87ed8276647212575764da288c832cb 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0
148 f9846d033c85537a8eb035ff786ba8afc621f2fd 7dfbea1ac87ed8276647212575764da288c832cb 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0
149 f9846d033c85537a8eb035ff786ba8afc621f2fd 7dfbea1ac87ed8276647212575764da288c832cb 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0
150 f9846d033c85537a8eb035ff786ba8afc621f2fd 7dfbea1ac87ed8276647212575764da288c832cb 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0
151 f9846d033c85537a8eb035ff786ba8afc621f2fd 7dfbea1ac87ed8276647212575764da288c832cb 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0
152 f9846d033c85537a8eb035ff786ba8afc621f2fd 7dfbea1ac87ed8276647212575764da288c832cb 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0
153 f9846d033c85537a8eb035ff786ba8afc621f2fd 7dfbea1ac87ed8276647212575764da288c832cb 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 0
154 f9846d033c85537a8eb035ff786ba8afc621f2fd 7dfbea1ac87ed8276647212575764da288c832cb 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0
155 f9846d033c85537a8eb035ff786ba8afc621f2fd 7dfbea1ac87ed8276647212575764da288c832cb 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0
156 f9846d033c85537a8eb035ff786ba8afc621f2fd 7dfbea1ac87ed8276647212575764da288c832cb 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0
157 f9846d033c85537a8eb035ff786ba8afc621f2fd 7dfbea1ac87ed8276647212575764da288c832cb 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 1 0
158 f9846d033c85537a8eb035ff786ba8afc621f2fd 7dfbea1ac87ed8276647212575764da288c832cb 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0
159 f9846d033c85537a8eb035ff786ba8afc621f2fd 7dfbea1ac87ed8276647212575764da288c832cb 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 0
160 f9846d033c85537a8eb035ff786ba8afc621f2fd 7dfbea1ac87ed8276647212575764da288c832cb 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0
161 f9846d033c85537a8eb035ff786ba8afc621f2fd 7dfbea1ac87ed8276647212575764da288c832cb 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 0
162 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 0 0 1 0 0 0
163 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 0 0 1 0 1 0
164 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0
165 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 0
166 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 0 1 1 0 0 0
167 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 0 1 1 0 1 0
168 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0
169 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0
170 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 1 0 1 0 0 0
171 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 1 0 1 0 1 0
172 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 1 0 1 1 0 0
173 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 1 0 1 1 1 0
174 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0
175 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 1 1 1 0 1 0
176 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0
177 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0
178 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 0 0 1 0 0 0
179 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 0 0 1 0 1 0
180 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 0 0 1 1 0 0
181 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 0 0 1 1 1 0
182 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 0 1 1 0 0 0
183 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 0 1 1 0 1 0
184 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 0 1 1 1 0 0
185 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 0
186 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 1 0 1 0 0 0
187 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 1 0 1 0 1 0
188 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 1 0 1 1 0 0
189 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 1 0 1 1 1 0
190 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 1 1 1 0 0 0
191 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 1 1 1 0 1 0
192 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 1 1 1 1 0 0
193 aa90a8e0ff20686fdde0f743f9582786e712c065 ba96da5597ea244d7564ad92354092b3f38e5f2f 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 0
194 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 0 0 1 0 0 0
195 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 0 0 1 0 1 0
196 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 0 0 1 1 0 0
197 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 0 0 1 1 1 0
198 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 0 1 1 0 0 0
199 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 0 1 1 0 1 0
200 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 0 1 1 1 0 0
201 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 0 1 1 1 1 0
202 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 1 0 1 0 0 0
203 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 1 0 1 0 1 0
204 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 1 0 1 1 0 0
205 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 1 0 1 1 1 0
206 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 1 1 1 0 0 0
207 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 1 1 1 0 1 0
208 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 1 1 1 1 0 0
209 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 1 1 1 1 1 0
210 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 0 0 1 0 0 0
211 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 0 0 1 0 1 0
212 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 0 0 1 1 0 0
213 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 0 0 1 1 1 0
214 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 0 1 1 0 0 0
215 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 0 1 1 0 1 0
216 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 0 1 1 1 0 0
217 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 0 1 1 1 1 0
218 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 1 0 1 0 0 0
219 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 1 0 1 0 1 0
220 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 1 0 1 1 0 0
221 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 1 0 1 1 1 0
222 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 1 1 1 0 0 0
223 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 1 1 1 0 1 0
224 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 1 1 1 1 0 0
225 bef4d33e8f549abc27e972afcbae24089a27548f e6aac8a8c6e13fbe48f247f5137f3cf102cab57b 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 1 1 1 1 1 0
226 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 0 0 1 0 0 0
227 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 0 0 1 0 1 0
228 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 0 0 1 1 0 0
229 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 0 0 1 1 1 0
230 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 0 1 1 0 0 0
231 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 0 1 1 0 1 0
232 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 0 1 1 1 0 0
233 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 0 1 1 1 1 0
234 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 1 0 1 0 0 0
235 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 1 0 1 0 1 0
236 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 1 0 1 1 0 0
237 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 1 0 1 1 1 0
238 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 1 1 1 0 0 0
239 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 1 1 1 0 1 0
240 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 1 1 1 1 0 0
241 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 1 1 1 1 1 0
242 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 0 0 1 0 0 0
243 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 0 0 1 0 1 0
244 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 0 0 1 1 0 0
245 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 0 0 1 1 1 0
246 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 0 1 1 0 0 0
247 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 0 1 1 0 1 0
248 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 0 1 1 1 0 0
249 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 0 1 1 1 1 0
250 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 1 0 1 0 0 0
251 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 1 0 1 0 1 0
252 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 1 0 1 1 0 0
253 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 1 0 1 1 1 0
254 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 1 1 1 0 0 0
255 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 1 1 1 0 1 0
256 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 1 1 1 1 0 0
257 7b91840fede7c1dd812ff111cfbfafaf6ce4f7c3 38b6accce999f6605bcbf52565ef912d6701b612 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 1 1 1 1 1 0
258 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 0 0 1 0 0 0
259 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 0 0 1 0 1 0
260 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 0 0 1 1 0 0
261 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 0 0 1 1 1 0
262 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 0 1 1 0 0 0
263 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 0 1 1 0 1 0
264 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 0 1 1 1 0 0
265 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 0 1 1 1 1 0
266 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 1 0 1 0 0 0
267 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 1 0 1 0 1 0
268 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 1 0 1 1 0 0
269 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 1 0 1 1 1 0
270 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 1 1 1 0 0 0
271 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 1 1 1 0 1 0
272 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 1 1 1 1 0 0
273 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 1 1 1 1 1 0
274 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 0 0 1 0 0 0
275 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 0 0 1 0 1 0
276 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 0 0 1 1 0 0
277 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 0 0 1 1 1 0
278 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 0 1 1 0 0 0
279 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 0 1 1 0 1 0
280 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 0 1 1 1 0 0
281 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 0 1 1 1 1 0
282 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 1 0 1 0 0 0
283 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 1 0 1 0 1 0
284 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 1 0 1 1 0 0
285 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 1 0 1 1 1 0
286 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 1 1 1 0 0 0
287 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 1 1 1 0 1 0
288 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 1 1 1 1 0 0
289 f6c42f2fddb1574d177864f0b38941f2717b42d5 6ece926a0af2f069ecded6ab036ce2418af50d81 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 1 1 1 1 1 0
290 99c4f3e97a9351ad6ce09205c56c74e7877dd339 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 3 1 2400.00 2400.00 0 0 0 2400.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0
291 99c4f3e97a9351ad6ce09205c56c74e7877dd339 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 3 1 2400.00 2400.00 0 0 0 2400.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0
292 99c4f3e97a9351ad6ce09205c56c74e7877dd339 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 1 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 3 1 2400.00 2400.00 0 0 0 2400.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0
719 27c71e2922b1cbbc574cf5e31b5f450954bb36d8 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 2400.00 2400.00 0 0 0 2400.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 1 1 1 0 1 0
720 27c71e2922b1cbbc574cf5e31b5f450954bb36d8 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 2400.00 2400.00 0 0 0 2400.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 1 1 1 1 0 0
721 27c71e2922b1cbbc574cf5e31b5f450954bb36d8 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 2400.00 2400.00 0 0 0 2400.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 1 1 1 1 1 0
722 0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf a884a52cc9a2ee9635b5a687b1412033c473b594 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0
723 0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf a884a52cc9a2ee9635b5a687b1412033c473b594 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0
724 0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf a884a52cc9a2ee9635b5a687b1412033c473b594 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0
725 0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf a884a52cc9a2ee9635b5a687b1412033c473b594 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0
726 0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf a884a52cc9a2ee9635b5a687b1412033c473b594 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0
727 0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf a884a52cc9a2ee9635b5a687b1412033c473b594 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0
728 0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf a884a52cc9a2ee9635b5a687b1412033c473b594 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0
729 0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf a884a52cc9a2ee9635b5a687b1412033c473b594 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 0
730 0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf a884a52cc9a2ee9635b5a687b1412033c473b594 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0
731 0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf a884a52cc9a2ee9635b5a687b1412033c473b594 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0
732 0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf a884a52cc9a2ee9635b5a687b1412033c473b594 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0
733 0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf a884a52cc9a2ee9635b5a687b1412033c473b594 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 1 0
734 0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf a884a52cc9a2ee9635b5a687b1412033c473b594 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0
735 0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf a884a52cc9a2ee9635b5a687b1412033c473b594 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 0
736 0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf a884a52cc9a2ee9635b5a687b1412033c473b594 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0
737 0f2ef88c4856d2dcc0c7ae35a57d5e9e64b41cdf a884a52cc9a2ee9635b5a687b1412033c473b594 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 0
738 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 0 0 1 0 0 0
739 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 0 0 1 0 1 0
740 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0
741 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 0
742 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 0 1 1 0 0 0
743 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 0 1 1 0 1 0
744 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0
745 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0
746 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 1 0 1 0 0 0
747 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 1 0 1 0 1 0
748 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 1 0 1 1 0 0
749 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 1 0 1 1 1 0
750 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0
751 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 1 1 1 0 1 0
752 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0
753 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0
754 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 0 0 1 0 0 0
755 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 0 0 1 0 1 0
756 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 0 0 1 1 0 0
757 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 0 0 1 1 1 0
758 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 0 1 1 0 0 0
759 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 0 1 1 0 1 0
760 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 0 1 1 1 0 0
761 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 0
762 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 1 0 1 0 0 0
763 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 1 0 1 0 1 0
764 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 1 0 1 1 0 0
765 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 1 0 1 1 1 0
766 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 1 1 1 0 0 0
767 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 1 1 1 0 1 0
768 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 1 1 1 1 0 0
769 708ae0bf10dbd24e94ba270a37c0f883727a16a0 6e20714cc9e9dc5cefd30f24dc6907faaa976a63 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 4 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 0
770 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 0 0 1 0 0 0
771 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 0 0 1 0 1 0
772 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 0 0 1 1 0 0
773 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 0 0 1 1 1 0
774 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 0 1 1 0 0 0
775 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 0 1 1 0 1 0
776 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 0 1 1 1 0 0
777 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 0 1 1 1 1 0
778 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 1 0 1 0 0 0
779 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 1 0 1 0 1 0
780 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 1 0 1 1 0 0
781 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 1 0 1 1 1 0
782 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 1 1 1 0 0 0
783 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 1 1 1 0 1 0
784 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 1 1 1 1 0 0
785 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 0 0 1 1 1 1 1 0
786 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 0 0 1 0 0 0
787 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 0 0 1 0 1 0
788 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 0 0 1 1 0 0
789 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 0 0 1 1 1 0
790 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 0 1 1 0 0 0
791 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 0 1 1 0 1 0
792 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 0 1 1 1 0 0
793 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 0 1 1 1 1 0
794 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 1 0 1 0 0 0
795 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 1 0 1 0 1 0
796 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 1 0 1 1 0 0
797 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 1 0 1 1 1 0
798 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 1 1 1 0 0 0
799 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 1 1 1 0 1 0
800 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 1 1 1 1 0 0
801 22773fb6d95e5f94d63f955e10a8123347067da2 4c985fe22f1e603ffc81276292aad6fecfaea65e 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 1 7 1 7 1 7 1 7 0 0 1 0 1 1 1 1 1 0
802 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 0 0 1 0 0 0
803 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 0 0 1 0 1 0
804 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 0 0 1 1 0 0
805 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 0 0 1 1 1 0
806 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 0 1 1 0 0 0
807 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 0 1 1 0 1 0
808 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 0 1 1 1 0 0
809 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 0 1 1 1 1 0
810 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 1 0 1 0 0 0
811 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 1 0 1 0 1 0
812 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 1 0 1 1 0 0
813 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 1 0 1 1 1 0
814 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 1 1 1 0 0 0
815 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 1 1 1 0 1 0
816 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 1 1 1 1 0 0
817 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 0 0 1 1 1 1 1 0
818 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 0 0 1 0 0 0
819 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 0 0 1 0 1 0
820 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 0 0 1 1 0 0
821 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 0 0 1 1 1 0
822 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 0 1 1 0 0 0
823 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 0 1 1 0 1 0
824 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 0 1 1 1 0 0
825 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 0 1 1 1 1 0
826 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 1 0 1 0 0 0
827 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 1 0 1 0 1 0
828 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 1 0 1 1 0 0
829 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 1 0 1 1 1 0
830 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 1 1 1 0 0 0
831 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 1 1 1 0 1 0
832 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 1 1 1 1 0 0
833 4ff257ab8ce80953c166def8fdb1c5a4fec283a6 4e1972874ec999555b5b3fc53f9fcf87434547ac 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 2 0 2 0 2 0 2 0 0 0 1 0 1 1 1 1 1 0
834 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 0 0 1 0 0 0
835 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 0 0 1 0 1 0
836 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 0 0 1 1 0 0
837 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 0 0 1 1 1 0
838 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 0 1 1 0 0 0
839 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 0 1 1 0 1 0
840 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 0 1 1 1 0 0
841 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 0 1 1 1 1 0
842 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 1 0 1 0 0 0
843 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 1 0 1 0 1 0
844 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 1 0 1 1 0 0
845 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 1 0 1 1 1 0
846 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 1 1 1 0 0 0
847 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 1 1 1 0 1 0
848 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 1 1 1 1 0 0
849 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 0 0 1 1 1 1 1 0
850 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 0 0 1 0 0 0
851 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 0 0 1 0 1 0
852 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 0 0 1 1 0 0
853 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 0 0 1 1 1 0
854 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 0 1 1 0 0 0
855 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 0 1 1 0 1 0
856 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 0 1 1 1 0 0
857 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 0 1 1 1 1 0
858 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 1 0 1 0 0 0
859 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 1 0 1 0 1 0
860 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 1 0 1 1 0 0
861 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 1 0 1 1 1 0
862 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 1 1 1 0 0 0
863 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 1 1 1 0 1 0
864 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 1 1 1 1 0 0
865 351a19408eb7a74e746090c57515e30591c83d03 f0a5c4fe9f021768836c037fffb580430cfe9c84 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 1 1 450.00 450.00 0 0 0 450.00 0 0 0 3 0 3 0 3 0 3 0 1500 0 1 0 1 1 1 1 1 0
866 fbf2173c22529ff027aad7318646ef61a5e380dd 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 3 1 2400.00 2400.00 0 0 0 2400.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0
867 fbf2173c22529ff027aad7318646ef61a5e380dd 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 3 1 2400.00 2400.00 0 0 0 2400.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0
868 fbf2173c22529ff027aad7318646ef61a5e380dd 9aa9a4d9598eb3e1093311826844f37c43e4c521 1 30 1 3 1024 768 1024 768 0 0 0 0 0 0 30 30 30 30 26 26 26 26 3 1 2400.00 2400.00 0 0 0 2400.00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -151,7 +151,7 @@ runMain()
echo ""
echo "building codec.........."
runBuildCodec ${BitType}>build.log
runBuildCodec ${BitType}
if [ ! $? -eq 0 ]
then
echo "codec build failed ..."